/* RouteLens v2. One stylesheet; every colour is a token. Yellow = current position only,
   violet = recorded route / selection / links, ink = the primary action. */
/* IBM Plex, bundled (SIL OFL 1.1, see vendor/fonts/OFL.txt). No font is fetched from the network. */
@font-face{font-family:'IBM Plex Sans';font-weight:400;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-sans-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-weight:400;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-sans-ext-400.woff2) format('woff2');unicode-range:U+0100-02AF,U+1E00-1EFF,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-weight:400;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-deva-400.woff2) format('woff2');unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:'IBM Plex Sans';font-weight:500;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-sans-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-weight:500;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-sans-ext-500.woff2) format('woff2');unicode-range:U+0100-02AF,U+1E00-1EFF,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-weight:500;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-deva-500.woff2) format('woff2');unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:'IBM Plex Sans';font-weight:600;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-sans-600.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-weight:600;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-sans-ext-600.woff2) format('woff2');unicode-range:U+0100-02AF,U+1E00-1EFF,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-weight:600;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-deva-600.woff2) format('woff2');unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:'IBM Plex Sans Condensed';font-weight:500;font-style:normal;font-display:swap;src:url(vendor/fonts/plex-cond-500.woff2) format('woff2')}
:root{
  --shell:#F2F3F5; --surface:#FFFFFF; --sunken:#F7F8FA; --hover:#EDEEF1; --active:#E6E8EC;
  --line:#E3E5E9; --line-2:#CFD3D9;
  --ink:#171A1F; --ink-2:#474E59; --ink-3:#69717D;
  --pos:#F5B301; --pos-soft:#FFF3C7; --pos-ink:#171A1F;
  --route:#5546E0; --route-soft:#ECEAFC; --route-ink:#3F33B8;
  --ok:#1B7F54; --ok-soft:#E4F4EC; --warn:#A85F00; --warn-soft:#FDF0DA; --bad:#C2363A; --bad-soft:#FBE7E7;
  --shadow:0 12px 32px rgba(23,26,31,.14),0 2px 6px rgba(23,26,31,.08);
  --r:6px; --r-lg:10px; --bar:44px; --side:212px; --ctl:30px;
  --font:'IBM Plex Sans','Segoe UI Variable Text','Segoe UI',system-ui,-apple-system,'Noto Sans',sans-serif;
  --font-cond:'IBM Plex Sans Condensed','Segoe UI Variable Small','Segoe UI',sans-serif;
  color-scheme:light;
}
:root[data-theme=dark]{
  --shell:#0E1013; --surface:#16181C; --sunken:#121417; --hover:#1E2126; --active:#262A30;
  --line:#25282E; --line-2:#353A42;
  --ink:#ECEEF1; --ink-2:#B0B6BF; --ink-3:#858D98;
  --pos:#FFC530; --pos-soft:#3A2F0C; --pos-ink:#171A1F;
  --route:#8F84FF; --route-soft:#23204A; --route-ink:#B4ACFF;
  --ok:#4CC38A; --ok-soft:#12301F; --warn:#E5A23A; --warn-soft:#33240B; --bad:#F0706F; --bad-soft:#3A1718;
  --shadow:0 12px 32px rgba(0,0,0,.5),0 2px 6px rgba(0,0,0,.4);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --shell:#0E1013; --surface:#16181C; --sunken:#121417; --hover:#1E2126; --active:#262A30;
  --line:#25282E; --line-2:#353A42; --ink:#ECEEF1; --ink-2:#B0B6BF; --ink-3:#858D98;
  --pos:#FFC530; --pos-soft:#3A2F0C; --route:#8F84FF; --route-soft:#23204A; --route-ink:#B4ACFF;
  --ok:#4CC38A; --ok-soft:#12301F; --warn:#E5A23A; --warn-soft:#33240B; --bad:#F0706F; --bad-soft:#3A1718;
  --shadow:0 12px 32px rgba(0,0,0,.5),0 2px 6px rgba(0,0,0,.4); color-scheme:dark;}}
body[data-density=compact]{--ctl:26px}
@media (pointer:coarse){:root{--ctl:38px}}

/* ── Base ────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%;margin:0}
body{font:400 13px/1.45 var(--font);color:var(--ink);background:var(--shell);-webkit-font-smoothing:antialiased;display:grid;grid-template-rows:var(--bar) auto minmax(0,1fr);overflow:hidden}
h1,h2,h3,h4,p,dl,dd,figure{margin:0}
h1{font:600 20px/1.25 var(--font);letter-spacing:-.01em}
h2{font:600 15px/1.35 var(--font)}
h3{font:600 13.5px/1.35 var(--font)}
h4{font:600 13px/1.35 var(--font)}
a{color:var(--route-ink);text-decoration:none}
a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
small{font-size:12px;color:var(--ink-3)}
:focus-visible{outline:2px solid var(--route)!important;outline-offset:2px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:fixed;left:8px;top:-60px;z-index:100;background:var(--ink);color:var(--surface);padding:8px 12px;border-radius:var(--r)}
.skip-link:focus{top:8px}
.muted,.finding-hint,.reference-hint,.report-hint,.asset-note{color:var(--ink-3);font-size:12.5px}
progress{accent-color:var(--route);height:6px;width:100%}
input[type=checkbox],input[type=radio]{accent-color:var(--ink);width:15px;height:15px;margin:0;flex:none}
input[type=range]{accent-color:var(--ink)}
pre{font:12px/1.5 ui-monospace,'Cascadia Mono',Consolas,monospace;background:var(--sunken);border:1px solid var(--line);border-radius:var(--r);padding:10px;overflow:auto;max-height:320px;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0}
pre:empty{display:none}
svg.ic{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ── Controls ────────────────────────────────────────────── */
.button,:where(.app-shell,dialog,.shell-banners,.topbar) :where(button):not(.link-button,[role=tab],.leaflet-bar *,.sw){display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--ctl);padding:0 11px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink);cursor:pointer;font-weight:500;white-space:nowrap;text-decoration:none;line-height:1.2}
.button:hover,:where(.app-shell,dialog,.shell-banners,.topbar) :where(button):not(.link-button,[role=tab],.primary,.sw):hover{background:var(--hover);text-decoration:none}
.button.primary,button.primary{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.button.primary:hover,button.primary:hover{opacity:.88}
.button.quiet,.button.ghost,button.ghost{border-color:transparent;background:none;color:var(--ink-2)}
button[disabled],.button[disabled],.button[aria-disabled=true]{opacity:.45;cursor:not-allowed}
.link-button{border:0;background:none;padding:0;color:var(--route-ink);cursor:pointer;font-weight:500}
.link-button:hover{text-decoration:underline}
.button-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
:where(input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea){min-height:var(--ctl);padding:0 9px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);min-width:0;max-width:100%}
textarea{padding:7px 9px;line-height:1.45;resize:vertical;width:100%}
select[multiple]{padding:4px;min-height:90px}
input::placeholder,textarea::placeholder{color:var(--ink-3)}
input[type=file]{font-size:12px;max-width:100%}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--bad)}
label{font-size:12px;font-weight:500;color:var(--ink-2)}
:where(.app-shell,dialog) label:not(:has(>input[type=checkbox],>input[type=radio])){display:flex;flex-direction:column;gap:5px;align-items:stretch}
label:has(>input[type=checkbox],>input[type=radio]){display:flex;gap:8px;align-items:center;font-weight:400;font-size:13px;color:var(--ink)}
label small{font-weight:400}
fieldset{border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;margin:12px 0;min-width:0;display:grid;gap:10px}
legend{font-weight:600;padding:0 6px;font-size:13px}
.reference-form,.shell-filters,.finding-filter-grid,.finding-filter-basic,.finding-form,.report-form,.report-fieldset,.finding-quantity-fields,.finding-custom-fields,#assets-filters,#shell-preferences{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;align-items:end;margin:12px 0}
.reference-form>button,.shell-filters>button{align-self:end}
.reference-field>span,.finding-field>span,.report-field>span{font-size:12px;font-weight:500;color:var(--ink-2)}
.reference-wide,.finding-form>.finding-description,.finding-form textarea{grid-column:1/-1}
[role=status]:empty,[role=alert]:empty{display:none}
[role=alert],.report-build-error,.finding-evidence-missing,.finding-error-summary,.finding-conflict{background:var(--bad-soft);color:var(--bad);border-radius:var(--r);padding:8px 10px}
.report-build-warning,.finding-legacy-warning,.report-change-banner,.change-impact{background:var(--warn-soft);color:var(--warn);border-radius:var(--r);padding:8px 10px}
.planned-note{background:var(--sunken);border-radius:var(--r);padding:10px 12px;color:var(--ink-2);margin:10px 0}

/* ── Tables ──────────────────────────────────────────────── */
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
caption{text-align:left;font-weight:600;padding:6px 0;color:var(--ink)}
th{font-weight:500;font-size:12px;color:var(--ink-3);text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:bottom}
tbody th{color:var(--ink);font-size:13px;font-weight:500}
td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle;overflow-wrap:break-word}
tbody tr:hover{background:var(--sunken)}
tr[aria-selected=true]{background:var(--route-soft)}
body[data-density=compact] td,body[data-density=compact] th{padding-block:4px}
.reference-table-wrap,.operational-table-region,.assets-wrap,.analytics-table{overflow:auto;max-width:100%}
dl>div{display:flex;justify-content:space-between;gap:16px;padding:5px 0;border-bottom:1px solid var(--line)}
dl>div:last-child{border-bottom:0}
dt{color:var(--ink-3)} dd{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* ── Disclosure ──────────────────────────────────────────── */
details{border-top:1px solid var(--line);padding:10px 0}
details>summary{cursor:pointer;font-weight:600;list-style:none;display:flex;align-items:center;gap:8px;min-height:24px}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"";width:6px;height:6px;border-right:1.6px solid var(--ink-3);border-bottom:1.6px solid var(--ink-3);transform:rotate(-45deg);transition:transform .12s;flex:none;margin:0 3px}
details[open]>summary::before{transform:rotate(45deg)}
details[open]>summary{margin-bottom:10px}
details>:where(label,p,button,ul,select,input){margin-top:8px}
.v2-hint{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;color:var(--ink-3);font-size:12.5px;cursor:pointer;max-width:90ch}
.v2-hint.open{display:block}
.v2-hint:not(.open):hover{color:var(--ink-2)}

