/* ============================================================
   CreatorPlan — Monetisation OS (workspace + unlock)
   light, calm, expensive. one brand thread: #3a3e6c.
   ============================================================ */

:root{
  --cursor-text:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='20' viewBox='0 0 8 20'%3E%3Cpath d='M1 1h6M4 1v18M1 19h6' stroke='%238E8E93' stroke-width='0.85' stroke-linecap='square'/%3E%3C/svg%3E") 4 10, text;
  --bg:#f4f5f9;
  --bg-2:#eef0f6;
  --surface:#ffffff;
  --surface-2:#fafbfd;
  --rail:#f8f9fc;

  --ink:#16181f;
  --ink-2:#525767;            /* a touch darker for steadier body contrast */
  --ink-3:#767d91;            /* darkened — was #8b91a3, which read too light/grey */
  --ink-4:#8d94a8;            /* darkened — was #aeb4c4, near-invisible on white */

  --line:#e6e8f0;
  --line-2:#eef0f6;
  --line-3:#dcdfeb;

  --accent:#3a3e6c;
  --accent-2:#4a4f86;
  --accent-ink:#5b61a0;        /* lighter accent for text on white */
  --accent-soft:#eceef6;
  --accent-softer:#f4f5fb;
  --accent-ring:rgba(58,62,108,.16);
  --ok:#3f9a7d;                /* cool teal-green — used only for "online" + locked ticks */

  --shadow-sm:0 1px 2px rgba(22,24,40,.04);
  --shadow:0 1px 2px rgba(22,24,40,.035), 0 10px 26px -14px rgba(22,24,40,.13);
  --shadow-lg:0 28px 64px -20px rgba(28,30,54,.28), 0 2px 8px rgba(22,24,40,.05);

  --r-sm:10px; --r:14px; --r-lg:19px; --r-xl:24px;

  --topbar-h:64px;
  --rail-w:262px;
  --ctx-w:226px;

  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:"Newsreader",Georgia,serif;
}

