:root{--bg:#0b0f17;--panel:#121826;--panel2:#171f30;--line:#232c40;--text:#e6eaf2;--muted:#8d97ab;--accent:#3b82f6;--accent2:#22c55e;--neg:#ef5350;--pos:#26a69a;--warn:#f5b041}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif}
a{color:#7fb0ff;text-decoration:none}a:hover{text-decoration:underline}
code,pre,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
code{background:#1b2333;padding:1px 6px;border-radius:5px}
pre{background:#0e1422;border:1px solid var(--line);padding:10px 12px;border-radius:8px;overflow:auto;white-space:pre-wrap;word-break:break-all}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}.narrow{max-width:460px}
.top{border-bottom:1px solid var(--line);background:rgba(11,15,23,.9);position:sticky;top:0;z-index:5;backdrop-filter:blur(6px)}
.nav{display:flex;align-items:center;justify-content:space-between;height:60px}
.brand{font-weight:700;font-size:18px;color:var(--text)}.brand:hover{text-decoration:none}.logo{color:var(--accent)}
nav{display:flex;align-items:center;gap:18px}nav a{color:var(--muted)}nav a:hover{color:var(--text);text-decoration:none}
.btn{display:inline-block;background:var(--accent);color:#fff!important;border:1px solid var(--accent);border-radius:8px;padding:8px 16px;font-weight:600;cursor:pointer;font-size:14px}
.btn:hover{filter:brightness(1.1);text-decoration:none}.btn.ghost{background:transparent;color:var(--text)!important;border-color:var(--line)}
.btn.big{padding:12px 22px;font-size:16px}.btn.small{padding:5px 11px;font-size:13px}.btn.wide{width:100%;margin-top:6px}
.btn.danger{color:#ff8a80!important}
.linklike{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;padding:0}.linklike:hover{color:var(--text)}
form.inline{display:inline}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hero{padding:70px 0 40px;background:radial-gradient(900px 400px at 20% -10%,rgba(59,130,246,.18),transparent),radial-gradient(700px 300px at 90% 0,rgba(34,197,94,.10),transparent)}
.eyebrow{color:var(--accent2);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:13px}
h1{font-size:30px;line-height:1.2;margin:.3em 0 .5em}.hero h1{font-size:44px;max-width:900px}
.lead{font-size:18px;color:#c3cad8;max-width:820px}.cta{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0}
.mock{max-width:820px;margin-top:20px}.chat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}
.msg{padding:10px 14px;border-radius:12px;max-width:92%}.msg.you{background:#1d2a44;align-self:flex-end}.msg.bot{background:var(--panel2);border:1px solid var(--line)}
section{padding:34px 0}h2{font-size:24px;margin:0 0 18px}h3{margin:0 0 6px;font-size:17px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.feat,.plan,.cardbox{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.feat p{color:#c3cad8;margin:.3em 0}.feat.premium{border-color:#3b4f7a}.feat ol{padding-left:20px;margin:.4em 0}.feat li{margin:.3em 0}
.pill{display:inline-block;font-size:11px;padding:1px 8px;border-radius:99px;background:#1f3357;color:#9cc0ff;vertical-align:middle;margin-left:4px}
.pill.warn{background:#4a3a12;color:#f5d27a}.pill.neg{background:#4a1c1c;color:#ff9a9a}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;padding:0;list-style:none;counter-reset:s}
.steps li{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;counter-increment:s}
.steps li:before{content:counter(s);display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;margin-right:8px}
.steps b{display:inline}.steps span{display:block;color:var(--muted);margin-top:6px}
.url{display:flex;gap:12px;align-items:center;background:#0e1422;border:1px solid #2b3a5c;border-radius:10px;padding:12px 16px;margin:12px 0 18px;flex-wrap:wrap}
.url span{color:var(--muted);font-size:13px}.url code{font-size:16px;background:none;color:#9cc0ff}
.price{font-size:26px;font-weight:700;margin:.2em 0}.plan ul{padding-left:20px;color:#c3cad8}
.fine p{color:var(--muted);max-width:900px}
.foot{border-top:1px solid var(--line);margin-top:40px;padding:22px 0;color:var(--muted);font-size:13px}.foot .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.muted{color:var(--muted)}.small{font-size:13px}.pos{color:var(--pos)}.neg{color:var(--neg)}
main.wrap{padding-top:30px;padding-bottom:20px}.cardbox{margin-bottom:18px}
.narrow .cardbox{margin-top:30px}
label{display:block;margin:12px 0;color:#c3cad8;font-size:14px}
input[type=email],input[type=password],input[type=text],input[type=search],input:not([type]){display:block;width:100%;margin-top:5px;padding:10px 12px;background:#0e1422;border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:15px}
.row input{width:auto;min-width:260px;margin:0}label.check{display:flex;gap:8px;align-items:flex-start}label.check input{margin-top:4px}
.err{background:#3a1818;border:1px solid #6b2b2b;color:#ffb4b4;padding:10px 12px;border-radius:8px}
.ok{background:#12301f;border:1px solid #1f5c39;color:#b8f0cb;padding:10px 12px;border-radius:8px;margin-bottom:12px}
.tok{font-size:14px;background:#0b1a12;border-color:#1f5c39;color:#d7ffe5;margin:8px 0}
.titlebar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th,table.data td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
table.data th{color:var(--muted);font-weight:600;cursor:pointer;user-select:none;background:var(--panel2);position:sticky;top:0}
table.data th.sorted:after{content:" " attr(data-dir)}table.data td.n,table.data th.n{text-align:right}
table.data tbody tr:hover{background:#18213a;cursor:pointer}.cardbox table.data tbody tr:hover{cursor:default}
table.kv td{padding:4px 14px 4px 0}.upgrade{margin-top:14px;padding:10px 12px;border:1px dashed #3b4f7a;border-radius:8px}
.empty{text-align:left}.narrowform{max-width:420px}
@media (max-width:700px){.hero h1{font-size:30px}nav a:not(.btn){display:none}}
.footlinks a{color:inherit}.footlinks{margin:0 12px}
.cardbox.danger{border-color:#f3c2c2}.dangerbtn{background:#b42318;border-color:#b42318}
.legal{max-width:760px}.legal h2{margin-top:28px;font-size:1.15rem}.legal li{margin:4px 0}
img.logo{vertical-align:-4px;border-radius:5px}
#runs td:first-child{white-space:normal;min-width:240px;max-width:380px}#runs td:first-child .small,#runs td:first-child small{word-break:break-word}main.wrap.wide{max-width:1360px}
.vtog{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:1px 7px;margin-right:8px;font-size:12px;cursor:pointer}
.vtog .arr{display:inline-block;transition:transform .15s;transform:rotate(-90deg)}.vtog[aria-expanded=true] .arr{transform:none}
.vtog:hover{color:var(--fg,inherit)}tr.vchild td{background:var(--panel2)}td.indent{padding-left:44px!important;border-left:3px solid var(--line)}
td .src{white-space:normal;max-width:520px}
.oauthbox{border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:14px 16px;margin:0 0 18px}.oauthbox p{margin:10px 0 0}
.authbox{max-width:420px;margin:0 auto}.authbox h1{margin-top:0}.authbox .center,.center{text-align:center}
.orline{display:flex;align-items:center;gap:10px;color:var(--muted);margin:16px 0;font-size:13px}.orline:before,.orline:after{content:"";flex:1;border-top:1px solid var(--line)}
.gbtn{display:flex;align-items:center;justify-content:center;gap:10px}
label.check{display:flex;gap:10px;align-items:flex-start}label.check input{flex:0 0 auto;width:auto;margin:3px 0 0}label.check>span{flex:1 1 auto;min-width:0;display:block}
.wrap.mid{max-width:820px}.cardbox.wel{margin:16px 0}.cardbox.wel h2{margin:0 0 8px;font-size:18px}.wel-feats{padding-left:20px;margin:8px 0}.wel-feats li{margin:4px 0}
.prompts{padding-left:22px;margin:6px 0}.prompts li{margin:8px 0}.prompts code{display:block;white-space:normal;padding:8px 10px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;line-height:1.45}
.okbox{border-color:#1f6f4a;background:#0f1f19}.okbox h1{margin-top:0;color:#7ee2a8}.wel-status{margin:4px 0 10px}
.url code{overflow-wrap:anywhere;min-width:0}@media(max-width:520px){.url{flex-wrap:wrap}}
.handlebox{display:flex;align-items:center;gap:6px}.handlebox input{flex:1;min-width:0}
.profilehead{display:flex;gap:18px;align-items:flex-start;margin:8px 0 18px}.profilehead h1{margin:0}.avatar{flex:0 0 64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#2d5bd8,#22c55e);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff}
.bio{white-space:pre-wrap;overflow-wrap:anywhere}.spacebar{background:#0f1a2e;border-bottom:1px solid var(--line);font-size:13px;padding:6px 0}.spacebar .wrap{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}
textarea{width:100%;background:#0e1422;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit;margin-top:6px}
/* workspace grid + widgets */
.wsbar select,#add-widget,#run-pick{background:#0e1422;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:14px;max-width:360px}
.wsgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:56px;gap:12px;margin:14px 0;position:relative}
.widget{padding:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative;overflow:hidden}
.widget.dragging{opacity:.85;box-shadow:0 8px 30px rgba(0,0,0,.5);z-index:3;outline:2px solid var(--accent)}
.widget.pinned{border-color:#3a4760}
.widget header{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;border-bottom:1px solid var(--line);cursor:grab;user-select:none;touch-action:none;font-weight:600;font-size:13px}
.widget.pinned header{cursor:default}.wtools button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:14px;padding:0 4px}.wtools button:hover{color:var(--text)}
.wbody{flex:1;min-height:0;padding:10px 12px;overflow:auto;position:relative}.wbody canvas.chart{display:block;position:absolute;inset:10px 12px}
.rz{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 50%,var(--muted) 50%,var(--muted) 60%,transparent 60%,transparent 72%,var(--muted) 72%,var(--muted) 82%,transparent 82%)}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px 14px}.kv div{display:flex;flex-direction:column}.kv span{font-size:12px}.kv b{font-size:17px}
.warnline{color:var(--warn)}.linklist{display:flex;flex-wrap:wrap;gap:8px}
table.heat{border-collapse:separate;border-spacing:2px;font-size:11px}table.heat th{color:var(--muted);font-weight:500;padding:0 3px}table.heat td{min-width:22px;height:20px;text-align:center;border-radius:3px;background:#0e1422}
.wbody .scroll{overflow:auto;max-height:100%}.wbody table.data th{cursor:default;font-size:12px}.wbody table.data td{font-size:12px;padding:5px 8px}
ul.vlist,ul.plain{list-style:none;padding:0;margin:0}ul.vlist li{padding:3px 0}ul.vlist .cur{font-weight:700;color:var(--text)}ul.plain li{padding:6px 0;border-bottom:1px solid var(--line)}
.cardbox.note{border-color:#2b4a7a;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
details.cardbox summary{cursor:pointer}form.stack{display:flex;flex-direction:column;gap:10px;max-width:560px;margin-top:12px}
@media (max-width:760px){.wsgrid{display:flex;flex-direction:column}.widget{min-height:260px}.widget header{cursor:default}.rz{display:none}}
/* template gallery */
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:24px}
.tcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.tcard h3{margin:10px 0 4px;font-size:16px}
.tmini{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:9px;gap:3px;background:#0e1422;border-radius:8px;padding:6px;max-height:170px;overflow:hidden}
.tmini i{background:#1b2540;border-radius:3px;font-style:normal;font-size:9px;color:var(--muted);padding:1px 3px;overflow:hidden;white-space:nowrap}
.tmini i.k-equity{background:#16363a}.tmini i.k-drawdown{background:#3a1d22}.tmini i.k-heatmap{background:#2c2a14}.tmini i.k-stats{background:#1c2c4d}
.pill{font-size:11px;border:1px solid var(--line);border-radius:10px;padding:1px 7px;color:var(--muted);font-weight:500}
/* community */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 18px;border-bottom:1px solid var(--line)}.tabs a{padding:8px 12px;color:var(--muted);border-bottom:2px solid transparent}.tabs a.on{color:var(--text);border-color:var(--accent)}.tabs a:hover{text-decoration:none;color:var(--text)}
.likebtn{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:5px 12px;font-weight:600;cursor:pointer;font-size:14px;display:inline-block}.likebtn.on{border-color:var(--accent2);color:var(--accent2)}.likebtn:hover{text-decoration:none;filter:brightness(1.15)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.comment{border-top:1px solid var(--line);padding:10px 0}.cbody{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}.cact{display:flex;gap:12px}
.comments textarea{width:100%}
.verified{color:var(--accent2);font-weight:600}.eyebrow.small{font-size:11px;margin:8px 0 0}.plainlink:hover{text-decoration:none}
img.spark{width:100%;height:90px;display:block;background:#0e1422;border-radius:8px}.statline{margin:4px 0}
/* phase 4: shared strategy pages */
.share h3{font-size:15px;margin:18px 0 6px}.badges{margin:6px 0 10px}.unverified{color:var(--muted);font-weight:600}
.disclaimer{font-size:13px;color:var(--muted);border-left:3px solid var(--warn);padding:4px 10px;margin:10px 0 14px}
.warnbox{background:#33290f;border:1px solid #6b5a1f;color:#ffe2a1;padding:10px 12px;border-radius:8px}
.kv.tiles b{font-size:20px}.chartbox{height:260px;position:relative}.chartbox.short{height:170px}
.sgrid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:0 18px}
pre.code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#0e1422;border:1px solid var(--line);border-radius:8px;padding:10px;max-height:420px;overflow:auto}
td.acts{width:1%}td.acts .btn{display:block;width:100%;margin:2px 0;text-align:center}td.acts form{display:block}tr.cur td{background:#14203a}
.profshare{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.profshare:first-of-type{border-top:0}.profshare img.spark{height:48px}
table.assume td{padding:4px 14px 4px 0;vertical-align:top}table.assume td:first-child{white-space:nowrap}
/* phase 5: marketplace */
.listing{border-color:#2b4a7a}.listhead{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}.listhead .eyebrow{margin:0}
.lprice{font-size:30px;font-weight:700;margin:2px 0}.listact{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.listact p{margin:0}
fieldset.market{border:1px solid var(--line);border-radius:10px;padding:10px 14px}fieldset.market legend{padding:0 6px;font-weight:600}
.filters{gap:14px;margin:10px 0 16px;flex-wrap:wrap;align-items:center}
.filters label{display:flex;align-items:center;gap:6px;margin:0}.filters select{width:auto;margin:0}.filters input[type=checkbox]{width:auto;margin:0}
.infobox{border-color:#2b4a7a}
.filters label.check{align-items:center}.filters label.check>span{flex:0 0 auto}.filters label.check input{margin:0}
.filters label.vchk{display:inline-flex;width:auto;flex:0 0 auto}
.filters input[type=checkbox]{min-width:0}