/* ── Title bar ───────────────────────────────────────────── */
.topbar{display:flex;align-items:center;gap:6px;padding:0 10px;min-width:0;background:var(--shell);border-bottom:1px solid var(--line);app-region:drag;-webkit-app-region:drag;padding-left:max(10px,env(titlebar-area-x,0px));padding-right:max(10px,calc(100vw - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw)))}
.topbar :where(button,a,select,input,details){app-region:no-drag;-webkit-app-region:no-drag}
.topbar .button,.topbar button{border-color:transparent;background:none;color:var(--ink-2);min-height:28px;padding:0 8px}
.topbar .brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;color:var(--ink);padding:0 6px 0 2px;text-decoration:none;white-space:nowrap}
.topbar .brand svg{width:20px;height:20px}
.topbar .brand span,.topbar .brand img{display:none}
#shell-menu{display:none}
.v2-sep{width:1px;height:18px;background:var(--line-2);flex:none}
#shell-project{border:0;background:none;font-weight:500;min-height:28px;max-width:280px;padding:0 6px;border-radius:var(--r);cursor:pointer;text-overflow:ellipsis}
#shell-project:hover{background:var(--hover)}
.v2-cmd{margin:0 auto!important;width:min(420px,34vw);justify-content:flex-start!important;border:1px solid var(--line)!important;background:var(--surface)!important;color:var(--ink-3)!important;font-weight:400!important}
.v2-cmd kbd{margin-left:auto}
kbd{font:500 11px var(--font);color:var(--ink-3);border:1px solid var(--line);border-radius:4px;padding:0 5px;background:var(--sunken)}
.header-actions{display:flex;align-items:center;gap:2px;min-width:0}
#save-state{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:12px;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
#save-state::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}
.shell-nav[data-save-state=error]~* #save-state::before,body[data-save=error] #save-state::before{background:var(--bad)}
.topbar #import-top{color:var(--ink)}
.v2-menu{position:relative;border:0;padding:0}
.v2-menu>summary{min-height:28px;padding:0 8px;border-radius:var(--r);color:var(--ink-2)}
.v2-menu>summary::before{display:none}
.v2-menu>summary:hover,.v2-menu[open]>summary{background:var(--hover)}
.v2-menu[open]>summary{margin:0}
.v2-menu>div{position:absolute;right:0;top:34px;z-index:60;min-width:260px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:1px}
.v2-menu>div>*{margin:0}
.v2-menu>div :where(.button,button,a){justify-content:flex-start;width:100%;min-height:30px;padding:0 8px;color:var(--ink);border:0;background:none;border-radius:var(--r);display:flex;align-items:center;font-weight:400;text-decoration:none}
.v2-menu>div :where(.button,button,a):hover{background:var(--hover)}
.v2-menu>div>span{padding:6px 8px;font-size:12px;color:var(--ink-3);white-space:normal}
.v2-menu>div>hr{border:0;border-top:1px solid var(--line);margin:4px 0;width:100%}
.licence-badge{font-size:13px}

/* ── Banners (save recovery, import progress) ────────────── */
.shell-banners{background:var(--shell);padding:0 12px;min-width:0}
.shell-banners>*{margin:8px 0;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#storage-recovery{background:var(--bad-soft);border-color:transparent;color:var(--bad)}
.processing:not([hidden]){display:grid;grid-template-columns:1fr;gap:4px}
.progress-title{display:flex;justify-content:space-between;align-items:center;font-weight:500}
#jobs-panel{display:block}
.section-title{display:flex;align-items:center;gap:8px;justify-content:space-between}
.jobs{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:0;max-height:240px;overflow:auto}
.job{padding:8px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px;overflow-wrap:anywhere}
.job:last-child{border:0}
.job.failed strong{color:var(--bad)} .job.complete strong::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-right:6px}
#helper-report{white-space:pre-wrap}

/* ── App shell ───────────────────────────────────────────── */
.app-shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:0}
body[data-collapsed] .app-shell{grid-template-columns:52px minmax(0,1fr)}
.shell-nav{display:flex;flex-direction:column;gap:1px;padding:8px;overflow:auto;min-width:0}
.shell-nav a{display:flex;align-items:center;gap:10px;height:30px;padding:0 8px;border-radius:var(--r);color:var(--ink-2);white-space:nowrap;text-decoration:none;position:relative}
.shell-nav a::before{content:"";width:16px;height:16px;flex:none;background:currentColor;-webkit-mask:var(--i) center/16px no-repeat;mask:var(--i) center/16px no-repeat}
.shell-nav a:hover{background:var(--hover);color:var(--ink)}
.shell-nav a[aria-current=page]{background:var(--active);color:var(--ink);font-weight:500}
.shell-nav a[data-count]::after{content:attr(data-count);margin-left:auto;font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:400}
.shell-nav #workspace-links,.shell-nav #project-links{display:flex;flex-direction:column;gap:1px}
.shell-nav .workspace-label,.shell-nav>label{display:none!important}
.shell-nav .v2-group{margin:14px 8px 4px;font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shell-nav #project-links a:last-child{margin-top:10px}
.shell-nav .v2-foot{margin-top:auto;padding:10px 8px 2px;font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-collapsed] .shell-nav a{font-size:0;justify-content:center;padding:0;gap:0}
body[data-collapsed] .shell-nav a[data-count]::after,body[data-collapsed] .shell-nav .v2-foot{display:none}
body[data-collapsed] .shell-nav .v2-group{font-size:0;height:1px;background:var(--line);margin:8px 6px}

.shell-content{background:var(--surface);border:1px solid var(--line);border-bottom:0;border-right:0;border-radius:var(--r-lg) 0 0 0;overflow:auto;min-width:0;padding:22px 28px 48px;display:flex;flex-direction:column;position:relative}
.shell-content>*{flex:none;max-width:1320px;width:100%}
.shell-heading{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px;order:-3}
.shell-heading>div:first-child{flex:1;min-width:0}
#shell-context,#shell-scope{display:none}
#shell-actions{justify-content:flex-end}
#shell-alert{order:-2;background:var(--warn-soft);color:var(--warn);border-radius:var(--r);padding:8px 12px;margin-bottom:12px}
.shell-content p{overflow-wrap:anywhere}
#shell-page>p,#shell-page section>p{max-width:80ch;margin:6px 0}
#shell-page>section,#shell-secondary-content>div>section,.references-page,.finding-workflow,.workflow-record,.licence-settings,.report-build-panel,.reference-detail{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);min-width:0}
#shell-page>section:first-child,#shell-secondary-content>.references-page:first-child,#shell-secondary-content>div.references-page{margin-top:0;padding-top:0;border-top:0}
#shell-page h2{margin-bottom:4px}
#shell-page h3{margin:14px 0 4px}
#shell-page ul{padding-left:18px;margin:6px 0}
.finding-empty,.report-empty,#findings-empty{display:grid;place-items:center;text-align:center;padding:40px 20px;color:var(--ink-3);gap:6px;border:0}
.finding-introduction,.report-introduction{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:10px}

/* Tabs: page-level (role=tab inside .shell-tabs) and inspector */
.shell-tabs,.inspector-tabs{display:flex;gap:18px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}
[role=tab]{height:34px;padding:0;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--ink-3);cursor:pointer;font-weight:500;white-space:nowrap}
[role=tab]:hover{color:var(--ink)}
[role=tab][aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}
.mobile-panes{display:none!important}

/* ── Dialogs, toast, palette ─────────────────────────────── */
dialog{border:1px solid var(--line);border-radius:12px;padding:18px 20px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);width:min(600px,94vw);max-height:88vh;overflow:auto}
dialog::backdrop{background:rgba(15,17,20,.4)}
dialog h2{margin:0 28px 6px 0}
dialog p{color:var(--ink-2);margin:6px 0}
dialog>form[method=dialog]{position:absolute;top:10px;right:10px;margin:0}
.dialog-close{width:28px;min-height:28px!important;padding:0!important;border:0!important;background:none!important;font-size:18px;color:var(--ink-3)!important}
.dialog-close:hover{background:var(--hover)!important}
dialog ol,dialog ul{padding-left:18px;color:var(--ink-2)}
dialog li{margin:6px 0}
.finding-dialog,.operation-dialog,.compare-dialog,#media-compare-dialog{width:min(900px,96vw)}
.export-options{display:flex;flex-direction:column;margin:10px 0}
.export-options button{justify-content:flex-start!important;flex-direction:column;align-items:flex-start!important;gap:1px!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;padding:9px 4px!important;white-space:normal!important;text-align:left;font-weight:400!important}
.export-options button:last-child{border-bottom:0!important}
.export-options strong{font-weight:500}.export-options span{color:var(--ink-3);font-size:12px}
.project-list{list-style:none;margin:10px 0;padding:0;max-height:40vh;overflow:auto}
.project-list li{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);margin:0}
.project-list li>:first-child{flex:1;min-width:0}
#toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:90;background:var(--ink);color:var(--surface);padding:9px 14px;border-radius:8px;box-shadow:var(--shadow);max-width:min(560px,92vw)}
#shell-navigation{width:min(320px,92vw);margin-left:0;height:100%;max-height:100vh;border-radius:0 12px 12px 0}
#v2-palette{padding:0;width:min(600px,94vw);margin-top:11vh;overflow:hidden}
#v2-palette input{width:100%;height:46px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 16px;font-size:15px;background:none;outline:0!important}
#v2-palette ul{list-style:none;margin:0;padding:6px 0;max-height:52vh;overflow:auto}
#v2-palette li{display:flex;align-items:center;gap:10px;min-height:34px;padding:0 16px;color:var(--ink-2);cursor:pointer;margin:0}
#v2-palette li[aria-selected=true]{background:var(--hover);color:var(--ink)}
#v2-palette li small{margin-left:auto}
#v2-palette li.grp{min-height:24px;font-size:11.5px;color:var(--ink-3);cursor:default;padding-top:6px}

