/* Hoodchan. Theme tokens: themes.js rewrites them from the chosen vim colorscheme. */
:root{
  --bg:#0f1410; --fg:#e9f2e7; --dim:#7d8a7b; --sl:#18201a; --cl:#1b241d;
  --acc:#ccff00; --acc2:#ff8a3d; --id:#7ee0c3; --num:#e7d27c; --neg:#ff5a4e; --pos:#ccff00;
  --desk:#1d2a1f; --on:#0f1410;
  --line:color-mix(in oklab, var(--fg) 9%, var(--bg));
  --raise:color-mix(in oklab, var(--fg) 14%, var(--bg));
  --gap:10px; --barh:24px;
  --mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
*{box-sizing:border-box}
*{scrollbar-width:thin;scrollbar-color:var(--raise) transparent}
html,body{height:100%;margin:0}
body{background:var(--desk);background-image:radial-gradient(color-mix(in oklab, var(--fg) 13%, transparent) 1px, transparent 1.3px);background-size:22px 22px;background-position:-11px -11px;
  color:var(--fg);font-family:var(--mono);font-size:clamp(11px,.72vw,13.5px);line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
a{color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
img{display:block}
[hidden]{display:none!important}

/* ---------- top bar ---------- */
.bar{position:fixed;left:0;right:0;top:0;height:var(--barh);display:flex;align-items:center;gap:14px;padding:0 6px;background:color-mix(in oklab, var(--bg) 70%, black);font-size:11px;white-space:nowrap;z-index:10}
.tags{display:flex;gap:2px}
.tags button,.tags a{padding:2px 7px;border-radius:3px;line-height:16px;text-decoration:none}
.tags button i{font-style:normal;color:var(--dim);margin-left:4px}
.tags button:hover,.tags a:hover{background:var(--raise)}
.tags button.on{background:var(--acc);color:var(--on)}
.tags button.on i{color:var(--on);opacity:.75}
.tags a{color:var(--dim)}
.focus{color:var(--dim);overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.stats{margin-left:auto;display:flex;align-items:center;gap:9px;flex:none}
.stats .sep{color:var(--line)}
.tokbtn{display:flex;align-items:center;gap:6px;padding:2px 6px;border-radius:3px}
.tokbtn:hover{background:var(--raise)}
.tokbtn b{font-weight:700}
.tokbtn em{font-style:normal;color:var(--acc)}
.tokbtn .ch{color:var(--pos)} .tokbtn .ch.down{color:var(--neg)}
.tokbtn .ca{color:var(--dim)}
.ponsic{display:flex;align-items:center;padding:2px 4px;border-radius:3px;color:var(--dim);text-decoration:none}
.ponsic:hover{background:var(--raise);color:var(--fg)}
.xbtn{display:flex;align-items:center;justify-content:center;width:22px;height:20px;border-radius:3px}
.xbtn:hover{background:var(--raise)}
.xbtn svg{width:11px;height:11px;fill:currentColor}
.themebtn{display:flex;align-items:center;gap:6px;padding:2px 8px;border-radius:3px;background:var(--raise)}
.dots{display:flex;gap:2px}.dots i{width:7px;height:7px;border-radius:50%;display:block}
.walletbtn{padding:2px 8px;border-radius:3px;background:var(--acc);color:var(--on);font-weight:700}
.walletbtn.ok{background:var(--raise);color:var(--fg);font-weight:400}
.radio{display:flex;align-items:center;gap:7px;padding:2px 8px;border-radius:3px;max-width:30vw;min-width:0}
.radio:hover{background:var(--raise)}
.radio .r-ic{color:var(--dim)} .radio.on .r-ic{color:var(--acc)}
.radio .r-now{overflow:hidden;text-overflow:ellipsis;color:var(--dim)} .radio.on .r-now{color:var(--fg)}
.r-wave{width:54px;height:12px;display:flex;align-items:flex-end;gap:2px}
.r-wave i{flex:1;background:var(--acc);opacity:.75;height:20%;transition:height .25s}

.pop{position:fixed;top:calc(var(--barh) + 6px);width:min(400px,calc(100vw - 16px));background:var(--bg);border:1px solid var(--line);border-radius:6px;z-index:30;box-shadow:0 18px 50px rgba(0,0,0,.45);overflow:hidden;font-size:12px}
.pop-h{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;background:var(--sl);font-size:11px}
.pop-h .d{color:var(--dim)}
.pop-l{max-height:60vh;overflow:auto;padding:4px 0}
.pop-l button{display:grid;grid-template-columns:62px 1fr auto;gap:10px;align-items:center;width:100%;text-align:left;padding:4px 12px}
.pop-l button:hover{background:var(--cl)} .pop-l button.on{background:var(--raise)}
.sw{display:flex;height:14px;border-radius:2px;overflow:hidden}.sw i{flex:1}
.desks{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);align-items:center;color:var(--dim)}
.desks button{width:22px;height:22px;border-radius:4px;border:2px solid transparent}.desks button.on{border-color:var(--fg)}
.toast{position:fixed;left:50%;top:34px;transform:translateX(-50%);z-index:80;background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--acc);padding:7px 12px;border-radius:4px;box-shadow:0 12px 30px rgba(0,0,0,.4);max-width:min(560px,92vw)}
.toast.err{border-left-color:var(--neg)}

/* ---------- tiling layout ---------- */
.lay{position:fixed;left:var(--gap);right:var(--gap);top:calc(var(--barh) + var(--gap));bottom:var(--gap);display:none;gap:var(--gap)}
.ws-desk{grid-template-columns:minmax(0,2.05fr) minmax(0,1.15fr) minmax(0,.95fr);grid-template-rows:minmax(0,1.05fr) minmax(0,.92fr) minmax(0,.5fr) minmax(0,.5fr);
  grid-template-areas:"board tape art" "board tape coins" "procs wire rank" "procs wire ad"}
.w-board{grid-area:board}.w-tape{grid-area:tape}.w-art{grid-area:art}.w-coins{grid-area:coins}.w-procs{grid-area:procs}.w-wire{grid-area:wire}.w-rank{grid-area:rank}.w-ad{grid-area:ad}
body:is([data-tag="desk"],[data-tag="board"],[data-tag="coins"],[data-tag="agents"],[data-tag="rank"]) .ws-desk,body[data-tag="create"] .ws-create,body[data-tag="mine"] .ws-mine{display:grid}
body[data-tag="board"] .ws-desk{grid-template:"board" 1fr / 1fr}
body[data-tag="coins"] .ws-desk{grid-template:"coins art" 1fr / 1.5fr 1fr}
body[data-tag="coins"] .ws-desk:has(.w-art.charting){grid-template-columns:1fr 1.6fr}
body[data-tag="agents"] .ws-desk{grid-template:"procs rank" 1fr / 1.7fr 1fr}
body[data-tag="rank"] .ws-desk{grid-template:"rank" 1fr / 1fr}
body:is([data-tag="board"],[data-tag="coins"],[data-tag="agents"],[data-tag="rank"]) .ws-desk .win{display:none}
body[data-tag="board"] .ws-desk .w-board,body[data-tag="coins"] .ws-desk .w-coins,body[data-tag="coins"] .ws-desk .w-art,body[data-tag="agents"] .ws-desk .w-procs,body[data-tag="agents"] .ws-desk .w-rank,body[data-tag="rank"] .ws-desk .w-rank{display:flex}

.win{--mode:var(--acc);background:var(--bg);border-radius:6px;display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0;box-shadow:0 8px 28px rgba(0,0,0,.22);transition:opacity .45s ease,transform .45s cubic-bezier(.2,.7,.2,1)}
body:not(.ready) .win{opacity:0;transform:scale(.985)}
.w-tape{--mode:var(--pos)}.w-art{--mode:var(--num)}.w-coins{--mode:var(--acc2)}.w-procs{--mode:var(--id)}.w-wire{--mode:var(--neg)}.w-rank{--mode:var(--num)}.w-ad{--mode:var(--fg)}
.w-tape{transition-delay:.05s}.w-art{transition-delay:.1s}.w-coins{transition-delay:.15s}.w-procs{transition-delay:.2s}.w-wire{transition-delay:.25s}.w-rank{transition-delay:.3s}.w-ad{transition-delay:.35s}
.body{flex:1;min-height:0;overflow:auto;position:relative;padding:8px 12px}
.body.flush{padding:0;overflow:hidden}
.sl{height:22px;flex:none;display:flex;align-items:center;gap:10px;background:var(--sl);font-size:11px;white-space:nowrap;padding-right:4px;overflow:hidden}
.sl .m{background:var(--mode);color:var(--on);height:100%;display:flex;align-items:center;padding:0 10px;font-weight:700}
.sl .r{margin-left:auto;display:flex;gap:4px}
.sl .k{background:var(--raise);padding:1px 7px}
.sl .kbtn:hover{background:var(--acc);color:var(--on)}
.sl .kbtn:disabled{opacity:.5;cursor:default}
.more{display:none}
body[data-tag="desk"] .more{display:block;position:absolute;inset:auto 0 22px 0;height:0}
.tabline{display:flex;gap:2px;background:var(--sl);padding:0 4px;flex:none;font-size:11px;align-items:center}
.tabline button{padding:3px 10px}
.tabline button.on{background:var(--bg);color:var(--acc)}
.tabline .cnt{color:var(--dim)} .tabline .tl-note{margin-left:auto;color:var(--dim);padding-right:6px}

/* common bits */
.id{color:var(--id);cursor:pointer} .id:hover{text-decoration:underline}
.tk{color:var(--acc2);cursor:pointer} .tk:hover{text-decoration:underline}
.num{text-align:right;font-variant-numeric:tabular-nums}
.neg{color:var(--neg)} .pos{color:var(--pos)} .d{color:var(--dim)}
.hs,.us{font-size:10px;padding:0 4px;border-radius:2px;vertical-align:1px}
.hs{background:var(--fg);color:var(--bg)} .us{border:1px solid var(--dim);color:var(--dim)}
.ghost{padding:1px 7px;border-radius:3px;background:var(--raise);color:var(--fg)}
.ghost:hover{background:var(--cl);box-shadow:inset 0 0 0 1px var(--line)}
.ghost.on{background:var(--acc);color:var(--on)}
.btn{padding:6px 14px;border-radius:4px;background:var(--acc);color:var(--on);font-weight:700}
.btn:hover{filter:brightness(1.08)} .btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
.btn.big{padding:9px 20px;font-size:1.1em}
.btn.warn{background:var(--neg)}
.empty{color:var(--dim);padding:18px 0;text-align:center}
.seg{display:inline-flex;gap:2px;background:var(--cl);border-radius:4px;padding:2px}
.seg button{padding:2px 9px;border-radius:3px}
.seg button.on{background:var(--acc);color:var(--on)}
.seg.small button{padding:0 7px}

/* ---------- the board (an imageboard inside the tile) ---------- */
.site{flex:1;min-height:0;overflow-y:auto;padding:0 14px;position:relative}
.shead{text-align:center;padding:10px 0 12px;border-bottom:1px solid var(--line)}
.blist{text-align:left;color:var(--dim);font-size:.9em}
.blist .logo{color:var(--acc);font-weight:700;margin-right:6px}
.blist a{color:var(--dim);text-decoration:none}.blist a:hover,.blist a.on{color:var(--fg);text-decoration:underline}
.btitle{margin:10px 0 2px;font-weight:700;font-size:2em;line-height:1.1;color:var(--acc);letter-spacing:-.03em}
.bsub{color:var(--dim);font-size:.9em}
.thread{padding:12px 0;border-bottom:1px solid var(--line)}
.thread.focus{outline:1px solid var(--acc);outline-offset:4px;border-radius:2px}
.op{display:flex;gap:12px}
.op .th{width:9.5em;height:9.5em}
.th{flex:none;object-fit:cover;border-radius:3px;background:var(--raise);cursor:zoom-in}
.fi{color:var(--dim);font-size:.88em}
.ph{color:var(--dim);font-size:.92em}
.ph b{color:var(--fg);font-weight:500}
.ph .sub{color:var(--fg);font-weight:700}
.ph .nm{color:var(--pos);font-weight:700}
.ph .share{margin-left:6px;font-size:.92em}
.ca{display:flex;align-items:center;gap:6px;margin:1px 0 3px;color:var(--dim);font-size:.92em;min-width:0}
.ca .mint{color:var(--num);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:all}
.msg{max-width:74ch;white-space:pre-wrap;word-break:break-word;margin-top:2px}
.gt{color:var(--pos)} .ql{color:var(--neg);cursor:pointer;text-decoration:underline;text-decoration-style:dotted}
.re{display:flex;gap:10px;margin:8px 0 0 18px;padding:6px 10px;background:var(--cl);border-radius:3px;max-width:min(100%,64em);width:fit-content}
.re .th{width:6em;height:6em}
.re.hl{box-shadow:inset 0 0 0 2px var(--num)}
.omit{display:block;color:var(--dim);font-size:.88em;margin:6px 0 0 18px;text-align:left}
.omit:hover{color:var(--fg);text-decoration:underline}
.hold .hl{display:inline-block;margin-left:8px;padding:0 5px;border-radius:2px;background:var(--raise);color:var(--fg)}
.post-new{animation:arrive 1.2s ease-out}
@keyframes arrive{from{background:var(--raise)}}
.pager{display:flex;gap:6px;justify-content:center;padding:12px 0;color:var(--dim)}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px 10px;padding:12px 0}
.cat{cursor:pointer;text-align:center;font-size:.9em;padding:6px;border-radius:3px}
.cat:hover{background:var(--cl)}
.cat img{width:100%;max-width:150px;height:130px;object-fit:cover;margin:0 auto 6px;border-radius:2px;background:var(--raise)}
.cat .n{color:var(--dim)} .cat .t{margin-top:3px;color:var(--dim);overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;word-break:break-word}
.cat .t b{color:var(--fg)}

/* ---------- tape ---------- */
.row{display:grid;grid-template-columns:5.2em 5.4em 4.8em minmax(0,1fr) 4.4em 4.8em;gap:2px 6px;padding:5px 4px;margin:0 -4px;border-bottom:1px solid var(--line);white-space:nowrap;align-items:baseline}
.row:hover{background:color-mix(in oklab,var(--raise) 55%,transparent)}
.row .t{color:var(--dim)}
.row .why{grid-column:2/-1;color:var(--dim);overflow:hidden;text-overflow:ellipsis;font-size:.92em;padding-left:1.6em;position:relative}
.row .why::before{content:'└';position:absolute;left:.2em;opacity:.55}
.badge{justify-self:start;padding:0 6px;border-radius:2px;font-size:.92em;font-weight:700}
.badge.buy{color:var(--pos);background:color-mix(in oklab,var(--pos) 15%,transparent)}
.badge.sell{color:var(--neg);background:color-mix(in oklab,var(--neg) 15%,transparent)}
.badge.launch{color:var(--on);background:var(--acc)}
.row.fresh{animation:arrive 1.6s ease-out}

/* ---------- latest launch / chart ---------- */
.artwrap{position:absolute;inset:0;overflow:hidden;cursor:pointer}
.art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:drift 28s ease-in-out infinite alternate}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.06) translate(-1%,-1.2%)}}
.cap{position:absolute;left:0;right:0;bottom:0;padding:44px 12px 10px;background:linear-gradient(to bottom,transparent,color-mix(in oklab,var(--bg) 70%,transparent) 40%,color-mix(in oklab,var(--bg) 94%,transparent));text-shadow:0 1px 2px color-mix(in oklab,var(--bg) 85%,transparent)}
.cap .big{font-weight:700;font-size:1.9em;line-height:1.05;letter-spacing:-.02em}
.cap .who{color:color-mix(in oklab,var(--fg) 82%,var(--bg))}
.noart{display:grid;place-items:center;height:100%;text-align:center;color:var(--dim);padding:20px}
.noart pre{color:var(--acc);margin:0 0 10px;font-size:10px;line-height:1.15}
.cv{display:none;flex-direction:column;flex:1;min-height:0;overflow:auto}
.w-art.charting .cv{display:flex} .w-art.charting #art{display:none}
.cv-head{display:flex;gap:10px;align-items:center;padding:10px 12px 6px}
.cv-head img{width:44px;height:44px;border-radius:4px;object-fit:cover;background:var(--raise)}
.cv-id{flex:1;min-width:0}
.cv-id .l1{display:flex;gap:8px;align-items:baseline}
.cv-id .l1 b{font-size:1.25em;color:var(--acc2)}
.cv-id .about{color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-px{text-align:right}.cv-px .mc{font-size:1.25em;font-weight:700}
.cv-bar{display:flex;gap:6px;align-items:center;padding:0 12px 6px;flex-wrap:wrap}
.cv-bar .grow{flex:1}
.cv-chart{height:clamp(200px,34vh,360px);flex:none;margin:0 6px;position:relative}
.cv-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 12px}
.cv-stats div{background:var(--cl);border-radius:3px;padding:4px 7px}
.cv-stats span{display:block;color:var(--dim);font-size:.85em}
.bond{margin:0 12px 8px;height:6px;background:var(--cl);border-radius:3px;overflow:hidden}
.bond i{display:block;height:100%;background:var(--acc)}
.cv-lists{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;padding:4px 12px 12px;min-height:0}
.cv-lists .h{color:var(--dim);border-bottom:1px solid var(--line)}
.ctr{display:grid;grid-template-columns:4.6em 6.2em 3.4em 1fr 1fr;gap:6px;padding:1px 0;white-space:nowrap}
.chd{display:grid;grid-template-columns:1fr 4em 5em;gap:6px;padding:1px 0}

