/* ============================================================================
   The Deck — shared card-paradigm styles (v1)
   Frozen visual grammar lifted from /cardlab. Governing spec: CARD_PARADIGM.md.
   Dark-first grayscale-on-black with color reserved for accents; a light
   variant preserves the same "color = accent only" philosophy so the existing
   theme toggle keeps working. Every real page (dashboard/account/project)
   links this + deck.js and feeds real SPStore data into the same engine.
   ========================================================================== */
:root{
  --bg:#050506; --bg-2:#0d0d0f; --surface:#151517; --surface-2:#1d1d20;
  --line:#2a2a2e; --line-2:#3b3b42; --text:#f6f6f8; --muted:#a4a4ad; --faint:#6c6c75;
  --blue:#3b82f6; --blue-2:#60a5fa; --blue-deep:#1d4ed8;
  --yellow:#ffd60a; --yellow-2:#fbbf24; --yellow-soft:rgba(255,214,10,.12);
  --blue-soft:rgba(96,165,250,.10); --green:#28c840; --green-soft:rgba(40,200,64,.14);
  --pink:#f472b6; --purple:#a78bfa; --teal:#2dd4bf; --orange:#fb923c;
  --glow:rgba(59,130,246,.35); --shadow:0 24px 60px -20px rgba(0,0,0,.8); --chip:#0c1526; --sheet:#0c1424;
}
html[data-theme="light"]{
  --bg:#f3f4f7; --bg-2:#ffffff; --surface:#ffffff; --surface-2:#f4f5f8;
  --line:#e4e6ec; --line-2:#d3d6df; --text:#14151a; --muted:#565a66; --faint:#8b8f9c;
  --blue:#2563eb; --blue-2:#1d4ed8; --blue-deep:#1e40af;
  --yellow:#c98f00; --yellow-2:#b07d00; --yellow-soft:rgba(201,143,0,.12);
  --blue-soft:rgba(37,99,235,.07); --green:#1a9e37; --green-soft:rgba(26,158,55,.12);
  --pink:#db2777; --purple:#7c3aed; --teal:#0d9488; --orange:#ea580c;
  --glow:rgba(37,99,235,.18); --shadow:0 20px 50px -24px rgba(20,40,90,.22); --chip:#eef1f7; --sheet:#ffffff;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{max-width:100%;overflow-x:hidden}
body{margin:0;color:var(--text);font-family:"Inter",-apple-system,system-ui,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  background:radial-gradient(125% 55% at 50% -8%, var(--bg-2), var(--bg) 58%) fixed;min-height:100vh;padding-bottom:96px}
h1,h2,h3{font-family:"Space Grotesk","Inter",sans-serif;letter-spacing:-.02em;line-height:1.1;margin:0}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace}
.wrap{width:100%;max-width:640px;margin:0 auto;padding:0 15px}

