:root{--bg1: #0a3b2a;--bg2: #1f6f4a;--felt-line: rgba(255, 255, 255, .08);--panel: rgba(10, 16, 21, .82);--text: #f2f6f8;--muted: #b5c4cc;--accent: #ffc857;--danger: #ff6b6b;--ok: #52c41a}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:Trebuchet MS,Avenir Next,sans-serif;background:radial-gradient(circle at 15% 20%,rgba(255,255,255,.12),transparent 35%),radial-gradient(circle at 85% 80%,rgba(255,255,255,.1),transparent 40%),repeating-linear-gradient(45deg,transparent 0 12px,var(--felt-line) 12px 13px),linear-gradient(145deg,var(--bg1),var(--bg2));min-height:100vh}.page{min-height:100vh;padding:1rem;display:flex;justify-content:center;align-items:center}.panel{width:min(1100px,100%);background:var(--panel);border:1px solid rgba(255,255,255,.16);border-radius:20px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 28px 80px #0006;padding:1rem}.board-panel{display:flex;flex-direction:column}.board-content-shell{display:flex;flex-direction:column;min-height:0}.mobile-lobby-bar,.mobile-lobby-toggle,.mobile-account-menu{display:none}.auth-panel{width:min(440px,100%)}h1,h2,h3,p{margin-top:0}h1{letter-spacing:.5px}form,.join-row,.lobby-actions,.controls,.game-select{display:flex;gap:.65rem;flex-wrap:wrap}form{flex-direction:column}input,button{font:inherit;border-radius:12px;padding:.6rem .85rem}.danger-btn{background:linear-gradient(145deg,#ff6b6b,#e03131);color:#fff}.draw-deck-btn{background:linear-gradient(145deg,#4dabf7,#1c7ed6);color:#fff}.draw-discard-btn{background:linear-gradient(145deg,#63e6be,#12b886);color:#062a1d}.knock-discard-btn{background:linear-gradient(145deg,#ffd43b,#f59f00);color:#3a2500}input{border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff}button{border:none;background:linear-gradient(145deg,#f7b733,var(--accent));color:#2d1f00;font-weight:700;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}button:hover{transform:translateY(-2px);box-shadow:0 8px 18px #ffc85759}button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.link{background:transparent;color:var(--muted);box-shadow:none;font-weight:500}.top-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.top-actions{display:flex;gap:.5rem;align-items:center}.user-chip{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.35rem .7rem}.players{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:.8rem}.player-pill{border-radius:999px;padding:.4rem .75rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.16);display:inline-flex;gap:.5rem}.room-heading{display:flex;justify-content:space-between;align-items:center;gap:.85rem;flex-wrap:wrap}.room-heading h2{margin-bottom:0}.room-link-actions{display:flex;gap:.5rem;flex-wrap:wrap}.invite-banner,.invite-feedback{border-radius:12px;padding:.55rem .7rem;margin-bottom:.75rem}.invite-banner{background:#ffc8571f;border:1px solid rgba(255,200,87,.28);color:#ffe7a8}.invite-feedback{background:#52c41a1f;border:1px solid rgba(82,196,26,.24);color:#c8f5b0}.online{color:var(--ok)}.offline{color:var(--danger)}.table-wrap{margin-top:1rem;border-radius:18px;padding:.85rem;background:#0003;border:1px solid rgba(255,255,255,.12)}.table-header{display:flex;justify-content:space-between;align-items:center;gap:.8rem}.turn-pill{border-radius:999px;padding:.3rem .7rem;background:#ffffff2e;font-size:.9rem}.turn-pill.yours{background:#52c41a40;border:1px solid rgba(82,196,26,.5)}.status-text{color:var(--muted);margin-bottom:.5rem}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.45rem;margin-bottom:.85rem}.metric{border-radius:10px;padding:.4rem .55rem;background:#ffffff14;border:1px solid rgba(255,255,255,.14);font-size:.9rem}.table-zone{display:grid;grid-template-columns:2fr 1fr;gap:1rem;align-items:start}.zone-title{font-size:.88rem;color:var(--muted);margin-bottom:.35rem}.opponent-zone,.middle-zone,.your-zone{border-radius:12px;padding:.6rem;background:#ffffff0a}.middle-zone{display:flex;gap:.5rem;justify-content:center;align-items:flex-start}.trick-board{margin:.8rem 0;display:flex;gap:.8rem}.trick-slot{padding:.5rem;border-radius:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12)}.trick-slot.winner{border-color:#ffc857e6;box-shadow:0 0 0 2px #ffc85740}.trick-wait{width:86px;height:125px;border-radius:10px;border:1px dashed rgba(255,255,255,.25);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:.85rem}.back-stack{position:relative;min-height:160px;width:min(100%,320px)}.stack-card{position:absolute;top:0;transition:transform .16s ease}.pile-card{min-width:92px}.drop-active{border:1px dashed rgba(255,200,87,.8);border-radius:10px;padding:.3rem}.hand-grid{display:flex;gap:.42rem;flex-wrap:wrap;align-items:flex-end}.card-btn{border:none;background:transparent;padding:0;box-shadow:none}.card-btn:hover{transform:translateY(-2px);box-shadow:none}.card-shell{width:86px;height:125px;display:block;position:relative;transition:transform .16s ease}.card-shell playing-card{width:100%;height:100%;display:block}.card-fallback{display:none}.card-btn.selected .card-shell{transform:translateY(-10px)}.card-btn:not(:disabled):hover .card-shell{transform:translateY(-5px)}.controls{margin-top:.8rem}.winner-text{margin-top:.65rem;color:var(--accent);font-weight:700}.error{color:#ff9b9b;margin-top:.8rem}.shake{animation:shake .24s ease-in-out 2}.solitaire-top{display:flex;justify-content:space-between;gap:1rem;margin-top:.8rem}.solitaire-stock-waste{display:flex;gap:.9rem;align-items:flex-start}.waste-fan{position:relative;min-width:140px;min-height:130px}.waste-card{position:absolute;top:0}.solitaire-foundations{display:flex;gap:.65rem;flex-wrap:wrap}.foundation-drop{min-width:120px}.solitaire-tableau{margin-top:1rem;display:grid;grid-template-columns:repeat(7,minmax(88px,1fr));gap:.6rem}.tableau-col{border:1px dashed rgba(255,255,255,.18);border-radius:10px;padding:.45rem;background:#ffffff08;min-height:360px}.tableau-stack{position:relative;min-height:320px}.tableau-card{position:absolute;left:0}.tableau-empty{position:absolute;top:0;left:0}.dice-game-wrap{background:linear-gradient(180deg,rgba(255,248,214,.06),transparent 24%),#0b090861}.dice-board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:.9rem}.dice-player-panel{display:flex;flex-direction:column;min-height:0;border-radius:18px;padding:.85rem;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;transition:opacity .16s ease,filter .16s ease,box-shadow .16s ease,transform .16s ease}.dice-player-panel.player-red{background:linear-gradient(180deg,#78111159,#280808b8)}.dice-player-panel.player-blue{background:linear-gradient(180deg,#0f3a7359,#081328b8)}.dice-player-panel.active{box-shadow:inset 0 0 0 2px #ffc85740}.dice-player-panel.dimmed{opacity:.5;filter:saturate(.72) brightness(.78)}.dice-player-header{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start;margin-bottom:.8rem}.dice-player-header h4{margin:0;font-size:1.05rem}.dice-player-status{margin:.2rem 0 0;color:#ffffffc7;font-size:.9rem}.dice-total-chip{border-radius:999px;padding:.35rem .7rem;background:#ffffff24;font-weight:700;white-space:nowrap}.dice-player-detail,.dice-player-footer,.dice-score-region,.dice-score-scroll{min-height:0}.dice-player-detail{display:flex;flex-direction:column;gap:.85rem;flex:1 1 auto}.dice-player-footer{display:flex;flex-direction:column;gap:.85rem}.dice-score-sections{display:flex;flex-direction:column;gap:.8rem}.dice-score-section{display:flex;flex-direction:column;gap:.45rem}.dice-score-section+.dice-score-section{border-top:2px solid rgba(255,255,255,.24);padding-top:.8rem}.dice-score-section-header{display:flex;align-items:center;gap:.6rem;color:#fff8d6e0;font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.dice-score-section-header:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,#ffffff6b,#ffffff0d)}.dice-score-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.dice-score-row{display:flex;justify-content:space-between;align-items:center;gap:.55rem;min-height:58px;padding:.55rem .65rem;border-radius:14px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);color:var(--text);text-align:left;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}.dice-score-row:disabled,.die-button:disabled{opacity:1}.dice-score-row.locked{background:linear-gradient(180deg,#22c55e52,#0a4a2080);border-color:#86efacb8;box-shadow:inset 0 0 0 1px #dcfce726}.dice-score-row.complete .dice-score-value{color:#ecfdf5}.dice-score-row.open{background:linear-gradient(180deg,#ffffff12,#ffffff08);border-color:#ffffff2e}.dice-score-row.open .dice-score-value{color:#fff8d6b8}.dice-score-row.selectable{background:linear-gradient(180deg,#ffd60a47,#80570052);border-color:#ffdd57e6;box-shadow:0 0 0 1px #ffdd574d,0 10px 18px #0000001f}.dice-score-row.selectable .dice-score-value{color:#fff7cc}.dice-score-row.forced{box-shadow:inset 0 0 0 2px #ffd43b5c,0 0 0 2px #ffd43b38}.dice-score-row.selectable:not(:disabled):hover{transform:translateY(-1px)}.dice-score-row.complete .dice-category-icon{background:#ecfdf5f2;color:#14532d}.dice-score-row.open .dice-category-icon{background:#ffffffeb;color:#2f2411}.dice-score-row.selectable .dice-category-icon{background:#fffae6fa;color:#5c3b00}.dice-score-meta{display:flex;align-items:center;gap:.55rem;min-width:0}.dice-score-meta span:last-child{line-height:1.1}.dice-category-icon{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.03em;background:#fff8d6eb;color:#241400;flex:0 0 auto}.dice-score-value{font-weight:800;font-size:1.05rem}.dice-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.85rem}.dice-summary-card{border-radius:12px;padding:.55rem;background:#0000002e;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.2rem}.dice-summary-card span{color:#ffffffbf;font-size:.82rem}.dice-summary-card strong{font-size:1.05rem}.dice-tray{margin-top:.95rem;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}.die-button{width:100%;min-width:0;min-height:44px;padding:0;border-radius:16px;background:transparent;box-shadow:none;display:flex;flex-direction:column;align-items:center;gap:.35rem}.die-button:hover{box-shadow:none}.die-button.held .die-face{transform:translateY(-4px)}.die-face{width:min(100%,88px);aspect-ratio:1;border-radius:20px;position:relative;background:linear-gradient(180deg,#fffce8,#efcf79);border:2px solid rgba(61,39,8,.72);box-shadow:0 12px 24px #00000038;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.die-face.held{border-color:#ffe082;box-shadow:0 0 0 3px #ffc8573d,0 14px 26px #ffc85738}.die-face.empty{background:linear-gradient(180deg,#ffffff38,#ffffff14);border-style:dashed}.die-face-placeholder{position:absolute;left:50%;transform:translate(-50%)}.die-face-placeholder{top:50%;transform:translate(-50%,-50%);font-size:.85rem;color:#282011ad;font-weight:700}.die-pip{position:absolute;width:10px;height:10px;border-radius:50%;background:#17130e;box-shadow:inset 0 1px #ffffff2e}.die-pip.top-left{top:16px;left:16px}.die-pip.top-right{top:16px;right:16px}.die-pip.mid-left{top:calc(50% - 5px);left:16px}.die-pip.mid-right{top:calc(50% - 5px);right:16px}.die-pip.center{top:calc(50% - 5px);left:calc(50% - 5px)}.die-pip.bottom-left{bottom:16px;left:16px}.die-pip.bottom-right{bottom:16px;right:16px}.die-hold-label{font-size:.78rem;color:#ffffffd6;font-weight:700}.dice-controls{justify-content:center}.dice-roll-btn{min-width:220px;background:linear-gradient(180deg,#ff6b57,#db412b);color:#fff6e8}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media(max-width:900px){.table-zone,.dice-board-grid{grid-template-columns:1fr}.middle-zone{justify-content:flex-start}.solitaire-top{flex-direction:column}.solitaire-tableau{overflow-x:auto;grid-template-columns:repeat(7,88px);padding-bottom:.5rem}}@media(max-width:640px){.page{min-height:100dvh;align-items:stretch;padding:.5rem}.dice-page{height:100dvh;max-height:100dvh;overflow:hidden;padding:.2rem}.panel{border-radius:14px;padding:.75rem}.board-panel{min-height:calc(100dvh - 1rem);max-height:calc(100dvh - 1rem);overflow:hidden}.board-content-shell{flex:1 1 auto;overflow:auto;padding-right:.15rem}.mobile-dice-shell{position:relative;min-height:calc(100dvh - .4rem);max-height:calc(100dvh - .4rem);padding:.25rem .35rem .35rem}.mobile-dice-shell .board-content-shell{overflow:hidden;padding-right:0}.mobile-dice-shell .board-content-shell>.dice-game-wrap{flex:1 1 auto;min-height:0;margin-top:0}.mobile-dice-shell .board-content-shell>.lobby-menu-shell{display:flex;flex-direction:column;min-height:0}.top-row{flex-wrap:wrap;align-items:flex-start;gap:.7rem}.top-row h1{margin-bottom:0;font-size:1.4rem}.top-actions{width:100%;justify-content:space-between}.mobile-dice-shell .top-row,.mobile-dice-shell .top-row h1,.mobile-dice-shell .room-shell{display:none}.lobby-actions,.join-row,.controls,.game-select,.room-link-actions{width:100%}.mobile-lobby-bar{display:flex;justify-content:flex-end;margin-bottom:.5rem}.mobile-dice-shell .mobile-lobby-bar{order:3;justify-content:stretch;margin:.22rem 0 0}.mobile-lobby-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:120px;padding:.55rem .8rem}.mobile-dice-shell .mobile-lobby-toggle{width:100%;min-width:0;padding:.34rem .55rem;font-size:.74rem}.mobile-dice-shell .mobile-account-menu{display:flex;justify-content:space-between;align-items:center;gap:.35rem;width:100%;margin-top:.24rem}.mobile-dice-shell .mobile-account-menu .user-chip,.mobile-dice-shell .mobile-account-menu .link{font-size:.72rem;padding:.18rem .38rem}.lobby-actions{display:none}.lobby-actions.mobile-open{display:flex}.join-row>*,.controls>*,.game-select>*,.room-link-actions>*{flex:1 1 140px}.invite-banner,.invite-feedback{font-size:.84rem;margin-bottom:.6rem}.table-wrap{padding:.7rem}.mobile-dice-shell .table-wrap{margin-top:0;padding:.3rem .45rem .4rem}.table-header{flex-wrap:wrap;align-items:flex-start}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:.7rem}.metric{padding:.38rem .45rem;font-size:.82rem}.dice-game-wrap{display:flex;flex-direction:column;min-height:0;overflow:hidden}.dice-game-wrap .table-header h3{font-size:.9rem}.dice-game-wrap .turn-pill{padding:.14rem .38rem;font-size:.72rem}.dice-game-wrap .status-text,.dice-game-wrap .metrics{display:none}.dice-board-grid{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:.35rem;overflow:hidden}.dice-player-panel{padding:.42rem}.dice-player-header{margin-bottom:0;align-items:center}.dice-player-header h4{font-size:.9rem}.dice-player-status{font-size:.74rem}.dice-total-chip{padding:.2rem .4rem;font-size:.72rem}.dice-viewer-panel{flex:1 1 auto;overflow:hidden}.dice-viewer-summary{display:none}.dice-viewer-panel .dice-player-detail{flex:1 1 auto;overflow:hidden;gap:.2rem}.dice-viewer-panel .dice-score-region{flex:1 1 auto;order:1;overflow:hidden}.dice-viewer-panel .dice-score-scroll{height:100%;overflow:auto;padding-right:.15rem}.dice-viewer-panel .dice-player-footer{order:2;gap:.25rem}.dice-viewer-panel .dice-summary-grid{display:none}.dice-opponent-panel .dice-player-detail{gap:.55rem}.dice-opponent-panel{flex:0 0 auto}.dice-opponent-panel .dice-score-region,.dice-opponent-panel .dice-tray,.dice-opponent-panel .dice-summary-grid{display:none}.dice-score-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.38rem}.dice-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.28rem}.dice-tray{margin-top:.15rem;grid-template-columns:repeat(5,minmax(0,1fr));gap:.2rem;align-items:start}.dice-score-row{min-height:44px;padding:.38rem .42rem;border-radius:10px}.dice-score-meta{gap:.42rem}.dice-score-meta span:last-child{font-size:.74rem}.dice-category-icon{width:26px;height:26px;border-radius:8px}.dice-score-value{font-size:.88rem}.dice-summary-card span{font-size:.66rem}.dice-summary-card strong{font-size:.82rem}.die-button{gap:.15rem}.die-face{width:min(100%,46px);border-width:1.8px;border-radius:12px}.die-pip{width:6px;height:6px}.die-pip.top-left,.die-pip.top-right,.die-pip.mid-left,.die-pip.mid-right,.die-pip.bottom-left,.die-pip.bottom-right{left:auto;right:auto}.die-pip.top-left{top:8px;left:8px}.die-pip.top-right{top:8px;right:8px}.die-pip.mid-left{top:calc(50% - 3px);left:8px}.die-pip.mid-right{top:calc(50% - 3px);right:8px}.die-pip.center{top:calc(50% - 3px);left:calc(50% - 3px)}.die-pip.bottom-left{bottom:8px;left:8px}.die-pip.bottom-right{bottom:8px;right:8px}.die-hold-label{display:none}.dice-controls{margin-top:.22rem;padding-top:.12rem;gap:.28rem}.dice-controls>*{flex:1 1 0}.dice-roll-btn{min-width:0;width:auto}.your-zone .hand-grid,.opponent-zone .hand-grid,.trick-board{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.25rem}.trick-board{display:flex}.solitaire-tableau{grid-template-columns:repeat(7,76px);gap:.45rem}.tableau-col{min-height:300px}.tableau-stack{min-height:260px}.card-shell,.trick-wait{width:68px;height:99px}.stack-card{transform:translate(calc(var(--i, 0) * 14px))}}
