:root{color-scheme:light;--brand-navy: #0b2545;--brand-navy-700: #13315c;--brand-navy-300: #3e5c86;--brand-teal: #0f8b8d;--brand-teal-600: #0a6b6d;--brand-teal-700: #085456;--brand-teal-050: #e4f3f3;--accent-coral: #e4572e;--accent-coral-600: #c1421e;--accent-coral-700: #a33518;--accent-coral-050: #fceae4;--ink: #1c2733;--ink-muted: #5b6673;--ink-subtle: #8a94a0;--surface: #ffffff;--surface-2: #f6f4ef;--surface-3: #efede6;--line: #e2e6ea;--line-strong: #c7cdd4;--on-fill: #ffffff;--status-confirmed: #0f8b8d;--status-confirmed-tint: #e4f3f3;--status-tentative: #e0a100;--status-tentative-ink: #2a2300;--status-tentative-tint: #fbf0ce;--status-pending: #8a6d3b;--status-pending-tint: #efe6d3;--status-maintenance: #5a4fcf;--status-maintenance-tint: #e7e5fa;--status-danger: #c0392b;--status-danger-tint: #f7ded9;--status-success: #0a6b6d;--chrome-text: #cdd8e6;--chrome-text-subtle: #7e96af;--chrome-hover: rgba(255, 255, 255, .08);--overlay-dim: rgba(11, 37, 69, .45);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--text-display: 1.75rem;--text-h1: 1.4rem;--text-h2: 1.15rem;--text-h3: 1rem;--text-body: 1rem;--text-sm: .875rem;--text-xs: .75rem;--lh-tight: 1.25;--lh-normal: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px;--space-8: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--elev-1: 0 1px 3px rgba(11, 37, 69, .08), 0 6px 20px rgba(11, 37, 69, .06);--elev-2: 0 4px 12px rgba(11, 37, 69, .12), 0 12px 32px rgba(11, 37, 69, .1);--motion-fast: .12s;--motion-base: .18s;--motion-slow: .26s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1);--z-nav: 20;--z-sticky: 30;--z-overlay: 50;--z-toast: 100;--content-max: 1100px;--sidebar-w: 232px;--tap-min: 44px;--bp-md: 768px}:root[data-theme=dark]{color-scheme:dark;--ink: #e7edf3;--ink-muted: #a3adba;--ink-subtle: #7c8794;--surface: #10233d;--surface-2: #0b1a30;--surface-3: #16304f;--line: #244063;--line-strong: #386089;--status-confirmed-tint: #0e3a3b;--status-tentative-tint: #3a3208;--status-pending-tint: #342915;--status-maintenance-tint: #241f52;--status-danger-tint: #3a1512;--elev-1: 0 1px 3px rgba(0, 0, 0, .4), 0 6px 20px rgba(0, 0, 0, .3);--elev-2: 0 4px 12px rgba(0, 0, 0, .5), 0 12px 32px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{font-size:100%;-webkit-text-size-adjust:100%}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--lh-normal);color:var(--ink);background:var(--surface-2);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0 0 var(--space-2);color:var(--brand-navy);line-height:var(--lh-tight);font-weight:700}h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3);font-weight:600}p{margin:0 0 var(--space-3)}a{color:var(--brand-teal-600);text-decoration:none}a:hover{text-decoration:underline}:root[data-theme=dark] h1,:root[data-theme=dark] h2,:root[data-theme=dark] h3,:root[data-theme=dark] h4{color:var(--ink)}:root[data-theme=dark] a{color:#5bc7c9}code,kbd,samp{font-family:var(--font-mono);font-size:.9em}img,svg{max-width:100%;height:auto}:focus-visible{outline:2px solid var(--accent-coral);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}.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}.skip-link{position:absolute;left:var(--space-2);top:-48px;z-index:var(--z-toast);background:var(--surface);color:var(--brand-navy);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);box-shadow:var(--elev-2);transition:top var(--motion-base) var(--ease-standard)}.skip-link:focus{top:var(--space-2)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}button,.btn{font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-min);padding:.55rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--brand-navy);transition:background var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}button:hover,.btn:hover{background:var(--surface-3)}button:active,.btn:active{transform:translateY(1px)}button:disabled,.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}button[aria-busy=true],.btn.is-loading{cursor:progress;color:transparent;position:relative}button[aria-busy=true]:after,.btn.is-loading:after{content:"";position:absolute;width:1em;height:1em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;color:var(--surface);animation:spin .7s linear infinite}button.primary,.btn.primary{background:var(--accent-coral-600);border-color:var(--accent-coral-600);color:var(--on-fill)}button.primary:hover,.btn.primary:hover{background:var(--accent-coral-700);border-color:var(--accent-coral-700)}button.teal,.btn.teal{background:var(--brand-teal-600);border-color:var(--brand-teal-600);color:var(--on-fill)}button.teal:hover,.btn.teal:hover{background:var(--brand-teal-700);border-color:var(--brand-teal-700)}button.brand,.btn.brand{background:var(--brand-navy);border-color:var(--brand-navy);color:var(--on-fill)}button.brand:hover,.btn.brand:hover{background:var(--brand-navy-700)}button.danger,.btn.danger{background:var(--status-danger);border-color:var(--status-danger);color:var(--on-fill)}button.danger:hover,.btn.danger:hover{filter:brightness(.93)}button.ghost,button.linklike,button.link,.btn.ghost{background:transparent;border-color:transparent;color:var(--brand-teal-600);min-height:auto;padding:.25rem .4rem}button.ghost:hover,button.linklike:hover,button.link:hover,.btn.ghost:hover{background:transparent;text-decoration:underline}button.small,.btn.small{min-height:34px;padding:.3rem .65rem;font-size:var(--text-sm)}button.small,.btn.small,button.ghost,button.linklike,button.link,.btn.ghost,.modal-close,.toast-close{position:relative}button.small:before,.btn.small:before,button.ghost:before,button.linklike:before,button.link:before,.btn.ghost:before,.modal-close:before,.toast-close:before{content:"";position:absolute;top:50%;left:50%;translate:-50% -50%;width:max(100%,var(--tap-min));height:max(100%,var(--tap-min))}@keyframes spin{to{transform:rotate(360deg)}}input,select,textarea{font:inherit;width:100%;min-height:var(--tap-min);padding:.55rem .7rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}textarea{min-height:calc(var(--tap-min) * 2);line-height:var(--lh-normal);resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-teal-600);box-shadow:0 0 0 3px var(--brand-teal-050)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--status-danger)}input[aria-invalid=true]:focus{box-shadow:0 0 0 3px var(--status-danger-tint)}input::placeholder,textarea::placeholder{color:var(--ink-subtle)}label{display:block;font-weight:600;font-size:var(--text-sm);margin-bottom:var(--space-1);color:var(--ink)}.field{margin-bottom:var(--space-4)}.field .req{color:var(--status-danger);margin-left:2px}.hint{color:var(--ink-muted);font-size:var(--text-sm);margin-top:var(--space-1)}.form-error,.field-error{display:flex;align-items:center;gap:var(--space-1);color:var(--status-danger);font-size:var(--text-sm);margin-top:var(--space-1)}.form-error:before,.field-error:before{content:"✕"}.rolecheck,.checkbox{display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap;font-weight:400}.rolecheck input,.checkbox input{width:auto;min-height:auto;accent-color:var(--brand-teal)}.row{display:flex;gap:var(--space-3);flex-wrap:wrap}.row>*{flex:1 1 200px}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.12rem .55rem;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700;line-height:1.4;background:var(--surface-3);color:var(--ink-muted);white-space:nowrap}.badge-confirmed{background:var(--status-confirmed-tint);color:var(--brand-teal-600)}.badge-tentative{background:var(--status-tentative-tint);color:var(--status-tentative-ink)}.badge-pending{background:var(--status-pending-tint);color:var(--status-pending)}.badge-maintenance{background:var(--status-maintenance-tint);color:var(--status-maintenance)}.badge-cancelled,.badge-danger{background:var(--status-danger-tint);color:var(--status-danger)}.badge-mine{background:transparent;color:var(--brand-navy);border:1px solid var(--brand-navy-300)}.badge-confirmed:before{content:"✓"}.badge-tentative:before{content:"◔"}.badge-pending:before{content:"⋯"}.badge-maintenance:before{content:"🔧"}.badge-cancelled:before,.badge-danger:before{content:"✕"}.role-pill{display:inline-block;background:var(--surface-3);color:var(--brand-navy-700);border-radius:var(--radius-pill);padding:.1rem .55rem;font-size:var(--text-xs);font-weight:600;margin:0 .25rem .25rem 0}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--accent-coral);color:var(--on-fill);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--elev-1);padding:var(--space-4)}.card+.card{margin-top:var(--space-4)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.grid{display:grid;gap:var(--space-4)}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.stack>*+*{margin-top:var(--space-3)}.flex{display:flex;gap:var(--space-2);align-items:center}.flex-between{display:flex;gap:var(--space-2);align-items:center;justify-content:space-between}.actions,.roles{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.actions{row-gap:18px}.muted{color:var(--ink-muted)}.right{text-align:right}.table-wrap{overflow-x:auto;margin:var(--space-2) 0 var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--surface-2)}.app-shell{display:flex;min-height:100%}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--brand-navy);color:var(--chrome-text);padding:var(--space-3) var(--space-2);display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:block;color:var(--on-fill);font-weight:700;font-size:1.05rem;text-decoration:none;padding:var(--space-2) var(--space-2) var(--space-4)}.brand:hover{text-decoration:none}.brand small{display:block;font-weight:400;color:var(--chrome-text-subtle);font-size:var(--text-xs)}.nav{display:flex;flex-direction:column;gap:2px}.nav-section{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--chrome-text-subtle);padding:var(--space-4) var(--space-2) var(--space-1)}.nav-link{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:.55rem .7rem;border-radius:var(--radius-sm);color:var(--chrome-text);text-decoration:none;font-weight:600;font-size:var(--text-sm)}.nav-link:hover{background:var(--chrome-hover);text-decoration:none}.nav-link.active{background:var(--brand-teal-600);color:var(--on-fill)}.nav-link .count-badge{margin-left:auto}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:var(--z-nav);min-height:56px}.topbar .spacer{flex:1}.menu-btn{display:none}.user{display:flex;align-items:center;gap:var(--space-2)}.user-chip{display:flex;align-items:center;gap:var(--space-2);background:transparent;border:none;padding:var(--space-1);min-height:auto;color:var(--ink)}.user-chip:hover{background:var(--surface-2)}.username{color:var(--ink-muted);font-size:var(--text-sm)}.avatar{width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--brand-teal-600);color:var(--on-fill);display:grid;place-items:center;font-weight:700;font-size:var(--text-sm)}.content{padding:var(--space-5) var(--space-4);width:100%;max-width:var(--content-max);margin:0 auto}.legend{display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:var(--text-sm);color:var(--ink-muted);margin-bottom:var(--space-4)}.legend span{display:inline-flex;align-items:center;gap:.4rem}.swatch{width:14px;height:14px;border-radius:4px;display:inline-block;flex-shrink:0}.swatch-confirmed{background:var(--status-confirmed)}.swatch-tentative{background:var(--status-tentative)}.swatch-maintenance{background:var(--status-maintenance);background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0,rgba(255,255,255,.55) 2px,transparent 2px,transparent 5px)}.swatch-mine{background:transparent;border:2px solid var(--brand-navy)}.cal-day{margin-bottom:var(--space-5)}.cal-day>h2{position:sticky;top:56px;background:var(--surface-2);padding:var(--space-2) 0;z-index:var(--z-sticky);text-transform:capitalize}.agenda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.slot{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:var(--radius-md)}.slot.is-confirmed{border-left-color:var(--status-confirmed)}.slot.is-tentative{border-left-color:var(--status-tentative)}.slot.is-maintenance{border-left-color:var(--status-maintenance);background-image:repeating-linear-gradient(45deg,var(--status-maintenance-tint) 0,var(--status-maintenance-tint) 6px,transparent 6px,transparent 14px)}.slot.is-mine{outline:2px solid var(--brand-navy-300);outline-offset:-1px}.slot-time{font-family:var(--font-mono);font-weight:600;font-size:var(--text-sm);white-space:nowrap}.slot-status{flex:1}.slot .actions{margin-left:auto}.cal-toolbar{display:flex;align-items:center;gap:var(--space-2);row-gap:18px;flex-wrap:wrap;margin-bottom:var(--space-3)}.cal-toolbar .cal-range{font-weight:700;color:var(--brand-navy);min-width:12ch;text-align:center}.cal-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.cal-grid{--cal-row-h: 44px;display:grid;grid-template-columns:52px repeat(7,minmax(96px,1fr));min-width:720px}.cal-head{position:sticky;top:0;z-index:var(--z-sticky);background:var(--surface-2);border-bottom:1px solid var(--line);border-left:1px solid var(--line);padding:var(--space-2) var(--space-1);text-align:center;font-size:var(--text-xs);font-weight:700;color:var(--brand-navy);text-transform:capitalize}.cal-head:first-child{border-left:none}.cal-head small{display:block;font-weight:400;color:var(--ink-muted)}.cal-head.today{background:var(--brand-teal-050)}.cal-hour{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-muted);padding:2px var(--space-1);text-align:right;border-bottom:1px solid var(--line);height:var(--cal-row-h)}.cal-cell{position:relative;height:var(--cal-row-h);border-bottom:1px solid var(--surface-3);border-left:1px solid var(--surface-3)}.cal-cell.col-today{background:color-mix(in srgb,var(--brand-teal-050) 55%,transparent)}.cal-event{position:absolute;left:2px;right:2px;border-radius:var(--radius-sm);padding:3px 6px;font-size:var(--text-xs);line-height:1.25;color:var(--on-fill);overflow:hidden;z-index:2;border:none;min-height:0;text-align:left;display:block;cursor:default}.cal-event .cal-event-time{font-family:var(--font-mono);font-weight:700;display:block}.cal-event.is-confirmed{background:var(--status-confirmed)}.cal-event.is-tentative{background:var(--status-tentative);color:var(--status-tentative-ink);cursor:pointer}.cal-event.is-tentative:hover{filter:brightness(.96)}.cal-event.is-maintenance{background:var(--status-maintenance);background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.28) 0,rgba(255,255,255,.28) 3px,transparent 3px,transparent 7px)}.cal-event.is-mine{outline:2px solid var(--brand-navy);outline-offset:-2px}.cal-help{margin:calc(-1 * var(--space-2)) 0 var(--space-3)}.cal-cell-add{position:absolute;top:1px;right:1px;bottom:1px;left:1px;z-index:1;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--brand-teal);font-size:var(--text-body);font-weight:700;line-height:1;opacity:0;cursor:pointer;transition:opacity var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard)}.cal-cell-add:hover,.cal-cell-add:focus-visible{opacity:1;background:var(--brand-teal-050)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-dim);display:grid;place-items:center;z-index:var(--z-overlay);padding:var(--space-4);animation:fade var(--motion-base) var(--ease-standard)}.modal{background:var(--surface);border-radius:var(--radius-md);width:100%;max-width:480px;max-height:90vh;overflow:auto;box-shadow:var(--elev-2);animation:pop var(--motion-base) var(--ease-standard)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--line)}.modal-head h2{margin:0}.modal-close{flex:none;width:32px;height:32px;min-height:auto;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--ink-muted);font-size:1rem}.modal-close:hover{background:var(--surface-3)}.modal-body{padding:var(--space-4)}.modal-foot{padding:var(--space-4);border-top:1px solid var(--line);display:flex;gap:var(--space-2);row-gap:18px;justify-content:flex-end;flex-wrap:wrap}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.overlay.sheet{place-items:end center;padding:0}.modal.sheet{max-width:560px;border-radius:var(--radius-md) var(--radius-md) 0 0;animation:sheet-up var(--motion-base) var(--ease-standard)}@keyframes sheet-up{0%{opacity:0;transform:translateY(16px)}}@media (max-width: 767px){.overlay{place-items:end center;padding:0}.modal{max-width:100%;max-height:92vh;border-radius:var(--radius-md) var(--radius-md) 0 0;animation:sheet-up var(--motion-base) var(--ease-standard)}}.banner,.notice,.banner-info,.banner-success,.banner-error,.error{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin:var(--space-2) 0;border:1px solid transparent}.banner:before,.notice:before,.banner-info:before,.banner-success:before,.banner-error:before,.error:before{flex:none}.banner,.notice{background:var(--status-tentative-tint);border-color:#ecdcae;color:#6b5618}.banner:before,.notice:before{content:"◔"}.banner-info{background:var(--brand-teal-050);border-color:var(--line);color:var(--brand-teal-600)}.banner-info:before{content:"ⓘ"}.banner-success{background:var(--status-confirmed-tint);border-color:var(--line);color:var(--brand-teal-600)}.banner-success:before{content:"✓"}.banner-error,.error{background:var(--status-danger-tint);border-color:var(--status-danger);color:var(--status-danger)}.banner-error:before,.error:before{content:"✕"}.empty{text-align:center;padding:var(--space-6) var(--space-4);color:var(--ink-muted);background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius-md)}.empty:before{content:"🗓";display:block;font-size:1.75rem;line-height:1;margin-bottom:var(--space-2)}.spinner{display:inline-block;width:1.1em;height:1.1em;border:2px solid var(--line-strong);border-top-color:var(--brand-teal);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-.2em}.skeleton{background:linear-gradient(90deg,var(--surface-3) 25%,var(--surface-2) 37%,var(--surface-3) 63%);background-size:400% 100%;border-radius:var(--radius-sm);animation:shimmer 1.4s ease infinite}.skeleton-row{height:56px;margin-bottom:var(--space-2)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.toast-wrap{position:fixed;bottom:var(--space-4);right:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);z-index:var(--z-toast);max-width:min(360px,calc(100vw - var(--space-6)))}.toast{display:flex;align-items:flex-start;gap:var(--space-3);background:var(--brand-navy);color:var(--on-fill);padding:.7rem 1rem;border-radius:var(--radius-sm);box-shadow:var(--elev-2);font-size:var(--text-sm);animation:toast-in var(--motion-base) var(--ease-standard)}.toast.error{background:var(--status-danger)}.toast.success{background:var(--status-success)}.toast-msg{flex:1}.toast-close{flex:none;min-height:auto;padding:0 2px;background:transparent;border:none;color:var(--on-fill);opacity:.8;font-size:var(--text-sm)}.toast-close:hover{background:transparent;opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (max-width: 767px){.toast-wrap{left:var(--space-4);right:var(--space-4);max-width:none;align-items:stretch}}.login-split{min-height:100vh;display:flex}.login-brandpanel{flex:1 1 52%;display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-5);padding:var(--space-8);background:linear-gradient(160deg,var(--brand-navy),var(--brand-navy-700) 55%,var(--brand-teal-600) 130%);color:var(--chrome-text)}.login-brandrow{display:flex;align-items:center;gap:var(--space-3)}.login-brandname{color:var(--on-fill);font-weight:700;font-size:1.15rem}.login-graphic{align-self:center;width:min(72%,480px);height:auto}.login-headline{color:var(--on-fill);font-size:var(--text-display);margin-bottom:var(--space-3);max-width:26rem;text-wrap:pretty}.login-sub{margin:0;max-width:26rem}.login-panel{flex:1 1 48%;display:grid;place-items:center;padding:var(--space-8) var(--space-6);background:var(--surface-2)}.login-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:420px;box-shadow:var(--elev-2)}.login-divider{display:flex;align-items:center;gap:var(--space-3);color:var(--ink-muted);font-size:var(--text-xs)}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--line)}@media (max-width: 767px){.login-split{flex-direction:column}.login-brandpanel{padding:var(--space-6) var(--space-5);gap:var(--space-4)}.login-graphic{width:min(88%,360px)}}.center-card{min-height:70vh;display:grid;place-items:center;padding:var(--space-4)}.center-card .card{max-width:460px;text-align:center}@media (max-width: 767px){.app-shell{flex-direction:column}.sidebar{position:fixed;inset:0 auto 0 0;height:100vh;transform:translate(-100%);transition:transform var(--motion-base) var(--ease-standard);z-index:var(--z-overlay);box-shadow:var(--elev-2)}.app-shell.nav-open .sidebar{transform:translate(0)}.nav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-dim);z-index:var(--z-nav)}.menu-btn{display:inline-flex;min-height:var(--tap-min);min-width:var(--tap-min);background:transparent;border:none;color:var(--brand-navy);font-size:1.4rem}.content{padding:var(--space-4) var(--space-3)}.cal-day>h2{top:0}}.dropzone{border:2px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);padding:var(--space-5) var(--space-4);text-align:center;cursor:pointer;min-height:var(--tap-min);transition:background var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}.dropzone:hover{border-color:var(--brand-teal)}.dropzone.is-over{border-color:var(--brand-teal);background:var(--brand-teal-050)}.dropzone.is-disabled{cursor:not-allowed;opacity:.6}.dropzone:focus-visible{outline:2px solid var(--accent-coral);outline-offset:2px}.dropzone-title{font-weight:600;color:var(--brand-navy)}.dropzone-hint{font-size:var(--text-xs);color:var(--ink-muted);margin-top:var(--space-1)}.file-rows{list-style:none;margin:var(--space-2) 0 0;padding:0;display:grid;gap:var(--space-2)}.file-row{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap-min);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--text-sm)}.file-icon{flex:none}.file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:var(--ink-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.file-note{flex:none;color:var(--status-danger);font-size:var(--text-xs)}.scan-pending{animation:scan-pulse 1.4s var(--ease-standard) infinite}@keyframes scan-pulse{0%,to{opacity:1}50%{opacity:.45}}.proof-list{list-style:none;padding:0;margin:0}.proof-item{gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--line)}.proof-name{font-weight:500;word-break:break-word}.proof-meta{display:inline-flex;align-items:center;gap:var(--space-3);white-space:nowrap}.notif-time{display:block;margin-top:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-muted)}.form-row{display:flex;gap:var(--space-3);flex-wrap:wrap}.form-row>.field{flex:1 1 45%;min-width:8rem}.detail-table th{width:8rem;color:var(--ink-muted);font-weight:600}.detail-subhead{font-size:var(--text-h3);margin:0}.danger-card{border-color:var(--status-danger);background:var(--status-danger-tint)}.brand-mark{width:28px;height:28px;vertical-align:-6px;margin-right:var(--space-2)}.brand-mark.lg{width:40px;height:40px;vertical-align:-10px}.day-switcher{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);position:sticky;top:0;z-index:var(--z-sticky);background:var(--surface-2);padding:var(--space-2) 0;font-weight:600}.app-shell{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}@media (max-width: 767px){.modal.sheet,.overlay.sheet .modal,.overlay .modal{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}.sidebar{padding-top:calc(var(--space-4) + env(safe-area-inset-top))}}
