@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--green-950: #072f26;--green-900: #0b5c4a;--green-700: #0f7b63;--green-600: #178a70;--green-400: #3eaf92;--green-200: #a8ddd2;--green-100: #e2f4f0;--green-50: #f0faf7;--ink-950: #080f0e;--ink-900: #111b19;--ink-800: #182421;--ink-700: #1f2e2a;--ink-600: #2d413c;--ink-500: #3d5450;--ink-400: #58716b;--ink-300: #8ca29d;--ink-200: #c4d0cd;--ink-150: #d8e2e0;--ink-100: #e6edeb;--ink-50: #f2f6f5;--surface-base: #f3f0ea;--surface-card: #ffffff;--surface-raised: #fdfcf9;--surface-input: #ffffff;--danger: #c0392b;--danger-bg: #fdf1f0;--danger-border: #f5c5c1;--warning: #a05e10;--warning-bg: #fdf6ed;--success: #0f7b63;--readonly-bg: #f3f0ea;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-2xl: 28px;--r-pill: 999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.06);--shadow-card: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--shadow-panel: 0 4px 20px rgba(0,0,0,.09), 0 1px 4px rgba(0,0,0,.05);--shadow-modal: 0 16px 48px rgba(0,0,0,.14), 0 4px 12px rgba(0,0,0,.07);--t-fast: .11s ease;--t-base: .18s ease}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:960px;font-family:var(--font-sans);font-size:15px;line-height:1.5;color:var(--ink-900);background:var(--surface-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit;cursor:pointer;border:none}input,textarea,select{font:inherit}a{color:var(--green-700);text-decoration:none}a:hover{text-decoration:underline}.brand{margin:0;color:var(--green-700);font-size:14px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.eyebrow{margin:0;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-300)}.section-label{margin:0 0 14px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-400)}.lede{margin:0;color:var(--ink-400);font-size:14px;line-height:1.65}.gate{display:grid;place-items:center;min-height:100vh;padding:48px;background:var(--ink-800);color:#fff}.gate .brand{color:#fff;font-size:18px}.gate h1{margin:16px 0 0;font-size:22px;font-weight:600;color:var(--ink-200);text-align:center;max-width:480px}.auth-root{display:grid;grid-template-columns:1fr 420px;align-items:stretch;min-height:100vh;padding:32px;gap:20px;background:var(--surface-base)}.auth-intro{display:flex;flex-direction:column;justify-content:flex-end;padding:56px 60px;background:var(--ink-800);border-radius:var(--r-xl);color:#fff;position:relative;overflow:hidden}.auth-intro:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 30% 20%,rgba(15,123,99,.22) 0%,transparent 70%),radial-gradient(ellipse 50% 60% at 80% 80%,rgba(15,123,99,.12) 0%,transparent 70%);pointer-events:none}.auth-intro .brand{color:#ffffffb3;position:relative}.auth-intro h1{margin:24px 0 0;font-size:44px;font-weight:800;line-height:1.05;letter-spacing:-.8px;position:relative}.auth-intro .lede{margin:18px 0 0;font-size:16px;line-height:1.7;color:#ffffff8c;max-width:480px;position:relative}.auth-panel{display:flex;flex-direction:column;justify-content:center;padding:48px 40px;background:var(--surface-card);border-radius:var(--r-xl);box-shadow:var(--shadow-panel)}.auth-panel h2{margin:0 0 6px;font-size:21px;font-weight:700;color:var(--ink-900)}.auth-panel .lede{margin:0 0 28px}.auth-panel form label,.auth-panel form .form-label{display:block;margin-bottom:14px;font-size:13px;font-weight:600;color:var(--ink-600, var(--ink-500))}.auth-panel form input{display:block;width:100%;margin-top:6px;padding:10px 14px;border:1.5px solid var(--ink-150);border-radius:var(--r-sm);background:var(--surface-input);color:var(--ink-900);font-size:14px;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.auth-panel form input:focus{border-color:var(--green-700);box-shadow:0 0 0 3px var(--green-100)}.auth-panel .btn,.auth-panel .btn-google{width:100%;margin-top:12px}.auth-root.admin .auth-intro{background:var(--ink-950)}.auth-root.admin .auth-intro:before{background:radial-gradient(ellipse 50% 40% at 25% 25%,rgba(15,123,99,.15) 0%,transparent 70%)}.form-page{display:flex;align-items:flex-start;justify-content:center;min-height:100vh;padding:48px 24px 80px;background:var(--surface-base)}.form-card{width:100%;max-width:520px;background:var(--surface-card);border-radius:var(--r-xl);box-shadow:var(--shadow-panel);padding:48px 44px;display:flex;flex-direction:column;gap:0}.form-card .brand{margin-bottom:28px}.form-card h1{margin:0 0 8px;font-size:26px;font-weight:800;letter-spacing:-.4px;color:var(--ink-900)}.form-card .lede{margin:0 0 32px}.form-card label,.form-card .form-label{display:block;margin-bottom:16px;font-size:13px;font-weight:600;color:var(--ink-500)}.form-card input:not([type=checkbox]):not([type=radio]):not([type=file]),.form-card select,.form-card textarea{display:block;width:100%;margin-top:6px;padding:10px 14px;border:1.5px solid var(--ink-150);border-radius:var(--r-sm);background:var(--surface-input);color:var(--ink-900);font-size:14px;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:var(--green-700);box-shadow:0 0 0 3px var(--green-100)}.form-card .btn{width:100%;margin-top:8px}.form-card .btn-google{width:100%}.form-card.compact{max-width:100%;box-shadow:var(--shadow-card);border:1px solid var(--ink-100);padding:28px 32px;border-radius:var(--r-lg)}.form-card.compact h3{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--ink-900)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.form-grid label{margin-bottom:0}.status-text{display:flex;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;background:var(--green-50);border:1px solid var(--green-200);border-radius:var(--r-md);font-size:13px;color:var(--green-900);word-break:break-all}.status-text .form-input{flex:1;font-size:13px;background:#fff}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{display:flex;flex-direction:column;padding:20px 12px;background:var(--ink-800);color:#fff;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{color:#ffffffbf;padding:4px 10px;margin-bottom:20px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--r-md);background:#ffffff0f;margin-bottom:16px}.sidebar-user-info{overflow:hidden;flex:1}.sidebar-user-name{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-status{font-size:11px;color:#fff6;margin-top:1px;letter-spacing:.02em}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--ink-400)}.status-dot.on_shift{background:#3ecf8e}.status-dot.paused{background:#f5a623}.status-dot.not_on_shift{background:#fff3}.sidebar nav{flex:1;display:flex;flex-direction:column;gap:1px;padding:0 0 8px}.nav-btn{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;border-radius:var(--r-md);background:transparent;color:#ffffff73;font-size:13.5px;font-weight:500;text-align:left;transition:background var(--t-fast),color var(--t-fast)}.nav-btn:hover:not(:disabled){background:#ffffff14;color:#ffffffe6}.nav-btn.active{background:#ffffff1f;color:#fff;font-weight:600}.nav-btn:disabled{opacity:.35;cursor:not-allowed}.sidebar-footer{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.07)}.logout-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;border-radius:var(--r-md);background:transparent;color:#ffffff59;font-size:13.5px;transition:background var(--t-fast),color var(--t-fast)}.logout-btn:hover{background:#ffffff12;color:#ffffffbf}.content{display:flex;flex-direction:column;background:var(--surface-base);min-height:100vh}.content-header{display:flex;align-items:center;justify-content:space-between;padding:18px 36px;background:var(--surface-card);border-bottom:1px solid var(--ink-100);min-height:68px}.content-header h2{margin:3px 0 0;font-size:19px;font-weight:700;letter-spacing:-.25px;color:var(--ink-900)}.content-body{padding:28px 36px;flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:var(--r-md);font-weight:600;font-size:14px;cursor:pointer;transition:background var(--t-fast),opacity var(--t-fast),box-shadow var(--t-fast);white-space:nowrap;letter-spacing:-.01em}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{padding:11px 22px;background:var(--green-700);color:#fff;min-height:44px;box-shadow:0 1px 3px #0f7b634d}.btn-primary:hover:not(:disabled){background:var(--green-900);box-shadow:0 2px 8px #0f7b6359}.btn-secondary{padding:11px 22px;background:var(--ink-700);color:#fff;min-height:44px}.btn-secondary:hover:not(:disabled){background:var(--ink-900)}.btn-danger{padding:11px 22px;background:var(--danger);color:#fff;min-height:44px}.btn-danger:hover:not(:disabled){background:#9c2d23}.btn-ghost{padding:9px 16px;background:transparent;color:var(--ink-500);border:1.5px solid var(--ink-150);font-size:13px}.btn-ghost:hover:not(:disabled){background:var(--ink-50);border-color:var(--ink-200);color:var(--ink-700)}.btn-sm{padding:6px 13px;min-height:32px;font-size:12.5px;border-radius:var(--r-sm)}.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 24px;border:1.5px solid var(--ink-150);border-radius:var(--r-md);background:var(--surface-card);color:var(--ink-700);font-size:14px;font-weight:600;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast),box-shadow var(--t-fast);letter-spacing:-.01em}.btn-google:hover{border-color:var(--ink-300);background:var(--ink-50);box-shadow:var(--shadow-xs)}.btn-google svg{flex-shrink:0}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:600;color:var(--ink-500)}.password-field{position:relative;display:flex;align-items:center;margin-bottom:14px}.password-field input{width:100%;padding-right:46px}.password-toggle{position:absolute;right:8px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:var(--r-xs);background:transparent;color:var(--ink-300);cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.password-toggle:hover,.password-toggle:focus-visible{background:var(--ink-50);color:var(--ink-600, var(--ink-500))}.form-input,.form-textarea{padding:10px 14px;border:1.5px solid var(--ink-150);border-radius:var(--r-sm);background:var(--surface-input);color:var(--ink-900);font-size:14px;transition:border-color var(--t-fast),box-shadow var(--t-fast);outline:none}.form-input:focus,.form-textarea:focus{border-color:var(--green-700);box-shadow:0 0 0 3px var(--green-100)}.form-input.readonly,.form-input[readonly]{background:var(--readonly-bg);color:var(--ink-400);border-color:var(--ink-100);cursor:default}.form-textarea{resize:vertical;min-height:80px}.form-hint{font-size:12px;color:var(--ink-300);margin-top:2px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--green-100);color:var(--green-700);font-weight:700;font-size:15px;flex-shrink:0;overflow:hidden;-webkit-user-select:none;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:30px;height:30px;font-size:11px}.avatar-md{width:44px;height:44px;font-size:16px}.avatar-lg{width:80px;height:80px;font-size:28px}.avatar-xl{width:96px;height:96px;font-size:34px}.avatar-uploading{position:relative}.avatar-uploading:after{content:"";position:absolute;inset:0;border-radius:50%;background:#00000059}.setup-root{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:48px 24px 80px;background:var(--surface-base)}.setup-header{text-align:center;margin-bottom:36px}.setup-header .brand{margin-bottom:20px}.setup-header h1{margin:0 0 8px;font-size:26px;font-weight:800;letter-spacing:-.4px}.setup-header p{margin:0;font-size:15px;color:var(--ink-400)}.setup-card{width:100%;max-width:780px;background:var(--surface-card);border-radius:var(--r-xl);box-shadow:var(--shadow-panel);overflow:hidden}.setup-section{padding:28px 36px}.setup-section+.setup-section{border-top:1px solid var(--ink-100)}.photo-area{display:flex;align-items:center;gap:24px}.photo-controls{display:flex;flex-direction:column;gap:8px}.photo-controls p{margin:0;font-size:12.5px;color:var(--ink-300)}.file-input-hidden{display:none}.setup-actions{padding:20px 36px;border-top:1px solid var(--ink-100);display:flex;align-items:center;justify-content:flex-end;gap:10px;background:var(--ink-50)}.tracker-panel{max-width:680px}.tracker-status-badge{display:inline-flex;align-items:center;gap:7px;padding:4px 12px;border-radius:var(--r-pill);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.tracker-status-badge.ready{background:var(--ink-100);color:var(--ink-500)}.tracker-status-badge.on_shift{background:var(--green-100);color:var(--green-900)}.tracker-status-badge.paused{background:var(--warning-bg);color:var(--warning)}.worked-time{margin:20px 0 6px;font-size:84px;font-weight:800;line-height:1;letter-spacing:-3px;font-variant-numeric:tabular-nums;color:var(--ink-900)}.pause-label{min-height:22px;font-size:13.5px;color:var(--ink-400);margin:0}.tracker-actions{display:flex;align-items:center;gap:10px;margin-top:28px;flex-wrap:wrap}.tracker-divider{height:1px;background:var(--ink-100);margin:28px 0}.metrics-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:28px}.metric-card{background:var(--surface-card);border:1px solid var(--ink-100);border-radius:var(--r-lg);padding:20px 24px;box-shadow:var(--shadow-card)}.metric-card .label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-400)}.metric-card .value{display:block;margin-top:8px;font-size:34px;font-weight:800;letter-spacing:-1.5px;color:var(--ink-900)}.data-table-wrap{background:var(--surface-card);border:1px solid var(--ink-100);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:10px 16px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-400);background:var(--ink-50);border-bottom:1px solid var(--ink-100);white-space:nowrap}.data-table td{padding:12px 16px;font-size:13.5px;color:var(--ink-700);border-bottom:1px solid var(--ink-100);vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr{transition:background var(--t-fast)}.data-table tbody tr:hover{background:var(--ink-50)}.badge{display:inline-block;padding:2px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.badge-green{background:var(--green-100);color:var(--green-900)}.badge-gray{background:var(--ink-100);color:var(--ink-500)}.badge-orange{background:var(--warning-bg);color:var(--warning)}.badge-red{background:var(--danger-bg);color:var(--danger)}.card{background:var(--surface-card);border:1px solid var(--ink-100);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:24px 28px}.error-text{font-size:13px;font-weight:600;color:var(--danger);margin:0;padding:10px 14px;background:var(--danger-bg);border-radius:var(--r-sm);border:1px solid var(--danger-border)}.readonly-tag{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-300);background:var(--ink-100);border-radius:var(--r-pill);padding:2px 8px}.empty-state{padding:56px 24px;text-align:center;color:var(--ink-300);font-size:14px}.row{display:flex;align-items:center;gap:10px}.col{display:flex;flex-direction:column;gap:4px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.flex-1{flex:1}.week-nav{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.week-label{font-size:14px;font-weight:700;color:var(--ink-900);margin-left:4px}.week-actions{margin-left:auto;display:flex;gap:8px}.sched-scroll{overflow-x:auto}.sched-grid{display:grid;grid-template-columns:180px repeat(7,minmax(132px,1fr));border:1px solid var(--ink-100);border-radius:var(--r-lg);overflow:hidden;background:var(--surface-card);min-width:1000px}.sched-head{padding:10px 12px;font-size:12px;font-weight:700;color:var(--ink-500);background:var(--ink-50, #f6f6f4);border-bottom:1px solid var(--ink-100);border-left:1px solid var(--ink-100)}.sched-corner{border-left:none}.sched-name{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:600;color:var(--ink-900);border-bottom:1px solid var(--ink-100);min-width:0}.sched-cell{border-left:1px solid var(--ink-100);border-bottom:1px solid var(--ink-100);padding:6px;min-height:74px;display:flex;flex-direction:column;gap:4px}.sched-chip{border-radius:var(--r-sm);padding:6px 8px;font-size:12px;cursor:grab;border:1px solid transparent;background:var(--green-50);border-color:var(--green-200);color:var(--green-900)}.sched-chip:active{cursor:grabbing}.sched-draft{background:var(--ink-50, #f4f4f2);border-color:var(--ink-150);color:var(--ink-800)}.sched-cancelled{background:transparent;border-style:dashed;border-color:var(--ink-150);color:var(--ink-400);text-decoration:line-through}.sched-time{display:block;font-weight:700}.sched-next{font-style:normal;font-size:10px;margin-left:4px;opacity:.75}.sched-note{display:block;font-size:11px;opacity:.8}.sched-actions{display:flex;gap:6px;margin-top:4px}.sched-actions button{background:none;border:none;padding:0;font-size:11px;font-weight:600;color:inherit;opacity:.7;cursor:pointer;text-decoration:underline}.sched-actions button:hover{opacity:1}.sched-add{margin-top:auto;background:none;border:1px dashed var(--ink-150);border-radius:var(--r-sm);color:var(--ink-400);font-size:13px;padding:2px;cursor:pointer;opacity:0;transition:opacity var(--t-fast)}.sched-cell:hover .sched-add{opacity:1}.sched-add:hover{border-color:var(--green-700);color:var(--green-900)}.sched-rest{color:var(--ink-300)}.modal-backdrop{position:fixed;inset:0;background:#0f141173;display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.modal-card{width:100%;max-width:520px;background:var(--surface-card)}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.modal-actions .btn{width:auto;margin-top:0}
