/* ============================================================
   BUSINESS CREDIT BUILDER — design tokens (light-first)
   ============================================================ */
:root{
  --paper:#f5f7f9; --surface:#ffffff; --surface-2:#eef2f5; --surface-3:#e6ecf1;
  --ink:#14233b; --ink-2:#3a4a60; --ink-3:#657288; --line:#dbe3ea; --line-2:#c8d3dd;
  --accent:#0f6d7a; --accent-ink:#0b535d; --accent-soft:#e2f0f2; --accent-2:#0a4a54;
  --focus:#1591a4;
  --g-gray:#697586; --g-gray-bg:#eceff2;
  --g-blue:#1f6feb; --g-blue-bg:#e5eefc;
  --g-amber:#b7791f; --g-amber-bg:#fbf1dc;
  --g-green:#1a7f47; --g-green-bg:#e2f3e8;
  --g-red:#c1362f; --g-red-bg:#fbe6e4;
  --g-purple:#6c46c9; --g-purple-bg:#eee7fb;
  --shadow-sm:0 1px 2px rgba(20,35,59,.06),0 1px 3px rgba(20,35,59,.05);
  --shadow:0 4px 12px rgba(20,35,59,.08),0 2px 4px rgba(20,35,59,.05);
  --shadow-lg:0 12px 40px rgba(20,35,59,.16);
  --radius:12px; --radius-sm:8px; --radius-lg:18px;
  --sans:"Inter var","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"SFMono-Regular",ui-monospace,"Cascadia Code","Segoe UI Mono",Menlo,Consolas,monospace;
  --sidebar-w:250px;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#0d141d; --surface:#121c28; --surface-2:#17222f; --surface-3:#1e2b3a;
    --ink:#e8eef4; --ink-2:#b3c0cf; --ink-3:#7f8ea0; --line:#25323f; --line-2:#33424f;
    --accent:#37c0cf; --accent-ink:#7ad8e2; --accent-soft:#123039; --accent-2:#5fd3df;
    --focus:#48c9d8;
    --g-gray:#94a2b3; --g-gray-bg:#1c2733;
    --g-blue:#5b9bff; --g-blue-bg:#152538;
    --g-amber:#e0a944; --g-amber-bg:#2e2412;
    --g-green:#4bbd75; --g-green-bg:#12271b;
    --g-red:#f0736a; --g-red-bg:#301716;
    --g-purple:#a687f0; --g-purple-bg:#211a34;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4);
    --shadow:0 6px 18px rgba(0,0,0,.45);
    --shadow-lg:0 16px 48px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --paper:#0d141d; --surface:#121c28; --surface-2:#17222f; --surface-3:#1e2b3a;
  --ink:#e8eef4; --ink-2:#b3c0cf; --ink-3:#7f8ea0; --line:#25323f; --line-2:#33424f;
  --accent:#37c0cf; --accent-ink:#7ad8e2; --accent-soft:#123039; --accent-2:#5fd3df;
  --focus:#48c9d8;
  --g-gray:#94a2b3; --g-gray-bg:#1c2733;
  --g-blue:#5b9bff; --g-blue-bg:#152538;
  --g-amber:#e0a944; --g-amber-bg:#2e2412;
  --g-green:#4bbd75; --g-green-bg:#12271b;
  --g-red:#f0736a; --g-red-bg:#301716;
  --g-purple:#a687f0; --g-purple-bg:#211a34;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow:0 6px 18px rgba(0,0,0,.45);
  --shadow-lg:0 16px 48px rgba(0,0,0,.6);
}
:root[data-theme="light"]{
  --paper:#f5f7f9; --surface:#ffffff; --surface-2:#eef2f5; --surface-3:#e6ecf1;
  --ink:#14233b; --ink-2:#3a4a60; --ink-3:#657288; --line:#dbe3ea; --line-2:#c8d3dd;
  --accent:#0f6d7a; --accent-ink:#0b535d; --accent-soft:#e2f0f2; --accent-2:#0a4a54;
  --focus:#1591a4;
  --g-gray:#697586; --g-gray-bg:#eceff2;
  --g-blue:#1f6feb; --g-blue-bg:#e5eefc;
  --g-amber:#b7791f; --g-amber-bg:#fbf1dc;
  --g-green:#1a7f47; --g-green-bg:#e2f3e8;
  --g-red:#c1362f; --g-red-bg:#fbe6e4;
  --g-purple:#6c46c9; --g-purple-bg:#eee7fb;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans); background:var(--paper); color:var(--ink);
  font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased;
  font-feature-settings:"cv05","ss01"; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{margin:0; font-weight:680; line-height:1.2; text-wrap:balance; letter-spacing:-.01em}
h1{font-size:1.6rem} h2{font-size:1.22rem} h3{font-size:1.02rem} h4{font-size:.9rem}
p{margin:0 0 .6em} a{color:var(--accent-ink)}
button{font-family:inherit; cursor:pointer}
.tnum{font-variant-numeric:tabular-nums}
:focus-visible{outline:2.5px solid var(--focus); outline-offset:2px; border-radius:4px}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:8px;border:3px solid var(--paper)}
.hidden{display:none !important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);background:var(--surface);
  color:var(--ink);padding:9px 15px;border-radius:var(--radius-sm);font-weight:600;font-size:.87rem;
  transition:.14s;white-space:nowrap;text-decoration:none;line-height:1.1}
