:root{--navy: #002050;--navy-deep: #001536;--navy-soft: #0a3366;--cyan: #00a8e8;--cyan-deep: #0077b3;--cyan-soft: #dff3fb;--sky: #00a8e8;--sky-deep: #0077b3;--sky-soft: #dff3fb;--ink: #002050;--ink-soft: #0a3366;--lagoon: #00a8e8;--lagoon-deep: #0077b3;--sea: #00a8e8;--foam: #e8f4fa;--mist: #e8f4fa;--bg: #f5fafd;--sand: #d4e4ef;--line: #d4e4ef;--line-strong: rgba(0, 32, 80, .16);--text: #1c2f45;--muted: #5d738a;--ok: #1f7a4d;--warn: #b86a12;--err: #b42318;--surface: rgba(255, 255, 255, .92);--surface-solid: #ffffff;--card-bg: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(232, 244, 250, .72));--card-border: 1px solid rgba(0, 168, 232, .14);--radius: 14px;--radius-sm: 10px;--radius-lg: 18px;--font-display: "Outfit", "Segoe UI", sans-serif;--font-ui: "Plus Jakarta Sans", "Segoe UI", sans-serif;--shadow-soft: 0 16px 40px rgba(0, 32, 80, .08);--shadow-card: inset 0 1px 0 rgba(255, 255, 255, .9), 0 14px 32px rgba(0, 32, 80, .06);--shadow-btn: 0 10px 22px rgba(0, 168, 232, .28);--shadow-btn-hover: 0 14px 28px rgba(0, 168, 232, .34);--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;min-height:100dvh}body{font-family:var(--font-ui);color:var(--text);background:radial-gradient(1000px 480px at 8% -12%,rgba(0,168,232,.12),transparent 58%),radial-gradient(900px 420px at 100% 0%,rgba(0,32,80,.07),transparent 52%),var(--bg);background-attachment:fixed;-webkit-tap-highlight-color:transparent;text-size-adjust:100%;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background-image:linear-gradient(rgba(0,32,80,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,32,80,.035) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);z-index:0}#app{position:relative;z-index:1;min-height:100vh;min-height:100dvh}body.nav-locked{overflow:hidden}a{color:var(--lagoon-deep);cursor:pointer;font-weight:700;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .16s var(--ease),color .16s var(--ease)}a:hover{border-bottom-color:var(--lagoon);color:var(--lagoon)}h1,h2,h3{color:var(--ink);font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;margin:0 0 .35em}h1{font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.05}h2{font-size:clamp(1.55rem,2.4vw,2rem)}h3{font-size:1.15rem;font-family:var(--font-ui);letter-spacing:-.01em}.tagline,.lede{color:var(--muted);margin:0 0 1.25rem;font-size:.98rem;line-height:1.5;max-width:42rem}.muted{color:var(--muted);font-size:.92rem;line-height:1.5}.muted.tiny{font-size:.82rem;margin:.2rem 0 .6rem}.err{color:var(--err)}.forgot-panel{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.pwd-field-row{display:flex;gap:8px;align-items:center}.pwd-field-row .pwd-input,.pwd-field-row input{flex:1;min-width:0}.pwd-input{position:relative;display:flex;align-items:center;width:100%}.pwd-input input{width:100%;padding-right:48px}.pwd-input .pwd-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;min-width:36px;height:36px;border-radius:10px;z-index:1;box-shadow:none}.pwd-input .pwd-toggle:hover,.pwd-input .pwd-toggle:active{transform:translateY(-50%);filter:none;box-shadow:none}.pwd-input .pwd-toggle:hover svg{transform:scale(1.06)}.pwd-rules{list-style:none;margin:8px 0 12px;padding:0;display:grid;gap:4px}.pwd-rules li{font-size:.82rem;color:var(--muted);padding-left:1.1rem;position:relative}.pwd-rules li:before{content:"○";position:absolute;left:0;color:var(--muted)}.pwd-rules li.met{color:var(--ok)}.pwd-rules li.met:before{content:"●";color:var(--ok)}.warn{color:var(--warn)}.ok{color:var(--ok)}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh;min-height:100dvh}.app-shell.auth-only{display:block}.mobile-topbar,.nav-backdrop{display:none}.side-rail{position:sticky;top:0;align-self:start;height:100vh;height:100dvh;padding:22px 16px;padding-bottom:max(22px,env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#001a40,#002050 55%,#003066);color:#e8f4fb;display:flex;flex-direction:column;gap:20px;overflow:auto;animation:railIn .56s var(--ease) both;z-index:30}.side-brand{padding:0 0 14px;border-bottom:1px solid rgba(232,244,251,.12)}.side-brand .logo-plate{background:#fff;border-radius:12px;padding:12px 14px 10px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px #0000002e}.side-brand img{width:100%;max-width:168px;height:auto;display:block}.side-brand .route{margin-top:12px;padding:0 4px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#e8f4fb9e}.nav-groups{display:flex;flex-direction:column;gap:18px;flex:1}.nav-group-label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#e7f3f173;padding:0 10px 6px}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group button{width:100%;text-align:left;background:transparent;color:#e7f3f1d1;border:0;border-radius:10px;padding:10px 12px;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;box-shadow:none;letter-spacing:0;transition:background .16s var(--ease),color .16s var(--ease),transform .16s var(--ease),box-shadow .16s var(--ease)}.nav-group button:hover{background:#e7f3f11a;color:#fff;filter:none;transform:none;box-shadow:none}.nav-group button:active{transform:none;filter:none}.nav-group button:focus-visible{outline:2px solid rgba(0,168,232,.7);outline-offset:2px;box-shadow:none}.nav-group button.on{background:linear-gradient(90deg,#00a8e847,#00a8e81f);color:#fff;box-shadow:inset 3px 0 0 var(--cyan)}.nav-group button.on:hover{background:linear-gradient(90deg,#00a8e857,#00a8e829);box-shadow:inset 3px 0 0 var(--cyan)}.side-foot{padding-top:12px;border-top:1px solid rgba(231,243,241,.12);display:flex;align-items:center;gap:10px}.side-foot .who-rail{flex:1;min-width:0}.side-rail button.ghost{color:#e8f2f0;border-color:#e7f3f147;background:#e7f3f10f;box-shadow:none}.side-rail button.ghost:hover{background:#e7f3f124;color:#fff;border-color:#e7f3f16b;box-shadow:none;transform:translateY(-1px)}.side-rail button.ghost:active{transform:translateY(0)}button.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:40px;padding:0;flex-shrink:0;border-radius:12px}button.icon-btn svg{display:block;overflow:visible;flex-shrink:0;color:inherit;transition:transform .16s var(--ease)}button.icon-btn:hover svg{transform:scale(1.06)}.page-toolbar .toolbar-actions .icon-btn,.section-toolbar .icon-btn{width:40px;min-width:40px}.who-rail{padding:0 8px}.who-rail strong{display:block;font-size:.92rem;color:#fff}.who-rail small{color:#e6f7fdb3;letter-spacing:.06em;text-transform:uppercase;font-size:.68rem}.canvas{min-width:0;padding:28px 32px 48px;animation:rise .48s var(--ease) both}.canvas>h2:first-of-type{display:none}.canvas-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid rgba(212,228,239,.85)}.canvas-top .eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sky);font-weight:700;margin-bottom:4px}.canvas-top h1{font-size:clamp(1.7rem,2.6vw,2.2rem);margin:0}.auth-stage{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.auth-hero{position:relative;overflow:hidden;padding:clamp(32px,6vw,72px);color:#e8f4fb;background:linear-gradient(145deg,#001a4033,#00a8e82e),linear-gradient(160deg,#001536,#002050 46%,#007eb0);display:flex;flex-direction:column;justify-content:flex-end;animation:fadeIn .7s var(--ease) both}.auth-hero:before{content:"";position:absolute;inset:-20% -10% auto auto;width:70%;height:70%;background:radial-gradient(circle,rgba(0,168,232,.4),transparent 65%);animation:drift 14s ease-in-out infinite alternate}.auth-hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:radial-gradient(120% 80% at 10% 100%,rgba(232,244,251,.12),transparent 55%),radial-gradient(80% 60% at 80% 120%,rgba(0,168,232,.22),transparent 50%);pointer-events:none}.auth-hero-inner{position:relative;z-index:1;max-width:34rem;animation:rise .7s 80ms var(--ease) both}.auth-hero .logo-plate{display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:16px;padding:16px 20px 14px;margin-bottom:28px;box-shadow:0 16px 40px #00000038}.auth-hero img{height:clamp(64px,9vw,96px);width:auto;max-width:min(100%,320px);display:block}.auth-hero .corridor{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:#e7f3f1b3;margin-bottom:14px}.auth-hero h1{color:#fff;margin-bottom:14px}.auth-hero p{margin:0;color:#e7f3f1c7;font-size:1.05rem;line-height:1.55;max-width:28rem}.auth-panel{display:flex;align-items:center;justify-content:center;padding:clamp(24px,5vw,48px);background:linear-gradient(180deg,#ffffffb8,#f7fbfaeb);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:rise .56s .12s var(--ease) both}.auth-form{width:min(100%,400px)}.auth-form .form-kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sky);font-weight:700;margin-bottom:8px}.auth-form h2{margin-bottom:8px}.auth-form .lede{margin-bottom:22px}.auth-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.card,.panel{background:var(--card-bg);border:var(--card-border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-card)}.card:has(>table),.panel:has(>table),.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.panel-quiet{background:transparent;border:1px solid var(--line);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.page-head{margin-bottom:18px;animation:rise .42s var(--ease) both}.page-head h2{margin-bottom:4px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.metric{position:relative;overflow:hidden;padding:16px 18px;border-radius:var(--radius);border:var(--card-border);background:var(--card-bg);box-shadow:var(--shadow-card);animation:rise .5s var(--ease) both}.metric:after{content:"";position:absolute;right:-18px;top:-18px;width:72px;height:72px;border-radius:50%;background:#00a8e81a}.metric .label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:8px}.metric .stat{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.35rem);color:var(--ink);font-weight:700;letter-spacing:-.03em;line-height:1}.metric .stat.bad{color:var(--err)}.grid>.card{padding:16px 18px;margin:0;background:var(--card-bg);border:var(--card-border);box-shadow:var(--shadow-card)}.grid .label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:8px}.grid .stat{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.35rem);color:var(--ink);font-weight:700;letter-spacing:-.03em;line-height:1}.grid .stat.bad{color:var(--err)}.corridor-strip{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;padding:18px 20px;margin-bottom:18px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(90deg,#00a8e81a,#ffffffb3 45%,#0020500f);animation:rise .52s 60ms var(--ease) both}.corridor-end{font-weight:800;color:var(--ink);letter-spacing:.04em}.corridor-end small{display:block;font-weight:600;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;margin-bottom:4px}.corridor-mid{font-family:var(--font-display);color:var(--lagoon-deep);font-size:1.1rem;white-space:nowrap}.alert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.alert-list li{padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:#ffffffa6;font-weight:600}.alert-list li.err{border-color:#b4231840;background:#b423180f}.alert-list li.warn{border-color:#b86a1240;background:#b86a1212}.alert-list li.ok{border-color:#1f7a4d38;background:#1f7a4d0f}button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--sky) 0%,var(--sky-deep) 100%);color:#fff;border:0;border-radius:12px;padding:10px 18px;min-height:40px;font:inherit;font-weight:700;font-size:.92rem;letter-spacing:.01em;line-height:1.2;cursor:pointer;box-shadow:var(--shadow-btn);transition:transform .16s var(--ease),filter .16s var(--ease),opacity .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease)}button:hover{filter:brightness(1.04) saturate(1.05);transform:translateY(-1px);box-shadow:var(--shadow-btn-hover),inset 0 1px #ffffff57}button:active{transform:translateY(0);filter:brightness(.98);box-shadow:0 4px 10px #0090c838,inset 0 1px #ffffff2e}button:focus-visible{outline:2px solid rgba(0,168,232,.55);outline-offset:2px}button:disabled{opacity:.55;cursor:default;transform:none;filter:none;box-shadow:none}button.ghost{background:#ffffffeb;color:var(--navy);border:1px solid rgba(0,32,80,.12);box-shadow:0 4px 12px #0020500a}button.ghost:hover{background:var(--sky-soft);color:var(--sky-deep);border-color:#00a8e873;box-shadow:0 8px 18px #00a8e81f;filter:none}button.ghost:active{background:#00a8e824;box-shadow:0 2px 8px #0020500f;filter:none}.nav button{margin-right:8px;margin-bottom:8px;background:var(--surface-solid);color:var(--ink);border:1px solid var(--line);box-shadow:0 4px 12px #0020500a}.nav button:hover{border-color:#00a8e859;background:#fff;filter:none}.nav button.on{background:#00a8e81f;border-color:#00a8e866;color:var(--ink);box-shadow:0 6px 14px #0090c81f}.nav button.ghost{background:transparent;color:var(--lagoon-deep);border:1px solid rgba(0,168,232,.4)}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:11px 12px;margin:6px 0 14px;background:#ffffffeb;color:var(--text);font:inherit;font-size:16px;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--lagoon);box-shadow:0 0 0 3px #00a8e81f}label{color:var(--ink);font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}table{width:100%;border-collapse:collapse}th{color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);font-size:.92rem;vertical-align:top}tbody tr{transition:background .14s var(--ease)}tbody tr:hover{background:#00a8e80d}tr.clickable{cursor:pointer}tr.fail td{background:#b423180f}.filters{display:flex;flex-wrap:wrap;gap:10px 12px;margin-bottom:14px;align-items:end}.filters>label,.filters>.field{flex:1 1 140px;min-width:120px}.filters>input,.filters>select,.filters>.field input,.filters>.field select,.filters>.field textarea{flex:1 1 180px;min-width:160px;max-width:100%;margin:0}.filters>button{flex:0 0 auto;margin:0;width:auto}.filters>.icon-btn{align-self:end}.filters .field span{display:block;margin-bottom:6px}.filters>.field-wide{flex:2 1 220px}.page-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}.page-toolbar .tagline{margin-bottom:0}.toolbar-actions,.section-toolbar,.row-actions{display:flex;align-items:center;gap:8px}.section-toolbar{justify-content:space-between;margin-bottom:10px}.section-toolbar h3{margin:0}.row-actions{justify-content:flex-end}button.icon-btn.danger-icon{color:var(--err)}button.icon-btn.danger-icon:hover{background:#b4231814}button.icon-btn:disabled{opacity:.4;cursor:not-allowed}.check-row{display:flex;align-items:center;gap:8px;margin:10px 0 4px;font-weight:600;color:var(--ink)}.check-row input{width:auto}.notice-backdrop{z-index:80}.notice-panel{width:min(440px,calc(100vw - 32px));padding:22px 22px 18px}.notice-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}.notice-badge{flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:1rem;background:var(--cyan-soft);color:var(--navy)}.notice-panel h3{margin:0 0 6px;font-size:1.15rem}.notice-message{margin:0;color:var(--text);line-height:1.45;white-space:pre-wrap}.notice-detail{margin:8px 0 0;color:var(--muted);font-size:.9rem;line-height:1.4;white-space:pre-wrap}.notice-actions{justify-content:flex-end}.notice-panel.tone-success .notice-badge{background:#1f7a4d1f;color:var(--ok)}.notice-panel.tone-warn .notice-badge{background:#b86a1224;color:var(--warn)}.notice-panel.tone-error .notice-badge,.notice-panel.tone-danger .notice-badge{background:#b423181f;color:var(--err)}.notice-panel.tone-info .notice-badge{background:var(--cyan-soft);color:var(--cyan-deep)}button.danger{background:linear-gradient(180deg,#c63a31,#b42318);box-shadow:0 8px 18px #b4231847}button.danger:hover{box-shadow:0 12px 24px #b4231857}.section-kicker{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:12px}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;align-items:end}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field span{font-size:.82rem;font-weight:700;color:var(--ink-soft)}.field input,.field select,.field textarea{margin:0;width:100%}.reports-filters{margin-bottom:16px}.report-list{display:flex;flex-direction:column;gap:0}.report-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.report-row:first-child{border-top:0;padding-top:2px}.report-row:last-child{padding-bottom:2px}.report-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.report-copy strong{color:var(--ink);font-size:.98rem}.report-copy span{color:var(--muted);font-size:.9rem;line-height:1.4}.report-row button{flex-shrink:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;background:#00205073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .16s var(--ease) both}.modal-panel{width:min(100%,440px);max-height:min(90vh,720px);overflow:auto;background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);animation:rise .22s var(--ease) both}.modal-panel-lg{width:min(100%,580px)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--mist)}.detail-grid .detail-label{display:block;color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px}.detail-grid strong{color:var(--navy);font-weight:650;word-break:break-word}.modal-body textarea{width:100%;min-height:72px;resize:vertical}.modal-section-title{margin:16px 0 8px;font-size:.95rem}.compact-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-bottom:8px}.compact-table th,.compact-table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--line)}.compact-table th{color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 0}.modal-head h3{margin:0}.modal-body{padding:14px 18px 18px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.narrow{max-width:440px;margin:40px auto}.brand-lockup{text-align:center;margin-bottom:18px}.brand-lockup img{width:min(100%,280px);height:auto}.loading-line{color:var(--muted);font-weight:600;letter-spacing:.04em}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes railIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(-4%,6%) scale(1.08)}}@media(max-width:960px){.app-shell{grid-template-columns:1fr}.mobile-topbar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:25;padding:max(10px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) 10px max(12px,env(safe-area-inset-left,0px));background:#ffffffeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-topbar-copy{flex:1;min-width:0}.mobile-topbar-copy .eyebrow{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lagoon);font-weight:700}.mobile-topbar-copy strong{display:block;color:var(--ink);font-size:1.05rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-topbar .icon-btn{width:44px;height:44px;border-color:var(--line-strong);color:var(--ink);background:#fff}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:28;background:#0020506b;opacity:0;pointer-events:none;transition:opacity .18s var(--ease)}.nav-backdrop.show{opacity:1;pointer-events:auto}.side-rail{position:fixed;top:0;left:0;bottom:0;width:min(84vw,300px);height:100dvh;max-height:none;transform:translate(-105%);transition:transform .22s var(--ease);box-shadow:0 18px 40px #00205047}.app-shell.nav-open .side-rail{transform:translate(0)}.nav-groups{display:flex;flex-direction:column;gap:14px}.nav-group button{min-height:44px;font-size:.95rem}.canvas{padding:16px 14px 36px;padding-bottom:max(36px,env(safe-area-inset-bottom,0px))}.canvas-top{display:none}.auth-stage{grid-template-columns:1fr}.auth-hero{min-height:34vh;justify-content:flex-end;padding:24px 18px}.auth-panel{padding:22px 16px 32px}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:1fr}.filters button{margin-bottom:0;width:100%}table{min-width:620px}.modal-backdrop{padding:12px;align-items:end}.modal-panel{width:100%;max-height:min(92dvh,720px);border-radius:16px 16px 10px 10px}.modal-actions{flex-wrap:wrap}.modal-actions button{flex:1 1 auto;min-height:44px}}@media(max-width:640px){.corridor-strip{grid-template-columns:1fr;text-align:center}.page-toolbar{flex-direction:column;align-items:stretch}.page-toolbar button{width:100%}.page-toolbar .toolbar-actions{justify-content:flex-end}.page-toolbar .toolbar-actions .icon-btn,.page-toolbar button.icon-btn{width:44px;min-width:44px}.filter-grid{grid-template-columns:1fr}.report-row{flex-direction:column;align-items:stretch}.report-row button{width:100%}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:clamp(1.8rem,8vw,2.4rem)}button{min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
