@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/PlayfairDisplay-SemiBold.woff2)format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/PlayfairDisplay-Bold.woff2)format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/DMMono-Regular.woff2)format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/DMMono-Medium.woff2)format("woff2")}:root{--color-primary:#0d0d0d;--color-secondary:#f0ece0;--color-accent:#c9a84c;--color-bg:var(--color-primary);--color-surface:#1a1a1a;--color-surface-2:#2d2d2d;--color-border:#3a3a3a;--color-border-focus:var(--color-accent);--color-text:var(--color-secondary);--color-text-dim:#a09880;--color-text-muted:#6b6457;--color-gold:var(--color-accent);--color-gold-dim:#8a6e2f;--color-gold-surface:#1c1608;--color-error:#7f1d1d;--color-error-hover:#991b1b;--color-error-text:#f87171;--color-success:#059669;--color-success-hover:#047857;--color-success-text:#86efac;--color-guest-bg:#292524;--color-guest-text:#a8a29e;--color-guest-border:#44403c;--color-white:#fff;--color-gold-rgb:201, 168, 76;--color-error-rgb:127, 29, 29;--color-success-rgb:5, 150, 105;--font-sans:system-ui, -apple-system, sans-serif;--font-serif:"Playfair Display", Georgia, serif;--font-mono:"DM Mono", "Fira Code", monospace;--text-xs:.65rem;--text-sm:.8rem;--text-base:.95rem;--text-lg:1rem;--text-xl:1.6rem;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:6px;--radius-md:10px;--radius-lg:20px;--radius-full:999px;--shadow-card:0 2px 12px #0006;--transition:.15s ease;--color-table-rim:#141414;--color-table-felt:#2d6a4f;--color-table-inner:#ffffff12;--color-suit:#ffffff1a;--table-w:290px;--table-h:490px;--table-rim:12px;--z-player-seat:10;--z-table-add-btn:5;--z-navbar:50;--z-modal:100;--z-notify:200;--navbar-h:48px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;min-height:100vh}#root{width:100%;min-height:100vh}h1{font-family:var(--font-serif);font-size:2rem;font-weight:var(--weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-gold)}h2{font-size:var(--text-sm);font-weight:var(--weight-medium);margin-bottom:var(--space-4);color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.1em}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.btn{border-radius:var(--radius-md);font-weight:var(--weight-medium);letter-spacing:.08em;text-transform:uppercase;transition:background var(--transition), border-color var(--transition), opacity var(--transition);white-space:nowrap;flex-shrink:0}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--sm{font-size:var(--text-xs);padding:.35rem .9rem}.btn--md{font-size:var(--text-sm);padding:.7rem 1.25rem}.btn--lg{font-size:var(--text-base);padding:.9rem 1.5rem}.btn--full{width:100%}.btn--ghost{color:var(--color-text);background:0 0;border:1px solid #ffffff29}.btn--ghost:hover:not(:disabled){background:#ffffff0d}.btn--error{background:var(--color-error);color:var(--color-error-text);border:1px solid #0000}.btn--error:hover:not(:disabled){background:var(--color-error-hover)}.btn--success{background:var(--color-success);color:var(--color-white);border:1px solid #0000}.btn--success:hover:not(:disabled){background:var(--color-success-hover)}.btn--accent{border:1px solid var(--color-gold-dim);color:var(--color-accent);background:0 0}.btn--accent:hover:not(:disabled){background:var(--color-gold-surface);border-color:var(--color-accent)}label{font-size:var(--text-sm);color:var(--color-text-dim);margin-bottom:.3rem;display:block}input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);font-size:var(--text-base);margin-bottom:var(--space-3);transition:border-color var(--transition);outline:none;padding:.55rem .75rem}input:focus{border-color:var(--color-border-focus)}.tab{padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-base);text-transform:none;letter-spacing:0;flex:1}.tab--active{background:var(--color-surface-2);color:var(--color-text);border:1px solid #ffffff2e}.tab--inactive{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-dim)}.tab--inactive:hover{background:var(--color-surface-2)}.divider{text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);margin:var(--space-5) 0}.error{color:var(--color-error-text);font-size:var(--text-sm);background:rgba(var(--color-error-rgb), .12);border:1px solid rgba(var(--color-error-rgb), .4);border-radius:var(--radius-full);margin-top:var(--space-2);text-align:center;padding:.25rem .85rem;display:inline-block}.success{color:var(--color-success-text);font-size:var(--text-sm);display:inline-block}.meta{font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.session-code-badge{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);border:1px solid var(--color-gold-dim);border-radius:var(--radius-full);letter-spacing:.06em;padding:.2rem .75rem}.brand{text-align:center}.brand h1{margin-bottom:var(--space-2)}.brand__tagline{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-dim)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-card)}.page{flex-direction:column;max-width:440px;min-height:100vh;margin:0 auto;display:flex}.toast{z-index:1000;opacity:0;pointer-events:none;white-space:nowrap;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.5rem 1rem;position:fixed;bottom:1.75rem;left:50%;transform:translate(-50%)}.toast .error,.toast .success{background:0 0;border:none;border-radius:0;margin-top:0;padding:0}.toast--visible{pointer-events:auto;animation:3s forwards toast-fade}@keyframes toast-fade{0%,75%{opacity:1}to{opacity:0}}.auth-page__brand{margin-bottom:var(--space-8)}.auth-page__tabs{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.auth-page__card{margin-bottom:var(--space-4)}.auth-page__card form{flex-direction:column;display:flex}.poker-table{width:var(--table-w);height:var(--table-h);background:var(--color-table-rim);padding:var(--table-rim);border-radius:999px;margin:0 auto;position:relative;overflow:visible;box-shadow:0 0 0 1px #ffffff0a,0 12px 80px #000000d9}.poker-table__felt{background:var(--color-table-felt);border-radius:999px;width:100%;height:100%;position:relative;overflow:hidden}.poker-table__inner-ring{border:1px solid var(--color-table-inner);pointer-events:none;border-radius:999px;position:absolute;inset:18px}.poker-table__content{inset:var(--table-rim);border-radius:var(--radius-full);justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);z-index:1;width:calc(100% - 2 * var(--table-rim));flex-direction:column;display:flex;position:absolute}.poker-table__suits{gap:var(--space-2);color:var(--color-suit);pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;font-size:1.6rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.home-page{height:100dvh;min-height:unset;padding:calc(var(--navbar-h) + var(--space-4)) var(--space-5) var(--space-8);overflow:hidden}.home-page__header{margin-bottom:var(--space-4)}.home-page__table{flex:1;justify-content:center;align-items:center;display:flex}.home-page__actions{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.home-page__form{width:100%}.home-page__form-heading{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--color-text);margin-bottom:var(--space-3)}.home-page__form-row{gap:var(--space-2);margin-top:var(--space-2);display:flex}.home-page__form-row .btn{flex:1}.player-card{flex-direction:column;align-items:center;display:flex}.player-card__avatar{background:var(--color-bg);border:2px solid var(--color-border);width:48px;height:48px;font-size:.8rem;font-weight:var(--weight-semibold);letter-spacing:.06em;color:var(--color-text);transition:border-color var(--transition);z-index:1;border-radius:50%;justify-content:center;align-items:center;margin-bottom:-14px;display:flex;position:relative}.player-card--leader .player-card__avatar{border-color:var(--color-gold)}.player-card__info{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:18px var(--space-3) var(--space-2);flex-direction:column;align-items:center;gap:2px;min-width:72px;display:flex}.player-card__name-row{align-items:center;gap:3px;display:flex}.player-card__name{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-dim);white-space:nowrap;font-size:.62rem}.player-card__star{color:var(--color-gold);font-size:.6rem}.player-card__amount{font-family:var(--font-mono);gap:3px;font-size:.6rem;display:flex}.player-card__amount-buyin{color:var(--color-error)}.player-card__amount-buyout{color:var(--color-success)}.player-card__amount-label{color:var(--color-text-muted)}.modal-overlay{z-index:var(--z-modal);position:fixed;inset:0}.modal-sheet{background:linear-gradient(to bottom, transparent 0%, var(--color-bg) 15%);height:60vh;animation:modal-slide-up var(--modal-duration) ease-out;border-radius:16px 16px 0 0;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}@keyframes modal-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes modal-slide-down{0%{transform:translateY(0)}to{transform:translateY(100%)}}.modal-sheet--closing{animation:modal-slide-down var(--modal-duration) ease-out forwards}.modal-header{padding:13vh var(--space-5) var(--space-5);gap:var(--space-4);flex-direction:column;width:100%;max-width:480px;margin:0 auto;display:flex}.modal-title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-accent);letter-spacing:.08em}.modal-body{padding:0 var(--space-5) var(--space-8);flex:1;width:100%;max-width:480px;margin:0 auto;overflow-y:auto}.session-page__topbar{padding:calc(var(--navbar-h) + var(--space-4)) var(--space-5) var(--space-3);justify-content:space-between;align-items:center;display:flex}.session-page__live-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--color-text-dim)}.session-page__live-label-dot{color:var(--color-error)}.session-page__topbar-right{align-items:center;gap:var(--space-2);display:flex}.session-page__menu-btn{border-radius:var(--radius-sm);background:var(--color-surface-2);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-dim);letter-spacing:.05em;font-size:1.1rem}.session-page__table{padding:var(--space-8) var(--space-5) calc(var(--space-8) * 3);flex:1;justify-content:center;align-items:center;display:flex}.player-seat{cursor:pointer;z-index:var(--z-player-seat);position:absolute;transform:translate(-50%,-50%)}.table-add-btn{border:1.5px solid rgba(var(--color-gold-rgb), .35);background:rgba(var(--color-gold-rgb), .08);width:44px;height:44px;color:var(--color-gold);cursor:pointer;transition:background var(--transition), border-color var(--transition);z-index:var(--z-table-add-btn);border-radius:50%;font-size:1.4rem;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.table-add-btn:hover{background:rgba(var(--color-gold-rgb), .16);border-color:var(--color-gold)}.session-page__error{padding:0 var(--space-5)}.session-page__actions{padding:0 20px 36px}.player-edit-panel__fields{gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.player-edit-panel__field{flex:1}.player-edit-panel__field input{font-family:var(--font-mono);margin-bottom:0}.player-edit-panel__actions{gap:var(--space-2);display:flex}.session-page__edit-toggle{margin-bottom:var(--space-3);justify-content:flex-end;padding:0 20px;display:flex}.session-page__modal-end{color:var(--color-text);margin-bottom:var(--space-6)}.settled-page__header{text-align:center;margin-bottom:var(--space-8)}.settled-page__header h1{margin-bottom:var(--space-2)}.settled-page__subtitle{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.18em;color:var(--color-text-dim)}.settled-page__card{margin-bottom:var(--space-6)}.transaction-row{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--text-base);padding:.65rem 0;display:flex}.transaction-row:last-child{border-bottom:none}.tx-from{color:var(--color-error-text);flex:1}.tx-arrow{color:var(--color-text-muted)}.tx-to{color:var(--color-success-text);flex:1}.tx-amount{font-family:var(--font-mono);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap}.settled-page__total{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:.65rem;padding:.65rem 0 0;display:flex}.settled-page__total-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-dim)}.settled-page__total-amount{font-family:var(--font-mono);font-weight:var(--weight-bold);color:var(--color-accent)}.profile-page{padding-top:calc(var(--navbar-h) + var(--space-8));padding-bottom:var(--space-8);padding-left:var(--space-5);padding-right:var(--space-5)}.profile-page__header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-8);flex-direction:column;display:flex}.profile-page__email{font-size:var(--text-sm);color:var(--color-text-muted)}.profile-page__empty{text-align:center;margin-top:var(--space-8)}.profile-page__grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.profile-page__stat-tile{align-items:center;gap:var(--space-2);padding:var(--space-4);text-align:center;flex-direction:column;display:flex}.profile-page__stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.profile-page__stat-value{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--color-text)}.profile-page__stat-value--positive{color:var(--color-success-text)}.profile-page__stat-value--negative{color:var(--color-error-text)}.navbar{z-index:var(--z-navbar);height:var(--navbar-h);background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:0 var(--space-4);align-items:center;gap:var(--space-2);display:flex;position:fixed;top:0;left:0;right:0}.navbar__links{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.navbar__link{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-dim);border-radius:var(--radius-sm);transition:color var(--transition);padding:.25rem .5rem}.navbar__link:hover{color:var(--color-text)}.navbar__link--active{color:var(--color-text);background:var(--color-surface)}.navbar__link--session{color:var(--color-success-text)}.navbar__link--session:hover{color:var(--color-success-text);background:rgba(var(--color-success-rgb), .1)}.navbar__link--logout{color:var(--color-error-text)}.navbar__link--logout:hover{color:#fca5a5}
