:root{color-scheme:light dark;--c-bg: #f6f8fb;--c-surface: #ffffff;--c-surface-alt: #eef2f7;--c-border: #d8e0ea;--c-border-strong: #b8c5d4;--c-text: #101c2c;--c-text-muted: #5b6b7f;--c-brand: #0f4c81;--c-brand-deep: #0a3557;--c-brand-hover: #14608f;--c-brand-text: #ffffff;--c-accent: #d97706;--c-role-super: #1d4ed8;--c-role-super-bg: #dbeafe;--c-role-tech: #15803d;--c-role-tech-bg: #dcfce7;--c-role-qc: #92620a;--c-role-qc-bg: #fef3c7;--c-ok: #15803d;--c-ok-bg: #dcfce7;--c-warn: #b45309;--c-warn-bg: #fef3c7;--c-error: #b91c1c;--c-error-bg: #fee2e2;--c-info-bg: #dbeafe;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--radius: 8px;--radius-lg: 12px;--tap-min: 44px;--nav-h: calc(45px + 1rem) ;--tap-field: 56px;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", "Consolas", monospace;--shadow-sm: 0 1px 2px rgb(16 28 44 / .06);--shadow: 0 4px 16px rgb(16 28 44 / .09);--shadow-lg: 0 12px 40px rgb(16 28 44 / .14)}@media(prefers-color-scheme:dark){:root{--c-bg: #0b1220;--c-surface: #151f31;--c-surface-alt: #1e2b40;--c-border: #2c3a52;--c-border-strong: #3d4f6b;--c-text: #eef3f9;--c-text-muted: #93a3b8;--c-brand: #3d8fd4;--c-brand-deep: #0a3557;--c-brand-hover: #5aa5e4;--c-accent: #f59e0b;--c-role-super: #7cb2f0;--c-role-super-bg: #16304f;--c-role-tech: #6ee7a0;--c-role-tech-bg: #12341f;--c-role-qc: #f5c451;--c-role-qc-bg: #3d2f0a;--c-ok-bg: #10361f;--c-warn-bg: #4a2c08;--c-error-bg: #4c1414;--c-info-bg: #12305a;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow: 0 4px 16px rgb(0 0 0 / .45);--shadow-lg: 0 12px 40px rgb(0 0 0 / .55)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--c-bg);color:var(--c-text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}.app-shell{display:flex;flex-direction:column;min-height:100%}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);padding-top:calc(var(--sp-3) + env(safe-area-inset-top));background:linear-gradient(180deg,var(--c-brand) 0%,var(--c-brand-deep) 100%);color:var(--c-brand-text);box-shadow:var(--shadow)}.app-header h1{font-size:1rem;font-weight:600;margin:0;letter-spacing:.01em}.brand{display:inline-flex;align-items:baseline;gap:var(--sp-2)}.brand-mark{font-weight:800;letter-spacing:.14em;text-transform:uppercase}.brand-sub{font-weight:500;opacity:.72;letter-spacing:.02em}.app-header .brand-rule{display:inline-block;width:1px;height:1.1em;background:currentColor;opacity:.35}.app-main{flex:1;padding:var(--sp-4);padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom));max-width:1200px;width:100%;margin:0 auto}.field-context .app-main{max-width:640px}.office-context .app-main{max-width:min(2200px,100%)}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-4);box-shadow:var(--shadow-sm)}.card h2{margin:0 0 var(--sp-3);font-size:.9375rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--c-text-muted)}.card h2.title{font-size:1.0625rem;font-weight:700;letter-spacing:0;text-transform:none;color:var(--c-text)}.muted{color:var(--c-text-muted)}.mono{font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--tap-min);padding:var(--sp-2) var(--sp-4);font-size:1rem;font-weight:600;font-family:inherit;border:1px solid transparent;border-radius:var(--radius);background:var(--c-brand);color:var(--c-brand-text);cursor:pointer;transition:background .12s ease,border-color .12s ease,transform 60ms ease}.btn:hover:not(:disabled){background:var(--c-brand-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn-secondary:hover:not(:disabled){background:var(--c-surface-alt);border-color:var(--c-border-strong)}@media(prefers-reduced-motion:reduce){.btn,.segmented button{transition:none}.btn:active:not(:disabled){transform:none}}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--c-surface);color:var(--c-text);border-color:var(--c-border)}.btn-block{width:100%}.field-context .btn{min-height:var(--tap-field);font-size:1.0625rem}.form-field{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-4)}.form-field label{font-weight:600;font-size:.875rem}input,select{min-height:var(--tap-min);padding:var(--sp-2) var(--sp-3);font-size:1rem;font-family:inherit;color:var(--c-text);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius)}.field-context input,.field-context select{min-height:var(--tap-field);font-size:1.125rem}input:focus-visible,select:focus-visible,.btn:focus-visible{outline:3px solid var(--c-brand);outline-offset:2px}.badge{display:inline-block;padding:2px var(--sp-2);border-radius:999px;font-size:.75rem;font-weight:600}.badge-ok{background:var(--c-ok-bg);color:var(--c-ok)}.badge-warn{background:var(--c-warn-bg);color:var(--c-warn)}.badge-error{background:var(--c-error-bg);color:var(--c-error)}.badge-info{background:var(--c-info-bg);color:var(--c-brand)}.alert{padding:var(--sp-3);border-radius:var(--radius);margin-bottom:var(--sp-4);font-size:.9375rem}.alert-error{background:var(--c-error-bg);color:var(--c-error)}.alert-warn{background:var(--c-warn-bg);color:var(--c-warn)}.alert-info{background:var(--c-info-bg);color:var(--c-text)}.table-wrap{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--radius)}.table-dense table{font-size:.8125rem}.table-dense th,.table-dense td{padding:var(--sp-1) var(--sp-2)}.table-dense .mono{font-size:.78125rem}table{width:100%;border-collapse:collapse;font-size:.9375rem}th,td{text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--c-border);white-space:nowrap}thead th{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-muted);background:var(--c-surface-alt);border-bottom:1px solid var(--c-border-strong);position:sticky;top:0;z-index:1}tbody tr:hover{background:var(--c-surface-alt)}tbody tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums}.nav{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4);position:sticky;top:0;z-index:20;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;-webkit-overflow-scrolling:touch;margin-left:calc(var(--sp-4) * -1);margin-right:calc(var(--sp-4) * -1);padding:var(--sp-2) var(--sp-4);background:var(--c-bg);border-bottom:1px solid var(--c-border)}.nav:after{content:"";position:absolute;inset:auto 0 -9px 0;height:8px;pointer-events:none;background:linear-gradient(180deg,rgb(0 0 0 / .06),transparent)}.nav a{flex:0 0 auto;white-space:nowrap}.nav a{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);text-decoration:none;color:var(--c-text);background:var(--c-surface-alt);font-size:.9375rem;min-height:var(--tap-min);display:inline-flex;align-items:center}.nav a.active{background:var(--c-brand);color:var(--c-brand-text)}.center-screen{display:grid;place-items:center;min-height:100%;padding:var(--sp-4);padding-top:calc(var(--sp-5) + env(safe-area-inset-top));background:radial-gradient(1100px 520px at 50% -12%,rgb(15 76 129 / .13),transparent 62%),var(--c-bg)}.signin{width:100%;max-width:400px}.signin-brand{text-align:center;margin-bottom:var(--sp-5)}.signin-brand .brand-mark{display:block;font-size:1.65rem;line-height:1.1;color:var(--c-brand)}.signin-brand .brand-sub{display:block;margin-top:var(--sp-1);font-size:.9375rem;color:var(--c-text);opacity:.85}.signin-rule{width:44px;height:3px;margin:var(--sp-4) auto 0;border-radius:2px;background:var(--c-accent)}.signin-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:var(--sp-5) var(--sp-4);box-shadow:var(--shadow-lg)}.signin-foot{margin-top:var(--sp-5);text-align:center;font-size:.75rem;color:var(--c-text-muted);line-height:1.6}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:var(--sp-4);background:var(--c-surface-alt);border-radius:var(--radius)}.segmented button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;border-radius:calc(var(--radius) - 2px);padding:var(--sp-2);min-height:40px;font:inherit;font-size:.875rem;font-weight:600;color:var(--c-text-muted);cursor:pointer;transition:background .12s ease,color .12s ease}.segmented button[aria-selected=true]{background:var(--c-surface);color:var(--c-brand);box-shadow:var(--shadow-sm)}.stack>*+*{margin-top:var(--sp-3)}.chip-list{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-3) 0}.chip{display:inline-flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--c-surface-alt);border:1px solid var(--c-border);border-radius:999px;font-size:.875rem;line-height:1.2}.chip .chip-id{font-family:var(--font-mono);font-size:.75rem;color:var(--c-text-muted)}.crew-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:2px var(--sp-2);border-radius:999px;background:var(--c-brand);color:var(--c-brand-text);font-size:.8125rem;font-weight:600}.count-pill-empty{background:var(--c-surface-alt);color:var(--c-text-muted);border:1px solid var(--c-border)}.checkline{display:flex;align-items:center;gap:.625rem;min-height:44px;padding:.25rem 0;cursor:pointer;-webkit-user-select:none;user-select:none}.checkline input[type=checkbox]{width:22px;height:22px;flex:0 0 auto;accent-color:var(--accent, #1d4ed8);cursor:pointer}.checkline span{line-height:1.3}.role-badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.6875rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;line-height:1.5}.role-super{color:var(--c-role-super);background:var(--c-role-super-bg)}.role-qc{color:var(--c-role-qc);background:var(--c-role-qc-bg)}.role-tech{color:var(--c-role-tech);background:var(--c-role-tech-bg)}.card.crew-card{border-left:4px solid var(--c-border)}.card.crew-card.is-super{border-left-color:var(--c-role-super)}.card.crew-card.is-qc{border-left-color:var(--c-role-qc)}.card.crew-card.is-tech{border-left-color:var(--c-role-tech)}.crew-heading .name-and-role{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem 1.25rem;align-items:start}.save-bar{position:sticky;bottom:.75rem;display:flex;gap:.5rem;align-items:center;z-index:5;box-shadow:var(--shadow)}.period-bar{position:sticky;top:var(--nav-h);z-index:15;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);margin:calc(var(--sp-4) * -1 + 0px) calc(var(--sp-4) * -1) var(--sp-4);padding:var(--sp-2) var(--sp-4);background:var(--c-surface-alt);border-bottom:1px solid var(--c-border)}.period-bar .period-week{font-weight:700;font-size:.9375rem}.period-bar .period-figures{margin-left:auto;font-size:.875rem;color:var(--c-text-muted);font-variant-numeric:tabular-nums}.period-pill{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.6875rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.period-pill.is-open{color:var(--c-role-super);background:var(--c-role-super-bg)}.period-pill.is-paid{color:var(--c-role-tech);background:var(--c-role-tech-bg)}.period-pill.is-empty{color:var(--c-role-qc);background:var(--c-role-qc-bg)}
