:root{color-scheme:dark;--bg:#111d18;--surface:#1c2b24;--line:#374b3e;--ink:#f5eee0;--muted:#a6baaa;--gold:#f2cf87;--mint:#b9e6ac;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-width:0;background:radial-gradient(ellipse at 50% 10%,#20392c,transparent 60%)}
main{max-width:560px;margin:auto;padding:max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
h1,h2,p{margin:0} h1{font-size:23px;letter-spacing:.06em}h2{font-size:20px;margin-bottom:12px}
button,input{font:inherit;min-height:44px;border-radius:10px}
button{border:1px solid var(--line);background:#273a30;color:var(--ink);padding:8px 12px;cursor:pointer;font-size:14px;font-weight:650;touch-action:manipulation}
button:disabled{opacity:.42;cursor:default}
button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.primary{background:var(--gold);color:#292215;border-color:var(--gold)}
.subtle{background:transparent}
.danger{color:#ffc5b3}
.mast{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.club-mark{display:grid;place-items:center;width:44px;height:44px;border:1px solid #816d46;border-radius:13px;color:var(--gold);background:#25392c;font:26px Georgia,serif}
.eyebrow{color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.17em;margin-bottom:3px}
.connection{margin-left:auto;font-size:11px;white-space:nowrap;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:6px 8px}
.connection::before{content:'●';color:var(--gold);margin-right:5px}
.connection.live::before{color:var(--mint)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:14px}
.login{margin-top:36px;padding:22px}.login p,dialog p{color:var(--muted);line-height:1.6}
label{display:grid;gap:6px;font-size:14px;margin:15px 0}
input{background:#111e17;color:var(--ink);width:100%;border:1px solid var(--line);padding:10px 12px;font-size:16px}
.login button,dialog form button{width:100%}
.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;background:#14241a;border:1px solid var(--line);border-radius:13px;padding:3px;margin-bottom:14px}
.tabs button{background:transparent;border-color:transparent;color:var(--muted)}
.tabs [aria-current]{background:#304539;color:var(--ink)}
.table-heading{display:flex;justify-content:space-between;gap:8px;margin:0 1px 8px;color:var(--muted);font-size:11px;letter-spacing:.05em}
.table-heading span:first-child{color:var(--gold)}
.felt{position:relative;border-radius:32px;padding:12px 8px;display:grid;gap:9px;border:2px solid #807249;background:radial-gradient(ellipse,#28694d,#1c503b 68%,#174433);box-shadow:inset 0 0 0 4px #184431,0 7px 20px #0a1411a0}
.seat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;z-index:1}
.seat{min-width:0;min-height:78px;padding:5px 3px 6px;text-align:center;border:1px solid #59816b;background:#173f31;border-radius:12px}
.seat.current{border-color:var(--gold);box-shadow:0 0 0 1px #f2cf8755;background:#234c39}
.seat.folded{background:#173c2e;color:var(--muted)}
.seat-name{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seat-info{display:flex;align-items:center;justify-content:center;gap:4px;font-size:10px;color:#d9e7d9;margin-top:4px;white-space:nowrap;min-height:18px}
.mode{display:inline-flex;align-items:center;gap:3px;border-radius:5px;padding:2px 5px;font-size:10px;line-height:1.25;font-weight:800;white-space:nowrap;vertical-align:middle}
.mode-open{color:#251c0d;background:#f2cf87;border:1px solid #f2cf87}
.mode-blind{color:#e2edff;background:#263d56;border:1px solid #95b7db}
.mode-symbol{font-size:9px;line-height:1}
.hand-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hand-title .eyebrow{margin-bottom:0}
.hand-title .mode{font-size:12px;padding:3px 7px}
#my-mode:empty{display:none}
.seat.folded .back{opacity:.35}
.cards{display:flex;align-items:center;justify-content:center;gap:3px;margin-top:5px}
.card{width:19px;height:25px;border-radius:4px;display:grid;place-items:center;background:#f6edd8;color:#222923;font:700 10px Georgia,serif;letter-spacing:-.06em;border:1px solid #dfd4b6;white-space:nowrap}
.card.red{color:#a12c32}
.card.back{background:repeating-linear-gradient(135deg,#326247,#326247 3px,#3c7052 3px,#3c7052 5px);color:#e0cc99;border-color:#8aa28a}
.cards.large{gap:5px;margin:0}.large .card{width:37px;height:48px;font-size:17px;border-radius:7px}
.pot{display:grid;justify-items:center;align-content:center;min-height:98px;margin:auto;width:74%;border-radius:50%;border:1px solid #8eab8770}
.pot span{font-size:12px;letter-spacing:.14em;color:#e5e2c5}.pot strong{font:700 35px Georgia,serif;line-height:1.08;color:var(--gold)}.pot small{color:#c9dfc9;font-size:11px;margin-top:4px}
.play-status{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 1px;min-height:58px;font-size:14px}
.muted{color:var(--muted);font-size:12px;margin-top:4px;overflow-wrap:anywhere}
.clock{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--gold)}
.hand-line{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.actions button:only-child{grid-column:1/-1}
.error{font-size:13px;color:#ffb8a4;margin:6px 0}.error:empty{display:none}
footer{color:var(--muted);font-size:11px;display:flex;align-items:center;justify-content:space-between;margin-top:8px}
footer button{border-color:transparent;background:transparent;color:var(--muted);font-size:12px}
details{border-bottom:1px solid var(--line);padding:2px 0 6px}
summary{cursor:pointer;min-height:44px;padding:12px 0;overflow-wrap:anywhere}
.line-item{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;min-height:37px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.line-item .cards{margin:0;flex:none}
.line-item b{white-space:nowrap;color:var(--gold)}
.result-note{margin-bottom:10px;padding:10px 12px}
#more{width:100%;margin-top:10px}
dialog{max-width:min(calc(100% - 28px),410px);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:16px;padding:18px}
dialog::backdrop{background:#08150dc9}dialog button{display:block;width:100%;margin-top:8px}
@media(prefers-reduced-motion:no-preference){button:active:not(:disabled){transform:translateY(1px)}}