/* ── Review ──────────────────────────────────────────────── */
.v2-stats{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.metrics{display:flex;gap:18px;flex-wrap:wrap}
.metrics>div{display:flex;flex-direction:column-reverse;gap:0}
.metrics span{font-size:11.5px;color:var(--ink-3)}
.metrics strong{font-weight:600;font-size:14px}
.metrics strong small{font-size:12px;font-weight:500;color:var(--ink-2);margin-left:3px}
.route-heading{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.route-heading>div{flex:1;min-width:0}
.breadcrumb{display:none}
#route-title{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#route-subtitle,.stats{color:var(--ink-3);font-size:12px}
.stats{margin:6px 0}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,34%);gap:12px;min-height:0}
.route-workspace{display:flex;flex-direction:column;min-width:0;min-height:0}
.map-wrap{position:relative;flex:1;min-height:320px;border-radius:var(--r-lg);overflow:hidden;background:var(--sunken);border:1px solid var(--line)}
#map,#offline-map{position:absolute;inset:0;width:100%;height:100%;z-index:0}
#map-empty{position:absolute;inset:0;z-index:5;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;background:var(--sunken);color:var(--ink-3);padding:20px}
#map-empty h3{font-size:16px;color:var(--ink)}
.empty-route svg{width:56px;height:44px;color:var(--line-2)}
.map-tools{position:absolute;top:10px;left:10px;z-index:500;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 70px)}
.map-tools button{min-height:28px!important;box-shadow:0 1px 3px rgba(0,0,0,.1);font-size:12px}
.map-tools button[aria-pressed=true]{background:var(--ink)!important;color:var(--surface)!important;border-color:var(--ink)!important}
.map-legend{position:absolute;left:10px;bottom:10px;z-index:500;display:flex;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:5px 9px;font-size:11.5px;color:var(--ink-2);max-width:calc(100% - 20px)}
.map-legend i{display:inline-block;vertical-align:middle;margin-right:5px}
.legend-line{width:14px;height:3px;border-radius:2px;background:var(--route)}
.legend-start,.legend-end,.legend-pin{width:9px;height:9px;border-radius:50%}
.legend-start{background:var(--surface);box-shadow:inset 0 0 0 2.5px var(--route)} .legend-end{background:var(--route);border-radius:2px} .legend-pin{background:var(--warn)}
.legend-start{background:var(--surface)!important}
.map-note{position:absolute;right:10px;bottom:10px;z-index:500;max-width:46%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:5px 9px;font-size:11.5px;color:var(--ink-3)}
.candidates{position:absolute;top:48px;left:10px;z-index:500;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px;max-width:300px;box-shadow:var(--shadow)}
.leaflet-container{font:inherit;background:var(--sunken)}
.leaflet-bar a{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}
.leaflet-bar{border:1px solid var(--line)!important;box-shadow:0 1px 3px rgba(0,0,0,.1)!important}
:root[data-theme=dark] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9) saturate(.5)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9) saturate(.5)}}

