[hidden]{display:none !important}
.who{font-size:.78rem;color:var(--muted);padding:6px 8px;border:1px solid var(--line);border-radius:99px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}
@media (max-width:560px){.who{display:none}}
.badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--concern);color:#fff;font-size:.7rem}
.h-page{font-size:2rem;margin-top:8px}
.banner{border-radius:var(--r);padding:12px 14px;font-size:.9rem;margin:14px 0}
.banner ul{margin:6px 0 0;padding-left:1.1em}
.banner.warn{background:var(--watch-soft);color:#5E3F0A;border:1px solid #EAD6AE}
.banner.info{background:var(--info-soft);color:#24405F;border:1px solid #CBD8EA}
.review-row{width:100%;border:1px solid var(--line);font:inherit;cursor:pointer;text-align:left}
.title-row{display:flex;align-items:center;gap:8px;margin-top:10px}
.editable{outline:none;border-radius:6px;padding:0 4px;margin-left:-4px}
.editable:focus{background:#fff;box-shadow:0 0 0 2px var(--accent-soft)}
.report-head h1{font-size:clamp(1.7rem,5vw,2.4rem)}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:9px;overflow:hidden;background:var(--card)}
.seg button{all:unset;cursor:pointer;padding:8px 12px;font-size:.85rem;color:var(--ink-2)}
.seg button.on{background:var(--ink);color:var(--paper)}
.seg button:focus-visible{outline:2px solid var(--accent)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:18px 0 16px;overflow-x:auto}
.tabs button{all:unset;cursor:pointer;padding:10px 14px;font-size:.92rem;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}
.tabs button.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:500}
.job{padding:14px 16px;margin-top:14px}
.job-top{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.timers{display:flex;gap:10px;font:500 .78rem/1 var(--mono);color:var(--ink-2)}
.timers span{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:5px 7px}
.bar > i.det{animation:none;transform:none;transition:width .4s}
.verdict-text{font:500 1.15rem/1.45 var(--serif);margin:0}
.answer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (max-width:700px){.answer-grid{grid-template-columns:1fr}}
.answer{padding:16px;border-top:3px solid var(--line-2)}
.answer.status-confirmed{border-top-color:var(--ok)} .answer.status-needs_review{border-top-color:var(--watch)} .answer.status-conflict{border-top-color:var(--concern)} .answer.status-not_found{border-top-color:var(--line-2)}
.answer-top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.answer-label{font:500 .72rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.answer-value{font:500 1.15rem/1.35 var(--serif);margin:8px 0 4px}
.answer-more summary{cursor:pointer;font-size:.82rem;color:var(--accent)}
.answer-more p{font-size:.9rem;color:var(--ink-2);margin:6px 0 0}
.st{display:inline-block;font:500 .64rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 6px;border-radius:4px;vertical-align:middle;white-space:nowrap}
.st-confirmed{background:var(--ok-soft);color:var(--ok)} .st-needs_review{background:var(--watch-soft);color:var(--watch)} .st-conflict{background:var(--concern-soft);color:var(--concern)} .st-not_found{background:#ECE9E2;color:var(--muted)}
.src-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.src-btn{all:unset;cursor:pointer;display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:100%;font:500 .85rem/1.35 var(--sans);color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:6px 10px}
.src-btn:hover{background:#D4E6DC}
.src-btn:focus-visible{outline:2px solid var(--accent)}
.src-doc{overflow-wrap:anywhere}
.src-pg,.src-dt{color:var(--ink-2)}
.fin{padding:6px 16px}
.fin-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
.fin-row:last-child{border-bottom:0}
.fin-l{color:var(--ink-2);font-size:.92rem} .fin-v{font:500 1rem/1.3 var(--serif);text-align:right;font-variant-numeric:tabular-nums}
.fin-row .src-row{grid-column:1/-1;margin-top:2px}
.flags{border-color:#E9C9C2}
.finding-body{min-width:0;flex:1}
.finding h3 .st{margin-left:6px}
.preferred{background:var(--paper);border-radius:6px;padding:8px 10px;font-size:.88rem}
.feedback{margin-top:24px}
.fb-q{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.linkish{all:unset;cursor:pointer;color:var(--accent);font-size:.88rem;text-decoration:underline}
.pro-cta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.drop-title{font:500 1.1rem/1.3 var(--serif)}
.file-row2{display:grid;grid-template-columns:1fr;gap:10px;padding:14px 16px}
.fr-name{font-weight:500;overflow-wrap:anywhere}
.fr-ctrls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.fr-btns{display:flex;gap:6px;margin-left:auto}
.mini{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted)}
.mini select,.mini input[type=date],.mini input[type=number],.mini input[type=text]{font:inherit;font-size:.88rem;color:var(--ink);padding:7px 8px;border:1px solid var(--line-2);border-radius:7px;background:#fff;min-width:0}
.mini.chk{flex-direction:row;align-items:center;gap:6px;font-size:.85rem;color:var(--ink-2)}
.mini.chk input{width:16px;height:16px;accent-color:var(--accent)}
.pair{display:flex;gap:6px}.pair input{width:80px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:10px 0 18px}
.settings h3{margin-top:8px}
select{font:inherit;padding:10px;border:1px solid var(--line-2);border-radius:8px;background:#fff;width:100%}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.tbl{width:100%;border-collapse:collapse;font-size:.84rem}
.tbl th,.tbl td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font:500 .7rem/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--paper)}
.tbl tr.diff td{background:var(--watch-soft)}
.tag-bad{color:var(--concern);font-weight:500}
.tag-watch{color:var(--watch);font-weight:500}
.drop-overlay{position:fixed;inset:0;z-index:40;background:rgba(30,85,68,.85);color:#fff;display:grid;place-items:center;font:500 1.4rem/1.3 var(--serif)}
.ev-backdrop{position:fixed;inset:0;z-index:60;background:rgba(24,34,46,.55);display:flex;align-items:stretch;justify-content:center;padding:16px}
.ev-backdrop[hidden]{display:none}
.ev{background:var(--card);border-radius:12px;width:min(980px,100%);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px -20px rgba(0,0,0,.5)}
.ev-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:14px 16px;border-bottom:1px solid var(--line)}
.ev-title{font:600 1rem/1.35 var(--sans);overflow-wrap:anywhere}
.ev-tabs{display:flex;gap:6px;padding:8px 16px 0;flex-wrap:wrap}
.ev-tabs:empty{display:none}
.chip{all:unset;cursor:pointer;font:500 .82rem/1.3 var(--sans);padding:5px 8px;border-radius:6px;border:1px solid var(--line-2);color:var(--ink-2)}
.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ev-quote{padding:10px 16px;font:italic 400 .95rem/1.45 var(--serif);color:var(--ink-2);background:#FFF7DB;border-bottom:1px solid #F0E2B0}
.ev-quote:empty{display:none}
.ev-body{flex:1;overflow:auto;background:#E9E6DE;padding:12px}
.ev-page{display:flex;justify-content:center}
.ev-canvas{background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.15);max-width:100%;height:auto}
.ev-msg{background:var(--card);border-radius:8px;padding:10px 12px;margin-bottom:10px;color:var(--ink-2)}
.ev-text{white-space:pre-wrap;font:400 .85rem/1.5 var(--code);background:#fff;padding:16px;border-radius:8px;max-width:820px;margin:0 auto}
.ev-text mark{background:#FFE58A;padding:1px 0}
.ev-foot{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-top:1px solid var(--line)}
@media (max-width:560px){.ev-backdrop{padding:0}.ev{border-radius:0}}

/* ---- v2: statuses ---- */
.answer.status-restricted,.answer.status-prohibited{border-top-color:var(--watch)} .answer.status-concern{border-top-color:var(--concern)} .answer.status-partial{border-top-color:var(--watch)} .answer.status-unverified{border-top-color:var(--line-2)}
.st-restricted{background:var(--watch-soft);color:var(--watch)} .st-prohibited{background:var(--concern-soft);color:var(--concern)} .st-concern{background:var(--concern-soft);color:var(--concern)} .st-partial{background:var(--watch-soft);color:var(--watch)} .st-unverified{background:var(--line);color:var(--ink-2)}
.qv{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;font:600 .62rem/1 var(--sans);margin-right:5px;flex:none}
.qv.ok{background:var(--ok-soft);color:var(--ok)} .qv.bad{background:var(--concern-soft);color:var(--concern)}
.src-btn{display:inline-flex;align-items:center}
.trust{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;color:var(--ok)}
.follow{margin:8px 0 0;color:var(--watch);background:var(--watch-soft);padding:6px 8px;border-radius:6px}
.chk-line{display:flex;gap:6px;align-items:center;margin-top:10px;color:var(--muted);cursor:pointer}
.chk-line input{accent-color:var(--accent)}
.answer.is-pri{box-shadow:0 0 0 2px var(--accent-soft),var(--shadow)}
.pri-tag{font:600 .6rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;background:var(--accent);color:#fff;padding:3px 5px;border-radius:4px;margin-right:4px}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pri-pick{margin:10px 0 14px}
.pill.sm{padding:3px 7px;font-size:.7rem;margin-left:6px}
.steps li{margin-bottom:10px}
.mono{font-family:var(--code)}
/* dashboard */
.lib-search{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line-2);border-radius:9px;background:var(--card);color:var(--ink);margin:6px 0 12px}
div.review-row{cursor:default;padding:0;display:flex;align-items:stretch}
.rr-open{all:unset;cursor:pointer;flex:1;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;min-width:0}
.rr-open:focus-visible{outline:2px solid var(--accent);border-radius:var(--r)}
.rr-del{margin:auto 12px auto 0}
.btn.danger,.danger{color:var(--concern)!important;border-color:var(--concern)!important}
.ack{display:flex;gap:8px;align-items:flex-start;margin-top:12px;color:var(--ink-2);max-width:72ch}
.ack input{margin-top:2px;accent-color:var(--accent);flex:none}
/* onboarding */
.onboard{margin:4px 0 16px}
.ob-q{margin-top:14px}
.ob-q .mini.chk{display:flex;margin-top:6px}
/* legal */
.legal-modal{max-height:calc(100vh - 32px)}
.legal-text{font-size:.9rem;line-height:1.55;background:var(--card);color:var(--ink-2)}
.ev-body.legal-text{padding:16px 20px}
.legal-foot{gap:12px;align-items:flex-end;flex-wrap:wrap}
.danger-zone{border-color:var(--concern-soft)}
/* share report */
.ev-backdrop:has(.share-modal){align-items:center}
.share-modal{width:min(520px,100%);max-height:calc(100vh - 32px)}
.share-body{padding:16px;overflow:auto;flex:1}
.share-body textarea{width:100%;font:inherit;padding:11px 12px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink);resize:vertical}
.share-foot{gap:10px;justify-content:flex-end}
.form-grid .field{margin:6px 0}
input[type=tel],input[type=search]{width:100%;font:inherit;padding:11px 12px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink)}

/* ---- dark theme ---- */
html[data-theme=dark]{color-scheme:dark;
  --paper:#12171D; --card:#1A2129; --ink:#E8E4DA; --ink-2:#C4C0B6; --muted:#9097A0; --line:#2A333D; --line-2:#3A4550;
  --accent:#5FB394; --accent-2:#76C4A6; --accent-soft:#1E3A30;
  --concern:#E2877A; --concern-soft:#3A2220; --watch:#E0B160; --watch-soft:#372C17; --ok:#7CC79A; --ok-soft:#1C3325; --info:#8FB0DA; --info-soft:#1D2A3B;
  --shadow:0 1px 0 rgba(0,0,0,.2), 0 6px 24px -12px rgba(0,0,0,.6)}
html[data-theme=dark] .topbar{background:rgba(18,23,29,.92)}
html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea,html[data-theme=dark] .mini select,html[data-theme=dark] .mini input{background:#141A20!important;color:var(--ink);border-color:var(--line-2)}
html[data-theme=dark] .btn-primary{color:#0E1A15}
html[data-theme=dark] .banner.warn{color:#F1DDB4;border-color:#5A4826} html[data-theme=dark] .banner.info{color:#CFE0F5;border-color:#2F4560}
html[data-theme=dark] .ev-body{background:#0E1216} html[data-theme=dark] .ev-quote{background:#2E2A17;color:#EDE3B8;border-color:#4A4220}
html[data-theme=dark] .ev-text{background:#141A20;color:var(--ink)}
html[data-theme=dark] .brand-mark{background:var(--ink);color:var(--paper)}
html[data-theme=dark] .editable:focus{background:var(--card)}
html[data-theme=dark] .seg button.on,html[data-theme=dark] .chip.on{background:var(--accent);color:#0E1A15;border-color:var(--accent)}

.si-links{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;margin-top:14px}
input[type=password]{width:100%;font:inherit;padding:11px 12px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink)}
.mini input[type=password]{padding:7px 8px;font-size:.88rem}

.danger-zone label.field input{border-color:var(--line-2)}
.danger-zone label.field{margin:10px 0}
.mini input:not([type]),.mini input[type=email]{font:inherit;font-size:.88rem;color:var(--ink);padding:7px 8px;border:1px solid var(--line-2);border-radius:7px;background:#fff;width:100%}

/* ======================================================================
   Mobile & touch pass
   ====================================================================== */

/* Every text-like input gets the same styling (untyped, date and number inputs were falling back to browser defaults). */
input:not([type]),input[type=date],input[type=number],input[type=url]{font:inherit;padding:11px 12px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink);width:100%;min-width:0}
label.field input[type=date]{min-height:46px}
html[data-theme=dark] input:not([type]),html[data-theme=dark] input[type=date],html[data-theme=dark] input[type=number]{background:#141A20;color:var(--ink)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-soft);border-color:var(--accent)}
a:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Safe areas (notches, home indicator) */
.topbar{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-top:max(12px,env(safe-area-inset-top))}
.footer{padding-bottom:max(20px,env(safe-area-inset-bottom))}
.toast{bottom:max(24px,calc(env(safe-area-inset-bottom) + 12px))}

/* Phone menu */
.menu-btn{display:none;flex:none;width:42px;height:42px;border:1px solid var(--line-2);border-radius:10px;background:var(--card);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0}
.menu-btn span{display:block;width:18px;height:2px;border-radius:2px;background:var(--ink);transition:transform .2s,opacity .2s}
.menu-btn[aria-expanded=true] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.menu-sheet{position:absolute;top:100%;left:0;right:0;background:var(--card);border-bottom:1px solid var(--line);box-shadow:0 18px 30px -18px rgba(24,34,46,.35);padding:8px max(12px,env(safe-area-inset-left)) 14px;display:grid;gap:2px}
.menu-sheet a{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 12px;border-radius:9px;color:var(--ink);text-decoration:none;font-size:1.02rem}
.menu-sheet a.on{background:var(--accent-soft);color:var(--accent);font-weight:500}
.menu-sheet a.btn{justify-content:center;margin-top:8px;color:#fff}
.menu-who{font-size:.85rem;color:var(--muted);padding:10px 12px 0;overflow-wrap:anywhere}

/* Report jump bar: sticks under the top bar while reading a long report */
.toc{position:sticky;top:var(--top-h,64px);z-index:10;margin:4px -20px 0;padding:8px 20px;background:var(--paper);border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch}
.toc::-webkit-scrollbar{display:none}
.toc button{all:unset;flex:none;cursor:pointer;font-size:.85rem;color:var(--ink-2);border:1px solid var(--line-2);border-radius:99px;padding:7px 13px;background:var(--card);white-space:nowrap}
.toc button:active{background:var(--accent-soft);color:var(--accent)}
.toc button:focus-visible{outline:2px solid var(--accent)}
.r-section{scroll-margin-top:120px}

/* Home demo card: keep the label clear of the severity tag */
.finding-demo .label{padding-right:84px;line-height:1.35}

/* Touch devices: comfortable tap targets (~44px) */
@media (pointer:coarse){
  .btn{min-height:44px}
  .btn-sm{min-height:40px;padding:9px 14px}
  .chip{padding:9px 12px}
  .tabs button{padding:13px 14px}
  .seg button{padding:11px 14px}
  .src-btn{padding:9px 12px}
  .topnav a.link{padding:11px 10px}
  .linkish{padding:6px 0;display:inline-block}
  details.faq summary{padding:4px 0}
  .mini.chk input,.ack input,.chk-line input{width:20px;height:20px}
}

/* Tablets and phones */
@media (max-width:700px){
  :root{--top-h:58px}
  .topbar{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:8px;gap:8px}
  .brand-tag{display:none}
  .brand-mark{width:32px;height:32px}
  .brand-name{font-size:1.05rem;white-space:nowrap}
  .menu-btn{display:flex}
  .topnav{margin-left:auto}
  .topnav a.hide-sm,.topnav .who{display:none}
  .section{padding:40px 0}
  .hero{padding:32px 0 28px}
  .hero p.lede{font-size:1.05rem;margin:14px 0 20px}
  .cta-row .btn{flex:1 1 auto}
  /* 16px inputs: iOS zooms the page when a smaller input is focused */
  input,select,textarea,.mini select,.mini input,.mini input[type=date],.mini input[type=number],.mini input[type=text],.lib-search{font-size:16px!important}
}

@media (max-width:640px){
  .wrap{padding:0 16px}
  .toc{margin:4px -16px 0;padding:8px 16px}
  .dash-head{margin:24px 0 16px;align-items:center}
  .h-page{font-size:1.75rem}
  .report-head{margin:20px 0 14px}

  /* Summary: risk badge sits beside the heading instead of a big circle on its own row */
  .verdict{grid-template-columns:auto 1fr;gap:14px;padding:16px}
  .verdict > div:last-child{grid-column:1/-1}
  .risk{width:auto;height:auto;flex-direction:row;gap:6px;border-radius:99px;padding:7px 14px}
  .risk b{font-size:1.15rem} .risk span{margin-top:0}
  .verdict-text{font-size:1.06rem}

  .kpis{gap:8px}
  .kpi{padding:12px}
  .kpi .v{font-size:1.4rem}
  .answer{padding:14px}
  .answer-top{align-items:flex-start}
  .finding{padding:14px}
  .finding-top{flex-direction:column;gap:8px}
  .r-section{margin:22px 0}
  .r-section > h2{font-size:1.3rem}
  .fin{padding:4px 14px}

  /* Review page: main action full width, the rest share a row */
  .review-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .review-actions #go-scan{grid-column:1/-1;order:-1;min-height:46px;font-size:1rem}
  .review-actions .btn{width:100%}
  .owner-tools > span{grid-column:1/-1}
  .ack{font-size:.85rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px}
  .tabs{margin:14px -16px 14px;padding:0 16px}
  .job-top{gap:8px}
  .job-top strong{flex:1}

  /* Documents: name on top, controls in a tidy grid, actions as a full-width row */
  .file-row2{padding:14px}
  .fr-ctrls{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
  .fr-ctrls .mini:first-child{grid-column:1/-1}
  .fr-ctrls .mini.chk{min-height:42px}
  .fr-btns{grid-column:1/-1;margin-left:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px}
  .drop{padding:24px 16px}

  /* Dashboard rows: status badge drops under the title, delete stays reachable */
  .rr-open{flex-direction:column;align-items:flex-start;gap:8px;padding:14px}
  .rr-del{margin:auto 10px auto 0}
  a.review-row{flex-direction:column;align-items:flex-start;gap:8px}

  /* Forms */
  .auth-card{margin:20px auto;padding:20px}
  .form-grid{grid-template-columns:1fr}
  .pro-cta .btn{width:100%}
  .fb-q .cta-row{width:100%}
  .fb-q .cta-row .btn{flex:1}
  .seg{display:flex;flex-wrap:wrap}
  .seg button{flex:1 1 auto;text-align:center}

  /* Modals become full-screen sheets */
  .ev-backdrop{padding:0}
  .ev{border-radius:0;height:100%;max-height:100dvh}
  .legal-modal,.share-modal{max-height:100dvh}
  .share-foot{flex-direction:column-reverse;align-items:stretch}
  .share-foot .btn{width:100%}
  .ev-head{padding:max(12px,env(safe-area-inset-top)) 14px 12px}
  .ev-foot{padding:10px 14px max(10px,env(safe-area-inset-bottom))}
  .ev-foot .btn{min-width:96px}
  .ev-body{padding:8px}
  .ev-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px}
  .ev-tabs .chip{flex:none;max-width:75vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .legal-foot{flex-direction:column;align-items:stretch}
  .legal-foot .btn{width:100%}

  .footer{padding-left:16px;padding-right:16px}
  .footer-links{gap:2px 16px}
  .footer-links a{padding:6px 0}
  .tbl{font-size:.8rem}
}
body.menu-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.usage-line{margin:0 0 12px;font-size:.82rem;color:var(--ink-2)}
.usage-top{display:flex;justify-content:space-between;gap:10px}
.usage-bar{margin-top:6px}
.usage-bar.high > i{background:var(--watch)} .usage-bar.full > i{background:var(--concern)}

/* Tables → cards on phones. Each cell shows its column name (data-label, set in app.js); the first column is the card title. */
@media (max-width:640px){
  .table-wrap:has(.tbl[data-cards]){overflow:visible;border:0;background:transparent;border-radius:0}
  .tbl[data-cards],.tbl[data-cards] tbody,.tbl[data-cards] tr,.tbl[data-cards] td{display:block;width:100%}
  .tbl[data-cards] thead{display:none}
  .tbl[data-cards] tr{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:10px;padding:4px 14px}
  .tbl[data-cards] td{display:grid;grid-template-columns:minmax(88px,38%) 1fr;gap:10px;align-items:start;padding:8px 0;border-bottom:1px solid var(--line);font-size:.88rem;overflow-wrap:anywhere}
  .tbl[data-cards] td:last-child{border-bottom:0}
  .tbl[data-cards] td:empty{display:none}
  .tbl[data-cards] td::before{content:attr(data-label);font:500 .68rem/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:2px}
  .tbl[data-cards] td:first-child{display:block;font:500 1rem/1.35 var(--serif);padding:10px 0 8px}
  .tbl[data-cards] td:first-child::before{content:none}
  .tbl[data-cards] td[colspan]{display:block;text-align:center}
  .tbl[data-cards] td[colspan]::before{content:none}
  .tbl[data-cards] tr.diff{background:var(--watch-soft)}
  .tbl[data-cards] td select,.tbl[data-cards] td .btn{width:100%}
  /* Collapsible cards: closed by default, tap the title to open. */
  .tbl[data-cards] tr[data-fold] > td:first-child{position:relative;cursor:pointer;padding-right:28px;-webkit-tap-highlight-color:transparent}
  .tbl[data-cards] tr[data-fold] > td:first-child::before{content:"";position:absolute;right:4px;top:16px;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
  .tbl[data-cards] tr[data-fold].open > td:first-child::before{transform:rotate(-135deg);top:20px;transition:none}
  .tbl[data-cards] tr[data-fold]:not(.open) > td:first-child::after{content:attr(data-summary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:4px;font:400 .82rem/1.4 var(--sans);color:var(--muted)}
  .tbl[data-cards] tr[data-fold]:not(.open) > td:first-child{border-bottom:0}
  .tbl[data-cards] tr[data-fold]:not(.open) > td:not(:first-child){display:none}
  .tbl[data-cards] tr[data-fold] > td:first-child:focus-visible{outline:2px solid var(--accent, currentColor);outline-offset:2px;border-radius:4px}
}

/* Owner-only tools on the review page */
.owner-tools{margin-top:8px;align-items:center;padding-top:8px;border-top:1px dashed var(--line)}
.ban-confirm{min-width:220px}.ban-confirm input{width:100%;margin-top:6px}

/* Paid mode: blurred report with the unlock card on top */
.locked-wrap{position:relative;min-height:420px}
.locked-blur{filter:blur(7px);opacity:.75;pointer-events:none;user-select:none;-webkit-user-select:none;max-height:900px;overflow:hidden;mask-image:linear-gradient(#000 60%,transparent)}
.paywall{position:absolute;top:40px;left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 24px));box-shadow:0 18px 50px rgba(24,34,46,.25);z-index:2}
.paywall .btn-primary{width:100%;justify-content:center}
.paywall-price{display:flex;align-items:baseline;gap:10px;margin:4px 0 14px}
.paywall-price strong{font:500 1.8rem/1 var(--serif)}
.ev-backdrop:has(.paywall-modal){align-items:center}
.ev.paywall-modal{display:block;max-width:440px;width:100%;height:auto;border-radius:12px;max-height:calc(100dvh - 32px);overflow:auto}
@media (max-width:600px){.paywall{top:16px}.paywall-modal .cta-row .btn{flex:1;justify-content:center}}
