/* Extracted from site/portal/index.html; page-specific styles. */
:root{
    --paper:#140E2E; --bg:#140E2E; --bg-2:#1A123A;
    --panel:#221A46; --panel-2:#2A2056; --panel-3:#1C1540;
    --ink:#F4F1FF; --ink-2:#E2DBFB; --muted:#ABA0D4; --muted-2:#8579AE;
    --line:rgba(255,255,255,.10); --line-strong:rgba(255,255,255,.16); --line-3:rgba(255,255,255,.24);
    --violet:#8B6CFF; --violet-2:#9C82FF; --violet-press:#7A57F5; --violet-12:rgba(139,108,255,.16); --violet-20:rgba(139,108,255,.26);
    --blue:#4F9CFF; --blue-2:#6FB0FF; --blue-12:rgba(79,156,255,.16);
    --amber:#F5B544; --amber-12:rgba(245,181,68,.16);
    --coral:#FF6F7D; --coral-12:rgba(255,111,125,.16);
    --soft-blue:var(--blue-12); --soft-amber:var(--amber-12); --soft-coral:var(--coral-12);
    --grad:linear-gradient(120deg,#8266F7 0%,#5E76EE 55%,#4D74EC 100%);
    --grad-soft:linear-gradient(120deg,rgba(139,108,255,.18),rgba(79,156,255,.18));
    --r:14px; --r-lg:20px; --r-xl:26px; --motif:18px 18px 30px 18px;
    --shadow:0 30px 70px -36px rgba(8,4,28,.75);
    --ring:0 0 0 4px rgba(139,108,255,.30);
    --font-display:"Space Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
    --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
    --max:1160px;
  }
  :root[data-theme="light"]{
    --paper:#F6F4FF; --bg:#F6F4FF; --bg-2:#EEEAFE;
    --panel:#FFFFFF; --panel-2:#F7F5FF; --panel-3:#F1EDFF;
    --ink:#171134; --ink-2:#2E2553; --muted:#5E5680; --muted-2:#857CA6;
    --line:#E7E2F7; --line-strong:#D9D2F0; --line-3:#C8BEE8;
    --violet:#6D45E6; --violet-2:#7C57F0; --violet-press:#5C36CC; --violet-12:rgba(109,69,230,.10); --violet-20:rgba(109,69,230,.20);
    --blue:#2563EB; --blue-2:#3B76F5; --blue-12:rgba(37,99,235,.10);
    --amber:#B5790A; --amber-12:rgba(181,121,10,.12);
    --coral:#E0566A; --coral-12:rgba(224,86,106,.12);
    --grad:linear-gradient(120deg,#6D45E6 0%,#3E6EF0 55%,#2563EB 100%);
    --grad-soft:linear-gradient(120deg,rgba(109,69,230,.12),rgba(37,99,235,.12));
    --shadow:0 24px 60px -34px rgba(58,40,120,.30);
    --ring:0 0 0 4px rgba(109,69,230,.18);
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth;overflow-x:hidden}
  body{
    margin:0;
    color:var(--ink);
    background:
      radial-gradient(circle at 88% -12%,rgba(139,108,255,.22),transparent 34rem),
      radial-gradient(circle at -8% 8%,rgba(79,156,255,.16),transparent 30rem),
      var(--paper);
    font-family:var(--font);
    line-height:1.62;
    -webkit-font-smoothing:antialiased;
  }
  .skip-link{position:absolute;left:12px;top:-48px;z-index:100;background:var(--panel);color:var(--violet-2);border:1px solid var(--line-strong);border-radius:999px;padding:10px 14px;font-weight:800}
  .skip-link:focus{top:12px;outline:3px solid rgba(139,108,255,.24)}
  a{color:var(--violet);text-decoration:none}
  a:hover{text-decoration:underline}
  h1,h2,h3,h4{font-family:var(--font-display)}
  button,input,select,textarea{font:inherit}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
  .site-header{
    position:sticky;
    top:0;
    z-index:20;
    background:rgba(20,14,46,.78);
    backdrop-filter:saturate(160%) blur(16px);
    border-bottom:1px solid var(--line);
  }
  :root[data-theme="light"] .site-header{background:rgba(246,244,255,.86)}
  .nav{
    height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    color:var(--ink);
    font-family:var(--font-display);
    font-weight:700;
    font-size:18px;
  }
  .mark{
    width:38px;
    height:38px;
    border-radius:11px 11px 18px 11px;
    display:grid;
    place-items:center;
    background:var(--grad);
    color:#fff;
    font-family:var(--font-display);
    font-weight:700;
    box-shadow:0 16px 34px -22px rgba(139,108,255,.9);
    flex:0 0 auto;
  }
  .nav-links{
    display:flex;
    align-items:center;
    gap:18px;
    color:var(--muted);
    font-size:14px;
    font-weight:700;
  }
  .nav-links a{color:var(--muted)}
  .nav-links a:hover{color:var(--violet);text-decoration:none}
  .nav-actions{display:flex;align-items:center;gap:10px}
  .pill{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    gap:8px;
    border:1px solid var(--line);
    border-radius:999px;
    padding:5px 11px;
    color:var(--violet-press);
    background:var(--violet-12);
    font-size:12px;
    font-weight:800;
  }
  .pill.violet{color:var(--violet-2);background:var(--violet-12);border-color:var(--violet-20)}
  .pill.amber{color:var(--amber);background:var(--soft-amber);border-color:var(--line-strong)}
  .pill.blue{color:var(--blue);background:var(--soft-blue);border-color:var(--line-strong)}
  .pill.neutral{color:var(--muted);background:var(--panel);border-color:var(--line-strong)}
  .portal-shell{
    padding:46px 0 62px;
    border-bottom:1px solid var(--line);
    position:relative;
    overflow:hidden;
  }
  .portal-kicker{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
  }
  .portal-title h1{
    font-family:var(--font-display);
    margin:10px 0 8px;
    font-size:44px;
    line-height:1.08;
    letter-spacing:0;
  }
  .portal-title p{
    margin:0;
    max-width:760px;
    color:var(--muted);
    font-size:17px;
  }
  .portal-grid{
    display:grid;
    grid-template-columns:minmax(360px, 500px) minmax(0, 1fr);
    gap:18px;
    align-items:start;
  }
  .portal-guide{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin:0 0 18px;
  }
  .portal-guide span{
    min-height:56px;
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    background:var(--panel);
    color:var(--ink-2);
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    font-size:13px;
    font-weight:800;
  }
  .portal-guide b{
    width:24px;
    height:24px;
    flex:0 0 auto;
    display:grid;
    place-items:center;
    border-radius:9px;
    background:var(--violet-12);
    color:var(--violet-2);
    font-family:var(--font-display);
  }
  .portal-stepper{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:0 0 18px;
  }
  .portal-step{
    min-height:76px;
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    background:var(--panel);
    padding:12px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:6px;
  }
  .portal-step span{
    color:var(--muted);
    font-size:11px;
    font-weight:850;
    text-transform:uppercase;
  }
  .portal-step strong{font-size:13px;line-height:1.25}
  .portal-step.active{border-color:var(--violet-20);background:var(--violet-12)}
  .portal-step.done{border-color:var(--blue-12);background:var(--soft-blue)}
  .panel{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:var(--r-xl);
    box-shadow:var(--shadow);
  }
  .panel-head{
    padding:18px 18px 14px;
    border-bottom:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
  }
  .panel-head h2,.panel-head h3{
    margin:0;
    font-size:18px;
    line-height:1.2;
    letter-spacing:0;
  }
  .panel-head p{
    margin:5px 0 0;
    color:var(--muted);
    font-size:13px;
  }
  .intake-form{padding:18px}
  .field-group{
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    padding:14px;
    margin-bottom:14px;
    background:var(--panel-2);
  }
  .field-group legend{
    padding:0 6px;
    color:var(--ink);
    font-size:13px;
    font-weight:800;
  }
  .grid-2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
  .grid-3{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:12px;
  }
  .field-offset{margin-top:12px}
  label{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:0;
    color:var(--ink-2);
    font-size:12px;
    font-weight:800;
  }
  input,select,textarea{
    width:100%;
    min-height:48px;
    border:1px solid var(--line-strong);
    border-radius:16px;
    background:var(--panel-3);
    color:var(--ink);
    padding:10px 11px;
    outline:none;
  }
  textarea{min-height:88px;resize:vertical}
  input:focus,select:focus,textarea:focus{
    border-color:var(--violet);
    box-shadow:var(--ring);
  }
  .url-row{
    display:grid;
    grid-template-columns:1fr 134px;
    gap:10px;
    align-items:end;
  }
  .reader-pipeline{
    margin-top:12px;
  }
  .reader-pipeline-card{
    border:1px solid var(--line-strong);
    border-radius:var(--motif);
    background:
      linear-gradient(135deg,rgba(139,108,255,.13),rgba(79,156,255,.08)),
      var(--panel);
    padding:12px;
    box-shadow:0 20px 42px -34px rgba(8,4,28,.72);
  }
  .reader-pipeline-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
  }
  .reader-pipeline-head span{
    display:block;
    color:var(--muted);
    font-size:10px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  .reader-pipeline-head strong{
    display:block;
    margin-top:2px;
    font-family:var(--font-display);
    font-size:16px;
    line-height:1.15;
  }
  .reader-pipeline-head em{
    flex:0 0 auto;
    max-width:142px;
    border:1px solid var(--violet-20);
    border-radius:999px;
    background:var(--violet-12);
    color:var(--violet-2);
    padding:5px 9px;
    font-size:11px;
    font-style:normal;
    font-weight:850;
    text-align:center;
  }
  .reader-pipeline-sub{
    margin:9px 0 0;
    color:var(--muted);
    font-size:12px;
    line-height:1.45;
  }
  .reader-meters{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:12px;
  }
  .reader-meter{
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--panel-2);
    padding:9px;
  }
  .reader-meter div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
  }
  .reader-meter span{
    color:var(--muted);
    font-size:11px;
    font-weight:800;
  }
  .reader-meter strong{
    font-size:12px;
    line-height:1;
  }
  .reader-meter i{
    display:block;
    height:7px;
    overflow:hidden;
    margin-top:8px;
    border-radius:999px;
    background:var(--panel-3);
  }
  .reader-meter b{
    display:block;
    height:100%;
    width:0;
    border-radius:999px;
    background:var(--muted-2);
  }
  .reader-meter.complete b{background:var(--blue-2)}
  .reader-meter.partial b{background:var(--amber)}
  .reader-stage-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:12px;
  }
  .reader-stage{
    min-height:82px;
    border:1px solid var(--line);
    border-radius:16px;
    background:rgba(255,255,255,.025);
    padding:10px;
    display:grid;
    grid-template-columns:auto 1fr;
    gap:8px;
    align-items:start;
  }
  .reader-stage-dot{
    width:11px;
    height:11px;
    margin-top:5px;
    border-radius:50%;
    background:var(--muted-2);
    box-shadow:0 0 0 4px rgba(255,255,255,.04);
  }
  .reader-stage strong{
    display:block;
    font-size:12px;
    line-height:1.2;
  }
  .reader-stage span{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-size:11px;
    line-height:1.35;
  }
  .reader-stage.active{
    border-color:var(--violet-20);
    background:var(--violet-12);
  }
  .reader-stage.active .reader-stage-dot{
    background:var(--violet-2);
    box-shadow:0 0 0 5px var(--violet-12);
    animation:readerPulse 1.2s ease-in-out infinite;
  }
  .reader-stage.complete{
    border-color:var(--blue-12);
    background:var(--grad-soft);
  }
  .reader-stage.complete .reader-stage-dot{background:var(--blue-2)}
  .reader-stage.partial{
    border-color:var(--amber-12);
    background:var(--soft-amber);
  }
  .reader-stage.partial .reader-stage-dot{background:var(--amber)}
  .reader-stage.skipped,
  .reader-stage.off{
    opacity:.78;
    background:var(--panel-2);
  }
  @keyframes readerPulse{
    0%,100%{transform:scale(1);opacity:.86}
    50%{transform:scale(1.18);opacity:1}
  }
  .btn-row{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:14px;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:48px;
    border:1px solid transparent;
    border-radius:999px;
    background:var(--grad);
    color:#fff;
    padding:11px 18px;
    font-size:14px;
    font-weight:850;
    white-space:nowrap;
    cursor:pointer;
    box-shadow:0 18px 34px -24px rgba(139,108,255,.9);
  }
  .btn:hover{filter:brightness(1.06)}
  .btn.secondary{
    background:var(--panel);
    color:var(--violet-2);
    border-color:var(--line-strong);
    box-shadow:none;
  }
  .btn.secondary:hover{background:var(--violet-12)}
  .btn.ghost{
    background:var(--panel);
    color:var(--violet-2);
    border-color:var(--line-strong);
    box-shadow:none;
  }
  .btn.ghost:hover{background:var(--violet-12);filter:none}
  .btn.sm{min-height:38px;padding:8px 13px;font-size:12px}
  .btn.neutral{
    background:var(--panel);
    border-color:var(--line-strong);
    color:var(--ink);
    box-shadow:none;
  }
  .btn.neutral:hover{background:var(--panel-2)}
  .btn:disabled{
    opacity:.55;
    cursor:not-allowed;
    filter:none;
  }
  .status-line{
    min-height:36px;
    margin-top:12px;
    padding:10px 12px;
    border-radius:var(--r-lg);
    background:var(--soft-blue);
    color:var(--blue-2);
    font-size:13px;
    font-weight:700;
  }
  .status-line.success{background:var(--violet-12);color:var(--violet-press)}
  .status-line.warning{background:var(--soft-amber);color:var(--amber)}
  .status-line.error{background:var(--soft-coral);color:var(--coral)}
  .report-panel{overflow:hidden}
  .report-toolbar{
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  .score-card{
    width:86px;
    min-height:72px;
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    display:grid;
    place-items:center;
    padding:8px;
    background:var(--grad-soft);
    text-align:center;
  }
  .score-card strong{font-size:22px;line-height:1}
  .score-card span{display:block;color:var(--muted);font-size:11px;font-weight:800;margin-top:4px}
  .report-body{padding:18px}
  .property-hero{
    display:grid;
    grid-template-columns:1.4fr .9fr;
    gap:14px;
    margin-bottom:14px;
  }
  .property-title{
    min-height:170px;
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    background:var(--panel);
    padding:18px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
  .property-title h2{
    margin:8px 0;
    font-size:28px;
    line-height:1.14;
    letter-spacing:0;
  }
  .property-title p{margin:0;color:var(--muted)}
  .source-shot{
    min-height:132px;
    border-radius:var(--r-lg);
    border:1px solid var(--line);
    overflow:hidden;
    background:var(--grad-soft);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--blue);
    font-weight:850;
    text-align:center;
    padding:18px;
  }
  .source-shot.has-image{
    background-size:cover;
    background-position:center;
    position:relative;
    color:#fff;
  }
  .source-shot.has-image::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(20,14,46,.42);
  }
  .source-shot.has-image span{position:relative;z-index:1}
  .metric-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
  }
  .metric{
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    padding:12px;
    background:var(--panel);
    min-height:96px;
  }
  .metric span{
    display:block;
    color:var(--muted);
    font-size:11px;
    font-weight:850;
    text-transform:uppercase;
  }
  .metric strong{
    display:block;
    margin-top:8px;
    font-size:20px;
    line-height:1.1;
  }
  .metric small{display:block;margin-top:6px;color:var(--muted);font-size:11px}
  .section-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-bottom:14px;
  }
  .report-section{
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    background:var(--panel);
    padding:14px;
  }
  .report-section h3{
    margin:0 0 10px;
    font-size:15px;
    letter-spacing:0;
  }
  .report-section p{margin:0 0 10px;color:var(--muted);font-size:13px}
  .intel-section{
    margin:0 0 14px;
    background:
      linear-gradient(135deg,rgba(109,69,230,.13),rgba(37,99,235,.09)),
      var(--panel);
  }
  .intel-head{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start;
    margin-bottom:12px;
  }
  .intel-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
  .intel-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:12px;
  }
  .metric.mini{min-height:86px;padding:12px}
  .intel-body{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:12px;
  }
  .intel-body h4{
    margin:0 0 8px;
    font-size:13px;
    color:var(--ink);
  }
  .bars{display:grid;gap:9px}
  .gap-empty{
    display:grid;
    gap:8px;
  }
  .gap-empty p{
    margin:0 0 2px;
    color:var(--muted);
    font-size:13px;
  }
  .gap-empty-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:40px;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--panel-2);
    padding:8px 10px;
    color:var(--ink-2);
    font-size:12px;
    font-weight:800;
  }
  .gap-empty-row span:first-child{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
  }
  .gap-empty-row span:first-child::before{
    content:"";
    width:32px;
    height:8px;
    border-radius:999px;
    background:var(--grad-soft);
    flex:0 0 auto;
  }
  .gap-empty-row span:last-child{color:var(--muted);font-variant-numeric:tabular-nums}
  .bar-row{display:grid;gap:5px}
  .bar-meta{display:flex;justify-content:space-between;gap:10px;color:var(--ink-2);font-size:12px;font-weight:800}
  .bar-track{height:10px;background:var(--panel-3);border-radius:999px;overflow:hidden}
  .bar-fill{height:100%;width:0;background:var(--grad);border-radius:999px}
  .bar-fill.blue{background:var(--blue)}
  .bar-fill.amber{background:var(--amber)}
  .bar-fill.coral{background:var(--coral)}
  .bar-fill.violet{background:var(--violet)}
  .list{
    display:grid;
    gap:8px;
    margin:0;
    padding:0;
    list-style:none;
  }
  .list li{
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    padding:10px;
    color:var(--ink-2);
    font-size:13px;
    background:var(--panel);
  }
  .list strong{color:var(--ink)}
  .saved-files{
    display:grid;
    gap:8px;
    margin-top:12px;
  }
  .saved-file{
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    padding:10px;
    background:var(--panel);
    font-size:12px;
    color:var(--muted);
  }
  .saved-file strong{display:block;color:var(--ink);font-size:13px}
  .assist-flow{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin-top:12px;
  }
  .assist-disclosure{
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    background:var(--panel);
    padding:10px 12px 12px;
    margin-top:10px;
  }
  .assist-disclosure summary{
    cursor:pointer;
    color:var(--ink);
    font-size:13px;
    font-weight:850;
  }
  .assist-disclosure summary span{
    display:inline-block;
    margin-right:8px;
  }
  .assist-disclosure summary small{
    color:var(--muted);
    font-size:12px;
    font-weight:650;
  }
  .assist-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(174px,226px);
    grid-template-areas:
      "eyebrow action"
      "title action"
      "copy action";
    align-items:center;
    gap:5px 14px;
    min-width:0;
    min-height:0;
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    background:var(--panel);
    padding:12px;
  }
  .assist-card.primary{
    border-color:var(--violet-20);
    background:var(--violet-12);
  }
  .assist-card.subtle{background:var(--panel-2)}
  .assist-card span{
    grid-area:eyebrow;
    color:var(--muted);
    font-size:11px;
    font-weight:850;
    text-transform:uppercase;
  }
  .assist-card strong{
    grid-area:title;
    color:var(--ink);
    font-size:14px;
    line-height:1.25;
  }
  .assist-card p{
    grid-area:copy;
    margin:0;
    color:var(--muted);
    font-size:12px;
    line-height:1.45;
  }
  .assist-card > .btn,
  .assist-card > .file-button,
  .assist-card > .assist-actions{grid-area:action}
  .assist-card .btn,
  .file-button{
    width:100%;
    white-space:nowrap;
  }
  .assist-actions{
    display:grid;
    gap:8px;
  }
  .btn.quiet{
    min-height:42px;
    font-size:12px;
  }
  .file-button{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    border:1px solid var(--line-strong);
    border-radius:999px;
    background:var(--panel);
    color:var(--violet-2);
    padding:11px 18px;
    font-size:14px;
    font-weight:850;
    cursor:pointer;
    text-align:center;
  }
  .file-button:hover{background:var(--violet-12)}
  .file-control{
    position:absolute;
    width:1px;
    min-height:1px;
    height:1px;
    opacity:0;
    overflow:hidden;
    pointer-events:none;
  }
  .assist-note{
    margin:10px 0 0;
    color:var(--muted);
    font-size:12px;
    font-weight:700;
  }
  .checkline{
    display:flex;
    flex-direction:row;
    align-items:flex-start;
    gap:10px;
    margin-top:12px;
    color:var(--ink);
    font-size:13px;
    font-weight:800;
  }
  .checkline input{
    width:18px;
    min-height:18px;
    margin-top:3px;
    flex:0 0 auto;
  }
  .checkline small{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:12px;
    font-weight:650;
    line-height:1.45;
  }
  .assist-code{
    display:block;
    margin-top:8px;
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    padding:10px;
    background:var(--panel-2);
    color:var(--muted);
    font-size:12px;
    overflow-wrap:anywhere;
  }
  .export-menu{
    position:relative;
    display:inline-block;
  }
  .export-menu summary{
    list-style:none;
    min-height:48px;
    border:1px solid var(--line-strong);
    border-radius:999px;
    background:var(--panel);
    color:var(--ink);
    padding:11px 18px;
    font-size:14px;
    font-weight:850;
    cursor:pointer;
    box-shadow:none;
  }
  .export-menu summary::-webkit-details-marker{display:none}
  .export-menu summary::after{
    content:"";
    display:inline-block;
    width:7px;
    height:7px;
    margin-left:9px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg) translateY(-2px);
  }
  .export-menu[open] summary{
    border-color:var(--violet);
    background:var(--violet-12);
    color:var(--violet-2);
  }
  .export-list{
    position:absolute;
    right:0;
    top:calc(100% + 8px);
    z-index:25;
    display:grid;
    gap:8px;
    min-width:244px;
    border:1px solid var(--line-strong);
    border-radius:18px;
    background:var(--panel);
    box-shadow:var(--shadow);
    padding:10px;
  }
  .export-list .btn{
    width:100%;
    justify-content:center;
    white-space:nowrap;
  }
  .model-band{
    padding:52px 0;
    background:var(--panel);
    border-bottom:1px solid var(--line);
  }
  .band-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
  }
  .band-head h2{
    margin:8px 0 0;
    font-size:30px;
    line-height:1.14;
    letter-spacing:0;
  }
  .band-head p{
    margin:0;
    max-width:690px;
    color:var(--muted);
  }
  .diagram-grid{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:16px;
    align-items:stretch;
  }
  .diagram-offset{margin-top:16px}
  .diagram-card{
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    background:var(--panel);
    padding:14px;
    min-height:260px;
  }
  .diagram-card h3{
    margin:0 0 10px;
    font-size:15px;
    letter-spacing:0;
  }
  .diagram-card img{
    width:100%;
    height:240px;
    object-fit:contain;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:var(--r-lg);
  }
  .principles{
    display:grid;
    gap:10px;
  }
  .principle{
    border:1px solid var(--line);
    border-radius:var(--r-lg);
    background:var(--panel);
    padding:12px;
  }
  .principle strong{display:block;margin-bottom:4px}
  .principle p{margin:0;color:var(--muted);font-size:13px}
  .notice{
    padding:36px 0;
    background:var(--soft-amber);
    border-top:1px solid var(--line-strong);
    border-bottom:1px solid var(--line-strong);
  }
  .notice p{
    margin:0;
    color:var(--amber);
    font-size:13px;
  }
  footer{
    padding:34px 0;
    color:var(--muted);
    font-size:13px;
  }
  .theme-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    border:1px solid var(--line-strong);
    border-radius:999px;
    background:var(--panel);
    color:var(--ink-2);
    font-weight:850;
    font-size:12px;
    padding:8px 13px;
    cursor:pointer;
  }
  .theme-toggle:hover{border-color:var(--violet);color:var(--violet-2)}
  .foot{
    display:flex;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
  }
  .hide{display:none !important}
  @media(max-width:1080px){
    .portal-grid,.property-hero,.diagram-grid{grid-template-columns:1fr}
    .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  @media(max-width:760px){
    .wrap{padding:0 16px}
    .nav{height:auto;min-height:62px;padding:10px 0;align-items:flex-start}
    .nav-links{display:none}
    .portal-shell{padding-top:24px}
    .portal-kicker,.band-head{display:block;width:100%}
    .portal-kicker > .pill,.band-head > .pill{margin-top:12px}
    .portal-title{min-width:0;width:100%;max-width:calc(100vw - 32px)}
    .portal-title h1{font-size:25px;line-height:1.14;max-width:100%;overflow-wrap:anywhere}
    .portal-title p{font-size:15px;max-width:100%;overflow-wrap:anywhere}
    .grid-2,.grid-3,.url-row,.reader-meters,.reader-stage-grid,.section-grid,.metric-grid,.assist-flow,.portal-stepper,.portal-guide,.intel-grid,.intel-body{grid-template-columns:1fr}
    .assist-card{
      grid-template-columns:1fr;
      grid-template-areas:"eyebrow" "title" "copy" "action";
      align-items:stretch;
    }
    .export-menu{width:100%}
    .export-menu summary{display:flex;align-items:center;justify-content:center;width:100%}
    .export-list{position:static;margin-top:8px;min-width:0}
    .intel-head{flex-direction:column}
    .intel-actions{justify-content:flex-start}
    .property-title h2{font-size:23px}
    .panel-head{flex-direction:column}
    .report-toolbar{justify-content:flex-start}
  }
