:root{--bg:#0e2a1f;--card:#16392a;--card2:#1c4635;--ink:#f3f7f4;--muted:#9db8aa;--gold:#f5c542;--pos:#4ade80;--neg:#f87171;--r:16px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
#app{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}
header{position:sticky;top:0;z-index:5;background:var(--bg);display:flex;align-items:center;gap:8px;padding:14px 16px;padding-top:max(14px,env(safe-area-inset-top))}
header h1{margin:0;font-size:22px;flex:1}
.back{font-size:34px;line-height:20px;color:var(--gold);text-decoration:none;padding:0 8px 6px 0}
main{flex:1;padding:4px 16px 110px}
nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:560px;display:flex;background:#0a1f16;border-top:1px solid #24503c;padding-bottom:env(safe-area-inset-bottom)}
nav a{flex:1;text-align:center;font-size:11px;color:var(--muted);text-decoration:none;padding:8px 2px}
nav a span{display:block;font-size:20px}
nav a.on{color:var(--gold)}
h3{margin:22px 0 10px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}
small,.muted{color:var(--muted)}
.center{text-align:center}
.card{background:var(--card);border-radius:var(--r);padding:14px 16px;margin:10px 0}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.row>div{min-width:0}
.row small{display:block}
.link{color:inherit;text-decoration:none}
.pill{background:var(--card2);color:var(--gold);padding:3px 10px;border-radius:99px;font-size:13px;font-weight:600;white-space:nowrap}
.btn{display:block;width:100%;border:0;border-radius:var(--r);padding:14px;font:600 17px inherit;text-align:center;text-decoration:none;background:var(--gold);color:#241a00;cursor:pointer;margin:12px 0}
.btn.big{padding:18px;font-size:19px}
.btn.small{width:auto;padding:12px 18px;margin:0}
.btn.ghost{background:transparent;color:var(--gold);border:2px solid var(--gold)}
.btn.danger{background:var(--neg);color:#2b0000}
.btn:disabled,.rnd:disabled{opacity:.35}
.inp{width:100%;background:var(--card2);border:2px solid transparent;color:var(--ink);border-radius:12px;padding:14px;font-size:18px;margin:6px 0}
.inp:focus{outline:none;border-color:var(--gold)}
.inp.num{width:110px;text-align:right;font-size:22px;font-weight:700;margin:0}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.opt{background:var(--card);color:var(--ink);border:2px solid transparent;border-radius:var(--r);padding:20px 0;font:700 26px inherit;cursor:pointer}
.opt:last-child{font-size:18px}
.opt.on{border-color:var(--gold);background:var(--card2);color:var(--gold)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.chip{background:var(--card);color:var(--ink);border:2px solid transparent;border-radius:99px;padding:12px 16px;font-size:16px;cursor:pointer}
.chip.on{border-color:var(--gold);background:var(--card2)}
.addrow{display:flex;gap:8px;align-items:center;margin-top:8px}
.addrow .inp{margin:0}
.fav{display:flex;align-items:center;gap:4px;white-space:nowrap;color:var(--muted)}
.fav input{width:22px;height:22px;accent-color:var(--gold)}
details{margin:14px 0;color:var(--muted)}
summary{cursor:pointer;padding:6px 0}
label.f{display:block;margin:10px 0 0;color:var(--muted);font-size:14px}
.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 12px}
.summary div{background:var(--card);border-radius:var(--r);padding:10px;text-align:center}
.summary small{display:block;font-size:12px}
.summary b{font-size:24px;color:var(--gold)}
.player{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative}
.pname{font-size:20px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.stepper{display:flex;align-items:center;gap:10px}
.bn{text-align:center;min-width:66px}
.bn b{font-size:30px;display:block;line-height:1}
.bn small{font-size:12px}
.rnd{width:52px;height:52px;border-radius:50%;border:0;background:var(--card2);color:var(--ink);font-size:28px;cursor:pointer}
.rnd.plus{background:var(--gold);color:#241a00}
.x{background:none;border:0;color:var(--muted);font-size:18px;padding:6px;cursor:pointer}
.panel{background:var(--card);border-radius:var(--r);padding:12px;margin:10px 0}
.links{display:flex;justify-content:space-between;margin-top:6px}
.linkbtn,button.link{background:none;border:0;color:var(--muted);font-size:14px;padding:10px 4px;cursor:pointer;text-decoration:underline}
button.danger{color:var(--neg)}
.sticky{position:sticky;bottom:72px;background:linear-gradient(transparent,var(--bg) 24%);padding-top:18px}
.check{text-align:center;padding:10px;border-radius:12px;background:var(--card);color:var(--muted);font-weight:600}
.check.ok{background:#14532d;color:var(--pos)}
.check.bad{background:#4a1d1d;color:var(--neg)}
.rank{width:38px;font-size:24px;text-align:center}
.net{font-size:22px;font-weight:800;white-space:nowrap}
.pos{color:var(--pos)}.neg{color:var(--neg)}
.pay{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:18px}
.pay b{color:var(--gold);font-size:22px}
.warn{background:#4a1d1d;border-radius:var(--r);padding:14px;margin:10px 0;color:#fecaca}
.ok-banner{background:#14532d;border-radius:var(--r);padding:14px;margin:10px 0;color:#bbf7d0;text-align:center}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 16px}
.tabs button{background:var(--card);color:var(--muted);border:0;border-radius:12px;padding:12px;font:600 16px inherit}
.tabs button.on{background:var(--gold);color:#241a00}
.auth{padding-top:8vh}
.auth h1{text-align:center;font-size:32px;margin:0 0 4px}
.auth .sub{text-align:center;color:var(--muted);margin-bottom:22px}
.info{background:var(--card2);border-radius:12px;padding:12px;margin-bottom:12px;color:var(--gold)}
.btnrow{display:flex;gap:8px}
.btnrow .btn{margin:6px 0;padding:10px;font-size:15px}
.badge{background:var(--neg);color:#fff;border-radius:99px;font-size:11px;padding:1px 6px;margin-left:2px}
#toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:#fff;color:#111;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.2s;max-width:90%;z-index:20;font-weight:600}
#toast.show{opacity:1;transform:translate(-50%,0)}
