:root{--buncss-light:initial;--buncss-dark: ;color-scheme:light dark;--bg:var(--buncss-light,#f4f1fb)var(--buncss-dark,#14102a);--bg-card:var(--buncss-light,#fff)var(--buncss-dark,#1f1a3d);--bg-raised:var(--buncss-light,#e9e4f7)var(--buncss-dark,#2a2352);--text:var(--buncss-light,#241b45)var(--buncss-dark,#efeaff);--text-dim:var(--buncss-light,#6b6390)var(--buncss-dark,#a79fcb);--accent:var(--buncss-light,#7c3aed)var(--buncss-dark,#8b5cf6);--accent-strong:var(--buncss-light,#6d28d9)var(--buncss-dark,#7c3aed);--good:var(--buncss-light,#059669)var(--buncss-dark,#34d399);--bad:var(--buncss-light,#dc2626)var(--buncss-dark,#f87171);--warn:var(--buncss-light,#b45309)var(--buncss-dark,#fbbf24);--border:var(--buncss-light,#d5cdeb)var(--buncss-dark,#3b3268);--suit-red:var(--buncss-light,#dc2626)var(--buncss-dark,#f87171);--crown:var(--buncss-light,#ca8a04)var(--buncss-dark,#eab308);--trump-glyph:var(--buncss-light,#e2dbf5)var(--buncss-dark,#2a2352);--trump-glyph-red:var(--buncss-light,#f5d5dd)var(--buncss-dark,#4a1d2e);--banner-warn-bg:var(--buncss-light,#fdf3d8)var(--buncss-dark,#4a3a10);--banner-warn-text:var(--buncss-light,#92400e)var(--buncss-dark,#fbbf24);--banner-error-bg:var(--buncss-light,#fde2e2)var(--buncss-dark,#4a1519);--banner-error-text:var(--buncss-light,#b91c1c)var(--buncss-dark,#f87171);--radius:12px}@media (prefers-color-scheme:dark){:root{--buncss-light: ;--buncss-dark:initial}}:root[data-theme=dark]{--buncss-light: ;--buncss-dark:initial;color-scheme:dark}:root[data-theme=light]{--buncss-light:initial;--buncss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme]){--buncss-light: ;--buncss-dark:initial;color-scheme:dark}}@media (prefers-color-scheme:light){:root:not([data-theme]){--buncss-light:initial;--buncss-dark: ;color-scheme:light}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none}input{font:inherit;color:var(--text);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);outline:none;width:100%;padding:12px 14px}input:focus{border-color:var(--accent)}.page{padding:16px 16px calc(72px + env(safe-area-inset-bottom));display:flex;position:relative;flex-direction:column;gap:16px;max-width:480px;min-height:100dvh;margin:0 auto}.page-corner{position:absolute;z-index:6;top:12px;right:12px}.centered{text-align:center;justify-content:center;align-items: center}.centered-text{text-align:center}@keyframes screen-fwd{0%{opacity:0;transform:translate(26px)}to{opacity:1;transform:none}}@keyframes screen-back{0%{opacity:0;transform:translate(-26px)}to{opacity:1;transform:none}}.screen-fwd{animation:screen-fwd .23s cubic-bezier(.2,.7,.3,1)}.screen-back{animation:screen-back .23s cubic-bezier(.2,.7,.3,1)}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.stagger{animation:rise-in .24s cubic-bezier(.2,.7,.3,1)both;animation-delay:calc(var(--i,0)*45ms)}@keyframes banner-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.drawer-backdrop{position:fixed;z-index:1;inset:0}.header-drawer{position:absolute;display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);animation:pop-in .14s ease-out;z-index:2;flex-direction:column;gap:2px;min-width:230px;padding:6px;top:calc(100% - 4px);right:0;box-shadow:0 12px 32px #00000059}.drawer-item{display:flex;color:var(--text);text-align:left;border-radius:8px;align-items: center;gap:10px;width:100%;padding:11px 12px;font-size:.95rem}.drawer-item:active{background:var(--bg-raised)}.drawer-item.danger{color:var(--bad)}.modal.diag{max-width:420px}.diag-status{margin:0 0 10px;padding-left:18px;font-size:.9rem}.diag-log{overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:8px;max-height:40vh;padding:8px 10px;font-family:ui-monospace,monospace;font-size:.75rem}.diag-log p{overflow-wrap:anywhere;margin:2px 0}.diag-time{color:var(--text-dim)}.banner{animation:banner-in .2s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:none}}.modal-backdrop{animation:fade-in .16s ease-out}.modal{animation:pop-in .2s cubic-bezier(.2,.7,.3,1)}@keyframes trump-in{0%{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}.trump-bg{animation:trump-in .5s ease-out}@keyframes done-flash{0%{background:#34d39929}}.status-list li.done{animation:done-flash .5s ease-out}.btn,.numpad-btn,.trump-big{transition:transform .1s,background .12s}.btn:active:not(:disabled),.trump-big:active{transform:scale(.98)}.numpad-btn:active:not(:disabled){transform:scale(.92)}.tabbar button{transition:color .15s}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}}.home-hero{text-align:center;margin-top:6vh}.hero-logo{display:flex;justify-content:center;margin-bottom:10px}.home-hero h1{margin:0;font-size:2.6rem}.subtitle{color:var(--text-dim);margin:4px 0 0}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.rejoin-card svg{vertical-align:-.125em;margin-right:2px}.history-list span:first-child svg,.stats-section span:first-child svg{vertical-align:-.125em}.stats-tabs button{padding:6px 8px;font-size:.9rem}.stats-tabs button:disabled{opacity:.35}.stats-section .stats-tabs{position:relative;z-index:1;border:1px solid var(--border);border-radius:var(--radius)var(--radius)0 0;overflow:hidden;border-bottom:none;gap:0;margin-bottom:-9px}.segmented.stats-tabs button{border:none;border-bottom:1px solid var(--border);background:var(--bg-raised);border-radius:0}.segmented.stats-tabs button+button{border-left:1px solid var(--border)}.segmented.stats-tabs button.on{background:var(--bg-card);color:var(--accent);border-bottom-color:#0000}.stats-section .card{border-top-left-radius:0;border-top-right-radius:0}.stats-row{display:flex;flex-direction:column;gap:6px}.stats-head{display:flex;align-items: center;gap:8px}.stats-name{flex:1}.stats-wins{display:inline-flex;align-items: center;gap:5px;font-weight:600}.stats-nums,.stats-places{display:flex;color:var(--text-dim);flex-wrap:wrap;gap:4px 14px;font-size:.8rem}.stats-nums strong,.stats-places strong{color:var(--text)}.stats-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.85rem}.stats-table th,.stats-table td{text-align:center;color:var(--text);padding:5px 4px}.stats-table th:first-child,.stats-table td:first-child{text-align:left;color:var(--text-dim);white-space:nowrap;width:7.6em;font-weight:400}.stats-table td:first-child svg{vertical-align:-.125em}.stats-table tbody tr{border-top:1px solid var(--border)}.stats-table thead th{vertical-align:bottom;padding-bottom:8px;font-weight:600}.stats-table thead th .avatar{display:block;margin:0 auto 3px}.stats-table thead th span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.final-panel{display:flex;flex-direction:column;gap:12px}.final-panel h2{margin:0}.stack>.scoreboard,.stack>.stats-section{margin-top:22px}.score-chart{position:relative}.score-chart svg{display:block}.chart-zero{stroke:var(--border);stroke-dasharray:3 3}.chart-label{fill:var(--text-dim);font-family:ui-monospace,monospace;font-size:9px}.chart-avatar{position:absolute;width:22px;height:22px;transform:translate(4px,-50%)}.history-row{display:flex;text-align:left;color:var(--text);align-items: center;gap:10px;width:100%}.history-when{flex:1;font-weight:600}.history-size{color:var(--text-dim);font-size:.8rem}.history-winner{display:inline-flex;align-items: center;gap:6px}.avatar-sm{width:20px;height:20px}.build-tag{text-align:center;color:var(--text-dim);opacity:.7;margin-top:auto;padding-top:18px;font-size:.7rem}.rejoin-card{text-align:center;border-color:var(--accent);font-size:1.05rem}.stack{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:8px}.field>span{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:.8rem}.btn{display:block;border-radius:var(--radius);background:var(--bg-raised);border:1px solid var(--border);width:100%;padding:14px;font-size:1.05rem;font-weight:600}.btn.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn.primary:active{background:var(--accent)}.btn.ghost{background:0 0}.btn.small{width:auto;margin:0 auto;padding:8px 14px;font-size:.9rem}.btn:disabled{opacity:.45;cursor:default}.segmented{display:flex;gap:8px}.segmented button{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);display:flex;flex-direction:column;flex:1;align-items: center;gap:2px;padding:10px 8px;font-weight:600}.segmented button small{color:var(--text-dim);font-size:.7rem;font-weight:400}.segmented button.on{border-color:var(--accent);background:var(--bg-raised)}.segmented button:disabled{opacity:.7;cursor:default}.code-input{text-align:center;letter-spacing:.4em;text-transform:uppercase;font-family:ui-monospace,monospace;font-size:1.8rem}.error{color:var(--bad);text-align:center}.hint{color:var(--text-dim);margin:0;font-size:.85rem}.page.game{padding-top:0}.game-header{display:flex;position:sticky;background:var(--bg);z-index:5;align-items: center;gap:10px;padding:8px 0;top:0}.home-link{font-size:1.4rem}.header-round{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;font-size:.95rem;font-weight:600}.header-round small{color:var(--text-dim);font-weight:500}.header-round .sep{color:var(--text-dim);margin:0 7px}.header-round .suit-glyph{font-weight:700}.header-round .suit-hearts,.header-round .suit-diamonds{color:var(--suit-red)}.room-code{letter-spacing:.2em;color:var(--accent);flex:1;font-family:ui-monospace,monospace;font-size:1.1rem;font-weight:700}.theme-toggle,.undo-btn{display:flex;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);flex-shrink:0;justify-content:center;align-items: center;width:38px;height:38px;font-size:1.05rem}.undo-btn{font-size:1.2rem}.banner{border-radius:var(--radius);padding:10px 14px;font-size:.95rem}.banner.warn{background:var(--banner-warn-bg);color:var(--banner-warn-text)}.error-banner{background:var(--banner-error-bg);color:var(--banner-error-text)}.game-main{display:flex;position:relative;z-index:1;flex-direction:column;flex:1;gap:14px}.game-main.over-trump{opacity:.75}.trump-bg{position:fixed;display:flex;color:var(--trump-glyph);z-index:0;pointer-events:none;user-select:none;justify-content:center;align-items: center;font-size:min(72vh,88vw);line-height:1;inset:0}.trump-bg.suit-hearts,.trump-bg.suit-diamonds{color:var(--trump-glyph-red)}.tabbar{position:fixed;display:flex;background:var(--bg-card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:5;max-width:480px;margin:0 auto;bottom:0;left:0;right:0}.tabbar button{color:var(--text-dim);flex:1;padding:14px;font-weight:600}.tabbar button.on{color:var(--text);border-top:2px solid var(--accent)}.lobby{display:flex;flex-direction:column;gap:32px}.room-card{text-align:center}.room-card p{color:var(--text-dim);text-transform:uppercase;margin:0;font-size:.8rem}.big-code{letter-spacing:.3em;margin:6px 0;font-family:ui-monospace,monospace;font-size:3rem;font-weight:800}.player-list,.status-list,.ranking{list-style:none;display:flex;flex-direction:column;gap:8px;margin:0;padding:0}.player-row{display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:left;justify-content:space-between;align-items: center;width:100%;padding:12px 14px}.player-row.dealer{border-color:var(--accent)}.player-row:disabled{cursor:default}.player-tag{display:inline-flex;align-items: center;gap:8px}.player-tag.offline{opacity:.55}.avatar{object-fit:cover;border:1.5px solid var(--border);border-radius:50%;flex-shrink:0;width:24px;height:24px}.player-tag .avatar{border-color:var(--good)}.player-tag.offline .avatar{filter:grayscale(1);border-color:var(--border)}.account-chip{display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;align-self: center;align-items: center;gap:10px;padding:8px 8px 8px 12px}.account-chip .avatar{border-color:var(--accent);width:28px;height:28px}.account-name{font-weight:600}.signin-block{display:flex;flex-direction:column;align-items: center;gap:8px;margin-top:8px}.google-btn{display:flex;--buncss-light:initial;--buncss-dark: ;color-scheme:light;justify-content:center;min-height:44px}.crown{display:inline-flex;color:var(--crown);flex-shrink:0;justify-content:center;align-items: center;width:1.5em}.crown-inline{color:var(--crown);vertical-align:-.125em}.presence{display:inline-flex;color:var(--good);align-items: center}.player-tag.offline .presence{color:var(--text-dim)}.tag-suffix{color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:1px 6px;font-size:.7rem}.suit-icon{display:block}.round-meta{color:var(--text-dim);margin:4px 0 0}.numpad{display:grid;grid-template-columns:repeat(var(--numpad-cols,6),1fr);gap:6px}.numpad.paged{grid-template-columns:repeat(var(--numpad-cols,6),1fr)32px}.numpad-pager{grid-column:-2;grid-row:1/span 2;display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);justify-content:center;align-items: center}.numpad-pager:active{background:var(--bg-raised)}.numpad-btn.filler{visibility:hidden;pointer-events:none}.numpad-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);place-self: center;width:85%;height:46px;font-size:1.3rem;font-weight:700}.numpad-btn.on{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.status-list li{display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items: center;padding:10px 14px}.status-list li.done{border-color:var(--good)}.status-mark{color:var(--text-dim)}.status-list li.done .status-mark{color:var(--good)}.hint-row{color:var(--text-dim);justify-content:center;font-size:.85rem}.bid-took{color:var(--text-dim)}.bid-took strong{color:var(--text)}.trump-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.trump-big{aspect-ratio:1;display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);justify-content:center;align-items: center;font-size:2.6rem}.trump-big:active{background:var(--bg-raised)}.trump-big.trump-none{grid-column:1/-1;aspect-ratio:auto;padding:16px;font-size:1.1rem;font-weight:600}.trump-big.suit-hearts,.trump-big.suit-diamonds{color:var(--suit-red)}.waiting-note{text-align:center;color:var(--text-dim);padding:24px 8px;font-size:1.05rem}.waiting-note strong{color:var(--text)}.modal-text{color:var(--text-dim);margin:0}.tally-table,.score-table{border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;width:100%}.tally-table th,.tally-table td,.score-table th,.score-table td{text-align:center;border-bottom:1px solid var(--border);padding:10px 8px}.tally-table td:first-child{text-align:left}.tally-table th{text-transform:uppercase;color:var(--text-dim);font-size:.75rem}.pos{color:var(--good)}.neg{color:var(--bad)}.scoreboard{display:flex;flex-direction:column;gap:32px}.game-main:has(>.screen>.scoreboard){margin-top:-16px}.score-block{display:flex;flex-direction:column;gap:10px}.score-table{table-layout:fixed;overflow:visible;background:0 0}.score-table th,.score-table td{background:var(--bg-card)}.score-table tr.current td{background:var(--bg-raised)}.score-table th{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.score-table thead th{position:sticky;background:var(--bg-raised);z-index:2;top:54px}.score-table thead th:first-child{border-top-left-radius:var(--radius)}.score-table thead th:last-child{border-top-right-radius:var(--radius)}.score-table tfoot td:first-child{border-bottom-left-radius:var(--radius)}.score-table tfoot td:last-child{border-bottom-right-radius:var(--radius)}.score-table tfoot td{position:sticky;bottom:calc(env(safe-area-inset-bottom) + 50px);border-top:1px solid var(--border);background:var(--bg-raised);z-index:2}.page:not(:has(.tabbar)) .score-table tfoot td{position:static}.score-table .rnd{color:var(--text-dim);width:2.2em}.score-table td{font-size:.9rem}.cell-bid{display:block;color:var(--text-dim);font-size:.7rem}.cell-score{display:block;font-weight:600}.cell-pending{color:var(--text-dim)}.score-table tfoot td{border-bottom:none;font-size:1.05rem}.player-li{display:flex;align-items: center;gap:6px}.player-li .player-row{flex:1}.player-li.dragging{position:relative;z-index:3}.player-li.dragging .player-row,.player-li.dragging .drag-handle{border-color:var(--accent);box-shadow:0 6px 18px #00000073}.player-row-wrap{position:relative;display:flex;flex:1}.player-row-wrap .player-row{width:100%}.player-row.has-kick{padding-right:48px}.kick-inline{position:absolute;display:flex;color:var(--bad);border-radius:50%;justify-content:center;align-items: center;width:34px;height:34px;font-size:1rem;top:50%;right:6px;transform:translateY(-50%)}.kick-inline:active{background:#f8717126}.drag-handle{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);display:flex;color:var(--text-dim);cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none;justify-content:center;align-items: center;width:40px;height:40px;font-size:1.2rem}.player-li.dragging .drag-handle{cursor:grabbing}.status-row{display:flex;flex-direction:column;gap:8px;width:100%}.status-row-main{display:flex;text-align:left;justify-content:space-between;align-items: center;width:100%;padding:0}.status-row-main:disabled{cursor:default}.host-entry{border-top:1px dashed var(--border);padding-top:4px}.host-entry .hint{margin-bottom:8px}.your-bid-card{font-size:1.05rem}.your-bid-card .hint{display:block;margin-top:4px}button.your-bid-card.peekable{text-align:left;color:var(--text);width:100%}.peek-icon{display:inline-flex;vertical-align:-.125em;color:var(--text-dim);margin-left:8px}.peek-toggle{display:inline-flex;border:1px solid var(--border);background:var(--bg-card);color:var(--text-dim);border-radius:999px;align-items: center;gap:4px;margin-left:8px;padding:2px 8px;font-size:.75rem}.score-table tr.editable{cursor:pointer}.btn.danger{color:var(--bad)}.modal-backdrop{position:fixed;display:flex;z-index:20;background:#0009;justify-content:center;align-items: center;padding:16px;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow-y:auto;display:flex;flex-direction:column;gap:12px;width:100%;max-width:420px;max-height:85dvh;padding:20px}.modal h3{margin:0}.edit-table{border-collapse:collapse;width:100%}.edit-table th{text-transform:uppercase;color:var(--text-dim);text-align:left;font-size:.75rem}.edit-table td{padding:6px 4px}.edit-table input{text-align:center;width:72px;padding:10px}.modal-actions{display:flex;gap:10px}.modal-actions .btn{flex:1}.ranking li{display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items: center;gap:12px;padding:12px 16px;font-size:1.1rem}.ranking li.winner{border-color:var(--warn);background:var(--bg-raised)}.medal{min-width:1.6em;font-size:1.3rem}.medal-icon{vertical-align:-.15em}.medal-1{color:#eab308}.medal-2{color:#9ca3af}.medal-3{color:#b45309}.rank-name{flex:1;font-weight:600}.ranking .avatar{border-color:var(--border);width:28px;height:28px}.rank-score{font-weight:800}
