/* Rummikub Terminal 0.5 - table-first fullscreen layout and progression UI */
:root{--cyan:#78e7e3;--ok:#79ebc1}
.in-game{--table-a:#10344a;--table-b:#0c1f30;--table-edge:#42697b;--accent:#76e8e5;--accent-soft:#74e8e518;--warm:#d5e8f1}
.in-game[data-theme="synth"]{--table-a:#292052;--table-b:#101a34;--table-edge:#7457a6;--accent:#ca9cff;--accent-soft:#9e68ff22;--warm:#e3d8ff}
.in-game[data-theme="gold"]{--table-a:#333025;--table-b:#141b22;--table-edge:#807152;--accent:#f5cc80;--accent-soft:#e7b9631c;--warm:#f4e8ca}
.app-shell.in-game{width:100%;max-width:none;padding:8px 14px 8px;gap:7px;overflow:hidden;height:100dvh;max-height:100dvh}
.in-game .topbar{height:42px;min-height:42px;max-height:42px;flex:0 0 42px;border-bottom-color:#ffffff14;padding-bottom:6px}
.in-game .brand-mark{height:31px;width:31px;font-size:18px;border-radius:9px}
.in-game .brand strong{font-size:12px;letter-spacing:.105em}
.in-game .brand small{font-size:8px;margin-top:2px}
.level-pill{border:1px solid #385e68;background:#16303b;color:#a2e9e5;border-radius:20px;font-size:10px;font-weight:800;padding:7px 12px;cursor:pointer;white-space:nowrap}
.level-pill:hover{background:#254c57}
.in-game .layout{display:grid;grid-template-columns:116px minmax(0,1fr) 170px;gap:9px;min-height:0;overflow:hidden;flex:1}
.in-game .main-column{min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.in-game .rt-player-column{display:flex;min-height:0;border:1px solid #284559;background:#0f1d2b;border-radius:13px;padding:9px 7px;overflow:hidden}
.in-game .hud{display:flex;flex-direction:column;width:100%;height:auto;min-height:0;max-height:none;gap:10px;align-items:stretch}
.in-game .player-card{flex:0 0 auto;width:100%;min-height:91px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;border:1px solid transparent;background:#122537ad;padding:10px 5px;border-radius:11px}
.in-game .player-card.active{background:linear-gradient(160deg,#1f4c58,#13283b);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft),0 0 17px var(--accent-soft)}
.in-game .player-card.active:before{inset:0 auto 0 0;width:2px;height:auto;background:var(--accent)}
.in-game .player-card.is-you{margin-top:auto}
.in-game .avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;font-size:16px;border:1px solid #68879b;box-shadow:0 0 0 3px #9ac0dc0e}
.in-game .player-meta .name{font-size:11px;font-weight:800;letter-spacing:.02em}
.in-game .player-meta .stats{font-size:10px;margin-top:1px;color:#a7c0d1}
.in-game .player-meta .stats strong{color:#f1f9ff;font-size:13px}
.in-game .player-card .player-turn-dot{position:absolute;right:9px;top:5px;color:var(--accent);font-size:11px;line-height:1}
.in-game .table-card{width:100%;flex:1;min-height:0;height:100%;border-radius:13px;border:1px solid var(--table-edge);background:radial-gradient(ellipse at 52% 45%,var(--table-a) 0%,var(--table-b) 78%);box-shadow:inset 0 0 100px #030e1a75,0 0 0 1px #fff1;overflow:hidden}
.in-game .table-card:before{background-size:43px 43px;opacity:.20;mask-image:radial-gradient(ellipse,#000c,transparent 80%)}
.in-game .table-head{height:47px;min-height:47px;padding:8px 14px;background:#061b2a88;border-bottom-color:#689bb02d}
.in-game .table-head .counter{font-size:9px;color:#9eb7c8}
.in-game .eyebrow{font-size:10px;color:var(--warm)}
.in-game .table-inner{inset:48px 6px 6px;padding:10px;scrollbar-color:#4c839055 transparent}
.in-game .meld-grid{gap:18px 12px;padding:13px 7px 32px;align-content:flex-start;justify-content:flex-start}
.in-game .meld{padding:10px 8px 6px;background:#0f2538d9;gap:5px;min-height:78px;border-color:#6b889250;border-radius:10px;box-shadow:0 4px 10px #03131f66}
.in-game .meld.changed{border-color:var(--accent)}
.in-game .meld-append{background:#183947;color:var(--accent);border-color:#547a8499;padding:2px 8px;min-height:22px;font-size:9px}
.in-game .meld-title{background:#102b3b;border-color:#386173;font-size:9px;color:#d4e9ec}
.in-game .board-drop-area{min-width:120px;min-height:90px;background:#13435422;color:#9fc1d0;border:1px dashed #678c9b66}
.in-game .board-drop-area span{font-size:25px;color:var(--accent)}
.in-game .empty-board{padding:10px 12px 16px;min-height:210px;align-self:center;flex-basis:100%}
.in-game .empty-board .empty-symbol{width:52px;height:52px}
.in-game .empty-board strong{font-size:14px}
.in-game .empty-board span{font-size:12px}
.in-game .side-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid #294758;background:#101f2d;border-radius:13px;padding:11px;gap:11px}
.in-game .rail-timer{background:#0b1b2a;border:1px solid #294b5b;border-radius:10px;padding:12px 8px;text-align:center}
.rail-title{font:800 9px Consolas,monospace;letter-spacing:.11em;color:#98b8c9}
.in-game .turn-clock{font-size:clamp(21px,3vw,39px);line-height:1.1;margin:10px 0 8px;color:#e7faff;text-align:center;font-weight:850;font-variant-numeric:tabular-nums}
.in-game .turn-clock.danger{color:#ff8698}
.in-game .progress-track{height:4px;background:#244253;border-radius:10px;overflow:hidden}
.in-game .progress-fill{background:var(--accent);box-shadow:none}
.in-game .rail-pool{background:#112a3a;border:1px solid #34566a;border-radius:11px;text-align:center;display:flex;flex-direction:column;align-items:center;padding:14px 7px 11px;gap:2px}
.rail-pool>span,.rail-info span{color:#9bb4c3;font-size:9px;font-weight:750;letter-spacing:.08em}
.rail-pool>strong{font-size:34px;font-weight:850;color:#f0faff;line-height:1.12}
.rail-pool>small{color:#89a6b7;font-size:10px}
.rail-draw{display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;min-height:65px;border:1px solid #4c8293;border-radius:10px;background:#173b4c;color:#b6fffa;font-size:32px;font-weight:300;line-height:.9;margin-top:10px;cursor:pointer}
.rail-draw small{font-size:11px;font-weight:850;letter-spacing:.06em;margin-top:6px}
.rail-draw:hover:not(:disabled){background:#2a6574;border-color:#9ef3ee}
.rail-draw:disabled{opacity:.4;cursor:not-allowed}
.rail-info{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.rail-info>div{background:#0d1b29;border:1px solid #253e51;border-radius:8px;padding:10px 5px;display:flex;flex-direction:column;align-items:center;gap:7px}
.rail-info strong{font-size:16px;color:#e5f4fa}
.rail-link{background:transparent;border:0;border-bottom:1px solid #35506188;color:#b0cad6;text-align:left;padding:10px 3px;font-size:11px;cursor:pointer}
.rail-link:hover{color:#fff}
.rail-feedback{font-size:11px;line-height:1.42;color:#96b9c9;margin-top:auto;padding:11px;border-radius:9px;background:#173044ad;border:1px solid #2b4c63;overflow:auto;max-height:110px}
.rail-feedback.good{background:#143e36;color:#b4f4db;border-color:#3d8d77}
.rail-feedback.bad{background:#3b2633;color:#f8b4c2;border-color:#7e5265}
.in-game .rack-panel{flex:0 0 203px;min-height:203px;max-height:203px;overflow:hidden;background:#102031;border-color:#365469;padding:8px 12px 9px;border-radius:12px}
.in-game .rack-top{min-height:24px;margin-bottom:3px}
.in-game .rack-heading strong{font-size:11px;letter-spacing:.11em}
.in-game .rack-utilities .mini-btn{min-height:24px}
.in-game .rack-scroll-row{display:grid;grid-template-columns:24px minmax(0,1fr) 24px;gap:5px}
.in-game .rack-arrow{height:111px;min-height:111px;border:1px solid #345668;background:#152d3e;border-radius:7px}
.in-game .rack{display:grid;grid-template-rows:repeat(2,52px);grid-auto-flow:column;grid-auto-columns:41px;justify-content:center;align-content:center;gap:4px 5px;overflow-x:auto;overflow-y:hidden;height:111px;min-height:111px;padding:3px 11px;border-radius:9px;background:linear-gradient(#142a3c,#0c1d2e);border:1px solid #2c4a60}
.in-game .rack .tile{width:40px;height:50px;min-width:40px;flex:0 0 40px;margin:0}
.in-game .rack .tile-number{font-size:23px}
.in-game .rack .tile-mark{font-size:8px;margin-top:2px}
.in-game .selection-tip,.in-game .selection-bar{height:20px;min-height:20px;gap:8px;font-size:10px;margin:2px 0 0}
.in-game .selection-count{color:var(--accent)}
.in-game .rack-actions{height:33px;margin-top:2px;gap:6px;align-items:stretch;justify-content:space-between}
.in-game .rack-action-group{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}
.in-game .rack-action-group .btn{height:32px;min-height:32px;font-size:10px;padding:0 10px;border-radius:7px;white-space:nowrap}
.in-game .rack-action-primary .btn.primary{min-width:150px}
.in-game .rack-action-group .btn-compose{background:#1a4a54;border:1px solid #549f9d;color:#bdfdf3;font-weight:850}
.in-game .rack-action-group .btn-compose:not(:disabled):hover{background:#2f777d}
.in-game .footline{padding:0 4px;font-size:9px;display:flex;justify-content:space-between;max-height:14px;min-height:14px;flex:0 0 14px}
.foot-profile{background:transparent;border:0;color:#8ae0de;font-size:9px;font-weight:800;margin-left:8px;cursor:pointer}
.in-game[data-theme="synth"] .player-card.active{background:#2b2b54;border-color:var(--accent)}
.in-game[data-theme="gold"] .player-card.active{background:#32302a;border-color:var(--accent)}
/* Profile and permanent cosmetic rewards */
.xp-overview{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px;background:#102c3b;border:1px solid #385b6c;border-radius:13px}
.xp-kicker{font-size:10px;font-weight:850;color:#81d5d6;letter-spacing:.13em}
.xp-overview h3{font-size:25px;margin:5px 0;color:#f4faff}.xp-overview h3 em{font-style:normal;color:#8ee9e4}
.xp-overview p{margin:4px 0 0;font-size:12px;color:#a7c7d4}
.xp-overview>strong{font-size:23px;text-align:right}.xp-overview>strong small{display:block;font-size:10px;color:#a6c4d1;font-weight:500}
.xp-progress{height:8px;margin-top:12px;border-radius:8px;background:#253d51;overflow:hidden}.xp-progress>div{height:100%;background:linear-gradient(90deg,#4ccbbb,#abf4df);border-radius:9px}
.xp-labels{display:flex;justify-content:space-between;font-size:10px;color:#9fb9c7;margin:6px 0 20px}
.profile-heading{font-size:12px;letter-spacing:.08em;color:#d7f1f2;margin:16px 0 10px}
.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.theme-card{text-align:left;display:flex;flex-direction:column;gap:4px;border:1px solid #365369;background:#152638;border-radius:10px;padding:8px;color:#d9edf5;min-height:140px}
.theme-card.active{border-color:#83e9da;box-shadow:inset 0 0 0 1px #61ddce22}
.theme-card:disabled{opacity:.55}
.theme-swatch{height:57px;border-radius:7px;background:radial-gradient(circle at 60% 40%,#1d6d7a,#0f2038 75%);border:1px solid #53888c}
.theme-card-synth .theme-swatch{background:radial-gradient(circle at 60% 30%,#854b95,#20204d 75%);border-color:#695795}
.theme-card-gold .theme-swatch{background:radial-gradient(circle at 60% 30%,#7e6637,#1b1c25 75%);border-color:#837148}
.theme-card strong{font-size:11px}.theme-card small{font-size:10px;color:#96b6c8}.theme-card span{font-size:9px;font-weight:800;margin-top:auto;color:#8ee9da}
.badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.badge-card{display:flex;align-items:center;gap:12px;border:1px solid #293e51;border-radius:9px;background:#0e1d2d;padding:11px 12px;opacity:.65;color:#7f97a7}
.badge-card.unlocked{opacity:1;color:#d7ecf5;border-color:#5b918f;background:#13313b}
.badge-card>span{font-size:24px;color:#8fe4d8;min-width:32px;text-align:center}
.badge-card>div{flex:1;min-width:0}.badge-card strong{font-size:11px;display:block}.badge-card small{display:block;font-size:10px;color:#90aaba;margin-top:3px;line-height:1.4}
@media(min-width:1450px){.in-game .layout{grid-template-columns:140px minmax(0,1fr) 190px}.in-game .rt-player-column{padding:12px}.in-game .player-card{min-height:102px}.in-game .rack-panel{flex-basis:215px;min-height:215px;max-height:215px}.in-game .rack,.in-game .rack-arrow{height:119px;min-height:119px}.in-game .rack{grid-template-rows:repeat(2,55px);grid-auto-columns:44px}.in-game .rack .tile{height:53px;width:43px;min-width:43px}}
@media(max-width:1150px){.in-game .layout{grid-template-columns:94px minmax(0,1fr) 137px;gap:6px}.in-game .player-card{min-height:76px;padding:6px 2px}.in-game .avatar{height:27px;width:27px;flex-basis:27px}.in-game .side-panel{padding:7px;gap:6px}.in-game .rail-pool{padding:7px 4px}.in-game .rail-draw{min-height:50px}.in-game .rail-feedback{font-size:10px;padding:7px}.in-game .compact-opt{display:none}.in-game .rack-action-group .btn{padding:0 7px;font-size:9px}}
@media(max-width:850px){.app-shell.in-game{overflow:auto;height:auto;max-height:none;min-height:100dvh}.in-game .layout{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(330px,50vh) auto;overflow:visible;flex:initial}.in-game .rt-player-column{padding:6px;overflow:visible}.in-game .hud{display:flex;flex-direction:row;flex-wrap:nowrap;gap:5px}.in-game .player-card{margin:0!important;min-width:0;min-height:57px;flex:1;display:flex;flex-direction:row;gap:5px;text-align:left;padding:5px}.in-game .player-card .avatar{width:25px;height:25px;flex-basis:25px}.in-game .player-meta .name{font-size:9px}.in-game .player-meta .stats{font-size:9px}.in-game .main-column{height:50vh;min-height:330px}.in-game .side-panel{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto;min-height:105px;gap:7px;overflow:visible}.in-game .rail-timer,.in-game .rail-pool,.in-game .rail-info{min-height:100px}.in-game .rail-pool{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center}.in-game .rail-pool>strong{font-size:23px}.in-game .rail-draw{grid-column:span 2;min-height:35px;font-size:19px;flex-direction:row;gap:6px;margin:0}.in-game .rail-draw small{margin:0}.in-game .rail-link,.in-game .rail-feedback{display:none}.in-game .rack-panel{flex:0 0 auto;max-height:none;height:auto;min-height:205px}.in-game .rack-actions{flex-wrap:wrap;height:auto}.in-game .rack-action-group{flex-wrap:wrap}.in-game .rack-scroll-row .rack{justify-content:start}}
@media(max-width:550px){.app-shell.in-game{padding:7px}.in-game .brand small{display:none}.in-game .brand strong{font-size:9px}.in-game .top-actions{gap:4px}.in-game .icon-btn{width:31px;height:31px}.in-game .header-menu-btn{padding:0 7px}.in-game .level-pill{font-size:9px;padding:7px}.in-game .player-card{display:flex;flex-direction:column;min-height:70px}.in-game .player-meta{text-align:center}.in-game .side-panel{grid-template-columns:1fr 1fr}.in-game .rail-info{display:none}.in-game .rack-utilities{gap:4px}.in-game .rack-utilities .mini-btn{font-size:8px;padding:1px 4px}.in-game .rack-heading small{font-size:8px}.in-game .rack-actions .btn{flex:1}.in-game .rack-action-primary .btn.primary{min-width:0}.in-game .rack .tile{width:38px;height:48px;min-width:38px}.in-game .rack{grid-auto-columns:39px}.in-game .selection-note{display:none}.theme-grid{grid-template-columns:1fr}.badge-grid{grid-template-columns:1fr}}
@media(max-height:690px) and (min-width:851px){.in-game .rack-panel{flex:0 0 174px;min-height:174px;max-height:174px}.in-game .rack,.in-game .rack-arrow{height:93px;min-height:93px}.in-game .rack{grid-template-rows:repeat(2,42px)}.in-game .rack .tile{height:40px;width:37px;min-width:37px}.in-game .rack .tile-number{font-size:19px}.in-game .rack .tile-mark{font-size:7px}.in-game .player-card{min-height:68px}.in-game .side-panel{gap:6px}.in-game .rail-info>div{padding:5px 2px}.in-game .rail-link{padding:6px 3px}.in-game .rail-timer{padding:6px}.in-game .rail-draw{min-height:48px}}
/* Final density and small-screen ergonomics */
@media (max-height:820px) and (min-width:851px){
 .in-game .side-panel{gap:7px}
 .in-game .rail-link + .rail-link{display:none}
 .in-game .rail-timer{padding:9px 7px}
 .in-game .rail-pool{padding:10px 7px 8px}
 .in-game .rail-draw{min-height:53px;margin-top:6px}
 .in-game .rail-info>div{padding:8px 5px;gap:3px}
 .in-game .rail-feedback{min-height:55px;max-height:85px;margin-top:auto}
}
@media (max-width:550px){
 .in-game .selection-tip,.in-game .selection-bar{height:auto;min-height:30px;max-height:none;white-space:normal;overflow:visible;line-height:1.35;align-items:center;padding:3px 2px}
 .in-game .rack-panel{padding-bottom:11px}
 .in-game .rack-actions{row-gap:5px}
 .in-game .rack-action-primary{display:flex;flex:1;min-width:0}
 .in-game .rack-action-group .btn{font-size:9px;padding:0 8px;min-height:33px}
 .in-game .rack-action-primary .btn.primary{flex:1.5}
 .in-game .rack-scroll-row{grid-template-columns:24px minmax(0,1fr) 24px}
 .in-game .rack{padding-left:3px;padding-right:3px}
 .in-game .footline{flex-wrap:wrap;max-height:none;min-height:27px}
}
.profile-backup{display:flex;align-items:center;gap:8px;margin-top:16px;background:#13273a;border:1px solid #315165;border-radius:10px;padding:13px}
.profile-backup>div{flex:1;min-width:0}.profile-backup strong{display:block;color:#d7f1f2;font-size:11px}
.profile-backup small{display:block;color:#94afbf;font-size:10px;margin-top:5px;line-height:1.45}
.profile-backup>.mini-btn{min-height:32px;font-size:10px;white-space:nowrap}
@media(max-width:550px){.profile-backup{flex-wrap:wrap}.profile-backup>div{flex-basis:100%}}