/* ---------- coins ---------- */
.cn{display:grid;grid-template-columns:minmax(6.5em,1fr) 4.4em 3.6em 2.8em 3.6em 1.6em;gap:6px;padding:2px 0;border-bottom:1px solid var(--line);white-space:nowrap;align-items:center;cursor:pointer}
.cn:hover{background:color-mix(in oklab,var(--raise) 55%,transparent)}
.cn.h{color:var(--dim);cursor:default;border-bottom-color:transparent}.cn.h:hover{background:none}
.cn .nm{display:flex;align-items:center;gap:7px;overflow:hidden}
.cn .nm img{width:1.35em;height:1.35em;border-radius:2px;object-fit:cover;background:var(--raise)}
.pad{display:none}
body[data-tag="coins"] .pad{display:block} body[data-tag="coins"] .dk{display:none}
.pad-sec{margin-bottom:18px}
.pad-h{display:flex;gap:10px;align-items:baseline;margin:6px 0 10px;flex-wrap:wrap}
.pad-h b{color:var(--acc)} .pad-h .seg{margin-left:auto}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.card{background:var(--cl);border-radius:5px;padding:9px;display:grid;grid-template-columns:58px 1fr;gap:9px;cursor:pointer;border:1px solid transparent}
.card:hover{border-color:var(--line)} .card.on{border-color:var(--acc)}
.card img{width:58px;height:58px;border-radius:4px;object-fit:cover;background:var(--raise)}
.card .t1{display:flex;gap:6px;align-items:baseline;justify-content:space-between}
.card .t1 b{color:var(--acc2)}
.card .st{color:var(--dim);font-size:.9em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.card .meta{display:flex;gap:8px;color:var(--dim);font-size:.88em;margin-top:3px;flex-wrap:wrap}
.card .bond{margin:5px 0 0;height:4px}
.tag-pass{color:var(--pos)} .tag-watch{color:var(--acc2)}

/* ---------- agents ---------- */
.meters{display:grid;grid-template-columns:1fr 1fr;gap:3px 26px;margin-bottom:8px}
.meter{display:grid;grid-template-columns:9em 1fr auto;gap:8px;align-items:center;white-space:nowrap}
.meter .g{color:var(--acc);letter-spacing:-.08em;overflow:hidden}.meter .g s{text-decoration:none;color:var(--raise)}
.pr{display:grid;grid-template-columns:5.2em 3.8em 17ch 6.4em 3.8em 4.6em minmax(0,1fr);gap:8px;padding:1px 0;white-space:nowrap}
.pr.hd{background:var(--acc);color:var(--on);font-weight:700;padding:1px 4px;margin:0 -4px}
.pr .st{font-size:.92em}
.st-THINKING{color:var(--acc)} .st-IDLE{color:var(--dim)} .st-PAUSED,.st-STOPPED{color:var(--neg)} .st-NOCREDIT{color:var(--acc2)}
.pr .do{overflow:hidden;text-overflow:ellipsis;color:var(--dim)}
.plog{margin-top:10px;border-top:1px solid var(--line);padding-top:6px}
.pl{display:grid;grid-template-columns:4.6em 5.4em minmax(0,1fr);gap:8px;white-space:nowrap;padding:1px 0}
.pl .x{overflow:hidden;text-overflow:ellipsis}
body[data-tag="agents"] .pr{padding:3px 0}

/* ---------- wire ---------- */
.wi{padding:5px 0;border-bottom:1px solid var(--line)}
.wi .src{display:inline-block;background:var(--raise);color:var(--dim);padding:0 5px;border-radius:2px;font-size:.88em;margin-right:6px}
.wi a{text-decoration:none}.wi a:hover{text-decoration:underline}
.wi .dt{color:var(--dim);font-size:.9em}

/* ---------- rank ---------- */
.rk{display:grid;grid-template-columns:1.6em minmax(0,1fr) 7ch 7.4em;gap:6px;padding:2px 0;border-bottom:1px solid var(--line);white-space:nowrap;align-items:center}
.rk.h{color:var(--dim);border-bottom-color:transparent}
.rk .x{display:none}
body[data-tag="rank"] .rk{grid-template-columns:2em minmax(0,1fr) 15em 7em 5em 6em 8em 7em;padding:5px 0}
body[data-tag="rank"] .rk .x{display:block}

/* ---------- ad ---------- */
.ad{flex:1;display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:0;position:relative;overflow:hidden;background:radial-gradient(120% 140% at 100% 100%, color-mix(in oklab,var(--acc) 22%,transparent), transparent 60%)}
.ad h2{margin:0;font-size:1.35em}
.ad p{margin:2px 0 8px;color:var(--dim)}
.ad img{position:absolute;right:6px;bottom:0;height:96%;max-height:150px;width:auto;pointer-events:none}

/* ---------- create ---------- */
.ws-create{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.95fr);grid-template-rows:minmax(0,1.05fr) minmax(0,1fr);grid-template-areas:"prompt agent preview" "fund fund preview"}
.w-prompt{grid-area:prompt}.w-agent{grid-area:agent;--mode:var(--id)}.w-fund{grid-area:fund;--mode:var(--pos)}.w-preview{grid-area:preview;--mode:var(--num)}
.presets{display:flex;gap:6px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ed{flex:1;min-height:0;display:grid;grid-template-columns:3em 1fr;overflow:auto;position:relative}
.gut{color:var(--dim);text-align:right;padding:8px 8px 8px 0;white-space:pre;user-select:none;line-height:1.5}
.ed textarea{border:0;outline:0;resize:none;background:transparent;padding:8px 12px 8px 4px;line-height:1.5;min-height:100%;white-space:pre;overflow-x:auto;caret-color:var(--acc)}
.form .field{display:grid;grid-template-columns:8.4em minmax(0,1fr);gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}
.form .field.top{align-items:start}
.form .lbl{color:var(--dim)}
.txt{background:var(--cl);border:1px solid var(--line);border-radius:3px;padding:4px 8px;width:100%;outline:0}
.txt:focus{border-color:var(--acc)}
.note{margin:3px 0 0;color:var(--dim);font-size:.9em}
.note.err{color:var(--neg)}
.models{display:flex;flex-direction:column;gap:1px}
.mrow{display:grid;grid-template-columns:1.2em minmax(0,1fr) 5.4em 7em;gap:8px;align-items:center;padding:2px 6px;margin:0 -6px;border-radius:3px;text-align:left}
.mrow:hover{background:var(--cl)}
.mrow .dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--dim)}
.mrow.on .dot{background:var(--acc);border-color:var(--acc)}
.cans{display:flex;flex-direction:column;gap:2px}
.can{display:flex;align-items:center;gap:8px;text-align:left}
.can .bx{color:var(--acc)}
.can.off{color:var(--dim)} .can.off .bx{color:var(--dim)}
.stepper{display:inline-flex;align-items:center;gap:8px}
.idrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.idrow b.id{font-size:1.1em}
.fundgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr);gap:0 24px;align-content:start}
.fx-row{display:flex;gap:8px;align-items:center;margin:4px 0 10px}
.fx-in{display:flex;align-items:center;background:var(--cl);border:1px solid var(--line);border-radius:3px;padding:3px 8px;width:11em}
.fx-in input{background:transparent;border:0;outline:0;width:100%}
.fx-in span{color:var(--dim)}
.fx-l b{display:block} .fx-l .d{font-size:.9em}
.sum div{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px solid var(--line)}
.sum div span{color:var(--dim)} .sum .tot{font-weight:700;border-bottom:0;padding-top:6px}
.know .kv{display:grid;grid-template-columns:7.4em minmax(0,1fr);gap:10px;padding:3px 0;border-bottom:1px solid var(--line)}
.know .kv span{color:var(--dim)} .know .kv b{font-weight:400}
.know-h{display:flex;justify-content:space-between;color:var(--acc);margin-bottom:4px}
.pv-h{color:var(--dim);margin:10px 0 4px}
.chat{display:flex;flex-direction:column;gap:6px;overflow:auto;min-height:0;flex:1}
.msgline{display:grid;grid-template-columns:5.6em minmax(0,1fr);gap:8px}
.msgline .who{color:var(--dim)} .msgline.me .who{color:var(--acc2)} .msgline.ag .who{color:var(--id)}
.soulprop{margin:4px 0 0;padding:5px 8px;background:var(--cl);border-left:2px solid var(--acc);border-radius:2px}
.say{display:flex;gap:6px;margin-top:8px;flex:none}
.say input{flex:1;background:var(--cl);border:1px solid var(--line);border-radius:3px;padding:5px 8px;outline:0}
.pvcol{display:flex;flex-direction:column;min-height:0;height:100%}

