:root{--bg:#161020;--bg2:#1f1830;--card:#271f3c;--line:#3d3258;--tx:#efe7d6;--mut:#a99fc0;--gold:#e3b84f;--gold2:#b8862a;--red:#d6453a;--grn:#5ac060;--blue:#5aa0e0}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
h1,h2,h3,h4{font-family:Cinzel,Georgia,serif;margin:.4em 0;letter-spacing:.02em}h4{font-size:.95rem;color:var(--gold);margin:1em 0 .4em}
button,input,select,textarea{font:inherit;color:inherit}
input,select,textarea{background:#120d1c;border:1px solid var(--line);border-radius:8px;padding:9px 10px;width:100%}input[type=checkbox]{width:auto}input[type=color]{padding:2px;height:38px;width:70px}
textarea{resize:vertical}label{display:block;font-size:.85rem;color:var(--mut);margin:.5em 0}label>input,label>select,label>textarea{margin-top:4px;color:var(--tx)}
.btn{background:#2f2548;border:1px solid var(--line);border-radius:9px;padding:9px 14px;cursor:pointer;min-height:40px}.btn:hover:not(:disabled){border-color:var(--gold)}.btn:disabled{opacity:.45;cursor:default}
.btn.pri{background:linear-gradient(#e3b84f,#b8862a);color:#1b1206;border-color:#e3b84f;font-weight:700}.btn.sm{padding:6px 10px;min-height:34px;font-size:.88rem}.btn.ghost{background:transparent}.btn.on{border-color:var(--gold);background:#3f3260}
.home{max-width:760px;margin:0 auto;padding:24px 16px 48px;text-align:center}.home h1{font-size:2.2rem;color:var(--gold);margin-bottom:0}.sub{color:var(--mut)}.logo{margin-top:8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 0;text-align:left}.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:620px){.row2{grid-template-columns:1fr}}
.row2 .btn{width:100%;margin-top:8px}.row2 select,.row2 textarea{margin-top:8px}.code{text-align:center;font-size:1.4rem;letter-spacing:.35em;text-transform:uppercase;font-family:Cinzel,serif}
.row-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:12px 0}.fine{font-size:.82rem;color:var(--mut)}.err{color:#ff8a80}.warn{color:#ffb74d}.big{font-size:1.1rem}.codebig{font-family:Cinzel,serif;letter-spacing:.3em;font-size:1.8rem;color:var(--gold)}
.top{position:sticky;top:0;z-index:20;display:flex;gap:8px;align-items:center;padding:8px 10px;background:rgba(22,16,32,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}.grow{flex:1}.tcode{cursor:pointer;padding:4px 10px;border:1px dashed var(--line);border-radius:8px}.tcode b{color:var(--gold);letter-spacing:.2em;font-family:Cinzel,serif}
.lobby{max-width:720px;margin:0 auto;padding:10px}.plist{margin:12px 0}.pl{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.pimg{width:44px;height:44px;border-radius:50%;border:2px solid var(--gold2);object-fit:cover;flex:none;background:#000}.pimg.big{width:84px;height:84px}.pimg.empty{display:flex;align-items:center;justify-content:center;color:var(--mut)}
.tag{display:inline-block;font-size:.72rem;padding:1px 7px;border-radius:10px;border:1px solid var(--line);color:var(--mut);margin:2px 3px 2px 6px}.tag.on{border-color:var(--gold2);color:var(--gold)}.tags{display:flex;flex-wrap:wrap;gap:2px}.tags .tag{margin:2px 2px}
.gamewrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:10px;padding:10px;max-width:1500px;margin:0 auto}@media(max-width:900px){.gamewrap{grid-template-columns:1fr}.right{min-height:60vh}}
.mapbox{background:#0c0814;border:1px solid var(--line);border-radius:12px;padding:6px;overflow:auto;position:relative;text-align:center;touch-action:manipulation}.mapbox canvas{display:block;margin:0 auto;border-radius:6px;cursor:pointer;max-width:100%}.legend{font-size:.78rem;color:var(--mut);margin-top:4px;text-align:left}
.tb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin-bottom:8px}.tb.calm{color:var(--mut);font-size:.85rem}.order{display:flex;gap:4px}.oi{width:30px;height:30px;border-radius:50%;overflow:hidden;border:2px solid #555;opacity:.75}.oi img{width:100%;height:100%;display:block}.oi.p{border-color:var(--gold)}.oi.e{border-color:var(--red)}.oi.cur{opacity:1;box-shadow:0 0 0 3px rgba(255,230,120,.8);transform:scale(1.12)}.oi.dead{opacity:.25;filter:grayscale(1)}.tinfo{font-size:.82rem;color:var(--gold)}
.ab-row{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.hint{font-size:.85rem;color:#9fd0ff;margin:4px 0}.hint.warn{color:#ffb74d}.sel{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:.85rem}
.right{display:flex;flex-direction:column;min-width:0;background:var(--bg2);border:1px solid var(--line);border-radius:12px;overflow:hidden;max-height:calc(100vh - 70px)}@media(max-width:900px){.right{max-height:none}}
.tabs{display:flex;border-bottom:1px solid var(--line)}.tab{flex:1;background:none;border:0;padding:10px 4px;cursor:pointer;color:var(--mut);position:relative}.tab.on{color:var(--gold);border-bottom:2px solid var(--gold)}.dot{background:var(--red);color:#fff;border-radius:50%;padding:0 6px;font-size:.7rem;margin-left:4px}
.pane{flex:1;overflow:auto;padding:10px;min-height:200px}.lg{padding:4px 0;border-bottom:1px dotted rgba(255,255,255,.06)}.lg.sys{color:#9fd0ff;font-size:.9rem}.lg.roll{color:var(--gold);font-size:.9rem}.lg.player{color:#d7f0c8}.lg.chat{color:var(--mut);font-style:italic}.lg.dm,.lg.narr{color:var(--tx)}.lg .by{color:var(--gold)}.dm-busy{color:var(--mut);font-style:italic;padding:6px 0}
.inp{border-top:1px solid var(--line);padding:8px}.inrow{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:end}.inrow select{width:auto}.inrow textarea{min-height:40px;max-height:110px}@media(max-width:520px){.inrow{grid-template-columns:1fr auto}.inrow select{grid-column:1/-1;width:100%}}
.sheet .sh-top{display:flex;gap:12px;align-items:center}.vit{display:flex;gap:12px;flex-wrap:wrap;margin:4px 0}.abil{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:10px 0}.ab{background:#120d1c;border:1px solid var(--line);border-radius:8px;text-align:center;padding:5px 2px;display:flex;flex-direction:column}.ab b{font-size:1.05rem;color:var(--gold)}.ab small{color:var(--mut);font-size:.68rem}
.conds{margin:6px 0}.cond{display:inline-block;background:#4a1e22;border:1px solid var(--red);color:#ffb3ad;border-radius:10px;padding:1px 8px;font-size:.78rem;margin:2px}
.list .li{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line)}.li.rare{border-left:3px solid #7ab8ff;padding-left:8px}.li.r-raro{border-color:#b480ff}.li.r-muyraro{border-color:#ff9a4a}.li.r-legendario{border-color:#ffd24a}.btns{display:flex;gap:6px;flex-wrap:wrap}
.modal-ov{position:fixed;inset:0;background:rgba(5,3,10,.72);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:4vh 10px;overflow:auto}.modal{background:var(--card);border:1px solid var(--gold2);border-radius:14px;width:100%;max-width:520px}.modal.wide{max-width:780px}.modal-h{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line)}.modal-h h3{margin:0;color:var(--gold)}.x{background:none;border:0;font-size:1.6rem;cursor:pointer;color:var(--mut)}.modal-b{padding:14px 16px 18px}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:4px 10px;cursor:pointer;margin:0;color:var(--tx);font-size:.82rem}.chip.on{border-color:var(--gold);background:#3b2f58}.chip input{display:none}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.st{text-align:center;margin:0}.st small{display:block;color:var(--gold)}.preview{text-align:center;margin:10px 0}
.bfilters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}.bfilters input{flex:1;min-width:140px}.bfilters select{width:auto}.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.bcard{background:#120d1c;border:1px solid var(--line);border-radius:10px;padding:6px;text-align:center;cursor:pointer}.bcard img{width:100%;aspect-ratio:1;border-radius:8px;display:block}.bcard.unk img{filter:brightness(0) contrast(.6)}.bn{font-weight:600;font-size:.85rem;margin-top:4px}.bdet{text-align:center}.bimg{width:230px;max-width:70%;border-radius:12px;border:2px solid var(--gold2)}
.tut-step{color:var(--mut);font-size:.8rem}.tut p{font-size:1rem}
.dice-ov{position:fixed;left:50%;top:18%;transform:translateX(-50%);z-index:80;background:rgba(14,36,24,.93);border:3px solid #5b3a1c;border-radius:16px;padding:8px;box-shadow:0 12px 40px rgba(0,0,0,.6);transition:opacity .35s,transform .35s;pointer-events:none}.dice-ov.out{opacity:0;transform:translate(-50%,-20px)}.dice-ov .cap{text-align:center;font-size:.9rem;color:var(--gold);padding:4px 6px}.dice-ov canvas{display:block;border-radius:8px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:90;background:#3a1519;border:1px solid var(--red);color:#ffd2cd;padding:10px 16px;border-radius:10px;max-width:90vw;transition:opacity .4s}.toast.ok{background:#17301c;border-color:var(--grn);color:#cff0d2}.toast.out{opacity:0}
.fine.warn{color:#ffb74d}
