@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#f2e6c8;background:#171510;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 50% -10%,#3d291e 0,transparent 40%),#171510}button{font:inherit;cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:2px solid #ecd08a;outline-offset:3px} .app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:80px;border-bottom:1px solid #7a583c66;background:#1a1714eb;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(17px,4.5vw,75px);gap:25px;position:relative;z-index:2}.logo{border:0;background:none;color:#ecd99f;display:flex;align-items:center;gap:12px;font-family:'Barlow Condensed';font-size:25px;font-weight:700;letter-spacing:.12em;white-space:nowrap}.logo small{display:block;font-size:9px;font-weight:500;letter-spacing:.5em;color:#b89058}.logo-mark{width:35px;height:41px;display:grid;place-items:center;border:1px solid #a58353;transform:rotate(0deg);font-family:'Playfair Display';font-size:27px}.topbar nav{display:flex;gap:25px}.navlink{border:0;background:none;color:#a69a85;font:600 13px 'Barlow Condensed';letter-spacing:.14em;padding:30px 0}.navlink.selected{color:#ecd49b;border-bottom:2px solid #c99e54}.header-right{display:flex;gap:13px;align-items:center}.wallet{border:1px solid #665139;padding:9px 18px;min-width:126px;background:#242019}.wallet span{display:block;color:#a99576;letter-spacing:.15em;font:600 9px 'DM Sans'}.wallet b{display:block;margin-top:3px;font:600 19px 'Barlow Condensed';letter-spacing:.06em;color:#ecd19a}.iconbtn{border:1px solid #554734;background:#242019;color:#e6c985;width:37px;height:37px;font-size:20px}.foot{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px max(20px,4.5vw);font:600 10px 'Barlow Condensed';letter-spacing:.17em;color:#85725b;border-top:1px solid #6c4c2d55}.foot button{color:#b89a64;background:none;border:0;letter-spacing:.18em;font-size:10px}.foot i{font-style:normal;color:#c69d50}.lobby-hero{min-height:clamp(420px,55vw,580px);background:linear-gradient(90deg,rgba(17,12,11,.98),rgba(22,14,12,.82) 43%,rgba(24,9,7,.38)),radial-gradient(ellipse at 78% 65%,#d0932e80,transparent 30%),repeating-linear-gradient(90deg,transparent 0 96px,#d6a75b14 97px 99px),linear-gradient(125deg,#391916,#6e2927 48%,#1d2319);display:flex;flex-direction:column;justify-content:center;padding:48px max(25px,12vw);position:relative;overflow:hidden;border-bottom:4px solid #946a35}.lobby-hero:after{content:'♠';font-family:Georgia;font-size:clamp(240px,43vw,650px);position:absolute;right:2%;top:0;opacity:.12;color:#e8c07c;filter:drop-shadow(0 0 45px #f5b243);line-height:1;pointer-events:none}.hero-filigree{color:#dbaf6f;letter-spacing:.5em;font-size:22px;margin-bottom:30px}.eyebrow,.section-title{font:600 12px 'Barlow Condensed';letter-spacing:.27em;color:#cfac72}.lobby-hero h1{font:500 clamp(48px,6vw,92px)/1.08 'Playfair Display',Georgia,serif;margin:20px 0;color:#f5e9c9;letter-spacing:-.04em}.lobby-hero h1 i{color:#e2b773}.lobby-hero p{max-width:420px;font-size:14px;line-height:1.9;color:#ccbbab;margin:6px 0 32px}.hero-caption{color:#aa8862;font:500 10px 'Barlow Condensed';letter-spacing:.18em;margin-top:23px}.btn{border:1px solid #c8a366;background:#47392d;color:#f1e5c7;padding:14px 22px;font:700 14px 'Barlow Condensed';letter-spacing:.14em;min-height:47px;transition:background .15s,transform .15s;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-2px);background:#674d31}.btn span{margin-left:13px}.btn.gold{background:linear-gradient(#f6d796,#bd8d49);color:#251b14;border-color:#e7bc72;box-shadow:0 5px 18px #0003}.btn.gold:hover:not(:disabled){background:#edd09a}.btn.outline{background:#191b17;border-color:#8c7248}.btn.large{padding:17px 30px}.btn.small{padding:7px 12px;min-height:30px}.btn.danger{background:#4b2120;border-color:#985f50;margin-top:20px}.lobby-games{max-width:1250px;margin:0 auto;width:100%;padding:38px 26px 45px}.section-title{display:flex;align-items:center;gap:17px;margin-bottom:20px}.section-title:after{content:'';background:#74583766;height:1px;flex:1}.section-title i{order:2;font-style:normal;font-size:17px}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game-tile{display:flex;position:relative;flex-direction:column;justify-content:space-between;min-height:290px;border:1px solid #765737;text-align:left;padding:22px;overflow:hidden;color:#f6e7ca;transition:transform .2s;background:radial-gradient(ellipse at 40% 40%,#1c7255,#073b32 65%,#0b2220)}.game-tile:hover:not(.locked){transform:translateY(-5px);border-color:#d6b273}.game-tile.slot-tile{background:radial-gradient(ellipse at 60% 40%,#7b4825,#301c18 70%)}.game-tile.roulette-tile{background:radial-gradient(ellipse at 60% 40%,#752f2b,#2d1418 70%)}.game-tile.locked{filter:saturate(.7);opacity:.75}.tile-tag{align-self:flex-start;background:#d0aa66;color:#282015;padding:7px 9px;font:700 11px 'Barlow Condensed';letter-spacing:.12em;z-index:1}.tile-tag.soon{background:#3a3028;color:#c9ae83;border:1px solid #8a6d46}.tile-symbol{position:absolute;right:0;top:15%;font:700 200px 'Playfair Display';color:#d8c28f1f;text-shadow:0 0 40px #c6ad7160;transform:rotate(-14deg);line-height:1}.tile-symbol span{font:110px Georgia}.slots-symbol{font:800 94px 'Barlow Condensed';letter-spacing:-.08em;transform:rotate(-7deg);right:18px;top:85px;color:#e5b96770}.roulette-art{position:absolute;top:45px;right:-50px;border:17px solid #9b7549;box-shadow:inset 0 0 0 13px #1b201b,0 0 0 3px #b89564;width:210px;height:210px;border-radius:50%;display:grid;place-items:center;font-size:60px;color:#cd9d4e;opacity:.4}.tile-content{z-index:1}.tile-content small{color:#dfba7b;font:600 10px 'Barlow Condensed';letter-spacing:.2em}.tile-content h2{font:500 38px 'Playfair Display';margin:9px 0 4px}.tile-content p{font-size:13px;color:#d4c7ab}.tile-link{display:block;margin-top:22px;font:700 13px 'Barlow Condensed';letter-spacing:.14em;color:#dfbc78}.bottom-banner{max-width:1198px;margin:0 auto 40px;width:calc(100% - 52px);padding:18px 25px;background:#29241d;border:1px solid #58492f;display:flex;align-items:center;gap:19px}.bottom-banner>span{font-size:28px;color:#d8b66f}.bottom-banner p{flex:1;font-size:12px;line-height:1.6;color:#b6a992}.bottom-banner b{color:#f4e5bf}.textbtn{background:none;border:0;color:#d4aa67;white-space:nowrap;letter-spacing:.1em;font:700 12px 'Barlow Condensed'}.table-page{max-width:1240px;margin:0 auto;padding:23px 22px 60px}.table-topline{display:flex;align-items:center;justify-content:space-between;margin:4px 0 20px;font:600 13px 'Barlow Condensed';letter-spacing:.16em;color:#dfc797}.table-topline i{font-style:normal;padding:0 9px;color:#b99753}.back,.rules-link{background:none;border:0;color:#af9c7b;font:600 12px 'Barlow Condensed';letter-spacing:.12em}.table-wood{padding:17px;background:repeating-linear-gradient(94deg,#3e2518,#5d3823 9px,#46291c 21px,#332016 32px);border-radius:25px 25px 43% 43% / 25px 25px 15% 15%;box-shadow:0 22px 55px #000a, inset 0 0 0 3px #89633f, inset 0 0 0 8px #301c14}.felt{height:clamp(420px,47vw,510px);border:4px solid #bb8e4f;border-radius:17px 17px 48% 48% / 17px 17px 19% 19%;box-shadow:inset 0 0 80px #021710,inset 0 0 0 2px #174a3c;background:radial-gradient(ellipse at 50% 40%,#125b46 0%,#0b4739 56%,#073529 100%);overflow:hidden;position:relative}.felt:after{content:'';pointer-events:none;position:absolute;inset:20px 23px 15px;border:1px solid #e9c88a35;border-radius:12px 12px 48% 48% / 12px 12px 20% 20%}.felt-inner{height:100%;position:relative;display:flex;align-items:center;flex-direction:column;padding:23px}.felt-brand{font:600 clamp(17px,2.7vw,28px) 'Playfair Display';letter-spacing:.16em;color:#c4a563a8}.felt-brand span{font-size:17px;color:#ead09a7d}.felt-rule{font:600 clamp(9px,1.1vw,13px) 'Barlow Condensed';letter-spacing:.16em;color:#e6ca8888;margin-top:7px}.felt-rule span{padding:0 8px}.dealer-zone{position:absolute;top:83px;display:flex;align-items:center;flex-direction:column;width:100%}.zone-label,.hand-score{font:700 13px 'Barlow Condensed';letter-spacing:.15em;color:#ecd8aa}.playingcards{display:flex;justify-content:center;align-items:center;min-height:115px;margin-top:8px}.cardplay{width:75px;height:105px;border-radius:6px;background:#fff8e7;box-shadow:2px 5px 8px #001a1880,0 0 0 1px #d7bea2;position:relative;display:grid;place-items:center;margin-left:-14px;animation:dealIn .27s cubic-bezier(.2,.75,.4,1.3) both;transform:rotate(calc((var(--idx) - 1)*2deg))}.cardplay:first-child{margin-left:0}.cardface{width:100%;height:100%;padding:6px;color:#20221c;position:relative;display:grid;place-items:center}.cardface.red{color:#b72e30}.cardface strong{font:55px Georgia}.cardcorner{font:800 17px Georgia;position:absolute;top:5px;left:6px;line-height:1;display:flex;flex-direction:column;align-items:center}.cardcorner small{font-size:13px}.cardcorner.bottom{top:auto;left:auto;right:6px;bottom:5px;transform:rotate(180deg)}.face-down{background:#e9d8bc;padding:5px}.cardback{width:100%;height:100%;border:3px double #eed6a9;background:repeating-linear-gradient(45deg,#822e2c 0 5px,#6b2121 5px 10px);display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:9px;color:#f5e1b9}.cardback b{font:600 19px Georgia}.card-placeholder{height:90px;width:64px;border:2px dashed #ecd29a2c;border-radius:6px;margin:6px}.table-emblem{font:italic 700 94px 'Playfair Display';color:#e4cd8a16;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.player-zone{position:absolute;bottom:20px;width:100%;left:0}.hands-wrap{display:flex;justify-content:center;gap:60px}.player-hand{text-align:center;min-width:145px;padding:7px 18px;border:1px solid transparent;border-radius:10px}.player-hand.active{border-color:#e2bd637c;background:#cca66014}.player-hand .playingcards{min-height:110px}.hand-score{margin-top:7px}.hand-score span{color:#dbb878}.hand-score em{display:block;color:#ffdb91;font-style:normal;font-size:13px;margin-top:4px}.awaiting{height:147px;display:grid;place-items:center}.bet-circle{width:112px;height:112px;border:2px dashed #dfbb74a8;color:#dab478;border-radius:50%;display:grid;place-items:center;text-align:center;transform:rotate(-9deg);font:700 18px 'Barlow Condensed';letter-spacing:.12em}.table-footer{max-width:840px;margin:20px auto 0}.table-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.mini-label,.bet-caption{font:700 11px 'Barlow Condensed';letter-spacing:.19em;color:#b89455}.table-status p{color:#f0e2c3;margin:5px 0;font:500 17px 'Playfair Display'}.pill{border:1px solid #7c6545;border-radius:20px;padding:8px 14px;white-space:nowrap;color:#ceb07c;font:600 11px 'Barlow Condensed';letter-spacing:.12em}.coach{display:flex;gap:15px;align-items:flex-start;background:#242a20;border:1px solid #71804d;padding:15px 19px;margin:15px 0}.coach-icon{width:37px;height:37px;display:grid;place-items:center;border:1px solid #92a66c;color:#c0d399;font-size:20px}.coach-copy small{display:block;color:#a4b58c;font:700 11px 'Barlow Condensed';letter-spacing:.12em}.coach-copy b{display:block;color:#e3efd3;font:700 22px 'Barlow Condensed';margin:5px 0 2px}.coach-copy p{font-size:12px;color:#b9c7b1;margin:0;line-height:1.6}.feedback{font:700 12px 'Barlow Condensed';color:#d6bc7c;letter-spacing:.12em;padding:5px 0 14px}.bet-tools{text-align:center}.chip-rack{display:flex;justify-content:center;gap:17px;margin:14px 0 17px;flex-wrap:wrap}.chip{width:66px;height:66px;border-radius:50%;border:6px dashed #f1e3c6;outline:3px solid #6c502d;box-shadow:0 4px 12px #0009,inset 0 0 0 3px #f1d8a3;color:#fff3da;font:800 19px 'Barlow Condensed';text-shadow:1px 2px #0008;transition:transform .12s}.chip:hover{transform:translateY(-6px)}.c10{background:#365387}.c25{background:#2f6945}.c50{background:#a43d37}.c100{background:#272422}.c500{background:#814579}.bet-adjust{display:flex;align-items:center;justify-content:center;gap:15px;margin:14px}.bet-adjust button{width:35px;height:35px;background:#3b3024;border:1px solid #8c704c;color:#f4d49a;font-size:23px}.bet-adjust span{min-width:120px;font:700 14px 'Barlow Condensed';letter-spacing:.15em;color:#c6af87}.bet-adjust b{font-size:20px;color:#f2d49a;margin-left:6px}.control-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:14px 0}.actions .btn{flex:1;min-width:118px}.table-extras{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #61503c;padding-top:17px;margin-top:20px;font:600 10px 'Barlow Condensed';letter-spacing:.13em;color:#a18e70}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer}.toggle input{accent-color:#d8b16e;width:16px;height:16px}.modal-shade{position:fixed;inset:0;background:#050404d9;display:grid;place-items:center;padding:15px;z-index:9}.modal{width:min(480px,100%);background:#272119;border:1px solid #a38553;box-shadow:0 20px 100px #000a;padding:30px;position:relative;max-height:90vh;overflow:auto}.modal .close{position:absolute;right:17px;top:14px;border:0;background:none;color:#d4ba8b;font-size:30px}.modal h2{font:500 35px 'Playfair Display';margin:10px 0 20px}.modal p{font-size:13px;line-height:1.8;color:#c7b69a}.settingrow{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #564838;padding:12px 0;font-size:13px;color:#eed4a3}.settingrow b{font-size:17px}@keyframes dealIn{from{opacity:0;transform:translateY(-35px) rotate(-10deg)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.topbar{height:67px;padding:0 13px;gap:6px}.logo{font-size:20px;gap:7px}.logo-mark{height:33px;width:29px;font-size:21px}.topbar nav{display:none}.header-right{gap:6px}.wallet{min-width:85px;padding:6px 8px}.wallet b{font-size:17px}.iconbtn{width:31px;height:34px}.lobby-hero{padding:48px 27px;min-height:450px}.lobby-hero:after{right:-30%;top:30%;font-size:340px}.lobby-hero h1{font-size:55px}.game-grid{grid-template-columns:1fr;gap:13px}.game-tile{min-height:215px}.tile-content h2{font-size:33px}.lobby-games{padding:24px 20px}.bottom-banner{margin-bottom:25px;width:calc(100% - 40px);flex-wrap:wrap}.bottom-banner p{flex:1 1 75%}.bottom-banner .textbtn{margin-left:44px}.foot{font-size:9px}.foot span:nth-child(2){display:none}.table-page{padding:14px 9px 30px}.table-topline{font-size:10px;padding:0 5px}.back,.rules-link{font-size:10px}.table-wood{padding:9px}.felt{height:405px;border-width:3px}.felt-inner{padding:12px 4px}.felt-brand{font-size:20px}.felt-rule{font-size:9px;letter-spacing:.07em}.felt-rule span{padding:0 2px}.dealer-zone{top:66px}.cardplay{width:59px;height:83px;margin-left:-10px}.cardface strong{font-size:44px}.cardcorner{font-size:14px}.cardcorner small{font-size:11px}.cardback b{font-size:15px}.playingcards{min-height:90px}.player-hand .playingcards{min-height:90px}.hands-wrap{gap:2px}.player-hand{min-width:130px;padding:5px}.player-zone{bottom:23px}.awaiting{height:125px}.bet-circle{width:100px;height:100px}.table-emblem{font-size:70px}.table-footer{padding:0 8px}.table-status p{font-size:15px}.pill{font-size:9px}.actions .btn{min-width:calc(50% - 8px)}.chip{width:54px;height:54px;font-size:16px;border-width:5px}.chip-rack{gap:11px}.table-extras{align-items:flex-start;flex-direction:column}.foot{padding:14px}}@media(max-width:390px){.logo{font-size:16px}.logo-mark{width:26px;height:30px}.wallet b{font-size:15px}.iconbtn{width:29px}.table-topline{letter-spacing:.05em}.felt-rule{font-size:8px}.chip-rack{gap:9px}.chip{width:49px;height:49px}.player-hand{min-width:112px}.cardplay{width:53px;height:76px}}

