@import url('https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600;700;800&display=swap');

/* Trimio Partner Portal, local preview theme.
   Brand tokens mirror the live site's shared.css so this drops in cleanly later. */

*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased;}
:root{
  --bg:#F5F5F7;--card:#fff;--bk:#1D1D1F;--mid:#3A3A3C;--sub:#6E6E73;
  --bd:rgba(0,0,0,.08);--or:#FF8000;--gr:#34C759;--re:#FF3B30;--bl:#007AFF;
  --sh:0 1px 3px rgba(0,0,0,.05),0 8px 28px rgba(0,0,0,.07);
  --sh2:0 2px 12px rgba(0,0,0,.08),0 24px 56px rgba(0,0,0,.1);
  --sidebar:270px;
}
html{scroll-behavior:smooth;scroll-padding-top:96px;}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--bg);color:var(--bk);line-height:1.6;overflow-x:hidden;}
a{text-decoration:none;color:inherit;}

/* ── PREVIEW BANNER ───────────────────────────────────────────── */
.preview-flag{background:#1D1D1F;color:#FFB35C;font-size:11px;font-weight:600;
  letter-spacing:.06em;text-align:center;padding:7px 16px;position:relative;z-index:200;}
.preview-flag b{color:#fff;}

/* ── TOP BAR ──────────────────────────────────────────────────── */
.topbar{position:sticky;top:0;z-index:150;background:rgba(255,255,255,.9);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid var(--bd);height:60px;display:flex;align-items:center;
  gap:20px;padding:0 28px;}
.tb-logo{font-size:19px;font-weight:700;letter-spacing:-.5px;white-space:nowrap;}
.tb-logo span{color:var(--or);}
.tb-label{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sub);padding-left:14px;border-left:1px solid var(--bd);white-space:nowrap;}
.tb-spacer{flex:1;}
.tb-search{position:relative;width:min(420px,42vw);}
.tb-search input{width:100%;font-family:inherit;font-size:13.5px;color:var(--bk);
  background:var(--bg);border:1px solid transparent;border-radius:9px;
  padding:9px 12px 9px 34px;transition:all .15s;}
.tb-search input:focus{outline:none;background:#fff;border-color:var(--bd);
  box-shadow:0 2px 14px rgba(0,0,0,.07);}
.tb-search input::placeholder{color:var(--sub);}
.tb-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);
  width:15px;height:15px;stroke:var(--sub);pointer-events:none;}
.tb-kbd{position:absolute;right:9px;top:50%;transform:translateY(-50%);
  font-size:10px;font-weight:600;color:var(--sub);background:#fff;border:1px solid var(--bd);
  border-radius:4px;padding:2px 5px;pointer-events:none;}
.tb-search input:focus ~ .tb-kbd{display:none;}
.tb-burger{display:none;background:none;border:none;cursor:pointer;padding:6px;color:var(--bk);}

/* ── SEARCH RESULTS ───────────────────────────────────────────── */
.sr-panel{position:absolute;top:46px;left:0;right:0;background:#fff;border-radius:14px;
  box-shadow:var(--sh2);border:1px solid var(--bd);max-height:64vh;overflow-y:auto;
  display:none;padding:6px;}
.sr-panel.open{display:block;}
.sr-hit{display:block;padding:10px 12px;border-radius:9px;transition:background .12s;}
.sr-hit:hover,.sr-hit.sel{background:var(--bg);}
.sr-hit-top{display:flex;align-items:center;gap:7px;margin-bottom:3px;}
.sr-hit-doc{font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--or);}
.sr-hit-title{font-size:13.5px;font-weight:600;color:var(--bk);line-height:1.35;}
.sr-hit-snip{font-size:12px;color:var(--sub);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.sr-hit mark{background:rgba(255,128,0,.22);color:inherit;border-radius:2px;padding:0 1px;}
.sr-empty{padding:22px 14px;text-align:center;font-size:13px;color:var(--sub);}

/* ── SHELL ────────────────────────────────────────────────────── */
.shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);
  max-width:1440px;margin:0 auto;align-items:start;}

/* ── SIDEBAR ──────────────────────────────────────────────────── */
.side{position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto;
  padding:26px 16px 40px 24px;}
.side-head{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sub);margin:0 0 10px 10px;}
.side-head:not(:first-child){margin-top:26px;}
.side-link{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;border-radius:9px;
  font-size:13.5px;font-weight:500;color:var(--mid);line-height:1.4;transition:all .13s;
  margin-bottom:1px;}
.side-link:hover{background:rgba(0,0,0,.04);color:var(--bk);}
.side-link.active{background:#fff;color:var(--bk);font-weight:650;
  box-shadow:inset 3px 0 0 var(--or),0 1px 2px rgba(0,0,0,.05);}
.side-link.active .side-num{color:var(--or);}
.side-num{font-size:11px;font-weight:700;color:var(--sub);min-width:14px;padding-top:1px;}
.side-foot{margin-top:26px;padding:14px 12px;background:#fff;border-radius:11px;
  border:1px solid var(--bd);}
.side-foot p{font-size:11.5px;color:var(--sub);line-height:1.55;}
.side-foot a{color:var(--or);font-weight:600;}

/* Build stamp: which artifact you are actually looking at. Quiet enough to
   ignore, present on every page, and greppable in the served HTML. */
.build-stamp{margin-top:11px;padding-top:10px;border-top:1px solid var(--bd);
  font-size:10.5px;letter-spacing:.01em;}
.build-stamp .build-sha{font-family:ui-monospace,SFMono-Regular,'SF Mono',Menlo,monospace;
  font-size:10.5px;color:var(--mid);}
/* Parked: the stamp SHA is plain text while partners can see it. These rules
   apply again when the commit link returns behind a staff-only check. */
.side-foot .build-stamp a{color:var(--mid);font-weight:500;
  border-bottom:1px solid var(--bd);}
.side-foot .build-stamp a:hover{color:var(--bl);border-bottom-color:currentColor;}

/* ── MAIN ─────────────────────────────────────────────────────── */
.main{padding:40px 56px 120px;min-width:0;}
.crumb{font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--or);margin-bottom:14px;}

/* ── DOC TYPOGRAPHY ───────────────────────────────────────────── */
.doc{max-width:780px;}
.doc h1{font-size:clamp(30px,3.6vw,44px);font-weight:200;letter-spacing:-1.8px;
  line-height:1.1;margin-bottom:22px;}
.doc h1 strong{font-weight:700;}
/* mid-document h1s act as part dividers (Stage 1 / Stage 2), so they need to
   separate rather than crowd the section above them */
.doc > h1:not(:first-child){margin-top:64px;padding-top:30px;
  border-top:2px solid var(--bk);font-size:clamp(26px,3vw,34px);}
.doc h2{font-size:23px;font-weight:700;letter-spacing:-.6px;line-height:1.25;
  margin:38px 0 14px;padding-top:22px;border-top:1px solid var(--bd);}
.doc h2:first-child{margin-top:0;border-top:none;padding-top:0;}
.doc h3{font-size:16.5px;font-weight:650;letter-spacing:-.2px;margin:26px 0 9px;}
.doc h4{font-size:14px;font-weight:650;color:var(--mid);margin:22px 0 8px;}
.doc p{font-size:15px;color:var(--mid);margin-bottom:15px;}
.doc strong{color:var(--bk);font-weight:650;}
.doc em{font-style:italic;}
.doc a:not(.side-link){color:var(--bl);border-bottom:1px solid rgba(0,122,255,.25);}
.doc a:not(.side-link):hover{border-bottom-color:var(--bl);}
.doc ul,.doc ol{margin:0 0 16px 20px;}
.doc li{font-size:15px;color:var(--mid);margin-bottom:7px;padding-left:3px;}
.doc li::marker{color:var(--sub);}
.doc hr{border:none;border-top:1px solid var(--bd);margin:34px 0;}
.doc code{font-family:'SF Mono','Fira Mono',ui-monospace,monospace;font-size:12.5px;
  background:rgba(0,0,0,.05);padding:1.5px 5px;border-radius:4px;color:var(--bk);}
.doc blockquote{background:#fff;border-left:3px solid var(--bd);border-radius:0 11px 11px 0;
  padding:16px 20px;margin:0 0 18px;box-shadow:var(--sh);}
.doc blockquote p:last-child{margin-bottom:0;}
.doc blockquote h2,.doc blockquote h3{margin-top:0;border:none;padding-top:0;}