.btn:hover{background:var(--surface-2);border-color:var(--ink-3)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.ghost:hover{background:var(--surface-2)}
.btn.danger{color:var(--g-red);border-color:var(--line-2)}
.btn.danger:hover{background:var(--g-red-bg);border-color:var(--g-red)}
.btn.sm{padding:6px 10px;font-size:.8rem}
.btn.block{width:100%;justify-content:center}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---------- layout ---------- */
#app{min-height:100vh}
.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}
.sidebar{background:var(--surface);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;
  overflow-y:auto;display:flex;flex-direction:column;z-index:40}
.brand{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line)}
.brand-mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(150deg,var(--accent),var(--accent-2));
  display:grid;place-items:center;color:#fff;font-weight:800;font-size:1rem;flex:none;box-shadow:var(--shadow-sm)}
.brand-name{font-weight:720;font-size:.98rem;letter-spacing:-.02em;line-height:1.05}
.brand-name small{display:block;font-weight:500;font-size:.66rem;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;margin-top:2px}
.biz-picker{padding:12px 14px;border-bottom:1px solid var(--line)}
.biz-picker label{font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:700;display:block;margin-bottom:5px}
.biz-picker select{width:100%;padding:9px 10px;border:1px solid var(--line-2);border-radius:var(--radius-sm);
  background:var(--surface-2);color:var(--ink);font-family:inherit;font-size:.85rem;font-weight:600}
.nav{flex:1;padding:8px 8px 20px;overflow-y:auto}
.nav-group{margin-top:10px}
.nav-group-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);
  font-weight:700;padding:8px 12px 5px}
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);
  color:var(--ink-2);font-weight:560;font-size:.87rem;cursor:pointer;transition:.12s;border:none;background:none;width:100%;text-align:left}
.nav-item:hover{background:var(--surface-2);color:var(--ink)}
.nav-item.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:680}
.nav-item .ico{width:18px;text-align:center;flex:none;font-size:.95rem}
.nav-item .badge-count{margin-left:auto;background:var(--g-red);color:#fff;font-size:.66rem;font-weight:700;
  padding:1px 6px;border-radius:9px;min-width:18px;text-align:center}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;
  padding:11px 22px}
.topbar .hamburger{display:none}
.topbar-title{font-weight:700;font-size:1.02rem;letter-spacing:-.01em}
.topbar-crumb{color:var(--ink-3);font-size:.8rem}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.icon-btn{width:36px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--surface);
  display:grid;place-items:center;font-size:1rem;position:relative;color:var(--ink-2)}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn .dot{position:absolute;top:6px;right:7px;width:8px;height:8px;border-radius:50%;background:var(--g-red);border:2px solid var(--surface)}
.content{padding:24px 26px 80px;max-width:1240px;width:100%;margin:0 auto;flex:1}
.page-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.page-head .ph-text{min-width:0}
.page-head h1{margin-bottom:3px}
.page-head .sub{color:var(--ink-3);font-size:.9rem}
.page-head .ph-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}

