@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";:root{--bg: #0b1020;--bg-2: #141a2e;--bg-3: #1f2942;--bg-4: #2a3656;--fg: #f1f5f9;--muted: #94a3b8;--gold: #f59e0b;--gold-light: #fbbf24;--gold-dark: #b45309;--jade: #10b981;--jade-light: #34d399;--crimson: #ef4444;--crimson-light: #f87171;--border: #334155;--border-strong: #475569;--radius: 14px;--radius-lg: 20px;--shadow-lg: 0 20px 40px rgba(0, 0, 0, .5), 0 4px 12px rgba(0, 0, 0, .4);--shadow-glow: 0 0 24px rgba(245, 158, 11, .45)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(circle at 20% 0%,rgba(245,158,11,.08),transparent 50%),radial-gradient(circle at 80% 100%,rgba(16,185,129,.06),transparent 50%),var(--bg);color:var(--fg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;-webkit-tap-highlight-color:transparent;min-height:100vh}h1,h2{font-family:"Noto Serif SC",Inter,serif;letter-spacing:.01em}button{background:var(--bg-3);color:var(--fg);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.65rem 1rem;font-size:.95rem;font-family:inherit;font-weight:500;cursor:pointer;transition:transform .08s ease,background .15s,border-color .15s,box-shadow .15s}button:hover:not(:disabled){background:var(--bg-4);border-color:var(--gold)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 100%);color:#1a1108;border-color:var(--gold-dark);font-weight:700;box-shadow:0 4px 12px #f59e0b59}button.primary:hover:not(:disabled){background:linear-gradient(180deg,#fcd34d 0%,var(--gold-light) 100%);box-shadow:0 6px 16px #f59e0b80}button.primary.big{font-size:1.05rem;padding:.9rem 1.4rem}button.danger{border-color:var(--crimson);color:var(--crimson-light)}button.danger:hover:not(:disabled){background:#ef444426}button.selected{background:linear-gradient(180deg,var(--gold-light),var(--gold));color:#1a1108;border-color:var(--gold-dark);font-weight:600}button.link{background:none;border:none;color:var(--gold-light);padding:0;font-size:.85rem;text-decoration:underline}input{background:var(--bg-2);color:var(--fg);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.7rem .9rem;font-size:1rem;font-family:inherit;width:100%;transition:border-color .15s,box-shadow .15s}input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #f59e0b33}label{display:block;margin:.6rem 0;color:var(--muted);font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}label>input{margin-top:.35rem;text-transform:none}.muted{color:var(--muted)}.error{color:var(--crimson-light);margin-top:.5rem}.actions{display:flex;gap:.5rem;margin-top:1.25rem;flex-wrap:wrap;justify-content:center}code,.room-code{font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:1.1em;letter-spacing:.15em;color:var(--gold-light);font-weight:700}.card{background:linear-gradient(180deg,var(--bg-2),var(--bg-3));border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem;box-shadow:var(--shadow-lg)}.card.glow{box-shadow:var(--shadow-lg),var(--shadow-glow);border-color:#f59e0b4d}.home{max-width:480px;margin:0 auto;padding:3rem 1rem 2rem;text-align:center}.home header h1{font-size:3rem;margin:0;background:linear-gradient(180deg,var(--gold-light),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 4px 16px rgba(245,158,11,.25)}.home .tagline{color:var(--muted);margin-top:.5rem;font-size:.95rem}.home .card{margin-top:2rem;text-align:left}.divider{text-align:center;color:var(--muted);margin:1.25rem 0;font-size:.85rem;text-transform:uppercase;letter-spacing:.15em;position:relative}.divider:before,.divider:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:var(--border)}.divider:before{left:0}.divider:after{right:0}.join-row{display:flex;gap:.5rem}.join-row input{text-transform:uppercase;letter-spacing:.25em;font-family:JetBrains Mono,monospace;text-align:center;font-weight:700}footer{margin-top:1.5rem;color:var(--muted)}.join-screen{max-width:520px;margin:0 auto;padding:2rem 1rem}.join-screen h1{font-size:1.75rem;margin:0 0 1rem}.rotate-tile{display:inline-block;animation:tileSpin 8s linear infinite}@keyframes tileSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.icon-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;margin:.5rem 0 1rem}.icon-cell{font-size:1.75rem;padding:.5rem 0;background:var(--bg-2);border:2px solid var(--border);aspect-ratio:1;border-radius:var(--radius);cursor:pointer;transition:transform .1s,border-color .15s,background .15s}.icon-cell:hover{transform:scale(1.08);border-color:var(--gold)}.icon-cell.selected{background:linear-gradient(180deg,var(--gold-light),var(--gold));border-color:var(--gold-dark);transform:scale(1.05);box-shadow:0 4px 12px #f59e0b66}.lobby{max-width:600px;margin:0 auto;padding:1.5rem 1rem}.lobby header h1{font-size:2rem;margin:0}.lobby header{text-align:center;margin-bottom:1.5rem}.seat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1.5rem 0}.settings-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin:1rem 0}.settings-card summary{cursor:pointer;font-weight:600;color:var(--gold-light)}.config-editor{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 0 0}.table-view{max-width:640px;margin:0 auto;padding:.75rem;display:flex;flex-direction:column;min-height:100vh}.table-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.5rem}.header-pot{text-align:center;font-size:.9rem}.pot-value{color:var(--gold-light);font-variant-numeric:tabular-nums;font-size:1.05rem;text-shadow:0 0 8px rgba(245,158,11,.4)}.conn-pill{padding:.25rem .6rem;border-radius:999px;background:var(--bg-3);color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border)}.conn-pill.open{color:var(--jade-light);border-color:var(--jade);background:#10b9811a}.conn-pill.closed,.conn-pill.connecting{color:var(--crimson-light);border-color:var(--crimson);background:#ef44441a}.table{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:.6rem;aspect-ratio:1;background:radial-gradient(ellipse at center,#166534,#14532d 35%,#052e16);border:6px solid;border-image:linear-gradient(135deg,#92400e,#78350f,#422006) 1;border-radius:var(--radius-lg);padding:.75rem;margin:.5rem 0;box-shadow:inset 0 0 60px #00000080,0 12px 32px #00000080;position:relative}.table:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.04) 2px 3px),repeating-linear-gradient(90deg,transparent 0 2px,rgba(0,0,0,.04) 2px 3px);border-radius:inherit;pointer-events:none}.seat{background:linear-gradient(180deg,var(--bg-2),var(--bg-3));border:2px solid var(--border-strong);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.4rem .25rem;position:relative;text-align:center;font-size:.85rem;z-index:1;box-shadow:0 4px 10px #0006;transition:transform .2s ease,border-color .2s,box-shadow .2s}.seat-0{grid-column:2;grid-row:1}.seat-1{grid-column:3;grid-row:2}.seat-2{grid-column:2;grid-row:3}.seat-3{grid-column:1;grid-row:2}.seat-me{border-color:var(--gold);box-shadow:0 0 16px #f59e0b80,0 4px 10px #0006;transform:scale(1.04)}.seat-empty{opacity:.45;background:var(--bg-2);border-style:dashed}.seat-offline .avatar{filter:grayscale(.8);opacity:.5}.seat .avatar{font-size:2rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.seat .avatar.placeholder{font-size:1.6rem;color:var(--muted)}.seat .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:.25rem}.seat .balance{font-variant-numeric:tabular-nums;font-weight:700;font-size:.95rem;margin-top:.15rem}.seat .balance.up{color:var(--jade-light)}.seat .balance.down{color:var(--crimson-light)}.seat .offline-tag{position:absolute;top:4px;right:6px;font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.table-center{grid-column:2;grid-row:2;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#d4f4dd;text-shadow:0 2px 4px rgba(0,0,0,.7);font-size:.85rem;z-index:1}.action-bar{display:flex;justify-content:center;gap:.5rem;padding:.5rem 0}.action-bar button{padding:.85rem .5rem;font-size:.9rem}.error-bar{background:linear-gradient(180deg,var(--crimson-light),var(--crimson));color:#fff;padding:.7rem 1rem;border-radius:var(--radius);margin:.5rem 0;cursor:pointer;text-align:center;font-weight:600;box-shadow:0 4px 12px #ef44444d}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100;animation:fadeIn .2s ease}.overlay-card{background:linear-gradient(180deg,var(--bg-2),var(--bg-3));border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:1.75rem;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:popIn .25s ease}@keyframes popIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.loading{max-width:400px;margin:6rem auto;text-align:center}.spinner{font-size:4rem;display:inline-block;animation:tileSpin 2s linear infinite;filter:drop-shadow(0 4px 12px rgba(245,158,11,.3))}.conflict-card{background:#f59e0b14;border:1px solid var(--gold-dark);border-radius:var(--radius);padding:.85rem 1rem;margin:.75rem 0}.conflict-card p{margin:0 0 .6rem}.conflict-card .actions{display:flex;gap:.5rem;justify-content:flex-end}.hint{text-align:center;margin:.5rem 0 .75rem;font-size:.9rem}.seat-clickable{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.seat-clickable:hover{transform:translateY(-2px);box-shadow:0 8px 20px #f59e0b40}.seat-clickable:active{transform:translateY(0)}.transfer-dialog h2{margin-top:0}.transfer-parties{display:flex;align-items:center;justify-content:space-around;gap:1rem;margin:1rem 0}.transfer-parties .party{display:flex;flex-direction:column;align-items:center;gap:.25rem}.transfer-parties .party .avatar{font-size:2.5rem}.transfer-parties .party .name{font-weight:600}.transfer-parties .arrow{font-size:2rem;color:var(--gold);font-weight:700}.direction-toggle{display:flex;gap:.5rem;margin:.75rem 0}.direction-toggle button{flex:1}.personal-history h2{margin-top:0}.ledger{width:100%;border-collapse:collapse;margin:1rem 0}.ledger th,.ledger td{padding:.5rem .6rem;text-align:right;border-bottom:1px solid var(--border)}.ledger th:first-child,.ledger td:first-child{text-align:left}.ledger th{color:var(--muted);font-weight:500;font-size:.85rem}.ledger .up{color:var(--jade-light)}.ledger .down{color:var(--crimson-light)}.ledger .total-row td{border-top:2px solid var(--border-strong);border-bottom:none;padding-top:.7rem}.end-view{max-width:640px;margin:2rem auto;padding:1rem}.end-summary h1{text-align:center;margin-top:0}.end-summary h2{margin-top:1.5rem;margin-bottom:.5rem;color:var(--gold-light);font-size:1.05rem}.standings{list-style:none;padding:0;margin:0}.standings li{display:grid;grid-template-columns:2rem 2.5rem 1fr auto auto;align-items:center;gap:.6rem;padding:.6rem .8rem;border-bottom:1px solid var(--border)}.standings li.winner-row{background:#f59e0b1f;border-radius:8px}.standings .medal{font-size:1.4rem;text-align:center}.standings .avatar{font-size:1.8rem;text-align:center}.standings .name{font-weight:600}.standings .balance{font-variant-numeric:tabular-nums}.standings .delta{margin-left:.5rem;font-variant-numeric:tabular-nums;min-width:3.5rem;text-align:right}.standings .up{color:var(--jade-light)}.standings .down{color:var(--crimson-light)}.pair-flows{list-style:none;padding:0;margin:0}.pair-flows li{padding:.4rem .6rem;border-bottom:1px solid var(--border)}.winner-card{margin:1.25rem auto .5rem;padding:1.25rem 1.5rem 1.5rem;background:#f59e0b1f;border:2px solid var(--gold);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);text-align:center;max-width:280px}.winner-card .crown{font-size:2.4rem}.winner-card .winner-label{color:var(--gold-light);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin:.2rem 0 .4rem}.winner-card .winner-avatar{font-size:3.4rem;line-height:1}.winner-card .winner-name{font-size:1.4rem;font-weight:700;margin-top:.3rem}.winner-card .winner-balance{margin-top:.2rem;color:var(--muted);font-variant-numeric:tabular-nums}.small{font-size:.85rem}
