/* Appraisal IQ — "The Vault" theme for the web app.
   Loaded after the app's own styles. Re-maps the app's color variables to machined charcoal and brass
   (copper in Commercial, patina green in Trainee), turns the tabs into a tool rail, and styles the new
   Vault features (foyer, files, conversations, books, command bar). Readability rule: dark fills get light
   text, light fills get dark text — never brass text on a brass button. */

/* ---------------------------------------------------------------- tokens */
html:root{--f-display:"Instrument Sans",system-ui,sans-serif;--f-body:"Instrument Sans",system-ui,-apple-system,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;--f-serif:"Cormorant Garamond",Georgia,serif;--r:16px;--r-sm:12px}
html:root[data-theme="dark"]{
  --bg:#0A0C10;--surface:#1A1E25;--sunk:#0F1216;--ink:#ECE6D8;--muted:#C2BAA8;--line:#2F343D;
  --s1:#1D2129;--s2:#16191F;--s3:#0E1014;--edge:rgba(255,255,255,.08);--hi:rgba(255,255,255,.06);--shade:rgba(0,0,0,.5);
  --crit:#FF9479;--crit-soft:rgba(232,105,74,.16);--mod:#F5C66B;--mod-soft:rgba(232,169,61,.15);--minor:#C3D8EC;--minor-soft:rgba(143,179,214,.13);--ok:#9FE0B9;--ok-soft:rgba(124,196,154,.14);
  --crit-on-navy:#FFB4A3;--mod-on-navy:#FFD98F;--ok-on-navy:#A8F0C8;--on-navy:#F4EFE4;--on-navy-muted:#D9D1BF;
  --c-blue:#9DC0E2;--c-blue-soft:rgba(143,179,214,.14);--c-teal:#8FD3C6;--c-teal-soft:rgba(124,196,180,.14);--c-violet:#C4B3F0;--c-violet-soft:rgba(180,160,240,.13);--c-amber:#EDC274;--c-amber-soft:rgba(232,185,90,.14);--c-rose:#F0AFAF;--c-rose-soft:rgba(232,154,154,.13);
  --room:radial-gradient(1200px 700px at 50% -10%,#1A1F27 0%,#0B0D11 60%,#060709 100%);
  --plate:radial-gradient(700px 300px at 20% 0%,#2A2F38 0%,#1A1D23 55%,#121418 100%);
  --wall:rgba(255,255,255,.035);
  --shadow:inset 0 1px 0 var(--hi),0 18px 44px rgba(0,0,0,.42);color-scheme:dark}
html:root[data-theme="light"]{
  --bg:#F3F0EA;--surface:#FFFFFF;--sunk:#EDE8DE;--ink:#1D2026;--muted:#4C4F57;--line:#DED5C4;
  --s1:#FFFFFF;--s2:#F9F6F0;--s3:#EEE9DF;--edge:#E3DACA;--hi:rgba(255,255,255,.9);--shade:rgba(40,44,52,.12);
  --crit:#A93A22;--crit-soft:#FBE7E1;--mod:#8A5A00;--mod-soft:#FBEFD6;--minor:#2F5A84;--minor-soft:#E7EEF6;--ok:#246B44;--ok-soft:#E3F2E8;
  --crit-on-navy:#FFB4A3;--mod-on-navy:#FFD98F;--ok-on-navy:#A8F0C8;--on-navy:#F4EFE4;--on-navy-muted:#D9D1BF;
  --c-blue:#2F5A84;--c-blue-soft:#E7EEF6;--c-teal:#1F6B60;--c-teal-soft:#E1F1EE;--c-violet:#5B45A8;--c-violet-soft:#EEEAF8;--c-amber:#7A5A1E;--c-amber-soft:#F5ECD8;--c-rose:#9A3A4A;--c-rose-soft:#F8E6E8;
  --room:radial-gradient(1200px 700px at 50% -10%,#FFFFFF 0%,#F3F0EA 58%,#E7E1D5 100%);
  --plate:radial-gradient(700px 300px at 20% 0%,#2E333C 0%,#1D2026 60%,#15171B 100%);
  --wall:rgba(60,50,30,.06);
  --shadow:inset 0 1px 0 var(--hi),0 14px 34px rgba(40,44,52,.10);color-scheme:light}
/* Metals per mode, declared on body so every derived color follows the mode. */
html[data-theme="dark"] body{--metal:#D8B36A;--metal-hi:#F0CF8A;--metal-lo:#A8853F;--metal-ink:#1A140A;--metal-soft:rgba(216,179,106,.14);--metal-line:rgba(216,179,106,.34);--metal-text:#F0CF8A}
html[data-theme="dark"] body.commercial{--metal:#D08A5A;--metal-hi:#EDB08A;--metal-lo:#9A5A33;--metal-ink:#1C0E06;--metal-soft:rgba(208,138,90,.15);--metal-line:rgba(208,138,90,.4);--metal-text:#F2BC97}
html[data-theme="dark"] body.trainee{--metal:#7CC49A;--metal-hi:#A6DDBC;--metal-lo:#4F8F69;--metal-ink:#06150D;--metal-soft:rgba(124,196,154,.14);--metal-line:rgba(124,196,154,.4);--metal-text:#A6DDBC}
html[data-theme="light"] body{--metal:#9A7631;--metal-hi:#B48D44;--metal-lo:#7A5A1E;--metal-ink:#FFFBF0;--metal-soft:#F3E9D2;--metal-line:rgba(154,118,49,.45);--metal-text:#6E5019}
html[data-theme="light"] body.commercial{--metal:#A0592E;--metal-hi:#B86D3E;--metal-lo:#7E4220;--metal-soft:#F7E6DA;--metal-line:rgba(160,89,46,.45);--metal-text:#7E4220}
html[data-theme="light"] body.trainee{--metal:#2F7D52;--metal-hi:#3B9463;--metal-lo:#1F5E3B;--metal-soft:#E1F1E7;--metal-line:rgba(47,125,82,.45);--metal-text:#1F5E3B}
html body{--accent:var(--metal-text);--accent-2:var(--metal);--accent-soft:var(--metal-soft);--accent-ink:var(--metal-ink);--brand-btn:var(--metal);--tr:var(--metal);--tr-soft:var(--metal-soft);--tr-ink:var(--metal-text);--cm:var(--metal);--cm-soft:var(--metal-soft);
  --btn-bg:linear-gradient(180deg,var(--metal-hi),var(--metal));--btn-ink:var(--metal-ink)}
html[data-theme="light"] body{--btn-bg:linear-gradient(180deg,#2B3038,#16191E);--btn-ink:#FFFBF0}
html[data-theme] body #panel-qc,html[data-theme] body #panel-ask,html[data-theme] body #panel-write,html[data-theme] body #panel-desk,html[data-theme] body #panel-lib,html[data-theme] body #panel-files{--pc:var(--metal);--pc-soft:var(--metal-soft)}

/* ---------------------------------------------------------------- the room */
html body{font-family:var(--f-body);background:var(--room) fixed,var(--bg);color:var(--ink);font-size:16px}
html body::before{content:"";position:fixed;left:-10%;right:-10%;top:-30px;height:380px;pointer-events:none;z-index:-1;opacity:.6;
  background:repeating-linear-gradient(90deg,var(--wall) 0 1px,transparent 1px 64px),repeating-linear-gradient(0deg,var(--wall) 0 1px,transparent 1px 40px);
  transform:perspective(900px) rotateX(58deg);transform-origin:50% 0;-webkit-mask-image:linear-gradient(#000,transparent 85%);mask-image:linear-gradient(#000,transparent 85%)}
html body h1,html body h2,html body h3,html body h4{font-family:var(--f-display)}
html body .intro h2,html body .hgreet h2,html body .vx-h{font-family:var(--f-serif);font-weight:700;letter-spacing:0;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.05}
html body .intro h2::after{display:none}
html body .intro h2{padding-bottom:0;margin-bottom:6px}
html body .label,html body .hitcount{font-family:var(--f-mono);font-weight:500;letter-spacing:.14em}
html body .mono{font-family:var(--f-mono)}
html body :focus-visible{outline:2px solid var(--metal);outline-offset:2px}
html body a:not([class]){color:var(--metal-text)}
html body .linkbtn{color:var(--metal-text)}

/* ---------------------------------------------------------------- top bar */
html body .topstack{box-shadow:none;background:transparent}
html body .appbar{background:color-mix(in srgb,var(--bg) 84%,transparent)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--edge);color:var(--ink);padding:10px clamp(12px,2.5vw,24px)}
@media (max-width:999px){html body nav.tabs{background:color-mix(in srgb,var(--bg) 90%,transparent)}}
html body .appbar::after{display:none}
html body .appbar .in{max-width:none}
html body .brand .mark{background:transparent;border:1.5px solid var(--metal);color:var(--metal-text);font-family:var(--f-serif);font-size:1.15rem;border-radius:10px}
html body .brand h1{font-family:var(--f-serif);font-weight:700;font-size:1.45rem;color:var(--ink)}
html body .brand h1 b{color:var(--metal-text)}
html body .brand .sub{color:var(--muted)!important;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;opacity:1}
html body .pill,html body .theme-seg,html body .modeseg{background:var(--s3);border:1px solid var(--edge);color:var(--ink);backdrop-filter:none}
html body .pill .dot{background:var(--muted)} html body .dot.ok{background:#7CC49A} html body .dot.warn{background:#E8A93D} html body .dot.bad{background:#E8694A}
html body .modeseg button{color:var(--muted)}
html body .modeseg button:hover{background:var(--metal-soft);color:var(--ink)}
html body .modeseg .m-res[aria-pressed="true"],html body .modeseg .m-cm[aria-pressed="true"],html body .modeseg .m-tr[aria-pressed="true"]{background:var(--btn-bg);border-color:transparent;color:var(--btn-ink);box-shadow:0 6px 16px var(--shade)}
html body .theme-seg button[data-theme-set]{background:transparent;color:var(--muted);border-color:transparent}
html body .theme-seg button[aria-pressed="true"]{background:var(--metal-soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--metal-line)}
html body .aiq-pill:hover{background:var(--metal-soft)}
.vx-cmdbtn{display:inline-flex;align-items:center;gap:10px;height:32px;padding:0 8px 0 12px;border-radius:10px;border:1px solid var(--edge);background:var(--s3);color:var(--muted);font:inherit;font-size:.8rem;cursor:pointer}
.vx-cmdbtn:hover{border-color:var(--metal-line);color:var(--ink)}
.vx-kbd{font-family:var(--f-mono);font-size:.68rem;padding:2px 6px;border-radius:6px;border:1px solid var(--edge);color:var(--ink)}
@media (max-width:700px){.vx-cmdbtn .vx-cmdl{display:none}}

/* ---------------------------------------------------------------- tool rail */
html body nav.tabs{background:transparent;border:0;box-shadow:none;gap:6px;padding:8px clamp(12px,2.5vw,24px)}
html body nav.tabs button{background:linear-gradient(180deg,var(--s1),var(--s2));border:1px solid var(--edge);border-radius:14px;color:var(--muted);box-shadow:inset 0 1px 0 var(--hi);position:relative;font-family:var(--f-body);font-weight:600}
html body nav.tabs button:hover{color:var(--ink);border-color:var(--metal-line)}
html body nav.tabs button .ti{background:transparent!important;color:inherit!important}
html body nav.tabs button[aria-selected="true"]{background:var(--btn-bg)!important;color:var(--btn-ink)!important;border-color:transparent;box-shadow:0 8px 22px var(--shade)}
html body nav.tabs .vx-badge{position:absolute;top:6px;right:8px}
@media (min-width:1000px){
  html body nav.tabs{position:fixed;left:16px;top:var(--vx-top,74px);bottom:16px;z-index:25;flex-direction:column;width:92px;padding:6px 0;overflow-y:auto;overflow-x:visible;border:0}
  html body nav.tabs button{flex:0 0 auto;width:88px;min-height:76px;flex-direction:column;gap:6px;padding:10px 4px;font-size:.72rem;letter-spacing:.03em;white-space:normal;text-align:center;line-height:1.15}
  html body nav.tabs button .ti{width:22px;height:22px}
  html body nav.tabs button .ti svg{width:20px;height:20px}
  html body nav.tabs .full{display:none} html body nav.tabs .short{display:inline}
  html body .wrap{max-width:1180px;margin-left:max(124px,calc((100vw - 1180px)/2 + 60px));margin-right:auto;padding-inline:24px}
  html body .appbar .status{flex-basis:auto}
  html body .appbar .in{flex-wrap:nowrap}
}

/* ---------------------------------------------------------------- surfaces */
html body .card,html body .qstep,html body .finding,html body .a,html body .tool,html body .htile,html body .stat,html body .calc,html body .trbox,html body .trcmp,html body .runbar,html body .budgetbox,html body .fcard,html body .ecard,html body .soon,html body .trbar,html body .chip,html body .dopt,html body .overlay .modal,html body .aiq-meter,html body .privacy:not([open]),html body .srcpick summary,html body .filters label{
  background:linear-gradient(180deg,var(--s1),var(--s2));border-color:var(--edge);box-shadow:var(--shadow)}
html body .card{border-top:1px solid var(--edge);border-radius:var(--r)}
html body .finding{border-left-width:4px;border-radius:14px}
html body .finding.critical{border-left-color:var(--crit)} html body .finding.moderate{border-left-color:var(--mod)} html body .finding.minor{border-left-color:var(--minor)}
html body .runbar{border-left:4px solid var(--metal)!important;border-radius:14px}
html body .a{border-left:3px solid var(--metal);border-radius:18px 18px 18px 4px}
html body .q{background:var(--metal-soft)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 1px var(--metal-line)}
html body .chip{border-left:1px solid var(--edge)!important;color:var(--ink)}
html body .chip:hover,html body .filters label:has(input:checked){background:var(--metal-soft)!important;border-color:var(--metal-line)!important;color:var(--ink)!important}
html body select,html body textarea,html body input[type=text],html body input[type=email],html body input[type=password],html body input[type=number],html body input[type=date],html body input[type=datetime-local],html body input[type=search]{background:var(--s3)!important;border:1px solid var(--edge)!important;color:var(--ink)!important;border-radius:12px}
html body ::placeholder{color:var(--muted)!important;opacity:.85}
html body select:focus,html body textarea:focus,html body input:focus{outline:2px solid var(--metal);outline-offset:1px}
html body .drop{background:var(--s3)!important;border:1.5px dashed var(--metal-line)!important;border-radius:14px}
html body .drop:hover,html body .drop.over{background:var(--metal-soft)!important;border-color:var(--metal)!important}
html body .drop.has{border-style:solid!important;border-color:var(--metal)!important;background:var(--metal-soft)!important}
html body .drop .ftag{background:var(--s1)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 1px var(--edge)}
html body .drop.has .ftag{background:var(--btn-bg)!important;color:var(--btn-ink)!important}
html body .drop .fname{color:var(--ink)}
html body .drop.over::after{background:var(--btn-bg);color:var(--btn-ink)}
html body .qic{background:var(--metal-soft);color:var(--metal-text)}

/* buttons: brass (or graphite in light) with ink that always contrasts */
html body .btn{background:transparent;border:1px solid var(--metal-line);color:var(--ink);border-radius:12px;font-family:var(--f-body);font-weight:600}
html body .btn:hover{border-color:var(--metal);background:var(--metal-soft)}
html body .btn.primary,html body #panel-ask .btn.primary,html body #panel-write .btn.primary,html body #panel-lib .btn.primary,html body #panel-desk .btn.primary,html body.trainee #panel-qc .btn.primary,html body.trainee #panel-ask .btn.primary,html body.commercial .btn.primary,html body .aiq-card .btn.primary,html body .aiq-modal a.btn.primary{
  background:var(--btn-bg)!important;color:var(--btn-ink)!important;border-color:transparent!important;box-shadow:0 10px 24px var(--shade),inset 0 1px 0 rgba(255,255,255,.3)!important}
html body .btn.primary:hover{filter:brightness(1.07)}
html body .btn.primary-soft{background:var(--metal-soft);color:var(--ink);border-color:var(--metal-line);box-shadow:none}
html body .btn.danger{color:var(--crit);border-color:var(--crit)}
html body .seg{background:var(--s3);border-color:var(--edge);border-radius:14px}
html body .seg button{color:var(--muted);font-family:var(--f-body)}
html body .seg button[aria-pressed="true"],html body .wmode button[aria-pressed="true"]{background:var(--metal-soft)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 1px var(--metal-line)}
html body .dopt[aria-pressed="true"]{background:var(--metal-soft)!important;border-color:var(--metal)!important;box-shadow:0 0 0 1px var(--metal)!important}
html body .dopt[aria-pressed="true"]::before{border-color:var(--metal)!important}
html body .tool .tic,html body .htile .hti{background:var(--metal-soft)!important;color:var(--metal-text)!important}
html body .tool[aria-selected="true"]{background:var(--metal-soft)!important;border-color:var(--metal)!important;box-shadow:0 0 0 1px var(--metal)!important}
html body .tool[aria-selected="true"] .tic{background:var(--btn-bg)!important;color:var(--btn-ink)!important}
html body .qstep .qn,html body.commercial .qstep .qn{background:var(--btn-bg)!important;color:var(--btn-ink)!important}
html body .qstep.done .qn{background:#7CC49A!important;color:#06150D!important}
html body .cite{background:var(--metal-soft)!important;color:var(--metal-text)!important;border-color:var(--metal-line)!important;font-family:var(--f-mono)}
html body .cite:hover{background:var(--btn-bg)!important;color:var(--btn-ink)!important}
html body .notice{background:var(--mod-soft);border-left-color:var(--mod);color:var(--ink)}
html body .notice.info{background:var(--metal-soft);border-left-color:var(--metal)}
html body .notice.bad{background:var(--crit-soft);border-left-color:var(--crit)}
html body .privacy{background:var(--s2);border-color:var(--edge);border-left-color:var(--metal)}
html body .privacy .shield{background:var(--metal-soft);color:var(--metal-text)}
html body .privacy .pmore,html body .trguard .pmore{color:var(--metal-text)!important}
html body .cmbanner,html body .trbanner{background:linear-gradient(180deg,var(--s1),var(--s2));border-color:var(--metal-line);border-left-color:var(--metal);box-shadow:var(--shadow)}
html body .cmbanner .cmb-badge,html body .trb-badge{color:var(--metal-text)!important}
html body .trb-badge svg{color:var(--metal-text)}
html body .ntag{background:var(--metal-soft)!important;color:var(--metal-text)!important;box-shadow:inset 0 0 0 1px var(--metal-line)}
html body .md code,html body .md pre{background:var(--s3)}
html body .md blockquote{background:var(--metal-soft);border-left-color:var(--metal)}
html body .md th,html body .md td,html body .ftab th,html body .ftab td{border-color:var(--line)}
html body .md th,html body .ftab th{background:var(--s3)}
html body mark{background:rgba(232,169,61,.35);color:inherit}
html body .spellfix{background:var(--metal-soft);border-left-color:var(--metal)}
html body .fcard .fid{background:var(--metal-soft);color:var(--metal-text)}

/* score plate: always a dark machined plate with a lit dial, light text */
html body .score,html body .trhead{background:var(--plate)!important;color:#F4EFE4;box-shadow:inset 0 0 0 1px var(--metal-line),0 24px 60px var(--shade)!important;border-radius:20px}
html body .score .label{color:#D9D1BF!important;opacity:1}
html body .dial .n{color:#F4EFE4;font-family:var(--f-serif);font-size:1.6rem}
html body .facts b{color:#F4EFE4}
html body .trhead .trheadline{color:#E9E2D2}
html body .trprog .bar span{background:linear-gradient(90deg,#4F8F69,#A6DDBC)}
html body .stamp{font-family:var(--f-mono);letter-spacing:.16em}

/* home: drawers and stats */
html body .htile{position:relative;min-height:96px;border-radius:16px;padding:16px 16px 22px;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
html body .htile::after{content:"";position:absolute;left:50%;bottom:9px;width:46px;height:5px;margin-left:-23px;border-radius:3px;background:linear-gradient(90deg,var(--metal-lo),var(--metal-hi),var(--metal-lo))}
html body .htile:hover{transform:translateY(-4px) scale(1.01);box-shadow:inset 0 0 0 1px var(--metal-line),0 26px 50px var(--shade)}
html body .htiles{gap:12px;perspective:1200px}
html body .stat b{font-family:var(--f-serif);font-size:1.9rem;color:var(--ink)}
html body .stat.saved{background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--metal-line),var(--shadow)}
html body .stat.saved b{color:var(--metal-text)}
html body details.stat.issues{background:linear-gradient(180deg,var(--s1),var(--s2))}
html body details.stat.issues b{color:var(--crit)}
html body #panel-ask.is-home .composer textarea{background:var(--s3)!important;border:1px solid var(--metal-line)!important;border-radius:22px;box-shadow:0 20px 50px var(--shade)!important}
html body .composer{background:transparent}
html body .mic{background:transparent;border-color:var(--metal-line);color:var(--metal-text)}

/* drawers & overlays */
html body .drawer{background:var(--s1);border-left-color:var(--edge)}
html body .drawer header{background:var(--plate)}
html body .overlay{background:rgba(5,6,8,.62);backdrop-filter:blur(3px)}
html body .overlay .modal{border-radius:20px}
html body .aiq-plan{background:var(--s3);border-color:var(--edge)}
html body .aiq-bar span{background:linear-gradient(90deg,var(--metal-lo),var(--metal-hi))}
html body footer.foot{border-top-color:var(--edge)}

/* ---------------------------------------------------------------- vault door sign-in */
html body .aiq-gate{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(24px,6vw,96px);padding:24px 16px;background:radial-gradient(1100px 700px at 40% 45%,#1A1F27 0%,#0A0C10 62%,#050608 100%);overflow-x:hidden;overflow-y:auto}
html body .aiq-gate[hidden]{display:none}
/* The vault door (from the approved design): steel frame, hinges, ten locking bolts, a three-spoke handle wheel
   with brass knobs, and the deposit-box room behind it. */
.vx-vault{--z:1;position:relative;flex:none;width:calc(540px * var(--z));height:calc(540px * var(--z))}
@media (max-width:1180px),(max-height:760px){.vx-vault{--z:.78}}
@media (max-width:700px),(max-height:600px){.vx-vault{--z:.6}}
.v-frame{position:absolute;left:0;top:0;width:540px;height:540px;border-radius:50%;transform:scale(var(--z));transform-origin:0 0;
  background:conic-gradient(from 200deg,#3a404a,#1b1f26,#4a515c,#20252c,#3a404a);
  box-shadow:0 60px 120px rgba(0,0,0,.65),inset 0 0 0 2px rgba(255,255,255,.06),0 0 0 10px #0d1015,0 0 0 11px rgba(216,179,106,.28)}
.v-interior{position:absolute;inset:30px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 38%,#3a2c16 0%,#17120b 55%,#0a0806 100%);box-shadow:inset 0 30px 80px rgba(0,0,0,.8)}
.v-glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,rgba(255,206,120,.55),rgba(255,206,120,0) 60%);opacity:.08;transition:opacity 1.4s ease 1.9s}
.v-boxes{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:26px;opacity:.35}
.v-box{border-radius:3px;background:linear-gradient(#5a4524,#2b2112);box-shadow:inset 0 0 0 1px rgba(255,220,150,.18)}
.v-welcome{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:60px;opacity:0;transform:translateY(14px);transition:opacity .8s ease 2.6s,transform .8s ease 2.6s}
.v-welcome .v-mono{font-family:var(--f-mono);font-size:12px;letter-spacing:.3em;color:#F0CF8A}
.v-welcome .v-serif{font-family:var(--f-serif);font-size:40px;font-weight:600;line-height:1.05;color:#FFF4DC}
.v-door{position:absolute;inset:30px;border-radius:50%;transform-origin:0% 50%;transform:perspective(2200px) rotateY(0deg);transition:transform 1.8s cubic-bezier(.66,0,.16,1) 1.5s;
  background:radial-gradient(circle at 34% 28%,#69717d 0%,#3b424c 38%,#22272e 72%,#171a1f 100%);
  box-shadow:inset 0 0 0 6px #2a3038,inset 0 0 0 8px rgba(216,179,106,.35),inset 0 -20px 60px rgba(0,0,0,.6)}
.v-door::after{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,.035) 0 1px,rgba(0,0,0,0) 1px 4px);pointer-events:none}
.v-rim{position:absolute;inset:34px;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.08),0 0 0 2px rgba(0,0,0,.4)}
.v-boltwrap{position:absolute;inset:0;pointer-events:none}
.v-bolt{position:absolute;left:50%;top:-22px;width:26px;height:46px;margin-left:-13px;border-radius:6px;background:linear-gradient(90deg,#7c8590,#c9ced5 45%,#6b737e);box-shadow:0 2px 6px rgba(0,0,0,.5);transition:transform .5s cubic-bezier(.5,0,.3,1) 1s}
.v-wheel{position:absolute;left:50%;top:50%;width:230px;height:230px;margin:-115px 0 0 -115px;transition:transform 1.3s cubic-bezier(.55,0,.2,1)}
.v-spoke{position:absolute;left:0;top:50%;width:230px;height:16px;margin-top:-8px;border-radius:8px;background:linear-gradient(#d9b874,#9b7a3c);box-shadow:0 3px 8px rgba(0,0,0,.55)}
.v-knob{position:absolute;top:-7px;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f4dca3,#a8843f 70%)}
.v-hub{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f2d595,#8f6d31 75%);box-shadow:0 6px 18px rgba(0,0,0,.6),inset 0 0 0 4px rgba(0,0,0,.15)}
.v-hinge{position:absolute;left:-6px;width:34px;height:70px;border-radius:8px;background:linear-gradient(90deg,#2b3038,#5c636e,#2b3038);box-shadow:0 6px 14px rgba(0,0,0,.5);z-index:2}
.v-name{position:absolute;left:0;right:0;bottom:62px;text-align:center;font-family:var(--f-mono);font-size:11px;letter-spacing:.42em;color:rgba(240,207,138,.55)}
html body .aiq-card{width:400px;max-width:100%}
html body .aiq-card input:-webkit-autofill,html body .aiq-card input:-webkit-autofill:hover,html body .aiq-card input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 60px #0E1014 inset!important;-webkit-text-fill-color:#ECE6D8!important;caret-color:#ECE6D8;transition:background-color 9999s}
/* Opening: the wheel turns (1.3s), the bolts pull in, the door swings open on its hinges, the room lights up
   and "Access granted" appears; then the app fades in. About 4 seconds. */
html body .aiq-gate.opening .v-wheel{transform:rotate(300deg)}
html body .aiq-gate.opening .v-bolt{transform:translateY(36px)}
html body .aiq-gate.opening .v-door{transform:perspective(2200px) rotateY(-116deg)}
html body .aiq-gate.opening .v-glow{opacity:1}
html body .aiq-gate.opening .v-welcome{opacity:1;transform:none}
html body .aiq-gate.opening .aiq-card{opacity:0;transform:translateX(40px);pointer-events:none;transition:opacity .6s ease .2s,transform .6s ease .2s}
html body .aiq-gate.opening{animation:vxGateFade .6s ease 3.5s forwards;pointer-events:none}
@keyframes vxGateFade{to{opacity:0}}
@media (prefers-reduced-motion:reduce){html body .aiq-gate.opening *{transition-duration:.01s!important;transition-delay:0s!important}html body .aiq-gate.opening{animation-delay:.3s}}
html body .aiq-card{position:relative;z-index:2;background:linear-gradient(180deg,#1D2129,#15181D);color:#ECE6D8;border-radius:22px;box-shadow:inset 0 0 0 1px rgba(216,179,106,.35),inset 0 1px 0 rgba(255,255,255,.06),0 40px 100px rgba(0,0,0,.7);transition:opacity .5s,transform .7s}
html body .aiq-card h1{font-family:var(--f-serif);font-size:2.1rem;color:#ECE6D8}
html body .aiq-card p,html body .aiq-loading{color:#C2BAA8}
html body .aiq-card label{color:#ECE6D8;font-weight:500;font-size:.85rem;letter-spacing:.03em}
html body .aiq-card input{background:#0E1014!important;border:1px solid rgba(255,255,255,.1)!important;color:#ECE6D8!important;border-radius:12px;padding:12px 14px}
html body .aiq-card input:focus{outline:2px solid #D8B36A;border-color:transparent}
html body .aiq-card .btn.primary{background:linear-gradient(180deg,#F0CF8A,#D8B36A)!important;color:#1A140A!important;min-height:50px;border-radius:14px;font-size:1rem}
html body .aiq-card .linkbtn,html body .aiq-card a{color:#F0CF8A}
html body .aiq-brand b{font-family:var(--f-serif);font-size:1.4rem;color:#ECE6D8}
html body .aiq-brand span:not(.aiq-mark){color:#A8A090;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase}
html body .aiq-mark{background:transparent;border:1.5px solid #D8B36A;color:#F0CF8A;font-family:var(--f-serif);font-size:1.2rem}
html body .aiq-msg{background:rgba(232,105,74,.16);color:#FFB4A3!important;box-shadow:inset 0 0 0 1px rgba(232,105,74,.4)}

/* ---------------------------------------------------------------- shared Vault pieces */
.vx-badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#E8694A;color:#1A0B06;font-family:var(--f-mono);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.vx-tag{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;padding:3px 8px;border-radius:6px;display:inline-block;white-space:nowrap;background:var(--metal-soft);color:var(--metal-text);box-shadow:inset 0 0 0 1px var(--metal-line)}
.vx-tag.warn{background:rgba(232,169,61,.18);color:var(--mod);box-shadow:inset 0 0 0 1px rgba(232,169,61,.5)}
.vx-tag.hot{background:rgba(232,105,74,.18);color:var(--crit);box-shadow:inset 0 0 0 1px rgba(232,105,74,.55)}
.vx-tag.ok{background:var(--ok-soft);color:var(--ok);box-shadow:inset 0 0 0 1px rgba(124,196,154,.45)}
.vx-tag.blue{background:var(--minor-soft);color:var(--minor);box-shadow:inset 0 0 0 1px rgba(143,179,214,.45)}
.vx-kicker{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--metal-text)}
.vx-panel{border-radius:20px;background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 1px 0 var(--hi),inset 0 0 0 1px var(--edge),0 18px 44px var(--shade);padding:18px}
.vx-plate{border-radius:20px;background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--metal-line),inset 0 1px 0 var(--hi),0 18px 44px var(--shade);padding:18px}
.vx-small{font-size:.84rem;color:var(--muted)}
.vx-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.vx-col{display:flex;flex-direction:column;gap:10px}
.vx-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;align-items:start}
.vx-empty{padding:26px;text-align:center;color:var(--muted);border:1.5px dashed var(--edge);border-radius:16px}

/* ---------------------------------------------------------------- foyer (home) */
#vxFoyer{display:flex;flex-direction:column;gap:12px;margin:0 0 16px}
.vx-due{position:relative;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 18px;border-radius:18px;color:#1F1404;cursor:pointer;border:0;text-align:left;font:inherit;width:100%;
  background:linear-gradient(135deg,#FFD36B,#F5A524);box-shadow:0 0 0 1px rgba(255,211,107,.6),0 14px 40px rgba(245,165,36,.35);animation:vxGlow 2.6s ease-in-out infinite}
.vx-due.hot{background:linear-gradient(135deg,#FF8A65,#F0533A);color:#1F0903;box-shadow:0 0 0 1px rgba(255,138,101,.7),0 14px 40px rgba(240,83,58,.4)}
.vx-due.calm{background:linear-gradient(135deg,#BFE9D0,#7CC49A);color:#06150D;box-shadow:0 0 0 1px rgba(124,196,154,.6),0 12px 30px rgba(124,196,154,.25);animation:none}
.vx-due .vd-n{font-family:var(--f-serif);font-weight:700;font-size:2.6rem;line-height:.9;min-width:64px;text-align:center}
.vx-due .vd-n small{display:block;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.16em;font-weight:600}
.vx-due .vd-t{flex:1 1 220px;min-width:0}
.vx-due .vd-t b{display:block;font-size:1.08rem}
.vx-due .vd-t span{font-size:.9rem;opacity:.9}
.vx-due .vd-go{font-weight:700;font-size:.9rem;white-space:nowrap}
@keyframes vxGlow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.08)}}
@media (prefers-reduced-motion:reduce){.vx-due{animation:none}}
.vx-attn{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.vx-attn button{display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px 16px;border-radius:16px;border:0;cursor:pointer;font:inherit;color:var(--ink);background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--edge),var(--shadow)}
.vx-attn button:hover{box-shadow:inset 0 0 0 1px var(--metal-line),var(--shadow)}
.vx-attn b{font-family:var(--f-serif);font-size:2rem;line-height:1}
.vx-attn .hot b{color:var(--crit)} .vx-attn .warn b{color:var(--mod)} .vx-attn .metal b{color:var(--metal-text)}

/* ---------------------------------------------------------------- library: books on shelves */
#srcList.vx-shelves{display:flex;flex-direction:column;gap:30px}
.vx-shelf{position:relative;padding:0 6px 26px}
.vx-shelf-label{display:flex;align-items:baseline;gap:10px;margin:0 0 12px}
.vx-shelf-label b{font-family:var(--f-serif);font-size:1.35rem}
.vx-books{display:flex;flex-wrap:wrap;gap:30px 40px;align-items:flex-end;padding:10px 22px 0}
.vx-shelf::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:16px;border-radius:4px;
  background:linear-gradient(180deg,#5A4128 0%,#3A2817 55%,#24180D 100%);box-shadow:0 14px 26px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,220,170,.25)}
html[data-theme="light"] .vx-shelf::after{background:linear-gradient(180deg,#B88E5E 0%,#94693E 55%,#6E4C2A 100%);box-shadow:0 12px 22px rgba(60,40,20,.25),inset 0 1px 0 rgba(255,240,210,.5)}
.vbook{--w:138px;--h:192px;--t:34px;perspective:900px;perspective-origin:50% 30%;position:relative;width:var(--w);height:var(--h);border:0;padding:0;background:none;cursor:pointer;font:inherit;z-index:1;margin-bottom:10px}
.vbook .vb-3d{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(38deg) rotateX(-9deg);transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.vbook:hover .vb-3d,.vbook:focus-visible .vb-3d{transform:rotateY(14deg) rotateX(-6deg) translateY(-14px) translateZ(30px)}
.vbook .vb-face{position:absolute;backface-visibility:hidden}
.vbook .vb-front{inset:0;transform:translateZ(calc(var(--t) / 2));border-radius:2px 6px 6px 2px;padding:14px 12px 12px 18px;display:flex;flex-direction:column;gap:6px;text-align:left;overflow:hidden;
  background:radial-gradient(120% 80% at 30% 0%,rgba(255,255,255,.14),transparent 55%),linear-gradient(90deg,rgba(0,0,0,.35) 0 6px,rgba(255,255,255,.12) 6px 7px,transparent 7px),var(--c1);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.25),inset -3px 0 6px rgba(0,0,0,.25)}
.vbook .vb-front::before{content:"";position:absolute;inset:8px 8px 8px 14px;border:1px solid rgba(233,207,143,.55);border-radius:3px;pointer-events:none}
.vbook .vb-back{inset:0;transform:rotateY(180deg) translateZ(calc(var(--t) / 2));background:var(--c2);border-radius:6px 2px 2px 6px}
.vbook .vb-spine{top:0;height:var(--h);width:var(--t);left:calc(50% - var(--t) / 2);transform:rotateY(-90deg) translateZ(calc(var(--w) / 2));border-radius:3px;
  background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(255,255,255,.12) 45%,rgba(0,0,0,.3)),var(--c2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.vbook .vb-spine::before,.vbook .vb-spine::after{content:"";position:absolute;left:0;right:0;height:3px;background:rgba(233,207,143,.7)}
.vbook .vb-spine::before{top:16px}.vbook .vb-spine::after{bottom:16px}
.vbook .vb-spine span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;color:#F3DFA8;white-space:nowrap;max-height:calc(var(--h) - 44px);overflow:hidden;text-overflow:ellipsis}
.vbook .vb-pages{top:3px;height:calc(var(--h) - 6px);width:calc(var(--t) - 2px);left:calc(50% - var(--t) / 2 + 1px);transform:rotateY(90deg) translateZ(calc(var(--w) / 2 - 4px));
  background:repeating-linear-gradient(90deg,#F4EEDF 0 1px,#E2D8C3 1px 2px);box-shadow:inset 0 0 6px rgba(0,0,0,.2)}
.vbook .vb-top{left:3px;width:calc(var(--w) - 8px);height:calc(var(--t) - 2px);top:calc(50% - var(--t) / 2 + 1px);transform:rotateX(90deg) translateZ(calc(var(--h) / 2 - 3px));
  background:repeating-linear-gradient(0deg,#F4EEDF 0 1px,#E2D8C3 1px 2px)}
.vbook .vb-shadow{position:absolute;left:4%;right:-6%;bottom:-12px;height:14px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent);filter:blur(2px);transition:transform .55s,opacity .55s}
.vbook:hover .vb-shadow{transform:scale(.85);opacity:.6}
.vbook .vb-grp{position:relative;font-family:var(--f-mono);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:#F3DFA8;opacity:.95}
.vbook .vb-title{position:relative;font-family:var(--f-serif);font-weight:700;font-size:15px;line-height:1.08;color:#FFF4D6;text-shadow:0 1px 0 rgba(0,0,0,.45);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.vbook .vb-n{position:relative;margin-top:auto;font-family:var(--f-mono);font-size:8.5px;letter-spacing:.08em;color:#F3DFA8}
.vbook .vb-seal{position:absolute;right:10px;bottom:10px;width:22px;height:22px;border-radius:50%;border:1px solid rgba(233,207,143,.7);display:flex;align-items:center;justify-content:center;font-family:var(--f-serif);font-size:11px;color:#F3DFA8}
.vbook.soon{opacity:.55;filter:saturate(.4)}
.vbook.soon .vb-n{color:#FFE7A8}
.vx-bookdlg{width:min(720px,100%)!important;max-height:88vh;overflow:auto}
.vx-bookhead{display:flex;gap:18px;align-items:flex-start;margin-bottom:14px}
.vx-bookhead .vbook{--w:96px;--h:132px;--t:24px;flex:none;pointer-events:none}
.vx-bookhead .vbook .vb-title{font-size:12px}

/* ---------------------------------------------------------------- command bar */
.vx-cmdk{position:fixed;inset:0;z-index:300;background:rgba(5,6,8,.55);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
.vx-cmdk[hidden]{display:none}
.vx-cmdk .box{width:min(640px,100%);border-radius:20px;background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--metal-line),0 40px 100px rgba(0,0,0,.6);overflow:hidden}
html body .vx-cmdk input{width:100%;height:60px;border:0!important;border-bottom:1px solid var(--edge)!important;background:transparent!important;border-radius:0!important;padding:0 20px;font-size:1.1rem;color:var(--ink)}
html body .vx-cmdk input:focus{outline:none}
.vx-cmdk ul{list-style:none;margin:0;padding:8px;max-height:52vh;overflow:auto}
.vx-cmdk li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;cursor:pointer}
.vx-cmdk li[aria-selected="true"]{background:var(--metal-soft);box-shadow:inset 0 0 0 1px var(--metal-line)}
.vx-cmdk li .k{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;color:var(--metal-text);min-width:64px}
.vx-cmdk li .t{flex:1;min-width:0}
.vx-cmdk li .t small{display:block;color:var(--muted)}
.vx-cmdk .foot{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--edge);font-size:.78rem;color:var(--muted)}

/* ---------------------------------------------------------------- desk slot */
.vx-slot{position:relative;display:flex;align-items:center;gap:16px;padding:18px 20px;margin:0 0 16px;border-radius:20px;cursor:pointer;
  background:radial-gradient(500px 200px at 30% 0%,var(--metal-soft),transparent 70%),linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1.5px var(--metal-line),var(--shadow)}
.vx-slot:hover,.vx-slot.over{box-shadow:inset 0 0 0 2px var(--metal),0 20px 50px var(--shade)}
.vx-slot .mouth{flex:none;width:64px;height:44px;border-radius:10px;background:var(--s3);box-shadow:inset 0 6px 12px rgba(0,0,0,.5),inset 0 0 0 1px var(--edge);position:relative}
.vx-slot .mouth::after{content:"";position:absolute;left:10px;right:10px;top:50%;height:4px;margin-top:-2px;border-radius:2px;background:linear-gradient(90deg,var(--metal-lo),var(--metal-hi),var(--metal-lo))}
.vx-slot b{font-size:1.05rem}
.vx-slot input{position:absolute;inset:0;opacity:0;cursor:pointer}
.vx-slot.busy{pointer-events:none;opacity:.8}
.vx-idcard{margin:-6px 0 16px}

/* ---------------------------------------------------------------- files (trainee + supervisor) */
#panel-files{padding-top:18px}
.vx-files-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.vx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}
.vx-stats > div{padding:14px 16px;border-radius:16px;background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--edge),var(--shadow)}
.vx-stats b{display:block;font-family:var(--f-serif);font-size:2rem;line-height:1}
.vx-frow{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,2.2fr) minmax(0,1.3fr) auto;gap:14px;align-items:center;padding:14px 16px;border-radius:14px;cursor:pointer;width:100%;text-align:left;font:inherit;color:var(--ink);border:0;
  background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--edge)}
.vx-frow:hover{box-shadow:inset 0 0 0 1px var(--metal-line)}
@media (max-width:820px){.vx-frow{grid-template-columns:minmax(0,1fr)}}
.vx-segs{display:flex;gap:3px}
.vx-segs i{flex:1;height:8px;border-radius:3px;background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge)}
.vx-segs i.on{background:linear-gradient(90deg,var(--metal-lo),var(--metal-hi));box-shadow:none}
.vx-av{flex:none;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;background:var(--metal-soft);color:var(--metal-text);box-shadow:inset 0 0 0 1px var(--metal-line)}
.vx-stage{display:flex;gap:14px;align-items:flex-start;position:relative;padding-bottom:16px}
.vx-stage::before{content:"";position:absolute;left:15px;top:32px;bottom:0;width:2px;background:var(--edge)}
.vx-stage.done::before{background:var(--metal)}
.vx-stage:last-child::before{display:none}
.vx-stage .dot{flex:0 0 32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;z-index:1;border:0;cursor:pointer;font-family:var(--f-mono)}
.vx-stage.done .dot{background:var(--btn-bg);color:var(--btn-ink)}
.vx-stage.now .dot{background:var(--s1);color:var(--metal-text);box-shadow:inset 0 0 0 2px var(--metal),0 0 0 6px var(--metal-soft)}
.vx-stage.todo .dot{background:var(--s3);color:var(--muted);box-shadow:inset 0 0 0 1px var(--edge)}
.vx-stage .body{flex:1;min-width:0;padding-top:5px;display:flex;flex-direction:column;gap:4px}
.vx-stage.todo .body b{color:var(--muted)}
.vx-check{display:flex;align-items:center;gap:10px;font-size:.92rem;padding:3px 0}
.vx-check input{width:19px;height:19px;accent-color:var(--metal)}
.vx-cal{display:flex;gap:8px;flex-wrap:wrap}
.vx-cal a,.vx-cal button{height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--metal-line);color:var(--ink)!important;text-decoration:none;display:inline-flex;align-items:center;font-size:.84rem;background:transparent;cursor:pointer;font-family:inherit}
.vx-cal a:hover,.vx-cal button:hover{background:var(--metal-soft)}
.vx-big{font-family:var(--f-serif);font-weight:700;font-size:1.7rem;line-height:1.1}
.vx-countdown{font-family:var(--f-serif);font-weight:700;font-size:2.4rem;line-height:1}
.vx-countdown.hot{color:var(--crit)} .vx-countdown.warn{color:var(--mod)} .vx-countdown.ok{color:var(--ok)}
.vx-tog{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--edge);font-size:.92rem}
.vx-sw{flex:0 0 46px;height:26px;border-radius:13px;position:relative;border:0;cursor:pointer;background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge)}
.vx-sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#8E8678;transition:left .15s}
.vx-sw[aria-checked="true"]{background:var(--btn-bg);box-shadow:none}
.vx-sw[aria-checked="true"]::after{left:23px;background:#FFFFFF}

/* conversations */
.vx-threads{display:flex;flex-direction:column;gap:6px}
.vx-thread{display:flex;flex-direction:column;gap:3px;padding:11px 13px;border-radius:12px;border:1px solid transparent;background:transparent;text-align:left;font:inherit;color:var(--ink);cursor:pointer;width:100%}
.vx-thread:hover{background:var(--s3)}
.vx-thread.on{background:var(--s3);border-color:var(--metal-line)}
.vx-msgs{display:flex;flex-direction:column;gap:14px;max-height:56vh;overflow-y:auto;padding:4px 2px 8px}
.vx-msg{display:flex;gap:10px;align-items:flex-start;max-width:640px}
.vx-msg.me{align-self:flex-end;flex-direction:row-reverse}
.vx-msg .bub{padding:12px 14px;border-radius:16px;font-size:.95rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.vx-msg.them .bub{background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--edge);border-top-left-radius:4px}
.vx-msg.me .bub{background:var(--metal-soft);box-shadow:inset 0 0 0 1px var(--metal-line);border-top-right-radius:4px}
.vx-msg .meta{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.06em;color:var(--muted);margin-top:5px}
.vx-msg.me .meta{text-align:right}
.vx-msg.sys .bub{background:transparent;box-shadow:inset 0 0 0 1px var(--edge);font-size:.86rem;color:var(--muted)}
.vx-reply{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-top:10px}
.vx-reply textarea{flex:1 1 260px;min-height:52px!important}

/* re-check */
.vx-recheck{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 18px;margin:0 0 14px;border-radius:18px;background:var(--plate);color:#F4EFE4;box-shadow:inset 0 0 0 1px var(--metal-line)}
.vx-recheck .ba{display:flex;align-items:center;gap:12px;font-family:var(--f-serif);font-weight:700;font-size:2rem}
.vx-recheck .ba small{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.14em;display:block;color:#D9D1BF;font-weight:500}
.vx-recheck .arrow{color:#F0CF8A;font-size:1.4rem}
.vx-recheck .t{flex:1 1 240px;font-size:.92rem;color:#E9E2D2}

/* ---------------------------------------------------------------- small screens */
@media (max-width:999px){
  html body nav.tabs{overflow-x:auto;scrollbar-width:none}
  html body nav.tabs button{flex:0 0 auto;padding:8px 14px}
}
@media (max-width:820px){
  .vx-grid2{grid-template-columns:minmax(0,1fr)!important}
  .vx-attn{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vx-attn b{font-size:1.6rem}
  .vx-due .vd-go{display:none}
}

@media (max-width:999px){html body nav.tabs .vx-badge{top:-4px;right:-4px}}
html body .aiq-card{padding:22px 26px}
html body .aiq-brand{margin-bottom:12px}
html body .aiq-card h1{font-size:1.8rem;margin-bottom:8px}
html body .aiq-card form{gap:10px}

/* =====================================================================================
   SCREEN LAYOUTS (vault-layout.js) — matching the approved design canvas
   ===================================================================================== */
html:root[data-theme="dark"]{--paper:#F4EFE4;--paper-ink:#2A2620;--paper-line:#DCD3C0}
html:root[data-theme="light"]{--paper:#FFFDF8;--paper-ink:#2A2620;--paper-line:#E5DDCD}
.vx-gone{display:none!important}
.vx-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:0 0 20px;max-width:none}
html body .vx-head h2.vx-h1,html body .vx-h1{font-family:var(--f-serif);font-weight:600;font-size:clamp(2rem,3.4vw,2.75rem);line-height:1.02;margin:0;color:var(--ink);padding:0}
html body .vx-head h2::after{display:none}
.vx-sub{font-size:1rem;line-height:1.55;color:var(--muted);margin:0;max-width:70ch}
.vx-head p.muted{margin:4px 0 0}
.vx-mono-s{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;color:var(--muted)}
.vx-two{display:flex;gap:20px;flex-wrap:wrap;align-items:flex-start}
.vx-spot{position:relative;border-radius:24px;overflow:hidden;background:radial-gradient(640px 380px at 50% 0%,rgba(255,214,140,.14),transparent 70%),var(--s3);box-shadow:inset 0 0 0 1px var(--metal-line)}
html[data-theme="light"] .vx-spot{background:radial-gradient(640px 380px at 50% 0%,rgba(255,233,190,.75),transparent 70%),#E9E3D7}
.vx-divider{height:1px;background:var(--edge)}

/* ---------- top bar */
html body #libPill,html body .appbar .theme-seg,html body #aiqPill{display:none!important}
html body #aiPill:has(.dot.ok){display:none}
html body .modeseg{border-radius:24px;padding:4px;gap:4px;background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge);border:0;margin-left:0}
html body .modeseg button{height:38px;padding:0 16px;border-radius:20px;font-family:var(--f-body);font-weight:500;font-size:.88rem}
html body .modeseg button svg{display:none}
html body .modeseg button[aria-pressed="true"]{background:var(--metal-soft)!important;color:var(--metal-text)!important;box-shadow:inset 0 0 0 1px var(--metal-line)!important;border-color:transparent}
html body .appbar .in{justify-content:space-between;gap:14px}
html body .appbar .status{gap:14px;align-items:center}
html body .brand h1 b{color:var(--ink)}
html body .brand .sub{display:none}
.vx-cmdbtn{height:40px;min-width:240px;justify-content:space-between;border-radius:12px;font-size:.88rem}
.vx-gauge{display:flex;align-items:center;gap:10px;background:none;border:0;color:var(--ink);cursor:pointer;font:inherit;padding:0;text-align:left}
.vx-gauge-t{display:flex;flex-direction:column;line-height:1.2}
.vx-gauge-t b{font-size:.88rem;font-weight:600}
.vx-gauge-t span{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.06em;color:var(--muted)}
.vx-avatar{width:44px;height:44px;border-radius:50%;border:1px solid var(--metal-line);background:var(--s1);color:var(--metal-text);font:inherit;font-weight:600;cursor:pointer}
@media (max-width:1180px){.vx-gauge-t span{display:none}.vx-cmdbtn{min-width:0}}
@media (max-width:700px){.vx-gauge-t{display:none}}

/* ---------- Foyer */
#panel-ask .vx-oldgreet{display:none}
#panel-ask #vxFoyerHead{margin-bottom:22px}
html body #panel-ask .composer{position:static!important;display:flex;flex-direction:row!important;align-items:center!important;gap:10px;padding:10px 10px 10px 20px!important;border-radius:22px;background:var(--s3)!important;box-shadow:inset 0 0 0 1px var(--metal-line),0 20px 50px var(--shade);margin-bottom:12px}
html body #panel-ask .composer::before{content:"";flex:none;width:20px;height:20px;background:no-repeat center/20px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D8B36A' stroke-width='1.8'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M16 16l5 5'/%3E%3C/svg%3E")}
html body #panel-ask .composer textarea,html body #panel-ask.is-home .composer textarea{flex:1;min-height:48px!important;height:48px;max-height:200px;border:0!important;background:transparent!important;box-shadow:none!important;outline:none;padding:12px 4px!important;font-size:1.06rem;border-radius:0!important;resize:none}
html body #panel-ask .composer textarea:focus{outline:none;box-shadow:none!important}
html body #panel-ask .composer .mic{width:48px;height:48px;flex:none}
html body #panel-ask .composer>.row{flex-direction:row!important;gap:8px!important;flex-wrap:nowrap}
html body #panel-ask .composer #askSend{height:48px;padding:0 24px;font-size:1rem}
html body #panel-ask .composer #askNew{height:48px}
#panel-ask #askSuggest{order:3}#panel-ask #askSuggestTr{order:3}
#panel-ask.is-home .srcpick{order:4}
#panel-ask #vxRecent{order:5}#panel-ask #vxDrawK{order:6}#panel-ask .htiles{order:7}#panel-ask .hstats{order:8}#panel-ask.is-home .aiuse{order:9}
#panel-ask:not(.is-home) #vxRecent,#panel-ask:not(.is-home) #vxDrawK,#panel-ask:not(.is-home) #askSuggest{display:none}
html body .chips{gap:8px}
html body .chips .chip{height:auto;min-height:36px;padding:7px 14px;border-radius:18px;background:var(--s2)!important;border:1px solid var(--edge)!important;color:var(--muted);box-shadow:none;font-size:.86rem}
html body .chips .chip:hover{color:var(--ink)!important}
.vx-recent{display:flex;flex-direction:column;gap:14px;margin-top:26px}
.vx-shelf3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;perspective:1200px}
.vx-fcard{display:flex;flex-direction:column;gap:9px;padding:18px;border-radius:16px;border:0;cursor:pointer;text-align:left;font:inherit;color:var(--ink);
  background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 1px 0 var(--hi),inset 0 0 0 1px var(--edge),0 18px 40px var(--shade);transform:rotateX(10deg);transform-origin:50% 100%;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.vx-fcard:hover{transform:rotateX(0) translateY(-6px)}
.vx-fcard b{font-size:1rem}
.vx-fscore{font-family:var(--f-serif);font-weight:700;font-size:1.9rem;line-height:1}
.vx-drawk{margin-top:28px}
html body #panel-ask .htiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:14px}
html body .htile{flex-direction:column;align-items:flex-start;min-height:150px;padding:20px 20px 30px;gap:10px}
html body .htile .hti{display:none}
html body .htile b{font-size:1.08rem;font-weight:600}
html body .htile small{font-size:.9rem;line-height:1.45;color:var(--muted)}
html body .hstats{margin-top:30px}
@media (max-width:760px){.vx-shelf3,html body #panel-ask .htiles{grid-template-columns:minmax(0,1fr)}}

/* ---------- QC: the table */
.vx-intake .vx-table{flex:1.2 1 480px;min-width:0;display:flex;flex-direction:column}
.vx-intake .vx-settings{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:16px}
.q-table{position:relative;min-height:330px;display:flex;align-items:center;justify-content:center;perspective:1400px;padding:24px}
.q-stack{position:relative;width:320px;height:280px;transform:rotateX(52deg) rotateZ(-8deg);transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.vx-intake.loaded .q-stack{transform:rotateX(46deg) rotateZ(-4deg) translateZ(18px)}
.q-sheet{position:absolute;inset:0;border-radius:6px;background:var(--paper);box-shadow:0 2px 0 rgba(0,0,0,.08)}
.q-top{padding:22px;display:flex;flex-direction:column;gap:10px;box-shadow:0 30px 60px rgba(0,0,0,.35)}
.q-top .q-title{font-family:var(--f-serif);font-weight:700;font-size:17px;color:var(--paper-ink);line-height:1.15}
.q-top .q-meta{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.16em;color:#7A7266}
.q-top i,.vx-paper i{display:block;height:8px;border-radius:4px;background:var(--paper-line)}
.vx-intake.loaded .q-top .q-meta{color:#2F7D52}
.vx-tablefiles{padding:0 24px 24px;display:flex;flex-direction:column;gap:10px}
html body .vx-tablefiles .drop.qbig{min-height:0;padding:16px;flex-direction:row;text-align:left;gap:14px;justify-content:flex-start}
html body .vx-tablefiles .drop.qbig .qic{flex:none}
html body .vx-tablefiles .drop.qbig .btn{margin:0 0 0 auto}
html body .vx-tablefiles .qc-files{grid-template-columns:minmax(0,1fr)!important;gap:8px}
html body .vx-tablefiles .drop:not(.qbig){min-height:46px;border-style:solid!important;border-color:var(--edge)!important;background:var(--s2)!important;border-radius:12px}
html body .vx-tablefiles .drop.has:not(.qbig){border-color:rgba(124,196,154,.5)!important}
html body .vx-tablefiles .drop.has:not(.qbig)::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:#7CC49A}
html body .vx-tablefiles .qopt .label{display:block;margin:6px 0 2px}
html body .vx-settings .qset{grid-template-columns:1fr 1fr}
html body .vx-settings #programHint:not(:empty){padding:12px 14px;border-radius:12px;background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge);font-size:.9rem;color:var(--ink)}
html body .vx-settings .qmode{font-size:.88rem}
html body .vx-settings #qcPrep{justify-content:flex-end}
html body .vx-settings #qcRun{flex:0 1 auto!important;height:54px;padding:0 34px!important;font-size:1.02rem}
html body #panel-qc #qcPrivacy{margin-top:16px}
html body #panel-qc #qcScore{display:none!important}

/* scanning */
#panel-qc.vx-scanning #vxIntake,#panel-qc.vx-scanning #qcPrivacy,#panel-qc.vx-scanning>.intro,#panel-qc.vx-scanning #qcOut{display:none!important}
.vx-scan .vx-scanspot{flex:1.1 1 460px;min-width:0;display:flex;align-items:center;justify-content:center;padding:34px;min-height:560px}
.vx-scan .vx-two>.vx-panel{flex:1 1 360px;min-width:0}
.vx-paper{position:relative;border-radius:6px;background:var(--paper);color:var(--paper-ink);box-shadow:0 40px 80px var(--shade),0 0 0 1px rgba(0,0,0,.12);padding:26px 30px;display:flex;flex-direction:column;gap:13px}
.vx-paper .p-title{font-family:var(--f-serif);font-size:19px;font-weight:700;color:var(--paper-ink)}
.vx-paper .p-h{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;color:#7A7266}
.vx-scanpaper{width:420px;max-width:100%;height:500px;overflow:hidden}
.s-beam{position:absolute;left:-30px;right:-30px;height:70px;top:-8%;background:linear-gradient(180deg,transparent,rgba(240,207,138,.35) 45%,rgba(240,207,138,.75) 50%,rgba(240,207,138,.35) 55%,transparent);animation:s-sweep 3.2s cubic-bezier(.45,0,.55,1) infinite;mix-blend-mode:multiply;pointer-events:none}
@keyframes s-sweep{0%{top:-8%}100%{top:104%}}
@keyframes s-pulse{0%,100%{opacity:.35}50%{opacity:1}}
.s-step{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:.95rem}
.s-step.dim{color:var(--muted)}
.s-ic{flex:0 0 24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem}
.s-done{background:#7CC49A;color:#06150D}
.s-run{box-shadow:inset 0 0 0 2px var(--metal);animation:s-pulse 1.2s ease-in-out infinite}
.s-wait{box-shadow:inset 0 0 0 1px var(--edge)}
.s-new{display:flex;gap:10px;align-items:center;padding:11px 13px;border-radius:12px;background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge);font-size:.9rem}
.vx-pin{position:absolute;right:18px;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:13px;font-weight:600;border:0;box-shadow:0 0 0 6px rgba(0,0,0,.06),0 6px 14px rgba(0,0,0,.3);animation:pinIn .4s cubic-bezier(.2,.8,.2,1.4)}
@keyframes pinIn{from{transform:scale(0)}to{transform:scale(1)}}
.vx-pin.critical{background:#E8694A;color:#1A0B06}.vx-pin.moderate{background:#E8A93D;color:#1F1404}.vx-pin.minor{background:#8FB3D6;color:#0B1622}
.vx-pin.done{background:#7CC49A;color:#06150D}
@media (prefers-reduced-motion:reduce){.s-beam,.s-run{animation:none}}

/* results */
.vx-reshead{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 18px}
.vx-resact{gap:10px}
.vx-results .vx-paperspot{flex:1 1 400px;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 30px 20px;min-height:540px;perspective:1400px;position:sticky;top:calc(var(--vx-top,74px) + 10px)}
.vx-respaper{width:400px;max-width:100%;height:480px;transform:rotateX(14deg);transform-origin:50% 100%}
.vx-respaper .vx-pin{right:-14px;cursor:pointer}
.vx-respaper .vx-pin.on{box-shadow:0 0 0 10px rgba(216,179,106,.3),0 6px 14px rgba(0,0,0,.3)}
.vx-findings{flex:1 1 420px;max-width:600px;min-width:0;display:flex;flex-direction:column;gap:10px}
html body #qcMd .finding{background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge);border:0;border-left:4px solid var(--minor);border-radius:14px;padding:14px 16px 8px;margin:10px 0}
html body #qcMd .finding.critical{border-left-color:#E8694A}html body #qcMd .finding.moderate{border-left-color:#E8A93D}
html body #qcMd .finding:not(.vx-shut):not(.resolved){background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--metal-line),0 18px 40px var(--shade)}
html body #qcMd .finding.vx-shut>*:not(h3){display:none}
html body #qcMd .finding.vx-shut{padding-bottom:12px}
html body #qcMd .finding h3{cursor:pointer;font-size:1rem}
html body #qcMd .finding.vx-shut h3 .factions .fact{display:none}
.vx-findings .copybar{margin-top:6px}

/* ---------- Write */
.vx-write{align-items:stretch}
.vx-write>.vx-wleft{flex:1 1 360px;min-width:0}
.vx-write>.vx-wright{flex:1.3 1 460px;min-width:0;padding:24px;display:flex;flex-direction:column;gap:14px;min-height:420px}
.vx-wright:has(.out:empty)::after{content:attr(data-ph);display:flex;align-items:center;justify-content:center;flex:1;text-align:center;padding:30px;border-radius:6px;background:var(--paper);color:#7A7266;font-family:var(--f-serif);font-size:1.25rem;box-shadow:0 30px 60px var(--shade);opacity:.9}
.vx-wright .out{margin-top:0}
html body .vx-wright .md{background:var(--paper);color:var(--paper-ink);padding:24px 28px;border-radius:6px;box-shadow:0 30px 60px var(--shade);font-size:1rem;line-height:1.7}
html body .vx-wright .md *{color:inherit}
html body .vx-wright .md .cite{color:#6E5019!important;background:#F3E9D2!important;border-color:rgba(154,118,49,.45)!important}
html body .vx-wright .md code,html body .vx-wright .md pre{background:#EDE6D6}
html body .vx-wright .md mark{background:rgba(232,169,61,.35)}
html body .vx-wleft .grid2,html body .vx-wleft .grid3{gap:12px}
#panel-write #writeAiUse{margin-bottom:16px}

/* ---------- Desk */
#panel-desk .intro{flex-direction:column;align-items:flex-start;gap:6px}
#panel-desk .intro>p{margin:0}
html body #vxDeskSlot{padding:30px;gap:28px;margin:0 0 22px;border-radius:22px;flex-wrap:wrap}
html body #vxDeskSlot .mouth{flex:0 0 220px;height:96px;border-radius:14px;background:linear-gradient(180deg,#05070A,#11151B);box-shadow:inset 0 10px 24px rgba(0,0,0,.9),inset 0 0 0 2px var(--metal-line)}
html body #vxDeskSlot .mouth::after{left:35px;right:35px;height:10px;margin-top:-5px;border-radius:5px;box-shadow:0 0 18px var(--metal-soft)}
html body #vxDeskSlot b{font-family:var(--f-serif);font-weight:600;font-size:1.8rem;line-height:1.1}
html body #vxDeskSlot .vx-col{flex:1 1 320px}
html body #vxDeskSlot .vx-small{font-size:.98rem;line-height:1.55}
.vx-slotbtn{pointer-events:none}
.vx-toolsk{display:block;margin:4px 0 12px}
html body #panel-desk .tools{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
html body #panel-desk .tool{position:relative;flex-direction:column;align-items:flex-start;gap:8px;min-height:150px;padding:18px 18px 30px;border-radius:16px}
html body #panel-desk .tool .tic{display:none}
html body #panel-desk .tool .tt b{font-size:1.05rem}
html body #panel-desk .tool .tt span{font-size:.88rem;line-height:1.45;white-space:normal}
html body #panel-desk .tool::after{content:"";position:absolute;left:50%;bottom:11px;width:46px;height:5px;margin-left:-23px;border-radius:3px;background:linear-gradient(90deg,var(--metal-lo),var(--metal-hi),var(--metal-lo))}
html body #panel-desk .tool.vx-soon{opacity:.6}
.vx-dtag{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.14em;padding:3px 7px;border-radius:6px;background:var(--metal-soft);color:var(--metal-text);box-shadow:inset 0 0 0 1px var(--metal-line)}
@media (max-width:900px){html body #panel-desk .tools{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Library */
html body .vx-askbar{display:flex;gap:10px;align-items:center;padding:8px 8px 8px 20px;border-radius:22px;background:var(--s3);box-shadow:inset 0 0 0 1px var(--metal-line),0 20px 50px var(--shade);margin-bottom:22px;flex-wrap:nowrap}
html body .vx-askbar input{border:0!important;background:transparent!important;font-size:1.06rem;height:48px;box-shadow:none!important}
html body .vx-askbar input:focus{outline:none}
html body .vx-askbar .btn{height:48px}
.vx-libtwo{align-items:flex-start}
.vx-libtwo .vx-stacks{flex:1.25 1 520px;min-width:0;padding:26px 18px 34px}
.vx-libtwo .vx-libres{flex:1 1 360px;max-width:500px;min-width:0;display:flex;flex-direction:column;gap:12px}
html body #libHits .hit{border:0;padding:16px;border-radius:14px;background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge);margin-bottom:10px}
.vx-libempty{padding:22px;border:1.5px dashed var(--edge);border-radius:14px;text-align:center}
#panel-lib>p.small{margin-top:18px}

/* ---------- Account: the deposit box */
html body .modal.aiq-acct{width:min(1000px,100%)!important;max-width:none;max-height:92vh;overflow:auto;padding:24px 26px}
.aiq-h{font-family:var(--f-serif);font-weight:600;font-size:2.3rem;margin:4px 0 16px}
.aiq-acct-grid{display:flex;gap:22px;flex-wrap:wrap}
.aiq-col{flex:1 1 400px;min-width:0;display:flex;flex-direction:column;gap:16px;align-items:stretch}
.aiq-card3d{position:relative;width:420px;max-width:100%;height:240px;border-radius:22px;padding:24px 26px;display:flex;flex-direction:column;justify-content:space-between;color:#1A140A;
  background:linear-gradient(125deg,#F6DFA6 0%,#C99E52 38%,#E9C987 55%,#A9813E 100%);box-shadow:0 40px 80px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.7),inset 0 0 0 1px rgba(0,0,0,.15);
  transform:perspective(1200px) rotateY(-12deg) rotateX(7deg);transition:transform .5s cubic-bezier(.2,.8,.2,1);align-self:flex-start}
.aiq-card3d:hover{transform:perspective(1200px) rotateY(0) rotateX(0)}
.aiq-card3d::after{content:"";position:absolute;inset:0;border-radius:22px;background:repeating-linear-gradient(100deg,rgba(255,255,255,.06) 0 2px,transparent 2px 5px);pointer-events:none}
.aiq-card3d .m-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.aiq-card3d .m-brand{font-family:var(--f-serif);font-size:1.4rem;font-weight:700}
.aiq-card3d .m-plan{font-family:var(--f-serif);font-size:2.1rem;font-weight:700;line-height:1}
.aiq-card3d .m-mono{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em}
.aiq-card3d b{color:#1A140A}
html body .aiq-meter.vx-panel{padding:18px 20px;margin:0}
.aiq-big{font-family:var(--f-serif);font-weight:700;font-size:2.6rem;line-height:1;margin:10px 0}
.aiq-big span{font-size:1.2rem;color:var(--muted)}
html body .aiq-seats.vx-panel{margin:0;border-top:0;padding:18px 20px}
@media (max-width:700px){.aiq-card3d{transform:none;height:auto;gap:18px}}
html body #panel-desk .intro>p{display:none}
html body #panel-desk .tool .tt b{font-size:1.06rem!important;font-weight:600}
html body #panel-desk .tool .tt span{font-size:.88rem!important;color:var(--muted)}
html body #panel-desk .tool:hover{border-color:var(--metal-line)!important}
html body #panel-desk .tool[aria-selected="true"]{border-color:var(--metal)!important}
body.trainee #panel-ask #vxFoyer{order:1}
#panel-ask #vxFoyer{order:5;margin:18px 0 0}
#panel-ask:not(.is-home) #vxFoyer{display:none}

#panel-qc.vx-hasres #vxIntake,#panel-qc.vx-hasres #qcPrivacy,#panel-qc.vx-hasres>.intro{display:none!important}
html body .modal .aiq-h{font-size:2.3rem!important;font-family:var(--f-serif)!important;font-weight:600}
.aiq-col .vx-panel>.vx-kicker{display:block}
.vx-theme{display:inline-flex;gap:3px;padding:3px;border-radius:12px;background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge)}
.vx-theme button{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:inherit;font-size:.82rem;cursor:pointer}
.vx-theme button:hover{color:var(--ink)}
.vx-theme button[aria-pressed="true"]{background:var(--metal-soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--metal-line)}
@media (max-width:1280px){.vx-theme button span{display:none}}
/* membership card tiers: gold = unlimited / founder, silver = Residential, emerald = Commercial, black = Trainee */
.aiq-card3d .m-member{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
html body .aiq-card3d.tier-gold{background:linear-gradient(125deg,#F6DFA6 0%,#C99E52 38%,#E9C987 55%,#A9813E 100%);color:#1A140A}
html body .aiq-card3d.tier-silver{background:linear-gradient(125deg,#F4F6F8 0%,#B9C0C8 38%,#E3E7EB 55%,#8E979F 100%);color:#15191E}
html body .aiq-card3d.tier-emerald{background:linear-gradient(125deg,#3E9C6E 0%,#0F5A39 40%,#2C8459 58%,#08341F 100%);color:#F2FBF5}
html body .aiq-card3d.tier-black{background:linear-gradient(125deg,#3A3F47 0%,#121417 40%,#2A2E34 58%,#08090B 100%);color:#F0CF8A;box-shadow:0 40px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 0 1px rgba(216,179,106,.45)}
html body .aiq-card3d.tier-silver b{color:#15191E}html body .aiq-card3d.tier-emerald b{color:#F2FBF5}html body .aiq-card3d.tier-black b{color:#F4EFE4}
html body .aiq-card3d.tier-emerald .m-plan,html body .aiq-card3d.tier-emerald .m-brand{text-shadow:0 1px 2px rgba(0,0,0,.35)}
/* commercial trainees: copper instead of patina */
html[data-theme="dark"] body.trainee.commercial{--metal:#D08A5A;--metal-hi:#EDB08A;--metal-lo:#9A5A33;--metal-ink:#1C0E06;--metal-soft:rgba(208,138,90,.15);--metal-line:rgba(208,138,90,.4);--metal-text:#F2BC97}
html[data-theme="light"] body.trainee.commercial{--metal:#A0592E;--metal-hi:#B86D3E;--metal-lo:#7E4220;--metal-soft:#F7E6DA;--metal-line:rgba(160,89,46,.45);--metal-text:#7E4220}
.aiq-trk{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border-radius:6px;margin-left:6px;background:rgba(124,196,154,.16);color:var(--ok);box-shadow:inset 0 0 0 1px rgba(124,196,154,.4)}
.aiq-trk.cm{background:rgba(208,138,90,.16);color:#C77A48;box-shadow:inset 0 0 0 1px rgba(208,138,90,.45)}
html[data-theme="dark"] .aiq-trk.cm{color:#F2BC97}
.aiq-trkseg{flex:1 1 100%}
.aiq-trkseg button:disabled{opacity:.45;cursor:not-allowed}
html body.trainee #cmBanner{display:none!important}
/* plans and add-ons */
html body .modal.aiq-plansdlg{width:min(1180px,100%)!important}
.aiq-plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:1100px){.aiq-plans{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.aiq-plans{grid-template-columns:minmax(0,1fr)}}
.aiq-plan-card{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:18px;background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 1px 0 var(--hi),inset 0 0 0 1px var(--edge),0 18px 40px var(--shade)}
.aiq-plan-card.mine,.aiq-plan-card.focus{box-shadow:inset 0 0 0 2px var(--metal),0 18px 40px var(--shade)}
html body .aiq-card3d.aiq-mini{width:100%;height:120px;padding:14px 16px;border-radius:14px;transform:perspective(900px) rotateX(10deg);align-self:stretch}
html body .aiq-card3d.aiq-mini:hover{transform:perspective(900px) rotateX(0) translateY(-3px)}
html body .aiq-card3d.aiq-mini::after{border-radius:14px}
html body .aiq-card3d.aiq-mini .m-brand{font-size:1rem}
html body .aiq-card3d.aiq-mini .m-plan{font-size:1.45rem;line-height:1.05}
.aiq-price{display:flex;align-items:baseline;gap:6px}
.aiq-price b{font-family:var(--f-serif);font-size:2.4rem;font-weight:700;line-height:1;color:var(--ink)}
.aiq-price span{font-size:.88rem;color:var(--muted)}
.aiq-price.sm b{font-size:1.6rem}
.aiq-plan-card ul{margin:0;padding-left:18px;font-size:.9rem;line-height:1.5;flex:1}
.aiq-plan-card li{margin-bottom:4px}
.aiq-needs{display:block;margin-top:4px;color:var(--metal-text)}
.aiq-plan-cta .btn{width:100%;height:44px}
.aiq-mine,.aiq-soon{display:flex;align-items:center;justify-content:center;height:44px;border-radius:12px;font-size:.88rem;font-weight:600}
.aiq-mine{background:var(--metal-soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--metal-line)}
.aiq-soon{border:1px dashed var(--edge);color:var(--muted)}
.aiq-packs{margin-top:16px}
.aiq-packrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
@media (max-width:620px){.aiq-packrow{grid-template-columns:minmax(0,1fr)}}
.aiq-pack{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge)}
.aiq-pack>span:first-child{flex:1}
.aiq-pack .aiq-soon{height:34px;padding:0 12px}

/* ---------------------------------------------------------------- Oct 17 update: trainee + supervisor */
.vx-trpriv{display:none}
body.trainee .vx-trpriv{display:list-item}
/* QC requests */
.vx-reqcard{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;margin:0 0 12px}
.vx-reqcard b{font-size:1rem}
.vx-reqcard.warn{box-shadow:inset 0 0 0 1px rgba(232,169,61,.55),inset 0 1px 0 var(--hi),0 18px 44px var(--shade)}
.vx-reqcard.ok{box-shadow:inset 0 0 0 1px rgba(124,196,154,.5),inset 0 1px 0 var(--hi),0 18px 44px var(--shade)}
/* Trainee activity */
.vx-actwrap{margin:0 0 14px}
.vx-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:10px}
.vx-act{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:16px;background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--edge),var(--shadow);min-width:0}
.vx-act.idle{box-shadow:inset 0 0 0 1px rgba(232,105,74,.5),var(--shadow)}
.vx-actn{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px}
.vx-actn>div{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:12px;background:var(--s3)}
.vx-actn b{font-family:var(--f-serif);font-size:1.5rem;line-height:1}
.vx-actn b small{font-size:.8rem;color:var(--muted);font-family:var(--f-body)}
.vx-actn span{font-size:.74rem;color:var(--muted);line-height:1.25}
.vx-ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* Notification settings */
.vx-nrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--edge);font-size:.92rem;flex-wrap:wrap}
.vx-nrow>span{flex:1 1 220px;min-width:0}
.vx-nrow select{max-width:100%}
.vx-chan{flex:0 1 auto}
.vx-chan button{padding:6px 10px;font-size:.8rem}
.vx-notifs{max-height:min(86vh,900px);overflow-y:auto}
/* QC results copied into a conversation */
.vx-qctag{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;color:var(--metal-text);margin:0 0 4px}
.vx-msg.qc .bub{background:var(--s3);box-shadow:inset 0 0 0 1px var(--metal-line);font-size:.9rem}
.vx-copied{margin:0 0 8px;color:var(--ok)}
/* Account: per-trainee switches */
.aiq-topts{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.aiq-topts .check{display:inline-flex;gap:6px;align-items:center;font-size:.82rem;color:var(--muted);cursor:pointer}
@media (max-width:620px){.vx-chan{width:100%}.vx-chan button{flex:1}}

/* ---------------------------------------------------------------- Talk it through */
.tt-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:6px 0 10px}
.tt-title{font-family:var(--f-serif);font-size:1.45rem;line-height:1.2;color:var(--ink)}
#ttTray{margin:0 0 10px}
.tt-tray{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tt-doc{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:6px 6px 6px 8px;border-radius:12px;background:var(--s3);box-shadow:inset 0 0 0 1px var(--edge);font-size:.84rem;min-width:0}
.tt-doc.ready{box-shadow:inset 0 0 0 1px var(--metal-line)}
.tt-doc.error{box-shadow:inset 0 0 0 1px rgba(232,105,74,.55)}
.tt-ic{flex:none;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.08em;padding:2px 5px;border-radius:5px;background:var(--metal-soft);color:var(--metal-text)}
.tt-dn{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.tt-dd{color:var(--muted);font-size:.76rem;white-space:nowrap}
.tt-x{border:0;background:transparent;color:var(--muted);font-size:1rem;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}
.tt-x:hover{color:var(--ink);background:var(--s2)}
.tt-add{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:12px;border:1px dashed var(--metal-line);color:var(--metal-text);font-size:.84rem;font-weight:600;cursor:pointer}
.tt-add:hover{background:var(--metal-soft)}
.tt-add input{display:none}
.tt-err{font-size:.8rem;color:var(--crit);margin-top:6px}
html body #panel-ask .composer.tt-over{box-shadow:0 0 0 3px var(--metal),var(--shadow)}
.tt-chat{display:flex;flex-direction:column;gap:12px}
.tt-q{align-self:flex-end;max-width:min(720px,92%);padding:12px 16px;border-radius:18px 18px 4px 18px;background:var(--metal-soft);box-shadow:inset 0 0 0 1px var(--metal-line);white-space:pre-wrap;overflow-wrap:anywhere}
.tt-q.draft{font-weight:600}
.tt-a{padding:14px 18px;border-radius:18px 18px 18px 4px;background:linear-gradient(180deg,var(--s1),var(--s2));box-shadow:inset 0 0 0 1px var(--edge);border-left:3px solid var(--metal);overflow-wrap:anywhere}
.tt-a.draft{border-left-color:var(--ok)}
.tt-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.tt-note{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}
.tt-fab{position:fixed;right:20px;bottom:20px;z-index:150;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border:0;border-radius:999px;cursor:pointer;font:inherit;font-weight:700;background:var(--btn-bg);color:var(--btn-ink);box-shadow:0 14px 34px var(--shade)}
.tt-fab[hidden]{display:none}
.tt-fabn{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--metal-ink);color:var(--metal-text);font-size:.72rem;display:inline-flex;align-items:center;justify-content:center}
.tt-drawer{position:fixed;top:0;right:0;bottom:0;z-index:160;width:min(460px,100vw);display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--bg);box-shadow:-20px 0 60px var(--shade),inset 1px 0 0 var(--edge)}
.tt-drawer[hidden]{display:none}
.tt-drawer.tt-over{box-shadow:inset 0 0 0 3px var(--metal),-20px 0 60px var(--shade)}
.tt-drawer header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.tt-dchat{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:2px}
.tt-dchat .tt-a{padding:12px 14px;font-size:.92rem}
.tt-dchat .tt-q{font-size:.92rem}
.tt-empty{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:14px;background:var(--s3);color:var(--muted);font-size:.9rem}
.tt-empty b{color:var(--ink);font-family:var(--f-serif);font-size:1.2rem}
.tt-dcomp{display:flex;gap:8px;align-items:flex-end}
.tt-dcomp textarea{flex:1;min-height:52px;max-height:200px;resize:vertical}
body.tt-open .vx-cmdbtn{visibility:visible}
@media (max-width:620px){.tt-fab span:not(.tt-fabn){display:none}.tt-fab{padding:14px}.tt-dn{max-width:160px}}
#panel-ask #ttHead,#panel-ask #ttTray{order:2}
#panel-ask:not(.is-home) #ttHead{order:0}
#panel-ask:not(.is-home) #ttTray{order:9}
.aiq-powered{display:block;margin-top:10px;font-size:.78rem;color:var(--muted);letter-spacing:.02em}
.aiq-powered a{color:var(--metal-text);text-decoration:none;font-weight:600}
.aiq-powered a:hover{text-decoration:underline}

/* Bigger, obvious drop zones and chat boxes */
.tt-tray:empty{display:none}
.tt-tray{margin-bottom:10px}
.tt-zone{display:flex;align-items:center;gap:14px;min-height:88px;padding:16px 20px;border-radius:18px;border:2px dashed var(--metal-line);background:var(--metal-soft);color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}
.tt-zone:hover,.tt-zone:focus-within{border-color:var(--metal);background:color-mix(in srgb,var(--metal-soft) 70%,var(--metal) 12%)}
.tt-zone input{display:none}
.tt-zone b{font-size:1.05rem}
.tt-zone .vx-col>span{color:var(--muted);font-size:.86rem}
.tt-zic{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--s1);color:var(--metal-text);box-shadow:inset 0 0 0 1px var(--metal-line)}
body.filedrag .tt-zone{border-color:var(--metal);border-style:solid;box-shadow:0 0 0 4px var(--metal-soft)}
#panel-ask:not(.is-home) .tt-zone{min-height:64px;padding:10px 16px}
html body #panel-ask .composer textarea,html body #panel-ask.is-home .composer textarea{min-height:120px!important;height:auto;max-height:340px;font-size:1.08rem;line-height:1.5;padding:16px 6px!important}
html body #panel-ask:not(.is-home) .composer textarea{min-height:88px!important}
html body #panel-ask .composer{align-items:flex-end;padding:10px 12px;border-radius:24px}
html body #panel-ask .composer #askSend{height:56px;padding:0 30px;font-size:1.05rem}
.tt-drawer{width:min(540px,100vw)}
.tt-drawer .tt-zone{min-height:72px}
.tt-dcomp textarea{min-height:96px;font-size:1rem}
.tt-dcomp .btn{height:56px;padding:0 22px}
/* QC and Write drop boxes */
html body .drop{min-height:72px;padding:16px 18px!important;border-width:2px!important;border-radius:16px!important}
html body .drop .fname{font-size:.98rem}
html body #dropW{min-height:96px}
html body .vx-slot{min-height:96px}
/* Talk it through: headline sized as a key feature */
#ttHead .vx-kicker{font-size:.86rem;letter-spacing:.16em}
#ttHead .tt-title{font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.12;text-wrap:balance}
#ttHead #ttSub{font-size:1.02rem;line-height:1.5;max-width:70ch}
#panel-ask:not(.is-home) #ttHead .tt-title{font-size:clamp(1.3rem,2.2vw,1.7rem)}
#panel-ask:not(.is-home) #ttHead #ttSub{font-size:.92rem}
#ttHead .tt-name{margin:0;font-family:var(--f-serif);font-size:clamp(2.2rem,4.4vw,3.2rem);line-height:1.02;color:var(--metal-text);letter-spacing:-.01em}
#ttHead .tt-title{font-size:clamp(1.15rem,1.8vw,1.45rem);line-height:1.3;font-family:var(--f-body);font-weight:600;color:var(--ink)}
#ttHead{padding-top:8px;border-top:1px solid var(--metal-line);margin-top:10px}
#panel-ask:not(.is-home) #ttHead .tt-name{font-size:clamp(1.5rem,2.6vw,2rem)}
#panel-ask:not(.is-home) #ttHead .tt-title{font-size:1.05rem}
/* QC: the in-tray (replaces the table) */
.q-tray{width:min(380px,100%);margin:52px auto 0;aspect-ratio:340/230}
.q-tray svg{display:block;overflow:visible}
.q-arrow path{fill:none;stroke:var(--metal);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.q-arrow{animation:qbob 2.4s ease-in-out infinite}
@keyframes qbob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){.q-arrow{animation:none}}
.q-doc{transition:transform .6s cubic-bezier(.2,.8,.2,1);transform:translateY(-6px)}
.q-docbg{fill:var(--paper);stroke:var(--edge);stroke-width:1.5}
.q-fold{fill:var(--paper-line)}
.q-ln{fill:var(--paper-line)}.q-ln.strong{fill:var(--metal);opacity:.55}
.q-check{fill:#2F7D52;opacity:0;transition:opacity .3s}.q-tick{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .3s}
.q-trayf{fill:var(--s2);stroke:var(--metal-line);stroke-width:2}
.q-lip{stroke:var(--metal);stroke-width:5;stroke-linecap:round}
.q-plate{fill:var(--metal-soft);stroke:var(--metal-line);stroke-width:1.5}
.q-platet{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;fill:var(--metal-text);font-weight:600}
.vx-intake.loaded .q-doc{transform:translateY(28px)}
.vx-intake.loaded .q-arrow{opacity:0;animation:none}
.vx-intake.loaded .q-check,.vx-intake.loaded .q-tick{opacity:1}
.q-cap{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:6px 24px 18px}
.q-cap b{font-family:var(--f-serif);font-size:1.25rem;color:var(--ink)}
.q-cap span{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.14em;color:var(--muted)}
.vx-intake.loaded .q-cap span{color:var(--ok)}
/* Talk it through button in the rail (no floating button covering the page) */
html body nav.tabs #ttFab.tt-railbtn{background:var(--btn-bg)!important;color:var(--btn-ink)!important;border-color:transparent!important;position:relative}
html body nav.tabs #ttFab.tt-railbtn[aria-pressed="true"]{box-shadow:0 0 0 3px var(--metal-soft),0 8px 22px var(--shade)}
html body nav.tabs #ttFab .tt-fabn{position:absolute;top:6px;right:6px}
/* QC: engagement letter and contract boxes look like drop zones */
html body .vx-tablefiles .drop:not(.qbig){min-height:68px;border:2px dashed var(--metal-line)!important;background:var(--metal-soft)!important;border-radius:14px;padding:12px 16px!important;gap:12px}
html body .vx-tablefiles .drop:not(.qbig):hover,html body .vx-tablefiles .drop.over:not(.qbig){border-color:var(--metal)!important;border-style:dashed!important}
html body .vx-tablefiles .drop:not(.qbig) .fname{font-weight:600;color:var(--ink)}
html body .vx-tablefiles .drop:not(.qbig):not(.has)::after{content:"Drop here or click to choose";margin-left:auto;font-size:.82rem;color:var(--metal-text);white-space:nowrap}
html body .vx-tablefiles .drop.has:not(.qbig){border-style:solid!important;border-color:rgba(124,196,154,.6)!important;background:var(--s2)!important}
html body .vx-tablefiles .qopt .label{font-size:.82rem;letter-spacing:.12em;color:var(--metal-text);margin:10px 0 4px}
@media (max-width:520px){html body .vx-tablefiles .drop:not(.qbig):not(.has)::after{display:none}}
/* QC: wooden tray */
.q-tray{width:min(420px,100%);aspect-ratio:360/250;margin-top:56px}
.q-shadow{fill:rgba(0,0,0,.28);filter:blur(6px)}
.q-gold{font-family:var(--f-serif);font-size:30px;font-weight:700;letter-spacing:.18em;fill:url(#qGold);stroke:#4A2A12;stroke-width:.6;paint-order:stroke}
.q-doc{transform:translateY(-4px)}
.vx-intake.loaded .q-doc{transform:translateY(34px)}

/* daily industry brief under the greeting */
.vx-brief{margin:-8px 0 20px;padding:10px 16px 4px;border:1px solid var(--metal-line);border-radius:16px;background:var(--s2,rgba(255,255,255,.03))}
.vx-brief-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.vx-brief-h small{color:var(--ink-3,var(--muted));font-size:.78rem}
.vx-brief ul{list-style:none;margin:0;padding:0}
.vx-brief li{display:flex;flex-direction:column;gap:1px;padding:6px 0 6px 16px;border-top:1px solid var(--metal-line);position:relative}
.vx-brief li:first-child{border-top:0}
.vx-brief li::before{content:"";position:absolute;left:2px;top:13px;width:6px;height:6px;border-radius:50%;background:var(--gold,#c9a24a)}
.vx-brief li a{color:var(--ink);font-weight:600;text-decoration:none;font-size:.98rem;line-height:1.35}
.vx-brief li a:hover{text-decoration:underline}
.vx-brief li span{color:var(--ink-2,var(--muted));font-size:.86rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}
.vx-brief li span.open{-webkit-line-clamp:unset}
.vx-brief li em{font-style:normal;color:var(--ink-3,var(--muted));font-size:.76rem;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.vx-brief-ask{background:none;border:0;padding:0;color:var(--gold,#c9a24a);font:inherit;font-weight:600;cursor:pointer}
.vx-brief-ask:hover{text-decoration:underline}

/* Write + Desk merged into Talk it through: no separate rail tabs; their tools open as guided tools */
html body nav.tabs #tab-write,html body nav.tabs #tab-desk{display:none!important}
body.trainee .htile.t-check,body.trainee .htile.t-draft{display:flex}
.vx-back{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 16px;padding:10px 14px;border:1px solid var(--metal-line);border-radius:14px;background:var(--s2,rgba(255,255,255,.03));font-size:.88rem;color:var(--ink-2,var(--muted))}
.vx-back b{color:var(--ink)}
#panel-ask #vxDrawK{font-size:.8rem}

/* Profile › Trainees */
.pf-trainees{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 4px;padding:12px 14px;border:1px solid var(--metal-line,var(--line));border-radius:14px;background:var(--s2,rgba(0,0,0,.02))}
.pf-trainees>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 260px}
.pf-trainees b{font-size:.98rem}
.aiq-moreseat{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 4px}

/* ================================================================ design pass (Oct 17): one of everything, phone-ready */
/* Home heading: the AO-41 note lives at the bottom of Home; Profile lives in Account (tap your initials) */
#vxFoyerHead #vxAo41,#vxFoyerHead #profBtn{display:none}
/* the Talk button is for other tabs; on Home the conversation is right there */
body[data-tab="ask"] #ttFab{display:none!important}
/* Talk it through: drop zone and question box read as one card */
#panel-ask.is-home #ttTray{margin-bottom:0}
#panel-ask.is-home #ttTray .tt-zone{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:solid;border-bottom-width:1px;min-height:72px}
#panel-ask.is-home #ttTray + .composer,#panel-ask.is-home .composer{margin-top:0}
#panel-ask.is-home .composer textarea{border-top-left-radius:0!important;border-top-right-radius:0!important}
/* Guided tools: compact, scannable */
html body #panel-ask .htiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
html body #panel-ask .htile{min-height:0!important;padding:12px 14px!important}
html body #panel-ask .htile::after,html body #panel-ask .htile .ht-bar{display:none!important}
html body #panel-ask .htile small{display:block;margin-top:2px;line-height:1.35}
/* Trainees on Home: what needs you first, then a compact activity row */
.vx-trhead{display:flex;justify-content:space-between;align-items:baseline;margin:6px 0 8px}
.vx-attn.vx-attn-chips{display:flex!important;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.vx-attn.vx-attn-chips button{flex:0 1 auto;flex-direction:row;align-items:baseline;gap:8px;padding:10px 14px;min-height:0;border-radius:999px}
.vx-attn.vx-attn-chips button b{font-size:1.15rem!important;line-height:1}
.vx-attn.vx-attn-chips button span{font-size:.86rem}
#vxFoyer .vx-actwrap .vx-actn > div:nth-child(n+3){display:none}
#vxFoyer .vx-actwrap .vx-actn{grid-template-columns:repeat(2,minmax(0,1fr))!important}
/* Your Appraisal IQ stats: folded away */
.vx-statsd{margin:8px 0 4px;border-top:1px solid var(--metal-line);padding-top:10px}
.vx-statsd>summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:baseline}
.vx-statsd>summary::-webkit-details-marker{display:none}
.vx-statsd>summary::after{content:"Show";margin-left:auto;font-size:.8rem;color:var(--metal,#9a7a3a);font-weight:600}
.vx-statsd[open]>summary::after{content:"Hide"}
.vx-statsd .hs-head .label{display:none}
.vx-brief-more{margin:2px 0 8px 16px;font-size:.84rem}
.vx-profrow{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 0 14px;padding:12px 14px;border:1px solid var(--metal-line,var(--line));border-radius:14px}
.vx-profrow>span{display:flex;flex-direction:column;gap:2px}

/* ---------------- phones: bottom tab bar like an iPhone app, compact header */
@media (max-width:760px){
  html body .appbar{padding:8px 14px}
  html body .appbar .in{flex-wrap:wrap!important;gap:8px}
  html body .appbar .brand .sub,html body .vx-theme,html body .appbar .theme-seg,html body .vx-cmdbtn kbd,html body .vx-cmdbtn .vx-cmdl{display:none!important}
  html body .appbar .modeseg{order:9;flex:1 1 100%;display:flex}
  html body .appbar .modeseg button{flex:1 1 0}
  html body nav.tabs{position:fixed!important;left:0;right:0;bottom:0;top:auto!important;z-index:40;display:flex;flex-direction:row!important;justify-content:space-around;gap:0!important;padding:6px 6px calc(6px + env(safe-area-inset-bottom))!important;background:color-mix(in srgb,var(--bg) 92%,transparent)!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--edge)!important;overflow:visible!important;width:auto!important}
  html body nav.tabs button{flex:1 1 0!important;width:auto!important;min-width:0;min-height:52px!important;flex-direction:column!important;gap:3px!important;padding:6px 2px!important;font-size:.66rem!important;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:12px!important}
  html body nav.tabs button[aria-selected="true"]{background:var(--metal-soft)!important;color:var(--ink)!important}
  html body nav.tabs .full{display:none!important} html body nav.tabs .short{display:inline!important}
  html body nav.tabs button .ti svg{width:20px;height:20px}
  html body nav.tabs .vx-badge{top:2px!important;right:calc(50% - 22px)!important}
  html body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  html body .wrap{padding-inline:16px}
  html body .vx-head h2.vx-h1,html body .vx-h1{font-size:1.9rem}
  .tt-name{font-size:2.1rem!important}
  html body #panel-ask .htiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  html body #panel-ask .htile small{display:none}
  .vx-brief li span{display:none}
  .vx-brief-h small{display:none}
  #vxFoyer .vx-acts{grid-template-columns:minmax(0,1fr)!important}
  html body #panel-ask .chip{font-size:.82rem}
}
#panel-ask .vx-statsd{order:8}
@media (max-width:760px){
  html body #panel-ask .composer{flex-wrap:wrap}
  html body #panel-ask .composer textarea{flex:1 1 100%!important;min-height:96px!important}
  html body #panel-ask .composer > :not(textarea){margin-left:auto}
  html body .appbar .brand h1{font-size:1.15rem;white-space:nowrap}
}
@media (max-width:760px){html body .vx-cmdbtn .vx-kbd{display:none!important}html body .vx-cmdbtn{min-width:0;padding:8px 12px}}
html body #panel-ask #homeTiles .htile[data-go="qc"]{display:none!important} /* QC has its own tab */

/* first-run welcome + tour */
.vx-welcome{margin:0 0 20px;padding:18px 20px;border-radius:18px;border:1px solid var(--metal-line);background:linear-gradient(180deg,color-mix(in srgb,var(--metal-soft) 80%,transparent),var(--s1,transparent));box-shadow:0 14px 36px var(--shade)}
.vw-top{display:flex;justify-content:space-between;align-items:center}
.vx-welcome h3{font-family:var(--f-serif);font-size:1.45rem;margin:4px 0 12px;color:var(--ink)}
.vw-steps{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.vw-steps li{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:14px;background:var(--s2,rgba(255,255,255,.4));border:1px solid var(--edge)}
.vw-steps li>span:last-child{display:flex;flex-direction:column;gap:3px}
.vw-steps b{font-size:1rem;color:var(--ink)}
.vw-steps li>span:last-child>span{font-size:.86rem;line-height:1.4;color:var(--ink-2,var(--muted))}
.vw-n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--btn-bg);color:var(--btn-ink);font-weight:700;font-size:.9rem}
.vw-act{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.vx-tour{position:fixed;inset:0;z-index:600}
.vt-hole{position:fixed;border-radius:16px;box-shadow:0 0 0 4000px rgba(20,16,10,.62),0 0 0 3px var(--metal,#c9a24a);transition:all .25s ease;pointer-events:none}
.vt-tip{position:fixed;padding:16px 18px;border-radius:16px;background:var(--surface,#fffaf0);color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.4);transition:top .25s ease,left .25s ease}
.vt-tip b{display:block;font-size:1.1rem;margin:4px 0 6px}
.vt-tip p{margin:0 0 12px;font-size:.92rem;line-height:1.45;color:var(--ink-2,var(--muted))}
.vt-row{display:flex;gap:8px;align-items:center}
.vt-skip{margin-left:auto;font-size:.82rem}
.pf-welcome{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 2px}
@media (max-width:760px){.vw-steps{grid-template-columns:minmax(0,1fr)}.vx-welcome h3{font-size:1.25rem}}
@media (prefers-reduced-motion:reduce){.vt-hole,.vt-tip{transition:none}}

/* ---- QC finding cards (Oct 23 2026): one bold box per finding, labeled rows, white wording box ---- */
html[data-theme="dark"] body{--fcard-edge:rgba(255,255,255,.34);--fcard-rule:rgba(255,255,255,.12)}
html[data-theme="light"] body{--fcard-edge:#8E8166;--fcard-rule:#E3DACA}
html body #qcMd .finding,html body #qcOut .trcard{border:2px solid var(--fcard-edge);border-left-width:7px;border-radius:14px;box-shadow:none;margin:18px 0;padding:0;overflow:hidden}
html body #qcMd .finding.critical,html body #qcOut .trcard.critical{border-left-color:#E8694A}
html body #qcMd .finding.moderate,html body #qcOut .trcard.moderate{border-left-color:#E8A93D}
html body #qcMd .finding.minor,html body #qcOut .trcard.minor{border-left-color:var(--minor)}
html body #qcMd .finding:not(.vx-shut):not(.resolved){box-shadow:0 12px 30px var(--shade);border-top-color:var(--metal);border-right-color:var(--metal);border-bottom-color:var(--metal)}
html body #qcMd .finding>h3{margin:0;padding:12px 16px;background:var(--s3);border-bottom:2px solid var(--fcard-rule)}
html body #qcMd .finding.vx-shut>h3{border-bottom:0}
html body #qcOut .trcard{padding:14px 16px}
html body #qcMd .fbody{padding:12px 16px 12px}
html body #qcMd .fgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
html body #qcMd .frow{display:grid;grid-template-columns:116px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--fcard-rule)}
html body #qcMd .frow:last-child{border-bottom:0}
html body #qcMd .frow .fk{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--muted,inherit);opacity:1;padding-top:2px}
html body #qcMd .frow .fv>*:first-child{margin-top:0}html body #qcMd .frow .fv>*:last-child{margin-bottom:0}
html body #qcMd .fword{background:#FFFFFF;color:#16191F;border:2px solid #9AA3B0;border-radius:10px;padding:10px 14px 12px;margin:12px 0 4px}
html body #qcMd .fword-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:#3E4652}
html body #qcMd .fword-t{font-size:.98rem;line-height:1.6;color:#16191F;background:#FFFFFF}
html body #qcMd .fword-t *{color:#16191F;background:transparent}
html body #qcMd .fword-t p{margin:0 0 8px}html body #qcMd .fword-t p:last-child{margin:0}
html body #qcMd .fword .btn{background:#16191F;color:#FFFFFF;border:1px solid #16191F}
html body #qcMd .fword .btn:hover{background:#2C333D}
html body #qcMd .ffoot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--fcard-rule)}
@media (max-width:640px){html body #qcMd .frow{grid-template-columns:minmax(0,1fr);gap:2px}}
html body #qcMd .finding:not([data-shaped="1"])>*:not(h3){margin-left:16px;margin-right:16px}
html body #qcMd .finding.vx-shut{padding-bottom:0}
/* ---- Beta demo card on Home (Oct 23 2026) ---- */
html body .vx-beta{position:relative;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:16px 0;padding:16px 48px 16px 18px;border:2px dashed var(--metal);border-radius:16px;background:var(--metal-soft)}
html body .vx-beta b{font-size:1.08rem}
html body .vx-betatag{flex:none;font:700 .68rem var(--f-mono);letter-spacing:.14em;padding:5px 9px;border-radius:6px;background:var(--metal);color:var(--metal-ink)}
html body .vx-beta .xbtn{position:absolute;top:8px;right:8px}
html body .vx-beta a.btn{text-decoration:none}
/* ---- What's new + update bar (Oct 23 2026) ---- */
html body .modal.vx-wn-modal{width:min(560px,100%)}
html body .vx-wn-tag{font:600 .7rem var(--f-mono);letter-spacing:.1em;padding:4px 9px;border-radius:6px;background:var(--metal-soft);color:var(--metal-text);border:1px solid var(--metal-line)}
html body .vx-wn{list-style:none;margin:8px 0 0;padding:0}
html body .vx-wn-i{padding:10px 0;border-top:1px solid var(--edge)}
html body .vx-wn-i b{font-size:1rem}
html body .vx-wn-i span>span{color:var(--muted);font-size:.92rem;line-height:1.5}
html body .vx-wn-beta{font:600 .66rem var(--f-mono);letter-spacing:.08em;padding:2px 6px;border-radius:5px;background:var(--metal);color:var(--metal-ink);vertical-align:2px}
html body .vx-wn-more{margin-top:10px}html body .vx-wn-more summary{cursor:pointer;font-weight:600}
html body .vx-updbar{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:9000;display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:min(720px,calc(100% - 32px));padding:12px 16px;border:2px solid var(--metal);border-radius:14px;background:var(--s1);color:var(--ink);box-shadow:0 18px 40px var(--shade)}
html body .vx-updbar>span{flex:1;min-width:220px}
@media (max-width:760px){html body .vx-updbar{bottom:78px}}