/* ---------- cards ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.card.pad{padding:18px}
.card-h{padding:15px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.card-h h3{font-size:.98rem}
.card-h .card-h-actions{margin-left:auto;display:flex;gap:7px}
.card-b{padding:18px}
.grid{display:grid;gap:16px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;box-shadow:var(--shadow-sm)}
.stat .lbl{font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:670;display:flex;align-items:center;gap:6px}
.stat .val{font-size:1.7rem;font-weight:720;margin-top:6px;letter-spacing:-.02em;line-height:1}
.stat .val small{font-size:.85rem;font-weight:600;color:var(--ink-3)}
.stat .foot{font-size:.74rem;color:var(--ink-3);margin-top:6px}
.stat.accent{background:linear-gradient(160deg,var(--accent-soft),var(--surface))}
.stat.warn .val{color:var(--g-red)}

/* ---------- progress ---------- */
.pbar{height:9px;border-radius:6px;background:var(--surface-3);overflow:hidden}
.pbar > span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .5s}
.pbar.sm{height:6px}
.ring{--v:0;width:112px;height:112px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:conic-gradient(var(--accent) calc(var(--v)*1%),var(--surface-3) 0)}
.ring::before{content:"";position:absolute;width:84px;height:84px;border-radius:50%;background:var(--surface)}
.ring .rv{position:relative;text-align:center;font-weight:750;font-size:1.5rem;letter-spacing:-.02em}
.ring .rv small{display:block;font-size:.6rem;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.ring-wrap{position:relative;display:grid;place-items:center}

/* ---------- status pills ---------- */
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:.72rem;font-weight:670;
  border:1px solid transparent;white-space:nowrap;line-height:1.3}
.pill .pico{font-size:.7rem}
.pill.gray{background:var(--g-gray-bg);color:var(--g-gray);border-color:color-mix(in srgb,var(--g-gray) 30%,transparent)}
.pill.blue{background:var(--g-blue-bg);color:var(--g-blue);border-color:color-mix(in srgb,var(--g-blue) 30%,transparent)}
.pill.amber{background:var(--g-amber-bg);color:var(--g-amber);border-color:color-mix(in srgb,var(--g-amber) 30%,transparent)}
.pill.green{background:var(--g-green-bg);color:var(--g-green);border-color:color-mix(in srgb,var(--g-green) 30%,transparent)}
.pill.red{background:var(--g-red-bg);color:var(--g-red);border-color:color-mix(in srgb,var(--g-red) 30%,transparent)}
.pill.purple{background:var(--g-purple-bg);color:var(--g-purple);border-color:color-mix(in srgb,var(--g-purple) 30%,transparent)}

/* ---------- external action card ---------- */
.external-action{border:1.5px solid var(--accent);border-radius:var(--radius);overflow:hidden;
  background:linear-gradient(175deg,var(--accent-soft),var(--surface));margin:14px 0;box-shadow:var(--shadow-sm)}
.external-action__label{background:var(--accent);color:#fff;font-size:.66rem;font-weight:750;letter-spacing:.1em;
  text-transform:uppercase;padding:6px 14px;display:flex;align-items:center;gap:7px}
.external-action__body{padding:14px}
.external-action__button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:14px 18px;font-weight:700;
  font-size:.96rem;text-decoration:none;transition:.15s;letter-spacing:.01em;text-align:left}
.external-action__button:hover{background:var(--accent-2);transform:translateY(-1px);box-shadow:var(--shadow)}
.external-action__button .arrow{font-size:1.2rem;flex:none}
.external-action__url{font-family:var(--mono);font-size:.82rem;color:var(--accent-ink);margin-top:10px;font-weight:600;
  display:flex;align-items:center;gap:6px}
.external-action__details{margin-top:10px;font-size:.82rem;color:var(--ink-2);display:grid;gap:2px}
.external-action__details strong{color:var(--ink)}
.external-action__tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.ea-tag{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:6px;letter-spacing:.02em}
.ea-tag.official{background:var(--g-green-bg);color:var(--g-green)}
.ea-tag.third{background:var(--g-amber-bg);color:var(--g-amber)}
.ea-tag.free{background:var(--g-blue-bg);color:var(--g-blue)}
.ea-tag.paid{background:var(--g-purple-bg);color:var(--g-purple)}
.external-action__warn{margin-top:10px;background:var(--g-amber-bg);border:1px solid color-mix(in srgb,var(--g-amber) 35%,transparent);
  color:var(--g-amber);padding:8px 11px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;display:flex;gap:8px}
.external-action__verified{margin-top:8px;font-size:.72rem;color:var(--ink-3)}

