/* Shared by the standalone car-status and insurance pages.
   Light theme, committed — deliberately not auto-switching. */
:root{
  --bg:#f2f4f7; --card:#fff; --ink:#101828; --ink2:#344054; --muted:#667085;
  --line:#e4e7ec; --line2:#f0f2f5;
  --shadow:0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.07);
  --ok:#087443; --okbg:#ecfdf3; --okline:#b8e6ca;
  --warn:#9a5b00; --warnbg:#fffaeb; --warnline:#f3d9a4;
  --bad:#b42318; --badbg:#fef3f2; --badline:#f5c9c4;
  --accent:#1849a9; --accentbg:#eff4ff; --track:#e8ebf0;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
     font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
     padding:0 1rem 4rem}
.wrap{max-width:70rem;margin:0 auto;min-width:0}

/* ---- masthead + tabs ---- */
.top{border-bottom:1px solid var(--line);background:var(--card);
     margin:0 -1rem 1.5rem;padding:1.4rem 1rem 0;
     box-shadow:0 1px 2px rgba(16,24,40,.04)}
.top .inner{max-width:70rem;margin:0 auto;display:flex;flex-wrap:wrap;
            gap:.75rem 1.5rem;align-items:baseline;justify-content:space-between}
h1{font-size:1.35rem;margin:0;letter-spacing:-.02em;font-weight:660}
.sub{color:var(--muted);font-size:.85rem;margin-top:.2rem}
.stamp{color:var(--muted);font-size:.78rem;text-align:right;line-height:1.5}
.rfrow{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;margin-top:.4rem}
.rfbtn{font:inherit;font-size:.78rem;font-weight:600;color:var(--accent);cursor:pointer;
       background:var(--accentbg);border:1px solid #c3d6f7;border-radius:7px;
       padding:.25rem .6rem;line-height:1.4}
.rfbtn:hover{background:#e0eaff}
.rfbtn[disabled]{opacity:.55;cursor:default}
.age{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}
.age.stale{color:var(--warn);font-weight:600}
.age.dead{color:var(--bad);font-weight:600}
.refresh-help{color:var(--muted);font-size:.75rem;margin:.55rem 0 0}
.refresh-status{color:var(--muted);font-size:.75rem;text-align:right;min-height:1.2em;margin-top:.2rem}
.iso{font-variant-numeric:tabular-nums}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem}
.chip{font-size:.78rem;border:1px solid var(--line);border-radius:99px;
      padding:.18rem .6rem;background:#fbfcfd;color:var(--ink2);white-space:nowrap}
.chip b{font-variant-numeric:tabular-nums;font-weight:640}
.chip.g{background:var(--okbg);border-color:var(--okline);color:var(--ok)}
.chip.w{background:var(--warnbg);border-color:var(--warnline);color:var(--warn)}
.chip.r{background:var(--badbg);border-color:var(--badline);color:var(--bad)}
nav{display:flex;gap:.25rem;margin-top:1rem}
nav a{font-size:.86rem;font-weight:600;text-decoration:none;color:var(--muted);
      padding:.5rem .85rem;border-bottom:2px solid transparent;border-radius:6px 6px 0 0}
nav a:hover{color:var(--ink);background:#f7f8fa}
nav a.on{color:var(--accent);border-bottom-color:var(--accent)}

/* ---- structure ---- */
h2{font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);
   margin:2rem 0 .7rem;font-weight:660;display:flex;align-items:center;gap:.7rem}
h2::after{content:"";flex:1;height:1px;background:var(--line)}
h3{font-size:.94rem;margin:0 0 .65rem;color:var(--ink);font-weight:660}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;
      box-shadow:var(--shadow);padding:1.05rem 1.15rem}
.grid{display:grid;gap:.75rem;min-width:0}
.grid>*{min-width:0}
details{min-width:0;max-width:100%}
.g4{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr))}
.mt{margin-top:.75rem}

