:root{--green:#12372a;--green2:#1d5b45;--cream:#f5f1e7;--paper:#fffdf7;--ink:#18231e;--muted:#69766f;--line:#d9ded8;--gold:#d6a13d;--red:#b4453c;--shadow:0 18px 50px rgba(18,55,42,.12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 100% 0,#e0eadf 0,transparent 28rem),var(--cream)}button,input,select{font:inherit}.topbar{position:sticky;top:0;z-index:10;height:64px;padding:0 max(18px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;background:rgba(245,241,231,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(18,55,42,.08)}.brand{border:0;background:none;color:var(--green);font-weight:850;font-size:1.25rem}.brand span{display:inline-grid;place-items:center;width:30px;height:30px;margin-right:7px;border-radius:50%;background:var(--green);color:white}.icon-button,.close{border:0;background:transparent;font-size:1.4rem;color:var(--green);padding:10px}main{width:min(760px,100%);margin:auto;padding:24px 18px 96px}.hero{padding:24px 2px 18px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--green2);font-size:.74rem;font-weight:800}.hero h1{font-family:Georgia,serif;font-size:clamp(2.25rem,8vw,4rem);line-height:.96;margin:10px 0 13px;color:var(--green)}.hero p{color:var(--muted);font-size:1.05rem;line-height:1.55;max-width:38rem}.card{background:var(--paper);border:1px solid rgba(18,55,42,.09);border-radius:22px;padding:20px;box-shadow:var(--shadow);margin:14px 0}.card h2,.card h3{margin-top:0}.primary,.secondary,.danger{min-height:48px;border-radius:14px;padding:11px 16px;font-weight:780;cursor:pointer}.primary{border:0;background:var(--green);color:white;box-shadow:0 8px 20px rgba(18,55,42,.2)}.secondary{border:1px solid var(--line);background:white;color:var(--green)}.danger{border:1px solid #e5c6c2;background:#fff5f4;color:var(--red)}.wide{width:100%}.stack{display:grid;gap:12px}.row{display:flex;gap:10px;align-items:center}.row>*{flex:1}.field{display:grid;gap:6px;margin:12px 0}.field span,.label{font-size:.82rem;font-weight:750;color:var(--muted)}input,select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:12px;background:white;padding:10px 13px;color:var(--ink);font-size:16px}input:focus,select:focus,button:focus-visible{outline:3px solid rgba(214,161,61,.42);outline-offset:2px}.player-row{display:grid;grid-template-columns:38px 1fr 40px;gap:9px;align-items:center;margin:9px 0}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#e4ece5;color:var(--green);font-weight:850}.remove{border:0;background:none;color:var(--red);font-size:1.3rem}.round-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:8px}.round-chip{position:relative}.round-chip input{position:absolute;opacity:0}.round-chip label{display:grid;place-items:center;min-height:50px;border:1px solid var(--line);border-radius:12px;background:white;font-weight:800;cursor:pointer}.round-chip input:not(:checked)+label{background:#eee;color:#999;text-decoration:line-through}.round-chip.current label{border-color:var(--gold);box-shadow:0 0 0 2px rgba(214,161,61,.2)}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.metric{background:#eef3ed;border-radius:14px;padding:12px;text-align:center}.metric b{display:block;font-size:1.3rem;color:var(--green)}.metric small{color:var(--muted)}.scoreboard{width:100%;border-collapse:collapse}.scoreboard th,.scoreboard td{padding:12px 7px;border-bottom:1px solid var(--line);text-align:left}.scoreboard th:last-child,.scoreboard td:last-child{text-align:right}.rank{font-weight:850;color:var(--muted)}.leader td{color:var(--green);font-weight:850}.suits{display:grid;grid-template-columns:1fr 1fr;gap:9px}.suit{border:1px solid var(--line);background:white;border-radius:14px;padding:12px;text-align:left;font-weight:800}.suit.selected{background:var(--green);color:white;border-color:var(--green)}.suit small{display:block;opacity:.7;font-weight:600}.red-suit{color:var(--red)}.suit.selected{color:white}.entry{display:grid;grid-template-columns:1fr 100px;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.entry:last-child{border:0}.entry strong{display:block}.entry small{color:var(--muted)}.signed{font-weight:850;text-align:center}.signed.negative{color:var(--red)}.signed.positive{color:var(--green2)}.sticky-actions{position:sticky;bottom:12px;padding-top:12px;background:linear-gradient(transparent,var(--cream) 32%)}.history-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:14px 0;border-bottom:1px solid var(--line)}.history-item:last-child{border:0}.history-item p{margin:3px 0;color:var(--muted)}.winner{color:var(--green);font-weight:850}.empty{text-align:center;padding:30px;color:var(--muted)}dialog{width:min(520px,calc(100% - 28px));border:0;border-radius:22px;padding:20px;background:var(--paper);color:var(--ink);box-shadow:0 30px 90px #071b1399}dialog::backdrop{background:rgba(7,27,19,.6);backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.file-label{text-align:center;cursor:pointer}.file-label input{display:none}.fineprint{color:var(--muted);font-size:.82rem;line-height:1.45}#toast{position:fixed;z-index:30;left:50%;bottom:28px;transform:translate(-50%,20px);opacity:0;background:var(--ink);color:white;padding:11px 17px;border-radius:30px;transition:.22s;pointer-events:none;white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%,0)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:22px 0 8px}.section-head h2{margin:0}.muted{color:var(--muted)}.warning{padding:12px 14px;border-radius:12px;background:#fff6df;color:#74520d;border:1px solid #eed79a}.install-note{font-size:.87rem;color:var(--muted);text-align:center;margin-top:12px}@media(max-width:480px){.summary{grid-template-columns:1fr 1fr}.summary .metric:last-child{grid-column:1/-1}.card{padding:17px}.entry{grid-template-columns:1fr 88px}}
