@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Unbounded:wght@500;600;700&display=swap');
:root{--bg:#080b16;--surface:#13192b;--surface-2:#19213a;--line:rgba(187,204,255,.14);--line-strong:rgba(201,216,255,.25);--text:#f4f7ff;--muted:#9da9c3;--accent:#7c6cff;--accent-2:#b9a9ff;--gold:#ffcc66;--danger:#ff717c;--success:#5ce0a0;--shadow:0 22px 60px rgba(0,0,0,.34);font-family:Manrope,Arial,sans-serif;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{min-width:320px;min-height:100dvh;margin:0;background:radial-gradient(circle at 9% 0,#25265a 0,transparent 30rem),radial-gradient(circle at 100% 20%,#16364f 0,transparent 34rem),var(--bg);overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.35;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:44px 44px}
button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 15px;border:1px solid transparent;border-radius:12px;color:var(--text);background:#25304e;cursor:pointer;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s;touch-action:manipulation}button:hover:not(:disabled){transform:translateY(-1px);background:#303e63;box-shadow:0 10px 20px #0002}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9b8cff80;outline-offset:2px}input,select,textarea{width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--line-strong);border-radius:12px;color:var(--text);background:#070b17a8}input::placeholder,textarea::placeholder{color:#74809b}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px #7c6cff22;outline:0}select option{color:var(--text);background:#151b30}textarea{min-height:110px;resize:vertical}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Unbounded,Manrope,sans-serif;letter-spacing:-.045em}h1{font-size:clamp(2.25rem,7vw,4.8rem);line-height:1.03}h2{font-size:clamp(1.1rem,2.4vw,1.5rem);line-height:1.25}h3{font-size:1rem}.hidden,[hidden]{display:none!important}.muted{color:var(--muted)}.eyebrow{margin-bottom:8px;color:var(--accent-2);font-size:.7rem;font-weight:800;letter-spacing:.13em}.primary{border-color:#aa9dff;color:#fff;background:linear-gradient(135deg,#8f7fff,#6558e8);font-weight:800;box-shadow:0 10px 28px #6658e84d}.primary:hover:not(:disabled){background:linear-gradient(135deg,#a294ff,#7063f5)}.secondary{border-color:var(--line);background:#222c48;font-weight:700}.text-btn{min-height:34px;padding:6px 8px;border-color:transparent;color:var(--muted);background:transparent}.text-btn:hover:not(:disabled){color:var(--text);background:#ffffff12;box-shadow:none}.text-btn--danger{color:#ff9fa7}.form-error{min-height:1.25em;margin:0;color:#ff929a;font-size:.88rem}.stack{display:grid;gap:14px}label{display:grid;gap:7px;color:var(--muted);font-size:.86rem;font-weight:700}
.app-shell{min-height:100dvh}.screen{display:none;min-height:100dvh;padding:28px max(20px,calc((100vw - 1220px)/2));animation:page-in .28s ease}.screen.active{display:block}@keyframes page-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.app-page-screen{padding-top:112px}.app-nav{position:fixed;z-index:50;top:18px;left:50%;display:flex;align-items:center;gap:4px;width:max-content;max-width:calc(100vw - 32px);padding:6px;border:1px solid var(--line);border-radius:18px;background:#0b0f1ec2;box-shadow:0 18px 42px #0004;backdrop-filter:blur(18px);transform:translateX(-50%)}.app-nav button{min-height:38px;padding:8px 13px;border-radius:12px;color:var(--muted);background:transparent;font-size:.82rem;font-weight:800}.app-nav button.active{color:#fff;background:linear-gradient(135deg,#8678f8,#5d53cd);box-shadow:0 6px 16px #554bc759}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;width:min(100%,1220px);margin:0 auto 25px}.topbar>h2{margin:0;text-align:center}.brand{display:inline-flex;align-items:center;gap:9px;color:var(--text);font-family:Unbounded,Manrope,sans-serif;font-size:1.05rem;font-weight:700;letter-spacing:-.05em;text-decoration:none}.brand:before{content:"";width:26px;height:26px;border-radius:9px;background:conic-gradient(from 45deg,var(--gold),#ff8a78,var(--accent),#69d5ff,var(--gold));box-shadow:0 0 22px #8875ff8c}.profile-name{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.88rem;font-weight:700}.card{min-width:0;padding:clamp(18px,3vw,28px);border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#1d253ff0,#0d1222f0);box-shadow:var(--shadow);backdrop-filter:blur(12px)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.section-heading h2,.section-heading p{margin:0}.page-wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;width:min(100%,1080px);margin:0 auto}.page-wrap>.card{grid-column:span 12}
.auth-screen{display:none;place-items:center;padding:24px;background:radial-gradient(circle at 68% 32%,#7c6cff3b,transparent 25rem),radial-gradient(circle at 25% 75%,#47cac126,transparent 28rem)}.auth-screen.active{display:grid}.auth-card{position:relative;width:min(100%,480px);padding:clamp(28px,6vw,48px);overflow:hidden}.auth-card:after{content:"";position:absolute;top:-115px;right:-90px;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,#b3a7ff47,transparent 66%);pointer-events:none}.auth-card h1{position:relative;margin-bottom:12px;background:linear-gradient(130deg,#fff,#cec8ff);background-clip:text;color:transparent}.auth-card .muted{position:relative;margin-bottom:26px;line-height:1.65}.auth-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:22px;border:1px solid var(--line);border-radius:14px;background:#0c1122}.auth-tabs button{min-height:40px;background:transparent;color:var(--muted);font-size:.86rem;font-weight:800}.auth-tabs button.active{color:var(--text);background:#293354}
.lobby-screen{padding-top:100px}.lobby-grid{display:grid;grid-template-columns:1.12fr 1.38fr .9fr;grid-template-areas:"play rooms profile" "play history invites";gap:18px;width:min(100%,1220px);margin:auto}.action-card{grid-area:play;display:grid;align-content:start;gap:16px;background:linear-gradient(145deg,#342d6adc,#10162bfa)}.action-card h2{font-size:1.7rem}.action-card>p{line-height:1.65}.rooms-card{grid-area:rooms}.lobby-grid>.card:nth-of-type(3){grid-area:profile}.match-history-card{grid-area:history}.invitations-card{grid-area:invites}.color-picker{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.color-picker>span{width:100%;color:var(--muted);font-size:.76rem;font-weight:800}.color-choice{min-height:36px;width:38px;padding:0;border-radius:10px;background:#28324e;font-size:.78rem;font-weight:900}.color-choice.active{border-color:#fff;background:#f2f5ff;color:#101426;box-shadow:0 0 0 3px #fff2}.color-choice--yellow{color:#f7dd70}.color-choice--red{color:#ff9191}.color-choice--purple{color:#c7aeff}.color-choice--green{color:#7fe8b8}.room-access-label{margin-top:2px}.inline-form{display:flex;gap:9px}.inline-form input{min-width:0}.inline-form button{flex:0 0 auto}.room-filters,.match-filters{display:flex;gap:7px;overflow:auto;padding-bottom:3px}.room-filter,.match-filter{min-height:35px;padding:7px 11px;white-space:nowrap;border-color:var(--line);border-radius:10px;background:#ffffff09;color:var(--muted);font-size:.77rem;font-weight:800}.room-filter.active,.match-filter.active{border-color:#a79bff8c;background:#7c6cff30;color:#ded9ff}.rooms-list,.matches-list,.admin-list{display:grid;gap:10px;margin-top:16px}.room-card,.match-row,.invitation-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#04081359}.room-card>div:first-child,.match-row>div:first-child{display:grid;gap:5px;min-width:0}.room-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.room-card-title b{font-family:Unbounded,Manrope,sans-serif;font-size:.82rem}.room-card span,.match-row span{color:var(--muted);font-size:.76rem}.room-card-actions,.invitation-actions{display:flex;gap:7px;flex-wrap:wrap}.room-card-actions button{min-height:36px;padding:7px 10px}.room-status,.admin-status{display:inline-flex;width:max-content;padding:4px 7px;border-radius:999px;font-size:.67rem!important;font-weight:800}.room-status--waiting,.admin-status--active{color:#8feec0;background:#38c58524}.room-status--in_progress{color:#f7cf76;background:#ffc45724}.room-status--start_vote,.room-vote{color:#d2c7ff;background:#896fff2b}.room-host,.room-access{color:#b9b5d5!important}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:9px}.stat{display:grid;gap:3px;padding:13px;border:1px solid #cad7ff17;border-radius:14px;color:var(--muted);background:#05091561;font-size:.72rem;font-weight:700}.stat span{color:var(--text);font-family:Unbounded,Manrope,sans-serif;font-size:1.32rem;letter-spacing:-.06em}.clean-list{display:grid;gap:8px;padding:0;margin:0;list-style:none}.clean-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.clean-list li:last-child{border:0}.leaderboard{display:grid;gap:8px;padding:0;margin:0;list-style:none}.leaderboard li{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#060a1661}.rank{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;color:#ded9ff;background:#7c6cff30;font-weight:900}.rating{color:var(--gold);font-family:Unbounded,Manrope,sans-serif;font-size:.84rem}
.profile-hero{display:flex;align-items:center;gap:18px}.profile-hero h1{margin:0;font-size:clamp(1.6rem,5vw,2.8rem)}.profile-hero .secondary{margin-left:auto}.avatar{display:grid;place-items:center;flex:0 0 auto;overflow:hidden;border:2px solid #b2a8ff;border-radius:50%;background:linear-gradient(135deg,#c6bbff,#7564de);color:#101426;font-weight:900;object-fit:cover;box-shadow:0 0 0 5px #7c6cff1f}.avatar--small{width:32px;height:32px;font-size:.85rem}.avatar--large{width:84px;height:84px;font-size:2rem}.rating-chart{display:block;width:100%;height:150px;border:1px solid var(--line);border-radius:16px;background:#080d1c}.settings-card{display:grid;gap:18px;max-width:680px}.avatar-editor{display:grid;gap:10px}.avatar-preview{display:flex;align-items:center;min-height:86px}.avatar-editor__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.friend-link{min-height:auto;padding:3px;color:var(--accent-2);background:transparent;text-align:left}
.game-screen{padding-top:24px}.game-topbar{padding:11px 0;border-bottom:1px solid var(--line);font-size:.88rem}.game-topbar>div{font-family:Unbounded,Manrope,sans-serif;font-size:.74rem}.connection-status,.notice,.vote-banner{width:min(100%,1160px);margin:0 auto 12px;padding:11px 14px;border:1px solid var(--line);border-radius:14px;background:#111a31d9;color:var(--muted);font-size:.84rem}.connection-status--connected{border-color:#5ce0a050;color:#a8f1ca}.connection-status--connecting{border-color:#ffcc6650;color:#ffe0a1}.connection-status--error{border-color:#ff717c60;color:#ffafb5}.vote-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#4a3a1eb0;color:#ffe7b4}.vote-actions{display:flex;gap:8px;flex-wrap:wrap}.vote-btn{min-height:36px;padding:7px 11px;background:#ffcc66;color:#201600;font-weight:800}.vote-btn--cancel{background:#3a4057;color:var(--text)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,350px);gap:18px;width:min(100%,1160px);margin:auto;align-items:start}.board-area{display:grid;justify-items:center;gap:13px;min-width:0}.game-controls{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:9px;width:100%;min-height:44px;text-align:center}.game-controls p{margin:0}.turn-status{padding:9px 13px;border-radius:999px;background:#ffffff0d;font-size:.86rem;font-weight:800}.turn-status--mine{color:#e3ddff;background:#7c6cff35}.board-wrap{position:relative;width:min(100%,670px);aspect-ratio:1;overflow:hidden;border:8px solid #222c48;border-radius:26px;background:#d7d4ce;box-shadow:0 24px 48px #0007}.board-wrap:after{content:"";position:absolute;inset:0;border:1px solid #ffffff33;border-radius:18px;pointer-events:none}#board-canvas{display:block;width:100%;height:100%;touch-action:manipulation}.winner-overlay{position:absolute;inset:0;z-index:4;display:grid;place-content:center;gap:8px;text-align:center;background:#090d1bc7;backdrop-filter:blur(5px)}.winner-overlay span{font-size:3.2rem}.winner-overlay strong{font-family:Unbounded,Manrope,sans-serif;font-size:clamp(1.15rem,4vw,2rem)}.dice-row{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}.die{width:56px;min-height:56px;padding:0;border:2px solid #e8edf8;background:#fff;color:#182036;font-size:1.5rem;font-weight:900;box-shadow:inset 0 -4px #cfd5e0,0 8px 16px #0003}.die--selectable{border-color:var(--gold);box-shadow:0 0 0 4px #ffcc6640,inset 0 -4px #cfd5e0}.die--selected{background:var(--gold);transform:translateY(-2px)}.die--used,.die--no-moves{opacity:.45}.roll-btn{min-width:160px}.action-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;min-height:34px}.chip{min-height:34px;padding:7px 10px;background:#314668}.chip--combo{background:#5a4e8c}.kush-streak{padding:9px 13px;border-radius:999px;background:#ffcc6626;color:#ffe39b;font-size:.85rem;font-weight:800}.reaction-stage{position:absolute;z-index:8;display:flex;align-items:center;gap:10px;padding:13px 17px;border:1px solid #ffffff36;border-radius:16px;background:#0c1126e6;box-shadow:var(--shadow);transform:translateY(-12px);opacity:0;pointer-events:none}.reaction-stage--show{animation:reaction .2s forwards}@keyframes reaction{to{transform:translateY(0);opacity:1}}.reaction-stage span{font-size:1.7rem}
.game-panel{position:sticky;top:22px;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:linear-gradient(160deg,#18213acc,#0b1020e6);box-shadow:var(--shadow)}.panel-tabs{display:flex;gap:3px;overflow:auto;padding:8px;border-bottom:1px solid var(--line)}.tab-btn{min-height:36px;padding:7px 10px;white-space:nowrap;border-radius:10px;background:transparent;color:var(--muted);font-size:.76rem;font-weight:800}.tab-btn.active{color:#fff;background:#7c6cff38}.tab-btn.has-unread:after{content:"•";margin-left:4px;color:var(--gold)}.panel{display:none;min-height:330px;padding:13px}.panel--active{display:block}.player-row{display:grid;grid-template-columns:11px minmax(0,1fr) auto;align-items:center;gap:9px;padding:11px 7px;border-bottom:1px solid var(--line);font-size:.82rem}.player-row--turn{margin:0 -4px;padding:11px;border-radius:10px;background:#7c6cff19}.swatch{width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 3px #fff1}.player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.host-badge,.predict-badge,.confirm-badge{margin-left:3px}.player-status{color:var(--muted);font-size:.7rem}.mini-pieces{display:flex;gap:3px;grid-column:2/-1}.mini{width:7px;height:7px;border-radius:50%;background:var(--dot-color);opacity:.7}.mini--home{box-shadow:0 0 0 2px #fff3}.events-log,.chat-log{display:grid;gap:8px;max-height:385px;overflow:auto}.event-line{padding:9px 10px;border-left:2px solid #7c6cff80;background:#ffffff08;color:var(--muted);font-size:.8rem;line-height:1.45}.chat-line{padding:9px 10px;border-radius:10px;background:#ffffff08;font-size:.82rem;line-height:1.4}.chat-line b{color:#cfc7ff}.chat-form{display:flex;gap:7px;margin-top:10px}.chat-form input{min-width:0}.chat-form button{min-height:42px;padding:8px 11px}.quick-reactions{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.quick-reactions button{min-height:35px;width:39px;padding:0;background:#ffffff0d;font-size:1rem}
.result-screen{display:none;place-items:center;padding-top:70px}.result-screen.active{display:grid}.result-card{width:min(100%,760px)}.result-summary,.result-performance,.result-players,.match-details-summary{display:grid;gap:9px;margin:16px 0}.result-player{display:grid;grid-template-columns:13px 1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px;background:#050a1766}.result-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.result-actions button{flex:1 1 160px}
.admin-overview{width:min(100%,1080px);margin:0 auto}.admin-list{margin-top:0}.admin-row,.admin-match-row,.admin-audit-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(180px,1.6fr) auto;gap:14px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:16px;background:#060a1761}.admin-row span,.admin-match-row span,.admin-audit-row span{display:block;margin-top:4px;color:var(--muted);font-size:.76rem;line-height:1.45}.admin-user-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.admin-user-actions button{min-height:38px;padding:8px 11px}.admin-status--banned{color:#ffb4ba;background:#ff717c22}.admin-role{color:#d8d2ff;font-size:.72rem}.admin-modal{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:18px;background:#060814c9;backdrop-filter:blur(8px)}.admin-modal[hidden]{display:none!important}.admin-modal:not([hidden]){display:grid!important}.admin-dialog-card{width:min(100%,760px);max-height:calc(100dvh - 36px);overflow:auto}.admin-dialog-body{display:grid;gap:15px}.admin-user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.admin-user-grid>div{padding:12px;border:1px solid var(--line);border-radius:13px;background:#060a1761}.admin-user-grid span{display:block;margin-bottom:4px;color:var(--muted);font-size:.73rem}.admin-users-list__empty{margin:0}.match-dialog{position:fixed;inset:0;display:none;width:min(calc(100vw - 32px),800px);height:fit-content;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:22px;color:var(--text);background:transparent;overflow:auto;z-index:900}.match-dialog[open]{display:block}.match-dialog::backdrop{background:#060814c9;backdrop-filter:blur(8px)}.match-dialog-card{width:100%;margin:0}.replay-wrap{display:grid;gap:10px}.replay-wrap canvas{width:100%;border:1px solid var(--line);border-radius:15px;background:#d7d4ce}.replay-controls{display:flex;gap:7px;overflow:auto}.replay-controls button{min-width:42px;min-height:38px;padding:7px 10px;white-space:nowrap}.toasts{position:fixed;z-index:1200;right:18px;bottom:18px;display:grid;gap:9px;width:min(390px,calc(100vw - 36px))}.toast{padding:13px 15px;border:1px solid #8f7fff72;border-radius:14px;background:#18213af2;box-shadow:var(--shadow);color:var(--text);opacity:0;transform:translateY(10px);transition:.2s}.toast--show{opacity:1;transform:none}.toast--error{border-color:#ff717c82;background:#3b202be8}
@media(max-width:980px){.lobby-grid{grid-template-columns:1fr 1fr;grid-template-areas:"play play" "rooms profile" "history history" "invites invites"}.game-layout{grid-template-columns:1fr}.game-panel{position:static}.panel{min-height:250px}.page-wrap>.card{grid-column:span 12}}
@media(max-width:680px){body{padding-bottom:78px}.screen{padding:18px 14px}.app-page-screen,.lobby-screen{padding-top:28px}.app-nav{top:auto;bottom:12px;width:calc(100vw - 22px);justify-content:space-around;padding:5px;border-radius:16px}.app-nav button{min-width:0;flex:1;padding:8px 4px;font-size:.68rem}.topbar{margin-bottom:18px}.topbar>h2{font-size:1rem}.profile-name{gap:5px;font-size:.74rem}.profile-name span{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{border-radius:18px;padding:18px}.lobby-grid{grid-template-columns:1fr;grid-template-areas:"play" "rooms" "profile" "history" "invites";gap:13px}.inline-form,.chat-form{flex-wrap:wrap}.inline-form button,.chat-form button{width:100%}.room-card,.match-row,.invitation-card{align-items:flex-start;flex-direction:column}.room-card-actions,.invitation-actions{width:100%}.room-card-actions button,.invitation-actions button{flex:1}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-hero{align-items:flex-start;flex-wrap:wrap}.profile-hero .secondary{margin-left:0;width:100%}.game-screen{padding:14px 10px}.game-topbar{gap:8px;font-size:.75rem}.game-topbar .text-btn{font-size:.72rem}.board-wrap{border-width:5px;border-radius:18px}.dice-row{flex-wrap:wrap}.roll-btn{flex:1 0 180px}.game-controls .primary,.game-controls .secondary{width:100%}.game-panel{border-radius:18px}.panel-tabs{scroll-snap-type:x proximity}.tab-btn{scroll-snap-align:start}.panel{min-height:220px}.admin-row,.admin-match-row,.admin-audit-row{grid-template-columns:1fr;gap:9px}.admin-user-actions{justify-content:stretch}.admin-user-actions button{flex:1}.admin-user-grid{grid-template-columns:1fr}.admin-modal{padding:10px}.admin-dialog-card{max-height:calc(100dvh - 20px)}.result-actions button{width:100%}.toasts{right:12px;bottom:86px;width:calc(100vw - 24px)}.match-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}}
@media(min-width:681px){.page-wrap>.card:nth-child(1){grid-column:span 5}.page-wrap>.card:nth-child(2){grid-column:span 7}.page-wrap>.card:nth-child(3){grid-column:span 12}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
body:has(#screen-game.active) #app-nav{display:none!important}body.admin-modal-open{overflow:hidden}

/* Layout correction: application pages use their own content widths, not lobby grid spans. */
#screen-profile .topbar,#screen-friends .topbar,#screen-leaderboard .topbar,#screen-admin .topbar{position:relative;min-height:52px;margin-bottom:30px}#screen-profile .topbar>h2,#screen-friends .topbar>h2,#screen-leaderboard .topbar>h2,#screen-admin .topbar>h2{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}#screen-profile .page-wrap,#screen-friends .page-wrap,#screen-leaderboard .page-wrap,#screen-admin .page-wrap{width:min(100%,1080px);margin:0 auto;align-items:start}#screen-profile .page-wrap{grid-template-columns:repeat(12,minmax(0,1fr))}#screen-profile #profile-view{display:grid;grid-column:span 7;gap:18px}#screen-profile #profile-history{grid-column:span 5;min-width:0}.profile-hero{min-height:184px}.profile-hero h1{margin-bottom:6px}.profile-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#screen-friends .page-wrap>.card:nth-child(1){grid-column:span 5}#screen-friends .page-wrap>.card:nth-child(2){grid-column:span 7}#screen-friends .page-wrap>.card:nth-child(3){grid-column:span 12}#screen-leaderboard .page-wrap{display:block;width:min(100%,780px)}#screen-leaderboard .page-wrap>.card{width:100%}#screen-admin .page-wrap{grid-template-columns:190px minmax(0,1fr);width:min(100%,1080px)}#screen-admin .admin-overview{display:grid;grid-column:1;gap:12px;width:100%;margin:0;position:sticky;top:112px}#screen-admin .page-wrap>.card{grid-column:1/-1;min-width:0}#screen-admin .page-wrap>.card:nth-child(2){grid-column:2}.lobby-grid{align-items:start}.friends-card{grid-area:friends}

/* Game stage: framed board on a subtle arena instead of a flat black rectangle. */
.game-screen{background:radial-gradient(ellipse 65% 50% at 36% 42%,rgba(109,88,242,.18),transparent 66%),radial-gradient(ellipse 35% 36% at 80% 18%,rgba(58,190,225,.10),transparent 70%)}.game-layout{align-items:start}.game-main{min-width:0}.board-wrap{position:relative;isolation:isolate;overflow:hidden;padding:10px;border:1px solid rgba(161,148,255,.42);border-radius:30px;background:linear-gradient(145deg,rgba(34,43,75,.96),rgba(11,15,31,.97));box-shadow:0 28px 70px rgba(0,0,0,.42),0 0 0 7px rgba(124,108,255,.07)}.board-wrap:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.75;background:radial-gradient(circle at 50% 50%,rgba(131,111,255,.22),transparent 40%),linear-gradient(135deg,rgba(255,255,255,.05),transparent 30%)}.board-wrap canvas{display:block;width:100%;border-radius:21px;background:radial-gradient(circle at 50% 46%,#17203b 0,#0a0e1c 64%,#070a13 100%)}.game-panel{background:linear-gradient(160deg,rgba(27,35,61,.96),rgba(10,14,29,.96));box-shadow:0 22px 54px rgba(0,0,0,.3)}
@media(max-width:980px){#screen-profile #profile-view,#screen-profile #profile-history{grid-column:1/-1}#screen-admin .page-wrap{grid-template-columns:1fr}#screen-admin .admin-overview,#screen-admin .page-wrap>.card,#screen-admin .page-wrap>.card:nth-of-type(n+2){grid-column:1}.admin-overview{position:static!important;grid-template-columns:repeat(4,minmax(0,1fr))}.admin-overview .stat{min-height:96px}}
@media(max-width:680px){#screen-profile .topbar,#screen-friends .topbar,#screen-leaderboard .topbar,#screen-admin .topbar{display:grid;grid-template-columns:1fr;justify-items:start;min-height:auto;margin-bottom:22px}#screen-profile .topbar>h2,#screen-friends .topbar>h2,#screen-leaderboard .topbar>h2,#screen-admin .topbar>h2{position:static;transform:none;text-align:left}#screen-friends .page-wrap>.card:nth-child(n),#screen-profile #profile-view,#screen-profile #profile-history{grid-column:1/-1}.admin-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.board-wrap{padding:6px;border-radius:21px}.board-wrap canvas{border-radius:15px}}


/* Final layout pass: explicit lobby grid, compact profile and viewport-safe game board. */
#screen-lobby .lobby-grid{grid-template-columns:minmax(300px,.95fr) minmax(420px,1.45fr) minmax(250px,.8fr);grid-template-areas:"play rooms profile" "play history invites";align-items:start}#screen-lobby .match-history-card,#screen-profile #profile-history{grid-area:auto}#screen-lobby .match-history-card{grid-area:history}#screen-lobby .invitations-card{grid-area:invites}#screen-profile .page-wrap{grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);width:min(100%,1060px)}#screen-profile #profile-view{grid-column:1;gap:16px}#screen-profile #profile-history{grid-column:2;align-self:start}.profile-hero{min-height:150px;padding:24px}.profile-hero .avatar--large{width:72px;height:72px;font-size:1.75rem}.profile-stats-grid .stat{min-height:74px}.rating-chart{height:126px}
@media(min-width:981px){.game-screen{padding-top:16px;padding-bottom:16px}.game-topbar{margin-bottom:12px;padding:8px 0}.connection-status{margin-bottom:8px;padding:9px 13px}.game-layout{grid-template-columns:minmax(0,1fr) 350px;gap:28px;width:min(100%,1160px);margin:0 auto}.board-area{display:grid;justify-items:center;gap:8px}.game-controls{min-height:38px;margin:0}.board-wrap{width:min(100%,calc(100dvh - 246px));padding:7px;border-radius:24px}.board-wrap canvas{border-radius:17px}.dice-row{margin-top:0}.game-panel{max-height:calc(100dvh - 176px);overflow:auto}.panel{min-height:0}.action-chips{min-height:0}}
@media(max-width:980px){#screen-lobby .lobby-grid{grid-template-columns:1fr 1fr;grid-template-areas:"play play" "rooms profile" "history invites"}#screen-profile .page-wrap{grid-template-columns:1fr}#screen-profile #profile-view,#screen-profile #profile-history{grid-column:1}.board-wrap{width:100%}}
@media(max-width:680px){#screen-lobby .lobby-grid{grid-template-columns:1fr;grid-template-areas:"play" "rooms" "profile" "history" "invites"}#screen-profile .profile-hero{min-height:auto}.profile-hero .avatar--large{width:64px;height:64px}.rating-chart{height:120px}}


/* Board v2: content-box canvas and calm tabletop frame. */
.board-wrap{padding:8px;border:1px solid rgba(137,121,206,.55);border-radius:25px;background:linear-gradient(145deg,#fbfcff,#dfe4f2);box-shadow:0 20px 48px rgba(10,14,34,.28),0 0 0 5px rgba(127,111,208,.12)}.board-wrap:before{background:linear-gradient(135deg,rgba(255,255,255,.75),rgba(151,137,224,.12))}.board-wrap canvas{background:#edf0fb;border-radius:18px}@media(min-width:981px){.board-wrap{width:min(100%,calc(100dvh - 270px));padding:8px}.dice-row{min-height:50px}.game-controls{max-width:100%;overflow:hidden}}@media(max-width:680px){.board-wrap{padding:5px;border-radius:18px}.board-wrap canvas{border-radius:13px}}


/* Theme switcher. Light uses the tabletop board; dark restores the night game table. */
.theme-toggle{position:fixed;z-index:80;top:20px;right:max(18px,calc((100vw - 1220px)/2));min-height:38px;padding:7px 11px;border-color:var(--line-strong);border-radius:12px;background:rgba(255,255,255,.72);color:#30364d;font-size:.76rem;font-weight:800;box-shadow:0 10px 28px rgba(67,69,113,.14);backdrop-filter:blur(14px)}.theme-toggle:hover:not(:disabled){background:#fff}.app-nav{transition:background .2s,border-color .2s}.card,button,input,select,textarea,.game-panel{transition:background .2s,border-color .2s,color .2s}
:root[data-theme="light"]{--bg:#eef1fb;--surface:#ffffff;--surface-2:#e8ebf6;--line:rgba(82,96,141,.16);--line-strong:rgba(82,96,141,.28);--text:#20263a;--muted:#6d7791;--accent:#7162d8;--accent-2:#6557bf;--shadow:0 20px 50px rgba(54,61,94,.13)}html[data-theme="light"] body{background:radial-gradient(circle at 8% 0,#dbdcff 0,transparent 31rem),radial-gradient(circle at 100% 25%,#d7f0f4 0,transparent 34rem),var(--bg)}html[data-theme="light"] body:before{opacity:.22;background-image:linear-gradient(rgba(80,92,140,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(80,92,140,.05) 1px,transparent 1px)}html[data-theme="light"] .card{background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(237,240,250,.94))}html[data-theme="light"] button{background:#e2e7f5;color:var(--text)}html[data-theme="light"] button:hover:not(:disabled){background:#d6ddef}html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] textarea{background:rgba(255,255,255,.82)}html[data-theme="light"] select option{background:#fff;color:var(--text)}html[data-theme="light"] .secondary{background:#dfe5f4}html[data-theme="light"] .text-btn{background:transparent;color:var(--muted)}html[data-theme="light"] .app-nav{background:rgba(255,255,255,.78);box-shadow:0 16px 36px rgba(64,70,110,.14)}html[data-theme="light"] .app-nav button{background:transparent}html[data-theme="light"] .app-nav button.active{color:#fff;background:linear-gradient(135deg,#8274eb,#6255c9)}html[data-theme="light"] .game-screen{background:radial-gradient(ellipse 65% 50% at 36% 42%,rgba(126,107,237,.12),transparent 66%),radial-gradient(ellipse 35% 36% at 80% 18%,rgba(61,183,205,.12),transparent 70%)}html[data-theme="light"] .game-panel{background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(231,235,247,.96))}html[data-theme="light"] .connection-status,html[data-theme="light"] .notice{background:rgba(255,255,255,.74)}
:root[data-theme="dark"]{--bg:#080b16;--surface:#13192b;--surface-2:#19213a;--line:rgba(187,204,255,.14);--line-strong:rgba(201,216,255,.25);--text:#f4f7ff;--muted:#9da9c3;--accent:#7c6cff;--accent-2:#b9a9ff;--shadow:0 22px 60px rgba(0,0,0,.34)}html[data-theme="dark"] body{background:radial-gradient(circle at 9% 0,#25265a 0,transparent 30rem),radial-gradient(circle at 100% 20%,#16364f 0,transparent 34rem),var(--bg)}html[data-theme="dark"] .theme-toggle{color:#edf0ff;background:rgba(13,18,34,.78);box-shadow:0 10px 28px rgba(0,0,0,.3)}html[data-theme="dark"] .theme-toggle:hover:not(:disabled){background:#1d2741}html[data-theme="dark"] .board-wrap{background:linear-gradient(145deg,#202946,#0b1020);border-color:rgba(150,136,242,.55);box-shadow:0 20px 48px rgba(0,0,0,.42),0 0 0 5px rgba(124,108,255,.12)}html[data-theme="dark"] .board-wrap:before{background:linear-gradient(135deg,rgba(167,151,255,.18),rgba(7,12,25,.1))}html[data-theme="dark"] .board-wrap canvas{background:#11182b}
@media(max-width:680px){.theme-toggle{top:12px;right:12px;min-height:34px;padding:6px 9px;font-size:.69rem}}


/* Stability pass: theme control lives in navigation; explicit lobby and leaderboard compositions. */
.app-nav .theme-toggle{position:static;z-index:auto;min-height:38px;margin-left:4px;padding:7px 10px;border-color:var(--line-strong);border-radius:12px;background:transparent;color:var(--muted);font-size:.74rem;box-shadow:none;backdrop-filter:none}.app-nav .theme-toggle:hover:not(:disabled){background:#ffffff12;color:var(--text);box-shadow:none}#screen-lobby .lobby-grid{display:grid!important;grid-template-columns:minmax(290px,.95fr) minmax(0,1.4fr) minmax(245px,.8fr)!important;grid-template-areas:"play rooms profile" "play history invites"!important;gap:18px!important;width:min(100%,1220px)!important;margin:0 auto!important}#screen-lobby .action-card{grid-area:play!important}#screen-lobby .rooms-card{grid-area:rooms!important}#screen-lobby .lobby-grid>.card:nth-of-type(3){grid-area:profile!important}#screen-lobby .match-history-card{grid-area:history!important}#screen-lobby .invitations-card{grid-area:invites!important}#screen-leaderboard{background:transparent}#screen-leaderboard .page-wrap{width:min(100%,840px)!important}#screen-leaderboard .page-wrap>.card{background:transparent;box-shadow:none;border:0;padding:0}#screen-leaderboard .leaderboard{padding:0;margin:0;display:grid;gap:10px}#screen-leaderboard .leaderboard li{padding:15px 17px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 8px 18px rgba(54,61,94,.06)}html[data-theme="light"] #screen-leaderboard{background:radial-gradient(circle at 50% 10%,rgba(255,255,255,.9),transparent 32rem)}html[data-theme="light"] #screen-leaderboard .leaderboard li{background:#fff;border-color:rgba(91,103,148,.16)}html[data-theme="light"] .rating-chart{border-color:#d9deeb;background:#fff}@media(max-width:980px){#screen-lobby .lobby-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-areas:"play play" "rooms profile" "history invites"!important}}@media(max-width:680px){.app-nav .theme-toggle{min-height:34px;margin-left:0;padding:6px 7px;font-size:0}.app-nav .theme-toggle::first-letter{font-size:1rem}.app-nav .theme-toggle{width:36px}.theme-toggle{top:auto;right:auto}#screen-lobby .lobby-grid{grid-template-columns:1fr!important;grid-template-areas:"play" "rooms" "profile" "history" "invites"!important}}



/* Player panel follows the real clockwise queue, starting from the active player. */
.player-row .turn-order{display:inline-grid;place-items:center;width:20px;height:20px;border:1px solid var(--line-strong);border-radius:50%;color:var(--muted);font-size:.68rem;font-weight:900}.player-row--turn .turn-order{border-color:var(--accent);background:var(--accent);color:#fff}html[data-theme="light"] .player-row .turn-order{background:#fff;color:#5c6987;border-color:#c8d2e7}html[data-theme="light"] .player-row--turn .turn-order{background:#5d50c8;color:#fff;border-color:#5d50c8}


/* Game guidance: clearly show the player's color and the destination of each selected-die move. */
.my-color-indicator{display:inline-flex;align-items:center;gap:7px;width:max-content;margin:0;padding:7px 10px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface-2);color:var(--text);font-size:.82rem;font-weight:700}.my-color-indicator .swatch{width:13px;height:13px;box-shadow:0 0 0 3px color-mix(in srgb,var(--text) 10%,transparent)}.my-color-indicator--red{border-color:#d85f66}.my-color-indicator--green{border-color:#43b783}.my-color-indicator--yellow{border-color:#c6b943}.my-color-indicator--purple{border-color:#8d69c8}html[data-theme="light"] .my-color-indicator{background:#fff;color:#17203b;border-color:#c8d2e7}


/* Complete light-theme pass: all application pages, overlays, data lists and game controls. */
html[data-theme="light"]{--bg:#edf1fa;--surface:#ffffff;--surface-2:#f3f6fc;--line:rgba(56,72,112,.18);--line-strong:rgba(56,72,112,.30);--text:#17203b;--muted:#5c6987;--accent:#5d50c8;--accent-2:#6557bf;--shadow:0 18px 45px rgba(58,70,110,.15)}
html[data-theme="light"],html[data-theme="light"] body{background:#edf1fa!important;color:#17203b}html[data-theme="light"] body{background:radial-gradient(circle at 8% 0,#dfe5ff 0,transparent 34rem),radial-gradient(circle at 100% 14%,#d6f0fa 0,transparent 31rem),#edf1fa!important}html[data-theme="light"] body:before{opacity:.16;background-image:linear-gradient(rgba(47,61,103,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(47,61,103,.11) 1px,transparent 1px)}
html[data-theme="light"] .room-card,html[data-theme="light"] .match-card,html[data-theme="light"] .invitation-card,html[data-theme="light"] .result-stat,html[data-theme="light"] .result-player,html[data-theme="light"] .player-row,html[data-theme="light"] .chat-line,html[data-theme="light"] .match-move,html[data-theme="light"] .replay-wrap{background:#f5f7fc!important;border-color:rgba(56,72,112,.19)!important;color:#17203b!important}html[data-theme="light"] .match-dialog,html[data-theme="light"] .admin-modal{background:rgba(31,42,72,.35)!important}html[data-theme="light"] .match-dialog-card,html[data-theme="light"] .admin-dialog-card{background:#fff!important;color:#17203b!important}html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] textarea{background:#fff!important;color:#17203b!important;border-color:rgba(56,72,112,.32)!important}html[data-theme="light"] select option{background:#fff;color:#17203b}html[data-theme="light"] button:not(.primary){background:#e7ecf7;color:#273654;border-color:#c8d2e7}html[data-theme="light"] button:not(.primary):hover:not(:disabled){background:#dce4f3}html[data-theme="light"] .text-btn,html[data-theme="light"] .profile-link{background:transparent!important;border-color:transparent!important;color:#4e5c82!important;box-shadow:none!important}html[data-theme="light"] .text-btn:hover:not(:disabled),html[data-theme="light"] .profile-link:hover:not(:disabled){color:#4336a7!important;background:#e7e4ff!important}.profile-link{display:inline;padding:0;min-height:0;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit;font-weight:800;text-align:left}.result-player__name{grid-column:2;font-weight:800}.leaderboard-player{font-weight:800}html[data-theme="light"] .game-layout,html[data-theme="light"] .game-panel,html[data-theme="light"] .board-wrap{background:transparent!important}html[data-theme="light"] .tab-btn,html[data-theme="light"] .chip{background:#e8edf8!important;color:#293754!important;border-color:#c8d1e6!important}html[data-theme="light"] .tab-btn.active,html[data-theme="light"] .chip.active{background:#e3dfff!important;color:#4537a8!important;border-color:#b9b0ff!important}html[data-theme="light"] .toasts .toast{background:#fff!important;color:#17203b!important;border-color:#cbd4e7!important;box-shadow:0 16px 38px rgba(58,70,110,.2)}html[data-theme="light"] .form-error{color:#b3263b!important}html[data-theme="light"] .connection-status{background:#edf1fa!important;color:#31405f!important}

/* Final light-theme contrast and layout pass. */
html[data-theme="light"] #screen-profile,html[data-theme="light"] #screen-lobby,html[data-theme="light"] #screen-admin,html[data-theme="light"] #screen-leaderboard{background:transparent}html[data-theme="light"] #screen-profile .card,html[data-theme="light"] #screen-lobby .card,html[data-theme="light"] #screen-admin .card{background:linear-gradient(145deg,#fff,#f3f5fc);border-color:rgba(91,103,148,.18);box-shadow:0 16px 34px rgba(68,78,119,.12)}html[data-theme="light"] .stat,html[data-theme="light"] .admin-row,html[data-theme="light"] .admin-match-row,html[data-theme="light"] .admin-audit-row{background:#eef1f8!important;border-color:rgba(91,103,148,.18)!important;color:#222a42!important;opacity:1!important}html[data-theme="light"] .stat span,html[data-theme="light"] .admin-row b,html[data-theme="light"] .admin-match-row b,html[data-theme="light"] .admin-audit-row b{color:#17203b!important;opacity:1!important}html[data-theme="light"] .stat,html[data-theme="light"] .admin-row span,html[data-theme="light"] .admin-match-row span,html[data-theme="light"] .admin-audit-row span{color:#62708f!important;opacity:1!important}html[data-theme="light"] .rating{color:#d58a13!important;font-weight:800}html[data-theme="light"] .rank{color:#6255c9!important;background:#e8e5ff!important}html[data-theme="light"] .rooms-refresh-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}html[data-theme="light"] .rooms-refresh-meta .text-btn{flex:0 0 auto;white-space:nowrap;color:#52617f!important}#screen-lobby .rooms-card .section-heading{align-items:flex-start}#screen-lobby .rooms-card .section-heading h2{max-width:13ch}#screen-lobby .rooms-refresh-meta #rooms-refresh-status{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.copyable-value{display:inline-flex;align-items:center;gap:5px;cursor:pointer;border-bottom:1px dashed currentColor}.copyable-value::after{content:"⧉";font-size:.8em;opacity:.68}.copyable-value:hover{color:var(--accent)}#lobby-nickname{cursor:pointer;border-bottom:1px dashed transparent}#lobby-nickname:hover{border-bottom-color:currentColor}@media(min-width:981px){#screen-lobby .lobby-grid{grid-template-columns:minmax(290px,.9fr) minmax(370px,1.35fr) minmax(270px,.85fr)!important;grid-template-areas:"play rooms profile" "play history invites"!important}#screen-lobby .rooms-card{min-height:0}#screen-lobby .match-history-card{align-self:start}}@media(max-width:980px){#screen-lobby .rooms-card .section-heading{align-items:center}#screen-lobby .rooms-card .section-heading h2{max-width:none}}@media(max-width:520px){#screen-lobby .rooms-card .section-heading{display:grid;grid-template-columns:1fr;gap:8px}html[data-theme="light"] .rooms-refresh-meta{justify-content:space-between}#screen-lobby .rooms-refresh-meta #rooms-refresh-status{max-width:18ch}}

/* Lobby completion: fill the desktop composition and keep compact actions inside cards. */
@media(min-width:981px){#screen-lobby .lobby-grid{grid-template-areas:"play rooms profile" "history rooms invites"!important;align-items:stretch}#screen-lobby .rooms-card{height:100%;min-height:0}#screen-lobby .match-history-card{align-self:stretch}#screen-lobby .invitations-card{align-self:start;min-width:0}}
#screen-lobby .invitations-card .section-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}#screen-lobby .invitations-card .section-heading h2{min-width:0;margin:0;overflow-wrap:anywhere}#screen-lobby #refresh-invitations-btn{justify-self:end;min-width:0;max-width:100%;padding:6px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html[data-theme="light"] #screen-lobby .muted,html[data-theme="light"] #screen-lobby .room-access-label,html[data-theme="light"] #screen-lobby .color-picker>span{color:#61708f!important}html[data-theme="light"] #screen-lobby .room-filter,html[data-theme="light"] #screen-lobby .match-filter{color:#34415e!important;background:#e8edf8!important;border-color:#cbd4e8!important;opacity:1!important}html[data-theme="light"] #screen-lobby .room-filter.active,html[data-theme="light"] #screen-lobby .match-filter.active{color:#4d40b3!important;background:#e5e1ff!important;border-color:#bdb2ff!important;font-weight:800}@media(max-width:520px){#screen-lobby .invitations-card .section-heading{grid-template-columns:minmax(0,1fr) auto}#screen-lobby #refresh-invitations-btn{font-size:.78rem}}

/* Final viewport and mobile-theme correction. */
@media(min-width:981px){#screen-lobby{padding-top:74px!important;padding-bottom:18px}#screen-lobby .topbar{margin-bottom:16px}#screen-lobby .lobby-grid{grid-template-areas:"play rooms profile" "play history invites"!important;gap:14px!important;align-items:start!important}#screen-lobby .rooms-card{height:auto!important;align-self:start!important}#screen-lobby .match-history-card{align-self:start!important}#screen-lobby .action-card{gap:12px;padding:22px!important}#screen-lobby .action-card>p{margin-bottom:2px;line-height:1.48}#screen-lobby .action-card .color-picker{padding:10px 0}#screen-lobby .action-card .room-access-label{gap:5px}#screen-lobby .action-card button,#screen-lobby .action-card input,#screen-lobby .action-card select{min-height:42px}}
@media(max-width:680px){.app-nav{gap:1px;padding:4px;max-width:calc(100vw - 12px)}.app-nav button{min-height:34px;padding:6px 7px;font-size:.68rem}.app-nav .theme-toggle{display:inline-flex!important;width:auto!important;min-width:58px!important;margin-left:1px!important;padding:5px 7px!important;font-size:.62rem!important;line-height:1!important;white-space:nowrap}.app-nav .theme-toggle::first-letter{font-size:inherit!important}}
@media(max-width:390px){.app-nav button{padding-left:5px;padding-right:5px;font-size:.64rem}.app-nav .theme-toggle{min-width:54px!important;padding-left:5px!important;padding-right:5px!important;font-size:.58rem!important}}

/* Desktop lobby: no central gap and no broken-word headings. */
@media(min-width:981px){#screen-lobby{padding-top:68px!important;padding-bottom:12px}#screen-lobby .topbar{margin-bottom:14px}#screen-lobby .lobby-grid{grid-template-columns:minmax(290px,.9fr) minmax(370px,1.35fr) minmax(300px,.9fr)!important;grid-template-areas:"play rooms profile" "play rooms invites"!important;grid-template-rows:minmax(390px,1fr) 180px;gap:14px!important}#screen-lobby .action-card,#screen-lobby .rooms-card{height:100%;align-self:stretch!important}#screen-lobby .match-history-card{display:none!important}#screen-lobby .invitations-card{min-height:180px;align-self:stretch!important}}
#screen-lobby .invitations-card .section-heading{grid-template-columns:1fr!important;justify-items:start;gap:4px}#screen-lobby .invitations-card .section-heading h2{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal!important;word-break:normal!important}#screen-lobby #refresh-invitations-btn{justify-self:end;padding:3px 0;line-height:1.2}


/* Auth contrast and colorful dice roll: explicit styles for both themes. */
.auth-screen{display:none;place-items:center;padding:24px;background:radial-gradient(circle at 20% 12%,rgba(124,108,255,.28),transparent 30rem),radial-gradient(circle at 90% 90%,rgba(57,185,154,.18),transparent 26rem),#080b16}.auth-screen.active{display:grid}.auth-card{width:min(100%,440px)!important;border:1px solid rgba(191,199,255,.32)!important;background:linear-gradient(145deg,rgba(27,35,65,.97),rgba(12,17,34,.98))!important;box-shadow:0 28px 72px rgba(0,0,0,.48)!important}.auth-card h1{margin:4px 0 14px;color:#f8f7ff!important;text-shadow:0 3px 18px rgba(132,112,255,.42);letter-spacing:-.065em}.auth-card .muted{color:#bdc6de!important}.auth-card label{color:#d6dcf0!important;font-weight:700}.auth-card input{background:rgba(5,9,23,.7)!important;color:#f7f9ff!important;border-color:rgba(182,194,235,.42)!important}.auth-card input::placeholder{color:#98a6c5!important}.auth-card .auth-tabs{padding:5px;border:1px solid rgba(171,182,231,.38);border-radius:15px;background:#070b18!important}.auth-card .auth-tabs button{color:#c8d1e8!important;background:transparent!important;border-color:transparent!important}.auth-card .auth-tabs button.active{color:#101427!important;background:linear-gradient(135deg,#fbfcff,#dfe5f6)!important;box-shadow:0 4px 14px rgba(0,0,0,.28)!important}.auth-card .primary{border-color:#a99dff!important;color:#fff!important;background:linear-gradient(135deg,#9587ff,#6657df)!important;box-shadow:0 14px 30px rgba(92,73,218,.45)!important}.auth-card .eyebrow{color:#bdb3ff!important}.auth-card .form-error{color:#ff9aa3!important}
html[data-theme="light"] .auth-screen{background:radial-gradient(circle at 17% 10%,#d8d5ff 0,transparent 31rem),radial-gradient(circle at 100% 88%,#cfedf4 0,transparent 29rem),#edf1fa!important}html[data-theme="light"] .auth-card{border-color:rgba(104,112,169,.26)!important;background:linear-gradient(145deg,#ffffff,#eff2fc)!important;box-shadow:0 26px 60px rgba(68,78,120,.2)!important}html[data-theme="light"] .auth-card h1{color:#262050!important;text-shadow:0 2px 14px rgba(110,91,218,.2)}html[data-theme="light"] .auth-card .muted{color:#566583!important}html[data-theme="light"] .auth-card label{color:#53617e!important}html[data-theme="light"] .auth-card input{background:#fff!important;color:#202b48!important;border-color:#b7c2db!important}html[data-theme="light"] .auth-card input::placeholder{color:#7888a8!important}html[data-theme="light"] .auth-card .auth-tabs{background:#dce3f3!important;border-color:#202943!important}html[data-theme="light"] .auth-card .auth-tabs button{color:#34415f!important;background:transparent!important}html[data-theme="light"] .auth-card .auth-tabs button.active{color:#202943!important;background:#fff!important;box-shadow:0 3px 10px rgba(53,65,101,.16)!important}html[data-theme="light"] .auth-card .eyebrow{color:#6255bd!important}
.die--rolling{position:relative;overflow:hidden!important;isolation:isolate;animation:die-roll-color .32s ease-in-out infinite!important;color:#fff!important;border-color:rgba(255,255,255,.85)!important;box-shadow:0 0 0 3px rgba(255,255,255,.28),0 0 26px var(--roll-glow),inset 0 -4px rgba(0,0,0,.18)!important}.die--rolling-a{--roll-glow:rgba(255,99,132,.76);background:linear-gradient(135deg,#f1546b,#8b4fe8,#4d9fff)!important}.die--rolling-b{--roll-glow:rgba(59,211,163,.76);background:linear-gradient(135deg,#27bb91,#3b9cf5,#f0a743)!important}.die--rolling::after{content:"";position:absolute;inset:-80% -35%;z-index:-1;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.76) 50%,transparent 58%);animation:die-shine .42s linear infinite}@keyframes die-roll-color{0%,100%{transform:rotate(-8deg) scale(.9)}50%{transform:rotate(8deg) scale(1.1)}}@keyframes die-shine{from{transform:translateX(-42%)}to{transform:translateX(42%)}}html[data-theme="light"] .die--rolling{color:#fff!important;border-color:#fff!important}
/* Dice events: neutral rolling; gold kush; warning red/orange when the roll has no legal moves. */
.die--rolling{animation:die-roll-neutral .14s linear infinite!important;background:#e9edf7!important;color:#34415c!important;border-color:#c6d0e3!important;box-shadow:inset 0 -4px #b9c4d9!important}.die--rolling::after{content:none!important}.die--rolling-a,.die--rolling-b{background:#e9edf7!important;box-shadow:inset 0 -4px #b9c4d9!important}@keyframes die-roll-neutral{0%,100%{transform:rotate(-4deg) scale(.96)}50%{transform:rotate(4deg) scale(1.04)}}
.die--kush{animation:die-kush-gold .48s ease-in-out 3!important;background:linear-gradient(135deg,#fff3ae,#f2bd42)!important;color:#573600!important;border-color:#fff6c7!important;box-shadow:0 0 0 3px rgba(255,211,92,.36),0 0 30px rgba(255,191,53,.78),inset 0 -4px rgba(157,98,13,.24)!important}.kush-streak{border:1px solid rgba(255,213,105,.7);background:linear-gradient(135deg,#fff0a4,#e6a935);color:#543400;box-shadow:0 0 26px rgba(255,190,48,.42)}.kush-streak--show{animation:kush-badge-pop .56s ease both}@keyframes die-kush-gold{0%,100%{transform:scale(1);filter:saturate(1)}50%{transform:scale(1.12) rotate(3deg);filter:saturate(1.3) brightness(1.08)}}@keyframes kush-badge-pop{0%{opacity:0;transform:translateY(7px) scale(.86)}65%{opacity:1;transform:translateY(-2px) scale(1.05)}100%{opacity:1;transform:none}}
.die--no-moves{animation:die-no-moves .5s ease-in-out infinite!important;background:linear-gradient(135deg,#ffb25e,#e45748)!important;color:#fff9f2!important;border-color:#ffd0a2!important;box-shadow:0 0 0 3px rgba(255,122,79,.24),0 0 24px rgba(233,77,61,.56),inset 0 -4px rgba(102,23,20,.24)!important}.no-moves-notice{width:100%;margin:0;padding:10px 12px;border:1px solid rgba(255,150,100,.62);border-radius:12px;background:rgba(183,58,43,.16);color:#ffb5a9;text-align:center;font-weight:800}@keyframes die-no-moves{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px) rotate(-2deg)}75%{transform:translateX(4px) rotate(2deg)}}
html[data-theme="light"] .die--rolling{background:#e9edf7!important;color:#34415c!important;border-color:#c6d0e3!important}html[data-theme="light"] .die--kush{color:#573600!important}html[data-theme="light"] .die--no-moves{color:#fff9f2!important}html[data-theme="light"] .no-moves-notice{background:#fff0eb;color:#af372d}


/* Final fixes: readable private-message selector and neutral emoji controls in light theme. */
.private-chat-label{display:grid;gap:6px;margin-bottom:10px;color:var(--muted);font-size:.78rem;font-weight:800}
html[data-theme="light"] .quick-reactions button{background:#fff!important;border-color:#c4cee4!important;color:#273654!important;box-shadow:0 3px 8px rgba(43,57,94,.12)!important}html[data-theme="light"] .quick-reactions button:hover:not(:disabled){background:#eef2fa!important}html[data-theme="light"] .reaction-stage{background:rgba(255,255,255,.94)!important;border-color:#b9c6e2!important;color:#243250!important;box-shadow:0 14px 32px rgba(45,58,96,.20)!important}