/* ---- progressive disclosure ---- */
details.disclosure,details.section-disclosure{margin-top:.75rem}
details.section-disclosure{margin-top:2rem}
details.disclosure>summary,details.section-disclosure>summary,.nested-disclosure>summary{
  color:var(--ink2);cursor:pointer;font-weight:640;line-height:1.4;min-height:44px;
  display:flex;align-items:center;gap:.55rem;list-style:none
}
details.section-disclosure>summary{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted);border-bottom:1px solid var(--line)}
details.disclosure>summary::-webkit-details-marker,
details.section-disclosure>summary::-webkit-details-marker,
.nested-disclosure>summary::-webkit-details-marker{display:none}
details.disclosure>summary::before,details.section-disclosure>summary::before,
.nested-disclosure>summary::before{content:"›";font-size:1.2rem;line-height:1;transition:transform .15s ease}
details[open]>summary::before{transform:rotate(90deg)}
.disclosure-body{margin-top:.75rem}
details.card.disclosure{padding-top:.5rem;padding-bottom:.5rem}
details.card.disclosure[open]{padding-bottom:1rem}
.nested-disclosure{border-top:1px solid var(--line);margin-top:.9rem;padding-top:.35rem}
.nested-disclosure .legend{margin:.25rem 0 .5rem}

/* ---- verdict banner ---- */
.banner{display:flex;gap:.9rem;align-items:flex-start;border-left:4px solid var(--ok);
        background:var(--okbg);border-color:var(--okline)}
.banner.warn{border-left-color:var(--warn);background:var(--warnbg);border-color:var(--warnline)}
.banner.bad{border-left-color:var(--bad);background:var(--badbg);border-color:var(--badline)}
.banner .ico{font-size:1.3rem;line-height:1.2}
.banner .h{display:block;margin-bottom:.15rem;font-size:1.02rem;font-weight:660}
.banner .body{flex:1}
.cta{display:inline-block;margin-top:.7rem;background:var(--accent);color:#fff;
     text-decoration:none;font-size:.83rem;font-weight:600;padding:.42rem .85rem;
     border-radius:8px}