/* ---------- header ---------- */
header.top{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:10px;height:56px;overflow:hidden}
.brand{display:flex;align-items:center;gap:9px;font-family:"Space Grotesk";font-weight:700;font-size:.98rem;min-width:0}
.brand>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand b{font-weight:700}
.brand .mark{width:26px;height:26px;border-radius:8px;flex:0 0 auto;position:relative;background:conic-gradient(from 210deg,var(--blue-deep),var(--blue),var(--yellow),var(--blue));box-shadow:0 0 0 1px var(--line-2),0 6px 18px -6px var(--glow)}
.brand .mark::after{content:"";position:absolute;inset:6px;border-radius:4px;background:var(--bg)}
.brand small{display:block;font-size:.6rem;font-weight:600;color:var(--faint);letter-spacing:.14em;text-transform:uppercase;margin-top:1px}
.spacer{flex:1}
.hbtn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;background:var(--surface);border:1px solid var(--line-2);color:var(--muted);padding:8px 12px;border-radius:999px;font:inherit;font-size:.8rem;font-weight:600}
.hbtn:hover{border-color:var(--blue);color:var(--text)}
.hbtn.back{text-decoration:none}
.agsel{max-width:30vw;flex:0 1 auto;background:var(--surface);border:1px solid var(--line-2);color:var(--text);border-radius:999px;padding:8px 10px;font:inherit;font-size:.76rem;font-weight:700;-webkit-appearance:none;appearance:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agsel:focus{outline:none;border-color:var(--blue)}
/* persona segmented */
.persona{flex:0 0 auto;display:inline-flex;background:var(--surface);border:1px solid var(--line-2);border-radius:999px;padding:3px;gap:2px}
.persona button{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:700;font-size:.76rem;padding:7px 13px;border-radius:999px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:.2s}
.persona button.on{background:linear-gradient(180deg,var(--blue),var(--blue-deep));color:#fff;box-shadow:0 6px 16px -8px var(--glow)}

/* ---------- breadcrumb ---------- */
.crumb{display:flex;align-items:center;gap:7px;padding:14px 0 0;color:var(--faint);font-size:.8rem;font-weight:600;min-height:20px;flex-wrap:wrap}
.crumb a,.crumb button{border:0;background:transparent;color:var(--blue-2);font:inherit;font-weight:700;cursor:pointer;padding:4px 0;display:inline-flex;align-items:center;gap:5px;text-decoration:none}
.crumb .sep{opacity:.5}

/* ---------- companion (Chip) dock ---------- */
.chip{position:relative;margin:14px 0 6px;display:flex;gap:12px;align-items:center;background:
    linear-gradient(180deg,color-mix(in srgb,var(--blue) 14%,var(--surface)),var(--surface));
  border:1px solid var(--blue-deep);border-radius:20px;padding:14px 15px;overflow:hidden;box-shadow:0 18px 40px -26px var(--glow)}
.chip::after{content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,var(--glow),transparent 68%);pointer-events:none}
.chip .face{width:46px;height:46px;flex:0 0 auto;border-radius:14px;display:grid;place-items:center;font-size:1.5rem;background:linear-gradient(180deg,var(--blue),var(--blue-deep));box-shadow:0 8px 20px -8px var(--glow);position:relative}
.chip .face .live{position:absolute;right:-3px;bottom:-3px;width:14px;height:14px;border-radius:50%;background:var(--green);border:2.5px solid var(--surface);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 var(--green-soft)}50%{box-shadow:0 0 0 6px transparent}}
.chip .body{min-width:0;flex:1}
.chip .who{font-family:"Space Grotesk";font-weight:700;font-size:.98rem;display:flex;align-items:center;gap:7px}
.chip .who .tag{font-size:.58rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green);background:var(--green-soft);padding:3px 7px;border-radius:99px}
.chip .say{color:var(--muted);font-size:.9rem;margin-top:3px;line-height:1.4}
.chip .say b{color:var(--text);font-weight:600}

/* ---------- section label ---------- */
.sectitle{font-family:"Space Grotesk";font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);margin:24px 3px 12px;display:flex;align-items:center;gap:8px}
.sectitle .cnt{margin-left:auto;font-family:"JetBrains Mono";font-size:.7rem;color:var(--faint)}

/* ---------- card grid ---------- */
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.grid>*{min-width:0}
.grid .col-2{grid-column:span 2}

/* base card look */
.kard{position:relative;border-radius:20px}
.k-hint{position:absolute;top:11px;right:12px;font-size:.56rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);display:inline-flex;align-items:center;gap:4px;opacity:.8;z-index:3}

/* SIGNAL (tap → flip & fill the screen) */
.flip{perspective:1200px;height:172px;cursor:pointer}
.flip .inner{position:relative;width:100%;height:100%;transition:transform .28s cubic-bezier(.22,1,.36,1);transform-style:preserve-3d}
.flip.flipping .inner{transform:rotateY(82deg)}
.flip:active .inner{transform:scale(.975)}
.flip .front,.flip .back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:20px;border:1px solid var(--line-2);background:var(--surface);padding:14px;display:flex;flex-direction:column}
.flip .back{transform:rotateY(180deg);background:linear-gradient(180deg,var(--surface-2),var(--surface))}

/* DRILL-DOWN — conversation-led step screen (mobile-native, not a shrunk panel).
   High-level card → tap → ONE focused component the companion walks you through.
   Generous spacing, one primary focus, detail behind progressive disclosure,
   ask bar anchored in the thumb zone. */
.ddsheet{position:fixed;inset:0;z-index:200;display:flex;justify-content:center}
.ddsheet .dd-scrim{position:absolute;inset:0;background:rgba(2,3,8,.6);backdrop-filter:blur(3px);opacity:0;transition:opacity .26s}
.ddsheet.open .dd-scrim{opacity:1}
.dd-panel{position:relative;z-index:2;width:100%;max-width:560px;display:flex;flex-direction:column;
  background:radial-gradient(120% 38% at 50% -6%,var(--bg-2),var(--bg) 62%);border-left:1px solid var(--line);border-right:1px solid var(--line);
  box-shadow:var(--shadow);transform:translateX(16px);opacity:0;transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .24s}
