:root{--acc:#C8A97E;--acc-ink:#0B1320;--bg:#0B1320;--card:#1C2331;--fg:#F2EEE8;--mute:#9AA6B6;--track:#2A3343}
*{box-sizing:border-box}html,body{margin:0}body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}
a{color:var(--acc)}button{font:inherit;font-weight:700;border:0;border-radius:12px;cursor:pointer}
.btn{background:var(--acc);color:var(--acc-ink);padding:12px 18px}.btn2{background:transparent;color:var(--fg);border:1.5px solid var(--track);padding:10px 16px}.btn-d{background:#B4412C;color:#fff;padding:10px 16px}
.btn:disabled{opacity:.5;cursor:default}
input,textarea,select{font:inherit;width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--track);background:var(--card);color:var(--fg)}
input:focus,textarea:focus,select:focus{outline:2px solid var(--acc);border-color:transparent}
label{display:block;font-size:.85rem;font-weight:600;margin:12px 0 6px;color:var(--mute)}
.serif{font-family:"Instrument Serif",Georgia,serif;font-weight:400}
.brandline{display:flex;align-items:center;gap:.6em}.brandline .logo{height:2.2em;max-width:7em;object-fit:contain;border-radius:6px}.brandline small{display:block;font-weight:500;color:var(--mute);font-size:.75em}
.powered{color:var(--mute);text-decoration:none;font-size:12px}.powered b{color:var(--fg);font-weight:600}
.net{display:inline-block;width:9px;height:9px;border-radius:50%;background:#888;margin-left:8px;vertical-align:middle}.net.ok{background:#3BB273}.net.bad{background:#D9822B}
.card{background:var(--card);border-radius:16px;padding:18px}
.muted{color:var(--mute)}.small{font-size:.85rem}
/* vote */
.vwrap{max-width:520px;margin:0 auto;padding:20px 18px 40px;min-height:100vh;display:flex;flex-direction:column}
.vtop{display:flex;justify-content:space-between;align-items:center;font-size:17px}
.vsess{margin-top:26px;color:var(--acc);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:1px}
.vq{font-size:30px;line-height:1.15;margin:8px 0 22px;font-weight:700}
.opt{display:block;width:100%;text-align:left;padding:18px;margin:10px 0;font-size:18px;background:var(--card);color:var(--fg);border:1.5px solid var(--track)}
.opt:active,.opt:hover{border-color:var(--acc)}
.scale{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.scale button{padding:18px 0;font-size:22px;background:var(--card);color:var(--fg);border:1.5px solid var(--track)}
.lbl{display:flex;justify-content:space-between;color:var(--mute);font-size:13px;margin-top:8px}
.send{width:100%;padding:18px;margin-top:12px;font-size:18px}
.done{text-align:center;margin-top:50px}.done .big{font-size:40px;font-weight:800;color:var(--acc)}
.vfoot{margin-top:auto;padding-top:40px;text-align:center;color:var(--mute);font-size:12px;line-height:1.8}
/* display */
.dstage{position:fixed;inset:0;display:grid;grid-template-columns:1fr 25vw;gap:3vw;padding:3.5vw 4vw 5vw;overflow:hidden}
.dsess{color:var(--acc);font:600 1.3vw Inter,sans-serif;text-transform:uppercase;letter-spacing:.2vw}
.dq{font-size:3.9vw;line-height:1.08;margin:1vw 0 2.4vw;font-weight:800}
.bar{margin:1.1vw 0}.bl{display:flex;justify-content:space-between;font:600 1.7vw Inter,sans-serif;margin-bottom:.4vw}
.bt{height:2.6vw;background:var(--track);border-radius:1.3vw;overflow:hidden}.bf{height:100%;border-radius:1.3vw;transition:width .6s}
.cloud{line-height:1.2;text-align:center;font-weight:800;font-size:1.25vw}.cloud span{display:inline-block;margin:0 .7vw;transition:font-size .5s}
.texts{columns:2;column-gap:1.6vw}.texts div{break-inside:avoid;background:var(--card);border-radius:1vw;padding:1vw 1.3vw;margin:0 0 1.2vw;font:600 1.45vw/1.35 Inter,sans-serif}
.texts div.pin{background:var(--acc);color:var(--acc-ink)}
.cols{display:flex;gap:1vw;align-items:flex-end;height:24vw}.col{flex:1;text-align:center;font:800 1.6vw Inter}.col small{display:block;font:500 1vw Inter;color:var(--mute)}
.ct{height:19vw;background:var(--track);border-radius:.8vw;display:flex;align-items:flex-end;overflow:hidden;margin-bottom:.5vw}.cf{width:100%;transition:height .6s}
.dside{background:#fff;color:#0B1320;border-radius:1.6vw;padding:1.8vw;text-align:center;align-self:start}
.dside .jn{font:800 1.8vw Inter,sans-serif;margin-bottom:.8vw}#qr svg{width:100%;height:auto;display:block}.durl{font:800 1.3vw Inter;margin-top:.8vw;overflow-wrap:anywhere}
.dcount{margin-top:1.2vw;font:800 3.6vw Inter}.dcount small{display:block;font:500 1vw Inter;color:#5B6678}
.dwait{font:600 2.6vw/1.3 Inter;color:var(--mute);margin-top:2vw}
.dfoot{position:fixed;left:4vw;right:4vw;bottom:1.5vw;display:flex;justify-content:space-between;align-items:center;font-size:1.5vw}.dfoot .powered{font-size:1vw}
/* app pages */
.app{max-width:980px;margin:0 auto;padding:22px 18px 80px}
.apphead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 16px}.tabs button{background:var(--card);color:var(--fg);padding:10px 16px}.tabs button.on{background:var(--acc);color:var(--acc-ink)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>*{flex:1 1 180px}
.q{border:1.5px solid var(--track);border-radius:14px;padding:14px;margin:10px 0}.q.live{border-color:var(--acc);box-shadow:0 0 0 2px var(--acc) inset}
.chip{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:99px;background:var(--track);color:var(--fg);margin-right:6px}
.chip.acc{background:var(--acc);color:var(--acc-ink)}
.ans{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--track);padding:8px 0}.ans.h span.t{opacity:.4;text-decoration:line-through}.ans.p span.t{color:var(--acc);font-weight:700}
.ans button{padding:6px 10px;font-size:13px}
.keybox{background:#FFF4D6;color:#3A2A00;border-radius:14px;padding:16px;word-break:break-all}
.keybox code{display:block;background:#fff;border-radius:8px;padding:10px;margin:8px 0;font-size:13px;color:#0B1320}
.sticky{position:sticky;top:0;z-index:5;background:var(--bg);padding:8px 0}
hr{border:0;border-top:1px solid var(--track);margin:18px 0}
@media (max-width:700px){.vq{font-size:26px}}
