/* Quiet Wins — single stylesheet. Design tokens first; edit colors/type here. */
:root{
  --bone:#F1EDE4; --paper:#FBF9F4; --bone-deep:#E8E2D5;
  --dusk:#12202C; --dusk2:#1B2E3D;
  --ink:#16212C; --muted:#6C6E66; --line:#D9D4C6;
  --ember:#BF7D12; --ember-bright:#D38C18;
  --teal:#0F6C68; --wine:#8A2A2C; --sprout:#3F7A34;
  --fd:'Source Serif 4','Iowan Old Style',Georgia,serif; --fb:'Libre Franklin','Helvetica Neue',Arial,sans-serif; --fm:var(--fb); /* labels: Libre Franklin semibold, no mono */
  --maxw:1200px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--fb);background:var(--bone);color:var(--ink);line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--fd);font-weight:350;line-height:1.07;letter-spacing:-.018em;font-optical-sizing:auto;text-wrap:balance}
p,li,dd{text-wrap:pretty}
.final p,.final .founding,.price-note,.read-preview figcaption,.footer .disclaim{text-wrap:balance}
.phrase{display:inline-block}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}

.eyebrow{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);display:inline-block}
.eyebrow.on-dark{color:#7FBEBB}
.lead{font-size:1.12rem;color:var(--muted);max-width:58ch}

.pill{display:inline-flex;align-items:center;gap:.5em;font-family:var(--fb);font-weight:600;font-size:.95rem;line-height:1;background:var(--ember);color:var(--ink);border:none;border-radius:999px;padding:.95em 1.7em;cursor:pointer;transition:transform .18s,background .18s,box-shadow .18s;box-shadow:0 1px 0 rgba(0,0,0,.04)}
.pill:hover{background:var(--ember-bright);transform:translateY(-2px);box-shadow:0 10px 26px -12px rgba(191,125,18,.7)}
.pill:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.pill.ghost-pill{background:transparent;color:var(--ink);border:1px solid var(--line)}
.pill.ghost-pill:hover{background:var(--paper);box-shadow:none}
.ghost{display:inline-flex;align-items:center;gap:.45em;font-weight:500;font-size:.95rem;border-bottom:1px solid currentColor;padding-bottom:2px;transition:opacity .18s}
.ghost:hover{opacity:.6}.ghost .arr{transition:transform .2s}.ghost:hover .arr{transform:translateX(3px)}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .35s,box-shadow .35s,padding .35s;padding:20px 0}
.nav.scrolled,.nav.solid{background:rgba(241,237,228,.92);backdrop-filter:saturate(140%) blur(10px);box-shadow:0 1px 0 var(--line);padding:13px 0}
.nav-in{display:flex;align-items:center;justify-content:space-between;max-width:var(--maxw);margin:0 auto;padding:0 28px}
.brand{display:flex;flex-direction:column;line-height:1}
.brand .mark{font-family:var(--fd);font-size:1.32rem;font-weight:400;letter-spacing:-.01em;color:#fff;transition:color .35s}
.brand .sub{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:5px;transition:color .35s}
.nav.scrolled .brand .mark,.nav.solid .brand .mark{color:var(--ink)}
.nav.scrolled .brand .sub,.nav.solid .brand .sub{color:var(--muted)}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-link-list{display:flex;gap:30px;align-items:center}
.nav-links a{font-size:.92rem;color:rgba(255,255,255,.85);transition:color .35s,opacity .18s}
.nav-links a:hover{opacity:.7}
.nav.scrolled .nav-links a,.nav.solid .nav-links a{color:var(--ink)}
.nav .pill{padding:.7em 1.3em;font-size:.88rem}

/* hero (home) */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(18,32,44,.5),rgba(18,32,44,.12) 22%,rgba(18,32,44,0) 42%),linear-gradient(105deg,rgba(18,32,44,.62),rgba(18,32,44,.28) 38%,rgba(18,32,44,0) 70%),linear-gradient(to bottom,rgba(241,237,228,0) 62%,rgba(241,237,228,.55) 86%,var(--bone) 100%)}
.hero-content{position:relative;z-index:2;color:#fff;padding-top:120px;padding-bottom:96px;max-width:780px}
.hero h1{font-size:clamp(2.7rem,6.4vw,5.1rem);font-weight:330;color:#fff;margin:.5rem 0 1.3rem;max-width:16ch}
.hero .wrap{width:100%}
.hero .lead{color:rgba(255,255,255,.9);font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:54ch;line-height:1.55}
.hero .eyebrow{color:#E9D9A9}
.hero-cta{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:2.4rem}
.trustline{margin-top:2.6rem;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.74rem;letter-spacing:.07em;color:rgba(255,255,255,.72)}
.trustline span{color:rgba(255,255,255,.4);margin:0 .55em}

/* page hero (sub-pages) */
.page-hero{padding:112px 0 44px;background:var(--bone);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:340;margin:.8rem 0 1.1rem;max-width:18em}
.page-hero .lead{font-size:1.18rem;max-width:56ch;text-wrap:balance}

/* sections */
.section{padding:clamp(48px,6vw,80px) 0}
.page-hero + .section{padding-top:clamp(40px,4.5vw,64px)}
.section > .wrap > :first-child{margin-top:0}
.section.dark{background:var(--dusk);color:#fff}
.section.deep{background:var(--bone-deep)}
.section.paper{background:var(--paper)}
.sec-head{max-width:880px}
.sec-head p,.sec-head .lead{max-width:58ch}
.sec-head h2{font-size:clamp(2rem,4vw,3.15rem);font-weight:340;margin:.9rem 0 0}
.section.dark .sec-head h2{color:#fff}

/* problem */
.prob-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(241,237,228,.12);border:1px solid rgba(241,237,228,.12);border-radius:14px;overflow:hidden;margin-top:36px}
.prob-card{background:var(--dusk);padding:30px}
.prob-card .n{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.72rem;color:#7FBEBB;letter-spacing:.1em}
.prob-card p{font-family:var(--fd);font-size:1.3rem;font-weight:340;line-height:1.24;color:#fff;margin-top:14px;letter-spacing:-.01em}
.prob-closer{font-family:var(--fd);font-size:clamp(1.35rem,2.4vw,1.9rem);font-weight:340;color:#fff;max-width:60ch;margin:40px auto 0;text-align:center;line-height:1.22;text-wrap:balance}
.prob-closer em{font-style:normal;color:var(--ember-bright)}

/* definition + layers */
.def{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start;margin-top:28px}
.def .defcopy p{font-size:1.08rem}
.def figure{border-radius:16px;overflow:hidden;box-shadow:0 30px 60px -34px rgba(18,32,44,.5)}
.def figure img{width:100%;aspect-ratio:2/1;object-fit:cover}
.layers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.layer{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:24px}
.layer .code{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.layer h3{font-size:1.22rem;font-weight:430;margin:10px 0 8px;letter-spacing:-.01em}
.layer p{font-size:.94rem;color:var(--muted);line-height:1.5}
.layer ul{list-style:none;margin-top:10px;font-size:.9rem;color:var(--muted)}
.layer li{padding-left:16px;position:relative;margin-bottom:4px}
.layer li::before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--ember)}
.verdict{margin-top:22px;text-align:center;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.verdict b{color:var(--ink);font-weight:500}

/* insights cards */
.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:36px;align-items:stretch}
.insight-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:28px 26px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.insight-card:hover{transform:translateY(-4px);border-color:var(--ember);box-shadow:0 24px 50px -32px rgba(18,32,44,.55)}
.insight-card:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.insight-card .cat{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.insight-card h3{font-size:1.28rem;font-weight:430;letter-spacing:-.012em;margin:12px 0 10px;color:var(--ink)}
.insight-card p{font-size:.95rem;color:var(--muted);line-height:1.55;margin-bottom:22px}
.insight-card .more{margin-top:auto;display:inline-flex;align-items:center;gap:.45em;font-family:var(--fb);font-weight:500;font-size:.9rem;color:var(--ember)}
.insight-card .more .arr{transition:transform .2s}
.insight-card:hover .more .arr{transform:translateX(4px)}

/* brand kit */
.brand-block{margin-top:60px}
.brand-block .lbl{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);display:block;padding-bottom:12px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.brand-block .note{font-size:.95rem;color:var(--muted);max-width:56ch;margin-top:18px}
.brand-block .layers{grid-template-columns:repeat(2,1fr)}

.logo-board{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.logo-cell{border:1px solid var(--line);border-radius:14px;min-height:170px;display:flex;align-items:center;justify-content:center;padding:30px}
.logo-cell.light{background:var(--paper)}
.logo-cell.dark{background:var(--dusk)}
.logo-cell img{display:block;width:auto;height:auto;max-width:100%;max-height:48px}
.lk{display:flex;flex-direction:column;line-height:1;text-align:center}
.lk .mark{font-family:var(--fd);font-size:1.9rem;font-weight:400;letter-spacing:-.01em}
.logo-cell.light .lk .mark{color:var(--ink)}
.logo-cell.dark .lk .mark{color:#fff}
.mark-board{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mark-cell{border:1px solid var(--line);border-radius:14px;min-height:190px;display:flex;align-items:center;justify-content:center;gap:22px;padding:30px}
.mark-cell.light{background:var(--paper)}
.mark-cell.dark{background:var(--dusk)}
.mark-cell.sizes{align-items:flex-end}
.dl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.dl{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:18px 18px 16px;color:var(--ink);transition:transform .15s,border-color .15s,box-shadow .15s}
.dl:hover{transform:translateY(-2px);border-color:var(--ember);box-shadow:0 14px 30px -24px rgba(18,32,44,.5)}
.dl:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.dl.dark{background:var(--dusk);border-color:var(--dusk);color:#fff}
.dl .nm{font-family:var(--fd);font-size:1.12rem;font-weight:400;letter-spacing:-.01em}
.dl .fmt{font-family:var(--fm);font-weight:600;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.dl.dark .fmt{color:rgba(255,255,255,.62)}

.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.swatch{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--paper);text-align:left;font:inherit;color:inherit;cursor:pointer;padding:0;width:100%;transition:transform .15s,box-shadow .15s,border-color .15s}
.swatch:hover{transform:translateY(-3px);border-color:var(--ember);box-shadow:0 16px 34px -24px rgba(18,32,44,.5)}
.swatch:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.swatch .chip{height:104px;border-bottom:1px solid var(--line);position:relative}
.swatch .tag{position:absolute;top:9px;right:9px;display:inline-flex;align-items:center;gap:5px;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;background:rgba(22,33,44,.42);color:#fff;padding:4px 8px;border-radius:999px;opacity:0;transition:opacity .15s,background .15s}
.swatch:hover .tag,.swatch:focus-visible .tag{opacity:1}
.swatch.copied .tag{opacity:1;background:var(--sprout)}
.swatch .meta{padding:13px 15px}
.swatch .nm{font-weight:600;font-size:.92rem}
.swatch .hex{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.82rem;color:var(--ink);text-transform:uppercase;margin-top:4px;letter-spacing:.02em}
.swatch .role{font-size:.78rem;color:var(--muted);margin-top:6px}

.type-spec{border:1px solid var(--line);border-radius:14px;padding:28px 30px;background:var(--paper);margin-bottom:18px}
.type-spec .head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:22px}
.type-spec .fam{font-size:1.18rem;font-weight:600}
.type-spec .use{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.type-big{line-height:.92;color:var(--ink);margin-bottom:20px}
.type-big.fd{font-family:var(--fd);font-size:clamp(3rem,8vw,5.4rem);font-weight:350;letter-spacing:-.022em}
.type-big.fb{font-family:var(--fb);font-size:clamp(2.6rem,7vw,4.4rem);font-weight:500;letter-spacing:-.02em}
.type-big.fm{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:clamp(2.4rem,6vw,3.8rem);font-weight:500;letter-spacing:-.01em}
.type-set{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:1.04rem;line-height:1.5;word-spacing:.08em;overflow-wrap:anywhere}
.type-set.fd{font-family:var(--fd)}.type-set.fb{font-family:var(--fb)}.type-set.fm{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.92rem}
.type-ladder{display:flex;flex-direction:column;gap:14px;margin-top:22px}
.type-ladder .wt{display:block;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:3px}
.type-ladder .ln{font-size:1.5rem;line-height:1.2;color:var(--ink)}
.type-ladder .ln.fd{font-family:var(--fd);letter-spacing:-.018em}
.type-ladder .ln.fb{font-family:var(--fb)}
.type-ladder .ln.fm{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:1.15rem}
.type-spec .glyphs{margin-top:20px;color:var(--muted);font-size:.9rem}
@media (min-width:1150px){.type-spec{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);grid-template-rows:auto auto 1fr auto;column-gap:48px;align-items:start}.type-spec .head,.type-spec .glyphs{grid-column:1/-1}.type-spec .head{grid-row:1}.type-spec .type-big{grid-column:1;grid-row:2}.type-spec .type-set{grid-column:1;grid-row:3}.type-spec .glyphs{grid-row:4}.type-spec .type-ladder{grid-column:2;grid-row:2 / span 2;margin-top:0;align-self:center}}

/* facts */
.facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:36px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fact{padding:24px 8px;text-align:center;border-right:1px solid var(--line)}
.fact:last-child{border-right:none}
.fact .v{font-family:var(--fd);font-size:1.7rem;font-weight:380}
.fact .k{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:6px}

/* what you get */
.get{display:grid;grid-template-columns:.92fr 1.08fr;gap:60px;align-items:start;margin-top:32px}
.get:where(:has(.get-visual)){grid-template-columns:1.25fr .75fr}
.get-list{list-style:none;display:flex;flex-direction:column;gap:22px}
.get-list li{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}
.get-list .mk{width:30px;height:30px;border-radius:8px;background:var(--bone-deep);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.get-list .mk svg{width:16px;height:16px}
.get-list h3{font-size:1.12rem;font-weight:460;letter-spacing:-.01em;margin-bottom:3px}
.get-list .tag{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ember);border:1px solid var(--ember);border-radius:999px;padding:1px 8px;margin-left:8px;vertical-align:middle}
.get-list p{font-size:.95rem;color:var(--muted);line-height:1.5}
.get-visual{border-radius:16px;overflow:hidden;box-shadow:0 30px 60px -34px rgba(18,32,44,.5)}
.get-visual img{width:100%;aspect-ratio:1/1;object-fit:cover}
.get-note{margin-top:40px;font-size:.95rem;color:var(--muted);border-left:2px solid var(--ember);padding-left:18px;max-width:56ch}
@media (min-width:881px){.get>div:has(>.loaddiag){align-self:stretch;display:flex;flex-direction:column}.get-visual:has(+ .loaddiag){flex:1 1 0;min-height:240px;position:relative}.get-visual:has(+ .loaddiag) img{position:absolute;inset:0;height:100%;aspect-ratio:auto}}
.loaddiag{margin-top:18px;background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:20px}
.loaddiag .cap{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:8px;height:8px;border-radius:50%;display:inline-block}

/* steps */
.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:40px 64px;margin-top:36px}
.step .num{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.82rem;color:var(--teal)}
.step .bar{height:2px;background:var(--line);margin:14px 0 18px;position:relative;overflow:hidden}
.step .bar::after{content:"";position:absolute;left:0;top:0;height:100%;background:var(--ember)}
.step:nth-child(1) .bar::after{width:34%}.step:nth-child(2) .bar::after{width:58%}
.step:nth-child(3) .bar::after{width:82%}.step:nth-child(4) .bar::after{width:100%}
.step h3{font-size:1.18rem;font-weight:440;margin-bottom:7px}
.step p{font-size:.93rem;color:var(--muted);line-height:1.5}

/* pricing */
.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px;align-items:stretch}
.tier{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:30px;display:flex;flex-direction:column}
.tier.feature{border-color:var(--ember);box-shadow:0 24px 50px -30px rgba(191,125,18,.5);position:relative}
.tier .badge{position:absolute;top:-11px;left:30px;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--ember);border-radius:999px;padding:3px 10px}
.tier .tname{font-family:var(--fd);font-size:1.5rem;font-weight:400}
.tier .who{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.tier .price{font-family:var(--fd);font-size:2.3rem;font-weight:380;margin:18px 0 4px}
.tier .price small{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:inline;margin-left:.5em}
.tier ul{list-style:none;margin:18px 0 24px;font-size:.93rem;color:var(--muted)}
.tier li{padding-left:18px;position:relative;margin-bottom:8px}
.tier li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--sprout)}
.tier .pill,.tier .ghost-pill{margin-top:auto;width:100%;justify-content:center}

/* single price */
.sec-head:has(+ .price-single){max-width:720px;margin-left:auto;margin-right:auto;text-align:center}
.price-single{max-width:720px;margin:32px auto 0;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:42px 40px;text-align:center;box-shadow:0 26px 54px -34px rgba(18,32,44,.4)}
.price-amt{font-family:var(--fd);font-size:3.6rem;font-weight:380;line-height:1;color:var(--ink)}
.price-meta{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.price-incl{list-style:none;text-align:left;max-width:520px;margin:28px auto 30px;font-size:.97rem;color:var(--muted)}
.price-incl li{padding-left:24px;position:relative;margin-bottom:11px}
.price-incl li::before{content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;border-radius:50%;background:var(--sprout)}
.price-single .pill{width:100%;justify-content:center;font-size:1rem;padding:1.05em 1.7em}

/* booking modal */
.modal-overlay{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(12,20,28,.62);backdrop-filter:blur(5px);opacity:0;transition:opacity .25s}
.modal-overlay.open{display:flex;opacity:1}
.modal{position:relative;width:100%;max-width:460px;max-height:92vh;overflow:auto;background:var(--bone);border-radius:18px;padding:38px 36px;box-shadow:0 40px 90px -28px rgba(0,0,0,.6);transform:translateY(10px) scale(.99);transition:transform .25s}
.modal-overlay.open .modal{transform:none}
.modal.wide{max-width:920px;padding:24px}
.modal-x{position:absolute;top:14px;right:16px;width:34px;height:34px;border:none;background:transparent;font-size:1.5rem;line-height:1;color:var(--muted);cursor:pointer;border-radius:8px;transition:background .15s,color .15s}
.modal-x:hover{background:var(--bone-deep);color:var(--ink)}
.modal h3{font-size:1.65rem;font-weight:380;margin:.55rem 0 .45rem}
.modal-sub{font-size:.93rem;color:var(--muted);margin-bottom:4px}
.modal .form{margin-top:20px;max-width:none}
.modal-booking-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:4px 30px 14px 4px;flex-wrap:wrap}
.modal-for{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.72rem;letter-spacing:.05em;color:var(--teal)}
.cal-embed{width:100%;height:68vh;min-height:460px;overflow:auto;border-radius:10px;background:var(--paper)}
@media (max-width:680px){.modal,.modal.wide{max-width:100%;padding:24px 20px}.cal-embed{height:76vh}}

/* who runs it */
.who{position:relative;background:var(--dusk);color:#fff;overflow:hidden}
.who .who-bg{position:absolute;inset:0;z-index:0;opacity:.42}
.who .who-bg img{width:100%;height:100%;object-fit:cover}
.who .who-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,var(--dusk) 32%,rgba(18,32,44,.55) 60%,rgba(18,32,44,.2))}
.who-inner{position:relative;z-index:2;max-width:780px}
.who h2{color:#fff;font-size:clamp(2rem,4vw,3rem);font-weight:340;margin:1rem 0 1.3rem}
.who p{color:rgba(241,237,228,.82);font-size:1.08rem;max-width:52ch}
.who .sig{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.74rem;letter-spacing:.08em;color:#7FBEBB;margin-top:30px}

/* comparison */
.compare.narrow{max-width:880px}
.compare{margin-top:32px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--paper)}
.ctable{width:100%;border-collapse:collapse;font-size:.92rem}
.ctable th,.ctable td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.ctable thead th{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500}
.ctable thead th.us{color:var(--ember)}
.ctable tbody tr:last-child td{border-bottom:none}
.ctable .rowlbl{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ctable td.us{background:rgba(191,125,18,.06);font-weight:500;color:var(--ink)}

/* prose / content pages */
.prose{max-width:640px;margin-top:30px}
.prose>:last-child,.prose>:last-child>li:last-child{margin-bottom:0}
.prose p{font-size:1.06rem;margin-bottom:18px}
.prose h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:40px 0 14px}
.prose h3{font-size:1.3rem;font-weight:440;margin:28px 0 8px}
.prose ul{margin:0 0 18px 0;padding-left:20px;color:var(--muted)}
.prose li{margin-bottom:8px}
.prose blockquote{margin:34px 0;padding:2px 0 2px 24px;border-left:2px solid var(--ember);font-family:var(--fd);font-size:clamp(1.3rem,2.2vw,1.65rem);font-weight:380;line-height:1.3;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
.answer{background:var(--paper);border-left:2px solid var(--ember);border-radius:0 10px 10px 0;padding:20px 24px;margin:0 0 26px;font-size:1.08rem;max-width:640px}

/* faq */
.faq{margin-top:36px;max-width:800px}
.qa{border-top:1px solid var(--line);padding:26px 0}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa h3{font-size:1.15rem;font-weight:460;margin-bottom:9px}
.qa p{font-size:.98rem;color:var(--muted);max-width:56ch}
@media (min-width:1024px){#faq .faq{display:grid;grid-template-columns:1fr 1fr;column-gap:56px;max-width:none}#faq .faq .qa p{max-width:none}#faq .faq .qa:nth-last-child(2){border-bottom:1px solid var(--line)}}

/* glossary */
.terms{margin-top:36px;max-width:800px}
.term{border-top:1px solid var(--line);padding:24px 0}
.term h3{font-size:1.15rem;font-weight:460;margin-bottom:6px}
.term p{font-size:.98rem;color:var(--muted);max-width:56ch}

/* form */
.form{max-width:520px;margin-top:36px}
.form .row{margin-bottom:16px}
.form label{display:block;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.form input,.form textarea,.form select{width:100%;font-family:var(--fb);font-size:1rem;padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,108,104,.15)}
.form .pill{margin-top:6px}
.form .note{font-size:.82rem;color:var(--muted);margin-top:14px}
.form-msg{margin-top:16px;font-size:.95rem;color:var(--sprout);display:none}
.turnstile-slot{margin:2px 0 16px;min-height:0}

/* final cta */
.final{position:relative;text-align:center;overflow:hidden;background:var(--bone)}
.final .fbg{position:absolute;inset:0;z-index:0;opacity:.5}
.final .fbg img{width:100%;height:100%;object-fit:cover}
.final .fscrim{position:absolute;inset:0;z-index:1;background:radial-gradient(120% 120% at 50% 30%,rgba(241,237,228,.4),rgba(241,237,228,.86) 55%,var(--bone))}
.final-inner{position:relative;z-index:2;margin:0 auto;max-width:880px}
.final h2{font-size:clamp(2.1rem,4.6vw,3.5rem);font-weight:340}
.final p{font-size:1.12rem;opacity:.78;margin:1.2rem auto 0;max-width:60ch}
.final .pill{margin-top:2.3rem}
.final .founding{display:block;margin-top:1.4rem;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* footer */
.footer{background:var(--dusk);color:rgba(241,237,228,.72);padding:60px 0 40px}
.footer-in{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.footer .brand .mark{color:#fff}.footer .brand .sub{color:rgba(241,237,228,.5)}
.footer .fcol h4{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(241,237,228,.5);margin-bottom:14px}
.footer .fcol a{display:block;font-size:.92rem;color:rgba(241,237,228,.8);margin-bottom:9px}
.footer .fcol a:hover{color:#fff}
.footer .disclaim{margin-top:42px;padding-top:22px;border-top:1px solid rgba(241,237,228,.12);font-size:.78rem;color:rgba(241,237,228,.45);line-height:1.6}
.footer .legal-links{display:block;margin-top:8px}
.footer .disclaim a{color:rgba(241,237,228,.72)}
.footer .disclaim a:hover{color:#fff}
.app footer.foot a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* reveal — visible by default; hidden only when JS enables animation (html.anim) so no-JS still shows everything */
.reveal{transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1)}
html.anim .reveal{opacity:0;transform:translateY(18px)}
html.anim .reveal.in{opacity:1;transform:none}

/* responsive */
@media (max-width:880px){
  .def,.get{grid-template-columns:1fr;gap:34px}.def figure{order:-1}
  .layers,.pricing{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr);gap:30px}
  .prob-grid{grid-template-columns:1fr}
  .insight-grid{grid-template-columns:repeat(2,1fr)}
  .swatches{grid-template-columns:repeat(2,1fr)}
  .logo-board{grid-template-columns:1fr}
  .mark-board{grid-template-columns:1fr}
  .dl-grid{grid-template-columns:repeat(2,1fr)}
  .facts{grid-template-columns:1fr 1fr}.fact:nth-child(2){border-right:none}.fact:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media (max-width:680px){
  .nav-link-list{display:none}
  .brand-block .layers{grid-template-columns:1fr}
  .insight-grid{grid-template-columns:1fr}
  .spec-fd{font-size:1.9rem}
  .fact{padding:20px 8px}
  .page-hero:not(.read-hero){padding:100px 0 40px}
  .ctable{font-size:.84rem}.ctable th,.ctable td{padding:12px 11px}
  .steps{grid-template-columns:1fr;gap:28px}
  .price-single{padding:32px 22px}
  .price-single .pill{padding:1em 1.2em;line-height:1.3;white-space:normal;text-wrap:balance}
  .ctable.stack-sm,.ctable.stack-sm thead,.ctable.stack-sm tbody{display:block}
  .ctable.stack-sm tr{display:grid;grid-template-columns:1fr 1fr}
  .ctable.stack-sm thead th:first-child{display:none}
  .ctable.stack-sm td.rowlbl{grid-column:1/-1;padding-bottom:4px;border-bottom:none}
}
@media (min-width:681px){.ctable .rowlbl{white-space:nowrap}}
@media (prefers-reduced-motion:reduce){html.anim .reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* ===================================================================== */
/* App pages (questions, reports, progress page, respondent, admin).      */
/* Everything is scoped under body.app so marketing pages are untouched.  */
/* ===================================================================== */
body.app{line-height:1.55}
body.app p{margin:0 0 .8em}
body.app ul,body.app ol{margin:0 0 .8em;padding-left:1.3em}
body.app a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}
body.app h1,body.app h2,body.app h3{font-weight:400;line-height:1.12;letter-spacing:-.01em;margin:0 0 .4em}
body.app h1{font-size:clamp(1.9rem,4vw,2.9rem)}
body.app h2{font-size:1.5rem}
body.app h3{font-size:1.15rem}
body.app .eyebrow{color:var(--ember);display:block;margin-bottom:.5rem}
body.app .muted{color:var(--muted)}
body.app .wrap{padding:0 22px}
body.app .narrow{max-width:760px}

/* top bar */
.app .appbar{background:var(--dusk);color:#fff;padding:14px 0}
.app .appbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}
.app .appbar .brand{text-decoration:none}
.app .appbar .brand .mark{color:#fff;font-size:1.15rem}
.app .appbar .brand .sub{color:#9fb0bd}
.app .appbar .who{font-size:.85rem;color:#9fb0bd}
.app .appbar a.who{color:#9fb0bd}

/* buttons */
.app .btn{display:inline-block;background:var(--dusk);color:#fff;border:0;border-radius:999px;padding:11px 20px;font-family:var(--fb);font-size:.95rem;font-weight:500;cursor:pointer;text-decoration:none;transition:transform .08s ease,background .15s ease;line-height:1.3}
.app .btn:hover{background:var(--dusk2)}
.app .btn:active{transform:translateY(1px)}
.app .btn:disabled{opacity:.5;cursor:not-allowed}
.app .btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.app .btn.ghost:hover{background:var(--bone-deep)}
.app .btn.ember{background:var(--ember);color:var(--ink)}
.app .btn.ember:hover{background:var(--ember-bright)}
.app .btn.big{padding:15px 26px;font-size:1.05rem;font-weight:600}
.app .btn.sm{padding:7px 13px;font-size:.85rem}
.app .btn.danger{background:transparent;color:var(--wine);border:1px solid var(--wine)}
.app .btn.danger:hover{background:var(--wine);color:#fff}

/* cards / layout */
.app .card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px}
.app .stack>*+*{margin-top:14px}
.app .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.app .spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.app .grid{display:grid;gap:14px}
@media(min-width:740px){.app .grid.cols2{grid-template-columns:1fr 1fr}.app .grid.cols3{grid-template-columns:repeat(3,1fr)}}

/* forms */
.app label{display:block;font-size:.8rem;font-weight:600;letter-spacing:.01em;margin-bottom:5px;color:var(--ink)}
.app input[type=text],.app input[type=email],.app input[type=url],.app input[type=number],.app textarea,.app select{
  width:100%;font-family:var(--fb);font-size:1rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.app textarea{min-height:96px;resize:vertical;line-height:1.5}
.app input:focus,.app textarea:focus,.app select:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:transparent}
.app .field{margin-bottom:14px}
.app .help,.app .hint{font-size:.84rem;color:var(--muted);margin:2px 0 8px;display:block}
.app .inline-check{display:flex;align-items:center;gap:8px}
.app .inline-check input{width:auto}
.app .inline-check label{margin:0}

/* pills / status */
.app .pill-tag{display:inline-block;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:#fff;white-space:nowrap}
.app .pill-tag.sent{color:var(--ember);border-color:var(--ember)}
.app .pill-tag.opened{color:var(--teal);border-color:var(--teal)}
.app .pill-tag.completed,.app .pill-tag.ready,.app .pill-tag.paid{color:var(--sprout);border-color:var(--sprout);background:rgba(63,122,52,.07)}
.app .pill-tag.failed{color:var(--wine);border-color:var(--wine)}
.app .dm-flag{color:var(--ember);font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}

/* tables */
.app table{width:100%;border-collapse:collapse;font-size:.92rem}
.app th,.app td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.app th{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}
.app .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* questionnaire */
.app .q-shell{max-width:760px;margin:0 auto;padding:34px 22px 80px}
.app .q-progress{position:sticky;top:0;background:var(--bone);padding:12px 0;z-index:5;border-bottom:1px solid var(--line);margin-bottom:8px}
.app .q-bar{height:6px;background:var(--bone-deep);border-radius:999px;overflow:hidden}
.app .q-bar i{display:block;height:100%;background:var(--teal);width:0;transition:width .3s ease}
.app .q-section{margin:30px 0}
.app .q-section h2{margin-bottom:2px}
.app .q-section .blurb{color:var(--muted);font-size:.95rem;margin-bottom:14px}
.app .q-item{margin:0 0 24px}
.app .q-item .qtext{font-weight:500;margin-bottom:6px;display:block;font-size:1.02rem}
.app .q-item .opt{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-left:6px}
.app .scale-row{display:flex;gap:8px;flex-wrap:wrap}
.app .scale-row button{flex:1;min-width:70px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 8px;font-family:var(--fb);font-size:.9rem;cursor:pointer;color:var(--ink)}
.app .scale-row button[aria-pressed=true]{background:var(--dusk);color:#fff;border-color:var(--dusk)}
.app .choice-list{display:flex;flex-direction:column;gap:8px}
.app .choice-list button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 14px;font-family:var(--fb);font-size:.95rem;cursor:pointer;color:var(--ink)}
.app .choice-list button[aria-pressed=true]{background:var(--dusk);color:#fff;border-color:var(--dusk)}
.app .step-tag{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.app .person-row{display:grid;grid-template-columns:1fr 1fr 1fr auto auto;gap:8px;align-items:center;margin-bottom:8px}
.app .person-row input{padding:8px 10px;font-size:.92rem}
.app .lens-toggle{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.app .lens-toggle button{border:0;background:transparent;padding:7px 11px;font-size:.78rem;cursor:pointer;white-space:nowrap;font-family:var(--fb);color:var(--ink)}
.app .lens-toggle button[aria-pressed=true]{background:var(--dusk);color:#fff}
@media(max-width:740px){
  .app .person-row{grid-template-columns:1fr auto;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
  .app .person-row input{grid-column:1/-1}
  .app .person-row .lens-toggle{grid-column:1/2;justify-self:start}
  .app .person-row .btn{grid-column:2/3}
}

/* misc */
.app .center-screen{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:28px 22px}
.app .center-screen p{text-wrap:balance}
.keep{display:inline-block}
.app .msg{font-size:.9rem;margin-top:10px;min-height:1.2em}
.app .msg.ok{color:var(--sprout)}
.app .msg.err{color:var(--wine)}
.app .saved-tick{font-size:.82rem;color:var(--sprout);font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums}
.app .hidden{display:none!important}
.app .muted-note{font-size:.84rem;color:var(--muted)}
.app .spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
.app .dots span{display:inline-block;width:9px;height:9px;margin:0 3px;border-radius:50%;background:var(--teal);animation:dot 1.2s infinite ease-in-out}
.app .dots span:nth-child(2){animation-delay:.15s}.app .dots span:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{transform:scale(.5);opacity:.4}40%{transform:scale(1);opacity:1}}
.app .crumbs{font-size:.85rem;color:var(--muted);margin:18px 0 10px}
.app .crumbs a{cursor:pointer}
.app footer.foot{padding:30px 22px;color:var(--muted);font-size:.8rem;text-align:center}
.app .tabs{display:flex;gap:8px;margin:18px 0}

/* color tiles (your score) */
.app .tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}
.app .tile{border-radius:14px;padding:18px;color:#fff;min-height:110px;display:flex;flex-direction:column;justify-content:space-between}
.app .tile .tname{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.app .tile .tword{font-family:var(--fd);font-size:1.5rem;line-height:1.1}
.app .tile .tscore{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.78rem;opacity:.85}
.app .tile .tsum{font-size:.88rem;line-height:1.4;margin-top:8px;opacity:.95}
.app .tile.red{background:var(--wine)}
.app .tile.yellow{background:var(--ember);color:var(--ink)}
.app .tile.green{background:var(--sprout)}
@media(max-width:760px){.app .tiles{grid-template-columns:1fr}}
.app .color-chip{display:inline-block;width:.8em;height:.8em;border-radius:50%;vertical-align:baseline;margin-right:.35em}
.app .color-chip.red{background:var(--wine)}.app .color-chip.yellow{background:var(--ember)}.app .color-chip.green{background:var(--sprout)}

/* report */
.app .report{max-width:1080px;margin:0 auto;padding:30px 22px 80px}
@media screen{.app .report .table-scroll>table:not(.stack-sm){min-width:680px}}
.app .report-head{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px}
.app .report-head .meta{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.74rem;letter-spacing:.06em;color:var(--muted)}
.app .report h1.headline{font-size:clamp(1.8rem,3.6vw,2.6rem);margin:12px 0 10px}
.app .report section{margin:38px 0}
.app .report section>h2{border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:16px}
.app .report .sub-h{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:-8px 0 16px;display:block}
.app .finding{border-left:3px solid var(--ember);padding:4px 0 4px 14px;margin:0 0 16px}
.app .finding h3{margin-bottom:4px}
.app .finding .ev{font-style:italic;color:var(--muted);font-size:.93rem}
.app .badge{display:inline-block;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;white-space:nowrap;font-weight:500}
.app .badge.you{background:var(--bone-deep);color:var(--ink)}
.app .badge.seat{background:rgba(15,108,104,.12);color:var(--teal)}
.app .badge.agent{background:rgba(63,122,52,.14);color:var(--sprout)}
.app .badge.kill{background:var(--wine);color:#fff;text-decoration:line-through;text-decoration-thickness:2px;font-weight:700;letter-spacing:.1em}
.app .badge.load-overloaded{background:var(--wine);color:#fff}
.app .badge.load-holding{background:rgba(63,122,52,.14);color:var(--sprout)}
.app .badge.load-underused{background:rgba(191,125,18,.14);color:var(--ember)}
.app .badge.load-missing{border:1px dashed var(--wine);color:var(--wine)}
.app .badge.part{background:transparent;border:1px solid var(--line);color:var(--muted)}
.app .ready-badge{display:inline-block;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:999px}
.app .ready-badge.yes{background:var(--sprout);color:#fff}
.app .ready-badge.no{background:var(--wine);color:#fff}
.app .cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.app .cols3 .col{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px}
.app .cols3 .col h3{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
@media(max-width:700px){.app .cols3{grid-template-columns:1fr}}
.app .move{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:14px}
.app .move .n{font-family:var(--fd);font-size:2rem;color:var(--ember);line-height:1;float:left;margin-right:14px}
.app .move dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0;font-size:.93rem;clear:both}
.app .move dt{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.app .move dd{margin:0}
.app .stop-list li{font-weight:600}
.app .sao{background:var(--paper);border:2px solid var(--dusk);border-radius:16px;padding:26px}
.app .sao h3{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-top:18px}
.app .sao h3:first-of-type{margin-top:0}
.app .sop{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:12px}
.app .sop .sop-meta{font-size:.88rem;color:var(--muted);margin-bottom:8px}
.app .next-card{background:var(--dusk);color:#fff;border-radius:16px;padding:26px}
.app .next-card h2{color:#fff;border:0!important;padding:0!important}
.app .next-card p{color:rgba(241,237,228,.85)}
.app .next-card .btn{background:var(--ember);color:var(--ink)}
.app .ben-note{background:rgba(191,125,18,.09);border-left:3px solid var(--ember);border-radius:0 10px 10px 0;padding:12px 16px;margin:14px 0;font-size:.97rem}
.app .ben-note b{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ember);display:block;margin-bottom:4px}
.app .report-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.app .report-foot{margin-top:50px;padding-top:18px;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}
.app .warn{background:rgba(138,42,44,.07);border:1px solid rgba(138,42,44,.3);border-radius:10px;padding:12px 14px;font-size:.93rem}
.app .stat-row{display:flex;gap:22px;flex-wrap:wrap;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.84rem;margin:10px 0 16px}
.app .stat-row b{font-family:var(--fd);font-size:1.5rem;font-weight:400;display:block}

/* report tables (stackTable in report.js): What to do, Where you and your team disagree, Who does what.
   A real table on wide screens and on paper. At 760px and under, where the score tiles stack too, each row
   becomes a card like "Your five moves": the row's title as a serif heading, a small label only on cells
   that can't explain themselves (data-label), and the line to act on under a rule with a teal label.
   Screen only, so a printout (about 650px wide) always gets the table. */
.app .report .t-what{font-size:.88rem;margin-top:4px}
.app .report .t-why{font-size:.84rem;margin-top:4px}
.app .report .acts th,.app .report .acts td.t-time{white-space:nowrap}
/* a long role ("Role: customer service coordinator") wraps instead of pushing the page wider; 12px corners
   keep a one-line badge a pill. In a wide table it stays on one line, or the table squeezes every role onto two. */
.app .report .badge.seat{white-space:normal;border-radius:12px}
.app .report td .badge.seat{white-space:nowrap}
@media screen and (max-width:760px){
  .app .report table.stack-sm,.app .report .stack-sm tbody,.app .report .stack-sm td{display:block}
  .app .report table.stack-sm{font-size:1rem}
  /* hidden but still read: display:none would cut every cell off from its column header */
  .app .report .stack-sm thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .app .report .stack-sm tbody tr{display:grid;gap:10px 12px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px 16px 16px}
  .app .report .stack-sm tbody tr+tr{margin-top:12px}
  .app .report .stack-sm td{padding:0;border:0;overflow-wrap:break-word}
  .app .report .stack-sm td[data-label]::before{content:attr(data-label);content:attr(data-label) / "";display:block;margin-bottom:3px;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
  .app .report .stack-sm .t-move>strong,.app .report .stack-sm .t-head>strong{font-family:var(--fd);font-weight:400;font-size:1.15rem;line-height:1.25;letter-spacing:-.01em}
  .app .report .stack-sm .t-what{font-size:.95rem}
  .app .report .stack-sm .t-why{font-size:.9rem}
  .app .report .stack-sm td.t-step,.app .report .stack-sm td.t-mean{margin-top:2px;padding-top:12px;border-top:1px solid var(--line)}
  .app .report .stack-sm td.t-step::before,.app .report .stack-sm td.t-mean::before{color:var(--teal)}
  .app .report .badge.seat,.app .report .stack-sm td .badge.seat{white-space:normal;overflow-wrap:anywhere}
  /* What to do: the number hangs left of the move; who and how long side by side under it; the first step last.
     The number column fits "10" (a Founder Read has up to 10 moves), right-aligned like a numbered list. */
  .app .report .acts tbody tr{grid-template-columns:1.6rem auto 1fr;column-gap:10px}
  .app .report .acts td.t-n{grid-area:1/1;align-self:baseline;white-space:nowrap;text-align:right;font-family:var(--fd);font-size:1.6rem;line-height:1;color:var(--ember)}
  .app .report .acts td.t-move{grid-area:1/2/auto/-1;align-self:baseline;min-width:0}
  .app .report .acts td.t-who{grid-area:2/2;align-self:center}
  .app .report .acts td.t-time{grid-area:2/3;align-self:center;justify-self:start;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:#fff}
  .app .report .acts td.t-step{grid-area:3/2/auto/-1;min-width:0}
  /* Where you and your team disagree: topic, you said, your team said, what it means */
  .app .report .disagree tbody tr{grid-template-columns:minmax(0,1fr)}
  /* Who does what: role and workload on one line, the note under them, then label : value rows */
  .app .report .roles tbody tr{grid-template-columns:minmax(0,1fr) auto;row-gap:8px}
  .app .report .roles td.t-head,.app .report .roles td.t-load{align-self:baseline}
  .app .report .roles td.t-note{order:1;grid-column:1/-1}
  .app .report .roles td.t-kv{order:2;grid-column:1/-1;display:grid;grid-template-columns:7.5rem minmax(0,1fr);column-gap:10px;align-items:baseline}
  .app .report .roles td.t-kv::before{margin:0}
  /* last, and stronger, so it also beats .roles td.t-kv{display:grid} */
  .app .report table.stack-sm td:empty{display:none}
}
/* a large phone sideways or a small tablet: the two sides of a disagreement side by side */
@media screen and (min-width:541px) and (max-width:760px){
  .app .report .disagree tbody tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px}
  .app .report .disagree td.t-head,.app .report .disagree td.t-mean{grid-column:1/-1}
}

@media print{
  @page{margin:18mm}
  body.app{background:#fff}
  .app .appbar,.app .report-actions,.app .no-print,.app .next-card,.app footer.foot{display:none!important}
  .app .report{padding:0;max-width:none}
  .app .report section.sao-section{page-break-before:always}
  .app .report tr{break-inside:avoid}
  .app .report section>h2,.app .report .sub-h{break-after:avoid}
  .app .tile{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .app .badge,.app .ready-badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .app a{color:inherit;text-decoration:none}
}

/* ===== Marketing additions (ladder relaunch) ===== */
/* Everything below is for the marketing pages. Reuses the tokens above. */

/* tier cards: four-up ladder, two-up pairs, labels and inner links */
.pricing.four{grid-template-columns:repeat(4,1fr);gap:18px}
.pricing.four .tier{padding:26px 22px}
.pricing.four .tier .pill{font-size:.88rem;padding:.95em 1.05em}
/* ladder: the free read as one wide card on top, paid tiers three-up below */
.pricing.ladder{grid-template-columns:repeat(2,1fr);gap:20px}
.pricing.ladder>.tier:not(.wide){padding:30px 28px}
.tier.wide{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr) auto;align-items:center;gap:20px 48px;padding:32px 36px}
.tier.wide .price{margin:12px 0 0}
.tier.wide .desc{margin:0;font-size:1.05rem}
.tier.wide .pill{margin-top:0;width:auto;white-space:nowrap}
.tier.wide ul{margin:14px 0 0}
.tier.wide:has(.tier-body){align-items:start}
@media (min-width:1101px){.pricing.ladder .tier.wide{grid-template-columns:minmax(220px,1fr) minmax(0,2fr) 170px}}
.pricing.two{grid-template-columns:repeat(2,1fr)}
.tier .tmeta{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.tier .desc{font-size:.95rem;color:var(--muted);line-height:1.5;margin:10px 0 20px}
.tier .desc + .pill{margin-top:auto}
.tier ul + .pill{margin-top:auto}
.tier li a{color:var(--ink);font-weight:600;border-bottom:1px solid var(--line)}
.tier li a:hover{border-bottom-color:var(--ember)}
.tier .tier-more{display:inline-flex;align-items:center;gap:.4em;margin-top:auto;margin-bottom:14px;font-size:.9rem;font-weight:500;color:var(--teal)}
.tier .tier-more .arr{transition:transform .2s}.tier .tier-more:hover .arr{transform:translateX(3px)}
.tier .tier-more + .pill{margin-top:0}
.ladder-note{text-align:center;margin:30px auto 0;font-size:1rem;color:var(--muted);max-width:60ch;text-wrap:balance}
.ladder-note a{color:var(--ember);font-weight:600;border-bottom:1px solid rgba(191,125,18,.35);white-space:nowrap}
.ladder-note a:hover{border-bottom-color:var(--ember)}

/* tables that scroll sideways on phones */
.compare.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.compare.scroll-x .ctable{min-width:780px}
.ctable td.amt{font-family:var(--fd);font-size:1.45rem;font-weight:380;color:var(--ink);white-space:nowrap}
.scroll-hint{display:none}
.ctable tfoot td{border-top:1px solid var(--line);border-bottom:none;padding-top:14px;padding-bottom:16px}
.tlink{color:var(--ember);font-weight:600;white-space:nowrap}
.tlink:hover{opacity:.7}

/* final CTA with a second link */
.final-cta{display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap;margin-top:2.3rem}
.final .final-cta .pill{margin-top:0}

/* links inside text */
.inline,.prose a:not(.pill),.answer a{color:var(--teal);border-bottom:1px solid rgba(15,108,104,.35);transition:border-color .18s}
.inline:hover,.prose a:not(.pill):hover,.answer a:hover{border-bottom-color:var(--teal)}
.who a.inline{color:#fff;border-bottom-color:rgba(255,255,255,.5)}
.who a.inline:hover{border-bottom-color:#fff}

/* sub-page hero extras */
.page-hero .trustline{margin-top:1.8rem;color:var(--muted)}
.page-hero .trustline span{color:var(--line)}
.small-line{margin-top:18px;font-size:.92rem;color:var(--muted)}
.price-note{margin-top:16px;font-size:.88rem;color:var(--muted)}

/* tool pages: what it looks for */
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px}
.check{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--ember);border-radius:13px;padding:22px 24px}
.check h3{font-size:1.15rem;font-weight:440;letter-spacing:-.01em;margin-bottom:6px}
.check p{font-size:.95rem;color:var(--muted);line-height:1.5}

/* tool pages: sample questions */
.qlist{list-style:none;margin-top:36px;display:grid;gap:14px;max-width:800px}
@media (min-width:881px){#questions .qlist{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}}
.qlist li{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:20px 22px}
.qlist .qn{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.78rem;color:var(--teal);padding-top:5px}
.qlist .qt{font-family:var(--fd);font-size:1.2rem;font-weight:380;line-height:1.3;color:var(--ink);letter-spacing:-.01em}
.qlist .qh{font-size:.9rem;color:var(--muted);margin-top:6px}
.qlist .qtag{display:inline-block;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ember);border:1px solid var(--ember);border-radius:999px;padding:1px 8px;margin-bottom:8px}

/* Situation / Action / Outcome cards stacked in a column */
.layers.stack{grid-template-columns:1fr;margin-top:0;gap:14px}

/* four related cards */
.insight-grid.four{grid-template-columns:repeat(2,1fr);gap:20px}
.insight-grid.two{grid-template-columns:repeat(2,1fr)}

@media (max-width:1100px){
  .pricing.four,.insight-grid.four{grid-template-columns:repeat(2,1fr)}
  .tier.wide{grid-template-columns:minmax(200px,1fr) minmax(0,2fr)}
  .tier.wide .pill{grid-column:1/-1;justify-self:start}
}
@media (max-width:880px){
  .pricing.ladder{grid-template-columns:1fr}
}
@media (max-width:680px){
  .pricing.four,.pricing.two,.insight-grid.four,.insight-grid.two,.checks{grid-template-columns:1fr}
  .tier.wide{grid-template-columns:1fr;padding:28px 24px}
  .tier.wide .pill{width:100%;justify-content:center}
  .qlist li{padding:18px;gap:12px}
  .qlist .qt{font-size:1.08rem}
  .ctable td.amt{font-size:1.25rem}
  .scroll-hint{display:block;margin-top:10px;text-align:right;font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
}

/* ===================================================================== */
/* /whats-stuck: the free check on the marketing layout (nav, hero, footer) */
/* ===================================================================== */
.read-page{--navh:62px}
.read-hero{padding:128px 0 46px}
.read-hero-in{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:center}
.read-hero h1{max-width:16ch}
@media (min-width:881px){.read-hero-in{grid-template-columns:1.55fr 1fr;gap:48px}.read-hero h1{max-width:none}}
.read-hero .trustline{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.74rem;letter-spacing:.07em}
.trustline i{font-style:normal;white-space:nowrap}
.read-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0}
.rp-tile{border-radius:14px;padding:16px 14px;color:#fff;min-height:122px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 22px 44px -30px rgba(18,32,44,.6)}
.rp-tile span{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.rp-tile b{font-family:var(--fd);font-weight:380;font-size:1.45rem;line-height:1.1}
.rp-tile.red{background:var(--wine)}.rp-tile.yellow{background:var(--ember);color:var(--ink)}.rp-tile.green{background:var(--sprout)}
.read-preview figcaption{grid-column:1/-1;font-size:.9rem;color:var(--muted);margin-top:6px;line-height:1.45}
.read-app .read-progress{top:var(--navh);margin:0;padding:12px 0}
.rp-row{display:flex;align-items:center;gap:14px;max-width:760px;margin:0 auto}
.rp-row .q-bar{flex:1}
#q-count{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.read-app .q-shell{padding:36px 22px 96px}
.read-app h2{font-size:1.7rem;font-weight:380;margin:0}
.read-app p{margin:0}
.read-app .q-item{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px 22px 20px;margin:0 0 16px;transition:border-color .2s,box-shadow .2s;scroll-margin-top:calc(var(--navh) + 64px)}
.read-app .q-item.done{border-color:rgba(15,108,104,.45)}
.read-app .q-item.missing{border-color:var(--wine);box-shadow:0 0 0 3px rgba(138,42,44,.14)}
.read-app .q-item .qnum{font-family:var(--fm);font-weight:600;font-variant-numeric:tabular-nums;font-size:.7rem;letter-spacing:.12em;color:var(--teal);display:block;margin-bottom:8px}
.read-app .q-item .qtext{font-family:var(--fd);font-weight:380;font-size:1.3rem;line-height:1.3;letter-spacing:-.01em;margin-bottom:14px}
.read-app .scale-row button,.read-app .choice-list button{transition:border-color .15s,background .15s,color .15s}
.read-app .scale-row button:hover,.read-app .choice-list button:hover{border-color:var(--ink)}
.read-app .scale-row button[aria-pressed=true]:hover,.read-app .choice-list button[aria-pressed=true]:hover{border-color:var(--dusk)}
.read-app .read-gate{margin-top:30px;padding:28px;border-top:3px solid var(--ember)}
.read-app .email-hint{font-size:.86rem;color:var(--muted);margin:6px 0 0;line-height:1.45}
.read-app .email-hint:empty{margin:0}
.read-app .email-hint.err{color:var(--wine)}
.read-app .email-hint button{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--teal);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.read-app input[aria-invalid=true]{border-color:var(--wine)}
.read-app label.optin{display:flex;align-items:flex-start;gap:10px;margin-bottom:0;font-size:.95rem;font-weight:400;letter-spacing:0;line-height:1.45;color:var(--ink);cursor:pointer}
.read-app label.optin input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--teal);cursor:pointer}
.read-app label.optin input:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.read-page.waiting .read-hero,.read-page.waiting .read-progress{display:none}
.read-page.waiting .q-shell{padding-top:calc(var(--navh) + 24px)}
@media (max-width:880px){.read-hero-in{grid-template-columns:1fr;gap:30px}.read-hero{padding:110px 0 36px}.read-preview{max-width:460px}}
@media (max-width:520px){
  .read-preview{gap:8px}.rp-tile{min-height:92px;padding:12px 11px}.rp-tile b{font-size:1.12rem}
  .read-app .q-shell{padding:24px 16px 80px}
  .read-app .q-item{padding:18px 16px}.read-app .q-item .qtext{font-size:1.14rem}
  .read-app .scale-row button{min-width:calc(50% - 4px)}
  .read-app .read-gate{padding:22px 18px}.read-app h2{font-size:1.45rem}
}

/* Server-rendered pages on the marketing layout (page({ site: true })) */
body.site-shell{padding-top:var(--navh,62px)}
body.site-shell .nav a,body.site-shell .footer a{text-decoration:none}
body.site-shell .footer .wrap{padding:0 28px}
body.site-shell main.report{padding-top:40px;padding-bottom:80px}
@media print{body.site-shell{padding-top:0}.site-shell .nav,.site-shell .footer{display:none!important}}


/* ===================================================================== */
/* Admin v2 (public/admin.html). Dense, calm, tabular. Builds on the     */
/* body.app classes above; everything here is scoped to body.app.admin.  */
/* ===================================================================== */
body.app.admin{background:var(--bone);font-size:15px}
.app.admin .wrap{max-width:1280px;padding:0 22px}
.app.admin h1{font-size:clamp(1.55rem,3vw,2.05rem);margin:0}
.app.admin h2{font-size:1.12rem;margin:0}
.app.admin h3{font-size:1rem;margin:0}
.app.admin .eyebrow{font-size:.66rem;margin-bottom:.35rem}
.app.admin :focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.app.admin [hidden]{display:none!important}

/* top bar with the section links */
.app.admin .appbar{position:sticky;top:0;z-index:30;padding:0}
.app.admin .appbar .wrap{min-height:56px;gap:22px}
.app.admin .appbar .brand{flex:none}
.app.admin .appbar .who{flex:none;max-width:30ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-nav{flex:1;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;align-self:stretch}
.adm-nav::-webkit-scrollbar{display:none}
.app.admin .adm-nav a{display:flex;align-items:center;padding:0 11px;font-size:.88rem;font-weight:500;color:#9fb0bd;text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;border-top:2px solid transparent}
.app.admin .adm-nav a:hover{color:#fff}
.app.admin .adm-nav a[aria-current=page]{color:#fff;border-bottom-color:#7FBEBB}
@media(max-width:860px){
  .app.admin .appbar .wrap{flex-wrap:wrap;gap:0 14px;padding-top:10px}
  .adm-nav{order:3;flex-basis:100%;margin:6px -22px 0;padding:0 14px;min-height:42px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
}

/* signed-out banner and toast */
.adm-banner{background:var(--wine);color:#fff;padding:10px 0;font-size:.92rem}
.app.admin .adm-banner .wrap{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;min-height:0;padding-top:0}
.app.admin .adm-banner .btn{background:#fff;color:var(--wine)}
.adm-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);background:var(--dusk);color:#fff;padding:10px 16px;border-radius:10px;font-size:.88rem;box-shadow:0 14px 34px -14px rgba(18,32,44,.6);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:40;max-width:min(560px,calc(100vw - 32px))}
.adm-toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.adm-toast.err{background:var(--wine)}

/* page head */
.adm-main{padding-top:6px;padding-bottom:70px}
.app.admin .crumbs{margin:16px 0 4px;font-size:.82rem}
.app.admin .crumbs a{color:var(--muted)}
.app.admin .crumbs a:hover{color:var(--ink)}
.adm-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 18px;flex-wrap:wrap;margin:14px 0 16px}
.adm-head .sub{color:var(--muted);font-size:.9rem;margin-top:5px}
.adm-head .sub .pill-tag{vertical-align:1px}
.adm-actions{display:flex;gap:8px;flex-wrap:wrap}
.adm-loading{padding:48px 0;text-align:center}

/* filter row */
.adm-filters{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;margin:0 0 14px}
.app.admin .adm-f{display:flex;flex-direction:column;gap:4px;min-width:0;margin:0;font-size:inherit;font-weight:400}
.app.admin .adm-f.grow{flex:1 1 220px}
.app.admin .adm-fl{font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);line-height:1.2}
.app.admin .adm-filters input[type=search],.app.admin .adm-filters input[type=date],.app.admin .adm-filters select{width:auto;font-family:var(--fb);font-size:.88rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 10px;height:36px}
.app.admin .adm-filters input[type=search]{width:100%}
.app.admin .adm-filters input[type=date]{min-width:0;max-width:158px}
.app.admin .adm-filters input:focus,.app.admin .adm-filters select:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:transparent}
.app.admin .lens-toggle{height:36px}
.app.admin .lens-toggle button{padding:0 12px;font-size:.84rem}
.adm-checks{display:flex;gap:6px;flex-wrap:wrap}
.app.admin .adm-check{display:inline-flex;align-items:center;gap:7px;height:36px;margin:0;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.84rem;font-weight:500;cursor:pointer;white-space:nowrap}
.app.admin .adm-check input{width:auto;margin:0;accent-color:var(--dusk)}
.app.admin .adm-check:has(input:checked){border-color:var(--dusk);background:rgba(18,32,44,.05)}
.adm-filters .adm-note-inline{font-size:.78rem;color:var(--muted);align-self:center}

/* KPI tiles */
.adm-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}
.adm-kpi{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:13px 15px 12px;min-width:0}
.adm-kpi .k{font-size:.66rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.adm-kpi .v{font-family:var(--fd);font-size:clamp(1.3rem,2.6vw,1.75rem);font-weight:400;line-height:1.15;letter-spacing:-.01em;margin:5px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-kpi .v.neg{color:var(--wine)}
.adm-kpi .s{font-size:.78rem;color:var(--muted);line-height:1.35}
@media(max-width:900px){.adm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* cards and grids */
.app.admin .card{padding:18px}
.adm-card-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px 12px;flex-wrap:wrap;margin-bottom:12px}
.adm-card-h .aside{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}
.adm-grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin:0 0 14px}
.adm-split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:14px;align-items:start}
.adm-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.adm-gap{margin-bottom:14px}
@media(max-width:900px){.adm-grid2,.adm-split{grid-template-columns:minmax(0,1fr)}}

/* tables */
.adm-tcard{padding:0!important;overflow:hidden}
.adm-tcard>.adm-card-h{padding:16px 18px 0;margin-bottom:8px}
.app.admin .adm-table{font-size:.86rem}
.app.admin .adm-table th{font-size:.64rem;letter-spacing:.1em;padding:9px 10px;white-space:nowrap;background:var(--paper);border-bottom:1px solid var(--line)}
.app.admin .adm-table td{padding:9px 10px;line-height:1.4}
.app.admin .adm-table tr>:first-child{padding-left:18px}
.app.admin .adm-table tr>:last-child{padding-right:18px}
.app.admin .adm-table tbody tr:last-child td{border-bottom:0}
.app.admin .adm-table .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.app.admin .adm-table .nw{white-space:nowrap}
.app.admin .adm-table td .sub{display:block;color:var(--muted);font-size:.78rem;margin-top:1px}
.app.admin .adm-table td .clip{display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app.admin .adm-table tbody tr[data-href]{cursor:pointer}
.app.admin .adm-table tbody tr[data-href]:hover td{background:rgba(232,226,213,.45)}
.app.admin .adm-table a.rl{color:var(--ink);text-decoration:none;font-weight:600}
.app.admin .adm-table a.rl:hover{text-decoration:underline}
.app.admin .adm-table tfoot td{border-top:1px solid var(--ink);border-bottom:0;font-weight:600}
.app.admin .adm-table.wide{min-width:860px}
.app.admin .adm-table.mid{min-width:620px}
.adm-nil{color:#B3AEA1}
.adm-sent{color:var(--ink)}
.adm-neg{color:var(--wine)}
.adm-erased{color:var(--muted);font-style:italic}
.adm-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums}
.adm-empty{padding:30px 18px;text-align:center;color:var(--muted);font-size:.9rem}
.adm-empty b{display:block;color:var(--ink);font-weight:600;margin-bottom:2px}
.is-loading{opacity:.5;pointer-events:none;transition:opacity .15s}

/* label / value lists */
.adm-dl{display:grid;grid-template-columns:minmax(0,1fr) auto;margin:0;font-size:.9rem}
.adm-dl>dt,.adm-dl>dd{padding:7px 0;border-bottom:1px solid var(--line);margin:0}
.adm-dl>dt{color:var(--muted)}
.adm-dl>dd{text-align:right;font-variant-numeric:tabular-nums;padding-left:12px}
.adm-dl>dt.tot,.adm-dl>dd.tot{color:var(--ink);font-weight:600;border-bottom-color:var(--ink)}
.adm-dl>dt:last-of-type,.adm-dl>dd:last-of-type{border-bottom:0}
.adm-dl .sub{display:block;font-size:.76rem;color:var(--muted);font-weight:400}
.adm-kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 14px;margin:0;font-size:.9rem}
.adm-kv dt{color:var(--muted);font-size:.8rem;padding-top:1px}
.adm-kv dd{margin:0;overflow-wrap:anywhere}
.adm-qa{margin:0}
.adm-qa dt{font-size:.8rem;color:var(--muted);line-height:1.4}
.adm-qa dd{margin:2px 0 12px;font-size:.93rem;white-space:pre-wrap;overflow-wrap:anywhere}
.adm-qa dd:last-child{margin-bottom:0}
.adm-list{list-style:none;margin:0!important;padding:0!important;font-size:.88rem}
.adm-list li{display:flex;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line)}
.adm-list li:last-child{border-bottom:0}
.adm-list .t{flex:none;width:8.6em;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}
.adm-list .m{flex:1;min-width:0;overflow-wrap:anywhere}
.adm-list .r{flex:none;font-variant-numeric:tabular-nums}
.app.admin .adm-list a{color:var(--ink)}

/* notes, asks, danger */
.adm-note{background:rgba(15,108,104,.07);border:1px solid rgba(15,108,104,.25);border-radius:10px;padding:10px 12px;font-size:.86rem;margin:10px 0 0}
.adm-errline{color:var(--wine);font-size:.84rem;margin:8px 0 0;overflow-wrap:anywhere}
.adm-ask{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:10px;font-size:.88rem}
.adm-ask p{margin:0 0 10px!important}
.adm-danger{border-color:rgba(138,42,44,.45)!important;background:#fff!important}
.app.admin .adm-danger h2{color:var(--wine)}
.adm-danger ul{font-size:.86rem;margin:4px 0 10px!important}
.adm-danger .lbl{font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-top:10px}
.app.admin .btn.danger.solid{background:var(--wine);color:#fff}
.adm-count{display:block;text-align:right;font-size:.74rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px}
.adm-mail{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:.9rem}
.adm-mail .hd{font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:10px;overflow-wrap:anywhere}
.adm-mail .bd{white-space:pre-wrap;overflow-wrap:anywhere}
.adm-mail .ft{margin-top:12px;padding-top:8px;border-top:1px dashed var(--line);font-size:.8rem;color:var(--muted)}
.adm-sec{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}
.adm-sec:first-child,.adm-card-h+.adm-sec{border-top:0;padding-top:0;margin-top:0}
.adm-tag{font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.app.admin .adm-link{color:var(--teal)}
.app.admin .adm-inv input{font-size:.8rem;padding:7px 9px}

/* buttons while a write is in flight */
.app.admin .btn .spinner{width:12px;height:12px;border-width:2px;margin:-2px 4px 0 0}
.app.admin .btn.ghost .spinner,.app.admin .btn.danger .spinner{border-color:var(--line);border-top-color:var(--ink)}

/* extra status pills */
.app .pill-tag.refunded{color:var(--wine);border-color:rgba(138,42,44,.45)}
.app .pill-tag.caution{color:var(--ember);border-color:var(--ember);border-style:dashed}
.app .pill-tag.test{border-style:dashed}
.app .pill-tag.dark{background:var(--dusk);border-color:var(--dusk);color:#fff}

/* free-check result tiles, smaller than on the result page */
.adm-tiles{margin:0 0 14px!important;gap:8px!important}
.adm-tiles .tile{min-height:74px;padding:11px 13px;border-radius:10px}
.adm-tiles .tile .tword{font-size:1.15rem}
@media(max-width:620px){.adm-tiles{grid-template-columns:repeat(3,1fr)!important}.adm-tiles .tile .tword{font-size:.98rem}}

/* charts: inline SVG drawn by admin.html */
.adm-chart{position:relative;width:100%}
.adm-chart svg{display:block;width:100%;height:100%;overflow:visible;touch-action:pan-y}
.adm-chart svg:focus{outline:none}
.adm-chart svg:focus-visible{outline:2px solid var(--teal);outline-offset:4px;border-radius:4px}
.adm-chart text{font-family:var(--fb);font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}
.adm-chart .g{stroke:var(--bone-deep);stroke-width:1}
.adm-chart .g0{stroke:var(--line);stroke-width:1}
.adm-chart .hl{fill:var(--bone-deep);opacity:0;transition:opacity .08s}
.adm-chart .hl.on{opacity:.55}
.adm-chart .c-teal{fill:var(--teal)}
.adm-chart .c-ember{fill:var(--ember)}
.adm-chart .c-muted{fill:#A8A79E}
.adm-chart .dim{opacity:.45}
.adm-chart-t{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:18px 0 6px}
.adm-card-h+.adm-chart-t{margin-top:0}
.adm-chart-t .k{font-size:.66rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.adm-chart-t .v{font-size:.82rem;color:var(--ink);font-variant-numeric:tabular-nums}
.adm-chart-empty{display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:.86rem;border:1px dashed var(--line);border-radius:10px;padding:0 16px}
.adm-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;color:var(--muted);margin:0 0 8px}
.adm-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.adm-legend .c-teal,.adm-tip .c-teal{background:var(--teal)}
.adm-legend .c-ember,.adm-tip .c-ember{background:var(--ember)}
.adm-legend .c-muted,.adm-tip .c-muted{background:#A8A79E}
.adm-tip{position:absolute;left:0;top:0;pointer-events:none;background:var(--dusk);color:#fff;border-radius:8px;padding:7px 10px;font-size:.78rem;line-height:1.45;white-space:nowrap;box-shadow:0 10px 26px -12px rgba(18,32,44,.65);z-index:5}
.adm-tip .d{color:#9fb0bd;font-size:.72rem}
.adm-tip .r{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}
.adm-tip .r i{display:inline-block;width:10px;height:2px;border-radius:1px}
.adm-tip .r b{font-weight:600}
.adm-tip .r span{color:#c7d2da}
.adm-numbers{margin-top:10px;font-size:.84rem}
.app.admin .adm-numbers summary{cursor:pointer;color:var(--teal);font-size:.8rem;width:max-content}
.adm-numbers .table-scroll{max-height:320px;overflow-y:auto;margin-top:8px;border:1px solid var(--line);border-radius:10px;background:#fff}
.app.admin .adm-numbers .adm-table tr>:first-child{padding-left:12px}
.app.admin .adm-numbers .adm-table tr>:last-child{padding-right:12px}
.app.admin .adm-numbers .adm-table th{background:#fff;position:sticky;top:0}

/* funnel */
.adm-funnel{display:grid;gap:4px}
.adm-funnel .st{display:grid;grid-template-columns:minmax(120px,9.5em) minmax(0,1fr) 4.2em 6.2em;gap:12px;align-items:center;padding:6px 0;font-size:.88rem}
.adm-funnel .bar{height:10px;background:var(--bone-deep);border-radius:999px;overflow:hidden}
.adm-funnel .bar i{display:block;height:100%;background:var(--teal);border-radius:999px}
.adm-funnel .c{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.adm-funnel .p{text-align:right;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}
@media(max-width:520px){
  .adm-funnel .st{grid-template-columns:minmax(0,1fr) auto auto;gap:4px 10px}
  .adm-funnel .bar{grid-column:1/-1;grid-row:2}
}

/* needs attention */
.app.admin .adm-attn a{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none}
.app.admin .adm-attn a:hover .m{text-decoration:underline}

@media(max-width:560px){
  .app.admin .wrap{padding:0 16px}
  .adm-nav{margin:6px -16px 0;padding:0 8px}
  .app.admin .card{padding:15px}
  .adm-tcard>.adm-card-h{padding:14px 15px 0}
  .app.admin .adm-table tr>:first-child{padding-left:15px}
  .app.admin .adm-table tr>:last-child{padding-right:15px}
  .adm-pager{padding:10px 15px}
  .adm-head{margin-top:10px}
  .app.admin .adm-filters input[type=date]{max-width:none;width:100%}
  .adm-f.date{flex:1 1 40%}
  .adm-list .t{width:6.6em}
}
body:has(> .page-hero + .footer){min-height:100svh;display:flex;flex-direction:column}
body:has(> .page-hero + .footer) > .page-hero{flex:1}
