/* Self-hosted IBM Plex (SIL Open Font License, assets/fonts/OFL-LICENSE.txt). No third-party font requests. */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/ibm-plex-sans-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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-style:normal;font-weight:700;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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 Mono";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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 Mono";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Verachek style system (Doc 11 §3, single source of truth) */
:root{
  --blue:#0b4a82; --blue-2:#1a6db0; --blue-3:#08386a; --blue-soft:#eaf1f8;
  --emerald:#10b981; --emerald-dark:#047857; --emerald-tint:#34d399;
  /* v12: accessible action colour (white text 5.5:1) and accent text (4.9:1 on --bg) */
  --action:#047857; --action-hover:#065f46; --on-action:#ffffff;
  --ink:#0f2033; --muted:#4f5f70; --line:#e1e6ec; --bg:#f5f7fa; --surface:#ffffff; --surface-2:#f7f9fb;
  --ok:#166534; --ok-bg:#dcfce7; --amber:#b45309; --amber-bg:#fef3c7; --red:#b91c1c; --red-bg:#fee2e2; --flag:#475569; --flag-bg:#e2e8f0;
  --link:#0b4a82; --shadow:0 18px 40px rgba(11,74,130,.12);
  --wrap:1180px; --r:10px;
  --serif:"IBM Plex Sans","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --sans:"IBM Plex Sans","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --blue:#7fb6ea; --blue-2:#1a6db0; --blue-3:#08386a; --blue-soft:#15304a;
    --ink:#e7eef7; --muted:#a3b4c7; --line:#27405a; --bg:#0c1a2b; --surface:#122539; --surface-2:#172e45;
    --ok:#86efac; --ok-bg:#12331f; --amber:#fcd34d; --amber-bg:#3a2a08; --red:#fca5a5; --red-bg:#3f1414; --flag:#cbd5e1; --flag-bg:#2b3a4d;
    --link:#7fb6ea; --shadow:0 18px 40px rgba(0,0,0,.4); color-scheme:dark;
    --emerald-dark:#34d399; --action:#34d399; --action-hover:#6ee7b7; --on-action:#06281b;
  }
}
:root[data-theme="dark"]{
  --blue:#7fb6ea; --blue-2:#1a6db0; --blue-3:#08386a; --blue-soft:#15304a;
  --ink:#e7eef7; --muted:#a3b4c7; --line:#27405a; --bg:#0c1a2b; --surface:#122539; --surface-2:#172e45;
  --ok:#86efac; --ok-bg:#12331f; --amber:#fcd34d; --amber-bg:#3a2a08; --red:#fca5a5; --red-bg:#3f1414; --flag:#cbd5e1; --flag-bg:#2b3a4d;
  --link:#7fb6ea; --shadow:0 18px 40px rgba(0,0,0,.4); color-scheme:dark;
    --emerald-dark:#34d399; --action:#34d399; --action-hover:#6ee7b7; --on-action:#06281b;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);margin:0 0 12px;font-weight:600;line-height:1.2;text-wrap:balance}
h1{font-size:40px} h2{font-size:30px} h3{font-size:20px} h4{font-size:17px}
p{margin:0 0 14px}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
img,svg{max-width:100%}
:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(16,185,129,.35)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono);font-size:.92em}
.num{font-variant-numeric:tabular-nums}
.kicker{display:block;color:var(--emerald-dark);font-weight:700;text-transform:uppercase;letter-spacing:.09em;font-size:12px;margin-bottom:10px}
.lead{color:var(--muted);font-size:17px;max-width:64ch}
.center{text-align:center;max-width:720px;margin:0 auto 40px}
.center .lead{margin:0 auto}
section.sec{padding:56px 0;scroll-margin-top:80px}
[id]{scroll-margin-top:80px}
section.sec.alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:12px 22px;font-weight:600;font-size:15px;cursor:pointer;border:1px solid transparent;font-family:var(--sans);min-height:44px;transition:background .15s,border-color .15s,color .15s;text-decoration:none}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--action);color:var(--on-action);border-color:var(--action)}
.btn-primary:hover{background:var(--action-hover);border-color:var(--action-hover);color:var(--on-action)}
.btn-secondary{background:var(--surface);color:var(--blue);border-color:var(--blue)}
.btn-secondary:hover{background:var(--blue-soft)}
.btn-blue{background:#0b4a82;color:#fff;border-color:#0b4a82}
.btn-blue:hover{background:#08386a;color:#fff}
.btn-sm{padding:8px 14px;font-size:14px;min-height:38px}
.btn-block{width:100%}

/* ---------- global chrome ---------- */
.utility{background:var(--blue-3);color:#c7d7e8;font-size:13px}
.utility .wrap{display:flex;align-items:center;height:36px;gap:18px}
.utility a{color:#c7d7e8}.utility a:hover{color:#fff;text-decoration:none}
.utility .r{margin-left:auto;display:flex;gap:18px;align-items:center}
.utility .utag{color:#9fc3e6;display:flex;align-items:center;gap:14px}
.utility .ulabel{padding-right:14px;border-right:1px solid rgba(255,255,255,.18)}
.utility .uf{display:inline-flex;align-items:center;gap:5px;color:#c7d7e8;font-weight:500;letter-spacing:.01em}
.utility .uf svg{width:14px;height:14px;fill:none;stroke:#34d399;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
header.main{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.navrow{display:flex;align-items:center;height:68px;gap:22px}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:700;font-size:21px;letter-spacing:-.2px;font-family:var(--serif)}
.logo:hover{text-decoration:none}
nav.menu{display:flex;gap:4px;margin-left:8px;height:100%}
nav.menu a{display:flex;align-items:center;padding:0 14px;color:var(--ink);font-weight:500;font-size:15px;border-bottom:3px solid transparent;margin-bottom:-1px}
nav.menu a:hover{color:var(--blue);text-decoration:none}
nav.menu a.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}
.navrow .actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.navrow .actions a.login{color:var(--ink);font-weight:500;padding:8px 10px}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;width:44px;height:44px;cursor:pointer;color:var(--ink)}
.crumb{background:var(--bg);font-size:13px;color:var(--muted);padding:10px 0}
.crumb a{color:var(--muted)} .crumb b{color:var(--ink);font-weight:500}
footer{background:#08386a;color:#c7d7e8;padding:48px 0 28px;margin-top:0}
footer .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
footer h5{color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px}
footer a{display:block;color:#c7d7e8;margin:6px 0;font-size:14px}
footer a:hover{color:#fff}
footer .flogo{color:#fff}
footer .fbot{border-top:1px solid rgba(255,255,255,.14);margin-top:34px;padding-top:18px;display:flex;flex-wrap:wrap;gap:10px 24px;font-size:13px;color:#9fc3e6}
footer .fbot span:last-child{margin-left:auto}

/* ---------- components ---------- */
.chip{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:12.5px;border-radius:5px;padding:5px 12px;white-space:nowrap;letter-spacing:.02em}
.chip .dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.chip.green{background:var(--ok-bg);color:var(--ok)}
.chip.amber{background:var(--amber-bg);color:var(--amber)}
.chip.red{background:var(--red-bg);color:var(--red)}
.chip.flag{background:var(--flag-bg);color:var(--flag)}
.chip.free{background:var(--action);color:var(--on-action)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.card h3{font-size:19px;margin-bottom:8px}
.card p{color:var(--muted);font-size:15px;margin:0}
.callout{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--emerald);border-radius:var(--r);padding:18px 22px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.callout p{margin:0}
.barrow{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:13px}
.barrow .bl{width:130px;color:var(--muted);flex:none}
.barrow .bt{flex:1;height:9px;background:var(--flag-bg);border-radius:999px;overflow:hidden}
.barrow .bf{height:100%;border-radius:999px;display:block}
.barrow b{width:18px;text-align:right;font-variant-numeric:tabular-nums}
.searchbox{display:flex;border:2px solid #0b4a82;border-radius:10px;overflow:hidden;background:var(--surface);max-width:620px}
.searchbox input{flex:1;border:0;padding:14px 16px;font:15px var(--sans);background:transparent;color:var(--ink);min-width:0}
.searchbox input::placeholder{color:var(--muted)}
.searchbox button{border:0;background:#0b4a82;color:#fff;font:600 15px var(--sans);padding:0 22px;cursor:pointer}
.searchbox button:hover{background:#08386a}
.searchbox input:focus-visible{box-shadow:inset 0 0 0 3px rgba(16,185,129,.25)}
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);padding:16px 0}
.strip .wrap{display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:center;color:var(--muted);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.strip b{color:var(--emerald-dark)}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;background:var(--surface)}
table.tbl th,table.tbl td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
table.tbl th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2)}
.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
.check{list-style:none;padding:0;margin:14px 0 0}
.check li{position:relative;padding:6px 0 6px 28px;font-size:15px}
.check li::before{content:"";position:absolute;left:0;top:11px;width:16px;height:16px;border-radius:50%;background:var(--ok-bg)}
.check li::after{content:"";position:absolute;left:5px;top:14px;width:6px;height:3px;border-left:2px solid var(--ok);border-bottom:2px solid var(--ok);transform:rotate(-45deg)}
.faq details{border-bottom:1px solid var(--line);padding:14px 0}
.faq summary{cursor:pointer;font-weight:600;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--muted);font-weight:400;font-size:20px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);margin:10px 0 0;max-width:70ch}
.pagehero{background:var(--surface);border-bottom:1px solid var(--line);padding:48px 0 40px}
.pagehero h1{margin-bottom:10px}
.pagehero.split .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.heroart{display:block;width:100%;max-width:420px;margin:0 auto;height:auto}
.heroart .ink{stroke:var(--ink)} .heroart .mut{stroke:var(--muted)} .heroart .line{stroke:var(--line)} .heroart .fillsurf{fill:var(--surface-2)} .heroart .fillbg{fill:var(--surface)}
.heroart text{font-family:var(--mono);font-size:9px;fill:var(--muted)}
@media (max-width:1079px){.pagehero.split .wrap{grid-template-columns:1fr}.heroart{max-width:320px}}
.cta-band{background:var(--blue-soft);border-top:1px solid var(--line);padding:56px 0;text-align:center}
.cta-band h2{margin-bottom:8px}
.cta-band p{color:var(--muted);margin-bottom:22px}
.prose{max-width:72ch}
.prose h2{font-size:24px;margin-top:36px}
.prose h3{font-size:19px;margin-top:26px}
.prose ul,.prose ol{padding-left:22px}
.prose li{margin:6px 0}
.prose p{margin-bottom:16px}
.note{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;font-size:14px;color:var(--muted)}
.tldr{background:var(--blue-soft);border-left:4px solid #0b4a82;border-radius:var(--r);padding:16px 20px;margin:18px 0 26px}
.tldr b{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);margin-bottom:6px}

/* ---------- home hero ---------- */
.hero{background:var(--surface);border-bottom:1px solid var(--line);padding:56px 0 52px}
.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1{font-size:44px;line-height:1.12;margin-bottom:14px}
.hero .lead{margin-bottom:22px}
.hero .or{margin-top:12px;font-size:14px;color:var(--muted)}
.hero .micro{margin-top:18px;font-size:13.5px;color:var(--muted)}
.hero .micro b{color:var(--ink);font-weight:600}
.report{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.report .rtop{background:#0b4a82;color:#fff;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.report .rtop .t{font-weight:600;font-size:14px}
.report .rtop .t small{display:block;font-weight:400;opacity:.8;font-size:12px}
.report .rbody{padding:18px}
.report .rrow{display:grid;grid-template-columns:1fr auto auto;gap:8px 14px;font-size:13.5px;padding:7px 0;border-bottom:1px solid var(--line);align-items:center}
.report .rrow:last-of-type{border-bottom:0}
.report .rrow .cas{font-family:var(--mono);color:var(--muted);font-size:12.5px;white-space:nowrap}
.report .rfoot{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.report .rfoot span{font-size:12px;border:1px solid var(--line);border-radius:6px;padding:4px 9px;color:var(--muted)}

.tag{font-family:var(--mono);background:var(--flag-bg);color:var(--ink);border-radius:4px;padding:1px 6px;font-size:12px}

/* ---------- pricing ---------- */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.plan{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:26px 24px;display:flex;flex-direction:column}
.plan.pop{border-color:#0b4a82;box-shadow:var(--shadow)}
.plan .ribbon{position:absolute;top:-12px;left:24px;background:#0b4a82;color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:4px 10px;border-radius:4px}
.plan h3{font-size:20px;margin-bottom:4px}
.plan .who{color:var(--muted);font-size:13.5px;min-height:40px}
.plan .price{font-family:var(--serif);font-size:34px;font-weight:600;margin:12px 0 2px;line-height:1}
.plan .price small{font-family:var(--sans);font-size:14px;font-weight:400;color:var(--muted)}
.plan .per{font-size:13px;color:var(--muted);margin-bottom:12px}
.plan .check{flex:1;margin-bottom:18px}
.plan .check li{font-size:14px;padding:4px 0 4px 28px}
.cmp td:not(:first-child){text-align:center}
.cmp .y{color:var(--ok);font-weight:700}.cmp .n{color:var(--muted)}

/* ---------- regulations ---------- */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.filters button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;padding:7px 14px;font:600 13px var(--sans);cursor:pointer}
.filters button.active{background:#0b4a82;color:#fff;border-color:#0b4a82}
.reg{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.regcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.regcard .top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:6px}
.regcard h3{font-size:18px;margin:0}
.regcard .fam{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;white-space:nowrap;padding-top:4px}
.regcard .ref{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:10px}
.regcard p{font-size:14.5px;margin:0 0 8px}
.regcard .how{font-size:13.5px;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}
.regcard .how b{color:var(--emerald-dark);font-size:11px;text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:3px}

/* ---------- how it works ---------- */
.pipe{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;counter-reset:step}
.pipe .st{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 14px;position:relative}
.pipe .st::before{counter-increment:step;content:counter(step);display:inline-flex;width:26px;height:26px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-weight:700;font-size:13px;align-items:center;justify-content:center;margin-bottom:8px}
.pipe .st h4{font-family:var(--sans);font-size:14.5px;margin:0 0 4px}
.pipe .st p{font-size:13px;color:var(--muted);margin:0}
.verdicts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.verdicts .v{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.verdicts .v p{font-size:14px;color:var(--muted);margin:10px 0 0}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:34px 0}
.frow.rev .txt{order:2}
.frow .txt h3{font-size:24px}
.frow .txt p{color:var(--muted)}

/* ---------- free check ---------- */
.paths{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.path{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:26px}
.path.sel{border-color:var(--emerald);box-shadow:0 0 0 3px rgba(16,185,129,.12)}
.drop{border:2px dashed var(--line);border-radius:10px;padding:26px;text-align:center;color:var(--muted);font-size:14px;margin:14px 0}
.drop b{display:block;color:var(--ink);margin-bottom:4px}
.gridin{display:grid;gap:8px;margin:14px 0 8px}
.srow{display:grid;grid-template-columns:1.4fr 1fr 1fr .7fr;gap:8px}
.srow input{border:1px solid var(--line);border-radius:8px;padding:10px;font:14px var(--sans);background:var(--surface);color:var(--ink);min-width:0}
.srow input.mono{font-family:var(--mono);font-size:13px}
.srow input:focus-visible{border-color:var(--emerald);box-shadow:0 0 0 3px rgba(16,185,129,.12)}
.gridhead{display:grid;grid-template-columns:1.4fr 1fr 1fr .7fr;gap:8px;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;margin-top:14px}
.addrow{background:none;border:1px dashed var(--line);border-radius:8px;padding:8px;width:100%;color:var(--blue);font:600 13px var(--sans);cursor:pointer}
.field{margin:12px 0}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}
.field input,.field select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:14px var(--sans);background:var(--surface);color:var(--ink)}
.field input:focus-visible,.field select:focus-visible{border-color:var(--emerald);box-shadow:0 0 0 3px rgba(16,185,129,.12)}

/* ---------- resources ---------- */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.post{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;display:flex;flex-direction:column}
.post .meta{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:10px}
.post .cat{background:var(--blue-soft);color:var(--blue);font-weight:700;border-radius:4px;padding:2px 9px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.post h3{font-size:18px;margin-bottom:8px}
.post h3 a{color:var(--ink)}
.post p{color:var(--muted);font-size:14.5px;flex:1}
.post .more{font-weight:600;font-size:14px}
.subscribe{display:flex;gap:10px;max-width:520px}
.subscribe input{flex:1;border:1px solid var(--line);border-radius:8px;padding:11px 12px;font:14px var(--sans);background:var(--surface);color:var(--ink);min-width:0}
.article{max-width:72ch}
.article .meta{font-size:13px;color:var(--muted);margin-bottom:12px}
.article h1{font-size:36px}
.who{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}
.who .card p{color:var(--ink)}

/* ---------- support ---------- */
.contact{display:grid;grid-template-columns:1.2fr .8fr;gap:32px}
.scope{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.scope .card ul{margin:8px 0 0;padding-left:18px;font-size:14.5px;color:var(--ink)}

/* ---------- responsive ---------- */
@media (max-width:1079px){
  .hero .grid,.grid2,.frow,.contact,.who,.scope,.reg{grid-template-columns:1fr}
  .frow.rev .txt{order:0}
  .grid4{grid-template-columns:1fr 1fr}
  .pipe{grid-template-columns:repeat(3,1fr)}
  .verdicts{grid-template-columns:1fr 1fr}
  .posts,.plans,.grid3{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
  h1,.hero h1{font-size:32px} h2{font-size:26px}
  section.sec{padding:40px 0}
  nav.menu{display:none;position:absolute;left:0;right:0;top:68px;background:var(--surface);border-bottom:1px solid var(--line);flex-direction:column;padding:8px 12px 12px;margin:0}
  nav.menu.open{display:flex}
  nav.menu a{padding:12px 8px;border-bottom:1px solid var(--line);margin:0}
  nav.menu a.active{border-bottom-color:var(--line)}
  .navrow .actions .login{display:none}
  .burger{display:inline-flex;align-items:center;justify-content:center}
  .navrow .actions{margin-left:0}
  .utility .utag{display:none}
  .posts,.plans,.grid3,.grid4,.paths,.pipe,.verdicts{grid-template-columns:1fr}
  footer .cols{grid-template-columns:1fr 1fr}
  .searchbox{flex-direction:column}
  .searchbox button{padding:12px}
  .btn{width:100%}
  .hero .cta{display:flex;flex-direction:column;gap:10px}
  .srow,.gridhead{grid-template-columns:1fr 1fr}
  .barrow .bl{width:100px}
}

/* ---------- animated pipeline ---------- */
.flow{position:relative;padding:54px 0 8px}
.flow .track{position:absolute;left:calc(100%/12);right:calc(100%/12);top:30px;height:3px;background:var(--line);border-radius:3px}
.flow .token{position:absolute;top:4px;left:calc(100%/12);transform:translateX(-50%);background:#0b4a82;color:#fff;font:600 12px var(--sans);padding:5px 10px;border-radius:5px;white-space:nowrap;box-shadow:0 6px 16px rgba(11,74,130,.35);transition:left .9s cubic-bezier(.4,0,.2,1);z-index:2}
.flow .token::after{content:"";position:absolute;left:50%;bottom:-6px;width:8px;height:8px;background:#0b4a82;transform:translateX(-50%) rotate(45deg)}
.flow .steps{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;position:relative}
.flow .step{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:30px 16px 16px;position:relative;display:flex;flex-direction:column;transition:border-color .3s,box-shadow .3s}
.flow .step .n{position:absolute;top:-17px;left:16px;width:34px;height:34px;border-radius:50%;background:var(--surface);border:2px solid var(--line);color:var(--muted);font:700 13px var(--sans);display:flex;align-items:center;justify-content:center;transition:all .3s;z-index:1}
.flow .step.on{border-color:var(--emerald);box-shadow:0 6px 18px rgba(16,185,129,.16)}
.flow .step.on .n{background:var(--action);border-color:var(--action);color:var(--on-action);box-shadow:0 0 0 6px rgba(16,185,129,.18)}
.flow .step.done .n{border-color:var(--emerald);color:var(--emerald-dark)}
.flow .step h4,.flow .step h3.sth{font-family:var(--sans);font-size:15px;margin:0 0 10px;text-align:left}
.flow .step .io{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;font-size:12px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.flow .step .io dt{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:700;padding-top:1px}
.flow .step .io dd{margin:0;color:var(--blue);font-weight:600}
.flow .step p{font-size:13px;color:var(--muted);margin:0 0 auto;text-align:left}
.flow .step .rule{font-size:12px;color:var(--ink);margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.flow .step .rule b{color:var(--emerald-dark);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:2px}
.flow .legend{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:18px;font-size:13px;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.flow .token{transition:none}}
@media (max-width:1079px){
  .flow{padding-top:20px}
  .flow .track,.flow .token{display:none}
  .flow .steps{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:767px){.flow .steps{grid-template-columns:1fr}.flow .step{padding:16px 16px 16px 64px}.flow .step .n{top:16px;left:16px}}

/* ---------- v3: markets / category labels ---------- */
.markets{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.mk{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 16px 14px;position:relative;overflow:hidden;transition:border-color .2s,transform .2s}
.mk:hover{border-color:var(--blue)}
.mk .ico{width:38px;height:38px;border-radius:9px;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.mk h3{font-family:var(--sans);font-size:15px;margin:0 0 4px;line-height:1.25}
.mk p{font-size:12.5px;color:var(--muted);margin:0 0 10px;min-height:34px}
.mk .regs{display:flex;flex-wrap:wrap;gap:4px}
.mk .regs span{font-family:var(--mono);font-size:10.5px;background:var(--flag-bg);color:var(--ink);border-radius:4px;padding:2px 6px}
.mk.channel{border-style:dashed}
.mk.channel .ico{background:var(--ok-bg);color:var(--ok)}
.labelwall{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:22px}
.labelwall span{font-size:13px;font-weight:600;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:7px 14px;color:var(--ink)}
.labelwall span b{color:var(--emerald-dark);font-weight:700;margin-right:4px}
@media (max-width:1079px){.markets{grid-template-columns:repeat(3,1fr)}}
@media (max-width:767px){.markets{grid-template-columns:1fr 1fr}}

/* ---------- v3: Annex XVII feature ---------- */
.a17{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:start}
.a17 .entries{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.a17 .entries .hd{background:var(--surface-2);color:var(--ink);border-bottom:1px solid var(--line);padding:12px 16px;font-size:13px;font-weight:600;display:flex;justify-content:space-between}
.a17 .entries .hd small{opacity:.8;font-weight:400}
.a17 .row{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid var(--line);font-size:13.5px}
.a17 .row .e{font-family:var(--mono);color:var(--blue);font-weight:600;font-size:12.5px}
.a17 .row .lim{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}
.a17 .row small{display:block;color:var(--muted);font-size:12px}
@media (max-width:1079px){.a17{grid-template-columns:1fr}}

/* ---------- logo wall (hidden until real logos exist) ---------- */
.logowall{margin-top:18px;border:1px solid var(--line);border-radius:var(--r);padding:18px;background:var(--surface)}
.logowall .logos{display:flex;flex-wrap:wrap;gap:18px 32px;justify-content:center;align-items:center}
.logowall img{height:28px;width:auto;opacity:.85}

/* ===== v12 additions ===== */
/* accessibility */
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--surface);color:var(--ink);padding:10px 14px;border:2px solid var(--action);border-radius:6px;font-weight:600}
.skip:focus{top:10px;text-decoration:none}
main p a:not(.btn), main li a:not(.btn), main td a:not(.btn), .note a, .prose a{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
main p a:not(.btn):hover, main li a:not(.btn):hover{text-decoration-thickness:2px}
h1{font-size:clamp(32px,4.2vw,44px)} h2{font-size:clamp(25px,3vw,32px)}
/* utility bar v12 */
.utility .uc{display:inline-flex;align-items:center;gap:6px}
.utility .uc svg{width:14px;height:14px;fill:none;stroke:#34d399;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.utility .umeta{color:#9fc3e6}
.actions .login{font-size:14px}
/* footer headings (were h5) */
footer .fh{color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px;font-weight:700;font-family:var(--sans)}
footer .fcontact{font-size:14px;margin-top:10px}
footer .fcontact a{display:inline;margin:0}
/* faq */
.faq{max-width:820px;margin:0 auto}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px}
.faq summary{cursor:pointer;list-style:none;padding:16px 48px 16px 20px;font-weight:600;position:relative;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:20px;top:50%;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg);transition:transform .15s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details>div{padding:0 20px 16px;color:var(--muted)}
.faq details>div p:last-child{margin:0}
/* three-step */
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s}
.steps3 .s{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.steps3 .s .n{width:32px;height:32px;border-radius:50%;border:2px solid var(--action);color:var(--emerald-dark);display:grid;place-items:center;font-weight:700;margin-bottom:12px}
.steps3 .s h3{font-size:19px}
.steps3 .s p{color:var(--muted);margin:0}
/* service catalogue */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.svc-grid a{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;color:var(--ink);min-height:132px;transition:border-color .15s,box-shadow .15s}
.svc-grid a:hover{text-decoration:none;border-color:var(--blue-2);box-shadow:0 8px 20px rgba(11,74,130,.08)}
.svc-grid .ic{width:40px;height:40px;border-radius:8px;background:var(--blue-soft);display:grid;place-items:center}
.svc-grid .ic svg{width:22px;height:22px;fill:none;stroke:var(--blue);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.svc-grid b{font-size:15px;line-height:1.3}
.svc-grid span{font-size:13px;color:var(--muted);line-height:1.45}
.svc-grid a.free{border-color:var(--action)}
.svc-grid a.free .ic{background:var(--ok-bg)} .svc-grid a.free .ic svg{stroke:var(--emerald-dark)}
@media (max-width:1079px){.svc-grid{grid-template-columns:repeat(2,1fr)}.steps3{grid-template-columns:1fr}}
@media (max-width:480px){.svc-grid{grid-template-columns:1fr}}
/* legal pages: placeholder marker */
.ph{background:var(--amber-bg);color:var(--amber);padding:0 4px;border-radius:3px}

@media (max-width:420px){.utility .r{gap:12px;font-size:12px}}

.srow>*,.gridhead>*{min-width:0}.srow input{width:100%;min-width:0}@media (max-width:400px){.path{padding:18px}.gridhead{letter-spacing:.03em;font-size:10.5px}}
.path{min-width:0}@media (max-width:767px){.paths{grid-template-columns:minmax(0,1fr)}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:14px/1.5 var(--sans);background:var(--surface);color:var(--ink);resize:vertical;min-height:96px}.field textarea:focus-visible{border-color:var(--action);outline:none;box-shadow:0 0 0 3px rgba(4,120,87,.18)}

/* =====================================================================
   v13 LAYOUT SYSTEM
   One container, one spacing scale, one type scale. Components below
   use only these tokens. Later rules here intentionally supersede the
   older per-section values above.
   ===================================================================== */
:root{
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px;
  --wrap:1200px; --gutter:clamp(16px,4vw,40px);
  --section-y:clamp(56px,6.5vw,96px);
  --fs-eyebrow:.75rem; --fs-h1:clamp(2.25rem,1.55rem + 2.3vw,3.25rem); --fs-h2:clamp(1.625rem,1.3rem + 1.2vw,2.25rem);
  --fs-h3:1.1875rem; --fs-lead:clamp(1.0625rem,1rem + .2vw,1.1875rem); --fs-small:.875rem; --fs-caption:.8125rem;
  --measure:60ch; --r-sm:6px; --r-lg:14px;
  --ease:cubic-bezier(.2,.7,.2,1); --dur:.16s;
  --elev-1:0 1px 2px rgba(15,32,51,.06);
  --elev-2:0 1px 2px rgba(15,32,51,.06),0 12px 32px rgba(11,74,130,.10);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--elev-2:0 1px 2px rgba(0,0,0,.3),0 16px 40px rgba(0,0,0,.35)}}
:root[data-theme="dark"]{--elev-2:0 1px 2px rgba(0,0,0,.3),0 16px 40px rgba(0,0,0,.35)}

/* container: every section aligns to the same left and right edge */
.wrap{max-width:calc(var(--wrap) + 2 * var(--gutter));padding-left:var(--gutter);padding-right:var(--gutter)}

/* type scale */
h1,.hero h1{font-size:var(--fs-h1);line-height:1.08;letter-spacing:-.018em}
h2{font-size:var(--fs-h2);line-height:1.16;letter-spacing:-.012em}
h3{font-size:var(--fs-h3);line-height:1.3}
p,li,dd{text-wrap:pretty}
.nowrap{white-space:nowrap}
.kicker{font-size:var(--fs-eyebrow);line-height:1.4;letter-spacing:.12em;margin-bottom:var(--s-3)}
.lead{font-size:var(--fs-lead);line-height:1.6;max-width:var(--measure)}

/* section rhythm */
section.sec{padding:var(--section-y) 0}
.center,.sec-head{max-width:760px;margin:0 auto var(--s-7);text-align:center}
.center h2,.sec-head h2{margin-bottom:var(--s-4)}
.center .lead,.sec-head .lead{margin:0 auto}
.sec-cta{margin:var(--s-6) 0 0;text-align:center}
.pagehero{padding:clamp(40px,5vw,72px) 0 clamp(32px,4vw,56px)}
.pagehero .lead{margin-top:var(--s-3)}
.cta-band{padding:var(--section-y) 0}
.cta-band p{margin-bottom:var(--s-5)}

/* focus and motion: one visible ring everywhere */
:focus-visible{outline:2px solid var(--action);outline-offset:2px;box-shadow:none}
.btn{transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.btn:active{transform:translateY(1px)}
.btn-primary:hover{box-shadow:var(--elev-1)}

/* navigation */
.utility .wrap{height:36px}
.navrow{height:72px;gap:var(--s-5)}
.logo{line-height:1}
.logo svg{display:block;flex:none}
.menu a{transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.menu a:hover{border-bottom-color:var(--line)}
.menu a.active:hover{border-bottom-color:var(--blue)}
.menu .menu-extra{display:none}
.actions .login{transition:color var(--dur) var(--ease)}
.actions .login:hover{color:var(--blue);text-decoration:none}
/* compact navigation below 1100px: burger menu, CTA stays visible */
@media (max-width:1099px){
  nav.menu{display:none;position:absolute;left:0;right:0;top:100%;margin:0;flex-direction:column;height:auto;
    padding:var(--s-2) var(--gutter) var(--s-4);background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--elev-2)}
  nav.menu.open{display:flex}
  nav.menu a{min-height:48px;display:flex;align-items:center;padding:0 var(--s-2);font-size:16px;margin:0;border-bottom:1px solid var(--line)}
  nav.menu a.active{border-bottom-color:var(--line);box-shadow:inset 3px 0 0 var(--blue)}
  nav.menu a:last-child{border-bottom:0}
  nav.menu .menu-extra{display:flex;color:var(--blue)}
  .burger{display:inline-flex;align-items:center;justify-content:center;margin-left:var(--s-2)}
  .navrow .actions{margin-left:auto}
  .navrow .actions .login{display:none}
  .navrow .actions .btn{width:auto}
}
@media (max-width:767px){.navrow{height:64px}}

/* inputs */
.searchbox{transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.searchbox:focus-within{box-shadow:0 0 0 3px rgba(4,120,87,.22)}
.searchbox input:focus-visible{outline:none;box-shadow:none}
.field input,.field select,.field textarea{transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--action);box-shadow:0 0 0 3px rgba(4,120,87,.18)}

/* status badge (one component for hero, workspace, tables) */
.chip{min-height:26px;padding:4px 10px;font-size:12px;line-height:1.2;border-radius:var(--r-sm);gap:6px;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.chip .dot{width:7px;height:7px}

/* ---------- hero ---------- */
.hero{padding:clamp(40px,5vw,72px) 0}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,80px);align-items:center}
.hero-copy{max-width:38rem}
.hero h1{max-width:19ch;margin:0 0 var(--s-5);text-wrap:balance}
.hero .lead{margin:0 0 var(--s-6)}
.hero .searchbox{max-width:none}
.hero .or{margin:var(--s-3) 0 0;font-size:var(--fs-small)}
.hero .micro{margin:var(--s-5) 0 0;font-size:var(--fs-small);line-height:1.55}
.report-wrap{margin:0;justify-self:end;width:100%;max-width:33rem}
.report-wrap figcaption{margin-top:var(--s-3);font-size:var(--fs-caption);color:var(--muted)}
@media (max-width:979px){
  .hero-grid{grid-template-columns:minmax(0,1fr)}
  .hero-copy{max-width:40rem}
  .report-wrap{justify-self:start;max-width:36rem}
}

/* ---------- screening report card ---------- */
.report{border-radius:var(--r-lg);box-shadow:var(--elev-2)}
.report .rtop{padding:var(--s-4) var(--s-5);gap:var(--s-4)}
.report .rtitle{display:flex;flex-direction:column;gap:3px;min-width:0}
.report .rname{font-weight:600;font-size:15px;line-height:1.3}
.report .rmeta{font-size:12.5px;line-height:1.3;opacity:.85}
.report .rbody{padding:var(--s-3) var(--s-5) var(--s-5)}
.report .rhead,.report .rrow{display:grid;grid-template-columns:minmax(0,1fr) 4.75rem 9.5rem;column-gap:var(--s-4);align-items:center}
.report .rhead{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:var(--s-2) 0;border-bottom:1px solid var(--line)}
.report .rhead span:nth-child(2),.report .rrow .conc{text-align:right}
.report .rrow{padding:var(--s-3) 0;font-size:14px;border-bottom:1px solid var(--line)}
.report .rrow .sub{display:flex;flex-direction:column;font-weight:500;min-width:0}
.report .rrow .cas{margin-top:2px;font-size:12px}
.report .rrow .conc{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.report .rrow .chip{justify-self:stretch;justify-content:flex-start}
.report .rhits{display:grid;gap:var(--s-2);margin-top:var(--s-4)}
.report .barrow{display:grid;grid-template-columns:7.5rem minmax(0,1fr) 1.25rem;gap:var(--s-3);align-items:center;margin:0;font-size:13px}
.report .barrow .bl{width:auto}
.report .barrow .bt{height:8px}
.report .barrow b{width:auto}
.bf.amber{background:var(--amber)} .bf.green{background:var(--ok)} .bf.red{background:var(--red)}
.report .rfoot{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line);gap:var(--s-2)}
.report .rfoot span{font-size:12px;border-radius:var(--r-sm);padding:4px 10px}
@media (max-width:479px){
  .report .rtop{padding:var(--s-3) var(--s-4)}
  .report .rbody{padding:var(--s-2) var(--s-4) var(--s-4)}
  .report .rhead{display:none}
  .report .rrow{grid-template-columns:minmax(0,1fr) auto;row-gap:var(--s-2)}
  .report .rrow .chip{grid-column:1/-1;justify-self:start}
  .report .barrow{grid-template-columns:6.5rem minmax(0,1fr) 1.25rem}
}

/* ---------- workspace (studio) ---------- */
.studio{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--elev-2);overflow:hidden}
.studio-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3) var(--s-4);flex-wrap:wrap;padding:var(--s-4) var(--s-5);background:var(--surface-2);border-bottom:1px solid var(--line)}
.studio-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.studio-app{font-weight:600;font-size:15px;line-height:1.3;color:var(--ink)}
.studio-org{font-size:var(--fs-caption);line-height:1.3;color:var(--muted)}
.tagline-sample{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;line-height:1.2;color:var(--amber);background:var(--amber-bg);border-radius:var(--r-sm);padding:5px 10px}
.tagline-sample svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;flex:none}
.studio-body{display:grid;grid-template-columns:13.5rem minmax(0,1fr) 16rem}
.studio-nav{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-4) var(--s-3);background:var(--surface-2);border-right:1px solid var(--line)}
.studio-navlabel{margin:0 var(--s-2) var(--s-2);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.studio-nav button{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);width:100%;min-height:40px;padding:var(--s-2) var(--s-3);border:1px solid transparent;border-radius:var(--r-sm);background:none;color:var(--ink);font:500 14px/1.3 var(--sans);text-align:left;cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.studio-nav button:hover{background:var(--surface)}
.studio-nav button[aria-selected="true"]{background:var(--surface);border-color:var(--line);color:var(--blue);font-weight:600;box-shadow:inset 3px 0 0 var(--action)}
.studio-nav .count{flex:none;min-width:1.75rem;text-align:center;padding:1px 6px;border-radius:5px;background:var(--flag-bg);color:var(--flag);font:500 11.5px/1.5 var(--mono)}
.studio-main{min-width:0;padding:var(--s-5)}
.studio [role="tabpanel"][hidden]{display:none}
.studio [role="tabpanel"]:focus-visible{outline-offset:6px}
.panel-head{margin-bottom:var(--s-4)}
.panel-head h3{margin:0 0 var(--s-1);font-family:var(--sans);font-size:17px;line-height:1.3}
.panel-head p{margin:0;font-size:var(--fs-small);color:var(--muted)}
.panel-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-4)}
.panel-actions .btn{width:auto}
.studio-log{padding:var(--s-4);background:var(--surface-2);border-left:1px solid var(--line)}
.studio-log ol{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}
.studio-log li{padding:var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.ev-step{display:block;margin-bottom:2px;font:500 11px/1.4 var(--mono);color:var(--muted)}
.ev-title{display:block;font-size:13.5px;font-weight:600;line-height:1.35}
.ev-text{display:block;margin-top:2px;font-size:12.5px;line-height:1.45;color:var(--muted)}
.studio-foot{margin:0;padding:var(--s-3) var(--s-5);font-size:var(--fs-caption);color:var(--muted);background:var(--surface-2);border-top:1px solid var(--line)}

/* data table component (workspace and future dashboards) */
.dtable{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.dtable th{padding:var(--s-3) var(--s-4);text-align:left;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line)}
.dtable td{padding:var(--s-3) var(--s-4);vertical-align:middle;border-bottom:1px solid var(--line)}
.dtable tbody tr:last-child td{border-bottom:0}
.dtable tbody tr{transition:background-color var(--dur) var(--ease)}
.dtable tbody tr:hover{background:var(--surface-2)}
.dtable .chip{white-space:nowrap}
.cell-main{display:block;font-weight:500;line-height:1.4;color:var(--ink)}
.cell-sub{display:block;margin-top:3px;font-size:12.5px;line-height:1.4;color:var(--muted)}
.chip + .cell-sub{margin-top:6px}
.cas{font-family:var(--mono);font-size:12px;font-weight:400;color:var(--muted);white-space:nowrap}
.cell-main .cas{margin-left:6px}

@media (max-width:1179px){
  .studio-body{grid-template-columns:12.5rem minmax(0,1fr)}
  .studio-log{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}
  .studio-log ol{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:859px){
  .studio-body{grid-template-columns:minmax(0,1fr)}
  .studio-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:var(--s-3) var(--gutter);scrollbar-width:thin}
  .studio-navlabel{display:none}
  .studio-nav button{width:auto;flex:none;white-space:nowrap}
  .studio-main{padding:var(--s-5) var(--s-4)}
  .studio-log ol{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:639px){
  /* table becomes stacked cards: no sideways scrolling on phones */
  .dtable,.dtable tbody,.dtable tr,.dtable td{display:block}
  .dtable{border:0;border-radius:0;overflow:visible}
  .dtable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .dtable tbody tr{margin-bottom:var(--s-3);padding:var(--s-2) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
  .dtable tbody tr:hover{background:var(--surface)}
  .dtable td{display:grid;grid-template-columns:6.5rem minmax(0,1fr);column-gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--line)}
  .dtable tbody tr td:last-child{border-bottom:0}
  .dtable td::before{content:attr(data-label);grid-column:1;grid-row:1 / span 3;padding-top:4px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
  .dtable td > *{grid-column:2;justify-self:start}
  .cell-main .cas{display:block;margin:2px 0 0}
  .studio-bar{padding:var(--s-3) var(--s-4)}
  .studio-foot{padding:var(--s-3) var(--s-4)}
}

/* three steps: equal-height cards on one baseline */
.steps3{align-items:stretch}
.steps3 .s{display:flex;flex-direction:column;padding:var(--s-5)}
.steps3 .s .n{margin-bottom:var(--s-4)}
.steps3 .s h3{margin-bottom:var(--s-2)}

/* cards that link get a quiet hover */
a.card:hover,.svc-grid a:hover,.post:hover{border-color:var(--blue-2)}
@media (prefers-reduced-motion:reduce){.btn:active{transform:none}}

.searchbox{border-color:var(--blue)}
.searchbox button{background:var(--blue-3);transition:background-color var(--dur) var(--ease)}
.searchbox button:hover{background:#062b52}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .searchbox button{background:var(--blue-2)}}
:root[data-theme="dark"] .searchbox button{background:var(--blue-2)}

.menu a,.actions .login,.actions .btn{white-space:nowrap}
.btn:disabled{opacity:.65;cursor:default}.btn:disabled:active{transform:none}
.pagehero h1{margin-bottom:var(--s-4)}

/* =====================================================================
   v14 INTAKE SIMULATOR (homepage demo)
   Left: the input exactly as a customer submits it (declared grid or
   SDS upload). Right: the result, reusing the .report card component.
   ===================================================================== */
.sim{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--elev-2);overflow:hidden}
.sim-bar{display:grid;gap:var(--s-4);padding:var(--s-4) var(--s-5);background:var(--surface-2);border-bottom:1px solid var(--line)}
.sim-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);max-width:40rem}
.sim-path{display:flex;align-items:center;gap:var(--s-3);min-height:56px;padding:var(--s-3) var(--s-4);text-align:left;cursor:pointer;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);font-family:var(--sans);
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.sim-path svg{width:24px;height:24px;flex:none;fill:none;stroke:var(--muted);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sim-path span{display:flex;flex-direction:column;gap:2px;min-width:0}
.sim-path b{font-size:14.5px;font-weight:600;line-height:1.25}
.sim-path small{font-size:12.5px;color:var(--muted);line-height:1.3}
.sim-path:hover{border-color:var(--blue-2)}
.sim-path[aria-selected="true"]{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}
.sim-path[aria-selected="true"] svg{stroke:var(--emerald-dark)}
.sim-cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s-3)}
.sim-cases[data-n="3"]{grid-template-columns:minmax(0,1fr) minmax(0,1.75fr) minmax(0,1fr)}
.sim-cases[data-n="2"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.sim-group{display:flex;flex-direction:column;gap:var(--s-2);min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px 16px}
.sim-ghead{display:flex;align-items:center;gap:8px}
.sim-gnum{width:20px;height:20px;border-radius:50%;background:var(--blue-soft);color:var(--blue);font:700 11px/20px var(--sans);text-align:center;flex:none}
.sim-glabel{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.sim-gdesc{margin:0 0 4px;font-size:13px;color:var(--muted);line-height:1.4}
.sim-key{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.sim-key span{display:inline-flex;align-items:center;gap:6px}
.sim-key .sim-dot{display:inline-block}
@media (max-width:900px){.sim-cases[data-n="3"],.sim-cases[data-n="2"]{grid-template-columns:1fr}}
.sim-chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.sim-case{display:inline-flex;align-items:center;gap:var(--s-2);min-height:36px;padding:var(--s-1) var(--s-3);cursor:pointer;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font:500 13.5px/1.2 var(--sans);
  transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.sim-case:hover{border-color:var(--blue-2)}
.sim-case[aria-pressed="true"]{background:var(--blue-soft);border-color:var(--blue);color:var(--blue);font-weight:600}
.sim-dot{width:8px;height:8px;border-radius:50%;flex:none}
.sim-dot.red{background:var(--red)}.sim-dot.amber{background:var(--amber)}.sim-dot.green{background:var(--ok)}.sim-dot.flag{background:var(--flag)}
.sim-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.sim-in{padding:var(--s-5);border-right:1px solid var(--line);min-width:0;display:flex;flex-direction:column}
.sim-out{padding:var(--s-5);background:var(--surface-2);min-width:0;display:flex;flex-direction:column;gap:var(--s-4)}
.sim-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4)}
.sim-eyebrow{margin:0 0 2px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--emerald-dark)}
.sim-head h3{margin:0;font-family:var(--sans);font-size:17px;line-height:1.3}
.sim-tag{flex:none;font-size:12px;font-weight:600;color:var(--amber);background:var(--amber-bg);border-radius:var(--r-sm);padding:4px 10px}
/* declared grid: mirrors the Free check form */
.sim-grid{display:grid;gap:var(--s-2)}
.sim-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s-2);align-items:start}
.sim-row-h{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:0 2px}
.sim-cell{display:flex;flex-direction:column;gap:4px;min-width:0}
.sim-field{display:flex;align-items:center;min-height:40px;padding:0 var(--s-3);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-sm);font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sim-field.mono{font-family:var(--mono);font-size:13px}
.sim-field.is-empty{border-style:dashed;color:var(--muted);font-family:var(--sans);font-style:italic}
.sim-hint{font-size:12px;line-height:1.35;font-weight:600;padding:0 2px}
.sim-hint.amber{color:var(--amber)} .sim-hint.red{color:var(--red)} .sim-hint.blue{color:var(--blue)}
.sim-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line)}
.sim-fake-btn{font-size:13.5px;font-weight:600;color:var(--blue)}
.sim-meta{font-size:var(--fs-caption);color:var(--muted)}
/* SDS route */
.sim-file{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface);border:1px dashed var(--line);border-radius:var(--r)}
.sim-pdf{flex:none;display:grid;place-items:center;width:40px;height:48px;border-radius:4px;background:var(--red-bg);color:var(--red);font:700 11px var(--sans);letter-spacing:.04em}
.sim-fname{display:flex;flex-direction:column;gap:2px;min-width:0}
.sim-fname b{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.sim-fname small{font-size:12.5px;color:var(--muted)}
.sim-up{margin-left:auto;flex:none;font-size:12px;font-weight:600;color:var(--ok);background:var(--ok-bg);border-radius:var(--r-sm);padding:4px 10px}
.sim-sub{margin:var(--s-4) 0 var(--s-2);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sim-doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:var(--s-3)}
.sim-doc-h{padding:var(--s-2) var(--s-3);font-size:12.5px;font-weight:600;color:var(--ink);background:var(--surface-2);border-bottom:1px solid var(--line)}
.sim-doc-t{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
.sim-doc-t th:nth-child(1){width:38%}.sim-doc-t th:nth-child(2),.sim-doc-t th:nth-child(3){width:22%}
.sim-doc-t th{padding:var(--s-2) var(--s-3);text-align:left;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.sim-doc-t td{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--line);vertical-align:top}
.sim-doc-t tr:last-child td{border-bottom:0}
.sim-doc-t td.mono{font-family:var(--mono);font-size:12px;white-space:nowrap}
.sim-doc-t td.na{color:var(--muted);font-style:italic}
.sim-doc-t tbody tr:not(.more){box-shadow:inset 3px 0 0 var(--action)}
.sim-doc-t tr.more td{color:var(--muted);font-style:italic;font-size:12.5px}
.sim-doc.is-scan{padding-bottom:var(--s-3)}
.sim-scan{height:96px;margin:var(--s-3);border-radius:4px;background:repeating-linear-gradient(0deg,var(--flag-bg) 0 6px,transparent 6px 14px);opacity:.7}
.sim-doc.is-scan .sim-hint{padding:0 var(--s-3)}
/* result */
.sim-report{box-shadow:var(--elev-1)}
.sim-vlabel{margin:var(--s-1) 0 var(--s-3);font-weight:600;font-size:15px;color:var(--ink)}
.sim-steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}
.sim-step{display:flex;align-items:flex-start;gap:var(--s-2);font-size:13.5px;line-height:1.4}
.sim-ic{flex:none;width:18px;height:18px;margin-top:1px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;line-height:1}
.sim-step.is-done .sim-ic{background:var(--ok-bg);color:var(--ok)} .sim-step.is-done .sim-ic::before{content:"\2713"}
.sim-step.is-flag .sim-ic{background:var(--amber-bg);color:var(--amber)} .sim-step.is-flag .sim-ic::before{content:"!"}
.sim-step.is-stop .sim-ic{background:var(--flag-bg);color:var(--flag)} .sim-step.is-stop .sim-ic::before{content:"\2013"}
.sim-block .sim-sub{margin-top:var(--s-4)}
.sim-how{margin:0;padding-left:18px;font-size:13.5px;line-height:1.5;color:var(--ink)}
.sim-how li+li{margin-top:var(--s-1)}
.sim-why{margin-top:var(--s-4);padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r)}
.sim-why .sim-sub{margin:0 0 var(--s-1)}
.sim-why p:last-child{margin:0;font-size:14px;line-height:1.5}
.sim-nav{display:flex;justify-content:flex-end;gap:var(--s-2);margin-top:auto}
.sim-nav .btn{width:auto}
.sim-note{max-width:var(--measure);margin:var(--s-4) auto 0;text-align:center;font-size:var(--fs-caption);color:var(--muted)}
/* run-in: rows and steps appear in order, fast; off for reduced motion */
@keyframes simIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.sim.is-run .sim-row:not(.sim-row-h),.sim.is-run .sim-doc-t tbody tr,.sim.is-run .sim-step{animation:simIn .22s var(--ease) both;animation-delay:calc(var(--d,0) * 70ms)}
.sim.is-run .sim-step{animation-delay:calc(160ms + var(--d,0) * 110ms)}
@media (prefers-reduced-motion:reduce){.sim.is-run .sim-row,.sim.is-run .sim-doc-t tbody tr,.sim.is-run .sim-step{animation:none}}
/* responsive */
@media (max-width:979px){
  .sim-body{grid-template-columns:minmax(0,1fr)}
  .sim-in{border-right:0;border-bottom:1px solid var(--line)}
}
@media (max-width:639px){
  .sim-bar,.sim-in,.sim-out{padding:var(--s-4)}
  .sim-paths{grid-template-columns:minmax(0,1fr)}
  .sim-row-h{display:none}
  .sim-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:var(--s-3);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r)}
  .sim-row .sim-cell:first-child{grid-column:1/-1}
  .sim-cell::before{content:attr(data-label);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
  .sim-doc{overflow-x:auto}
  .sim-doc-t{min-width:440px}
  .sim-nav{justify-content:space-between}
}

.sim-try{margin-top:var(--s-5)}
.sim-try-box{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3) var(--s-4);flex-wrap:wrap;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.sim-try-box p{margin:0;font-size:var(--fs-small);color:var(--muted);max-width:34ch}
.sim-try-box p b{display:block;color:var(--ink);font-size:14.5px;margin-bottom:2px}
.sim-try-box .btn{width:auto}
.sim-doc-t td{overflow-wrap:anywhere}


/* =====================================================================
   v15 LIGHT THEME + MOTION
   Plain white and soft grey surfaces (no navy bands), illustrated hero
   slider, illustrated category and service tiles, gentle scroll reveal.
   Every movement stops for visitors who prefer reduced motion.
   ===================================================================== */
:root{--tile:#e9edf1;--hero-bg:#eef1f5}
html{color-scheme:light}
body{background:var(--surface)}

/* utility bar and footer: light, quiet */
.utility{background:var(--bg);color:var(--muted);border-bottom:1px solid var(--line)}
.utility a{color:var(--ink)} .utility a:hover{color:var(--blue)}
.utility .umeta{color:var(--muted)}
.utility .uc svg{stroke:var(--emerald-dark)}
header.main{background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px)}
footer{background:var(--bg);color:var(--muted);border-top:1px solid var(--line)}
footer .fh{color:var(--ink)}
footer a{color:var(--muted)} footer a:hover{color:var(--blue)}
footer .flogo{color:var(--ink)}
footer .fbot{border-top-color:var(--line);color:var(--muted)}

/* report card header: light instead of navy */
.report .rtop{background:var(--surface-2);color:var(--ink);border-bottom:1px solid var(--line)}
.report .rmeta{color:var(--muted);opacity:1}

/* calmer section bands */
section.sec.alt{background:var(--bg)}
.cta-band{background:var(--hero-bg);position:relative;overflow:hidden}
.strip{background:var(--surface)}

/* ---------- hero slider ---------- */
.hero-slider{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--hero-bg) 0%,#f6f8fa 100%);border-bottom:1px solid var(--line);isolation:isolate}
.hs-net{position:absolute;inset:0;width:100%;height:100%;color:#b9c4cf;opacity:.55;z-index:-1;animation:hsDrift 38s ease-in-out infinite alternate}
@keyframes hsDrift{from{transform:translate3d(-1.5%,0,0) scale(1.02)}to{transform:translate3d(1.5%,-2%,0) scale(1.05)}}
.hs-track{display:grid}
.hs-slide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .7s var(--ease),visibility 0s linear .7s}
.hs-slide.is-active{opacity:1;visibility:visible;transition:opacity .7s var(--ease),visibility 0s}
.hs-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:clamp(24px,4vw,64px);align-items:center;min-height:clamp(520px,44vw,600px);padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(72px,7vw,96px)}
.hs-copy{max-width:36rem;position:relative;z-index:1}
.hs-copy .kicker{margin-bottom:var(--s-4)}
.hs-copy h1,.hs-title{font-size:var(--fs-h1);line-height:1.08;letter-spacing:-.018em;margin:0 0 var(--s-5);max-width:19ch;text-wrap:balance}
.hs-copy .lead{margin:0 0 var(--s-6)}
.hs-ctas{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.hs-ctas .btn{width:auto}
.hs-visual{position:relative;justify-self:end;width:100%;max-width:640px}
.hs-visual img{display:block;width:100%;height:auto}
/* copy and visual travel in a little when a slide becomes active */
.hs-slide .hs-copy>*{transform:translateY(14px);opacity:0;transition:transform .7s var(--ease),opacity .7s var(--ease)}
.hs-slide.is-active .hs-copy>*{transform:none;opacity:1}
.hs-slide.is-active .hs-copy>*:nth-child(2){transition-delay:.06s}
.hs-slide.is-active .hs-copy>*:nth-child(3){transition-delay:.12s}
.hs-slide.is-active .hs-copy>*:nth-child(n+4){transition-delay:.18s}
.hs-slide .hs-visual img{transform:translateX(28px) scale(.98);opacity:0;transition:transform 1s var(--ease),opacity .9s var(--ease)}
.hs-slide.is-active .hs-visual img{transform:none;opacity:1;animation:hsFloat 9s ease-in-out 1s infinite alternate}
@keyframes hsFloat{from{transform:translateY(0)}to{transform:translateY(-8px)}}
.hs-controls{position:absolute;left:0;right:0;bottom:clamp(20px,3vw,32px);display:flex;align-items:center;gap:var(--s-3);pointer-events:none}
.hs-controls>*{pointer-events:auto}
.hs-dots{display:flex;gap:var(--s-2);flex-wrap:wrap}
.hs-dot{position:relative;display:inline-flex;align-items:center;min-height:36px;padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);background:rgba(255,255,255,.85);color:var(--muted);font:600 12.5px var(--sans);cursor:pointer;overflow:hidden;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.hs-dot:hover{color:var(--ink);border-color:var(--blue-2)}
.hs-dot[aria-current="true"]{color:var(--blue);border-color:var(--blue)}
.hs-dot::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--action)}
.hero-slider.hs-run .hs-dot[aria-current="true"]::after{animation:hsProgress var(--hs-time,7s) linear forwards}
.hero-slider.is-paused .hs-dot::after{animation-play-state:paused}
@keyframes hsProgress{to{width:100%}}
.hs-pause{display:inline-grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:var(--r-sm);background:rgba(255,255,255,.85);color:var(--ink);cursor:pointer}
.hs-pause svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hs-pause .i-play{display:none;fill:currentColor;stroke:none}
.hs-pause[aria-pressed="true"] .i-play{display:block} .hs-pause[aria-pressed="true"] .i-pause{display:none}
.hs-pause:hover{border-color:var(--blue-2)}
@media (max-width:979px){
  .hs-grid{grid-template-columns:minmax(0,1fr);min-height:0;gap:var(--s-5);padding-bottom:96px}
  .hs-visual{justify-self:start;max-width:440px;order:-1}
  .hs-copy{max-width:40rem}
}
@media (max-width:639px){
  .hs-visual{max-width:300px}
  .hs-dots{gap:6px;flex-wrap:nowrap}
  .hs-dot{width:44px;min-height:32px;padding:0;justify-content:center}
  .hs-dot span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .hs-dot::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
}

/* ---------- output section: report card beside the three cards ---------- */
.out-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.out-figure{justify-self:start;max-width:34rem}
.out-cards{display:grid;gap:var(--s-4)}
.out-cards .card{padding:var(--s-5)}
@media (max-width:979px){.out-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- illustrated tiles (categories and services) ---------- */
.mk{padding:0 0 var(--s-4);border-radius:var(--r-lg);transition:border-color var(--dur) var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
.mk-img{display:block;width:100%;height:auto;aspect-ratio:400/260;margin:0 0 var(--s-3);border-bottom:1px solid var(--line);background:var(--tile)}
.mk h3,.mk p,.mk .regs{margin-left:var(--s-4);margin-right:var(--s-4)}
.mk:hover{border-color:var(--blue-2);box-shadow:var(--elev-2);transform:translateY(-3px)}
.mk-img{transition:transform .5s var(--ease)}
.mk{overflow:hidden}
.mk:hover .mk-img{transform:scale(1.03)}
.svc-grid a{padding:0 0 var(--s-4);gap:var(--s-2);overflow:hidden}
.svc-grid a .svc-img{display:block;width:100%;height:auto;aspect-ratio:400/260;margin-bottom:var(--s-2);background:var(--tile);border-bottom:1px solid var(--line);transition:transform .5s var(--ease)}
.svc-grid a b,.svc-grid a>span:not(.ic){margin:0 var(--s-4)}
.svc-grid a:hover{box-shadow:var(--elev-2);transform:translateY(-3px)}
.svc-grid a:hover .svc-img{transform:scale(1.03)}
.svc-grid a{transition:border-color var(--dur) var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}

/* ---------- inner page heroes with an illustration ---------- */
.pagehero{background:linear-gradient(180deg,var(--hero-bg),#f6f8fa);position:relative;overflow:hidden;isolation:isolate}
.pagehero.has-art .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(24px,4vw,56px);align-items:center}
.ph-art{display:block;width:100%;max-width:420px;height:auto;justify-self:end;animation:hsFloat 9s ease-in-out infinite alternate}
@media (max-width:859px){.pagehero.has-art .wrap{grid-template-columns:minmax(0,1fr)}.ph-art{display:none}}

/* ---------- scroll reveal (added by script only, so content never hides without JS) ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--rv-i,0) * 70ms)}
.rv.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .hs-net,.hs-slide.is-active .hs-visual img,.ph-art{animation:none}
  .hs-slide,.hs-slide .hs-copy>*,.hs-slide .hs-visual img{transition:none}
  .hs-dot::after{display:none}
  .rv{opacity:1;transform:none;transition:none}
  .mk:hover,.svc-grid a:hover{transform:none}
  .mk:hover .mk-img,.svc-grid a:hover .svc-img{transform:none}
}

/* phones: one clear hero (the free check), no carousel */
@media (max-width:639px){
  .hs-slide:not(:first-child),.hs-controls{display:none}
  .hs-slide:first-child{opacity:1;visibility:visible}
  .hs-slide:first-child .hs-copy>*,.hs-slide:first-child .hs-visual img{opacity:1;transform:none}
  .hs-grid{padding-bottom:var(--s-7)}
}
.cta-band{isolation:isolate}.cta-band .hs-net{opacity:.45}
.hs-copy .or{margin:var(--s-3) 0 0;font-size:var(--fs-small);color:var(--muted)}
.hs-copy .micro{margin:var(--s-5) 0 0;font-size:var(--fs-small);line-height:1.55;color:var(--muted)}
.hs-copy .micro b{color:var(--ink)}
.hs-copy .searchbox{max-width:none}
.utility .r a{white-space:nowrap}
@media (max-width:1023px){.utility .umeta{display:none}}

/* v16: one clean sans family for headings and text (no curled serif terminals) */
h1,h2,h3,h4,.hs-title{font-family:var(--sans);font-weight:700;letter-spacing:-.02em}
h3,h4{font-weight:600;letter-spacing:-.01em}
.hs-copy h1,.hs-title,.hero h1,h1{line-height:1.1}
.logo{font-family:var(--sans);font-weight:700;letter-spacing:-.02em}


/* =====================================================================
   v17 PLATFORM PAGE + homepage "See it in action" cards
   ===================================================================== */
/* checkbox group on forms: tidy selectable tiles (fixes stretched inputs) */
.field input[type="checkbox"],.field input[type="radio"]{width:18px;height:18px;min-height:0;margin:0;padding:0;flex:none;accent-color:var(--action)}
fieldset.field .grid2 label{display:flex;align-items:center;gap:var(--s-3);margin:0;padding:10px var(--s-3);font-size:14px;font-weight:500;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}
fieldset.field .grid2 label:hover{border-color:var(--blue-2)}
fieldset.field .grid2 label:has(input:checked){border-color:var(--action);background:var(--ok-bg)}
fieldset.field .grid2{gap:var(--s-2)!important}

/* homepage tour cards */
.tour-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5)}
.tour-card{display:flex;flex-direction:column;gap:var(--s-2);padding:0 0 var(--s-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;color:var(--ink);transition:border-color var(--dur) var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
.tour-card img{display:block;width:100%;height:auto;aspect-ratio:400/260;background:var(--tile);border-bottom:1px solid var(--line);margin-bottom:var(--s-3);transition:transform .5s var(--ease)}
.tour-card>span,.tour-card>b{margin:0 var(--s-5)}
.tour-k{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--emerald-dark)}
.tour-card b{font-size:19px;line-height:1.3}
.tour-card>span:not(.tour-k):not(.tour-go){color:var(--muted);font-size:15px;line-height:1.55}
.tour-go{margin-top:auto!important;padding-top:var(--s-2);font-weight:600;color:var(--blue)}
.tour-card:hover{text-decoration:none;border-color:var(--blue-2);box-shadow:var(--elev-2);transform:translateY(-3px)}
.tour-card:hover img{transform:scale(1.03)}
@media (max-width:979px){.tour-cards{grid-template-columns:minmax(0,1fr)}.tour-card{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:var(--s-4);padding:0}
  .tour-card img{grid-row:1/span 4;height:100%;margin:0;border-bottom:0;border-right:1px solid var(--line);aspect-ratio:auto;object-fit:cover}
  .tour-card>span,.tour-card>b{margin:0 var(--s-4) 0 0}.tour-k{margin-top:var(--s-4)!important}.tour-go{padding-bottom:var(--s-4)}}
@media (max-width:559px){.tour-card{display:flex}.tour-card img{height:auto;aspect-ratio:400/260;border-right:0;border-bottom:1px solid var(--line);margin-bottom:var(--s-3)}.tour-card>span,.tour-card>b{margin:0 var(--s-4)}.tour-k{margin-top:0!important}}

/* platform hero with view picker */
.plat-hero{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,var(--hero-bg),#f3f6f9);padding:clamp(40px,5vw,72px) 0 var(--s-6)}
.plat-head{max-width:46rem}
.plat-head h1{margin:0 0 var(--s-4)}
.plat-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);margin-top:var(--s-6)}
.plat-tab{display:grid;grid-template-columns:112px minmax(0,1fr);gap:var(--s-4);align-items:center;padding:var(--s-3);text-align:left;cursor:pointer;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--elev-1);font-family:var(--sans);transition:border-color var(--dur) var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
.plat-tab img{width:112px;height:auto;aspect-ratio:400/260;border-radius:8px;background:var(--tile)}
.plat-tab-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.plat-n{font:600 11.5px var(--mono);color:var(--muted)}
.plat-tab b{font-size:16px;line-height:1.3}
.plat-tab small{font-size:13px;line-height:1.45;color:var(--muted)}
.plat-tab:hover{border-color:var(--blue-2);transform:translateY(-2px)}
.plat-tab[aria-selected="true"]{border-color:var(--action);box-shadow:0 0 0 1px var(--action),var(--elev-2)}
.plat-tab[aria-selected="true"] .plat-n{color:var(--emerald-dark)}
/* the stage: the striking part. Layered soft colour, dot grid and a framed window */
.plat-stage{position:relative;overflow:hidden;isolation:isolate;padding:var(--s-5) 0 var(--s-8);background:#f3f6f9}
.stage-bg{position:absolute;inset:0;z-index:-1;
  background-image:radial-gradient(circle at 1px 1px,rgba(15,32,51,.10) 1px,transparent 0);background-size:22px 22px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 70%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 70%,transparent 100%)}
.glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:glowDrift 22s ease-in-out infinite alternate}
.glow.g1{width:520px;height:520px;left:-120px;top:40px;background:radial-gradient(circle,rgba(16,185,129,.30),transparent 70%)}
.glow.g2{width:640px;height:640px;right:-160px;top:220px;background:radial-gradient(circle,rgba(26,109,176,.26),transparent 70%);animation-delay:-8s}
@keyframes glowDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(60px,-40px,0)}}
.win{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 4px rgba(15,32,51,.05),0 24px 60px rgba(11,74,130,.14);overflow:hidden}
.win-bar{display:flex;align-items:center;gap:var(--s-3);padding:10px var(--s-4);background:linear-gradient(180deg,#fbfcfd,#f1f4f7);border-bottom:1px solid var(--line)}
.win-dots{display:flex;gap:6px}.win-dots i{width:11px;height:11px;border-radius:50%;background:#d6dde5}
.win-dots i:nth-child(1){background:#f3a7a0}.win-dots i:nth-child(2){background:#f5d38a}.win-dots i:nth-child(3){background:#9fdcc2}
.win-title{flex:1;text-align:center;font-size:13px;font-weight:600;color:var(--muted)}
.win-tag{font-size:12px;font-weight:600;color:var(--amber);background:var(--amber-bg);border-radius:var(--r-sm);padding:3px 9px}
.win .sim,.win .studio{border:0;border-radius:0;box-shadow:none}
.plat-note{max-width:var(--measure);margin:var(--s-4) auto 0;text-align:center;font-size:var(--fs-caption);color:var(--muted)}
.plat-panel.plat-in .win{animation:platIn .45s var(--ease) both}
@keyframes platIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.next-steps .card p:last-child{margin-top:var(--s-4)}
@media (max-width:979px){
  .plat-tabs{grid-template-columns:minmax(0,1fr)}
  .plat-tab{grid-template-columns:84px minmax(0,1fr)}.plat-tab img{width:84px}
}
@media (max-width:639px){
  .win-title{display:none}
  .plat-tab small{display:none}
}
@media (prefers-reduced-motion:reduce){.glow,.plat-panel.plat-in .win{animation:none}.tour-card:hover,.plat-tab:hover{transform:none}.tour-card:hover img{transform:none}}

/* =====================================================================
   v18 PLATFORM: request an assessment band
   ===================================================================== */
.plat-ctas{margin-top:var(--s-5)}
.req-band{position:relative;overflow:hidden;isolation:isolate;padding:var(--section-y) 0;background:linear-gradient(180deg,#f6f8fa 0%,#eef2f6 100%);border-top:1px solid var(--line)}
.req-band .glow.g1{left:auto;right:-160px;top:-60px}
.req-band .glow.g2{left:-200px;right:auto;top:auto;bottom:-200px}
.req-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(24px,3.5vw,48px);align-items:start}
.req-body{padding:var(--s-5) var(--s-6) var(--s-6)}
.req-body form>.field:first-of-type{margin-top:0}
.req-body .btn[type="submit"]{width:100%;min-height:48px;margin-top:var(--s-3)}
.req-side{position:sticky;top:96px;padding:var(--s-5);background:rgba(255,255,255,.75);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r-lg)}
.req-side-k{margin:0 0 var(--s-4);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--emerald-dark)}
.req-steps{list-style:none;margin:0;padding:0;display:grid;gap:0}
.req-steps li{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:var(--s-3);padding-bottom:var(--s-5)}
.req-steps li:not(:last-child)::before{content:"";position:absolute;left:15px;top:34px;bottom:4px;width:2px;background:var(--line)}
.req-n{grid-row:1/span 2;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;color:var(--emerald-dark);background:var(--surface);border:2px solid var(--action)}
.req-steps b{font-size:15px;line-height:1.35;padding-top:5px}
.req-steps li>span:last-child{font-size:13.5px;line-height:1.5;color:var(--muted);margin-top:2px}
.req-alt{display:grid;gap:var(--s-2);padding-top:var(--s-4);border-top:1px solid var(--line)}
.req-alt a{display:flex;flex-direction:column;gap:2px;padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);transition:border-color var(--dur) var(--ease)}
.req-alt a:hover{text-decoration:none;border-color:var(--blue-2)}
.req-alt b{font-size:14px}.req-alt span{font-size:13px;color:var(--muted)}
@media (max-width:979px){.req-grid{grid-template-columns:minmax(0,1fr)}.req-side{position:static}}
@media (max-width:639px){.req-body{padding:var(--s-4)}.req-body .grid2{grid-template-columns:minmax(0,1fr)!important}}
.field>label:has(input[type="checkbox"]){display:flex;align-items:center;gap:var(--s-3);cursor:pointer}
.field input[type="file"]{padding:8px;font-size:14px;color:var(--muted)}
.field input[type="file"]::file-selector-button{margin-right:var(--s-3);padding:8px 14px;border:1px solid var(--blue);border-radius:var(--r-sm);background:var(--surface);color:var(--blue);font:600 13.5px var(--sans);cursor:pointer;transition:background-color var(--dur) var(--ease)}
.field input[type="file"]::file-selector-button:hover{background:var(--blue-soft)}

/* v19 sources layout */
/* =====================================================================
   v19 sources layout
   ===================================================================== */
.sources-grid{align-items:center}
.sources-grid .note{margin-top:var(--s-4)}
/* v20: regulatory news feed */
.newsfeed-sec{padding-bottom:24px}
.nf-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;flex-wrap:wrap}
.nf-head>div{max-width:720px}
.nf-status{font-size:13px;color:var(--muted);margin:0;font-family:var(--mono)}
.newsfeed{list-style:none;margin:0;padding:0;border-left:2px solid var(--line);display:grid;gap:18px}
.nf-item{position:relative;margin-left:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 24px}
.nf-item::before{content:"";position:absolute;left:-30px;top:26px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:3px solid var(--emerald)}
.nf-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:8px;font-size:13px;color:var(--muted)}
.nf-meta time{font-family:var(--mono)}
.nf-reg{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--emerald-dark);background:rgba(16,185,129,.1);border-radius:4px;padding:3px 8px}
.nf-item h3{font-size:18px;margin:0 0 8px;line-height:1.35}
.nf-item p{margin:0 0 10px;color:var(--muted);font-size:15px;line-height:1.6;max-width:880px}
.nf-do{color:var(--ink)!important}
.nf-src{font-size:14px;font-weight:600}
@media (max-width:640px){.nf-item{padding:16px 18px;margin-left:16px}.nf-item::before{left:-24px}}

/* v21: standards band (replaces founding partner band) */
.std-band{background:#0b2540;color:#d6e2ee;padding:88px 0;position:relative;overflow:hidden}
.std-band::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 420px at 85% 0%,rgba(16,185,129,.12),transparent 60%);pointer-events:none}
.std-band .wrap{position:relative}
.std-band .kicker{color:#5fd3a5}
.std-band h2{color:#fff;margin:6px 0 0;max-width:560px}
.std-head{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:end;margin-bottom:48px}
.std-head .lead{color:#b9c9d9;margin:0}
.std-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.14);border-left:1px solid rgba(255,255,255,.14)}
.std{padding:28px 28px 30px;border-right:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);transition:background .25s ease}
.std:hover{background:rgba(255,255,255,.03)}
.std-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.std-ic{width:40px;height:40px;border-radius:8px;border:1px solid rgba(95,211,165,.35);display:grid;place-items:center}
.std-ic svg{width:20px;height:20px;fill:none;stroke:#5fd3a5;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.std-n{font-family:var(--mono);font-size:12px;color:#8ea4ba;letter-spacing:.06em}
.std h3{color:#fff;font-size:17px;margin:0 0 8px}
.std p{color:#b9c9d9;font-size:14.5px;line-height:1.65;margin:0}
.std-links{display:flex;gap:28px;flex-wrap:wrap;margin-top:32px}
.std-links a{color:#fff;font-weight:600;font-size:15px;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:4px}
.std-links a:hover{text-decoration-color:#5fd3a5}
.std-links a:focus-visible{outline:2px solid #5fd3a5;outline-offset:3px}
@media (max-width:960px){.std-head{grid-template-columns:1fr;gap:16px}.std-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.std-band{padding:64px 0}.std-grid{grid-template-columns:1fr}.std{padding:22px 20px}}
.partner-note{margin-top:28px;padding:20px 22px;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:var(--r);background:var(--surface)}
.partner-note h3{font-size:17px;margin:0 0 6px}
.partner-note p{margin:0;color:var(--muted);font-size:15px;line-height:1.6}

/* v24: compact sticky Platform view switcher */
.plat-dock{position:fixed;left:0;right:0;top:64px;z-index:35;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line);box-shadow:0 6px 18px rgba(15,32,51,.06);transform:translateY(-8px);opacity:0;transition:transform .2s var(--ease),opacity .2s var(--ease)}
.plat-dock.on{transform:none;opacity:1}
.plat-dock-in{display:flex;align-items:center;gap:20px;height:52px}
.plat-dock-k{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex:none}
.plat-dock-items{display:flex;align-items:stretch;gap:4px;height:100%;min-width:0;overflow-x:auto;scrollbar-width:none}
.plat-dock-items::-webkit-scrollbar{display:none}
.plat-dock-btn{display:inline-flex;align-items:center;gap:8px;padding:0 14px;background:none;border:0;border-bottom:2px solid transparent;color:var(--ink);font:500 14px/1 var(--sans);cursor:pointer;white-space:nowrap}
.plat-dock-btn:hover{color:var(--blue)}
.plat-dock-btn[aria-pressed="true"]{border-bottom-color:var(--action);color:var(--ink);font-weight:600}
.plat-dock-btn:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.plat-dock-n{font-family:var(--mono);font-size:12px;color:var(--muted)}
.plat-dock-btn[aria-pressed="true"] .plat-dock-n{color:var(--emerald-dark)}
.plat-dock-s{display:none}
.plat-dock-cta{margin-left:auto;flex:none;font-size:14px;font-weight:600;color:var(--blue)}
@media (max-width:720px){.plat-dock-k,.plat-dock-cta{display:none}.plat-dock-l{display:none}.plat-dock-s{display:inline}.plat-dock-in{gap:0}.plat-dock-items{width:100%;justify-content:space-between;overflow:visible}.plat-dock-btn{flex:1;justify-content:center;padding:0 8px}}
@media (prefers-reduced-motion:reduce){.plat-dock{transition:none}}

/* v25: interactive sample workspace */
.ws .studio-main{display:flex;flex-direction:column;gap:14px}
.ws-navbtn{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);width:100%;min-height:40px;padding:var(--s-2) var(--s-3);border:1px solid transparent;border-radius:var(--r);background:none;color:var(--ink);font:500 14px/1.3 var(--sans);text-align:left;cursor:pointer}
.ws-navbtn:hover{background:var(--surface)}
.ws-navbtn[aria-current="page"]{background:var(--surface);border-color:var(--line);color:var(--blue);font-weight:600;box-shadow:inset 3px 0 0 var(--action)}
.ws-navbtn .count{flex:none;min-width:1.75rem;text-align:center;padding:1px 6px;border-radius:5px;background:var(--flag-bg);color:var(--flag);font:500 11.5px/1.6 var(--mono)}
.ws-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.ws-head h3{margin:0 0 4px;font-family:var(--sans);font-size:17px}
.ws-head p{margin:0;font-size:var(--fs-small);color:var(--muted);max-width:520px}
.ws-actions{display:flex;gap:8px;flex-wrap:wrap}
.ws-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.ws-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);cursor:pointer;text-align:left;border-top:3px solid var(--line)}
.ws-tile.red{border-top-color:var(--red)}.ws-tile.amber{border-top-color:var(--amber)}.ws-tile.flag{border-top-color:var(--flag)}.ws-tile.green{border-top-color:var(--ok)}.ws-tile.all{border-top-color:var(--blue)}
.ws-tile:hover{background:var(--surface-2)}
.ws-tile[aria-pressed="true"]{background:var(--blue-soft);border-color:var(--blue);border-top-width:3px}
.ws-tn{font:700 20px/1.1 var(--sans);color:var(--ink)}
.ws-tl{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.03em}
.ws-search{position:relative}
.ws-search svg{position:absolute;left:12px;top:50%;width:16px;height:16px;transform:translateY(-50%);fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}
.ws-search input{width:100%;min-height:40px;padding:8px 12px 8px 36px;border:1px solid var(--line);border-radius:var(--r);font:400 14px var(--sans);background:var(--surface);color:var(--ink)}
.ws-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;list-style:none;margin:0;padding:0}
.ws-list li{border-bottom:1px solid var(--line)}.ws-list li:last-child{border-bottom:0}
.ws-row{width:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1.6fr) 16px;gap:14px;align-items:center;padding:12px 16px;background:var(--surface);border:0;text-align:left;cursor:pointer;color:var(--ink);font:inherit}
.ws-row:last-child{border-bottom:0}
.ws-row:hover{background:var(--surface-2)}
.ws-row.is-sel{background:var(--blue-soft);box-shadow:inset 3px 0 0 var(--blue)}
.ws-row:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.ws-row>span{display:flex;flex-direction:column;gap:4px;min-width:0}
.ws-c2{align-items:flex-start}
.ws-go{color:var(--muted);font-size:20px}
.ws-empty{margin:0;padding:24px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r)}
.chip.none{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.ws-form{border:1px solid var(--blue);border-radius:var(--r);padding:16px;background:var(--surface)}
.ws-form h4{margin:0 0 12px;font-size:15px}
.ws-fgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.ws-form textarea{font-family:var(--mono);font-size:13px}
.ws-ferr{margin:0 0 10px;color:var(--red);font-size:13.5px;font-weight:600}
.ws-fact{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ws-supadd{display:flex;gap:8px}
.ws-supadd input{flex:1;min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r);font:400 14px var(--sans)}
.ws .studio-log li{display:flex;flex-direction:column;gap:2px}
.ws-detail h4{margin:2px 0 2px;font-size:16px}
.ws-dhead{display:flex;justify-content:space-between;align-items:center}
.ws-close{border:0;background:none;font-size:20px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 6px;border-radius:6px}
.ws-close:hover{background:var(--surface)}
.ws-dv{display:flex;align-items:center;gap:8px;margin:10px 0 12px}
.ws-subs{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.ws .studio-log .ws-subs li{display:grid;grid-template-columns:10px minmax(0,1fr);gap:8px;align-items:start;padding:8px 10px;background:var(--surface);border:1px solid var(--line);border-radius:8px}
.ws-subs li>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.ws-sdot{width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--line)}
.ws-sdot.red{background:var(--red)}.ws-sdot.amber{background:var(--amber)}.ws-sdot.green{background:var(--ok)}.ws-sdot.flag{background:var(--flag)}
.ws-act{font-size:13.5px;line-height:1.5;margin:0 0 12px}
.ws-msg{margin-top:8px;min-height:1em}
@media (max-width:1100px){.ws-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:980px){.ws .studio-body{grid-template-columns:1fr}.ws .studio-nav{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}.ws .studio-nav .studio-navlabel{width:100%}.ws-navbtn{width:auto;flex:1 1 auto}.ws .studio-log{border-left:0;border-top:1px solid var(--line)}}
@media (max-width:640px){.ws-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.ws-tile{padding:8px 10px}.ws-tn{font-size:17px}.ws-row{grid-template-columns:minmax(0,1fr) auto;gap:8px}.ws-c3{grid-column:1/-1}.ws-row>.ws-go{display:none}.ws-actions{width:100%}.ws-actions .btn{flex:1}.ws-fgrid{grid-template-columns:1fr}}

/* v26: spreadsheet import */
.imp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px}
.imp-btn{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:8px 14px;border:1px solid var(--blue);border-radius:8px;background:var(--surface);color:var(--blue);font:600 13.5px var(--sans);cursor:pointer}
.imp-btn:hover{background:var(--blue-soft)}
.imp-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.imp-link{background:none;border:0;padding:0;color:var(--blue);font:600 13.5px var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.imp-done{margin:10px 0 0;padding:8px 12px;border-radius:8px;background:var(--ok-bg);color:var(--ok);font-size:13.5px;font-weight:600}
.imp-alt{margin:-4px 0 12px;font-size:13.5px;color:var(--muted)}
.imp-dlg{width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:0;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 64px rgba(15,32,51,.25);color:var(--ink);background:var(--surface)}
.imp-dlg::backdrop{background:rgba(11,37,64,.45)}
.imp-in{padding:24px 26px 22px;display:flex;flex-direction:column;gap:14px}
.imp-top{display:flex;justify-content:space-between;align-items:flex-start}
.imp-k{margin:0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--emerald-dark)}
.imp-top h2{margin:2px 0 0;font-size:21px}
.imp-x{border:0;background:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:6px}
.imp-x:hover{background:var(--surface-2)}
.imp-lead{margin:0;color:var(--muted);font-size:14.5px}
.imp-lead b{color:var(--ink)}
.imp-lead select{font:inherit;padding:2px 6px;border:1px solid var(--line);border-radius:6px}
.imp-drop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 20px;border:2px dashed var(--line);border-radius:12px;text-align:center;cursor:pointer;background:var(--surface-2)}
.imp-drop:hover,.imp-drop:focus-within{border-color:var(--blue)}
.imp-drop input{position:absolute;opacity:0;width:1px;height:1px}
.imp-drop b{color:var(--blue);font-size:15px}
.imp-drop span{font-size:13.5px;color:var(--muted)}
.imp-err{margin:0;color:var(--red);font-weight:600;font-size:14px}
.imp-sub{margin:0;font-size:13px;color:var(--muted)}
.imp-chk{display:flex;align-items:center;gap:8px;font-size:14px}
.imp-h{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.imp-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.imp-map .imp-h{grid-column:1/-1;margin:0}
.imp-mrow{display:flex;flex-direction:column;gap:4px}
.imp-mrow label{font-size:13.5px;font-weight:600}
.imp-mrow select{min-height:38px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;font:400 14px var(--sans);background:var(--surface);color:var(--ink)}
.imp-req{font-size:11px;font-weight:600;color:var(--amber);margin-left:4px}
.imp-tw{overflow:auto;max-height:260px;border:1px solid var(--line);border-radius:10px}
.imp-tw table{width:100%;border-collapse:collapse;font-size:13px}
.imp-tw th{position:sticky;top:0;background:var(--surface-2);text-align:left;padding:8px 10px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.imp-tw td{padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.imp-tw tr.bad td{background:var(--red-bg)}
.imp-tw tr.bad td:last-child{color:var(--red);font-weight:600}
.imp-sum{padding:10px 14px;border-radius:8px;background:var(--ok-bg);color:var(--ok);font-size:14px}
.imp-sum.warn{background:var(--amber-bg);color:var(--amber)}
.imp-act{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@media (max-width:640px){.imp-in{padding:18px}.imp-map{grid-template-columns:1fr}.imp-act .btn{flex:1}}
.ws-alert{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:var(--r);background:var(--blue-soft)}
.ws-alert-ic svg{width:20px;height:20px;fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block}
.ws-alert-t{flex:1;font-size:13.5px;line-height:1.5}
.ws-affnote{margin:0 0 10px;padding:8px 10px;border-radius:8px;background:var(--blue-soft);font-size:13px;color:var(--ink)}
@media (max-width:640px){.ws-alert{flex-wrap:wrap}.ws-alert .btn{width:100%}}

/* v27: import identification statuses (a missing number is information, not an error) */
.imp-note{margin:0 0 10px;font-size:13px;color:var(--muted);line-height:1.5}
.imp-tw{max-height:320px}
.imp-tw tr.info td{background:var(--blue-soft)}
.imp-tw tr.fix td{background:var(--amber-bg)}
.imp-tw tr.skip td{background:var(--surface-2);color:var(--muted)}
.imp-tw td.st{white-space:normal;min-width:190px;max-width:300px;font-weight:600;color:var(--ok)}
.imp-tw tr.info td.st{color:var(--blue)}
.imp-tw tr.fix td.st{color:var(--amber)}
.imp-tw tr.skip td.st{color:var(--muted);font-weight:500}
.imp-sn{display:block;margin-top:2px;font-weight:500;font-size:12px;color:var(--muted)}
.imp-na{font-style:italic;color:var(--muted)}
.imp-tw td.badcell{padding:4px 6px}
.imp-tw td.badcell input{width:120px;min-height:30px;padding:3px 8px;border:1.5px solid var(--amber);border-radius:6px;font:400 13px var(--mono,monospace);background:var(--surface);color:var(--ink)}
.srow input.is-bad{border-color:var(--amber);background:var(--amber-bg)}
