/* GBGL Dual Theme R1: semantic presentation tokens over the preserved R3 DOM. */
:root,
html[data-theme=day]{
 color-scheme:light;
 --bg-base:#d7e3eb;--bg-secondary:#c8d8e3;--bg-elevated:#edf4f7;
 --surface-primary:#eef4f7;--surface-secondary:#e1ebf0;--surface-glass:rgba(238,245,248,.9);--surface-interactive:#d5e5ed;
 --text-primary:#102637;--text-secondary:#385468;--text-muted:#617a8c;
 --border-primary:#8faaba;--border-subtle:rgba(73,105,125,.24);
 --accent-primary:#087faf;--accent-secondary:#087f82;--accent-gold:#987440;
 --input-bg:#f5f9fb;--input-border:#7899ad;--input-text:#102637;
 --button-primary-bg:#087eaf;--button-primary-text:#fff;--button-secondary-bg:#d6e5ed;
 --success:#147650;--warning:#8b641c;--danger:#a93245;--info:#126f96;
 --shadow-soft:0 8px 24px rgba(25,51,70,.14);--shadow-strong:0 18px 48px rgba(22,43,59,.24);--overlay:rgba(18,35,49,.48);
 --table-felt:#17736c;--table-rail:#c4a66b;--table-metal:#e0cfa7;--player-panel:#d3e2e9;--hero-panel:#d9f0f2;--pot-surface:#efe1ba;
 --bg:var(--bg-base);--panel:var(--surface-primary);--panel2:var(--surface-secondary);--line:var(--border-primary);--text:var(--text-primary);--muted:var(--text-muted);--cyan:var(--accent-primary);--blue:var(--accent-primary);--gold:var(--accent-gold);--red:var(--danger);--green:var(--success);--shadow:var(--shadow-soft)
}
html[data-theme=night]{
 color-scheme:dark;
 --bg-base:#071421;--bg-secondary:#0b1c2b;--bg-elevated:#132b3d;
 --surface-primary:#10283a;--surface-secondary:#18354a;--surface-glass:rgba(14,37,54,.9);--surface-interactive:#203e53;
 --text-primary:#f1f7fc;--text-secondary:#c4d6e2;--text-muted:#98b1c3;
 --border-primary:#436a83;--border-subtle:rgba(105,146,171,.25);
 --accent-primary:#62d4f4;--accent-secondary:#6bd8c9;--accent-gold:#e8ca86;
 --input-bg:#0e2335;--input-border:#52758c;--input-text:#f4f9fc;
 --button-primary-bg:#147fb7;--button-primary-text:#fff;--button-secondary-bg:#203d52;
 --success:#75d5a5;--warning:#e3bd6d;--danger:#ef7c8d;--info:#67cdeb;
 --shadow-soft:0 10px 28px rgba(0,5,10,.38);--shadow-strong:0 20px 58px rgba(0,4,9,.58);--overlay:rgba(0,7,13,.72);
 --table-felt:#0c4545;--table-rail:#ae945f;--table-metal:#c7b27f;--player-panel:#183346;--hero-panel:#164453;--pot-surface:#55482c;
 --bg:var(--bg-base);--panel:var(--surface-primary);--panel2:var(--surface-secondary);--line:var(--border-primary);--text:var(--text-primary);--muted:var(--text-muted);--cyan:var(--accent-primary);--blue:var(--accent-primary);--gold:var(--accent-gold);--red:var(--danger);--green:var(--success);--shadow:var(--shadow-soft)
}
html,body{background:var(--bg-base);color:var(--text-primary)}
body,.app-shell,.admin-shell,.page,.admin-main,.auth-page,.table-page,.tx10-entry-overlay,.tx10-loading-page{transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease}
.app-shell{background:linear-gradient(145deg,color-mix(in srgb,var(--bg-secondary) 94%,transparent),color-mix(in srgb,var(--bg-base) 96%,transparent)),var(--keyart) center/cover no-repeat!important;color:var(--text-primary)}
.topbar,.admin-topbar{background:color-mix(in srgb,var(--surface-primary) 94%,transparent)!important;border-color:var(--border-primary)!important;color:var(--text-primary);box-shadow:var(--shadow-soft)}
.review-strip{background:var(--surface-secondary)!important;border-color:var(--border-subtle)!important;color:var(--text-secondary)!important}
.panel,.auth-panel,.admin-sidebar,.admin-content,.stat,.game-card,.room-card,.wallet-card,.fund-card,.notice-item,.setting-row,.keyval,.customer-json,.support-log,.handover-hero,.single-admin-banner,.admin-fund-stats>a,.active-fund-config,.op-stat,.op-group,.op-shortcuts>a,.funding-shortcut,.service-card{background:var(--surface-glass)!important;border-color:var(--border-primary)!important;color:var(--text-primary)!important;box-shadow:var(--shadow-soft)}
.op-shell,.admin-main{background:var(--bg-base)!important;color:var(--text-primary)!important}.admin-header{background:var(--surface-secondary)!important;border-color:var(--border-primary)!important;color:var(--text-primary)!important}.admin-header .eyebrow,.op-stat>span,.op-context{color:var(--text-muted)!important}
.panel-header,th,.tabs,.filters,.sidenav a,.mainnav a,.admin-sidebar a{background:color-mix(in srgb,var(--surface-secondary) 82%,transparent)!important;border-color:var(--border-subtle)!important;color:var(--text-secondary)!important}
.mainnav a.active,.admin-sidebar a.active,.sidenav a.active,.tabs .active{background:var(--surface-interactive)!important;color:var(--accent-primary)!important;border-color:var(--accent-primary)!important}
.muted,.subtitle,.small,.field small,.panel p,.setting-row p,.support-log time,.role-permissions,.remember-login small,.funding-shortcut small,.service-card small,.auth-note{color:var(--text-muted)!important}.remember-login b,.funding-shortcut b,.service-card strong{color:var(--text-primary)!important}
h1,h2,h3,h4,strong,label,.field>span,td{color:var(--text-primary)}
.input,input,select,textarea{background:var(--input-bg)!important;border-color:var(--input-border)!important;color:var(--input-text)!important}
.input::placeholder,input::placeholder,textarea::placeholder{color:var(--text-muted)!important}
.input:focus,input:focus,select:focus,textarea:focus{border-color:var(--accent-primary)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 22%,transparent)!important}
.btn,.iconbtn,.audio-quick button,.theme-quick{background:var(--button-secondary-bg)!important;border-color:var(--border-primary)!important;color:var(--text-primary)!important}
.btn.primary{background:var(--button-primary-bg)!important;border-color:color-mix(in srgb,var(--button-primary-bg) 70%,#fff)!important;color:var(--button-primary-text)!important}
.btn.danger{color:var(--danger)!important;border-color:var(--danger)!important}.badge.ok,.green,.status-approved,.status-completed{color:var(--success)!important}.warning,.warn,.gold{color:var(--warning)!important}.red,.danger{color:var(--danger)!important}.cyan,.textlink,a{color:var(--accent-primary)}
.info{background:color-mix(in srgb,var(--info) 10%,var(--surface-secondary))!important;border-color:color-mix(in srgb,var(--info) 54%,var(--border-primary))!important;color:var(--text-secondary)!important}.info.warning{background:color-mix(in srgb,var(--warning) 12%,var(--surface-secondary))!important;border-color:color-mix(in srgb,var(--warning) 55%,var(--border-primary))!important}.info.danger{background:color-mix(in srgb,var(--danger) 10%,var(--surface-secondary))!important;border-color:var(--danger)!important}
dialog{background:var(--surface-primary)!important;border-color:var(--border-primary)!important;color:var(--text-primary)!important;box-shadow:var(--shadow-strong)!important}dialog::backdrop{background:var(--overlay)!important}
#toast{background:var(--surface-elevated,var(--bg-elevated))!important;border:1px solid var(--border-primary)!important;color:var(--text-primary)!important;box-shadow:var(--shadow-strong)!important}
.auth-page{background:linear-gradient(120deg,color-mix(in srgb,var(--bg-base) 86%,transparent),color-mix(in srgb,var(--bg-secondary) 78%,transparent)),var(--login-art) center/cover no-repeat!important}
.auth-panel{position:relative}.auth-theme-quick{position:absolute;top:14px;right:14px;z-index:3}.theme-quick{display:inline-grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--border-primary);border-radius:14px;font-size:19px;cursor:pointer}.theme-quick .theme-moon{display:none}html[data-theme=night] .theme-quick .theme-sun{display:none}html[data-theme=night] .theme-quick .theme-moon{display:inline}
.theme-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(560px,100%)}.theme-option{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;min-height:58px;padding:10px 12px;border:1px solid var(--border-primary);border-radius:13px;background:var(--surface-secondary);color:var(--text-primary);cursor:pointer}.theme-option:has(input:checked){border-color:var(--accent-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-primary) 22%,transparent);background:var(--surface-interactive)}.theme-option input{width:19px;height:19px;accent-color:var(--accent-primary)}.theme-option small{display:block;color:var(--text-muted);font-size:11px}.theme-current{color:var(--accent-primary);font-weight:700}
.tx10-entry-overlay{background:color-mix(in srgb,var(--bg-secondary) 95%,transparent)!important;color:var(--text-primary)!important}.tx10-entry-overlay span{color:var(--text-secondary)!important}.tx10-loading-page{background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--accent-primary) 20%,var(--bg-elevated)),var(--bg-base) 68%)!important}.tx10-game-loading{background:var(--surface-glass)!important;border-color:var(--border-primary)!important;color:var(--text-primary)!important;box-shadow:var(--shadow-strong)!important}.tx10-game-loading>strong,.tx10-game-loading h1{color:var(--text-primary)!important}.tx10-game-loading>p:last-child,.tx10-game-loading li{color:var(--text-muted)!important}.tx10-game-loading li.active{border-color:var(--accent-primary)!important;color:var(--text-primary)!important}
.table-page{background:var(--bg-base)!important}.tx5-frame.tx7{--tx-bg:var(--bg-secondary);--tx-felt:var(--table-felt);--tx6-felt-light:color-mix(in srgb,var(--table-felt) 78%,#70c2b5);--tx6-felt-dark:color-mix(in srgb,var(--table-felt) 78%,#041619);--tx-edge:var(--table-rail);--tx-accent:var(--accent-secondary);background:var(--bg-secondary)!important}.tx7 .tx5-arena{background:radial-gradient(ellipse at 50% 46%,color-mix(in srgb,var(--table-felt) 18%,var(--bg-elevated)),var(--bg-secondary) 70%)!important}.tx7 .tx5-felt{background:radial-gradient(ellipse at 50% 42%,color-mix(in srgb,var(--table-felt) 82%,#69b8aa),var(--table-felt) 63%,color-mix(in srgb,var(--table-felt) 82%,#041718))!important;border-color:var(--table-rail)!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--table-metal) 35%,transparent),inset 0 14px 26px rgba(3,24,25,.28),var(--shadow-soft)!important}.tx7 .tx5-person{background:linear-gradient(145deg,color-mix(in srgb,var(--player-panel) 90%,#fff),var(--player-panel))!important;border-color:var(--border-primary)!important;box-shadow:var(--shadow-soft)!important}.tx7 .tx5-seat.is-you .tx5-person{background:var(--hero-panel)!important;border-color:var(--accent-primary)!important}.tx7 .tx5-seat.is-turn .tx5-person{border-color:var(--accent-gold)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-gold) 28%,transparent),var(--shadow-soft)!important}.tx7 .tx5-stack,.tx7 .tx5-person strong,.tx7 .tx5-toolbar .roomname{color:var(--text-primary)!important}.tx7 .tx5-seat-state,.tx7 .tx5-turn-label,.p-overlay-note{color:var(--text-secondary)!important}.tx7 .tx5-pot{background:var(--pot-surface)!important;border-color:var(--table-metal)!important}.tx7 .tx5-pot span,.tx7 .tx5-stakes{color:var(--text-secondary)!important}.tx7 .tx5-pot strong{color:var(--accent-gold)!important}.tx7 .tx5-console,.tx5-toolbar{background:var(--surface-glass)!important;border-color:var(--border-primary)!important;color:var(--text-primary)!important}.tx5-action{background:var(--button-secondary-bg)!important;border-color:var(--border-primary)!important;color:var(--text-primary)!important}.tx5-action.tx5-check,.tx5-action.tx5-call{background:color-mix(in srgb,var(--accent-secondary) 82%,var(--surface-secondary))!important}.tx5-action.tx5-raise{background:var(--success)!important;color:#fff!important}.tx5-action.tx5-fold{background:color-mix(in srgb,var(--danger) 64%,var(--surface-secondary))!important;color:#fff!important}.tx5-action.tx5-allin{background:color-mix(in srgb,var(--accent-gold) 75%,#61441e)!important;color:#fff!important}
.tx7 .tx5-card:not(.tx5-back):not(.tx5-slot){background:#fffdf5!important;background-image:none!important;color:#101820;box-shadow:0 3px 9px rgba(0,0,0,.36)!important}.tx7 .tx5-card.tx5-red:not(.tx5-back):not(.tx5-slot){color:#c31f36!important}.tx7 .tx5-card.tx5-black:not(.tx5-back):not(.tx5-slot){color:#101820!important}
dialog.tx10-bottom-sheet[open]{background:var(--surface-primary)!important;border-color:var(--border-primary)!important;color:var(--text-primary)!important}
.tx11-table-theme{padding:12px;border:1px solid var(--border-subtle);border-radius:14px;background:var(--surface-secondary)}.tx11-table-theme>.theme-selector{margin-top:8px;width:100%}
@media(max-width:700px){.theme-selector{grid-template-columns:1fr}.theme-option{min-height:52px}.auth-theme-quick{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right))}}
@media(prefers-reduced-motion:reduce){body,.app-shell,.admin-shell,.page,.admin-main,.auth-page,.table-page,.tx10-entry-overlay,.tx10-loading-page{transition:none!important}}

/* Platform polish: keep the original logo pixels while visually seating them in the shell. */
.brand,.r2-auth-brand,.admin-brand{position:relative;isolation:isolate;overflow:visible!important}
.brand::before,.r2-auth-brand::before,.admin-brand::before{content:"";position:absolute;z-index:0;inset:12% -5% 8%;border-radius:50%;background:radial-gradient(ellipse at 48% 38%,color-mix(in srgb,var(--accent-primary) 16%,transparent),transparent 68%);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 30%,transparent),inset 0 -2px 5px #00101d42;pointer-events:none}
.brand::after,.r2-auth-brand::after,.admin-brand::after{content:"";position:absolute;z-index:2;left:9%;right:9%;bottom:7%;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent-gold) 66%,transparent),transparent);filter:drop-shadow(0 1px 2px #0008);opacity:.78;pointer-events:none}
.brand-image{position:relative;z-index:1;background:transparent!important;filter:drop-shadow(0 -1px .7px #f3fbff66) drop-shadow(0 2px 1px #00101dcc) drop-shadow(0 7px 13px #00111e55)!important}
.brand-image-icon{filter:drop-shadow(0 -1px .5px #f3fbff99) drop-shadow(0 2px 1px #00101ddd) drop-shadow(0 0 8px color-mix(in srgb,var(--accent-primary) 25%,transparent))!important}

/* An available game is one accessible link. Status and artwork never intercept it. */
.game-card-link{display:block;color:inherit;text-decoration:none;cursor:pointer;outline-offset:4px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.game-card-link:hover{transform:translateY(-3px);border-color:var(--accent-primary)!important;box-shadow:0 15px 34px #00101e52,0 0 0 1px color-mix(in srgb,var(--accent-primary) 34%,transparent)!important}
.game-card-link:active{transform:translateY(-1px)}
.game-card-link:focus-visible{outline:3px solid var(--accent-primary)}
.game-card .badge,.game-card img{pointer-events:none}
.game-card-entry{margin-top:auto;width:100%;min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0 2px;border-top:1px solid color-mix(in srgb,var(--accent-primary) 35%,transparent);font-weight:700;color:var(--accent-primary)}
.game-card-entry svg{width:18px;height:18px}.game-card-disabled{cursor:not-allowed;filter:saturate(.58);opacity:.72}.game-card-disabled .game-card-entry{color:var(--text-muted);border-color:var(--border-subtle)}

/* Waiting and playing are immersive modes: their own fixed identity bars replace platform chrome. */
.app-shell[data-route=waiting]>.topbar,.app-shell[data-route=waiting]>.review-strip,.app-shell[data-route=playing]>.topbar,.app-shell[data-route=playing]>.review-strip{display:none!important}
.app-shell[data-route=waiting] .fixed-page>.page-heading{padding:0!important}
.app-shell[data-route=waiting] .page-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:58px;margin:0;padding:9px max(14px,env(safe-area-inset-right,0px)) 9px max(14px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--border-primary);background:color-mix(in srgb,var(--surface-primary) 94%,transparent);box-shadow:var(--shadow-soft)}
.app-shell[data-route=waiting] .page-title h1{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell[data-route=waiting] .page-title p{font-size:10px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell[data-route=waiting] .page-title .right{justify-content:flex-end;flex-wrap:nowrap}.app-shell[data-route=waiting] .page-title .right .btn{min-height:40px}
@media(max-width:700px){.game-card-link:hover{transform:none}.app-shell[data-route=waiting] .page-title{min-height:52px;gap:7px;padding-top:max(6px,env(safe-area-inset-top,0px));padding-bottom:6px}.app-shell[data-route=waiting] .page-title .eyebrow,.app-shell[data-route=waiting] .page-title p{display:none}.app-shell[data-route=waiting] .page-title h1{font-size:14px}.app-shell[data-route=waiting] .page-title .right{gap:5px}.app-shell[data-route=waiting] .page-title .right .btn{font-size:10px;min-height:38px;padding:6px 8px}}
@media(orientation:landscape) and (max-height:500px){.app-shell[data-route=waiting] .page-title{min-height:46px;padding-top:max(3px,env(safe-area-inset-top,0px));padding-bottom:3px}.app-shell[data-route=waiting] .page-title .right .btn{min-height:36px}.brand::after,.r2-auth-brand::after,.admin-brand::after{bottom:4%}}
@media(prefers-reduced-motion:reduce){.game-card-link{transition:none}.game-card-link:hover{transform:none}}