/* ---------- banners / alerts ---------- */
.banner{border-radius:var(--radius);padding:13px 16px;display:flex;gap:11px;align-items:flex-start;font-size:.87rem;font-weight:500;border:1px solid}
.banner .bi{font-size:1.05rem;flex:none;margin-top:1px}
.banner.warn{background:var(--g-amber-bg);border-color:color-mix(in srgb,var(--g-amber) 35%,transparent);color:var(--g-amber)}
.banner.warn strong{color:var(--ink)}
.banner.info{background:var(--g-blue-bg);border-color:color-mix(in srgb,var(--g-blue) 30%,transparent);color:var(--g-blue)}
.banner.danger{background:var(--g-red-bg);border-color:color-mix(in srgb,var(--g-red) 30%,transparent);color:var(--g-red)}
.banner.success{background:var(--g-green-bg);border-color:color-mix(in srgb,var(--g-green) 30%,transparent);color:var(--g-green)}

/* ---------- tables ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line)}
table.data{width:100%;border-collapse:collapse;font-size:.86rem;background:var(--surface);min-width:520px}
table.data th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);
  font-weight:700;padding:11px 13px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
table.data td{padding:11px 13px;border-bottom:1px solid var(--line);vertical-align:middle}
table.data tr:last-child td{border-bottom:none}
table.data tbody tr{transition:.1s}
table.data tbody tr:hover{background:var(--surface-2)}
table.data .rowlink{cursor:pointer}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}
.field label{font-size:.78rem;font-weight:640;color:var(--ink-2)}
.field label .req{color:var(--g-red)}
.field input,.field select,.field textarea{padding:9px 11px;border:1px solid var(--line-2);border-radius:var(--radius-sm);
  background:var(--surface);color:var(--ink);font-family:inherit;font-size:.88rem;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.field textarea{resize:vertical;min-height:70px}
.field .hint{font-size:.72rem;color:var(--ink-3)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0 16px}
.form-section{margin-bottom:22px}
.form-section > h3{margin-bottom:12px;padding-bottom:7px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.checklist{display:flex;flex-direction:column;gap:2px}
.check-item{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer}
.check-item:hover{background:var(--surface-2)}
.check-item input{margin-top:2px;width:17px;height:17px;flex:none;accent-color:var(--accent)}
.check-item.done label{color:var(--ink-3);text-decoration:line-through}
.check-item label{font-size:.87rem;cursor:pointer}

/* ---------- modal ---------- */
.modal-back{position:fixed;inset:0;background:rgba(9,16,26,.5);backdrop-filter:blur(3px);z-index:100;
  display:flex;align-items:flex-start;justify-content:center;padding:34px 16px;overflow-y:auto}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  width:100%;max-width:640px;margin:auto;animation:pop .16s ease}
.modal.wide{max-width:920px}
@keyframes pop{from{transform:translateY(8px) scale(.99);opacity:0}to{transform:none;opacity:1}}
.modal-h{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.modal-h h2{font-size:1.1rem}
.modal-h .x{margin-left:auto;width:32px;height:32px;border-radius:8px;border:none;background:var(--surface-2);font-size:1.1rem;color:var(--ink-2)}
.modal-h .x:hover{background:var(--surface-3)}
.modal-b{padding:20px;max-height:70vh;overflow-y:auto}
.modal-f{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap}

/* ---------- misc ---------- */
.empty{text-align:center;padding:46px 20px;color:var(--ink-3)}
.empty .ei{font-size:2.4rem;opacity:.5;margin-bottom:10px}
.empty h3{color:var(--ink-2);margin-bottom:5px}
.chips{display:flex;gap:7px;flex-wrap:wrap}
.chip{background:var(--surface-2);border:1px solid var(--line);border-radius:20px;padding:5px 11px;font-size:.78rem;font-weight:560;display:inline-flex;gap:6px;align-items:center;cursor:pointer;color:var(--ink-2)}
.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}
.divider{height:1px;background:var(--line);margin:16px 0;border:none}
.two-col{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}
.kv{display:grid;grid-template-columns:150px 1fr;gap:4px 12px;font-size:.86rem}
.kv dt{color:var(--ink-3);font-weight:560}
.kv dd{margin:0;font-weight:560}
.toast-wrap{position:fixed;bottom:22px;right:22px;z-index:200;display:flex;flex-direction:column;gap:9px;max-width:340px}
.toast{background:var(--ink);color:#fff;padding:12px 15px;border-radius:var(--radius);box-shadow:var(--shadow-lg);
  font-size:.86rem;font-weight:560;display:flex;gap:9px;align-items:center;animation:slidein .2s ease}