.cta:hover{background:#123a86}
.estimate-note{color:var(--ink2);font-size:.82rem;background:#fbfcfd;box-shadow:none}

/* ---- kpi ---- */
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;
     box-shadow:var(--shadow);padding:.9rem 1rem}
.kpi .n{font-size:1.5rem;font-weight:660;letter-spacing:-.03em;line-height:1.15;
        font-variant-numeric:tabular-nums}
.kpi .l{color:var(--muted);font-size:.72rem;text-transform:uppercase;
        letter-spacing:.06em;margin-top:.2rem;font-weight:600}
.kpi .x{color:var(--muted);font-size:.79rem;margin-top:.25rem}
.kpi.hl .n{color:var(--bad)}

/* ---- attention list ---- */
.issue{display:flex;gap:.75rem;align-items:flex-start;padding:.7rem 0;
       border-top:1px solid var(--line2)}
.issue:first-child{border-top:0;padding-top:0}
.issue .dot{flex:0 0 auto;width:1.5rem;height:1.5rem;border-radius:99px;display:grid;
            place-items:center;font-size:.8rem;font-weight:700;margin-top:.05rem}
.issue.bad .dot{background:var(--badbg);color:var(--bad);border:1px solid var(--badline)}
.issue.warn .dot{background:var(--warnbg);color:var(--warn);border:1px solid var(--warnline)}
.issue.ok .dot{background:var(--okbg);color:var(--ok);border:1px solid var(--okline)}
.issue.info .dot{background:var(--accentbg);color:var(--accent);border:1px solid #c3d6f7}
.issue b{font-size:.93rem}
.issue .d{color:var(--ink2);font-size:.86rem;margin-top:.1rem}
.issue .a{color:var(--accent);font-size:.84rem;margin-top:.25rem}
.issue.ok b,.issue.ok .d{color:var(--muted);font-weight:500}
.issue.ok b{font-weight:600;color:var(--ink2)}

/* ---- gauges ---- */
.barwrap{position:relative;margin:1.9rem 0 .45rem;padding-top:2px}
.bar{position:relative;height:26px;border-radius:8px;background:var(--track);overflow:hidden}
.fill{height:100%;background:linear-gradient(90deg,#2f9e5c,#d79a2b)}
.fill.over{background:linear-gradient(90deg,#d79a2b,#c0392b)}
.tick{position:absolute;top:0;bottom:-4px;width:2px;background:#101828;opacity:.6}
.tickl{position:absolute;top:-1.25rem;font-size:.7rem;color:var(--muted);
       transform:translateX(-50%);white-space:nowrap}
.legend{display:flex;justify-content:space-between;gap:1rem;color:var(--muted);
        font-size:.79rem;font-variant-numeric:tabular-nums}
.batt{position:relative;height:20px;border-radius:6px;background:var(--track);overflow:hidden}
.batt .f{height:100%;background:linear-gradient(90deg,#2f9e5c,#45b877)}
.batt .f.low{background:linear-gradient(90deg,#c0392b,#d79a2b)}
.batt .lim{position:absolute;top:0;bottom:0;width:2px;background:#101828;opacity:.45}

/* ---- tyres ---- */
.tyres{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;max-width:26rem;margin:0 auto}
.tyre{border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;text-align:center;
      background:#fbfcfd}
.tyre.warn{border-color:var(--badline);background:var(--badbg)}
.tyre .p{font-size:1.15rem;font-weight:660;font-variant-numeric:tabular-nums}
.tyre .c{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.tyre .d{font-size:.74rem;color:var(--muted);margin-top:.1rem}

/* ---- tables ---- */
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;max-width:100%;min-width:0;border-collapse:collapse;font-size:.89rem}
caption{caption-side:top;text-align:left;font-weight:640;font-size:.9rem;
        padding:0 0 .55rem;color:var(--ink)}
th{text-align:left;font-weight:600;color:var(--muted);font-size:.73rem;
   text-transform:uppercase;letter-spacing:.05em;padding:0 0 .45rem;white-space:nowrap}
td{padding:.44rem 0;border-top:1px solid var(--line2);vertical-align:top}
tbody tr:first-child td{border-top:1px solid var(--line)}
td+td,th+th{padding-left:.9rem}
.r,td.r,th.r{text-align:right}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.prose{white-space:normal;overflow-wrap:anywhere}
.key{color:var(--ink2)}
.projection-table th[scope="row"]{padding:.44rem 0;border-top:1px solid var(--line2);
  vertical-align:top;color:var(--ink2);font-size:.89rem;font-weight:400;text-transform:none;
  letter-spacing:0;white-space:normal}
.projection-table tbody tr:first-child th[scope="row"]{border-top:1px solid var(--line)}
.projection-table th[scope="row"]+td{padding-left:.9rem}
code{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.pill{display:inline-block;font-size:.72rem;padding:.1rem .45rem;border-radius:99px;
      border:1px solid var(--line);color:var(--muted);background:#fafbfc;white-space:nowrap}
.pill.g{color:var(--ok);border-color:var(--okline);background:var(--okbg)}
.pill.r{color:var(--bad);border-color:var(--badline);background:var(--badbg)}
.pill.w{color:var(--warn);border-color:var(--warnline);background:var(--warnbg)}
.pill.a{color:var(--accent);border-color:#c3d6f7;background:var(--accentbg)}
.est{color:var(--warn)}

/* ---- policy quick actions + legal definitions ---- */
.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.75rem}
.quick-action{display:flex;min-height:5.6rem;flex-direction:column;justify-content:center;
  border:1px solid #c3d6f7;border-radius:12px;background:var(--accentbg);padding:.8rem 1rem;
  color:var(--accent);text-decoration:none;box-shadow:var(--shadow)}
.quick-action:hover{background:#e0eaff}
a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:3px solid #84adff;outline-offset:2px
}
.quick-label{font-weight:660}
.quick-action strong{color:var(--ink);font-size:1.08rem;margin-top:.15rem}
.quick-hint{color:var(--muted);font-size:.76rem;margin-top:.12rem}
.quick-action.unavailable{border-color:var(--line);background:#fafbfc;color:var(--muted)}
blockquote{margin:.2rem 0 .8rem;padding:.7rem .9rem;border-left:3px solid var(--warnline);
  background:var(--warnbg);font-size:.86rem;color:var(--ink2)}
.legal-definitions{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .75rem;
  margin:.9rem 0 0;font-size:.84rem;color:var(--ink2)}
.legal-definitions dt{font-weight:660;color:var(--ink)}
.legal-definitions dd{margin:0}
.term-note{color:var(--muted);font-size:.78rem;margin-top:.7rem}

/* ---- lists / links ---- */
ul.notes{margin:.1rem 0 0;padding-left:1.1rem;color:var(--ink2);font-size:.86rem}
ul.notes li{margin:.3rem 0}
a.doc{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;
      padding:.55rem 0;border-top:1px solid var(--line2);color:var(--accent);
      text-decoration:none;font-size:.89rem}
a.doc:first-of-type{border-top:0}
a.doc:hover span.t{text-decoration:underline}
a.doc span.m{color:var(--muted);font-size:.76rem;white-space:nowrap}

.foot{color:var(--muted);font-size:.78rem;margin-top:2rem;line-height:1.65;
       border-top:1px solid var(--line);padding-top:1rem}

@media (max-width:640px){
  body{padding:0 .75rem 3rem}
  .top{margin:0 -.75rem 1rem;padding:1rem .75rem 0}
  .top .inner{align-items:flex-start}
  .top .inner>div{width:100%}
  .stamp,.refresh-status{text-align:left}
  .rfrow{justify-content:flex-start;flex-wrap:wrap}
  .rfbtn,nav a,.cta,a.doc,summary{min-height:44px}
  .rfbtn{padding:.55rem .75rem}
  nav{width:100%;overflow-x:auto}
  nav a{display:flex;align-items:center;padding:.6rem .75rem;white-space:nowrap}
  .card{padding:.9rem}
  .g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}
  .legend{flex-direction:column;gap:.25rem}
  .quick-actions{grid-template-columns:1fr}
  .quick-action{min-height:64px}
  .legal-definitions{grid-template-columns:1fr;gap:.1rem}
  .legal-definitions dd{margin-bottom:.55rem}
  .scroll{overflow:visible}
  table:not(.responsive-table){table-layout:fixed}
  table:not(.responsive-table) td{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
  table:not(.responsive-table) td.key{width:44%}
  td.num,.num{white-space:normal;overflow-wrap:anywhere}
  .pill{white-space:normal;max-width:100%;overflow-wrap:anywhere}
  table.projection-table,table.projection-table tbody,table.projection-table tr,
  table.projection-table th[scope="row"],table.projection-table td{display:block;width:100%}
  table.projection-table tr{padding:.55rem 0;border-top:1px solid var(--line2)}
  table.projection-table tbody tr:first-child{border-top:0;padding-top:0}
  table.projection-table tbody tr:first-child th[scope="row"],
  table.projection-table th[scope="row"],table.projection-table td{border-top:0}
  table.projection-table th[scope="row"]{width:100%;padding:.05rem 0;color:var(--muted);
    font-size:.73rem;text-transform:uppercase;letter-spacing:.04em}
  table.projection-table th[scope="row"]+td.r{padding:.12rem 0 0;text-align:left;font-size:.9rem}
  table.responsive-table,table.responsive-table tbody,table.responsive-table tr,
  table.responsive-table td{display:block;width:100%}
  table.responsive-table thead{display:none}
  table.responsive-table tr{border:1px solid var(--line);border-radius:9px;padding:.45rem .65rem;
    margin-top:.65rem;background:#fbfcfd}
  table.responsive-table tbody tr:first-child td,table.responsive-table td{border-top:1px solid var(--line2)}
  table.responsive-table td:first-child{border-top:0}
  table.responsive-table td{display:grid;grid-template-columns:minmax(6rem,35%) minmax(0,1fr);
    gap:.65rem;padding:.42rem 0;text-align:left;white-space:normal;overflow-wrap:anywhere}
  table.responsive-table td+td{padding-left:0}
  table.responsive-table td::before{content:attr(data-label);color:var(--muted);font-size:.7rem;
    font-weight:600;text-transform:uppercase;letter-spacing:.04em}
  table.responsive-table caption{padding-bottom:0}
  .chips{gap:.35rem}
  .chip{padding:.3rem .6rem}
  a.doc{align-items:flex-start;flex-direction:column;gap:.1rem}
  a.doc span.m{white-space:normal}
  .legend,.term-note,.estimate-note{overflow-wrap:anywhere}
}

@media print{
  body{background:#fff;padding:0}
  .top{box-shadow:none;margin:0 0 1rem}
  nav{display:none}
  .card,.kpi{box-shadow:none;break-inside:avoid}
  .cta{display:none}
}