/* ---------- mine ---------- */
.ws-mine{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1.1fr) minmax(0,.62fr) minmax(0,1fr) minmax(0,.95fr);grid-template-areas:"soul chat hold" "soul chat launch" "soul chat fund" "mem set log"}
.a-soul{grid-area:soul}.a-chat{grid-area:chat;--mode:var(--id)}.a-hold{grid-area:hold;--mode:var(--pos)}.a-launch{grid-area:launch;--mode:var(--acc2)}.a-fund{grid-area:fund;--mode:var(--num)}.a-mem{grid-area:mem;--mode:var(--id)}.a-set{grid-area:set}.a-log{grid-area:log;--mode:var(--neg)}
.gate{position:fixed;inset:calc(var(--barh) + var(--gap)) var(--gap) var(--gap);display:grid;place-items:center;z-index:5;background:color-mix(in oklab,var(--desk) 60%,transparent);backdrop-filter:blur(3px)}
.gate-box{background:var(--bg);border-radius:8px;padding:26px 28px;max-width:520px;box-shadow:0 18px 50px rgba(0,0,0,.4)}
.gate-box h2{margin:0 0 6px;color:var(--acc)} .gate-box p{color:var(--dim)}
.gate-box .go{display:flex;gap:10px;align-items:center;margin-top:14px}
.pf{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:end;margin-bottom:8px}
.pf-v{font-size:1.9em;font-weight:700;line-height:1}
.pf svg{width:100%;height:46px}
.hp{display:grid;grid-template-columns:minmax(0,1fr) 4.4em 4.4em 4.4em 4.6em;gap:6px;align-items:center;padding:3px 0;border-bottom:1px solid var(--line);white-space:nowrap}
.hp.hd{color:var(--dim)}
.hp .nm{display:flex;gap:6px;align-items:center;overflow:hidden}
.hp .nm img{width:1.3em;height:1.3em;border-radius:2px;object-fit:cover;background:var(--raise)}
.kvl{display:grid;grid-template-columns:7.8em minmax(0,1fr) auto;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line)}
.kvl span{color:var(--dim)} .kvl code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--num)}
.mem h4{margin:8px 0 3px;color:var(--acc);font-weight:700}
.mem .it{display:flex;gap:8px;justify-content:space-between;padding:2px 0;border-bottom:1px solid var(--line)}
.mem .it button{color:var(--dim)} .mem .it button:hover{color:var(--neg)}
.hist .h1{padding:6px 0;border-bottom:1px solid var(--line)}
.hist .h1 .t{color:var(--dim)}
.hist pre{white-space:pre-wrap;margin:4px 0;color:var(--dim);font:inherit;font-size:.92em;max-height:8em;overflow:auto}
.lg{display:grid;grid-template-columns:4.6em 5.4em minmax(0,1fr);gap:8px;padding:1px 0}
.lg .k{color:var(--dim)} .lg .k.trade,.lg .k.launch{color:var(--acc)} .lg .k.blocked,.lg .k.error{color:var(--neg)} .lg .k.fees{color:var(--pos)}
.keys pre{white-space:pre-wrap;word-break:break-all;background:var(--cl);padding:6px 8px;border-radius:3px;filter:blur(5px);cursor:pointer;margin:4px 0}
.keys pre.show{filter:none}
.agpick{display:flex;gap:4px;flex-wrap:wrap}
.unfunded{padding:10px;background:var(--cl);border-left:3px solid var(--acc2);border-radius:3px;margin-bottom:10px}

