:root{--bg:#0d0f10;--card:#15191b;--card2:#1c2225;--tx:#ece6da;--mu:#9aa39f;--bd:#283033;--ac:#1f6f9a;--ac2:#0f4c6e;--ok:#7fb48a;--warn:#d9b27a;--bad:#e0705f;--sim:#b8a4d8;--sand:#d9c7a3;--fu:#7d8784;--link:#7fc3e8;--onok:#03241a}
[data-theme=light]{--bg:#f6f1e7;--card:#fffdf8;--card2:#f1ebdf;--tx:#1a1f22;--mu:#6b6f68;--bd:#e3dacb;--ok:#2f6b45;--link:#16618a;--onok:#fff;--mu:#5a5e57;--fu:#7f837b;--ac:#16618a;--sim:#6c4fa3;--warn:#8a5f14;--bad:#b23b2b}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 Inter,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg) url(contours.svg) top center/1400px auto no-repeat;color:var(--tx);transition:background .3s,color .3s}
.banner{background:linear-gradient(90deg,#3a2a00,#4a3400);color:#ffd77a;text-align:center;padding:7px 10px;font-size:12px}
[data-theme=light] .banner{background:#fff2cc;color:#6b4e00}
header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;max-width:980px;margin:0 auto}
.brand{display:flex;gap:10px;align-items:center}.brand small{display:block;color:var(--mu);font-size:12px}
.logo{width:34px;height:34px;border-radius:10px;background:linear-gradient(160deg,var(--sand),var(--ac) 55%,var(--ac2))}
@keyframes spin{to{transform:rotate(360deg)}}
.ghost{background:var(--card2);color:var(--tx);border:1px solid var(--bd);border-radius:10px;padding:7px 12px;cursor:pointer;font-size:16px}
.roles{display:flex;gap:6px;max-width:980px;margin:0 auto;padding:0 18px 8px;position:sticky;top:0;z-index:5;background:var(--bg)}
.roles button{flex:1;background:var(--card);color:var(--mu);border:1px solid var(--bd);border-radius:999px;padding:9px 6px;cursor:pointer;font-size:13px;transition:.2s}
.roles button.on{background:linear-gradient(90deg,var(--ac),var(--ac2)) var(--ac2);color:#fff;border-color:transparent}
main{max-width:980px;margin:0 auto;padding:8px 18px 60px;display:grid;grid-template-columns:1.4fr 1fr;gap:14px}
@media(max-width:780px){main{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:18px;animation:in .35s ease}
@keyframes in{from{transform:translateY(6px)}}
.full{grid-column:1/-1}h2{margin:0 0 4px;font-size:17px}h3{margin:14px 0 6px;font-size:14px;color:var(--mu);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.mu{color:var(--mu);font-size:13px}label{display:block;font-size:12px;color:var(--mu);margin:10px 0 3px}
input{width:100%;padding:10px;border:1px solid var(--bd);border-radius:10px;font-size:15px;background:var(--card2);color:var(--tx)}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:520px){.g2{grid-template-columns:1fr}}
.btn{background:linear-gradient(90deg,var(--ac),var(--ac2));color:#fff;border:0;border-radius:12px;padding:12px 16px;font-size:15px;cursor:pointer;margin-top:12px;width:100%;font-weight:600}
.btn:disabled{opacity:.55;cursor:wait}.btn.sec{background:var(--card2);color:var(--tx);border:1px solid var(--bd)}.btn.okb{background:var(--ok);color:var(--onok)}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;word-break:break-all;background:var(--card2);padding:8px 10px;border-radius:8px;display:block;border:1px solid var(--bd)}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:3px 9px;border-radius:999px;background:var(--card2);border:1px solid var(--bd);color:var(--mu)}
.pill.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.pill.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.pill.sim{color:var(--sim);border-color:color-mix(in srgb,var(--sim) 40%,transparent)}.pill.warn{color:var(--warn)}
.ring{display:flex;gap:16px;align-items:center}.ring svg{flex:none}.ring circle{transition:stroke-dashoffset .8s ease}
.tl{list-style:none;padding:0;margin:8px 0 0;position:relative}
.tl li{position:relative;padding:0 0 14px 30px}.tl li:before{content:"";position:absolute;left:9px;top:20px;bottom:-2px;width:2px;background:var(--bd)}.tl li:last-child:before{display:none}
.tl .dot{position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:50%;border:2px solid var(--bd);background:var(--card);display:grid;place-items:center;font-size:11px;transition:.4s}
.tl li.done .dot{background:var(--ok);border-color:var(--ok);color:var(--onok)}.tl li.done:before{background:var(--ok)}
.tl li.now .dot{border-color:var(--ac);box-shadow:0 0 0 0 var(--ac);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ac) 60%,transparent)}100%{box-shadow:0 0 0 10px transparent}}
.tl b{font-size:14px}.tl .mu{display:block}.tl li.future b{color:var(--fu)}.tl li.future .mu{color:var(--fu)}
.feed{list-style:none;padding:0;margin:0;max-height:460px;overflow:auto}.feed li{padding:9px 0;border-bottom:1px solid var(--bd);font-size:13.5px;animation:in .3s}
.badge{display:flex;gap:10px;align-items:center;padding:12px;border-radius:12px;background:color-mix(in srgb,var(--ok) 12%,transparent);border:1px solid color-mix(in srgb,var(--ok) 40%,transparent);margin:10px 0}
.badge.bad{background:color-mix(in srgb,var(--bad) 12%,transparent);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.speed{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.speed div{background:var(--card2);border:1px solid var(--bd);border-radius:12px;padding:12px}.speed b{font-size:20px;display:block}
a{color:var(--link)}.status{font-size:13px;color:var(--mu);margin-top:8px;min-height:18px}
#toasts{position:fixed;right:14px;bottom:14px;display:flex;flex-direction:column;gap:8px;z-index:20;max-width:320px}
.toast{background:var(--card);border:1px solid var(--bd);border-left:3px solid var(--ac);border-radius:10px;padding:10px 12px;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.3);animation:in .3s}
.party{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--bd);font-size:13.5px;gap:8px}
.lock{text-align:center;padding:30px 10px}.lock .big{font-size:40px}

.big-amt{font-size:40px;font-weight:700;margin:6px 0 0;letter-spacing:-.02em}.btn.big{font-size:17px;padding:16px}
.opts{display:grid;gap:8px}.opt{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:var(--card2);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:12px;cursor:pointer;font-size:14px}.opt.off{cursor:default}
details.tech{margin-top:12px;border-top:1px solid var(--bd);padding-top:10px}details.tech summary{cursor:pointer;color:var(--link);font-size:14px}
.row{display:flex;gap:6px;align-items:stretch}.row .mono{flex:1}.copy{background:var(--card2);color:var(--tx);border:1px solid var(--bd);border-radius:8px;padding:0 10px;cursor:pointer;font-size:12px}
.qr{background:#fff;border-radius:12px;padding:12px;margin-top:10px;color:#1a1f22}.qr svg{width:220px;height:220px;display:block;margin:0 auto}.qr .mu{color:#4a4e48}.qr .pill.sim{color:#5b3f93;background:#f1ecfa}
.receipt{text-align:center;padding:10px 0}.receipt .big{font-size:34px;width:60px;height:60px;border-radius:50%;background:var(--ok);color:var(--onok);display:grid;place-items:center;margin:0 auto 8px}
.card2{background:var(--card2);border:1px solid var(--bd);border-radius:12px;padding:12px;margin-top:10px}.opt.sel{border-color:var(--ok);background:var(--card)}
.opt.rad{flex-direction:row;gap:10px;align-items:flex-start;margin:0;color:var(--tx);font-size:14px}.opt.rad input{width:auto;margin-top:4px}.explain{margin:10px 0 0}
.opts .status:empty{display:none}
.hbtns{display:flex;gap:8px;align-items:center}.ghost.rs{font-size:13px;padding:6px 10px;width:auto;border-radius:999px}.btn.sm{display:inline-block;width:auto;padding:8px 12px;font-size:13px;margin-top:6px}.tl .pill.sim{display:inline-block;margin-top:6px}
.sheetbg{position:fixed;inset:0;background:rgba(5,8,9,.55);display:flex;align-items:flex-end;justify-content:center;z-index:50}
.sheet{background:var(--card);color:var(--tx);border:1px solid var(--bd);border-radius:18px 18px 0 0;padding:18px;width:100%;max-width:520px;max-height:90vh;overflow:auto}
.sheet input[type=number],.sheet input:not([type]){width:100%}.chk{display:flex;gap:10px;align-items:flex-start;margin-top:12px;color:var(--tx)}.chk input{width:auto;margin-top:4px}
.okt{color:var(--ok);font-weight:600}.undo{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;background:var(--card);color:var(--tx);border:1px solid var(--ok);border-radius:14px;padding:10px 14px;display:flex;gap:12px;align-items:center;z-index:60}
.undo .btn.sm{margin-top:0}select{width:100%;padding:10px;border-radius:10px;background:var(--card2);color:var(--tx);border:1px solid var(--bd);font-size:15px}

#bgart{position:fixed;inset:0;pointer-events:none;z-index:0;transition:opacity 1.2s ease;color:var(--tx)}
#bgart .isl{position:absolute;right:-4vw;top:14vh;width:min(70vw,760px);height:70vh}#bgart .isl path{fill:currentColor;fill-opacity:.035;stroke:currentColor;stroke-opacity:.09;stroke-width:1.2;vector-effect:non-scaling-stroke}
#bgart .kalo{position:absolute;left:-30px;bottom:-20px;width:min(36vw,300px);height:auto;opacity:.07}
header,.roles,.shell,.banner{position:relative;z-index:1}.roles{z-index:5}
.shell{max-width:980px;margin:0 auto}.shell main{max-width:none}
@media(min-width:1000px){.shell.ws{max-width:1320px;display:grid;grid-template-columns:300px 1fr;gap:6px;padding-left:18px}#bFiles{display:none}.shell.ws #side{position:sticky;top:56px;align-self:start;max-height:calc(100vh - 70px);overflow:auto;background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:14px;margin-top:8px}#bSideX{display:none}header,.roles{max-width:1320px}}
@media(max-width:999px){#side{display:none}body.sideopen #side{display:block;position:fixed;left:0;top:0;bottom:0;width:min(88vw,360px);background:var(--card);border-right:1px solid var(--bd);z-index:70;padding:16px;overflow:auto}body.sideopen #sideBg{position:fixed;inset:0;background:rgba(5,8,9,.55);z-index:69}}
.sidehd{display:flex;justify-content:space-between;align-items:center}#fq{width:100%;margin-top:8px}
.fchips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.fchips button{background:var(--card2);color:var(--tx);border:1px solid var(--bd);border-radius:999px;padding:5px 10px;font-size:12.5px;cursor:pointer}.fchips button.on{background:var(--ac2);color:#fff;border-color:transparent}
.flist{list-style:none;margin:0;padding:0;display:grid;gap:8px}.frow{display:flex;gap:10px;width:100%;text-align:left;background:var(--card2);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:10px;cursor:pointer;font-size:14px}.frow>span{display:flex;flex-direction:column}.frow.cur{border-color:var(--ok)}
.fb{display:inline-block;align-self:flex-start;margin-top:4px;font-size:12px;border-radius:999px;padding:2px 8px;border:1px solid var(--bd);color:var(--tx)}.fb.need{color:var(--onok);background:var(--ok);border-color:transparent;font-weight:600}.fb.closed{color:var(--mu)}
#sideBg{display:none}body.sideopen #sideBg{display:block}body.sideopen .shell{z-index:80}
@media(min-width:1000px){body.sideopen #sideBg{display:none}}
#bgart .isl path{fill-opacity:.05;stroke-opacity:.13}#bgart .kalo{opacity:.09}
@media(max-width:520px){.brand small{display:none}.ghost.rs{white-space:nowrap}}

.rail{display:none}.railb{display:inline-block;min-width:22px;text-align:center;border-radius:999px;background:var(--ok);color:var(--onok);font-size:12px;font-weight:700;padding:2px 6px;margin-top:8px}
.colb{font-size:15px;padding:4px 10px;line-height:1}#bCol{display:none}
@media(min-width:1000px){.shell.ws{transition:grid-template-columns .35s ease}#bCol{display:inline-block}.shell.ws.col{grid-template-columns:52px 1fr}.shell.ws.col #side{padding:10px 6px;overflow:visible}.shell.ws.col #sideFull{display:none}.shell.ws.col .rail{display:flex;flex-direction:column;align-items:center}}
@media (prefers-reduced-motion:reduce){.shell.ws{transition:none}}
.railpick{border:0;padding:0;margin:10px 0 0;display:grid;gap:8px}.railpick legend{font-size:13px;color:var(--mu);margin-bottom:6px}.opt.off{opacity:1;color:var(--mu)}.linkb{background:none;border:0;color:var(--link);text-decoration:underline;cursor:pointer;font-size:14px;padding:4px 0}
