:root{--bg:#0a0c10;--panel:#12151c;--panel2:#181c25;--panel3:#1e2330;--line:#262c38;--line2:#333b4a;--ink:#eef1f6;--dim:#a7b1c2;--faint:#6b7686;--gold:#e8b53a;--gold-dim:#8a6a1e;--p0:#4da3ff;--p1:#37c96f;--p2:#e8b53a;--p3:#ff8c42;--p4:#ff5252;--p5:#b06cff;--good:#37c96f;--warn:#e8b53a;--bad:#ff5252;--info:#4da3ff;--r:12px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font:15px/1.65 Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh}.disp,h1,h2,h3{font-family:Archivo,system-ui,sans-serif}.mono{font-family:JetBrains Mono,ui-monospace,monospace}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{font:inherit;color:var(--ink);background:var(--panel2);border:1px solid var(--line2);border-radius:8px;padding:8px 10px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--gold)}input[type=file]{display:none}input[type=checkbox]{width:auto;accent-color:var(--gold);cursor:pointer}::placeholder{color:var(--faint)}a{color:var(--gold)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}header.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(10,12,16,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.hwrap{max-width:1180px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.brand{font-family:Archivo,sans-serif;font-weight:900;font-size:19px;letter-spacing:.4px;color:var(--ink);text-decoration:none}.brand em{color:var(--gold);font-style:normal}.hrule{height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.pills{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto;align-items:center}.pill{border:1px solid var(--line2);border-radius:999px;padding:4px 12px;font-size:12.5px;color:var(--dim);white-space:nowrap}.pill b{color:var(--ink)}.pill.gold{border-color:var(--gold-dim);color:var(--gold)}.pill.admin{border-color:#b06cff;color:#b06cff}.hbtn{border:1px solid var(--line2);border-radius:8px;padding:6px 12px;font-size:13px;color:var(--dim);text-decoration:none;display:inline-block}.hbtn:hover{border-color:var(--gold);color:var(--gold)}.avatar{width:28px;height:28px;border-radius:50%;border:1px solid var(--line2);object-fit:cover}nav.tabs{max-width:1180px;margin:0 auto;padding:0 20px;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}nav.tabs::-webkit-scrollbar{display:none}.tab{padding:12px 18px;font-family:Archivo,sans-serif;font-weight:700;font-size:14px;letter-spacing:.5px;color:var(--dim);border-bottom:3px solid transparent;text-transform:uppercase;text-decoration:none;white-space:nowrap;position:relative}.tab:hover{color:var(--ink)}.tab.on{color:var(--gold);border-color:var(--gold)}.tab .dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--bad)}main{max-width:1180px;margin:0 auto;padding:26px 20px 90px}main.wide{max-width:1420px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px;margin-bottom:20px}.card.tight{padding:16px}.card h2{font-size:17px;margin-bottom:6px;letter-spacing:.3px}.card h2 .tag,.eyebrow{font-size:11px;color:var(--gold);letter-spacing:1.5px;display:block;margin-bottom:4px;text-transform:uppercase;font-weight:700}.sub{color:var(--dim);font-size:14px;line-height:1.7;margin-bottom:14px}.grid2{grid-template-columns:1fr 1fr;grid-gap:14px}.grid2,.grid3{display:grid;gap:14px}.grid3{grid-template-columns:1fr 1fr 1fr;grid-gap:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.end{justify-content:flex-end}.spacer{margin-left:auto}.field{margin-bottom:12px}.field label{display:block;font-size:12px;color:var(--dim);margin-bottom:5px;font-weight:600}.btn,.field label{letter-spacing:.3px}.btn{background:var(--gold);color:#14100a;font-weight:700;border-radius:9px;padding:11px 20px;font-size:14px;display:inline-block;text-decoration:none;text-align:center}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{background:none;border:1px solid var(--line2);color:var(--dim);font-weight:600}.btn.ghost:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}.btn.sm{padding:6px 12px;font-size:12.5px}.btn.xs{padding:3px 9px;font-size:11.5px;border-radius:6px}.btn.danger{background:none;border:1px solid var(--line2);color:var(--bad)}.btn.danger:hover:not(:disabled){border-color:var(--bad)}.btn.good{background:var(--good);color:#08210f}.btn.block{width:100%}.hint{font-size:12px;margin-top:6px}.empty,.hint{color:var(--faint)}.empty{border:1px dashed var(--line2);border-radius:var(--r);padding:26px;text-align:center;font-size:13.5px}.toast-stack{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{background:var(--gold);color:#14100a;font-weight:700;border-radius:10px;padding:11px 20px;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.4);animation:toast-in .22s ease-out;max-width:92vw}.toast.bad{background:var(--bad);color:#fff}.toast.good{background:var(--good);color:#08210f}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid var(--line2);border-radius:999px;padding:6px 13px;font-size:13px;color:var(--dim);transition:.12s;background:none}.chip:hover{border-color:var(--faint);color:var(--ink)}.chip.on{background:var(--gold);border-color:var(--gold);color:#14100a;font-weight:600}.chip.neg.on{background:var(--bad);border-color:var(--bad);color:#fff}.chip.pos.on{background:var(--good);border-color:var(--good);color:#08210f}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg .chip{min-width:44px;text-align:center;justify-content:center}.acc{border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;overflow:hidden;background:var(--panel)}.acc summary{list-style:none;cursor:pointer;padding:15px 20px;display:flex;align-items:center;gap:12px;font-family:Archivo,sans-serif;font-weight:700;font-size:14.5px}.acc summary::-webkit-details-marker{display:none}.acc summary .lt{color:var(--gold);font-size:12px;letter-spacing:1.5px;min-width:52px}.acc summary .done{margin-left:auto;font-size:12px;color:var(--faint);font-weight:500}.acc[open] summary{border-bottom:1px solid var(--line)}.acc .body{padding:18px 20px}.q{margin-bottom:16px}.q .qt{font-size:13.5px;margin-bottom:7px}.q .qt b{color:var(--gold);margin-right:6px}textarea{min-height:64px;resize:vertical}.bitem{display:flex;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid var(--line)}.bitem:nth-child(odd){background:var(--panel2)}.bitem .n{color:var(--faint);font-size:12px;min-width:22px}.bitem .s{flex:1 1;font-size:13.5px}.bitem .seg .chip{padding:5px 0;width:40px;font-size:13px}.scalebar{display:flex;gap:14px;flex-wrap:wrap;padding:10px 14px;background:var(--panel2);border-radius:8px;margin-bottom:12px;font-size:12.5px;color:var(--dim)}.scalebar b{color:var(--gold)}.progress{height:6px;background:var(--panel2);border-radius:99px;overflow:hidden;margin:12px 0}.progress i{display:block;height:100%;background:var(--gold);border-radius:99px;transition:.3s}.results{display:grid;grid-template-columns:340px 1fr;grid-gap:18px;gap:18px}.dimrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.dimrow .nm{width:170px;font-size:13px}.dimrow .bar{flex:1 1;height:8px;background:var(--panel2);border-radius:99px;overflow:hidden}.dimrow .bar i{display:block;height:100%;border-radius:99px}.dimrow .sc{font-family:JetBrains Mono,monospace;font-size:13px;width:46px;text-align:right}.band{font-size:10.5px;letter-spacing:.8px;border-radius:5px;padding:2px 7px;font-weight:700;text-transform:uppercase}.band.low{background:#123322;color:var(--good)}.band.mod{background:#332a12;color:var(--warn)}.band.high{background:#331414;color:var(--bad)}.arch{background:linear-gradient(135deg,#1a1608,#12151c 60%);border:1px solid var(--gold-dim);border-radius:var(--r);padding:20px}.arch .an{font-family:Archivo,sans-serif;font-weight:900;font-size:24px;color:var(--gold)}.arch .fp{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.arch .fp b{color:var(--ink)}.stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:18px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}.stat .v{font-family:JetBrains Mono,monospace;font-weight:700;font-size:24px}.stat .l{font-size:11.5px;color:var(--dim);letter-spacing:.4px;text-transform:uppercase;margin-top:2px}.stat .sub2{font-size:11.5px;color:var(--faint);margin-top:4px}.trade{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:10px}.trade .top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.trade .sym{font-family:JetBrains Mono,monospace;font-weight:700}.trade .meta{color:var(--faint);font-size:12px}.badge{font-size:11px;font-weight:700;border-radius:5px;padding:2px 8px;letter-spacing:.5px}.badge.win{background:#123322;color:var(--good)}.badge.loss{background:#331414;color:var(--bad)}.badge.be{background:#2a2d36;color:var(--dim)}.badge.plan-y{background:#123322;color:var(--good)}.badge.plan-n{background:#331414;color:var(--bad)}.badge.info{background:#1d2a44;color:#7fb4ff}.trade .tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.trade .tags span{font-size:11.5px;border:1px solid var(--line2);border-radius:99px;padding:2px 9px;color:var(--dim)}.trade .tags span.neg{color:var(--bad);border-color:#4a2626}.trade .tags span.pos{color:var(--good);border-color:#1e4530}.quote{margin-top:9px;padding-left:11px;border-left:2px solid var(--line2);color:var(--dim);font-size:13px;font-style:italic}.thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.thumbs img{width:86px;height:60px;object-fit:cover;border-radius:7px;border:1px solid var(--line2);cursor:pointer}.lightbox{position:fixed;inset:0;background:rgba(5,6,9,.94);display:flex;align-items:center;justify-content:center;z-index:200;padding:30px}.lightbox img{max-width:96%;max-height:92vh;border-radius:10px}.upzone{border:2px dashed var(--line2);border-radius:10px;padding:16px;text-align:center;color:var(--faint);font-size:13px;cursor:pointer;display:block}.upzone.drag,.upzone:hover{border-color:var(--gold);color:var(--gold)}.phase-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:8px;gap:8px;margin-bottom:20px}.pr{border:1px solid var(--line);border-radius:10px;padding:10px 8px;text-align:center;cursor:pointer;transition:.15s;background:var(--panel)}.pr:hover{border-color:var(--line2)}.pr .wk{font-size:10.5px;letter-spacing:1px;color:var(--faint);text-transform:uppercase}.pr .pn{font-family:Archivo,sans-serif;font-weight:700;font-size:12.5px;margin-top:3px}.pr .pp{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--dim);margin-top:4px}.pr.here{box-shadow:0 0 0 2px var(--pc) inset}.pr .hereflag{font-size:9.5px;font-weight:800;letter-spacing:1px;color:var(--pc);display:none;margin-top:3px}.pr.here .hereflag{display:block}.phase{border:1px solid var(--line);border-left:4px solid var(--pc);border-radius:var(--r);background:var(--panel);margin-bottom:14px;overflow:hidden}.phase summary{list-style:none;cursor:pointer;padding:15px 18px;display:flex;align-items:center;gap:12px}.phase summary::-webkit-details-marker{display:none}.phase .pnm{font-family:Archivo,sans-serif;font-weight:800;font-size:15px}.phase .pwk{font-size:11px;letter-spacing:1.2px;color:var(--pc);font-weight:700}.phase .pprog,.phase .psub{font-size:12px;color:var(--dim)}.phase .pprog{margin-left:auto;font-family:JetBrains Mono,monospace;white-space:nowrap}.phase .body{padding:0 18px 16px;border-top:1px solid var(--line)}.phase h4{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--dim);margin:14px 0 8px}.phase .go{color:var(--dim);font-size:13px;padding-left:16px}.phase .go li{margin-bottom:4px}.ck{display:flex;gap:10px;align-items:flex-start;padding:7px 9px;border-radius:8px;font-size:13.5px}.ck:hover{background:var(--panel2)}.ck .box{width:18px;height:18px;border:2px solid var(--line2);border-radius:5px;flex:none;margin-top:1px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#0a0c10;font-weight:900;cursor:pointer;background:none}.ck.on .box{background:var(--pc);border-color:var(--pc)}.ck .ck-text{flex:1 1;cursor:pointer;text-align:left;background:none;color:inherit}.ck.on .ck-text{color:var(--faint);text-decoration:line-through}.ck .ck-tools{display:flex;gap:4px;opacity:0;transition:.12s}.ck:focus-within .ck-tools,.ck:hover .ck-tools{opacity:1}.ck .ck-tools button{color:var(--faint);font-size:13px;padding:0 4px}.ck .ck-tools button:hover{color:var(--gold)}.ck .ck-tools button.del:hover{color:var(--bad)}.inline-edit{background:var(--panel2);border:1px solid var(--gold);border-radius:6px;padding:4px 8px;font-size:13.5px;width:100%}.money{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.bignum{font-family:JetBrains Mono,monospace;font-weight:700;font-size:30px;color:var(--gold)}.plist{margin-top:10px}.prow{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}.prow .amt{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--good);margin-left:auto}.certs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px;margin-top:12px}.cert{border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:var(--panel2)}.cert img{width:100%;height:98px;object-fit:cover;display:block;cursor:pointer}.cert .ci{padding:8px 10px;font-size:12px}.cert .ci b{display:block;font-size:12.5px}.cert .ci span{color:var(--faint)}.principles{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px;margin-top:6px}.prin{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--panel)}.prin b{display:block;font-size:12px;letter-spacing:.6px;color:var(--gold);text-transform:uppercase;margin-bottom:3px}.prin span{font-size:12.5px;color:var(--dim)}.journal-view .field label{color:var(--gold);font-size:12.5px;font-weight:700;letter-spacing:.4px}.bt-table{width:100%;border-collapse:collapse;font-size:13px}.bt-table th{position:-webkit-sticky;position:sticky;top:0;background:var(--panel2);color:var(--dim);font-size:11px;letter-spacing:.6px;text-transform:uppercase;text-align:left;padding:8px;border-bottom:1px solid var(--line2);z-index:1}.bt-table td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}.bt-table tr.traded td{background:rgba(55,201,111,.05)}.bt-table tr.blown-row td{opacity:.65}.table-scroll{overflow-x:auto}.mini-mono{width:26px;height:26px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;margin-right:8px;flex:none}.badge2{font-size:10.5px;font-weight:700;border-radius:5px;padding:2px 7px;letter-spacing:.4px;white-space:nowrap}.badge2.eval{background:#1d2a44;color:#7fb4ff}.badge2.funded{background:#123322;color:var(--good)}.badge2.blown{background:#331414;color:var(--bad)}.badge2.p1,.badge2.p2{background:#2a2340;color:#b08cff}.res-btns{display:flex;gap:5px}.belt{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;margin-bottom:16px}.belt5{grid-template-columns:repeat(5,1fr)}.strat{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.strat .opt{border:1px solid var(--line2);border-radius:10px;padding:12px;cursor:pointer;text-align:left;background:none;width:100%}.strat .opt.on{border-color:var(--gold);background:rgba(232,181,58,.06)}.strat .opt b{display:block;font-family:Archivo,sans-serif;font-size:13.5px}.strat .opt span{font-size:12px;color:var(--dim)}.log-line{display:flex;gap:8px;align-items:baseline;font-size:12.5px;padding:4px 0;border-bottom:1px solid var(--line)}.log-line .lt{color:var(--faint);min-width:88px;flex:none}.log-line.dev{background:rgba(232,181,58,.05)}.kv{display:grid;grid-template-columns:210px 1fr;border-bottom:1px solid var(--line)}.kv:last-of-type{border-bottom:none}.kv .kk{padding:10px 12px;font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--faint);font-weight:700;background:var(--panel2)}.kv .kvv{padding:10px 14px;font-size:13.5px;line-height:1.6}.kv-wrap{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:14px}.yesno{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.8px;border-radius:5px;padding:2px 8px;margin-right:8px;vertical-align:1px}.yesno.y{background:rgba(232,181,58,.15);color:var(--gold);border:1px solid var(--gold-dim)}.yesno.n{background:rgba(55,201,111,.12);color:var(--good);border:1px solid #1e4530}.rank{font-family:JetBrains Mono,monospace;font-weight:700;font-size:13px;color:var(--faint);min-width:26px}.firm-card{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin-bottom:16px;padding:18px}.firm-head{gap:12px;flex-wrap:wrap}.firm-head,.firm-logo{display:flex;align-items:center}.firm-logo{width:40px;height:40px;border-radius:9px;justify-content:center;font-weight:900;color:#fff;font-size:13px;flex:none}.firm-name{font-family:Archivo,sans-serif;font-weight:800;font-size:16px}.firm-model{font-size:12px;color:var(--dim)}.code-chip{display:inline-block;background:rgba(232,181,58,.12);border:1px dashed var(--gold-dim);color:var(--gold);font-family:JetBrains Mono,monospace;font-size:12px;padding:2px 9px;border-radius:6px;cursor:pointer}.spec-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin-top:12px}.spec{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.spec .k{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--faint)}.spec .v{font-size:12.5px;font-weight:600;margin-top:2px}.rulebox{border-radius:9px;padding:10px 13px;font-size:12.5px;margin-top:10px}.rulebox.has{background:rgba(232,181,58,.07);border:1px solid var(--gold-dim)}.rulebox.none{background:rgba(55,201,111,.06);border:1px solid #1e4530}.rulebox b{display:block;font-size:11px;letter-spacing:.8px;text-transform:uppercase;margin-bottom:3px}.rulebox.has b{color:var(--gold)}.rulebox.none b{color:var(--good)}.verify{font-size:11.5px;color:var(--faint);margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.verify a{color:var(--gold);font-weight:600}.setup-card{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin-bottom:16px;padding:18px}.setup-name{font-family:Archivo,sans-serif;font-weight:800;font-size:16px;background:none;border:none;border-bottom:1px dashed var(--line2);border-radius:0;padding:4px 2px;color:var(--gold);width:auto;min-width:200px}.crit{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;font-size:13.5px}.crit:hover{background:var(--panel2)}.crit .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}.crit button{color:var(--faint);font-size:14px}.crit button:hover{color:var(--bad)}.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px;gap:12px;margin-top:12px}.shot{border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:var(--panel2)}.shot img{width:100%;height:140px;object-fit:cover;display:block;cursor:pointer}.shot textarea{border:none;border-top:1px solid var(--line2);border-radius:0;background:var(--panel2);min-height:52px;font-size:12.5px}.shot .sdel{width:100%;padding:6px;color:var(--faint);font-size:12px;border-top:1px solid var(--line)}.shot .sdel:hover{color:var(--bad)}.calc-row{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:14px;gap:14px;margin-top:14px}.calc-field{border:2px solid var(--line2);border-radius:12px;padding:16px;position:relative;transition:.15s}.calc-field.filled{border-color:#2c5f43}.calc-field.solved{border-color:var(--gold);background:rgba(232,181,58,.05)}.calc-field .cf-num{position:absolute;top:-11px;left:14px;background:var(--panel);padding:0 8px;font-size:10.5px;letter-spacing:1px;font-weight:800;color:var(--faint)}.calc-field.filled .cf-num{color:var(--good)}.calc-field.solved .cf-num{color:var(--gold)}.calc-field label{display:block;font-size:12px;color:var(--dim);font-weight:600;margin-bottom:6px}.calc-field input{font-family:JetBrains Mono,monospace;font-size:20px;font-weight:700;padding:10px 12px}.calc-field .cf-sub{font-size:11.5px;color:var(--faint);margin-top:6px}.calc-answer{margin-top:16px;border:1px solid var(--gold-dim);background:linear-gradient(135deg,#1a1608,var(--panel) 70%);border-radius:12px;padding:18px 20px}.calc-answer .ca-label{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--gold);font-weight:800}.calc-out{font-family:JetBrains Mono,monospace;font-weight:700;font-size:34px;color:var(--gold);line-height:1.2;margin-top:4px}.legal{font-size:11px;color:var(--faint);line-height:1.6;margin-top:30px;border-top:1px solid var(--line);padding-top:16px}.legal h4{color:var(--dim);font-size:11.5px;margin:10px 0 3px}canvas{max-width:100%}.modal-backdrop{position:fixed;inset:0;background:rgba(5,6,9,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:250;display:flex;align-items:flex-start;justify-content:center;padding:6vh 20px 20px;overflow-y:auto}.modal{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);width:100%;max-width:520px;box-shadow:0 24px 60px rgba(0,0,0,.6);animation:modal-in .18s ease-out}.modal.wide{max-width:780px}@keyframes modal-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.modal-head{padding:18px 20px 12px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px}.modal-head h3{font-size:16px;font-weight:800}.modal-head .x{margin-left:auto;color:var(--faint);font-size:18px;line-height:1;padding:2px 6px}.modal-head .x:hover{color:var(--bad)}.modal-body{padding:18px 20px}.modal-foot{padding:14px 20px 18px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--line)}.note-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line2);border-radius:999px;padding:2px 10px;font-size:11.5px;color:var(--faint);white-space:nowrap}.note-btn:hover{border-color:var(--gold);color:var(--gold)}.note-btn.has{border-color:var(--gold-dim);color:var(--gold)}.note-btn.unread{border-color:var(--bad);color:var(--bad)}.note-btn .n{font-family:JetBrains Mono,monospace;font-weight:700}.note{border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:9px;padding:11px 13px;margin-bottom:9px;background:var(--panel2)}.note.admin-only{border-left-color:#b06cff;background:rgba(176,108,255,.05)}.note.shared{border-left-color:var(--gold);background:rgba(232,181,58,.04)}.note .nh{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--faint);margin-bottom:6px}.note .nh b{color:var(--dim);font-weight:600}.note .vis{font-size:9.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;border-radius:4px;padding:1px 6px}.note .vis.admin-only{background:rgba(176,108,255,.15);color:#c79aff}.note .vis.shared{background:rgba(232,181,58,.14);color:var(--gold)}.note .nb{font-size:13.5px;line-height:1.6;white-space:pre-wrap}.note .nt{margin-left:auto;display:flex;gap:6px}.note .nt button{font-size:11.5px;color:var(--faint)}.note .nt button:hover{color:var(--gold)}.admin-bar{background:linear-gradient(90deg,rgba(176,108,255,.12),transparent);border:1px solid #3d2a5c;border-radius:var(--r);padding:12px 16px;margin-bottom:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.admin-bar .who{font-family:Archivo,sans-serif;font-weight:800;font-size:15px}.admin-bar .lbl{font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:#c79aff;font-weight:800}.roster{width:100%;border-collapse:collapse;font-size:13.5px}.roster th{text-align:left;padding:9px 10px;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--dim);background:var(--panel2);border-bottom:1px solid var(--line2)}.roster td{padding:10px;border-bottom:1px solid var(--line)}.roster tr:hover td{background:var(--panel2)}.roster a{text-decoration:none;font-weight:600}.who-cell{display:flex;align-items:center;gap:10px}.gate{max-width:560px;margin:12vh auto;padding:0 20px;text-align:center}.gate .glogo{font-family:Archivo,sans-serif;font-weight:900;font-size:26px;letter-spacing:.5px;margin-bottom:6px}.gate .glogo em{color:var(--gold);font-style:normal}.gate h1{font-size:22px;margin:22px 0 10px}.gate p{color:var(--dim);font-size:14.5px;line-height:1.7}.gate .card{text-align:left;margin-top:24px}.discord-btn{background:#5865f2;color:#fff;font-weight:700;border-radius:10px;padding:13px 24px;font-size:15px;display:inline-flex;align-items:center;gap:10px;text-decoration:none;margin-top:20px}.discord-btn:hover{filter:brightness(1.08)}.errbox{border:1px solid #4a2626;background:rgba(255,82,82,.08);color:#ff9b9b;border-radius:9px;padding:11px 14px;font-size:13px;margin-top:18px;text-align:left}.skeleton{background:linear-gradient(90deg,var(--panel2) 25%,var(--panel3) 50%,var(--panel2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.divider{height:1px;background:var(--line);margin:18px 0}.text-good{color:var(--good)}.text-bad{color:var(--bad)}.text-dim{color:var(--dim)}.text-faint{color:var(--faint)}.text-gold{color:var(--gold)}.nowrap{white-space:nowrap}@media (max-width:860px){.calc-row,.grid2,.grid3,.money,.results,.strat{grid-template-columns:1fr}.belt,.belt5,.spec-grid,.stats{grid-template-columns:repeat(2,1fr)}.principles{grid-template-columns:1fr 1fr}}@media (max-width:700px){.kv{grid-template-columns:1fr}.kv .kk{padding-bottom:2px}}@media (max-width:640px){.hwrap{padding:12px 14px}main{padding:20px 14px 80px}.tab{padding:10px 12px;font-size:12.5px}.card{padding:16px}}@media print{.btn,.note-btn,header.app-header,nav.tabs{display:none!important}}