:root{--ink:#0f2b3c;--ink-2:#2f4a5c;--muted:#5f7a8c;--muted-2:#8ca6b6;--surface:#fff;--surface-alt:#e9f4fb;--surface-sunk:#dcedf7;--border:#dceaf3;--border-strong:#bfd9e9;--sky-top:#cde9f7;--sky-mid:#e6f4fc;--sky-low:#f3fafd;--card-edge:#78b0cd38;--brand:#146b87;--brand-dark:#0e566f;--brand-darker:#0a4257;--brand-soft:#e8f4f8;--brand-tint:#cfe7ef;--accent:#1e88c7;--accent-dark:#1670a8;--accent-soft:#e4f1fb;--accent-tint:#c4e0f5;--accessible:#1fa463;--accessible-soft:#e3f6ec;--partial:#f2a93b;--partial-soft:#fdf1df;--inaccessible:#e14b4b;--inaccessible-soft:#fceaea;--unknown:#9fb0bf;--unknown-soft:#eef2f6;--accessible-ink:#16794a;--partial-ink:#8a5b0f;--inaccessible-ink:#b03434;--unknown-ink:#55697a;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-script:"Caveat", "Segoe Script", "Bradley Hand", cursive;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.125rem;--leading-tight:1.18;--leading-snug:1.35;--leading-normal:1.55;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.25rem;--s-6:1.5rem;--s-8:2rem;--s-10:2.5rem;--s-12:3rem;--s-16:4rem;--r-sm:12px;--r-md:16px;--r-lg:20px;--r-xl:26px;--r-2xl:32px;--r-full:999px;--shadow-xs:0 1px 2px #154f6c0d;--shadow-sm:0 4px 16px #154f6c14;--shadow-md:0 10px 30px #154f6c1a;--shadow-lg:0 20px 48px #154f6c26;--shadow-sheet:0 -12px 40px #154f6c24;--shadow-fab:0 8px 22px #1e88c761;--nav-height:66px;--nav-total:calc(66px + env(safe-area-inset-bottom,0px));--header-height:60px;--content-max:760px;--admin-sidebar:248px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--ease:cubic-bezier(.22, .61, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.14s;--dur:.22s;--dur-slow:.34s;--focus-ring:0 0 0 3px #1e88c759;--z-sticky:1;--z-topbar:50;--z-drawer-scrim:60;--z-drawer:61;--z-backdrop:70;--z-modal:71;--z-lightbox:80;--z-toast:90;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur:0s;--dur-slow:0s}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:more){:root{--muted:#46596b;--border:#b6c6d4;--border-strong:#8598a8}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none;background:radial-gradient(140% 70% at 50% -10%, var(--sky-top) 0%, var(--sky-mid) 45%, var(--sky-low) 100%) var(--sky-low) fixed;background-attachment:fixed;margin:0}body:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(120% 100% at 50% 100%,#a3d6f06b 0%,#c4e6f638 42%,#fff0 78%);height:46vh;position:fixed;inset:auto 0 0}h1,h2,h3,h4,h5{line-height:var(--leading-tight);font-weight:var(--weight-semibold);letter-spacing:-.015em;margin:0}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}p{margin:0 0 var(--s-3)}p:last-child{margin-bottom:0}a{color:var(--brand-dark);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:var(--brand-darker)}img,svg,video{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}ul,ol{margin:0;padding:0}li{list-style:none}hr{border:0;border-top:1px solid var(--border);margin:var(--s-5) 0}code,kbd{font-family:var(--font-mono);font-size:.9em}:focus{outline:none}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-sm)}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:calc(var(--safe-top) + var(--s-2));left:var(--s-2);z-index:1000;padding:var(--s-2) var(--s-4);background:var(--brand);color:#fff;border-radius:var(--r-sm);transition:transform var(--dur) var(--ease);position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}#app{flex-direction:column;min-height:100dvh;display:flex}.app-main{flex:auto;min-height:0;position:relative}.page{padding:var(--s-4) var(--s-4) calc(var(--nav-height) + var(--safe-bottom) + var(--s-6));max-width:var(--content-max);width:100%;margin:0 auto}.page--flush{padding-left:0;padding-right:0}.page--full{max-width:none;height:100%;padding:0}.stack>*+*{margin-top:var(--s-4)}.stack-sm>*+*{margin-top:var(--s-2)}.stack-lg>*+*{margin-top:var(--s-6)}.row{align-items:center;gap:var(--s-3);display:flex}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:var(--text-sm)}.xs{font-size:var(--text-xs)}.strong{font-weight:var(--weight-semibold)}.nowrap{white-space:nowrap}.center{text-align:center}.section-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:var(--s-2)}.divider{background:var(--border);height:1px;margin:var(--s-4) 0}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:48px;padding:var(--s-3) var(--s-5);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-size:var(--text-base);font-weight:var(--weight-semibold);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent;border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.985)}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{background-image:linear-gradient(180deg, #1a7a9a 0%, var(--brand) 55%, var(--brand-dark) 100%);background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 10px #146b8738}.btn--primary:hover:not([disabled]){background-image:linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 60%, var(--brand-darker) 100%);border-color:var(--brand-dark);color:#fff}.btn--accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn--accent:hover:not([disabled]){background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.btn--secondary{background:var(--surface);border-color:var(--border-strong);color:var(--ink)}.btn--secondary:hover:not([disabled]){background:var(--surface-alt)}.btn--ghost{color:var(--brand-dark);background:0 0;border-color:#0000}.btn--ghost:hover:not([disabled]){background:var(--brand-soft)}.btn--danger{background:var(--inaccessible);border-color:var(--inaccessible);color:#fff}.btn--subtle{background:var(--surface-sunk);color:var(--ink-2);border-color:#0000}.btn--block{width:100%}.btn--lg{min-height:56px;font-size:var(--text-md);border-radius:var(--r-lg)}.btn--sm{min-height:36px;padding:var(--s-2) var(--s-3);font-size:var(--text-sm);border-radius:var(--r-sm)}.btn--icon{min-width:48px;padding:var(--s-3)}.btn--sm.btn--icon{min-width:36px;padding:var(--s-2)}.btn__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:15px;height:15px;animation:.64s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--card-edge);border-radius:var(--r-xl);padding:var(--s-4);box-shadow:var(--shadow-sm)}.card--flush{padding:0;overflow:hidden}.card--raised{box-shadow:var(--shadow-md);border-color:#0000}.card--interactive{text-align:left;cursor:pointer;width:100%;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease)}.card--interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.card--interactive:active{transform:scale(.995)}.card__title{font-size:var(--text-md);font-weight:var(--weight-semibold)}.card__meta{font-size:var(--text-sm);color:var(--muted)}.icon-badge{background:var(--surface-sunk);color:var(--ink-2);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.icon-badge--sm{width:34px;height:34px}.icon-badge--lg{width:52px;height:52px}.icon-badge--brand{background:var(--brand-soft);color:var(--brand-dark)}.icon-badge--accent{background:var(--accent-soft);color:var(--accent-dark)}.icon-badge--accessible{background:var(--accessible-soft);color:var(--accessible-ink)}.icon-badge--partial{background:var(--partial-soft);color:var(--partial-ink)}.icon-badge--inaccessible{background:var(--inaccessible-soft);color:var(--inaccessible-ink)}.icon-badge--unverified{background:var(--unknown-soft);color:var(--unknown-ink)}.icon-badge--solid{color:#fff}.icon-badge--solid.icon-badge--accessible{background:var(--accessible)}.icon-badge--solid.icon-badge--partial{background:var(--partial);color:#3b2a05}.icon-badge--solid.icon-badge--inaccessible{background:var(--inaccessible)}.icon-badge--solid.icon-badge--accent{background:var(--accent)}.icon-badge--solid.icon-badge--brand{background:var(--brand)}.pill{align-items:center;gap:var(--s-2);border-radius:var(--r-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;padding:5px 11px;line-height:1.5;display:inline-flex}.pill__glyph{font-size:.85em;line-height:1}.pill--accessible{background:var(--accessible-soft);color:var(--accessible-ink)}.pill--partial{background:var(--partial-soft);color:var(--partial-ink)}.pill--inaccessible{background:var(--inaccessible-soft);color:var(--inaccessible-ink)}.pill--unverified{background:var(--unknown-soft);color:var(--unknown-ink)}.pill--neutral{background:var(--surface-sunk);color:var(--ink-2)}.pill--brand{background:var(--brand-soft);color:var(--brand-darker)}.pill--accent{background:var(--accent-soft);color:var(--accent-dark)}.pill--outline{background:0 0;border:1px solid}.severity{border-radius:var(--r-sm);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.01em;justify-content:center;align-items:center;padding:4px 10px;display:inline-flex}.severity--critical{background:var(--inaccessible);color:#fff}.severity--high{background:var(--partial);color:#3b2a05}.severity--medium{background:var(--accent-soft);color:var(--accent-dark)}.severity--low{background:var(--surface-sunk);color:var(--ink-2)}.chips{gap:var(--s-2);scrollbar-width:none;padding:var(--s-1) 0;-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{min-height:42px;padding:var(--s-2) var(--s-4);border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);align-items:center;gap:var(--s-2);border-color:var(--card-edge);box-shadow:var(--shadow-sm);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);flex:none;display:inline-flex}.chip[aria-pressed=true]{background:var(--brand-darker);border-color:var(--brand-darker);color:#fff;box-shadow:0 4px 14px #0a42574d}.chip__dot{border-radius:50%;flex:none;width:9px;height:9px}.field{display:block}.field__label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink-2);margin-bottom:var(--s-2);display:block}.field__hint{font-size:var(--text-xs);color:var(--muted);margin-top:var(--s-2)}.field__error{font-size:var(--text-sm);color:var(--inaccessible-ink);margin-top:var(--s-2);font-weight:var(--weight-medium)}.input,.select,.textarea{width:100%;min-height:52px;padding:var(--s-3) var(--s-4);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);font-size:var(--text-md);color:var(--ink);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--muted-2)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--inaccessible)}.textarea{resize:vertical;min-height:104px;line-height:var(--leading-normal)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364798B' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--s-4) center;padding-right:var(--s-8)}.search-field{align-items:center;gap:var(--s-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:0 var(--s-2) 0 var(--s-4);box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);display:flex}.search-field:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.search-field__icon{color:var(--accent);flex:none;display:flex}.search-field input{min-width:0;min-height:52px;font-size:var(--text-md);color:var(--ink);background:0 0;border:0;flex:1}.search-field input:focus-visible{outline:none}.search-field input::placeholder{color:var(--muted-2)}.search-field__go{border-radius:var(--r-sm);width:40px;height:40px;color:var(--muted);background:0 0;border:0;flex:none;place-items:center;display:grid}.search-field__go:hover{background:var(--surface-alt);color:var(--ink)}.option-list{gap:var(--s-2);display:grid}.option{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);cursor:pointer;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);min-height:58px;display:flex}.option:hover{background:var(--surface-alt)}.option input{opacity:0;width:1px;height:1px;position:absolute}.option__body{flex:auto;min-width:0}.option__icon{border-radius:var(--r-full);flex:none;place-items:center;width:40px;height:40px;display:grid}.option__icon--brand{background:var(--brand-soft);color:var(--brand)}.option__icon--accent{background:var(--accent-soft);color:var(--accent-dark)}.option__icon--accessible{background:var(--accessible-soft);color:var(--accessible-ink)}.option__icon--partial{background:var(--partial-soft);color:var(--partial-ink)}.option__mark{border:2px solid var(--border-strong);width:20px;height:20px;transition:border-color var(--dur-fast) var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.option__mark:after{content:"";background:var(--brand);width:10px;height:10px;transition:transform var(--dur-fast) var(--ease);border-radius:50%;transform:scale(0)}.option input:checked~.option__mark{border-color:var(--brand)}.option input:checked~.option__mark:after{transform:scale(1)}.option:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}.option input:focus-visible~.option__mark{box-shadow:var(--focus-ring)}.option__body{flex-direction:column;gap:2px;min-width:0;display:flex}.option__title{font-weight:var(--weight-semibold);font-size:var(--text-base);line-height:1.3}.option__desc{font-size:var(--text-sm);color:var(--muted);line-height:1.4}.toggle{justify-content:space-between;align-items:center;gap:var(--s-4);cursor:pointer;min-height:48px;display:flex}.toggle>span:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle__track{border-radius:var(--r-full);background:var(--border-strong);width:48px;height:28px;transition:background var(--dur) var(--ease);flex:none;position:relative}.toggle__track:after{content:"";width:22px;height:22px;box-shadow:var(--shadow-xs);transition:transform var(--dur) var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle input:checked~.toggle__track{background:var(--brand)}.toggle input:checked~.toggle__track:after{transform:translate(20px)}.toggle input:focus-visible~.toggle__track{box-shadow:var(--focus-ring)}.meter{display:block}.meter__head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.meter__label{font-size:var(--text-sm);color:var(--muted)}.meter__value{font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.meter__track{border-radius:var(--r-full);background:var(--surface-sunk);height:8px;overflow:hidden}.meter__fill{border-radius:var(--r-full);background:var(--brand);height:100%;transition:width var(--dur-slow) var(--ease-out)}.meter__fill--accessible{background:var(--accessible)}.meter__fill--partial{background:var(--partial)}.meter__fill--inaccessible{background:var(--inaccessible)}.meter__fill--unknown{background:var(--unknown)}.score-ring{--ring:0;--ring-color:var(--accessible);background:conic-gradient(var(--ring-color) calc(var(--ring) * 1%), var(--surface-sunk) 0);border-radius:50%;flex:none;place-items:center;width:46px;height:46px;display:grid;position:relative}.score-ring:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:4px}.score-ring__value{font-size:var(--text-base);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--ink);line-height:1;position:relative}.score-ring--lg{width:62px;height:62px}.score-ring--lg .score-ring__value{font-size:var(--text-lg)}.stats{gap:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stat{align-items:start;gap:var(--s-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.stat__text{min-width:0}.stat__value{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;line-height:1.1;font-size:clamp(1.0625rem, 5.4vw, var(--text-xl));overflow:hidden}.stat__label{font-size:var(--text-xs);color:var(--muted);margin-top:4px}.stat__icon{border-radius:var(--r-full);flex:none;place-items:center;width:30px;height:30px;display:grid}.stat__icon--brand{background:var(--brand-soft);color:var(--brand)}.stat__icon--accent{background:var(--accent-soft);color:var(--accent-dark)}.stat__icon--inaccessible{background:var(--inaccessible-soft);color:var(--inaccessible)}.stat__icon--unknown{background:var(--unknown-soft);color:var(--unknown-ink)}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-4);align-items:flex-start;gap:var(--s-3);display:flex}.kpi__body{flex:1;min-width:0}.kpi__label{font-size:var(--text-sm);color:var(--muted);font-weight:var(--weight-medium)}.kpi__value{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px;line-height:1.15}.kpi__foot{font-size:var(--text-xs);color:var(--muted);margin-top:4px}.kpi__trend{font-weight:var(--weight-semibold);align-items:center;gap:3px;display:inline-flex}.kpi__trend--up{color:var(--accessible-ink)}.kpi__trend--down{color:var(--inaccessible-ink)}.sheet-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-backdrop);opacity:0;background:#10212f6b;animation:.18s forwards sheet-fade;position:fixed;inset:0}@keyframes sheet-fade{to{opacity:1}}.sheet{z-index:var(--z-modal);background:var(--surface);border-radius:var(--r-2xl) var(--r-2xl) 0 0;opacity:0;flex-direction:column;max-height:86vh;animation:.22s cubic-bezier(.22,1,.36,1) forwards sheet-rise;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(14px);box-shadow:0 -10px 40px #10212f38}@keyframes sheet-rise{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop{opacity:1;animation:none;transform:none}}.sheet__grip{border-radius:var(--r-full);background:var(--border-strong);flex:none;width:40px;height:4px;margin:10px auto 2px}.sheet__header{border-bottom:1px solid var(--border);flex:none;align-items:flex-start;gap:12px;padding:10px 18px 12px;display:flex}.sheet__title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--ink);flex:1;margin:0;line-height:1.28}.sheet__subtitle{font-size:var(--text-sm);color:var(--muted);margin:2px 0 0}.sheet__close{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface-alt);width:34px;height:34px;color:var(--ink-2);cursor:pointer;flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.sheet__close:hover{background:var(--surface-sunk);color:var(--ink)}.sheet__close:focus-visible{box-shadow:var(--focus-ring);outline:none}.sheet__body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:14px;padding:16px 18px;display:flex;overflow-y:auto}.sheet__footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--surface);flex:none;gap:10px;display:flex}.sheet__footer .btn{flex:1}.toasts{left:50%;bottom:calc(var(--nav-total) + 16px);z-index:var(--z-toast);pointer-events:none;flex-direction:column;gap:8px;width:min(440px,100vw - 32px);display:flex;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--ink);color:#fff;border-radius:var(--r-md);font-size:var(--text-sm);align-items:flex-start;gap:9px;padding:11px 14px;line-height:1.4;animation:.2s toast-in;display:flex;box-shadow:0 8px 24px #10212f47}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.toast__icon{flex:none;margin-top:1px}.toast--success{background:var(--accessible-ink)}.toast--warning{background:var(--partial-ink)}.toast--error{background:var(--inaccessible-ink)}.banner{border-radius:var(--r-md);font-size:var(--text-sm);border:1px solid var(--border);background:var(--surface-alt);color:var(--ink-2);align-items:flex-start;gap:10px;padding:12px 14px;line-height:1.5;display:flex}.banner__icon{flex:none;margin-top:1px}.banner__body{flex:1}.banner__title{font-weight:var(--weight-semibold);color:var(--ink);margin-bottom:2px;display:block}.banner--info{background:var(--accent-soft);border-color:var(--accent-tint);color:#14496b}.banner--info .banner__title{color:#0f3a55}.banner--warning{color:var(--partial-ink);background:#fdf3e1;border-color:#f6dfb4}.banner--warning .banner__title{color:#6e4708}.banner--danger{color:var(--inaccessible-ink);background:#fcebeb;border-color:#f5cdcd}.banner--danger .banner__title{color:#8e2828}.banner--neutral{background:var(--surface-alt);border-color:var(--border);color:var(--ink-2)}.demo-badge{background:var(--partial);color:#3d2703;font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;border-radius:var(--r-full);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:30px 20px;display:flex}.empty__icon{border-radius:var(--r-full);background:var(--surface-sunk);width:52px;height:52px;color:var(--muted-2);justify-content:center;align-items:center;display:inline-flex}.empty__title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--ink-2);margin:0}.empty__text{font-size:var(--text-sm);max-width:34ch;margin:0;line-height:1.5}.skeleton{background:linear-gradient(90deg, var(--surface-sunk) 25%, #eff4f8 50%, var(--surface-sunk) 75%);border-radius:var(--r-sm);background-size:200% 100%;height:14px;animation:1.3s linear infinite shimmer}.skeleton--card{border-radius:var(--r-lg);height:82px}.skeleton--line-sm{width:42%}.skeleton--line-md{width:68%}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.spinner-center{color:var(--muted);font-size:var(--text-sm);justify-content:center;align-items:center;gap:10px;padding:28px 16px;display:flex}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.7s linear infinite spin}.spinner--lg{border-width:3px;width:26px;height:26px}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--text-sm);min-width:520px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 14px}table.data thead th{background:var(--surface-alt);color:var(--muted);font-weight:var(--weight-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;z-index:1;position:sticky;top:0}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--surface-alt)}table.data td.num{text-align:right;font-variant-numeric:tabular-nums}table.data .cell-strong{font-weight:var(--weight-semibold);color:var(--ink)}table.data .cell-muted{color:var(--muted)}.kv{font-size:var(--text-sm);grid-template-columns:minmax(96px,auto) 1fr;gap:7px 14px;margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{color:var(--ink-2);font-weight:var(--weight-medium);margin:0}.kv--stacked{grid-template-columns:1fr;gap:10px}.kv--stacked dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}.kv--stacked dd{margin-bottom:2px}.tag-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tag-list li{font-size:var(--text-xs);background:var(--surface-sunk);color:var(--ink-2);border-radius:var(--r-sm);font-family:var(--font-mono,ui-monospace, monospace);padding:4px 9px}.link-button{font:inherit;font-size:var(--text-sm);color:var(--accent-dark);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;text-decoration:none;display:inline-flex}.link-button:hover{text-decoration:underline}.link-button:focus-visible{box-shadow:var(--focus-ring);border-radius:4px;outline:none}.street-photo{margin:8px 0 10px}.street-photo__skeleton{aspect-ratio:4/3;border-radius:var(--r-md);background:var(--surface-sunk);background-image:linear-gradient(100deg,#0000 20%,#ffffff8c 50%,#0000 80%);background-size:220% 100%;animation:1.4s ease-in-out infinite street-photo-shimmer}@keyframes street-photo-shimmer{0%{background-position:140% 0}to{background-position:-40% 0}}.street-photo__status{margin-top:6px}.street-photo__figure{margin:0}.street-photo__button{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunk);cursor:zoom-in;width:100%;padding:0;display:block;position:relative;overflow:hidden}.street-photo__button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.street-photo__img{object-fit:cover;width:100%;max-height:320px;display:block}.street-photo__badge{border-radius:var(--r-full);color:#fff;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.02em;background:#0000009e;padding:2px 7px;position:absolute;top:8px;left:8px}.street-photo__zoom{border-radius:var(--r-full);color:#fff;background:#0000009e;padding:6px;display:inline-flex;position:absolute;bottom:8px;right:8px}.street-photo__caption{flex-wrap:wrap;gap:4px 10px;margin-top:6px;display:flex}.street-photo__licence a{color:inherit}.street-lightbox{z-index:var(--z-lightbox);justify-content:center;align-items:center;gap:var(--s-3);padding:max(var(--s-4), var(--safe-top)) var(--s-4) max(var(--s-4), var(--safe-bottom));opacity:0;transition:opacity var(--dur) var(--ease-out);background:#000000e0;flex-direction:column;display:flex;position:fixed;inset:0}.street-lightbox[data-open=true]{opacity:1}.street-lightbox__img{border-radius:var(--r-md);object-fit:contain;max-width:100%;max-height:78vh}.street-lightbox__caption{color:#ffffffc7;font-size:var(--text-xs);text-align:center;flex-wrap:wrap;justify-content:center;gap:4px 12px;margin:0;display:flex}.street-lightbox__caption a{color:#ffffffeb}.street-lightbox__close{top:max(var(--s-3), var(--safe-top));right:var(--s-3);border-radius:var(--r-full);color:#fff;cursor:pointer;background:#ffffff24;border:none;padding:10px;display:inline-flex;position:absolute}.street-lightbox__close:focus-visible{outline-offset:2px;outline:2px solid #fff}@media (prefers-reduced-motion:reduce){.street-photo__skeleton{animation:none}.street-lightbox{transition:none}}.place-suggest:not(:empty){border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);margin-top:6px;padding:4px}.list-item--sm{gap:8px;padding:8px 10px}.list-item--sm .list-item__title{font-size:var(--text-sm)}.list-item--sm .list-item__meta{font-size:var(--text-xs)}.street-photo__unanalysed{color:var(--partial-ink);font-weight:var(--weight-medium);flex-basis:100%}.map-screen{flex-direction:column;display:flex;position:absolute;inset:0}.map-canvas,.map-canvas.maplibregl-map{background:var(--surface-alt);width:100%;height:100%;position:absolute;inset:0}.map-canvas .maplibregl-canvas{outline:none}.maplibregl-ctrl-bottom-left{bottom:var(--nav-total)!important}.map-screen{--fab-stack:56px}.maplibregl-ctrl-bottom-right{bottom:calc(var(--nav-total) + var(--s-4) + var(--fab-stack))!important}.maplibregl-ctrl-attrib{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffdb!important;font-size:10px!important}.maplibregl-ctrl-attrib a{color:var(--ink-2)!important}.maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show){width:24px;height:24px;min-height:0;box-shadow:var(--shadow-sm);border-radius:var(--r-full)!important;background:#ffffffe6!important;padding:0!important}.maplibregl-ctrl-attrib-button{opacity:.75}.maplibregl-ctrl-attrib-button:hover{opacity:1}.maplibregl-ctrl-attrib.maplibregl-compact-show{max-width:min(76vw,320px);border-radius:var(--r-md)!important}.maplibregl-ctrl-group{border-radius:var(--r-md)!important;box-shadow:var(--shadow-sm)!important;border:1px solid var(--border)!important}.map-overlay{top:calc(var(--safe-top) + var(--s-3));left:var(--s-3);right:var(--s-3);z-index:20;gap:var(--s-2);pointer-events:none;flex-direction:column;display:flex;position:absolute}.map-overlay>*{pointer-events:auto}.map-search{align-items:center;gap:var(--s-2);background:var(--surface);border-radius:var(--r-full);box-shadow:var(--shadow-md);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);border:1px solid var(--border);display:flex}.map-search input{min-height:40px;font-size:var(--text-base);background:0 0;border:0;flex:1}.map-search input:focus-visible{outline:none}.map-filters{gap:var(--s-2);scrollbar-width:none;margin:0 calc(var(--s-1) * -1);padding:2px 0;padding-left:var(--s-1);padding-right:var(--s-1);display:flex;overflow-x:auto}.map-filters::-webkit-scrollbar{display:none}.map-filters .chip:not([aria-pressed=true]){-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2}.map-filters .chip{box-shadow:var(--shadow-sm);flex:none}.map-fab{right:var(--s-3);bottom:calc(var(--nav-total) + var(--s-4));z-index:25;gap:var(--s-2);flex-direction:column;align-items:flex-end;display:flex;position:absolute}.fab{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);min-width:48px;min-height:48px;color:var(--ink);box-shadow:var(--shadow-md);justify-content:center;align-items:center;gap:var(--s-2);padding:0 var(--s-4);font-weight:var(--weight-semibold);font-size:var(--text-sm);text-decoration:none;display:inline-flex}.fab:hover{color:var(--ink)}.fab--primary:hover{color:#fff}.fab--primary{background:linear-gradient(150deg, var(--accent) 0%, var(--brand) 100%);color:#fff;box-shadow:var(--shadow-fab);border-color:#0000}.fab--icon{justify-content:center;padding:0}.legend{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:var(--s-3) var(--s-4);background:#fffffff2}.legend__title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--s-2)}.legend__items{gap:var(--s-2) var(--s-4);flex-wrap:wrap;display:flex}.legend__item{font-size:var(--text-xs);color:var(--ink-2);align-items:center;gap:6px;display:inline-flex}.legend__swatch{border-radius:var(--r-full);flex:none;width:18px;height:5px}.legend__glyph{color:var(--muted);font-size:10px;line-height:1}.legend--floating{left:var(--s-3);z-index:24;max-width:208px;bottom:calc(var(--nav-total) + var(--s-4) + 112px);position:absolute}@media (min-width:640px){.legend--floating{bottom:calc(var(--nav-total) + var(--s-4))}}.legend--floating .legend__items{flex-direction:column;gap:7px}.legend--floating{padding-right:calc(var(--s-4) + 16px)}.legend__close{border-radius:var(--r-full);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:4px;right:4px}.legend__close:hover{background:var(--surface-alt);color:var(--ink)}.legend-toggle{left:var(--s-3);z-index:24;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);width:40px;height:40px;box-shadow:var(--shadow-md);color:var(--ink-2);cursor:pointer;bottom:calc(var(--nav-total) + var(--s-4) + 112px);justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.legend-toggle:hover{color:var(--brand)}@media (min-width:640px){.legend-toggle{bottom:calc(var(--nav-total) + var(--s-4))}}.legend[hidden],.legend-toggle[hidden]{display:none!important}.area-summary{align-items:center;gap:var(--s-4);display:flex}.area-summary__body{flex:1;min-width:0}.area-stats{gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(84px,1fr));display:grid}.area-stat{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--r-md);text-align:left;padding:10px 12px}.area-stat__value{font-size:var(--text-lg);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1}.area-stat__label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:3px;font-size:10.5px}.area-stat--accessible .area-stat__value{color:var(--accessible-ink)}.area-stat--partial .area-stat__value{color:var(--partial-ink)}.area-stat--inaccessible .area-stat__value{color:var(--inaccessible-ink)}.area-stat--unknown .area-stat__value{color:var(--unknown-ink)}.route-options{gap:var(--s-3);display:grid}.route-option__head{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.route-option__name{font-weight:var(--weight-semibold);font-size:var(--text-base);letter-spacing:-.012em}.route-option__figures{gap:var(--s-4);margin-top:var(--s-2);font-size:var(--text-sm);display:flex}.route-option__figure b{font-variant-numeric:tabular-nums}.composition{border-radius:var(--r-full);background:var(--surface-sunk);height:8px;margin-top:var(--s-3);display:flex;overflow:hidden}.composition span{height:100%;display:block}.step-list{gap:var(--s-1);display:grid}.step{gap:var(--s-3);padding:var(--s-3) var(--s-2);border-bottom:1px solid var(--border);grid-template-columns:32px 1fr auto;align-items:center;display:grid}.step:last-child{border-bottom:0}.step__icon{color:var(--muted);place-items:center;display:grid}.step__text{font-size:var(--text-sm)}.step__distance{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}.step__warn{font-size:var(--text-xs);color:var(--inaccessible-ink);font-weight:var(--weight-medium)}.nav-banner{top:calc(var(--safe-top) + var(--s-3));left:var(--s-3);right:var(--s-3);z-index:30;background:linear-gradient(140deg, var(--brand) 0%, var(--brand-darker) 100%);color:#fff;border-radius:var(--r-lg);padding:var(--s-4);box-shadow:var(--shadow-md);position:absolute}.nav-banner__manoeuvre{font-size:var(--text-xl);font-weight:var(--weight-semibold)}.nav-banner__detail{font-size:var(--text-sm);opacity:.9;margin-top:2px}.nav-banner__alert{margin-top:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);font-size:var(--text-sm);background:#ffffff29}.nav-dock{left:var(--s-3);right:var(--s-3);bottom:calc(var(--nav-total) + var(--s-3));z-index:30;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:var(--s-3) var(--s-4);justify-content:space-between;align-items:center;gap:var(--s-3);display:flex;position:absolute}.demo-bar{top:max(var(--s-2), var(--safe-top));left:var(--s-2);right:var(--s-2);z-index:var(--z-topbar);align-items:center;gap:var(--s-2);border:1px solid var(--partial-ink);border-radius:var(--r-md);background:var(--partial-soft);color:var(--partial-ink);box-shadow:var(--shadow-md);padding:8px 10px;display:flex;position:absolute}.demo-bar[hidden]{display:none}.demo-bar__icon{flex-shrink:0;display:inline-flex}.demo-bar__text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.demo-bar__exit{border-radius:var(--r-full);color:inherit;font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:1px solid;flex-shrink:0;padding:6px 10px}.demo-bar__exit:hover{background:#0000000f}.demo-bar__exit:focus-visible{outline-offset:2px;outline:2px solid}@media (max-width:460px){.demo-bar{flex-wrap:wrap}.demo-bar__text{flex-basis:calc(100% - 30px)}.demo-bar__exit{margin-left:auto}}.app-header{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding-top:var(--safe-top);background:#fffffff0;position:sticky;top:0}.app-header__inner{min-height:var(--header-height);align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-4);max-width:var(--content-max);margin:0 auto;display:flex}.app-header__title{font-size:var(--text-md);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.app-header--transparent{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;border-bottom:0}.app-header--transparent .app-header__inner>*{pointer-events:auto}.brand{color:var(--ink);flex:1;align-items:center;gap:10px;min-width:0;text-decoration:none;display:inline-flex}.brand__mark{flex:none;display:inline-flex}.brand__mark img{object-fit:contain;display:block}.brand__text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.brand__name{font-weight:var(--weight-bold);letter-spacing:-.022em;font-size:var(--text-md);white-space:nowrap}.brand__ai{color:var(--accent)}.brand__sub{color:var(--muted);font-size:10.5px;font-weight:var(--weight-medium);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.avatar{border-radius:var(--r-full);background:var(--brand-soft);border:1px solid var(--brand-tint);width:38px;height:38px;color:var(--brand-darker);font-size:var(--text-sm);font-weight:var(--weight-bold);letter-spacing:.01em;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.avatar:hover{background:var(--brand-tint);color:var(--brand-darker)}.avatar:focus-visible{box-shadow:var(--focus-ring);outline:none}.avatar--sm{width:30px;height:30px;font-size:var(--text-xs)}.avatar--anon{background:var(--surface-sunk);border-color:var(--border-strong);color:var(--muted)}.bottom-nav{z-index:60;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:var(--r-xl) var(--r-xl) 0 0;padding-bottom:var(--safe-bottom);background:#fffffff0;border-top:0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 28px #154f6c1a}.bottom-nav__inner{max-width:var(--content-max);height:var(--nav-height);grid-template-columns:repeat(5,1fr);align-items:stretch;margin:0 auto;display:grid}.nav-item{color:var(--muted);font-size:10px;font-weight:var(--weight-medium);-webkit-tap-highlight-color:transparent;transition:color var(--dur-fast) var(--ease);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding-top:4px;text-decoration:none;display:flex;position:relative}.nav-item[aria-current=page]{color:var(--brand)}.nav-item[aria-current=page]:before{content:"";border-radius:0 0 var(--r-full) var(--r-full);background:var(--brand);width:22px;height:3px;position:absolute;top:0;left:50%;transform:translate(-50%)}.nav-item--center{color:var(--muted);justify-content:flex-end;padding-bottom:7px}.nav-item--center:before{content:none}.nav-fab{border-radius:var(--r-full);background:linear-gradient(150deg, var(--accent) 0%, var(--brand) 100%);color:#fff;width:52px;height:52px;box-shadow:var(--shadow-fab);border:3px solid var(--surface);transition:transform var(--dur-fast) var(--ease);place-items:center;display:grid;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.nav-item--center:active .nav-fab{transform:translate(-50%)scale(.94)}.nav-item--center[aria-current=page]{color:var(--accent-dark)}.hero{isolation:isolate;background:radial-gradient(120% 120% at 100% -25%, #bee4f5 0%, #bee4f500 60%), linear-gradient(180deg, #d9effa 0%, #e9f5fc 58%, var(--sky-low) 100%);padding:var(--s-6) var(--s-4) var(--s-10);position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;background:var(--sky-low);height:34px;position:absolute;bottom:-1px;left:0;right:0;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 34C240 4 420 62 720 40s480-52 720-8v28H0z' fill='%23000'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 34C240 4 420 62 720 40s480-52 720-8v28H0z' fill='%23000'/%3E%3C/svg%3E");-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hero>*{z-index:1;position:relative}.hero__art{z-index:0;object-fit:cover;object-position:62% 34%;opacity:.7;filter:saturate(1.02);pointer-events:none;width:82%;max-width:520px;height:66%;position:absolute;top:0;right:0;-webkit-mask-image:radial-gradient(125% 118% at 100% 0,#000 32%,#0000008c 62%,#0000 84%);mask-image:radial-gradient(125% 118% at 100% 0,#000 32%,#0000008c 62%,#0000 84%)}@media (max-width:380px){.hero__art{opacity:.62;width:80%}}@media (min-width:620px){.hero__art{opacity:.75;width:56%;max-width:620px}}@media (prefers-reduced-motion:reduce){.hero__art{opacity:.5}}.hero__inner{max-width:var(--content-max);margin:0 auto}.hero__title{font-size:var(--text-2xl);letter-spacing:-.028em;line-height:1.16}.hero__script{font-family:var(--font-script);color:var(--accent);letter-spacing:0;padding:0 2px;font-size:1.5em;font-weight:600;line-height:.9;display:inline-block;transform:rotate(-1.6deg)}.hero__sub{font-size:var(--text-base);color:var(--muted);margin-top:var(--s-3);max-width:46ch}.hero__actions{gap:var(--s-2);margin-top:var(--s-5);display:grid}@media (min-width:620px){.hero{padding:var(--s-10) var(--s-6) var(--s-8)}.hero__title{font-size:var(--text-3xl)}.hero__actions{grid-auto-flow:column;justify-content:start}}.section-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-3);display:flex}.section-head>:first-child{min-width:0}.section-head>:last-child:not(:first-child){white-space:nowrap;flex:none}.section-head__title{font-size:var(--text-md);font-weight:var(--weight-bold);letter-spacing:-.015em;color:var(--ink);margin:0}.section-head__sub{font-size:var(--text-xs);color:var(--muted);margin:2px 0 0}.quick-grid{gap:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.quick-card{padding:var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);text-align:left;color:inherit;min-height:122px;transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);flex-direction:column;align-items:flex-start;gap:10px;text-decoration:none;display:flex}.quick-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong);transform:translateY(-1px)}.quick-card:active{transform:translateY(0)}.quick-card:focus-visible{box-shadow:var(--focus-ring);outline:none}.quick-card__title{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:-.012em;line-height:1.25}.quick-card__desc{font-size:var(--text-xs);color:var(--muted);margin-top:-4px;line-height:1.45}@media (min-width:620px){.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.alert-list{gap:var(--s-2);display:grid}.alert-row{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);text-align:left;color:inherit;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);grid-template-columns:auto 1fr auto;text-decoration:none;display:grid}.alert-row:hover{border-color:var(--border-strong);background:var(--surface-alt)}.alert-row:focus-visible{box-shadow:var(--focus-ring);outline:none}.alert-row__body{min-width:0}.alert-row__title{font-size:var(--text-sm);font-weight:var(--weight-semibold);text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.alert-row__meta{font-size:var(--text-xs);color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;display:flex}.alert-row__chev{color:var(--muted-2);flex:none;display:inline-flex}.status-guide{gap:var(--s-2);display:grid}.status-guide__row{gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);background:var(--surface-alt);grid-template-columns:auto 1fr;align-items:start;display:grid}.status-guide__bar{border-radius:var(--r-full);align-self:stretch;width:6px;min-height:34px}.status-guide__name{font-weight:var(--weight-semibold);font-size:var(--text-sm);align-items:center;gap:6px;display:flex}.status-guide__desc{font-size:var(--text-sm);color:var(--muted)}.route-form{gap:var(--s-3);display:grid}.route-endpoints{gap:var(--s-2);padding-left:26px;display:grid;position:relative}.route-endpoints:before{content:"";border-left:2px dotted var(--border-strong);width:2px;position:absolute;top:22px;bottom:22px;left:9px}.route-endpoints__dot{border-radius:var(--r-full);border:3px solid var(--surface);width:14px;height:14px;position:absolute;left:3px}.route-endpoints__dot--from{background:var(--accent);top:15px}.route-endpoints__dot--to{background:var(--inaccessible);bottom:15px}.route-swap{right:var(--s-2);border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--ink-2);box-shadow:var(--shadow-xs);place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.route-option{gap:var(--s-4);width:100%;padding:var(--s-4);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-lg);text-align:left;color:inherit;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);grid-template-columns:auto 1fr;align-items:center;display:grid}.route-option:hover{border-color:var(--border-strong)}.route-option:focus-visible{box-shadow:var(--focus-ring);outline:none}.route-option[aria-pressed=true],.route-option--selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.route-option__title{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:-.012em}.route-option__desc{font-size:var(--text-xs);color:var(--muted);margin-top:2px;line-height:1.45}.route-option__stats{gap:var(--s-2);flex-wrap:wrap;margin-top:9px;display:flex}.route-stat{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--ink-2);background:var(--surface-alt);border-radius:var(--r-full);align-items:center;gap:5px;padding:4px 10px;display:inline-flex}.route-stat__icon{color:var(--muted);display:inline-flex}.score-hero{align-items:center;gap:var(--s-4);display:flex}.score-dial{--dial:0;background:conic-gradient(var(--dial-color,var(--brand)) calc(var(--dial) * 1%), var(--surface-sunk) 0);border-radius:50%;flex:none;place-items:center;width:84px;height:84px;display:grid;position:relative}.score-dial:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:8px}.score-dial__value{font-size:var(--text-xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;line-height:1;position:relative}.score-dial__unit{color:var(--muted);text-align:center;margin-top:2px;font-size:9px;display:block;position:relative}.evidence-item{gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--border);grid-template-columns:auto 1fr;align-items:start;display:grid}.evidence-item:last-child{border-bottom:0}.evidence-item__icon{place-items:center;width:22px;margin-top:2px;display:grid}.evidence-item__title{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.evidence-item__meta{font-size:var(--text-xs);color:var(--muted);margin-top:2px}.evidence-item__points{font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);font-size:var(--text-sm)}.breakdown-row{justify-content:space-between;align-items:baseline;gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px dashed var(--border);font-size:var(--text-sm);display:flex}.breakdown-row:last-child{border-bottom:0}.breakdown-row--total{font-weight:var(--weight-bold);border-top:2px solid var(--border-strong);margin-top:var(--s-2);padding-top:var(--s-3);border-bottom:0}.breakdown-row__points{font-variant-numeric:tabular-nums}.breakdown-row__points--minus{color:var(--inaccessible-ink)}.breakdown-row__points--plus{color:var(--accessible-ink)}.source-chip{font-size:var(--text-xs);background:var(--surface-sunk);border-radius:var(--r-full);color:var(--ink-2);align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.category-grid{gap:var(--s-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.category-card{border:1px solid var(--card-edge);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-sm);padding:var(--s-4);padding-right:var(--s-8);text-align:left;justify-content:flex-start;align-items:flex-start;gap:var(--s-3);min-height:116px;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);flex-direction:column;display:flex;position:relative}.category-card__icon{border-radius:var(--r-full);place-items:center;width:44px;height:44px;display:grid}.category-card__icon--brand{background:var(--brand-soft);color:var(--brand)}.category-card__icon--accent{background:var(--accent-soft);color:var(--accent-dark)}.category-card__icon--accessible{background:var(--accessible-soft);color:var(--accessible-ink)}.category-card__icon--partial{background:var(--partial-soft);color:var(--partial-ink)}.category-card__icon--inaccessible{background:var(--inaccessible-soft);color:var(--inaccessible)}.category-card__label{line-height:var(--leading-snug)}.category-card__chevron{top:var(--s-4);right:var(--s-3);color:var(--muted-2);position:absolute}.category-card:hover{box-shadow:var(--shadow-md)}.category-card[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-darker)}.category-card[aria-pressed=true] .category-card__chevron{color:var(--brand)}.steps-indicator{gap:var(--s-2);align-items:center;display:flex}.steps-indicator__dot{border-radius:var(--r-full);background:var(--surface-sunk);flex:1;height:4px}.steps-indicator__dot[data-done=true]{background:var(--accent)}.photo-drop{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);padding:var(--s-6) var(--s-4);text-align:center;color:var(--muted);background:var(--surface-alt);width:100%}.photo-preview{border-radius:var(--r-lg);position:relative;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;max-height:260px}.photo-preview__remove{top:var(--s-2);right:var(--s-2);color:#fff;background:#10212fb8;border:0;border-radius:50%;place-items:center;width:32px;height:32px;display:grid;position:absolute}.prose{max-width:68ch}.prose h2{margin-top:var(--s-8);margin-bottom:var(--s-3);font-size:var(--text-lg)}.prose h3{margin-top:var(--s-6);margin-bottom:var(--s-2);font-size:var(--text-md)}.prose p,.prose li{color:var(--ink-2)}.prose ul{margin:var(--s-3) 0;padding-left:var(--s-5)}.prose li{margin-bottom:var(--s-2);list-style:outside}.prose>:first-child{margin-top:0}.list-item{gap:var(--s-3);padding:var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);text-align:left;grid-template-columns:auto 1fr auto;align-items:center;width:100%;display:grid}.list-item__title{font-weight:var(--weight-semibold);font-size:var(--text-base)}.list-item__meta{font-size:var(--text-xs);color:var(--muted)}.admin{background:var(--surface-alt);grid-template-columns:1fr;min-height:100dvh;display:grid}.admin__sidebar{width:var(--admin-sidebar);background:var(--surface);border-right:1px solid var(--border);padding:var(--s-4) var(--s-3);gap:var(--s-4);transition:transform var(--dur) var(--ease);z-index:var(--z-drawer);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%)}.admin__sidebar[data-open=true]{box-shadow:var(--shadow-lg);transform:none}.admin__scrim{z-index:var(--z-drawer-scrim);background:#10212f6b;position:fixed;inset:0}.admin__main{flex-direction:column;min-width:0;display:flex}.admin__topbar{z-index:var(--z-topbar);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:var(--s-3) var(--s-4);align-items:center;gap:var(--s-3);padding-top:calc(var(--s-3) + var(--safe-top));background:#fffffff0;display:flex;position:sticky;top:0}.admin__title{font-size:var(--text-md);font-weight:var(--weight-semibold);flex:1}.admin__content{padding:var(--s-5) var(--s-4) var(--s-10)}.admin-nav{gap:2px;display:grid}.admin-nav__link{align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium);min-height:42px;text-decoration:none;display:flex}.admin-nav__link:hover{background:var(--surface-alt);color:var(--ink)}.admin-nav__link[aria-current=page]{background:var(--brand-soft);color:var(--brand-darker);font-weight:var(--weight-semibold)}.admin-nav__badge{background:var(--inaccessible);color:#fff;border-radius:var(--r-full);font-size:10px;font-weight:var(--weight-bold);margin-left:auto;padding:1px 7px}.admin-user{align-items:center;gap:var(--s-3);padding:var(--s-3);border-top:1px solid var(--border);margin-top:auto;display:flex}.admin-user__avatar{background:var(--brand);color:#fff;width:34px;height:34px;font-weight:var(--weight-bold);font-size:var(--text-sm);border-radius:50%;flex:none;place-items:center;display:grid}.admin-user__meta{min-width:0;font-size:var(--text-xs)}.admin-user__email{font-weight:var(--weight-semibold);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (min-width:1000px){.admin{grid-template-columns:var(--admin-sidebar) 1fr}.admin__sidebar{height:100dvh;box-shadow:none;position:sticky;top:0;transform:none}.admin__scrim,.admin__menu-btn{display:none}.admin__content{padding:var(--s-6)}}.admin-grid{gap:var(--s-4);display:grid}@media (min-width:720px){.admin-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1180px){.admin-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}}.metric-grid{gap:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (min-width:720px){.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.admin-map{border-radius:var(--r-lg);border:1px solid var(--border);height:min(72dvh,720px);position:relative;overflow:hidden}.filter-bar{gap:var(--s-2);padding:var(--s-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);flex-wrap:wrap;display:flex}.filter-bar .select,.filter-bar .input{width:auto;min-width:150px;min-height:40px;font-size:var(--text-sm)}.priority-score{border-radius:var(--r-sm);min-width:42px;height:28px;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;font-size:var(--text-sm);justify-content:center;align-items:center;display:inline-flex}.priority-score--critical{background:var(--inaccessible);color:#fff}.priority-score--high{background:var(--partial);color:#3b2a05}.priority-score--medium{background:var(--partial-soft);color:var(--partial-ink)}.priority-score--low{background:var(--surface-sunk);color:var(--ink-2)}.job-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:var(--s-4)}.job-card__progress{background:var(--surface-sunk);border-radius:var(--r-full);height:6px;margin-top:var(--s-3);overflow:hidden}.job-card__bar{background:linear-gradient(90deg, var(--accent), var(--brand));height:100%;transition:width var(--dur) var(--ease)}.job-card__bar--failed{background:var(--inaccessible)}.job-card__bar--completed{background:var(--accessible)}.cost-panel{border:1px solid var(--partial);background:var(--partial-soft);border-radius:var(--r-md);padding:var(--s-4)}.cost-panel__figure{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--partial-ink);font-variant-numeric:tabular-nums}.login-shell{min-height:100dvh;padding:var(--s-6);background:radial-gradient(90% 60% at 50% 0%, var(--brand-soft) 0%, transparent 65%), var(--surface-alt);place-items:center;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:min(100%,400px);padding:var(--s-6);box-shadow:var(--shadow-sm)}.audit-entry{gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--border);font-size:var(--text-sm);grid-template-columns:auto 1fr;display:grid}.audit-entry__when{color:var(--muted);font-size:var(--text-xs);white-space:nowrap}.admin-brand{padding:var(--s-2) var(--s-2) var(--s-3);color:var(--ink);border-bottom:1px solid var(--border);align-items:center;gap:10px;text-decoration:none;display:flex}.admin-brand__text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.admin-brand__name{font-weight:var(--weight-bold);font-size:var(--text-base);letter-spacing:-.02em}.admin-brand__name .brand__ai{color:var(--accent)}.admin-brand__sub{color:var(--muted);font-size:10.5px;font-weight:var(--weight-medium)}.admin-aside-card{border-radius:var(--r-lg);padding:var(--s-4);background:linear-gradient(155deg, var(--brand) 0%, var(--brand-darker) 100%);color:#fff;margin-top:auto;position:relative;overflow:hidden}.admin-aside-card:after{content:"";background:#ffffff1a;border-radius:50%;width:96px;height:96px;position:absolute;bottom:-34px;right:-28px}.admin-aside-card__title{font-size:var(--text-sm);font-weight:var(--weight-bold);position:relative}.admin-aside-card__text{font-size:var(--text-xs);opacity:.86;margin-top:4px;line-height:1.45;position:relative}.admin-aside-card__link{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:#fff;border-bottom:1px solid #ffffff80;align-items:center;gap:4px;margin-top:10px;text-decoration:none;display:inline-flex;position:relative}.admin-aside-card__link:hover{color:#fff;border-bottom-color:#fff}.admin-split{gap:var(--s-4);align-items:start;display:grid}@media (min-width:1180px){.admin-split{gap:var(--s-5);grid-template-columns:minmax(0,1fr) 320px}}.admin-rail{gap:var(--s-4);align-content:start;display:grid}@media (min-width:1180px){.admin-rail{top:calc(var(--s-6) + 56px);position:sticky}}.admin-page-head{justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-5);flex-wrap:wrap;display:flex}.admin-page-head__title{font-size:var(--text-xl);letter-spacing:-.025em;margin:0}.admin-page-head__sub{font-size:var(--text-sm);color:var(--muted);max-width:62ch;margin:4px 0 0}.admin-page-head__actions{gap:var(--s-2);flex-wrap:wrap;display:flex}