.toast.good{background:var(--g-green)} .toast.bad{background:var(--g-red)} .toast.warn2{background:var(--g-amber)}
@keyframes slidein{from{transform:translateX(20px);opacity:0}to{transform:none;opacity:1}}
.accordion-h{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;user-select:none}
.accordion-h:hover{background:var(--surface-2)}
.accordion-h .chev{transition:.2s;color:var(--ink-3)}
.accordion.open .accordion-h .chev{transform:rotate(90deg)}
.accordion-b{display:none;padding:0 16px 16px;border-top:1px solid var(--line)}
.accordion.open .accordion-b{display:block}
.phase-num{width:30px;height:30px;border-radius:8px;background:var(--accent-soft);color:var(--accent-ink);
  display:grid;place-items:center;font-weight:750;font-size:.9rem;flex:none}
.phase-num.done{background:var(--g-green-bg);color:var(--g-green)}
.mini-prog{font-size:.76rem;color:var(--ink-3);font-weight:600;white-space:nowrap}
.task-row{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);
  margin-top:8px;cursor:pointer;transition:.12s;background:var(--surface)}
.task-row:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.task-row .tr-name{font-weight:620;font-size:.9rem}
.task-row .tr-meta{font-size:.74rem;color:var(--ink-3);margin-top:2px;display:flex;gap:10px;flex-wrap:wrap}
.task-row .tr-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex:none}
.timeline-block{border-left:2.5px solid var(--line);padding:0 0 4px 20px;position:relative;margin-left:6px}
.timeline-block::before{content:"";position:absolute;left:-8px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--accent)}
.timeline-block.done::before{background:var(--g-green);border-color:var(--g-green)}
.timeline-block h4{margin-bottom:3px}
.timeline-block .tb-range{font-size:.72rem;color:var(--accent-ink);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:22px;
  background:radial-gradient(1100px 500px at 50% -10%,var(--accent-soft),var(--paper))}
.login-card{width:100%;max-width:420px}
.login-card .lc-head{text-align:center;margin-bottom:22px}
.login-card .brand-mark{width:52px;height:52px;font-size:1.5rem;margin:0 auto 12px}
.demo-accts{display:grid;gap:7px;margin-top:14px}
.demo-acct{border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 12px;font-size:.8rem;
  display:flex;align-items:center;gap:9px;cursor:pointer;background:var(--surface-2)}
.demo-acct:hover{border-color:var(--accent)}
.demo-acct .role-dot{width:9px;height:9px;border-radius:50%;flex:none}
.act-item{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.84rem}
.act-item:last-child{border:none}
.act-item .ai-ico{width:30px;height:30px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;flex:none}
.act-item .ai-time{margin-left:auto;color:var(--ink-3);font-size:.74rem;white-space:nowrap}
.readiness-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:20px;font-weight:700;font-size:.82rem}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--radius-sm);overflow:hidden}
.seg button{border:none;background:var(--surface);padding:7px 13px;font-size:.82rem;font-weight:600;color:var(--ink-2);border-right:1px solid var(--line)}
.seg button:last-child{border-right:none}
.seg button.active{background:var(--accent);color:#fff}

@media (max-width:1000px){
  .two-col{grid-template-columns:1fr}
}
@media (max-width:820px){
  :root{--sidebar-w:0px}
  .app-shell{grid-template-columns:1fr}
  .sidebar{position:fixed;left:0;top:0;width:270px;transform:translateX(-100%);transition:.24s;box-shadow:var(--shadow-lg)}
  .sidebar.open{transform:none}
  .topbar .hamburger{display:grid}
  .content{padding:18px 15px 70px}
  .kv{grid-template-columns:1fr}
  .kv dt{margin-top:6px}
  .sidebar-scrim{position:fixed;inset:0;background:rgba(9,16,26,.4);z-index:39}
}
@media (max-width:480px){
  .stat-grid{grid-template-columns:1fr 1fr}
  .stat .val{font-size:1.4rem}
  .page-head .ph-actions{width:100%}
}
@media print{
  .sidebar,.topbar,.no-print{display:none !important}
  .app-shell{display:block}
  body{background:#fff}
  .card{box-shadow:none;break-inside:avoid}
  .content{max-width:none;padding:0}
}
