/* SCALE-BLOCK-START: the two type scales (owner, 5 Oct 2026). The app scale (--fs-*) is used by the
   signed-in app, the operator portal and the public scan report pages, which are part of the app
   experience. The website scale (--ws-*) is used by the marketing pages only. This block is written
   identically into css/app.css and css/base.css; tests/type-scale.ts fails if the two ever differ. */
:root{
  --fs-title:22px;--fw-title:800;
  --fs-section:15px;--fw-section:800;
  --fs-body:13px;--lh-body:1.5;
  --fs-small:12px;--fw-small:600;
  --fs-label:11px;--fw-label:800;--ls-label:.06em;
  --fs-num:22px;--fw-num:800;
  --fs-score:28px;--fw-score:800;
  --fs-btn:13px;--fw-btn:700;--h-btn:36px;
  --fs-btn-sm:12px;--h-btn-sm:30px;
  --fs-input:13px;--h-input:38px;
  --fs-menu:13px;--fw-menu:600;--h-menu:34px;--ic-menu:17px;
  --h-topbar:56px;--h-search:36px;
  --fs-read:15px;--lh-read:1.6;
  --ws-hero:clamp(44px,6vw,80px);--ww-hero:800;
  --ws-h2:clamp(30px,3.4vw,48px);--ww-h2:800;
  --ws-card:20px;--ww-card:800;
  --ws-intro:19px;--ww-intro:400;
  --ws-body:17px;--wl-body:1.6;
  --ws-small:14px;--ww-small:600;
  --ws-eyebrow:13px;--ww-eyebrow:800;--wls-eyebrow:.08em;
  --ws-nav:15px;--ww-nav:600;
  --ws-btn:16px;--wh-btn:48px;
  --ws-scan:17px;--wh-scan:56px;
}
/* SCALE-BLOCK-END */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url(../fonts/plus-jakarta-sans.woff2) format("woff2")}@font-face{font-family:"Seoga Fallback";src:local("Arial"),local("Liberation Sans"),local("Helvetica");size-adjust:104.4%;ascent-override:99.4%;descent-override:21.3%;line-gap-override:0%}:root{--sg-indigo:#4F46E5;--sg-indigo-deep:#4338CA;--sg-indigo-ink:#3730A3;--sg-indigo-50:#EEF2FF;--sg-indigo-100:#E0E7FF;--sg-teal:#0D9488;--sg-teal-ink:#0F766E;--sg-teal-50:#F0FDFA;--sg-teal-100:#CCFBF1;--sg-orange:#EA580C;--sg-orange-ink:#C2410C;--sg-orange-50:#FFF7ED;--sg-orange-100:#FFEDD5;--sg-slate:#0F172A;--sg-text:#334155;--sg-muted:#475569;--sg-line:#E2E8F0;--sg-surface:#F8FAFC;--sg-white:#FFFFFF;--sg-green:#15803D;--sg-red:#B91C1C;--sg-r-sm:10px;--sg-r-md:18px;--sg-r-lg:28px;--sg-r-pill:999px;--sg-shadow-card:0 1px 2px rgba(15,23,42,.05),0 12px 32px -12px rgba(49,46,129,.18);--sg-shadow-pop:0 2px 4px rgba(15,23,42,.06),0 28px 60px -20px rgba(49,46,129,.35);--sg-wrap:1180px}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--sg-white);color:var(--sg-text);font-family:"Plus Jakarta Sans","Seoga Fallback","Segoe UI",system-ui,sans-serif;font-size:var(--ws-body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}img,svg{max-width:100%}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:var(--sg-indigo);text-decoration:none}a:hover{color:var(--sg-indigo-ink)}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--sg-indigo);outline-offset:3px;border-radius:6px}[hidden]{display:none !important}.sg-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sg-wrap{width:100%;max-width:var(--sg-wrap);margin-inline:auto;padding-inline:24px}.sg-ico{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sg-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:1px solid transparent;border-radius:var(--sg-r-pill);font-weight:700;font-size:var(--ws-btn);line-height:1;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s}.sg-btn--primary{background:var(--sg-indigo);color:#fff}.sg-btn--primary:hover{background:var(--sg-indigo-deep);color:#fff}.sg-btn--ghost{background:#fff;color:var(--sg-slate);border-color:var(--sg-line)}.sg-btn--ghost:hover{border-color:#94A3B8;color:var(--sg-slate)}.sg-btn--text{background:transparent;color:var(--sg-slate);padding-inline:14px}.sg-btn--text:hover{color:var(--sg-indigo)}.sg-btn--onink{background:#fff;color:var(--sg-indigo-deep)}.sg-btn--onink:hover{background:var(--sg-indigo-50);color:var(--sg-indigo-deep)}.sg-btn--block{width:100%}.sg-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--sg-line)}.sg-header__row{display:flex;align-items:center;gap:24px;min-height:72px}.sg-brand{display:inline-flex;align-items:center;flex:none}.sg-brand img{height:68px;width:auto;display:block;margin:-10px -8px}@media (max-width:559px){.sg-brand img{height:52px;margin:-8px -6px}}.sg-nav{display:flex;align-items:center;gap:4px;margin-left:auto}.sg-nav__link{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:var(--sg-r-pill);color:var(--sg-text);font-weight:600;font-size:var(--ws-nav)}.sg-nav__link:hover{background:var(--sg-surface);color:var(--sg-slate)}.sg-header__actions{display:flex;align-items:center;gap:8px;flex:none}.sg-menu-btn{display:none;width:48px;height:48px;align-items:center;justify-content:center;border:1px solid var(--sg-line);border-radius:14px;background:#fff;cursor:pointer;margin-left:auto}.sg-menu-btn .sg-ico{width:22px;height:22px}@media (max-width:1040px){.sg-menu-btn{display:inline-flex}.sg-nav,.sg-header__actions{display:none}.sg-header.sg-is-open .sg-header__row{flex-wrap:wrap;padding-bottom:16px}.sg-header.sg-is-open .sg-nav{display:flex;flex-direction:column;align-items:stretch;order:3;width:100%;margin:0;gap:0}.sg-header.sg-is-open .sg-nav__link{min-height:48px;font-size:var(--ws-body)}.sg-header.sg-is-open .sg-header__actions{display:flex;order:4;width:100%;padding-top:10px}.sg-header.sg-is-open .sg-header__actions .sg-btn{flex:1}}.sg-section{padding-block:96px}.sg-section--tint{background:var(--sg-surface);border-block:1px solid var(--sg-line)}.sg-h2{font-size:var(--ws-h2);line-height:1.1;letter-spacing:-.03em;font-weight:800;color:var(--sg-slate);text-wrap:balance}.sg-lead{font-size:var(--ws-card);line-height:1.6;color:var(--sg-muted);max-width:62ch;text-wrap:pretty}.sg-head{display:flex;flex-direction:column;gap:18px;margin-bottom:56px;max-width:820px}.sg-head--center{margin-inline:auto;text-align:center;align-items:center}.sg-chip{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:34px;padding:0 14px 0 6px;border-radius:var(--sg-r-pill);font-size:var(--ws-small);font-weight:700;background:var(--sg-indigo-50);color:var(--sg-indigo-ink)}.sg-chip__key{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:24px;padding:0 9px;border-radius:var(--sg-r-pill);background:var(--sg-indigo);color:#fff;font-size:var(--ws-eyebrow);font-weight:800;letter-spacing:.06em}.sg-chip--geo{background:var(--sg-teal-50);color:var(--sg-teal-ink)}.sg-chip--geo .sg-chip__key{background:var(--sg-teal-ink)}.sg-chip--aeo{background:var(--sg-orange-50);color:var(--sg-orange-ink)}.sg-chip--aeo .sg-chip__key{background:var(--sg-orange-ink)}.sg-chip--plain{padding-inline:14px;background:#fff;border:1px solid var(--sg-line);color:var(--sg-muted)}.sg-tag{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:var(--sg-r-pill);font-size:var(--ws-eyebrow);font-weight:800;letter-spacing:.05em;background:var(--sg-indigo-50);color:var(--sg-indigo-ink);flex:none}.sg-tag--geo{background:var(--sg-teal-100);color:var(--sg-teal-ink)}.sg-tag--aeo{background:var(--sg-orange-100);color:var(--sg-orange-ink)}.sg-tag--ok{background:#DCFCE7;color:var(--sg-green)}.sg-tag--no{background:#FEE2E2;color:var(--sg-red)}.sg-tag--muted{background:#F1F5F9;color:var(--sg-muted)}.sg-example{font-size:var(--ws-eyebrow);font-weight:600;color:var(--sg-muted)}.sg-footer{padding-block:48px 28px}.sg-footer__grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,.8fr));gap:32px}.sg-footer__brand{display:inline-block}.sg-footer__brand img{height:84px;width:auto;display:block;margin:-12px}.sg-footer__tag{margin-top:12px;font-size:var(--ws-btn);font-weight:600;color:var(--sg-slate)}.sg-footer__title{font-size:var(--ws-nav);font-weight:800;color:var(--sg-slate);margin-bottom:6px}.sg-footer__link{display:flex;align-items:center;min-height:36px;font-size:var(--ws-btn);font-weight:500;color:var(--sg-muted)}.sg-footer__link:hover{color:var(--sg-indigo)}.sg-footer__base{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin-top:32px;padding-top:20px;border-top:1px solid var(--sg-line);font-size:var(--ws-nav);color:var(--sg-muted)}.sg-footer__legal{display:inline-flex;align-items:center;min-height:36px;margin-left:24px;color:var(--sg-muted)}.sg-footer__legal:first-child{margin-left:0}@media (max-width:820px){.sg-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sg-footer__brandcol{grid-column:1/-1}}.sg-sprite{position:absolute;width:0;height:0;overflow:hidden}.sg-fine{font-size:var(--ws-nav);color:var(--sg-muted)}.sg-code{display:block;padding:12px 14px;border-radius:14px;background:var(--sg-slate);color:#E2E8F0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--ws-eyebrow);line-height:1.6;overflow-x:auto;white-space:pre}.sg-soon{display:inline-flex;align-items:center;height:22px;padding:0 9px;margin-left:6px;border-radius:var(--sg-r-pill);background:#F1F5F9;color:var(--sg-muted);font-size:var(--ws-eyebrow);font-weight:800;letter-spacing:.02em;vertical-align:middle;white-space:nowrap}.sg-skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:12px;background:var(--sg-slate);color:#fff;font-weight:700}.sg-skip:focus{top:12px;color:#fff}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none !important;transition:none !important}}

/* The website scale's buttons and menu links (owner, 5 Oct 2026). The public scan report pages keep the
   app scale, which their own stylesheets set. */
.sg-btn{font-size:var(--ws-btn);min-height:var(--wh-btn)}
.sg-nav__link{font-size:var(--ws-nav);font-weight:var(--ww-nav)}
.sg-h2{font-weight:var(--ww-h2)}
.sg-h3{font-size:var(--ws-card);font-weight:var(--ww-card)}
