/* Slush Night for Ideate. Loaded after slush.css; only active under html[data-theme="dark"]. */
html[data-theme="dark"]{--ground:#0e0e11;--paper:#1b1b20;--paper2:#232329;--ink:#f3efe6;--muted:#a8a49b;--sky:#15151a;--concrete:#202027;--mist:#2a2a32;--hair:rgba(243,239,230,.22)}
html[data-theme="dark"] body, html[data-theme="dark"] html{background:var(--ground)!important;color:var(--ink)!important}
html[data-theme="dark"] :is(#vHome, #vIdea, #vQa, .veil, #flow, #c, #bg){background:var(--ground)!important}
html[data-theme="dark"] .home-spin{background:var(--paper)!important;border-top:1px solid var(--hair)!important}
/* paper → slate, black outlines → hairlines */
html[data-theme="dark"] :is(.composer, .rtile, .cmode, .chip, .btn.ghost, .btn, .rpill, .rcard, .idea .rows div, .qcard, .icard, .cmp-col, .cnotes, .fn, .dive-doc, .cmp-doc, .vd-doc, .appbox, .wheelwrap .hub, .eqrow, .cqdots i, .dots i, .sd-num, .back, .qskip, .meter2 .dots i, .dtab, .mhead){background:var(--paper)!important;border-color:var(--hair)!important;color:var(--ink)!important}
html[data-theme="dark"] #panel, html[data-theme="dark"] #ideas, html[data-theme="dark"] #hovercard, html[data-theme="dark"] #homebtn, html[data-theme="dark"] #ideasbtn{background:var(--paper)!important;border-color:var(--hair)!important;color:var(--ink)!important}
html[data-theme="dark"] :is(input, textarea, select){background:var(--paper)!important;color:var(--ink)!important;border-color:var(--hair)!important}
html[data-theme="dark"] .composer textarea::placeholder, html[data-theme="dark"] input::placeholder{color:#8a877f!important}
html[data-theme="dark"] .ctools, html[data-theme="dark"] .ideas div{border-color:var(--hair)!important}
/* the black CTAs become bone */
html[data-theme="dark"] :is(.cmode.on, .btn.primary, .btn.fill, .chip.on.dark, #jobpill, .cqdots i.done, .dots i.f){background:var(--ink)!important;color:var(--ground)!important;border-color:var(--ink)!important}
html[data-theme="dark"] .btn.primary:hover, html[data-theme="dark"] .btn:hover{background:var(--sun)!important;color:#000!important}
/* pastel surfaces stay pastel and keep black ink */
html[data-theme="dark"] :is(.rcard.mint, .rcard.sky, .rcard.lav, .rcard.sun, .chip.on, .rpill.sun, .rpill.mint, .rpill.lav, .rpill.blue, .rpill.ember, .pchip.mob, .pchip.web, .dv-badge, .cqdots i.on, #ideabox .inputwrap, .qcard .qnum, #vIdea .kicker, #vQa .kicker, .vd-solv, .cmp-verdict, .cmp-col.winner, .fn-you, .fn-icp, .fn-open, .fn-val, .fn-idea, .cookbar.g, #fm-pbar .fill, .wheelwrap.landed .hub, .tagstk .rpill, .dots.c i.f){color:#000!important}
html[data-theme="dark"] .rcard.mint{background:var(--mint)!important} html[data-theme="dark"] .rcard.sky{background:var(--blue)!important} html[data-theme="dark"] .rcard.lav{background:var(--lav)!important}
  html[data-theme="dark"] #ideabox .inputwrap{background:var(--sun)!important}
html[data-theme="dark"] .rtile.live{background:#3a3418!important;color:var(--ink)!important}
html[data-theme="dark"] .qcard{background:#2a2540!important;color:var(--ink)!important}


 
html[data-theme="dark"] .rpill{background:var(--paper)!important;color:var(--ink)!important}
html[data-theme="dark"] .rpill.sun{background:var(--sun)!important} html[data-theme="dark"] .rpill.mint{background:var(--mint)!important} html[data-theme="dark"] .rpill.lav{background:var(--lav)!important} html[data-theme="dark"] .rpill.blue{background:var(--blue)!important} html[data-theme="dark"] .rpill.ember{background:var(--ember)!important;color:#fff!important} html[data-theme="dark"] .rpill.violet{background:var(--violet)!important;color:#fff!important}
html[data-theme="dark"] .chip.on{background:var(--sun)!important}
  
html[data-theme="dark"] .fn-you{background:var(--sun)!important} html[data-theme="dark"] .fn-market{background:var(--paper)!important;color:var(--ink)!important} html[data-theme="dark"] .fn-icp{background:var(--lav)!important} html[data-theme="dark"] .fn-open{background:var(--lav)!important} html[data-theme="dark"] .fn-val{background:var(--mint)!important} html[data-theme="dark"] .fn-idea.mob{background:var(--mint)!important} html[data-theme="dark"] .fn-idea.web{background:var(--blue)!important}
/* type */
html[data-theme="dark"] :is(h1, h2, h3, .cqq, .rhead h2, .kicker, .sub, .chint, .cql, .rk, .home-sub, .wheel-note, .spin-head .kicker, .disp-sm){color:var(--ink)!important}
html[data-theme="dark"] h1 em, html[data-theme="dark"] #vHome h1 em, html[data-theme="dark"] #vIdea h1 em{-webkit-text-stroke:0!important}
html[data-theme="dark"] .ribbon .edge{stroke:var(--ink)}
html[data-theme="dark"] #flow-edges path{stroke:var(--hair)}
/* specificity guard: the broad slate rule above uses :is() with two-class arguments; these must beat it */
html[data-theme="dark"] body .rpill.rpill.sun{background:var(--sun)!important;color:#000!important}
html[data-theme="dark"] body .rpill.rpill.mint{background:var(--mint)!important;color:#000!important}
html[data-theme="dark"] body .rpill.rpill.lav{background:var(--lav)!important;color:#000!important}
html[data-theme="dark"] body .rpill.rpill.blue{background:var(--blue)!important;color:#000!important}
html[data-theme="dark"] body .rpill.rpill.ember{background:var(--ember)!important;color:#fff!important}
html[data-theme="dark"] body .rpill.rpill.violet{background:var(--violet)!important;color:#fff!important}
html[data-theme="dark"] body .chip.chip.on{background:var(--sun)!important;color:#000!important;border-color:transparent!important}
html[data-theme="dark"] body .cmode.cmode.on, html[data-theme="dark"] body .btn.btn.primary, html[data-theme="dark"] body .btn.btn.fill{background:var(--ink)!important;color:var(--ground)!important;border-color:var(--ink)!important}
html[data-theme="dark"] body .rcard.rcard.mint{background:var(--mint)!important;color:#000!important}
html[data-theme="dark"] body .rcard.rcard.sky{background:var(--blue)!important;color:#000!important}
html[data-theme="dark"] body .rcard.rcard.lav{background:var(--lav)!important;color:#000!important}
html[data-theme="dark"] body .rcard.rcard.mint .idea .rows div, html[data-theme="dark"] body .rcard.rcard.sky .idea .rows div, html[data-theme="dark"] body .rcard.rcard.lav .idea .rows div{background:#fff!important;color:#000!important;border-color:#000!important}





  
 
html[data-theme="dark"] body #ideabox .inputwrap.inputwrap{background:var(--sun)!important}
html[data-theme="dark"] body .rtile.rtile.live{background:#3a3418!important;color:var(--ink)!important}
html[data-theme="dark"] body .rtile.rtile.live .rph{color:var(--muted)!important}
html[data-theme="dark"] body .qcard.qcard{background:#2a2540!important;color:var(--ink)!important}
html[data-theme="dark"] body .qcard .qnum.qnum, html[data-theme="dark"] body #vIdea .kicker.kicker, html[data-theme="dark"] body #vQa .kicker.kicker{background:var(--sun)!important;color:#000!important}

html[data-theme="dark"] body .cqdots i.on{background:var(--sun)!important}
html[data-theme="dark"] body .wheelwrap.landed .hub, html[data-theme="dark"] body .wheelwrap .hub:hover{background:var(--sun)!important;color:#000!important}

/* the canvas at night: pastel nodes keep black ink; paper nodes go slate with bone text; edges glow */
html[data-theme="dark"] body .fn.fn-you{background:var(--sun)!important;color:#000!important} html[data-theme="dark"] body .fn.fn-market{background:var(--blue)!important;color:#000!important}
html[data-theme="dark"] body .fn.fn-icp{background:var(--lav)!important;color:#000!important} html[data-theme="dark"] body .fn.fn-niche{background:var(--mint)!important;color:#000!important}
html[data-theme="dark"] body .fn.fn-idea.mob{background:var(--mint)!important;color:#000!important} html[data-theme="dark"] body .fn.fn-idea.web{background:var(--blue)!important;color:#000!important}
html[data-theme="dark"] body .fn.fn-open{background:var(--lav)!important;color:#000!important} html[data-theme="dark"] body .fn.fn-val{background:var(--mint)!important;color:#000!important}
html[data-theme="dark"] body :is(.fn-you, .fn-market, .fn-icp, .fn-niche, .fn-idea, .fn-open, .fn-val) :is(p, .row, h4, .cite2, .proof2, b, span, div){color:#000!important;border-color:#000!important}
html[data-theme="dark"] body :is(.fn-you, .fn-market, .fn-icp, .fn-niche, .fn-idea, .fn-open, .fn-val) .fk{background:#000!important;color:#fff!important}
html[data-theme="dark"] body .fn.fn-player{background:var(--paper)!important;border-color:var(--hair)!important}
html[data-theme="dark"] body .fn.fn-player :is(p, .row, .an2, .as2, .awhat, .st2, .sub3, h4, .stats, .stats b, .st, .rev){color:var(--ink)!important}
html[data-theme="dark"] body .fn.fn-player .fk{background:var(--violet)!important;color:#fff!important}
html[data-theme="dark"] body .fn.fn-hdr{background:none!important;border:0!important} html[data-theme="dark"] body .fn.fn-hdr h4{color:var(--ink)!important} html[data-theme="dark"] body .fn.fn-hdr .fk{background:var(--ink)!important;color:var(--ground)!important}
html[data-theme="dark"] body .appbox{background:var(--paper2)!important;border-color:var(--hair)!important}
html[data-theme="dark"] body .appbox .ah img, html[data-theme="dark"] body .appbox .av{border-color:var(--hair)!important}
html[data-theme="dark"] #flow-edges path.under{stroke:var(--ink);stroke-opacity:.1}
html[data-theme="dark"] #flow-edges path.from-hdr, html[data-theme="dark"] #flow-edges path.g{stroke:var(--ink);stroke-opacity:.6}
html[data-theme="dark"] #flow-edges .tip{fill:var(--ink)} html[data-theme="dark"] #flow-edges .tip.from-you{fill:var(--sun)} html[data-theme="dark"] #flow-edges .tip.from-market{fill:var(--blue)} html[data-theme="dark"] #flow-edges .tip.from-icp{fill:var(--lav)} html[data-theme="dark"] #flow-edges .tip.from-niche{fill:var(--mint)} html[data-theme="dark"] #flow-edges .tip.from-player{fill:var(--violet)}
/* the home is black top to bottom · the spin box is the composer's box, nothing else */
html[data-theme="dark"] .home-spin{background:transparent!important;border-top:0!important}
html[data-theme="dark"] .runs, html[data-theme="dark"] .home-hero{background:transparent!important}

/* ── contrast pass (2026-09-06) · nothing black on slate, nothing bone on a sticker ─────────────
   The light theme's ink is #000 and dozens of rules + inline styles hard-code it. On slate
   that is invisible. Rule of the pass: slate surfaces carry bone text, sticker surfaces
   (sun/mint/lav/blue) carry black text, and ember/violet carry white. */
html[data-theme="dark"] body [style*="color:#000"]{color:var(--ink)!important}
html[data-theme="dark"] body [style*="color: #000"]{color:var(--ink)!important}
html[data-theme="dark"] body :is(.meter2, .meter2 .mh, .meter2 .why, .meter2 b, .sb-note, .rhead h2, .chint){color:var(--ink)!important}
html[data-theme="dark"] body .sb-note{color:var(--muted)!important}



/* plain pills on slate: bone. Sticker pills keep their own rules above. */
html[data-theme="dark"] body .rpill.rpill:not(.sun):not(.mint):not(.lav):not(.blue):not(.ember):not(.violet){background:var(--paper2)!important;color:var(--ink)!important;border-color:var(--hair)!important}
/* what users hate: quotes on a warm slate, bone text, sun spine, sources muted, links sun */





/* your moves + what to build: lavender / mint stickers, black ink all the way down */






html[data-theme="dark"] body :is(.rcard.mint, .rcard.sky, .rcard.lav, .rcard.sun, .cmp-verdict, .cmp-col.winner, .vd-banner.BUILD, .vd-banner.BUILD_IF, .vd-cond, .vd-first, .fn-you, .fn-market, .fn-icp, .fn-niche, .fn-idea, .fn-open, .fn-val) :is(h1, h2, h3, h4, p, span, b, div, li, .what, .rows div, .vd-call, .vd-line, .vd-score, .kicker, .sub, .chint){color:#000!important}
html[data-theme="dark"] body :is(.rcard.mint, .rcard.sky, .rcard.lav, .rcard.sun) :is(.rpill.ember, .rpill.violet, .rpill.ember *, .rpill.violet *){color:#fff!important}
html[data-theme="dark"] body :is(.vd-banner.DONT_BUILD, .vd-solv.no, .stale2) :is(h1, h2, h3, p, span, b, div, .vd-call, .vd-line){color:#fff!important}
/* sticker chips and tags anywhere: black on the colour */
html[data-theme="dark"] body :is(.vd-solv.yes, .vd-solv.partially, .dv-badge.plat, .dv-feat .eff, .ac-tag.ads, .est2, .pchip.mob, .pchip.web, .conf2.strong, .conf2.medium, .dv-bar .fl, .fbar .fv, .appbox .av.mob, .appbox .av.web), html[data-theme="dark"] body :is(.vd-solv.yes, .vd-solv.partially, .dv-badge.plat, .dv-feat .eff, .pchip.mob, .pchip.web, .conf2.strong, .conf2.medium) *{color:#000!important}
/* docs, drawers, panels on slate: bone body text, muted notes */
html[data-theme="dark"] body :is(.dive-doc, .cmp-doc, .vd-doc, #ideas, .icard, .cmp-col:not(.winner), #hovercard, #panel, .cnotes, .mhe) :is(p, li, td, th, .row, .what, .line){color:var(--ink)!important}
html[data-theme="dark"] body :is(.dive-doc, .cmp-doc, .vd-doc, #ideas, .icard, #hovercard, #panel) :is(.muted, .note, .src, .src2, small){color:var(--muted)!important}
/* the two board controls ride along at the top of the scroll instead of scrolling away */
/* New map + My ideas: one fixed strip, centred at the very top, out of the scroll entirely */




/* niche chips: the tag keeps its colour word, the note is muted, both readable on slate */







/* citations inside a lavender or mint card: a light chip, black text (the slate chip vanished the words) */


/* meters on tinted cards: black type no matter what the dark theme paints elsewhere */
html[data-theme="dark"] body :is(.rcard.rcard.lav, .rcard.rcard.mint, .rcard.rcard.sky, .rcard.rcard.sun) :is(.meter2, .meter2 .mh, .meter2 .why, .meter2 b, .meter2 span){color:#000!important}
html[data-theme="dark"] body .rcard.rcard.lav .meter2{background:#fff!important;border-color:#000!important}
html[data-theme="dark"] body .rcard.rcard.lav .meter2:nth-child(2){background:var(--sun,#ffd731)!important}
/* the web picker's colours in the dark: industries mint, professions blue, people pink; a pick stays the yellow */
html[data-theme="dark"] body .cqchips .chip.g-ind:not(.on):not(:hover){background:rgba(85,219,156,.18)!important;border-color:rgba(85,219,156,.55)!important;color:#d2f6e4!important}
html[data-theme="dark"] body .cqchips .chip.g-prof:not(.on):not(:hover){background:rgba(77,162,255,.2)!important;border-color:rgba(77,162,255,.55)!important;color:#d8e9ff!important}
html[data-theme="dark"] body .cqchips .chip.g-ppl:not(.on):not(:hover){background:rgba(255,122,198,.18)!important;border-color:rgba(255,122,198,.55)!important;color:#ffdcef!important}
html[data-theme="dark"] body .cqlegend{color:var(--ink)}
html[data-theme="dark"] body .cqlegend i{border-color:transparent}
html[data-theme="dark"] body .cqlegend .g-ind i{background:#55db9c}html[data-theme="dark"] body .cqlegend .g-prof i{background:#4da2ff}html[data-theme="dark"] body .cqlegend .g-ppl i{background:#ff7ac6}
html[data-theme="dark"] body :is(.btn.saved-go, .hc-btn.saved-go, .fn .fbtn.saved-go){background:var(--mint,#55db9c)!important;color:#06281a!important;border-color:transparent!important}
html[data-theme="dark"] body :is(.btn.saved-go, .hc-btn.saved-go):hover{background:#7be6b4!important;color:#06281a!important}
/* the Claude Code door stays sun-yellow in the dark too (the two build doors read as a pair) */
html[data-theme="dark"] body .btn.btn.lab-ccbtn{background:var(--sun,#ffd731)!important;color:#111!important;border-color:#000!important}
html[data-theme="dark"] #vSheet :is(.sv-card, .sv-svc) .lab-k{color:#111!important;opacity:.7}
