:root{--bg: #10131c;--bg-deep: #080a11;--surface: #171b26;--surface-alt: #1e2331;--elevated: #252b3b;--border: #2c3345;--border-strong: #3c455c;--primary: #c8102e;--primary-dark: #8c0b20;--primary-soft: rgba(200, 16, 46, .16);--accent: #d4af37;--gold: #d4af37;--gold-soft: rgba(212, 175, 55, .18);--text: #f3f5f9;--text-muted: #98a2b8;--text-inverse: #10131c;--success: #35c26a;--danger: #ff5c5c;--warning: #ffb648;--info: #4aa8ff;--radius: 14px;--radius-sm: 9px;--shadow: 0 12px 30px rgba(0, 0, 0, .35);--u: clamp(6px, 1.1vh, 12px);--gap: clamp(6px, 1.2vh, 14px);--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--display: "Playfair Display", Georgia, serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg-deep);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}.app{display:grid;grid-template-rows:auto 1fr;height:100dvh;background:var(--bg);background-size:cover;background-position:center}.app-header{display:flex;align-items:center;gap:var(--gap);padding:calc(var(--u) * .8) var(--gap);background:color-mix(in srgb,var(--surface) 92%,transparent);border-bottom:1px solid var(--border);min-height:calc(var(--u) * 4.2)}.app-header .brand{display:flex;align-items:center;gap:calc(var(--u) * .8);min-width:0}.app-header .brand img{height:calc(var(--u) * 2.6);max-width:30vw;object-fit:contain}.app-header .spacer{flex:1}.app-header .wallet-chip{display:flex;flex-direction:column;line-height:1.1;padding:calc(var(--u) * .4) calc(var(--u) * .9);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-alt)}.app-header .wallet-chip small{color:var(--text-muted);font-size:calc(var(--u) * .85)}.app-body{display:grid;grid-template-columns:auto 1fr;min-height:0}.nav-rail{display:flex;flex-direction:column;gap:calc(var(--u) * .4);padding:calc(var(--u) * .6) calc(var(--u) * .5);background:color-mix(in srgb,var(--surface) 88%,transparent);border-right:1px solid var(--border);overflow-y:auto;width:clamp(96px,16vw,190px)}.nav-rail a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:calc(var(--u) * .5) calc(var(--u) * .3);border-radius:var(--radius-sm);color:var(--text-muted);font-size:calc(var(--u) * .95);text-align:center;line-height:1.1}.nav-rail a.active{background:var(--primary-soft);color:var(--text)}.nav-rail a .glyph{font-size:calc(var(--u) * 1.5)}.screen{min-height:0;overflow:auto;padding:var(--gap);display:flex;flex-direction:column;gap:var(--gap)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--gap);box-shadow:var(--shadow);min-width:0}.card.tight{padding:calc(var(--u) * .7)}.card h2,.card h3{margin:0 0 calc(var(--u) * .6);font-size:calc(var(--u) * 1.35)}.card p{margin:0 0 calc(var(--u) * .6);color:var(--text-muted)}.grid{display:grid;gap:var(--gap)}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.auto{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.row{display:flex;align-items:center;gap:var(--gap);flex-wrap:wrap}.row.tight{gap:calc(var(--u) * .6)}.col{display:flex;flex-direction:column;gap:var(--gap)}.between{justify-content:space-between}.grow{flex:1;min-width:0}.section-title{display:flex;align-items:center;gap:calc(var(--u) * .6);font-size:calc(var(--u) * 1.2);font-weight:600;color:var(--text)}.section-title .hint{font-size:calc(var(--u) * .9);color:var(--text-muted);font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:calc(var(--u) * .5);padding:calc(var(--u) * .8) calc(var(--u) * 1.4);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-alt);color:var(--text);cursor:pointer;font-size:calc(var(--u) * 1);min-height:calc(var(--u) * 2.8);transition:transform .08s ease,filter .15s ease;white-space:nowrap}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--text-inverse)}.btn.ghost{background:transparent}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.success{background:var(--success);border-color:var(--success);color:var(--text-inverse)}.btn.small{padding:calc(var(--u) * .45) calc(var(--u) * .8);font-size:calc(var(--u) * .9);min-height:calc(var(--u) * 2.2)}.btn.block{width:100%}.field{display:flex;flex-direction:column;gap:calc(var(--u) * .3);min-width:0}.field label{font-size:calc(var(--u) * .9);color:var(--text-muted)}.field input,.field select,.field textarea{padding:calc(var(--u) * .7) calc(var(--u) * .8);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:calc(var(--u) * 2.8);width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--primary);outline-offset:1px}.field .error{color:var(--danger);font-size:calc(var(--u) * .85)}.field .hint{color:var(--text-muted);font-size:calc(var(--u) * .8)}.switch{display:inline-flex;align-items:center;gap:calc(var(--u) * .5);font-size:calc(var(--u) * .95)}.switch input{width:auto;min-height:0}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px calc(var(--u) * .6);border-radius:999px;font-size:calc(var(--u) * .8);font-weight:600;background:var(--surface-alt);border:1px solid var(--border-strong);color:var(--text-muted)}.pill.ok{color:var(--success);border-color:color-mix(in srgb,var(--success) 50%,transparent)}.pill.warn{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 50%,transparent)}.pill.bad{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,transparent)}.pill.gold{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 50%,transparent)}.banner{display:flex;gap:calc(var(--u) * .6);align-items:flex-start;padding:calc(var(--u) * .7) var(--gap);border-radius:var(--radius-sm);font-size:calc(var(--u) * .95);background:var(--surface-alt);border:1px solid var(--border)}.banner.error{background:color-mix(in srgb,var(--danger) 18%,var(--surface));border-color:var(--danger)}.banner.ok{background:color-mix(in srgb,var(--success) 16%,var(--surface));border-color:var(--success)}.banner.warn{background:color-mix(in srgb,var(--warning) 16%,var(--surface));border-color:var(--warning)}.stat{display:flex;flex-direction:column;gap:2px}.stat .value{font-size:calc(var(--u) * 1.6);font-weight:700}.stat .label{font-size:calc(var(--u) * .85);color:var(--text-muted)}.muted{color:var(--text-muted)}.mono{font-variant-numeric:tabular-nums}.center{text-align:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table{width:100%;border-collapse:collapse;font-size:calc(var(--u) * .95)}.table th,.table td{text-align:left;padding:calc(var(--u) * .5);border-bottom:1px solid var(--border)}.table th{color:var(--text-muted);font-weight:500}.empty{display:grid;place-items:center;gap:calc(var(--u) * .5);padding:calc(var(--u) * 2);text-align:center;color:var(--text-muted)}.empty img{max-width:30%;max-height:calc(var(--u) * 6);opacity:.8}.spinner{width:calc(var(--u) * 2.2);height:calc(var(--u) * 2.2);border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060cb3;display:grid;place-items:center;padding:var(--gap);z-index:50}.modal{width:min(720px,94vw);max-height:92dvh;overflow:auto}.card-rail{display:flex;gap:var(--gap);overflow-x:auto;overflow-y:hidden;padding-bottom:calc(var(--u) * .4);scroll-snap-type:x mandatory;scrollbar-width:thin}.card-rail>*{flex:0 0 calc((100% - 2 * var(--gap)) / 3);min-width:0;scroll-snap-align:start}.card-rail::-webkit-scrollbar{height:6px}.card-rail::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.table-card{display:flex;flex-direction:column;gap:calc(var(--u) * .45)}.table-card .title{font-weight:700;font-size:calc(var(--u) * 1.05)}.table-card .meta{display:flex;flex-wrap:wrap;gap:calc(var(--u) * .35)}.seat-bar{height:5px;border-radius:3px;background:var(--surface-alt);overflow:hidden}.seat-bar span{display:block;height:100%;background:var(--accent)}.asset-bg{background-size:cover;background-position:center}.game-table{display:grid;grid-template-rows:auto 1fr auto;gap:var(--gap);min-height:0}.game-table .felt{position:relative;border-radius:var(--radius);border:1px solid var(--border);background:var(--felt-top, #0d3b2a);padding:var(--gap);overflow:auto}.seat-row{display:flex;gap:var(--gap);overflow-x:auto}.seat{flex:0 0 auto;min-width:calc(var(--u) * 11);text-align:center;padding:calc(var(--u) * .5);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid var(--border)}.seat.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--gold-soft)}.hand{display:flex;gap:calc(var(--u) * .3);flex-wrap:wrap}.card-face{width:calc(var(--u) * 3.6);height:calc(var(--u) * 5);border-radius:calc(var(--u) * .5);border:1px solid var(--border-strong);background:var(--surface);display:grid;place-items:center;cursor:pointer;font-weight:700;font-size:calc(var(--u) * 1.05);-webkit-user-select:none;user-select:none}.card-face.red{color:var(--danger)}.card-face.selected{transform:translateY(-6px);border-color:var(--accent)}.card-face.back{background:repeating-linear-gradient(45deg,#7a1224,#7a1224 6px,#a01a31 6px,#a01a31 12px);color:#fff}.action-bar{display:flex;gap:calc(var(--u) * .6);flex-wrap:wrap;align-items:center}.timer-pill{font-variant-numeric:tabular-nums}.meld-group{display:flex;gap:calc(var(--u) * .3);padding:calc(var(--u) * .4);border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}.splash{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--bg-deep) var(--splash-bg, none) center/cover no-repeat;z-index:80}.splash .inner{display:grid;place-items:center;gap:calc(var(--u) * 1.2)}.splash img.logo{max-width:min(52vw,60vh);max-height:30vh}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:var(--gap);background:var(--bg-deep) var(--auth-bg, none) center/cover no-repeat}.auth-card{width:min(420px,94vw)}@media (max-height: 420px){:root{--u: 7px;--gap: 7px;--radius: 10px}.nav-rail{width:clamp(84px,20vw,150px)}}@media (max-height: 560px){:root{--u: 9px;--gap: 9px}}@media (max-width: 860px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1280px){:root{--u: 12px;--gap: 14px}}@media (min-width: 1700px){:root{--u: 14px;--gap: 16px}.card-rail>*{flex-basis:calc((100% - 2 * var(--gap)) / 3)}}@media (max-width: 560px){.nav-rail{width:68px}.nav-rail a span:not(.glyph){display:none}.card-rail>*{flex-basis:calc((100% - 2 * var(--gap)) / 3)}}.voice-panel{display:flex;flex-direction:column;gap:calc(var(--u) * .5);padding:calc(var(--u) * .6);border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-alt) 80%,transparent)}.voice-label{font-size:calc(var(--u) * .95)}.voice-error{color:var(--danger);font-size:calc(var(--u) * .85);margin:0}.voice-select{min-height:calc(var(--u) * 2.4);padding:calc(var(--u) * .4);background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.voice-dot{width:calc(var(--u) * .9);height:calc(var(--u) * .9);border-radius:50%;background:var(--text-muted)}.voice-dot.connected{background:var(--success)}.voice-dot.joining,.voice-dot.reconnecting,.voice-dot.requesting-media{background:var(--warning)}.voice-dot.denied,.voice-dot.error,.voice-dot.unsupported{background:var(--danger)}.voice-peer{display:inline-flex;align-items:center;gap:4px;padding:2px calc(var(--u) * .5);border-radius:999px;border:1px solid var(--border-strong);font-size:calc(var(--u) * .8)}.voice-peer.connected{border-color:var(--success)}.voice-peer[data-speaking=yes]{box-shadow:0 0 0 2px var(--gold-soft)}.voice-peer.failed{border-color:var(--danger)}.voice-peer-dot{color:var(--text-muted);font-size:calc(var(--u) * .7)}.voice-peer[data-speaking=yes] .voice-peer-dot{color:var(--success)}.voice-moderate{margin-left:4px;background:none;border:none;cursor:pointer;color:var(--accent);font-size:inherit;text-decoration:underline}.pill{color:var(--text);background:color-mix(in srgb,var(--surface-alt) 88%,var(--border));border-color:var(--border-strong);font-size:max(calc(var(--u) * .8),10px);line-height:1.5}.pill.ok{color:var(--text);background:color-mix(in srgb,var(--success) 26%,var(--surface));border-color:var(--success)}.pill.warn{color:var(--text);background:color-mix(in srgb,var(--warning) 26%,var(--surface));border-color:var(--warning)}.pill.bad{color:var(--text);background:color-mix(in srgb,var(--danger) 26%,var(--surface));border-color:var(--danger)}.pill.gold{color:var(--text);background:color-mix(in srgb,var(--gold) 24%,var(--surface));border-color:var(--gold)}.muted{color:color-mix(in srgb,var(--text-muted) 80%,var(--text))}.felt .muted,.game-table .muted{color:color-mix(in srgb,var(--text) 72%,transparent)}.vip-band{display:inline-flex;align-items:center;gap:4px;color:var(--text)}.vip-band .swatch{width:.7em;height:.7em;border-radius:50%;display:inline-block}.table-wrap{width:100%;overflow-x:auto}.table-wrap .table{min-width:520px}.btn{min-height:max(calc(var(--u) * 2.8),24px)}.btn.small{min-height:max(calc(var(--u) * 2.2),24px)}.nav-rail a,.admin-nav a{min-height:28px;justify-content:center}.voice-moderate{min-height:24px;padding:0 4px}.pill{padding:2px 8px}.btn.danger{background:color-mix(in srgb,var(--danger) 78%,black);border-color:color-mix(in srgb,var(--danger) 78%,black);color:#fff}.auth-card p a,.splash a{display:inline-flex;align-items:center;min-height:24px}
