.sound-volume{display:flex;align-items:center;gap:8px;width:100%;min-width:0}.sound-volume-mute-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;padding:0;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}.sound-volume-mute-btn:hover{background:var(--bg-card)}.sound-volume-slider-wrap{flex:1 1 auto;min-width:0;width:100%;display:block}.sound-volume-slider{--sound-volume-track-height: 6px;--sound-volume-thumb-size: 16px;--sound-volume-fill: 100%;display:block;width:100%;height:var(--sound-volume-thumb-size);margin:0;padding:0;border:none;background:transparent;cursor:pointer;touch-action:pan-x;-webkit-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.sound-volume-slider:focus{outline:none}.sound-volume-slider:focus-visible{outline:2px solid var(--border-strong);outline-offset:2px;border-radius:2px}.sound-volume-slider::-webkit-slider-runnable-track{height:var(--sound-volume-track-height);border:none;border-radius:calc(var(--sound-volume-track-height) / 2);background:linear-gradient(to right,var(--accent) 0,var(--accent) var(--sound-volume-fill),color-mix(in srgb,var(--text-secondary) 28%,transparent) var(--sound-volume-fill))}.sound-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:var(--sound-volume-thumb-size);height:var(--sound-volume-thumb-size);margin-top:calc((var(--sound-volume-track-height) - var(--sound-volume-thumb-size)) / 2);border:2px solid var(--bg-card);border-radius:50%;background:var(--accent);box-shadow:0 1px 3px #00000038}.sound-volume-slider::-moz-range-track{height:var(--sound-volume-track-height);border:none;border-radius:calc(var(--sound-volume-track-height) / 2);background:color-mix(in srgb,var(--text-secondary) 28%,transparent)}.sound-volume-slider::-moz-range-progress{height:var(--sound-volume-track-height);border:none;border-radius:calc(var(--sound-volume-track-height) / 2);background:var(--accent)}.sound-volume-slider::-moz-range-thumb{box-sizing:border-box;width:var(--sound-volume-thumb-size);height:var(--sound-volume-thumb-size);border:2px solid var(--bg-card);border-radius:50%;background:var(--accent);box-shadow:0 1px 3px #00000038}.sound-volume-value{flex-shrink:0;min-width:2.4rem;font-size:var(--text-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-secondary);text-align:right}.sound-volume-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.confirm-modal-dialog--settings{width:min(100%,420px)}.settings-modal-body{margin-top:16px;display:flex;flex-direction:column;gap:14px}.settings-modal-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-modal-row-label{font-size:var(--text-base);font-weight:700}.settings-theme-btn{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 10px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font:inherit;font-size:var(--text-sm);font-weight:700;cursor:pointer}.settings-theme-btn:hover{background:var(--bg-card)}.settings-modal-row--sound{align-items:center}.settings-modal-row--sound .settings-modal-sound-control{flex:0 1 auto;min-width:0;width:auto;max-width:12rem}.settings-modal-row--sound .sound-volume-slider-wrap{flex:0 1 7rem;max-width:7rem;width:7rem}.app-controls--floating{position:fixed;top:12px;right:12px;z-index:50;display:flex;align-items:center;gap:8px}.app-controls--floating .app-control-btn,.app-controls--floating .settings-toggle{box-sizing:border-box;width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:2px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow)}.app-controls--floating .app-control-btn:hover,.app-controls--floating .settings-toggle:hover{background:var(--bg-secondary)}.game-header .settings-toggle,.game-header .app-control-btn{position:static;z-index:auto;box-sizing:border-box;width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:1;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);box-shadow:none;flex-shrink:0}.game-header .settings-toggle svg,.game-header .app-control-btn svg{display:block;width:18px;height:18px;flex-shrink:0}.game-header .settings-toggle:hover,.game-header .app-control-btn:hover{background:var(--bg-card)}body:has(.game-header .settings-toggle) .app-controls--floating .settings-toggle,body:has(.game-header .app-control-btn) .app-controls--floating .app-control-btn,body:has(.game-header-menu) .app-controls--floating .app-control-btn{display:none}.connection-banner-portal{position:fixed;top:0;left:0;right:0;z-index:1200;pointer-events:none}.connection-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;box-sizing:border-box;padding:12px 16px;font-family:var(--font-body);pointer-events:auto}.connection-banner-icon{flex-shrink:0;display:inline-flex}.connection-banner-body{min-width:0;text-align:left}.connection-banner-title{margin:0;font-size:var(--text-lg);font-weight:700;line-height:1.3}.connection-banner-detail{margin:4px 0 0;font-size:var(--text-base);font-weight:600;line-height:1.4;opacity:.95}.connection-banner--offline{background:var(--accent);color:var(--on-accent)}.connection-banner--connecting,.connection-banner--rejoining{background:var(--gold);color:var(--on-gold)}.connection-banner--inactive,.connection-banner--post-game{background:var(--prompt-warn-bg);color:var(--prompt-warn-text);border-bottom:2px solid var(--prompt-warn-border)}.connection-banner-spin{animation:connection-banner-spin .9s linear infinite}@keyframes connection-banner-spin{to{transform:rotate(360deg)}}.connection-banner-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;margin:0;border:none;border-radius:50%;background:#ffffff1f;color:inherit;cursor:pointer;opacity:.85;transition:background .15s,opacity .15s}.connection-banner-close:hover{background:#ffffff38;opacity:1}.connection-notice-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:grid;place-items:center;padding:16px;background:#0000008c}.connection-notice-modal{width:min(100%,420px);padding:24px;border-radius:var(--radius-md);border:var(--stroke) solid var(--border-color);background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-lg)}.connection-notice-modal h2{margin:0 0 12px;font-size:var(--text-xl);line-height:1.3}.connection-notice-modal p{margin:0 0 12px;font-size:var(--text-base);line-height:1.5;color:var(--text-secondary)}.connection-notice-hint{font-size:var(--text-sm)}.connection-notice-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px}.confirm-modal-dialog--inapp{width:min(100%,420px)}.inapp-browser-notice-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}.inapp-browser-notice-icon{flex:0 0 auto;display:grid;place-items:center;width:28px;height:28px;margin-top:2px;border-radius:50%;color:var(--prompt-warn-text);background:var(--prompt-warn-bg)}.inapp-browser-notice-title.confirm-modal-title{margin:0;padding-right:32px}.logo,.logo.home-title,.logo.lobby-title,.logo.game-title{display:inline-flex;flex-direction:column;align-items:center;line-height:1.05;font-weight:560;white-space:normal;text-transform:uppercase;overflow:visible}.logo-main{display:block;font-weight:560;letter-spacing:.02em;padding-inline:.06em .12em;overflow:visible}.logo-sub{display:block;font-size:.3em;font-weight:700;letter-spacing:.1em;margin-top:.06em;padding-inline:.04em}.logo-stripe{display:block;width:100%;height:.1em;min-height:3px;margin-top:.22em;background:var(--color-stripe)}.logo-zh{font-family:var(--font-logo-zh);font-weight:700;font-size:.28em;line-height:1.25;letter-spacing:.14em;text-transform:none;margin-top:.32em;padding-left:.14em;color:var(--text-secondary);max-width:18em;text-align:center}.home-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.home-backdrop-grid{position:absolute;top:12%;right:8%;bottom:12%;left:8%;opacity:.07;background-image:linear-gradient(color-mix(in srgb,var(--border-color) 55%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--border-color) 55%,transparent) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 70% 62% at 50% 42%,#000 20%,transparent 78%);mask-image:radial-gradient(ellipse 70% 62% at 50% 42%,#000 20%,transparent 78%)}.home-backdrop-card{position:absolute;width:min(30vw,176px);aspect-ratio:5 / 7;border-radius:14px;border:3px solid color-mix(in srgb,var(--border-color) 18%,transparent);box-shadow:inset 0 0 0 11px color-mix(in srgb,var(--card-face) 22%,transparent);opacity:.2}.home-backdrop-card--red{background:var(--uno-red);top:6%;left:max(-72px,-8vw);transform:rotate(-22deg)}.home-backdrop-card--yellow{background:var(--uno-yellow);top:58%;right:max(-80px,-10vw);transform:rotate(16deg)}.home-backdrop-card--green{background:var(--uno-green);bottom:-8%;left:8%;transform:rotate(12deg)}.home-backdrop-card--blue{background:var(--uno-blue);top:-6%;right:12%;transform:rotate(24deg)}[data-theme=dark] .home-backdrop-card{opacity:.14}[data-theme=dark] .home-backdrop-grid{opacity:.05}.home>*:not(.home-backdrop),.lobby>*:not(.home-backdrop),.game-room--loading>*:not(.home-backdrop){position:relative;z-index:1}.home{--home-pad-top: 16vh;--home-pad-x: 24px;--home-pad-bottom: 5vh;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:var(--home-pad-top) var(--home-pad-x) var(--home-pad-bottom);gap:24px}.home-hero{text-align:center}.home-siblings-link{text-decoration:none;color:var(--text-secondary)}.home-siblings-link:hover{color:var(--text-primary)}.home-title{font-size:56px;margin:0}.home-actions{display:flex;flex-direction:column;gap:10px;width:100%;max-width:320px}.home-actions>.btn{width:100%}.home-footer{margin-top:auto;width:100%;max-width:320px;padding-top:8px;text-align:center}.home-footer-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.2rem .35rem}.home-footer-nav-item{display:inline-flex;align-items:center;gap:.35rem}.home-footer-nav-sep{color:color-mix(in srgb,var(--text-secondary) 55%,transparent);font-size:var(--text-sm);line-height:1;-webkit-user-select:none;user-select:none}.home-footer-nav-link{font-size:var(--text-sm);font-weight:600;line-height:1.2;letter-spacing:.03em;color:var(--text-secondary);text-decoration:none;padding:.2rem .05rem;transition:color .15s ease}.home-footer-nav-link:hover{color:var(--text-primary)}.home-footer-nav-link:focus-visible{outline:2px solid var(--border-strong);outline-offset:2px;border-radius:2px}button.home-footer-nav-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;margin:0;cursor:pointer;font-family:inherit}.home-form{display:flex;flex-direction:column;gap:12px;width:100%}.home-panel .home-form{max-width:none}.home-form input{width:100%}.home-form-layout{display:flex;flex-direction:column;gap:24px;width:100%;max-width:320px}.home-form-layout .home-panel,.home-form-layout .home-form-buttons{max-width:none;width:100%}.home-form-buttons{display:flex;flex-direction:column;gap:10px;width:100%;max-width:320px}.home-form-buttons.btn-row{flex-direction:column}.home-form-buttons.btn-row>.btn,.home-form-buttons.btn-row>button{width:100%;flex:none;min-width:0}.home-error{color:var(--accent);font-size:var(--text-base);text-align:center}.home-panel{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px}.home-panel-heading{font-size:var(--text-3xl);font-weight:700;text-align:center;margin:0}.home-empty{text-align:center;color:var(--text-secondary);padding:14px 16px;margin:0;border:2px solid var(--border-color);border-radius:var(--radius);background:var(--bg-card)}.home--wide{--home-content-width: min(100%, 560px)}.home--info{--home-pad-top: 12vh;--home-pad-bottom: 8vh;min-height:auto}.home--wide .home-panel,.home--wide .home-form-buttons{max-width:var(--home-content-width)}.home--wide .home-form-buttons.btn-row{flex-direction:row}.home--wide .home-form-buttons.btn-row>.btn,.home--wide .home-form-buttons.btn-row>button{flex:1;width:auto}@media(max-width:600px){.home{--home-pad-top: 16vh;--home-pad-x: 20px;--home-pad-bottom: 5vh;gap:20px}.home--wide .home-form-buttons.btn-row{flex-direction:column}.home--wide .home-form-buttons.btn-row>.btn,.home--wide .home-form-buttons.btn-row>button{flex:none;width:100%}}.browse-list{list-style:none;display:flex;flex-direction:column;gap:10px}.browse-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card)}.browse-card-main{display:flex;flex-direction:column;gap:8px;min-width:0}.browse-card-top{display:flex;align-items:center;gap:8px}.browse-card-body{display:flex;align-items:center;gap:12px;min-width:0}.browse-card-left{flex:1;min-width:0}.browse-slots{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.browse-slot{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;flex-shrink:0}.browse-slot--empty:before{content:"";display:block;width:10px;height:10px;border-radius:50%;background:var(--text-secondary);opacity:.5}.browse-slot--filled{color:var(--text-secondary);line-height:0}.browse-slot--bot{color:var(--text-secondary)}.browse-card-side{flex-shrink:0;display:flex;flex-direction:column;justify-content:center;min-width:6.5rem;max-width:12.5rem;padding:6px 8px;background:color-mix(in srgb,var(--bg-secondary) 70%,transparent);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.browse-win-condition{display:flex;align-items:center;justify-content:flex-end;gap:6px;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);line-height:1.25}.browse-win-condition span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browse-room-id{font-size:var(--text-xl);font-weight:700;letter-spacing:.08em}.browse-status{font-size:var(--text-sm);font-weight:700;padding:2px 8px;border-radius:999px;background:var(--bg-secondary)}.browse-status--lobby{color:var(--prompt-action-text);border:1px solid var(--prompt-action-border)}.browse-status--playing{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border-color))}.browse-status--ended{color:var(--text-secondary);border:1px solid var(--border-color)}.browse-card-actions{display:flex;flex-direction:row;align-items:center;align-self:center;gap:8px;flex:0 0 auto}.browse-card-actions .btn.browse-icon-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;min-width:34px;max-width:34px;min-height:34px;max-height:34px;padding:0;margin:0;line-height:0;font-size:0;aspect-ratio:1;align-self:center;overflow:hidden}.browse-icon-btn svg{display:block;flex-shrink:0}.browse-full,.browse-no-spectate{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);text-align:center}@media(max-width:600px){.browse-card,.browse-card-body{flex-direction:column;align-items:stretch}.browse-card-side{max-width:none}.browse-win-condition{justify-content:flex-start}.browse-card-actions{justify-content:flex-end;align-self:stretch}}@media(max-width:400px){.browse-card-actions .btn.browse-icon-btn{flex:0 0 34px;min-height:34px;max-height:34px;padding:0}}.rejoin-list{list-style:none;display:flex;flex-direction:column;gap:10px}.rejoin-row{display:flex;align-items:stretch;gap:8px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);overflow:hidden}.rejoin-row--disabled{opacity:.7}.rejoin-row-hit{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer}.rejoin-row-hit:hover:not(:disabled),.rejoin-row-hit:active:not(:disabled){background:var(--bg-secondary)}.rejoin-row-hit:disabled{cursor:default}.rejoin-room-id{font-size:var(--text-xl);font-weight:700;letter-spacing:.08em}.rejoin-meta{font-size:var(--text-base);color:var(--text-secondary)}.rejoin-delete{align-self:center;margin-right:8px;flex-shrink:0}.home-panel--info{text-align:left}.home-panel--info .home-panel-heading{text-align:center}.info-scroll{display:flex;flex-direction:column;gap:1.25rem}.info-intro{font-size:var(--text-base);line-height:1.65;color:var(--text-primary);margin:0}.info-section{margin:0}.info-section-title{font-size:var(--text-xl);font-weight:700;margin:0 0 .5rem;color:var(--text-primary)}.info-list{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.45rem}.info-list li{font-size:var(--text-base);line-height:1.6;color:var(--text-primary)}.info-list li::marker{color:var(--text-secondary)}.info-footer-note{margin:.25rem 0 0;padding-top:.85rem;border-top:1px dashed color-mix(in srgb,var(--border-color) 55%,transparent);font-size:var(--text-base);line-height:1.55;color:var(--text-secondary);text-align:center}.info-footer-link{color:var(--text-primary);font-weight:600;text-decoration:underline;text-underline-offset:2px}.info-footer-link:hover{color:var(--accent)}button.info-footer-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;margin:0;padding:0;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;text-decoration:underline;text-underline-offset:2px}.info-changelog-entry{margin:0;padding-bottom:.85rem;border-bottom:1px dashed color-mix(in srgb,var(--border-color) 45%,transparent)}.info-changelog-entry:last-of-type{border-bottom:none;padding-bottom:0}.info-changelog-date{display:block;font-size:var(--text-lg);font-weight:700;letter-spacing:.04em;color:var(--text-secondary);margin:0 0 .45rem}.info-version{margin:.5rem 0 0;padding-top:.85rem;border-top:1px dashed color-mix(in srgb,var(--border-color) 55%,transparent);font-size:var(--text-base);line-height:1.55;color:var(--text-secondary);text-align:center}.info-scroll a{color:var(--text-primary);font-weight:600;text-decoration:underline;text-underline-offset:2px}.info-scroll a:hover{color:var(--accent)}button.info-inline-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;margin:0;padding:0;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:600;line-height:inherit;color:var(--text-primary);text-decoration:underline;text-underline-offset:2px}button.info-inline-link:hover{color:var(--accent)}.info-section .info-intro+.info-intro{margin-top:.65rem}.info-section .info-intro+.info-list,.info-section .info-section-title+.info-list{margin-top:.35rem}.home-panel--guide .info-scroll{gap:1.75rem}.switch{--switch-width: 44px;--switch-height: 24px;--switch-thumb-size: 18px;--switch-padding: 2px;position:relative;display:inline-flex;align-items:center;justify-content:flex-start;flex-shrink:0;box-sizing:border-box;width:var(--switch-width);height:var(--switch-height);padding:0;border:var(--stroke) solid var(--border-color);border-radius:999px;background:var(--switch-track-off);cursor:pointer;transform:none;transition:background .2s ease,border-color .2s ease}.switch:not(.switch--on):hover:not(:disabled){background:var(--switch-track-off-hover)}.switch--on{background:var(--switch-track-on);border-color:var(--switch-track-on)}.switch--on:hover:not(:disabled){background:var(--switch-track-on-hover);border-color:var(--switch-track-on-hover)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch:active{transform:none}.switch:disabled{opacity:.45;cursor:not-allowed}.switch-thumb{position:absolute;top:50%;left:var(--switch-padding);width:var(--switch-thumb-size);height:var(--switch-thumb-size);border-radius:50%;background:var(--switch-thumb);box-shadow:0 1px 2px #0003;transform:translateY(-50%);transition:left .2s ease,right .2s ease,transform .2s ease;pointer-events:none}.switch--on .switch-thumb{left:auto;right:var(--switch-padding);transform:translateY(-50%)}.setting-toggle-value{display:inline-flex;align-items:center;justify-content:center;min-height:1.35rem;padding:.15rem .5rem;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;letter-spacing:.02em;line-height:1.2;white-space:nowrap;border:1px solid transparent}.setting-toggle-value--on{color:var(--success);background:color-mix(in srgb,var(--success) 18%,transparent);border-color:color-mix(in srgb,var(--success) 30%,transparent)}.setting-toggle-value--off{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 24%,transparent)}.info-tip{position:relative;display:inline-flex;flex-shrink:0}.info-tip-btn{display:inline-flex;align-items:center;justify-content:center;min-height:0;padding:0;border:none;border-radius:0;background:transparent;color:var(--text-secondary);cursor:pointer;line-height:0;font-size:inherit}.info-tip-btn:hover,.info-tip--open .info-tip-btn,.info-tip-btn:focus-visible{color:var(--accent);background:transparent;border:none;transform:none}.info-tip-btn:active{transform:none}.lobby-setting-docs-link{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary);line-height:0;text-decoration:none}.lobby-setting-docs-link:hover,.lobby-setting-docs-link:focus-visible{color:var(--accent)}.info-tip-popover{display:flex;flex-direction:column;gap:6px;z-index:1500;width:max(220px,16vw);max-width:min(280px,calc(100vw - 20px));padding:10px 12px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);box-shadow:var(--shadow);font-size:var(--text-sm);font-weight:600;line-height:1.45;color:var(--text-secondary);text-align:left;pointer-events:auto}.info-tip-popover--fixed{position:fixed}.info-tip-line{display:block}.info-tip-line+.info-tip-line{padding-top:2px}.card{position:relative;background:var(--card-face);color:var(--card-ink);border:var(--stroke) solid var(--border-color);border-radius:6px;display:flex;flex-direction:column;overflow:hidden;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .12s ease,outline .12s ease;-webkit-user-select:none;user-select:none;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media(hover:hover)and (pointer:fine){.card:hover:not(.card--disabled){transform:scale(1.06);z-index:10}}.card--selected{border-color:var(--accent);z-index:11}@media(hover:none){.card{transition:border-color .12s ease,outline .12s ease,box-shadow .12s ease}.card--selected{outline:2px solid var(--accent);outline-offset:-2px;box-shadow:none}}.card--disabled{opacity:.5;cursor:not-allowed}.card:has(.card-info-wrap--open),.card:has(.card-info-btn:focus-visible){overflow:visible;z-index:15}@media(hover:hover)and (pointer:fine){.card:has(.card-info-wrap:hover){overflow:visible;z-index:15}.card:has(.card-info-wrap:hover):hover:not(.card--disabled),.card:has(.card-info-wrap--open):hover:not(.card--disabled){z-index:15}}.card--sm{width:88px;height:123px;--card-value-w: 38px;--card-value-h: 20px;--card-value-font: .75rem}.card--md{width:132px;height:185px;--card-value-w: 48px;--card-value-h: 26px;--card-value-font: 1rem}.card--lg{width:176px;height:246px;--card-value-w: 58px;--card-value-h: 30px;--card-value-font: 1.2rem}.card-color-bar{width:100%;height:22%;flex-shrink:0}.card-color-bar--split{display:flex}.card-color-bar__segment,.card-color-bar__half{flex:1;height:100%;border-right:1px solid var(--card-segment-border)}.card-color-bar__segment:last-child,.card-color-bar__half:last-child{border-right:none}.card-color-bar__segment--active,.card-color-bar__half--active{box-shadow:inset 0 -3px #ffffffa6}.card-color-bar--rent .card-color-bar__segment--rent{position:relative;overflow:hidden}.card-color-bar__segment-stripes{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(-45deg,transparent 0,transparent 4px,rgba(255,255,255,.32) 4px,rgba(255,255,255,.32) 8px);pointer-events:none}.card-color-switch-badge{position:absolute;bottom:4px;left:4px;z-index:1;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--card-value-bg);border:1px solid var(--card-value-border);color:var(--accent);pointer-events:none;line-height:0}.card-color-switch-badge svg{display:block}.card--md .card-color-switch-badge{width:20px;height:20px}.card--lg .card-color-switch-badge{width:22px;height:22px}.card-value{position:absolute;top:4px;right:4px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--card-value-w);height:var(--card-value-h);padding:0;background:var(--card-value-bg);border:1px solid var(--card-value-border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--card-value-font);font-weight:700;font-variant-numeric:tabular-nums;line-height:1;color:var(--card-ink);text-align:center;white-space:nowrap}.card-info-wrap{position:absolute;top:4px;left:4px;z-index:2}.card-info-btn{position:relative;top:auto;left:auto;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid var(--card-value-border);border-radius:50%;background:var(--card-value-bg);color:var(--card-ink-muted);cursor:pointer;line-height:1}.card-info-btn-mark{font-family:var(--font-body);font-size:.7rem;font-weight:700;font-style:italic;line-height:1;text-transform:none}.card--md .card-info-btn{width:20px;height:20px}.card--md .card-info-btn-mark{font-size:.78rem}.card--lg .card-info-btn{width:22px;height:22px}.card--lg .card-info-btn-mark{font-size:.85rem}.card-info-btn:hover,.card-info-wrap--open .card-info-btn{color:var(--card-ink);background:var(--card-face)}.card-info-popover{display:none;position:absolute;top:calc(100% + 4px);left:0;width:max(100%,132px);z-index:20;padding:6px 7px;border:1px solid var(--card-value-border);border-radius:var(--radius-sm);background:var(--card-face);box-shadow:var(--shadow);text-align:left;pointer-events:auto}@media(hover:hover)and (pointer:fine){.card-info-wrap:hover .card-info-popover,.card-info-btn:focus-visible+.card-info-popover{display:block}}@media(hover:none){.card-info-wrap--open .card-info-popover{display:block}}.card--md .card-info-popover{padding:7px 8px}.card--lg .card-info-popover{padding:8px 9px}.card-info-popover-title{font-family:var(--font-body);font-size:.7rem;font-weight:700;color:var(--card-ink);line-height:1.2;margin-bottom:3px}.card--md .card-info-popover-title{font-size:.78rem}.card--lg .card-info-popover-title{font-size:.85rem}.card-info-popover-text{font-family:var(--font-body);font-size:.62rem;color:var(--card-ink-muted);line-height:1.35}.card--md .card-info-popover-text{font-size:.7rem}.card--lg .card-info-popover-text{font-size:.76rem}.card-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 5px;text-align:center;gap:3px;overflow:hidden;min-height:0}.card-icon{display:flex;align-items:center;justify-content:center;color:var(--card-ink-muted);flex-shrink:0;line-height:0}.card-icon svg{display:block}.card--sm .card-icon{margin-bottom:1px}.card--money .card-icon{color:var(--gold)}.card--rent{border-color:color-mix(in srgb,var(--rent-accent) 50%,var(--border-color));background:color-mix(in srgb,var(--rent-accent) 7%,var(--card-face))}.card--rent .card-icon{color:var(--rent-accent)}.card--rent .card-type{color:var(--rent-accent);background:color-mix(in srgb,var(--rent-accent) 14%,transparent);border-top-color:color-mix(in srgb,var(--rent-accent) 28%,var(--card-divider))}.card-name{font-family:var(--font-body);font-weight:700;font-size:.85rem;color:var(--card-ink);line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card--md .card-name{font-size:1.05rem}.card--lg .card-name{font-size:1.3rem}.card-type{font-family:var(--font-body);font-size:.7rem;font-weight:700;text-align:center;padding:3px 0 5px;color:var(--card-ink-subtle);border-top:1px solid var(--card-divider)}.card--md .card-type{font-size:.8rem;padding:4px 0 6px}.card--lg .card-type{font-size:.95rem;padding:5px 0 7px}.card--back{background:var(--card-back)}.card-back-pattern{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(255,255,255,.1) 6px,rgba(255,255,255,.1) 12px)}.card-back-icon{display:flex;align-items:center;justify-content:center;color:#ffffffd9;line-height:0}.card-back-icon svg{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.card-back-text{font-size:1rem;font-weight:400;color:#fff;letter-spacing:.14em;text-shadow:0 1px 3px rgba(0,0,0,.3)}.card--sm .card-back-text{font-size:.85rem}.card--md .card-back-text{font-size:1.25rem}.card--lg .card-back-text{font-size:1.65rem}.card--uno{--uno-radius: 14px;box-sizing:border-box;padding:0;overflow:hidden;background:var(--uno-fill, #171717);border:2px solid var(--uno-card-edge, #141414);border-radius:var(--uno-radius);color:#fff;justify-content:stretch}.card--uno.card--sm{--uno-radius: 10px}.card--uno.card--lg{--uno-radius: 16px}.card--uno.card--selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.uno-card-rim{position:relative;flex:1;min-height:0;margin:6%;border-radius:calc(var(--uno-radius) - 4px);background:var(--uno-fill, #171717)}.uno-card-oval{position:absolute;top:16%;right:9%;bottom:16%;left:9%;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;transform:rotate(-26deg)}.uno-card-oval--wild{background:conic-gradient(from 210deg,#d1202f 0,#d1202f 25%,#1a6fbf 0,#1a6fbf 50%,#2e9b44 0,#2e9b44 75%,#f0c400 0);box-shadow:inset 0 0 0 3px #fff}.card--uno-wild .uno-card-center{color:#fff}.card--uno-wild .uno-center-rank{text-shadow:0 1px 2px rgba(0,0,0,.35)}.uno-card-center{display:flex;align-items:center;justify-content:center;width:78%;height:78%;color:var(--uno-ink, var(--uno-fill));transform:rotate(8deg)}.uno-center-rank{font-family:var(--font-display);font-size:2.35rem;font-weight:400;line-height:.85;letter-spacing:0}.card--md .uno-center-rank{font-size:3.5rem}.card--lg .uno-center-rank{font-size:4.7rem}.uno-center-rank--underlined,.uno-corner-text--underlined{text-decoration:underline;text-underline-offset:.08em}.uno-mark{width:72%;height:72%;display:block}.uno-card-center .uno-mark--reverse,.uno-card-center .uno-mark--comeback{width:88%;height:88%}.uno-card-center .uno-mark--comeback{filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}.uno-card-corner .uno-mark{width:1em;height:1em}.uno-card-corner .uno-wild-pie{width:1.05em;height:1.05em}.uno-wild-pie{width:86%;height:86%;display:block;filter:drop-shadow(0 1px 1px color-mix(in srgb,#000 18%,transparent))}.uno-card-center .uno-mark--wild4,.uno-card-center .uno-mark--draw2{width:92%;height:92%;filter:drop-shadow(2px 2px 0 #111)}.uno-card-corner{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;color:#fff;line-height:1;pointer-events:none}.uno-card-corner--tl{top:1%;left:4%}.uno-card-corner--tr{top:1%;right:4%}.uno-card-corner--bl{left:4%;bottom:1%;transform:rotate(180deg)}.uno-card-corner--br{right:4%;bottom:1%;transform:rotate(180deg)}.uno-comeback-letter{font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.02em;line-height:1;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45)}.card--md .uno-comeback-letter{font-size:1.05rem}.card--lg .uno-comeback-letter{font-size:1.35rem}.uno-corner-text{font-family:var(--font-display);font-size:.95rem;letter-spacing:-.03em}.card--md .uno-corner-text{font-size:1.2rem}.card--lg .uno-corner-text{font-size:1.55rem}.card--uno-wild,.card--uno-wild .uno-card-rim{background:var(--uno-fill, #171717)}.card--uno.card--back{background:#141414;border-color:var(--uno-card-edge, #3a3a3a)}.card--uno.card--back .uno-card-rim{background:#141414}.uno-card-oval--back{background:conic-gradient(from 210deg,#d1202f 0,#d1202f 25%,#1a6fbf 0,#1a6fbf 50%,#2e9b44 0,#2e9b44 75%,#f0c400 0);box-shadow:inset 0 0 0 3px #fff}.uno-back-mark{font-family:var(--font-display);font-size:1.05rem;color:#f0c400;letter-spacing:.04em;transform:rotate(26deg);text-shadow:0 0 0 #D1202F,1px 1px 0 #9a1020,0 2px 6px color-mix(in srgb,#000 45%,transparent)}.card--md .uno-back-mark{font-size:1.55rem}.card--lg .uno-back-mark{font-size:2.1rem}.confirm-modal-dialog.confirm-modal-dialog--modern-uno{width:min(100%,780px)}.modern-uno-modal-blurb{margin:0 0 16px;font-size:var(--text-sm);line-height:1.45;color:var(--text-secondary)}.modern-uno-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:8px}@media(min-width:700px){.modern-uno-slots{grid-template-columns:repeat(4,minmax(0,1fr))}}.modern-uno-slot{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-elevated, var(--bg-card));min-width:0}.modern-uno-slot-head{display:flex;align-items:center;justify-content:center;gap:6px}.modern-uno-slot-label{font-size:var(--text-sm);font-weight:700;color:var(--text-primary);text-align:center}.modern-uno-slot-preview{display:flex;justify-content:center;align-items:center;min-height:128px}.modern-uno-slot-preview .card--uno{flex-shrink:0}.modern-uno-slot-select.lobby-setting-select{width:100%;max-width:none;flex:none;min-height:38px;margin:0;font-size:var(--text-sm)}.modern-uno-slot-value{font-size:var(--text-sm);font-weight:600;text-align:center;color:var(--text-secondary);min-height:38px;display:inline-flex;align-items:center;justify-content:center}.lobby-setting-row--modern-uno{align-items:center}.lobby-modern-uno-controls{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto;margin-left:auto}.lobby-modern-uno-customise{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:38px;height:38px;margin:0;padding:6px 12px;font-family:var(--font-body);font-size:var(--text-md);font-weight:700;line-height:1.35;white-space:nowrap;color:var(--text-primary);background:var(--bg-card);border:2px solid var(--border-strong, var(--border-color));border-radius:var(--radius-sm);cursor:pointer}.lobby-modern-uno-customise:disabled{opacity:.4;cursor:not-allowed}.lobby-modern-uno-customise:hover:not(:disabled){background:var(--bg-secondary)}.lobby-modern-uno-customise:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent);outline:none}.lobby-modern-uno-state{display:inline-flex;align-items:center;justify-content:flex-end;flex:0 0 auto;min-height:38px;font-size:var(--text-md);font-weight:700;line-height:1.35;color:var(--text-secondary)}.player-color-picker{position:relative;z-index:1}.player-color-picker.is-open{z-index:2}.btn-player-color{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer}.btn-player-color:hover:not(:disabled){background:var(--bg-card);border-color:var(--accent)}.btn-player-color:disabled{opacity:.5;cursor:not-allowed}.player-color-picker-menu{position:absolute;top:calc(100% + .35rem);right:0;display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;padding:.45rem;background:var(--bg-card);border:var(--stroke) solid var(--border-color);border-radius:var(--radius);box-shadow:0 4px 12px #0000001f;z-index:30}.player-color-swatch{width:26px;height:26px;padding:0;border:1px solid rgba(0,0,0,.2);border-radius:50%;cursor:pointer}.player-color-swatch:hover:not(:disabled){transform:scale(1.1)}.player-color-swatch.selected{box-shadow:0 0 0 2px var(--bg-card),0 0 0 4px var(--text-primary)}.player-color-swatch.unavailable,.player-color-swatch:disabled{cursor:not-allowed;border-style:dashed;filter:grayscale(.7) brightness(.72);opacity:.7}.player-token{border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.25)}.player-token svg{color:#fff}.player-avatar-text{font-weight:700;line-height:1;color:inherit;text-shadow:0 1px 0 rgba(0,0,0,.25)}.lobby{position:relative;isolation:isolate;height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bg-primary)}.lobby-content{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:520px;margin:0 auto;padding:32px 16px 40px;font-family:var(--font-body)}.lobby-main{display:flex;flex-direction:column;gap:20px;width:100%}.lobby-main-setup,.lobby-main-social{display:flex;flex-direction:column;gap:20px;min-width:0}.lobby-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.lobby-spectator-badge{font-size:var(--text-sm);font-weight:700;padding:3px 10px;border-radius:999px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary)}.lobby-title{font-size:40px;margin:0}.lobby-section-title{margin:0;font-family:var(--font-body);font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.lobby-invite{width:100%;display:flex;flex-direction:column;gap:8px;padding:12px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card)}.lobby-invite-row{display:grid;grid-template-columns:72px 1fr auto;gap:8px;align-items:center}.lobby-invite-label{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary)}.lobby-invite-value{font-size:var(--text-xl);font-weight:700;letter-spacing:.08em;font-family:var(--font-body)}.lobby-invite-url{font-size:var(--text-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-settings{width:100%;display:flex;flex-direction:column;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);overflow:visible}.lobby-settings-group{display:flex;flex-direction:column;gap:0;padding:0}.lobby-settings-group+.lobby-settings-group{border-top:var(--stroke) solid var(--border-color)}.lobby-settings-group>.lobby-section-title{margin:0;padding:12px 16px 10px;border-bottom:var(--stroke) solid var(--border-color);font-size:var(--text-lg);font-weight:700}.lobby-settings-group-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:0;padding:12px 16px 10px;border:none;border-bottom:var(--stroke) solid transparent;background:transparent;color:inherit;cursor:pointer;text-align:left;font:inherit}.lobby-settings-group-toggle .lobby-section-title{margin:0;padding:0;border:none;font-size:var(--text-lg);font-weight:700}.lobby-settings-group--collapsible:not(.is-open)>.lobby-settings-group-toggle{border-bottom-color:transparent}.lobby-settings-group--collapsible.is-open>.lobby-settings-group-toggle{border-bottom-color:var(--border-color)}.lobby-settings-group-caret{flex-shrink:0;color:var(--text-secondary);transition:transform .15s ease}.lobby-settings-group--collapsible.is-open .lobby-settings-group-caret{transform:rotate(180deg)}.lobby-settings-group-toggle:hover .lobby-section-title{color:var(--accent)}.lobby-setting-row{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:12px;min-height:48px;padding:8px 16px;box-sizing:border-box}.lobby-setting-row--switch{align-items:center}.lobby-settings-divider{margin:0;padding:0;border:none;border-top:1px dashed color-mix(in srgb,var(--border-color) 55%,transparent)}.lobby-setting-label-col{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}.lobby-setting-label-main{display:inline-flex;align-items:center;gap:6px;max-width:100%}.lobby-setting-blurb{margin:0;font-size:var(--text-sm);font-weight:400;line-height:1.4;color:var(--text-secondary)}.lobby-setting-row .lobby-setting-select,.lobby-setting-row .lobby-setting-value{margin-top:2px}.lobby-setting-row--switch .lobby-setting-select,.lobby-setting-row--switch .lobby-setting-value,.lobby-setting-row--switch .switch{margin-top:0}.lobby-setting-label{font-size:var(--text-base);font-weight:700;color:var(--text-primary);flex-shrink:0}.lobby-setting-label-with-info{display:inline-flex;align-items:center;gap:6px;min-width:0}.lobby-setting-select{width:12rem;max-width:48%;flex:0 0 auto;min-height:38px;height:auto;padding:6px 28px 6px 10px;font-family:var(--font-body);font-size:var(--text-md);line-height:1.35;border:2px solid var(--border-strong, var(--border-color));border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);box-sizing:border-box}.lobby-setting-select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent);outline:none}.lobby-setting-value{font-size:var(--text-md);font-weight:700;color:var(--text-secondary);flex:0 0 auto;width:12rem;max-width:48%;min-height:38px;display:inline-flex;align-items:center;justify-content:flex-end;text-align:right;line-height:1.35;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-setting-row .switch{flex-shrink:0;align-self:center}.lobby-players{width:100%;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);overflow:hidden}.lobby-players-header{position:relative;display:flex;align-items:center;gap:12px;padding:12px 16px 10px;border-bottom:var(--stroke) solid var(--border-color)}.lobby-players-header:has(.btn){padding-right:132px}.lobby-players-header .lobby-section-title{margin:0;min-width:0}.lobby-players-header .btn{position:absolute;top:50%;right:16px;display:inline-flex;align-items:center;gap:6px;flex-shrink:0;transform:translateY(-50%)}.lobby-players-header .btn:active:not(:disabled){transform:translateY(-50%) scale(.97)}.lobby-players-list{display:flex;flex-direction:column}.lobby-player-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:8px 14px;transition:background .15s}.lobby-player-row+.lobby-player-row{border-top:var(--stroke) solid var(--border-color)}.lobby-player-row:hover{background:var(--bg-secondary)}.lobby-player-row--host{background:color-mix(in srgb,var(--accent) 10%,var(--bg-card))}.lobby-player-row--host:hover{background:color-mix(in srgb,var(--accent) 14%,var(--bg-card))}.lobby-player-row--offline{opacity:.72}.lobby-player-row--empty{opacity:.55}.lobby-player-row--empty:hover{background:transparent}.lobby-player-row-main{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.lobby-player-token{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:var(--text-base);font-weight:700;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.25)}.lobby-player-token--empty{background:transparent;border:2px dashed color-mix(in srgb,var(--border-color) 80%,transparent)}.lobby-player-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;min-width:0}.lobby-player-name{font-size:var(--text-md);font-weight:700;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-player-row--empty .lobby-player-name{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.lobby-player-badges{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.lobby-player-badge{display:inline-flex;align-items:center;justify-content:center;min-height:18px;padding:0 6px;border-radius:4px;font-size:var(--text-xs);font-weight:700;line-height:1;white-space:nowrap}.lobby-player-badge--host{color:var(--gold);background:color-mix(in srgb,var(--gold) 22%,transparent);border:1px solid color-mix(in srgb,var(--gold) 35%,transparent)}.lobby-player-badge--you{color:var(--success);background:color-mix(in srgb,var(--success) 18%,transparent);border:1px solid color-mix(in srgb,var(--success) 30%,transparent)}.lobby-player-badge--offline{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent)}.lobby-player-badge--bot{color:var(--text-primary);background:color-mix(in srgb,var(--text-secondary) 18%,transparent);border:1px solid color-mix(in srgb,var(--text-secondary) 35%,transparent)}.lobby-player-badge--winner{color:#1a1408;background:var(--gold);border:1px solid color-mix(in srgb,var(--gold) 70%,#1a1408)}.lobby-player-badge--forfeited{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid color-mix(in srgb,var(--accent) 32%,transparent)}.lobby-player-kick{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;flex-shrink:0;background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.lobby-player-kick:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.lobby-player-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.lobby-players:has(.player-color-picker.is-open){overflow:visible}.lobby-players-list:has(.player-color-picker.is-open){overflow:visible}.lobby-player-row:has(.player-color-picker.is-open){z-index:2;position:relative}.lobby-icon-picker{padding:12px 16px;border-top:var(--stroke) solid var(--border-color);background:var(--bg-secondary)}.lobby-icon-picker-label{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);margin-bottom:8px;text-align:center}.lobby-icon-picker-options{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.lobby-icon-picker-btn{width:48px;height:48px;padding:6px;display:flex;align-items:center;justify-content:center;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);cursor:pointer}.lobby-icon-picker-btn:hover:not(:disabled){border-color:var(--accent)}.lobby-icon-picker-btn.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--bg-card));color:var(--accent)}.lobby-icon-picker-btn:disabled{opacity:.5;cursor:not-allowed}.lobby-players-footer{margin:0;padding:10px 16px 12px;border-top:var(--stroke) solid var(--border-color);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-align:center}.lobby-preset-panel{display:flex;flex-direction:column;gap:10px;padding:12px 16px}.lobby-preset-blurb{margin:0;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.45}.lobby-preset-actions{display:flex;flex-wrap:wrap;gap:8px}.lobby-preset-action-btn{flex:1 1 auto;min-width:0}.choice-btn-group{display:flex;align-items:stretch;width:100%;gap:6px;flex-wrap:wrap}.choice-btn{flex:1 1 calc(20% - 6px);min-width:4.5rem;display:inline-flex;align-items:center;justify-content:center;min-height:2.25rem;padding:0 8px;background:var(--bg-card);border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-weight:700;font-size:var(--text-sm);white-space:nowrap;transition:background .15s,transform .1s,border-color .15s}@media(hover:hover)and (pointer:fine){.choice-btn:hover:not(:disabled):not(.selected){background:var(--bg-secondary)}}@media(hover:hover)and (pointer:fine){.choice-btn.selected:hover:not(:disabled){background:var(--btn-primary-hover-bg);border-color:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-text)}}.choice-btn:active:not(:disabled){transform:scale(.97)}.lobby-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;padding-bottom:8px}.lobby-waiting{color:var(--text-secondary);font-size:var(--text-md);text-align:center}@media(min-width:860px){.lobby-content{max-width:960px;align-items:stretch;padding:36px 24px 40px}.lobby-main{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:20px;align-items:start}.lobby-main-social{position:sticky;top:20px}.lobby-setting-select,.lobby-setting-value{width:12rem;max-width:42%}}@media(max-width:480px){.lobby-content{padding:28px 12px 36px;gap:16px}}.hand{border-top:var(--stroke) solid var(--border-color);background:var(--bg-secondary);padding:0 12px 8px;flex-shrink:0;overflow:visible;position:relative;z-index:5}.hand-area{position:relative;flex-shrink:0}.hand-area-cards{position:relative}.hand-area:has(.action-bar) .hand{border-top:none}.hand-autopilot-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:8px 12px;background:color-mix(in srgb,var(--bg-secondary) 78%,transparent);pointer-events:none}.hand-autopilot-card{pointer-events:auto;display:flex;align-items:center;gap:10px;max-width:100%;padding:8px 12px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card)}.hand-autopilot-card>svg{flex-shrink:0;color:var(--accent)}.hand-autopilot-copy{min-width:0}.hand-autopilot-title{font-family:var(--font-body);font-size:var(--text-md);font-weight:700;color:var(--text-primary);line-height:1.35}.hand-autopilot-cancel{flex-shrink:0;min-height:32px;padding:4px 10px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;cursor:pointer}.hand-autopilot-cancel:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.hand-autopilot-cancel:disabled{opacity:.45;cursor:not-allowed}.hand--empty{display:flex;align-items:center;justify-content:center;min-height:76px;padding-top:10px}.hand-empty-text{color:var(--text-secondary);font-size:var(--text-base)}.hand-cards{display:flex;gap:8px;overflow-x:auto;overflow-y:visible;padding:6px 4px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;touch-action:pan-x}.hand-card-wrap{position:relative;flex:0 0 auto;scroll-snap-align:center;transform-origin:bottom center}.hand-card-wrap--draggable{cursor:grab}.hand-card-wrap--lifting{opacity:.38}.hand-drag-ghost{position:fixed;top:0;left:0;z-index:2400;pointer-events:none;will-change:transform}.hand-drag-ghost .card{pointer-events:none;transform:none;box-shadow:0 14px 28px color-mix(in srgb,#000 28%,transparent)}body.uno-hand-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing}body.uno-hand-dragging .hand-cards{overflow:hidden;touch-action:none}.hand-card-wrap--draggable:active{cursor:grabbing}.hand-card-wrap--just-drawn,.hand-card-wrap--drawn-turn,.hand-card-wrap--cut-hint,.hand-card-wrap--selected{z-index:12}.hand-select-order{position:absolute;top:4px;right:4px;z-index:20;box-sizing:border-box;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent, #fff);font-family:var(--font-body);font-size:.75rem;font-weight:800;line-height:1;pointer-events:none}.hand-cards>.hand-card-wrap>.card--md{width:120px;height:168px;--card-value-w: 44px;--card-value-h: 24px;--card-value-font: .9rem}.hand-cards .card.card--selected,.hand-cards .card.card--just-drawn,.hand-cards .card.card--drawn-turn{z-index:10}.hand-card-wrap--cut-hint{z-index:12;border-radius:16px}.hand-card-wrap--drawn-turn{z-index:12}.hand-cards .card.card--uno.card--drawn-turn{border-color:#ffe500}.hand-cards .card.card--just-drawn{z-index:12;transition:none;animation:hand-card-draw .75s ease-out;border-color:#ffe500}@media(hover:hover)and (pointer:fine){.hand-cards .card:hover:not(.card--disabled){z-index:10}.hand-cards .card.card--just-drawn:hover:not(.card--disabled),.hand-cards .card.card--drawn-turn:hover:not(.card--disabled){transform:translateY(-4px) scale(1.03)}}@media(hover:none){.hand-cards .card:active:not(.card--disabled){transform:scale(.98);transition-duration:.05s}.hand-cards .card.card--selected:active:not(.card--disabled){transform:scale(.98)}.hand-cards .card.card--just-drawn:active:not(.card--disabled){transform:none}}@keyframes hand-card-draw{0%{opacity:.35;transform:translateY(18px) scale(.9);box-shadow:0 0 0 0 var(--flash-glow)}35%{opacity:1;transform:translateY(-12px) scale(1.08);box-shadow:0 0 0 8px var(--flash-glow)}70%{transform:translateY(-4px) scale(1.03);box-shadow:0 0 0 4px var(--flash-glow)}to{opacity:1;transform:none}}@keyframes hand-card-flash{0%,to{border-color:var(--flash-border);box-shadow:0 0 0 2px var(--flash-glow);background:var(--card-face)}50%{border-color:var(--flash-border);box-shadow:0 0 0 7px #d4a52026;background:var(--flash-bg)}}.play-area{--play-area-side-width: 168px;--play-area-card-w: 88px;--play-area-card-gap: 8px;--play-area-set-inset: 28px;flex:1;display:flex;align-items:flex-start;gap:16px;padding:12px 12px 0;overflow:auto;min-height:0;scroll-padding-bottom:12px}.play-area-bank{width:var(--play-area-side-width);flex-shrink:0;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);padding:8px;align-self:flex-start;overflow:visible}.play-area-side{width:var(--play-area-side-width);flex-shrink:0;display:flex;flex-direction:column;gap:10px;align-self:flex-start;margin-bottom:12px}.play-area-side .play-area-bank{width:100%;margin-bottom:0}.play-area-hand-stats,.play-area-property-set-stats{width:100%}.play-area-properties-wrap{position:relative;flex:1;min-width:0;min-height:0;align-self:stretch;display:flex;flex-direction:column;overflow:visible}.play-area-watermark{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.play-area-watermark-inner{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.play-area-watermark-title{font-size:clamp(20px,3.5vw,44px);color:var(--text-primary);opacity:var(--watermark-opacity)}.play-area-watermark-room{font-family:var(--font-body);font-size:clamp(13px,1.8vw,17px);font-weight:700;letter-spacing:.14em;color:var(--text-secondary);opacity:var(--watermark-opacity)}.play-area-properties{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;align-content:flex-start;width:100%;box-sizing:border-box}.play-area-properties-wrap:not(:has(.play-area-empty-props:only-child)){margin-bottom:12px}.play-area-properties:has(.play-area-empty-props:only-child){flex:1;display:flex;align-items:center;align-content:center;justify-content:center;min-height:0}.play-area-properties:not(:has(.play-area-empty-props:only-child)){padding-bottom:12px}.play-area-bank-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-color)}.play-area-label{font-family:var(--font-body);font-size:var(--text-sm);font-weight:700}.play-area-bank-total{font-family:var(--font-body);font-size:var(--text-base);font-weight:700;color:var(--accent);overflow:visible}.play-area-bank-cards{display:flex;flex-wrap:wrap;gap:4px}.play-area-bank-cards:has(.play-area-empty:only-child){display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:8px 0}.play-area-bank-note{display:inline-flex;align-items:baseline;gap:3px}.play-area-bank-card{display:inline-flex;align-items:center;justify-content:center;width:40px;height:24px;box-sizing:border-box;background:var(--gold);border:1px solid var(--border-color);border-radius:3px;padding:0;font-size:var(--text-sm);font-family:var(--font-body);font-variant-numeric:tabular-nums;line-height:1;color:#fff}.play-area-bank-card-count{font-size:var(--text-xs);font-weight:700;color:var(--text-secondary)}.play-area-empty-props{display:flex;flex:1;align-items:center;justify-content:center;width:100%;align-self:stretch;min-height:0;padding:32px 24px}.play-area-empty{color:var(--text-secondary);font-size:var(--text-2xl);font-weight:700;line-height:1.3;text-align:center}.play-area-set{border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);padding:8px;overflow:visible;flex:0 0 auto;width:fit-content;max-width:100%;min-width:calc(var(--play-area-set-cols) * var(--play-area-card-w) + (var(--play-area-set-cols) - 1) * var(--play-area-card-gap) + var(--play-area-set-inset))}.play-area-set--complete{border-color:var(--success);box-shadow:0 0 0 1px var(--success)}.play-area-set-header{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-color)}.play-area-set-strip{width:100%;flex:none}.play-area-set-header-meta{display:flex;align-items:baseline;gap:6px;width:100%}.play-area-set-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);font-weight:700;line-height:1.25}.play-area-set-rent{flex-shrink:0;font-size:var(--text-sm);font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.play-area-set-count-wrap{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}.play-area-set-count{font-size:var(--text-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:right}.play-area-set-badge{background:var(--success);color:#fff;font-size:var(--text-xs);width:18px;height:18px;min-width:18px;min-height:18px;border-radius:50%;display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;line-height:1;aspect-ratio:1}.play-area-set-cards{display:grid;grid-template-columns:repeat(var(--play-area-set-cols),var(--play-area-card-w));gap:var(--play-area-card-gap);padding:8px 4px;overflow:visible}.play-area-set-cards .card{position:relative;z-index:0}.play-area-set-cards .card--flipable{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent);cursor:pointer}.play-area-set-cards .card:hover:not(.card--disabled){z-index:2;transform:scale(1.04)}.play-area-set-cards .card--flipable:hover:not(.card--disabled){box-shadow:0 0 0 2px var(--accent)}.play-area-flip-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:220}.play-area-flip-picker{position:relative;background:var(--bg-card);border:var(--stroke) solid var(--border-color);border-radius:var(--radius);padding:20px;width:var(--modal-compact-width);max-height:70vh;overflow-y:auto}.play-area-flip-picker h4{margin-bottom:12px;font-size:var(--text-xl)}.play-area-flip-picker-note{margin:0 0 12px;font-family:var(--font-body);font-size:var(--text-sm);line-height:1.45;color:var(--text-secondary)}.play-area-flip-picker .pending-pay-warning{margin:0 0 12px}.play-area-flip-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px}.play-area-flip-swatch{width:100%;min-height:40px}.play-area-flip-actions{display:flex;justify-content:flex-end;margin-top:12px}.play-area-flip-cancel{padding:10px 20px;font-size:var(--text-md);font-weight:700;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer}.play-area-flip-cancel:hover{background:var(--bg-card)}.play-area--compact{--play-area-compact-set-basis: 180px;--play-area-compact-set-min: 160px;--play-area-compact-set-max: 260px}.play-area--compact .play-area-properties{gap:10px}.play-area--compact .play-area-side{width:148px;min-width:136px;flex-direction:column;flex-wrap:nowrap;gap:10px}.play-area--compact .play-area-side .play-area-compact-set--summary{flex:0 0 auto;width:100%;min-width:0;max-width:none}.play-area--compact .play-area-properties-wrap{flex:1;min-width:0}.play-area-compact-set{flex:0 1 var(--play-area-compact-set-basis, 180px);min-width:var(--play-area-compact-set-min, 160px);max-width:var(--play-area-compact-set-max, 260px);align-self:flex-start;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);overflow:hidden}.play-area-compact-set--complete{border-color:var(--success)}.play-area-compact-set--summary .play-area-compact-set-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:6px;border-bottom:none}.play-area-compact-set--bank .play-area-compact-set-rent{color:var(--accent)}.play-area-compact-set-header{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border-bottom:1px solid var(--border-color);font-size:var(--text-sm);font-weight:700;line-height:1.25}.play-area-compact-set-strip .set-color-strip__bar{height:8px}.play-area-compact-set-header-meta{display:flex;align-items:baseline;gap:6px;width:100%}.play-area-compact-set-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-area-compact-set-rent{flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--text-primary)}.play-area-compact-set-count{flex-shrink:0;margin-left:auto;color:var(--text-secondary);font-weight:600;font-variant-numeric:tabular-nums;text-align:right}.play-area-compact-set-cards{display:flex;flex-direction:column}.play-area-compact-row{display:flex;align-items:center;gap:6px;width:100%;padding:4px 6px;border:none;border-radius:0;border-bottom:1px solid var(--border-color);background:var(--bg-card);font:inherit;color:inherit;text-align:left;min-height:28px;-moz-appearance:none;appearance:none;-webkit-appearance:none}.play-area-compact-row:active{transform:none}.play-area-compact-row:last-child{border-bottom:none}.play-area-compact-row--flipable{cursor:pointer;box-shadow:inset 3px 0 0 var(--accent)}.play-area-compact-row--flipable:hover{background:var(--bg-secondary)}.play-area-compact-row--special:not(.play-area-compact-row--flipable) .play-area-compact-row-switch{opacity:.72}.play-area-compact-row-color{width:14px;height:22px;flex-shrink:0;border:1px solid var(--border-color);border-radius:2px}.play-area-compact-row-color--split{display:flex;flex-direction:column;padding:0;overflow:hidden;background:transparent}.play-area-compact-row-color-segment{flex:1;min-height:0;width:100%;border-bottom:1px solid color-mix(in srgb,var(--border-color) 70%,transparent)}.play-area-compact-row-color-segment:last-child{border-bottom:none}.play-area-compact-row-color-segment--active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text-primary) 45%,transparent)}.play-area-compact-row-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm)}.play-area-compact-row-switch{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent);line-height:0}.play-area-compact-row-switch svg{display:block}.play-area-compact-row-value{flex-shrink:0;font-size:var(--text-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}@media(max-width:600px){.play-area{flex-direction:column;gap:10px;padding:8px 8px 0;scroll-padding-bottom:8px}.play-area-bank,.play-area-side{width:100%;margin-bottom:8px}.play-area-side{flex-direction:row;flex-wrap:wrap;align-items:stretch}.play-area-side .play-area-bank,.play-area-hand-stats{flex:1 1 var(--play-area-side-width);min-width:var(--play-area-side-width)}.play-area-properties-wrap{width:100%}.play-area-properties-wrap:not(:has(.play-area-empty-props:only-child)){margin-bottom:8px}.play-area-properties:not(:has(.play-area-empty-props:only-child)){padding-bottom:8px}.play-area-watermark-title{font-size:clamp(18px,5vw,30px)}.play-area-watermark-room{font-size:clamp(12px,2.8vw,15px)}.play-area-properties{flex-direction:column;flex-wrap:nowrap;align-items:stretch}.play-area-set{flex:0 0 auto;width:100%;max-width:100%;min-width:0}.play-area-set-cards{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scroll-padding-inline:4px}.play-area-set-cards .card{flex:0 0 auto}.play-area--compact .play-area-side{width:100%;min-width:0;flex-direction:row;flex-wrap:nowrap;gap:10px;align-items:stretch}.play-area--compact .play-area-side>.play-area-compact-set--summary,.play-area--compact .play-area-side>.play-area-property-set-stats{flex:1 1 0;min-width:0;width:auto;max-width:none}.play-area--compact .play-area-side>.play-area-property-set-stats .play-area-compact-set{width:100%;height:100%}.play-area--compact .play-area-properties{flex-direction:row;flex-wrap:wrap;align-items:flex-start}.play-area--compact .play-area-compact-set{flex:0 1 calc(50% - 5px);min-width:var(--play-area-compact-set-min, 160px);max-width:var(--play-area-compact-set-max, 260px)}}.play-area--uno{flex-direction:column;align-items:stretch;justify-content:center;gap:0;min-height:0;overflow:hidden;padding:10px 12px}.uno-showcase{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:8px;box-sizing:border-box;width:100%;max-width:none;margin:0 auto;min-height:0;height:100%;padding:6px;container-type:size;--uno-pile-h: min( 13.5rem, max(6.25rem, calc(100cqh - 3.4rem) ), calc((100cqw - 1.5rem) * 90 / 128) );--uno-feed-row: 2.5rem}.uno-showcase-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-width:0;min-height:0;flex:1 1 auto}.uno-showcase-piles{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;min-width:0;min-height:0}.uno-showcase .uno-pile--discard,.uno-showcase .uno-pile--draw{flex:0 1 auto;min-height:0;justify-self:center}.uno-pile-face{position:relative;display:flex}.uno-pile-challenge{position:absolute;left:50%;top:50%;z-index:3;transform:translate(-50%,-50%);padding:4px 8px;border:1px solid var(--prompt-warn-border);border-radius:8px;background:var(--prompt-warn-bg);color:var(--prompt-warn-text);font-family:var(--font-body);font-size:var(--text-xs, 12px);font-weight:800;line-height:1.2;white-space:nowrap;pointer-events:none}.uno-showcase-piles .card,.uno-showcase-piles .uno-empty-discard{flex-shrink:1;width:calc(var(--uno-pile-h) * 64 / 90);height:var(--uno-pile-h);max-width:none}.uno-showcase-status{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0}.uno-showcase-status .uno-status-chip,.uno-showcase-status .uno-color-chip{display:inline-flex;align-items:center;justify-content:center;gap:3px;max-width:100%;padding:3px 8px;font-size:var(--text-xs, 12px)}.uno-status-chip-avatar{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;color:#fff}.uno-status-chip--color{border-color:transparent;font-weight:800}@keyframes uno-your-turn-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 45%,transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 0%,transparent)}}.uno-win-condition{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary)}.uno-win-condition-label{font-weight:700;color:var(--text-secondary)}.uno-win-condition-summary{font-weight:700}.uno-action-feed{--uno-feed-row: 2.5rem;position:absolute;top:8px;left:50%;z-index:4;box-sizing:border-box;display:flex;flex-direction:column;width:min(92%,22rem);max-height:var(--uno-feed-row);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translate(-50%);border:1px solid var(--prompt-info-border);border-radius:8px;background:color-mix(in srgb,var(--prompt-info-bg) 92%,transparent);color:var(--prompt-info-text);pointer-events:auto}.uno-action-feed-item{display:flex;flex-shrink:0;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:6px;box-sizing:border-box;width:100%;min-width:0;height:var(--uno-feed-row);padding:0 8px;font-family:var(--font-body);font-size:var(--text-sm);font-weight:800;line-height:1.2;white-space:nowrap}.uno-action-feed-avatar{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#fff}.uno-action-feed-avatar--system{background:var(--border-color);color:var(--text-secondary)}.uno-action-feed-body{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:4px 6px;min-width:0;overflow:hidden}.uno-action-feed-body .log-player-name{font-weight:800}.uno-action-feed-body .uno-action-cards,.uno-action-feed-body .uno-action-card-group{flex-wrap:nowrap}.uno-action-cards,.uno-action-card-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.uno-action-card{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;padding:1px 7px;border-radius:7px;font-size:.95em;font-weight:800;line-height:1.2;box-shadow:inset 0 0 0 1px color-mix(in srgb,#000 18%,transparent)}.uno-action-card--wild{background:#1a1a1a;color:#fff}.uno-action-card--plain{background:var(--bg-secondary);color:var(--text-primary)}.uno-action-arrow,.uno-action-sep{font-weight:700;color:var(--text-secondary)}@media(max-height:640px)and (max-width:900px){.play-area--uno{padding:4px 8px}.uno-showcase,.uno-showcase-stack{gap:6px}.uno-action-feed{top:4px}.uno-showcase-status{gap:4px}.uno-shout-btn{min-height:44px;padding:8px 16px}}@media(min-width:901px){.play-area--uno{padding:12px 16px}.uno-action-feed{top:8px;right:8px;left:auto;width:min(16rem,30%);transform:none}}.uno-pile--draw{position:relative}.uno-pile-hint{position:absolute;left:8%;right:8%;top:50%;z-index:7;transform:translateY(-50%);padding:8px 6px;border-radius:10px;background:#141414e0;color:#ffe500;font-family:var(--font-body);font-size:clamp(11px,1.7cqh,13px);font-weight:800;line-height:1.3;text-align:center;pointer-events:none}.uno-pile-draw-stack{position:absolute;left:50%;top:-.35rem;z-index:4;transform:translate(-50%);box-sizing:border-box;min-width:2.6rem;padding:.35rem .7rem;border-radius:999px;border:2px solid #fff;background:#c62828;color:#fff;font-family:var(--font-body);font-size:clamp(1.05rem,3cqh,1.45rem);font-weight:900;line-height:1;letter-spacing:.02em;text-align:center;box-shadow:0 4px 14px #00000059;pointer-events:none;animation:uno-draw-stack-pulse 1.2s ease-in-out infinite}.uno-pile-draw-stack--draw{background:#111;border-color:#ffe500;color:#ffe500}@keyframes uno-draw-stack-pulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.08)}}.uno-pile-count{position:absolute;top:-6px;right:-6px;z-index:2;box-sizing:border-box;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#111;color:#fff;font-family:var(--font-body);font-size:.75rem;font-weight:800;line-height:1;pointer-events:none}.uno-pile{display:flex;flex-direction:column;align-items:center;gap:0;margin:0;padding:0;border:none;background:transparent;color:inherit;font:inherit}button.uno-pile{cursor:pointer;background:transparent;border:none}button.uno-pile:hover:not(:disabled):not(.uno-pile--flash),button.uno-pile:active:not(.uno-pile--flash){background:transparent;color:inherit;transform:none}button.uno-pile:disabled{cursor:default;opacity:.78}@media(hover:hover)and (pointer:fine){.uno-pile .card:hover:not(.card--disabled){transform:none;z-index:auto}}button.uno-pile:focus-visible{outline:2px solid var(--text-primary);outline-offset:4px;border-radius:var(--radius)}.uno-pile--droppable{border-radius:var(--radius)}.uno-pile--drop-over .card,.uno-pile--drop-over .uno-empty-discard{box-shadow:0 0 0 4px var(--accent)}.uno-pile--flash{z-index:2}.uno-pile--flash .uno-pile-face{border-radius:16px}.uno-pile--button .card,.uno-pile--live .card{pointer-events:none}.uno-empty-discard{width:132px;height:185px;border-radius:14px;border:2px dashed var(--border-color);background:color-mix(in srgb,var(--bg-secondary) 70%,transparent)}.uno-table-shouts{position:absolute;left:50%;bottom:10px;z-index:8;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:10px;width:max-content;max-width:calc(100% - 16px);margin:0;transform:translate(-50%);pointer-events:none}.uno-shout-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;min-height:48px;padding:10px 20px;border:2px solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-lg, 18px);font-weight:800;white-space:nowrap;cursor:pointer;pointer-events:auto}.uno-shout-btn--flash{z-index:2;animation:uno-shout-flash .85s ease-in-out infinite}@keyframes uno-shout-flash{0%,to{transform:scale(1);filter:brightness(1);box-shadow:0 0 0 0 transparent}50%{transform:scale(1.1);background:#ffe500;color:#141414;border-color:#141414;filter:brightness(1.08);box-shadow:0 0 0 4px #141414,0 0 16px #ffe500}}.uno-shout-btn--cut{border-color:var(--prompt-action-border, var(--accent));color:var(--prompt-action-text, var(--accent))}.uno-shout-btn--uno{border-color:var(--accent);color:var(--accent)}.uno-shout-btn--instant{border-color:#2f6fed;color:#2f6fed}.uno-shout-btn--catch{border-color:var(--prompt-warn-border, var(--accent));color:var(--prompt-warn-text, var(--accent))}.uno-status{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}.uno-color-chip,.uno-draw-stack,.uno-status-chip{padding:6px 12px;border-radius:999px;font-family:var(--font-body);font-size:var(--text-base);font-weight:700}.uno-color-chip{color:#fff}.uno-status-chip{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.uno-status-chip--draw,.uno-draw-stack{background:#333;color:#fff;border-color:#333}.uno-status-chip--skip{background:color-mix(in srgb,var(--accent) 16%,var(--bg-card))}.uno-status-chip--warn{background:color-mix(in srgb,var(--accent) 22%,var(--bg-card));border-color:var(--accent)}.uno-table-log{width:min(440px,100%);max-height:108px;overflow:hidden;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card)}.uno-color-picks{display:flex;gap:8px;flex-wrap:wrap}.card-flight-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2400;pointer-events:none}.card-flight{position:fixed;left:0;top:0;width:52px;height:73px;transform-origin:center center;animation-duration:var(--flight-ms, .48s);animation-delay:var(--flight-delay, 0ms);animation-timing-function:cubic-bezier(.22,.82,.28,1);animation-fill-mode:both;will-change:transform,opacity;filter:drop-shadow(0 8px 14px color-mix(in srgb,#000 28%,transparent))}.card-flight .card-flight-card,.card-flight .card{width:52px;height:73px;--card-value-w: 22px;--card-value-h: 14px;--card-value-font: .62rem;pointer-events:none}.card-flight--draw{animation-name:uno-card-flight-draw}.card-flight--play{animation-name:uno-card-flight-play}@keyframes uno-card-flight-draw{0%{transform:translate(var(--x0),var(--y0)) scale(.88) rotate(-8deg);opacity:.35}16%{opacity:1}to{transform:translate(var(--x1),var(--y1)) scale(.34) rotate(8deg);opacity:.55}}@keyframes uno-card-flight-play{0%{transform:translate(var(--x0),var(--y0)) scale(.34) rotate(8deg);opacity:.55}12%{opacity:1}to{transform:translate(var(--x1),var(--y1)) scale(.95) rotate(-4deg);opacity:.7}}.action-bar-wrap{position:relative;flex-shrink:0;z-index:10}.action-bar{display:flex;flex-direction:column;gap:6px;padding:8px 12px 4px;background:var(--bg-secondary);border-top:var(--stroke) solid var(--border-color);flex-shrink:0}.action-bar-prompt{display:flex;align-items:center;justify-content:space-between;gap:10px;box-sizing:border-box;min-height:42px;min-width:0;text-align:left;font-family:var(--font-body);font-size:var(--text-lg);font-weight:700;line-height:1.25;padding:8px 12px;border-radius:var(--radius-sm);border:var(--stroke) solid var(--border-color)}.action-bar-prompt-text{min-width:0;flex:1;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-bar-prompt-timer{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;height:1.25em;padding:0 8px;border:1px solid currentColor;border-radius:4px;background:var(--bg-card);font-variant-numeric:tabular-nums;font-weight:800}.action-bar-prompt-timer--urgent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.action-bar-prompt--action{background:var(--prompt-action-bg);border-color:var(--prompt-action-border);color:var(--prompt-action-text);animation:action-bar-prompt-pulse 1.2s ease-in-out infinite}.action-bar-prompt--warn{background:var(--prompt-warn-bg);border-color:var(--prompt-warn-border);color:var(--prompt-warn-text);animation:action-bar-prompt-pulse 1.2s ease-in-out infinite}.action-bar-prompt--muted{background:var(--bg-secondary);color:var(--text-secondary);font-weight:600}.action-bar-end{flex-shrink:0;min-height:32px;padding:4px 12px;border:2px solid currentColor;border-radius:999px;background:transparent;color:inherit;font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;cursor:pointer}@keyframes action-bar-prompt-pulse{0%,to{opacity:1}50%{opacity:.72}}.opponent{box-sizing:border-box;display:flex;flex-direction:column;gap:4px;width:236px;min-width:236px;max-width:236px;padding:8px 10px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);text-align:left;font:inherit;color:inherit}.opponent--clickable{cursor:pointer}.opponent--clickable:hover:not(:disabled){background:var(--bg-secondary)}.opponent--clickable:active:not(:disabled){transform:scale(.98)}.opponent--current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.opponent--responding{border-color:color-mix(in srgb,var(--accent) 70%,var(--border-color));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.opponent--disconnected{opacity:.5}.opponent--forfeited,.opponent--current.opponent--forfeited,.opponent--self.opponent--forfeited,.opponent--you.opponent--forfeited{opacity:1;filter:grayscale(1);background:color-mix(in srgb,var(--text-secondary) 16%,var(--bg-secondary));border-color:color-mix(in srgb,var(--text-secondary) 40%,var(--border-color));box-shadow:none;animation:none;color:var(--text-secondary)}.opponent-info{display:flex;justify-content:space-between;align-items:center;gap:6px;min-width:0}.opponent-identity{display:inline-flex;align-items:center;gap:6px;min-width:0;flex:1}.opponent-name{font-weight:700;font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.opponent-info-meta{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;margin-left:auto}.opponent-turn-badge,.opponent-respond-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0}.opponent-turn-badge,.opponent-respond-badge{color:var(--accent)}.opponent-head{display:flex;align-items:center;gap:8px;min-width:0}.opponent-name-row{display:flex;align-items:center;gap:4px;min-width:0;flex:1}.opponent-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;color:var(--text-secondary)}.opponent-standing{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--text-primary)}.opponent-hand-count--one,.opponent-uno{color:var(--accent)}.opponent-badge{font-weight:800;font-size:var(--text-xs)}.opponent-badge--draw{color:#fff;background:#333;border-radius:999px;padding:1px 6px}.opponent-badge--skip{color:var(--accent)}.opponent--must-respond{border-color:color-mix(in srgb,var(--accent) 70%,var(--border-color));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.opponent-status-icons{display:inline-flex;align-items:center;gap:4px}.opponent-status-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0}.opponent-status-icon--host{color:var(--gold)}.opponent-status-icon--offline,.opponent-status-icon--bot{color:var(--text-secondary)}.opponent-status-icon--autopilot{color:var(--accent)}.opponent-status-icon--forfeited{color:var(--prompt-warn-text)}.opponent-timer{flex-shrink:0;font-size:var(--text-xs);padding:1px 6px;pointer-events:none}.opponent-timer--response{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.opponent--self{background:color-mix(in srgb,var(--accent) 8%,var(--bg-card))}.opponent--you{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent),0 0 0 6px color-mix(in srgb,var(--accent) 28%,transparent);animation:uno-your-turn-pulse 1.8s ease-in-out infinite}.opponent--skipped{opacity:.55}.opponent--compact{width:158px;min-width:148px;max-width:176px;padding:6px 8px}.opponent-assets{display:flex;align-items:center;gap:6px;min-width:0;overflow:visible}.opponent-bank{flex-shrink:0;font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--gold);min-width:2.6em;overflow:visible}.opponent-hand-count{flex-shrink:0;font-size:var(--text-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-secondary);font-family:var(--font-body)}.opponent-sets{display:flex;gap:3px;min-width:0;overflow:hidden}.opponent-set-dot{box-sizing:border-box;width:20px;height:20px;flex-shrink:0;border-radius:3px;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center}.opponent-set-dot--complete{border:2px solid var(--success);box-shadow:none}.opponent-set-dot-count{font-size:var(--text-2xs);font-family:var(--font-body);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}@media(max-width:600px){.opponent{width:200px;min-width:200px;max-width:200px;padding:6px 8px}.opponent-name{font-size:var(--text-sm)}.opponent-timer{font-size:var(--text-xs);padding:1px 5px}}button.modal-close{position:absolute;top:10px;right:10px;z-index:1;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;display:grid;place-items:center;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);font-size:var(--text-base);line-height:1;cursor:pointer;color:var(--text-secondary)}button.modal-close:hover{background:var(--bg-card);color:var(--text-primary)}button.modal-close svg{display:block}.pending-modal-body>.pending-title,.target-modal-body>h4,.set-picker>h4,.play-area-flip-picker>h4,.rent-ref-header h3,.game-mobile-sheet-header span,.player-preview-name{padding-right:40px}.player-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:400;padding:max(16px,env(safe-area-inset-top,0px)) 16px max(16px,env(safe-area-inset-bottom,0px))}.player-preview-modal{position:relative;background:var(--bg-card);border:var(--stroke) solid var(--border-color);border-radius:var(--radius);width:min(720px,100%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font-body);box-shadow:var(--shadow)}.player-preview-modal--compact{width:min(640px,100%);max-height:min(90vh,32rem)}.player-preview-header{padding:16px 48px 12px 16px;border-bottom:var(--stroke) solid var(--border-color);flex-shrink:0}.player-preview-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}.player-preview-name{font-size:var(--text-2xl);font-weight:700}.player-preview-status-badge--turn{background:var(--prompt-action-bg);border-color:var(--prompt-action-border);color:var(--prompt-action-text)}.player-preview-status-badge--respond{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.player-preview-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);font-weight:700;padding:2px 8px;border-radius:var(--radius-sm);background:var(--prompt-warn-bg);border:1px solid var(--prompt-warn-border);color:var(--prompt-warn-text);line-height:1.2}.player-preview-status-badge svg{flex-shrink:0}.player-preview-status-badge--host{background:color-mix(in srgb,var(--gold) 22%,transparent);border-color:color-mix(in srgb,var(--gold) 35%,transparent);color:var(--gold)}.player-preview-status-badge--autopilot{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--accent)}.player-preview-status-badge--muted{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-secondary)}.player-preview-stats{display:flex;gap:16px;font-size:var(--text-base);color:var(--text-secondary);font-weight:600}.player-preview-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.player-preview-bank{padding:10px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.player-preview-bank-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.player-preview-section-label{font-size:var(--text-sm);font-weight:700}.player-preview-bank-total{font-size:var(--text-base);font-weight:700;color:var(--accent)}.player-preview-bank-cards{display:flex;flex-wrap:wrap;gap:6px}.player-preview-hand-stats{padding:10px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.player-preview-hand{flex-shrink:0;min-width:0;border-bottom:1px solid var(--border-color)}.player-preview-hand .hand{border-top:none;overflow:visible}.player-preview-hand .hand-cards{overflow-x:auto;overflow-y:visible}.player-preview-board{min-height:200px;display:flex;flex-direction:column;padding:12px 12px 0;scroll-padding-bottom:12px}.player-preview-board .play-area{flex:1;min-height:200px;align-items:stretch;overflow:visible;padding:4px 4px 0;scroll-padding-bottom:12px}.player-preview-board .play-area-properties-wrap{flex:1;display:flex;flex-direction:column;width:100%;min-height:200px}.player-preview-board .play-area-properties{padding-bottom:12px}.player-preview-board .play-area-properties-wrap{margin-bottom:12px}.player-preview-board .play-area-properties{flex-direction:column;flex-wrap:nowrap;align-items:stretch}.player-preview-board .play-area--compact .play-area-properties{flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:10px}.player-preview-board .play-area--compact .play-area-compact-set{align-self:flex-start}@media(min-width:601px){.player-preview-board .play-area--compact .play-area-compact-set{flex:0 1 calc(50% - 5px)}}.player-preview-board .play-area-set{width:100%;max-width:100%;min-width:0}.player-preview-board .play-area-set-cards{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scroll-padding-inline:4px;padding:10px 6px}.player-preview-board .play-area-set-cards .card{flex:0 0 auto}.player-preview-board .play-area-watermark{display:none}.player-preview-modal .card{cursor:default}.player-preview-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px 16px;border-top:var(--stroke) solid var(--border-color);flex-shrink:0}.player-preview-action{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}.player-preview-action:hover:not(:disabled){background:var(--bg-card);border-color:var(--accent)}.player-preview-action--danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.player-preview-action:disabled{opacity:.55;cursor:not-allowed}.pending-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:400}.pending-modal{position:relative;display:flex;flex-direction:column;background:var(--bg-card);border:var(--stroke) solid var(--border-color);border-radius:var(--radius);padding:0;width:var(--modal-action-width);max-height:80vh;overflow:hidden;font-family:var(--font-body);box-shadow:0 12px 40px #00000040}.pending-modal--compact{width:min(100%,420px)}.pending-modal-body{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:24px}.pending-modal-footer{flex:0 0 auto;padding:16px 24px;border-top:1px solid var(--border-color);background:color-mix(in srgb,var(--bg-card) 88%,var(--bg-secondary));box-shadow:0 -8px 18px color-mix(in srgb,#000 8%,transparent)}.pending-modal-footer .pending-pay-warning{margin-bottom:8px}.pending-modal-footer .pending-pay-total{margin-bottom:10px}.pending-modal-footer .pending-actions{margin-top:0}.modal-action-error{margin:0 0 10px;font-size:var(--text-base);font-weight:700;color:var(--accent)}.pending-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}.pending-title{font-size:var(--text-3xl);margin:0;min-width:0;flex:1 1 auto}.pending-modal-body .uno-color-picks{margin-top:16px}.pending-actions--targets{flex-direction:column;align-items:stretch}.pending-target-meta{margin-left:6px;opacity:.75;font-weight:500}.pending-double-down-hand{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px;max-height:40vh;overflow:auto}.pending-double-down-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:0;cursor:pointer;border-radius:8px}.pending-double-down-card:focus-visible{outline:2px solid var(--accent, #c0392b);outline-offset:3px}.pending-source{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.pending-source--message{display:block}.pending-source-from{display:inline-flex;align-items:center;gap:8px;min-width:0}.pending-deadline{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:1.75em;padding:0 10px;border:1px solid color-mix(in srgb,var(--border-color) 80%,transparent);border-radius:var(--radius-sm);background:var(--bg-secondary);font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1;color:var(--text-primary)}.pending-deadline--urgent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.pending-amount{font-family:var(--font-body);font-size:var(--text-2xl);font-weight:700;color:var(--accent);margin-bottom:14px}.pending-amount-line{display:flex;align-items:center;gap:6px;margin-bottom:14px}.pending-amount-line .pending-amount{margin-bottom:0}.pending-target-set{margin-bottom:16px}.pending-target-set .pending-amount{margin-bottom:8px}.pending-target-set-strip{width:100%}.pending-target-set-strip .set-color-strip__name{font-size:var(--text-md)}.pending-forced-deal{margin-bottom:16px}.pending-forced-deal .pending-amount{margin-bottom:10px}.pending-forced-deal-cols{display:flex;flex-wrap:wrap;gap:16px 24px}.pending-forced-deal-col{flex:1 1 200px;min-width:0}.pending-forced-deal-col .pending-pay-cards{margin-bottom:0}.pending-set-board{margin-top:4px}.pending-set-board-meta{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);margin:6px 0 8px}.pending-no-assets{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:12px}.pending-pay-hint{font-size:var(--text-sm);line-height:1.45;color:var(--text-secondary);margin:-6px 0 12px}.pending-pay-hint--note{margin-top:-4px;color:var(--text-primary)}.pending-pay-set-group{padding:10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--bg-secondary) 70%,transparent)}.pending-pay-set-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;min-width:0}.pending-pay-set-strip{flex:1;min-width:0}.pending-pay-set-badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;flex-shrink:0}.pending-pay-set-badges .pending-pay-badge{position:static;transform:none}.pending-pay-set-notices{margin:0 0 8px}.pending-pay-set-notice{margin:0;padding:6px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);line-height:1.45;color:var(--text-primary);background:color-mix(in srgb,var(--accent) 10%,var(--bg-card));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border-color))}.pending-pay-set-notice+.pending-pay-set-notice{margin-top:4px}.pending-pay-card-wrap{position:relative}.pending-pay-badge{position:absolute;left:50%;bottom:-2px;transform:translate(-50%);z-index:3;padding:1px 5px;border-radius:999px;font-size:var(--text-xs);font-weight:700;line-height:1.2;white-space:nowrap;pointer-events:none;border:1px solid transparent}.pending-pay-badge--complete{color:var(--on-accent);background:var(--accent);border-color:color-mix(in srgb,var(--accent) 80%,black)}.pending-pay-badge--building,.pending-pay-badge--building-count{color:#1f4d2b;background:#b8e6c1;border-color:#7bc48a}.pending-pay-badge--break{color:#7a2e00;background:#ffd8b8;border-color:#ffb07a}.pending-pay-badge--zero{color:#4a4a4a;background:#e8e8e8;border-color:#c8c8c8}.pending-pay-warning{margin:0 0 10px;padding:8px 10px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 12%,var(--bg-card));border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border-color))}.pending-pay-warning p{margin:0;font-size:var(--text-sm);line-height:1.4;color:var(--text-primary)}.pending-pay-warning p+p{margin-top:4px}.pending-pay-warning--summary p{font-weight:700}.pending-pay-quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.pending-suggest-btn{display:inline-flex;align-items:center;justify-content:center;margin:0;padding:7px 12px;border:2px solid var(--accent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 16%,var(--bg-card));color:var(--accent);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;cursor:pointer}.pending-suggest-btn:hover{background:color-mix(in srgb,var(--accent) 28%,var(--bg-card));color:var(--accent)}.pending-pay-groups{display:flex;flex-direction:column;gap:14px;margin:0 0 12px;padding:0;overflow:visible}.pending-pay-group-label{font-size:var(--text-md);font-weight:700;color:var(--text-secondary);margin-bottom:8px}.pending-pay-set-groups{display:flex;flex-direction:column;gap:10px}.pending-pay-cards{display:flex;flex-wrap:wrap;gap:10px 12px;margin-bottom:12px;padding:8px 4px 12px;overflow:visible}.pending-pay-groups .pending-pay-cards{margin-bottom:0}.pending-pay-set-group .pending-pay-cards{margin-bottom:0;padding:2px 0 6px}.pending-pay-cards .card{position:relative;z-index:0}.pending-pay-cards .card:hover:not(.card--disabled),.pending-pay-cards .card.card--selected{z-index:2}.pending-pay-cards .card:hover:not(.card--disabled){transform:scale(1.04)}.pending-pay-cards .card--selected{transform:none;border-color:var(--accent);outline:2px solid var(--accent);outline-offset:0;box-shadow:none}.pending-pay-cards .card--selected:hover{transform:scale(1.04)}.pending-pay-total{font-family:var(--font-body);font-size:var(--text-md);font-weight:700;margin-bottom:8px}.pending-pay-total--short{color:var(--accent)}.pending-actions{display:flex;gap:10px;margin-top:16px;width:100%}.pending-actions>.btn,.pending-actions>.pending-btn,.pending-actions>button{flex:1;min-width:0}.pending-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-height);padding:12px 16px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-lg);font-weight:700;line-height:1.2;cursor:pointer;background:var(--bg-card)}.pending-btn:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.pending-btn:disabled{opacity:.45;cursor:not-allowed}.pending-btn--jsn{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.pending-btn--jsn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.pending-btn--pay{background:var(--btn-emphasis-bg);color:var(--btn-emphasis-text);border-color:var(--btn-emphasis-bg)}.pending-btn--pay:hover:not(:disabled){background:var(--btn-emphasis-hover-bg);border-color:var(--btn-emphasis-hover-bg);color:var(--btn-emphasis-text)}.pending-btn--accept{background:var(--btn-emphasis-bg);color:var(--btn-emphasis-text);border-color:var(--btn-emphasis-bg)}.pending-btn--accept:hover:not(:disabled){background:var(--btn-emphasis-hover-bg);border-color:var(--btn-emphasis-hover-bg);color:var(--btn-emphasis-text)}.pending-btn--transfer{background:color-mix(in srgb,var(--accent) 18%,var(--bg-card));color:var(--text-primary);border-color:var(--accent)}.pending-btn--transfer:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 28%,var(--bg-card))}.chat{display:flex;flex-direction:column;height:100%;min-width:0}.chat-messages{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden;padding:8px}.chat-messages:has(.chat-empty){display:flex;flex-direction:column;justify-content:center}.chat-empty{color:var(--text-secondary);font-size:var(--text-sm);text-align:center;padding:20px;margin:0;font-family:var(--font-body)}.chat-msg{margin-bottom:6px;font-size:var(--text-base);line-height:1.4;overflow-wrap:anywhere;word-break:break-word}.chat-msg-name{font-weight:700;color:var(--text-secondary)}.chat-msg--mine .chat-msg-name{color:var(--accent)}.chat-msg-sep{color:var(--text-secondary)}.chat-msg--mine .chat-msg-sep{color:var(--accent)}.chat-msg-text{color:var(--text-primary)}.chat-input{display:flex;gap:4px;padding:8px;border-top:1px solid var(--border-color)}.chat-input input{flex:1;min-width:0;font-size:var(--text-sm);padding:6px 8px}.chat-input--no-send{border-top:none;padding:8px}.chat-input button{font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;padding:6px 12px;background:var(--btn-emphasis-bg);color:var(--btn-emphasis-text);border:2px solid var(--btn-emphasis-bg);border-radius:var(--radius-sm)}.chat-input button:hover{background:var(--btn-emphasis-hover-bg);border-color:var(--btn-emphasis-hover-bg);color:var(--btn-emphasis-text)}.chat-readonly{width:100%;font-size:var(--text-sm);color:var(--text-secondary);text-align:center;padding:8px;border-top:1px solid var(--border-color)}.chat-open-sheet-btn{flex:1;width:100%;min-width:0;margin:0;font-family:var(--font-body);font-size:var(--text-sm);line-height:1.25;padding:6px 8px;text-align:left;background:var(--bg-secondary);border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;touch-action:manipulation}.chat-open-sheet-btn:active{filter:brightness(.96)}.mobile-touch-platform .chat-input input{font-size:var(--text-lg)}.chat-sheet-overlay{position:fixed;z-index:300;background:var(--overlay)}.chat-sheet{position:fixed;z-index:301;display:flex;flex-direction:column;background:var(--bg-card);border-top:var(--stroke) solid var(--border-color);box-shadow:var(--shadow);overflow:hidden}.chat-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:max(10px,env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 10px max(14px,env(safe-area-inset-left,0px));border-bottom:var(--stroke) solid var(--border-color)}.chat-sheet-title{margin:0;font-family:var(--font-body);font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.chat-sheet-body{flex:1;min-height:0;display:flex;flex-direction:column}.chat-sheet-body .chat,.chat-sheet-body .chat-messages{flex:1;min-height:0}.chat-sheet-body .chat-input{flex-shrink:0;position:sticky;bottom:0;background:var(--bg-card);z-index:1;padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}.game-log{padding:8px 12px;height:100%;overflow-y:auto}.game-log-empty{color:var(--text-secondary);font-size:var(--text-sm);text-align:center;padding:20px;font-family:var(--font-body)}.game-log-entry{--log-text-size: 15px;--log-line-height: 1.4;--log-avatar-size: 24px;display:flex;align-items:center;gap:8px;padding:6px 0}.game-log-entry--system{opacity:.92}.game-log-entry--system .game-log-text{color:var(--text-secondary);font-weight:600}.game-log-entry--turn-divider{align-items:center;gap:10px;padding:12px 0 8px}.game-log-turn-line{flex:1;align-self:center;height:1px;min-width:12px;background:color-mix(in srgb,var(--border-color) 85%,transparent)}.game-log-turn-label{flex-shrink:0;font-family:var(--font-body);font-size:var(--text-xs);font-weight:800;letter-spacing:.06em;color:var(--text-secondary);padding:2px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-secondary);white-space:nowrap}.game-log-avatar{width:var(--log-avatar-size);height:var(--log-avatar-size);border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff}.game-log-avatar--system{background:var(--border-color)}.game-log-avatar svg{color:#fff}.game-log-text{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 6px;flex:1;font-size:var(--log-text-size);line-height:var(--log-line-height);min-width:0;font-family:var(--font-body)}.log-player-name{font-weight:800}.game-log--compact{height:auto;max-height:108px;padding:4px 6px;overflow-y:auto}.game-log--compact .game-log-entry{--log-text-size: 13px;--log-line-height: 1.35;--log-avatar-size: 18px;gap:6px;padding:2px 0}.game-log--compact .game-log-empty{padding:8px;font-size:var(--text-sm)}.game-end-stats{width:min(560px,100%);display:flex;flex-direction:column;align-items:stretch;gap:16px;font-family:var(--font-body)}.game-end-hero{text-align:center}.game-end-winner-avatar{display:inline-flex;align-items:center;justify-content:center;margin-bottom:8px}.game-end-hero h2{margin:0;font-family:var(--font-body);font-size:clamp(1.25rem,4vw,1.75rem);font-weight:800;line-height:1.3;color:var(--text-primary)}.game-end-subtitle{margin:6px 0 0;font-size:var(--text-base);font-weight:600;color:var(--text-secondary)}.game-end-mode-hint{margin:6px 0 0;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.game-end-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.game-end-summary--four{grid-template-columns:repeat(4,minmax(0,1fr))}.game-end-history{display:flex;flex-direction:column;gap:8px}.game-end-history h3{margin:0;font-size:var(--text-base);font-weight:800}.game-end-history ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.game-end-history li{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:8px 10px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);font-size:var(--text-sm);font-weight:700}.game-end-history li span:last-child{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.game-end-summary-card{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 12px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary)}.game-end-summary-card>svg{flex-shrink:0}.game-end-summary-text{display:flex;flex-direction:column;gap:2px;min-width:0}.game-end-summary-label{font-size:var(--text-xs, 12px);font-weight:700;color:var(--text-secondary)}.game-end-summary-value{font-family:var(--font-body);font-size:var(--text-base);font-weight:800;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-end-table-wrap{border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);overflow-x:auto}.game-end-table{width:100%;border-collapse:collapse;border-spacing:0;font-family:var(--font-body);font-size:var(--text-base)}.game-end-table th,.game-end-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-color);vertical-align:middle}.game-end-table th{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);background:var(--bg-secondary)}.game-end-table th:not(:first-child),.game-end-table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:1%}.game-end-table tbody tr:last-child td{border-bottom:none}.game-end-table-row--winner{background:color-mix(in srgb,var(--gold) 12%,transparent)}.game-end-table-row--forfeited{opacity:.65}.game-end-table-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-weight:700}.game-end-tag{font-size:var(--text-xs);font-weight:700;padding:1px 6px;border-radius:999px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary)}.game-end-tag--you{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border-color))}.game-end-tag--winner{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 45%,var(--border-color));background:color-mix(in srgb,var(--gold) 14%,var(--bg-secondary))}.game-end-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;width:100%}.game-end-wait-host{font-size:var(--text-base);font-weight:600;color:var(--text-secondary);margin:0;text-align:center}.game-end-error{margin:0;font-size:var(--text-base);color:var(--accent);text-align:center}@media(max-width:600px){.game-end-summary--four{grid-template-columns:repeat(2,minmax(0,1fr))}.game-end-summary-card{padding:10px}.game-end-table th,.game-end-table td{padding:8px 10px;font-size:var(--text-sm)}.game-end-actions .btn-row{flex-direction:column;align-items:stretch;gap:8px}.game-end-actions .btn-row>.btn,.game-end-actions .btn-row>button{flex:none;width:100%;max-width:none}}.round-banner{position:absolute;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;background:color-mix(in srgb,#000 18%,transparent);animation:round-banner-in 3.2s ease both}.round-banner-box{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:min(92vw,28rem);padding:18px 32px;border-radius:18px;background:color-mix(in srgb,var(--card-face) 96%,#fff);box-shadow:0 12px 36px color-mix(in srgb,#000 32%,transparent),0 0 0 1px color-mix(in srgb,var(--card-ink) 12%,transparent)}.round-banner-title{font-family:var(--font-body);font-size:clamp(2rem,8vw,3.5rem);font-weight:900;letter-spacing:.04em;line-height:1.1;color:var(--card-ink);text-align:center}.round-banner-sub{font-family:var(--font-body);font-size:var(--text-base);font-weight:700;color:var(--card-ink-muted);text-align:center}.round-banner--uno{z-index:81}.round-banner--uno .round-banner-title{color:var(--uno-red);letter-spacing:.12em}@keyframes round-banner-in{0%{opacity:0}8%{opacity:1}82%{opacity:1}to{opacity:0}}.confirm-modal-overlay:has(.confirm-modal-dialog--standings){z-index:400}.confirm-modal-dialog.confirm-modal-dialog--standings{width:min(34rem,calc(100vw - 2rem))}.confirm-modal-dialog--standings .confirm-modal-title{display:inline-flex;align-items:center;gap:8px}.standings-modal-meta{margin:8px 0 0;font-size:var(--text-sm);font-weight:700;color:var(--text-secondary)}.standings-table-wrap{margin-top:14px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);overflow-x:auto}.standings-table{width:100%;border-collapse:collapse;border-spacing:0;font-family:var(--font-body);font-size:var(--text-base)}.standings-table th,.standings-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-color);vertical-align:middle}.standings-table th{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);background:var(--bg-secondary)}.standings-table td:last-child,.standings-table th:last-child,.standings-table td:nth-child(n+2),.standings-table th:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.standings-table tbody tr:last-child td{border-bottom:none}.standings-table-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-weight:700}.standings-history-title{margin:16px 0 8px;font-size:var(--text-base);font-weight:800}.standings-history-empty{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.standings-history{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.standings-history li{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);font-size:var(--text-sm);font-weight:700}.standings-history li span:last-child{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.game{display:flex;flex-direction:column;height:var(--app-height, 100dvh);max-height:var(--app-height, 100dvh);overflow:hidden;overscroll-behavior:none;background:var(--bg-primary)}.game-header{--header-stripe-h: 5px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:140;padding:max(2px,env(safe-area-inset-top,0px)) 16px calc(var(--header-stripe-h) + 4px);border-bottom:none;background:var(--bg-card);flex-shrink:0}.game-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--header-stripe-h);background:var(--color-stripe);pointer-events:none}.game-title{font-size:var(--text-xl)}.game-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.game-header-actions{display:flex;align-items:center;gap:8px}.game-header-menu{display:none;position:relative;align-items:stretch}.game-header-menu-toggle{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:38px;height:38px;padding:0;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}.game-header-menu-toggle:hover,.game-header-menu.is-open .game-header-menu-toggle{background:var(--bg-card)}.game-header-menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:60;display:flex;flex-direction:column;gap:6px;min-width:148px;padding:8px;background:var(--bg-card);border:2px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:0 8px 24px color-mix(in srgb,var(--text-primary) 18%,transparent)}.game-header-menu-panel .game-header-btn{width:100%;justify-content:flex-start}.game-header-enquiry-desktop{flex-shrink:0}.game-turn-info{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;overflow:hidden;font-family:var(--font-body);font-size:var(--text-lg);font-weight:700;color:var(--accent);text-align:left}.game-turn-info .player-token{flex-shrink:0}.game-turn-info-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-round-chip{flex-shrink:0;margin-left:4px;height:28px;padding:0 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:800;line-height:1;cursor:pointer;white-space:nowrap}.game-round-chip:hover{background:var(--bg-card);border-color:var(--accent)}.game-turn-timer{font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-secondary);padding:2px 8px;border-radius:4px;background:var(--bg-secondary);border:1px solid var(--border-color)}.game-turn-timer--urgent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.game-header-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;height:38px;padding:0 12px;font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;line-height:1;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}.game-header-btn:hover{background:var(--bg-card)}.game-header-btn--danger{color:var(--accent);border-color:var(--accent)}.game-header-btn--danger:hover{background:var(--accent);color:var(--on-accent)}.game-header-btn svg{flex-shrink:0;width:18px;height:18px}.confirm-modal-overlay:has(.confirm-modal-dialog--game-rules){z-index:400}.confirm-modal-dialog.confirm-modal-dialog--game-rules{width:min(34rem,calc(100vw - 2rem))}.game-rules-modal-body{display:flex;flex-direction:column;gap:0;max-height:min(58dvh,28rem);margin-top:12px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.game-rules-modal-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed color-mix(in srgb,var(--border-color) 55%,transparent)}.game-rules-modal-row:last-child{border-bottom:none;padding-bottom:0}.game-rules-modal-row-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.game-rules-modal-row-label-line{display:inline-flex;align-items:center;gap:6px}.game-rules-modal-row-label{font-size:var(--text-base);font-weight:700;color:var(--text-primary)}.game-rules-modal-row-blurb{font-size:var(--text-sm);line-height:1.4;color:var(--text-secondary)}.game-rules-modal-row-value{flex-shrink:0;margin-top:2px;font-size:var(--text-base);font-weight:700;color:var(--text-primary);text-align:right}.confirm-modal-dialog--game-rules .confirm-modal-actions .btn{display:inline-flex;align-items:center;gap:6px}.game-layout{flex:1;display:flex;overflow:hidden}.game-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0}.game-opponents{display:flex;flex-wrap:nowrap;gap:8px;padding:8px 12px;border-bottom:2px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;overflow-x:auto;scroll-padding-inline:12px;-webkit-overflow-scrolling:touch}.game-opponents>.opponent{flex:0 0 auto;width:168px;max-width:none}.game-rail{width:260px;flex-shrink:0;min-height:0;display:flex;flex-direction:column;border-left:2px solid var(--border-color);background:var(--bg-card)}.game-opponents--rail{flex:1 1 48%;min-height:0;flex-direction:column;flex-wrap:nowrap;overflow-x:hidden;overflow-y:auto;border-bottom:none;scroll-padding-block:8px}.game-opponents--rail>.opponent{flex:0 0 auto;width:100%;min-width:0;max-width:none}.game-rail .game-sidebar-tabs{border-top:none}.game-rail .game-sidebar-content{flex:1 1 auto;min-height:0}.game-board-stage{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.game-board-stage>.play-area{flex:1;min-height:0}.game-sidebar{width:280px;flex-shrink:0;min-height:0;border-left:2px solid var(--border-color);display:flex;flex-direction:column;background:var(--bg-card)}.game-sidebar-tabs{display:flex;border-bottom:2px solid var(--border-color);flex-shrink:0}.game-sidebar-collapse-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:32px;border:none;border-radius:0;padding:8px 0;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border-right:1px solid var(--border-color)}.game-sidebar-collapse-btn:hover{background:var(--bg-card);color:var(--text-primary)}.game-sidebar-tabs button:not(.game-sidebar-collapse-btn){flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:0;padding:8px;font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;background:var(--bg-secondary);color:var(--text-secondary)}.game-sidebar-tabs button:not(.game-sidebar-collapse-btn)+button:not(.game-sidebar-collapse-btn){border-left:1px solid var(--border-color)}.game-sidebar-tabs button:not(.game-sidebar-collapse-btn).active{background:var(--bg-card);color:var(--text-primary)}.game-sidebar-expand-rail{position:relative;flex:0 0 28px;align-self:stretch;display:flex;align-items:center;justify-content:center;margin:0;padding:0;border:none;border-left:2px solid var(--border-color);border-radius:0;background:var(--bg-card);color:var(--text-secondary);cursor:pointer}.game-sidebar-expand-rail:hover{background:var(--bg-secondary);color:var(--text-primary)}.game-sidebar-expand-rail-unread{position:absolute;top:10px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);box-sizing:content-box}.game-sidebar-expand-rail:hover .game-sidebar-expand-rail-unread{border-color:var(--bg-secondary)}.game-chat-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;font-size:var(--text-xs);font-weight:700;line-height:1;background:var(--accent);color:var(--on-accent)}.game-sidebar-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.game-sidebar-content .game-log,.game-sidebar-content .game-settings-panel{flex:1;min-height:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.game-sidebar-content .chat{flex:1;min-height:0;height:auto;overflow:hidden}.game-sidebar-content .chat .chat-messages{flex:1;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.game-mobile-overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2490;margin:0;padding:0;border:none;background:var(--overlay);cursor:default}.game-mobile-portrait-dock{position:fixed;left:0;right:0;bottom:0;z-index:150;display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:8px max(12px,env(safe-area-inset-right,0px)) max(10px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:transparent;border:none;box-shadow:none;pointer-events:none}.game-mobile-portrait-dock-main{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-start;gap:12px;min-width:0;pointer-events:none}.game-mobile-portrait-dock-toggle,.game-mobile-portrait-dock-btn{position:relative;pointer-events:auto;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:48px;height:48px;min-height:48px;margin:0;padding:0;border:2px solid var(--border-color);border-radius:50%;background:color-mix(in srgb,var(--bg-card) 94%,transparent);color:var(--text-primary);font-family:var(--font-body);cursor:pointer;box-shadow:0 2px 10px color-mix(in srgb,var(--text-primary) 12%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.game-mobile-portrait-dock-toggle:hover,.game-mobile-portrait-dock-btn:hover{background:var(--bg-secondary)}.game-mobile-portrait-dock-btn.active{color:var(--accent);border-color:var(--accent);background:var(--bg-card)}.game-mobile-portrait-dock-toggle .game-chat-unread-badge,.game-mobile-portrait-dock-btn .game-chat-unread-badge{position:absolute;top:-2px;right:-2px}.game-mobile-portrait-sheet{position:fixed;left:0;right:0;bottom:0;z-index:2500;display:flex;flex-direction:column;max-height:min(70vh,calc(var(--app-height, 100dvh) - var(--game-header-height, 42px)));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-card);border-top:2px solid var(--border-color);border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 -8px 28px color-mix(in srgb,var(--text-primary) 14%,transparent);overflow:hidden}.game-mobile-portrait-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;padding:8px 10px;border-bottom:2px solid var(--border-color)}.game-mobile-portrait-sheet-title{font-family:var(--font-body);font-size:var(--text-base);font-weight:700}.game-mobile-portrait-sheet-header .modal-close{position:static;flex-shrink:0}.game-mobile-portrait-sheet-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.game-mobile-portrait-sheet-body .game-log,.game-mobile-portrait-sheet-body .game-settings-panel{flex:1;min-height:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.game-mobile-portrait-sheet-body .chat{flex:1;min-height:0;height:auto;overflow:hidden}.game-mobile-portrait-sheet-body .chat .chat-messages{flex:1;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.game-mobile-portrait-sheet-body .chat .chat-input{flex-shrink:0;position:sticky;bottom:0;background:var(--bg-card);z-index:1;padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}.game-ended{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;overflow-y:auto;padding:20px 16px 32px}@media(max-width:900px){.game-rail,.game-sidebar,.game-sidebar-expand-rail{display:none}.game-header-actions{display:flex;min-width:0}.game-header-actions .game-header-btn--menu,.game-header .game-header-enquiry-desktop{display:none}body:has(.game-header-menu) .app-controls--floating .app-control-btn{display:none}.game-header-menu{display:inline-flex}.game-header{padding:max(2px,env(safe-area-inset-top,0px)) 10px calc(var(--header-stripe-h) + 4px)}.game-header-btn--primary{width:38px;min-width:38px;padding:0;gap:0}.game-header-btn--primary span{display:none}}@media(max-width:600px){.game-opponents{padding:6px 8px;gap:6px}.game-turn-info{font-size:var(--text-md)}}.pending-overlay.modal-overlay--peeking,.target-overlay.modal-overlay--peeking{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none;overflow:hidden}.modal-overlay--peeking .pending-modal,.modal-overlay--peeking .target-modal{background:transparent;border-color:transparent;box-shadow:none}.modal-overlay--peeking .pending-modal-body,.modal-overlay--peeking .pending-modal-footer,.modal-overlay--peeking .target-modal-body,.modal-overlay--peeking .target-modal-footer,.modal-overlay--peeking .modal-close-btn,.modal-overlay--peeking .modal-peek-hint,.modal-overlay--peeking .modal-peek-enter{opacity:0;pointer-events:none;transition:opacity .15s ease}.modal-overlay--peeking .modal-peek-exit{opacity:1;pointer-events:auto}.modal-peek-hint{margin:0;padding:10px 16px;border-top:1px solid var(--border-color);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-align:center;transition:opacity .15s ease}.modal-peek-enter,.modal-peek-exit{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;padding:12px 16px;border:none;background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);font-weight:700;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .15s ease,color .15s ease,opacity .15s ease}.modal-peek-enter{width:100%;border-top:1px solid var(--border-color)}.modal-peek-enter:hover{background:var(--bg-card)}.modal-peek-exit{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom,0px));z-index:210;transform:translate(-50%);width:auto;min-width:min(92vw,280px);padding:10px 18px;border:var(--stroke) solid var(--border-color);border-radius:999px;background:color-mix(in srgb,var(--bg-card) 94%,transparent);box-shadow:0 4px 18px color-mix(in srgb,var(--text-primary) 16%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-peek-exit:hover{border-color:var(--accent);color:var(--accent)}.game--table-peeking .game-mobile-portrait-dock{pointer-events:auto}.game-room{display:flex;flex-direction:column;height:var(--app-height, 100dvh);max-height:var(--app-height, 100dvh);min-height:0;overscroll-behavior:none}.game-room--offline .lobby,.game-room--offline .game{pointer-events:none;opacity:.72}.game-room--offline .lobby-actions,.game-room--offline .game-header-btn:not(:disabled),.game-room--offline .game-header-menu-toggle,.game-room--offline .game-header .settings-toggle,.game-room--offline .game-header .app-control-btn,.game-room--offline .game-end-actions{pointer-events:auto;opacity:1}.game-room .lobby{flex:1;min-height:0}.game-room--loading{position:relative;isolation:isolate}.game-room-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:100%;font-family:var(--font-body);font-size:var(--text-xl);color:var(--text-secondary);padding:24px}:root{--paper: var(--bg-card);--ink: var(--text-primary);--hk-text-muted: var(--text-secondary);--stroke-thin: var(--stroke) solid var(--border-color);--stroke-ink: var(--border-strong);--shadow-control: var(--shadow);--shojo-lavender-hover: var(--bg-secondary);--hk-gold: var(--gold);--panel-surface-mix: 100%}.admin-auth-loading{min-height:40vh;display:grid;place-items:center;color:var(--text-secondary)}.admin-spectate-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:var(--bg-card);border-bottom:var(--stroke) solid var(--border-color)}.admin-spectate-players-panel{margin:12px;padding:12px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card)}.admin-spectate-players-title{margin:0 0 10px;font-size:var(--text-lg)}.admin-spectate-player-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px dashed color-mix(in srgb,var(--border-color) 55%,transparent)}.admin-spectate-player-row:last-child{border-bottom:none}.admin-spectate-player-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-panel-tab,.admin-empty,.admin-game-card,.admin-game-card-actions{--admin-panel-bg: color-mix(in srgb, var(--paper) var(--panel-surface-mix), transparent)}.admin-panel-tabs{display:flex;flex-wrap:wrap;gap:10px;width:100%}.admin-panel-tab{flex:1;min-width:0}.admin-panel-tab.active{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-bg)}.admin-panel-tab.active:hover:not(:disabled){background:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-text);border-color:var(--btn-primary-hover-bg)}.admin-panel-search{position:relative;width:100%;margin-bottom:0}.admin-panel-search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--hk-text-muted);pointer-events:none}.admin-panel-search-input{box-sizing:border-box;width:100%;min-height:var(--btn-height);padding:9px 12px 9px 2.35rem;font-size:var(--text-base)}.mobile-touch-platform .admin-panel-search-input{font-size:16px}.admin-history-player-worth{flex-shrink:0;font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;color:var(--hk-gold);margin-left:auto}.admin-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;min-width:2.25rem;min-height:2.25rem;padding:0;flex-shrink:0;box-sizing:border-box;line-height:1}.btn.admin-toolbar-btn{width:2.25rem}.admin-panel-error{margin-bottom:1rem}.admin-spectate-btn{background:var(--night-raised);color:var(--ink);border:var(--stroke-thin);box-shadow:var(--shadow-control)}.admin-spectate-btn:hover:not(:disabled){background:var(--shojo-lavender-hover);color:var(--ink);border-color:var(--stroke-ink)}.admin-restart-btn{background:var(--shojo-mint);color:var(--ink);border:var(--stroke-thin);box-shadow:var(--shadow-control)}.admin-restart-btn:hover:not(:disabled){background:var(--shojo-sky);color:var(--ink)}.admin-delete-btn{background:var(--shojo-peach);color:var(--ink);border:var(--stroke-thin);box-shadow:var(--shadow-control)}.admin-delete-btn:hover:not(:disabled){background:var(--shojo-hot);color:var(--ink-light)}.admin-empty{text-align:center;color:var(--hk-text-muted);padding:3rem 1rem;background:var(--admin-panel-bg);border:var(--stroke);box-shadow:var(--shadow-hard)}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.25rem}.admin-pagination-status{color:var(--hk-text-muted);font-size:.9rem;min-width:10rem;text-align:center}.admin-game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.admin-game-card{position:relative;background:var(--admin-panel-bg);border:var(--stroke);padding:1rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:var(--shadow-hard);transform:none}.admin-game-card:hover,.admin-game-card:focus-within{border-color:var(--stroke-ink)}.admin-game-card-top{position:relative;display:flex;align-items:flex-start}.admin-game-header{display:flex;flex-direction:column;gap:.35rem;flex:1;min-width:0}.admin-game-card-actions{position:absolute;top:0;right:0;z-index:2;display:flex;align-items:center;gap:.35rem;padding:.15rem;background:var(--admin-panel-bg);opacity:0;pointer-events:none;transition:opacity .15s ease}.admin-game-card:hover .admin-game-card-actions,.admin-game-card:focus-within .admin-game-card-actions{opacity:1;pointer-events:auto}@media(hover:none){.admin-game-card-actions{opacity:1;pointer-events:auto}.admin-game-header{padding-right:10.05rem}.admin-game-card:has(.admin-game-card-actions--single) .admin-game-header{padding-right:2.6rem}}.admin-game-badges{display:flex;align-items:center;flex-wrap:nowrap;gap:.35rem;min-width:0}.admin-room-code{font-family:var(--font-primary);font-size:1.1rem;font-weight:700;color:var(--hk-gold);flex-shrink:0}.admin-game-status-badges{display:inline-flex;align-items:center;flex-shrink:0;gap:.35rem}.admin-status{display:inline-flex;align-items:center;flex-shrink:0;font-size:.7rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;border:1px solid transparent;white-space:nowrap;line-height:1}.admin-status-lobby{color:#7ec8e3;background:#7ec8e326;border-color:#7ec8e347}.admin-status-playing{color:#8fd48a;background:#8fd48a26;border-color:#8fd48a52}.admin-status-ended{color:#b8b8c8;background:#b8b8c81f;border-color:#b8b8c838}.admin-status-inactive{color:#f0c674;background:#f0c67424;border-color:#f0c6744d}.admin-status-spectators{gap:.25rem;color:#c9b8ff;background:#c9b8ff24;border-color:#c9b8ff47}[data-theme=light] .admin-status-lobby{color:#1a6a8a;background:#7ec8e347;border-color:#7ec8e373}[data-theme=light] .admin-status-playing{color:#1a6a28;background:#4ec86038;border-color:#4ec86061}[data-theme=light] .admin-status-ended{color:#5a5a6a;background:#5a5a6a1a;border-color:#5a5a6a33}[data-theme=light] .admin-status-inactive{color:#8a6018;background:#f0c67447;border-color:#f0c6746b}[data-theme=light] .admin-status-spectators{color:#5a3f9e;background:#c9b8ff47;border-color:#c9b8ff6b}.admin-status-history-completed{color:#8fd48a;background:#8fd48a26;border-color:#8fd48a52}.admin-status-history-admin-terminated{color:#f0a0a0;background:#f0808029;border-color:#f0808052}.admin-status-history-admin-set-winner{color:#f0c674;background:#f0c67429;border-color:#f0c67457}.admin-status-history-host-restart,.admin-status-history-admin-restart{color:#7ec8e3;background:#7ec8e326;border-color:#7ec8e347}.admin-status-history-room-deleted{color:#e88888;background:#e878782e;border-color:#e878785c}.admin-status-history-room-closed,.admin-status-history-ended{color:#b8b8c8;background:#b8b8c81f;border-color:#b8b8c838}[data-theme=light] .admin-status-history-completed{color:#1a6a28;background:#4ec86038;border-color:#4ec86061}[data-theme=light] .admin-status-history-admin-terminated{color:#9a2828;background:#e878783d;border-color:#e878786b}[data-theme=light] .admin-status-history-admin-set-winner{color:#8a6018;background:#f0c67447;border-color:#f0c6746b}[data-theme=light] .admin-status-history-host-restart,[data-theme=light] .admin-status-history-admin-restart{color:#1a6a8a;background:#7ec8e347;border-color:#7ec8e373}[data-theme=light] .admin-status-history-room-deleted{color:#9a2828;background:#e8787842;border-color:#e8787870}[data-theme=light] .admin-status-history-room-closed,[data-theme=light] .admin-status-history-ended{color:#5a5a6a;background:#5a5a6a1a;border-color:#5a5a6a33}.admin-status-enquiry-bug{color:#f0a0a0;background:#f0808029;border-color:#f0808052}.admin-status-enquiry-idea{color:#7ec8e3;background:#7ec8e326;border-color:#7ec8e347}.admin-status-enquiry-other{color:#c0a8e0;background:#c0a8e029;border-color:#c0a8e052}[data-theme=light] .admin-status-enquiry-bug{color:#9a3030;background:#f0808033;border-color:#f0808061}[data-theme=light] .admin-status-enquiry-idea{color:#1a6a8a;background:#7ec8e338;border-color:#7ec8e361}[data-theme=light] .admin-status-enquiry-other{color:#5a4080;background:#c0a8e033;border-color:#c0a8e061}.admin-enquiry-message{margin:0;font-size:.86rem;line-height:1.6;color:var(--ink-muted);white-space:pre-wrap;overflow-wrap:anywhere}.admin-game-card .admin-enquiry-message{margin-top:.75rem}.admin-game-summary{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem;color:var(--hk-text-muted)}.admin-game-summary>span{display:block}.admin-inactive-countdown{margin-left:auto;flex-shrink:0;font-size:.7rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;padding:.2rem .55rem;border-radius:999px;border:1px solid rgba(240,198,116,.3);color:#f0c674;background:#f0c67424}[data-theme=light] .admin-inactive-countdown{color:#8a6018;background:#f0c67447;border-color:#f0c6746b}.admin-player-details{border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent);padding-top:.35rem}.admin-player-details-summary{display:flex;align-items:center;gap:.35rem;cursor:pointer;font-size:.85rem;color:var(--hk-text-muted);-webkit-user-select:none;user-select:none;list-style:none;padding:.25rem 0;border-radius:var(--radius-sm);transition:color .15s ease,background .15s ease}.admin-player-details-summary::-webkit-details-marker{display:none}.admin-player-details-summary:hover{color:var(--hk-text)}.admin-player-chevron{flex-shrink:0;transition:transform .15s ease}.admin-player-details[open] .admin-player-chevron{transform:rotate(90deg)}.admin-player-count{font-variant-numeric:tabular-nums;color:var(--hk-text);font-weight:600}.admin-player-details .admin-player-list{margin-top:.5rem}.admin-settings-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.35rem}.admin-settings-row{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.35rem .75rem;font-size:.8rem}.admin-settings-row dt{color:var(--hk-text-muted)}.admin-settings-row dd{margin:0;min-width:0;color:var(--hk-text);font-weight:600;text-align:left}.admin-player-list{list-style:none;display:flex;flex-direction:column;gap:.35rem}.admin-player-list li{display:flex;align-items:flex-start;gap:.55rem;font-size:.85rem;padding:.45rem .55rem;background:color-mix(in srgb,var(--night-raised) 88%,transparent);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-radius:var(--radius-sm)}.admin-player-list li.bankrupt{opacity:.55}.admin-player-list li.current-turn{background:#4ec86024;border-color:#8fd48a73;box-shadow:inset 3px 0 #8fd48a}.admin-player-list li.winner{opacity:1;background:#ffc6282e;border-color:#ffc8308c;box-shadow:0 0 0 1px #ffc83033,inset 0 0 12px #ffc83014}.admin-player-list li.winner .admin-player-name{color:#ffe08a;font-weight:600}[data-theme=light] .admin-player-list li{background:color-mix(in srgb,var(--night-plum) 6%,white);border-color:color-mix(in srgb,var(--ink) 12%,transparent)}[data-theme=light] .admin-player-list li.current-turn{background:#4ec86029;border-color:#4ec86061}[data-theme=light] .admin-player-list li.winner{background:#ffc62838;border-color:#c8961473}[data-theme=light] .admin-player-list li.winner .admin-player-name{color:#8a6018}.admin-player-token{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.05rem;color:#fff}.admin-player-token svg{display:block}.admin-player-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.admin-player-primary{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;min-width:0}.admin-player-ip{font-size:.75rem;color:var(--hk-text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;line-height:1.25;white-space:normal;overflow-wrap:anywhere;word-break:break-all}.admin-player-name{flex:0 1 auto;min-width:0;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-player-list .player-badge-slot{display:inline-flex;align-items:center;flex:1 1 auto;flex-wrap:wrap;justify-content:flex-start;gap:.3rem;min-height:0;margin-top:0}.admin-deduct-input{display:flex;flex-direction:column;gap:.35rem;margin-top:.75rem}.admin-deduct-input label{font-size:.8rem;color:var(--hk-text-muted)}.admin-deduct-input input{padding:.5rem .75rem;border:var(--stroke-thin);border-radius:0;background:var(--paper-inset);color:var(--ink);font-size:1rem;width:100%;box-shadow:var(--inset-shadow-control)}.btn-xs{padding:.2rem .4rem;font-size:.75rem;min-height:unset}.spectator-view{position:relative;min-height:var(--app-height)}.admin-spectate:has(.admin-spectate-lobby){position:relative;min-height:var(--app-height)}.admin-spectate:has(.admin-spectate-game),.admin-spectate:has(.admin-spectate-loading){height:var(--app-height);display:flex;flex-direction:column;overflow:hidden}.admin-spectate-badge,.spectator-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;height:var(--game-chrome-control-height, 1.625rem);padding:0 .65rem;border-radius:0;background:var(--night-raised);color:var(--ink);border:var(--stroke-thin);box-shadow:var(--shadow-control);pointer-events:none;font-size:.75rem;line-height:1;white-space:nowrap}.admin-spectate-badge span,.spectator-badge span{display:block;line-height:1}.admin-spectate-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--hk-text-muted)}.admin-spectate-game{flex:1;min-height:0;height:100%}.admin-spectate-game.game{height:100%}.admin-spectate-lobby.lobby,.spectator-lobby.lobby{width:100%}.admin-spectate-lobby-error{margin:-.75rem 0 1rem;text-align:center;font-size:.85rem}.admin-player-list-item{overflow:hidden}.admin-spectate-player-actions{position:absolute;top:50%;right:.35rem;z-index:2;display:flex;align-items:center;gap:.25rem;padding:.2rem .3rem;transform:translateY(-50%)}@media(hover:hover){.admin-spectate-players .admin-spectate-player-actions{display:none}.admin-spectate-players .admin-player-list-item:hover .admin-spectate-player-actions,.admin-spectate-players .admin-player-list-item:focus-within .admin-spectate-player-actions{display:flex}}.admin-action-modal-input{margin-top:1rem}.spin{animation:spin .8s linear infinite}:root,[data-theme=light]{color-scheme:light;--bg-primary: #e6e4de;--bg-secondary: #d9d7d0;--bg-card: #f3f2ec;--text-primary: #16171c;--text-secondary: #5c5e68;--border-color: #1c1d24;--border-strong: #1c1d24;--accent: #d1202f;--accent-hover: #b11b28;--scrollbar: rgba(22, 23, 28, .2);--overlay: rgba(22, 23, 28, .46);--shadow: 0 2px 10px rgba(22, 23, 28, .1);--uno-red: #d1202f;--uno-yellow: #f0c400;--uno-green: #2e9b44;--uno-blue: #1a6fbf;--color-stripe: linear-gradient( 90deg, var(--uno-red) 0 25%, var(--uno-yellow) 25% 50%, var(--uno-green) 50% 75%, var(--uno-blue) 75% 100% );--btn-primary-bg: #16171c;--btn-primary-text: #f3f2ec;--btn-primary-hover-bg: #2c2e38;--btn-primary-hover-text: #f3f2ec;--btn-emphasis-bg: #16171c;--btn-emphasis-text: #f3f2ec;--btn-emphasis-hover-bg: #2c2e38;--prompt-action-bg: #fff6c8;--prompt-action-border: #f0c400;--prompt-action-text: #16171c;--prompt-warn-bg: #fde8ea;--prompt-warn-border: #d1202f;--prompt-warn-text: #d1202f;--prompt-info-bg: #dceaf6;--prompt-info-border: #1a6fbf;--prompt-info-text: #123a66;--flash-bg: #fff6c8;--flash-border: #f0c400;--flash-glow: rgba(240, 196, 0, .5);--gold: #f0c400;--on-gold: #16171c;--on-accent: #fff;--rent-accent: #c49a00;--success: #2e9b44;--teal: #1a6fbf;--card-back: #d1202f;--font-display: "Fredoka", sans-serif;--font-logo-zh: "Noto Sans TC", sans-serif;--font-body: "Noto Sans TC", sans-serif;--text-2xs: 11px;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-md: 17px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 22px;--text-3xl: 26px;--switch-track-off: #c6c4bc;--switch-track-off-hover: #b8b6ae;--switch-track-on: #d1202f;--switch-track-on-hover: #b11b28;--switch-thumb: #f3f2ec;--radius: 4px;--radius-sm: 2px;--stroke: 2px;--modal-action-width: min(480px, calc(100vw - 24px) );--modal-compact-width: min(360px, calc(100vw - 24px) );--card-face: #fff;--card-ink: #1a1a1a;--card-ink-muted: #555;--card-ink-subtle: #444;--card-value-bg: rgba(255, 255, 255, .95);--card-value-border: #1a1a1a;--card-divider: #1a1a1a;--card-segment-border: rgba(0, 0, 0, .15);--card-shadow-selected: 0 8px 20px rgba(0, 0, 0, .2);--uno-card-edge: #141414;--watermark-opacity: .04;--z-error-toast: 1250}[data-theme=dark]{color-scheme:dark;--bg-primary: #121318;--bg-secondary: #1a1c24;--bg-card: #22242e;--text-primary: #eceaf0;--text-secondary: #9a96a6;--border-color: #6a6e7c;--border-strong: #8a8e9c;--accent: #ee4a56;--accent-hover: #d1202f;--scrollbar: rgba(236, 234, 240, .16);--overlay: rgba(6, 7, 12, .76);--shadow: 0 2px 14px rgba(0, 0, 0, .5);--uno-red: #ee4a56;--uno-yellow: #f0c400;--uno-green: #3cb85e;--uno-blue: #4a9adf;--color-stripe: linear-gradient( 90deg, var(--uno-red) 0 25%, var(--uno-yellow) 25% 50%, var(--uno-green) 50% 75%, var(--uno-blue) 75% 100% );--btn-primary-bg: #eceaf0;--btn-primary-text: #121318;--btn-primary-hover-bg: #ffffff;--btn-primary-hover-text: #121318;--btn-emphasis-bg: #eceaf0;--btn-emphasis-text: #121318;--btn-emphasis-hover-bg: #ffffff;--prompt-action-bg: #3a3420;--prompt-action-border: #f0c400;--prompt-action-text: #f5ecc0;--prompt-warn-bg: #3a2226;--prompt-warn-border: #ee4a56;--prompt-warn-text: #f5a8ae;--prompt-info-bg: #1e2c3e;--prompt-info-border: #4a9adf;--prompt-info-text: #d4e4f6;--flash-bg: #3a3420;--flash-border: #f0c400;--flash-glow: rgba(240, 196, 0, .4);--gold: #f0c400;--on-gold: #121318;--on-accent: #fff;--rent-accent: #f0c400;--success: #3cb85e;--teal: #4a9adf;--card-back: #b11b28;--font-display: "Fredoka", sans-serif;--font-logo-zh: "Noto Sans TC", sans-serif;--font-body: "Noto Sans TC", sans-serif;--switch-track-off: #2e313c;--switch-track-off-hover: #3c404c;--switch-track-on: #ee4a56;--switch-track-on-hover: #d1202f;--switch-thumb: #eceaf0;--stroke: 2px;--card-face: #f4f3ef;--card-ink: #16171c;--card-ink-muted: #5c5e68;--card-ink-subtle: #3c3e48;--card-value-bg: rgba(255, 255, 255, .92);--card-value-border: #3c3e48;--card-divider: rgba(22, 23, 28, .16);--card-segment-border: rgba(0, 0, 0, .1);--card-shadow-selected: 0 8px 24px rgba(0, 0, 0, .55);--uno-card-edge: color-mix(in srgb, #fff 86%, var(--uno-fill, #171717));--watermark-opacity: .055}*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html,body,#root{height:100%}html{font-size:112.5%;overflow:hidden;overscroll-behavior:none}body{font-family:var(--font-body);font-size:var(--text-base);background:var(--bg-primary);color:var(--text-primary);overflow:hidden;overscroll-behavior:none;transition:background .2s,color .2s}html.landing-scroll,body.landing-scroll{height:auto;min-height:100vh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:auto;-webkit-overflow-scrolling:touch}html.landing-scroll #root{height:auto;min-height:100vh}html:not(.landing-scroll),html:not(.landing-scroll) body,html:not(.landing-scroll) #root{height:var(--app-height, 100dvh);max-height:var(--app-height, 100dvh)}html:not(.landing-scroll) #root{overflow:hidden}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}h1,h2,h3,h4,h5,h6,select,textarea,option{font-family:var(--font-body)}select{border:2px solid var(--border-strong, var(--border-color));padding:8px 12px;border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--bg-card);color:var(--text-primary);outline:none}select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.font-logo,.logo,.home-title,.lobby-title,.game-title,.play-area-watermark-title,.card-back-text{font-family:var(--font-display);font-weight:700;font-optical-sizing:auto}.color-stripe{display:block;height:5px;width:100%;background:var(--color-stripe)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:3px}::-webkit-scrollbar-track{background:transparent}button{cursor:pointer;font-family:var(--font-body);border:2px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);padding:9px 16px;border-radius:var(--radius-sm);font-size:var(--text-base);transition:background .15s,transform .1s,color .15s,border-color .15s}button:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}button:active{transform:scale(.97)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-bg);font-weight:700}button.primary:hover:not(:disabled){background:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-text);border-color:var(--btn-primary-hover-bg)}input{font-family:var(--font-body);border:2px solid var(--border-color);padding:9px 12px;border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--bg-card);color:var(--text-primary);outline:none}input:focus{box-shadow:0 0 0 2px var(--scrollbar)}input::placeholder{color:var(--text-secondary)}@property --uno-orbit{syntax: "<angle>"; inherits: false; initial-value: 0deg;}.uno-hint-orbit,.uno-pile--flash .uno-pile-face,.hand-card-wrap--cut-hint{position:relative}.uno-hint-orbit:after,.uno-pile--flash .uno-pile-face:after,.hand-card-wrap--cut-hint:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;z-index:6;border-radius:18px;padding:4px;pointer-events:none;background:repeating-conic-gradient(from var(--uno-orbit),#141414 0 5deg,#ffe500 5deg 13deg,transparent 13deg 20deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:uno-orbit-spin 14s linear infinite}@keyframes uno-orbit-spin{to{--uno-orbit: 360deg}}.error-toast-portal{position:fixed;top:calc(env(safe-area-inset-top,0px) + .75rem);right:.75rem;left:auto;z-index:var(--z-error-toast);display:flex;justify-content:flex-end;padding:0;pointer-events:none}.game-room .error-toast-portal{top:calc(env(safe-area-inset-top,0px) + 3.25rem)}.error-toast{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;width:max-content;max-width:min(calc(100vw - 1.5rem),300px);padding:.75rem .85rem;border:2px solid var(--error-toast-border);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--error-toast-bg);color:var(--error-toast-text);animation:error-toast-in .24s ease-out;--error-toast-bg: var(--bg-card);--error-toast-text: var(--text-primary);--error-toast-border: var(--prompt-warn-border);--error-toast-icon: var(--prompt-warn-text);--error-toast-close-bg: rgba(0, 0, 0, .08);--error-toast-close-hover: rgba(0, 0, 0, .14);--error-toast-close-color: var(--text-secondary)}[data-theme=dark] .error-toast{--error-toast-close-bg: rgba(255, 255, 255, .08);--error-toast-close-hover: rgba(255, 255, 255, .14)}.error-toast-icon{color:var(--error-toast-icon);flex-shrink:0}.error-toast-message{margin:0;font-size:var(--text-sm);font-weight:700;line-height:1.45;letter-spacing:.01em;text-wrap:pretty}.error-toast-close{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;margin:0;padding:0;border:none;border-radius:999px;background:var(--error-toast-close-bg);color:var(--error-toast-close-color);cursor:pointer}.error-toast-close:hover{background:var(--error-toast-close-hover)}@keyframes error-toast-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}:root{--btn-height: 48px;--btn-height-compact: 40px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--btn-height);padding:10px 16px;font-family:var(--font-body);font-size:var(--text-base);font-weight:700;line-height:1.2;border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background .15s,transform .1s,color .15s,border-color .15s}.btn:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn svg{flex-shrink:0}.btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-bg)}.btn--primary:hover:not(:disabled){background:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-text);border-color:var(--btn-primary-hover-bg)}.btn--compact{min-height:var(--btn-height-compact);padding:6px 12px;font-size:var(--text-sm)}.btn-row{display:flex;gap:10px;width:100%}.btn-row>.btn,.btn-row>button{flex:1;min-width:0}.btn-row--single{justify-content:center}.btn-row--single>.btn,.btn-row--single>button{flex:1;max-width:calc(50% - 5px)}.btn-row--centered{justify-content:center;width:auto;max-width:100%}.btn-row--centered>.btn,.btn-row--centered>button{flex:0 1 auto;min-width:160px}@media(max-width:400px){.btn{padding:10px 12px;gap:4px}.btn span{white-space:nowrap}}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1400;display:grid;place-items:center;padding:16px;background:var(--overlay)}.confirm-modal-dialog{position:relative;width:min(100%,420px);max-height:min(90vh,720px);overflow-y:auto;padding:28px;border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow)}.confirm-modal-dialog .modal-close{top:12px;right:12px;width:40px;height:40px;min-width:40px;min-height:40px}.confirm-modal-dialog.confirm-modal-dialog--enquiry{width:min(100%,480px)}.confirm-modal-dialog--danger{border-color:color-mix(in srgb,var(--accent) 55%,var(--border-color))}.confirm-modal-title{margin:0 0 10px;padding-right:44px;font-size:var(--text-3xl);font-weight:700;line-height:1.25}.confirm-modal-message{margin:0;font-size:var(--text-lg);line-height:1.55;color:var(--text-secondary)}.confirm-modal-settings{margin:12px 0 0;padding:10px 12px;background:var(--bg-secondary);border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm)}.confirm-modal-settings--compact{max-height:none;overflow:visible}.confirm-modal-setting-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:4px 0}.confirm-modal-setting-row:not(:last-child){border-bottom:1px dashed color-mix(in srgb,var(--border-color) 55%,transparent)}.confirm-modal-setting-row dt{margin:0;font-size:var(--text-base);font-weight:700;color:var(--text-secondary);flex-shrink:0}.confirm-modal-setting-row dd{margin:0;font-size:var(--text-lg);font-weight:700;color:var(--text-primary);text-align:right}.confirm-modal-message--note{margin-top:12px;font-size:var(--text-base)}.confirm-modal-message--error{margin-top:12px;font-size:var(--text-base);color:var(--accent);font-weight:700}.confirm-modal-actions{display:flex;justify-content:stretch;gap:12px;margin-top:24px}.confirm-modal-actions .btn{flex:1;min-width:0;min-height:var(--btn-height);padding:10px 16px;font-size:var(--text-base)}.enquiry-modal-form{margin-top:16px}.enquiry-modal-form .form-group{margin-bottom:14px}.enquiry-modal-form .form-group:last-of-type{margin-bottom:0}.enquiry-modal-form label,.enquiry-modal-type-label{display:block;margin-bottom:8px;font-size:var(--text-base);font-weight:700;color:var(--text-primary)}.choice-btn-group{display:flex;align-items:stretch;width:100%;gap:6px}.choice-btn{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:var(--btn-height);padding:0 12px;background:var(--bg-secondary);border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-weight:700;font-size:var(--text-base);white-space:nowrap}.choice-btn.selected{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-text)}.choice-btn.selected:hover:not(:disabled){background:var(--btn-primary-hover-bg);border-color:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-text)}.choice-btn:disabled{opacity:.45;cursor:not-allowed}.enquiry-modal-textarea,.enquiry-modal-form input[type=email]{width:100%;box-sizing:border-box;padding:10px 12px;background:var(--bg-card);border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-base);font-family:var(--font-body);line-height:1.45}.enquiry-modal-textarea{min-height:5.5rem;resize:vertical}.enquiry-modal-textarea:focus,.enquiry-modal-form input[type=email]:focus{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.enquiry-modal-textarea:disabled,.enquiry-modal-form input[type=email]:disabled{opacity:.65;cursor:not-allowed}.enquiry-modal-body-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}.enquiry-modal-body-heading label{margin-bottom:0}.enquiry-modal-char-count{flex-shrink:0;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary)}.enquiry-modal-turnstile{display:flex;justify-content:center;min-height:65px}.enquiry-modal-success{margin:16px 0 0;font-size:var(--text-lg);line-height:1.5;font-weight:700;color:var(--text-primary)}.enquiry-modal-error{margin:12px 0 0;font-size:var(--text-base);line-height:1.4;color:var(--accent)}
