
/* =============================================================================================
   FORMCEPT Decision Studio — design tokens (FORMCEPT 2026 brand book)
   -------------------------------------------------------------------------------------------
   Orange FE5000 is reserved for action and decision moments: the primary button, the active
   stage, the "decide" affordance. It is never used as a surface or as body text. Everything
   structural is Deep Indigo / Purple; everything quiet is Silver / Mist; text is Onyx.
   Every token below is redefined for the dark theme, so a token can be used anywhere without
   checking whether it survives the theme switch.
   ============================================================================================= */
:root{
  /* --- brand constants (identical in both themes) ------------------------------------------ */
  --fc-orange:#FE5000; --fc-indigo:#080030; --fc-purple:#312E81;
  --fc-silver:#A6A6A6; --fc-mist:#EAEDFF; --fc-soft:#FEF5F5; --fc-onyx:#161616;

  /* --- typography -------------------------------------------------------------------------- */
  --font-display:"Open Sans","Segoe UI",ui-sans-serif,system-ui,-apple-system,Roboto,sans-serif;
  --font-ui:"Google Sans Flex","Google Sans","Open Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --fs-xs:11.5px; --fs-sm:12.5px; --fs-md:14px; --fs-lg:16px; --fs-xl:20px; --fs-2xl:24px; --fs-3xl:30px;
  --lh-tight:1.24; --lh-body:1.5; --lh-config:1.6;
  --track-eyebrow:.11em;

  /* --- space / shape / motion -------------------------------------------------------------- */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:22px; --sp-6:30px; --sp-7:40px;
  --r-sm:7px; --r-md:10px; --r-lg:14px; --r-xl:20px; --r-pill:999px;
  --dur-1:110ms; --dur-2:190ms; --dur-3:320ms;
  --ease:cubic-bezier(.22,.61,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --z-drawer:60; --z-palette:90; --z-modal:100; --z-toast:120; --z-tip:130;

  /* --- categorical series (colour-blind-safe order, orange kept for the focal series) ------- */
  --s1:#312E81; --s2:#FE5000; --s3:#2F8065; --s4:#B17600; --s5:#8061A8; --s6:#27784C; --s7:#080030; --s8:#B3483E;
  --grid:#E9E5EE;

  /* --- structural palette ------------------------------------------------------------------ */
  --navy:#080030; --navy-2:#171047; --navy-3:#312E81;
  --orange:#FE5000; --orange-2:#D94500; --orange-soft:#FFF1EA; --orange-ring:rgba(254,80,0,.34);
  --bg:#FBF9FC; --bg-accent:#FEF5F5;
  --panel:#FFFFFF; --panel-2:#FAF9FF; --panel-3:#F4F2F9; --panel-inset:#F7F5FB;
  --text:#161616; --text-strong:#080030; --muted:#65606D; --muted-2:#8B8698;
  --line:#E4E0E9; --line-2:#F1EEF4; --line-strong:#CFC9DB;
  --on-accent:#FFFFFF;

  /* --- status ------------------------------------------------------------------------------ */
  --good:#187342; --good-soft:#EAF7EF; --warn:#8A5B00; --warn-soft:#FFF5DF;
  --bad:#A5362C;  --bad-soft:#FFF0ED;  --info:#312E81; --info-soft:#EAEDFF;

  /* --- elevation --------------------------------------------------------------------------- */
  --shadow-1:0 1px 2px rgba(8,0,48,.06),0 1px 1px rgba(8,0,48,.04);
  --shadow:0 8px 28px rgba(8,0,48,.07);
  --shadow-2:0 14px 40px rgba(8,0,48,.11);
  --shadow-3:0 28px 70px rgba(8,0,48,.20);
  --focus:0 0 0 3px var(--orange-ring);
  --skeleton-1:#EEEAF3; --skeleton-2:#F8F6FB;
  --scrim:rgba(8,0,48,.42);
}
html[data-theme="dark"], body.dark{
  --s1:#8F8BE8; --s2:#FF7A38; --s3:#57C29B; --s4:#E0A93B; --s5:#B79BE0; --s6:#5FCB90; --s7:#C3BEF5; --s8:#F08A7E;
  --grid:#2E2853;
  --orange-soft:#3A1B0C; --orange-ring:rgba(255,122,56,.36);
  --bg:#07032A; --bg-accent:#0B0538;
  --panel:#120B3B; --panel-2:#171047; --panel-3:#1D1552; --panel-inset:#0E0834;
  --text:#F6F5FF; --text-strong:#FFFFFF; --muted:#B7B1CE; --muted-2:#8D87A9;
  --line:#2C2557; --line-2:#1E1747; --line-strong:#463D7D;
  --good:#54D08C; --good-soft:#0F3527; --warn:#E6B14A; --warn-soft:#37290D;
  --bad:#FF8B7C;  --bad-soft:#3C1A17;  --info:#A9A3F5; --info-soft:#1E1856;
  --shadow-1:0 1px 2px rgba(0,0,0,.44);
  --shadow:0 10px 30px rgba(0,0,0,.42);
  --shadow-2:0 18px 48px rgba(0,0,0,.52);
  --shadow-3:0 30px 76px rgba(0,0,0,.66);
  --skeleton-1:#1B1447; --skeleton-2:#241C5C;
  --scrim:rgba(2,0,14,.62);
  color-scheme:dark;
}
@media (prefers-reduced-motion:reduce){
  :root{--dur-1:0ms; --dur-2:0ms; --dur-3:0ms}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:var(--fs-md)/var(--lh-body) var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,.eyebrow,.brand-tagline{font-family:var(--font-display)}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}
a{color:var(--info)}
.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
aside{background:linear-gradient(180deg,var(--fc-indigo) 0%,#130B4F 100%);color:#fff;padding:22px 14px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;box-shadow:10px 0 34px rgba(8,0,48,.10)}
.brand{display:grid;gap:7px;margin:2px 5px 24px;padding:4px 2px 13px;border-bottom:1px solid rgba(255,255,255,.10)}
.brand-lockup{display:block;width:168px;max-width:100%;height:auto}
.brand small{display:block;color:#D7D3E8;opacity:.88;font-size:10.5px;letter-spacing:.045em;margin-left:1px}
nav{display:flex;flex-direction:column;gap:3px}
nav button{display:flex;align-items:center;gap:10px;background:transparent;color:#cfdbea;border:0;text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer;font:inherit}
nav button:hover{background:var(--navy-2);color:#fff}
nav button.active{background:rgba(49,46,129,.86);color:#fff;box-shadow:inset 3px 0 0 var(--fc-orange)}
nav .dot{width:7px;height:7px;border-radius:50%;background:#5b7ba0}
nav button.active .dot{background:var(--orange)}
.ctxbox{margin:22px 4px 0;padding:12px;border-radius:10px;background:var(--navy-2);font-size:12px;color:#cfdbea}
.ctxbox b{color:#fff;display:block;font-size:13px;margin-bottom:2px;word-break:break-all}
.aside-foot{margin-top:auto;display:grid;gap:10px;padding:0 4px}
.aside-foot button{background:transparent;border:1px solid rgba(234,237,255,.28);color:#F4F2FF;border-radius:8px;padding:7px;cursor:pointer;font:inherit}
.aside-foot small{font-size:10px;opacity:.62;line-height:1.45}.brand-tagline{font-size:10.5px;font-weight:700;letter-spacing:.025em;color:#fff;opacity:.88}
main{padding:22px 28px 60px;min-width:0}
header.top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}
h1{margin:0;font-size:24px;letter-spacing:-.01em}
header.top p{margin:4px 0 0;color:var(--muted)}
.health-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.pill{border:1px solid var(--line);background:var(--panel);padding:5px 10px;border-radius:99px;font-size:12px;color:var(--muted);white-space:nowrap}
.pill.ok{color:var(--good);border-color:color-mix(in srgb,var(--good) 35%,var(--line))}
.pill.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
.tab{display:none}.tab.active{display:block}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow)}
.card h2{margin:0 0 6px;font-size:16px}
.card h3{margin:14px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.card p.sub{margin:0 0 12px;color:var(--muted)}
label{display:grid;gap:5px;color:var(--muted);font-size:12.5px;margin:10px 0}
input,textarea,select{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;padding:9px 10px;font:inherit}
input:focus,textarea:focus,select:focus{outline:2px solid color-mix(in srgb,var(--orange) 45%,transparent);border-color:var(--orange)}
textarea{min-height:120px;resize:vertical}
button{border:1px solid var(--line);background:var(--panel);color:var(--text);padding:8px 12px;border-radius:8px;cursor:pointer;font:inherit}
button:hover{border-color:color-mix(in srgb,var(--navy) 35%,var(--line))}
button:disabled{opacity:.5;cursor:not-allowed}
.primary{background:var(--orange);border-color:var(--orange);color:#fff;font-weight:650}
.primary:hover{background:var(--orange-2);border-color:var(--orange-2)}
.navybtn{background:var(--navy);border-color:var(--navy);color:#fff}
.sm{padding:4px 9px;font-size:12px;border-radius:7px}
a.button{display:inline-flex;align-items:center;text-decoration:none;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:8px 12px;border-radius:8px;cursor:pointer;font:inherit}
a.button.sm{padding:4px 9px;font-size:12px;border-radius:7px}
.linkbtn{border:0;background:transparent;color:var(--purple);padding:0;text-decoration:underline;font-weight:650}
.good-btn{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,var(--line))}
.bad-btn{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.toolbar input{flex:1;min-width:220px}
.toolbar select{width:auto;min-width:130px}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.stat{padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}
.stat b{font-size:20px;display:block;font-variant-numeric:tabular-nums}
.stat small{color:var(--muted);font-size:11.5px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--panel-2);padding:3px 8px;border-radius:99px;font-size:11.5px;color:var(--muted)}
.chip.o{border-color:color-mix(in srgb,var(--orange) 40%,var(--line));color:var(--orange-2);background:var(--orange-soft)}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:650;letter-spacing:.02em;white-space:nowrap}
.b-approved,.b-EXECUTABLE,.b-VERIFIED,.b-AVAILABLE,.b-stable,.b-accepted,.b-human-reviewed,.b-EXECUTION_SAFE,.b-resolved,.b-SEMANTICALLY_VALID,.b-SAFE_BY_IDEMPOTENT_AGGREGATION,.b-SAFE_BY_GOVERNED_ALLOCATION,.b-not_required,.b-auto_accepted{background:var(--good-soft);color:var(--good)}
.b-candidate,.b-REVIEW,.b-NEEDS_APPROVAL,.b-PARTIAL,.b-SPARSE,.b-SCHEMA_ONLY,.b-draft,.b-informational,.b-candidate_cov,.b-NEEDS_TEMPORAL_GOVERNANCE,.b-NEEDS_MAPPING_APPROVAL,.b-pending,.b-pending_approval,.b-APPROVAL_REQUIRED,.b-TEMPORAL_GOVERNANCE_REQUIRED{background:var(--warn-soft);color:var(--warn)}
.b-rejected,.b-BLOCKED,.b-REJECTED,.b-FANOUT_RISK,.b-UNAVAILABLE,.b-DATA_NOT_AVAILABLE,.b-SPLIT_ACROSS_VIEWS,.b-UNBOUND,.b-deprecated,.b-PARTIALLY_RESOLVED,.b-NEEDS_SEMANTIC_BINDING,.b-ANTECEDENT_MISSING,.b-unresolved,.b-UNREACHABLE,.b-VIEW_BINDING_MISSING{background:var(--bad-soft);color:var(--bad)}
.b-info{background:var(--info-soft);color:var(--info)}
.b-scope{background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-weight:600;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--panel-2);position:sticky;top:0}
td{padding:9px 10px;border-bottom:1px solid var(--line-2);vertical-align:top}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--panel-2)}
.tablewrap{max-height:62vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.mono{font-family:var(--mono);font-size:12px}
.muted{color:var(--muted)}
.small{font-size:12px}
pre{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:12px 13px;overflow:auto;font-size:13px;line-height:1.58;max-height:420px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}
.hint{background:var(--info-soft);color:var(--info);border-radius:10px;padding:10px 12px;margin-bottom:14px;font-size:13px}
.drawer{position:fixed;top:0;right:0;width:min(640px,100vw);height:100vh;background:var(--panel);border-left:1px solid var(--line);box-shadow:-10px 0 30px rgba(11,39,72,.12);z-index:30;overflow:auto;padding:20px 22px;transform:translateX(105%);transition:transform .2s ease}
.drawer.open{transform:none}
.drawer .close{position:absolute;right:16px;top:14px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:13px}
.kv div:nth-child(odd){color:var(--muted)}
.hero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-3) 100%);color:#fff;border-radius:14px;padding:22px 24px;margin-bottom:16px}
.hero h2{margin:0 0 4px;font-size:22px}
.hero p{margin:0 0 14px;color:#c8d6e8}
.hero textarea{background:#fff;color:#13223a;border:0;min-height:110px}
.hero .row label{color:#e3ecf7;margin:0;display:flex;gap:6px;align-items:center}
.card .row label{margin:0;display:flex;gap:6px;align-items:center}
.hero .row label input{width:auto}
.hero select{width:auto;background:#fff;color:#13223a}
.examples{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.examples button{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25);font-size:12px;padding:5px 9px}
.icard{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:16px;box-shadow:var(--shadow);overflow:hidden}
.icard .ihead{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.icard .ihead h3{margin:0;font-size:17px}
.icard .ihead .src{color:var(--muted);font-size:12.5px;margin-top:4px;white-space:pre-wrap}
.meters{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px;padding:12px 18px;border-bottom:1px solid var(--line-2)}
.meter small{color:var(--muted);font-size:11.5px;display:block;margin-bottom:4px}
.meter b{font-size:18px;font-variant-numeric:tabular-nums}
.bar{height:6px;border-radius:9px;background:var(--line-2);overflow:hidden;margin-top:5px}
.bar i{display:block;height:100%;background:var(--navy)}
.bar.o i{background:var(--orange)}
.ibody{padding:12px 18px 16px}
.comp{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:var(--panel-2)}
.comp .ct{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.comp .ct b{font-size:14px}
.role{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-2);font-weight:700}
.sect{margin-top:12px}
.sect h4{margin:0 0 6px;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.issue{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:8px;border:1px solid var(--line);margin-bottom:6px;background:var(--panel)}
.issue .code{font-family:var(--mono);font-size:11px;font-weight:700}
.issue.semantic .code{color:var(--bad)}
.issue.governance .code{color:var(--warn)}
.issue.execution .code{color:var(--bad)}
.cov{display:flex;flex-wrap:wrap;gap:6px}
.cov span{border-radius:7px;padding:3px 8px;font-size:12px;border:1px solid var(--line)}
.cov .resolved{background:var(--good-soft);color:var(--good);border-color:transparent}
.cov .candidate{background:var(--info-soft);color:var(--info);border-color:transparent}
.cov .pending_approval{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.cov .unresolved{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.cov i{font-style:normal;opacity:.65;font-size:10.5px;margin-left:4px}
.maprow{display:grid;grid-template-columns:1.1fr 1.6fr .9fr auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:13px}
.maprow select{padding:5px 7px;font-size:12px}
details summary{cursor:pointer;color:var(--muted);font-size:12.5px;margin:6px 0}
.empty{color:var(--muted);text-align:center;padding:28px}
.toast{position:fixed;bottom:18px;right:18px;background:var(--navy);color:#fff;padding:10px 14px;border-radius:10px;z-index:50;box-shadow:var(--shadow);max-width:440px;opacity:0;transition:opacity .2s}
.toast.show{opacity:1}
.toast.err{background:var(--bad)}
footer.foot{margin-top:28px;color:var(--muted);font-size:12px;text-align:center}
@media (max-width:1100px){.grid2,.grid3{grid-template-columns:1fr}}
@media (max-width:820px){.app{grid-template-columns:1fr}aside{position:relative;height:auto}nav{flex-direction:row;flex-wrap:wrap}main{padding:16px}.meters{grid-template-columns:1fr}.maprow{grid-template-columns:1fr}}
.issue select{width:auto;min-width:210px}
.radio{display:flex !important;flex-wrap:nowrap;align-items:flex-start;gap:10px;color:var(--text);font-size:13px}
.radio input{width:auto;margin-top:3px}
.issue.data .code{color:var(--bad)}
.issue.warning .code{color:var(--info)}
.cov{display:inline-block;height:6px;border-radius:3px;background:var(--line);width:80px;vertical-align:middle;overflow:hidden}
.cov i{display:block;height:100%;background:var(--good)}
.cov.sparse i{background:var(--warn)}
.btnlink{align-self:center;font-size:13px;color:var(--orange);text-decoration:none;margin-left:6px}
.btnlink:hover{text-decoration:underline}
.proftable{table-layout:fixed;min-width:1000px}
.proftable td{overflow-wrap:anywhere}
.proftable th:nth-child(1){width:26%}.proftable th:nth-child(2){width:7%}.proftable th:nth-child(3){width:20%}
.proftable th:nth-child(4){width:11%}.proftable th:nth-child(5){width:12%}.proftable th:nth-child(6){width:7%}
td.nowrap{white-space:nowrap}

/* ---------------------------------------------------------------- Ask FORMCEPT dashboard */
.advanced summary{cursor:pointer;color:rgba(255,255,255,.75);font-size:12.5px}
.dashhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.dashhead h2{margin:0 0 4px}
.panelgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px}
@media (max-width:1020px){.panelgrid{grid-template-columns:1fr}}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow);min-width:0}
.panel h3{margin:0;font-size:15px}
.panel .phead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:6px}
.panel .psub{font-size:12px;color:var(--muted)}
.panel svg{display:block;width:100%;height:auto;overflow:visible}
.panel svg text{fill:var(--muted);font-size:11px;font-family:inherit}
.panel svg text.val{fill:var(--text);font-size:11px}
.panel svg .gridl{stroke:var(--grid);stroke-width:1}
.panel .ptabs{display:flex;gap:6px;margin-top:8px}
.panel .ptabs button{padding:3px 9px;font-size:12px}
.legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 2px;font-size:12px;color:var(--text)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.kpi{padding:18px 4px 8px}
.kpi b{display:block;font-size:48px;line-height:1.05;font-weight:650;color:var(--text)}
.kpi small{color:var(--muted)}
.kpi .delta{font-size:13px;margin-top:6px}
.vtip{position:fixed;pointer-events:none;z-index:1000;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;
  padding:6px 9px;font-size:12px;box-shadow:0 6px 18px rgba(0,0,0,.15);opacity:0;transition:opacity .08s;white-space:nowrap}
.vtip.on{opacity:1}
.vtip b{display:block;margin-bottom:2px}
[data-tip]{cursor:default}
.ptable{max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:8px;margin-top:8px}
.ptable td.num{text-align:right;font-variant-numeric:tabular-nums}
.okfpre{max-height:420px;overflow:auto;white-space:pre-wrap;font-family:var(--mono);font-size:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:10px}
.srcline{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:4px}

/* ---------------------------------------------------------------- Metaspace */
.fabric{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.fab{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);border-top:3px solid var(--navy-3)}
.fab h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.fab b{font-size:24px}
.fab .small{margin-top:4px}
.fab.domain{border-top-color:var(--s1)}.fab.semantic{border-top-color:var(--orange)}.fab.knowledge{border-top-color:var(--s3)}.fab.data{border-top-color:var(--s7)}.fab.context{border-top-color:var(--s5)}
.node{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);background:var(--panel-2);border-radius:99px;padding:3px 10px;margin:3px 4px 3px 0;cursor:pointer;font-size:12.5px}
.node:hover{border-color:var(--orange)}
.node i{font-style:normal;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.relgroup{margin-top:10px}.relgroup h5{margin:0 0 4px;font-size:12px;color:var(--muted);font-weight:600}
.understand{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.understand div h5{margin:0 0 4px;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.intentmap{display:flex;flex-direction:column;gap:6px}
.intentrow{display:flex;gap:10px;align-items:center;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);cursor:pointer}
.intentrow:hover{border-color:var(--orange)}
.intentrow .iid{font-family:var(--mono);font-size:11px;color:var(--muted);min-width:34px}
.intentrow .itype{font-size:11px;font-weight:700;color:var(--navy-3);min-width:150px}
body.dark .intentrow .itype{color:#9ec5f4}
.intentrow .iq{flex:1}
.origin{font-size:10.5px;border-radius:99px;padding:1px 7px;border:1px solid var(--line);color:var(--muted)}
.insights{list-style:none;padding:0;margin:8px 0 0}
.insights li{display:flex;gap:8px;padding:5px 0;border-top:1px solid var(--line-2);font-size:13px}
.insights li:first-child{border-top:0}
.pol{font-size:11px;font-weight:700;min-width:62px;text-align:center;border-radius:6px;padding:1px 4px;height:fit-content}
.pol.positive{background:var(--good-soft);color:var(--good)}.pol.negative{background:var(--bad-soft);color:var(--bad)}.pol.neutral{background:var(--info-soft);color:var(--info)}.pol.caveat{background:var(--warn-soft);color:var(--warn)}
.intentsec{margin-top:18px}
.intentsec > h3{margin:0 0 2px;font-size:15px}
.intentsec > .small{margin-bottom:6px}
.pwrap{display:flex;flex-direction:column;min-width:0}
.pwrap.wide{grid-column:1/-1}
.scopebar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 4px;padding:9px 12px;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:8px;background:var(--panel-2);font-size:12.5px}
.sm.icon{font-size:12px}
.chip.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 35%,var(--line))}
.chip.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
.pwrap .panel{flex:1}
.ptag{font-size:11.5px;margin:0 0 5px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptag b{font-family:var(--mono);color:var(--orange)}
.panel svg{max-height:320px}

/* ================================================================== v3.4 customer journey */
nav .navicon{width:20px;height:20px;display:grid;place-items:center;border-radius:6px;background:rgba(255,255,255,.06);font-size:11px;color:#8fb0d4;font-weight:700}
nav button.active .navicon{background:var(--orange);color:#fff}
.nav-sep{height:1px;background:rgba(255,255,255,.12);margin:9px 8px}
.ctxbox span{display:block;margin-top:3px;word-break:break-word}
.eyebrow{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);font-weight:750}
.goodtext{color:var(--good);font-weight:650}
.ws-empty{max-width:1040px;margin:30px auto}
.ws-welcome{background:linear-gradient(135deg,var(--navy),var(--navy-3));color:#fff;border-radius:18px;padding:34px 36px;margin-bottom:18px;box-shadow:var(--shadow)}
.ws-welcome h2{font-size:28px;margin:5px 0 7px;letter-spacing:-.02em}.ws-welcome p{color:#c8d6e8;max-width:680px;margin:0 0 22px;font-size:15px}
.ws-upload{display:grid;grid-template-columns:minmax(300px,1fr) 160px auto;gap:10px}.ws-upload input{background:#fff;color:#13223a}.ws-upload input[type=file]{padding:7px 10px}
.workspace-choice{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:12px 14px;margin:7px 0;background:var(--panel-2)}.workspace-choice span:first-child{display:grid}.workspace-choice small{color:var(--muted);margin-top:2px}
.workspace-head{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin-bottom:14px;box-shadow:var(--shadow)}
.workspace-head h2{margin:3px 0 2px;font-size:24px}.readiness{display:flex;align-items:center;gap:11px}.readiness small{display:block;color:var(--muted)}
.readiness-ring{--p:0%;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;background:radial-gradient(circle closest-side,var(--panel) 73%,transparent 74% 99%),conic-gradient(var(--orange) var(--p),var(--line) 0)}
.journey{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.journey-step{position:relative;display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--line);color:var(--muted)}
.journey-step i{font-style:normal;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:var(--line-2);font-size:11px;font-weight:750}.journey-step span{display:grid;font-size:12px;font-weight:650}.journey-step small{font-size:10px;font-weight:400;color:var(--muted)}.journey-step.done{color:var(--good);border-color:color-mix(in srgb,var(--good) 25%,var(--line))}.journey-step.done i{background:var(--good-soft)}.journey-step.current{border-color:color-mix(in srgb,var(--orange) 50%,var(--line));box-shadow:inset 0 -2px 0 var(--orange)}
.stage-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:14px;align-items:start;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:18px 20px;margin-bottom:12px;box-shadow:var(--shadow)}
.stage-num{width:34px;height:34px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:750}.stage-main{min-width:0}.stage-action{padding-top:2px}.section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.section-title h2{margin:0 0 3px;font-size:17px}.section-title .sub{margin:0!important}.status-dot{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:3px 9px;font-size:11px;font-weight:650;background:var(--good-soft);color:var(--good);white-space:nowrap}.status-dot.pending{background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}
.mini-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:12px 0}.mini-stats>div{border:1px solid var(--line);background:var(--panel-2);border-radius:10px;padding:10px 12px}.mini-stats b{display:block;font-size:19px}.mini-stats small{color:var(--muted);font-size:11px}
.tech-details{margin-top:9px}.tech-details summary{display:inline-flex;align-items:center;color:var(--muted)}.data-picker{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}.searchline{display:flex;gap:8px;align-items:center}.searchline input{flex:1}
.view-choices{display:grid;gap:6px;margin:9px 0 11px;max-height:270px;overflow:auto}.view-choice{margin:0!important;display:grid!important;grid-template-columns:auto 1fr auto;gap:10px!important;align-items:center!important;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);cursor:pointer;color:var(--text)!important}.view-choice:hover,.view-choice.selected{border-color:color-mix(in srgb,var(--orange) 55%,var(--line));background:var(--orange-soft)}.view-choice input{width:auto}.view-choice span{display:grid}.view-choice small{color:var(--muted);font-size:11px}.view-choice em{font-style:normal;color:var(--good);font-size:10px;font-weight:700;text-transform:uppercase}
.connected-view{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid color-mix(in srgb,var(--good) 25%,var(--line));background:var(--good-soft);border-radius:10px;padding:10px 12px;margin-top:10px}.connected-view div{display:grid}.connected-view small{color:var(--muted)}
.split-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:10px 0}.split-panels>div{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel-2)}.split-panels h3{margin:0 0 6px!important;font-size:11px!important}.capability-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.capability-row:last-child{border-bottom:0}.review-row{display:flex;gap:8px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--line)}.review-row:last-child{border-bottom:0}.review-row i{font-style:normal;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:var(--warn-soft);color:var(--warn);font-size:11px;font-weight:800;flex:0 0 auto}.review-row span{display:grid}.review-row small{color:var(--muted);font-size:11px;margin-top:1px}.all-good{color:var(--good);font-size:12px;padding:8px 0}.empty-inline{color:var(--muted);font-size:12px;padding:10px 2px}.ready-stage{border-left:4px solid var(--orange)}
.explore-hero,.advanced-hero{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:20px 22px;margin-bottom:14px;box-shadow:var(--shadow)}.explore-hero{display:grid;grid-template-columns:1fr minmax(360px,.7fr);align-items:center;gap:24px}.explore-hero h2,.advanced-hero h2{margin:3px 0 2px;font-size:22px}.explore-hero p,.advanced-hero p{margin:0;color:var(--muted)}.explore-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.metric-choice{width:100%;display:flex;justify-content:space-between;gap:10px;text-align:left;align-items:center;margin:5px 0;background:var(--panel-2)}.metric-choice span{display:grid}.metric-choice small{color:var(--muted);font-size:10px}.analysis-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:9px}.analysis-card{text-align:left;display:grid;gap:4px;padding:13px 14px;background:var(--panel-2);min-height:120px;position:relative}.analysis-card:hover{border-color:var(--orange)}.analysis-card small{color:var(--muted);font-size:11.5px}.analysis-card em{font-style:normal;color:var(--orange);font-size:11px;font-weight:700;margin-top:auto}.analysis-goal{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.advanced-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.advanced-card{display:grid;text-align:left;gap:5px;padding:17px 18px;min-height:95px;background:var(--panel)}.advanced-card b{font-size:14px}.advanced-card span{color:var(--muted);font-size:12px}.advanced-card:hover{border-color:var(--orange);transform:translateY(-1px)}
@media (max-width:1050px){.explore-hero{grid-template-columns:1fr}.explore-grid,.split-panels{grid-template-columns:1fr}.journey{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.ws-upload{grid-template-columns:1fr}.workspace-head{align-items:flex-start;flex-direction:column}.stage-card{grid-template-columns:34px 1fr}.stage-action{grid-column:2}.journey{grid-template-columns:1fr}.searchline{flex-direction:column;align-items:stretch}.explore-hero .searchline{min-width:0}}
.govern-advanced{border:0}.govern-advanced>summary{display:inline-flex;margin:0 0 12px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted)}.govern-review{border-left:4px solid var(--orange)}
.ask-simple h2{font-size:24px;margin-top:4px}.ask-simple>p{max-width:760px}.ask-options{margin-top:12px}.ask-options>summary{color:#dbe8f7}.ask-options label{color:#dbe8f7}
.mapping-review{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr) auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.mapping-review>div{display:grid}.mapping-review small{color:var(--muted);font-size:10.5px}.mapping-review select{margin:0}@media(max-width:700px){.mapping-review{grid-template-columns:1fr}}
.workspace-error{margin:0 0 12px;border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line));background:var(--warn-soft);border-radius:10px;padding:4px 12px}

/* ---------------------------------------------------------------- decision apps */
.cardgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.pill.warn, .chip.warn { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 40%, var(--line)); }
.comp.click { cursor: pointer; }
.comp.click:hover { border-color: color-mix(in srgb, var(--orange) 45%, var(--line)); }

/* A deployment-level fault (e.g. a data route this install has switched off): shown above every tab. */
.notice { border:1px solid var(--line); border-radius:10px; padding:10px 14px; margin:0 0 14px; font-size:.92rem; line-height:1.5; }
.notice.warn { color:var(--warn); background:var(--warn-soft); border-color:color-mix(in srgb, var(--warn) 35%, var(--line)); }
.notice.warn strong { color:var(--warn); }

/* ---------------------------------------------------------------- review queue (Govern) */
.rv-stats { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.rv-item { border:1px solid var(--line); border-left-width:4px; border-radius:10px; padding:12px 14px; margin-bottom:10px; background:var(--card); }
.rv-item.rv-blocker { border-left-color:var(--bad); }
.rv-item.rv-review  { border-left-color:var(--warn); }
.rv-item.rv-warning { border-left-color:var(--line); }
.rv-head { display:flex; gap:12px; justify-content:space-between; align-items:flex-start; }
.rv-title { font-weight:650; font-size:1.02rem; }
.rv-sub { font-size:.9rem; color:var(--muted); margin-top:3px; line-height:1.5; }
.rv-unlocks { font-size:.86rem; color:var(--good); margin-top:6px; font-weight:550; }
.rv-tags { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; flex:0 0 auto; }
.rv-choices { display:flex; gap:14px; flex-wrap:wrap; margin-top:12px; }
.rv-choice { display:flex; flex-direction:column; gap:3px; }
.rv-meta { max-width:230px; line-height:1.4; }
.rv-values { margin-top:10px; }
.rv-valuegrid { display:flex; gap:10px; flex-wrap:wrap; margin:6px 0 8px; }
.rv-val { display:flex; align-items:center; gap:5px; font-size:.88rem; }
.rv-rows { margin-top:10px; }
.rv-rows summary, .rv-info summary { cursor:pointer; font-size:.9rem; color:var(--muted); }
.rv-rows table { width:100%; margin-top:8px; }
.rv-info { margin-top:14px; }
.rv-outcome { display:flex; gap:14px; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; }
.rv-outcome ul { margin:6px 0 0; padding-left:18px; font-size:.9rem; line-height:1.6; }
.notice.good { color:var(--good); background:var(--good-soft); border-color:color-mix(in srgb, var(--good) 35%, var(--line)); }
.notice.good strong { color:var(--good); }

/* ---------------------------------------------------------------- business vocabulary */
.voc-row { border:1px solid var(--line); border-radius:10px; padding:11px 13px; margin-bottom:9px; }
.voc-head { display:flex; justify-content:space-between; gap:10px; align-items:baseline; }
.voc-says { font-size:.92rem; line-height:1.55; margin:6px 0 9px; }

/* ---------------------------------------------------------------- ask: who answers */
.ask-bar { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:10px; flex-wrap:wrap; }
.ask-planner { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ask-planner select { width:auto; }
.ask-setup { margin-top:12px; }
.warn-text { color:var(--warn); }
.good-text { color:var(--good); }
.hero .ask-planner label, .hero #askPlannerState.muted { color:rgba(255,255,255,.72); }
.hero .ask-planner select { background:rgba(255,255,255,.96); color:#11213a; border-color:rgba(255,255,255,.35); }
.hero .ask-planner .warn-text { color:#ffce7a; }

/* one strip that says why the charts did not run, and clears it in one go */
.blockstrip { border-left:4px solid var(--warn); }
.blockrow { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:9px 0; border-top:1px solid var(--line); }
.blockrow:first-of-type { border-top:none; }
/* Subscription-first provider onboarding */
.provider-tile{border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:16px;min-height:150px;background:var(--card,#fff)}
.provider-tile .provider-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.provider-tile .provider-state{font-weight:700;font-size:13px}
.provider-tile .provider-state.connected{color:#087a46}.provider-tile .provider-state.disconnected{color:#8a5a00}
.auth-console{white-space:pre-wrap;word-break:break-word;max-height:260px;overflow:auto;background:#080030;color:#f5f3ff;padding:14px;border-radius:10px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}
.auth-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.user-context-note{font-size:12px;color:var(--muted,#667085)}

/* FORMCEPT Brandbook 2026 — customer shell contract */
.top h1,.workspace-head h2,.explore-hero h2,.advanced-hero h2,.card h2,.section-title h2{font-family:"Open Sans",ui-sans-serif,system-ui,sans-serif;color:var(--fc-indigo)}
body.dark .top h1,body.dark .workspace-head h2,body.dark .explore-hero h2,body.dark .advanced-hero h2,body.dark .card h2,body.dark .section-title h2{color:#fff}
.top{border-top:3px solid var(--fc-orange);padding-top:17px}
.pill{border-color:color-mix(in srgb,var(--fc-purple) 24%,var(--line));background:#fff;color:var(--fc-indigo)}
body.dark .pill{background:#171047;color:#fff}
.card,.explore-hero,.advanced-hero,.stage-card{box-shadow:var(--shadow)}
button.primary,.primary{background:var(--fc-orange);border-color:var(--fc-orange)}
button.primary:hover,.primary:hover{background:#E84900;border-color:#E84900}
.navicon{color:#D8D4EF}
nav button.active .navicon{background:var(--fc-orange);color:#fff}

/* ---------------------------------------------------------------- v4.2 Decision Artifact tools + readable configuration */
.panel .panel-tools{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--line-2)}
.panel .panel-tools button{padding:5px 10px;font-size:12px;line-height:1.35;background:var(--panel);color:var(--text);border:1px solid var(--line)}
.panel .panel-tools button:hover,.panel .panel-tools button.active{border-color:var(--orange);color:var(--navy);background:#fff7f2}
.panel .panel-tools .dashboard-pick{margin-left:auto;border-color:#cfc9e7;color:#312e81;background:#f7f5ff}
.panel .panel-tools .dashboard-pick.selected{background:#eaedff;border-color:#9f98d9;color:#080030;font-weight:700}
.pextra{margin-top:10px}
.config-view{display:grid;gap:12px;margin-top:10px;padding:14px;background:#fff;border:1px solid #ded8e6;border-radius:10px;color:#161616;box-shadow:0 3px 10px rgba(8,0,48,.04)}
.config-head{display:grid;gap:3px}.config-head b{font-size:14px;color:#080030}.config-head span{font-size:12.5px;line-height:1.55;color:#5d5763}
.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.config-grid>div{min-width:0;background:#f8f7fc;border:1px solid #e7e3ed;border-radius:8px;padding:9px 10px}
.config-grid span,.config-label{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.055em;color:#6b6570}
.config-grid b{display:block;margin-top:4px;font-size:13px;line-height:1.45;color:#080030;overflow-wrap:anywhere}
.config-label{margin:2px 0 -5px}
.config-code,.okfpre.config-code{max-height:460px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-family:var(--mono);font-size:13px;line-height:1.62;background:#faf9ff;color:#161616;border:1px solid #ddd8e6;border-radius:8px;padding:12px 13px;margin:0;tab-size:2}
.okfpre{font-size:13px;line-height:1.58;padding:12px 13px;color:var(--text)}
body.dark .config-view{background:#fff;color:#161616;border-color:#cfc9da}
body.dark .config-head b,body.dark .config-grid b{color:#080030}
body.dark .config-head span,body.dark .config-grid span,body.dark .config-label{color:#5d5763}
body.dark .config-grid>div{background:#f8f7fc;border-color:#e3deeb}
body.dark .config-code{background:#faf9ff!important;color:#161616!important;border-color:#d8d2e2!important}
@media(max-width:720px){.config-grid{grid-template-columns:1fr}.panel .panel-tools .dashboard-pick{margin-left:0}}

/* =================================================================================================
   v4.3 EXPERIENCE LAYER
   Everything below is additive: it refines the components above and introduces the shell-level
   surfaces (command palette, dialog, toast stack, skeletons, segmented panel surfaces).
   ================================================================================================= */

/* ------------------------------------------------------------------ 1. shell & navigation ------ */
aside{background:linear-gradient(176deg,var(--fc-indigo) 0%,#140C52 62%,#1B1160 100%);overflow-y:auto;scrollbar-width:thin}
aside::after{content:"";position:absolute;inset:auto 0 0 0;height:120px;pointer-events:none;
  background:radial-gradient(120% 80% at 10% 100%,rgba(254,80,0,.16),transparent 70%)}
aside>*{position:relative;z-index:1}
.brand{margin-bottom:var(--sp-5)}
.nav-group{display:block;margin:15px 12px 5px;font:600 9.5px/1 var(--font-display);letter-spacing:.14em;
  text-transform:uppercase;color:rgba(234,237,255,.45)}
.nav-group:first-of-type{margin-top:2px}
nav button{position:relative;gap:11px;padding:9px 12px;border-radius:var(--r-sm);font-size:13.5px;
  color:#CFCBE6;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}
nav button .navicon{display:inline-flex;align-items:center;justify-content:center;width:18px;font-size:12px;opacity:.72}
nav button:hover{background:rgba(255,255,255,.07);color:#fff;transform:translateX(1px)}
nav button:hover .navicon{opacity:1}
nav button.active{background:linear-gradient(90deg,rgba(49,46,129,.95),rgba(49,46,129,.42));color:#fff;
  box-shadow:inset 3px 0 0 var(--fc-orange);font-weight:600}
nav button.active .navicon{opacity:1;color:var(--fc-orange)}
nav button:focus-visible{box-shadow:inset 3px 0 0 var(--fc-orange),0 0 0 2px rgba(254,80,0,.55)}
.nav-sep{height:1px;background:rgba(255,255,255,.10);margin:11px 12px}
.nav-kbd{margin-left:auto;font:600 10px/1 var(--mono);color:rgba(234,237,255,.40);
  border:1px solid rgba(234,237,255,.20);border-radius:5px;padding:2px 5px}
.ctxbox{border:1px solid rgba(255,255,255,.08)}
.aside-foot button:hover{background:rgba(255,255,255,.08)}

/* header ---------------------------------------------------------------------------------------- */
/* The brand rule reserves orange for action and decision moments, so the page header no longer wears a
   decorative orange rule: the accent now appears on the active journey stage and on primary actions. */
header.top{border-top:0;padding-top:0;padding-bottom:var(--sp-4);border-bottom:1px solid var(--line-2);margin-bottom:var(--sp-5)}
h1{font-size:var(--fs-2xl);line-height:var(--lh-tight);color:var(--text-strong);letter-spacing:-.016em}
header.top p{font-size:13.5px;max-width:74ch}
header.top>div:first-child{min-width:0;flex:1 1 320px}
.health-row{flex:0 1 auto;row-gap:6px}
.pill{transition:border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease);box-shadow:var(--shadow-1);
  padding:5px 9px;font-size:11.5px;max-width:30ch;overflow:hidden;text-overflow:ellipsis}
button.pill{cursor:pointer}
button.pill:hover{border-color:var(--line-strong);color:var(--text)}
.pill::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:7px;
  background:var(--muted-2);vertical-align:1px}
.pill.ok::before{background:var(--good)}
.pill.bad::before{background:var(--bad);animation:fc-pulse 2.2s var(--ease) infinite}
@keyframes fc-pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* tab transition -------------------------------------------------------------------------------- */
.tab.active{animation:fc-rise var(--dur-3) var(--ease-out) both}
@keyframes fc-rise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}

/* ------------------------------------------------------------------ 2. surfaces ---------------- */
.card{border-radius:var(--r-lg);box-shadow:var(--shadow-1);transition:box-shadow var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease)}
.card:hover{box-shadow:var(--shadow)}
.card h2{font-size:var(--fs-lg);letter-spacing:-.008em;color:var(--text-strong)}
.eyebrow{display:inline-block;font:700 10px/1 var(--font-display);letter-spacing:var(--track-eyebrow);
  text-transform:uppercase;color:var(--fc-orange);margin-bottom:var(--sp-2)}
.section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-4)}

/* buttons ---------------------------------------------------------------------------------------- */
button{border-radius:var(--r-sm);font-weight:500;transition:background var(--dur-1) var(--ease),
  border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}
button:not(:disabled):active{transform:translateY(1px)}
.primary{box-shadow:0 2px 10px rgba(254,80,0,.26);font-weight:600}
.primary:not(:disabled):hover{box-shadow:0 4px 16px rgba(254,80,0,.34)}
.primary:focus-visible{box-shadow:0 0 0 3px rgba(254,80,0,.45)}
.sm{font-size:12.5px;padding:6px 10px}
.linkbtn{background:none;border:0;color:var(--info);padding:0;text-decoration:underline;cursor:pointer;font:inherit}

/* ------------------------------------------------------------------ 3. skeletons --------------- */
.sk{position:relative;overflow:hidden;background:var(--skeleton-1);border-radius:var(--r-sm);
  min-height:12px;color:transparent!important}
.sk::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,var(--skeleton-2),transparent);animation:fc-shimmer 1.35s infinite}
@keyframes fc-shimmer{100%{transform:translateX(100%)}}
.sk-line{height:11px;margin:9px 0;border-radius:var(--r-pill)}
.sk-line.w40{width:40%}.sk-line.w60{width:60%}.sk-line.w80{width:80%}
.sk-card{height:132px;margin:0 0 var(--sp-3);border-radius:var(--r-md)}
.sk-tile{height:76px;border-radius:var(--r-md)}
.sk-panel{height:264px;border-radius:var(--r-lg)}
.sk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-3)}
@media (prefers-reduced-motion:reduce){.sk::after{animation:none;opacity:.5;transform:none}}

/* ------------------------------------------------------------------ 4. empty & error states ---- */
.fc-state{display:grid;justify-items:center;text-align:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);
  border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--panel-inset);color:var(--muted)}
.fc-state .fc-state-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-md);
  background:var(--info-soft);color:var(--info);font-size:17px}
.fc-state b{color:var(--text-strong);font:600 14px/1.3 var(--font-display)}
.fc-state p{margin:0;max-width:52ch;font-size:13px}
.fc-state .row{margin-top:var(--sp-2)}
.fc-state.err{border-style:solid;border-color:color-mix(in srgb,var(--bad) 38%,var(--line));background:var(--bad-soft)}
.fc-state.err .fc-state-mark{background:color-mix(in srgb,var(--bad) 16%,transparent);color:var(--bad)}
.fc-state.err b{color:var(--bad)}
.fc-state code{font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}

/* ------------------------------------------------------------------ 5. toast stack ------------- */
.toast-stack{position:fixed;right:20px;bottom:20px;z-index:var(--z-toast);display:grid;gap:var(--sp-2);
  width:min(400px,calc(100vw - 40px));pointer-events:none}
.toast-item{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:11px;
  background:var(--panel);color:var(--text);border:1px solid var(--line);border-left:3px solid var(--info);
  border-radius:var(--r-md);padding:11px 12px;box-shadow:var(--shadow-2);
  animation:fc-toast-in var(--dur-3) var(--ease-out) both}
.toast-item.out{animation:fc-toast-out var(--dur-2) var(--ease) forwards}
.toast-item .ti-mark{font-size:13px;line-height:1.3;color:var(--info)}
.toast-item .ti-body{font-size:13px;line-height:1.42;overflow-wrap:anywhere}
.toast-item .ti-body b{display:block;font:600 12.5px/1.3 var(--font-display);margin-bottom:2px}
.toast-item .ti-close{background:none;border:0;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:2px 4px}
.toast-item.err{border-left-color:var(--bad)} .toast-item.err .ti-mark{color:var(--bad)}
.toast-item.ok{border-left-color:var(--good)}  .toast-item.ok .ti-mark{color:var(--good)}
.toast-item.warn{border-left-color:var(--warn)}.toast-item.warn .ti-mark{color:var(--warn)}
@keyframes fc-toast-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@keyframes fc-toast-out{to{opacity:0;transform:translateX(16px)}}

/* ------------------------------------------------------------------ 6. dialog ------------------ */
.fc-scrim{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(2px);z-index:var(--z-modal);
  display:grid;place-items:center;padding:var(--sp-4);animation:fc-fade var(--dur-2) var(--ease) both}
@keyframes fc-fade{from{opacity:0}to{opacity:1}}
.fc-dialog{width:min(520px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-3);padding:var(--sp-5);display:grid;gap:var(--sp-3);
  animation:fc-pop var(--dur-3) var(--ease-out) both}
@keyframes fc-pop{from{opacity:0;transform:translateY(14px) scale(.975)}to{opacity:1;transform:none}}
.fc-dialog h2{margin:0;font-size:var(--fs-lg);color:var(--text-strong)}
.fc-dialog p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.fc-dialog label{margin:0}
.fc-dialog .fc-dialog-err{color:var(--bad);font-size:12.5px;min-height:16px}
.fc-dialog .fc-dialog-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-1)}

/* ------------------------------------------------------------------ 7. command palette --------- */
.fc-palette-scrim{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(3px);z-index:var(--z-palette);
  display:grid;align-items:start;justify-items:center;padding:12vh var(--sp-4) var(--sp-4);
  animation:fc-fade var(--dur-2) var(--ease) both}
.fc-palette{width:min(620px,100%);background:var(--panel);border:1px solid var(--line-strong);
  border-radius:var(--r-lg);box-shadow:var(--shadow-3);overflow:hidden;animation:fc-pop var(--dur-3) var(--ease-out) both}
.fc-palette-in{display:flex;align-items:center;gap:10px;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line-2)}
.fc-palette-in span{color:var(--fc-orange);font-size:15px}
.fc-palette-in input{border:0;background:none;padding:0;font-size:15.5px;outline:none}
.fc-palette-in input:focus{outline:none;box-shadow:none;border:0}
.fc-palette-list{max-height:min(52vh,420px);overflow:auto;padding:var(--sp-2)}
.fc-palette-group{font:700 9.5px/1 var(--font-display);letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted-2);padding:10px 10px 6px}
.fc-cmd{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:11px;width:100%;text-align:left;
  padding:9px 10px;border:0;border-radius:var(--r-sm);background:none;color:var(--text);cursor:pointer;font:inherit}
.fc-cmd:hover,.fc-cmd[aria-selected="true"]{background:var(--info-soft)}
.fc-cmd[aria-selected="true"]{box-shadow:inset 2px 0 0 var(--fc-orange)}
.fc-cmd .fc-cmd-ico{color:var(--info);text-align:center;font-size:13px}
.fc-cmd .fc-cmd-sub{display:block;color:var(--muted);font-size:11.5px;margin-top:1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-cmd kbd,.fc-kbd{font:600 10.5px/1 var(--mono);color:var(--muted);background:var(--panel-3);
  border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:3px 5px;white-space:nowrap}
.fc-palette-foot{display:flex;gap:var(--sp-4);padding:9px var(--sp-4);border-top:1px solid var(--line-2);
  background:var(--panel-2);font-size:11.5px;color:var(--muted)}
.fc-palette-foot span{display:flex;align-items:center;gap:6px}

/* shortcuts sheet --------------------------------------------------------------------------------- */
.fc-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2) var(--sp-5)}
.fc-shortcuts div{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);
  font-size:12.5px;padding:5px 0;border-bottom:1px solid var(--line-2)}

/* ------------------------------------------------------------------ 8. drawer ------------------ */
.drawer{z-index:var(--z-drawer);box-shadow:var(--shadow-3);transition:transform var(--dur-3) var(--ease-out)}
.drawer:not(.open){visibility:hidden}
.drawer .close{position:sticky;top:0;float:right;z-index:2}

/* ------------------------------------------------------------------ 9. panel surfaces ---------- */
.panel{border-radius:var(--r-lg);transition:box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}
.panel:hover{box-shadow:var(--shadow)}
.panel:focus-within{border-color:color-mix(in srgb,var(--fc-purple) 40%,var(--line))}
.panel-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);
  padding-top:var(--sp-3);border-top:1px solid var(--line-2)}
.surface-switch{display:inline-flex;background:var(--panel-3);border:1px solid var(--line);
  border-radius:var(--r-pill);padding:2px;gap:2px}
.surface-switch button{border:0;background:none;color:var(--muted);border-radius:var(--r-pill);
  padding:5px 12px;font-size:12px;font-weight:600;box-shadow:none}
.surface-switch button:hover{color:var(--text);background:var(--panel)}
.surface-switch button[aria-pressed="true"]{background:var(--panel);color:var(--text-strong);box-shadow:var(--shadow-1)}
.surface-switch button[aria-pressed="true"]::before{content:"";display:inline-block;width:5px;height:5px;
  border-radius:50%;background:var(--fc-orange);margin-right:6px;vertical-align:1px}
.pextra{margin-top:var(--sp-3);animation:fc-rise var(--dur-2) var(--ease-out) both}
.panel-tools .dashboard-pick{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}

/* ------------------------------------------------------------------ 10. sub-tabs -------------- */
.subtabs{display:inline-flex;gap:2px;background:var(--panel-3);border:1px solid var(--line);
  border-radius:var(--r-pill);padding:3px;margin-bottom:var(--sp-4)}
.subtabs button{border:0;background:none;color:var(--muted);border-radius:var(--r-pill);padding:7px 16px;
  font-size:13px;font-weight:600;box-shadow:none}
.subtabs button:hover{color:var(--text)}
.subtabs button[aria-selected="true"]{background:var(--panel);color:var(--text-strong);box-shadow:var(--shadow-1)}
.subpane[hidden]{display:none}

/* ------------------------------------------------------------------ 11. journey / stages ------ */
.stage-card{border-radius:var(--r-lg);transition:border-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}
.stage-card .stage-num{font-family:var(--font-display);font-weight:700}
.stage-card[data-stage="current"]{border-color:color-mix(in srgb,var(--fc-orange) 46%,var(--line));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--fc-orange) 20%,transparent),var(--shadow)}
.stage-card[data-stage="current"] .stage-num{background:var(--fc-orange);color:#fff}
.stage-card[data-stage="done"] .stage-num{background:var(--good-soft);color:var(--good)}
.readiness-ring{position:relative;display:grid;place-items:center;font-family:var(--font-display);font-weight:700}

/* ------------------------------------------------------------------ 12. tables & config ------- */
.tablewrap table{border-collapse:separate;border-spacing:0}
.tablewrap thead th{position:sticky;top:0;background:var(--panel-2);z-index:1;
  font:700 10.5px/1.2 var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
tbody tr{transition:background var(--dur-1) var(--ease)}
tbody tr:hover{background:var(--panel-inset)}
tr.click{cursor:pointer}
tr.click:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--orange-ring)}
.config-code,.okfpre.config-code{line-height:var(--lh-config)}

/* clickable non-button surfaces get a real affordance --------------------------------------------- */
[role="button"]{cursor:pointer}
[role="button"]:focus-visible{outline:none;box-shadow:var(--focus)}
.comp.click,.intentrow[data-goto],.node{transition:transform var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}
.comp.click:hover,.node:hover{transform:translateY(-1px);box-shadow:var(--shadow)}

/* ------------------------------------------------------------------ 13. misc -------------------- */
.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}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:calc(var(--z-toast) + 1);background:var(--panel);
  color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 14px;box-shadow:var(--shadow-2)}
.skip-link:focus{left:262px}
.foot{color:var(--muted-2);font-size:11.5px}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--r-pill);border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--muted-2);background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}

@media(max-width:1100px){.skip-link:focus{left:8px}}
@media(max-width:820px){
  .fc-shortcuts{grid-template-columns:1fr}
  .toast-stack{right:12px;left:12px;bottom:12px;width:auto}
  .fc-palette-scrim{padding-top:6vh}
}

/* A stage that needs a workspace still shows itself, with one explanation in place of its contents. */
.tab.gated > *:not(.needs-workspace){display:none}
.needs-workspace{margin:var(--sp-5) 0}

/* ------------------------------------------------------------------ 14. panels: two per row, and one
   A chart is read, not glanced at. Two per row gives each one enough width for its axis labels and its
   insight list; anything that needs the full row (flow, density, tables, long time series) already asks
   for it via .pwrap.wide. Expand is the reader's override for a single panel. */
.panelgrid{align-items:start}
.pwrap{transition:grid-column var(--dur-2) var(--ease)}
.pwrap.expanded{grid-column:1/-1}
.panel{padding:18px 20px}
.panel .phead{gap:var(--sp-4);align-items:flex-start;padding-bottom:var(--sp-3);border-bottom:1px solid var(--line-2);margin-bottom:var(--sp-3)}
.panel .phead h3{font-family:var(--font-display);font-size:15.5px;line-height:1.28;letter-spacing:-.008em;color:var(--text-strong);margin:0}
.panel .psub{margin-top:5px;font-size:12px;color:var(--muted);line-height:1.5}
.panel .pchart{min-height:210px;display:flex;align-items:center}
.panel .pchart svg{width:100%;height:auto;display:block}
.panel .insights{margin-top:var(--sp-3)}
.panel.expanded{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--fc-purple) 34%,var(--line))}
.panel.expanded .pchart{min-height:360px}
.panel.expanded .pchart svg{max-height:56vh}
.panel.expanded .phead h3{font-size:19px}
.panel-actions{display:inline-flex;gap:var(--sp-2);margin-left:auto}
.panel-tools .dashboard-pick{margin-left:0}
@media(max-width:1020px){.panel-actions{margin-left:0}}

/* ------------------------------------------------------------------ 15. explicit async states + deployment center */
.fc-loading{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;min-height:96px;padding:18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-inset)}
.fc-loading b{font-family:var(--font-display);color:var(--text-strong);font-size:13px}.fc-loading p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.fc-spinner{width:24px;height:24px;border:3px solid var(--line-strong);border-top-color:var(--fc-orange);border-radius:50%;animation:fc-spin .8s linear infinite}@keyframes fc-spin{to{transform:rotate(360deg)}}
.chart-coverage{margin:7px 0 0;padding-top:7px;border-top:1px solid var(--line-2);font-size:10.5px;line-height:1.45;color:var(--muted-2)}
.decision-app-card{scroll-margin-top:22px}.deployment-slot{scroll-margin-top:24px}.deployment-center-inline{border-color:color-mix(in srgb,var(--fc-purple) 22%,var(--line));box-shadow:var(--shadow)}
.deploy-targets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0}.deploy-target{display:grid;gap:5px;align-content:start;border:1px solid var(--line);background:var(--panel);border-radius:var(--r-md);padding:12px;cursor:pointer;min-height:92px}.deploy-target:has(input:checked){border-color:var(--fc-purple);box-shadow:0 0 0 2px color-mix(in srgb,var(--fc-purple) 10%,transparent);background:var(--panel-2)}.deploy-target input{accent-color:var(--fc-orange)}.deploy-target b{font-family:var(--font-display);font-size:12px;color:var(--text-strong)}.deploy-target span{font-size:10.5px;line-height:1.4;color:var(--muted)}
.deployment-form{margin-top:14px}.deployment-plan{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2)}.deploy-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.deploy-facts>div{padding:10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--panel)}.deploy-facts small,.deploy-facts b{display:block}.deploy-facts small{color:var(--muted);font-size:10px}.deploy-facts b{margin-top:4px;color:var(--text-strong);font-size:12px;overflow-wrap:anywhere}.deployment-actions{flex-wrap:wrap}
@media(max-width:1180px){.deploy-targets{grid-template-columns:repeat(3,minmax(0,1fr))}.deploy-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.deploy-targets,.deploy-facts{grid-template-columns:1fr}}

/* ------------------------------------------------------------------ 16. board construction feedback */
.board-build-progress{margin:0 0 12px}.board-build-progress[hidden]{display:none!important}
.board-build-progress .fc-loading{min-height:72px;padding:12px 14px;background:color-mix(in srgb,var(--panel-inset) 82%,var(--orange-soft));border-color:color-mix(in srgb,var(--fc-orange) 24%,var(--line))}
.board-build-state{scroll-margin-top:20px;border-color:color-mix(in srgb,var(--fc-purple) 24%,var(--line));box-shadow:var(--shadow)}
.board-build-state .fc-loading{min-height:118px;border:0;background:transparent;padding:8px 4px}
.board-build-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:6px}
.board-build-steps span{display:block;padding:9px 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--panel-2);color:var(--muted);font-size:10.5px;line-height:1.35}
.board-build-steps span:first-child{border-color:color-mix(in srgb,var(--fc-orange) 35%,var(--line));color:var(--text-strong)}
@media(max-width:760px){.board-build-steps{grid-template-columns:1fr 1fr}}

button.danger,.danger{border-color:#f1c7c1!important;color:#9f2f20!important;background:#fff8f6!important}button.danger:hover,.danger:hover{background:#fff0ec!important;border-color:#e4988d!important}

/* ------------------------------------------------------------------ 17. Ask immediate feedback */
.ask-progress-card{scroll-margin-top:18px;border-color:color-mix(in srgb,var(--fc-purple) 24%,var(--line));box-shadow:var(--shadow)}
.ask-progress-card>.fc-loading{min-height:82px;background:color-mix(in srgb,var(--panel-inset) 80%,var(--orange-soft));border-color:color-mix(in srgb,var(--fc-orange) 25%,var(--line))}
.ask-progress-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 8px}.ask-progress-steps span{padding:8px 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--panel);font-size:10.5px;color:var(--muted)}.ask-progress-steps span.active{border-color:color-mix(in srgb,var(--fc-orange) 45%,var(--line));background:var(--orange-soft);color:var(--text-strong);font-weight:600}.ask-skeletons{margin-top:10px}
@media(max-width:760px){.ask-progress-steps{grid-template-columns:1fr 1fr}}
\n/* v4.6.0 — white-label decision workspace */
.neutral-brand{display:flex!important;align-items:center;gap:11px}.neutral-brand>div{display:grid;gap:2px}.neutral-brand b{font-size:16px;letter-spacing:-.02em;color:#fff}.neutral-brand small{display:block!important;color:#aba9ca!important}.neutral-mark{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,#6557f5,#4338ca);color:#fff;font-weight:900;letter-spacing:-.04em;box-shadow:0 9px 24px #0003}.decision-studio-hero{background:linear-gradient(120deg,#101641,#25206b);color:#fff;border-radius:18px;padding:22px 24px;margin-bottom:14px;box-shadow:0 14px 35px rgba(15,20,60,.16)}.decision-studio-hero h2{margin:4px 0 3px;font-size:28px}.decision-studio-hero p{margin:0;color:#cbc9ec}.decision-steps{margin-top:20px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.decision-steps>div{display:flex;align-items:center;gap:9px;background:#ffffff0d;border:1px solid #ffffff1f;padding:10px;border-radius:12px;min-width:0}.decision-steps>div.active{background:#6657ef;border-color:#8d82ff}.decision-steps b{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#ffffff18;flex:0 0 auto}.decision-steps span{display:grid;min-width:0}.decision-steps strong{font-size:11px}.decision-steps small{font-size:9px;color:#c6c3e7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.intent-card-modern{border:1px solid #e0def0;border-radius:15px;padding:16px;background:#fff;box-shadow:0 7px 24px rgba(32,27,82,.06);display:grid;gap:12px}.intent-card-modern:hover{border-color:#a99fff;box-shadow:0 10px 28px rgba(50,40,130,.10)}.intent-card-top{display:flex;gap:12px;justify-content:space-between}.intent-card-top h3{margin:0 0 5px;font-size:16px;line-height:1.3}.intent-card-top p{margin:0;color:#6b6675;font-size:11.5px;line-height:1.45}.mapping-pill{padding:5px 8px;border-radius:999px;font-size:9px;font-weight:850;white-space:nowrap;background:#eef0f5;color:#555}.mapping-pill.full{background:#e5f8ed;color:#167747}.mapping-pill.partial{background:#fff4d9;color:#9b6100}.mapping-pill.needs{background:#ffe9e5;color:#a23a26}.required-semantics{display:grid;gap:6px}.required-semantics>h4{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#56516a;margin:0}.semantic-map-row{display:grid;grid-template-columns:84px minmax(100px,.9fr) 20px minmax(130px,1.2fr) auto;align-items:center;gap:7px;padding:7px 8px;border-radius:9px;background:#f8f8fc;font-size:10px}.semantic-map-row .slot{font-weight:800;color:#5e59a0}.semantic-map-row .arrow{color:#8a84a5}.semantic-map-row .target{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2f2a53}.semantic-map-row select{min-width:0;padding:6px 7px;font-size:10px}.intent-actions{display:flex;gap:7px;flex-wrap:wrap}.intent-actions button{flex:1;min-width:100px}.intent-actions .primary{background:#5848e8}.intent-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.intent-detail-grid>div{background:#f7f6fb;border-radius:9px;padding:9px}.intent-detail-grid small{display:block;color:#777188}.intent-detail-grid b{display:block;margin-top:3px;font-size:11px}.saved-board-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.saved-board-card{border:1px solid #e2deec;border-radius:13px;padding:14px;background:#fff;display:grid;gap:9px}.saved-board-card h4{margin:0;font-size:14px}.saved-board-card p{margin:0;color:#77717f;font-size:10px}.board-builder-card{border-top:3px solid #5b4cec}.provider-setup{border-top:3px solid #4b52c8}@media(max-width:1100px){.decision-steps{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.decision-steps{grid-template-columns:1fr}.semantic-map-row{grid-template-columns:72px 1fr;}.semantic-map-row .arrow{display:none}.intent-detail-grid{grid-template-columns:1fr}}\n
/* v4.6.2 generation progress + certification transparency */
.build-progress{border:1px solid #e3deee;background:#fbfaff;border-radius:14px;padding:14px;display:grid;gap:10px}.build-progress-head{display:flex;align-items:center;gap:10px}.build-progress-head>div{display:grid;gap:2px}.build-progress-head small{color:#746e7c}.build-progress-head strong{margin-left:auto;color:#312e81}.build-progress-bar{height:7px;background:#ece8f4;border-radius:99px;overflow:hidden}.build-progress-bar i{display:block;height:100%;background:linear-gradient(90deg,#fe5000,#6d5bd0);border-radius:99px;transition:width .35s}.build-steps{display:flex;gap:6px;flex-wrap:wrap}.build-steps span{font-size:10px;padding:5px 8px;border-radius:99px;background:#f0edf5;color:#817a89}.build-steps span.done{background:#e8f7ef;color:#177a4d}.build-steps span.active{background:#fff0e8;color:#b53b00;font-weight:800}.build-activity{display:grid;gap:4px;padding-top:7px;border-top:1px solid #ece8f4}.build-activity span{font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:#5e5865}.cert-progress{margin-top:10px;border:1px solid #dcd6e8;background:#fff;border-radius:12px;padding:12px}.cert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0}.cert-grid span{font-size:11px;color:#5e5865}.cert-checks{display:grid;gap:6px;margin-top:10px}.cert-checks>div{display:grid;grid-template-columns:minmax(180px,auto) 1fr;gap:10px;padding:7px;border-radius:8px;background:#f8f7fb}.cert-checks .pass b{color:#16794d}.cert-checks .fail b{color:#b42318}.cert-checks span{font-size:11px;color:#696270}.build-starting{position:sticky;top:8px;z-index:5}

/* v1.0 FORMCEPT brand lockup */
.formcept-brand{display:grid!important;gap:7px;align-items:start}.formcept-brand .brand-lockup{width:170px;max-width:100%;height:auto}.formcept-brand small{color:#d7d3e8!important;margin-left:2px;font-size:10px;letter-spacing:.045em}.app-lifecycle{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.app-lifecycle .chip{font-size:9px}.deployment-live-card{border:1px solid #bfe6cf;background:#f1fbf5;border-radius:12px;padding:12px}.app-actions .primary[data-app-approve-deploy]{box-shadow:0 8px 20px rgba(254,80,0,.18)}

.delete-progress{display:flex;gap:12px;align-items:center;padding:14px 16px;margin:0 0 14px;border:1px solid #f1b7a0;border-radius:12px;background:#fff7f2;color:#080030}.delete-progress>div{display:grid;gap:3px}.delete-progress small{color:#6d6676}.decision-app-card.deleting{outline:2px solid #fe500033}.delete-progress .spinner{flex:0 0 auto}
