: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-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;--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-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}.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{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);flex-wrap:wrap;margin-bottom:var(--sp-4)}.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)}
