:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0f172a;color:#eef2ff;--panel: rgba(15, 23, 42, .82);--line: rgba(148, 163, 184, .24);--muted: #9ca3af;--accent: #14b8a6;--accent-2: #f59e0b;--danger: #ef4444}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;background:radial-gradient(circle at 15% 0%,rgba(20,184,166,.22),transparent 30rem),linear-gradient(135deg,#111827,#0f172a 45%,#1e1b4b)}button,input{font:inherit}button{min-height:48px;border:1px solid var(--line);border-radius:8px;padding:0 16px;color:#f8fafc;background:#ffffff14;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.48;cursor:not-allowed}input{width:100%;min-height:52px;border:1px solid var(--line);border-radius:8px;padding:0 14px;color:#fff;background:#0f172ac2;outline:none}label{display:grid;gap:8px;color:var(--muted);font-size:.92rem}h1,h2,p{margin:0}.shell{width:min(100%,1040px);margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 14px 28px}.wide{max-width:1180px}.home{display:grid;min-height:100vh;align-content:center;gap:20px}.brand{display:flex;align-items:center;gap:16px}.brand h1{font-size:clamp(2.3rem,9vw,5rem);line-height:.96;letter-spacing:0}.logo,.mini-logo{display:grid;place-items:center;width:72px;height:72px;border-radius:18px;color:#0f172a;background:linear-gradient(145deg,#f8fafc,#c7d2fe);box-shadow:0 20px 44px #00000052}.mini-logo{width:44px;height:44px;border-radius:8px}.eyebrow{color:var(--accent);text-transform:uppercase;font-size:.75rem;font-weight:800;letter-spacing:.12em}.panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 18px 50px #0003}.home-panel{display:grid;gap:14px;padding:16px}.join-grid{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.primary{border-color:#14b8a699;background:linear-gradient(135deg,#0d9488,#14b8a6);color:#042f2e;font-weight:850}.ghost{background:transparent}.danger{background:#ef444429;border-color:#ef444475}.rules-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rules-strip span{padding:10px 8px;border:1px solid var(--line);border-radius:8px;text-align:center;color:#cbd5e1;background:#ffffff0f;font-size:.82rem}.topbar{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;margin-bottom:14px}.topbar h1{font-size:1.45rem}.icon-btn{width:44px;min-height:44px;padding:0}.code-panel{padding:18px;text-align:center;display:grid;gap:12px}.game-code{font-size:clamp(2.8rem,15vw,6rem);font-weight:900;color:#f8fafc;letter-spacing:.08em}.share-row,.actions,.admin-bar{display:flex;gap:10px;flex-wrap:wrap}.share-row button,.actions button,.admin-bar button{flex:1}.players{padding:16px;margin-top:14px;display:grid;gap:10px}.players h2{font-size:1.05rem}.player-row{display:grid;grid-template-columns:14px 1fr auto auto auto;align-items:center;gap:8px;min-height:42px;color:var(--muted)}.player-row b{color:#fff}.status{width:10px;height:10px;border-radius:50%;background:#64748b}.status.online{background:#22c55e;box-shadow:0 0 0 4px #22c55e26}.gold{color:var(--accent-2)}.tiny{width:34px;min-height:34px;padding:0}.waiting{color:var(--muted);text-align:center;padding:18px}.game{display:grid;gap:14px}.dice-column{display:grid;gap:12px}.dice-stage{min-height:320px;border:1px solid rgba(20,184,166,.28);border-radius:8px;padding:18px;display:grid;align-content:center;gap:18px;background:linear-gradient(160deg,#14b8a629,#0f172ae6),#0f172adb;overflow:hidden}.dice-stage h2{font-size:2rem}.turn{color:var(--muted);margin-top:6px}.turn.mine{color:var(--accent);font-weight:800}.dice-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(8px,2vw,16px);align-items:center}.dice-row .die{grid-column:span 2}.dice-row .die:nth-child(4){grid-column:2 / span 2}.dice-row .die:nth-child(5){grid-column:4 / span 2}.die{aspect-ratio:1;min-height:auto;padding:10%;position:relative;border:3px solid #dbeafe;border-radius:18%;background:linear-gradient(145deg,#fff,#dbeafe);box-shadow:0 18px 26px #00000042,inset 0 -8px 18px #0f172a14;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);align-items:center;justify-items:center;gap:7%}.pip{width:min(72%,18px);height:min(72%,18px);border-radius:50%;background:transparent}.pip.show{background:#111827;box-shadow:inset 0 2px 3px #ffffff4d}.die.locked{border-color:var(--accent-2);box-shadow:0 0 0 5px #f59e0b2e,0 18px 26px #00000042}.lock-mark{position:absolute;right:6px;bottom:6px;color:var(--accent-2)}.die.rolling{animation:roll .58s cubic-bezier(.2,.7,.1,1)}@keyframes roll{0%{transform:rotate(0) scale(1) translate(0)}25%{transform:rotate(45deg) scale(1.08) translate(4px,-5px)}55%{transform:rotate(-35deg) scale(.96) translate(-5px,3px)}to{transform:rotate(0) scale(1) translate(0)}}.roll-btn{width:100%}.score-wrap{min-width:0}.my-score{display:grid;gap:12px;padding:14px;margin-bottom:12px;background:#0f172ad1}.my-score-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.my-score-head h2{font-size:1.18rem}.my-score-head strong{color:#fef3c7;font-size:1.1rem;white-space:nowrap}.inline-turn{padding:9px 10px;border:1px solid rgba(20,184,166,.36);border-radius:7px;color:#ccfbf1;background:#14b8a61c;font-size:.86rem;font-weight:800}.inline-turn.urgent{border-color:#f59e0b9e;color:#fef3c7;background:#f59e0b1f}.protocol-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:12px;align-items:start}.protocol-section{display:grid;gap:7px}.my-score-row{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:#ffffff0d;color:#cbd5e1;font-size:.84rem;position:relative}.my-score-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-score-row strong{min-width:28px;text-align:right;color:#f8fafc}.my-score-row.open{color:#64748b;background:#ffffff06}.my-score-row.filled{opacity:1;color:#111827;border-color:#e2e8f0b8;background:#f8fafc}.my-score-row.filled strong{min-width:30px;min-height:28px;display:grid;place-items:center;border-radius:7px;color:#111827;background:#f8fafc}.my-score-row.filled:disabled{opacity:1;cursor:default}.my-score-row.choose{cursor:pointer;opacity:1}.my-score-row.choose.good{color:#f8fafc;border-color:#5eead494;background:#14b8a624}.my-score-row.choose.good strong{color:#042f2e;background:#5eead4}.my-score-row.choose.zero{color:#fecaca;border-color:#ef444457;background:#ef444414}.my-score-row.choose.zero strong{color:#7f1d1d;background:#fecaca}.my-score-row.choose strong{min-width:30px;min-height:28px;display:grid;place-items:center;border-radius:7px}.my-score-row small{position:absolute;right:8px;bottom:1px;color:#94a3b8;font-size:.62rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.bonus-row{min-height:56px;display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:9px;border:1px solid rgba(245,158,11,.42);border-radius:7px;background:#f59e0b1a}.bonus-row span{color:#fef3c7;font-weight:850}.bonus-row strong{color:#fef3c7;font-size:1.2rem}.bonus-row small{grid-column:1 / -1;color:#cbd5e1;font-size:.76rem}.bonus-row.made{border-color:#5eead48f;background:#14b8a624}.score{min-width:48px;width:100%;min-height:38px;padding:0 8px;border-radius:7px;font-weight:850}.score:disabled{opacity:1}.score.preview{color:#042f2e;background:#5eead4;border-color:#2dd4bf}.score.filled{color:#f8fafc;background:#ffffff1c;border-color:#94a3b857}.total-row td{font-weight:850;color:#fef3c7;background:#f59e0b14}.grand td{font-size:1.05rem;color:#fff;background:#14b8a621}.hint{color:var(--muted);font-size:.86rem;padding:10px 2px}.winner{padding:26px;display:grid;place-items:center;gap:8px;text-align:center}.winner h2{font-size:2.2rem}.winner svg{color:var(--accent-2)}.ranking{padding:10px;display:grid;gap:8px}.rank{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffff0d}.rank small{grid-column:2 / -1;color:var(--muted)}.winner-row{border-color:#f59e0b8c;background:#f59e0b1f}.two{display:grid;grid-template-columns:1fr 1fr}.toast{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(calc(100vw - 28px),460px);padding:14px 16px;border-radius:8px;background:#f8fafc;color:#111827;box-shadow:0 20px 50px #0000005c;text-align:center;font-weight:800;z-index:10}.confetti{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:9}.confetti i{position:absolute;top:-10px;left:var(--x);width:9px;height:16px;background:hsl(var(--h) 90% 58%);animation:fall var(--d) linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}@media(min-width:820px){.game{grid-template-columns:.95fr 1.25fr;align-items:start}.game .topbar,.admin-bar{grid-column:1 / -1}.dice-column{position:sticky;top:18px}.dice-row{grid-template-columns:repeat(5,minmax(54px,1fr))}.dice-row .die,.dice-row .die:nth-child(4),.dice-row .die:nth-child(5){grid-column:auto}}@media(max-width:520px){.join-grid,.two{grid-template-columns:1fr}.rules-strip{grid-template-columns:repeat(2,1fr)}.dice-row{gap:7px}.protocol-grid{grid-template-columns:1fr 1fr;gap:8px}.my-score{padding:10px}.my-score-row{padding:7px;font-size:.78rem}.bonus-row{padding:7px}.player-row{grid-template-columns:14px 1fr auto auto}.player-row span:last-of-type{display:none}.shell{padding-left:10px;padding-right:10px}}
