:root{
  --bg:#1e1d1b;--bg2:#262421;--bg3:#302e2b;--line:#3c3a37;--text:#ece9e5;--muted:#a19e9a;
  --green:#81b64c;--green-d:#5d8a2f;--red:#e0574b;--blue:#4f8fe6;--yellow:#f2c94c;--purple:#9b6be0;
  --btn:#3c3a37;--btn-h:#4a4845;--radius:10px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-tap-highlight-color:transparent}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
button:disabled{opacity:.45;cursor:default}
input,textarea,select{font:inherit;color:inherit}
.hidden{display:none!important}
.btn{text-decoration:none;display:inline-block;background:var(--btn);padding:10px 16px;border-radius:8px;font-weight:700;transition:background .12s,transform .05s}
.btn:hover:not(:disabled){background:var(--btn-h)}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn.green{background:var(--green);color:#fff;box-shadow:0 3px 0 var(--green-d)}
.btn.green:hover:not(:disabled){background:#95c95c}
.btn.red{background:var(--red);color:#fff}
.btn.small{padding:6px 10px;font-size:13px}
.btn.big{padding:14px 20px;font-size:18px;border-radius:10px}
.input{width:100%;background:#171614;border:1px solid var(--line);border-radius:8px;padding:11px 12px;outline:none;color:#fff}
.input:focus{border-color:var(--green)}
.card{background:var(--bg2);border-radius:14px;padding:22px;box-shadow:0 8px 30px rgba(0,0,0,.35)}
.muted{color:var(--muted)}
.err{color:#f07b6f;font-size:14px;min-height:18px}
.pill{display:inline-flex;align-items:center;gap:6px;background:var(--bg3);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600}
.dot{width:8px;height:8px;border-radius:50%;background:#777;display:inline-block}
.dot.on{background:var(--green)}
.logo{font-weight:900;font-size:24px;letter-spacing:.5px;display:flex;align-items:center;gap:8px}
.logo b{color:var(--green)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#111;color:#fff;padding:10px 16px;border-radius:8px;z-index:200;font-weight:600;box-shadow:0 6px 20px rgba(0,0,0,.5);max-width:90vw}
.timer{font-variant-numeric:tabular-nums;font-weight:800}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;z-index:100;padding:16px;overflow:auto}
.overlay>.card{margin:auto;width:min(460px,100%)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#45433f;border-radius:6px}::-webkit-scrollbar-track{background:transparent}
