:root{--green:#174f3d;--green-2:#236c53;--cream:#f4f1e8;--paper:#fffdf7;--ink:#19312a;--muted:#63736d;--line:#d9dfd8;--orange:#e77b43;--red:#b43c35;--shadow:0 14px 38px rgba(30,57,47,.1);font-family:Inter,ui-rounded,"Avenir Next",system-ui,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 90% 0,#d9e8d9 0,transparent 34rem),var(--cream)}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:auto;padding:0 22px}.brand{display:flex;align-items:center;color:var(--ink);text-decoration:none}.brand img{display:block;width:210px;height:auto;max-height:58px}.connection{font-size:.78rem;font-weight:800;padding:6px 10px;border-radius:99px;background:#d8eadc;color:#24613d}.connection.offline{background:#fee1d6;color:#984226}
main{max-width:1180px;margin:0 auto;padding:24px 22px 80px}.view{animation:appear .25s ease}@keyframes appear{from{opacity:0;transform:translateY(6px)}}.hero{padding:7vh 0 35px;max-width:700px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--orange);font-weight:900;font-size:.75rem;margin:0 0 10px}.hero h1,.panel h1{font-size:clamp(2.1rem,6vw,4.5rem);line-height:.98;letter-spacing:-.045em;margin:0 0 16px}.hero p:not(.eyebrow){font-size:1.12rem;color:var(--muted)}
.game-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}.game-card{display:flex;align-items:center;gap:18px;text-align:left;border:1px solid rgba(23,79,61,.1);border-radius:24px;padding:24px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow);transition:.2s}.game-card:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(30,57,47,.16)}.game-card strong{display:block;font-size:1.4rem}.game-card small{display:block;color:var(--muted);margin-top:5px}.game-icon{font-size:2.6rem;background:#edf3e8;border-radius:17px;padding:11px}.game-card.pad .game-icon{background:#fff0df}.game-card.phase .game-icon{background:#e7e9fa}.game-card.skyjo .game-icon{background:#dff1f7}.arrow{margin-left:auto;font-size:1.6rem}
.panel{background:rgba(255,253,247,.96);border:1px solid rgba(23,79,61,.1);border-radius:22px;padding:24px;box-shadow:var(--shadow);margin-bottom:20px}.panel.narrow{max-width:500px;margin:6vh auto}.panel h1{font-size:2.3rem}.muted{color:var(--muted)}.back-button,.text-button{border:0;background:none;color:var(--green);font-weight:800;padding:10px 0;margin-bottom:14px}.text-button.danger{color:var(--red);margin:0}.danger-panel{text-align:center}.field{display:block;margin:18px 0}.field span{display:block;font-size:.82rem;font-weight:850;margin-bottom:7px}.field input,.field select,input.score-input{width:100%;border:1.5px solid var(--line);border-radius:12px;background:white;color:var(--ink);padding:13px 14px;outline:0}.field input:focus,.field select:focus,input.score-input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(23,79,61,.12)}
.primary,.secondary{border:0;border-radius:13px;font-weight:850;padding:14px 18px}.primary{background:var(--green);color:white;box-shadow:0 8px 18px rgba(23,79,61,.2)}.secondary{background:#e8eee9;color:var(--green)}.full{width:100%}.player-editor{display:grid;gap:9px;margin:18px 0}.player-edit-row{display:grid;grid-template-columns:24px 1fr 40px 40px 40px;gap:6px;align-items:center}.player-edit-row input{min-width:0;border:1.5px solid var(--line);border-radius:10px;padding:11px}.player-edit-row button{border:0;border-radius:9px;background:#edf1ed;height:40px}.drag-handle{color:#9ba7a0}
.game-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.game-title h1{margin:0;font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.04em}.game-title p{margin:4px 0;color:var(--muted)}.round-pill{background:var(--green);color:white;border-radius:99px;padding:9px 14px;font-weight:850;white-space:nowrap}.manage-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:20px}.score-grid{display:grid;gap:10px}.score-row{display:grid;grid-template-columns:minmax(100px,1fr) 120px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #edf0ec}.score-row:last-child{border:0}.score-row label{font-weight:800}.phase-score-row{grid-template-columns:minmax(105px,1fr) 105px 96px}.phase-check{display:flex;align-items:center;justify-content:center;gap:7px;font-size:.82rem}.phase-check input{width:22px;height:22px;accent-color:var(--green)}.dealer-badge{font-size:.7rem;color:var(--orange);display:block;text-transform:uppercase}.score-input{text-align:right;font-size:1.15rem;font-weight:800}.score-actions{display:flex;gap:10px;margin-top:18px}.score-actions>*{flex:1}.standings{display:grid;gap:8px;margin-top:15px}.standing{display:grid;grid-template-columns:30px 1fr auto;align-items:center;padding:10px;border-radius:12px;background:#f0f2eb}.standing.leader{background:#e5efe1}.standing .rank{color:var(--muted);font-weight:800}.standing .total{font-size:1.25rem;font-weight:900}.standing-meta{display:block;color:var(--muted);font-size:.72rem}.winner-banner{border-radius:16px;padding:18px;background:#e4efe0;text-align:center;margin-bottom:15px}.winner-banner strong{display:block;font-size:1.4rem}.notice{padding:13px 16px;border-radius:12px;background:#fff1d3;color:#6f4d05;font-weight:700;margin-bottom:16px}.notice.error{background:#fee2de;color:#8b302c}.share-data{display:grid;grid-template-columns:1fr 1fr;gap:10px}.share-code{background:#edf1eb;border-radius:12px;padding:12px}.share-code small{display:block;color:var(--muted)}.share-code strong{font-size:1.25rem;letter-spacing:.08em}.qr{display:block;width:min(220px,100%);margin:15px auto;border-radius:12px}.share-actions{display:flex;gap:8px}.share-actions button{flex:1}.history-table{width:100%;border-collapse:collapse;font-size:.9rem}.history-table th,.history-table td{padding:8px;text-align:right;border-bottom:1px solid #e5e9e4}.history-table th:first-child,.history-table td:first-child{text-align:left}
.board-view{max-width:1000px;margin:auto}.board-head{text-align:center;padding:3vh 0}.board-head h1{font-size:clamp(2.7rem,8vw,6rem);margin:0;letter-spacing:-.055em}.board-head p{font-size:1.2rem;color:var(--muted)}.board-standings{display:grid;gap:14px}.board-standing{display:grid;grid-template-columns:60px 1fr auto;align-items:center;border-radius:22px;padding:20px 26px;background:var(--paper);box-shadow:var(--shadow)}.board-standing:first-child{background:var(--green);color:white}.board-rank{font-size:1.4rem;font-weight:900}.board-name{font-size:clamp(1.4rem,4vw,2.5rem);font-weight:850}.board-score{font-size:clamp(2rem,6vw,4rem);font-weight:950}.board-footer{text-align:center;color:var(--muted);margin-top:25px}.board-winner{font-size:clamp(1.4rem,4vw,2.4rem);background:#f5c978;border-radius:18px;padding:18px;margin:0 auto 22px;text-align:center;font-weight:900}
@media(max-width:760px){main{padding:12px 14px 60px}.topbar{height:66px;padding:0 14px}.brand img{width:165px;max-height:50px}.game-cards,.manage-grid{grid-template-columns:1fr}.hero{padding:4vh 0 20px}.game-card{padding:18px;border-radius:18px}.panel{padding:18px;border-radius:18px}.game-title{align-items:flex-start}.round-pill{font-size:.78rem}.share-data{grid-template-columns:1fr}.board-standing{grid-template-columns:38px 1fr auto;padding:16px}.player-edit-row{grid-template-columns:18px 1fr 36px 36px 36px}.score-row{grid-template-columns:1fr 105px}.phase-score-row{grid-template-columns:1fr 88px}.phase-check{grid-column:1/-1;justify-content:flex-start}}
@media(display-mode:standalone){.topbar{padding-top:env(safe-area-inset-top);height:calc(65px + env(safe-area-inset-top))}}