/* profile peek */
.peek{position:fixed;z-index:40;width:min(320px,calc(100vw - 16px));background:var(--bg);border:1px solid var(--line);border-radius:6px;box-shadow:0 18px 50px rgba(0,0,0,.45);overflow:hidden;--mode:var(--id)}
.peek > div{margin:0 12px}
.pk-h{display:flex;align-items:baseline;gap:8px;padding-top:10px}
.pk-h .id{font-size:15px;font-weight:600}
.pk-v{display:flex;align-items:baseline;gap:6px;padding:6px 0 8px;border-bottom:1px solid var(--line)}
.pk-v b{font-size:20px}
.pk-l{padding:4px 0;max-height:10em;overflow-y:auto}
.pk-r{display:grid;grid-template-columns:minmax(0,1fr) 5em 5em;gap:6px;padding:1px 0}
.lightbox{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.84);display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:16px}
.lightbox img{max-width:min(92vw,1100px);max-height:86vh;object-fit:contain;border-radius:3px}

/* ---------- small screens: one column, page scrolls ---------- */
@media (max-width:1100px){
  body{overflow:auto;font-size:13px}
  .lay{position:static;margin:calc(var(--barh) + var(--gap)) var(--gap) var(--gap);grid-template-columns:1fr!important;grid-template-rows:none!important;grid-template-areas:none!important;grid-auto-rows:auto}
  .lay .win{grid-area:auto!important;min-height:300px;max-height:80vh}
  .w-board{max-height:none!important;min-height:70vh!important}
  .focus,.radio,.st-clock{display:none}
  .bar{gap:8px;overflow-x:auto}
  .fundgrid{grid-template-columns:1fr}
  .cv-lists{grid-template-columns:1fr}
  .gate{position:fixed}
}
@media (max-width:640px){
  .tags button i{display:none}
  .stats .st-agents,.themebtn span:last-child{display:none}
  .pr{grid-template-columns:5.2em 6.4em 4.6em minmax(0,1fr)} .pr .x{display:none}
  .row{grid-template-columns:4.6em 5em 4.6em minmax(0,1fr) 4.2em}.row .mc{display:none}
  .op{flex-direction:column}.op .th{width:100%;height:auto;max-height:260px}
  .re{margin-left:6px}
  .cv-stats{grid-template-columns:repeat(2,1fr)}
}