/* Callout variants, set by build.py from the leading glyph */
.doc blockquote.warn{border-left-color:var(--or);background:#FFFAF4;}
.doc blockquote.note{border-left-color:var(--bl);background:#F5F9FF;}
.doc blockquote.big{border-left-color:var(--or);text-align:center;padding:26px 20px;}
.doc blockquote.big h2{font-size:26px;font-weight:200;letter-spacing:-1px;color:var(--bk);}
.doc blockquote.big h2 strong{font-weight:700;}

/* ── TABLES ───────────────────────────────────────────────────── */
.tw{overflow-x:auto;margin:0 0 20px;border-radius:12px;box-shadow:var(--sh);background:#fff;}
.doc table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:440px;}
.doc thead th{background:#FAFAFB;text-align:left;font-size:10.5px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--sub);
  padding:11px 16px;border-bottom:1px solid var(--bd);white-space:nowrap;}
.doc tbody td{padding:12px 16px;border-bottom:1px solid var(--bd);color:var(--mid);
  vertical-align:top;line-height:1.5;}
.doc tbody tr:last-child td{border-bottom:none;}
.doc tbody tr:hover{background:#FCFCFD;}
.doc td strong{color:var(--bk);}

/* ── PLACEHOLDER CHIPS ────────────────────────────────────────── */
.ph{display:inline-block;background:rgba(255,128,0,.13);color:#B35A00;font-weight:650;
  font-size:.88em;padding:1px 6px;border-radius:5px;
  font-family:'SF Mono','Fira Mono',ui-monospace,monospace;letter-spacing:-.2px;
  border:1px dashed rgba(255,128,0,.4);}

/* ── FAQ ACCORDION ────────────────────────────────────────────── */
.faq-toolbar{position:sticky;top:60px;z-index:80;background:var(--bg);
  padding:14px 0 12px;margin-bottom:6px;}
.faq-filter{position:relative;margin-bottom:12px;}
.faq-filter input{width:100%;font-family:inherit;font-size:14px;background:#fff;
  border:1px solid var(--bd);border-radius:11px;padding:12px 14px 12px 40px;
  box-shadow:var(--sh);transition:box-shadow .15s;}
.faq-filter input:focus{outline:none;box-shadow:var(--sh2);}
.faq-filter svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:16px;height:16px;stroke:var(--sub);}
.faq-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.faq-chip{font-size:12px;font-weight:600;color:var(--mid);background:#fff;
  border:1px solid var(--bd);border-radius:20px;padding:6px 13px;cursor:pointer;
  transition:all .13s;font-family:inherit;}
.faq-chip:hover{border-color:var(--sub);}
.faq-chip.on{background:var(--bk);color:#fff;border-color:var(--bk);}
.faq-chip-count{opacity:.5;margin-left:4px;font-weight:500;}
.faq-toggle-all{margin-left:auto;font-size:12px;font-weight:600;color:var(--or);
  background:none;border:none;cursor:pointer;font-family:inherit;padding:6px 4px;}

.faq-sec{margin-bottom:34px;}
.faq-sec-h{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;
  padding-top:16px;border-top:1px solid var(--bd);}
.faq-sec-h h2{font-size:19px;font-weight:700;letter-spacing:-.4px;margin:0;border:none;padding:0;}
.faq-sec-n{font-size:11px;font-weight:600;color:var(--sub);}
.faq-sec-intro{margin-bottom:14px;}
.faq-sec-intro blockquote{margin-bottom:0;}

.faq-item{background:#fff;border:1px solid var(--bd);border-radius:12px;
  margin-bottom:7px;overflow:hidden;transition:box-shadow .15s,border-color .15s;}
.faq-item[open]{box-shadow:var(--sh);border-color:rgba(0,0,0,.12);}
.faq-item summary{list-style:none;cursor:pointer;padding:15px 46px 15px 18px;
  font-size:14.5px;font-weight:600;color:var(--bk);line-height:1.45;position:relative;
  transition:background .12s;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:hover{background:#FCFCFD;}
.faq-item summary::after{content:'';position:absolute;right:19px;top:20px;
  width:8px;height:8px;border-right:2px solid var(--sub);border-bottom:2px solid var(--sub);
  transform:rotate(45deg);transition:transform .18s;}
.faq-item[open] summary::after{transform:rotate(-135deg);top:23px;}
.faq-item[open] summary{color:var(--or);}
.faq-body{padding:0 18px 4px;border-top:1px solid var(--bd);padding-top:15px;}
.faq-body > *:last-child{margin-bottom:14px;}
.faq-body blockquote{box-shadow:none;border-radius:0 8px 8px 0;}
.faq-item mark{background:rgba(255,128,0,.25);border-radius:2px;}
.faq-hidden{display:none !important;}
.faq-noresult{display:none;padding:36px;text-align:center;font-size:14px;color:var(--sub);
  background:#fff;border-radius:12px;border:1px dashed var(--bd);}
.faq-noresult.on{display:block;}

/* ── HOME ─────────────────────────────────────────────────────── */
.hero{padding:16px 0 40px;}
.hero .eyebrow{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--or);margin-bottom:14px;}
.hero h1{font-size:clamp(34px,4.4vw,54px);font-weight:200;letter-spacing:-2.4px;
  line-height:1.06;margin-bottom:18px;}
.hero h1 strong{font-weight:700;}
.hero p{font-size:17px;font-weight:300;color:var(--sub);line-height:1.6;max-width:620px;}

.terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;
  margin:34px 0 46px;}
.term{background:var(--bk);color:#fff;border-radius:14px;padding:20px 22px;}
.term-n{font-size:32px;font-weight:200;letter-spacing:-1.6px;color:var(--or);line-height:1;
  margin-bottom:7px;}
.term-l{font-size:12.5px;font-weight:600;margin-bottom:3px;}
.term-s{font-size:11.5px;color:#8A8A8E;line-height:1.45;}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:14px;}
.pcard{background:#fff;border-radius:14px;padding:22px;box-shadow:var(--sh);
  border:1px solid transparent;transition:transform .18s,box-shadow .18s,border-color .18s;
  display:flex;flex-direction:column;}
.pcard:hover{transform:translateY(-2px);box-shadow:var(--sh2);border-color:rgba(255,128,0,.3);}
.pcard-n{font-size:10.5px;font-weight:700;letter-spacing:.12em;color:var(--or);
  margin-bottom:9px;}
.pcard h3{font-size:16.5px;font-weight:650;letter-spacing:-.3px;margin-bottom:7px;line-height:1.3;}
.pcard p{font-size:13px;color:var(--sub);line-height:1.55;flex:1;margin-bottom:14px;}
.pcard-go{font-size:12.5px;font-weight:600;color:var(--bk);}
.pcard-go::after{content:' →';color:var(--or);}

.home-h2{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sub);margin:52px 0 16px;padding-top:20px;border-top:1px solid var(--bd);}

/* ── PAGE FOOTER NAV ──────────────────────────────────────────── */
.pagenav{display:flex;gap:12px;margin-top:64px;padding-top:26px;
  border-top:1px solid var(--bd);}
.pagenav a{flex:1;background:#fff;border:1px solid var(--bd);border-radius:12px;
  padding:15px 18px;transition:all .15s;}
.pagenav a:hover{border-color:var(--or);box-shadow:var(--sh);}
.pagenav .pn-dir{font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--sub);margin-bottom:4px;}
.pagenav .pn-t{font-size:14px;font-weight:600;color:var(--bk);line-height:1.35;}
.pagenav .pn-next{text-align:right;}

/* ── ON THIS PAGE ─────────────────────────────────────────────── */
.otp{position:fixed;top:96px;right:max(24px,calc(50vw - 700px));width:190px;
  max-height:calc(100vh - 140px);overflow-y:auto;padding-left:16px;
  border-left:1px solid var(--bd);}
.otp-h{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--sub);margin-bottom:9px;}
.otp a{display:block;font-size:12px;color:var(--sub);padding:4px 0;line-height:1.4;
  transition:color .13s;}
.otp a:hover,.otp a.on{color:var(--or);font-weight:600;}
@media (max-width:1340px){.otp{display:none;}}

/* ── MOBILE ───────────────────────────────────────────────────── */
.scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:140;}
.scrim.on{display:block;}
@media (max-width:1000px){
  :root{--sidebar:0px;}
  .shell{grid-template-columns:minmax(0,1fr);}
  .main{padding:26px 22px 90px;}
  .tb-burger{display:block;order:-1;margin-left:-6px;}
  .tb-label{display:none;}
  .tb-search{width:auto;flex:1;}
  .side{position:fixed;top:0;left:0;bottom:0;width:280px;background:#fff;z-index:145;
    transform:translateX(-100%);transition:transform .22s cubic-bezier(.4,0,.2,1);
    height:100vh;padding-top:22px;box-shadow:var(--sh2);}
  .side.on{transform:translateX(0);}
  .faq-toolbar{top:0;}
  .pagenav{flex-direction:column;}
  .pagenav .pn-next{text-align:left;}
  .doc h1{font-size:29px;letter-spacing:-1.2px;}
  .terms{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .terms{grid-template-columns:1fr;}
  .tb-kbd{display:none;}
}

/* ── PRINT ────────────────────────────────────────────────────── */
@media print{
  .topbar,.side,.otp,.pagenav,.preview-flag,.faq-toolbar,.scrim{display:none !important;}
  .shell{grid-template-columns:1fr;}
  .main{padding:0;}
  body{background:#fff;}
  .faq-item{break-inside:avoid;border:none;border-bottom:1px solid #ddd;border-radius:0;}
  .faq-body{display:block !important;}
  .doc{max-width:none;}
}

/* ══════════════════════════════════════════════════════════════
   FORMS: deal registration, client intake, access request
   ══════════════════════════════════════════════════════════════ */

.form-page{max-width:720px;}
.form-hero{margin-bottom:12px;}
.form-hero h1{font-size:clamp(28px,3.4vw,40px);font-weight:200;letter-spacing:-1.6px;
  line-height:1.1;margin-bottom:14px;}
.form-hero h1 strong{font-weight:700;}
.form-hero .lede{font-size:16px;font-weight:300;color:var(--sub);line-height:1.6;
  margin-bottom:14px;}
.form-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;}
.form-meta span{font-size:11.5px;font-weight:600;color:var(--mid);background:#fff;
  border:1px solid var(--bd);border-radius:20px;padding:6px 13px;}

.fset{background:#fff;border:1px solid var(--bd);border-radius:14px;padding:24px;
  margin-bottom:14px;box-shadow:var(--sh);}
.fset-h{display:flex;align-items:baseline;gap:11px;margin-bottom:5px;}
.fset-n{font-size:10.5px;font-weight:700;letter-spacing:.1em;color:var(--or);
  font-variant-numeric:tabular-nums;}
.fset-h h2{font-size:18px;font-weight:650;letter-spacing:-.4px;margin:0;border:none;
  padding:0;}
.fset-sub{font-size:14px;color:var(--sub);line-height:1.6;margin-bottom:20px;}
/* A section with no standfirst still needs the gap the standfirst was giving it. */
.fset-h + .fgrid{margin-top:20px;}

.fgrid{display:grid;gap:16px;}
.fgrid.two{grid-template-columns:1fr 1fr;}
@media (max-width:620px){.fgrid.two{grid-template-columns:1fr;}}

.field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.field > label,.legend{font-size:15px;font-weight:650;color:var(--bk);line-height:1.5;}
.req{color:var(--or);font-weight:700;margin-left:2px;}
.hint{font-size:13.5px;color:var(--sub);line-height:1.55;}
/* a hint can carry one emphasised clause; it should read as the loudest thing
   in the hint without competing with the label above it */
.hint strong{color:var(--mid);font-weight:650;}
/* A whole hint that is one instruction, not commentary: the accent, deepened
   to #A34D00 because brand orange on white is 2.3:1 and this has to be read. */
.hint-em{color:#A34D00;font-weight:650;}
.fset-dark .hint-em{color:#FFA347;}

.field input[type=text],.field input[type=email],.field input[type=tel],
.field input[type=url],.field select,.field textarea{
  width:100%;font-family:inherit;font-size:14.5px;color:var(--bk);background:var(--bg);
  border:1px solid transparent;border-radius:9px;padding:11px 13px;transition:all .14s;}
.field textarea{min-height:88px;resize:vertical;line-height:1.55;}
.field select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236E6E73' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;padding-right:36px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;background:#fff;
  border-color:var(--or);box-shadow:0 0 0 3px rgba(255,128,0,.15);}
.field input::placeholder,.field textarea::placeholder{color:#A1A1A6;}

/* radio / checkbox as selectable cards */
.choices{display:grid;gap:7px;}
.choices.two{grid-template-columns:1fr 1fr;}
@media (max-width:620px){.choices.two{grid-template-columns:1fr;}}
.choice{display:flex;align-items:flex-start;gap:10px;background:var(--bg);
  border:1px solid transparent;border-radius:9px;padding:12px 14px;cursor:pointer;
  transition:all .13s;font-size:15px;color:var(--mid);line-height:1.5;}
.choice:hover{background:#EFEFF2;}
/* -webkit- prefix is load-bearing: without it Safari keeps the native
   control and ignores every style below, so nothing fills on select. */
.choice input{-webkit-appearance:none;-moz-appearance:none;appearance:none;
  accent-color:var(--or);width:18px;height:18px;flex-shrink:0;margin-top:1px;
  border:1.5px solid #C7C7CC;background-color:#fff;background-repeat:no-repeat;
  background-position:center;cursor:pointer;transition:border-color .13s,background-color .13s;}
.choice input[type=radio]{border-radius:50%;}
.choice input[type=checkbox]{border-radius:5px;}
.choice input:checked{border-color:var(--or);background-color:var(--or);}
/* radial-gradient rather than an inset shadow, renders identically across
   engines and survives forced-colors mode better */
.choice input[type=radio]:checked{
  background-image:radial-gradient(circle at center,#fff 0 3.4px,transparent 3.8px);}
.choice input[type=checkbox]:checked{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='9' viewBox='0 0 11 9'%3E%3Cpath d='M1 4.5l3 3 6-6' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}
.choice input:focus-visible{outline:2px solid var(--or);outline-offset:2px;}
.choice:has(input:checked){background:#FFF6EC;border-color:rgba(255,128,0,.45);
  color:var(--bk);font-weight:500;}

/* 1–5 priority scale */
.scale{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.scale-end{font-size:12px;color:var(--sub);max-width:110px;line-height:1.35;}
.scale-nums{display:flex;gap:6px;}
.scale-nums label{width:44px;height:44px;display:grid;place-items:center;background:var(--bg);
  border:1px solid transparent;border-radius:9px;cursor:pointer;font-size:15px;
  font-weight:600;color:var(--mid);transition:all .13s;font-variant-numeric:tabular-nums;}
.scale-nums label:hover{background:#EFEFF2;}
.scale-nums input{-webkit-appearance:none;appearance:none;position:absolute;opacity:0;
  pointer-events:none;}
.scale-nums label:has(input:checked){background:var(--or);border-color:var(--or);color:#fff;}
.scale-nums label:has(input:focus-visible){outline:2px solid var(--bk);outline-offset:2px;}

/* conditional reveal */
.cond{display:none;}
.cond.on{display:flex;}
.inline-warn{display:none;gap:9px;align-items:flex-start;background:#FFFAF4;
  border:1px solid rgba(255,128,0,.35);border-radius:9px;padding:11px 13px;
  font-size:13px;color:var(--mid);line-height:1.5;margin-top:4px;}
.inline-warn.on{display:flex;}
.inline-warn strong{color:var(--bk);}

/* validation */
.field.err input,.field.err select,.field.err textarea{border-color:var(--re);
  background:#FFF5F5;}
.field.err .choices .choice{border-color:rgba(255,59,48,.3);}
.err-msg{display:none;font-size:12px;font-weight:600;color:var(--re);}
.field.err .err-msg{display:block;}

/* submit bar */
.form-actions{position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 22%);
  padding:26px 0 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;z-index:60;
  /* The transparent top of the gradient must not swallow clicks on the field
     it is floating over: only the controls themselves are interactive. */
  pointer-events:none;}
.form-actions > *{pointer-events:auto;}
.btn{font-family:inherit;font-size:14.5px;font-weight:650;border-radius:10px;
  padding:13px 26px;cursor:pointer;border:1px solid transparent;transition:all .15s;
  display:inline-flex;align-items:center;gap:8px;}
.btn-primary{background:var(--or);color:#fff;box-shadow:0 2px 12px rgba(255,128,0,.3);}
.btn-primary:hover{background:#E67300;transform:translateY(-1px);
  box-shadow:0 4px 18px rgba(255,128,0,.38);}
.btn-ghost{background:#fff;color:var(--bk);border-color:var(--bd);}
.btn-ghost:hover{border-color:var(--sub);}
.btn:focus-visible{outline:2px solid var(--bk);outline-offset:3px;}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;}
.form-note{font-size:12.5px;color:var(--sub);}

/* success panel */
.form-done{display:none;background:#fff;border:1px solid var(--bd);border-radius:14px;
  padding:32px;box-shadow:var(--sh2);}
.form-done.on{display:block;}
.done-tick{width:44px;height:44px;border-radius:50%;background:var(--gr);display:grid;
  place-items:center;margin-bottom:18px;}
.done-tick svg{width:22px;height:22px;stroke:#fff;stroke-width:2.5;fill:none;
  stroke-linecap:round;stroke-linejoin:round;}
.form-done h2{font-size:23px;font-weight:650;letter-spacing:-.5px;margin:0 0 10px;
  border:none;padding:0;}
.form-done p{font-size:14.5px;color:var(--mid);line-height:1.6;margin-bottom:14px;}
.done-next{background:var(--bg);border-radius:11px;padding:16px 18px;margin:18px 0;}
.done-next h3{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sub);margin:0 0 10px;}
.done-next ol{margin:0 0 0 18px;}
.done-next li{font-size:13.5px;color:var(--mid);margin-bottom:6px;}
.payload{width:100%;font-family:'SF Mono','Fira Mono',ui-monospace,monospace;font-size:11.5px;
  line-height:1.6;background:var(--bg);border:1px solid var(--bd);border-radius:10px;
  padding:14px;min-height:190px;resize:vertical;color:var(--mid);white-space:pre;}

/* preview-mode banner inside forms */
.stub{display:flex;gap:11px;align-items:flex-start;background:#F5F9FF;
  border:1px solid rgba(0,122,255,.25);border-radius:11px;padding:14px 16px;
  margin-bottom:22px;font-size:13px;color:var(--mid);line-height:1.55;}
.stub b{color:var(--bk);}

/* ── LANDING CTA ──────────────────────────────────────────── */
.cta{position:relative;overflow:hidden;background:var(--bk);border-radius:18px;
  padding:38px 40px;margin:0 0 16px;}
.cta::after{content:'';position:absolute;right:-70px;top:-70px;width:280px;height:280px;
  border-radius:50%;background:radial-gradient(circle,rgba(255,128,0,.28),transparent 68%);
  pointer-events:none;}
.cta-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--or);margin-bottom:12px;}
.cta h2{font-size:clamp(26px,3.2vw,36px);font-weight:200;letter-spacing:-1.4px;color:#fff;
  line-height:1.12;margin:0 0 12px;border:none;padding:0;text-wrap:balance;}
.cta h2 strong{font-weight:700;}
.cta p{font-size:14.5px;color:#A1A1A6;line-height:1.6;max-width:440px;margin-bottom:24px;}
.cta-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;position:relative;z-index:2;}
.cta-btn{background:var(--or);color:#fff;font-size:15.5px;font-weight:650;border-radius:11px;
  padding:15px 30px;display:inline-flex;align-items:center;gap:9px;transition:all .16s;
  box-shadow:0 3px 16px rgba(255,128,0,.34);}
.cta-btn:hover{background:#FF9226;transform:translateY(-2px);
  box-shadow:0 7px 26px rgba(255,128,0,.44);}
.cta-btn:focus-visible{outline:2px solid #fff;outline-offset:3px;}
.cta-sub{font-size:13px;color:#8A8A8E;}
.cta-sub a{color:#fff;border-bottom:1px solid rgba(255,255,255,.3);}

.start{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;
  margin-bottom:14px;}
.scard{background:#fff;border:1px solid var(--bd);border-radius:13px;padding:19px;
  transition:all .16s;}
.scard:hover{border-color:rgba(255,128,0,.4);box-shadow:var(--sh);transform:translateY(-2px);}
.scard-k{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--or);margin-bottom:8px;}
.scard h3{font-size:15.5px;font-weight:650;letter-spacing:-.3px;margin-bottom:6px;}
.scard p{font-size:12.5px;color:var(--sub);line-height:1.55;}

@media (max-width:620px){
  .cta{padding:28px 24px;}
  .fset{padding:20px 18px;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;}
  .cta-btn:hover,.btn-primary:hover,.scard:hover,.pcard:hover{transform:none;}
}

/* ── POST-SUBMIT HANDOFF ──────────────────────────────────── */
.handoff{background:#FFF6EC;border:1px solid rgba(255,128,0,.35);border-radius:13px;
  padding:22px 24px;margin:22px 0;}
.handoff-k{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:#B35A00;margin-bottom:9px;}
.handoff h3{font-size:19px;font-weight:650;letter-spacing:-.4px;margin:0 0 9px;}
.handoff p{font-size:14px;color:var(--mid);line-height:1.6;margin-bottom:16px;}
.snippet{width:100%;font-family:inherit;font-size:13.5px;line-height:1.6;color:var(--mid);
  background:#fff;border:1px solid rgba(255,128,0,.3);border-radius:10px;padding:14px 16px;
  min-height:170px;resize:vertical;}
.snippet:focus{outline:none;border-color:var(--or);box-shadow:0 0 0 3px rgba(255,128,0,.15);}
.handoff-row{display:flex;gap:11px;flex-wrap:wrap;margin-top:14px;}

.raw{margin-top:22px;border-top:1px solid var(--bd);padding-top:16px;}
.raw summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--sub);
  list-style:none;padding:4px 0;}
.raw summary::-webkit-details-marker{display:none;}
.raw summary::before{content:'▸ ';color:var(--or);}
.raw[open] summary::before{content:'▾ ';}
.raw summary:hover{color:var(--bk);}
.raw .payload{margin-top:12px;}

/* ── SUBMITTED STATUS ─────────────────────────────────────── */
.status-ok{display:flex;align-items:center;gap:9px;background:#EDFBF0;
  border:1px solid rgba(52,199,89,.35);border-radius:10px;padding:12px 15px;
  margin-bottom:18px;}
.status-ok svg{width:17px;height:17px;stroke:#1E9E44;stroke-width:2.6;fill:none;
  stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
.status-ok b{color:#157A34;font-size:14px;font-weight:700;}
.status-ok span{color:#1E9E44;font-size:13.5px;}

/* ── BACK BAR ─────────────────────────────────────────────── */
.backbar{display:none;align-items:center;gap:10px;background:#fff;
  border:1px solid var(--bd);border-radius:11px;padding:11px 15px;margin-bottom:20px;
  box-shadow:var(--sh);}
.backbar.on{display:flex;}
.backbar a{font-size:13.5px;font-weight:600;color:var(--or);white-space:nowrap;}
.backbar a:hover{text-decoration:underline;}
.backbar p{font-size:13px;color:var(--sub);margin:0;line-height:1.5;}

/* ── AVAILABILITY PICKER ──────────────────────────────────── */
.avail-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.avail-tz{font-size:12px;color:var(--sub);}
.avail-count{font-size:12px;font-weight:700;color:var(--or);
  font-variant-numeric:tabular-nums;}
.avail-count.met{color:#1E9E44;}
.avail-scroll{overflow-x:auto;background:#fff;border:1px solid var(--bd);
  border-radius:11px;padding:12px;}
.avail-grid{border-collapse:separate;border-spacing:4px;width:100%;min-width:430px;}
.avail-grid th{font-size:11px;font-weight:650;color:var(--sub);padding:0 0 4px;
  text-align:center;line-height:1.3;}
.avail-grid th .dow{font-size:10px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--bk);display:block;}
.avail-grid tbody th{text-align:right;padding-right:7px;white-space:nowrap;
  font-variant-numeric:tabular-nums;font-weight:600;color:var(--mid);}
.slot{width:100%;height:30px;border:1px solid var(--bd);background:var(--bg);
  border-radius:7px;cursor:pointer;transition:background .12s,border-color .12s;
  font-family:inherit;font-size:0;padding:0;display:block;}
.slot:hover{background:#E8E8ED;border-color:#C7C7CC;}
.slot.on{background:var(--or);border-color:var(--or);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='9' viewBox='0 0 11 9'%3E%3Cpath d='M1 4.5l3 3 6-6' stroke='white' stroke-width='2.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;}
.slot:focus-visible{outline:2px solid var(--bk);outline-offset:2px;}
.avail-picked{font-size:12.5px;color:var(--mid);line-height:1.6;margin-top:10px;}
.avail-picked b{color:var(--bk);}

/* ══════════════════════════════════════════════════════════════
   THE DARK SECTION

   Same object as the commission card on the calculator: near-black
   ground, one orange glow off the top-right corner. It is on exactly one
   fieldset, the one that decides what happens after a deal is registered,
   and it is doing the work an accent colour would do — this is the part of
   the form that is about *us*, not about the client.

   Everything below is the same control, re-grounded. Nothing changes shape.
   ═══════════════════════════════════════════════════════════════ */
.fset-dark{position:relative;overflow:hidden;border:none;
  background:linear-gradient(158deg,#252528 0%,var(--bk) 46%,#131315 100%);
  box-shadow:0 1px 3px rgba(0,0,0,.14),0 12px 34px rgba(0,0,0,.16);}
.fset-dark::after{content:'';position:absolute;right:-90px;top:-90px;width:320px;
  height:320px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,128,0,.3),transparent 68%);}
/* the glow is decorative and sits under everything the partner reads */
.fset-dark > *{position:relative;z-index:2;}

.fset-dark .fset-h h2{color:#fff;}
.fset-dark .fset-sub{color:#A1A1A6;}
.fset-dark .field > label,.fset-dark .legend{color:#fff;}
.fset-dark .hint{color:#A1A1A6;}
.fset-dark .opt{background:rgba(255,255,255,.1);color:#C7C7CC;}
.fset-dark .err-msg{color:#FF8A80;}
.fset-dark .field.err input,.fset-dark .field.err select,.fset-dark .field.err textarea{
  background-color:rgba(255,59,48,.14);border-color:#FF8A80;}
.fset-dark .field.err .choices .choice{border-color:rgba(255,138,128,.55);}

/* the not-a-fit warning: the same amber signal, lit rather than tinted */
.fset-dark .inline-warn{background:rgba(255,128,0,.12);border-color:rgba(255,128,0,.45);
  color:#D2D2D7;}
.fset-dark .inline-warn strong{color:#fff;}

.fset-dark .field input[type=text],.fset-dark .field select,.fset-dark .field textarea{
  background-color:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#fff;}
.fset-dark .field input::placeholder,.fset-dark .field textarea::placeholder{color:#77777C;}
.fset-dark .field input:focus,.fset-dark .field select:focus,.fset-dark .field textarea:focus{
  background-color:rgba(255,255,255,.1);border-color:var(--or);}
/* the chevron is drawn in the SVG's own stroke colour, so it needs redrawing */
.fset-dark .field select,.fset-dark .avail-tz-select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23A1A1A6' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");}

.fset-dark .choice{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.11);
  color:#C7C7CC;}
.fset-dark .choice:hover{background:rgba(255,255,255,.09);}
.fset-dark .choice b{color:#fff;}
.fset-dark .choice small{color:#93939A;}
.fset-dark .choice input{background-color:transparent;border-color:rgba(255,255,255,.4);}
.fset-dark .choice input:checked{background-color:var(--or);border-color:var(--or);}
.fset-dark .choice:has(input:checked){background:rgba(255,128,0,.13);
  border-color:rgba(255,128,0,.5);color:#fff;}

/* the availability picker, re-grounded */
.fset-dark .avail-tzlabel{color:#A1A1A6;}
.fset-dark .avail-tz-select{background-color:rgba(255,255,255,.06);color:#fff;
  border-color:rgba(255,255,255,.14);}
.fset-dark .avail-grain{background:rgba(255,255,255,.08);color:#C7C7CC;
  border-color:rgba(255,255,255,.14);}
.fset-dark .avail-count.met{color:#7BE59B;}
.fset-dark .wk-tab{background:rgba(255,255,255,.06);color:#C7C7CC;
  border-color:rgba(255,255,255,.14);}
.fset-dark .wk-tab:hover{border-color:rgba(255,255,255,.4);}
.fset-dark .wk-tab.on{background:#fff;color:var(--bk);border-color:#fff;}
.fset-dark .avail-scroll{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);}
.fset-dark .avail-grid th{color:#8A8A8E;}
.fset-dark .avail-grid th .dow{color:#fff;}
.fset-dark .avail-grid tbody th{color:#A1A1A6;}
.fset-dark .slot{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1);}
.fset-dark .slot:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);}
.fset-dark .slot.on{background:var(--or);border-color:var(--or);}
.fset-dark [data-availability].maxed .slot:not(.on):hover{background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.1);}
.fset-dark .slot:focus-visible{outline-color:#fff;}
.fset-dark .avail-cap{color:#8A8A8E;}
.fset-dark .avail-picked{color:#A1A1A6;}
.fset-dark .avail-picked b{color:#fff;}

/* Ink on paper: the glow prints as a grey smear and the type disappears. */
@media print{
  .fset-dark{background:#fff !important;border:1px solid #ddd;box-shadow:none;}
  .fset-dark::after{display:none;}
  .fset-dark .fset-h h2,.fset-dark .field > label,.fset-dark .legend,
  .fset-dark .choice b,.fset-dark .avail-picked b{color:#000;}
  .fset-dark .hint,.fset-dark .choice,.fset-dark .choice small,
  .fset-dark .avail-cap,.fset-dark .avail-picked{color:#333;}
}

/* ── TWO NEXT STEPS ───────────────────────────────────────── */
.steps{display:grid;gap:12px;margin:24px 0;}
.step{display:flex;gap:16px;background:#fff;border:1px solid var(--bd);border-radius:13px;
  padding:20px 22px;}
.step-n{width:28px;height:28px;flex-shrink:0;border-radius:50%;background:var(--bk);
  color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;
  font-variant-numeric:tabular-nums;}
.step-body{min-width:0;}
.step-body h3{font-size:16.5px;font-weight:650;letter-spacing:-.3px;margin:2px 0 8px;}
.step-body p{font-size:14px;color:var(--mid);line-height:1.6;margin-bottom:8px;}
.step-body p:last-child{margin-bottom:0;}
.step-meta{font-size:12.5px !important;color:var(--sub) !important;}

/* ── EMBEDDED INTAKE ──────────────────────────────────────── */
.intake-embed{background:#FFF6EC;border:1px solid rgba(255,128,0,.35);border-radius:14px;
  padding:26px;margin:24px 0;}
.intake-embed-head{margin-bottom:20px;}
.intake-embed-k{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:#B35A00;margin-bottom:10px;}
.intake-embed-head h3{font-size:clamp(22px,2.6vw,28px);font-weight:200;letter-spacing:-1px;
  margin:0 0 10px;text-wrap:balance;}
.intake-embed-head p{font-size:14.5px;color:var(--mid);line-height:1.6;margin:0;max-width:60ch;}
.intake-embed .fset{border-color:rgba(255,128,0,.2);}
.intake-embed .form-actions{background:linear-gradient(transparent,#FFF6EC 22%);}
.intake-embed .form-done{border-color:rgba(255,128,0,.3);}

/* ── PRINT A SINGLE FORM ──────────────────────────────────── */
@media print{
  body.is-printing *{visibility:hidden;}
  body.is-printing .print-scope.printing,
  body.is-printing .print-scope.printing *{visibility:visible;}
  body.is-printing .print-scope.printing{position:absolute;left:0;top:0;width:100%;
    background:#fff;}
  body.is-printing .print-scope.printing .form-actions,
  body.is-printing .print-scope.printing .stub,
  body.is-printing .print-scope.printing .form-done{display:none !important;}
  body.is-printing .print-scope.printing .fset{break-inside:avoid;box-shadow:none;
    border:1px solid #ddd;}
  body.is-printing .print-scope.printing .choice{border:1px solid #ddd;background:#fff;}
}

/* ── AVAILABILITY: timezone, week tabs, cap ───────────────── */
.avail-tzrow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:12px;}
.avail-tzlabel{font-size:12px;font-weight:650;color:var(--mid);}
.avail-tz-select{font-family:inherit;font-size:13px;color:var(--bk);background:#fff;
  border:1px solid var(--bd);border-radius:8px;padding:7px 30px 7px 11px;cursor:pointer;
  -webkit-appearance:none;appearance:none;max-width:260px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236E6E73' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;}
.avail-tz-select:focus{outline:none;border-color:var(--or);
  box-shadow:0 0 0 3px rgba(255,128,0,.15);}
.avail-tzrow .avail-count{margin-left:auto;}

.wk-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.wk-tab{position:relative;font-family:inherit;font-size:12.5px;font-weight:600;
  color:var(--mid);background:#fff;border:1px solid var(--bd);border-radius:8px;
  padding:8px 14px;cursor:pointer;transition:all .13s;}
.wk-tab:hover{border-color:var(--sub);}
.wk-tab.on{background:var(--bk);color:#fff;border-color:var(--bk);}
.wk-tab:focus-visible{outline:2px solid var(--or);outline-offset:2px;}
.wk-dot{display:none;width:6px;height:6px;border-radius:50%;background:var(--or);
  position:absolute;top:5px;right:6px;}
.wk-tab.has .wk-dot{display:block;}

.wk-grid{display:none;}
.wk-grid.on{display:block;}

.avail-cap{font-size:12px;color:var(--sub);line-height:1.5;margin-top:10px;
  transition:color .2s;}
.avail-cap.warn{color:var(--re);font-weight:600;}
[data-availability].maxed .slot:not(.on){opacity:.4;cursor:not-allowed;}
[data-availability].maxed .slot:not(.on):hover{background:var(--bg);border-color:var(--bd);}
.picked-tz{color:var(--sub);}

/* ── SEMANTIC HEADINGS ────────────────────────────────────── */
.doc h2.is-fit{color:#157A34;}
.doc h2.is-nofit{color:#B3271D;}

/* ── SECONDARY CTA ────────────────────────────────────────── */
.cta-btn-2{background:rgba(255,255,255,.09);color:#fff;
  border:1px solid rgba(255,255,255,.28);box-shadow:none;font-weight:600;}
.cta-btn-2:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.45);
  box-shadow:0 5px 20px rgba(0,0,0,.25);}

/* ── CONFIRMATION: quiet note, loud intake ────────────────── */
.next-note{display:flex;flex-direction:column;gap:5px;background:var(--bg);
  border-radius:11px;padding:15px 18px;margin:18px 0 24px;}
.next-note-k{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sub);}
.next-note p{font-size:13.5px;color:var(--mid);line-height:1.6;margin:0;}

/* The intake is the point of this page, so it gets the weight the two-card
   layout used to spend on process copy. */
.intake-hero{position:relative;overflow:hidden;padding-top:32px;
  border-width:2px;box-shadow:var(--sh2);}
.intake-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;
  background:linear-gradient(90deg,var(--or),#FFB35C);}
.intake-hero .intake-embed-k{font-size:11px;color:#A34D00;}
.intake-hero .intake-embed-head h3{font-size:clamp(28px,3.8vw,40px);font-weight:800;
  letter-spacing:-1.6px;line-height:1.08;margin-bottom:14px;color:var(--bk);}
.intake-lede{font-size:15.5px !important;line-height:1.65 !important;max-width:62ch;}
.intake-facts{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;}
.intake-facts span{font-size:11.5px;font-weight:600;color:#A34D00;background:#fff;
  border:1px solid rgba(255,128,0,.3);border-radius:20px;padding:5px 12px;}

/* ── BACK ─────────────────────────────────────────────────── */
.backbtn{font-family:inherit;font-size:13px;font-weight:600;color:var(--mid);
  background:#fff;border:1px solid var(--bd);border-radius:8px;padding:7px 14px;
  cursor:pointer;margin-bottom:18px;transition:all .13s;}
.backbtn:hover{border-color:var(--sub);color:var(--bk);box-shadow:var(--sh);}
.backbtn:focus-visible{outline:2px solid var(--or);outline-offset:2px;}
.backbtn[hidden]{display:none;}

/* start-here cards: the title was set below the body copy it introduces */
.scard h3{font-size:19px;letter-spacing:-.4px;margin-bottom:8px;}

.choice-lg{padding:15px 16px;}
.choice-lg b{color:var(--bk);font-weight:650;}
.choice-lg small{font-size:13px;color:var(--sub);line-height:1.5;display:inline-block;
  margin-top:3px;}
.avail-grain{font-size:11.5px;font-weight:650;color:var(--mid);background:#fff;
  border:1px solid var(--bd);border-radius:20px;padding:5px 11px;}
.sync-sec .avail-grain{color:#0B5AAB;border-color:rgba(0,122,255,.3);}
/* 15-minute grain means 32 rows, tighten them so the grid stays scannable */
[data-availability][data-slot-mins="15"] .slot{height:24px;}
[data-availability][data-slot-mins="15"] .avail-grid{border-spacing:3px;}
[data-availability][data-slot-mins="15"] .avail-grid tbody th{font-size:10.5px;}

/* ── LANDING: use the width so the CTA rises up the page ──────
   Stacked, the three-line headline plus its lede pushed "Register a deal"
   below the fold. Side by side, the hero is roughly half as tall. */
.hero{padding:8px 0 34px;}
/* One line across, so the triad reads as a single thought. Sized to clear the
   content column at desktop width; wraps on its own below that. */
.hero p{max-width:660px;}
.cta{padding:32px 36px;}
.cta h2{margin-bottom:10px;}
.cta p{margin-bottom:20px;}
.home-h2{margin:40px 0 14px;padding-top:18px;}

/* ══════════════════════════════════════════════════════════════
   COMMISSION CALCULATOR
   ══════════════════════════════════════════════════════════════ */

.calc-page{max-width:760px;}
.calc-card{background:#fff;border:1px solid var(--bd);border-radius:14px;padding:24px;
  margin-bottom:14px;box-shadow:var(--sh);}
.calc-h{font-size:18px;font-weight:650;letter-spacing:-.4px;margin:0 0 6px;border:none;
  padding:0;}
.calc-sub{font-size:14px;color:var(--sub);line-height:1.6;margin:0 0 18px;}
.calc-label{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sub);display:block;margin-bottom:12px;}

/* ── spend input ──────────────────────────────────────────── */
.calc-readout{display:flex;align-items:baseline;gap:2px;margin-bottom:20px;}
.calc-cur{font-size:26px;font-weight:200;color:var(--sub);letter-spacing:-1px;}
/* An <input> does not grow with its value, and a fixed box clipped the last
   digit of every spend from $100,000 up. The ::after holds the same string in
   the same type, so the grid cell is exactly as wide as the number is. */
.calc-numwrap{display:inline-grid;font-size:clamp(30px,5.4vw,52px);font-weight:200;
  letter-spacing:-2.2px;line-height:1.05;max-width:56vw;}
.calc-numwrap::after{content:attr(data-v);grid-area:1/1;visibility:hidden;
  white-space:pre;padding:0 2px;font-variant-numeric:tabular-nums;}
/* size="1" in the markup is load-bearing: an input's default intrinsic width
   is about 20 characters, and that, not the ::after, would size the track. */
.calc-num{grid-area:1/1;font:inherit;letter-spacing:inherit;color:var(--bk);
  background:none;border:none;padding:0 2px;width:100%;min-width:0;
  font-variant-numeric:tabular-nums;}
.calc-num:focus{outline:none;box-shadow:0 3px 0 var(--or);}
.calc-per{font-size:15px;font-weight:300;color:var(--sub);margin-left:8px;}

.calc-slider{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:6px;
  background:linear-gradient(90deg,#FFD9AD,var(--or));cursor:pointer;margin:0;}
.calc-slider:focus-visible{outline:2px solid var(--bk);outline-offset:4px;}
.calc-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;
  height:26px;border-radius:50%;background:#fff;border:2px solid var(--or);cursor:grab;
  box-shadow:0 2px 8px rgba(0,0,0,.18);transition:transform .12s;}
.calc-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.12);}
.calc-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;
  border:2px solid var(--or);cursor:grab;box-shadow:0 2px 8px rgba(0,0,0,.18);}
.calc-slider-2{background:linear-gradient(90deg,#BBDBFF,var(--bl));}
.calc-slider-2::-webkit-slider-thumb{border-color:var(--bl);}
.calc-slider-2::-moz-range-thumb{border-color:var(--bl);}

.calc-ticks{display:flex;justify-content:space-between;font-size:11px;color:var(--sub);
  margin-top:7px;font-variant-numeric:tabular-nums;}
.calc-ticks-2{margin-bottom:20px;}

.calc-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;
  margin-top:20px;}
.calc-preset{font-family:inherit;text-align:left;background:var(--bg);border:1px solid transparent;
  border-radius:10px;padding:11px 13px;cursor:pointer;transition:all .13s;}
.calc-preset b{display:block;font-size:13px;font-weight:650;color:var(--bk);margin-bottom:2px;}
.calc-preset span{font-size:12px;color:var(--sub);font-variant-numeric:tabular-nums;}
.calc-preset:hover{background:#EFEFF2;}
.calc-preset.on{background:#FFF6EC;border-color:rgba(255,128,0,.45);}
.calc-preset.on b{color:#A34D00;}
.calc-preset:focus-visible{outline:2px solid var(--or);outline-offset:2px;}

/* ── headline output ──────────────────────────────────────── */
.calc-hero-out{position:relative;overflow:hidden;background:var(--bk);border-radius:16px;
  padding:30px 32px;margin-bottom:14px;}
.calc-hero-out::after{content:'';position:absolute;right:-80px;top:-80px;width:300px;
  height:300px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,128,0,.3),transparent 68%);}
.calc-hero-k{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--or);margin-bottom:10px;position:relative;z-index:2;}
.calc-hero-n{display:flex;align-items:baseline;color:#fff;position:relative;z-index:2;
  font-variant-numeric:tabular-nums;letter-spacing:-2.6px;line-height:1;}
.calc-hero-n #calcMonthly{font-size:clamp(46px,7vw,68px);font-weight:200;}
.calc-cur-lg{font-size:clamp(26px,3.6vw,34px);font-weight:200;color:var(--or);
  margin-right:3px;}
.calc-hero-per{font-size:16px;font-weight:300;color:#8A8A8E;letter-spacing:0;margin-left:10px;}
.calc-hero-sub{font-size:14px;color:#A1A1A6;line-height:1.6;margin:14px 0 0;max-width:46ch;
  position:relative;z-index:2;}
.calc-hero-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;
  margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);
  position:relative;z-index:2;}
.calc-hero-row b{display:block;font-size:20px;font-weight:650;color:#fff;
  font-variant-numeric:tabular-nums;letter-spacing:-.6px;}
.calc-mini-k{display:block;font-size:10.5px;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:#8A8A8E;margin-bottom:5px;}

/* ── the chain ────────────────────────────────────────────── */
.calc-chain{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px;}
.calc-chain li{display:grid;grid-template-columns:1fr auto;align-items:baseline;
  column-gap:14px;background:var(--bg);border-radius:10px;padding:14px 16px;}
.calc-chain-k{font-size:14px;font-weight:650;color:var(--bk);}
.calc-chain li b{font-size:19px;font-weight:650;color:var(--bk);text-align:right;
  font-variant-numeric:tabular-nums;letter-spacing:-.5px;}
.calc-chain-n{grid-column:1/-1;font-size:12.5px;color:var(--sub);line-height:1.5;
  margin-top:4px;}
.calc-chain-out{background:#FFF6EC;box-shadow:inset 0 0 0 1px rgba(255,128,0,.35);}
.calc-chain-out .calc-chain-k,.calc-chain-out b{color:#A34D00;}

.calc-rule{font-size:13.5px;color:var(--mid);line-height:1.65;margin:0;padding:14px 16px;
  background:#F5F9FF;border-left:3px solid var(--bl);border-radius:0 9px 9px 0;}
.calc-rule strong{color:var(--bk);}

/* ── stacking deals ───────────────────────────────────────── */
.calc-multi-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.calc-multi-head .calc-label{margin-bottom:12px;}
.calc-count{font-size:26px;font-weight:650;color:var(--bl);letter-spacing:-1px;
  font-variant-numeric:tabular-nums;line-height:1;margin-bottom:10px;}

.calc-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;
  margin-bottom:22px;}
.calc-stack-cell{background:var(--bg);border-radius:11px;padding:14px 16px;}
.calc-stack-cell b{display:block;font-size:21px;font-weight:650;color:var(--bk);
  font-variant-numeric:tabular-nums;letter-spacing:-.6px;}
.calc-stack-cell .calc-mini-k{color:var(--sub);}
.calc-stack-hero{background:#EAF3FF;}
.calc-stack-hero b{color:#0A56B3;}

/* ── cumulative chart ─────────────────────────────────────── */
.calc-chart{border-top:1px solid var(--bd);padding-top:18px;}
.calc-chart-h{display:flex;justify-content:space-between;align-items:baseline;
  font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sub);margin-bottom:10px;}
.calc-chart-end{color:var(--bl);letter-spacing:-.2px;font-size:14px;text-transform:none;
  font-variant-numeric:tabular-nums;}
.calc-bars{display:flex;align-items:flex-end;gap:3px;height:96px;}
.calc-bar{flex:1;min-width:0;border-radius:3px 3px 0 0;transform:scaleY(0);
  transform-origin:bottom;transition:transform .5s cubic-bezier(.2,.8,.3,1);
  background:linear-gradient(180deg,var(--bl),#7FBBFF);}
.calc-bars.in .calc-bar{transform:scaleY(1);}
.calc-chart-x{display:flex;justify-content:space-between;font-size:11px;color:var(--sub);
  margin-top:7px;}

.calc-note{display:flex;gap:11px;align-items:flex-start;background:#F5F9FF;
  border:1px solid rgba(0,122,255,.25);border-radius:11px;padding:14px 16px;
  margin-bottom:22px;font-size:13px;color:var(--mid);line-height:1.55;}
.calc-note b{color:var(--bk);}
.calc-cta{margin-bottom:0;}

@media (max-width:620px){
  .calc-card,.calc-hero-out{padding:20px 18px;}
  .calc-bars{height:72px;gap:2px;}
}
@media (prefers-reduced-motion:reduce){
  .calc-bar{transform:scaleY(1);transition:none;}
}

/* ══════════════════════════════════════════════════════════════
   COPYABLE TEMPLATES
   ══════════════════════════════════════════════════════════════ */

.tpl{position:relative;}
.tpl blockquote{margin-bottom:18px;padding-right:104px;}
.tpl-copy{position:absolute;top:12px;right:12px;font-family:inherit;font-size:12px;
  font-weight:650;color:var(--mid);background:#fff;border:1px solid var(--bd);
  border-radius:8px;padding:7px 13px;cursor:pointer;transition:all .13s;z-index:2;
  display:inline-flex;align-items:center;gap:6px;}
.tpl-copy:hover{border-color:var(--or);color:var(--or);box-shadow:var(--sh);}
.tpl-copy:focus-visible{outline:2px solid var(--or);outline-offset:2px;}
.tpl-copy svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;fill:none;
  stroke-linecap:round;stroke-linejoin:round;}
.tpl-copy.done{color:#157A34;border-color:rgba(52,199,89,.5);background:#EDFBF0;}
@media (max-width:620px){
  .tpl blockquote{padding-right:20px;padding-top:46px;}
  .tpl-copy{top:10px;right:10px;}
}

/* ══════════════════════════════════════════════════════════════
   COLLATERAL CARDS
   ══════════════════════════════════════════════════════════════ */

.collateral{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;
  margin:20px 0 22px;}
.col-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--bd);
  border-radius:14px;padding:20px;box-shadow:var(--sh);transition:all .16s;}
.col-card:hover{border-color:rgba(255,128,0,.45);box-shadow:var(--sh2);transform:translateY(-2px);}
.col-k{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--or);margin-bottom:9px;}
.col-card b{font-size:17px;font-weight:650;letter-spacing:-.3px;color:var(--bk);
  margin-bottom:7px;}
.col-d{font-size:13px;color:var(--sub);line-height:1.55;flex:1;margin-bottom:14px;}
.col-go{font-size:12.5px;font-weight:650;color:var(--bk);}
.col-go::after{content:' ↓';color:var(--or);}

/* ══════════════════════════════════════════════════════════════
   DEAL TRACKER
   ══════════════════════════════════════════════════════════════ */

.deals-page{max-width:1040px;}
.deals-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-bottom:18px;}
.deals-head h1{font-size:clamp(28px,3.4vw,40px);font-weight:200;letter-spacing:-1.6px;
  line-height:1.1;margin-bottom:12px;}
.deals-head h1 strong{font-weight:700;}
.deals-head .lede{font-size:15.5px;font-weight:300;color:var(--sub);line-height:1.6;
  max-width:54ch;}
.deals-new{flex-shrink:0;white-space:nowrap;}
.btn-sm{font-size:12.5px;padding:9px 16px;}

/* waiting-on-us callout */
.deals-alert{background:#FFF6EC;border:1px solid rgba(255,128,0,.4);border-radius:14px;
  padding:22px 24px;margin-bottom:16px;}
.deals-alert-k{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:#B35A00;margin-bottom:9px;}
.deals-alert h2{font-size:20px;font-weight:650;letter-spacing:-.4px;margin:0 0 8px;
  border:none;padding:0;}
.deals-alert p{font-size:13.5px;color:var(--mid);line-height:1.6;margin:0 0 14px;max-width:66ch;}
.deals-alert a{color:#B35A00;font-weight:600;}
.deals-alert-list{display:grid;gap:7px;}
.deals-alert-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;background:#fff;
  border:1px solid rgba(255,128,0,.25);border-radius:9px;padding:11px 14px;font-size:13px;
  color:var(--sub);}
.deals-alert-row b{color:var(--bk);font-size:14px;font-weight:650;}
.deals-alert-v{margin-left:auto;color:#B35A00;font-weight:650;
  font-variant-numeric:tabular-nums;}

/* summary tiles */
/* EPIC 37.3 — the estimate note. Deliberately not muted into invisibility:
   it is the difference between a sales illustration and a claim about money
   owed, and it has to be read. */
.deals-estimate-note{margin:14px 0 0;padding:11px 14px;border-radius:8px;
  border:1px solid var(--line,#2a2f3a);background:rgba(255,176,32,.07);
  font-size:13px;line-height:1.5;color:var(--ink-2,#b8c0cc)}
.deals-estimate-note b{color:var(--ink,#e6eaf0)}
.deals-tile-k abbr{border-bottom:1px dotted currentColor;cursor:help;
  text-decoration:none;font-weight:inherit}
.deals-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;
  margin-bottom:14px;}
.deals-tile{background:#fff;border:1px solid var(--bd);border-radius:13px;padding:18px 20px;
  box-shadow:var(--sh);}
.deals-tile b{display:block;font-size:26px;font-weight:650;letter-spacing:-1px;
  color:var(--bk);font-variant-numeric:tabular-nums;line-height:1.1;margin-bottom:4px;}
.deals-tile-k{display:block;font-size:10px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--sub);margin-bottom:8px;}
.deals-tile-s{font-size:12px;color:var(--sub);}
.deals-tile.is-won{background:#EDFBF0;border-color:rgba(52,199,89,.4);}
.deals-tile.is-won b{color:#157A34;}

/* funnel */
.deals-funnel-card{margin-bottom:14px;}
.deals-funnel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
@media (max-width:820px){.deals-funnel{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:420px){.deals-funnel{grid-template-columns:1fr;}
  .deals-stage-l{min-height:0;}}
.deals-stage{font-family:inherit;text-align:left;background:var(--bg);
  border:1px solid transparent;border-radius:10px;padding:12px 13px;cursor:pointer;
  transition:all .13s;}
.deals-stage:hover{background:#EFEFF2;}
.deals-stage:focus-visible{outline:2px solid var(--or);outline-offset:2px;}
.deals-stage-n{display:block;font-size:22px;font-weight:650;color:var(--bk);
  letter-spacing:-.8px;font-variant-numeric:tabular-nums;line-height:1;margin-bottom:5px;}
.deals-stage-l{display:block;font-size:11.5px;font-weight:600;color:var(--sub);
  line-height:1.35;margin-bottom:9px;min-height:2.7em;}
.deals-stage-bar{display:block;height:4px;border-radius:3px;background:rgba(0,0,0,.07);
  overflow:hidden;}
.deals-stage-bar i{display:block;height:100%;border-radius:3px;background:var(--sub);
  transition:width .3s;}
.deals-stage.is-wait .deals-stage-n{color:#B35A00;}
.deals-stage.is-wait .deals-stage-bar i{background:var(--or);}
.deals-stage.is-live .deals-stage-bar i{background:var(--bl);}
.deals-stage.is-won .deals-stage-n{color:#157A34;}
.deals-stage.is-won .deals-stage-bar i{background:var(--gr);}
.deals-stage.is-lost .deals-stage-n{color:var(--sub);}
.deals-stage.on{background:var(--bk);border-color:var(--bk);}
.deals-stage.on .deals-stage-n,.deals-stage.on .deals-stage-l{color:#fff;}
.deals-stage.on .deals-stage-bar{background:rgba(255,255,255,.2);}

/* controls */
.deals-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px;}
.deals-search{position:relative;flex:1;min-width:220px;}
.deals-search input{width:100%;font-family:inherit;font-size:14px;background:#fff;
  border:1px solid var(--bd);border-radius:10px;padding:11px 13px 11px 38px;
  box-shadow:var(--sh);transition:box-shadow .15s;}
.deals-search input:focus{outline:none;border-color:var(--or);
  box-shadow:0 0 0 3px rgba(255,128,0,.15);}
.deals-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);
  width:15px;height:15px;stroke:var(--sub);pointer-events:none;}
.deals-selects{display:flex;gap:10px;flex-wrap:wrap;}
.deals-sel{display:flex;flex-direction:column;gap:5px;}
.deals-sel span{font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--sub);}
.deals-sel select{font-family:inherit;font-size:13.5px;color:var(--bk);background:#fff;
  border:1px solid var(--bd);border-radius:10px;padding:11px 32px 11px 13px;cursor:pointer;
  -webkit-appearance:none;appearance:none;box-shadow:var(--sh);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236E6E73' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;}
.deals-sel select:focus{outline:none;border-color:var(--or);
  box-shadow:0 0 0 3px rgba(255,128,0,.15);}

.deals-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px;}
.deals-chips:empty{display:none;}
.deals-chip{font-family:inherit;font-size:12px;font-weight:600;color:#fff;background:var(--bk);
  border:1px solid var(--bk);border-radius:20px;padding:6px 12px;cursor:pointer;
  transition:all .13s;}
.deals-chip:hover{background:#000;}
.deals-chip span{opacity:.55;margin-left:4px;}
.deals-chip.is-clear{background:none;color:var(--sub);border-color:var(--bd);}
.deals-chip.is-clear:hover{color:var(--bk);border-color:var(--sub);}

/* table */
.deals-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--bd);
  border-radius:14px;box-shadow:var(--sh);}
.deals-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:820px;}
.deals-table thead th{background:#FAFAFB;text-align:left;font-size:10px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--sub);padding:12px 16px;
  border-bottom:1px solid var(--bd);white-space:nowrap;}
.deals-table th.dt-sort{cursor:pointer;user-select:none;transition:color .12s;}
.deals-table th.dt-sort:hover{color:var(--bk);}
.deals-table th.dt-sort::after{content:'';display:inline-block;width:0;height:0;
  margin-left:6px;vertical-align:middle;border-left:4px solid transparent;
  border-right:4px solid transparent;border-bottom:5px solid transparent;}
.deals-table th.dt-sort.on{color:var(--or);}
.deals-table th.dt-sort.on::after{border-bottom-color:var(--or);}
.deals-table th.dt-sort.on.desc::after{border-bottom:none;border-top:5px solid var(--or);}
.deals-table td{padding:14px 16px;border-bottom:1px solid var(--bd);color:var(--mid);
  vertical-align:top;line-height:1.45;}
.deals-table tbody tr:last-child td{border-bottom:none;}
.deals-row{cursor:pointer;transition:background .12s;}
.deals-row:hover{background:#FCFCFD;}
.deals-row:focus-visible{outline:2px solid var(--or);outline-offset:-2px;}
.deals-table td b{color:var(--bk);font-weight:650;display:block;}
.dt-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.dt-sub{display:block;font-size:11.5px;color:var(--sub);font-weight:400;margin-top:2px;}
.dt-num .dt-sub{display:inline;margin-left:2px;}
.dt-tag{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--sub);background:var(--bg);border-radius:4px;
  padding:2px 6px;margin-top:5px;}
/* the notes column is the one that runs long, clamp it until the row is opened */
.dt-next{max-width:230px;font-size:12.5px;color:var(--sub);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.deals-row.open .dt-next{-webkit-line-clamp:unset;display:block;}

.deals-pill{display:inline-block;font-size:11.5px;font-weight:650;border-radius:20px;
  padding:4px 11px;white-space:nowrap;background:var(--bg);color:var(--mid);}
.deals-pill.is-wait{background:#FFF6EC;color:#B35A00;}
.deals-pill.is-live{background:#EAF3FF;color:#0A56B3;}
.deals-pill.is-won{background:#EDFBF0;color:#157A34;}
.deals-pill.is-lost{background:var(--bg);color:var(--sub);}

.deals-empty{padding:44px 24px;text-align:center;}
.deals-empty b{display:block;font-size:15px;color:var(--bk);margin-bottom:5px;}
.deals-empty span{font-size:13.5px;color:var(--sub);}

.deals-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;
  flex-wrap:wrap;padding:14px 2px 0;font-size:12.5px;color:var(--sub);
  font-variant-numeric:tabular-nums;}
.deals-foot-acts{display:flex;gap:8px;flex-wrap:wrap;}
.deals-note{margin-top:18px;}

@media (max-width:1000px){
  .deals-page{max-width:none;}
  .deals-head .deals-new{width:100%;justify-content:center;}
}
@media (prefers-reduced-motion:reduce){
  .col-card:hover{transform:none;}
  .deals-stage-bar i{transition:none;}
}

/* ── calculator: growth projection ────────────────────────── */
.calc-slider-3{background:linear-gradient(90deg,#CFE8D6,var(--gr));}
.calc-slider-3::-webkit-slider-thumb{border-color:var(--gr);}
.calc-slider-3::-moz-range-thumb{border-color:var(--gr);}
.calc-count-3{color:#157A34;font-size:20px;}

.calc-proj{display:grid;gap:8px;margin:20px 0 16px;}
.calc-proj-row{display:grid;grid-template-columns:1fr auto;align-items:baseline;
  column-gap:14px;background:var(--bg);border-radius:10px;padding:14px 16px;}
.calc-proj-k{font-size:14px;font-weight:650;color:var(--bk);}
.calc-proj-row b{font-size:21px;font-weight:650;color:var(--bk);text-align:right;
  font-variant-numeric:tabular-nums;letter-spacing:-.6px;}
.calc-proj-n{grid-column:1/-1;font-size:12.5px;color:var(--sub);line-height:1.5;
  margin-top:4px;}
.calc-stack-note{display:block;font-size:11px;color:var(--sub);margin-top:4px;}

/* Growth ticks are positioned by value, not spaced evenly, the range is
   asymmetric (-20..150) so even spacing would put "flat" in the wrong place. */
.calc-ticks-3{position:relative;height:16px;display:block;margin-bottom:22px;}
.calc-ticks-3 span{position:absolute;transform:translateX(-50%);white-space:nowrap;}
.calc-ticks-3 span:first-child{transform:none;}
.calc-ticks-3 span:last-child{transform:translateX(-100%);}
.calc-ticks-3 .tk{left:calc(13px + (100% - 26px) * var(--f));}
/* Six labels sit comfortably on a wide track and collide on a narrow one.
   The stops they mark are unchanged either way, so the two closest to a
   neighbour drop out rather than letting the row overlap. */
@media (max-width:620px){.calc-ticks-3 .tk-opt{display:none;}}

/* ── collateral: preview + download ───────────────────────── */
.col-card{cursor:default;}
.col-card:hover{transform:none;}
.col-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;}

.col-modal{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,.55);
  display:flex;align-items:center;justify-content:center;padding:24px;}
.col-modal[hidden]{display:none;}
.col-modal-box{background:#fff;border-radius:14px;box-shadow:var(--sh2);width:min(1000px,100%);
  height:min(88vh,900px);display:flex;flex-direction:column;overflow:hidden;}
.col-modal-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 14px 12px 18px;border-bottom:1px solid var(--bd);flex-shrink:0;}
.col-modal-bar b{font-size:15px;font-weight:650;letter-spacing:-.3px;}
.col-modal-acts{display:flex;align-items:center;gap:8px;}
.col-modal-x{font-family:inherit;font-size:24px;line-height:1;color:var(--sub);background:none;
  border:none;cursor:pointer;padding:2px 8px;border-radius:8px;transition:all .13s;}
.col-modal-x:hover{background:var(--bg);color:var(--bk);}
.col-modal-x:focus-visible{outline:2px solid var(--or);outline-offset:2px;}
@media (max-width:620px){.col-modal{padding:0;}
  .col-modal-box{height:100vh;border-radius:0;}}

/* ── dark data table ──────────────────────────────────────── */
.tw-dark .tw{position:relative;overflow:hidden;background:var(--bk);border-radius:16px;
  box-shadow:none;}
.tw-dark .tw::after{content:'';position:absolute;right:-80px;top:-80px;width:300px;height:300px;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,128,0,.28),transparent 68%);}
.tw-dark table{position:relative;z-index:2;background:none;}
.tw-dark thead{display:none;}
.tw-dark tbody td{border-bottom:1px solid rgba(255,255,255,.1);color:#C7C7CC;
  padding:16px 22px;}
.tw-dark tbody tr:last-child td{border-bottom:none;}
.tw-dark tbody tr:hover{background:rgba(255,255,255,.03);}
.tw-dark td strong{color:#fff;font-weight:650;}
.tw-dark td:first-child{white-space:nowrap;width:1%;}
.tw-dark td:first-child strong{color:var(--or);}
@media (max-width:620px){
  .tw-dark tbody td{display:block;padding:6px 18px;}
  .tw-dark tbody td:first-child{padding-top:16px;width:auto;}
  .tw-dark tbody td:last-child{padding-bottom:16px;}
}

/* ── the origin story: newspaper-ish emphasis ─────────────── */
.story{margin-bottom:22px;}
.story > p{font-size:16px;line-height:1.7;}
.story b,.story strong{color:var(--bk);font-weight:700;}

/* the three beats of the story get progressively more weight */
.story .story-lead{font-size:clamp(19px,2.1vw,24px);line-height:1.45;letter-spacing:-.4px;
  color:var(--mid);margin:22px 0 18px;}
.story .story-lead b{font-weight:700;letter-spacing:-.6px;}
.story .story-lead em{font-style:italic;color:var(--sub);}

.story .story-turn{font-size:clamp(19px,2.1vw,24px);line-height:1.45;letter-spacing:-.4px;
  color:var(--mid);margin:22px 0 18px;padding-left:18px;
  border-left:3px solid var(--or);}
.story .story-turn b{font-weight:700;letter-spacing:-.6px;}

.story-three{margin:16px 0 20px;}
.story-three ul{margin:0;list-style:none;counter-reset:s;}
.story-three li{position:relative;font-size:15px;color:var(--mid);line-height:1.55;
  padding:12px 0 12px 42px;border-top:1px solid var(--bd);margin:0;counter-increment:s;}
.story-three li:last-child{border-bottom:1px solid var(--bd);}
.story-three li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;
  top:12px;font-size:12px;font-weight:700;color:var(--or);
  font-variant-numeric:tabular-nums;letter-spacing:.06em;}
.story-three li strong{display:inline;}

/* the payoff line, set like a pull quote */
.story .story-kicker{font-size:clamp(22px,2.8vw,30px);font-weight:200;letter-spacing:-1.1px;
  line-height:1.25;color:var(--bk);margin:26px 0 0;padding-top:22px;
  border-top:2px solid var(--bk);text-wrap:balance;}
.story .story-kicker b{font-weight:700;}

/* ── the one qualifying question ──────────────────────────── */
.askbox{position:relative;overflow:hidden;background:var(--bk);border-radius:16px;
  padding:26px 30px;margin:0 0 20px;}
.askbox::after{content:'';position:absolute;right:-70px;top:-70px;width:280px;height:280px;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,128,0,.3),transparent 68%);}
.askbox-k{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--or);margin-bottom:12px;position:relative;z-index:2;}
.askbox p{font-size:clamp(18px,2.3vw,25px);font-weight:200;letter-spacing:-.8px;
  line-height:1.35;color:#fff;margin:0;position:relative;z-index:2;text-wrap:balance;}
.askbox p strong{font-weight:700;color:#fff;}
@media (max-width:620px){.askbox{padding:22px 20px;}}

/* ── collateral: brand lockup + pending files ─────────────── */
.brandmark{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--bd);
  border-radius:14px;padding:18px 20px;margin-bottom:22px;box-shadow:var(--sh);}
.brandmark svg{width:52px;height:52px;flex-shrink:0;border-radius:12px;}
.brandmark b{display:block;font-size:22px;font-weight:700;letter-spacing:-.7px;
  color:var(--bk);line-height:1;margin-bottom:6px;}
.brandmark b span{color:var(--or);}
.brandmark-s{display:block;font-size:13px;color:var(--sub);line-height:1.55;}

.onepagers{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
.col-card[data-missing]{opacity:.72;}
.col-card[data-missing] .col-acts{position:relative;}
.col-card[data-missing] .btn{pointer-events:none;opacity:.45;}
.col-card[data-missing]::after{content:'File not uploaded yet';display:block;font-size:11px;
  font-weight:650;color:#B35A00;background:#FFF6EC;border:1px dashed rgba(255,128,0,.45);
  border-radius:7px;padding:6px 10px;margin-top:10px;text-align:center;}

/* ── tinted fit / not-fit panels ──────────────────────────── */
.secbox{border-radius:16px;padding:26px 28px 8px;margin:38px 0 20px;
  border:1px solid transparent;}
.secbox h2{margin-top:0;padding-top:0;border-top:none;}
.secbox > *:last-child{margin-bottom:22px;}

.secbox.is-fit{background:#F1FAF3;border-color:rgba(52,199,89,.32);}
.secbox.is-nofit{background:#FDF5F4;border-color:rgba(255,59,48,.26);}

/* the bullet list carries the verdict, so mark it rather than the paragraph */
.secbox ul{list-style:none;margin-left:0;}
.secbox li{position:relative;padding-left:28px;}
.secbox li::before{position:absolute;left:2px;top:0;font-weight:700;font-size:14px;}
.secbox.is-fit li::before{content:'✓';color:#157A34;}
.secbox.is-nofit li::before{content:'\00d7';color:#B3271D;}
.secbox li::marker{content:none;}

.secbox.is-fit strong{color:#0F5F28;}
.secbox.is-nofit strong{color:#8F1F17;}
.secbox.is-fit p,.secbox.is-nofit p,.secbox li{color:var(--mid);}

@media (max-width:620px){.secbox{padding:20px 18px 4px;}}

.logopack{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));max-width:420px;}

/* deck preview: rendered pages in a scroller */
.col-modal-pages{flex:1;overflow-y:auto;background:#E9E9EC;padding:18px;
  display:flex;flex-direction:column;align-items:center;gap:18px;}
.col-page-wrap{margin:0;width:100%;max-width:860px;}
.col-page{display:block;width:100%;height:auto;border-radius:8px;
  box-shadow:0 2px 10px rgba(0,0,0,.14);background:#fff;}
.col-page-art{max-width:280px;margin:auto;box-shadow:none;}
.col-page-wrap figcaption{font-size:11px;color:var(--sub);text-align:center;padding-top:7px;
  font-variant-numeric:tabular-nums;}
.col-modal-none{margin:auto;text-align:center;display:flex;flex-direction:column;gap:5px;}
.col-modal-none b{font-size:15px;color:var(--bk);}
.col-modal-none span{font-size:13.5px;color:var(--sub);}

/* ── EXTRA CONTACTS ───────────────────────────────────────────
   Revealed by a checkbox, so each block needs to read as its own
   card rather than as more fields bolted onto contact one. */
.contact-add{margin-top:16px;}
.contact-extra{flex-direction:column;gap:14px;margin-top:14px;padding:18px 18px 4px;
  background:var(--bg);border:1px solid var(--bd);border-radius:12px;}
.contact-extra .contact-extra{background:#fff;}
.contact-extra-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.contact-extra-n{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--or);}
.contact-extra-s{font-size:12.5px;color:var(--sub);}
.contact-extra .choice{background:#fff;}
.contact-extra .contact-extra .choice{background:var(--bg);}
.contact-extra .field input{background:#fff;}
.contact-extra .contact-extra .field input{background:var(--bg);}

/* ── HOW IT WORKS STRIP ───────────────────────────────────────
   Three beats, scannable at a glance, the availability picker is the
   one place partners misread the form as booking a meeting. */
.how-it-works{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 2px;}
.hiw-step{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--bd);
  border-radius:10px;padding:12px 13px;position:relative;}
.hiw-n{width:19px;height:19px;border-radius:50%;background:var(--bk);color:#fff;
  display:grid;place-items:center;font-size:10.5px;font-weight:700;margin-bottom:4px;}
.hiw-step b{font-size:13.5px;font-weight:650;color:var(--bk);line-height:1.3;}
.hiw-step span:not(.hiw-n){font-size:12px;color:var(--sub);line-height:1.45;}
.hint-quiet{font-size:12.5px !important;}
@media (max-width:620px){.how-it-works{grid-template-columns:1fr;}}

/* ── THE 30-SECOND QUALIFICATION ──────────────────────────────
   Same black-to-orange treatment as the landing CTA and the ask box,
   this is the other thing a partner should be able to find at a glance. */
.qualbox{position:relative;overflow:hidden;background:var(--bk);border-radius:16px;
  padding:30px 34px;margin:0 0 22px;}
.qualbox::after{content:'';position:absolute;right:-80px;top:-90px;width:320px;height:320px;
  border-radius:50%;background:radial-gradient(circle,rgba(255,128,0,.3),transparent 68%);
  pointer-events:none;}
.qualbox > *{position:relative;z-index:2;}
.qualbox-k{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--or);margin-bottom:10px;}
.qualbox .qualbox-lede{font-size:14.5px;color:#A1A1A6;line-height:1.6;margin:0 0 22px;
  max-width:56ch;}

.qualsteps{list-style:none;counter-reset:qs;margin:0;padding:0;
  display:flex;flex-direction:column;gap:2px;}
.qualsteps li{counter-increment:qs;position:relative;padding:13px 0 13px 44px;
  border-top:1px solid rgba(255,255,255,.09);}
.qualsteps li:first-child{border-top:none;}
.qualsteps li::before{content:counter(qs);position:absolute;left:0;top:13px;
  width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,128,0,.45);
  color:var(--or);font-size:12px;font-weight:700;display:grid;place-items:center;
  font-variant-numeric:tabular-nums;}
.qualsteps q{display:block;font-size:17px;font-weight:600;color:#fff;line-height:1.4;
  letter-spacing:-.3px;text-wrap:balance;}
.qualsteps q::before{content:'\201C';}
.qualsteps q::after{content:'\201D';}
.qualsteps li span{display:block;font-size:13px;color:#8A8A8E;line-height:1.5;margin-top:5px;}

/* The last question is the one that asks for something, so it gets the weight. */
.qualsteps .qualstep-ask{background:rgba(255,128,0,.1);border-radius:12px;
  padding:15px 16px 15px 46px;margin-top:6px;border-top:none;}
.qualsteps .qualstep-ask::before{top:15px;left:12px;background:var(--or);
  border-color:var(--or);color:#fff;}
.qualsteps .qualstep-ask q{font-size:18px;font-weight:700;}
.qualsteps .qualstep-ask span{color:#FFB35C;font-weight:600;}

.qualbox .qualbox-foot{font-size:13.5px;color:#A1A1A6;line-height:1.6;
  margin:20px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.09);}
@media (max-width:620px){
  .qualbox{padding:24px 20px;}
  .qualsteps li{padding-left:38px;}
  .qualsteps q{font-size:15.5px;}
}

/* ══════════════════════════════════════════════════════════════
   PARTNER PROFILE: top-bar identity
   ══════════════════════════════════════════════════════════════ */
.pf{position:relative;flex-shrink:0;}
.pf-btn{position:relative;background:none;border:none;padding:0;cursor:pointer;
  border-radius:50%;line-height:0;transition:transform .13s;}
.pf-btn:hover{transform:translateY(-1px);}
.pf-btn:focus-visible{outline:2px solid var(--or);outline-offset:3px;}
.pf-av{width:34px;height:34px;border-radius:50%;background:var(--bg);
  border:1px solid var(--bd);display:grid;place-items:center;overflow:hidden;
  color:var(--sub);}
.pf-av svg{width:19px;height:19px;}
.pf-av img{width:100%;height:100%;object-fit:cover;display:block;}
.pf-av-photo{border-color:rgba(255,128,0,.55);}
.pf-ini{font-size:13px;font-weight:700;letter-spacing:.02em;color:#fff;
  width:100%;height:100%;display:grid;place-items:center;background:var(--bk);}
.pf-ini-lg{font-size:22px;}
.pf-dot{position:absolute;top:-1px;right:-1px;width:10px;height:10px;border-radius:50%;
  background:var(--or);border:2px solid #fff;}
.pf-dot[hidden]{display:none;}

.pf-pop{position:absolute;top:46px;right:0;width:340px;max-width:calc(100vw - 32px);
  background:#fff;border:1px solid var(--bd);border-radius:15px;box-shadow:var(--sh2);
  padding:18px;z-index:190;max-height:min(78vh,660px);overflow-y:auto;}
.pf-pop[hidden]{display:none;}

.pf-av-lg{width:54px;height:54px;flex-shrink:0;}
.pf-av-lg svg{width:27px;height:27px;}

.pf-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;
  padding:8px 6px 4px;}
.pf-empty b{font-size:15.5px;font-weight:650;}
.pf-empty span{font-size:13px;color:var(--sub);line-height:1.55;}
.pf-empty .btn{margin-top:5px;}

.pf-head{display:flex;align-items:center;gap:13px;margin-bottom:15px;}
.pf-id{min-width:0;}
.pf-id b{display:block;font-size:16px;font-weight:650;letter-spacing:-.3px;line-height:1.3;}
.pf-id span{display:block;font-size:12.5px;color:var(--sub);word-break:break-all;
  line-height:1.4;margin-top:2px;}

.pf-rows{display:flex;flex-direction:column;gap:0;margin:0 0 15px;
  border-top:1px solid var(--bd);}
.pf-rows > div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;
  border-bottom:1px solid var(--bd);}
.pf-rows dt{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--sub);flex-shrink:0;padding-top:2px;}
.pf-rows dd{margin:0;font-size:13.5px;color:var(--bk);font-weight:500;text-align:right;
  line-height:1.45;}

.pf-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pf-acts-end{justify-content:flex-end;margin-top:4px;}
.pf-clear{margin-left:auto;background:none;border:none;font-family:inherit;font-size:12.5px;
  font-weight:600;color:var(--sub);cursor:pointer;padding:6px 2px;transition:color .13s;}
.pf-clear:hover{color:var(--re);}
.pf-note{font-size:11.5px;color:var(--sub);line-height:1.5;margin:13px 0 0;
  padding-top:12px;border-top:1px solid var(--bd);}

/* ── THE PARTNER ROSTER (admin-accounts) ─────────────────────────────────
   Grouped by firm because the hierarchy is what an operator holds in their
   head — "the Telarus people", not fourteen loose addresses. */
.acc-jump{margin:0 0 18px;}
.acc-jump-row{display:flex;gap:10px;align-items:center;}
.acc-jump-row .form-input{flex:1;}
.acc-toolbar{display:flex;gap:12px;align-items:center;margin:0 0 12px;flex-wrap:wrap;}
.acc-toolbar .form-input{flex:1;min-width:220px;}
.acc-tabs{display:flex;gap:4px;}
.acc-tab{font:inherit;font-size:12.5px;cursor:pointer;padding:7px 13px;
  border:1px solid var(--bd);background:var(--card);color:var(--sub);
  border-radius:7px;}
.acc-tab.on{background:var(--bk);border-color:var(--bk);color:#fff;}
.acc-firm{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sub);margin:20px 0 8px;}
.acc-firm-none{color:var(--or);}
.acc-kind{font-weight:500;letter-spacing:0;text-transform:none;opacity:.75;}
.acc-rows{border:1px solid var(--bd);border-radius:10px;overflow:hidden;background:var(--card);}
.acc-row{display:flex;align-items:center;gap:14px;padding:11px 14px;
  border-top:1px solid var(--bd);}
.acc-rows .acc-row:first-child{border-top:0;}
.acc-name{font-size:14px;color:var(--bk);}
.acc-mail{font-size:12px;color:var(--sub);}
.acc-who{flex:1;min-width:0;}
.acc-meta{font-size:12px;color:var(--sub);white-space:nowrap;}
.acc-state{color:var(--or);text-transform:capitalize;}
.acc-go{flex:none;}
.acc-go-off{color:var(--sub);opacity:.5;padding:0 10px;}

/* ── FORM CONTROLS ───────────────────────────────────────────────────────
   The portal had NO .form-input or .form-label rules at all, so every field on
   the login, the application form and the intake form rendered as an unstyled
   browser default — a grey inset box in the platform's own font, next to
   buttons and cards that are carefully styled. That is why the sign-in looked
   wrong against the app's /login.

   Values taken from trimio-ui app/login/page.tsx `inputClass`, translated from
   its tokens: --radius-lg 8px, --brand-500 #ff8000, the same Inter stack, and
   a 2px focus ring in the brand colour. Both surfaces already share the font
   and the orange, so matching the CONTROLS is what closes the gap. */
.form-group{margin:0 0 14px;}
.form-label{display:block;font-size:13px;font-weight:500;color:var(--mid);margin:0 0 6px;}
.form-input,
.form-select,
.form-textarea{
  display:block;width:100%;box-sizing:border-box;
  font-family:inherit;font-size:14px;line-height:1.45;
  color:var(--bk);background:var(--card);
  border:1px solid var(--bd);border-radius:8px;
  padding:10px 12px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.form-input::placeholder,
.form-textarea::placeholder{color:var(--sub);}
.form-input:focus,
.form-select:focus,
.form-textarea:focus{
  outline:none;border-color:transparent;
  box-shadow:0 0 0 2px var(--or);
}
.form-input:disabled{opacity:.6;cursor:not-allowed;}
.form-textarea{min-height:112px;resize:vertical;}
.form-hint{font-size:12.5px;color:var(--sub);line-height:1.5;}

/* ── CREDENTIAL PAGES (login, set-password) ──────────────────────────────
   A standalone centred card, matching the app's own sign-in at /login rather
   than the portal shell: a visitor here is not signed in, so nav they cannot
   use is noise and a top bar would show an identity that does not exist yet. */
.auth-body{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:var(--bg);padding:32px 16px;}
.auth-wrap{width:100%;max-width:420px;}
/* The application form: eleven fields, several of them free text. The login's
   width makes it a cramped column; this is the width at which it is fillable. */
.auth-wrap-wide{max-width:640px;}
.auth-wrap-wide .auth-card{padding:28px 30px;}
/* Side by side where there is room — first/last, email/phone read as pairs. */
@media (min-width:560px){
  .auth-wrap-wide .form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}
}
.auth-brand{text-align:center;margin:0 0 22px;}
.auth-mark{font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--bk);}
.auth-mark i{color:var(--or);font-style:normal;}
.auth-sub{margin:4px 0 0;font-size:13.5px;color:var(--sub);}
.auth-card{background:var(--card);border:1px solid var(--bd);border-radius:14px;
  padding:26px 24px;box-shadow:var(--sh);}
/* The fragments are authored for the portal shell, so neutralise the bits that
   assume one: the breadcrumb, the oversized hero, and the card-in-a-card. */
.auth-card .crumb{display:none;}
.auth-card .form-hero{margin:0 0 18px;}
.auth-card .form-hero h1{font-size:20px;line-height:1.3;margin:0 0 6px;}
.auth-card .lede{font-size:13.5px;margin:0;color:var(--sub);}
.auth-card .calc-card{background:none;border:0;box-shadow:none;padding:0;margin:0;}
.auth-card .btn-primary{width:100%;justify-content:center;margin-top:2px;}
/* The way in for someone with no account. Separated by a rule so it reads as a
   second route rather than as fine print under the form. */
.auth-alt{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:18px 0 0;padding-top:16px;border-top:1px solid var(--bd);}
.auth-alt span{font-size:13px;color:var(--sub);}
.auth-foot{text-align:center;font-size:12px;color:var(--sub);margin:16px 0 0;}
.auth-foot a{color:var(--bl);}

/* Which engine scored a fit check. Amber for the local rubric — not an error,
   but the partner must not read a keyword score as model analysis; green-grey
   for the model, stated quietly because that is the expected case. */
.fc-prov{font-size:12px;line-height:1.5;padding:9px 12px;border-radius:7px;
  margin:0 0 14px;border:1px solid var(--bd);}
.fc-prov-local{background:#3a2a08;border-color:#7a5a12;color:#ffd489;}
.fc-prov-local b{color:#fff;}
.fc-prov-api{background:var(--panel);color:var(--sub);}

/* EPIC 37.14 — the impersonation banner. Fixed to the top and NOT dismissible:
   a staff member who forgets they are impersonating will read a partner's
   pipeline as though it were the whole picture, and every write they try will
   be refused for a reason they have stopped expecting. Amber rather than red —
   this is a legitimate state, not an error. */
.imp-bar{position:fixed;top:0;left:0;right:0;z-index:9999;
  display:flex;align-items:center;gap:10px;padding:8px 14px;
  background:#3a2a08;border-bottom:1px solid #7a5a12;
  font-size:12.5px;color:#ffd489;}
.imp-dot{width:7px;height:7px;border-radius:50%;background:#ffb020;flex:none;}
.imp-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.imp-txt strong{color:#fff;font-weight:600;}
.imp-actor{opacity:.75;}
.imp-exit{flex:none;font:inherit;font-size:12px;cursor:pointer;
  padding:3px 12px;border-radius:5px;color:#ffd489;
  background:transparent;border:1px solid #7a5a12;}
.imp-exit:hover{background:#4a370c;}
.imp-exit:disabled{opacity:.6;cursor:default;}
/* Push the fixed topbar down so the banner never covers it. */
body.has-imp-bar .topbar{top:35px;}
body.has-imp-bar{padding-top:35px;}

/* EPIC 37.10 — the staff entrance at /staff/. It carries none of the portal
   shell (no topbar, no sidebar), so it styles itself from these few rules. */
.st-body{min-height:100vh;display:grid;place-items:center;padding:24px;}
.st-wrap{max-width:440px;text-align:center;}
.st-brand{font-size:26px;font-weight:700;letter-spacing:-.02em;}
.st-brand span{color:var(--accent);}
.st-kicker{font-size:10.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--sub);margin:6px 0 22px;}
.st-wrap h1{font-size:23px;font-weight:500;line-height:1.35;margin:0 0 18px;}
.st-wrap h1 strong{font-weight:700;}
.st-msg{font-size:13.5px;color:var(--sub);line-height:1.55;margin:0 0 14px;min-height:1.5em;}
.st-msg.st-err{color:#ff8a80;}
.st-foot{font-size:12px;color:var(--sub);margin:26px 0 0;
  padding-top:18px;border-top:1px solid var(--bd);}

/* EPIC 37.9: why the email field will not take a new value. Sits directly under
   that input, so it reads as an explanation rather than a general notice. */
.pf-ro-note{font-size:11px;color:var(--sub);line-height:1.45;margin:-4px 0 2px;}
.pf-f input[readonly]{opacity:.72;cursor:not-allowed;}

/* The build stamp, in the panel you open from your name in the top right. */
.pf-ver{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  font-size:11px;color:var(--sub);line-height:1.5;margin:12px 0 0;padding-top:11px;
  border-top:1px solid var(--bd);}
.pf-ver-sha{font-family:ui-monospace,SFMono-Regular,'SF Mono',Menlo,monospace;
  color:var(--mid);flex-shrink:0;}
/* Parked alongside .build-stamp a — see the note there. */
.pf-ver a{color:var(--mid);border-bottom:1px solid var(--bd);}
.pf-ver a:hover{color:var(--bl);border-bottom-color:currentColor;}

/* ── edit mode ────────────────────────────────────────────── */
.pf-edit{display:flex;flex-direction:column;gap:12px;}
.pf-photo-row{display:flex;align-items:center;gap:13px;}
.pf-av-edit{position:relative;cursor:pointer;padding:0;}
.pf-av-edit:hover .pf-cam{opacity:1;}
.pf-cam{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.6);
  color:#fff;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  opacity:0;transition:opacity .14s;border-radius:50%;}
.pf-photo-copy{min-width:0;display:flex;flex-direction:column;gap:2px;}
.pf-photo-copy b{font-size:13.5px;font-weight:650;}
.pf-photo-copy span{font-size:11.5px;color:var(--sub);line-height:1.45;}
.pf-photo-copy .pf-clear{margin:2px 0 0;text-align:left;padding:0;}

.pf-f{display:flex;flex-direction:column;gap:5px;}
.pf-f > span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--sub);}
.pf-f input{width:100%;font-family:inherit;font-size:14px;color:var(--bk);background:var(--bg);
  border:1px solid transparent;border-radius:8px;padding:9px 11px;transition:all .13s;}
.pf-f input:focus{outline:none;background:#fff;border-color:var(--or);
  box-shadow:0 0 0 3px rgba(255,128,0,.15);}
.pf-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.pf-tsd[hidden]{display:none;}

.pf-seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.pf-seg-b{font-family:inherit;font-size:13px;font-weight:600;color:var(--mid);background:var(--bg);
  border:1px solid transparent;border-radius:8px;padding:9px 8px;cursor:pointer;
  transition:all .13s;}
.pf-seg-b:hover{background:#EAEAEF;}
.pf-seg-b.on{background:var(--bk);color:#fff;border-color:var(--bk);}

/* the "we filled this in for you" line on a form */
.pf-filled{font-size:12.5px;font-weight:600;color:#1E9E44;}
.pf-filled[hidden]{display:none;}

@media (max-width:1000px){
  .pf-pop{position:fixed;top:auto;right:12px;left:12px;width:auto;}
}

/* preset row caption: tells you what the buttons are for before you click one */
.calc-preset-k{font-size:12.5px;color:var(--sub);line-height:1.5;margin:20px 0 9px;}

/* ══════════════════════════════════════════════════════════════
   SIGN-IN GATE
   The auth state lives on <html data-auth>, set by an inline script in the
   head so nothing paints before it resolves.
   ══════════════════════════════════════════════════════════════ */
.gate{display:none;}
[data-auth="out"] .topbar,
[data-auth="out"] .shell,
[data-auth="out"] .preview-flag,
[data-auth="out"] .scrim{display:none !important;}
[data-auth="out"] .gate{display:block;}

/* the access request is reachable while signed out, stripped of navigation */
[data-auth="req"] .side,
[data-auth="req"] .tb-search,
[data-auth="req"] .pf,
[data-auth="req"] .tb-burger,
[data-auth="req"] .backbtn,
[data-auth="req"] .pagenav{display:none !important;}
[data-auth="req"] .shell{grid-template-columns:minmax(0,1fr);}
[data-auth="req"] .main{max-width:820px;margin:0 auto;}

.gate{min-height:100vh;background:var(--bg);padding:48px 24px 64px;}
.gate-inner{max-width:660px;margin:0 auto;}

.gate-brand{display:flex;align-items:baseline;gap:14px;justify-content:center;
  margin-bottom:52px;}
.gate-mark{font-size:27px;font-weight:700;letter-spacing:-.9px;}
.gate-mark i{color:var(--or);font-style:normal;}
.gate-label{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--sub);padding-left:14px;border-left:1px solid var(--bd);}

.gate h1{font-size:clamp(38px,5.6vw,58px);font-weight:200;letter-spacing:-2.6px;
  line-height:1.04;margin-bottom:22px;text-align:center;}
.gate h1 strong{font-weight:700;}
.gate-lede{font-size:17px;font-weight:300;color:var(--sub);line-height:1.6;
  text-align:center;max-width:560px;margin:0 auto 40px;text-wrap:balance;}
/* <b> resolves to "bolder than 300", which lands on normal and reads as no
   emphasis at all. Set the weight outright. */
.gate-lede b{color:var(--bk);font-weight:650;}

.gate-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:34px;}
.gate-stats > div{background:#fff;border:1px solid var(--bd);border-radius:13px;
  padding:18px 16px;text-align:center;}
.gate-stats b{display:block;font-size:27px;font-weight:200;letter-spacing:-1.3px;
  color:var(--or);line-height:1;margin-bottom:8px;}
.gate-stats span{font-size:11.5px;color:var(--sub);line-height:1.45;display:block;}

/* the sign-in panel gets the black-to-orange treatment: it is the one thing
   on this page a returning partner is looking for */
.gate-card{position:relative;overflow:hidden;background:var(--bk);border-radius:18px;
  padding:32px 34px;margin-bottom:20px;}
.gate-card::after{content:'';position:absolute;right:-70px;top:-80px;width:290px;height:290px;
  border-radius:50%;background:radial-gradient(circle,rgba(255,128,0,.3),transparent 68%);
  pointer-events:none;}
.gate-card > *{position:relative;z-index:2;}
.gate-card-k{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--or);margin-bottom:11px;}
.gate-card h2{font-size:clamp(23px,3vw,30px);font-weight:200;letter-spacing:-1.2px;
  color:#fff;line-height:1.15;margin:0 0 22px;border:none;padding:0;}
.gate-card h2 strong{font-weight:700;}

.gate-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;}
@media (max-width:600px){.gate-fields{grid-template-columns:1fr;}}
.gate-f{display:flex;flex-direction:column;gap:6px;}
.gate-f > span{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#8A8A8E;}
.gate-f input{width:100%;font-family:inherit;font-size:15px;color:#fff;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  border-radius:10px;padding:13px 14px;transition:all .14s;}
.gate-f input::placeholder{color:#6E6E73;}
.gate-f input:focus{outline:none;background:rgba(255,255,255,.13);border-color:var(--or);
  box-shadow:0 0 0 3px rgba(255,128,0,.22);}
.gate-f input.bad{border-color:var(--re);background:rgba(255,59,48,.12);}

.gate-go{width:100%;font-family:inherit;font-size:16px;font-weight:650;color:#fff;
  background:var(--or);border:none;border-radius:11px;padding:16px;cursor:pointer;
  transition:all .16s;box-shadow:0 3px 16px rgba(255,128,0,.34);}
.gate-go:hover{background:#FF9226;transform:translateY(-1px);
  box-shadow:0 6px 24px rgba(255,128,0,.44);}
.gate-go:focus-visible{outline:2px solid #fff;outline-offset:3px;}
.gate-err{margin-top:12px;font-size:13px;font-weight:600;color:#FF9F97;}
.gate-err[hidden]{display:none;}

.gate-alt{background:#fff;border:1px solid var(--bd);border-radius:13px;
  padding:17px 20px;font-size:14px;color:var(--mid);line-height:1.55;}
.gate-alt b{color:var(--bk);font-weight:650;}
.gate-alt a{color:var(--or);font-weight:650;}
.gate-alt a:hover{text-decoration:underline;}
.gate-alt span{display:block;font-size:12.5px;color:var(--sub);margin-top:3px;}

.gate-note{margin-top:22px;font-size:12px;color:var(--sub);line-height:1.55;text-align:center;}
.gate-note b{color:var(--mid);font-weight:650;}

@media (max-width:560px){
  .gate{padding:32px 18px 48px;}
  .gate-stats{grid-template-columns:1fr;}
  .gate-card{padding:26px 22px;}
}

/* ── welcome line on the landing page ─────────────────────────── */
.welcome{font-size:15px;font-weight:300;color:var(--sub);margin-bottom:10px;}
.welcome b{color:var(--bk);font-weight:650;}
.welcome[hidden]{display:none;}

/* ── register-another CTA on a confirmation ───────────────────── */
.again{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px;
  padding-top:22px;border-top:1px solid var(--bd);}
.again-btn{background:var(--or);color:#fff;font-size:15.5px;font-weight:650;
  border-radius:11px;padding:15px 28px;display:inline-flex;align-items:center;gap:9px;
  transition:all .16s;box-shadow:0 3px 16px rgba(255,128,0,.32);}
.again-btn:hover{background:#FF9226;transform:translateY(-2px);
  box-shadow:0 7px 26px rgba(255,128,0,.42);}
.again-btn:focus-visible{outline:2px solid var(--bk);outline-offset:3px;}
.again-sub{font-size:13px;color:var(--sub);line-height:1.5;}

/* only shown on the access request while signed out, where there is no nav */
.gate-back{display:none;margin-bottom:18px;}
[data-auth="req"] .gate-back{display:block;}
.gate-back a{font-size:13.5px;font-weight:650;color:var(--or);}
.gate-back a:hover{text-decoration:underline;}

/* ══════════════════════════════════════════════════════════════
   DEAL-REGISTRATION CONFIRMATION
   The screen exists to get the intake form filled in, so the receipt is a
   single line and the form starts above the fold.
   ══════════════════════════════════════════════════════════════ */
.done-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px;}
.done-top .status-ok{flex:1;min-width:260px;margin-bottom:0;}
.again-top{white-space:nowrap;padding:12px 20px;font-size:14px;}
.done-stub{font-size:12.5px;color:var(--sub);line-height:1.55;margin-bottom:22px;}
.done-stub strong{color:var(--mid);font-weight:650;}

/* ── THE CONFIRMATION ─────────────────────────────────────────
   One tick, one line under it, and the thing to do next. Nothing else: the
   receipt is not the place to re-explain the process. */
.done-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px;}
.done-head .done-tick{flex-shrink:0;margin:1px 0 0;}
.form-done .done-head h2{margin:0 0 6px;}
.done-lede{font-size:15px;color:var(--mid);line-height:1.6;margin:0;}

.done-handoff{margin-top:4px;}

/* Which set of next steps this instance shows. The intake renders in two
   places and the audiences are different people. */
.done-client-intake .only-deal{display:none;}
.done-deal-intake .only-client{display:none;}

/* The old treatment washed the whole block in pale orange, which read as a
   warning rather than the main event. Dark header, ordinary body: the header
   carries the urgency and the fields stay legible. */
.intake-wrap{border-radius:18px;overflow:hidden;box-shadow:var(--sh2);
  border:1px solid var(--bd);margin-bottom:26px;}

.intake-head{position:relative;overflow:hidden;background:var(--bk);padding:30px 32px 26px;}
.intake-head::after{content:'';position:absolute;right:-80px;top:-90px;width:300px;height:300px;
  border-radius:50%;background:radial-gradient(circle,rgba(255,128,0,.32),transparent 68%);
  pointer-events:none;}
.intake-head > *{position:relative;z-index:2;}
.intake-k{font-size:10.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--or);margin-bottom:12px;}
.intake-head h3{font-size:clamp(26px,3.6vw,36px);font-weight:200;letter-spacing:-1.5px;
  color:#fff;line-height:1.1;margin:0 0 14px;text-wrap:balance;}
.intake-head h3 strong{font-weight:700;}
.intake-head p{font-size:15px;color:#A1A1A6;line-height:1.6;margin:0;max-width:62ch;}
.intake-head p strong{color:#fff;font-weight:650;}
.intake-facts{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;}
.intake-facts span{font-size:11.5px;font-weight:600;color:#FFB35C;
  background:rgba(255,128,0,.14);border:1px solid rgba(255,128,0,.3);
  border-radius:20px;padding:5px 12px;}

/* --bg behind the white field cards, so they read as cards rather than
   dissolving into the white confirmation panel */
.intake-body{background:var(--bg);padding:24px 22px 8px;}
.intake-body .form-actions{background:linear-gradient(transparent,var(--bg) 22%);}
.intake-body .fset{box-shadow:0 1px 2px rgba(0,0,0,.04);}
@media (max-width:620px){
  .intake-head{padding:24px 20px 22px;}
  .intake-body{padding:18px 14px 4px;}
  .again-top{width:100%;justify-content:center;}
}

/* an optional field says so, rather than just lacking the required asterisk */
.opt{font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sub);background:var(--bg);border:1px solid var(--bd);border-radius:20px;
  padding:2px 9px;margin-left:8px;vertical-align:middle;}

/* A nested confirmation is shown on its own (see solo() in forms.js). Every
   wrapper between it and the outermost panel drops its card styling, so the
   thanks note is one panel rather than three concentric empty ones. */
[data-solo-flat]{background:none !important;border:none !important;
  box-shadow:none !important;padding:0 !important;margin:0 !important;
  border-radius:0 !important;overflow:visible !important;}

/* ══════════════════════════════════════════════════════════════
   ADMIN: the cross-partner deal report
   ══════════════════════════════════════════════════════════════ */

/* The whole bundle ships to partners too, so the nav group and the page are
   hidden by CSS rather than left out of the build. Presentation only: the
   data it would show is already on the device either way. */
html:not([data-role="admin"]) .admin-only{display:none;}
.admin-denied{display:none;max-width:640px;}
html[data-auth="denied"] .admin-denied{display:block;}
html[data-auth="denied"] .admin-page{display:none;}
.admin-denied h1{font-size:clamp(28px,3.4vw,40px);font-weight:200;letter-spacing:-1.6px;
  line-height:1.1;margin-bottom:14px;}
.admin-denied h1 strong{font-weight:700;}
.admin-denied p{font-size:15px;color:var(--sub);line-height:1.6;}
.admin-denied a{color:var(--or);font-weight:600;}

.admin-page{max-width:1180px;}
.admin-stub{display:flex;gap:11px;align-items:flex-start;background:#F5F9FF;
  border:1px solid rgba(0,122,255,.25);border-radius:11px;padding:14px 16px;
  margin-bottom:22px;font-size:13px;color:var(--mid);line-height:1.55;}
.admin-stub b{color:var(--bk);}

.admin-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px;margin-bottom:18px;}
.admin-tile{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:14px 16px;
  box-shadow:var(--sh);}
.admin-tile-k{display:block;font-size:10px;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:var(--sub);margin-bottom:6px;}
.admin-tile b{display:block;font-size:22px;font-weight:650;letter-spacing:-.7px;
  font-variant-numeric:tabular-nums;line-height:1.1;}
.admin-tile-n{display:block;font-size:11.5px;color:var(--sub);margin-top:3px;line-height:1.4;}

.admin-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;}
.admin-search{position:relative;flex:1;min-width:260px;}
.admin-search input{width:100%;font-family:inherit;font-size:13.5px;color:var(--bk);
  background:#fff;border:1px solid var(--bd);border-radius:10px;padding:11px 13px 11px 36px;
  transition:box-shadow .15s,border-color .15s;}
.admin-search input:focus{outline:none;border-color:var(--or);
  box-shadow:0 0 0 3px rgba(255,128,0,.15);}
.admin-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);
  width:15px;height:15px;stroke:var(--sub);pointer-events:none;}
.admin-bar-acts{display:flex;gap:8px;align-items:center;}
.btn-sm{font-size:13px;padding:9px 15px;border-radius:9px;}

.admin-menu{position:relative;}
.admin-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:90;background:#fff;
  border:1px solid var(--bd);border-radius:12px;box-shadow:var(--sh2);padding:7px;
  min-width:210px;max-height:330px;overflow-y:auto;}
.admin-copt{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;
  font-size:13.5px;color:var(--mid);cursor:pointer;}
.admin-copt:hover{background:var(--bg);}
.admin-copt.fixed{opacity:.55;cursor:default;}
.admin-copt input{accent-color:var(--or);width:15px;height:15px;cursor:pointer;}

.admin-count{font-size:12.5px;color:var(--sub);margin-bottom:9px;}
.admin-count b{color:var(--bk);font-weight:700;}

.admin-tw{overflow-x:auto;background:#fff;border:1px solid var(--bd);border-radius:12px;
  box-shadow:var(--sh);}
.admin-table{width:100%;border-collapse:collapse;font-size:13px;min-width:760px;}
/* top:0, not the 60px that clears the page's topbar. .admin-tw sets
   overflow-x:auto, and a non-visible value on one axis computes the other to
   auto too, so the wrapper is itself the scroll container this sticks to. An
   offset here pushes the header down *inside* the table and parks it on top of
   the first rows, which then stop taking clicks. */
.admin-table thead th{position:sticky;top:0;z-index:5;background:#FAFAFB;text-align:left;
  font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--sub);
  padding:11px 14px;border-bottom:1px solid var(--bd);white-space:nowrap;cursor:pointer;
  user-select:none;}
.admin-table thead th:hover{color:var(--bk);}
.admin-table thead th.sorted{color:var(--or);}
.admin-table thead th:focus-visible{outline:2px solid var(--or);outline-offset:-2px;}
.admin-caret{font-style:normal;font-size:8px;margin-left:5px;}
.admin-table th.admin-x,.admin-table td.admin-x{width:34px;padding-left:10px;padding-right:0;
  cursor:default;}

.admin-table tbody td{padding:11px 14px;border-bottom:1px solid var(--bd);color:var(--mid);
  vertical-align:middle;line-height:1.45;}
.admin-table tbody td.num{font-variant-numeric:tabular-nums;white-space:nowrap;}
/* The header is sticky, so a row scrolled exactly to the top of the viewport
   lands underneath it and stops taking clicks. scroll-margin keeps whatever
   scrolled a row into view from parking it there. */
.admin-row{cursor:pointer;transition:background .1s;scroll-margin-top:132px;}
.admin-row:hover{background:#FCFCFD;}
.admin-row.open{background:#FFF8F1;}
.admin-row td b{color:var(--bk);font-weight:650;}
.admin-toggle{width:22px;height:22px;border-radius:6px;border:1px solid var(--bd);
  background:#fff;color:var(--sub);font-size:13px;line-height:1;cursor:pointer;
  font-family:inherit;display:grid;place-items:center;}
.admin-row.open .admin-toggle{background:var(--or);border-color:var(--or);color:#fff;}

.admin-demo,.admin-orphan{display:inline-block;margin-left:7px;font-size:9.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:5px;
  vertical-align:middle;}
/* grey, not blue: blue now means "awaiting a decision" in the status column,
   and a badge in the same colour alongside it invites the wrong reading */
.admin-demo{background:rgba(0,0,0,.06);color:var(--sub);}
.admin-orphan{background:rgba(255,128,0,.14);color:#B35A00;}

/* Three states, three readings: green is accepted, blue is still waiting on a
   decision from us, red is one we turned down. Blue rather than amber for the
   waiting state, so "we have not looked at it yet" does not read as a warning
   about the deal itself. Each pairs a tinted pill with a distinct label, so the
   colour is reinforcement rather than the only carrier of the meaning. */
td.st{white-space:nowrap;}
td.st span{display:inline-block;font-weight:650;font-size:11.5px;line-height:1;
  padding:5px 10px;border-radius:20px;border:1px solid transparent;}
td.st-ok span{color:#157A34;background:rgba(52,199,89,.14);
  border-color:rgba(52,199,89,.32);}
td.st-wait span{color:#0058B8;background:rgba(0,122,255,.11);
  border-color:rgba(0,122,255,.28);}
td.st-no span{color:#B3271D;background:rgba(255,59,48,.11);
  border-color:rgba(255,59,48,.28);}

.admin-detail td{background:var(--bg);padding:18px 20px 20px 48px;}
.admin-detail-h{display:flex;align-items:baseline;gap:9px;margin:0 0 10px;}
.admin-detail-h:not(:first-child){margin-top:20px;padding-top:16px;
  border-top:1px solid var(--bd);}
.admin-detail-h b{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--bk);}
.admin-detail-h span{font-size:12px;color:var(--sub);}
.admin-kvs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 20px;}
.admin-kv{display:flex;flex-direction:column;gap:2px;min-width:0;}
.admin-kv span{font-size:11px;font-weight:600;color:var(--sub);}
.admin-kv b{font-size:13px;font-weight:500;color:var(--bk);line-height:1.5;
  overflow-wrap:anywhere;}
.admin-none{font-size:13px;color:var(--sub);}

.admin-empty{background:#fff;border:1px dashed var(--bd);border-radius:12px;padding:34px;
  text-align:center;margin-top:12px;}
.admin-empty b{display:block;font-size:14.5px;margin-bottom:4px;}
.admin-empty span{font-size:13px;color:var(--sub);}


/* ══════════════════════════════════════════════════════════════
   FIT CHECK
   ══════════════════════════════════════════════════════════════ */

/* ── the entry point, on the landing page ─────────────────────
   One button, sitting in the white space beside the headline. It is a
   different kind of action from the black CTA below it — a question you ask
   before you commit — so it reads as a control rather than a second pitch. */
.hero-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;
  align-items:end;}
.hero-copy{min-width:0;}
.fitbtn{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;
  background:var(--bk);color:#fff;font-size:15px;font-weight:650;letter-spacing:-.2px;
  border-radius:12px;padding:15px 26px;margin-bottom:6px;transition:all .16s;
  box-shadow:0 2px 12px rgba(0,0,0,.16);}
.fitbtn:hover{background:#000;transform:translateY(-2px);
  box-shadow:0 7px 22px rgba(0,0,0,.24);}
.fitbtn:focus-visible{outline:2px solid var(--or);outline-offset:3px;}
/* the live dot: the one flourish, and it says "this reads something" */
.fitbtn-dot{width:8px;height:8px;border-radius:50%;background:var(--or);flex-shrink:0;
  box-shadow:0 0 0 4px rgba(255,128,0,.22);}
@media (max-width:820px){
  .hero-row{grid-template-columns:1fr;align-items:start;}
  .fitbtn{width:100%;justify-content:center;margin-bottom:0;}
}
@media (prefers-reduced-motion:reduce){.fitbtn:hover{transform:none;}}

/* ── the page ─────────────────────────────────────────────────── */
.fc-page{max-width:900px;}

/* The header carries the black-to-orange treatment the landing CTA and the
   calculator already use, so the tool belongs to the portal at a glance. The
   work happens on light cards below it — dark is for the statement, not for
   the form. */
.fc-head{position:relative;overflow:hidden;background:var(--bk);border-radius:18px;
  padding:34px 36px 32px;margin-bottom:16px;}
.fc-head::after{content:'';position:absolute;right:-90px;top:-100px;width:340px;height:340px;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,128,0,.3),transparent 68%);}
.fc-head > *{position:relative;z-index:2;}
.fc-head-k{display:inline-flex;align-items:center;gap:8px;font-size:10.5px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--or);margin-bottom:14px;}
.fc-head-k::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--or);
  box-shadow:0 0 0 4px rgba(255,128,0,.22);}
.fc-head h1{font-size:clamp(28px,3.6vw,44px);font-weight:200;letter-spacing:-1.9px;
  line-height:1.06;color:#fff;margin:0 0 14px;text-wrap:balance;}
.fc-head h1 strong{font-weight:700;}
.fc-head p{font-size:15.5px;color:#A1A1A6;line-height:1.65;margin:0;max-width:66ch;}
@media (max-width:620px){.fc-head{padding:26px 20px 24px;}}

.fc-card{background:#fff;border:1px solid var(--bd);border-radius:14px;padding:24px;
  margin-bottom:14px;box-shadow:var(--sh);}
.fc-card-h{display:flex;align-items:baseline;gap:11px;margin-bottom:5px;}
.fc-card-h h2{font-size:18px;font-weight:650;letter-spacing:-.4px;margin:0;border:none;
  padding:0;}
.fc-card-sub{font-size:14px;color:var(--sub);line-height:1.6;margin:0 0 18px;max-width:66ch;}

/* ── the paste box ────────────────────────────────────────────── */
.field textarea.fc-text{width:100%;min-height:340px;font-family:inherit;font-size:14.5px;line-height:1.6;
  color:var(--bk);background:var(--bg);border:1px solid transparent;border-radius:11px;
  padding:15px 16px;resize:vertical;transition:all .14s;}
.field textarea.fc-text::placeholder{color:#A1A1A6;}
.field textarea.fc-text:focus{outline:none;background:#fff;border-color:var(--or);
  box-shadow:0 0 0 3px rgba(255,128,0,.15);}
.fc-meter{display:flex;align-items:center;justify-content:space-between;gap:12px;
  flex-wrap:wrap;margin-top:9px;font-size:12.5px;color:var(--sub);
  font-variant-numeric:tabular-nums;}
.fc-link{font-family:inherit;font-size:12.5px;font-weight:650;color:var(--or);background:none;
  border:none;cursor:pointer;padding:2px 0;}
.fc-link:hover{text-decoration:underline;}
.fc-link:focus-visible{outline:2px solid var(--or);outline-offset:2px;border-radius:4px;}

/* ── the drop zone ────────────────────────────────────────────── */
.fc-drop{display:flex;align-items:center;gap:15px;margin-top:16px;padding:16px 18px;
  background:var(--bg);border:1.5px dashed rgba(0,0,0,.14);border-radius:12px;
  transition:all .14s;}
.fc-drop.on{border-color:var(--or);background:#FFF6EC;}
.fc-drop svg{width:26px;height:26px;flex-shrink:0;color:var(--sub);}
.fc-drop.on svg{color:var(--or);}
.fc-drop > div{flex:1;min-width:0;}
.fc-drop b{display:block;font-size:14px;font-weight:650;color:var(--bk);margin-bottom:2px;}
.fc-drop span{font-size:12.5px;color:var(--sub);line-height:1.5;}
.fc-drop .btn{flex-shrink:0;}
@media (max-width:620px){
  .fc-drop{flex-direction:column;align-items:flex-start;}
  .fc-drop .btn{width:100%;justify-content:center;}
}

.fc-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.fc-files:empty{display:none;}
.fc-file{display:inline-flex;align-items:center;gap:8px;background:#EDFBF0;
  border:1px solid rgba(52,199,89,.4);border-radius:20px;padding:6px 8px 6px 13px;
  font-size:12.5px;max-width:100%;}
.fc-file b{font-weight:650;color:#157A34;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;max-width:22ch;}
.fc-file i{font-style:normal;color:#1E9E44;font-variant-numeric:tabular-nums;}
.fc-file button{width:19px;height:19px;flex-shrink:0;border:none;border-radius:50%;
  background:rgba(0,0,0,.07);color:var(--mid);font-family:inherit;font-size:14px;line-height:1;
  cursor:pointer;display:grid;place-items:center;}
.fc-file button:hover{background:rgba(0,0,0,.14);}
.fc-file.is-bad{background:#FFF5F5;border-color:rgba(255,59,48,.35);}
.fc-file.is-bad b{color:#B3271D;}
.fc-file.is-bad i{color:var(--re);}

/* the billing question, in the panel: still the most consequential thing on
   the page, so it gets a rule and a little air rather than blending into the
   fields under it */

/* ── the optional detail, folded away ─────────────────────────── */
.fc-more{padding:0;}
.fc-more summary{list-style:none;cursor:pointer;padding:18px 46px 18px 24px;position:relative;}
.fc-more summary::-webkit-details-marker{display:none;}
.fc-more summary b{display:block;font-size:15.5px;font-weight:650;color:var(--bk);
  margin-bottom:2px;}
.fc-more summary span{font-size:13px;color:var(--sub);}
.fc-more summary::after{content:'';position:absolute;right:24px;top:24px;width:8px;height:8px;
  border-right:2px solid var(--sub);border-bottom:2px solid var(--sub);transform:rotate(45deg);
  transition:transform .18s;}
.fc-more[open] summary::after{transform:rotate(-135deg);top:27px;}
.fc-more[open] summary{border-bottom:1px solid var(--bd);}
.fc-more summary:hover b{color:var(--or);}
.fc-more-body{padding:22px 24px 24px;}

/* ── the score panel ──────────────────────────────────────────── */
.fc-score{position:relative;overflow:hidden;background:var(--bk);border-radius:18px;
  padding:32px 34px;margin-bottom:14px;}
.fc-score::after{content:'';position:absolute;right:-80px;top:-90px;width:320px;height:320px;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,128,0,.3),transparent 68%);}
.fc-score > *{position:relative;z-index:2;}
.fc-score-top{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
/* Out of 100 a bare figure is hard to place at a glance, so the arc does the
   placing: a conic gradient to --pct, masked into a ring. The mask has to sit
   on its own layer, or it would punch the figure out of the middle too. Where
   mask-image is unsupported the arc becomes a filled disc behind the number,
   which still reads. */
.fc-ring{--pct:0;--ring:var(--or);position:relative;flex-shrink:0;
  width:132px;height:132px;display:grid;place-items:center;}
.fc-ring-arc{position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(var(--ring) calc(var(--pct) * 1%), rgba(255,255,255,.12) 0);
  -webkit-mask:radial-gradient(circle,transparent 0 54%,#000 55%);
          mask:radial-gradient(circle,transparent 0 54%,#000 55%);}
.fc-ring-in{position:relative;display:flex;align-items:baseline;gap:2px;line-height:1;}
.fc-ring-in b{font-size:42px;font-weight:250;letter-spacing:-2px;color:#fff;
  font-variant-numeric:tabular-nums;}
.fc-ring-in span{font-size:13px;font-weight:400;color:#8A8A8E;}
.fc-band-mid .fc-ring{--ring:#FFB35C;}
.fc-band-low .fc-ring{--ring:#8A8A8E;}
@media (max-width:620px){.fc-ring{width:108px;height:108px;}
  .fc-ring-in b{font-size:34px;}}

.fc-score-copy{min-width:0;flex:1;}
.fc-score-k{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--or);margin-bottom:9px;}
.fc-score-copy h2{font-size:clamp(24px,3vw,32px);font-weight:200;letter-spacing:-1.3px;
  color:#fff;line-height:1.12;margin:0;border:none;padding:0;text-wrap:balance;}
.fc-score-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px;}
.fc-score-meta span{font-size:11.5px;font-weight:600;color:#C7C7CC;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  border-radius:20px;padding:4px 11px;}
.fc-conf{color:#FFB35C !important;background:rgba(255,128,0,.14) !important;
  border-color:rgba(255,128,0,.3) !important;}
.fc-conf-high{color:#7BE29A !important;background:rgba(52,199,89,.15) !important;
  border-color:rgba(52,199,89,.32) !important;}
.fc-synopsis{font-size:15.5px;color:#C7C7CC;line-height:1.65;margin:22px 0 0;
  padding-top:18px;border-top:1px solid rgba(255,255,255,.12);max-width:72ch;}
.fc-synopsis strong,.fc-synopsis b{color:#fff;font-weight:650;}
.fc-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;}
.fc-chip{font-size:11px;font-weight:650;color:#fff;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:4px 9px;}
@media (max-width:620px){
  .fc-score{padding:24px 20px;}
  .fc-score-top{gap:16px;}
}

/* ── worth pursuing? ──────────────────────────────────────────
   The answer a partner actually came for, so it sits inside the score panel
   under the synopsis rather than somewhere further down. */
.fc-verdict{margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);
  max-width:74ch;}
.fc-verdict-q{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--or);margin-bottom:8px;}
.fc-verdict b{display:block;font-size:19px;font-weight:650;letter-spacing:-.4px;color:#fff;
  margin-bottom:5px;}
.fc-verdict span{display:block;font-size:14px;color:#A1A1A6;line-height:1.6;}
.fc-verdict-warn b{color:#FFB35C;}
.fc-verdict-no b{color:#FF9F97;}

/* ── what Trimio could do for them ────────────────────────────
   Seven capabilities and a size check, each ticked, crossed or queried. Six
   of them turn on the same fact, which is the point: a partner sees why the
   billing model decides everything without reading a rubric. */

/* ── how their AI is billed ───────────────────────────────────
   The verdict the score mostly rests on, so it sits directly under the score
   and is colour-coded three ways: reachable, needs settling, not reachable. */

/* the chips live on light here, not on the dark score panel */


/* ── why it works / what to check ─────────────────────────────── */
.fc-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;
  /* start, not stretch: a column with one reason in it should not draw a
     half-empty panel to match the height of the column beside it. */
  align-items:start;}
@media (max-width:820px){.fc-cols{grid-template-columns:1fr;}}
.fc-col{background:#fff;border:1px solid var(--bd);border-radius:14px;padding:22px 24px;
  box-shadow:var(--sh);}
.fc-col h3{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sub);margin:0 0 15px;}
.fc-col ul{list-style:none;margin:0;padding:0;}
.fc-col-fit{border-color:rgba(52,199,89,.3);background:#F8FDF9;}
.fc-col-fit h3{color:#157A34;}
.fc-col-watch{border-color:rgba(255,128,0,.3);background:#FFFBF6;}
.fc-col-watch h3{color:#B35A00;}

.fc-reason{position:relative;padding:0 0 14px 26px;margin-bottom:14px;
  border-bottom:1px solid var(--bd);}
.fc-reason:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.fc-reason::before{position:absolute;left:0;top:1px;font-size:14px;font-weight:700;}
.fc-col-fit .fc-reason::before{content:'✓';color:#157A34;}
.fc-col-watch .fc-reason::before{content:'?';color:#B35A00;}
.fc-reason > b{display:block;font-size:14px;font-weight:650;color:var(--bk);margin-bottom:3px;
  letter-spacing:-.2px;}
.fc-reason span b{color:var(--bk);font-weight:700;}
.fc-reason span{display:block;font-size:13.5px;color:var(--mid);line-height:1.55;}
.fc-reason q{display:block;font-size:12.5px;color:var(--sub);font-style:italic;
  line-height:1.5;margin-top:8px;padding-left:11px;border-left:2px solid rgba(255,128,0,.45);}
.fc-reason q::before,.fc-reason q::after{content:'';}
.fc-reason-none::before{content:'' !important;}
.fc-reason-none{padding-left:0;}
/* the billing verdict rows carry their chips inline, so the two columns say
   what Trimio can and cannot reach without a third panel above them */
.fc-reason-chips{display:flex !important;flex-wrap:wrap;gap:6px;margin-top:9px;}
.fc-col-fit .fc-reason-chips .fc-chip{background:#EAF8EE;border-color:rgba(52,199,89,.45);
  color:#0F5F28;}
.fc-col-watch .fc-reason-chips .fc-chip{background:#FDF1EF;border-color:rgba(255,59,48,.3);
  color:#8F1F17;}
.fc-reason-notes{display:block !important;margin-top:10px;padding-top:9px;
  border-top:1px solid var(--bd);}
.fc-reason-notes i{display:block;font-style:normal;font-size:10px;font-weight:700;
  letter-spacing:.11em;text-transform:uppercase;color:var(--sub);margin-bottom:6px;}
.fc-reason-notes em{display:block;font-style:normal;font-size:12.5px;color:var(--sub);
  line-height:1.5;margin-bottom:7px;}
.fc-reason-notes em:last-child{margin-bottom:0;}
.fc-reason-notes em b{color:var(--bk);font-weight:650;}
.fc-reason-ask{margin-top:10px;padding-top:9px;font-size:12.5px !important;
  border-top:1px solid var(--bd);color:var(--sub) !important;}
.fc-reason-ask q{display:inline !important;margin:0 !important;padding:0 !important;
  border:none !important;color:var(--bk) !important;font-style:italic;}
.fc-reason-ask q::before{content:'\201C';}
.fc-reason-ask q::after{content:'\201D' ' ';}

/* ── worth the meeting anyway ─────────────────────────────────
   Green, and it sits between the two columns and the swing factor: the case
   for going, next to the case against, so a low number never speaks for
   itself. */
.fc-still{background:#F1FAF3;border:1px solid rgba(52,199,89,.32);border-radius:14px;
  padding:22px 24px;margin-bottom:14px;}
.fc-still-k{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:#0F5F28;margin-bottom:8px;}
.fc-still-lede{font-size:14px;color:var(--mid);line-height:1.6;margin:0 0 16px;max-width:74ch;}
.fc-still ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.fc-still li{position:relative;padding-left:26px;}
.fc-still li::before{content:'\2192';position:absolute;left:1px;top:1px;font-size:15px;
  line-height:1.5;font-weight:700;color:#157A34;}
.fc-still li b{display:block;font-size:14.5px;font-weight:650;color:var(--bk);
  letter-spacing:-.2px;margin-bottom:3px;}
.fc-still li span{display:block;font-size:13.5px;color:var(--mid);line-height:1.55;}

/* ── the swing factor ─────────────────────────────────────────── */
.fc-swing{background:#FFF6EC;border:1px solid rgba(255,128,0,.35);border-radius:14px;
  padding:20px 24px;margin-bottom:14px;}
.fc-swing-k{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:#B35A00;margin-bottom:8px;}
.fc-swing p{font-size:14.5px;color:var(--mid);line-height:1.6;margin:0;max-width:74ch;}
.fc-swing b{color:var(--bk);font-weight:700;}

/* ── the three questions ──────────────────────────────────────── */
.fc-qs .fc-card-sub{margin-bottom:14px;}
.fc-qlist{list-style:none;counter-reset:fq;margin:0;padding:0;}
.fc-qlist li{counter-increment:fq;position:relative;padding:14px 0 14px 42px;
  border-top:1px solid var(--bd);font-size:15px;color:var(--bk);line-height:1.5;
  text-wrap:pretty;}
.fc-qlist li::before{content:counter(fq);position:absolute;left:0;top:13px;width:26px;
  height:26px;border-radius:50%;border:1px solid rgba(255,128,0,.5);color:var(--or);
  font-size:12px;font-weight:700;display:grid;place-items:center;
  font-variant-numeric:tabular-nums;}

/* ── what it is worth ─────────────────────────────────────────── */

/* ── how it scored ────────────────────────────────────────────── */
@media (max-width:620px){
}

/* The report carries its own back button, which goes back to the check
   rather than back a page. Two stacked back buttons is one too many. */
body.fc-report-open #backBtn{display:none;}

/* ── actions under the report ─────────────────────────────────── */
.fc-acts{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:22px 0 4px;}
.fc-back{display:inline-block;margin-bottom:20px;}
.fc-foot{margin-top:18px;}

/* ── saved checks ─────────────────────────────────────────────── */
/* a shorter header for the saved-reports view: it is a list, not a pitch */
.fc-head-sm{padding:26px 30px 24px;}
.fc-head-sm h1{font-size:clamp(24px,2.8vw,34px);letter-spacing:-1.4px;}
.fc-head-sm p{font-size:14.5px;}

.fc-saved-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-bottom:12px;}
.fc-saved-bar span{font-size:12.5px;color:var(--sub);font-variant-numeric:tabular-nums;}
.fc-saved-empty{background:#fff;border:1px dashed var(--bd);border-radius:14px;padding:38px 24px;
  text-align:center;}
.fc-saved-empty b{display:block;font-size:15px;color:var(--bk);margin-bottom:5px;}
.fc-saved-empty span{font-size:13.5px;color:var(--sub);}
.fc-saved-empty strong{color:var(--bk);font-weight:650;}
.fc-saved-list{display:grid;gap:8px;}
.fc-saved-row{display:flex;align-items:center;gap:14px;background:#fff;
  border:1px solid var(--bd);border-radius:12px;padding:12px 16px;box-shadow:var(--sh);
  cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease;}
.fc-saved-row:hover{border-color:rgba(255,128,0,.55);box-shadow:0 3px 10px rgba(0,0,0,.07);}
.fc-saved-row:hover .fc-saved-id b{color:#A34D00;}
.fc-saved-row:active{transform:translateY(1px);}
.fc-saved-row:focus-visible{outline:2px solid var(--or);outline-offset:2px;}
/* the row is the click target; the buttons inside keep their own cursors */
.fc-saved-acts button{cursor:pointer;}
/* while a name is being renamed the row is a form, not a button */
.fc-saved-row.is-editing{cursor:default;border-color:rgba(255,128,0,.6);
  box-shadow:0 0 0 3px rgba(255,128,0,.12);}
.fc-saved-row.is-editing:hover .fc-saved-id b{color:var(--bk);}
.fc-saved-edit{width:100%;font:inherit;font-size:14.5px;font-weight:650;color:var(--bk);
  letter-spacing:-.2px;padding:3px 8px;margin:-3px 0;border:1px solid var(--bd);
  border-radius:7px;background:#fff;}
.fc-saved-edit:focus{outline:none;border-color:var(--or);}
.fc-saved-score{width:56px;height:44px;flex-shrink:0;border-radius:11px;display:flex;
  align-items:baseline;justify-content:center;gap:1px;font-size:19px;font-weight:700;
  letter-spacing:-.5px;font-variant-numeric:tabular-nums;background:var(--or);color:#fff;
  padding-top:10px;}
.fc-saved-score i{font-style:normal;font-size:10px;font-weight:600;opacity:.75;}
.fc-saved-score.fc-band-mid{background:#FFF6EC;color:#A34D00;
  box-shadow:inset 0 0 0 1px rgba(255,128,0,.5);}
.fc-saved-score.fc-band-low{background:var(--bg);color:var(--sub);}
.fc-saved-id{flex:1;min-width:0;}
.fc-saved-id b{display:block;font-size:14.5px;font-weight:650;color:var(--bk);
  letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fc-saved-id span{display:block;font-size:12px;color:var(--sub);margin-top:2px;}
.fc-saved-acts{display:flex;align-items:center;gap:14px;flex-shrink:0;}
/* Edit is routine, Delete is not: only one of them gets the accent colour */
.fc-saved-acts [data-edit]{color:var(--sub);}
.fc-saved-acts [data-edit]:hover{color:var(--bk);}
@media (max-width:620px){
  .fc-saved-row{flex-wrap:wrap;}
  .fc-saved-acts{width:100%;justify-content:flex-end;}
}

/* ── print: the report, and nothing else ──────────────────────── */
@media print{
  .fc-acts,.fc-back,.fc-foot{display:none !important;}
  .fc-score{background:#fff !important;color:var(--bk);border:1px solid #ddd;}
  .fc-score::after{display:none;}
  .fc-score-copy h2,.fc-synopsis{color:var(--bk) !important;}
  .fc-score-meta span,.fc-chip{color:var(--mid) !important;background:#f5f5f7 !important;
    border-color:#ddd !important;}
  .fc-verdict b{color:var(--bk) !important;}
  .fc-verdict span{color:var(--mid) !important;}
  .fc-ring-in b{color:var(--bk) !important;}
  .fc-ring-arc{filter:none;}
}

/* a saved fit-check score, riding along on the deal it belongs to */
.dt-fit{background:#FFF6EC;color:#B35A00;margin-left:5px;}

/* a sub-entry in the sidebar: a view of the page above it, not a page */
.side-sub{padding-left:22px;font-size:13px;color:var(--sub);}
.side-sub .side-num{font-size:10px;}
/* .side-link is display:flex, which outranks the UA rule for [hidden] */
.side-link[hidden]{display:none;}

/* ══════════════════════════════════════════════════════════════
   SAVINGS PROJECTION

   A demo instance of the product's own overview screen, so it is
   deliberately lighter than the rest of the portal: cards on grey,
   green for saved, orange for what they still pay. The black/orange
   panel does not appear here on purpose — this page is meant to look
   like Trimio, not like the portal wrapped around it.
   ═══════════════════════════════════════════════════════════════ */
.sv-page{max-width:1080px;}

/* ── inputs ───────────────────────────────────────────────────── */
.sv-controls{display:grid;grid-template-columns:.85fr 1.15fr;gap:14px;margin-bottom:22px;}
/* Both cards carry the same three parts — a label row with its value on the
   right, the control, then a hint under a divider — so they read as a matched
   pair rather than one full card next to one mostly-empty one.

   They also carry the portal's black-and-orange treatment, and deliberately
   share *one* glow rather than one each: two corner glows side by side
   compete, while a single sweep from the right edge makes the pair read as
   one band across the top of the page. */
.sv-ctl{position:relative;overflow:hidden;background:var(--bk);border:1px solid transparent;
  border-radius:16px;padding:22px 24px;box-shadow:var(--sh);display:flex;flex-direction:column;}
.sv-ctl > *{position:relative;z-index:2;}
.sv-ctl-rate::after{content:'';position:absolute;right:-90px;top:-100px;width:340px;height:340px;
  border-radius:50%;pointer-events:none;z-index:1;
  background:radial-gradient(circle,rgba(255,128,0,.34),transparent 68%);}
.sv-ctl .sv-hint{margin-top:auto;}
.sv-ctl .sv-label{color:#8A8A8E;}
.sv-label{display:flex;align-items:baseline;justify-content:space-between;font-size:10px;
  font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--sub);
  margin-bottom:12px;}
.sv-label b{font-size:19px;font-weight:650;letter-spacing:-.5px;color:var(--or);
  text-transform:none;font-variant-numeric:tabular-nums;}

.sv-readout{display:flex;align-items:baseline;gap:6px;border:1.5px solid rgba(255,255,255,.16);
  border-radius:12px;padding:14px 18px;background:rgba(255,255,255,.05);cursor:text;
  transition:border-color .13s,background .13s,box-shadow .13s;}
.sv-readout:hover{border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.09);}
.sv-readout:focus-within{background:rgba(255,255,255,.08);border-color:var(--or);
  box-shadow:0 0 0 3px rgba(255,128,0,.2);}
.sv-cur{font-size:26px;font-weight:600;color:#8A8A8E;}
.sv-readout:focus-within .sv-cur{color:var(--or);}
.sv-num{font-family:inherit;font-size:40px;font-weight:650;letter-spacing:-1.5px;color:#fff;
  border:none;background:transparent;width:100%;min-width:0;padding:0;
  font-variant-numeric:tabular-nums;}
.sv-num:focus{outline:none;}

.sv-slider{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:6px;
  background:linear-gradient(90deg,rgba(52,199,89,.32),#34C759);cursor:pointer;margin:22px 0 0;}
.sv-slider:focus-visible{outline:2px solid #fff;outline-offset:4px;}
.sv-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;
  border-radius:50%;background:#fff;border:2px solid var(--gr);cursor:grab;
  box-shadow:0 2px 8px rgba(0,0,0,.18);transition:transform .12s;}
.sv-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.12);}
.sv-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;
  border:2px solid var(--gr);cursor:grab;box-shadow:0 2px 8px rgba(0,0,0,.18);}

.sv-ticks{display:flex;justify-content:space-between;margin-top:6px;}
.sv-tick{font-family:inherit;font-size:11.5px;font-weight:600;color:#8A8A8E;
  background:none;border:none;padding:4px 5px;cursor:pointer;border-radius:6px;
  font-variant-numeric:tabular-nums;transition:color .12s,background .12s;}
.sv-tick::after{content:'%';opacity:.55;}
.sv-tick:hover{color:#fff;background:rgba(255,255,255,.08);}
.sv-tick.on{color:#7BE59B;background:rgba(52,199,89,.18);font-weight:700;}
.sv-hint{font-size:12.5px;line-height:1.5;margin:16px 0 0;padding-top:13px;
  border-top:1px solid rgba(255,255,255,.12);color:#8A8A8E;}
.sv-hint.is-ok{color:#7BE59B;}
.sv-hint.is-warn{color:#FFB35C;}
.sv-hint.is-plain{color:#8A8A8E;}

/* ── workload chips ───────────────────────────────────────────── */
.sv-shape{margin-bottom:22px;}
.sv-shape-k{display:block;font-size:10px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--sub);margin-bottom:9px;}
.sv-chips{display:flex;flex-wrap:wrap;gap:8px;}
.sv-chip{font-family:inherit;text-align:left;background:var(--card);border:1px solid var(--bd);
  border-radius:10px;padding:9px 13px;cursor:pointer;transition:all .13s;}
.sv-chip b{display:block;font-size:13px;font-weight:600;color:var(--mid);letter-spacing:-.1px;}
.sv-chip span{font-size:11px;color:var(--sub);font-variant-numeric:tabular-nums;}
.sv-chip:hover{border-color:rgba(0,0,0,.18);}
.sv-chip.on{background:var(--bk);border-color:var(--bk);}
.sv-chip.on b{color:#fff;}
.sv-chip.on span{color:var(--or);}
.sv-chip:focus-visible{outline:2px solid var(--or);outline-offset:2px;}

/* ── the board ────────────────────────────────────────────────── */
.sv-bar{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.sv-bar h2{font-size:26px;font-weight:650;letter-spacing:-.8px;color:var(--bk);margin:0;}
.sv-live{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;
  color:#0F5F28;background:#EAF8EE;border-radius:999px;padding:5px 12px;}
.sv-live i{width:7px;height:7px;border-radius:50%;background:var(--gr);}
/* segmented window picker, mirroring the product's date-range control */
.sv-window{margin-left:auto;display:flex;gap:2px;background:var(--card);
  border:1px solid var(--bd);border-radius:10px;padding:3px;}
.sv-win{font-family:inherit;font-size:12.5px;font-weight:600;color:var(--sub);
  background:none;border:none;border-radius:7px;padding:6px 12px;cursor:pointer;
  transition:all .13s;font-variant-numeric:tabular-nums;}
.sv-win:hover{color:var(--bk);}
.sv-win.on{background:var(--bk);color:#fff;}
.sv-win:focus-visible{outline:2px solid var(--or);outline-offset:1px;}
.sv-kpi-k i{font-style:normal;}

.sv-kpis{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:14px;margin-bottom:14px;}
.sv-kpi{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:22px 24px;
  box-shadow:var(--sh);}
.sv-kpi-k{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--sub);margin-bottom:12px;}
.sv-kpi-n{font-size:38px;font-weight:650;letter-spacing:-1.6px;color:var(--bk);line-height:1;
  font-variant-numeric:tabular-nums;}
.sv-kpi-sub{font-size:12.5px;color:var(--sub);margin-top:9px;font-variant-numeric:tabular-nums;}
.sv-kpi-k em{font-style:normal;}
/* each tile carries the chart's own key for its line, so the picture below
   reads without anyone having to match colours to labels */
.sv-key{display:inline-block;width:14px;vertical-align:middle;margin-right:8px;}
.sv-key-base{height:0;border-top:2px dashed #9A9AA0;}
.sv-key-act{height:2px;background:var(--or);}
.sv-key-save{height:10px;width:10px;border-radius:3px;background:#9BDCAF;}
.sv-kpi.is-without .sv-kpi-n{color:var(--mid);}
.sv-kpi.is-with .sv-kpi-n{color:#A34D00;}
.sv-kpi.is-saved{background:linear-gradient(160deg,#F2FBF5,#fff 60%);
  border-color:rgba(52,199,89,.4);}
.sv-kpi.is-saved .sv-kpi-n{color:#0F7A34;font-size:44px;letter-spacing:-2px;}

/* ── chart ────────────────────────────────────────────────────── */
.sv-chart-card{position:relative;background:var(--card);border:1px solid var(--bd);
  border-radius:14px;padding:22px 24px 16px;box-shadow:var(--sh);margin-bottom:14px;}
.sv-chart-h{display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-bottom:16px;}
.sv-chart-k{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--sub);}
.sv-legend{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--sub);}
.sv-legend i{display:inline-block;margin-left:8px;}
.sv-l-base{width:16px;height:0;border-top:2px dashed #9A9AA0;}
.sv-l-act{width:16px;height:2px;background:var(--or);}
.sv-l-save{width:11px;height:11px;border-radius:3px;background:#CFEFD8;}
.sv-chart{position:relative;height:280px;touch-action:none;}
.sv-chart svg{width:100%;height:100%;overflow:visible;display:block;}
.sv-grid{stroke:rgba(0,0,0,.06);stroke-width:1;}
.sv-ylab,.sv-xlab{font-size:11px;fill:#8A8A8E;font-family:inherit;}
.sv-ylab{text-anchor:end;}
.sv-xlab{text-anchor:middle;}
.sv-area{fill:#CFEFD8;opacity:.72;}
.sv-base{fill:none;stroke:#9A9AA0;stroke-width:2;stroke-dasharray:6 5;
  stroke-linejoin:round;vector-effect:non-scaling-stroke;}
.sv-act{fill:none;stroke:var(--or);stroke-width:2.4;stroke-linejoin:round;
  vector-effect:non-scaling-stroke;}
.sv-guide{stroke:rgba(0,0,0,.22);stroke-width:1;stroke-dasharray:3 3;}
/* SVG has no [hidden] behaviour of its own, so the hover marks toggle a class */
.sv-chart .is-off{display:none;}
.sv-dot{stroke:#fff;stroke-width:2;}
.sv-dot-b{fill:#9A9AA0;}
.sv-dot-a{fill:var(--or);}

.sv-tip{position:absolute;bottom:52px;transform:translateX(-50%);pointer-events:none;
  background:var(--bk);color:#fff;border-radius:10px;padding:10px 13px;min-width:150px;
  box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:3;}
.sv-tip b{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--or);margin-bottom:7px;}
.sv-tip span{display:flex;justify-content:space-between;gap:16px;font-size:12.5px;
  font-weight:600;font-variant-numeric:tabular-nums;margin-top:3px;}
.sv-tip i{font-style:normal;font-weight:400;color:#A1A1A6;}
.sv-tip-save{padding-top:6px;margin-top:6px !important;
  border-top:1px solid rgba(255,255,255,.16);color:#7BE59B;}
.sv-tip-save i{color:#7BE59B;opacity:.75;}

/* ── mechanisms and the year ──────────────────────────────────── */
.sv-split{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:16px;
  align-items:start;}
/* three mechanisms side by side once there is a full row to put them in */
.sv-wide .sv-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.sv-wide .sv-bar-row{padding-bottom:0;margin-bottom:0;border-bottom:none;}
.sv-card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:22px 24px;
  box-shadow:var(--sh);}
.sv-card h3{font-size:16px;font-weight:650;letter-spacing:-.3px;color:var(--bk);margin:0 0 6px;}
.sv-card-sub{font-size:13px;color:var(--sub);line-height:1.6;margin:0 0 18px;}
.sv-card-note{font-size:12px;color:var(--sub);line-height:1.6;margin:16px 0 0;padding-top:14px;
  border-top:1px solid var(--bd);}
.sv-card-note a{color:var(--or);font-weight:650;white-space:nowrap;}
.sv-card-note a:hover{text-decoration:underline;}

/* No sub-line under it any more, so the heading carries the panel on its
   own and needs the size and the room to do it. */
.sv-mech h3{font-size:23px;letter-spacing:-.6px;margin-bottom:24px;}

.sv-bars{list-style:none;margin:0;padding:0;}
.sv-bar-row{padding-bottom:15px;margin-bottom:15px;border-bottom:1px solid var(--bd);}
.sv-bar-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.sv-bar-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin-bottom:8px;}
.sv-bar-h b{font-size:14px;font-weight:650;color:var(--bk);}
.sv-bar-h span{font-size:15px;font-weight:650;color:var(--bk);
  font-variant-numeric:tabular-nums;white-space:nowrap;}
.sv-bar-h i{font-style:normal;font-size:12px;font-weight:600;color:var(--sub);margin-left:7px;}
.sv-bar-t{height:7px;border-radius:5px;background:rgba(0,0,0,.06);overflow:hidden;}
.sv-bar-t i{display:block;height:100%;border-radius:5px;transition:width .22s ease;}
.is-c .sv-bar-t i{background:#34C759;}
.is-k .sv-bar-t i{background:#007AFF;}
.is-r .sv-bar-t i{background:var(--or);}
.sv-bar-row p{font-size:12.5px;color:var(--sub);line-height:1.55;margin:9px 0 0;}

.sv-rows{list-style:none;margin:0;padding:0;}
.sv-rows li{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding:11px 0;border-bottom:1px solid var(--bd);}
.sv-rows li:last-child{border-bottom:none;}
.sv-rows span{font-size:13px;color:var(--sub);}
.sv-rows b{font-size:15px;font-weight:650;color:var(--bk);font-variant-numeric:tabular-nums;
  white-space:nowrap;}
.sv-rows li.is-good b{color:#0F7A34;}
.sv-rows li.is-hero{background:#FFF6EC;border-radius:10px;padding:12px 14px;margin-top:6px;
  border-bottom:none;}
.sv-rows li.is-hero b{color:#A34D00;font-size:18px;}

.sv-foot{font-size:12.5px;color:var(--sub);line-height:1.65;margin:0;padding:16px 18px;
  background:var(--bg);border:1px solid var(--bd);border-radius:12px;max-width:none;}
.sv-foot b{color:var(--bk);}

@media (max-width:1040px){
  .sv-wide .sv-bars{grid-template-columns:1fr;gap:0;}
  .sv-wide .sv-bar-row{padding-bottom:15px;margin-bottom:15px;
    border-bottom:1px solid var(--bd);}
  .sv-wide .sv-bar-row:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none;}
}
@media (max-width:900px){
  .sv-controls,.sv-kpis,.sv-split{grid-template-columns:1fr;}
  .sv-kpi-n{font-size:34px;}
  .sv-kpi.is-saved .sv-kpi-n{font-size:38px;}
  .sv-chart{height:220px;}
  .sv-bar h2{font-size:22px;}
  .sv-window{margin-left:0;width:100%;}
  .sv-win{flex:1;}
}
@media print{
  .sv-controls,.sv-shape,.sv-tip{display:none !important;}
  .sv-card,.sv-kpi,.sv-chart-card{break-inside:avoid;box-shadow:none;}
}
/* full-record preview (admin deal report) */
.admin-kv{width:100%;border-collapse:collapse;font-size:13.5px;margin:0 0 6px;}
.admin-kv th{text-align:left;font-weight:600;color:var(--ink-3,#666);padding:5px 14px 5px 0;
  white-space:nowrap;vertical-align:top;width:1%;}
.admin-kv td{padding:5px 0;color:var(--ink-1,#111);word-break:break-word;}
.admin-kv tr+tr th,.admin-kv tr+tr td{border-top:1px solid var(--line-2,#eee);}

/* EPIC 41.1 — the partner approval queue. */
.ap-row{border:1px solid var(--line,#2a2f3a);border-radius:10px;padding:14px 16px;margin:0 0 12px}
.ap-row header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.ap-row header b{font-size:15px}
.ap-when{font-size:12px;color:#8a8a8a}
.ap-meta{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;color:#b8c0cc;margin-bottom:12px}
.ap-meta b{color:#e6eaf0}
/* Verified vs not is the approver's main signal about whether the address is
   real, so it is coloured rather than left as one more grey line. */
.ap-ok{color:#7ddb9a}
.ap-warn{color:#ffb020}
.ap-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ap-act .ap-firm{flex:1 1 260px;min-width:0}

/* EPIC 39.3 — the master roll-up. */
.ag-deals{margin:8px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2,#b8c0cc)}
.ag-deals li{margin:3px 0}
.ag-deals b{color:var(--ink,#e6eaf0)}

/* EPIC 41.2/41.3/41.4 — admin surfaces. */
.ah-h{margin:28px 0 10px;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2,#b8c0cc)}
.ah-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:10px 0}
.ah-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2,#b8c0cc)}
.ah-form input,.ah-form select{padding:7px 9px;border-radius:6px;border:1px solid var(--line,#2a2f3a);background:var(--bg-2,#141821);color:var(--ink,#e6eaf0)}
.ah-list{margin:8px 0 0;padding-left:18px;font-size:13px}
.ah-list li{margin:3px 0}
.ah-closed{opacity:.55}
.ah-skip{border-left:2px solid #ffb74d}

/* EPIC 42.2 — the fit-check model picker. A catalog we could not read, or a
   configured model that has left it, must LOOK wrong: both mean fit checks are
   failing right now, and the silent version of either is an empty dropdown. */
.fc-warn{color:#ff8a80;font-weight:600}
.admin-page select#fcModel{min-width:340px;max-width:100%}
.at-none{color:#ffb74d}
.ap-actions{display:flex;gap:8px;margin-top:8px}

/* ── Saved fit checks (EPIC 42.6) ────────────────────────────────────────────
   The history of every fit check a partner has run, with the multi-select
   delete. The score chip reuses .fc-band-<tone> deliberately: a score that
   changes colour between the report and the history reads as a different
   score. */
.fch-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin:0 0 14px;flex-wrap:wrap}
.fch-all{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--sub)}
.fch-row header{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.fch-pick{display:flex;align-items:center}
.fch-score{display:inline-flex;align-items:center;justify-content:center;
  min-width:38px;height:26px;padding:0 8px;border-radius:8px;font-weight:700;
  font-size:13.5px;font-variant-numeric:tabular-nums}
.fch-who{font-size:12.5px;color:var(--sub)}
.fch-meta{margin:6px 0 0;font-size:12.5px;color:var(--sub)}
.fch-meta code{font-size:12px}
.fch-prov{margin:10px 0 18px;font-size:12.5px;color:var(--sub)}
.fch-report-top{margin:0 0 14px}
/* The dimension breakdown. An unmeasured dimension is dimmed and labelled,
   never rendered as a zero — "nobody asked" and "they scored nothing" are
   different facts about a prospect. */
.fch-dims{margin:0 0 20px}
.fch-dims ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:5px}
.fch-dim{display:flex;align-items:baseline;gap:12px;font-size:13.5px;
  padding:6px 10px;background:#fff;border:1px solid var(--bd);border-radius:9px}
.fch-dim-l{flex:1 1 auto;color:var(--bk)}
.fch-dim-w{font-size:12px;color:var(--sub);font-variant-numeric:tabular-nums}
.fch-dim-v{min-width:70px;text-align:right;font-weight:650;
  font-variant-numeric:tabular-nums}
.fch-dim-unknown{opacity:.62}
.fch-dim-unknown .fch-dim-v{font-weight:500;font-style:italic}
.fch-input{margin:6px 0 0}
.fch-input summary{cursor:pointer;font-size:13.5px;color:var(--sub)}
.fch-input pre{white-space:pre-wrap;word-break:break-word;background:#fff;
  border:1px solid var(--bd);border-radius:10px;padding:12px;margin:8px 0 0;
  font-size:12.5px;max-height:340px;overflow:auto}