.ddsheet.open .dd-panel{transform:none;opacity:1}
/* slim nav bar — back affordance + quiet breadcrumb, nothing else competing */
.dd-top{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:10px;padding:13px 14px;
  background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.dd-x{flex:0 0 auto;border:0;background:transparent;color:var(--blue-2);font:inherit;font-weight:700;font-size:.95rem;cursor:pointer;padding:4px 2px}
.dd-crumb{font-size:.82rem;color:var(--faint);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:22px 18px 10px}
/* hero — one glance: what am I in */
.dd-hero{text-align:center;margin-bottom:22px}
.dd-ico{width:66px;height:66px;margin:0 auto 12px;border-radius:20px;display:grid;place-items:center;font-size:2rem;
  background:color-mix(in srgb,var(--acc,var(--blue)) 18%,var(--surface-2));border:1px solid color-mix(in srgb,var(--acc,var(--blue)) 38%,transparent)}
.dd-hero h2{font-size:1.5rem;line-height:1.2}
.dd-status{margin-top:7px;display:inline-block;font-size:.78rem;font-weight:700;color:var(--acc,var(--blue-2));
  background:color-mix(in srgb,var(--acc,var(--blue)) 14%,transparent);padding:5px 12px;border-radius:99px}
/* conversation — the primary surface */
.dd-thread{display:flex;flex-direction:column;gap:12px}
.dd-msg{display:flex;gap:9px;max-width:100%}
.dd-msg.me{justify-content:flex-end}
.dd-av{flex:0 0 auto;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-size:.9rem;color:#fff;
  background:linear-gradient(180deg,var(--blue),var(--blue-deep));margin-top:2px}
.dd-b{font-size:1rem;line-height:1.5;padding:12px 15px;border-radius:18px;max-width:84%}
.dd-msg.chip .dd-b{background:var(--surface);border:1px solid var(--line-2);border-top-left-radius:6px;color:var(--text)}
.dd-msg.me .dd-b{background:linear-gradient(180deg,var(--blue),var(--blue-deep));color:#fff;border-top-right-radius:6px}
.dd-b b{font-weight:700}
/* directed next actions — big, thumb-friendly, wrap; these lead you through the step */
.dd-quick{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0 4px}
.dd-q{border:1px solid var(--line-2);background:var(--surface);color:var(--text);font:inherit;font-weight:600;font-size:.92rem;
  padding:12px 16px;border-radius:14px;cursor:pointer;flex:1 1 auto;min-height:48px}
.dd-q:active{transform:scale(.97)}
.dd-q:hover{border-color:var(--acc,var(--blue))}
/* progressive disclosure — reference detail on demand, never front-loaded */
.dd-more{margin:20px 0 8px;border-top:1px solid var(--line);padding-top:6px}
.dd-more>summary{list-style:none;cursor:pointer;color:var(--muted);font-weight:600;font-size:.86rem;padding:12px 2px;display:flex;align-items:center;gap:7px}
.dd-more>summary::-webkit-details-marker{display:none}
.dd-more>summary::before{content:"▸";color:var(--faint);transition:transform .2s}
.dd-more[open]>summary::before{transform:rotate(90deg)}
.dd-more-in{padding:4px 2px 8px}
.dd-p{margin:0 0 12px;font-size:.95rem;line-height:1.5;color:var(--text)}
.dd-facts{display:flex;flex-direction:column;margin:10px 0}
.dd-fact{display:flex;justify-content:space-between;gap:12px;font-size:.9rem;color:var(--muted);padding:9px 0;border-top:1px solid var(--line)}
.dd-fact:first-child{border-top:0}
.dd-fact b{color:var(--text)}
.dd-vizwrap{display:flex;flex-direction:column;gap:9px;margin:10px 0}
.dd-viz{background:var(--surface);border:1px solid var(--line-2);border-radius:14px;padding:12px 13px}
.dd-viz-h{font-size:.76rem;font-weight:700;color:var(--acc,var(--blue-2));margin-bottom:6px}
.dd-viz-row{font-size:.9rem;color:var(--text);padding:6px 0;border-top:1px solid var(--line);line-height:1.35}
.dd-viz-row:first-of-type{border-top:0}
.dd-arts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.dd-art{font-size:.76rem;font-weight:600;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);padding:6px 11px;border-radius:99px}
/* ask bar — anchored where the thumb is; conversation is how you do the work */
.dd-ask{flex:0 0 auto;display:flex;align-items:center;gap:9px;padding:12px 14px calc(14px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);background:var(--bg)}
.dd-ask input{flex:1;border:1px solid var(--line-2);background:var(--surface);color:var(--text);font:inherit;font-size:1rem;
  border-radius:99px;padding:13px 16px;outline:none;min-width:0}
.dd-ask input:focus{border-color:var(--acc,var(--blue))}
.dd-send{flex:0 0 auto;width:46px;height:46px;border:0;border-radius:50%;background:linear-gradient(180deg,var(--acc,var(--blue)),color-mix(in srgb,var(--acc,var(--blue)) 55%,#0a0f1e));
  color:#fff;font-size:1.2rem;font-weight:700;cursor:pointer}
.dd-send:active{transform:scale(.94)}
.flip .ico{font-size:1.3rem;line-height:1}
.flip .lbl{font-size:.74rem;color:var(--muted);font-weight:600;margin-top:auto}
.flip .big{font-family:"Space Grotesk";font-weight:700;font-size:2rem;letter-spacing:-.03em;line-height:1}
.flip .big small{font-size:.9rem;color:var(--faint);font-weight:600;margin-left:3px}
.flip .back h4{font-size:.82rem;margin-bottom:7px;color:var(--blue-2)}
.flip .back .row{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);padding:5px 0;border-top:1px solid var(--line)}
.flip .back .row:first-of-type{border-top:0}
.flip .back b{color:var(--text)}
.accbar{height:4px;border-radius:99px;background:var(--acc,var(--blue));margin:-14px -14px 12px;border-radius:20px 20px 0 0}

/* PORTAL (tap-to-nav) */
.portal{display:flex;align-items:center;gap:13px;background:var(--surface);border:1px solid var(--line-2);border-radius:18px;padding:14px 15px;cursor:pointer;transition:transform .16s cubic-bezier(.22,1,.36,1),border-color .16s;width:100%;text-align:left;font:inherit;color:inherit}
.portal:active{transform:scale(.985)}
.portal.hot{border-color:var(--blue)}
.portal .av{width:46px;height:46px;flex:0 0 auto;border-radius:13px;display:grid;place-items:center;font-family:"Space Grotesk";font-weight:700;font-size:1.15rem;color:#fff;background:var(--acc,var(--blue));box-shadow:0 8px 18px -9px var(--acc,var(--glow))}
.portal .meta{min-width:0;flex:1}
.portal .nm{font-family:"Space Grotesk";font-weight:700;font-size:1.05rem;display:flex;align-items:center;gap:8px}
.portal .nm .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.portal .sb{font-size:.77rem;color:var(--faint);margin-top:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.portal .pill{display:inline-flex;align-items:center;gap:5px;font-weight:600;background:var(--surface-2);border:1px solid var(--line);padding:3px 8px;border-radius:99px;font-size:.7rem}
.portal .go{flex:0 0 auto;color:var(--faint);font-size:1.3rem;transition:transform .16s}
.portal:active .go{transform:translateX(3px)}

/* ACTION (slide-to-reveal) */
.swipe{position:relative;border-radius:18px;overflow:hidden;background:var(--surface-2);touch-action:pan-y}
.swipe .tray{position:absolute;inset:0;display:flex;justify-content:flex-end;align-items:stretch}
.swipe .tray button{border:0;width:74px;color:#fff;font:inherit;font-weight:700;font-size:.72rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer}
.swipe .tray .t-ico{font-size:1.15rem}
.swipe .tray .edit{background:linear-gradient(180deg,var(--blue),var(--blue-deep))}
.swipe .tray .scope{background:linear-gradient(180deg,var(--purple),#7c3aed)}
.swipe .tray .del{background:linear-gradient(180deg,#f87171,#dc2626)}
.swipe .face{position:relative;z-index:2;display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line-2);border-radius:18px;padding:13px 14px;transition:transform .28s cubic-bezier(.22,1,.36,1);will-change:transform}
.swipe .face .st{width:38px;height:38px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;font-size:1.1rem;background:var(--surface-2);border:1px solid var(--line-2)}
.swipe .face .meta{min-width:0;flex:1}
.swipe .face .nm{font-weight:700;font-size:.98rem;font-family:"Space Grotesk";overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.swipe .face .sb{font-size:.74rem;color:var(--faint);margin-top:2px}
.swipe .face .grip{flex:0 0 auto;color:var(--faint);font-size:1.1rem;opacity:.6}
.swipe .face .dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}

/* NUDGE — companion-authored, queued while you were away */
.nudge{position:relative;display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line-2);border-left:3px solid var(--kc,var(--blue));border-radius:16px;padding:13px 14px;width:100%;overflow:hidden;
  background:linear-gradient(180deg,color-mix(in srgb,var(--kc,var(--blue)) 13%,var(--surface)),var(--surface))}
.nudge .kico{width:40px;height:40px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;font-size:1.2rem;
  background:color-mix(in srgb,var(--kc,var(--blue)) 22%,var(--surface-2));border:1px solid color-mix(in srgb,var(--kc,var(--blue)) 42%,transparent)}
.nudge .body{min-width:0;flex:1}
.nudge .kind{font-size:.6rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--kc,var(--blue));display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nudge .kind .when{color:var(--faint);letter-spacing:.02em;font-weight:600}
.nudge .txt{font-size:.9rem;color:var(--text);margin:5px 0 0;line-height:1.36}
.nudge .txt b{font-weight:700}
.nudge .acts{display:flex;gap:8px;margin-top:11px;flex-wrap:wrap}
.nudge .acts button{border:0;font:inherit;font-weight:700;font-size:.78rem;padding:8px 15px;border-radius:99px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.nudge .acts .go1{background:linear-gradient(180deg,var(--kc,var(--blue)),color-mix(in srgb,var(--kc,var(--blue)) 52%,#0a0f1e));color:#fff;box-shadow:0 8px 18px -10px var(--kc,var(--glow))}
.nudge .acts .go2{background:var(--surface-2);border:1px solid var(--line-2);color:var(--muted)}
.awaybadge{display:inline-flex;align-items:center;gap:6px;font-family:"JetBrains Mono";font-size:.66rem;font-weight:700;color:var(--yellow-2);background:var(--yellow-soft);border:1px solid color-mix(in srgb,var(--yellow) 35%,transparent);padding:3px 9px;border-radius:99px;letter-spacing:.02em;text-transform:none}

/* progress ring / donut helpers */
.ring{transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:7}
.ring .bg{stroke:var(--line)}
.ring .fg{stroke:var(--acc,var(--blue));stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.22,1,.36,1)}

/* generic add / empty / links (kept in the grammar for real pages) */
.addbtn{margin-top:12px;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;background:transparent;border:1.5px dashed var(--line-2);color:var(--muted);border-radius:16px;padding:14px;font:inherit;font-weight:600;font-size:.92rem}
.addbtn:hover{border-color:var(--yellow);color:var(--text);background:var(--yellow-soft)}
.empty{background:var(--surface);border:1px dashed var(--line-2);border-radius:16px;padding:22px 16px;text-align:center;color:var(--faint);font-size:.9rem}
.empty a{color:var(--blue-2)}
.locked{background:var(--surface);border:1px solid var(--line-2);border-radius:18px;padding:26px 18px;text-align:center;color:var(--muted);margin-top:20px}
.deck-note{text-align:center;color:var(--faint);font-size:.74rem;margin:20px 3px 8px;line-height:1.5}

/* ---------- conversational nav bar ---------- */
.navbar{position:fixed;left:0;right:0;bottom:0;z-index:70;padding:10px 15px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(0deg,var(--bg) 62%,transparent);pointer-events:none}
.navbar .wrap{pointer-events:auto}
.askbar{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line-2);border-radius:999px;padding:8px 8px 8px 16px;box-shadow:var(--shadow)}
.askbar .g{width:22px;height:22px;border-radius:50%;background:linear-gradient(180deg,var(--blue),var(--blue-deep));display:grid;place-items:center;font-size:.8rem;flex:0 0 auto;color:#fff}
.askbar input{flex:1;border:0;background:transparent;color:var(--text);font:inherit;font-size:.9rem;outline:none;min-width:0}
.askbar input::placeholder{color:var(--faint)}
.askbar .send{width:38px;height:38px;flex:0 0 auto;border:0;border-radius:50%;background:linear-gradient(180deg,var(--yellow),var(--yellow-2));color:#241800;font-size:1.1rem;font-weight:700;cursor:pointer;display:grid;place-items:center}

.fade{animation:fade .32s cubic-bezier(.22,1,.36,1)}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.toast{position:fixed;bottom:82px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--text);color:var(--bg);padding:10px 17px;border-radius:12px;font-weight:600;font-size:.86rem;opacity:0;transition:.25s;z-index:99;box-shadow:var(--shadow);max-width:88vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.legend{margin:22px 3px 4px;color:var(--faint);font-size:.72rem;line-height:1.7}
.legend b{color:var(--muted)}
.legend code{font-family:"JetBrains Mono";color:var(--blue-2);background:var(--chip);padding:1px 5px;border-radius:5px;font-size:.68rem}