*{box-sizing:border-box}
html,body{height:100%}
html.preload *{transition:none!important}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:14px;line-height:1.5;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
  /* grey I-beam pointer, thin hairline stroke. cursor is inherited so this alone reaches ordinary
     text (paragraphs, labels, spans); form controls have their OWN UA-stylesheet cursor default
     that blocks inheritance, so input/textarea need the same value set explicitly too (below). */
  cursor:var(--cursor-text);
}
input,textarea{cursor:var(--cursor-text)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}
::selection{background:var(--accent);color:#fff}
button{font-family:inherit;cursor:pointer}
svg{display:block}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:40px;padding:0 18px;border-radius:var(--r-sm);border:1px solid transparent;
  font:500 13.5px/1 var(--sans);letter-spacing:.01em;white-space:nowrap;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .12s ease;
}
.btn:active{transform:translateY(.5px)}
.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px rgba(22,24,40,.18),0 6px 16px -8px rgba(58,62,108,.6)}
.btn-primary:hover{background:#33375f}
.btn-ghost{background:var(--surface);color:var(--ink-2);border-color:var(--line-3);box-shadow:var(--shadow-sm)}
.btn-ghost:hover{color:var(--ink);border-color:var(--ink-4);background:var(--surface-2)}
.btn-soft{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.btn-soft:hover{background:#e3e6f3}
.btn-lg{height:48px;padding:0 26px;font-size:15px;border-radius:var(--r)}
/* Apple-style activity indicator: 8 fixed ticks fading in sequence (nothing rotates) */
.ws-spin rect{animation:ws-spin-fade .9s linear infinite;opacity:.15}
.ws-spin rect:nth-child(1){animation-delay:-.788s}
.ws-spin rect:nth-child(2){animation-delay:-.675s}
.ws-spin rect:nth-child(3){animation-delay:-.563s}
.ws-spin rect:nth-child(4){animation-delay:-.45s}
.ws-spin rect:nth-child(5){animation-delay:-.338s}
.ws-spin rect:nth-child(6){animation-delay:-.225s}
.ws-spin rect:nth-child(7){animation-delay:-.113s}
.ws-spin rect:nth-child(8){animation-delay:0s}
@keyframes ws-spin-fade{0%{opacity:1}100%{opacity:.15}}

/* avatar */
.avatar{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:30px;height:30px;border-radius:50%;
  background:linear-gradient(150deg,#4a4f86,#2f3357);color:#fff;
  font:600 11px/1 var(--mono);letter-spacing:.04em;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}
.avatar.lg{width:42px;height:42px;font-size:14px}
.avatar.has-img{background:var(--bg-2)}
.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}

/* ============================================================
   TOPBAR
   ============================================================ */
.topbar{
  height:var(--topbar-h);display:flex;align-items:center;gap:20px;
  padding:0 22px;background:rgba(248,249,252,.85);backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;
}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.brand-mark{
  width:34px;height:34px;border-radius:9px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(155deg,#41466f,#2c2f52);color:#fff;
  box-shadow:0 2px 8px -2px rgba(58,62,108,.5),inset 0 0 0 1px rgba(255,255,255,.1);
}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text b{font-weight:600;font-size:15px;letter-spacing:-.01em}
.brand-text i{font:500 9px/1.4 var(--mono);letter-spacing:.18em;color:var(--ink-3);font-style:normal}

.creator-chip{
  display:flex;align-items:center;gap:10px;height:42px;padding:0 14px 0 8px;
  background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);
}
.creator-chip[hidden]{display:none}
.cc-text{display:flex;flex-direction:column;line-height:1.15}
.cc-text b{font-weight:600;font-size:13px}
.cc-text i{font:400 11px/1.3 var(--mono);color:var(--ink-3);font-style:normal}

.topbar-right{margin-left:auto;display:flex;align-items:center;gap:16px}
.pipe{display:flex;align-items:center;gap:11px}
.pipe-label{font:500 10px/1 var(--mono);letter-spacing:.18em;color:var(--ink-3)}
.pipe-bar{display:flex;gap:5px}
.pipe-bar i{width:26px;height:5px;border-radius:3px;background:var(--line-3);transition:background .4s ease,box-shadow .4s ease}
.pipe-bar i.on{background:var(--accent);box-shadow:0 0 0 1px var(--accent-ring)}
.pipe-bar i.cur{background:var(--accent-ink);animation:pipePulse 1.6s ease-in-out infinite}
@keyframes pipePulse{0%,100%{opacity:.55}50%{opacity:1}}
.pipe-count{font:500 12px/1 var(--mono);color:var(--ink-2);min-width:24px}

/* ============================================================
   SHELL
   ============================================================ */
.shell{
  display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr) var(--ctx-w);
  height:calc(100vh - var(--topbar-h));
}
.rail,.context{overflow:auto;overscroll-behavior:contain}
.rail::-webkit-scrollbar,.context::-webkit-scrollbar,.main::-webkit-scrollbar{width:10px;height:10px}
.rail::-webkit-scrollbar-thumb,.context::-webkit-scrollbar-thumb,.main::-webkit-scrollbar-thumb{background:var(--line-3);border-radius:6px;border:3px solid transparent;background-clip:padding-box}
.rail::-webkit-scrollbar-thumb:hover,.main::-webkit-scrollbar-thumb:hover{background:var(--ink-4);background-clip:padding-box}

/* ---------- left rail ---------- */
.rail{
  background:var(--rail);border-right:1px solid var(--line);
  padding:24px 18px;display:flex;flex-direction:column;
}
.rail-eyebrow{font:500 11px/1 var(--mono);letter-spacing:.2em;color:var(--ink-2);margin:0}
.rail-title{font:600 18px/1.2 var(--sans);letter-spacing:-.01em;margin:9px 0 20px}

.steps{display:flex;flex-direction:column;gap:3px}
.step{
  position:relative;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:12px;
  width:100%;text-align:left;padding:13px 12px;border-radius:var(--r);
  background:transparent;border:1px solid transparent;color:var(--ink-2);
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,opacity .2s ease;
}
.step:not(.locked){cursor:pointer}
.step:not(.locked):hover{background:var(--surface);border-color:var(--line)}
.step.current{background:var(--surface);border-color:var(--line-3);box-shadow:var(--shadow);color:var(--ink)}
.step.current::before{
  content:"";position:absolute;left:-18px;top:50%;transform:translateY(-50%);
  width:3px;height:26px;border-radius:0 3px 3px 0;background:var(--accent);
}
.step.locked{opacity:.62}
.step-ic{
  width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:none;
  background:var(--bg-2);color:var(--ink-3);border:1px solid var(--line);
  transition:background .16s,color .16s,border-color .16s;
}
.step.current .step-ic{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.step.done .step-ic{background:var(--accent);color:#fff;border-color:transparent}
.step-ic svg{width:16px;height:16px}
.step-tx{display:flex;flex-direction:column;gap:3px;min-width:0}
.step-n{display:flex;align-items:center;gap:7px;font:500 10px/1 var(--mono);letter-spacing:.14em;color:var(--ink-3);white-space:nowrap}
.step-n .sdot{width:5px;height:5px;border-radius:50%;background:var(--line-3)}
.step.current .step-n .sdot{background:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}
.step.done .step-n .sdot{background:var(--ok)}
.step-name{font-weight:600;font-size:13px;color:inherit;letter-spacing:-.008em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.rail-sys{margin-top:auto;padding-top:22px}
.sys-row{display:flex;align-items:center;gap:9px;margin:9px 0 0;font:400 12px/1 var(--mono);color:var(--ink-2)}
.dot{width:7px;height:7px;border-radius:50%;flex:none}
.dot-ok{background:var(--ok);box-shadow:0 0 0 3px rgba(63,154,125,.16);animation:livePulse 2.4s ease-in-out infinite}
@keyframes livePulse{0%,100%{box-shadow:0 0 0 3px rgba(63,154,125,.16)}50%{box-shadow:0 0 0 4px rgba(63,154,125,.05)}}

/* ============================================================
   MAIN / STAGE
   ============================================================ */
.main{display:flex;flex-direction:column;overflow:auto;background:
  radial-gradient(120% 80% at 50% -8%, #fbfcfe, transparent 60%), var(--bg);}
.stage{flex:1;max-width:1400px;width:100%;margin:0 auto;padding:40px 48px 28px}
.stepnav{display:none}

/* step header — indented to line up with the card content column (cards are full-bleed) */
.step-head{margin-bottom:26px;padding-left:14px}
.step-h-main{min-width:0}
.step-kicker{display:inline-flex;align-items:center;font:500 10px/1 var(--mono);letter-spacing:.2em;color:var(--ink-3);margin:0 0 12px}
.step-kicker .sk-cur{color:var(--accent-ink)}
.step-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.step-title{font:620 32px/1.1 var(--sans);letter-spacing:-.028em;margin:0}
.step-desc{margin:12px 0 0;color:var(--ink-2);font-size:15.5px;line-height:1.58;max-width:60ch}

.badge{
  display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 11px;border-radius:999px;
  font:500 10px/1 var(--mono);letter-spacing:.12em;white-space:nowrap;
}
.badge .bdot{width:5px;height:5px;border-radius:50%}
.badge.needs{background:var(--accent-softer);color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--line-3)}
.badge.needs .bdot{background:var(--ink-4)}
.badge.run{background:var(--accent-soft);color:var(--accent)}
.badge.run .bdot{background:var(--accent);animation:livePulse 1.2s ease-in-out infinite}
.badge.ready{background:rgba(63,154,125,.12);color:#2f7a62}
.badge.ready .bdot{background:var(--ok)}
.badge.done{background:rgba(63,154,125,.12);color:#2f7a62}
.badge.done .bdot{background:var(--ok)}

/* source card */
.card-pane{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:24px 26px;}
.src-label{display:flex;align-items:center;gap:8px;font:500 11px/1 var(--mono);letter-spacing:.16em;color:var(--ink-2);margin:0 0 14px}
.src-label svg{width:13px;height:13px;color:var(--ink-4)}
.src-row{display:flex;gap:12px}
.src-input{
  flex:1;display:flex;align-items:center;gap:10px;height:48px;padding:0 16px;
  background:var(--surface-2);border:1px solid var(--line-3);border-radius:var(--r);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.src-input:focus-within{border-color:var(--accent-ink);background:#fff;box-shadow:0 0 0 4px var(--accent-ring)}
.src-input .glyph{color:var(--ink-4);flex:none;display:flex}
.src-input .glyph svg{width:16px;height:16px}
.src-input input{
  flex:1;border:0;background:none;outline:none;color:var(--ink);
  font:400 15px/1 var(--mono);letter-spacing:-.01em;min-width:0;
}
.src-input input::placeholder{color:var(--ink-4)}
.src-input.locked{background:var(--bg-2);border-style:dashed}
.src-run{flex:none}
.src-run .spin{width:14px;height:14px}

.agent-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.achip{
  display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:6px;
  background:var(--bg-2);border:1px solid transparent;
  font:500 9.5px/1 var(--mono);letter-spacing:.1em;color:var(--ink-4);
  transition:color .2s ease,border-color .2s ease,background .2s ease;
}
.achip .adot{width:5px;height:5px;border-radius:50%;background:var(--ink-4);transition:background .2s,box-shadow .2s}
.achip.active{color:var(--accent);border-color:var(--accent-ring);background:var(--accent-softer)}
.achip.active .adot{background:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);animation:livePulse 1s ease-in-out infinite}
.achip.done{color:var(--ink-2);border-color:var(--line-3)}
.achip.done .adot{background:var(--ok)}

/* gameplan import row */
.src-import-row{display:flex;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}
.gp-import-btn{height:32px;padding:0 14px;font-size:12.5px;color:var(--ink-3);gap:6px}
.gp-import-btn svg{width:12px;height:12px}
.gp-import-btn:hover{color:var(--accent-ink)}

/* result region */
.result{margin-top:16px}

/* empty state */
.empty{
  margin-top:20px;border:1.5px dashed var(--line-3);border-radius:var(--r-lg);
  padding:54px 30px;text-align:center;background:
  repeating-linear-gradient(135deg,transparent,transparent 9px,rgba(58,62,108,.012) 9px,rgba(58,62,108,.012) 18px);
}
.empty-ic{
  width:58px;height:58px;border-radius:15px;margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--ink-4);
}
.empty-ic svg{width:26px;height:26px}
.empty h3{font:600 18px/1.2 var(--sans);margin:0 0 8px;color:var(--ink)}
.empty p{margin:0 auto;color:var(--ink-3);max-width:46ch;font-size:14px}

/* agent stream */
.stream{
  margin-top:18px;background:linear-gradient(180deg,#f6f7fc,#eceef7);
  border:1px solid var(--accent-soft);border-radius:var(--r-lg);padding:18px 20px;
  font:400 13px/1.75 var(--mono);color:var(--ink-2);min-height:120px;
  box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:5px;overflow:hidden;
}
.stream-head{display:flex;align-items:center;gap:9px;color:var(--accent-ink);font-size:10px;letter-spacing:.16em;margin-bottom:6px}
.stream-head .dot-ok{width:6px;height:6px}
.sline{color:var(--ink-2);display:flex;gap:10px}
.sline::before{content:"›";color:var(--accent)}
.sline.typing::after{content:"▍";color:var(--accent);animation:caret 1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}

/* result cards */
.rcard{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow);padding:24px 24px 22px;opacity:0;transform:translateY(10px);
  transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);
}
.rcard.in{opacity:1;transform:none}
.rc-eyebrow{display:flex;align-items:center;gap:9px;font:500 11px/1 var(--mono);letter-spacing:.16em;color:var(--ink-2);margin:0 0 16px}
.rc-eyebrow .cidx{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:9px}
.position{font:560 26px/1.28 var(--sans);letter-spacing:-.02em;color:var(--ink);margin:0 0 18px}
.kv{display:grid;grid-template-columns:104px 1fr;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.kv .k{font:500 10px/1.5 var(--mono);letter-spacing:.12em;color:var(--ink-3)}
.kv .v{color:var(--ink);font-size:14.5px;line-height:1.5}
.pillars{display:flex;flex-wrap:wrap;gap:7px}
.pill{display:inline-flex;height:26px;align-items:center;padding:0 11px;border-radius:999px;background:var(--accent-softer);color:var(--accent-ink);border:1px solid var(--line-2);font:500 12px/1 var(--sans)}

/* offer ladder (selectable) */
.olist{display:flex;flex-direction:column;gap:10px}
.orow{
  display:flex;align-items:center;gap:14px;padding:15px 16px;border-radius:var(--r);
  border:1px solid var(--line-3);background:var(--surface-2);text-align:left;width:100%;
  transition:border-color .16s,background .16s,box-shadow .16s,transform .12s;
}
button.orow{cursor:pointer}
button.orow:hover{border-color:var(--accent-ring);background:#fff;box-shadow:var(--shadow-sm)}
.orow.sel{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-ring)}
.o-check{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line-3);flex:none;display:flex;align-items:center;justify-content:center;color:#fff;transition:background .16s,border-color .16s}
.orow.sel .o-check{background:var(--accent);border-color:var(--accent)}
.o-check svg{width:11px;height:11px;opacity:0;transition:opacity .16s}
.orow.sel .o-check svg{opacity:1}
.o-l{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.otier{font:500 9.5px/1 var(--mono);letter-spacing:.14em;color:var(--ink-3)}
.oname{font-weight:600;font-size:15px;letter-spacing:-.01em}
.odesc{color:var(--ink-3);font-size:12.5px}
.oprice{flex:none;max-width:46%;text-align:right;font:500 14px/1.35 var(--mono);color:var(--accent);white-space:normal;overflow-wrap:anywhere}

/* product */
.pname{font:600 21px/1.2 var(--sans);letter-spacing:-.015em;margin:0 0 10px}
.pformat{margin:0 0 20px;color:var(--ink-2);font:400 13px/1.5 var(--mono)}

/* launch */
.lrow{display:flex;gap:16px;padding:13px 0;border-top:1px solid var(--line-3)}
.lrow:first-of-type{border-top:0}
.lw{font:500 12px/1.4 var(--mono);color:var(--accent-ink);flex:none;width:48px}
.lphase{font:500 9.5px/1 var(--mono);letter-spacing:.14em;color:var(--ink-3);margin:0 0 4px}
.lact{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.5}

/* section intro line (gameplan sub-headers) */
.sec-intro{margin:0 0 14px;color:var(--ink-2);font-size:13.5px;line-height:1.55;font-style:italic}

/* validation carousel slides */
.vslides{display:flex;flex-direction:column;gap:10px}
.vslide{padding:13px 15px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line-3)}
.vslide-h{margin:0 0 6px;font:500 10px/1 var(--mono);letter-spacing:.12em;color:var(--accent-ink)}
.vslide-c{margin:0;font-size:13.5px;color:var(--ink);line-height:1.55;white-space:pre-line}

/* selectable ideas (pick one to build around) */
.idea.selectable{cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.idea.selectable:hover{border-color:var(--line-3);background:#fff}
.idea-pick{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-3);flex:none;display:flex;align-items:center;justify-content:center;transition:border-color .15s}
.idea-pick-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);transform:scale(0);transition:transform .15s}
.idea.sel{border-color:var(--accent-ink);background:var(--accent-softer);box-shadow:0 0 0 3px var(--accent-ring)}
.idea.sel .idea-pick{border-color:var(--accent)}
.idea.sel .idea-pick-dot{transform:scale(1)}

/* product builder — unique value zone + format picker */
.fmtpick{display:flex;flex-direction:column;gap:18px;margin-top:18px}
/* refined quote panel — accent rule + subtle cool tint, confident (not oversized) statement */
.value-zone{position:relative;background:linear-gradient(180deg,var(--accent-softer),var(--surface) 72%);border:1px solid var(--accent-soft);border-radius:var(--r-lg);padding:20px 24px 20px 26px;box-shadow:var(--shadow-sm);overflow:hidden}
.value-zone::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--accent)}
.vz-h{display:flex;align-items:center;gap:7px;margin:0 0 11px;font:600 9.5px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink)}
.vz-h svg{color:var(--accent)}
.vz-text{margin:0;font:500 18px/1.55 var(--sans);color:var(--ink);letter-spacing:-.012em;max-width:66ch}
.vz-sub{margin:12px 0 0;font:400 12.5px/1.5 var(--sans);color:var(--ink-3)}
.fmt-idea{margin:0;font-size:13px;color:var(--ink-2)}
.fmt-idea b{color:var(--ink)}
.fmt-q{margin:0;font:600 16px/1.3 var(--sans);color:var(--ink);letter-spacing:-.01em}
.fmt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fmt-card{text-align:left;display:flex;flex-direction:column;gap:9px;padding:18px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);transition:border-color .15s,box-shadow .15s,transform .12s;cursor:pointer}
.fmt-card:hover{border-color:var(--line-3);transform:translateY(-1px);box-shadow:var(--shadow)}
.fmt-ic{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--line);color:var(--accent-ink)}
.fmt-name{font:600 15px/1.2 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.fmt-desc{margin:0;font-size:12.5px;color:var(--ink-3);line-height:1.5}
.fmt-card.sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}
.fmt-card.sel .fmt-ic{background:var(--accent);border-color:var(--accent);color:#fff}
/* featured (live) format — higher contrast so it clearly leads */
.fmt-card.featured{border-color:var(--accent);border-width:1.5px;background:var(--accent-softer);box-shadow:0 0 0 3px var(--accent-ring),var(--shadow)}
.fmt-card.featured .fmt-ic{background:var(--accent);border-color:var(--accent);color:#fff}
.fmt-card.featured .fmt-name{color:var(--accent)}
/* coming-soon formats — visibly disabled */
.fmt-card.soon{position:relative;opacity:.55;cursor:not-allowed;background:var(--surface-2)}
.fmt-card.soon:hover{transform:none;box-shadow:none;border-color:var(--line)}
.fmt-card.soon .fmt-ic{filter:grayscale(1)}
.fmt-soon{position:absolute;top:12px;right:12px;font:600 9px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line-3);border-radius:999px;padding:5px 9px}
@media (max-width:680px){ .fmt-grid{grid-template-columns:1fr} }

/* disabled action buttons (continue / build before a choice) */
.btn.is-disabled{opacity:.45;pointer-events:none}

/* ============================================================
   PRODUCT BUILDER (Coaching Offer)
   ============================================================ */
.doc-card.builder{padding:0 26px 16px}
/* the container above already supplies the lateral inset — an eyebrow that ALSO carries its
   own left/right padding (the shared .doc-card>.rc-eyebrow rule) would double up and sit
   visibly deeper than the plain section content below it (.bsec has no padding of its own) */
.doc-card.builder>.rc-eyebrow,.doc-card.itempage>.rc-eyebrow{padding-left:0;padding-right:0}
.builder .value-zone{margin:6px 0 34px}
.builder .value-zone+.fmt-idea,.builder .value-zone+.bsec{margin-top:4px}
.bsec{border-top:1px solid var(--line-3);padding:22px 0 4px}
.bsec:first-of-type{border-top:0}
.bsec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:4px}
.bsec-title{margin:0;font:600 16px/1.25 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.bsec-desc{margin:4px 0 0;font-size:13px;color:var(--ink-3);line-height:1.45}
.bsec-body{margin:14px 0}
.bsec-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.bsec-gate{font-size:12px;color:var(--ink-4)}
.bsub{margin:20px 0 11px;font:600 13px/1.2 var(--sans);letter-spacing:.01em;color:var(--ink)}
.bsub:first-child{margin-top:0}

/* transformation-map tables */
.btable{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:10px}
.btr{display:grid;grid-template-columns:140px 1fr 1fr}
.btr-h{background:var(--bg-2)}
.btr + .btr{border-top:1px solid var(--line-2)}
.btc{padding:15px 17px;font-size:14.5px;color:var(--ink);line-height:1.55;border-left:1px solid var(--line-2)}
.btc:first-child{border-left:0;color:var(--ink);font-weight:600}
.btr-h .btc{font:600 11px/1.3 var(--mono);letter-spacing:.1em;color:var(--ink-2);text-transform:uppercase}

/* USP options */
.usp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.usp-card{position:relative;text-align:left;display:flex;flex-direction:column;gap:6px;padding:17px 20px 17px 38px;border-radius:var(--r);border:1px solid var(--line-3);background:var(--surface-2);cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.usp-card:hover{border-color:var(--accent-ink);background:#fff}
.usp-n{position:absolute;left:14px;top:15px;font:600 11px/1 var(--mono);color:var(--ink-4)}
.usp-name{font:600 14px/1.2 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.usp-usp{margin:0;font-size:12.5px;color:var(--ink-2);line-height:1.5}
.usp-card.sel{border-color:var(--accent);background:var(--accent-softer);box-shadow:0 0 0 3px var(--accent-ring)}

/* action-plan weeks */
.wk{background:var(--surface-2);border:1px solid var(--line-3);border-radius:var(--r);padding:18px 20px;margin-top:10px}
.wk:first-of-type{margin-top:0}
.wk-h{margin:0 0 10px;font:700 14.5px/1.2 var(--sans);color:var(--ink);letter-spacing:-.01em}
.wk-s{padding:8px 0 0;border-top:1px solid var(--line-3)}
.wk-s:first-of-type{border-top:0;padding-top:0}
.wk-s b{font-size:13px;color:var(--ink)}

/* worksheets */
.sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sheet{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:16px 18px;border-radius:var(--r);border:1px solid var(--line-3);background:var(--surface-2)}
.sheet-info{flex:1;min-width:0}
.sheet-ic{color:var(--accent-ink);flex:none;margin-top:2px}
.sheet-t{font:600 13px/1.2 var(--sans);color:var(--ink)}
.sheet-p{margin:4px 0 0;font-size:12px;color:var(--ink-3);line-height:1.5}
.sheet-dl{flex:none;height:32px;padding:0 14px;font-size:12px;gap:6px}

/* modules */
.bmod-list{display:flex;flex-direction:column;gap:8px;margin:6px 0 2px}
.bmod{display:flex;align-items:center;gap:14px;padding:15px 17px;border-radius:var(--r);border:1px solid var(--line-3);background:var(--surface-2)}
.bmod.done{border-color:var(--accent-soft);background:var(--accent-softer)}
.bmod-n{flex:none;min-width:30px;display:flex;align-items:center;justify-content:flex-start;font:600 13px/1.3 var(--mono);color:var(--accent-ink);letter-spacing:.02em}
.bmod.done .bmod-n{color:var(--accent)}
.bmod-tx{flex:1;min-width:0}
.bmod-title{margin:0;font:600 15px/1.3 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.bmod-sum{margin:4px 0 0;font-size:13.5px;color:var(--ink-2);line-height:1.5}
.bmod-acts{display:flex;gap:6px;flex:none;align-items:center}
.bmod-wrap .bmod{border-radius:var(--r) var(--r) 0 0}
.bmod-regen{padding:13px 15px 14px;border:1px solid var(--line-3);border-top:1px dashed var(--line-3);border-radius:0 0 var(--r) var(--r);background:var(--surface)}
.bmod-regen-in{width:100%;resize:vertical;min-height:44px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line-3);border-radius:10px;font:400 13.5px/1.5 var(--sans);color:var(--ink)}
.bmod-regen-in:focus{outline:none;border-color:var(--accent-ink);background:#fff;box-shadow:0 0 0 4px var(--accent-ring)}
.bmod-regen .lockbar{margin-top:10px}
.btn-sm{height:32px;padding:0 12px;font-size:12.5px}
.btn.icon-only{width:32px;padding:0;flex:none}
.btn.icon-only.is-on{background:var(--accent-soft);color:var(--accent);border-color:transparent}

/* launch & promotion plan */
.promo-stage{margin:0 0 18px;padding:0 0 4px}
.promo-stage-h{margin:0 0 3px;font:600 14px/1.25 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.promo-goal{margin:0 0 12px;font-size:13px;color:var(--ink-3);line-height:1.45}
.promo-post{padding:18px 20px;border-radius:var(--r);border:1px solid var(--line-3);background:var(--surface-2);margin-bottom:10px}
.promo-post-h{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.promo-fmt{font:600 9.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-softer);border:1px solid var(--line-2);border-radius:999px;padding:5px 9px}
.promo-num{font:500 11px/1 var(--mono);color:var(--ink-4)}
.promo-hook{margin:0 0 9px;font:600 14.5px/1.4 var(--sans);color:var(--ink)}
.promo-script{margin:0 0 10px;padding:14px 16px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line-2)}
.promo-script p{margin:0 0 6px;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.promo-script p:last-child{margin-bottom:0}
.promo-meta{margin:5px 0 0;font-size:12.5px;color:var(--ink-3);line-height:1.45}
.promo-meta b{color:var(--ink-2)}

/* module modal — lesson + recording script */
.modal-section-h{display:flex;align-items:center;gap:8px;margin:4px 0 12px;font:600 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink)}
.modal-section-h:not(:first-child){margin-top:22px;padding-top:18px;border-top:1px solid var(--line-3)}
.modal-section-h svg{width:15px;height:15px;color:var(--accent)}
.rec-script{padding:18px 20px;border-radius:var(--r);background:var(--accent-softer);border:1px solid var(--accent-soft)}
.rec-script p{margin:0 0 10px;font-size:14px;line-height:1.6;color:var(--ink)}
.rec-script p:last-child{margin-bottom:0}

/* modules / curriculum — COLLAPSIBLE cards (collapsed by default, expand to reveal) */
/* the capstone card — the course's spine, shown above the module accordions */
.capstone-card{margin:0 0 12px;padding:15px 17px;border:1px solid var(--accent-ring);border-radius:var(--r);background:var(--accent-softer)}
.capstone-k{margin:0 0 7px;font:600 10px/1 var(--mono);letter-spacing:.12em;color:var(--accent-ink)}
.capstone-t{display:block;font:600 15px/1.35 var(--sans);letter-spacing:-.01em;color:var(--ink);margin-bottom:5px}
.capstone-d{margin:0 0 3px;font-size:13px;line-height:1.55;color:var(--ink-2)}
.cur-mod{margin:0 0 9px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .15s,box-shadow .15s}
.cur-mod:not(.collapsed){box-shadow:var(--shadow);border-color:var(--line-3)}
.cur-head{display:flex;align-items:center;gap:14px;width:100%;padding:17px 20px;background:transparent;border:0;text-align:left;transition:background .15s}
.cur-head:hover{background:var(--surface-2)}
.cur-num{flex:none;min-width:20px;font:600 13px/1.3 var(--mono);color:var(--accent-ink);letter-spacing:.02em;align-self:flex-start;margin-top:1px}
.cur-head-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.cur-head-tx b{font:650 16px/1.34 var(--sans);letter-spacing:-.018em;color:var(--ink)}
.cur-head-ti{font:500 14px/1.4 var(--sans);color:var(--ink-2)}
.cur-chev{flex:none;color:var(--ink-4);display:flex;align-self:flex-start;margin-top:3px;transition:transform .22s ease,color .15s}
.cur-mod:not(.collapsed) .cur-chev{transform:rotate(-180deg);color:var(--accent)}
.cur-body{padding:2px 18px 18px 52px;display:flex;flex-direction:column}
.cur-mod.collapsed .cur-body{display:none}
.cur-mod-sum{margin:0 0 2px;font-size:14.5px;color:var(--ink-2);line-height:1.58;max-width:64ch}
.cur-lessons{list-style:none;margin:12px 0 2px;padding:0;display:flex;flex-direction:column;gap:8px}
.cur-lessons li{padding:13px 16px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line-2);font-size:14.5px;color:var(--ink-2);line-height:1.55}
.cur-lessons li b{font-weight:600;color:var(--ink);letter-spacing:-.005em}
.cur-les-sum{color:var(--ink-2)}
/* lessons card — module grouping header */
.les-mod-h{margin:20px 0 10px;font:600 11.5px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink)}

/* creator-only zones — module goal/outcome + recording scripts (never shared with students) */
.mod-private{margin:12px 0 12px;padding:18px 20px;border-radius:var(--r);background:var(--surface-2);border:1px dashed var(--line-3)}
.mod-private-tag{display:inline-flex;align-items:center;gap:6px;margin:0 0 9px;font:600 9.5px/1 var(--mono);letter-spacing:.12em;color:var(--ink-3)}
.mod-private-tag svg{width:12px;height:12px;opacity:.85}
.mod-private-row{margin:6px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.mod-private-row b{color:var(--ink);font-weight:600}
.lesson-script-zone{margin:24px 0 0;padding:20px 22px;border-radius:var(--r);background:var(--surface-2);border:1px dashed var(--line-3)}
.lesson-script-zone .modal-section-h{margin-top:10px}
.lesson-script-zone .modal-section-h:first-child{border-top:0;padding-top:0;margin-top:6px}
.lesson-script-zone .sec-intro{margin:6px 0 0;font-style:normal}
.les-mod-h:first-of-type{margin-top:4px}

/* preview/full tier tag on module & lesson rows */
.tier-tag{display:inline-block;margin-left:8px;font:600 9px/1 var(--mono);letter-spacing:.08em;color:var(--ink-3);background:var(--bg-2);border:1px solid var(--line-3);border-radius:5px;padding:3px 6px;vertical-align:1px}
.tier-tag.full{color:var(--ok);background:rgba(63,154,125,.1);border-color:rgba(63,154,125,.28)}

/* dedicated full-item page (module / lesson) */
/* MUST be the compound .doc-card.itempage (2 classes) — a bare .itempage (1 class) has the
   SAME specificity as .doc-card{padding:0} below and loses the tie by source order, silently
   resetting this padding back to 0. This is why the fix never visibly applied before. */
.doc-card.itempage{padding:28px 26px 24px}
.ip-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}
.ip-topbar .ip-back{margin-bottom:0}
.ip-back{margin:0 0 12px;height:34px;padding:0 14px}
.ip-title{font:620 26px/1.18 var(--sans);letter-spacing:-.026em;margin:6px 0 16px}
.ip-busy{display:flex;align-items:center;gap:10px;padding:30px 4px;color:var(--ink-2);font-size:14px}
.ip-busy svg{width:16px;height:16px;color:var(--accent)}
.ip-outline{background:var(--surface-2);border:1px solid var(--line-3);border-radius:var(--r);padding:18px 20px;margin-bottom:16px}
.ip-hook{font:600 16px/1.4 var(--sans);color:var(--ink);margin:0 0 12px}
.ip-points{margin:0 0 12px;padding-left:18px;display:flex;flex-direction:column;gap:7px}
.ip-points li{font-size:14px;color:var(--ink-2);line-height:1.5}
.ip-action{margin:0;font-size:14px;color:var(--ink)}
.ip-content p{margin:0 0 13px;font-size:14.5px;line-height:1.62;color:var(--ink)}

/* structured module body (overview → objectives → sections → exercise → mistakes → takeaways → quiz) */
.mod-overview{font:400 15.5px/1.62 var(--sans);color:var(--ink-2);margin:0 0 6px;padding:18px 20px;background:var(--accent-softer);border:1px solid var(--accent-soft);border-radius:var(--r)}
.mod-list{margin:0 0 16px;padding-left:18px;display:flex;flex-direction:column;gap:9px}
.mod-list li{font-size:14.5px;line-height:1.58;color:var(--ink-2)}
.mod-list li::marker{color:var(--accent)}
.mod-section{margin:0 0 26px}
.mod-sec-h{display:flex;align-items:flex-start;gap:11px;margin:0 0 11px;font:650 18px/1.34 var(--sans);color:var(--ink);letter-spacing:-.02em}
.mod-sec-n{flex:none;width:24px;height:24px;border-radius:7px;background:var(--accent);color:#fff;font:600 12px/24px var(--mono);text-align:center}
.mod-sec-body p{margin:0 0 12px;font-size:15px;line-height:1.64;color:var(--ink-2)}
.mod-subhead{margin:22px 0 10px;font:600 15px/1.4 var(--sans);color:var(--ink);letter-spacing:-.012em}
.mod-sec-body>p:first-child,.mod-subhead:first-child{margin-top:0}
.mod-example{margin:10px 0 0;padding:14px 18px;background:var(--surface-2);border-left:3px solid var(--accent-soft);border-radius:0 var(--r) var(--r) 0}
.mod-ex-label{display:block;font:600 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 5px}
.mod-example p{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink-2)}

/* premium coaching-lesson blocks — objective callout, copy-paste toolkit assets, assignment */
.lesson-objective{display:flex;flex-direction:column;gap:5px;margin:0 0 20px;padding:16px 20px;background:var(--accent-softer);border:1px solid var(--accent-soft);border-radius:var(--r)}
.lo-label{font:600 9.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink)}
.lo-text{margin:0;font:500 14.5px/1.5 var(--sans);color:var(--ink)}
.lesson-resource{margin:12px 0 0;border:1px solid var(--line-3);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.lesson-resource+.lesson-resource{margin-top:10px}
.lr-head{display:flex;align-items:center;gap:9px;padding:12px 18px;background:var(--surface-2);border-bottom:1px solid var(--line-3)}
.lr-type{flex:none;font:600 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:5px;padding:4px 7px}
.lr-title{font:600 13.5px/1.35 var(--sans);color:var(--ink)}
.lr-content{margin:0;padding:16px 18px;white-space:pre-wrap;word-break:break-word;font:400 12.5px/1.62 var(--mono);color:var(--ink);background:var(--surface);max-width:100%;overflow-x:auto}
.lr-content.lr-clamped{max-height:120px;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%);mask-image:linear-gradient(to bottom,#000 55%,transparent 100%)}
.lr-toggle{display:block;width:100%;margin:0;padding:9px 18px;text-align:left;background:var(--surface-2);border:0;border-top:1px solid var(--line-3);font:600 11.5px/1 var(--sans);color:var(--accent-ink);cursor:pointer}
.lr-toggle:hover{color:var(--accent)}
.lesson-assignment{margin:20px 0 0;padding:18px 20px;background:var(--accent-softer);border:1px solid var(--accent-soft);border-radius:var(--r)}
.la-h{display:flex;align-items:center;gap:8px;margin:0 0 9px;font:600 13.5px/1 var(--sans);color:var(--ink)}
.la-h svg{width:14px;height:14px;color:var(--accent)}
.la-time{margin-left:auto;font:600 9.5px/1 var(--mono);letter-spacing:.06em;color:var(--ink-3);background:var(--bg-2);border:1px solid var(--line-3);border-radius:5px;padding:4px 7px}
.la-task{margin:0 0 7px;font-size:14px;line-height:1.55;color:var(--ink-2)}
.la-toolkit-h{margin:14px 0 8px;font:600 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink)}
.la-deliver{margin:7px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.la-deliver b{color:var(--ink);font-weight:600}
.mod-exercise{padding:18px 20px;background:var(--accent-softer);border:1px solid var(--accent-soft);border-radius:var(--r)}
.mod-exercise p{margin:0 0 9px;font-size:14px;line-height:1.6;color:var(--ink)}
.mod-exercise p:last-child{margin-bottom:0}
.mod-quiz{display:flex;flex-direction:column;gap:14px}
.quiz-q{padding:18px 20px;background:var(--surface-2);border:1px solid var(--line-3);border-radius:var(--r)}
.quiz-q-h{display:flex;gap:8px;margin:0 0 10px;font:600 14.5px/1.45 var(--sans);color:var(--ink)}
.quiz-n{flex:none;font:600 11px/1.6 var(--mono);color:var(--accent);letter-spacing:.05em}
.quiz-opts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.quiz-opt{font-size:13.5px;line-height:1.45;color:var(--ink-2);padding:7px 11px;border:1px solid var(--line-3);border-radius:8px;background:var(--surface)}
.quiz-opt.is-correct{border-color:var(--accent);background:var(--accent-softer);color:var(--ink);font-weight:500}
.quiz-exp{margin:9px 0 0;font-size:13px;line-height:1.5;color:var(--ink-3)}

/* final delivery / export page */
/* compound selector required — see the .doc-card.itempage comment above: a bare .delivery (1 class)
   would tie with .doc-card{padding:0}'s specificity and lose by source order. This page never had
   ANY override at all (unlike builder/itempage), so it was silently relying on .rcard's base padding
   the whole time, which the SAME tie-loss zeroes out. That's why back-button/title/subtitle/grid/
   howto all sat flush against the true card edge regardless of their own internal padding. */
.doc-card.delivery{padding:28px 26px 24px}
.deliver-cta{margin:22px 0 0;padding:24px;border:1px dashed var(--line-3);border-radius:var(--r-lg,16px);background:var(--surface-2);text-align:center}
.deliver-cta-h{margin:0 0 12px;font:500 14px/1.5 var(--sans);color:var(--ink-2)}
.deliver-cta .lockbar{justify-content:center}
.delivery-sub{margin:5px 0 24px;font:400 14px/1.5 var(--mono);color:var(--ink-3)}
.delivery-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.delivery-card{display:flex;flex-direction:column;padding:28px 26px;background:var(--surface-2);border:1px solid var(--line-3);border-radius:var(--r-lg,16px)}
.delivery-ic{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--accent-softer);color:var(--accent);margin:0 0 16px}
.delivery-ic svg{width:20px;height:20px}
.delivery-h{margin:0 0 9px;font:600 18px/1.3 var(--sans);letter-spacing:-.015em;color:var(--ink)}
.delivery-d{margin:0 0 20px;font-size:14.5px;line-height:1.6;color:var(--ink-2);flex:1}
.delivery-card .lockbar{margin:0}
.delivery-card .btn{width:100%;justify-content:center}
.whop-connect-box{margin-top:2px}
.whop-connect-hint{margin:0 0 10px;font-size:12.5px;line-height:1.55;color:var(--ink-3)}
.whop-connect-hint code{font:500 11.5px/1 var(--mono);background:var(--bg-2);color:var(--ink-2);padding:2px 5px;border-radius:5px}
.whop-connect-warn{margin:0 0 12px;padding:11px 13px;background:color-mix(in srgb,#e0483d 12%,var(--surface));border:1px solid color-mix(in srgb,#e0483d 40%,var(--line-3));border-radius:10px;font-size:12.5px;line-height:1.55;color:var(--ink)}
.whop-connect-warn b{color:#c23a30;font-weight:600}
.whop-key-in{width:100%;height:38px;padding:0 12px;margin:0 0 10px;background:var(--surface);border:1px solid var(--line-3);border-radius:var(--r);font:400 13.5px/1 var(--sans);color:var(--ink)}
.whop-key-in:focus{outline:none;border-color:var(--accent-ink);background:#fff;box-shadow:0 0 0 4px var(--accent-ring)}
.whop-pick-list{display:flex;flex-direction:column;gap:8px;margin-top:2px}
.whop-pick-list .btn{width:100%;justify-content:flex-start;text-align:left}
.whop-status{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px;padding:5px 11px;
  background:var(--accent-softer);border-radius:999px;font-size:12px;color:var(--ink-2)}
.whop-status b{font-weight:600;color:var(--accent-ink)}
.whop-links{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:10px;font-size:12.5px;color:var(--ink-4)}
.whop-links button{background:none;border:0;padding:0;font:500 12.5px "Geist",sans-serif;color:var(--ink-3);cursor:pointer}
.whop-links button:hover{color:var(--ink);text-decoration:underline}
.whop-links button:disabled{color:var(--ink-4);cursor:default;text-decoration:none}
.delivery-strategy{margin:26px 0 0;padding:24px;border-top:1px solid var(--line-3)}
.delivery-strat-h{margin:0 0 6px;font:600 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink)}
.delivery-strat-d{margin:0 0 16px;font-size:13.5px;line-height:1.58;color:var(--ink-3);max-width:62ch}
.delivery-howto{margin:20px 0 0;padding:20px 22px;background:var(--surface-2);border:1px solid var(--line-3);border-radius:var(--r-lg,16px)}
.delivery-howto-s{cursor:pointer;font:600 13px/1.4 var(--sans);letter-spacing:-.01em;color:var(--ink);list-style:none;outline:none}
.delivery-howto-s::-webkit-details-marker{display:none}
.delivery-howto[open] .delivery-howto-s{margin-bottom:13px}
.delivery-howto-ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:9px}
.delivery-howto-ol li{font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.delivery-howto-ol strong{color:var(--ink);font-weight:600}
.delivery-howto code{font:500 12px/1 var(--mono);background:var(--accent-softer);color:var(--accent-ink);padding:2px 5px;border-radius:5px}
.delivery-howto-note{margin:13px 0 0;padding-top:12px;border-top:1px solid var(--line-3);font-size:12.5px;line-height:1.55;color:var(--ink-3)}
.delivery-howto-warn{margin:13px 0 0;padding:11px 13px;background:color-mix(in srgb,#e0483d 12%,var(--surface));border:1px solid color-mix(in srgb,#e0483d 40%,var(--line-3));border-radius:10px;font-size:12.8px;line-height:1.55;color:var(--ink)}
.delivery-howto-warn strong{color:#c23a30;font-weight:600}
@media (max-width:720px){.delivery-grid{grid-template-columns:1fr}}
.ip-refine{margin:22px 0 0;padding:16px 0 0;border-top:1px solid var(--line-3)}
.ip-refine-h{display:flex;align-items:center;gap:7px;margin:0 0 10px;font:600 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink)}
.ip-refine-h svg{color:var(--accent)}
.ip-refine-in{width:100%;resize:vertical;min-height:48px;padding:11px 13px;background:var(--surface-2);border:1px solid var(--line-3);border-radius:var(--r);font:400 14px/1.5 var(--sans);color:var(--ink)}
.ip-refine-in:focus{outline:none;border-color:var(--accent-ink);background:#fff;box-shadow:0 0 0 4px var(--accent-ring)}
.ip-refine .lockbar{margin-top:12px}

/* module modal */
.modal-ov{position:fixed;inset:0;z-index:200;background:rgba(20,22,40,.42);display:flex;align-items:center;justify-content:center;padding:24px}
.modal{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);max-width:720px;width:100%;max-height:86vh;display:flex;flex-direction:column;overflow:hidden}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;border-bottom:1px solid var(--line-2)}
.modal-title{margin:0;font:600 18px/1.3 var(--sans);letter-spacing:-.01em}
.modal-x{background:none;border:0;font-size:15px;color:var(--ink-3);width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.modal-x:hover{background:var(--bg-2);color:var(--ink)}
.modal-body{padding:20px 24px;overflow-y:auto}
.modal-body p{margin:0 0 14px;font-size:14.5px;line-height:1.62;color:var(--ink)}
.modal-foot{padding:14px 24px;border-top:1px solid var(--line-2);display:flex;justify-content:flex-end}
@media (max-width:680px){ .usp-grid,.sheet-grid{grid-template-columns:1fr} .btr{grid-template-columns:104px 1fr 1fr} }

/* projection strip */
.proj{
  margin-top:18px;display:flex;flex-direction:column;gap:6px;padding:22px 24px;
  background:linear-gradient(135deg,#2c2f52,#3a3e6c);border-radius:var(--r-lg);color:#fff;
  box-shadow:var(--shadow);opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s;
}
.proj.in{opacity:1;transform:none}
.proj-k{font:500 10px/1 var(--mono);letter-spacing:.16em;color:#b9bee6}
.proj-amt{font:300 34px/1 var(--sans);letter-spacing:-.01em}
.proj-amt .permo{font-size:16px;color:#b9bee6;margin-left:4px}
.proj-note{font:400 12px/1.4 var(--mono);color:#9aa0cf}

/* lock action bar under a result */
.lockbar{display:flex;align-items:center;gap:14px;margin-top:18px;flex-wrap:wrap}
.lockbar .hint{color:var(--ink-3);font-size:13px}

/* intake (the "after some questions" step) */
.intake{margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:24px 26px;display:flex;flex-direction:column;gap:16px}
.intake-eyebrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:500 11px/1 var(--mono);letter-spacing:.16em;color:var(--ink-2);margin:0}
.intake-eyebrow svg{color:var(--accent)}
.intake-sub{font:400 12px/1.4 var(--sans);letter-spacing:.01em;color:var(--ink-3);text-transform:none}
.fld{display:flex;flex-direction:column;gap:8px}
.fld-l{font:500 12px/1 var(--sans);color:var(--ink-2);padding-left:14px}
.fld-in{height:42px;padding:0 14px;background:var(--surface-2);border:1px solid var(--line-3);border-radius:var(--r);font:400 14px/1 var(--sans);color:var(--ink);transition:border-color .16s,box-shadow .16s,background .16s}
/* every field label (.fld-l) is indented 14px on the base rule above, so it sits above its control's content (input text / chip text) consistently across the whole workspace. */
.fld-in:focus{outline:none;border-color:var(--accent-ink);background:#fff;box-shadow:0 0 0 4px var(--accent-ring)}
.fld-in::placeholder{color:var(--ink-4)}
.fld-chips{display:flex;flex-wrap:wrap;gap:8px}
.fchip{height:34px;padding:0 14px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line-3);font:500 13px/1 var(--sans);color:var(--ink-2);transition:background .16s,border-color .16s,color .16s}
.fchip:hover{border-color:var(--ink-4);color:var(--ink)}
.fchip.on{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 1px 2px rgba(22,24,40,.18)}

/* option cards (choose-an-option model) */
.optset{margin-top:20px;display:flex;flex-direction:column;gap:14px}
.opt{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:20px 22px;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1),border-color .16s,box-shadow .16s}
.opt.in{opacity:1;transform:none}
button.opt{cursor:pointer}
button.opt:hover{border-color:var(--accent-ring)}
.opt.sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring),var(--shadow)}
.opt-head{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.opt-check{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-3);flex:none;display:flex;align-items:center;justify-content:center;color:#fff;transition:background .16s,border-color .16s}
.opt-check svg{width:12px;height:12px;opacity:0;transition:opacity .16s}
.opt.sel .opt-check{background:var(--accent);border-color:var(--accent)}
.opt.sel .opt-check svg{opacity:1}
.opt-label{font:600 16px/1.2 var(--sans);letter-spacing:-.01em;color:var(--ink);flex:1;min-width:0}
.opt-tag{font:500 9.5px/1 var(--mono);letter-spacing:.12em;color:var(--accent-ink);background:var(--accent-softer);border:1px solid var(--line-2);padding:5px 9px;border-radius:999px;white-space:nowrap}
.opt-body{display:flex;flex-direction:column}
.opt-body .position{font-size:21px;margin:0 0 14px}
.opt-angle{margin:0 0 14px;color:var(--ink-2);font-size:14px}
.orow.static{cursor:default;background:var(--surface-2)}
.orow.static:hover{border-color:var(--line-3);background:var(--surface-2);box-shadow:none}

/* ============================================================
   AGENT DOCUMENTS (gameplan / ideas / product / launch)
   ============================================================ */
/* ⚠️ SPECIFICITY GOTCHA — this bare single-class rule has silently defeated THREE separate
   page-level padding fixes (itempage, delivery, and nearly builder) because it sits at the
   SAME specificity (0,1,0) as any other bare single-class rule targeting the same element
   (e.g. a plain `.itempage{padding:...}`), and CSS breaks that tie by SOURCE ORDER — whichever
   rule is declared LOWER in this file wins, with zero warning. Since this rule lives near the
   bottom of the "shared" section, it has repeatedly out-ranked earlier per-page padding rules
   and reset them to 0, even though the page's own CSS looked completely correct on inspection.
   RULE FOR ANY NEW `.doc-card`-bearing page/variant: give its container padding via a COMPOUND
   selector — `.doc-card.yourvariant{padding:...}` (2 classes, specificity (0,2,0)) — NEVER a
   bare `.yourvariant{padding:...}`. The compound form wins over this rule regardless of source
   order. `.doc-card.builder`, `.doc-card.itempage`, and `.doc-card.delivery` all follow this
   pattern today; bare `.doc-card` (no variant class — gameplan/ideas pages) is the one case
   that's actually meant to stay at 0 here, because ALL of its direct children bring their own
   compound-safe padding instead (`.doc-card>.rc-eyebrow`, `.dsec`, `.doc-card>.sec-intro`,
   `.doc-card>.idea-list`) — don't "fix" this rule itself without re-auditing every one of those. */
.doc-card{padding:0;overflow:hidden}
.doc-card>.rc-eyebrow{padding:22px 26px 0;margin-bottom:0}
.dsec{padding:22px 26px;border-top:1px solid var(--line-3)}
.dsec-h{font:600 10px/1 var(--mono);letter-spacing:.16em;color:var(--ink-2);margin:0 0 14px}
.dsec .kv:first-of-type{border-top:0;padding-top:0}
.doc-card .position{font-size:21px;margin:0}

/* gameplan — demand */
.themes{display:flex;flex-direction:column;gap:12px}
.theme{padding:16px 20px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line-2)}
.theme-h{font:600 14px/1.3 var(--sans);margin:0 0 5px}
.theme-sig{margin:0 0 6px;color:var(--ink-2);font-size:13px;line-height:1.5}
.theme-pot{margin:0;font-size:12.5px;color:var(--ink-3)}
.theme-pot b{color:var(--ink-2)}
.verdict{margin:14px 0 0;font-size:14px;color:var(--ink-2);line-height:1.55}
.verdict b{color:var(--ink)}
/* gameplan — numbers */
.numgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:14px}
.numrow{display:flex;flex-direction:column;gap:7px;padding:17px 20px;background:var(--surface)}
.num-k{font:500 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.num-v{font:600 15px/1.45 var(--sans);color:var(--ink)}
@media (max-width:680px){ .numgrid{grid-template-columns:1fr} }
.revpot{display:flex;flex-direction:column;gap:5px;padding:18px 20px;border-radius:var(--r);background:linear-gradient(135deg,#2c2f52,#3a3e6c);color:#fff;box-shadow:var(--shadow)}
.rp-k{font:500 10px/1 var(--mono);letter-spacing:.16em;color:#b9bee6}
.rp-amt{font:300 32px/1 var(--sans);letter-spacing:-.01em}
.rp-note{font:400 11.5px/1.4 var(--mono);color:#9aa0cf}
/* gameplan — products */
.prods{display:flex;flex-direction:column;gap:10px}
.prod{padding:17px 20px;border-radius:var(--r);border:1px solid var(--line-3);background:var(--surface-2)}
.prod-h{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:8px}
.prod-label{flex:1;min-width:0;font:600 15px/1.3 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.pkv{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:6px 0}
.pkv-k{font:500 10px/1.5 var(--mono);letter-spacing:.1em;color:var(--ink-3)}
.pkv-v{font-size:14px;color:var(--ink);line-height:1.55}

/* ideas — ranked + scored */
.idea-list{list-style:none;margin:0;padding:4px 0;display:flex;flex-direction:column;gap:10px}
.doc-card>.sec-intro{padding:0 26px}
.doc-card>.idea-list{padding:8px 26px 30px}
.idea{display:flex;align-items:center;gap:15px;padding:17px 20px;border-radius:var(--r);border:1px solid var(--line-3);background:var(--surface-2)}
.idea-rank{font:500 13px/1 var(--mono);color:var(--ink-4);width:22px;flex:none;text-align:right}
.idea-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.idea-title{font-weight:600;font-size:15px;letter-spacing:-.01em;margin:0}
.idea-angle{margin:0;color:var(--ink-2);font-size:13.5px;line-height:1.5}
.idea-fmt{font:500 10px/1 var(--mono);letter-spacing:.06em;color:var(--ink-3);background:var(--surface);border:1px solid var(--line-2);padding:6px 9px;border-radius:999px;white-space:nowrap}
.idea-score{font:600 14px/1 var(--mono);color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line-3);min-width:42px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;flex:none}
.idea-score.warm{color:var(--accent-ink);background:var(--accent-softer);border-color:var(--accent-ring)}
.idea-score.hot{color:#fff;background:var(--accent);border-color:var(--accent)}

/* product — build/headlines/schedule */
.mod-d{margin:3px 0 0;color:var(--ink-2);font-size:13.5px;line-height:1.5}
.headlines{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}
.headlines li{font-size:14px;color:var(--ink);font-weight:500}
.sched{display:flex;flex-direction:column}
.srow{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px 0;border-top:1px solid var(--line)}
.srow:first-child{border-top:0}
.swhen{font:500 11px/1.4 var(--mono);color:var(--accent-ink)}
.spost{font-size:13.5px;color:var(--ink-2);line-height:1.45}

/* launch — validation/sequence/assets */
.val-hook{margin:0 0 12px;font-size:14px;color:var(--ink-2)}
.val-hook b{color:var(--ink)}
.slides{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.slides li{font-size:13.5px;color:var(--ink-2)}
.assets{display:flex;flex-direction:column;gap:10px}
.asset{padding:16px 18px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line-3)}
.asset-t{font:500 10px/1 var(--mono);letter-spacing:.12em;color:var(--accent-ink);margin:0 0 6px}
.asset-s{margin:0;font-size:13.5px;color:var(--ink);line-height:1.5}

/* stepnav */
.snav-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:0;color:var(--ink-3);font:500 13px/1 var(--sans);padding:8px 4px;transition:color .16s}
.snav-btn:not(:disabled):hover{color:var(--accent)}
.snav-btn:disabled{opacity:.4;cursor:default}
.snav-center{font:500 11px/1 var(--mono);letter-spacing:.14em;color:var(--ink-4)}

/* ============================================================
   CONTEXT (right)
   ============================================================ */
.context{background:var(--surface);border-left:1px solid var(--line);padding:24px 20px;display:flex;flex-direction:column;gap:26px}
.ctx-block{display:flex;flex-direction:column}
.ctx-grow{flex:1;min-height:0}
.ctx-eyebrow{display:flex;align-items:center;gap:7px;font:500 11px/1 var(--mono);letter-spacing:.16em;color:var(--ink-2);margin:0 0 16px}
.ctx-eyebrow .ce-ico{color:var(--ink-4);font-size:12px}
.ctx-frac{margin-left:auto;color:var(--ink-2);letter-spacing:.04em}

.ctx-creator{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.ctx-id{display:flex;flex-direction:column;line-height:1.25}
.ctx-id b{font-weight:600;font-size:15px}
.ctx-id i{font:400 12px/1 var(--mono);color:var(--ink-3);font-style:normal;margin-top:3px}
.ctx-stats{margin:0;display:flex;flex-direction:column}
.ctx-stats div{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-top:1px solid var(--line-2)}
.ctx-stats dt{font-size:13px;color:var(--ink-3)}
.ctx-stats dd{margin:0;font:500 13.5px/1 var(--sans);color:var(--ink)}
.ctx-stats dd.mono{font-family:var(--mono);font-weight:500}
.ctx-stats dd{display:flex;align-items:center;gap:7px}
.est-tag{font:500 9px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);
  background:var(--bg-2);border:1px solid var(--line);border-radius:5px;padding:3px 4px}

/* cross-platform reach + data confidence */
.ctx-reach:not(:empty){margin-top:14px;padding-top:14px;border-top:1px solid var(--line-2)}
.reach-h{font:500 10px/1 var(--mono);letter-spacing:.14em;color:var(--ink-3);margin:0 0 10px}
.reach-list{display:flex;flex-direction:column;gap:1px}
.reach{display:flex;align-items:center;gap:8px;padding:7px 0}
.reach + .reach{border-top:1px solid var(--line-2)}
.reach-p{font-size:12.5px;color:var(--ink-2)}
.reach-n{margin-left:auto;font-size:12.5px;color:var(--ink)}
.conf{display:flex;align-items:center;gap:7px;margin:12px 0 0;font:400 11.5px/1.3 var(--sans);color:var(--ink-3)}
.conf-dot{width:6px;height:6px;border-radius:50%;flex:none;background:var(--ink-4)}
.conf-high .conf-dot{background:var(--ok)}
.conf-medium .conf-dot{background:var(--accent-ink)}
.conf-low .conf-dot{background:#c08a3e}

/* shown when a generation silently fell back to an offline/canned draft (AI call errored) —
   same amber used for "low confidence" above, so the app has one consistent warning tone */
.fallback-warn{display:flex;align-items:flex-start;gap:9px;margin:0 0 16px;padding:11px 13px;background:color-mix(in srgb,#c08a3e 12%,var(--surface));border:1px solid color-mix(in srgb,#c08a3e 40%,var(--line-3));border-radius:10px;font-size:12.8px;line-height:1.5;color:var(--ink)}
.fallback-warn svg{flex:none;width:14px;height:14px;margin-top:1px;color:#c08a3e}
.fallback-warn b{font-weight:600}

/* confirm-your-numbers panel */
.confirm .intake-eyebrow svg{color:var(--ok)}
.conf-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.conf-l{display:flex;align-items:center;gap:7px}
.conf-in{width:100%}
.conf-sub2{font:500 10px/1 var(--mono);letter-spacing:.14em;color:var(--ink-3);margin:4px 0 0}
.conf-reach{display:flex;flex-wrap:wrap;gap:8px;margin-top:-4px}
.conf-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:6px 11px}
.conf-chip.pillar{background:var(--accent-softer);border-color:var(--accent-soft);color:var(--accent-ink)}
.conf-sub2 .ok-tag{margin-right:2px}
.conf-bar{margin-top:2px}
.conf-divider{height:1px;background:var(--line-2);margin:6px 0 2px}
.conf-q-h{margin-top:2px}
.ok-tag{display:inline-flex;align-items:center;justify-content:center;font:600 9px/1 var(--mono);color:var(--ok);background:rgba(63,154,125,.1);border:1px solid rgba(63,154,125,.28);border-radius:5px;padding:3px 5px;min-width:16px}
@media (max-width:560px){ .conf-grid{grid-template-columns:1fr} }

/* live plan */
.liveplan{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.lp{display:grid;grid-template-columns:26px 1fr;gap:12px;padding:11px 0;align-items:start}
.lp + .lp{border-top:1px solid var(--line-2)}
.lp-n{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;
  border:1.5px solid var(--line-3);background:var(--surface);color:var(--ink-4);font:500 11px/1 var(--mono);transition:.2s}
.lp.filled .lp-n{background:var(--accent);border-color:var(--accent);color:#fff}
.lp.filled .lp-n svg{width:12px;height:12px}
.lp-tx{min-width:0;display:flex;flex-direction:column;gap:3px;padding-top:2px}
.lp-k{font:500 10px/1 var(--mono);letter-spacing:.13em;color:var(--ink-3)}
.lp.filled .lp-k{color:var(--accent-ink)}
.lp-v{font-size:13px;color:#363b49}
.lp.filled .lp-v{color:var(--ink);font-weight:500}

/* saved decisions */
.decisions{display:flex;flex-direction:column;gap:9px}
.dec-empty{margin:0;color:var(--ink-4);font-size:12.5px;line-height:1.5}
.dec{
  display:flex;flex-direction:column;gap:4px;padding:12px 13px;border-radius:var(--r);
  background:var(--surface-2);border:1px solid var(--line-2);
  animation:decIn .4s cubic-bezier(.2,.7,.2,1);
}
@keyframes decIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.dec-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dec-k{display:flex;align-items:center;gap:7px;font:500 9.5px/1 var(--mono);letter-spacing:.12em;color:var(--accent-ink)}
.dec-k .dc{width:14px;height:14px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center}
.dec-k .dc svg{width:8px;height:8px}
.dec-t{font:400 10px/1 var(--mono);color:var(--ink-4)}
.dec-v{font-size:13px;color:var(--ink);font-weight:500;line-height:1.35}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);z-index:80;
  background:#16181f;color:#fff;padding:12px 18px;border-radius:999px;font-size:13px;font-weight:500;
  box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;max-width:90vw;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ============================================================
   UNLOCK / CHECKOUT INTERSTITIAL
   ============================================================ */
.unlock{display:flex;flex-direction:column;min-height:100vh;background:
  radial-gradient(120% 70% at 50% -10%, #fbfcfe, transparent 55%),
  radial-gradient(80% 60% at 100% 100%, #f0f1f8, transparent 60%), var(--bg)}
.u-top{display:flex;align-items:center;justify-content:space-between;padding:22px 28px}
.u-back{display:inline-flex;align-items:center;gap:8px;color:var(--ink-3);text-decoration:none;font:500 13px/1 var(--sans)}
.u-back:hover{color:var(--ink)}
.u-wrap{flex:1;display:grid;grid-template-columns:1.05fr .95fr;gap:46px;max-width:1040px;width:100%;margin:0 auto;padding:18px 28px 60px;align-items:center}
.u-left{max-width:480px}
.u-eyebrow{display:inline-flex;align-items:center;gap:8px;font:500 11px/1 var(--mono);letter-spacing:.14em;color:var(--accent-ink);
  background:var(--accent-softer);border:1px solid var(--line-2);padding:7px 13px;border-radius:999px;margin:0 0 22px}
.u-eyebrow .dot{background:var(--accent)}
.u-h1{font:600 42px/1.06 var(--sans);letter-spacing:-.03em;margin:0 0 18px}
.u-h1 em{font-style:normal;font-weight:600;color:var(--accent-ink)}
.u-sub{font-size:16px;color:var(--ink-2);margin:0 0 28px;max-width:42ch}
.u-feats{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:14px}
.u-feat{display:flex;gap:13px;align-items:flex-start}
.u-feat .uf-ic{width:30px;height:30px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font:500 11px/1 var(--mono)}
.u-feat b{display:block;font-weight:600;font-size:14.5px;margin-bottom:2px}
.u-feat span{color:var(--ink-3);font-size:13px}

.u-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:30px;max-width:400px;width:100%;justify-self:end}
.u-plan{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}
.u-plan b{font-weight:600;font-size:16px}
.u-plan .u-tag{font:500 10px/1 var(--mono);letter-spacing:.1em;color:var(--accent-ink);background:var(--accent-softer);padding:5px 9px;border-radius:999px}
.u-price{display:flex;align-items:baseline;gap:8px;margin:14px 0 4px}
.u-price .amt{font:300 46px/1 var(--sans);letter-spacing:-.02em}
.u-price .per{color:var(--ink-3);font-size:14px}
.u-price .was{color:var(--ink-4);font-size:15px;text-decoration:line-through}
.u-note{color:var(--ink-3);font-size:12.5px;margin:0 0 22px}
.u-rows{list-style:none;margin:0 0 24px;padding:18px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:12px}
.u-rows li{display:flex;align-items:center;gap:11px;font-size:14px;color:var(--ink-2)}
.u-rows .uc{width:18px;height:18px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none}
.u-rows .uc svg{width:10px;height:10px}
.u-card .btn-lg{width:100%}
.u-secure{display:flex;align-items:center;justify-content:center;gap:7px;margin:14px 0 0;color:var(--ink-4);font:400 11.5px/1 var(--mono)}
.u-secure svg{width:12px;height:12px}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  :root{--ctx-w:222px;--rail-w:252px}
  .stage,.stepnav{padding-left:34px;padding-right:34px}
}
@media (max-width:980px){
  .shell{grid-template-columns:1fr}
  .rail,.context{display:none}
  .u-wrap{grid-template-columns:1fr;gap:30px}
  .u-card{justify-self:stretch;max-width:none}
  .u-left{max-width:none}
}
@media (max-width:560px){
  .topbar{gap:12px;padding:0 14px}
  .creator-chip,.pipe-label{display:none}
  .stage{padding:24px 18px}.stepnav{padding:14px 18px}
  .step-title{font-size:24px}
  .src-row{flex-direction:column}.u-h1{font-size:32px}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* ============================================================
   ACCOUNTS — auth overlay · account chip · history drawer · upgrade
   Light, calm, one brand thread (#3a3e6c). Matches the workspace.
   ============================================================ */
.cp-spin rect{animation:ws-spin-fade .9s linear infinite;opacity:.15}
.cp-spin rect:nth-child(1){animation-delay:-.788s}
.cp-spin rect:nth-child(2){animation-delay:-.675s}
.cp-spin rect:nth-child(3){animation-delay:-.563s}
.cp-spin rect:nth-child(4){animation-delay:-.45s}
.cp-spin rect:nth-child(5){animation-delay:-.338s}
.cp-spin rect:nth-child(6){animation-delay:-.225s}
.cp-spin rect:nth-child(7){animation-delay:-.113s}
.cp-spin rect:nth-child(8){animation-delay:0s}

/* ---- auth overlay (auth.js) ---- */
html.cp-auth-open{overflow:hidden}
.cp-auth{
  position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(232,234,243,.72);backdrop-filter:blur(10px) saturate(1.1);
  -webkit-backdrop-filter:blur(10px) saturate(1.1);animation:cpFade .28s ease both;
}
.cp-auth.cp-auth-out{animation:cpFade .22s ease reverse both}
@keyframes cpFade{from{opacity:0}to{opacity:1}}
.cp-auth-card{
  width:100%;max-width:404px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:30px 32px 26px;
  animation:cpRise .34s cubic-bezier(.2,.7,.25,1) both;
}
@keyframes cpRise{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.cp-auth-head{display:flex;align-items:center;gap:11px;margin-bottom:20px}
.cp-auth-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--accent);flex:none;box-shadow:0 4px 12px -4px rgba(58,62,108,.6)}
.cp-auth-brand{display:flex;flex-direction:column;line-height:1.2}
.cp-auth-brand b{font:600 15px/1 var(--sans);color:var(--ink);letter-spacing:-.01em}
.cp-auth-brand i{font:500 9px/1.5 var(--mono);letter-spacing:.18em;color:var(--ink-3);font-style:normal}
.cp-auth-h{margin:0;font:600 23px/1.2 var(--sans);letter-spacing:-.02em;color:var(--ink)}
.cp-auth-sub{margin:7px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.cp-auth-tabs{display:flex;gap:4px;margin:18px 0 16px;padding:4px;background:var(--bg-2);border-radius:var(--r-sm)}
.cp-tab{flex:1;height:34px;border:0;border-radius:7px;background:transparent;color:var(--ink-3);font:500 13px/1 var(--sans);transition:background .15s,color .15s,box-shadow .15s}
.cp-tab.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.cp-tab:not(.on):hover{color:var(--ink-2)}
.cp-field{display:block;margin-bottom:13px}
.cp-field>span{display:block;font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:7px}
.cp-field input,.cp-code{
  width:100%;height:44px;padding:0 14px;border:1px solid var(--line-3);border-radius:var(--r-sm);
  background:var(--surface-2);color:var(--ink);font:400 14.5px/1 var(--sans);transition:border-color .15s,box-shadow .15s,background .15s;
}
.cp-field input:focus,.cp-code:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-ring)}
/* .cp-code is a bare input (not wrapped in .cp-field), so it needs .cp-field's 13px rhythm itself —
   without it the next label/button sits nearly flush underneath */
.cp-code{height:56px;margin-bottom:13px;text-align:center;font:600 26px/1 var(--mono);letter-spacing:.42em;padding-left:.42em}
/* forgot/reset/verify have no tabs between the subtitle and the form — this keeps the same gap the
   sign-in view gets from its tab row (sibling margins collapse, so that view is unaffected) */
.cp-auth-card form{margin-top:16px}
.cp-auth-err{margin:0 0 12px;padding:9px 12px;border-radius:8px;background:#fbeef0;border:1px solid #f3d6db;color:#a23b50;font-size:12.5px;line-height:1.45}
.cp-auth-dev{margin:14px 0 0;padding:10px 12px;border-radius:8px;background:var(--accent-softer);border:1px dashed var(--accent-ring);color:var(--ink-2);font-size:12.5px;line-height:1.5}
.cp-auth-dev b{font-family:var(--mono);letter-spacing:.12em;color:var(--accent)}
.cp-auth-btn{
  width:100%;height:46px;margin-top:4px;border:0;border-radius:var(--r-sm);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--accent);color:#fff;font:500 14.5px/1 var(--sans);
  box-shadow:0 1px 2px rgba(22,24,40,.18),0 6px 16px -8px rgba(58,62,108,.6);transition:background .15s,transform .12s,opacity .15s;
}
.cp-auth-btn:hover{background:#33375f}
.cp-auth-btn:disabled{opacity:.65;cursor:default}
.cp-auth-btn:active{transform:translateY(.5px)}
.cp-auth-foot{margin:16px 0 0;text-align:center;font-size:13px;color:var(--ink-2)}
.cp-auth-foot a{color:var(--accent-ink);text-decoration:none;font-weight:500;cursor:pointer}
.cp-auth-foot a:hover{text-decoration:underline}
.cp-auth-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:34px 0 22px;color:var(--ink-3);font-size:13.5px}

/* ---- topbar: history button + account chip ---- */
.ws-hist{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border:1px solid var(--line-3);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font:500 12.5px/1 var(--sans);box-shadow:var(--shadow-sm);transition:border-color .15s,color .15s,background .15s}
.ws-hist:hover{color:var(--ink);border-color:var(--ink-4);background:var(--surface-2)}
.ws-hist svg{color:var(--ink-3)}
.ws-hist-n{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent-soft);color:var(--accent);font:600 10.5px/1 var(--mono)}
.ws-acct{position:relative}
.ws-acct-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:3px 10px 3px 3px;border:1px solid var(--line-3);border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}
.ws-acct-btn:hover{border-color:var(--ink-4)}
.ws-acct-av{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font:600 13px/1 var(--sans)}
.ws-plan{font:600 9.5px/1 var(--mono);letter-spacing:.12em;color:var(--ink-3)}
.ws-plan.pro{color:var(--accent)}
.ws-acct-menu{position:absolute;top:calc(100% + 8px);right:0;width:212px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:7px;z-index:60;animation:cpRise .18s ease both}
.ws-acct-email{margin:6px 9px 1px;font:500 12.5px/1.3 var(--sans);color:var(--ink);word-break:break-all}
.ws-acct-plan{margin:0 9px 7px;font:500 10px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.ws-menu-sep{height:1px;background:var(--line-2);margin:5px 0}
.ws-menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 9px;border:0;border-radius:8px;background:transparent;color:var(--ink-2);font:500 13px/1 var(--sans);text-align:left;transition:background .12s,color .12s}
.ws-menu-item svg{color:var(--ink-4)}
.ws-menu-item:hover{background:var(--bg-2);color:var(--ink)}
.ws-menu-item.accent{color:var(--accent)}.ws-menu-item.accent svg{color:var(--accent)}
.ws-menu-item.accent:hover{background:var(--accent-soft)}
.ws-menu-item.danger:hover{background:#fbeef0;color:#a23b50}.ws-menu-item.danger:hover svg{color:#a23b50}

/* ---- history drawer ---- */
.ws-drawer-back{position:fixed;inset:0;z-index:100;background:rgba(22,24,40,.22);opacity:0;pointer-events:none;transition:opacity .26s ease}
.ws-drawer-back.on{opacity:1;pointer-events:auto}
.ws-drawer{position:fixed;top:0;right:0;bottom:0;z-index:101;width:360px;max-width:90vw;background:var(--rail);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translateX(102%);transition:transform .3s cubic-bezier(.2,.7,.25,1);display:flex;flex-direction:column}
.ws-drawer.on{transform:none}
.ws-dr-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 22px 16px;border-bottom:1px solid var(--line-2)}
.ws-dr-k{margin:0 0 5px;font:500 10px/1 var(--mono);letter-spacing:.2em;color:var(--ink-3)}
.ws-dr-h{margin:0;font:600 18px/1.2 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.ws-dr-x{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line-3);border-radius:8px;background:var(--surface);color:var(--ink-3);flex:none;transition:color .15s,border-color .15s}
.ws-dr-x:hover{color:var(--ink);border-color:var(--ink-4)}
.ws-dr-body{flex:1;overflow-y:auto;padding:16px 16px 24px}
.ws-dr-new{display:flex;align-items:center;gap:9px;width:100%;height:44px;padding:0 14px;margin-bottom:14px;border:1px dashed var(--line-3);border-radius:var(--r-sm);background:var(--surface);color:var(--accent);font:500 13px/1 var(--sans);transition:border-color .15s,background .15s}
.ws-dr-new:hover{border-color:var(--accent);background:var(--accent-softer)}
.ws-dr-new.spent{color:var(--ink-3);border-style:solid}
.ws-dr-new.spent:hover{border-color:var(--accent);background:var(--accent-softer);color:var(--accent)}
.ws-gen{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:12px;margin-bottom:8px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);text-align:left;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .12s}
.ws-gen:hover{border-color:var(--accent-ring);box-shadow:var(--shadow)}
.ws-gen.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}
.ws-gen-av{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font:600 12px/1 var(--sans);flex:none;overflow:hidden;background-size:cover;background-position:center}
.ws-gen-av img{width:100%;height:100%;object-fit:cover;display:block}
.ws-gen-tx{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.ws-gen-tx b{font:600 13.5px/1.2 var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-gen-tx i{font:400 11.5px/1.2 var(--mono);color:var(--ink-3);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-gen-steps{font:600 10.5px/1 var(--mono);letter-spacing:.06em;color:var(--ink-3);background:var(--bg-2);padding:4px 7px;border-radius:6px;flex:none}
.ws-gen-del{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;color:var(--ink-4);flex:none;transition:color .15s,background .15s}
.ws-gen-del:hover{color:#a23b50;background:#fbeef0}
.ws-dr-empty{text-align:center;padding:38px 20px;color:var(--ink-3)}
.ws-dr-empty-ic{display:inline-flex;color:var(--ink-4);opacity:.5;margin-bottom:10px}
.ws-dr-empty p{margin:0 0 4px;font:600 14px/1.3 var(--sans);color:var(--ink-2)}
.ws-dr-empty span{font-size:12.5px;line-height:1.5}

/* ---- upgrade modal ---- */
html.ws-modal-open{overflow:hidden}
/* overflow-y + margin:auto on the card: on viewports shorter than the card (landscape phones,
   small laptops) a center-aligned flex child taller than its container clips at BOTH ends —
   this keeps it centered when it fits and scrollable (with the close X reachable) when it doesn't */
.ws-upsell{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto;background:rgba(22,24,40,.34);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:cpFade .22s ease both}
.ws-upsell.out{animation:cpFade .18s ease reverse both}
.ws-upsell-card{position:relative;width:100%;max-width:432px;margin:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:30px 32px 24px;animation:cpRise .3s cubic-bezier(.2,.7,.25,1) both}
.ws-upsell-x{position:absolute;top:16px;right:16px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--ink-4);transition:color .15s,background .15s}
.ws-upsell-x:hover{color:var(--ink);background:var(--bg-2)}
.ws-upsell-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font:600 10px/1 var(--mono);letter-spacing:.14em}
.ws-upsell-h{margin:14px 0 0;font:600 22px/1.25 var(--sans);letter-spacing:-.02em;color:var(--ink)}
.ws-upsell-sub{margin:8px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.ws-upsell-feats{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.ws-upsell-feats li{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;line-height:1.45;color:var(--ink)}
.uf-c{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;flex:none;margin-top:1px}
.uf-c svg{width:11px;height:11px}
.ws-upsell-price{display:flex;align-items:baseline;gap:8px;margin:20px 0 16px;padding-top:18px;border-top:1px solid var(--line-2)}
.ws-upsell-price .amt{font:600 32px/1 var(--sans);letter-spacing:-.02em;color:var(--ink)}
.ws-upsell-price .per{font:500 13px/1 var(--sans);color:var(--ink-3)}
.ws-upsell-price .was{margin-left:auto;font:500 14px/1 var(--mono);color:var(--ink-4);text-decoration:line-through}
.ws-upsell-cta{width:100%}
.ws-upsell-later{display:block;width:100%;margin:11px 0 0;border:0;background:transparent;color:var(--ink-3);font:500 13px/1 var(--sans);padding:8px;transition:color .15s}
.ws-upsell-later:hover{color:var(--ink-2)}

/* plan selector (monthly / annual) */
.ws-plan-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 14px;padding-top:18px;border-top:1px solid var(--line-2)}
.ws-plan-opt{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:13px 14px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--surface);cursor:pointer;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s}
.ws-plan-opt:hover{border-color:var(--line-3,var(--ink-4))}
.ws-plan-opt.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.ws-plan-amt{font:600 23px/1 var(--sans);letter-spacing:-.02em;color:var(--ink)}
.ws-plan-amt i{margin-left:3px;font:500 12px/1 var(--sans);font-style:normal;color:var(--ink-3)}
.ws-plan-note{font:500 11.5px/1.3 var(--sans);color:var(--ink-3)}
.ws-plan-badge{position:absolute;top:-9px;right:10px;padding:2px 7px;border-radius:6px;background:var(--accent);color:#fff;font:600 9px/1 var(--mono);letter-spacing:.06em}
.ws-upsell-fine{margin:10px 0 0;text-align:center;font:500 11.5px/1 var(--sans);color:var(--ink-4)}

/* inline pricing card — rendered under a free user's finished gameplan (non-blocking sibling
   of the upgrade modal; reuses .ws-upsell-badge/.ws-upsell-feats/.ws-plan-opts from above) */
.ws-pricing-inline{
  margin-top:18px;padding:26px 28px 24px;
  background:linear-gradient(180deg,var(--accent-softer),var(--surface) 70%);
  border:1px solid var(--accent-ring);border-radius:var(--r-lg,16px);
  animation:cpRise .34s cubic-bezier(.2,.7,.25,1) both;
}
.wsp-in-head{display:flex;align-items:center;justify-content:space-between}
.wsp-in-x{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--ink-4);transition:color .15s,background .15s}
.wsp-in-x:hover{color:var(--ink);background:var(--bg-2)}
.wsp-in-h{margin:14px 0 0;font:600 19px/1.3 var(--sans);letter-spacing:-.015em;color:var(--ink)}
.wsp-in-sub{margin:7px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink-2);max-width:560px}
.ws-pricing-inline .ws-upsell-feats{display:grid;grid-template-columns:1fr 1fr;gap:9px 22px}
/* the modal's full-width border-top divider would stop a third of the way across this wide card —
   drop it here and let margin carry the rhythm instead */
.ws-pricing-inline .ws-plan-opts{max-width:460px;border-top:0;padding-top:6px}
.wsp-in-fine{text-align:left;margin-top:12px}
.wsp-in-bar{display:flex;align-items:center;gap:14px;margin-top:2px}
.wsp-in-bar .ws-upsell-cta{width:auto;padding:0 26px}
@media (max-width:640px){
  .ws-pricing-inline .ws-upsell-feats{grid-template-columns:1fr}
  .ws-pricing-inline .ws-plan-opts{max-width:none}
  .wsp-in-bar .ws-upsell-cta{width:100%}
}

/* packaging overlay — full generation progress before the delivery/export page opens */
.wsp-ov{position:fixed;inset:0;z-index:140;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(22,24,40,.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:cpFade .22s ease both}
.wsp-ov.out{animation:cpFade .18s ease reverse both}
.wsp-card{position:relative;width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:32px 32px 28px;text-align:center;animation:cpRise .3s cubic-bezier(.2,.7,.25,1) both}
.wsp-spin{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-soft);color:var(--accent)}
.wsp-spin svg{width:16px;height:16px}
.wsp-h{margin:16px 0 0;font:600 19px/1.3 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.wsp-sub{margin:8px 0 0;font-size:13px;line-height:1.55;color:var(--ink-2)}
.wsp-bar{margin:22px 0 0;height:7px;border-radius:999px;background:var(--bg-2);overflow:hidden}
.wsp-bar-fill{height:100%;width:0%;border-radius:999px;background:var(--accent);transition:width .35s cubic-bezier(.2,.7,.25,1)}
.wsp-count{margin:12px 0 0;font:590 15px/1.2 var(--sans);letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums}
.wsp-label{margin:4px 0 0;min-height:18px;font-size:13px;line-height:1.4;color:var(--ink-3);transition:opacity .15s}

/* export preview modal — one already-written lesson, rendered exactly as the ZIP/Notion export will look */
.wsp-preview-card{position:relative;width:100%;max-width:760px;height:min(86vh,900px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;text-align:left;animation:cpRise .3s cubic-bezier(.2,.7,.25,1) both}
.wsp-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--line-3);flex:none}
.wsp-preview-tag{margin:0 0 4px;font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink)}
.wsp-preview-sub{margin:0;font-size:13px;line-height:1.5;color:var(--ink-2);max-width:520px}
.wsp-preview-frame{flex:1;width:100%;border:0;background:#fff}

@media (max-width:560px){
  .cp-auth-card{padding:26px 22px}
  .ws-drawer{width:100%}
  .ws-hist-tx{display:none}
}

/* ============================================================
   MOBILE — auto-adapts under 920px; the desktop layout above is
   untouched. The 3-column shell stacks: the left rail becomes a
   horizontal step strip under the topbar, the right context panel
   is hidden (its info — creator stats, live plan — is secondary on
   a phone), and the main column becomes the page.
   ============================================================ */
@media (max-width:920px){
  .shell{display:flex;flex-direction:column;height:auto;min-height:calc(100vh - var(--topbar-h))}
  .rail{display:flex;flex-direction:row;align-items:center;padding:10px 12px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto;overscroll-behavior-x:contain}   /* the older 980px breakpoint sets display:none — must re-declare display here or it stays hidden */
  .rail-title,.rail-eyebrow,.rail-sys{display:none}
  .steps{flex-direction:row;gap:8px;flex:none}
  .step{flex:none;padding:8px 12px}
  .step-name{max-width:118px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .context{display:none}
  .main{overflow:visible}
  .stage{padding:22px 14px 24px}
  .creator-chip,.pipe{display:none}   /* the bare progress bar duplicates the "STEP x/4" heading already on the page — cut it to stop the topbar overflowing */
  .topbar{padding-left:14px;padding-right:14px}
  .doc-card.itempage{padding:22px 16px 20px}    /* compound selectors on purpose — see the .doc-card gotcha note above */
  .doc-card.delivery{padding:22px 16px 20px}
  .doc-card.builder{padding:0 16px}
  .lockbar{flex-wrap:wrap}
  .ip-topbar{flex-wrap:wrap;gap:8px}
  .delivery-strategy{padding:20px 4px}
}
