@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:99999;display:flex;flex-direction:column-reverse;gap:.5rem;max-width:420px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:10px;background:#fff;box-shadow:0 8px 24px #00000026;border-left:4px solid;pointer-events:auto;animation:toast-slide-in .3s ease-out forwards;min-width:280px;font-family:Inter,system-ui,-apple-system,sans-serif}.toast--exit{animation:toast-fade-out .3s ease-in forwards}.toast--success{border-left-color:#10b981}.toast--error{border-left-color:#ef4444}.toast--info{border-left-color:#6366f1}.toast--warning{border-left-color:#f59e0b}.toast__icon{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.85rem;font-weight:700;color:#fff}.toast--success .toast__icon{background:#10b981}.toast--error .toast__icon{background:#ef4444}.toast--info .toast__icon{background:#6366f1}.toast--warning .toast__icon{background:#f59e0b}.toast__message{flex:1;font-size:.9rem;line-height:1.4;color:#1e293b;padding-top:.1rem}.toast__close{flex-shrink:0;background:none;border:none;font-size:1.25rem;color:#94a3b8;cursor:pointer;padding:0;line-height:1;transition:color .15s}.toast__close:hover{color:#475569}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-fade-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@media (max-width: 480px){.toast-container{left:1rem;right:1rem;bottom:1rem;max-width:none}.toast{min-width:0}}@media (prefers-reduced-motion: reduce){.toast{animation:none;opacity:1}.toast--exit{animation:none;opacity:0}}:root{--kiosk-primary: #6366f1;--kiosk-primary-dark: #4f46e5;--kiosk-success: #10b981;--kiosk-success-light: #d1fae5;--kiosk-danger: #ef4444;--kiosk-danger-light: #fee2e2;--kiosk-warning: #f59e0b;--kiosk-warning-light: #fef3c7;--kiosk-gray-50: #f8fafc;--kiosk-gray-100: #f1f5f9;--kiosk-gray-200: #e2e8f0;--kiosk-gray-300: #cbd5e1;--kiosk-gray-400: #94a3b8;--kiosk-gray-500: #64748b;--kiosk-gray-600: #475569;--kiosk-gray-700: #334155;--kiosk-gray-800: #1e293b;--kiosk-gray-900: #0f172a}.kiosk-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;color:var(--kiosk-gray-900);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;position:relative}.kiosk-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 80%,rgba(120,119,198,.3) 0%,transparent 50%);pointer-events:none}.kiosk-top-bar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 4px 30px #0000001a}.kiosk-brand{font-weight:700;font-size:1.5rem;background:linear-gradient(135deg,var(--kiosk-primary) 0%,#a855f7 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.kiosk-brand:before{content:none}.kiosk-nav{display:flex;gap:.5rem;background:var(--kiosk-gray-100);padding:.35rem;border-radius:9999px}.kiosk-nav span{padding:.5rem 1.25rem;border-radius:9999px;font-weight:500;font-size:.9rem;color:var(--kiosk-gray-500);cursor:default}.kiosk-nav .active{background:#fff;color:var(--kiosk-primary);box-shadow:0 1px 3px #0000001a}.kiosk-actions{display:flex;gap:.75rem;align-items:center}.kiosk-bell{width:40px;height:40px;border-radius:50%;background:var(--kiosk-gray-100);display:flex;align-items:center;justify-content:center}.kiosk-bell:after{content:"🔔";font-size:1.1rem}.kiosk-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#fcd34d,#f59e0b);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;color:#78350f;border:3px solid white;box-shadow:0 4px 12px #f59e0b4d}.kiosk-main{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:2rem;padding:2rem;flex:1;max-width:1400px;margin:0 auto;width:100%}.kiosk-card{background:#fffffffa;border-radius:24px;padding:2rem;box-shadow:0 20px 40px #0000001a;border:1px solid rgba(255,255,255,.8)}.kiosk-clock-card{position:relative;overflow:hidden}.kiosk-clock-card:before{content:"";position:absolute;top:-100px;right:-100px;width:250px;height:250px;background:radial-gradient(circle,rgba(99,102,241,.08) 0%,transparent 70%);border-radius:50%;pointer-events:none}.kiosk-login-card{max-width:440px;width:100%;text-align:center;padding:3rem 2.5rem}.kiosk-login-card h1{font-size:2rem;margin-bottom:.5rem;color:var(--kiosk-gray-800)}.kiosk-login-card>p{color:var(--kiosk-gray-500);margin-bottom:2rem}.barcode-hint{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:linear-gradient(135deg,#6366f11a,#a855f71a);border-radius:8px;margin-bottom:1rem;font-size:.9rem;color:var(--kiosk-gray-600)}.scan-icon{font-size:1.5rem;animation:scanPulse 2s ease-in-out infinite}@keyframes scanPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.kiosk-login-card input{font-size:1.75rem;letter-spacing:.75rem;text-align:center;padding:1.25rem;margin-bottom:.75rem;border:2px solid var(--kiosk-gray-200);border-radius:16px;background:var(--kiosk-gray-50);transition:border-color .2s ease,box-shadow .2s ease;font-family:Inter,monospace}.kiosk-login-card input:focus{outline:none;border-color:var(--kiosk-primary);box-shadow:0 0 0 4px #6366f126;background:#fff}.kiosk-login-card input::placeholder{letter-spacing:normal;font-size:1rem}.pin-dots{display:flex;justify-content:center;gap:.75rem;margin-bottom:1.5rem}.pin-dot{width:14px;height:14px;border-radius:50%;background:var(--kiosk-gray-200);transition:all .2s cubic-bezier(.4,0,.2,1)}.pin-dot.filled{background:var(--kiosk-primary);transform:scale(1.15);box-shadow:0 0 8px #6366f166}.pin-shake{animation:pinShake .5s ease-in-out}@keyframes pinShake{0%,to{transform:translate(0)}10%,50%,90%{transform:translate(-6px)}30%,70%{transform:translate(6px)}}.pin-shake .pin-dot.filled{background:var(--kiosk-danger);box-shadow:0 0 8px #ef444466}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:600;color:var(--kiosk-gray-400);margin-bottom:.25rem}.employee-name{margin:0;font-size:1.75rem;font-weight:700;color:var(--kiosk-gray-800)}.card-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem}.status-pill{border-radius:9999px;padding:.5rem 1rem;font-size:.8rem;font-weight:600;display:inline-flex;align-items:center;gap:.4rem}.status-pill:before{content:"";width:8px;height:8px;border-radius:50%}.status-in{background:var(--kiosk-success-light);color:#047857}.status-in:before{background:var(--kiosk-success);animation:pulse 1.5s ease-in-out infinite}.status-out{background:var(--kiosk-danger-light);color:#b91c1c}.status-out:before{background:var(--kiosk-danger)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.time-display{font-size:clamp(3.5rem,8vw,5rem);font-weight:700;margin:1rem 0 .25rem;background:linear-gradient(135deg,var(--kiosk-gray-900) 0%,var(--kiosk-gray-700) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-variant-numeric:tabular-nums}.date-display{color:var(--kiosk-gray-400);font-size:1.1rem;font-weight:500;margin-bottom:1.5rem}.input-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;align-items:center}.input-row label{color:var(--kiosk-gray-600);font-weight:600;font-size:.85rem}select,.kiosk-card input{width:100%;padding:.9rem 1rem;border-radius:12px;border:2px solid var(--kiosk-gray-200);font-size:1rem;margin-top:.5rem;background:var(--kiosk-gray-50);color:var(--kiosk-gray-800);transition:all .2s ease}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.25rem;padding-right:2.5rem}select:focus,.kiosk-card input:focus{outline:none;border-color:var(--kiosk-primary);background:#fff;box-shadow:0 0 0 4px #6366f11a}.job-code-input{margin-top:1rem;font-size:1.25rem;letter-spacing:.3rem;text-align:center;font-weight:600}.job-code-input::placeholder{letter-spacing:.3rem;color:var(--kiosk-gray-300)}.active-work-panel{margin-top:1.5rem;padding:1.25rem;border-radius:16px;border:2px dashed var(--kiosk-gray-200);background:linear-gradient(135deg,var(--kiosk-gray-50) 0%,white 100%)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.panel-header .eyebrow{margin-bottom:0}.panel-hint{font-size:.8rem;color:var(--kiosk-gray-400)}.active-work-chips,.machine-chip-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.job-chip{border:2px solid var(--kiosk-gray-200);border-radius:12px;padding:.85rem 1.25rem;background:#fff;text-align:left;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.job-chip:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--kiosk-gray-300)}.job-chip:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.job-chip span{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--kiosk-gray-400);margin-bottom:.25rem}.job-chip strong{display:block;font-size:.95rem;font-weight:600;color:var(--kiosk-gray-800)}.job-chip.primary{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#a7f3d0}.job-chip.primary:before{background:var(--kiosk-success)}.job-chip.machine{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-color:#c7d2fe}.job-chip.machine:before{background:var(--kiosk-primary)}.empty-hint{color:var(--kiosk-gray-400);font-size:.9rem;font-style:italic}.primary-action{margin-top:1.75rem;width:100%;padding:1.25rem;background:linear-gradient(135deg,var(--kiosk-success) 0%,#059669 100%);border:none;border-radius:16px;color:#fff;font-size:1.2rem;font-weight:700;cursor:pointer;box-shadow:0 10px 30px #10b98159;transition:all .2s ease;position:relative;overflow:hidden}.primary-action:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.primary-action:hover{transform:translateY(-2px);box-shadow:0 15px 40px #10b98166}.primary-action:hover:before{left:100%}.secondary-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:1.25rem}.secondary-actions button{border-radius:12px;border:2px solid var(--kiosk-gray-200);padding:.85rem .75rem;background:#fff;color:var(--kiosk-gray-600);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}.secondary-actions button:hover{border-color:var(--kiosk-primary);color:var(--kiosk-primary);background:#6366f10d}.machine-panel{margin-top:1.75rem;border:2px solid var(--kiosk-gray-200);border-radius:16px;padding:1.25rem;background:linear-gradient(135deg,#fafafa,#fff)}.machine-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,1fr);gap:.75rem;margin-top:.75rem}.machine-form input{margin-top:0;background:#fff}.ghost-action{border-radius:12px;border:2px solid var(--kiosk-gray-200);padding:.85rem 1rem;background:#fff;color:var(--kiosk-primary);font-weight:600;cursor:pointer;transition:all .2s ease}.ghost-action:hover:not(:disabled){background:var(--kiosk-primary);border-color:var(--kiosk-primary);color:#fff}.ghost-action:disabled{opacity:.4;cursor:not-allowed}.ghost-action.stop{color:var(--kiosk-danger);border-color:#fecaca;background:#fff5f5}.ghost-action.stop:hover:not(:disabled){background:var(--kiosk-danger);border-color:var(--kiosk-danger);color:#fff}.machine-list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.6rem}.machine-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-radius:12px;border:2px solid var(--kiosk-gray-200);background:#fff;transition:all .2s ease}.machine-item:hover{border-color:var(--kiosk-primary);box-shadow:0 2px 8px #0000000d}.machine-item div{display:flex;flex-direction:column;gap:.15rem}.machine-item strong{font-size:.95rem;font-weight:600;color:var(--kiosk-gray-800)}.machine-item span{font-size:.85rem;color:var(--kiosk-gray-500)}.machine-empty{color:var(--kiosk-gray-400);text-align:center;padding:1rem 0;font-style:italic}.kiosk-lock-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172af2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:2rem;z-index:100;color:#fff}.kiosk-lock-panel{text-align:center;max-width:480px;background:linear-gradient(135deg,#1e293be6,#0f172af2);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:3.5rem 3rem;box-shadow:0 40px 80px #00000080}.kiosk-lock-panel .eyebrow{color:var(--kiosk-danger)}.kiosk-lock-panel h1{margin:.75rem 0 1.25rem;font-size:2.25rem;color:#fff}.kiosk-lock-panel p{margin-bottom:2rem;color:var(--kiosk-gray-300);line-height:1.6}.kiosk-lock-panel small{display:block;margin-top:1.5rem;color:var(--kiosk-gray-400)}.primary-action.admin-only{background:linear-gradient(135deg,var(--kiosk-warning) 0%,#d97706 100%);color:#fff;box-shadow:0 10px 25px #f59e0b4d;width:auto;min-width:180px;padding:1rem 2.5rem;margin-top:0}.text-button{background:none;border:none;color:var(--kiosk-primary);font-weight:600;margin-top:1.5rem;cursor:pointer;padding:.5rem;transition:all .2s ease}.text-button:hover{color:var(--kiosk-primary-dark);text-decoration:underline}.inline-message{margin-top:1.25rem;text-align:center;padding:.85rem 1rem;border-radius:12px;font-weight:600;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.inline-message.success{background:var(--kiosk-success-light);color:#047857;border:1px solid #a7f3d0}.inline-message.error{background:var(--kiosk-danger-light);color:#b91c1c;border:1px solid #fecaca}.activity-card{height:fit-content}.activity-card h3{margin:0;font-size:1.1rem;color:var(--kiosk-gray-700)}.activity-card ul{list-style:none;padding:0;margin:1.25rem 0 0}.activity-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--kiosk-gray-100)}.activity-item:last-child{border-bottom:none}.activity-item div{display:flex;width:100%;justify-content:space-between;align-items:center}.activity-item strong{font-weight:600;font-size:.95rem}.activity-item span{color:var(--kiosk-gray-400);font-weight:500;font-size:.85rem}.activity-empty{color:var(--kiosk-gray-400);text-align:center;padding:2rem 0;font-style:italic}.tone-in{background:linear-gradient(90deg,var(--kiosk-success-light) 0%,transparent 100%);margin:0 -1rem;padding:1rem;border-radius:8px}.tone-in strong{color:#047857}.tone-out{background:linear-gradient(90deg,var(--kiosk-danger-light) 0%,transparent 100%);margin:0 -1rem;padding:1rem;border-radius:8px}.tone-out strong{color:#b91c1c}.tone-break{background:linear-gradient(90deg,var(--kiosk-warning-light) 0%,transparent 100%);margin:0 -1rem;padding:1rem;border-radius:8px}.tone-break strong{color:#b45309}.kiosk-main.login-state{display:flex;align-items:center;justify-content:center;padding:3rem}@media (max-width: 1024px){.kiosk-main{grid-template-columns:1fr;padding:1.5rem}.kiosk-top-bar{flex-wrap:wrap;gap:1rem;padding:1rem;justify-content:center}.kiosk-nav{order:3;width:100%;justify-content:center}.secondary-actions,.input-row{grid-template-columns:1fr}}@media (max-width: 480px){.kiosk-card{padding:1.5rem}.time-display{font-size:3rem}.employee-name{font-size:1.25rem}.machine-form{grid-template-columns:1fr}}.clock-display-section{text-align:center;margin:1rem 0 1.5rem}.time-display-large{font-size:4.5rem;font-weight:700;background:linear-gradient(135deg,var(--kiosk-gray-900) 0%,var(--kiosk-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-2px;line-height:1;font-variant-numeric:tabular-nums}.attendance-alert{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.5rem}.attendance-alert-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:#92400e;font-size:.9rem}.attendance-alert-header .alert-icon{font-size:1.1rem}.attendance-alert-stats{display:flex;gap:1.5rem;justify-content:center}.alert-stat{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;background:#ffffffb3}.alert-stat.late{border:1px solid var(--kiosk-warning)}.alert-stat.absent{border:1px solid var(--kiosk-danger)}.alert-stat .stat-icon{font-size:1.25rem}.alert-stat .stat-count{font-size:1.5rem;font-weight:700;color:var(--kiosk-gray-900)}.alert-stat.late .stat-count{color:#b45309}.alert-stat.absent .stat-count{color:var(--kiosk-danger)}.alert-stat .stat-label{font-size:.85rem;font-weight:500;color:var(--kiosk-gray-600);text-transform:none;letter-spacing:0}.shift-stats-panel{display:flex;justify-content:center;gap:2rem;padding:1rem 1.5rem;background:linear-gradient(135deg,var(--kiosk-gray-50) 0%,var(--kiosk-gray-100) 100%);border-radius:16px;margin-bottom:1.5rem;border:1px solid var(--kiosk-gray-200)}.stat-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stat-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--kiosk-gray-500)}.stat-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--kiosk-gray-800)}.stat-value.elapsed{color:var(--kiosk-primary)}.stat-value.break{color:var(--kiosk-warning)}.stat-item.break-active{padding:.5rem 1rem;background:var(--kiosk-warning-light);border-radius:12px;animation:break-pulse 2s ease-in-out infinite}@keyframes break-pulse{0%,to{opacity:1}50%{opacity:.7}}.status-pill.status-break{background:linear-gradient(135deg,var(--kiosk-warning) 0%,#d97706 100%);animation:break-pulse 2s ease-in-out infinite}.break-active-btn{background:linear-gradient(135deg,var(--kiosk-warning) 0%,#d97706 100%)!important;color:#fff!important;animation:break-pulse 2s ease-in-out infinite}.weekly-summary-panel{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);border-radius:16px;margin-bottom:1rem;border:1px solid rgba(99,102,241,.2)}.weekly-summary-panel h4{margin:0 0 .5rem;font-size:.8rem;font-weight:600;color:var(--kiosk-primary-dark);text-transform:uppercase;letter-spacing:.5px}.summary-section{text-align:center}.summary-stats{display:flex;gap:1.25rem}.summary-stat{display:flex;flex-direction:column;align-items:center}.summary-value{font-size:1.25rem;font-weight:700;color:var(--kiosk-gray-800);font-variant-numeric:tabular-nums}.summary-stat.highlight .summary-value{color:var(--kiosk-primary);font-size:1.5rem}.summary-label{font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.3px;color:var(--kiosk-gray-500)}.summary-divider{width:1px;height:50px;background:#6366f14d}.upcoming-shifts-panel{padding:1rem 1.5rem;background:var(--kiosk-gray-50);border-radius:16px;margin-bottom:1rem;border:1px solid var(--kiosk-gray-200)}.upcoming-shifts-panel h4{margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--kiosk-gray-700)}.shifts-list{display:flex;flex-direction:column;gap:.5rem}.shift-item{display:flex;align-items:center;gap:1rem;padding:.6rem .75rem;background:#fff;border-radius:10px;border:1px solid var(--kiosk-gray-200);font-size:.85rem}.shift-item.today{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:var(--kiosk-warning)}.shift-date{display:flex;flex-direction:column;align-items:center;min-width:55px}.shift-day{font-weight:700;color:var(--kiosk-primary);font-size:.75rem;text-transform:uppercase}.shift-item.today .shift-day{color:var(--kiosk-warning)}.shift-date-num{font-size:.7rem;color:var(--kiosk-gray-500)}.shift-time{font-weight:500;color:var(--kiosk-gray-800);flex:1}.shift-dept{font-size:.7rem;padding:.2rem .5rem;background:var(--kiosk-gray-100);border-radius:6px;color:var(--kiosk-gray-600)}.photo-capture-section{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;background:var(--kiosk-gray-100);border-radius:16px;margin-bottom:1.5rem;border:2px dashed var(--kiosk-gray-300)}.camera-preview{width:100%;max-width:320px;border-radius:12px;transform:scaleX(-1);box-shadow:0 4px 20px #0000001a}.photo-actions{display:flex;gap:1rem}.photo-btn{padding:.75rem 1.5rem;border-radius:9999px;font-weight:600;font-size:.9rem;border:none;cursor:pointer;transition:all .2s ease}.photo-btn.capture{background:linear-gradient(135deg,var(--kiosk-primary) 0%,var(--kiosk-primary-dark) 100%);color:#fff}.photo-btn.capture:hover{transform:scale(1.05)}.photo-btn.cancel,.photo-btn.retake{background:var(--kiosk-gray-200);color:var(--kiosk-gray-700)}.photo-btn.cancel:hover,.photo-btn.retake:hover{background:var(--kiosk-gray-300)}.photo-preview{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1rem}.photo-preview img{width:120px;height:120px;object-fit:cover;border-radius:50%;border:4px solid var(--kiosk-success);box-shadow:0 4px 20px #10b9814d}.overtime-warning{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:linear-gradient(135deg,var(--kiosk-danger-light) 0%,#fecaca 100%);border:1px solid var(--kiosk-danger);border-radius:12px;margin-bottom:1rem;color:var(--kiosk-danger);font-weight:600;animation:warning-pulse 1.5s ease-in-out infinite}@keyframes warning-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.02)}}.overtime-warning:before{content:"⚠️";font-size:1.25rem}.timeoff-card{background:#fffffffa}.timeoff-card .card-header-row{display:flex;justify-content:space-between;align-items:center}.toggle-panel-btn{background:var(--kiosk-gray-100);border:none;width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:.875rem;color:var(--kiosk-gray-600);transition:all .2s}.toggle-panel-btn:hover{background:var(--kiosk-gray-200)}.toggle-panel-btn.expanded{background:var(--kiosk-primary);color:#fff}.timeoff-balances-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;padding-bottom:1rem}.balance-chip{display:flex;flex-direction:column;background:var(--kiosk-gray-50);border-radius:8px;padding:.5rem 1rem;border-left:3px solid var(--kiosk-gray-400);min-width:70px}.balance-type{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--kiosk-gray-600)}.balance-hours{font-size:1rem;font-weight:700;color:var(--kiosk-gray-800)}.no-balances{color:var(--kiosk-gray-500);font-style:italic;font-size:.875rem}.timeoff-expanded{border-top:1px solid var(--kiosk-gray-200);padding-top:1rem;margin-top:.5rem}.timeoff-form{margin-bottom:1.5rem}.timeoff-form h4{font-size:.9rem;font-weight:600;color:var(--kiosk-gray-700);margin-bottom:.75rem}.timeoff-form .form-row{margin-bottom:.75rem}.timeoff-form select,.timeoff-form input[type=text],.timeoff-form input[type=number]{width:100%;padding:.6rem .75rem;border:1px solid var(--kiosk-gray-300);border-radius:8px;font-size:.9rem;background:#fff}.timeoff-form select:focus,.timeoff-form input:focus{outline:none;border-color:var(--kiosk-primary);box-shadow:0 0 0 3px #6366f126}.timeoff-form .form-row.dates{display:grid;grid-template-columns:1fr 1fr 80px;gap:.5rem}.timeoff-form .form-row.dates label{display:flex;flex-direction:column;gap:.25rem}.timeoff-form .form-row.dates label span{font-size:.75rem;color:var(--kiosk-gray-600)}.timeoff-form .form-row.dates input{padding:.5rem;font-size:.85rem}.submit-timeoff-btn{width:100%;padding:.75rem;background:var(--kiosk-primary);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .2s}.submit-timeoff-btn:hover{background:var(--kiosk-primary-dark)}.timeoff-status{margin-top:.5rem;font-size:.85rem;color:var(--kiosk-danger);text-align:center}.timeoff-status.success{color:var(--kiosk-success)}.my-requests h4{font-size:.9rem;font-weight:600;color:var(--kiosk-gray-700);margin-bottom:.75rem}.no-requests{color:var(--kiosk-gray-500);font-style:italic;font-size:.875rem;text-align:center;padding:1rem}.request-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.request-item{display:flex;justify-content:space-between;align-items:center;background:var(--kiosk-gray-50);border-radius:8px;padding:.6rem .75rem;border-left:3px solid var(--kiosk-gray-400)}.request-item.status-pending{border-left-color:var(--kiosk-warning)}.request-item.status-approved{border-left-color:var(--kiosk-success)}.request-item.status-rejected{border-left-color:var(--kiosk-danger)}.request-info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem}.request-type-badge{display:inline-block;padding:.15rem .4rem;border-radius:4px;color:#fff;font-size:.7rem;font-weight:600}.request-dates{color:var(--kiosk-gray-700)}.request-hours{color:var(--kiosk-gray-600);font-weight:500}.request-status{padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.request-status.pending{background:var(--kiosk-warning-light);color:#92400e}.request-status.approved{background:var(--kiosk-success-light);color:#065f46}.request-status.rejected{background:var(--kiosk-danger-light);color:#991b1b}.request-status.cancelled{background:var(--kiosk-gray-200);color:var(--kiosk-gray-600)}.cancel-request-btn{background:transparent;border:1px solid var(--kiosk-gray-300);color:var(--kiosk-gray-600);padding:.3rem .6rem;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .2s}.cancel-request-btn:hover{background:var(--kiosk-danger-light);border-color:var(--kiosk-danger);color:var(--kiosk-danger)}.job-code-input-container{position:relative;margin-top:1rem}.job-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:.5rem;background:#fff;border:2px solid var(--kiosk-gray-200);border-radius:12px;box-shadow:0 10px 40px #00000026;max-height:320px;overflow-y:auto;z-index:100;animation:dropdownFadeIn .2s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.job-dropdown-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;cursor:pointer;transition:all .15s ease;border-bottom:1px solid var(--kiosk-gray-100)}.job-dropdown-item:last-child{border-bottom:none}.job-dropdown-item:hover{background:linear-gradient(135deg,#6366f10d,#a855f70d)}.job-dropdown-item.disabled{cursor:default;color:var(--kiosk-gray-400);font-style:italic;justify-content:center}.job-dropdown-item.disabled:hover{background:none}.job-code{font-weight:700;font-size:1rem;color:var(--kiosk-primary);letter-spacing:.05em;min-width:4rem}.job-name{flex:1;color:var(--kiosk-gray-700);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 480px){.time-display-large{font-size:3rem}.shift-stats-panel{flex-direction:column;gap:1rem;padding:1rem}.stat-value{font-size:1.25rem}.camera-preview{max-width:240px}.timeoff-form .form-row.dates{grid-template-columns:1fr 1fr}.timeoff-form .form-row.dates label:last-child{grid-column:1 / -1}.request-info{flex-direction:column;align-items:flex-start;gap:.25rem}}.machine-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-right:.75rem;flex-shrink:0}.machine-item>div:not(.machine-avatar){flex:1}.kiosk-confirmation-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:confirmFadeIn .3s ease-out}.kiosk-confirmation-card{background:#fff;border-radius:24px;padding:3rem 4rem;text-align:center;box-shadow:0 25px 50px #00000040;animation:confirmScaleIn .35s cubic-bezier(.34,1.56,.64,1)}.kiosk-confirmation-icon{width:80px;height:80px;margin:0 auto 1.5rem;border-radius:50%;background:var(--kiosk-success);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700}.kiosk-confirmation-title{font-size:1.75rem;font-weight:700;color:var(--kiosk-gray-900);margin:0 0 .5rem}.kiosk-confirmation-name{font-size:1.25rem;font-weight:500;color:var(--kiosk-gray-700);margin:0 0 .25rem}.kiosk-confirmation-time{font-size:2rem;font-weight:700;color:var(--kiosk-primary);margin:.5rem 0;font-variant-numeric:tabular-nums}.kiosk-confirmation-job{font-size:1rem;color:var(--kiosk-gray-500);margin:.5rem 0 0}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes confirmScaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.primary-action{min-height:56px}.secondary-actions button{min-height:48px}.ghost-action{min-height:44px}.kiosk-nav span{min-height:40px;display:inline-flex;align-items:center}.kiosk-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:confirmFadeIn .2s ease-out}.kiosk-confirm-card{background:#fff;border-radius:24px;padding:2.5rem;max-width:min(440px,90vw);width:100%;text-align:center;box-shadow:0 25px 50px #00000040;animation:confirmScaleIn .25s cubic-bezier(.34,1.56,.64,1)}.kiosk-confirm-card__icon{font-size:2.5rem;margin-bottom:1rem}.kiosk-confirm-card__title{font-size:1.5rem;font-weight:700;color:var(--kiosk-gray-900);margin:0 0 .5rem}.kiosk-confirm-card__message{font-size:.95rem;color:var(--kiosk-gray-500);line-height:1.6;margin:0 0 2rem}.kiosk-confirm-card__actions{display:flex;gap:.75rem}.kiosk-confirm-card__actions button{flex:1;padding:1rem;border-radius:14px;font-weight:700;font-size:1rem;cursor:pointer;transition:all .15s;min-height:52px}.kiosk-confirm-cancel{background:var(--kiosk-gray-100);color:var(--kiosk-gray-600);border:1px solid var(--kiosk-gray-200)}.kiosk-confirm-cancel:hover{background:var(--kiosk-gray-200)}.kiosk-confirm-proceed{background:var(--kiosk-danger);color:#fff;border:none;box-shadow:0 4px 12px #ef44444d}.kiosk-confirm-proceed:hover{background:#dc2626;transform:translateY(-1px)}:root{--dash-primary: #6366f1;--dash-primary-hover: #4f46e5;--dash-primary-light: #e0e7ff;--dash-primary-dark: #312e81;--dash-success: #10b981;--dash-success-light: #d1fae5;--dash-warning: #f59e0b;--dash-warning-light: #fef3c7;--dash-danger: #ef4444;--dash-danger-light: #fee2e2;--dash-info: #3b82f6;--dash-info-light: #dbeafe;--dash-bg: #f3f4f6;--dash-surface: #ffffff;--dash-border: #e5e7eb;--dash-border-light: #f9fafb;--dash-text: #111827;--dash-text-secondary: #4b5563;--dash-text-muted: #9ca3af;--dash-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--dash-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--dash-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--dash-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--dash-radius-sm: .375rem;--dash-radius: .75rem;--dash-radius-lg: 1rem;--dash-radius-xl: 1.5rem;--dash-transition: .2s cubic-bezier(.4, 0, .2, 1)}.dashboard-container{display:flex;height:100vh;overflow:hidden;background:var(--dash-bg)}.sidebar{width:260px;background:#1e293b;color:#f8fafc;display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid rgba(255,255,255,.05);transition:width .3s ease}.main-content{flex:1;overflow-y:auto;padding:2rem;scroll-behavior:smooth}.sidebar-header{padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header .logo-text{font-size:1.5rem;font-weight:700;background:linear-gradient(to right,#818cf8,#c7d2fe);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.sidebar-nav{flex:1;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto}.nav-item{display:flex;align-items:center;padding:.75rem 1rem;border-radius:var(--dash-radius);color:#94a3b8;font-weight:500;transition:all var(--dash-transition);background:transparent;border:none;width:100%;text-align:left;cursor:pointer;font-size:.95rem}.nav-item:hover{background:#ffffff0d;color:#f1f5f9}.nav-item.active{background:var(--dash-primary);color:#fff;box-shadow:0 4px 12px #6366f14d}.sidebar-footer{padding:1.5rem;border-top:1px solid rgba(255,255,255,.1);background:#0000001a}.sidebar-footer .user-info .avatar{width:40px;height:40px;border-radius:50%;background:var(--dash-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600}.sidebar-footer .user-info .details{flex:1;overflow:hidden}.sidebar-footer .user-info .name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .logout-btn{padding:.5rem;background:transparent;color:#94a3b8;border:1px solid rgba(255,255,255,.1);border-radius:var(--dash-radius-sm)}.sidebar-footer .logout-btn:hover{background:#ffffff0d;color:#fff}.dashboard{max-width:1400px;margin:0 auto;padding:0 1.5rem 2rem;background:var(--dash-bg);min-height:100vh}.dashboard h1{color:var(--dash-text);margin-bottom:.5rem;font-size:1.875rem;font-weight:700;letter-spacing:-.02em}.dashboard h2{color:var(--dash-text);margin-top:2rem;margin-bottom:1rem;font-size:1.25rem;font-weight:600}.dashboard h3{color:var(--dash-text-secondary);margin-top:1.5rem;margin-bottom:1rem;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.info-card{background:var(--dash-surface);padding:1.5rem;border-radius:var(--dash-radius-lg);box-shadow:var(--dash-shadow-sm);margin-bottom:1.5rem;border:1px solid var(--dash-border);transition:box-shadow var(--dash-transition)}.info-card:hover{box-shadow:var(--dash-shadow)}.info-card h2{margin-top:0;color:var(--dash-text)}.info-card p{margin:.5rem 0;font-size:1rem;color:var(--dash-text-secondary)}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--dash-surface);box-shadow:var(--dash-shadow-sm);border-radius:var(--dash-radius-lg);overflow:hidden;border:1px solid var(--dash-border)}thead{background:var(--dash-bg);position:sticky;top:0;z-index:2}th{padding:1rem 1.5rem;text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--dash-text-secondary);border-bottom:1px solid var(--dash-border)}td{padding:1rem 1.5rem;border-bottom:1px solid var(--dash-border-light);color:var(--dash-text);font-size:.9rem}tbody tr{transition:background var(--dash-transition)}tbody tr:hover{background:var(--dash-bg)}tbody tr:nth-child(2n){background:var(--dash-border-light)}tbody tr:last-child td{border-bottom:none}section{margin-bottom:2rem}input[type=text],input[type=date],input[type=datetime-local],input[type=number],input[type=password],select{padding:.75rem 1rem;border:1px solid var(--dash-border);border-radius:var(--dash-radius);margin-right:.5rem;font-size:.95rem;color:var(--dash-text);background:var(--dash-surface);transition:all var(--dash-transition)}.job-variance{display:block;color:var(--dash-text-muted)}.job-variance-positive{color:var(--dash-danger)}.job-variance-negative{color:var(--dash-success)}input[type=text]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=number]:focus,input[type=password]:focus,select:focus{outline:none;border-color:var(--dash-primary);box-shadow:0 0 0 3px var(--dash-primary-light)}.avatar-select-row{display:flex;align-items:center;gap:.75rem}.avatar-preview{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;background:#6b7280;color:#fff;flex-shrink:0;transition:transform var(--dash-transition)}.avatar-preview.avatar-auto{background:#94a3b8;color:#111827;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.avatar-preview.avatar-laser{background:#3b82f6}.avatar-preview.avatar-bend{background:#10b981}.avatar-preview.avatar-welder{background:#f97316}.avatar-preview.avatar-utility{background:#8b5cf6}.avatar-preview.avatar-rolling{background:#ef4444}.avatar-preview.avatar-supervisor{background:#374151}button{padding:.625rem 1.25rem;background:var(--dash-primary);color:#fff;border:none;border-radius:var(--dash-radius);cursor:pointer;font-size:.875rem;font-weight:600;transition:all var(--dash-transition);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;line-height:1.25rem}button:hover{background:var(--dash-primary-hover);transform:translateY(-1px);box-shadow:var(--dash-shadow-sm)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--dash-primary)}.btn-primary:hover{background:var(--dash-primary-hover)}.btn-secondary{background:var(--dash-bg);color:var(--dash-text);border:1px solid var(--dash-border)}.btn-secondary:hover{background:var(--dash-border-light)}.btn-warning{background:var(--dash-warning);color:#fff}.btn-warning:hover{background:#d97706}.btn-danger{background:var(--dash-danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-danger:disabled{background:#fca5a5;cursor:not-allowed}.btn-group{display:flex;gap:.5rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-content{background:var(--dash-surface);padding:2rem;border-radius:var(--dash-radius-xl);box-shadow:var(--dash-shadow-xl);min-width:min(420px,90vw);max-width:90vw;max-height:90vh;overflow-y:auto;border:1px solid var(--dash-border-light)}.modal-content h3{margin-top:0;color:var(--dash-text);font-size:1.25rem}.delete-employee-modal{max-width:500px}.delete-employee-modal h3{color:var(--dash-danger)}.modal-warning{margin-bottom:1.5rem;color:var(--dash-text-secondary)}.delete-preview{background:var(--dash-danger-light);border:1px solid #fecaca;border-radius:var(--dash-radius);padding:1rem;margin-bottom:1.5rem}.delete-preview .preview-header{font-weight:600;margin-bottom:.75rem;color:var(--dash-danger)}.delete-preview .preview-list{list-style:none;padding:0;margin:0}.delete-preview .preview-list li{padding:.25rem 0;color:var(--dash-text)}.delete-preview .preview-list .no-records{color:var(--dash-text-muted);font-style:italic}.delete-preview .preview-total{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #fecaca;font-weight:500}.delete-confirm-input{margin-bottom:1rem}.delete-confirm-input label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--dash-text)}.delete-confirm-input input{width:100%;padding:.75rem 1rem;border:2px solid var(--dash-border);border-radius:var(--dash-radius);font-size:1rem;font-family:monospace;text-transform:uppercase;letter-spacing:.1em}.delete-confirm-input input:focus{outline:none;border-color:var(--dash-danger)}.error-text{color:var(--dash-danger);font-size:.875rem;margin-bottom:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--dash-border-light)}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--dash-surface);padding:2rem;border-radius:var(--dash-radius-xl);box-shadow:var(--dash-shadow-xl);z-index:1000;min-width:min(480px,90vw);max-width:90vw;max-height:90vh;overflow-y:auto;border:1px solid var(--dash-border)}.modal:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:-1}.modal h3{margin-top:0;color:var(--dash-text);font-size:1.5rem;font-weight:700;text-transform:none;letter-spacing:-.02em;margin-bottom:1.5rem}.modal input,.modal select{display:block;width:100%;margin-bottom:1rem;box-sizing:border-box}.modal button{margin-right:.5rem}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}.metric-card{background:var(--dash-surface);color:var(--dash-text);padding:1.5rem;border-radius:var(--dash-radius-lg);box-shadow:var(--dash-shadow-sm);position:relative;overflow:hidden;border:1px solid var(--dash-border);transition:transform var(--dash-transition),box-shadow var(--dash-transition)}.metric-card:hover{transform:translateY(-2px);box-shadow:var(--dash-shadow)}.metric-card p{margin:0;font-size:.875rem;color:var(--dash-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.metric-card strong{display:block;font-size:2.5rem;margin-top:.5rem;font-weight:700;color:var(--dash-text);letter-spacing:-.03em}.grid-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1.5rem;margin:1.5rem 0}.kiosk-lock-card{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;background:linear-gradient(135deg,#0f172a,#1e293b);color:#f8fafc;padding:1.75rem;border-radius:var(--dash-radius-xl);box-shadow:var(--dash-shadow-xl);position:relative;overflow:hidden}.kiosk-lock-card:before{content:"";position:absolute;top:0;right:0;width:200px;height:200px;background:radial-gradient(circle,rgba(251,191,36,.15) 0%,transparent 70%);pointer-events:none}.kiosk-lock-card h2{margin:.25rem 0 .5rem;color:#fff;font-size:1.25rem}.kiosk-lock-card small{display:block;margin-top:.35rem;color:#94a3b8}.kiosk-lock-card .helper-text{color:#94a3b8}.kiosk-lock-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.kiosk-lock-card button{border-radius:999px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#78350f;font-weight:600;border:none;padding:.75rem 1.75rem;box-shadow:0 4px 12px #fbbf244d}.kiosk-lock-card button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #fbbf2466}.kiosk-lock-card button:disabled{opacity:.65;cursor:not-allowed;transform:none}.kiosk-lock-card .error-text{color:#fca5a5;font-size:.85rem}.card{background:var(--dash-surface);border-radius:var(--dash-radius-lg);padding:1.5rem;box-shadow:var(--dash-shadow);border:1px solid var(--dash-border-light)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--dash-border-light)}.edit-employee-header{align-items:flex-start;gap:1rem}.employee-number-pill{display:inline-flex;flex-direction:column;align-items:flex-end;gap:.15rem;background:linear-gradient(135deg,#0f172a,#1e293b);color:#f9fafb;padding:.6rem 1rem;border-radius:var(--dash-radius);min-width:130px;box-shadow:var(--dash-shadow)}.employee-number-pill span{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;opacity:.7}.employee-number-pill strong{font-size:1.5rem;letter-spacing:.08em;font-variant-numeric:tabular-nums}.pill{padding:.3rem .85rem;border-radius:999px;font-size:.8rem;font-weight:500;background:var(--dash-primary-light);color:var(--dash-primary)}.pill.warm{background:var(--dash-danger-light);color:var(--dash-danger)}.pill.soft{background:var(--dash-border-light);color:var(--dash-text-secondary)}.list-card{list-style:none;padding:0;margin:0}.list-card li{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--dash-border-light);transition:background var(--dash-transition)}.list-card li:hover{background:var(--dash-primary-light);margin:0 -1rem;padding:1rem;border-radius:var(--dash-radius)}.list-card.compact li{padding:.75rem 0}.list-card li:last-child{border-bottom:none}.list-card strong{display:block;color:var(--dash-text);font-weight:600}.list-card small{color:var(--dash-text-muted);font-size:.85rem}.list-card li.is-focused,.list-card li.is-focused:hover{background:var(--dash-info-light);margin:0 -1rem;padding:1rem;border-radius:var(--dash-radius);box-shadow:var(--dash-shadow-sm)}.list-card.compact li.is-focused,.list-card.compact li.is-focused:hover{padding:.75rem 1rem}button.list-link{width:100%;background:transparent;border:none;color:inherit;font:inherit;padding:0;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:.75rem;cursor:pointer;transition:color var(--dash-transition)}button.list-link:hover,button.list-link:active{background:transparent;transform:none;box-shadow:none}button.list-link:focus-visible{outline:2px solid var(--dash-primary);outline-offset:2px;border-radius:var(--dash-radius)}button.list-link .list-link-meta{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem}button.list-link .list-link-meta strong{font-size:1rem}button.list-link .list-link-meta small{font-size:.85rem}button.list-link .status-badge{flex-shrink:0}button.list-link.alert-link{gap:1rem}button.list-link.alert-link .alert-chevron{font-size:1.25rem;color:var(--dash-text-muted);transition:transform var(--dash-transition),color var(--dash-transition)}button.list-link.alert-link:hover .alert-chevron,button.list-link.alert-link:focus-visible .alert-chevron{transform:translate(4px);color:var(--dash-text-secondary)}.schedule-calendar-card{margin-top:1.5rem}.schedule-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-top:1rem}.schedule-calendar-dow{font-size:.8rem;color:var(--dash-text-muted);font-weight:600}.schedule-calendar-cell{border:1px solid var(--dash-border-light);border-radius:12px;padding:.5rem;min-height:110px;background:var(--dash-surface)}.schedule-calendar-cell.is-outside{background:#94a3b814}.schedule-calendar-cell-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem}.schedule-calendar-daynum{font-size:.9rem}.schedule-calendar-count{font-size:.72rem}.schedule-calendar-shifts{display:flex;flex-direction:column;gap:.25rem}button.schedule-calendar-shift{padding:.15rem .25rem;border-radius:8px;background:#0f766e14}button.schedule-calendar-shift.attendance-absent{background:var(--dash-danger-light);border-left:3px solid var(--dash-danger)}button.schedule-calendar-shift.attendance-late{background:var(--dash-warning-light);border-left:3px solid var(--dash-warning)}button.schedule-calendar-shift span{font-size:.82rem}.schedule-calendar-empty{font-size:.8rem}.schedule-calendar-empty-message{margin-top:1rem}.assign-day-shift-row{display:flex;align-items:center;gap:.5rem;grid-column:1 / -1}.section-header-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.section-header-left h2{margin:0}.section-header-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.status-badge{padding:.35rem .85rem;border-radius:999px;font-size:.8rem;font-weight:500;text-transform:capitalize;display:inline-flex;align-items:center;gap:.35rem}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-badge.in-progress{background:var(--dash-info-light);color:#0369a1}.status-badge.in-progress:before{animation:pulse 2s infinite}.status-badge.alert{background:var(--dash-danger-light);color:var(--dash-danger)}.status-badge.waiting{background:var(--dash-warning-light);color:#b45309}.status-badge.success{background:var(--dash-success-light);color:var(--dash-success)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.25rem}.table-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.pin-input{letter-spacing:.2em;font-variant-numeric:tabular-nums;text-align:center;font-size:1.1rem;font-weight:600}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.actions button{margin-right:0}.actions .ghost{background:var(--dash-bg);color:var(--dash-text)}.ghost{background:var(--dash-bg);color:var(--dash-text);border:1px solid var(--dash-border)}.ghost:hover{background:var(--dash-border-light);border-color:var(--dash-border)}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:1.5rem}.report-card{background:var(--dash-surface);border-radius:var(--dash-radius-lg);padding:1.5rem;box-shadow:var(--dash-shadow);border:1px solid var(--dash-border-light)}.report-card select,.report-card input[type=date]{width:100%;margin-bottom:.75rem}.report-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.report-result{margin-top:1.5rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.report-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.report-total{text-align:right}.report-total span{display:block;font-size:.8rem;color:var(--dash-text-muted);text-transform:uppercase;letter-spacing:.05em}.report-total strong{font-size:2.25rem;color:var(--dash-primary);font-weight:700}.breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.25rem}.breakdown-card{border:1px solid var(--dash-border);border-radius:var(--dash-radius);padding:1rem 1.25rem;background:var(--dash-bg);transition:all var(--dash-transition)}.breakdown-card:hover{border-color:var(--dash-primary);background:var(--dash-primary-light)}.breakdown-card span{display:block;font-size:.8rem;color:var(--dash-text-muted);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.03em}.breakdown-card strong{font-size:1.35rem;color:var(--dash-text)}.report-table{margin-top:1.25rem}.login-panel{max-width:480px;margin:4rem auto;text-align:left}.login-panel .card{padding:2.5rem}.login-panel h2{text-align:center;margin-bottom:.5rem}.login-panel .form-grid{grid-template-columns:1fr}.login-panel button{width:100%;padding:1rem;font-size:1rem}.helper-text{margin-top:.75rem;color:var(--dash-text-secondary);font-size:.9rem}.helper-text.error-text{color:var(--dash-danger);font-weight:500}.login-highlights{margin-top:1.25rem;padding-left:1.5rem;color:var(--dash-text-secondary)}.login-highlights li{margin-bottom:.35rem;line-height:1.5}.header-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1.25rem 0;border-bottom:1px solid var(--dash-border-light)}.tab-bar{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:2rem;background:linear-gradient(135deg,#0f172a,#1e293b);padding:.35rem;border-radius:var(--dash-radius-lg);box-shadow:var(--dash-shadow-lg)}.tab-button{background:transparent;color:#cbd5e1;border:none;border-radius:var(--dash-radius);padding:.75rem 1.5rem;font-weight:500;font-size:.9rem;transition:all var(--dash-transition)}.tab-button:hover{color:#fff;background:#ffffff1a;transform:none;box-shadow:none}.tab-button.active{color:#fff;background:var(--dash-primary);box-shadow:0 4px 12px #4f46e566}.dashboard-layout{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:2rem;align-items:flex-start}.dashboard-rail{display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:1rem}.dashboard-main{min-width:0;display:flex;flex-direction:column;gap:2rem}.rail-nav{flex-direction:column;background:var(--dash-surface);border:1px solid var(--dash-border-light);box-shadow:var(--dash-shadow);padding:1rem;border-radius:var(--dash-radius-xl);margin-bottom:0;gap:.5rem}.rail-nav .tab-button{justify-content:flex-start;width:100%;color:var(--dash-text-secondary)}.rail-nav .tab-button.active{background:var(--dash-primary-light);color:var(--dash-primary);box-shadow:none}.rail-card{background:var(--dash-surface);border:1px solid var(--dash-border-light);border-radius:var(--dash-radius-xl);box-shadow:var(--dash-shadow);padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.quick-action-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.quick-action-button{width:100%;display:flex;align-items:center;gap:.8rem;background:var(--dash-primary-light);color:var(--dash-primary);border:1px solid transparent;padding:.75rem 1rem;border-radius:var(--dash-radius-lg);transition:all var(--dash-transition)}.quick-action-button:hover{background:var(--dash-primary);color:#fff;box-shadow:var(--dash-shadow)}.quick-action-icon{font-size:1.25rem;line-height:1}.quick-action-meta{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;font-size:.85rem;color:var(--dash-text-secondary)}.quick-action-meta strong{color:var(--dash-text);font-size:.95rem}.rail-metrics-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.rail-metrics-list li{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:var(--dash-text-secondary)}.rail-metrics-list strong{font-size:1.1rem;color:var(--dash-text)}.subtitle{margin-top:.25rem;color:var(--dash-text-muted);font-size:.95rem}.user-chip{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}.user-chip strong{color:var(--dash-text);font-size:.95rem}.user-chip small{color:var(--dash-text-muted);font-size:.8rem}.alert-strip{background:var(--dash-warning-light);color:#92400e;padding:1rem 1.25rem;border-radius:var(--dash-radius);margin-bottom:1.25rem;display:flex;align-items:center;gap:.75rem;font-weight:500;border-left:4px solid var(--dash-warning)}.alert-strip.info-strip{background:var(--dash-info-light);color:#1e40af;border-left-color:var(--dash-info)}.inline-loading{margin-bottom:1rem;color:var(--dash-text-muted);display:flex;align-items:center;gap:.75rem}.inline-loading:before{content:"";width:18px;height:18px;border:2px solid var(--dash-border);border-top-color:var(--dash-primary);border-radius:50%;animation:spin .8s linear infinite}.empty-state{background:var(--dash-bg);border:2px dashed var(--dash-border);border-radius:var(--dash-radius-lg);padding:2.5rem 1.5rem;text-align:center;margin:1.5rem 0}.empty-state p{margin:0 0 .5rem;font-weight:600;color:var(--dash-text);font-size:1rem}.empty-state small{color:var(--dash-text-muted);font-size:.9rem}.export-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--dash-border-light)}.export-actions button{font-size:.875rem;padding:.6rem 1rem;background:var(--dash-bg);color:var(--dash-text);border:1px solid var(--dash-border)}.export-actions button:hover{background:var(--dash-primary-light);border-color:var(--dash-primary);color:var(--dash-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.payweek-card{margin-top:2rem}.payweek-report-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}.payweek-report-card{position:relative;max-width:8in;margin:0 auto;background:var(--dash-surface);border-radius:var(--dash-radius-lg);padding:1.5rem;box-shadow:var(--dash-shadow);border:1px solid var(--dash-border-light)}.payweek-report-card h4{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--dash-text-secondary);margin:1.25rem 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid var(--dash-border-light)}.report-total-stack{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.summary-chip{border:1px solid var(--dash-border);border-radius:var(--dash-radius);padding:.5rem 1rem;background:var(--dash-bg);text-align:center;min-width:120px;transition:all var(--dash-transition)}.summary-chip:hover{border-color:var(--dash-primary);background:var(--dash-primary-light)}.summary-chip span{display:block;font-size:.7rem;color:var(--dash-text-muted);text-transform:uppercase;letter-spacing:.05em}.summary-chip strong{display:block;font-size:1.25rem;color:var(--dash-text);font-weight:700}.job-hours-table,.work-hours-table{width:100%;border-collapse:collapse;margin:.5rem 0 1rem;background:transparent;box-shadow:none;border:none;font-size:.875rem}.job-hours-table th,.work-hours-table th{border-bottom:2px solid var(--dash-border);background:var(--dash-bg);color:var(--dash-text);font-size:.7rem;padding:.5rem .75rem}.job-hours-table td,.work-hours-table td{border-bottom:1px solid var(--dash-border-light);padding:.4rem .75rem;font-size:.85rem}.job-hours-table td:last-child,.work-hours-table td:last-child{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.work-hours-table td:nth-child(1){width:22%}.work-hours-table td:nth-child(2),.work-hours-table td:nth-child(3){width:14%;font-variant-numeric:tabular-nums}.work-hours-table td:nth-child(4){width:10%;text-align:center}.work-hours-table td:nth-child(5){width:40%;font-size:.8rem}.print-controls{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.print-controls button{background:linear-gradient(135deg,#0f172a,#1e293b)}.print-controls button:hover{background:linear-gradient(135deg,#1e293b,#334155)}.payweek-report-card.print-skip{opacity:.25;filter:grayscale(.5)}.payweek-print-all-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.25rem;background:var(--dash-surface);border-radius:var(--dash-radius);border:1px solid var(--dash-border-light);box-shadow:var(--dash-shadow-sm)}.payweek-period-info{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;color:var(--dash-text);font-size:.95rem}.payweek-period-info strong{color:var(--dash-text-secondary)}.payweek-period-info .employee-count{background:var(--dash-primary-light);color:var(--dash-primary);padding:.25rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600}.print-all-btn{background:linear-gradient(135deg,var(--dash-primary) 0%,var(--dash-primary-dark) 100%);color:#fff;padding:.75rem 1.5rem;font-weight:600;box-shadow:0 4px 12px #4f46e540}.print-all-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #4f46e559}@media print{@page{size:letter portrait;margin:.4in .5in}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{background:#fff!important;font-size:9pt!important}.dashboard{padding:0!important;max-width:none!important}.header-actions,.nav,.login-panel,.payweek-card form,.payweek-card button,.print-controls,.user-chip,.alert-strip,.tab-bar,.mode-reset-button,.export-actions{display:none!important}.payweek-report-grid{display:block!important;gap:0!important}.payweek-report-card{box-shadow:none!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important;page-break-after:always;page-break-inside:avoid;break-after:page;break-inside:avoid;max-height:9.5in;overflow:hidden}.payweek-report-card:last-child{page-break-after:auto}.payweek-report-card .report-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.3in;padding-bottom:.15in;border-bottom:2pt solid #000}.payweek-report-card .report-header h3{font-size:14pt!important;font-weight:700;margin:0 0 2pt;color:#000!important;text-transform:none;letter-spacing:normal}.payweek-report-card .report-header small{font-size:9pt;color:#333!important}.report-total-stack{display:flex;gap:.15in}.summary-chip{background:#f5f5f5!important;border:1pt solid #ccc!important;border-radius:4pt!important;padding:4pt 8pt!important;min-width:auto!important}.summary-chip span{font-size:7pt!important;color:#666!important}.summary-chip strong{font-size:11pt!important;color:#000!important}.payweek-report-card h4{font-size:10pt!important;font-weight:700;margin:.15in 0 .08in;color:#000!important;text-transform:uppercase;letter-spacing:.5pt;border-bottom:.5pt solid #999;padding-bottom:3pt}.job-hours-table,.work-hours-table{width:100%!important;border-collapse:collapse!important;margin:.05in 0 .1in!important;font-size:8pt!important}.job-hours-table th,.work-hours-table th{background:#eee!important;border:.5pt solid #999!important;padding:4pt 6pt!important;font-size:7pt!important;font-weight:700;text-transform:uppercase;color:#333!important}.job-hours-table td,.work-hours-table td{border:.5pt solid #ccc!important;padding:3pt 6pt!important;font-size:8pt!important;color:#000!important}.job-hours-table tbody tr:nth-child(2n),.work-hours-table tbody tr:nth-child(2n){background:#f9f9f9!important}.work-hours-table td:nth-child(1){width:22%!important;font-weight:600}.work-hours-table td:nth-child(2),.work-hours-table td:nth-child(3){width:14%!important}.work-hours-table td:nth-child(4){width:10%!important;text-align:center!important}.work-hours-table td:nth-child(5){width:40%!important;font-size:7pt!important}.job-hours-table td:first-child{width:75%!important}.job-hours-table td:last-child{width:25%!important;text-align:right!important;font-weight:600!important}}@media (max-width: 1200px){.dashboard-layout{grid-template-columns:1fr}.dashboard-rail{position:static}.rail-nav{flex-direction:row;overflow-x:auto}.rail-nav .tab-button{width:auto;white-space:nowrap}.overview-columns{grid-template-columns:1fr}.overview-column.narrow{max-width:none}}@media (max-width: 768px){.dashboard{padding:0 1rem 2rem}.tab-bar{gap:.25rem;padding:.25rem}.tab-button{padding:.6rem 1rem;font-size:.85rem}.dashboard-layout{gap:1.5rem}.quick-action-button{align-items:flex-start}.rail-card{padding:1rem}.header-actions{flex-direction:column;align-items:flex-start}.metrics-grid{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}.modal{min-width:auto;width:95vw;padding:1.5rem}}@media (max-width: 480px){.metrics-grid,.breakdown-grid,.report-dates{grid-template-columns:1fr}}.whos-working-card{background:var(--dash-surface)}.live-indicator{background:#dcfce7!important;color:#166534!important;animation:live-pulse 2s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.7}}.whos-working-list{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto}.worker-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--dash-bg);border-radius:var(--dash-radius);border:1px solid var(--dash-border-light);transition:all var(--dash-transition)}.worker-card:hover{border-color:var(--dash-primary-light);box-shadow:var(--dash-shadow)}.worker-card.overtime-warning{background:var(--dash-warning-light);border-color:var(--dash-warning)}.worker-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--dash-primary) 0%,#7c3aed 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0;text-transform:uppercase}.worker-details{flex:1;min-width:0}.worker-name{font-weight:600;color:var(--dash-text);display:flex;align-items:center;gap:.5rem}.overtime-badge{font-size:1rem;cursor:help}.worker-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.worker-job{font-size:.8rem;color:var(--dash-text-secondary);background:var(--dash-primary-light);padding:.125rem .5rem;border-radius:4px}.worker-machines{font-size:.8rem;color:var(--dash-text-muted)}.worker-time-row{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.clock-in-time{font-size:.75rem;color:var(--dash-text-muted)}.elapsed-time{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--dash-success);background:var(--dash-success-light);padding:.25rem .5rem;border-radius:6px}.worker-card.overtime-warning .elapsed-time{color:var(--dash-warning);background:#fff}.whos-working-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--dash-border-light);text-align:center;font-size:.875rem;color:var(--dash-text-secondary)}.empty-state{padding:2rem;text-align:center;color:var(--dash-text-muted)}.empty-icon{font-size:2.5rem;display:block;margin-bottom:.5rem}.empty-state p{margin:0;font-size:.9rem}.status-badge.warning{background:var(--dash-warning-light);color:#b45309}.job-overrun-banner{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,var(--dash-danger-light) 0%,#fee2e2 100%);border:1px solid var(--dash-danger);border-radius:var(--dash-radius-lg);margin-bottom:1.5rem;box-shadow:var(--dash-shadow-sm)}.job-overrun-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem;color:var(--dash-text-secondary);font-size:.85rem}.job-overrun-list li{display:flex;flex-direction:column}.job-overrun-name{font-weight:600;color:var(--dash-text)}.job-overrun-hours{font-size:.8rem;color:var(--dash-text-muted)}.job-overrun-more{display:block;margin-top:.5rem;font-size:.75rem;color:var(--dash-text-muted)}.overtime-alert-banner{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:linear-gradient(135deg,var(--dash-warning-light) 0%,#fef3c7 100%);border:1px solid var(--dash-warning);border-radius:var(--dash-radius-lg);margin-bottom:1.5rem;animation:alert-slide-in .3s ease-out}.overview-wrapper{display:flex;flex-direction:column;gap:1.5rem}.priority-grid{display:flex;flex-direction:column;gap:1rem}.metrics-overview-card{padding:1.5rem}.metrics-overview-card .metrics-grid{margin:0}.metrics-overview-card .metric-card{min-height:140px}.metric-card.metric-info{background:linear-gradient(135deg,var(--dash-info) 0%,#2563eb 100%)}.metric-card.metric-info:before{opacity:.4}.overview-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1.5rem}.overview-column{display:flex;flex-direction:column;gap:1.5rem}.overview-column.narrow{max-width:420px}.hours-summary-card table{margin:0}.hours-summary-table{width:100%}.hours-summary-table th,.hours-summary-table td{text-align:left}.list-card .list-empty{width:100%;display:block;text-align:center;padding:1rem 0;color:var(--dash-text-muted)}.missed-punch-card ul{margin:0}@keyframes alert-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alert-icon{font-size:1.5rem;flex-shrink:0}.alert-content{flex:1}.alert-content strong{display:block;color:#b45309;font-size:.95rem}.alert-names{font-size:.85rem;color:var(--dash-text-secondary)}.alert-dismiss{padding:.5rem 1rem;background:#fff;border:1px solid var(--dash-warning);border-radius:var(--dash-radius-sm);color:#b45309;font-weight:600;font-size:.85rem;cursor:pointer;transition:all var(--dash-transition)}.alert-dismiss:hover{background:var(--dash-warning);color:#fff}.metric-card.metric-warning{background:linear-gradient(135deg,var(--dash-warning-light) 0%,#fef3c7 100%);border-color:var(--dash-warning)}.metric-card.metric-warning strong{color:var(--dash-warning)}.metric-card.metric-danger{background:linear-gradient(135deg,var(--dash-danger-light) 0%,#fee2e2 100%);border-color:var(--dash-danger)}.metric-card.metric-danger strong{color:var(--dash-danger)}.quick-time-entry-section{margin-bottom:2rem}.quick-time-entry-section .card{background:linear-gradient(135deg,var(--dash-surface) 0%,#f8fafc 100%);border:1px solid var(--dash-primary-light)}.quick-time-entry-section .card-header h2{margin:0;display:flex;align-items:center;gap:.5rem}.quick-time-form{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;align-items:end}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.8rem;font-weight:600;color:var(--dash-text-secondary);text-transform:uppercase;letter-spacing:.03em}.form-group input,.form-group select{padding:.625rem .875rem;border:1px solid var(--dash-border);border-radius:var(--dash-radius-sm);font-size:.9rem;background:var(--dash-surface);transition:all var(--dash-transition)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--dash-primary);box-shadow:0 0 0 3px var(--dash-primary-light)}.form-group.form-actions{justify-content:flex-end}.form-status{margin-top:.75rem;padding:.75rem 1rem;border-radius:var(--dash-radius-sm);background:var(--dash-danger-light);color:var(--dash-danger);font-size:.875rem}.form-status.success{background:var(--dash-success-light);color:var(--dash-success)}.punches-tab h2{margin-bottom:1rem}.punches-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.punches-layout .card{background:var(--dash-surface);border-radius:var(--dash-radius-lg);padding:1.5rem;box-shadow:var(--dash-shadow)}.punches-layout .card h3{margin-bottom:1rem;font-size:1.1rem;border-bottom:1px solid var(--dash-border);padding-bottom:.75rem}.sidebar-header .logo{display:flex;align-items:center;justify-content:center;padding:1rem .5rem}.sidebar-header .logo img{max-width:100%;max-height:112px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.12))}.main-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:var(--dash-surface);border-bottom:1px solid var(--dash-border-light);border-radius:16px;box-shadow:var(--dash-shadow-sm);margin-bottom:1rem}.topbar-brand img{height:42px;width:auto;object-fit:contain}.topbar-brand-text{font-weight:700;font-size:1.25rem;color:var(--dash-text)}.topbar-user{display:flex;align-items:center;gap:.75rem}.topbar-avatar{width:42px;height:42px;border-radius:50%;background:var(--dash-primary-light);color:var(--dash-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;box-shadow:var(--dash-shadow-sm)}.topbar-user-meta{display:flex;flex-direction:column;line-height:1.2}.topbar-name{font-weight:700;color:var(--dash-text)}.topbar-dept{font-size:.85rem;color:var(--dash-text-secondary)}.sidebar-footer .user-info{display:flex;align-items:center;gap:.75rem}.sidebar-footer .user-info .avatar{width:40px;height:40px;border-radius:50%;background:var(--dash-primary-light);color:var(--dash-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;box-shadow:var(--dash-shadow-sm);flex-shrink:0}.sidebar-footer .user-info .details{flex:1;min-width:0}.sidebar-footer .user-info .subtext{font-size:.8rem;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{background:transparent;border:1px solid rgba(255,255,255,.18);color:inherit;padding:.4rem .6rem;border-radius:10px;cursor:pointer}.logout-btn:hover{border-color:#ffffff59;background:#ffffff0f}.sidebar-footer .sidebar-login{margin-top:.6rem;display:grid;gap:.5rem}.sidebar-footer .sidebar-login input{width:100%;padding:.5rem .6rem;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:inherit;outline:none}.sidebar-footer .sidebar-login input::placeholder{color:#ffffffa6}.user-info--signed-out .name{opacity:.9}.punches-layout .form-grid{display:grid;gap:1rem}.punches-layout .form-field{display:flex;flex-direction:column;gap:.5rem}.punches-layout .form-field label{font-size:.875rem;font-weight:500;color:var(--dash-text-secondary)}.punches-layout .form-actions{display:flex;justify-content:flex-end;padding-top:.5rem}.punches-layout .empty-state{text-align:center;color:var(--dash-text-muted);padding:2rem;font-size:.9rem}.punch-type-badge{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.punch-type-badge.in{background:var(--dash-success-light);color:var(--dash-success)}.punch-type-badge.out{background:var(--dash-danger-light);color:var(--dash-danger)}.punch-type-badge.break_start,.punch-type-badge.break_end{background:var(--dash-warning-light);color:var(--dash-warning)}.punch-type-badge.job_switch{background:var(--dash-info-light);color:var(--dash-info)}.punches-layout .actions{display:flex;gap:.5rem}.punches-layout button.small{padding:.35rem .75rem;font-size:.8rem}.punches-layout button.danger{color:var(--dash-danger)}.punches-layout button.danger:hover{background:var(--dash-danger-light)}.timeoff-tab h2{margin-bottom:1rem}.timeoff-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.timeoff-layout .card{background:var(--dash-surface);border-radius:var(--dash-radius-lg);padding:1.5rem;box-shadow:var(--dash-shadow)}.timeoff-layout .card h3{margin-bottom:1rem;font-size:1.1rem;border-bottom:1px solid var(--dash-border);padding-bottom:.75rem}.filter-row{display:flex;gap:1rem;margin-bottom:1rem;padding:.5rem 0}.filter-row label{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.875rem;color:var(--dash-text-secondary)}.filter-row input[type=radio]{accent-color:var(--dash-primary)}.request-list{display:flex;flex-direction:column;gap:1rem;max-height:500px;overflow-y:auto}.request-card{background:var(--dash-bg);border-radius:var(--dash-radius);padding:1rem;border-left:4px solid var(--dash-text-muted)}.request-card.status-pending{border-left-color:var(--dash-warning)}.request-card.status-approved{border-left-color:var(--dash-success)}.request-card.status-rejected{border-left-color:var(--dash-danger)}.request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.request-header strong{font-size:1rem}.request-details{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;font-size:.875rem;color:var(--dash-text-secondary)}.request-notes{margin-top:.75rem;font-style:italic;color:var(--dash-text-muted);font-size:.875rem}.request-actions{display:flex;gap:.5rem;margin-top:1rem}.btn-approve{background:var(--dash-success);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--dash-radius-sm);cursor:pointer;font-weight:500;transition:var(--dash-transition)}.btn-approve:hover{background:#059669}.btn-reject{background:var(--dash-danger);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--dash-radius-sm);cursor:pointer;font-weight:500;transition:var(--dash-transition)}.btn-reject:hover{background:#dc2626}.review-info{margin-top:.5rem;font-size:.75rem;color:var(--dash-text-muted)}.balance-table-wrapper{overflow-x:auto;margin-bottom:1.5rem}.balance-table{width:100%;border-collapse:collapse;font-size:.875rem}.balance-table th,.balance-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--dash-border)}.balance-table th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.balance-table td{font-variant-numeric:tabular-nums}.balance-table tbody tr:hover{background:var(--dash-bg)}.adjust-balance-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--dash-border)}.adjust-balance-form h4{margin-bottom:.75rem;font-size:.9rem;color:var(--dash-text-secondary)}.inline-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.inline-form select,.inline-form input{padding:.5rem .75rem;border:1px solid var(--dash-border);border-radius:var(--dash-radius-sm);font-size:.875rem}.inline-form select{min-width:150px}.inline-form input[type=number]{width:100px}.inline-form button{background:var(--dash-primary);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--dash-radius-sm);cursor:pointer;font-weight:500;transition:var(--dash-transition)}.inline-form button:hover{background:var(--dash-primary-hover)}.types-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.type-chip{background:var(--dash-bg);padding:.75rem 1rem;border-radius:var(--dash-radius-sm);display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.875rem}.type-chip strong{font-weight:600}.paid-badge{background:var(--dash-success-light);color:var(--dash-success);padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.unpaid-badge{background:var(--dash-text-muted);color:#fff;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.accrual-info,.max-info{color:var(--dash-text-muted);font-size:.8rem}.add-type-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--dash-border)}.add-type-form h4{margin-bottom:.75rem;font-size:.9rem;color:var(--dash-text-secondary)}.type-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.type-form input[type=text]{padding:.5rem .75rem;border:1px solid var(--dash-border);border-radius:var(--dash-radius-sm);font-size:.875rem;width:140px}.type-form input[type=number]{padding:.5rem .75rem;border:1px solid var(--dash-border);border-radius:var(--dash-radius-sm);font-size:.875rem;width:120px}.type-form input[type=color]{width:40px;height:32px;border:1px solid var(--dash-border);border-radius:var(--dash-radius-sm);cursor:pointer}.checkbox-label{display:flex;align-items:center;gap:.3rem;font-size:.875rem;cursor:pointer}.checkbox-label input[type=checkbox]{accent-color:var(--dash-primary)}.type-form button{background:var(--dash-primary);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--dash-radius-sm);cursor:pointer;font-weight:500;transition:var(--dash-transition)}.type-form button:hover{background:var(--dash-primary-hover)}.no-data{color:var(--dash-text-muted);font-style:italic;text-align:center;padding:2rem}.warning-strip{background:var(--dash-warning-light);color:#92400e;border-left:4px solid var(--dash-warning)}.punch-filter-grid{margin-bottom:1rem;grid-template-columns:1fr 1fr auto}.utilization-card{background:var(--dash-surface);border-radius:var(--dash-radius-lg);padding:1.5rem;box-shadow:var(--dash-shadow);margin-top:1.5rem}.utilization-chart-container{display:flex;align-items:center;justify-content:center;gap:3rem;padding:1rem 0}.pie-chart{width:160px;height:160px;border-radius:50%;background:conic-gradient(var(--dash-success) 0% var(--percentage),var(--dash-border-light) var(--percentage) 100%);position:relative;display:flex;align-items:center;justify-content:center;transition:--percentage 1s ease-out}.pie-chart:after{content:"";position:absolute;width:110px;height:110px;background:var(--dash-surface);border-radius:50%}.pie-chart-label{position:absolute;z-index:1;display:flex;flex-direction:column;align-items:center;line-height:1.2}.pie-chart-value{font-size:1.75rem;font-weight:700;color:var(--dash-text)}.pie-chart-sub{font-size:.875rem;color:var(--dash-text-secondary);font-weight:500}.chart-legend{display:flex;flex-direction:column;gap:1rem}.legend-item{display:flex;align-items:center;gap:.75rem}.legend-color{width:16px;height:16px;border-radius:4px}.legend-info{display:flex;flex-direction:column}.legend-label{font-size:.875rem;color:var(--dash-text-secondary)}.legend-value{font-size:1.125rem;font-weight:600;color:var(--dash-text)}.company-switcher{width:100%;margin-top:.75rem;padding:.5rem .625rem;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--dash-radius-sm);color:#f1f5f9;font-size:.8rem;font-family:inherit;cursor:pointer;transition:background var(--dash-transition),border-color var(--dash-transition)}.company-switcher:hover{background:#ffffff24;border-color:#fff3}.company-switcher:focus{outline:none;border-color:var(--dash-primary);box-shadow:0 0 0 2px #6366f14d}.company-switcher option{background:#1e293b;color:#f1f5f9}.sidebar-toggle{display:none;position:fixed;top:1rem;left:1rem;z-index:1001;width:40px;height:40px;border-radius:var(--dash-radius);background:#1e293b;color:#f1f5f9;border:none;font-size:1.25rem;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--dash-shadow);transition:background var(--dash-transition)}.sidebar-toggle:hover{background:#334155}@media (max-width: 768px){.sidebar-toggle{display:flex}.sidebar{position:fixed;left:0;top:0;height:100vh;z-index:1000;transform:translate(0);transition:transform .3s ease}.sidebar.sidebar--collapsed{transform:translate(-100%)}.main-content{margin-left:0!important;padding-top:3.5rem}.card{padding:1rem}.form-grid,.grid-two{grid-template-columns:1fr}.table-wrapper,table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.metrics-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}}@media (max-width: 480px){.metrics-grid{grid-template-columns:1fr}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.empty-state__icon{font-size:3rem;margin-bottom:1rem;opacity:.6}.empty-state__title{font-size:1.1rem;font-weight:600;color:var(--dash-text);margin:0 0 .5rem}.empty-state__description{font-size:.9rem;color:var(--dash-text-muted);margin:0 0 1.5rem;max-width:320px;line-height:1.5}.empty-state__action{padding:.6rem 1.25rem;background:var(--dash-primary);color:#fff;border:none;border-radius:var(--dash-radius);font-weight:600;font-size:.875rem;cursor:pointer;transition:background var(--dash-transition)}.empty-state__action:hover{background:var(--dash-primary-hover)}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:confirm-overlay-in .2s ease-out}.confirm-modal{background:var(--dash-surface, #fff);border-radius:var(--dash-radius-xl, 1.5rem);padding:2rem;max-width:min(440px,90vw);width:100%;box-shadow:var(--dash-shadow-xl, 0 20px 25px -5px rgba(0,0,0,.1));animation:confirm-modal-in .25s cubic-bezier(.34,1.56,.64,1)}.confirm-modal__icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1rem}.confirm-modal--danger .confirm-modal__icon{background:var(--dash-danger-light, #fee2e2)}.confirm-modal--warning .confirm-modal__icon{background:var(--dash-warning-light, #fef3c7)}.confirm-modal--info .confirm-modal__icon{background:var(--dash-info-light, #dbeafe)}.confirm-modal__title{font-size:1.25rem;font-weight:700;color:var(--dash-text, #111827);margin:0 0 .5rem}.confirm-modal__message{font-size:.9rem;color:var(--dash-text-secondary, #4b5563);line-height:1.6;margin:0 0 1.5rem;white-space:pre-line}.confirm-modal__actions{display:flex;justify-content:flex-end;gap:.75rem}.confirm-modal__cancel{padding:.65rem 1.25rem;background:var(--dash-bg, #f3f4f6);color:var(--dash-text-secondary, #4b5563);border:1px solid var(--dash-border, #e5e7eb);border-radius:var(--dash-radius, .75rem);font-weight:600;font-size:.875rem;cursor:pointer;transition:all .15s}.confirm-modal__cancel:hover{background:var(--dash-border, #e5e7eb)}.confirm-modal__confirm{padding:.65rem 1.25rem;color:#fff;border:none;border-radius:var(--dash-radius, .75rem);font-weight:600;font-size:.875rem;cursor:pointer;transition:all .15s}.confirm-modal--danger .confirm-modal__confirm{background:var(--dash-danger, #ef4444)}.confirm-modal--danger .confirm-modal__confirm:hover{background:#dc2626}.confirm-modal--warning .confirm-modal__confirm{background:var(--dash-warning, #f59e0b)}.confirm-modal--warning .confirm-modal__confirm:hover{background:#d97706}.confirm-modal--info .confirm-modal__confirm{background:var(--dash-primary, #6366f1)}.confirm-modal--info .confirm-modal__confirm:hover{background:var(--dash-primary-hover, #4f46e5)}@keyframes confirm-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-modal-in{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.emp-dash-greeting{margin-bottom:1.5rem}.emp-dash-greeting h1{margin-bottom:.25rem}.emp-dash-greeting p{color:var(--dash-text-muted);font-size:.9rem}.emp-dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.emp-stat-card{background:var(--dash-surface);border:1px solid var(--dash-border);border-radius:var(--dash-radius-lg);padding:1.25rem;display:flex;align-items:center;gap:1rem}.emp-stat-card__icon{width:44px;height:44px;border-radius:var(--dash-radius);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.emp-stat-card__icon--primary{background:var(--dash-primary-light)}.emp-stat-card__icon--success{background:var(--dash-success-light)}.emp-stat-card__icon--warning{background:var(--dash-warning-light)}.emp-stat-card__icon--info{background:var(--dash-info-light)}.emp-stat-card__value{font-size:1.5rem;font-weight:700;color:var(--dash-text);line-height:1.2}.emp-stat-card__label{font-size:.8rem;color:var(--dash-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.emp-section{background:var(--dash-surface);border:1px solid var(--dash-border);border-radius:var(--dash-radius-lg);padding:1.5rem;margin-bottom:1.5rem}.emp-section__header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--dash-border-light)}.emp-section__header h3{margin:0;font-size:1rem;font-weight:600;color:var(--dash-text)}.emp-section__icon{font-size:1.1rem}.detail-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:900;animation:drawerFadeIn .2s ease}.detail-drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,92vw);background:var(--dash-surface);box-shadow:var(--dash-shadow-xl);z-index:901;display:flex;flex-direction:column;animation:drawerSlideIn .25s cubic-bezier(.4,0,.2,1);overflow-y:auto}@keyframes drawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes drawerSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--dash-border);gap:1rem;position:sticky;top:0;background:var(--dash-surface);z-index:2}.drawer-header__info{flex:1;min-width:0}.drawer-header__title{margin:0;font-size:1.15rem;font-weight:700;color:var(--dash-text);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.drawer-header__subtitle{margin:.25rem 0 0;font-size:.85rem;color:var(--dash-text-muted)}.drawer-close{background:none;border:1px solid var(--dash-border);border-radius:var(--dash-radius-sm);width:36px;height:36px;font-size:1.2rem;cursor:pointer;color:var(--dash-text-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--dash-transition),color var(--dash-transition)}.drawer-close:hover{background:var(--dash-bg);color:var(--dash-text)}.drawer-body{padding:1.5rem;flex:1}.drawer-section{margin-bottom:1.5rem}.drawer-section__title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--dash-text-muted);margin:0 0 .75rem}.burn-rate{background:var(--dash-bg);border-radius:var(--dash-radius);padding:1rem;margin-bottom:1rem}.burn-rate__labels{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.8rem;color:var(--dash-text-secondary)}.burn-rate__value{font-weight:700;color:var(--dash-text)}.burn-rate__track{height:12px;background:var(--dash-border);border-radius:6px;overflow:hidden;position:relative}.burn-rate__fill{height:100%;border-radius:6px;transition:width .6s cubic-bezier(.4,0,.2,1);min-width:2px}.burn-rate__fill--ok{background:var(--dash-success)}.burn-rate__fill--warning{background:var(--dash-warning)}.burn-rate__fill--danger{background:var(--dash-danger)}.burn-rate__summary{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.78rem;color:var(--dash-text-muted)}.burn-rate__percent{font-weight:700;font-size:1.5rem;line-height:1}.burn-rate__percent--ok{color:var(--dash-success)}.burn-rate__percent--warning{color:var(--dash-warning)}.burn-rate__percent--danger{color:var(--dash-danger)}.breakdown-chart{display:flex;flex-direction:column;gap:.5rem}.breakdown-row{display:flex;align-items:center;gap:.75rem}.breakdown-row__label{min-width:110px;max-width:140px;font-size:.8rem;color:var(--dash-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breakdown-row__bar-track{flex:1;height:8px;background:var(--dash-border);border-radius:4px;overflow:hidden}.breakdown-row__bar-fill{height:100%;border-radius:4px;background:var(--dash-primary);transition:width .5s ease;min-width:2px}.breakdown-row__value{min-width:50px;text-align:right;font-size:.8rem;font-weight:600;color:var(--dash-text)}.daily-chart{display:flex;align-items:flex-end;gap:3px;height:80px;padding-top:.5rem}.daily-chart__bar{flex:1;min-width:0;background:var(--dash-primary-light);border-radius:3px 3px 0 0;transition:height .4s ease;position:relative;cursor:default}.daily-chart__bar:hover{background:var(--dash-primary)}.daily-chart__bar:hover:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:var(--dash-text);color:#fff;font-size:.7rem;padding:2px 6px;border-radius:4px;white-space:nowrap;z-index:5}.daily-chart__labels{display:flex;gap:3px;margin-top:.25rem}.daily-chart__day-label{flex:1;text-align:center;font-size:.6rem;color:var(--dash-text-muted)}.machine-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;border-radius:99px;font-size:.72rem;font-weight:600;line-height:1.3;white-space:nowrap;vertical-align:middle}.machine-badge--laser{background:#dbeafe;color:#1d4ed8}.machine-badge--bend{background:#d1fae5;color:#047857}.machine-badge--welder{background:#fef3c7;color:#b45309}.machine-badge--utility{background:#ede9fe;color:#6d28d9}.machine-badge--rolling{background:#fee2e2;color:#b91c1c}.machine-badge--supervisor{background:#e5e7eb;color:#1f2937}.metric-card-btn{background:none;border:none;padding:0;cursor:pointer;text-align:left;width:100%;border-radius:var(--dash-radius);transition:transform var(--dash-transition),box-shadow var(--dash-transition)}.metric-card-btn:hover{transform:translateY(-2px);box-shadow:var(--dash-shadow)}.metric-card-btn:active{transform:translateY(0)}.metric-card-btn .metric-card{margin:0}.worker-card--clickable{cursor:pointer;transition:background var(--dash-transition),box-shadow var(--dash-transition)}.worker-card--clickable:hover{background:var(--dash-bg);box-shadow:var(--dash-shadow-sm)}.worker-card--clickable:active{background:var(--dash-border)}.worker-job-link{color:var(--dash-primary);cursor:pointer;text-decoration:none;font-weight:500}.worker-job-link:hover{text-decoration:underline}.entry-list{font-size:.82rem}.entry-list table{width:100%;border-collapse:collapse}.entry-list th{text-align:left;font-weight:600;color:var(--dash-text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:.4rem .5rem;border-bottom:1px solid var(--dash-border)}.entry-list td{padding:.4rem .5rem;border-bottom:1px solid var(--dash-border-light);color:var(--dash-text-secondary)}.entry-list tr:last-child td{border-bottom:none}.emp-detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem;margin-bottom:1rem}.emp-detail-stat{background:var(--dash-bg);border-radius:var(--dash-radius-sm);padding:.75rem;text-align:center}.emp-detail-stat__value{font-size:1.3rem;font-weight:700;color:var(--dash-text)}.emp-detail-stat__label{font-size:.7rem;color:var(--dash-text-muted);text-transform:uppercase;letter-spacing:.04em}.drawer-loading{display:flex;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--dash-text-muted);font-size:.9rem}@media (prefers-reduced-motion: reduce){.detail-drawer,.detail-drawer-overlay{animation:none}}.inline-actions{display:flex;gap:.35rem;flex-shrink:0;margin-left:auto}.inline-action-btn{border:none;border-radius:var(--dash-radius-sm, 6px);width:32px;height:32px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s,box-shadow .12s,background .12s}.inline-action-btn:active{transform:scale(.92)}.inline-action-btn--approve{background:#d1fae5;color:#047857}.inline-action-btn--approve:hover{background:#a7f3d0;box-shadow:0 1px 4px #04785733}.inline-action-btn--reject{background:#fee2e2;color:#b91c1c}.inline-action-btn--reject:hover{background:#fecaca;box-shadow:0 1px 4px #b91c1c33}.list-card.compact li:not(.list-empty){cursor:pointer;transition:background .12s,padding-left .12s;border-radius:var(--dash-radius-sm, 6px)}.list-card.compact li:not(.list-empty):hover{background:var(--dash-bg, #f9fafb);padding-left:.75rem}.list-card.compact li:not(.list-empty):active{background:var(--dash-border-light, #e5e7eb)}.list-card.compact li:not(.list-empty):after{content:"›";font-size:1.1rem;font-weight:600;color:var(--dash-text-muted, #9ca3af);opacity:0;transition:opacity .15s;margin-left:auto;padding-left:.5rem}.list-card.compact li:not(.list-empty):hover:after{opacity:1}.list-card.compact li.has-inline-actions:after{display:none}.hours-summary-table tbody tr{cursor:pointer;transition:background .12s}.hours-summary-table tbody tr:hover{background:var(--dash-primary-light, #eef2ff)}.hours-summary-table tbody tr:active{background:var(--dash-border-light, #e5e7eb)}.metric-card__icon{font-size:1.3rem;line-height:1;margin-bottom:.25rem}.metric-card__arrow{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--dash-text-muted, #9ca3af);opacity:0;transition:opacity .15s,transform .15s}.metric-card-btn:hover .metric-card__arrow{opacity:1;transform:translateY(-50%) translate(2px)}.metric-card{position:relative}.metric-card strong{font-size:1.75rem}.drawer-edit-section{margin-top:1.5rem;padding-top:1.25rem;border-top:2px solid var(--dash-border, #e5e7eb)}.drawer-edit-section h4{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--dash-text-muted);margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.drawer-form-group{margin-bottom:.85rem}.drawer-form-group label{display:block;font-size:.78rem;font-weight:600;color:var(--dash-text-secondary);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}.drawer-form-group input,.drawer-form-group select{width:100%;padding:.55rem .75rem;border:1px solid var(--dash-border);border-radius:var(--dash-radius-sm, 6px);font-size:.88rem;background:var(--dash-bg, #f9fafb);color:var(--dash-text);transition:border-color .15s,box-shadow .15s}.drawer-form-group input:focus,.drawer-form-group select:focus{outline:none;border-color:var(--dash-primary, #6366f1);box-shadow:0 0 0 3px var(--dash-primary-light, #eef2ff)}.drawer-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.drawer-form-actions{display:flex;gap:.5rem;margin-top:1rem}.drawer-form-actions .btn-save{flex:1;padding:.6rem 1rem;background:var(--dash-primary, #6366f1);color:#fff;border:none;border-radius:var(--dash-radius-sm, 6px);font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s}.drawer-form-actions .btn-save:hover{background:var(--dash-primary-hover, #4f46e5)}.drawer-form-actions .btn-save:disabled{opacity:.6;cursor:not-allowed}.job-color-picker{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.job-color-swatch{width:26px;height:26px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .15s;padding:0}.job-color-swatch:hover{transform:scale(1.15)}.job-color-swatch.active{border-color:#111827;box-shadow:0 0 0 2px #fff,0 0 0 4px #111827}.job-color-clear{font-size:.7rem;padding:.2rem .5rem;border-radius:4px;border:1px solid #d1d5db;background:#f9fafb;color:#6b7280;cursor:pointer;margin-left:4px}.job-color-clear:hover{background:#e5e7eb}.drawer-form-status{font-size:.8rem;margin-top:.5rem;padding:.4rem .6rem;border-radius:var(--dash-radius-sm, 6px)}.drawer-form-status--success{background:#d1fae5;color:#047857}.drawer-form-status--error{background:#fee2e2;color:#b91c1c}.shift-drawer-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.shift-drawer-detail{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:var(--dash-bg);border-radius:var(--dash-radius-sm, 6px);margin-bottom:1rem;font-size:.85rem}.shift-drawer-detail__row{display:flex;justify-content:space-between;align-items:center}.shift-drawer-detail__label{font-weight:600;color:var(--dash-text-muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.04em}.approval-row{display:flex;align-items:center;gap:.5rem;width:100%}.approval-row__info{flex:1;min-width:0}.approval-row__info strong{display:block}.approval-row__info small{color:var(--dash-text-muted)}.missed-punch-row{display:flex;align-items:center;gap:.5rem;width:100%}.missed-punch-row__info{flex:1;min-width:0}.missed-punch-row__fix{font-size:.72rem;padding:.2rem .5rem;background:var(--dash-primary-light, #eef2ff);color:var(--dash-primary, #6366f1);border:1px solid var(--dash-primary, #6366f1);border-radius:var(--dash-radius-sm, 6px);cursor:pointer;font-weight:600;transition:background .12s;white-space:nowrap}.missed-punch-row__fix:hover{background:var(--dash-primary, #6366f1);color:#fff}.machine-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-bottom:1rem}.machine-table th{text-align:left;padding:.4rem .6rem;font-weight:600;color:var(--dash-text-secondary);border-bottom:2px solid var(--dash-border, #e2e8f0);white-space:nowrap}.machine-table td{padding:.45rem .6rem;border-bottom:1px solid var(--dash-border, #e2e8f0);vertical-align:middle}.machine-table tbody tr:hover td{background:var(--dash-bg, #f8fafc)}.machine-table__editing td{background:var(--dash-primary-light, #eef2ff)}.machine-table input,.machine-table select{font-size:.82rem;padding:.2rem .4rem;border:1px solid var(--dash-border, #cbd5e1);border-radius:var(--dash-radius-sm, 6px);width:100%}.machine-type-badge{display:inline-block;font-size:.72rem;padding:.15rem .5rem;border-radius:999px;font-weight:600;text-transform:capitalize;background:#f1f5f9;color:#475569}.machine-type-badge--laser{background:#fef9c3;color:#a16207}.machine-type-badge--forming{background:#dbeafe;color:#1e40af}.machine-type-badge--welding{background:#fee2e2;color:#b91c1c}.machine-type-badge--rolling{background:#d1fae5;color:#065f46}.machine-type-badge--shipping{background:#f3e8ff;color:#7c3aed}.machine-type-badge--shearing{background:#fce7f3;color:#9d174d}.machine-type-badge--milling{background:#e0f2fe;color:#0369a1}.machine-type-badge--turning{background:#fff7ed;color:#c2410c}.machine-type-badge--grinding{background:#fdf4ff;color:#7e22ce}.machine-type-badge--drilling{background:#f0fdf4;color:#15803d}.machine-type-badge--press{background:#fff1f2;color:#be123c}.machine-type-badge--assembly{background:#ecfdf5;color:#047857}.machine-type-badge--inspection{background:#eff6ff;color:#1d4ed8}.machine-type-badge--painting{background:#fef3c7;color:#b45309}.machine-type-badge--other{background:#f1f5f9;color:#475569}.machine-types-manager{display:flex;flex-direction:column;gap:.75rem}.machine-types-list{display:flex;flex-wrap:wrap;gap:.4rem}.machine-types-list .machine-type-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;padding:.2rem .5rem;border-radius:999px;font-weight:500}.machine-type-remove{background:none;border:none;cursor:pointer;font-size:1rem;line-height:1;padding:0 .1rem;color:inherit;opacity:.5;transition:opacity .15s}.machine-type-remove:hover{opacity:1}.machine-types-add{display:flex;align-items:center}.machine-add-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.75rem}.machine-add-form input,.machine-add-form select{font-size:.85rem;padding:.35rem .6rem;border:1px solid var(--dash-border, #cbd5e1);border-radius:var(--dash-radius-sm, 6px)}.machine-add-form input{flex:1;min-width:140px}.traveller-section{border-top:2px solid var(--dash-primary-light, #eef2ff);padding-top:1rem;margin-top:.5rem}.traveller-header{display:flex;align-items:flex-start;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.traveller-header .drawer-section__title{margin:0}.traveller-presets{display:flex;gap:.4rem;flex-wrap:wrap;margin-left:auto}.preset-btn{font-size:.72rem;padding:.2rem .55rem;background:var(--dash-bg, #f8fafc);color:var(--dash-text-secondary, #64748b);border:1px solid var(--dash-border, #cbd5e1);border-radius:999px;cursor:pointer;font-weight:500;transition:background .12s,color .12s;white-space:nowrap}.preset-btn:hover{background:var(--dash-primary-light, #eef2ff);color:var(--dash-primary, #6366f1);border-color:var(--dash-primary, #6366f1)}.traveller-empty{font-size:.82rem;color:var(--dash-text-muted, #94a3b8);padding:.5rem 0;font-style:italic}.traveller-list{list-style:none;padding:0;margin:0 0 .75rem;display:flex;flex-direction:column;gap:.3rem}.traveller-op{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--dash-bg, #f8fafc);border:1px solid var(--dash-border, #e2e8f0);border-radius:var(--dash-radius-sm, 6px);font-size:.82rem;cursor:grab;transition:box-shadow .12s}.traveller-op:active{cursor:grabbing;box-shadow:0 2px 8px #6366f12e}.traveller-op__step{min-width:1.4rem;height:1.4rem;background:var(--dash-primary, #6366f1);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex-shrink:0}.traveller-op__name{font-weight:600;flex:1}.traveller-op__machine{font-size:.72rem;background:#f1f5f9;color:#475569;padding:.1rem .4rem;border-radius:999px}.traveller-op__machine--clickable{cursor:pointer;border:1px dashed #94a3b8;transition:background .15s,border-color .15s}.traveller-op__machine--clickable:hover{background:#e0e7ff;border-color:#6366f1;color:#4338ca}.traveller-op__time{font-size:.72rem;color:var(--dash-text-muted, #94a3b8);white-space:nowrap}.traveller-op__status{font-size:.68rem;padding:.1rem .4rem;border-radius:999px;font-weight:600;text-transform:capitalize}.traveller-op__status--pending{background:#f1f5f9;color:#64748b}.traveller-op__status--in-progress{background:#dbeafe;color:#1d4ed8}.traveller-op__status--completed{background:#dcfce7;color:#166534}.traveller-op__status--skipped{background:#fef9c3;color:#854d0e}.traveller-op__delete{background:none;border:none;color:#94a3b8;cursor:pointer;padding:0 .2rem;font-size:.78rem;line-height:1;flex-shrink:0}.traveller-op__delete:hover{color:#ef4444}.traveller-add-form{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin-top:.5rem}.traveller-add-form input,.traveller-add-form select{font-size:.82rem;padding:.3rem .5rem;border:1px solid var(--dash-border, #cbd5e1);border-radius:var(--dash-radius-sm, 6px)}.traveller-add-form input:first-child{flex:1;min-width:110px}.sched-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.75rem;padding:.5rem;background:var(--dash-bg, #f8fafc);border:1px dashed var(--dash-border, #cbd5e1);border-radius:var(--dash-radius-sm, 6px);min-height:2.5rem}.sched-chip{font-size:.72rem;padding:.2rem .55rem;background:var(--dash-primary, #6366f1);color:#fff;border-radius:999px;cursor:grab;font-weight:500;-webkit-user-select:none;user-select:none;transition:opacity .12s}.sched-chip--dragging{opacity:.5}.sched-chip:active{cursor:grabbing}.sched-grid{display:grid;grid-template-columns:100px repeat(5,1fr);gap:1px;background:var(--dash-border, #e2e8f0);border:1px solid var(--dash-border, #e2e8f0);border-radius:var(--dash-radius-sm, 6px);overflow:hidden;font-size:.78rem}.sched-grid__corner{background:#f1f5f9;padding:.4rem .5rem}.sched-grid__day-header{background:#f1f5f9;padding:.4rem .3rem;text-align:center;font-weight:600;font-size:.72rem;color:var(--dash-text-secondary, #64748b)}.sched-grid__machine-label{background:#fff;padding:.5rem;font-weight:600;font-size:.75rem;border-right:1px solid var(--dash-border, #e2e8f0);line-height:1.3}.sched-grid__cell{background:#fff;padding:.25rem;min-height:52px;cursor:pointer;transition:background .1s;display:flex;flex-direction:column;gap:.2rem}.sched-grid__cell:hover{background:#eef2ff}.sched-block{border-radius:4px;padding:.15rem .35rem;color:#fff;font-size:.68rem;line-height:1.3;cursor:pointer;overflow:hidden;transition:opacity .1s}.sched-block:hover{opacity:.85}.sched-block__title{display:block;font-weight:700}.sched-block__op{display:block;opacity:.85}.sched-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:900;display:flex;align-items:center;justify-content:center}.sched-popup{background:#fff;border-radius:var(--dash-radius, 12px);padding:1.25rem 1.5rem;width:min(580px,92vw);box-shadow:0 8px 32px #0000002e;z-index:901}.sched-popup h4{margin:0 0 1rem;font-size:1rem;font-weight:700}.sched-popup__close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--dash-muted, #64748b);padding:.2rem .4rem;border-radius:4px;line-height:1}.sched-popup__close:hover{background:#f1f5f9;color:#1e293b}.gantt-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.gantt-toolbar__left{display:flex;align-items:center}.gantt-toolbar__left h2{margin:0;font-size:1.2rem;font-weight:700}.gantt-toolbar__controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.gantt-view-toggle{display:flex;border:1px solid #d1d5db;border-radius:6px;overflow:hidden}.gantt-view-toggle button{padding:.35rem .85rem;border:none;background:#fff;cursor:pointer;font-size:.85rem;font-weight:500;color:#374151;transition:background .15s}.gantt-view-toggle button:not(:last-child){border-right:1px solid #d1d5db}.gantt-view-toggle button.active{background:var(--dash-primary, #6366f1);color:#fff}.gantt-view-toggle button:not(.active):hover{background:#f3f4f6}.gantt-nav{display:flex;align-items:center;gap:.25rem}.gantt-nav button{background:none;border:1px solid #d1d5db;border-radius:6px;padding:.35rem .7rem;font-size:1.1rem;cursor:pointer;line-height:1;color:#374151}.gantt-nav button:hover{background:#f3f4f6}.gantt-nav__label{font-size:.9rem;font-weight:600;color:#1e293b;min-width:10rem;text-align:center}.gantt-wrapper{display:flex;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff}.gantt-labels{flex:0 0 140px;min-width:140px;border-right:2px solid #e2e8f0;background:#f8fafc;z-index:2}.gantt-label-corner{height:54px;border-bottom:1px solid #e2e8f0;background:#f1f5f9}.gantt-label-row{height:64px;display:flex;flex-direction:column;justify-content:center;padding:0 .75rem;border-bottom:1px solid #e2e8f0}.gantt-label-name{font-size:.85rem;font-weight:600;color:#1e293b}.gantt-label-type{font-size:.72rem;color:#64748b;text-transform:capitalize;margin-top:2px}.gantt-scroll{flex:1;overflow-x:auto;overflow-y:visible;position:relative}.gantt-ruler{display:flex;height:54px;position:sticky;top:0;z-index:1;background:#f1f5f9;border-bottom:2px solid #e2e8f0}.gantt-ruler__day{display:flex;flex-direction:column;cursor:pointer;border-right:2px solid #cbd5e1;flex-shrink:0}.gantt-ruler__day:hover .gantt-ruler__day-label{color:var(--dash-primary, #6366f1)}.gantt-ruler__day-label{font-size:.75rem;font-weight:700;color:#374151;padding:4px 8px 2px;white-space:nowrap}.gantt-ruler__hours{display:flex}.gantt-ruler__hour{font-size:.68rem;color:#94a3b8;text-align:left;padding-left:4px;flex-shrink:0;border-right:1px solid #e2e8f0;display:flex;align-items:flex-end;padding-bottom:4px}.gantt-row{position:relative;height:64px;border-bottom:1px solid #e2e8f0;cursor:crosshair;flex-shrink:0}.gantt-row:last-child{border-bottom:none}.gantt-gridline{position:absolute;top:0;bottom:0;width:1px;background:#e2e8f0;pointer-events:none}.gantt-gridline.gantt-day-sep{background:#cbd5e1;width:2px}.gantt-block{position:absolute;top:8px;bottom:8px;border-radius:5px;color:#fff;cursor:grab;overflow:hidden;padding:3px 6px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 1px 4px #0000002e;transition:opacity .1s,box-shadow .1s;min-width:20px}.gantt-block:hover{opacity:.92;box-shadow:0 3px 8px #00000038}.gantt-block:active{cursor:grabbing}.gantt-block__title{font-size:.75rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-block__sub{font-size:.65rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-job-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.5rem 1rem;font-size:.78rem;color:var(--text-secondary, #64748b);border-top:1px solid var(--border, #e2e8f0);background:var(--bg-surface, #f8fafc)}.gantt-job-legend__label{font-weight:600;color:var(--text-primary, #334155);margin-right:.25rem}.gantt-job-legend__item{display:inline-flex;align-items:center;gap:.35rem}.gantt-job-legend__swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.gantt-job-legend__text{white-space:nowrap}.gantt-popup__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.gantt-popup__header h3{margin:0;font-size:1rem;font-weight:700}.gantt-empty{padding:3rem 2rem;text-align:center;color:#64748b;font-size:.9rem}.gantt-job-strip{display:flex;align-items:flex-start;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem;padding:.6rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.gantt-job-select{padding:.4rem .65rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;background:#fff;color:#1e293b;min-width:220px;cursor:pointer;flex-shrink:0}.gantt-job-select:focus{outline:2px solid var(--dash-primary, #6366f1);outline-offset:1px}.gantt-chip-strip{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.gantt-chip-strip__empty{font-size:.8rem;color:#94a3b8;font-style:italic;padding:.3rem 0}.gantt-chip{display:flex;align-items:center;gap:.35rem;padding:.3rem .7rem;background:var(--dash-primary, #6366f1);color:#fff;border-radius:20px;font-size:.78rem;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #6366f14d;transition:opacity .12s,transform .12s}.gantt-chip:hover{opacity:.88;transform:translateY(-1px)}.gantt-chip:active{cursor:grabbing;transform:scale(.97)}.gantt-chip__machine{font-weight:700;white-space:nowrap}.gantt-chip__name{opacity:.88;white-space:nowrap}.gantt-chip__dur{background:#ffffff40;border-radius:10px;padding:.05rem .4rem;font-weight:700;font-size:.72rem;white-space:nowrap}.job-toolbar{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.job-search{flex:1;min-width:180px;padding:.4rem .7rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem}.job-search:focus{outline:2px solid var(--dash-primary,#6366f1);outline-offset:1px}.job-sort-select{padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;background:#fff;cursor:pointer}.job-card-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center;margin-top:.35rem}.badge-rush{background:#ef4444;color:#fff;font-size:.68rem;font-weight:700;padding:.1rem .45rem;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.badge-hold{background:#f59e0b;color:#fff;font-size:.68rem;font-weight:700;padding:.1rem .45rem;border-radius:4px}.job-due{font-size:.78rem;color:#64748b}.job-due.overdue{color:#ef4444;font-weight:600}.job-location{font-size:.78rem;color:#6366f1;font-weight:500}.job-qty{font-size:.78rem;color:#64748b}.vendor-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;border-radius:10px;padding:.05rem .45rem;font-weight:600}.job-notes{margin-top:1.25rem;border-top:1px solid #e2e8f0;padding-top:1rem}.job-notes h4{margin:0 0 .6rem;font-size:.88rem;font-weight:700;color:#374151}.job-notes__input-row{display:flex;gap:.4rem;margin-bottom:.6rem;align-items:center}.note-type-sel{padding:.32rem .5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.8rem;background:#fff;flex-shrink:0}.note-input{flex:1;padding:.32rem .6rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem}.note-input:focus{outline:2px solid var(--dash-primary,#6366f1);outline-offset:1px}.job-notes__feed{display:flex;flex-direction:column;gap:.35rem;max-height:220px;overflow-y:auto}.job-note{display:flex;flex-direction:column;gap:.1rem;padding:.45rem .7rem;border-radius:6px;font-size:.82rem;border-left:3px solid #cbd5e1;background:#f8fafc}.job-note--handoff{border-color:#6366f1;background:#eef2ff}.job-note--issue{border-color:#ef4444;background:#fef2f2}.job-note__type{font-size:.65rem;text-transform:uppercase;font-weight:700;opacity:.55;letter-spacing:.04em}.job-note__body{color:#1e293b;line-height:1.4}.job-note__meta{font-size:.68rem;color:#94a3b8;margin-top:.1rem}.gantt-capacity-strip{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;padding:.5rem .85rem;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.6rem}.gantt-cap-item{display:flex;align-items:center;gap:.45rem;min-width:150px;cursor:help}.gantt-cap-label{font-size:.76rem;font-weight:600;color:#374151;min-width:56px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-cap-bar-bg{flex:1;height:7px;background:#e2e8f0;border-radius:4px;overflow:hidden}.gantt-cap-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.gantt-cap-pct{font-size:.73rem;font-weight:700;min-width:30px;text-align:right}@media screen{.traveller-print-overlay{display:none}}@media print{body>*{display:none!important}#root>*{display:none!important}.traveller-print-overlay{display:block!important;position:fixed;top:0;left:0;width:100%;font-family:Segoe UI,Arial,sans-serif;padding:1.5rem 2rem;color:#111}.traveller-header{border-bottom:2px solid #111;padding-bottom:.75rem;margin-bottom:1rem}.traveller-header h1{font-size:1.5rem;margin:0 0 .3rem}.traveller-meta{display:flex;flex-wrap:wrap;gap:1rem 2rem;font-size:.82rem;color:#444;margin-bottom:.4rem}.traveller-meta span strong{color:#111}.traveller-ops-table{width:100%;border-collapse:collapse;margin-top:.75rem;font-size:.82rem}.traveller-ops-table th{background:#f0f0f0;border:1px solid #bbb;padding:.35rem .5rem;text-align:left;font-weight:700}.traveller-ops-table td{border:1px solid #ccc;padding:.35rem .5rem}.traveller-op--vendor{background:#fff8e1}.traveller-footer{margin-top:1.5rem;font-size:.72rem;color:#666;border-top:1px solid #ddd;padding-top:.4rem}}.spinner-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}.spinner{animation:spin .8s linear infinite}.spinner__track{stroke:#e2e8f0}.spinner__arc{stroke:#6366f1;stroke-dasharray:44;stroke-dashoffset:32}.spinner__label{font-size:.85rem;color:#64748b;font-family:Inter,system-ui,-apple-system,sans-serif}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f8fafc}.skeleton{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9,#e2e8f0 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.search-bar{position:relative;display:flex;align-items:center;max-width:400px;margin-bottom:1rem}.search-bar__icon{position:absolute;left:.75rem;color:#94a3b8;pointer-events:none;display:flex;align-items:center}.search-bar__input{width:100%;padding:.55rem 2.25rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;color:#1e293b;background:#fff;transition:border-color .15s,box-shadow .15s;font-family:Inter,system-ui,-apple-system,sans-serif}.search-bar__input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.search-bar__input::placeholder{color:#94a3b8}.search-bar__clear{position:absolute;right:.5rem;background:none;border:none;font-size:1.15rem;color:#94a3b8;cursor:pointer;padding:.25rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:color .15s}.search-bar__clear:hover{color:#475569}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0f172a;line-height:1.5}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:600;color:#94a3b8}.helper-text{font-size:.95rem;line-height:1.6}.app{min-height:100vh;background:linear-gradient(180deg,#f8fafc,#f1f5f9);position:relative}.mode-picker-screen{display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(ellipse at top,#3b82f6,#1e40af 30%,#0f172a 70%);color:#fff}.mode-picker{max-width:960px;width:100%;background:#0f172ad9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:32px;padding:3rem;box-shadow:0 30px 80px #0006,inset 0 1px #ffffff1a;border:1px solid rgba(255,255,255,.1)}.mode-picker h1{margin-top:.25rem;margin-bottom:.75rem;font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:-.02em}.mode-picker .helper-text{color:#94a3b8;margin-bottom:2rem}.mode-picker-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.mode-card{border:1px solid rgba(255,255,255,.15);border-radius:24px;padding:2rem;background:#0f172a80;text-align:left;color:#fff;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.mode-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%);opacity:0;transition:opacity .3s ease}.mode-card:hover:before{opacity:1}.mode-card span{text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:600;color:#94a3b8}.mode-card strong{display:block;font-size:1.75rem;font-weight:700;margin:.5rem 0 .75rem;letter-spacing:-.01em}.mode-card p{color:#cbd5e1;font-size:.95rem;line-height:1.5}.mode-card.kiosk{background:linear-gradient(135deg,#22c55e26,#22c55e0d);border-color:#22c55e66}.mode-card.kiosk:hover{border-color:#22c55ecc;box-shadow:0 0 40px #22c55e33}.mode-card.admin{background:linear-gradient(135deg,#6366f126,#6366f10d);border-color:#6366f166}.mode-card.admin:hover{border-color:#6366f1cc;box-shadow:0 0 40px #6366f133}.mode-card:hover{transform:translateY(-6px);border-color:#fff9}.app-controls{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;gap:.75rem;z-index:30}.mode-reset-button{background:#0f172ae6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.1);padding:.75rem 1.5rem;border-radius:999px;font-weight:600;font-size:.875rem;box-shadow:0 10px 30px #0f172a66;cursor:pointer;opacity:.8;transition:all .2s ease}.mode-lock-button{background:#0f172ae6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#94a3b8;border:1px solid rgba(255,255,255,.1);padding:.75rem 1.25rem;border-radius:999px;font-weight:600;font-size:.875rem;box-shadow:0 10px 30px #0f172a66;cursor:pointer;opacity:.8;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.mode-lock-button:hover{opacity:1;background:#0f172a;color:#fff;transform:translateY(-2px)}.mode-reset-button:hover{opacity:1;transform:translateY(-2px);box-shadow:0 15px 40px #0f172a80}.mode-reset-button:focus-visible{outline:2px solid #fff;outline-offset:3px}.device-mode-kiosk .mode-reset-button{background:linear-gradient(135deg,#22c55e,#16a34a);color:#052e16;border-color:transparent}.device-mode-admin .mode-reset-button{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-color:transparent}:focus-visible{outline:2px solid #6366f1;outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #6366f1;outline-offset:2px;border-radius:4px}.mode-picker button:focus-visible,.mode-card:focus-visible,.mode-reset-button:focus-visible,.mode-lock-button:focus-visible{outline-color:#fff}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{body{background:#fff}.app{height:auto;background:#fff}.app-controls{display:none}}@media (max-width: 768px){.mode-picker{padding:2rem;border-radius:24px}.mode-picker-options{grid-template-columns:1fr}.mode-card{padding:1.5rem}}body{margin:0;font-family:Arial,sans-serif}#root{width:100%;height:100%}