/* v0.2 mobile table: fit game board, decisions and wagers on one viewport. */
.coach-controls{display:flex;align-items:center;gap:8px}.coach-controls select{background:#2d261e;border:1px solid #ac8a50;border-radius:5px;color:#f4dfb1;padding:7px 11px;font:700 13px 'Barlow Condensed'}.coach-reveal{border:1px solid #b99b5e;color:#ffe3ad;background:#342c20;padding:7px 12px;font:700 12px 'Barlow Condensed';letter-spacing:.09em}.table-extras{align-items:center}.feedback{border:1px solid #697450;background:#263021;padding:8px 11px;letter-spacing:.02em;line-height:1.3;margin:6px 0}.coach{margin:6px 0;padding:9px 12px}.coach-copy p{line-height:1.3}
@media(max-width:760px){
 body:has(.table-page){overflow:hidden}.app-shell:has(.table-page){height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app-shell:has(.table-page) .topbar{height:50px;min-height:50px}.app-shell:has(.table-page) main{min-height:0;flex:1;overflow:hidden;display:flex;flex-direction:column}.app-shell:has(.table-page) .foot{display:none}.app-shell:has(.table-page) .logo small{display:none}
 .table-page{height:100%;min-height:0;display:flex;flex-direction:column;padding:4px 8px max(5px,env(safe-area-inset-bottom));gap:4px;overflow:hidden}
 .table-topline{flex:0 0 19px;height:19px;font-size:9px;padding:0 3px}.table-topline .rules-link,.table-topline .back{font-size:9px}
 .table-wood{flex:1 1 auto;min-height:0;padding:5px;border-radius:13px 13px 35% 35% / 13px 13px 12% 12%}.felt{height:100%;min-height:0;border-width:2px;border-radius:10px 10px 35% 35% / 10px 10px 12% 12%}.felt:after{inset:7px 9px 6px}.felt-inner{padding:4px}.felt-brand{font-size:clamp(13px,3.7vw,18px)}.felt-rule{font-size:8px;margin-top:2px}.dealer-zone{top:18%;}.playingcards{min-height:0;margin-top:2px}.cardplay{width:clamp(38px,11vw,55px);height:clamp(54px,15.5vw,77px);margin-left:-8px}.cardface strong{font-size:32px}.cardcorner{font-size:11px}.cardcorner small{font-size:9px}.cardback b{font-size:12px}.cardface{padding:3px}.card-placeholder{height:56px;width:40px;margin:2px}.zone-label,.hand-score{font-size:10px}.player-zone{bottom:4px}.player-hand{min-width:0;padding:3px}.player-hand .playingcards{min-height:0}.hand-score{margin-top:2px;letter-spacing:.05em}.hand-score em{font-size:10px;margin:0}.hands-wrap{gap:2px}.awaiting{height:66px}.bet-circle{width:62px;height:62px;font-size:11px}.table-emblem{font-size:48px;top:49%}
 .table-footer{flex:0 0 auto;margin:0;padding:0 2px}.table-status{margin:0 0 3px;gap:5px}.table-status p{font-size:12px;line-height:1.2;margin:2px 0}.mini-label{font-size:9px}.pill{padding:4px 7px;font-size:9px}.control-row{flex-wrap:nowrap;gap:5px;margin:5px 0}.control-row .btn{min-width:0;flex:1;padding:11px 5px;font-size:12px;white-space:nowrap}.actions .btn{min-width:0}.chip-rack{flex-wrap:nowrap;gap:7px;margin:5px 0}.chip{width:clamp(39px,11vw,49px);height:clamp(39px,11vw,49px);font-size:13px;border-width:4px}.bet-adjust{margin:4px;gap:9px}.bet-adjust button{width:26px;height:26px;font-size:18px}.bet-caption{font-size:9px}.bet-adjust b{font-size:15px}.table-extras{margin-top:3px;padding-top:4px;gap:8px;font-size:9px;flex-direction:row}.coach-controls select,.coach-reveal{padding:4px 6px;font-size:11px}.feedback{font-size:10px;padding:5px;margin:3px 0;max-height:45px;overflow:auto}.coach{max-height:62px;overflow:auto;gap:8px;padding:5px}.coach-icon{display:none}.coach-copy b{font-size:14px;margin:0}.coach-copy p{font-size:10px}.coach-copy small{font-size:9px}
}
@media(max-width:760px) and (max-height:650px){.app-shell:has(.table-page) .topbar{height:44px;min-height:44px}.table-topline{height:17px;flex-basis:17px}.table-status p{font-size:11px}.control-row .btn{padding:7px 4px}.chip{width:36px;height:36px}.chip-rack{margin:2px 0}.bet-adjust{margin:2px}.felt-brand{font-size:12px}.felt-rule{font-size:7px}.cardplay{width:37px;height:52px}.cardface strong{font-size:26px}.feedback{max-height:31px}.coach{max-height:42px}}

/* v0.3 strategy guide and dependable dialog dismissal */
.table-help{display:flex;gap:12px;align-items:center}.modal-shade{z-index:30}.modal{width:min(680px,100%);padding:clamp(17px,3vw,30px)}.modal .close{z-index:2;width:40px;height:40px;border:1px solid #9b7850;background:#3b3024;color:#f6dca5;display:grid;place-items:center;line-height:1;border-radius:50%;font-size:29px;right:12px;top:12px}.modal .close:hover{background:#645038}.guide-intro{padding-right:18px}.guide-tabs{display:flex;gap:6px;margin:12px 0}.guide-tab{flex:1;min-width:0;background:#30291e;border:1px solid #715b3a;color:#d7bc88;padding:11px 5px;font:700 12px 'Barlow Condensed';letter-spacing:.06em}.guide-tab.active{background:#c79b54;color:#1e180f}.strategy-tree{border:1px solid #7a6543;background:radial-gradient(ellipse at top,#173d32,#14251f 72%);padding:16px;margin-top:10px}.tree-node{text-align:center;border:1px solid #ba965b;background:#233f33;padding:10px;font:700 13px 'Barlow Condensed';letter-spacing:.08em}.tree-arrow{text-align:center;color:#d8b875;font-size:22px;line-height:1.5}.tree-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tree-branch{background:#1b2c25;border:1px solid #536c51;padding:12px;display:flex;flex-direction:column;gap:8px;min-height:82px}.tree-branch strong{color:#f2d99d;font-size:12px}.tree-branch span{color:#bbdec1;font:700 12px 'Barlow Condensed';line-height:1.35}.accent-node{margin-top:9px;background:#61452b}.guide-note{margin:12px 0 0!important;color:#c9cbaf!important;font-size:11px!important;line-height:1.5!important}.guide-reference h3{color:#dbb879;letter-spacing:.13em;font:700 14px 'Barlow Condensed';margin:18px 0 8px}.reference-scroll{overflow-x:auto}.guide-reference table{width:100%;border-collapse:collapse;font:12px 'DM Sans';color:#f2e1b8}.guide-reference td,.guide-reference th{border-bottom:1px solid #604d35;text-align:left;padding:8px 6px}.guide-reference th{color:#d8b372;background:#392e21}.guide-reference td:first-child{font-weight:700;white-space:nowrap}.guide-legend{font-size:11px!important}.modal-shade .modal{overscroll-behavior:contain}@media(max-width:760px){.table-help{gap:6px}.table-topline .table-help .rules-link{font-size:9px;letter-spacing:0}.modal{max-height:min(90dvh,850px)}.strategy-tree{padding:9px}.tree-branch{padding:8px;min-height:69px}.tree-branch strong,.tree-branch span{font-size:11px}}
@media(max-width:420px){.table-topline>span:not(.table-help){display:none}.table-help{margin-left:auto}}

/* v0.4 – phone-first blackjack table. No elongated table or clipped controls. */
@media (max-width: 760px) {
  html,body,#app{height:100%;width:100%;overflow-x:hidden}
  body:has(.table-page){overflow:hidden}
  .app-shell:has(.table-page){height:100dvh;min-height:0;overflow:hidden}
  .app-shell:has(.table-page) .topbar{flex:0 0 47px;height:47px;min-height:47px}
  .app-shell:has(.table-page) main{min-height:0;flex:1 1 0;overflow:hidden}
  .table-page{height:100%;width:100%;min-width:0;max-width:none;min-height:0;display:grid;grid-template-rows:22px minmax(95px,1fr) auto;gap:3px;padding:2px 5px max(5px,env(safe-area-inset-bottom));overflow:hidden}
  .table-topline{height:22px;margin:0;min-height:0;align-self:center}
  .table-wood{height:100%;min-height:0;min-width:0;align-self:stretch;padding:4px;border-radius:13px}
  .felt{height:100%!important;min-height:0!important;border-radius:9px 9px 23% 23% / 9px 9px 9% 9%;overflow:hidden}
  .felt:after{border-radius:9px 9px 22% 22% / 9px 9px 9% 9%}
  .felt-inner{height:100%;padding:2px;}
  .felt-brand{font-size:clamp(12px,3.6vw,17px);line-height:1.2}
  .felt-rule{font-size:7px;line-height:1.1;margin-top:0}
  .dealer-zone{top:16%;}
  .player-zone{bottom:3px}
  .table-emblem{font-size:clamp(28px,8vh,44px)}
  .table-footer{height:auto;max-height:48dvh;min-height:0;overflow:hidden;padding:0 2px}
  .table-status{min-height:0;margin:0 0 2px}
  .table-status p{font-size:11px;line-height:1.1;margin:0}
  .table-status .mini-label{font-size:8px}
  .control-row{margin:3px 0;gap:4px}
  .control-row .btn{min-height:37px;padding:7px 3px;font-size:11px}
  .chip-rack{margin:3px 0;gap:4px}
  .chip{width:clamp(33px,10vw,43px);height:clamp(33px,10vw,43px);font-size:12px}
  .bet-adjust{margin:2px}
  .bet-caption{font-size:9px}
  .table-extras{padding-top:3px;margin-top:3px}
  .feedback{max-height:32px;overflow:auto;margin:2px 0;padding:3px}
  .coach{max-height:36px;overflow:auto;padding:3px}
}
@media (max-width:760px) and (max-height:690px) {
  .app-shell:has(.table-page) .topbar{flex-basis:41px;height:41px;min-height:41px}
  .table-page{grid-template-rows:18px minmax(90px,1fr) auto;gap:2px;padding-top:1px}
  .table-topline{height:18px}
  .table-footer{max-height:47dvh}
  .control-row .btn{min-height:32px;padding:5px 3px}
  .chip{width:33px;height:33px;font-size:11px}
  .cardplay{width:clamp(32px,10vw,46px);height:clamp(45px,14vw,62px)}
  .cardface strong{font-size:25px}
  .dealer-zone{top:14%}
  .table-status p{font-size:10px}
}

/* v0.5: Stable full-viewport blackjack composition, mobile portrait. */
@media (max-width: 760px) {
  html, body, #app {height:100%; margin:0;}
  body:has(.table-page){overflow:hidden;overscroll-behavior:none}
  .app-shell:has(.table-page){height:100vh;height:100dvh;min-height:0;max-height:100dvh;overflow:hidden;display:grid;grid-template-rows:52px minmax(0,1fr)}
  .app-shell:has(.table-page) .topbar{position:relative;display:flex;height:52px;min-height:0;min-width:0;padding:0 10px;gap:5px;overflow:hidden}
  .app-shell:has(.table-page) .logo{font-size:clamp(15px,4.5vw,20px);gap:6px;min-width:0;flex:0 1 auto}
  .app-shell:has(.table-page) .logo small{display:block;font-size:7px;letter-spacing:.24em}
  .app-shell:has(.table-page) .logo-mark{width:27px;height:30px;font-size:20px;flex-shrink:0}
  .app-shell:has(.table-page) .header-right{gap:4px;min-width:0;margin-left:auto}
  .app-shell:has(.table-page) .wallet{min-width:65px;padding:4px 6px}
  .app-shell:has(.table-page) .wallet span{font-size:7px}
  .app-shell:has(.table-page) .wallet b{font-size:clamp(12px,3.6vw,16px);white-space:nowrap}
  .app-shell:has(.table-page) .iconbtn{width:29px;height:31px;flex-shrink:0;font-size:17px}
  .app-shell:has(.table-page) main{min-height:0;height:100%;min-width:0;overflow:hidden;display:block}
  .app-shell:has(.table-page) .foot{display:none}
  .table-page{display:grid!important;grid-template-rows:24px minmax(0,1fr) 190px!important;height:100%!important;min-height:0;min-width:0;max-width:none;width:100%;gap:4px!important;padding:3px 7px max(5px,env(safe-area-inset-bottom))!important;overflow:hidden}
  .table-topline{height:24px!important;flex-basis:auto!important;margin:0!important;align-self:center;display:flex;justify-content:space-between;overflow:hidden;min-width:0}
  .table-topline .back,.table-topline .rules-link{font-size:10px;white-space:nowrap}
  .table-topline>span:not(.table-help){display:none}
  .table-wood{min-width:0;min-height:0;height:100%!important;padding:4px!important;align-self:stretch;box-shadow:inset 0 0 0 2px #89633f;background-color:#3e2518;border-radius:15px!important}
  .felt{min-height:0!important;height:100%!important;border-width:2px!important;overflow:hidden;border-radius:12px 12px 21% 21% / 12px 12px 8% 8%!important}
  .felt-inner{height:100%;min-height:0;padding:4px 3px!important}
  .felt-brand{font-size:clamp(12px,3.7vw,18px)!important;line-height:1.1}
  .felt-rule{font-size:clamp(6px,1.9vw,9px)!important;line-height:1.1;margin-top:2px!important;white-space:nowrap}
  .dealer-zone{position:absolute;top:18%!important;left:0;height:34%;justify-content:flex-start}
  .player-zone{position:absolute;bottom:4px!important;left:0;height:36%;display:flex;align-items:flex-end;justify-content:center}
  .hands-wrap{gap:0!important;width:100%;align-items:flex-end;justify-content:center}
  .player-hand{flex:0 1 auto;min-width:0!important;width:auto;max-width:50%;padding:2px!important}
  .playingcards,.player-hand .playingcards{min-height:0!important;flex-shrink:0;margin-top:3px}
  .cardplay{height:clamp(38px, min(12vw,11dvh), 72px)!important;width:clamp(28px,min(8.5vw,7.8dvh),51px)!important;flex-shrink:0;margin-left:-7px!important}
  .cardplay:first-child{margin-left:0!important}
  .cardface strong{font-size:clamp(19px,5vw,33px)!important}
  .cardcorner{font-size:10px!important;top:2px;left:3px}.cardcorner small{font-size:8px!important}
  .cardcorner.bottom{right:3px;bottom:2px}
  .cardback{padding:3px}.cardback b{font-size:11px!important}
  .card-placeholder{width:33px;height:46px;margin:2px}
  .zone-label,.hand-score{font-size:10px!important;line-height:1.1}
  .hand-score{max-width:100%;overflow-wrap:anywhere}
  .hand-score span{font-size:9px}
  .hand-score em{display:block;font-size:9px}
  .table-emblem{font-size:clamp(25px,6dvh,50px);top:50%}
  .awaiting{height:55px!important}.bet-circle{width:53px!important;height:53px!important;font-size:9px}
  .table-footer{height:190px!important;max-height:none!important;min-height:0;overflow:hidden;padding:0 2px!important;display:grid;grid-template-rows:31px 29px 99px 25px;gap:2px}
  .table-status{grid-row:1;margin:0!important;min-width:0;min-height:0;align-items:center;gap:4px}
  .table-status>div:first-child{min-width:0}
  .table-status .mini-label{font-size:8px}
  .table-status p{font-size:10px!important;line-height:1.1!important;max-height:23px;overflow:hidden;margin:0!important}
  .pill{font-size:8px!important;white-space:nowrap;padding:3px 5px}
  .coach-slot{grid-row:2;min-height:0;overflow:hidden;position:relative;display:flex;align-items:center}
  .coach-slot .coach,.coach-slot .feedback{width:100%;height:100%;max-height:none!important;min-height:0!important;overflow:auto;margin:0!important;padding:3px 6px;font-size:10px;line-height:1.15}
  .coach-slot .coach-copy small{display:none}.coach-slot .coach-copy p{font-size:9px;margin:0}.coach-slot .coach-copy b{font-size:11px}
  .controls-slot{grid-row:3;min-height:0;height:99px!important;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
  .controls-slot .bet-tools{height:99px;display:grid;grid-template-rows:11px 38px 20px 28px;gap:0;align-content:center}
  .controls-slot .bet-caption{font-size:8px!important;line-height:10px}
  .controls-slot .chip-rack{display:flex;justify-content:center;flex-wrap:nowrap;margin:0!important;gap:7px;align-items:center}
  .controls-slot .chip{width:35px!important;height:35px!important;border-width:3px;font-size:10px!important;flex-shrink:0}
  .controls-slot .bet-adjust{height:20px;margin:0!important;justify-content:center;gap:9px}
  .controls-slot .bet-adjust button{height:20px;width:24px;font-size:16px}
  .controls-slot .bet-adjust span{font-size:11px}
  .controls-slot .bet-adjust b{font-size:13px}
  .controls-slot .control-row{height:38px;min-height:0;margin:0!important;display:flex;flex-wrap:nowrap;gap:4px;align-items:center}
  .controls-slot .bet-tools .control-row{height:28px}
  .controls-slot .control-row .btn{height:36px;min-height:0!important;padding:4px 5px!important;min-width:0!important;flex:1;white-space:nowrap;font-size:11px!important}
  .controls-slot .bet-tools .control-row .btn{height:27px}
  .controls-slot .control-row .btn span{margin-left:3px}
  .table-extras{grid-row:4;height:25px;min-height:0;margin:0!important;padding:0!important;gap:4px;align-items:center;flex-direction:row!important;overflow:hidden}
  .table-extras>span{font-size:8px;white-space:nowrap}
  .coach-controls{gap:5px;white-space:nowrap}.coach-controls select,.coach-reveal{padding:3px 5px;font-size:10px}
}
@media(max-width:760px) and (max-height:620px){
  .app-shell:has(.table-page){grid-template-rows:43px minmax(0,1fr)}
  .app-shell:has(.table-page) .topbar{height:43px;min-height:0}
  .table-page{grid-template-rows:19px minmax(0,1fr) 161px!important;gap:2px!important}
  .table-topline{height:19px!important}
  .table-footer{height:161px!important;grid-template-rows:25px 23px 88px 19px;gap:2px}
  .controls-slot{height:88px!important}.controls-slot .bet-tools{height:88px;grid-template-rows:9px 32px 20px 27px}
  .controls-slot .chip{height:29px!important;width:29px!important}
  .controls-slot .control-row .btn{height:32px}.controls-slot .bet-tools .control-row .btn{height:26px}
  .table-extras{height:19px}.coach-controls select{padding:1px 4px}
  .dealer-zone{top:15%!important}.player-zone{height:38%}
}

/* v0.6: anchored gameplay, touch-friendly actions, and retro reels */
.table-wood{position:relative}.result-overlay{position:absolute;z-index:9;left:50%;top:41%;transform:translate(-50%,-50%);pointer-events:none;width:min(88%,370px);text-align:center}.result-banner{background:rgba(19,14,12,.93);border:2px solid #bb9852;border-radius:12px;padding:14px 10px;box-shadow:0 10px 28px #0008;color:#f4e0a8;text-shadow:0 1px 2px #000}.result-banner small{display:block;font-size:10px;letter-spacing:.25em}.result-banner strong{font-size:clamp(23px,6vw,43px);line-height:1.4}.result-banner.defeat{border-color:#ad6256;color:#f8c6ba}.result-banner.victory{border-color:#e5c174;color:#ffe1a0}
.slots-room{padding:15px;max-width:900px;margin:auto}.slots-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.16em;color:#d9bd82}.slot-machine{max-width:520px;margin:18px auto;padding:22px;border:9px ridge #b38a50;border-radius:28px;background:linear-gradient(140deg,#6a171d,#350e15 65%,#21131c);box-shadow:0 16px 45px #0009;text-align:center}.slot-marquee{font-family:Georgia,serif;font-size:clamp(23px,6vw,39px);color:#fce6a7;text-shadow:0 2px 15px #dc972f}.slot-marquee small{display:block;font-family:Arial,sans-serif;font-size:10px;letter-spacing:.22em;margin-top:5px}.slot-reels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;background:#160f0a;padding:10px;border:5px solid #c7a15f;border-radius:13px;margin:18px auto}.slot-window{height:clamp(118px,27vw,160px);background:linear-gradient(#d1c6a9,#fffaf0 30%,#fffaf0 70%,#c5b99e);display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;border:2px solid #5e4940;border-radius:5px}.slot-symbol{font-size:clamp(37px,11vw,71px);color:#b51b1b;font-family:Georgia,serif;font-weight:bold}.slot-symbol.seven{text-shadow:2px 3px #d9b77a}.slot-window small{font-family:Arial,sans-serif;font-size:9px;color:#5a392e;letter-spacing:.05em}.slot-window.rolling .slot-symbol{animation:reelFlicker .13s linear infinite alternate;animation-delay:var(--delay)}@keyframes reelFlicker{to{filter:blur(3px);transform:translateY(9px)}}.slot-message{height:36px;font-size:19px;color:#f9d18f;font-weight:bold}.slot-bets{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:10px}.slot-bets>span{width:100%;font-size:10px;letter-spacing:.15em;color:#e4c994}.slot-chip{border:2px dashed #e9c78a;background:#3e201a;color:#fbe6c7;border-radius:100%;height:43px;width:43px;font-weight:bold}.slot-chip.picked{background:#d5ae66;color:#26150f}.slot-spin{width:100%;min-height:56px!important;font-size:19px!important}.slot-paytable{margin-top:18px;font-size:12px;color:#f3dcc2}.slot-paytable p{margin:8px 0}.slot-paytable small{display:block;color:#bca987;line-height:1.5}
@media(max-width:760px){
 .table-page{grid-template-rows:20px minmax(0,1fr) 214px!important;gap:3px!important}
 .table-wood{max-height:calc(100dvh - 325px)}
 .felt-inner .felt-brand,.felt-rule{font-size:9px!important}
 .dealer-zone{top:8%!important;height:44%!important}.player-zone{height:45%!important;bottom:1px!important}
 .cardplay{width:clamp(42px,12.5vw,61px)!important;height:clamp(59px,17.5vw,86px)!important;margin-left:-9px!important}
 .table-footer{height:214px!important;grid-template-rows:30px 42px 111px 25px!important;gap:2px!important}
 .coach-slot .coach,.coach-slot .feedback{font-size:11px!important;line-height:1.23!important}.coach-slot .coach-copy p{font-size:10px!important}
 .controls-slot{height:111px!important}.controls-slot .control-row{height:57px!important}.controls-slot .control-row .btn{min-height:54px!important;height:54px!important;font-size:clamp(12px,3.2vw,16px)!important;padding:4px!important}
 .controls-slot .bet-tools{height:111px!important;grid-template-rows:10px 35px 20px 46px!important}.controls-slot .bet-tools .control-row,.controls-slot .bet-tools .control-row .btn{height:43px!important;min-height:43px!important}
 .controls-slot .chip{width:33px!important;height:33px!important}
 .result-overlay{top:43%}
 .slots-room{padding:8px}.slot-machine{margin:9px auto;padding:12px;border-width:6px}.slot-reels{margin:12px auto}
}
@media(max-width:760px) and (max-height:700px){.table-page{grid-template-rows:17px minmax(0,1fr) 188px!important}.table-footer{height:188px!important;grid-template-rows:23px 30px 111px 18px!important}.table-wood{max-height:calc(100dvh - 281px)}.table-extras{height:18px!important}.table-topline{height:17px!important}}
@media(max-width:760px) and (max-height:590px){.table-page{grid-template-rows:16px minmax(0,1fr) 168px!important}.table-footer{height:168px!important;grid-template-rows:20px 24px 105px 13px!important}.table-wood{max-height:calc(100dvh - 249px)}.controls-slot{height:105px!important}.controls-slot .control-row .btn{height:48px!important;min-height:48px!important}.cardplay{width:40px!important;height:54px!important}}

.table-page{position:relative}

/* v0.7: Mobile composition. Explicitly constrain felt instead of giving it all available height. */
@media(max-width:760px){
  .app-shell:has(.table-page){height:100dvh!important;max-height:100dvh!important;display:grid!important;grid-template-rows:58px minmax(0,1fr)!important;overflow:hidden!important}
  .app-shell:has(.table-page) .topbar{height:58px!important;min-height:58px!important;max-height:58px!important;padding:0 10px!important}
  .app-shell:has(.table-page) .topbar .logo{font-size:20px!important}
  .app-shell:has(.table-page) main{height:100%!important;min-height:0!important;overflow:hidden!important}
  .table-page{box-sizing:border-box!important;height:100%!important;max-height:100%!important;display:grid!important;grid-template-rows:37px minmax(0,1fr) 270px!important;gap:5px!important;padding:3px 8px max(6px,env(safe-area-inset-bottom))!important;overflow:hidden!important}
  .table-topline{height:37px!important;min-height:37px!important;padding:0!important}
  .table-topline .back{font-size:15px!important;letter-spacing:.035em!important;min-height:36px!important;padding:6px!important;color:#f4dca6!important;font-weight:700!important}
  .table-topline .rules-link{font-size:11px!important;min-height:35px!important;padding:5px!important}
  .table-wood{min-height:0!important;max-height:none!important;height:100%!important;padding:4px!important;border-radius:16px!important}
  .felt{height:100%!important;border-radius:13px!important}
  .felt:after{border-radius:10px!important}
  .felt-inner .felt-brand{font-size:14px!important}
  .felt-rule{font-size:7px!important}
  .dealer-zone{top:12%!important;height:37%!important}
  .player-zone{bottom:5px!important;height:38%!important}
  .cardplay{width:clamp(53px,17vw,73px)!important;height:clamp(77px,24vw,103px)!important;margin-left:-12px!important}
  .cardface strong{font-size:35px!important}.cardcorner{font-size:13px!important}.cardcorner small{font-size:10px!important}
  .card-placeholder{height:79px!important;width:55px!important}
  .zone-label,.hand-score{font-size:12px!important}
  .table-emblem{font-size:32px!important;opacity:.11!important}
  .table-footer{height:270px!important;max-height:none!important;min-height:0!important;display:grid!important;grid-template-rows:36px 40px 153px 32px!important;gap:3px!important;overflow:hidden!important}
  .table-status{height:36px!important}.table-status p{font-size:12px!important;max-height:30px!important}.table-status .mini-label{font-size:9px!important}
  .coach-slot{height:40px!important;max-height:40px!important;overflow:auto!important;align-items:flex-start!important}
  .coach-slot .coach,.coach-slot .feedback{height:40px!important;overflow:auto!important}
  .controls-slot{height:153px!important;min-height:0!important;justify-content:center!important}
  .controls-slot .bet-tools{height:153px!important;grid-template-rows:16px 51px 29px 57px!important}
  .controls-slot .bet-caption{font-size:11px!important;line-height:15px!important}
  .controls-slot .chip{width:47px!important;height:47px!important;font-size:14px!important;border-width:4px!important}
  .controls-slot .bet-adjust{height:29px!important}.controls-slot .bet-adjust button{width:33px!important;height:28px!important;font-size:23px!important}.controls-slot .bet-adjust b{font-size:18px!important}
  .controls-slot .control-row{height:62px!important;gap:7px!important}
  .controls-slot .control-row .btn{height:62px!important;min-height:62px!important;font-size:clamp(16px,4.4vw,20px)!important;padding:8px 3px!important;letter-spacing:.02em!important}
  .controls-slot .bet-tools .control-row,.controls-slot .bet-tools .control-row .btn{height:56px!important;min-height:56px!important}
  .controls-slot .actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,62px)!important;height:131px!important;gap:7px!important}
  .controls-slot .actions .btn{width:100%!important;height:62px!important;min-height:62px!important}
  .table-extras{height:32px!important;align-items:center!important}.coach-controls select,.coach-reveal{font-size:12px!important;min-height:29px!important}
  .result-overlay{top:40%!important;width:min(90%,360px)!important}.result-banner strong{font-size:clamp(30px,9vw,46px)!important}
  .slots-top .back{font-size:17px!important;min-height:48px!important;padding:8px 14px!important;border:1px solid #b99762!important;border-radius:6px!important;color:#f5dcac!important}
}
@media(max-width:760px) and (max-height:725px){
 .table-page{grid-template-rows:35px minmax(0,1fr) 238px!important}
 .table-footer{height:238px!important;grid-template-rows:30px 32px 144px 26px!important;gap:2px!important}
 .coach-slot,.coach-slot .coach,.coach-slot .feedback{height:32px!important;max-height:32px!important}
 .controls-slot{height:144px!important}.controls-slot .bet-tools{height:144px!important;grid-template-rows:12px 45px 24px 55px!important}
 .controls-slot .chip{width:42px!important;height:42px!important}
 .controls-slot .actions{grid-template-rows:repeat(2,57px)!important;height:120px!important}.controls-slot .actions .btn{height:57px!important;min-height:57px!important}
 .table-extras{height:26px!important}.cardplay{width:clamp(48px,15vw,65px)!important;height:clamp(69px,21vw,93px)!important}
}
@media(max-width:760px) and (max-height:580px){
 .app-shell:has(.table-page){grid-template-rows:46px minmax(0,1fr)!important}.app-shell:has(.table-page) .topbar{height:46px!important;min-height:46px!important}
 .table-page{grid-template-rows:30px minmax(0,1fr) 198px!important}
 .table-footer{height:198px!important;grid-template-rows:24px 20px 127px 21px!important}
 .controls-slot{height:127px!important}.controls-slot .bet-tools{height:127px!important;grid-template-rows:10px 36px 24px 54px!important}
 .controls-slot .chip{height:34px!important;width:34px!important}.controls-slot .actions{grid-template-rows:repeat(2,52px)!important;height:110px!important}.controls-slot .actions .btn{height:52px!important;min-height:52px!important}
 .coach-slot,.coach-slot .coach,.coach-slot .feedback{height:20px!important;max-height:20px!important}
 .cardplay{height:55px!important;width:40px!important}
}
/* v0.7 final: cap felt proportion; give remaining height to lower interaction area. */
@media(max-width:760px) and (min-height:581px){
 .table-page{grid-template-rows:37px minmax(0,39dvh) minmax(0,1fr)!important}
 .table-wood{max-height:39dvh!important}
 .table-footer{height:100%!important;grid-template-rows:36px minmax(0,1fr) 153px 32px!important}
 .coach-slot{height:auto!important;max-height:none!important;min-height:0!important;align-items:center!important}
 .coach-slot .coach,.coach-slot .feedback{height:auto!important;max-height:100%!important;overflow:auto!important}
}
@media(max-width:760px) and (min-height:581px) and (max-height:725px){
 .table-page{grid-template-rows:35px minmax(0,38dvh) minmax(0,1fr)!important}
 .table-wood{max-height:38dvh!important}
 .table-footer{height:100%!important;grid-template-rows:30px minmax(0,1fr) 144px 26px!important}
}

/* v0.8 focused UI polish */
.topbar .iconbtn{display:inline-grid!important;place-items:center!important;text-align:center!important;line-height:1!important;font-family:system-ui,sans-serif!important;padding:0!important}
.foot{align-items:center}.foot span:last-child{color:#d5af76;letter-spacing:.12em;font-size:11px}
.slot-message.slot-win{background:linear-gradient(90deg,#4b2c0f,#ad7627,#4b2c0f)!important;color:#fff5d6!important;box-shadow:0 0 22px rgba(247,190,79,.5);font-size:clamp(20px,4vw,28px)!important;font-weight:900!important;animation:jackpot .7s ease-out}
@keyframes jackpot{0%{transform:scale(.82);filter:brightness(2)}60%{transform:scale(1.07)}100%{transform:scale(1);filter:brightness(1)}}
@media(max-width:760px){
 .coach-slot,.coach-slot .coach,.coach-slot .feedback{overflow:hidden!important}
 .coach-slot .coach-copy{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
 .coach-slot .coach-copy small{display:none!important}
 .coach-slot .coach-copy b{font-size:14px!important;white-space:nowrap}
 .coach-slot .coach-copy p{font-size:12px!important;line-height:1.15!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0!important}
 .coach-slot .feedback{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2!important;font-size:12px!important;padding:4px!important}
 .slot-message.slot-win{font-size:24px!important;min-height:46px;display:grid;place-items:center}
 .slots-room{scroll-margin-top:0}
 .app-shell:has(.slots-room) main{overflow-y:auto;overscroll-behavior:contain}
 .app-shell:has(.slots-room){scroll-margin-top:0}
}

.audio-mixer{margin:14px 0;border:1px solid #806b49;border-radius:12px;padding:12px;background:#171b18}.audio-mixer label{display:block;margin:13px 0;color:#e5d7b5;font-size:12px;letter-spacing:.03em}.audio-mixer strong{float:right;color:#e5c27b}.audio-mixer input[type=range]{width:100%;margin:10px 0 0;accent-color:#d4aa63;min-height:24px}.audio-mixer .mini-label{font-size:10px;color:#c4a47a}