:root{--font-main:"Georgia Pro",Georgia,"Times New Roman",serif;--felt-dark:#052e22;--felt:#0b4633;--felt-light:#10583f;--gold:#d4af37;--gold-light:#e8c96a;--gold-dark:#a8862a;--cream:#faf6ec;--ink:#1d2521;--ink-soft:#4b5a52;--muted:#8a9691;--red:#b0302c;--red-dark:#8c2622;--blue:#2a5b8f;--green-btn:#1e7a4f;--green-btn-dark:#175f3d;--danger-bg:#fdeaea;--danger-text:#8c2622;--shadow-card:0 24px 48px -12px #00000073;--shadow-soft:0 4px 12px #00000040;--radius:14px}*{box-sizing:border-box}body{background:#052e22;background:var(--felt-dark);color:#1d2521;color:var(--ink);margin:0;padding:0}body,button,input,select{font-family:Georgia Pro,Georgia,Times New Roman,serif;font-family:var(--font-main)}.page{background:radial-gradient(ellipse at 50% -20%,#d4af371f,#0000 55%),radial-gradient(ellipse at 50% 115%,#00000080,#0000 60%),linear-gradient(160deg,#10583f,#0b4633 45%,#052e22);background:radial-gradient(ellipse at 50% -20%,#d4af371f,#0000 55%),radial-gradient(ellipse at 50% 115%,#00000080,#0000 60%),linear-gradient(160deg,var(--felt-light) 0,var(--felt) 45%,var(--felt-dark) 100%);min-height:100vh;padding:24px}.page--center{align-items:center;display:flex;justify-content:center}.panel{background:#faf6ec;background:var(--cream);border:1px solid #d4af3773;border-radius:14px;border-radius:var(--radius);box-shadow:0 24px 48px -12px #00000073;box-shadow:var(--shadow-card);padding:40px;width:100%}.panel--narrow{max-width:520px}.panel--wide{margin:0 auto;max-width:860px}.brand{color:#1d2521;color:var(--ink);font-size:34px;font-weight:700;letter-spacing:.5px;margin:0 0 6px;text-align:center}.brand-sub{color:#4b5a52;color:var(--ink-soft);font-size:15px;font-style:italic;margin:0 0 28px;text-align:center}.brand-rule{align-items:center;color:#a8862a;color:var(--gold-dark);display:flex;font-size:13px;gap:12px;letter-spacing:3px;margin:0 auto 24px;max-width:320px}.brand-rule:after,.brand-rule:before{background:linear-gradient(90deg,#0000,#d4af37,#0000);background:linear-gradient(to right,#0000,var(--gold),#0000);content:"";flex:1 1;height:1px}.section-title{color:#1d2521;color:var(--ink);font-size:18px;margin:0 0 14px}.field{margin-bottom:20px}.field-label{display:block;font-size:15px;font-weight:700;margin-bottom:8px}.field-label,.text-input{color:#1d2521;color:var(--ink)}.text-input{background:#fff;border:1.5px solid #cfc9b8;border-radius:10px;font-size:16px;padding:13px 15px;transition:border-color .15s,box-shadow .15s;width:100%}.text-input:focus{border-color:#d4af37;border-color:var(--gold);box-shadow:0 0 0 3px #d4af3740;outline:none}.text-input::placeholder{color:#8a9691;color:var(--muted)}.slider{accent-color:#a8862a;accent-color:var(--gold-dark);margin-top:6px;width:100%}.field-hint{color:#4b5a52;color:var(--ink-soft);font-size:14px;font-style:italic;margin-top:8px;text-align:center}.btn{border:none;border-radius:10px;box-shadow:0 4px 12px #00000040;box-shadow:var(--shadow-soft);cursor:pointer;display:inline-block;font-size:16px;font-weight:700;letter-spacing:.4px;padding:14px 20px;transition:transform .1s,filter .15s,box-shadow .15s;width:100%}.btn:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{box-shadow:none;cursor:not-allowed;filter:grayscale(.5);opacity:.65}.btn--gold{background:linear-gradient(180deg,#e8c96a,#a8862a);background:linear-gradient(180deg,var(--gold-light),var(--gold-dark));border:1px solid #a8862a;border:1px solid var(--gold-dark);color:#2b2005}.btn--green{background:linear-gradient(180deg,#27935f,#175f3d);background:linear-gradient(180deg,#27935f,var(--green-btn-dark));color:#fff}.btn--blue{background:linear-gradient(180deg,#38709f,#234b74);color:#fff}.btn--red{background:linear-gradient(180deg,#c2413c,#8c2622);background:linear-gradient(180deg,#c2413c,var(--red-dark));color:#fff}.btn--sm{font-size:14px;padding:9px 16px;width:auto}.divider{align-items:center;color:#8a9691;color:var(--muted);display:flex;font-size:13px;gap:14px;letter-spacing:2px;margin:26px 0}.divider:after,.divider:before{background:#d8d2c2;content:"";flex:1 1;height:1px}.alert-error{background:#fdeaea;background:var(--danger-bg);border:1px solid #8c262240;border-radius:10px;color:#8c2622;color:var(--danger-text);margin-bottom:18px;padding:12px 16px}.alert-error,.alert-info{font-size:15px;text-align:center}.alert-info{background:#eef3ec;border:1px solid #1e7a4f40;border-radius:10px;color:#1d4d35;margin-bottom:22px;padding:14px 16px}.alert-info p{margin:0}.game-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:24px}.game-tile{background:#fff;border:1.5px solid #d8d2c2;border-radius:12px;cursor:pointer;font-family:Georgia Pro,Georgia,Times New Roman,serif;font-family:var(--font-main);padding:16px 10px 14px;position:relative;text-align:center;transition:border-color .15s,box-shadow .15s,transform .1s}.game-tile:hover:not(:disabled){box-shadow:0 4px 12px #00000040;box-shadow:var(--shadow-soft);transform:translateY(-2px)}.game-tile--active{background:#fffdf5;border-color:#d4af37;border-color:var(--gold);box-shadow:0 0 0 3px #d4af3740}.game-tile:disabled{cursor:not-allowed;opacity:.55}.game-tile-icon{font-size:30px;line-height:1;margin-bottom:8px}.game-tile-name{color:#1d2521;color:var(--ink);font-size:15px;font-weight:700}.game-tile-badge{background:#d4af371f;border:1px solid #d4af37;border:1px solid var(--gold);border-radius:999px;color:#a8862a;color:var(--gold-dark);display:inline-block;font-size:11px;letter-spacing:1px;margin-top:6px;padding:2px 8px;text-transform:uppercase}.room-code-chip{align-items:center;background:#052e22;background:var(--felt-dark);border:1px solid #a8862a;border:1px solid var(--gold-dark);border-radius:12px;color:#e8c96a;color:var(--gold-light);display:inline-flex;font-size:26px;font-weight:700;gap:12px;letter-spacing:5px;padding:12px 22px}.players-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));margin-bottom:28px}.player-card{background:#fff;border:1.5px solid #e2ddce;border-radius:12px;box-shadow:0 2px 6px #0000000f;padding:16px}.player-card--me{background:#fffdf5;border-color:#d4af37;border-color:var(--gold);box-shadow:0 0 0 3px #d4af3733}.player-card-name{color:#1d2521;color:var(--ink);font-size:16px;font-weight:700;margin-bottom:6px}.player-card-status{font-size:14px}.player-card-status--ready{color:#1e7a4f;color:var(--green-btn)}.player-card-status--waiting{color:#8a9691;color:var(--muted)}.player-card-chips{color:#4b5a52;color:var(--ink-soft);font-size:14px;margin-top:6px}.game-header{color:#f2ecd9;margin-bottom:18px;text-align:center}.game-header h1{color:#e8c96a;color:var(--gold-light);font-size:30px;letter-spacing:.5px;margin:0 0 6px;text-shadow:0 2px 8px #00000080}.game-message{font-size:18px;font-style:italic;margin:0 0 4px}.game-stats{color:#f2ecd9bf;font-size:14px;letter-spacing:.5px;margin:0}.table-felt{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center}.community-label{color:#e8c96a;color:var(--gold-light);font-size:18px;font-weight:700;letter-spacing:1.5px;margin-bottom:10px;text-align:center;text-transform:uppercase}.community-cards{align-items:center;display:flex;gap:10px;justify-content:center;min-height:100px}.community-empty{color:#f2ecd98c;font-size:16px;font-style:italic}.playing-card{align-items:center;background:#fff;border:1px solid #c9c3b2;border-radius:9px;box-shadow:0 4px 10px #0000004d;display:flex;flex-direction:column;font-size:24px;font-weight:700;height:96px;justify-content:center;line-height:1.1;width:66px}.playing-card--down{background:repeating-linear-gradient(45deg,#ffffff0f 0 6px,#0000 6px 12px),linear-gradient(160deg,#24518a,#143257);border-color:#0e2540;color:#ffffffd9;font-size:30px}.playing-card .card-suit{font-size:20px}.suit-red{color:#b0302c;color:var(--red)}.suit-black{color:#1a1a1a}.seats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr);margin:26px 0;max-width:860px;width:100%}.seat{background:#051e16b8;border:1px solid #d4af3740;border-radius:12px;padding:14px;transition:border-color .2s,box-shadow .2s}.seat--active{border-color:#d4af37;border-color:var(--gold);box-shadow:0 0 0 3px #d4af3759,0 0 24px #d4af3740}.seat--dealer{outline:2px solid #faf6ecb3;outline-offset:2px}.seat-name{color:#f2ecd9;font-size:15px;font-weight:700;margin-bottom:8px}.seat-cards{align-items:center;display:flex;gap:5px;margin-bottom:8px;min-height:96px}.seat-folded{color:#8a9691;color:var(--muted);font-size:14px;font-style:italic}.seat-info{color:#f2ecd9d9;font-size:13.5px}.my-bar{background:#051e16d9;border:1px solid #d4af3766;border-radius:14px;border-radius:var(--radius);box-shadow:0 24px 48px -12px #00000073;box-shadow:var(--shadow-card);margin-top:18px;padding:18px}.my-bar--active{border-color:#d4af37;border-color:var(--gold);box-shadow:0 0 0 3px #d4af3759,0 24px 48px -12px #00000073;box-shadow:0 0 0 3px #d4af3759,var(--shadow-card)}.my-bar-name{color:#e8c96a;color:var(--gold-light);font-size:16px;font-weight:700;margin-bottom:10px}.my-bar-row{align-items:center;display:flex;flex-wrap:wrap;gap:18px}.my-bar-cards{display:flex;gap:8px}.my-bar-info{color:#f2ecd9;flex:1 1;font-size:15px;min-width:160px}.my-bar-actions{display:flex;flex-wrap:wrap;gap:8px}.waiting-note{color:#f2ecd9bf;font-style:italic}.bj-dealer{margin-bottom:10px}.hand-total{background:#d4af372e;border:1px solid #a8862a;border:1px solid var(--gold-dark);color:#e8c96a;color:var(--gold-light);font-size:13px;letter-spacing:.5px}.hand-total,.result-badge{border-radius:999px;display:inline-block;font-weight:700;padding:2px 10px}.result-badge{font-size:11px;letter-spacing:1.5px;vertical-align:middle}.result-badge--win{background:#27935f40;border:1px solid #27935f;color:#6fd7a3}.result-badge--lose{background:#b0302c40;border:1px solid #b0302c;border:1px solid var(--red);color:#e89a97}.result-badge--push{background:#8a969140;border:1px solid #8a9691;border:1px solid var(--muted);color:#c3ccc8}.result-badge--blackjack{background:linear-gradient(180deg,#e8c96a,#a8862a);background:linear-gradient(180deg,var(--gold-light),var(--gold-dark));border:1px solid #a8862a;border:1px solid var(--gold-dark);color:#2b2005}.spades-scores{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-bottom:14px}.team-panel{background:#051e16b8;border:1px solid #d4af3740;border-radius:12px;min-width:240px;padding:10px 18px;text-align:center}.team-panel--mine{border-color:#d4af37;border-color:var(--gold)}.team-panel-title{color:#f2ecd9;font-size:14px;font-weight:700;margin-bottom:4px}.team-panel-score{color:#e8c96a;color:var(--gold-light);font-size:26px;font-weight:700;line-height:1.1;margin-bottom:4px}.spades-table{max-width:820px;width:100%}.spades-table-top{display:flex;justify-content:center;margin-bottom:14px}.spades-table-mid{grid-gap:16px;align-items:center;display:grid;gap:16px;grid-template-columns:1fr auto 1fr}.seat--compact{max-width:220px;width:100%}.trick-grid{grid-gap:6px;background:#0000002e;border:1px solid #d4af3733;border-radius:16px;display:grid;gap:6px;grid-template-areas:". top ." "left . right" ". bottom .";min-height:260px;min-width:240px;padding:10px;place-items:center}.trick-area-top{grid-area:top}.trick-area-left{grid-area:left}.trick-area-right{grid-area:right}.trick-area-bottom{grid-area:bottom}.trick-slot{align-items:center;display:flex;flex-direction:column;gap:4px}.trick-slot-empty{border:1.5px dashed #f2ecd940;border-radius:8px;height:76px;width:52px}.trick-slot-label{color:#f2ecd9a6;font-size:11.5px}.playing-card--sm{border-radius:7px;font-size:19px;height:76px;width:52px}.playing-card--sm .card-suit{font-size:16px}.hand-cards{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;padding-top:4px}.hand-card{background:none;border:none;cursor:pointer;padding:0;transition:transform .12s}.hand-card:hover:not(:disabled){transform:translateY(-8px)}.hand-card:disabled{cursor:not-allowed}.hand-card:disabled .playing-card{opacity:.55}.bid-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.score-summary{background:#051e16d9;border:1px solid #d4af3766;border-radius:14px;border-radius:var(--radius);box-shadow:0 24px 48px -12px #00000073;box-shadow:var(--shadow-card);max-width:560px;padding:24px 30px;width:100%}.score-summary-team{margin-bottom:14px}.score-summary-head{color:#e8c96a;color:var(--gold-light);font-size:15px;font-weight:700;margin-bottom:4px}.score-summary-note{color:#f2ecd9d9;font-size:14px;padding-left:12px}.score-summary-winner{color:#e8c96a;color:var(--gold-light);font-size:22px;font-weight:700;margin-top:12px;text-align:center}@media (max-width:720px){.panel{padding:26px 20px}.seats-grid{grid-template-columns:repeat(2,1fr)}.game-grid{grid-template-columns:1fr}}
/*# sourceMappingURL=main.0d15c2b4.css.map*/