.inspector{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}
.video-wrap{position:relative;background:#0c0d0f;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/9;flex:none}
#video{position:absolute;inset:0;width:100%;height:100%;background:#0c0d0f}
#pano{position:absolute;inset:0;width:100%;height:100%;cursor:grab;touch-action:none}
#video-placeholder{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:4px;color:#b0b6bf;text-align:center;padding:16px;background:#0c0d0f}
#video-placeholder>span{font-size:22px;opacity:.6}
#video-placeholder strong{color:#eceef1;font-weight:500}
#video-placeholder small{color:#858d98}
.v2-media{display:flex;flex-wrap:wrap;gap:6px 8px;flex:none;align-items:center}
.v2-media>.video-wrap,.v2-media>p{flex:0 0 100%}
.v2-media .muted{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-media .button-row button{min-height:28px;font-size:12.5px}
.v2-here{border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 14px;display:grid;grid-template-columns:auto 1fr;gap:2px 14px;align-items:end;flex:none}
.v2-here .big{font:600 26px/1 var(--font);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.v2-here .lab{font-size:12px;color:var(--ink-3)}
.v2-here .st{display:flex;gap:16px;justify-content:flex-end;font-variant-numeric:tabular-nums;flex-wrap:wrap}
.v2-here .st span{display:flex;flex-direction:column;align-items:flex-end;font-weight:500;white-space:nowrap}
.v2-here .st small{font-size:11.5px;font-weight:400}
.v2-here .ll{grid-column:1/-1;display:flex;gap:8px;align-items:center;margin-top:6px;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;flex-wrap:wrap}
.v2-here .ll b{margin-left:auto;font-weight:500;font-size:11.5px;border:1px solid var(--line-2);border-radius:10px;padding:1px 8px;color:var(--ink-2)}
.v2-panels{flex:1;min-height:160px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-lg);display:flex;flex-direction:column}
.v2-panels .inspector-tabs{padding:0 14px;margin:0;position:sticky;top:0;background:var(--surface);z-index:2;flex:none}
.inspector-col{padding:12px 14px;min-width:0}
.inspector-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.live-badge,.count{font-size:11.5px;color:var(--ink-3);font-weight:400}
.pin-filters{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.pins,.anchors,#visits{list-style:none;margin:0;padding:0}
.pins li,.anchors li,#visits li{padding:8px 0;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}
.pins li img,.pins img,.thumbnail{width:64px;border-radius:4px;flex:none}
.pin-actions{display:flex;gap:6px;flex-wrap:wrap}
.coordinates{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-bottom:8px}
.coordinates span{display:block;font-size:11.5px;color:var(--ink-3)}
.coordinates strong{font-weight:600;font-variant-numeric:tabular-nums}
.quality-card{background:var(--sunken);border-radius:var(--r);padding:8px 10px;margin:10px 0;font-size:12.5px}
.quality-card>div{display:flex;align-items:center;gap:6px}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);display:inline-block}
.route-endpoints>div{display:flex;gap:8px;align-items:center;padding:4px 0}
.route-endpoints p span{display:block;color:var(--ink-3);font-size:12px;font-variant-numeric:tabular-nums}
.review-settings label,.media-workbench label,.analytics-options label{margin-top:8px}
.tools-panel>.section-title,.tools-panel>.muted,#inspector-panel-0>.section-title{display:none}
.media-workbench details:first-child,.tools-panel>details:first-of-type{border-top:0}
.storyboard{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}
.storyboard img{width:100%;border-radius:4px}
.comparison,.comparison-panes,.duplicate-comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.comparison video,.comparison-panes video,.finding-frame img,.finding-capture-preview img,.finding-frame,.finding-capture-preview{max-width:100%;border-radius:var(--r)}

.v2-foot{border-top:1px solid var(--line);padding:6px 0 0;margin-top:10px;flex:none}
.v2-cor{position:relative;user-select:none;padding-top:20px}
.v2-cor .ruler{position:relative;height:16px;border-bottom:1px solid var(--line-2)}
.v2-cor .ruler span{position:absolute;bottom:0;height:5px;border-left:1px solid var(--line-2);font:500 10.5px var(--font-cond);color:var(--ink-3)}
.v2-cor .ruler span.major{height:9px;border-color:var(--ink-3)}
.v2-cor .ruler span b{position:absolute;left:4px;bottom:3px;font-weight:500;white-space:nowrap}
.v2-cor .row{position:relative;height:10px;margin-top:5px}
.v2-cor .row.thin{height:4px}
.v2-cor .row i{position:absolute;top:0;bottom:0;border-radius:2px;min-width:2px}
.v2-cor .rec{background:var(--route)} .v2-cor .rev{background:var(--ink)}
.v2-cor .gap{background:repeating-linear-gradient(135deg,var(--line-2) 0 2px,transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--line-2)}
.v2-cor .pinrow{position:absolute;left:0;right:0;top:4px;height:14px;pointer-events:none}
.v2-cor .pinrow i{position:absolute;width:9px;height:9px;margin-left:-4.5px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--warn);border:1.5px solid var(--surface)}
.v2-cor .head{position:absolute;top:0;bottom:-2px;width:0;z-index:3;pointer-events:none}
.v2-cor .head::before{content:"";position:absolute;left:-1px;top:16px;bottom:0;width:2px;background:var(--pos);box-shadow:0 0 0 1px var(--pos-ink)}
.v2-cor .head b{position:absolute;top:0;left:0;transform:translateX(-50%);background:var(--pos);color:var(--pos-ink);font:600 11px var(--font-cond);padding:1px 6px;border-radius:3px;white-space:nowrap;box-shadow:0 0 0 1px var(--pos-ink)}
.v2-cor #scrubber{position:absolute;left:0;right:0;top:16px;bottom:0;width:100%;height:auto;margin:0;opacity:0;cursor:ew-resize;z-index:4;min-height:0;padding:0;border:0}
.v2-cor:has(#scrubber:focus-visible){outline:2px solid var(--route);outline-offset:3px;border-radius:4px}
.v2-cor .none{color:var(--ink-3);font-size:12px;padding:6px 0}
.timeline{display:flex;flex-direction:column;gap:4px}
.timeline-head{display:none}
#speed-chart{display:block;width:100%;height:38px;margin-top:4px}
.chart-axis{display:none}
.v2-transport{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.distance-nav{display:contents}
.distance-controls{display:flex;align-items:center;gap:4px}
.distance-controls button,.distance-controls select,.distance-controls input{min-height:26px!important;font-size:12px}
.distance-controls button{padding:0 8px!important}
#goto-km{width:84px}
.chain{font-size:12px;color:var(--ink-3)} .chain strong{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}
.chart-head{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:12px;color:var(--ink-3)}
.chart-head select{min-height:26px;font-size:12px}
#current-time{font-weight:500;font-variant-numeric:tabular-nums}
.shell-evidence{margin-top:14px}
.source-jump{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.source-jump label{font-size:12px}
#shell-corridor{display:none}
#shell-corridor-title+p{color:var(--ink-3);font-size:12.5px}

/* Review as a fixed work surface on roomy screens */
@media (min-width:1100px) and (min-height:640px){
  body[data-page=review] .shell-content{padding:0;overflow:hidden}
  body[data-page=review] .shell-content>*{max-width:none}
  body[data-page=review] .shell-heading{margin:0;padding:8px 12px;border-bottom:1px solid var(--line);align-items:center}
  body[data-page=review] .shell-heading h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  body[data-page=review] #shell-alert{margin:8px 12px 0;width:auto}
  body[data-page=review] #shell-page{display:none}
  body[data-page=review] #shell-review{flex:1;min-height:0;display:flex;flex-direction:column;padding:10px 12px 8px}
  body[data-page=review] .workspace{flex:1}
  body[data-page=review] .inspector{overflow:auto}
  body[data-page=review] .video-wrap{max-height:27vh;aspect-ratio:auto;height:27vh}
}
.v2-ctx{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}
.v2-ctx select{font-weight:500;max-width:300px}
body:not([data-page=review]) .v2-ctx{display:none}

/* ── Library ─────────────────────────────────────────────── */
#shell-library{order:-1;margin-bottom:8px}
.library{display:flex;flex-flow:row wrap;gap:8px;min-width:0;align-items:center}
.library>.section-title,.library>.dropzone,.library>#groups,.library>.recordings,.library>.sample-panel,.library>.library-foot,.library>p{flex:0 0 100%}
.library>label{flex-direction:row!important;align-items:center!important;gap:6px!important}
.library>.section-title{justify-content:flex-start}
.library>.section-title h2{font-size:15px}
.dropzone{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;justify-content:flex-start!important;min-height:52px!important;padding:10px 14px!important;border:1.5px dashed var(--line-2)!important;border-radius:var(--r-lg)!important;background:none!important;color:var(--ink-2)!important;font-weight:400!important;white-space:normal!important;width:100%}
.dropzone:hover{border-color:var(--route)!important;background:var(--route-soft)!important}
.dropzone strong{color:var(--ink);font-weight:500}.dropzone small{margin-left:auto}
.upload-icon{font-size:16px}
.library>button:not(.dropzone),.library>input,.library>label{align-self:flex-start}
.library>#media-search{width:min(280px,100%)}
.recordings{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-top:6px}
.recording{display:flex;align-items:center;border-bottom:1px solid var(--line)}
.recording:hover{background:var(--sunken)}
.recording.active{background:var(--route-soft)}
.recording-open{flex:1;display:grid!important;grid-template-columns:minmax(160px,2fr) minmax(120px,1.2fr) minmax(120px,1fr);gap:12px;justify-content:start!important;justify-items:start;border:0!important;background:none!important;min-height:40px!important;border-radius:0!important;text-align:left;font-weight:400!important}
.recording-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.recording-status{color:var(--ok);font-size:12px}
.recording-remove{border:0!important;background:none!important;color:var(--ink-3)!important;width:30px;padding:0!important}
.sample-panel,.library-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--ink-3);font-size:12.5px;padding:8px 0}
.sample-panel strong,.library-foot strong{color:var(--ink);font-weight:500}
.sample-panel p{flex:1;min-width:160px}
.sample-symbol,.small-icon{display:none}
.library-versions{margin-top:18px}
.project-bar{display:flex;flex-direction:column;gap:5px;max-width:420px}
.v2-fold{border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 14px;margin:16px 0}
.v2-fold>summary{font-weight:500}

/* ── Overview (v2) ───────────────────────────────────────── */
.v2-scope{display:flex;gap:28px;flex-wrap:wrap;padding:12px 0;border-block:1px solid var(--line);margin-bottom:22px}
.v2-scope div{display:flex;flex-direction:column}.v2-scope b{font-weight:500;font-variant-numeric:tabular-nums}.v2-scope span{font-size:12px;color:var(--ink-3)}
.v2-two{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;margin-top:26px}
.v2-list{display:flex;flex-direction:column}
.v2-list>*{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.v2-list>*:last-child{border-bottom:0}
.v2-list .g{flex:1;min-width:0}
.v2-list small{white-space:nowrap}
.v2-meter{height:6px;border-radius:3px;background:var(--hover);overflow:hidden;width:120px;flex:none}
.v2-meter i{display:block;height:100%;background:var(--ink)}
.v2-empty{color:var(--ink-3);padding:10px 0}

/* ── Coverage visuals keep their meaning, new palette ───── */
.coverage-split{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.coverage-lanes{display:grid;grid-template-columns:minmax(96px,max-content) minmax(0,1fr);gap:8px}
.coverage-lane-labels{list-style:none;margin:0;padding:0;display:grid;grid-template-rows:repeat(6,1fr);font-size:11.5px;color:var(--ink-3)}
.coverage-lane-labels li{display:flex;align-items:center;white-space:nowrap;margin:0}
.coverage-lane-planned{fill:var(--line-2)} .coverage-lane-travelled,.coverage-lane-usable{fill:var(--route)} .coverage-lane-reviewed{fill:var(--ink)} .coverage-lane-observed{fill:var(--ok)} .coverage-lane-exception{fill:var(--warn)}
.coverage-figure{margin:14px 0;min-width:0}
.coverage-figure svg,.assets-page svg{max-width:100%;height:auto}
.sheet,.report-page{background:#fff;color:#1a1c20}

/* ── Every kind of screen ────────────────────────────────── */
@media (min-width:1900px){:root{--side:232px} body{font-size:13.5px} .workspace{grid-template-columns:minmax(0,1fr) minmax(420px,30%)}}
@media (max-width:1099px){
  body:not([data-nav=open]) .app-shell{grid-template-columns:52px minmax(0,1fr)}
  body:not([data-nav=open]) .shell-nav a{font-size:0;justify-content:center;padding:0;gap:0}
  body:not([data-nav=open]) .shell-nav a[data-count]::after,body:not([data-nav=open]) .shell-nav .v2-foot{display:none}
  body:not([data-nav=open]) .shell-nav .v2-group{font-size:0;height:1px;background:var(--line);margin:8px 6px}
  .workspace{grid-template-columns:minmax(0,1fr)}
  .map-wrap{min-height:0;height:min(52vh,460px);flex:none}
  .inspector{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .v2-panels{grid-column:1/-1;max-height:none}
  .v2-two{grid-template-columns:1fr;gap:22px}
  .shell-content{padding:18px 20px 40px}
  .v2-cmd{width:auto;margin-left:auto!important}
}
@media (max-width:767px){
  body{overflow:auto;display:block}
  .topbar{position:sticky;top:0;z-index:50;height:var(--bar)}
  #shell-menu{display:inline-flex}
  #v2-side,.v2-sep,.v2-cmd span,.v2-cmd kbd,#save-state,.topbar #import-top span{display:none}
  #shell-project{flex:1;min-width:0;max-width:none}
  .v2-cmd{border:0!important;background:none!important;padding:0 8px!important}
  .app-shell,body:not([data-nav=open]) .app-shell{display:block}
  .app-shell>.shell-nav{display:none}
  #shell-navigation .shell-nav{display:flex;padding:0}
  #shell-navigation .shell-nav a{font-size:14px!important;justify-content:flex-start!important;padding:0 8px!important;gap:10px!important;height:40px}
  .shell-content{border:0;border-radius:0;padding:14px 14px 40px;overflow:visible}
  .shell-heading{flex-direction:column;align-items:stretch;gap:10px}
  #shell-actions{justify-content:flex-start}
  .inspector{display:flex}
  .map-wrap{height:46vh}
  .reference-form,.shell-filters,.finding-filter-grid,.finding-filter-basic,.finding-form,.report-form,.report-fieldset,#assets-filters{grid-template-columns:minmax(0,1fr)}
  #shell-page table{display:block;overflow-x:auto;max-width:100%}
  .recording-open{grid-template-columns:minmax(0,1fr)!important;gap:2px!important;padding-block:8px!important}
  .finding-introduction,.report-introduction{flex-direction:column}
  .v2-here .st{justify-content:flex-start;grid-column:1/-1}
  .chart-head{margin-left:0}
  dialog{width:96vw;padding:14px}
  .v2-menu>div{position:fixed;left:8px;right:8px;top:calc(var(--bar) + 4px)}
  dl>div{flex-direction:column;gap:2px} dd{text-align:left}
}
@media (max-height:520px) and (orientation:landscape){.map-wrap{height:70vh}.video-wrap{max-height:70vh}}
@media (forced-colors:active){.shell-nav a[aria-current=page],[role=tab][aria-selected=true]{outline:2px solid Highlight}.v2-cor .rec,.v2-cor .rev{background:CanvasText}.v2-cor .head::before{background:Highlight}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.topbar,.shell-nav,.shell-banners,.v2-foot{display:none}body{display:block;overflow:visible}.shell-content{border:0;overflow:visible}}

/* ── Loose controls inside generated pages ───────────────── */
#shell-page :where(section,.references-page,.reviews-workspace,.reports-page,.assets-page)>:where(button,.button,a.button){margin:6px 6px 6px 0}
#shell-page :where(section,.references-page,.reviews-workspace,.reports-page,.assets-page)>:where(label,table,div,fieldset,select,input,textarea,details,form)+*{margin-top:10px}
#shell-page :where(section,.references-page,.reviews-workspace)>:where(label){max-width:520px;margin-top:10px}
#shell-page table{margin:8px 0}
.reviews-workspace>h2{margin-bottom:8px}
.assets-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}
.v2-media{min-width:0;max-width:100%}
.v2-media>*{min-width:0;max-width:100%}
.inspector>*{min-width:0;max-width:100%}
@media (max-width:767px){
  .topbar .brand{font-size:0;gap:0;padding:0 2px}
  .shell-heading>*{max-width:100%;min-width:0}
  .v2-ctx,.v2-ctx .metrics{max-width:100%;gap:10px 14px}
  .v2-ctx select{max-width:100%}
  .map-tools button{font-size:11.5px;padding:0 7px!important}
  .v2-transport{gap:8px}
}
#shell-navigation .v2-group{font-size:11.5px!important;height:auto!important;background:none!important;margin:14px 8px 4px!important}
#shell-navigation .v2-foot{display:block!important}
.leaflet-container{background:var(--sunken)!important;font:inherit!important}

/* ══ Page layouts ═══════════════════════════════════════════ */
/* Findings: list on the left, the open finding on the right */
.findings-page{display:flex;flex-direction:column}
.findings-page>#finding-export-review{order:20}.findings-page>#finding-duplicates{order:19}
.findings-page:has(>#finding-detail){display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,440px);column-gap:24px;align-items:start;align-content:start}
.findings-page:has(>#finding-detail)>*{grid-column:1;min-width:0}
.findings-page>#finding-detail{grid-column:2;grid-row:1/span 40;position:sticky;top:0;align-self:start;max-height:calc(100vh - var(--bar) - 96px);overflow:auto;border-left:1px solid var(--line);padding:0 4px 0 20px;margin:0;display:flex;flex-direction:column;gap:14px}
.finding-detail>*{order:3;margin:0!important;padding-top:0!important;border-top:0!important}
.finding-detail>.finding-detail-heading{order:0;display:flex;flex-direction:column;gap:10px;position:sticky;top:0;background:var(--surface);z-index:2;padding-bottom:10px!important;border-bottom:1px solid var(--line)}
.finding-detail>.duplicate-detail-actions{order:1}.finding-detail>.finding-detail-body{order:2;display:flex;flex-direction:column;gap:16px}
.finding-detail-heading h2{font-size:16px}
.finding-state,.report-state{display:inline-flex;align-self:flex-start;padding:1px 9px;border-radius:10px;background:var(--route-soft);color:var(--route-ink);font-size:12px;font-weight:500;margin-top:4px}
.finding-detail .button-row button{min-height:26px;font-size:12px;padding:0 8px}
.finding-detail .button-row button.primary{min-height:30px;font-size:13px;padding:0 12px}
.finding-open{border:0!important;background:none!important;padding:0!important;min-height:0!important;color:var(--ink)!important;font-weight:500!important;white-space:normal!important;text-align:left;justify-content:flex-start!important}
.finding-open:hover{color:var(--route-ink)!important;text-decoration:underline}
.finding-filter-form{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-end;margin:10px 0;border:0;padding:0}
.finding-filter-basic{display:contents}
.finding-filter-form .finding-field{display:flex;flex-direction:column;gap:4px;min-width:130px}
.finding-filter-basic>.finding-field:first-child{flex:1 1 220px}
.finding-filter-advanced{flex:0 0 100%;order:5;border:0;padding:0}
.finding-filter-advanced>summary{font-weight:500;color:var(--ink-2)}
.finding-filter-form>.button-row{order:4}
.finding-selection-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0;color:var(--ink-2)}
.finding-pager{justify-content:flex-end;margin:10px 0;color:var(--ink-3)}
#finding-result-count,#finding-selection-state{color:var(--ink-3);font-size:12.5px;margin:2px 0}
.finding-terms>div{padding:4px 0}
.finding-capture-preview img,.finding-frame{width:100%;border-radius:var(--r)}

/* Reports: inputs left, the frozen report in the middle, checks right */
.reports-page:has(>#report-composer-form){display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:0 28px;align-items:start;align-content:start}
.reports-page:has(>#report-composer-form)>*{grid-column:1/-1;min-width:0}
.reports-page>#report-composer-form{grid-column:1;display:flex;flex-direction:column;gap:12px;position:sticky;top:0;max-height:calc(100vh - var(--bar) - 96px);overflow:auto;padding-right:8px;margin:0}
.reports-page>#report-composer-form~.report-frozen{grid-column:2;margin-top:0;padding-top:0;border-top:0}
#report-composer-form .report-fieldset{grid-template-columns:minmax(0,1fr);margin:0}
#report-composer-form .report-form-actions{position:sticky;bottom:0;background:var(--surface);padding:10px 0;border-top:1px solid var(--line)}
.report-frozen{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:0 24px;align-items:start;align-content:start}
.report-frozen>*{grid-column:1;min-width:0}
.report-frozen>.v2-checks{grid-column:2;grid-row:1/span 60;position:sticky;top:0;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - var(--bar) - 96px);overflow:auto}
.v2-checks>*{margin:0!important;padding-top:0!important;border-top:0!important}
.v2-checks details{border:1px solid var(--line);border-radius:var(--r);padding:8px 10px!important}
.v2-checks details[open]:has(li){border-color:var(--warn)}
.v2-checks ul{padding-left:16px;margin:6px 0 0;font-size:12.5px;color:var(--ink-2)}
.report-outline{display:flex;flex-direction:column;gap:1px}
.report-outline .report-section-link{justify-content:flex-start!important;border:0!important;background:none!important;color:var(--ink-2)!important;font-weight:400!important;min-height:28px!important}
.report-outline .report-section-link:hover{background:var(--hover)!important;color:var(--ink)!important}
.report-preview-section{--ink:#171A1F;--ink-2:#474E59;--ink-3:#69717D;--line:#E3E5E9;--sunken:#F7F8FA;--surface:#FFFFFF;background:#fff;color:#171A1F;border:1px solid var(--line);box-shadow:0 1px 3px rgba(0,0,0,.1);padding:26px 30px;margin:14px 0;border-radius:2px;border-top:1px solid var(--line)!important}
.report-preview-section>h3{font-size:16px;margin:0 0 10px!important}
.report-change-banner{margin:0}
.report-change-banner:not([data-stale=true]){background:var(--sunken);color:var(--ink-2)}
.report-table td:first-child,.report-table th:first-child{font-weight:500}

/* Compare: the two visits first, set-up folded below */
body[data-page=compare] #shell-page{display:flex;flex-direction:column}
body[data-page=compare] #shell-page>#comparisons-page{order:-2;border-top:0;margin-top:0;padding-top:0}
#comparisons-page{display:flex;flex-flow:row wrap;gap:8px;align-items:center}
#comparisons-page>*{order:3;flex:0 0 100%;margin:0!important;min-width:0}
#comparisons-page>h2,#comparisons-page>#comparison-status{order:0}#comparisons-page>.v2-hint{display:none}
#comparisons-page>label:has(#comparison-run-select){order:1;max-width:520px}
#comparisons-page>section.reference-detail{order:2;border-top:0;padding-top:0}
#comparisons-page>section:not(.reference-detail){order:6}#comparisons-page>details{order:7}
#comparisons-page>.reference-form{order:8;border-top:1px solid var(--line);padding-top:14px;margin-top:14px!important}
#comparisons-page>button{order:9;flex:0 0 auto}
.comparison-panes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0}
.comparison-panes>article{border:0!important;padding:0!important;margin:0!important;display:flex;flex-direction:column;gap:6px}
.comparison-panes video{width:100%;aspect-ratio:16/9;background:#0c0d0f;border-radius:var(--r-lg);order:-1}
.comparison-panes h4{order:-2;font-size:13.5px}
.comparison-panes p{font-size:12.5px;color:var(--ink-3);margin:0}
.reference-detail dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px}
.reference-detail dl dt{color:var(--ink-3)}.reference-detail dl dd{text-align:left}
article.reference-detail{border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;margin:10px 0}

/* Coverage: figures beside the section table on wide screens */
.coverage-sections{min-width:0}

/* Assets: table left, position plot and the open asset right */
@media (min-width:1100px){
  .assets-page{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:0 24px;align-items:start;align-content:start}
  .assets-page>*{grid-column:1/-1;min-width:0}
  .assets-page>#assets-results{display:contents}
  #assets-results>*{grid-column:1;min-width:0}
  #assets-results>#assets-map-box{grid-column:2;grid-row:span 2}
  #assets-results>.assets-wrap{grid-row:span 2}
  .assets-page>#asset-detail{grid-column:2;margin-top:12px}
}
.assets-page>.reference-form:not(#assets-filters){order:30;border-top:1px solid var(--line);padding-top:14px}
#assets-map-box,#asset-detail:not(:empty){border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px}
#assets-map-box h3,#asset-detail h3{margin-top:0!important}
#assets-map-box svg{width:100%;height:auto;background:var(--sunken);border-radius:var(--r)}
.asset-open{border:0!important;background:none!important;padding:0!important;min-height:0!important;font-weight:500!important;color:var(--ink)!important;white-space:normal!important;text-align:left}
#assets-filters{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}

/* Search: one box first, filters behind a disclosure */
#index-search-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:12px 0}
#index-search-form>label:first-child{flex:1 1 320px}
#index-search-form>label:first-child input{min-height:44px;font-size:15px;border-radius:10px;padding:0 14px}
#index-search-form>button{min-height:44px;background:var(--ink);border-color:var(--ink);color:var(--surface);padding:0 18px}
#index-search-form>.v2-filters{flex:0 0 100%;border:0;padding:0}
#index-search-form>.v2-filters>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;align-items:end}
#index-search-results>*{border-bottom:1px solid var(--line);padding:10px 0}
#index-search-results mark{background:var(--pos-soft);color:inherit;border-radius:2px;padding:0 2px}
body[data-page=search] #shell-page{max-width:980px}

/* Settings: section list on the left */
.v2-subnav{position:sticky;top:0;display:flex;flex-direction:column;gap:1px;margin:0 0 20px;align-self:start}
.v2-subnav button{justify-content:flex-start!important;border:0!important;background:none!important;color:var(--ink-2)!important;font-weight:400!important;text-align:left;white-space:normal!important;min-height:30px!important}
.v2-subnav button:hover{background:var(--active)!important;color:var(--ink)!important}
@media (min-width:900px){
  body[data-page=settings] #shell-page:has(>.v2-subnav){display:grid;grid-template-columns:200px minmax(0,760px);column-gap:32px;align-content:start}
  body[data-page=settings] #shell-page:has(>.v2-subnav)>*{grid-column:2;min-width:0}
  body[data-page=settings] #shell-page>.v2-subnav{grid-column:1;grid-row:1/span 60}
  body[data-page=settings] #shell-page>.v2-subnav+*{margin-top:0;padding-top:0;border-top:0}
  body[data-page=settings] #shell-project-settings{margin-left:232px;max-width:760px}
}
@media (max-width:899px){.v2-subnav{position:static;flex-flow:row wrap;border-bottom:1px solid var(--line);padding-bottom:10px}}
#shell-preferences{grid-template-columns:minmax(0,260px) auto;justify-content:start}
.template-summary{border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;margin:10px 0}

@media (max-width:1099px){
  .findings-page:has(>#finding-detail),.reports-page:has(>#report-composer-form),.report-frozen{display:flex;flex-direction:column}
  .findings-page>#finding-detail{order:-1;position:static;max-height:none;border-left:0;border-bottom:1px solid var(--line);padding:0 0 16px}
  .reports-page>#report-composer-form,.report-frozen>.v2-checks{position:static;max-height:none}
  .report-frozen>.v2-checks{order:-1}
  .coverage-visuals{position:static}
}
@media (max-width:767px){.comparison-panes{grid-template-columns:minmax(0,1fr)}.report-preview-section{padding:16px}}
/* Very large and TV-sized screens: bigger type, wider work surface, nothing stretched edge to edge */
@media (min-width:2200px){:root{--side:260px;--bar:52px;--ctl:36px} body{font-size:15px} h1{font-size:24px} h2{font-size:17px} .shell-content>*{max-width:1680px} .shell-nav a{height:36px} [role=tab]{height:40px} .v2-here .big{font-size:32px} svg.ic{width:18px;height:18px} .shell-nav a::before{width:18px;height:18px;-webkit-mask-size:18px;mask-size:18px} #speed-chart{height:52px} .v2-cor .row{height:13px}}
@media (min-width:3200px){body{font-size:18px} :root{--side:320px;--bar:64px;--ctl:44px} .shell-content>*{max-width:2200px} h1{font-size:30px} h2{font-size:21px} .shell-nav a{height:44px}}

.operational-table-region{overflow-x:auto}
.findings-list{min-width:620px}

#index-search-results>h2.v2-grp{border:0;padding:18px 0 2px;display:flex;gap:8px;align-items:baseline}
#index-search-results>h2.v2-grp small{font-weight:400}
#index-search-results>article{display:flex;flex-direction:column;gap:4px}
#index-search-results>article>h3{font-size:12px;font-weight:400;color:var(--ink-3);margin:0!important;order:1}
#index-search-results>article>p:first-of-type{font-size:14px;order:0}
#index-search-results>article>a{order:2;align-self:flex-start;font-weight:500}
#index-search-results>article>details{order:3;border:0;padding:0}
#index-search-results>article>details>summary{font-weight:400;color:var(--ink-3);font-size:12.5px}
#index-search-results img{max-width:320px!important;border-radius:var(--r)}

/* Coverage drawings (corridor lanes and schematic plan view) */
.coverage-corridor{width:100%;height:132px;background:var(--sunken);border:1px solid var(--line);border-radius:var(--r);display:block}
.coverage-lane-travelled{fill:var(--ink-3)}
.coverage-selected{fill:none;stroke:var(--pos);stroke-width:4;vector-effect:non-scaling-stroke}
.coverage-plan{width:100%;height:auto;max-height:420px;background:var(--sunken);border:1px solid var(--line);border-radius:var(--r-lg);display:block}
.coverage-plan polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}
.coverage-plan-scope{stroke:var(--ink-3);stroke-width:2;stroke-dasharray:6 6}
.coverage-plan-travelled-only{stroke:var(--ink-3);stroke-width:5}
.coverage-plan-usable-footage{stroke:var(--route);stroke-width:5}
.coverage-plan-explicitly-reviewed{stroke:var(--ink);stroke-width:5}
.coverage-plan-observation-confirmed{stroke:var(--ok);stroke-width:5}
.coverage-plan-selected{stroke-width:10;stroke:var(--pos)}
.coverage-row-selected th,.coverage-row-selected td{background:var(--route-soft)}
#coverage-table-box .reference-form{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
#coverage-sections-table{min-width:760px}

/* Coverage: the four outcomes and the map first, set-up tables after */
#coverage-sections{display:flex;flex-direction:column}
#coverage-sections>*{order:5;min-width:0}
#coverage-sections>h3{order:0}#coverage-sections>#coverage-outcomes{order:1}#coverage-sections>.coverage-split{order:2}
#coverage-sections>#coverage-section-detail,#coverage-sections>#coverage-sections-status{order:3}
#coverage-section-detail:empty{display:none}
#coverage-section-detail:not(:empty){border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;margin:12px 0}
.coverage-split{grid-template-columns:minmax(0,1fr)}
@media (min-width:1100px){
  #coverage-visuals{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0 24px;align-items:start}
  #coverage-visuals>h4,#coverage-visuals>.reference-hint{grid-column:1/-1}
  #coverage-visuals>.coverage-figure:has(.coverage-plan){grid-column:1;grid-row:3/span 30;margin-top:0}
  #coverage-visuals>.coverage-figure:not(:has(.coverage-plan)){grid-column:2;margin:0 0 12px}
}
#coverage-sections-table{font-size:12.5px}
#coverage-sections-table th{white-space:normal;min-width:70px}
#jobs-panel .job{flex-direction:row;gap:12px;align-items:baseline;flex-wrap:wrap}
.coverage-figure svg.coverage-corridor{height:120px}
#coverage-sections-table{min-width:1500px}
#coverage-sections-table td:nth-child(9),#coverage-sections-table td:nth-child(10){min-width:220px}
#coverage-sections-table td:last-child{white-space:nowrap}
#coverage-sections-table td:last-child :where(button,.button){min-height:26px;font-size:12px;padding:0 8px;margin:2px 4px 2px 0}
#coverage-sections-table td:last-child a.button{white-space:normal;max-width:260px;display:inline-flex}
#coverage-sections-table{min-width:1900px}
#coverage-sections-table td:nth-child(2){min-width:330px}
#coverage-sections-table td:last-child{min-width:420px;white-space:normal}
#coverage-sections-table td:last-child a.button{max-width:none}
#coverage-table-box .reference-table-wrap{max-height:70vh}
#coverage-table-box thead th{position:sticky;top:0;background:var(--surface);z-index:1}
#report-composer-form>*{width:100%;text-align:left}
#report-composer-form fieldset{display:flex;flex-direction:column;gap:10px}
#report-composer-form :where(input:not([type=checkbox],[type=radio]),select,textarea){width:100%}
#report-composer-form .report-contract-row,#report-composer-form .report-field{display:flex;flex-direction:column;gap:4px;padding:0}
.reports-page:has(>#report-composer-form):not(:has(>.report-frozen))::after{content:"Give the report a title, then press Preview frozen inputs. The report appears here.";grid-column:2;grid-row:3;align-self:start;display:grid;place-items:center;min-height:320px;border:1.5px dashed var(--line-2);border-radius:var(--r-lg);color:var(--ink-3);padding:24px;text-align:center}
.reports-page>#report-composer-form{grid-row:3}
.reports-page>#report-composer-form~.report-frozen{grid-row:3}
.reports-page>#report-discard{grid-column:1}
#report-composer-form fieldset>*{width:100%}

#index-search-results>article>form{order:4;margin:6px 0}
#index-search-results>article>button{order:5;align-self:flex-start}
body[data-page=compare] #shell-page>#surveys-page{order:2}
body[data-page=compare] #shell-page>#comparison-evaluation{order:3}
body[data-page=compare] #shell-page>#comparisons-page{border-bottom:0}
#index-library{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
@media (max-width:767px){#v2-jobs-button{display:none}.topbar #projects-button{font-size:0;padding:0 6px}.topbar #projects-button::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--i-lib) center/16px no-repeat;mask:var(--i-lib) center/16px no-repeat}}
#shell-project{flex:0 1 auto;min-width:56px}
.header-actions{flex:none}
body[data-page=settings] #shell-project-settings{width:auto}
@media (max-width:1099px){.v2-cmd span,.v2-cmd kbd{display:none}.v2-cmd{width:auto!important;border-color:transparent!important;background:none!important;margin-left:auto!important}#save-state{max-width:130px}.topbar #import-top span{display:none}}
@media (max-width:899px){body[data-page=settings] #shell-project-settings{margin-left:0}}

/* ══ Findings: saved views, lifecycle, activity ═════════════ */
.v2-views{display:flex;gap:18px;border-bottom:1px solid var(--line);margin:4px 0 10px;overflow-x:auto}
.v2-views button{height:34px;min-height:0!important;padding:0!important;border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;margin-bottom:-1px;background:none!important;color:var(--ink-3)!important;font-weight:500!important}
.v2-views button:hover{color:var(--ink)!important}
.v2-views button[aria-pressed=true]{color:var(--ink)!important;border-bottom-color:var(--ink)!important}
.v2-views small{font-weight:400;margin-left:2px}
.findings-page>.finding-introduction>.v2-hint,.findings-page>.finding-hint{display:none}
.v2-steps{display:flex;list-style:none;margin:6px 0 2px!important;padding:0!important}
.v2-steps li{flex:1;position:relative;padding-top:16px;font-size:11.5px;color:var(--ink-3);margin:0}
.v2-steps li::before{content:"";position:absolute;top:4px;left:0;right:0;height:2px;background:var(--line-2)}
.v2-steps li::after{content:"";position:absolute;top:0;left:0;width:10px;height:10px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 2px var(--line-2)}
.v2-steps li.done{color:var(--ink-2)}.v2-steps li.done::before{background:var(--ink)}.v2-steps li.done::after{background:var(--ink);box-shadow:none}
.v2-steps li.now{color:var(--ink);font-weight:600}.v2-steps li.now::after{background:var(--pos);box-shadow:0 0 0 2px var(--pos-ink)}
.v2-steps li:last-child{flex:none}.v2-steps li:last-child::before{display:none}
.v2-activity{display:flex;flex-direction:column}
.v2-activity>div{display:grid;grid-template-columns:14px 1fr;gap:0 10px;padding-bottom:10px}
.v2-activity i{width:7px;height:7px;border-radius:50%;background:var(--line-2);margin:6px 0 0 3px}
.v2-activity>div:first-child i{background:var(--route)}
.v2-activity b{font-weight:500}
.v2-allrev{border-top:0;padding:0}.v2-allrev>summary{font-weight:400;color:var(--ink-3);font-size:12.5px}
.finding-detail>#finding-workflow{order:3}
.finding-detail>h3,.finding-detail>.v2-activity,.finding-detail>.v2-allrev,.finding-detail>#finding-history-state,.finding-detail>#finding-history{order:4}
.finding-detail>#finding-context-warnings,.finding-detail>#finding-reconciliation-history{order:6}
.finding-detail #finding-history{font-size:12px}

/* ══ Compare: decision panel and place history ══════════════ */
@media (min-width:1100px){
  #comparisons-page:has(>.v2-decide),#comparisons-page:has(>#comparison-draft[data-v2=decide]){display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:8px 24px;align-items:start;align-content:start}
  #comparisons-page:has(>.v2-decide)>*,#comparisons-page:has(>#comparison-draft[data-v2=decide])>*{grid-column:1;justify-self:stretch}
  #comparisons-page:has(>.v2-decide)>button,#comparisons-page:has(>#comparison-draft[data-v2=decide])>button{justify-self:start}
  #comparisons-page>.v2-decide,#comparisons-page>#comparison-draft[data-v2=decide]{grid-column:2;grid-row:1/span 40;position:sticky;top:0;max-height:calc(100vh - var(--bar) - 96px);overflow:auto;order:0}
}
.v2-decide,#comparison-draft[data-v2=decide]{border:1px solid var(--line)!important;border-radius:var(--r-lg);padding:14px!important;margin:0!important;display:flex;flex-direction:column;gap:10px;background:var(--surface)}
#comparison-draft[data-v2=decide]>*{margin:0!important}
#comparison-draft[data-v2=decide]>.reference-form{grid-template-columns:minmax(0,1fr);margin:0}
#comparison-draft[data-v2=decide]>h3,.v2-decide>h3{font-size:15px;margin:0!important}
#comparison-draft[data-v2=decide] #comparison-save-decision{order:8}
#comparison-draft[data-v2=decide] #comparison-discard{order:9;border-color:transparent;color:var(--ink-3)}
#comparison-draft[data-v2=decide]>p{order:10;font-size:12px;color:var(--ink-3)}
#comparison-draft[data-v2=decide]>a{order:11;font-size:12.5px}
.v2-opts{display:flex;flex-direction:column;gap:6px}
.v2-opt{display:flex!important;flex-direction:row!important;gap:10px!important;align-items:flex-start!important;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);cursor:pointer;font-size:13px!important;color:var(--ink)!important;font-weight:400!important}
.v2-opt:has(input:checked){border-color:var(--ink);background:var(--sunken)}
.v2-opt input{margin-top:3px}
.v2-opt b{font-weight:500}
.v2-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.v2-more{border:0;padding:0}.v2-more>summary{font-weight:400;color:var(--ink-3);font-size:12.5px}
.v2-more .reference-form{grid-template-columns:minmax(0,1fr);margin:8px 0 0}
.v2-history{order:2!important;border-top:0!important;padding-top:0!important}
.v2-history-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.v2-history-head h3{margin:0!important}
.v2-badge{margin-left:auto;font-size:12px;font-weight:500;padding:1px 9px;border-radius:10px;background:var(--hover);color:var(--ink-2)}
.v2-visits{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(180px,220px);gap:10px;overflow-x:auto;padding-bottom:4px}
.v2-visit{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.v2-visit[data-current]{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.v2-visit b{font-weight:500}
#comparisons-page>section.reference-detail>.reference-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:6px 0}
#comparisons-page>section.reference-detail>h3{margin-top:0!important}
#comparisons-page>section.reference-detail .button-row button{min-height:28px;font-size:12.5px}

.v2-opt input{flex:none!important;width:15px!important;height:15px!important;min-height:0!important;padding:0!important}
.v2-opt>span{flex:1;min-width:0}
#comparison-draft[data-v2=decide] :where(select,textarea,input:not([type=radio],[type=checkbox])){width:100%}

.v2-views{overflow-y:hidden;scrollbar-width:none}
.v2-steps li{padding-right:10px;white-space:nowrap}
.v2-steps li:last-child{padding-right:0}
#finding-selection-state{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:1099px){.v2-decide,#comparison-draft[data-v2=decide]{order:2!important}}

.findings-page>*{min-width:0;max-width:100%}
@media (max-width:767px){.findings-list{min-width:0}.v2-steps li{white-space:normal;font-size:11px}}

/* ══ Reviewer, evidence frames, compare bar and wipe ════════ */
.v2-avatar{width:22px;height:22px;border-radius:50%;background:var(--active);display:grid;place-items:center;font:600 10px var(--font);color:var(--ink-2)}
#v2-who{padding:0 5px!important}
#v2-reviewer label{margin-top:10px}
.v2-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
.v2-pair figure{position:relative;margin:0;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#0c0d0f}
.v2-pair img{width:100%;height:100%;object-fit:cover;display:block}
.v2-pair figcaption{position:absolute;top:6px;left:6px;background:rgba(12,13,15,.66);color:#fff;font-size:11.5px;padding:1px 7px;border-radius:4px}
.v2-pair figure.none{display:grid;place-items:center;color:#858d98;font-size:12px}
.v2-visit img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:4px;margin-bottom:4px}
.v2-cbar{order:-1!important;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line)}
.v2-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border:1px solid var(--line-2);border-radius:var(--r);font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-cbar .v2-badge{margin-left:0}.v2-badge.ok{background:var(--ok-soft);color:var(--ok)}
.v2-seg{display:inline-flex;padding:2px;background:var(--hover);border-radius:var(--r);gap:2px}
.v2-seg button{min-height:24px!important;padding:0 9px!important;border:0!important;border-radius:4px!important;background:none!important;color:var(--ink-2)!important;font-size:12px}
.v2-seg button[aria-pressed=true]{background:var(--surface)!important;color:var(--ink)!important;box-shadow:0 0 0 1px var(--line),0 1px 2px rgba(0,0,0,.06)}
.v2-wipe{order:2;display:flex;flex-direction:column;gap:6px;margin:10px 0}
.v2-wipe-stage{position:relative;aspect-ratio:16/9;background:#0c0d0f;border-radius:var(--r-lg);overflow:hidden}
.v2-wipe-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#0c0d0f}
.v2-wipe-stage i{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--pos);box-shadow:0 0 0 1px var(--pos-ink);pointer-events:none;z-index:2}
.v2-wipe input[type=range]{width:100%}
.v2-wipe-names{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3)}
.comparison-panes[data-wipe]>article>*:not(h4):not(p):not(label):not(details){display:none}
.v2-after{order:7;font-size:12.5px!important}
#comparisons-page>section.reference-detail{display:flex;flex-direction:column}
#comparisons-page>section.reference-detail>.v2-wipe{order:0}

.findings-list th:nth-child(2),.findings-list td:nth-child(2),.findings-list tbody th{min-width:190px}
.findings-list{min-width:760px}
@media (max-width:767px){.findings-list{min-width:0}.findings-list th:nth-child(2),.findings-list tbody th{min-width:0}.v2-cbar .v2-seg{flex:1 1 auto}}

/* ══ Shared small parts ═════════════════════════════════════ */
.v2-tag{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:10px;font-size:11.5px;font-weight:500;background:var(--hover);color:var(--ink-2);white-space:nowrap}
.v2-tag.ok{background:var(--ok-soft);color:var(--ok)}.v2-tag.warn{background:var(--warn-soft);color:var(--warn)}.v2-tag.bad{background:var(--bad-soft);color:var(--bad)}.v2-tag.route{background:var(--route-soft);color:var(--route-ink)}.v2-tag.line{background:none;box-shadow:inset 0 0 0 1px var(--line-2)}
.v2-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-right:6px}.v2-dot.warn{background:var(--warn)}
.v2-sev{display:inline-flex;align-items:flex-end;gap:2px;height:12px;vertical-align:-1px;margin-right:7px}
.v2-sev i{width:3px;background:var(--line-2);border-radius:1px}.v2-sev i:nth-child(1){height:5px}.v2-sev i:nth-child(2){height:8px}.v2-sev i:nth-child(3){height:12px}
.v2-sev.l1 i:nth-child(-n+1){background:var(--ink-3)}.v2-sev.l2 i:nth-child(-n+2){background:var(--warn)}.v2-sev.l3 i{background:var(--bad)}
.v2-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.v2-head h2{margin:0!important}.v2-head .v2-tag{margin-left:auto}
.v2-search{display:flex;align-items:center;gap:7px;height:var(--ctl);padding:0 9px;border:1px solid var(--line-2);border-radius:var(--r);color:var(--ink-3);width:min(280px,100%)}
.v2-search input{border:0!important;outline:0!important;background:none;flex:1;min-width:0;min-height:0;padding:0}
.button.s{min-height:26px;padding:0 8px;font-size:12px}
.v2-corl{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);column-gap:12px}
.v2-corl .labs{padding-top:37px}
.v2-corl .labs>div{display:flex;justify-content:space-between;gap:8px;height:12px;margin-top:9px;align-items:center;font-size:12.5px;color:var(--ink-2);white-space:nowrap}
.v2-corl .labs b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.v2-corl .v2-cor .row{height:12px;margin-top:9px}
.v2-cor .plan{background:none;box-shadow:inset 0 0 0 1px var(--ink-3)}.v2-cor .soft{background:var(--ink-3)}.v2-cor .ok{background:var(--ok)}

/* ══ Home ═══════════════════════════════════════════════════ */
.v2-home-on>p,.v2-home-on>.shell-filters,.v2-home-on>table.shell-table{display:none}
.v2-resume{display:grid;grid-template-columns:160px 1fr auto;gap:16px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--r-lg);color:var(--ink);text-decoration:none!important;margin-bottom:22px}
.v2-resume:hover{background:var(--sunken)}
.v2-resume-thumb{aspect-ratio:16/9;border-radius:6px;background:#0c0d0f;display:grid;place-items:center;color:#b0b6bf}
.v2-resume .g{display:flex;flex-direction:column;gap:3px;min-width:0}.v2-resume b{font-size:15px;font-weight:600}.v2-resume .g>span{color:var(--ink-2)}
.v2-resume .v2-meter{width:min(360px,100%);margin-top:6px}
.v2-home-tools{display:flex;align-items:center;gap:12px;margin-bottom:6px}.v2-home-tools .muted{margin-left:auto}
.v2-prow{display:grid;grid-template-columns:minmax(200px,2.4fr) 100px 150px minmax(140px,1.2fr) 110px 20px;gap:14px;align-items:center;padding:11px 10px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none!important}
.v2-prow:hover{background:var(--sunken)}.v2-prow b{font-weight:500}
.v2-prow.head{font-size:12px;color:var(--ink-3);padding-block:7px}.v2-prow.head:hover{background:none}
.v2-prow .m{display:flex;align-items:center;gap:8px}.v2-prow .m .v2-meter{flex:1;width:auto}
.v2-waiting{margin-top:26px}

/* ══ Library ════════════════════════════════════════════════ */
body[data-page=library][data-ltab=rec] .library-versions,body[data-page=library][data-ltab=rec] #shell-page,
body[data-page=library][data-ltab=proc] .library,body[data-page=library][data-ltab=proc] #shell-page,
body[data-page=library][data-ltab=index] .library,body[data-page=library][data-ltab=index] .library-versions{display:none}
body[data-page=library] .library-versions{margin-top:0}body[data-page=library] .library-versions>h2{display:none}
body[data-page=library] #index-library{margin-top:0;padding-top:0;border-top:0}
.v2-rhead,.recording-open{display:grid!important;grid-template-columns:minmax(180px,2.2fr) minmax(110px,1.1fr) 70px 80px minmax(120px,1fr) minmax(130px,1fr) minmax(130px,1fr);gap:12px;align-items:center}
.v2-rhead{padding:7px 40px 7px 11px;font-size:12px;color:var(--ink-3);flex:0 0 100%;border-bottom:1px solid var(--line)}
.library>.v2-rhead+.recordings{margin-top:0;border-top:0}
.recording-open>small,.recording-open>.recording-status{display:none}
.v2-c{display:flex;align-items:center;gap:6px;min-width:0;font-weight:400}.v2-c.n{font-variant-numeric:tabular-nums}
.v2-c.m .v2-meter{flex:1;width:auto}

/* ══ Overview ═══════════════════════════════════════════════ */
.v2-progress{margin-bottom:8px}.v2-ready{margin-bottom:26px}.v2-visitsbox{margin-top:26px}
.v2-list svg.ic{color:var(--ink-3)}

/* ══ Review ═════════════════════════════════════════════════ */
.v2-tools-tab{display:none!important}
#inspector-panel-2:not([hidden]){position:fixed;top:var(--bar);right:0;bottom:0;width:min(400px,100vw);z-index:45;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow);overflow:auto;padding:0 14px 20px}
.v2-drawer-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--surface);padding:12px 0;border-bottom:1px solid var(--line);z-index:2;margin-bottom:10px}
.v2-drawer-head h2{margin:0}
.v2-panels:has(#inspector-panel-2:not([hidden])) #inspector-panel-0{display:block!important}
.v2-panels:has(#inspector-panel-2:not([hidden])) #inspector-tab-0{color:var(--ink);border-bottom-color:var(--ink)}
.v2-near h3{margin:0 0 4px}.v2-near:not(:empty){margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.v2-fnd{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none!important}
.v2-fnd:last-child{border:0}.v2-fnd .g{flex:1;min-width:0}.v2-fnd b{font-weight:500}
.v2-line{display:flex;gap:10px;align-items:flex-start;padding:6px 0}.v2-line button{font-variant-numeric:tabular-nums;flex:none}

/* ══ Findings ═══════════════════════════════════════════════ */
.v2-ftable{overflow-x:auto;margin-top:4px}
.v2-ftable table{min-width:680px}
.v2-ftable th{white-space:nowrap}
.v2-ftable td{white-space:nowrap;height:38px;padding-block:0}
.v2-ftable td.main{font-weight:500;white-space:normal;min-width:200px}
.v2-ftable td.id{color:var(--ink-3)}.v2-ftable .n{font-variant-numeric:tabular-nums}.v2-ftable .r{text-align:right}.v2-ftable .late{color:var(--bad)}
.v2-ftable tbody tr{cursor:pointer}
.v2-bulk{border:0;padding:0;margin-top:10px}.v2-bulk>summary{font-weight:400;color:var(--ink-3);font-size:12.5px}
.findings-page>.finding-introduction{order:-2}.findings-page>.v2-views{order:-1}
.finding-filter-form{align-items:center}
.finding-filter-basic>.finding-field>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.finding-filter-basic>.finding-field select{border-radius:14px;min-height:28px;font-size:12.5px;border-style:dashed;color:var(--ink-2);padding:0 8px}
.finding-filter-basic>.finding-field:first-child{flex:0 1 240px}
#finding-filter-apply{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);min-height:0!important;padding:0!important;border:0!important}
#finding-filter-clear{border-color:transparent!important;color:var(--ink-3)!important;min-height:28px!important;font-size:12.5px}
.finding-filter-advanced>summary{font-size:12.5px}
#finding-result-count{order:0}
.findings-page>table caption,.findings-page caption{font-weight:500}
.v2-kv>div{padding:5px 0}
.v2-notes h3{margin:0 0 4px!important}.v2-notes p{color:var(--ink-2)}
.v2-record{border-top:0;padding:0}.v2-record>summary{font-weight:400;color:var(--ink-3);font-size:12.5px}
.finding-detail>.v2-pair{order:1}.finding-detail>.v2-kv,.finding-detail>.v2-notes{order:2}.finding-detail>.v2-record{order:5}

/* ══ Coverage ═══════════════════════════════════════════════ */
.v2-covtop{margin:10px 0 18px}
.v2-covtabs{margin-top:14px}
#coverage-table-box>h4,#coverage-table-box label:has(#coverage-filter-state){display:none}

/* ══ Settings ═══════════════════════════════════════════════ */
.v2-general{margin-top:0!important;padding-top:0!important;border-top:0!important}
.v2-set{display:grid;grid-template-columns:1fr auto;gap:4px 24px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.v2-set b{font-weight:500}.v2-set p{grid-column:1;color:var(--ink-3);font-size:12px;margin:0!important}
.v2-set>:nth-child(2){grid-row:1/3;grid-column:2}
body[data-page=settings] #shell-preferences,body[data-page=settings] #shell-preferences+p{display:none}

@media (max-width:899px){
  .v2-resume{grid-template-columns:1fr}.v2-resume-thumb{display:none}
  .v2-prow{grid-template-columns:minmax(0,1fr) auto 20px}.v2-prow>:nth-child(n+2):not(:nth-child(3)):not(:last-child){display:none}
  .v2-rhead{display:none!important}
  .recording-open{grid-template-columns:minmax(0,1fr) auto!important}.recording-open>.v2-c:not(.m){display:none}
  .v2-corl{grid-template-columns:minmax(0,1fr)}.v2-corl .labs{display:none}
}

/* ══ Final pass against the approved screens ═══════════════ */
.v2-hide{display:none!important}
#v2-jobs-button{position:relative}
#v2-jobs-button[data-new]::after{content:"";position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--route)}
#v2-jobs #jobs-panel{border:0;padding:0;margin:0 0 14px;display:block}
body[data-page=review] .v2-ctx .metrics>div:nth-child(n+3){display:none}
body[data-page=review] #shell-actions{flex-wrap:nowrap}
body[data-page=review] #shell-actions #finding-add-frame{order:9}
body[data-page=review] .shell-heading{flex-wrap:nowrap}
body[data-page=review] .v2-ctx{flex-wrap:nowrap;gap:12px}
body[data-page=home] #shell-actions button:first-child,body[data-page=library] #shell-actions button:first-child{background:var(--ink);border-color:var(--ink);color:var(--surface)}
body[data-page=library] .library>.section-title{display:none}
body[data-page=library] .library>#library-review-summary{flex:1 1 auto;order:3;text-align:right}
body[data-page=library] .library>.dropzone{order:-1}
#coverage-page>h2,#coverage-page>.v2-hint{display:none}
.v2-ftable table{min-width:600px}
@media (min-width:900px){body[data-page=findings] .finding-introduction{position:absolute;top:18px;right:28px;margin:0;z-index:3}body[data-page=findings] .findings-page{padding-top:2px}}
.findings-page:has(>#finding-detail)>.finding-introduction{right:calc(28px + min(440px,34%) + 24px)}

@media (max-width:1279px){body[data-page=review] .shell-heading,body[data-page=review] .v2-ctx,body[data-page=review] #shell-actions{flex-wrap:wrap}}