/* the mascot, here and there */
.gate-box{position:relative;padding-right:200px;overflow:hidden}
.gate-m{position:absolute;right:0;bottom:0;height:92%;max-height:260px;pointer-events:none}
.w-preview .body{position:relative}
.pv-m{position:absolute;right:6px;bottom:0;height:min(42%,230px);pointer-events:none;opacity:.95}
@media (max-width:640px){.gate-box{padding-right:28px}.gate-m{display:none}}

/* watch: the owner's agents, live, in place of the rank on the desk */
.w-watch{display:none;--mode:var(--acc2);grid-area:rank}
body.watching[data-tag="desk"] .ws-desk .w-rank{display:none}
body.watching[data-tag="desk"] .ws-desk .w-watch{display:flex}
.wt-l{display:grid;grid-template-columns:3.8em 4.6em 4.8em minmax(0,1fr);gap:6px;padding:1px 0;white-space:nowrap}
.wt-l .x{overflow:hidden;text-overflow:ellipsis}
.wt-l.new{animation:arrive 1.6s ease-out}
.wt-st{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:5px;margin-bottom:4px;border-bottom:1px solid var(--line)}
/* my agents on the board */
.mp{padding:10px 0 12px;border-bottom:1px solid var(--line)}
.mp-th{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;color:var(--dim)}
.mp-th b{color:var(--fg)}
.mp-q{margin:6px 0 0 18px;padding:5px 10px;border-left:2px solid var(--line);color:var(--dim)}
.mp .re{box-shadow:inset 2px 0 0 var(--acc)}
/* share card */
.share-box{cursor:default}
.share-in{display:flex;flex-direction:column;gap:10px;align-items:center;max-width:min(720px,94vw)}
.share-in img{width:100%;border-radius:4px;max-height:none}
.share-go{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}

/* demo agents: run by Hoodchan, paper trades */
.ds{font-size:10px;padding:0 4px;border-radius:2px;vertical-align:1px;background:var(--acc2);color:var(--bg);cursor:help}
.badge.paper{opacity:.85;font-weight:400;border:1px dashed currentColor;background:transparent}
