/* FRBC V34 final: original ordered CSS cascade consolidated; no visual re-interpretation. */

/* original: style.css */
:root{color-scheme:dark;--ink:#111923;--panel:rgba(17,25,35,.94);--white:#f2efe7;--muted:#a7b0b7;--gold:#c7a770;--line:rgba(215,197,163,.22);font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#171b21;color:var(--white);overflow:hidden}button,select,a{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{color:inherit;cursor:pointer}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #eccfa0;outline-offset:4px}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(7,12,18,.7),transparent 24%,transparent 60%,rgba(7,12,18,.52))}.topbar{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:24px 32px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;gap:14px;align-items:center;color:var(--white);text-decoration:none;font-family:Georgia,serif;font-size:12px;letter-spacing:2.5px}.brand small{display:block;font:9px Arial,sans-serif;letter-spacing:5px;margin-top:7px;color:var(--gold)}.monogram{font:24px Georgia,serif;position:relative;letter-spacing:-3px;border:1px solid var(--line);padding:13px 15px 13px 11px}.monogram span{position:absolute;top:-9px;left:25px;font:17px Georgia;color:var(--gold);background:#1a2028}.match-score{display:grid;grid-template-columns:90px 95px 90px;align-items:center;gap:15px;text-align:center;background:rgba(12,18,27,.55);padding:13px 24px 10px;border:1px solid var(--line);backdrop-filter:blur(14px);border-radius:3px}.player{display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px}.player i{width:10px;height:10px;border-radius:50%;background:#efeee5;border:1px solid #baa682}.player.blue i{background:#497997}.match-score strong{font:28px Georgia,serif;letter-spacing:6px;white-space:nowrap}.match-score em{font-style:normal;color:#8d949b}.match-score>small{grid-column:1/4;font-size:8px;letter-spacing:2.3px;color:var(--gold);margin-top:-4px}.icon-button{border:1px solid var(--line);background:rgba(12,18,27,.6);width:43px;height:43px;font-size:20px;border-radius:3px}.view-switch{position:fixed;top:119px;left:32px;display:flex;gap:4px;background:rgba(12,18,27,.75);padding:5px;border:1px solid var(--line);backdrop-filter:blur(10px);border-radius:4px}.view-switch button{border:0;background:none;color:var(--muted);padding:11px 13px;font-size:11px;border-radius:2px}.view-switch button.active{background:#303e4b;color:#f2efe7}.room-note{position:fixed;top:136px;right:32px;font-size:9px;letter-spacing:2px;color:#d2d3ce}.live-dot{display:inline-block;width:5px;height:5px;background:var(--gold);border-radius:50%;margin-right:8px}.slash{margin:0 11px;color:#72808a}.side-stats{position:fixed;left:32px;top:43%;display:flex;flex-direction:column;gap:20px;min-width:85px;padding:19px 17px;background:rgba(12,18,27,.65);border:1px solid var(--line);backdrop-filter:blur(10px);border-radius:3px}.side-stats div{display:flex;flex-direction:column;gap:6px}.side-stats small{font-size:8px;letter-spacing:2px;color:var(--gold)}.side-stats b{font:25px Georgia,serif}.side-stats span{font-size:8px;color:var(--muted)}.side-stats .stat-separator{height:1px;background:var(--line)}.game-dock{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);width:min(940px,calc(100% - 64px));display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:13px 24px;padding:21px 24px 13px;background:var(--panel);border:1px solid var(--line);box-shadow:0 12px 60px #0005;backdrop-filter:blur(24px);border-radius:5px}.turn-info>span{font-size:8px;letter-spacing:2.5px;color:var(--gold)}h1{font:21px Georgia,serif;margin:8px 0 6px}.turn-info p{font-size:10px;color:var(--muted);margin:0;line-height:1.6}.dice-values{display:flex;gap:6px}.dice-values button{height:35px;width:35px;background:#eeeae0;border:2px solid transparent;color:#132d45;border-radius:5px;font-size:24px;line-height:1}.dice-values button.selected{border-color:var(--gold);box-shadow:0 0 0 3px #c7a77033}.dice-values button.used{opacity:.22}.dock-actions{display:flex;gap:7px;align-items:center}.primary{border:1px solid #d3b67c;color:#19202b;background:#d7bc89;padding:14px 22px;border-radius:3px;font-size:11px;font-weight:bold;transition:background .2s,transform .2s}.primary:hover:not(:disabled){background:#efd8ad;transform:translateY(-1px)}.primary span{margin-left:12px}.subtle{width:38px;height:43px;background:none;border:1px solid var(--line);border-radius:3px;font-size:21px;color:var(--gold)}.dock-secondary{border-top:1px solid var(--line);padding-top:12px;grid-column:1/4;display:flex;align-items:center;gap:13px;font-size:9px;color:var(--muted)}.dock-secondary button{background:none;border:0;font-size:9px}.dock-secondary b{color:var(--white);border:1px solid var(--line);border-radius:3px;padding:4px 7px;margin:0 6px}.dock-secondary span{color:var(--muted)}#moves-button{margin-left:auto;letter-spacing:1px}#moves-button span{margin-left:9px;color:var(--gold)}#toast{position:fixed;left:50%;transform:translate(-50%,-10px);top:190px;opacity:0;transition:.2s;background:#172431ed;border:1px solid var(--line);padding:13px 22px;font-size:12px;max-width:90%;text-align:center;pointer-events:none;z-index:20;border-radius:4px}#toast.show{opacity:1;transform:translate(-50%,0)}#moves-panel{position:fixed;bottom:190px;right:max(32px,calc((100% - 940px)/2));width:360px;max-width:calc(100vw - 32px);max-height:45vh;overflow:auto;border:1px solid var(--line);border-radius:5px;background:var(--panel);padding:18px;z-index:12}#moves-panel header{display:flex;align-items:center;justify-content:space-between;font:17px Georgia}#moves-panel header button{background:none;border:0;font-size:24px}#moves-panel p{font-size:11px;line-height:1.6;color:var(--muted)}#moves-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}#moves-list button{padding:10px 8px;text-align:left;background:#ffffff06;border:1px solid var(--line);border-radius:2px;font-size:11px}#moves-list button:hover{background:#c7a77022}.modal-backdrop{position:fixed;inset:0;z-index:30;background:#08101950;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px);padding:20px}#menu-modal{justify-content:flex-start;padding-left:max(6vw,32px);background:linear-gradient(90deg,#0c141ed9,rgba(8,16,25,.12) 75%);backdrop-filter:blur(1px)}.menu-card,.small-card,.rules-card{position:relative;border:1px solid var(--line);border-radius:5px;background:rgba(17,25,35,.96);box-shadow:0 24px 100px #0004;padding:42px;max-height:calc(100dvh - 40px);overflow:auto}.menu-card{width:420px}.close-modal{position:absolute;top:12px;right:16px;border:0;background:none;color:var(--muted);font-size:26px}.eyebrow{font-size:9px;letter-spacing:3px;color:var(--gold)}h2{font:40px/1.1 Georgia,serif;font-weight:normal;margin:24px 0 19px;letter-spacing:-1px}.intro{font-size:12px;line-height:1.9;color:#acb4b8;margin-bottom:29px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}.settings-row select{border:0;background:#1c2834;color:var(--white);padding:8px;border-radius:3px;max-width:225px;font-size:10px}.full{display:block;width:100%;margin-top:12px;text-align:center}.menu-card>.primary{margin-top:26px}.outline{background:transparent;border:1px solid var(--line);border-radius:3px;padding:13px 15px;font-size:11px}.outline:hover{border-color:var(--gold)}.menu-card footer{display:flex;align-items:center;justify-content:space-between;margin-top:29px;border-top:1px solid var(--line);padding-top:20px;gap:10px}.menu-card footer button{border:0;background:none;font-size:9px;color:var(--gold);padding:0}.menu-card footer span{font-size:7px;letter-spacing:1px;color:#788793}.small-card{width:410px;text-align:center}.small-card h2{font-size:34px}.small-card p{font-size:12px;line-height:1.8;color:var(--muted)}.result-score{font:45px Georgia;color:var(--gold);padding:13px}.rules-card{width:680px}.rules-card h2{font-size:31px}.rules-scroll{max-height:60dvh;overflow:auto;padding-right:12px}.rules-scroll h3{font:19px Georgia;color:#ddd4c5;margin:25px 0 10px}.rules-scroll p{font-size:12px;line-height:1.8;color:#afb9c0}.rules-scroll .source{font-size:10px;border-top:1px solid var(--line);padding-top:15px}.rules-scroll a{color:var(--gold)}.explore-help{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:17px 23px;display:flex;flex-direction:column;gap:8px;min-width:350px;max-width:calc(100vw - 180px)}.explore-help strong{font:18px Georgia}.explore-help span{font-size:10px;color:var(--muted);line-height:1.6}.explore-help button{align-self:flex-start;background:none;border:0;padding:4px 0;font-size:10px;color:var(--gold)}.walk-pad{position:fixed;bottom:34px;right:25px;display:grid;grid-template-columns:repeat(3,36px);gap:4px}.walk-pad button{background:var(--panel);border:1px solid var(--line);border-radius:3px;height:36px;font-size:20px}.walk-pad button:first-child{grid-column:2}.walk-pad button:nth-child(2){grid-column:1}#loading{position:fixed;inset:0;z-index:100;background:#121b25;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;transition:opacity .5s}.load-mark{font:55px Georgia;letter-spacing:-6px;position:relative}.load-mark span{position:absolute;font-size:21px;color:var(--gold);top:-22px;left:32px}#loading>span{font-size:9px;letter-spacing:4px;color:var(--gold)}.progress{height:2px;width:200px;background:#364049}.progress i{display:block;background:var(--gold);height:100%;width:0;transition:width .3s}#loading p{font-size:11px;color:var(--muted);max-width:350px;text-align:center;line-height:1.7}.fatal-retry{border:1px solid var(--gold);padding:12px 20px;background:none;color:var(--gold);cursor:pointer}
@media(max-width:1000px){.topbar{padding:18px 20px}.brand{font-size:10px;letter-spacing:1.3px}.brand small{letter-spacing:3px}.monogram{font-size:21px;padding:10px 13px 10px 9px}.match-score{grid-template-columns:65px 75px 65px;gap:7px;padding:10px 13px}.match-score strong{font-size:24px}.view-switch{left:20px;top:104px}.room-note{right:20px;top:123px;font-size:8px}.room-note #view-caption{display:none}.room-note .slash{display:none}.side-stats{left:20px;padding:12px;gap:14px}.game-dock{width:calc(100% - 40px);gap:12px;padding:18px 18px 12px}.turn-info p{max-width:280px}.dock-actions .primary{padding:14px}.menu-card{padding:34px}.turn-info h1{font-size:18px}}
@media(max-width:650px){.topbar{padding:14px 15px;align-items:flex-start}.brand{gap:8px;font-size:8px;letter-spacing:1px}.brand small{font-size:7px;letter-spacing:2px}.monogram{font-size:19px;padding:10px 12px 10px 8px}.monogram span{left:20px;font-size:14px}.match-score{position:fixed;top:76px;left:50%;transform:translateX(-50%);padding:8px 16px 7px;grid-template-columns:65px 70px 65px;gap:5px}.match-score strong{font-size:23px}.match-score>small{font-size:7px;letter-spacing:1.5px}.player{font-size:10px}.view-switch{top:145px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:4px}.view-switch button{font-size:9px;padding:9px}.room-note{top:30px;right:73px;font-size:7px;letter-spacing:1px}.side-stats{top:205px;left:15px;flex-direction:row;gap:13px;padding:8px 12px;pointer-events:none}.side-stats div{gap:3px}.side-stats b{font-size:17px}.side-stats small{font-size:6px}.side-stats span{font-size:6px}.side-stats .stat-separator{height:auto;width:1px}.game-dock{bottom:12px;width:calc(100% - 24px);grid-template-columns:1fr auto;padding:14px;gap:10px}.turn-info{grid-column:1/3}.turn-info>span{font-size:7px}.turn-info h1{font-size:18px;margin:6px 0}.turn-info p{font-size:9px;max-width:none}.dice-values{grid-column:1}.dice-values button{height:30px;width:30px;font-size:23px}.dock-actions{grid-column:2;gap:5px}.dock-actions .primary{padding:12px 10px;font-size:9px}.subtle{width:31px;height:36px;font-size:17px}.dock-secondary{grid-column:1/3;font-size:7px;gap:8px}.dock-secondary button{font-size:7px}.dock-secondary #cube-button span{display:none}#cube-note{font-size:7px}.view-switch button span{font-size:9px}#menu-modal{justify-content:center;padding:14px;background:#08101970}.menu-card{padding:31px 26px;width:365px;max-width:100%}.menu-card h2{font-size:34px;margin-top:20px}.menu-card .intro{margin-bottom:18px}.menu-card footer{margin-top:22px}.settings-row select{max-width:195px}.rules-card{padding:32px 23px}.rules-card h2{font-size:27px}.rules-scroll{max-height:65dvh}#moves-panel{bottom:215px;right:12px;max-height:40dvh}#toast{top:260px;font-size:10px;padding:11px 15px}.explore-help{bottom:20px;left:15px;transform:none;min-width:0;width:calc(100vw - 155px);max-width:none;padding:13px}.explore-help span{font-size:9px}.explore-help strong{font-size:16px}.walk-pad{bottom:30px;right:15px}.small-card{padding:35px 27px}}
.room-pill{position:fixed;right:32px;top:175px;background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:10px 14px;font-size:10px;letter-spacing:1px;color:var(--gold)}#join-row{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}#join-row label{font-size:10px;color:var(--muted)}#join-row>div{display:flex;gap:8px;margin-top:9px}#room-code{min-width:0;flex:1;width:100px;padding:10px;border:1px solid var(--line);background:#1c2834;color:var(--white);font-size:11px;letter-spacing:2px;border-radius:3px;text-transform:uppercase}#join-room{border:1px solid var(--line);border-radius:3px;background:none;padding:10px;font-size:10px;color:var(--gold)}#journal-list p{margin:0;padding:10px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
@media(max-width:650px){.room-pill{top:207px;right:15px;font-size:8px;padding:9px}.menu-card{padding-top:28px;padding-bottom:25px}.menu-card .intro{margin-bottom:13px}.menu-card .primary{margin-top:18px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Additions live alongside the approved loft and its original interface. */
.match-score{gap:7px 15px}.score-readout{display:flex;flex-direction:column;gap:4px}.score-readout small{font-size:7px;letter-spacing:1px;color:var(--muted);white-space:nowrap}.round-progress{grid-column:1/4;display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--line);padding-top:8px}.round-progress>div{display:flex;flex-direction:column;gap:5px}.round-progress span{font-size:9px;font-variant-numeric:tabular-nums;color:#dadfdc}.round-progress progress{appearance:none;-webkit-appearance:none;width:100%;height:4px;border:0;border-radius:4px;overflow:hidden;background:#ffffff15;color:#e9e1d1;accent-color:#e9e1d1}.round-progress progress::-webkit-progress-bar{background:#ffffff15;border-radius:4px}.round-progress progress::-webkit-progress-value{background:#e9e1d1;border-radius:4px}.round-progress progress::-moz-progress-bar{background:#e9e1d1;border-radius:4px}#progress-blue{color:#6cabc9;accent-color:#6cabc9}#progress-blue::-webkit-progress-value{background:#6cabc9}#progress-blue::-moz-progress-bar{background:#6cabc9}.top-actions{position:relative;display:flex;align-items:center;gap:10px}.wallet-button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;height:43px;padding:7px 11px;background:rgba(12,18,27,.8);border:1px solid var(--line);border-radius:3px;color:var(--gold)}.wallet-button:hover{border-color:var(--gold)}.wallet-button small{font-size:7px;letter-spacing:.8px;white-space:nowrap}.wallet-button b{font-size:14px;font-weight:normal;font-variant-numeric:tabular-nums}.wallet-reward{position:absolute;top:calc(100% + 7px);left:0;font-size:10px;color:#e7cc98;background:#14232bed;border:1px solid var(--line);border-radius:3px;padding:6px 10px;white-space:nowrap}
@media(min-width:1001px){.topbar{align-items:flex-start}.brand{margin-top:9px}.top-actions{margin-top:6px}}
@media(max-width:1000px){.match-score{gap:6px 7px}.score-readout small{font-size:6px;letter-spacing:.6px}.round-progress{gap:12px}.round-progress span{font-size:8px}}
@media(max-width:1000px){.topbar{align-items:flex-start}.match-score{position:fixed;top:80px;left:50%;transform:translateX(-50%);grid-template-columns:65px 75px 65px;gap:6px 7px;padding:10px 16px}.match-score>small{font-size:7px;letter-spacing:1.5px}.view-switch{top:207px;left:50%;transform:translateX(-50%);white-space:nowrap}.room-note{top:65px;left:20px;right:auto;font-size:7px;letter-spacing:1px}.room-note #view-caption,.room-note .slash{display:none}.side-stats{top:270px}.room-pill{top:250px}}
@media(max-width:650px){.top-actions{gap:7px}.wallet-button{padding:7px 8px}.wallet-button small{font-size:6px;letter-spacing:.4px}.wallet-button b{font-size:13px}.match-score{padding:8px 16px;grid-template-columns:65px 70px 65px;gap:6px 5px}.round-progress{padding-top:7px}.round-progress span{font-size:8px}.view-switch{top:195px}.room-note{left:15px;top:63px}.side-stats{top:245px}.room-pill{top:317px;right:15px}.wallet-reward{font-size:9px;padding:5px 8px}#toast{top:325px}}
.beginner-guide #moves-panel{bottom:265px}
input{accent-color:var(--gold)}input:focus-visible{outline:2px solid #eccfa0;outline-offset:4px}.guide-setting small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.guide-setting input{width:18px;height:18px}.audio-settings{display:grid;grid-template-columns:1fr 1.4fr;gap:10px 12px;font-size:10px;padding:15px 0 0;color:var(--muted)}.audio-settings>label{display:flex;align-items:center;gap:5px}.audio-settings input[type=checkbox]{margin:0}.audio-volume{font-size:9px}.audio-volume input{width:100%;min-width:40px;height:13px}.menu-tools{display:flex;gap:8px;margin-top:12px}.menu-tools button{border:1px solid var(--line);border-radius:3px;padding:11px 9px;background:none;font-size:10px;flex:1}.menu-tools b{font-size:9px;color:var(--gold);margin-left:3px}.coach-strip{grid-column:1/4;border-top:1px solid var(--line);padding-top:11px;display:flex;gap:15px;align-items:center;justify-content:space-between}.coach-strip strong{font-size:8px;color:var(--gold);letter-spacing:1px}.coach-strip p{font-size:10px;line-height:1.6;color:#d2d8d9;margin:5px 0 0;max-width:580px}.coach-actions{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.coach-actions button{font-size:10px;border:1px solid var(--line);border-radius:3px;background:#c7a77012;padding:9px 12px;white-space:nowrap}.coach-actions button:last-child{border:0;background:none;color:var(--gold);padding:3px}.next-action{box-shadow:0 0 0 2px #edc98766}.move-option.recommended{border-color:var(--gold)!important;background:#c7a77015!important}.move-flame{font-size:12px}.reward-note{color:var(--gold)!important}.shop-card{position:relative;border:1px solid var(--line);border-radius:5px;background:rgba(17,25,35,.98);box-shadow:0 24px 100px #0005;padding:36px;width:850px;max-width:100%;max-height:calc(100dvh - 40px);overflow:auto}.shop-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.shop-heading h2{font-size:34px;margin:18px 0}.shop-wallet{display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:var(--gold)}.shop-wallet b{font:28px Georgia}.shop-wallet span{font-size:7px;letter-spacing:1.5px}.shop-intro{font-size:11px;color:var(--muted);line-height:1.8;margin:0 0 20px}.shop-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);padding-bottom:12px}.shop-tabs button{background:none;border:1px solid transparent;border-radius:3px;padding:9px 17px;font-size:11px;color:var(--muted)}.shop-tabs .active{color:var(--white);border-color:var(--line);background:#303e4b}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:20px}.shop-item{display:flex;flex-direction:column;background:#ffffff03;border:1px solid var(--line);border-radius:4px;padding:12px}.shop-item canvas{width:100%;height:auto;aspect-ratio:1.8;border-radius:3px}.shop-item h3{font:20px Georgia;margin:15px 0 8px}.shop-item p{font-size:10px;color:var(--muted);line-height:1.7;min-height:34px;margin:0 0 13px}.shop-item button{margin-top:auto;padding:12px 8px;font-size:10px}.shop-item small{font-size:9px;color:var(--muted);margin-top:10px;text-align:center}.profile-stats{font-size:10px;color:var(--gold);padding:17px 0;margin:0}.profile-backup{border-top:1px solid var(--line);padding-top:12px}.profile-backup p{font-size:10px;line-height:1.7;color:var(--muted)}.profile-backup>div{display:flex;gap:9px;flex-wrap:wrap}.profile-backup button{font-size:10px;padding:11px 13px}.profile-backup small{display:block;font-size:9px;line-height:1.7;color:#8f9ba6;margin-top:11px}#toast{z-index:60}
@media(max-width:650px){.coach-strip{grid-column:1/3;gap:8px;align-items:flex-start}.coach-strip p{font-size:9px}.coach-strip strong{font-size:7px}.coach-actions button{font-size:9px;padding:8px}.shop-card{padding:28px 18px}.shop-heading h2{font-size:27px}.shop-grid{grid-template-columns:1fr;gap:12px}.shop-item{display:grid;grid-template-columns:105px 1fr;gap:3px 12px}.shop-item canvas{grid-row:1/5;align-self:center}.shop-item h3{font-size:19px;margin:2px 0 4px}.shop-item p{min-height:0;margin:0 0 8px;font-size:10px}.shop-item button{margin:0}.shop-item small{text-align:left;font-size:8px;margin-top:5px}.shop-tabs button{flex:1;padding:9px}.shop-intro{font-size:10px}.menu-tools button{font-size:9px}.audio-settings{font-size:9px}.profile-backup button{flex:1;font-size:9px}.beginner-guide #moves-panel{bottom:285px;max-height:34vh}}

/* Décor Venator : les ajouts restent isolés de l’interface validée. */
.shop-item>img{display:block;width:100%;height:auto;aspect-ratio:1.8;object-fit:cover;border-radius:3px}.decor-intro{position:fixed;top:177px;left:32px;z-index:18;background:var(--panel);color:var(--gold)}@media(max-width:600px){.decor-intro{top:190px;left:16px}.shop-tabs{flex-wrap:wrap}}

/* Ouverture : vidéo fournie, cadrage complet et progression réelle. */
#loading.cinematic-loading{background:#000;display:block}#loading-video,#loading-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}#loading-status{position:absolute;z-index:2;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(340px,calc(100% - 40px));display:flex;flex-direction:column;align-items:center;gap:11px;text-align:center}#loading-status .progress{width:100%;background:#33425480}#loading-status p{font-size:11px;line-height:1.65;color:#b6c8d8;margin:0;text-shadow:0 1px 8px #000}#loading-status .fatal-retry{background:#0b1523e8}@media(prefers-reduced-motion:reduce){#loading-video{visibility:hidden}#loading{transition:none}}

/* Intro-game V4: the approved video now lives only in the parent HTML layer. */
#loading.cinematic-loading{background:#000;display:flex;align-items:center;justify-content:flex-end;padding-bottom:6vh}

/* FRBC R16: limited scope to brand, language, links, accounts and shop wallet. */
.brand-logo{display:block;width:54px;height:54px;object-fit:contain;flex-shrink:0;border:1px solid var(--line);background:#02040a;border-radius:3px}
.brand small{color:#fff}
.top-actions{display:flex;align-items:center;gap:8px}
.language-button{border:1px solid var(--line);border-radius:3px;background:rgba(12,18,27,.80);color:#f5eee1;padding:10px;font-size:11px;white-space:nowrap}
.frbc-links{display:flex;gap:7px;flex-wrap:wrap;padding-top:14px}
.frbc-links a{flex:1;min-width:100px;text-align:center;font-size:9px;white-space:nowrap;text-decoration:none;border:1px solid var(--line);border-radius:3px;padding:10px 8px;color:#e6ceaa}
.account-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.account-heading,.credits-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}
.account-heading strong,.credits-heading strong{font-size:10px;letter-spacing:1px;color:#edd6ae}
.account-heading span,.credits-heading span{font-size:9px;color:var(--muted)}
.account-section p{font-size:10px;line-height:1.5;color:var(--muted);margin:8px 0}
.account-buttons{display:flex;gap:7px;flex-wrap:wrap}
.account-buttons button{flex:1;border:1px solid var(--line);background:#202f3b;border-radius:3px;padding:9px 10px;color:var(--white);font-size:10px;white-space:nowrap}
.credits-packs{border:1px solid var(--line);background:#ffffff05;padding:14px;margin:12px 0 20px;border-radius:5px}
.credits-pack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.credits-pack-grid button{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;padding:11px 7px;background:#213446;border:1px solid #7f735b;border-radius:4px}
.credits-pack-grid button b{font-size:13px;color:#f6e1af}.credits-pack-grid button span{font-size:11px;color:var(--white)}
.credits-packs>small{display:block;color:var(--muted);font-size:9px;line-height:1.5;margin-top:11px}
.menu-card{max-height:calc(100dvh - 28px);overflow-y:auto}
@media(max-width:650px){.brand-logo{width:36px;height:36px}.language-button{font-size:10px;padding:7px}.top-actions{gap:4px}.frbc-links a{min-width:80px}.account-heading,.credits-heading{align-items:flex-start;flex-direction:column}.credits-pack-grid button{padding:10px 4px}}

/* Optional support-credit wording and status; game layout unchanged. */
.shop-wallet small{color:var(--muted);font-size:9px;letter-spacing:0;text-align:right}.support-credits-copy{font-size:10px;line-height:1.65;color:var(--muted);margin:11px 0 0}.credits-pack-grid button:hover:not(:disabled){background:#38536a;border-color:#ddc18a}

/* FRBC V16C: isolated account access, registration and recovery; scenes/cameras unchanged. */
.account-entry-actions{margin-top:12px}.account-entry-actions button{padding:12px 13px;font-size:11px}.account-entry-actions .account-primary{background:#d7bc89;color:#151e29;border-color:#dfc491;font-weight:700}.account-member-actions:empty{display:none}
#auth-modal{z-index:36;background:#070f19bb;backdrop-filter:blur(6px)}.auth-card{position:relative;width:min(450px,calc(100vw - 30px));padding:36px;border:1px solid #c7a77088;border-radius:5px;background:#111b27;box-shadow:0 30px 120px #000a;max-height:calc(100dvh - 26px);overflow:auto}.auth-card h2{font:32px/1.15 Georgia,serif;margin:16px 0 8px;letter-spacing:-.5px}.auth-card>p{font-size:11px;color:var(--muted);line-height:1.65}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:20px 0 18px}.auth-tabs button{padding:11px;border:1px solid var(--line);border-radius:3px;background:#1c2b38;font-size:11px}.auth-tabs button.active{border-color:var(--gold);color:#f5deb3;background:#2b3845}.auth-card form{display:flex;flex-direction:column;gap:8px}.auth-card form label{font-size:10px;letter-spacing:.3px;color:#e5d4b5}.auth-card input{display:block;width:100%;min-height:43px;padding:11px 12px;border:1px solid var(--line);border-radius:3px;background:#202f3b;color:var(--white);font:13px Arial,sans-serif;outline-offset:3px}.auth-card input:focus-visible{outline:2px solid var(--gold)}.auth-card #auth-confirm-block{display:flex;flex-direction:column;gap:8px}.auth-card form .primary{margin:12px 0 0;font-size:12px}.auth-card button:disabled{opacity:.55}.auth-text-action{border:0;background:none;color:#dfc38f;font-size:10px;padding:12px 0 0}.auth-card #auth-feedback{min-height:18px;margin:12px 0;color:#dfc38f;font-size:11px;overflow-wrap:anywhere}.auth-social{border-top:1px solid var(--line);padding-top:18px;text-align:center}.auth-social>span{font-size:9px;letter-spacing:1.3px;color:var(--muted)}.auth-social>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.auth-social button{background:#243644;border:1px solid var(--line);border-radius:3px;padding:12px 8px;font-size:11px}.auth-card .auth-fineprint{margin-top:20px;font-size:10px;text-align:center}@media(max-width:650px){.auth-card{padding:31px 22px}.auth-card h2{font-size:29px}}

/* V16D auth diagnostic only; existing modal style/3D unchanged. */
.auth-card .auth-provider-status{font-size:10px;color:#c5b7a0;line-height:1.5;min-height:0;margin:10px 0 0}.auth-social button:disabled{opacity:.42;cursor:not-allowed}.auth-card #auth-resend{display:block;margin:0 0 9px}.auth-card #auth-resend[hidden]{display:none!important}

/* FRBC V16J — Refonte légère des pop-ups; moteur 3D et cadrages inchangés */
#menu-modal .menu-card,#shop-modal .shop-card,#auth-modal .auth-card,#rules-modal .rules-card,#journal-modal .rules-card{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:linear-gradient(145deg,#1e2e3cf7,#111b28fc);border:1px solid #d8be875d;border-radius:16px;box-shadow:0 30px 95px #0009,inset 0 1px #ffffff10}
#menu-modal h2,#shop-modal h2,#auth-modal h2,#rules-modal h2,#journal-modal h2{font-family:inherit;font-weight:780;letter-spacing:-.05em}
#menu-modal .menu-card{padding:32px;width:min(475px,calc(100vw - 24px))}#menu-modal .menu-card h2{font-size:39px;margin:17px 0 10px}#menu-modal .menu-card .intro{font-size:12px;line-height:1.65;margin-bottom:16px}#menu-modal .eyebrow{letter-spacing:2.1px;font-size:10px}#menu-modal .settings-row{font-size:12px}#menu-modal .settings-row select{border-radius:9px;min-height:38px}#menu-modal .primary.full,#menu-modal .outline.full{min-height:45px;border-radius:10px;font-size:13px;font-weight:770}
#menu-modal .menu-primary-actions{display:grid;grid-template-columns:1.25fr 1fr;gap:10px;margin-top:13px}#menu-modal .menu-primary-actions button{display:flex;align-items:center;justify-content:center;gap:9px;font-size:12px;font-weight:740;min-height:55px;border-radius:10px;padding:12px 8px}#menu-modal .feature-shop{background:linear-gradient(125deg,#f1d8a5,#cba66b);border:1px solid #edd8b4;color:#11212d}#menu-modal .feature-shop b{font-size:11px;color:#26313b}#menu-modal .feature-guide{background:#1b3142;border:1px solid #d9bd8e69}
.frbc-ui-icon{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#menu-modal .frbc-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}#menu-modal .frbc-links a{display:flex;align-items:center;justify-content:center;gap:9px;font-size:12px;font-weight:700;background:#1e3040;border-radius:10px;color:#ecedef;border:1px solid #e6c89646;min-width:0}
.menu-donation-feature,.shop-donation-feature{display:flex;align-items:center;gap:12px;min-height:63px;text-decoration:none;padding:12px 15px;border-radius:11px;background:linear-gradient(120deg,#2b4252,#1c2c3e);border:1px solid #dfc3919e;color:#f5e5c3;margin-top:11px}.menu-donation-feature:hover,.shop-donation-feature:hover{background:#33485c}.menu-donation-feature>span:nth-child(2),.shop-donation-feature>span:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1}.menu-donation-feature strong,.shop-donation-feature strong{font-size:14px;font-weight:790}.menu-donation-feature small,.shop-donation-feature small{font-size:10px;color:#cbd1d6}
#menu-modal .account-section{margin-top:13px}#menu-modal .account-buttons button{min-height:40px;border-radius:9px;font-size:11px}#shop-modal .shop-card{padding:28px}#shop-modal .shop-heading h2{font-size:33px}#shop-modal .shop-wallet b{font-family:inherit;font-weight:780}#shop-modal .credits-packs{border-radius:12px;background:linear-gradient(110deg,#1a2b3b,#132333);border-color:#ddc28b71}#shop-modal .credits-pack-grid button{border-radius:10px;min-height:68px}#shop-modal .shop-item{border-radius:11px}#auth-modal .auth-card{border-radius:14px}
@media(max-width:700px){#menu-modal .menu-card{padding:23px 21px}#menu-modal .menu-card h2{font-size:clamp(30px,6vw,38px)}#menu-modal .menu-primary-actions button{font-size:11px}#shop-modal .shop-card{padding:20px 17px}}
@media(max-width:350px){#menu-modal .menu-primary-actions{grid-template-columns:1fr}}


/* original: premium-ui.css */
/* FRBC V16K PREMIUM — BLEU / BLANC
   Presentation only. No camera, 3D assets or gameplay geometry changes. */
:root{--ink:#07172b;--panel:rgba(8,26,47,.96);--white:#f7fbff;--muted:#b6cbe0;--gold:#69b7ff;--line:rgba(158,207,255,.28);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
body{background:#07182d;color:#f4f9ff}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #86cdff;outline-offset:3px}
input,select{accent-color:#309afa}
.brand,.brand small{font-family:Inter,ui-sans-serif,system-ui,Arial,sans-serif}
.brand small{color:#f6fbff}
.brand-logo{border-radius:12px!important;border-color:#a6ceff50!important;background:#071729!important;box-shadow:0 6px 24px #050e1a90}
.topbar .top-actions{gap:9px}
.account-hud{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 13px;border:1px solid #a9d5ff66;background:#0b213ddc;color:#edf6ff;border-radius:12px;font-size:12px;font-weight:700;backdrop-filter:blur(12px)}
.account-hud svg{width:19px;height:19px;fill:none;stroke:#92d2ff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.account-hud.is-connected{border-color:#5aa9eea8}
.wallet-button{border-color:#82bdfc88!important;border-radius:12px!important;background:linear-gradient(125deg,#1260a9ee,#092a52ef)!important;color:#fff!important;box-shadow:0 8px 24px #06152670}
.wallet-button small{font-size:9px!important;font-weight:750;letter-spacing:.6px!important}
.wallet-button b{font-size:15px!important;font-weight:780!important}
.wallet-button:hover,.account-hud:hover{border-color:#d1eaff!important;filter:brightness(1.13)}
.language-button,.topbar .icon-button{border-radius:11px!important;border-color:#a3ccff66!important;background:#102644e9!important;color:#eff8ff!important}
#menu-modal,#shop-modal,#auth-modal,#rules-modal,#journal-modal,#coach-modal,#double-modal,#result-modal{background:#061327bb;backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px)}
#menu-modal .menu-card,#shop-modal .shop-card,#auth-modal .auth-card,#rules-modal .rules-card,#journal-modal .rules-card,#coach-modal .small-card,#double-modal .small-card,#result-modal .small-card{background:linear-gradient(145deg,#133356fa 0%,#0b2139fc 49%,#08172dfa 100%)!important;border:1px solid #b0d6ff60!important;box-shadow:0 28px 94px #000b,0 1px 0 #d9eeff20 inset!important;border-radius:19px!important;color:#f5faff!important;font-family:Inter,ui-sans-serif,system-ui,Arial,sans-serif!important}
#menu-modal .menu-card{width:min(530px,calc(100vw - 30px))!important;padding:clamp(21px,3vw,33px)!important}
#menu-modal h2,#shop-modal h2,#auth-modal h2,#rules-modal h2,#journal-modal h2,#result-modal h2,#coach-modal h2{font-family:Inter,ui-sans-serif,system-ui,Arial,sans-serif!important;letter-spacing:-.045em!important;font-weight:800!important;color:#fff!important}
#menu-modal .menu-card h2{font-size:clamp(30px,3.3vw,44px)!important;line-height:1.12!important}
#menu-modal .eyebrow,#shop-modal .eyebrow,#auth-modal .eyebrow{color:#91cbff!important;font-weight:750;letter-spacing:2px}
#menu-modal .intro{color:#c5d8ec!important;font-size:13px!important}
#menu-modal .settings-row{border-color:#b2d5ff28!important}
#menu-modal select,#auth-modal input{min-height:42px;border:1px solid #b9d8fb50!important;background:#163755!important;border-radius:10px!important;color:#f8fbff!important;box-shadow:0 1px 0 #ffffff09 inset}
#menu-modal .primary.full,#auth-modal .primary.full,#result-modal .primary.full{background:linear-gradient(120deg,#f1f8ff,#9dd4ff)!important;color:#062144!important;border-color:#d8efff!important;font-weight:850!important;box-shadow:0 9px 24px #06142860}
#menu-modal .primary.full:hover,#auth-modal .primary.full:hover{filter:brightness(1.05)}
#menu-modal .outline.full,#menu-modal .menu-tools button,#shop-modal .shop-tabs button{border-radius:11px!important}
#menu-modal .feature-shop{background:linear-gradient(117deg,#e2f3ff,#90cbff)!important;border:1px solid #d0eaff!important;color:#073058!important;box-shadow:0 7px 23px #020e2280}
#menu-modal .feature-shop b{color:#0d4d88!important;font-weight:850!important}
#menu-modal .feature-guide{background:#174169!important;border:1px solid #8fc5ff80!important;color:#e8f6ff!important}
#menu-modal .menu-primary-actions button{min-height:61px!important;font-size:13px!important}
#menu-modal .frbc-links a{background:#153858!important;border-color:#9acfff50!important;border-radius:11px!important;color:#e3f3ff!important;min-height:46px}
#menu-modal .frbc-links a:hover,.menu-donation-feature:hover,.shop-donation-feature:hover{background:#21527d!important;border-color:#b5dfff!important}
.menu-donation-feature,.shop-donation-feature{background:linear-gradient(105deg,#164d7a,#10324f)!important;border:1px solid #83caffaa!important;color:#f0f9ff!important;border-radius:13px!important}
.menu-donation-feature small,.shop-donation-feature small{color:#b9d5ed!important}
.frbc-ui-icon{stroke:#99d6ff}
#menu-modal .feature-shop .frbc-ui-icon{stroke:#0b4c80}
#menu-modal .account-section{padding:16px 0 0!important;border-color:#acd2fa40!important}
#menu-modal .account-heading strong{color:#d5ebff!important;font-size:11px!important}
#menu-modal .account-buttons button{background:#163b5e!important;color:#eff8ff!important;border:1px solid #9dccff5d!important;border-radius:10px!important;min-height:44px!important}
#menu-modal .account-entry-actions .account-primary{background:#e3f3ff!important;color:#09284b!important;border-color:#d5ecff!important}
#shop-modal .shop-card{width:min(970px,calc(100vw - 26px));padding:clamp(18px,3vw,30px)!important}
#shop-modal .shop-heading h2{font-size:clamp(26px,3vw,37px)!important}
#shop-modal .shop-wallet b,#shop-modal .shop-wallet span{color:#b8e0ff!important}
#shop-modal .credits-packs{background:linear-gradient(135deg,#10395c,#0b2845)!important;border:1px solid #7cbeff7e!important;border-radius:15px!important}
#shop-modal .credits-heading strong{color:#e8f5ff;font-size:12px}
#shop-modal .credits-pack-grid button{background:#0e2848!important;border-color:#81c4ff77!important;border-radius:12px!important;min-height:72px!important}
#shop-modal .credits-pack-grid button:hover{background:#215a91!important}
#shop-modal .credits-pack-grid button b{color:#e7f5ff!important;font-weight:800!important;font-size:18px!important}
#shop-modal .shop-tabs{border-color:#87bdfc60!important;gap:8px;flex-wrap:wrap}
#shop-modal .shop-tabs button{background:#112d4c!important;color:#c6dff5!important;border:1px solid #98caff42!important}
#shop-modal .shop-tabs button.active{background:#e1f2ff!important;color:#0b365f!important;border-color:#e1f2ff!important;font-weight:800}
#shop-modal .shop-grid .shop-item{background:#102e4f96!important;border:1px solid #a2d2ff40!important;border-radius:15px!important}
#shop-modal .shop-item h3{font-family:Inter,ui-sans-serif,system-ui,Arial,sans-serif;font-size:18px;font-weight:800}
#shop-modal .shop-item button{border-radius:9px!important}
#auth-modal .auth-card{width:min(470px,calc(100vw - 26px));padding:clamp(20px,3vw,34px)!important}
#auth-modal .auth-tabs button{border-radius:10px!important;background:#183859!important;color:#daedff!important;border-color:#9acdfb55!important}
#auth-modal .auth-tabs button.active{background:#dcedfc!important;color:#0b3056!important;border-color:#dcedfc!important;font-weight:800}
#auth-modal form label{font-size:12px!important;color:#d5ebff!important}
#auth-modal input{font-size:14px!important}
#auth-modal .auth-text-action,#auth-modal #auth-feedback{color:#a9d8ff!important}
#auth-modal .auth-social button{background:#1b4364!important;color:#eaf5ff!important;border-color:#8dc5fa60!important;border-radius:10px!important}
#auth-modal .auth-skip{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:15px;padding:12px;border:1px solid #8fbbeb73;border-radius:10px;color:#d9efff;background:#142f4c;font-weight:730;font-size:12px}
#auth-modal .auth-skip:hover{background:#1b4468}
#menu-modal .close-modal,#auth-modal .close-modal,#shop-modal .close-modal{border-color:#b8dbff65!important;border-radius:11px!important;color:#eaf5ff!important;background:#153553!important;min-width:42px;min-height:42px}
#menu-modal footer{border-color:#acd3ff35!important}
#menu-modal footer button{color:#bcdfff!important}
/* Keep the 3D playing area unobstructed when popups are closed. */
@media(max-width:800px){
 .account-hud{padding:9px 10px}.account-hud span{display:none}
 #menu-modal .menu-card,#shop-modal .shop-card,#auth-modal .auth-card{max-height:calc(100dvh - 16px)!important;overscroll-behavior:contain}
 #menu-modal .menu-card{width:min(560px,calc(100vw - 14px))!important;padding:20px!important}
 #menu-modal .menu-card h2{font-size:clamp(26px,6vw,38px)!important;margin:12px 0!important}
 #menu-modal .intro{font-size:12px!important;margin-bottom:8px!important}
 #menu-modal .settings-row{padding:10px 0!important}
 #menu-modal .menu-primary-actions button{min-height:50px!important}
 #menu-modal .audio-settings{gap:10px!important}
 #shop-modal .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:520px) and (orientation:portrait){
 #menu-modal .menu-card,#shop-modal .shop-card,#auth-modal .auth-card{width:calc(100vw - 14px)!important;max-height:calc(100dvh - 14px)!important;padding:17px 17px 21px!important}
 #menu-modal .menu-card h2{font-size:32px!important}
 #menu-modal .menu-primary-actions{grid-template-columns:1.25fr 1fr!important;gap:8px!important}
 #menu-modal .menu-primary-actions button{min-height:55px!important;font-size:12px!important}
 #menu-modal .frbc-links a{font-size:11px!important}
 #shop-modal .shop-grid{grid-template-columns:1fr!important}
 #shop-modal .shop-item{display:grid!important;grid-template-columns:minmax(90px,35%) 1fr!important}
 #shop-modal .shop-item canvas{grid-row:1/5!important}
 #shop-modal .credits-pack-grid button{padding:8px 3px!important}
 #shop-modal .credits-pack-grid button b{font-size:15px!important}
}
@media(max-height:490px) and (orientation:landscape){
 #menu-modal,#shop-modal,#auth-modal{align-items:center!important;justify-content:center!important;padding:4px!important}
 #menu-modal .menu-card,#shop-modal .shop-card,#auth-modal .auth-card{width:min(850px,calc(100vw - 22px))!important;max-height:calc(100dvh - 9px)!important;overflow-y:auto!important;overscroll-behavior:contain!important;padding:13px 22px!important}
 #menu-modal .menu-card h2{font-size:27px!important;margin:6px 0!important}
 #menu-modal .menu-card .intro{display:none!important}
 #menu-modal .settings-row{padding:6px 0!important}
 #menu-modal .audio-settings{padding:5px 0!important;grid-template-columns:repeat(4,1fr)!important}
 #menu-modal .menu-primary-actions{margin-top:7px!important}
 #menu-modal .menu-primary-actions button{min-height:43px!important}
 #menu-modal .menu-donation-feature{min-height:47px!important;padding:8px 12px!important}
 #menu-modal .menu-donation-feature strong{font-size:12px!important}
 #menu-modal .frbc-links{gap:6px!important;padding-top:8px!important}
 #menu-modal .frbc-links a{min-height:36px!important}
 #menu-modal .account-section{margin-top:8px!important;padding-top:8px!important}
 #auth-modal .auth-card form{display:flex!important;flex-direction:column!important;gap:5px!important}
 #auth-modal .auth-card h2{font-size:24px!important;margin:3px 0!important}
 #auth-modal .auth-tabs{margin:9px 0!important}
 #shop-modal .shop-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(prefers-reduced-motion:reduce){#menu-modal *,#shop-modal *,#auth-modal *{scroll-behavior:auto!important;transition:none!important}}


/* original: shop-premium.css */
/* FRBC V16L — SHOP STUDIO 360 · isolated cosmetics only · bleu Riviera / blanc */
#shop-modal .shop-card{width:min(1120px,calc(100vw - 24px))!important;background:linear-gradient(150deg,#0b1e35fa 0%,#102e4bfa 100%)!important}
#shop-modal .shop-heading{align-items:flex-start;gap:20px}
#shop-modal #shop-title{font-size:clamp(31px,3.7vw,48px)!important;letter-spacing:-.06em!important;margin:9px 0 0!important}
#shop-modal .shop-heading .shop-wallet{flex-shrink:0;border:1px solid #8fbde15c;background:#071d36bb;border-radius:15px;padding:12px 18px;text-align:right;min-width:175px}
#shop-modal .shop-wallet b{font-size:clamp(30px,3vw,41px)!important;color:#fff!important;line-height:1}
#shop-modal .shop-wallet span{font-size:9px;letter-spacing:1.3px;margin-top:8px}
#shop-modal .shop-intro{font-size:12px!important;line-height:1.65!important;color:#c3d9eb!important;max-width:790px;margin:15px 0 18px!important}
#shop-modal .shop-collection-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:13px 0 15px;padding:17px 21px;background:linear-gradient(105deg,#163e62,#0c2541);border:1px solid #84c4fa80;border-radius:17px;box-shadow:inset 0 1px #cde9ff21}
#shop-modal .shop-collection-hero strong{display:block;font-size:17px;letter-spacing:-.01em;color:#eff9ff}
#shop-modal .shop-collection-hero p{margin:6px 0 0;font-size:12px;color:#bdd9f0;line-height:1.5}
#shop-modal .shop-collection-hero .shop-hero-icon{font-size:43px;color:#d9efff;border:1px solid #83bdfa77;border-radius:16px;width:71px;height:71px;display:grid;place-items:center;background:#193d5c}
#shop-modal .shop-tabs{position:sticky;top:-20px;z-index:2;padding:11px 0!important;background:linear-gradient(90deg,#0b1e34,#0c2943);overflow-x:auto;scrollbar-width:thin;flex-wrap:nowrap!important;gap:9px!important}
#shop-modal .shop-tabs button{white-space:nowrap;padding:12px 20px!important;min-height:46px;font-size:12px!important;font-weight:760!important;border-radius:12px!important}
#shop-modal .shop-tabs button[data-category="bundle"]{border-color:#b7dffdbb!important;box-shadow:0 0 0 1px #caebff18 inset}
#shop-modal .shop-tabs button.active{background:linear-gradient(135deg,#eff9ff,#a9d7ff)!important;color:#102c46!important}
#shop-modal .shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:19px}
#shop-modal .shop-grid .shop-item{display:flex;flex-direction:column;min-width:0;padding:0!important;background:#112e4c!important;border:1px solid #8eb9dc56!important;border-radius:16px!important;overflow:hidden;box-shadow:0 14px 26px #0003;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
#shop-modal .shop-item:hover{transform:translateY(-3px);border-color:#a5dafc!important;box-shadow:0 21px 32px #0006}
#shop-modal .shop-product-media{position:relative;aspect-ratio:1.66;overflow:hidden;background:linear-gradient(145deg,#071c32,#19486d)}
#shop-modal .shop-product-media>canvas,#shop-modal .shop-product-media>img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0;aspect-ratio:auto;grid-row:auto}
#shop-modal .shop-product-media>canvas{image-rendering:auto}
#shop-modal .shop-product-tag{position:absolute;left:12px;top:12px;font-size:10px;font-weight:830;letter-spacing:.7px;border-radius:20px;padding:7px 11px;background:#e5f5ffed;color:#0b3052}
#shop-modal .shop-spin{position:absolute;right:10px;bottom:10px;min-height:37px;padding:9px 13px!important;border:1px solid #c4e8ffa8!important;background:#061a30d9!important;backdrop-filter:blur(9px);color:#f0faff!important;border-radius:10px!important;font-size:11px!important;letter-spacing:.2px;font-weight:800;cursor:pointer;box-shadow:0 3px 14px #0005}
#shop-modal .shop-spin:hover{background:#2a6692!important}
#shop-modal .shop-product-copy{display:flex;flex:1;flex-direction:column;padding:16px 17px 18px}
#shop-modal .shop-item h3{font-size:20px!important;letter-spacing:-.025em!important;margin:0 0 6px!important;color:#fff!important}
#shop-modal .shop-item p{font-size:12px!important;line-height:1.5!important;color:#bdd4e8!important;min-height:36px;margin:0 0 10px!important}
#shop-modal .shop-bundle-includes{font-size:11px;line-height:1.48;color:#d1e9fa;border-top:1px solid #a6cbec30;padding-top:9px;margin-bottom:12px}
#shop-modal .shop-item-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:9px;margin-top:auto;margin-bottom:10px}
#shop-modal .shop-item-price strong{font-size:21px;font-weight:900;letter-spacing:-.025em;color:#f4faff}
#shop-modal .shop-item-price small{font-size:10px;color:#b0d9fb;text-decoration:line-through}
#shop-modal .shop-item button[data-item]{background:linear-gradient(110deg,#daefff,#83caff)!important;color:#0a2d4f!important;min-height:43px!important;font-size:12px!important;font-weight:850!important;box-shadow:0 5px 14px #06172c88}
#shop-modal .shop-item button[data-item].outline{background:#173651!important;color:#dcefff!important;border:1px solid #8ec5f880!important;box-shadow:none}
#shop-modal .shop-product-availability{font-size:10px!important;color:#a9c9df!important;margin-top:9px!important;text-align:left!important;line-height:1.3}
#shop-modal .shop-bundle .shop-product-tag{background:#cbe9fe;color:#103453}
#shop-modal .shop-item button:disabled{opacity:.68;cursor:default}
.shop-3d-overlay{position:fixed;inset:0;z-index:190;background:#020d1beb;backdrop-filter:blur(14px);display:grid;place-items:center;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
.shop-3d-panel{width:min(810px,100%);max-height:95dvh;min-height:0;display:flex;flex-direction:column;border:1px solid #84c6f3a6;background:linear-gradient(145deg,#102f4d,#061a30);box-shadow:0 30px 100px #000c;border-radius:20px;overflow:hidden}
.shop-3d-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 20px;border-bottom:1px solid #8ac3ee35}
.shop-3d-head small{font-size:10px;color:#9ed4fd;letter-spacing:1.8px;font-weight:900}
.shop-3d-head h3{font-size:24px;font-weight:850;letter-spacing:-.04em;margin:5px 0 0;color:#fff}
.shop-3d-close{width:47px;height:47px;flex-shrink:0;font-size:30px;color:#fff;border:1px solid #88c2f889;border-radius:12px;background:#1d476b}
.shop-3d-stage{height:min(440px,55dvh);min-height:175px;touch-action:none;background:#0c2037}
.shop-3d-stage canvas{display:block;touch-action:none}
.shop-3d-footer{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 20px;color:#cbe5f9;font-size:12px}
.shop-3d-auto{border:1px solid #87bde970;background:#1b4d70;padding:10px 13px;color:white;border-radius:10px;font-weight:750}
.shop-3d-legend{margin:0;padding:0 20px 16px;font-size:10px;color:#a7cce9;line-height:1.4}
@media(max-width:800px){#shop-modal .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}#shop-modal .shop-collection-hero{padding:13px 16px}#shop-modal .shop-item{display:flex!important;grid-template-columns:none!important}#shop-modal .shop-product-media>canvas,#shop-modal .shop-product-media>img{grid-row:auto!important} }
@media(max-width:520px) and (orientation:portrait){#shop-modal .shop-card{padding:14px!important}#shop-modal .shop-grid{grid-template-columns:1fr!important}#shop-modal .shop-heading{align-items:center}#shop-modal .shop-wallet{min-width:118px!important;padding:10px!important}#shop-modal .shop-wallet b{font-size:25px!important}#shop-modal .shop-collection-hero .shop-hero-icon{display:none}#shop-modal .shop-item{display:flex!important}#shop-modal .shop-product-media{aspect-ratio:2.15}#shop-modal .shop-product-copy{padding:13px 15px 15px}#shop-modal .shop-tabs{top:-13px}#shop-modal .shop-tabs button{padding:10px 14px!important} .shop-3d-panel{max-height:calc(100dvh - 18px)}.shop-3d-stage{height:min(330px,48dvh)}.shop-3d-footer{flex-direction:column;align-items:stretch;font-size:11px}.shop-3d-auto{min-height:42px}}
@media(max-height:490px) and (orientation:landscape){#shop-modal .shop-card{max-height:calc(100dvh - 8px)!important}#shop-modal .shop-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}#shop-modal .shop-product-media{aspect-ratio:1.8}#shop-modal .shop-collection-hero{padding:9px 13px}#shop-modal .shop-collection-hero .shop-hero-icon{display:none}.shop-3d-panel{width:min(810px,94vw);max-height:calc(100dvh - 8px)}.shop-3d-head{padding:6px 15px}.shop-3d-stage{height:43dvh;min-height:110px}.shop-3d-footer{padding:5px 13px;font-size:10px}.shop-3d-legend{padding:0 13px 6px}}
@media(prefers-reduced-motion:reduce){#shop-modal .shop-item{transition:none!important}#shop-modal .shop-item:hover{transform:none}}

/* Display objects first; top-of-store quick access to credit packs */
#shop-modal .shop-credit-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;min-height:46px;padding:12px 15px;border-radius:12px;border:1px solid #b7dfffab;background:linear-gradient(110deg,#eaf7ff,#addbff);font-size:12px;color:#0d3659;font-weight:880;text-decoration:none}
#shop-modal .shop-credit-link:hover{background:#fff;color:#0d3659}
#shop-modal #shop-credits{margin-top:30px;scroll-margin-top:80px}
#shop-modal #shop-credits:target{box-shadow:0 0 0 2px #9bcffa7a,0 0 26px #277aba32}
@media(max-width:520px){#shop-modal .shop-collection-hero{flex-direction:column;align-items:stretch}#shop-modal .shop-credit-link{min-height:43px}}
@media(max-height:490px) and (orientation:landscape){#shop-modal .shop-collection-hero{flex-direction:row;align-items:center}#shop-modal .shop-credit-link{padding:8px 12px;min-height:35px}}

/* FRBC V16N3 — Aperçus réels des packs / plateau et objets, mobile lisible */
#shop-modal .shop-bundle .shop-product-media{background:#071a2c}
#shop-modal .shop-bundle .shop-product-media>canvas{object-fit:cover}
#shop-modal .shop-bundle-includes{color:#dbedfa}
#shop-modal .shop-product-media .shop-spin:focus-visible{outline:2px solid #d7f5ff;outline-offset:3px}
.shop-3d-stage{position:relative}
.shop-3d-footer .shop-3d-auto[hidden]{display:none}
@media(max-width:520px){#shop-modal .shop-bundle .shop-product-media{aspect-ratio:1.75}}

/* V16N4 — Shop statique premium, aucun bouton 3D ni WebGL */
#shop-modal .shop-product-media{isolation:isolate}
#shop-modal .shop-product-media>img{object-fit:cover;display:block}
#shop-modal .shop-bundle .shop-product-media{aspect-ratio:16/9}
#shop-modal .shop-item-price small{text-decoration:none!important;opacity:.85}
#shop-modal .shop-item-price small::first-letter{text-decoration:none}
#shop-modal .shop-product-media .shop-spin{display:none!important}
@media(max-width:520px){#shop-modal .shop-bundle .shop-product-media{aspect-ratio:16/9}}

/* V16N6 — affichage fixe 3D-relief, sans visionneuse WebGL dans le Shop. */
#shop-modal .shop-product-media img[src*="/shop-premium/"]{object-fit:cover;background:#102e4c;image-rendering:auto;}
#shop-modal .shop-product-media:has(img[src*="/shop-premium/"]){background:#102e4c;}
#shop-modal .shop-product-media:has(img[src*="/shop-premium/"]) .shop-product-tag{font-size:10px;letter-spacing:.75px;background:#e5f5ff;color:#103d60;box-shadow:0 2px 10px #0618296b;}


/* FRBC PACKS LIVE — 2026-10-18. Reuse catalog/shop assets, not legacy montage. */
#shop-modal .shop-product-media.frbc-live-pack{isolation:isolate;background:linear-gradient(155deg,#102e49,#071a30)!important;aspect-ratio:16/9}
#shop-modal .frbc-pack-stage{position:absolute;inset:0;overflow:hidden;display:block;background:linear-gradient(155deg,#0b2641,#17476d)}
#shop-modal .frbc-pack-stage::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,transparent 52%,rgba(4,17,29,.12) 100%);pointer-events:none}
#shop-modal .frbc-pack-board{position:absolute;left:4%;top:11%;width:58%;height:62%;padding:8px;overflow:hidden;transform:perspective(900px) rotateX(6deg) rotateZ(-5deg);border:1px solid #8eb6ce88;border-radius:12px;box-shadow:0 13px 30px #03101d9e;background:linear-gradient(180deg,#10324f,#0a2138);z-index:2}
#shop-modal .frbc-pack-board img,#shop-modal .frbc-pack-board canvas{width:100%;height:100%;object-fit:contain;display:block;border-radius:8px}
#shop-modal .frbc-pack-accessories{position:absolute;right:3%;top:11%;width:32%;height:68%;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:8px;z-index:2}
#shop-modal .frbc-pack-dice,#shop-modal .frbc-pack-checkers-wrap{flex:1 1 auto;min-height:0;border-radius:10px;border:1px solid #8eb6ce55;box-shadow:0 9px 20px #0413217a;background:radial-gradient(circle at 16% 16%,#205680 0%,transparent 31%),radial-gradient(circle at 54% 29%,#1b4c76 0%,transparent 27%),radial-gradient(circle at 86% 29%,#19476f 0%,transparent 27%),linear-gradient(180deg,#17466f 0%,#0d2a47 100%)!important}
#shop-modal .frbc-pack-dice{width:100%;object-fit:cover;display:block}
#shop-modal .frbc-pack-checkers-wrap{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
#shop-modal .frbc-pack-checkers{width:100%;height:100%;display:block;object-fit:cover;background:transparent}
#shop-modal .frbc-pack-scenery{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.64;filter:saturate(1.02)}
#shop-modal .frbc-live-pack:has(.frbc-pack-scenery) .frbc-pack-board{left:4%;top:38%;width:49%;height:46%;transform:perspective(900px) rotateX(3deg) rotateZ(-5deg)}
#shop-modal .frbc-live-pack:has(.frbc-pack-scenery) .frbc-pack-accessories{right:3%;top:26%;width:36%;height:50%}
#shop-modal .frbc-pack-caption{position:absolute;bottom:8px;left:12px;z-index:4;border:1px solid #accfed70;background:#061b30dc;color:#eff8ff;border-radius:5px;padding:4px 7px;font-size:9px;letter-spacing:.55px;font-weight:800;max-width:65%}
#shop-modal .frbc-pack-error{position:absolute;left:10px;right:10px;bottom:10px;color:#e2edfa;font-size:10px;text-align:center}
#shop-modal .frbc-live-pack .shop-product-tag{z-index:5}
#shop-modal .frbc-pack-board canvas{background:#0a2038;object-fit:contain}
@media(max-width:520px){#shop-modal .frbc-pack-board{left:4%;top:12%;width:56%;height:57%}#shop-modal .frbc-pack-accessories{right:3%;top:12%;width:34%;height:63%}#shop-modal .frbc-live-pack:has(.frbc-pack-scenery) .frbc-pack-board{top:41%;width:50%;height:42%}#shop-modal .frbc-live-pack:has(.frbc-pack-scenery) .frbc-pack-accessories{top:28%;width:37%;height:46%}}

/* V29.1 full Pixel pack: actual supplied original avatars, no replacement pictures. */
#shop-modal .frbc-pixel-avatar-strip{display:flex;gap:3px;padding:3px 7px;position:absolute;bottom:4px;left:4px;right:4px;z-index:5;justify-content:center;pointer-events:none}
#shop-modal .frbc-pixel-avatar-strip img{width:8.5%;aspect-ratio:1;object-fit:cover;border:1px solid #93d0c3;border-radius:50%;box-shadow:0 2px 6px #07172b90}


/* original: inventory-premium.css */
/* FRBC V16M — app/game UI: immersive player collection, Riviera blue and white */
#profile-modal{z-index:56;background:#020a18db;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));}
#profile-modal .inventory-panel{width:min(1030px,100%);max-height:min(95dvh,930px);overflow-y:auto;overscroll-behavior:contain;border:1px solid #91c8ff79;border-radius:20px;background:linear-gradient(139deg,#123455fa 0%,#071c33 62%,#06182c 100%);box-shadow:0 35px 110px #000c,inset 0 1px #e8f6ff18;padding:clamp(16px,2.6vw,27px);color:#f5faff;font:500 13px/1.45 Inter,system-ui,-apple-system,'Segoe UI',Arial,sans-serif;scrollbar-color:#578bb8 #0c233b;}
#profile-modal .inventory-header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #93c8ef3f;padding-bottom:19px;}
#profile-modal .inventory-ident{display:flex;align-items:center;gap:16px;min-width:0;}
#profile-modal .inventory-avatar{width:61px;height:61px;display:grid;place-items:center;flex:none;color:#dcf1ff;border:1px solid #9acefc91;background:linear-gradient(145deg,#1e6291,#0d3356);border-radius:17px;box-shadow:0 8px 28px #0005;}
#profile-modal .inventory-avatar svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;}
#profile-modal .inventory-kicker,#profile-modal .inventory-overline{color:#a4d6fc;font-size:10px;font-weight:840;letter-spacing:1.8px;}
#profile-modal .inventory-header h2{font:840 clamp(25px,3vw,38px)/1.12 Inter,system-ui,Arial,sans-serif;letter-spacing:-.05em;color:#fff;margin:5px 0 4px;}
#profile-modal .inventory-title-slash{color:#73b9f0;}
#profile-modal #inventory-player{margin:0;color:#a9c9e1;font-size:11px;overflow-wrap:anywhere;}
#profile-modal .inventory-close{flex:none;width:45px;height:45px;display:grid;place-items:center;background:#183e61;color:#e4f5ff;border:1px solid #b2dbfb79;border-radius:12px;font-size:30px;line-height:1;}
#profile-modal .inventory-close:hover,#profile-modal .inventory-slot:hover{border-color:#def3ff;background:#245b86;}
#profile-modal .inventory-dashboard{display:grid;grid-template-columns:.72fr 1.6fr;gap:15px;margin-top:19px;}
#profile-modal .inventory-player-stats,#profile-modal .inventory-loadout{border:1px solid #80bde650;background:linear-gradient(145deg,#143d60,#0b2845);padding:17px;border-radius:15px;min-width:0;}
#profile-modal .inventory-statline{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-top:24px;}
#profile-modal .inventory-statline>span{display:flex;flex-direction:column;gap:5px;min-width:0;}
#profile-modal .inventory-statline strong{font-size:clamp(25px,3vw,35px);font-weight:870;line-height:1;letter-spacing:-.04em;}
#profile-modal .inventory-statline small{color:#a5cbe5;font-size:9px;letter-spacing:.7px;font-weight:740;}
#profile-modal .inventory-loadout-head{display:flex;justify-content:space-between;gap:10px;align-items:center;}
#profile-modal .inventory-equipped-indicator{font-size:9px;letter-spacing:1px;color:#d2e9f8;font-weight:780;white-space:nowrap;}
#profile-modal .inventory-equipped-indicator i{display:inline-block;width:7px;height:7px;margin-right:5px;background:#80caff;border-radius:50%;box-shadow:0 0 9px #80caff9c;}
#profile-modal .inventory-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:15px;}
#profile-modal .inventory-slot{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;text-align:left;min-width:0;min-height:85px;padding:10px;border:1px solid #96c7ed56;border-radius:11px;background:#102f4dcf;color:#f5faff;}
#profile-modal .inventory-slot-symbol{font-size:23px;line-height:1;font-weight:600;color:#b3dffe;}
#profile-modal .inventory-slot-copy{min-width:0;width:100%;}
#profile-modal .inventory-slot-copy small{display:block;color:#a8cfe7;font-size:9px;font-weight:740;letter-spacing:.65px;}
#profile-modal .inventory-slot-copy strong{display:block;font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#profile-modal .inventory-collection-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-end;margin-top:24px;margin-bottom:13px;}
#profile-modal .inventory-collection-head h3{font-size:clamp(22px,2.4vw,30px);letter-spacing:-.045em;color:#fff;margin:2px 0;font-weight:850;}
#profile-modal .inventory-collection-head p{font-size:11px;color:#b8d3e5;margin:4px 0 0;}
#profile-modal .inventory-filter-stats{font-size:10px;font-weight:820;white-space:nowrap;color:#a6d8ff;letter-spacing:1px;}
#profile-modal .inventory-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid #82bbec4d;padding-bottom:13px;}
#profile-modal .inventory-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:1;white-space:nowrap;background:#143e60;border:1px solid #81bde76a;color:#c9e5f9;min-height:44px;border-radius:10px;font-size:13px;font-weight:760;padding:9px 16px;}
#profile-modal .inventory-tabs button.active{background:linear-gradient(110deg,#eff8ff,#b0ddff);color:#0c3556;border-color:#e8f7ff;}
#profile-modal .inventory-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;min-height:186px;padding-top:16px;}
#profile-modal .inventory-item{min-width:0;border:1px solid #92bee35d;background:#103251;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;}
#profile-modal .inventory-item.equipped{border-color:#b7e2ff;box-shadow:0 0 0 1px #75b9ee66 inset;}
#profile-modal .inventory-art{position:relative;aspect-ratio:1.65;background:#0a2943;overflow:hidden;}
#profile-modal .inventory-art canvas,#profile-modal .inventory-art img{display:block;width:100%;height:100%;object-fit:cover;}
#profile-modal .inventory-art-tag{position:absolute;left:9px;top:9px;font-size:9px;font-weight:850;letter-spacing:.5px;padding:5px 8px;background:#e6f6ff;color:#0b3556;border-radius:7px;}
#profile-modal .inventory-art-spin{position:absolute;right:7px;bottom:7px;font-size:11px;font-weight:820;padding:6px 10px;color:#fff;background:#08223cdb;border:1px solid #b8e1ff91;border-radius:8px;}
#profile-modal .inventory-item-info{display:flex;flex:1;flex-direction:column;gap:7px;padding:12px;min-width:0;}
#profile-modal .inventory-item-info>strong{font-size:14px;font-weight:840;letter-spacing:-.02em;color:#fff;line-height:1.25;}
#profile-modal .inventory-item-info>small{font-size:11px;line-height:1.4;color:#b5d2e8;flex:1;}
#profile-modal .inventory-equip{min-height:40px;width:100%;font-size:10px;font-weight:850;letter-spacing:.5px;color:#082b4f;background:linear-gradient(110deg,#f0faff,#a4d6ff);border:1px solid #d8edff;border-radius:9px;}
#profile-modal .inventory-equip:disabled{opacity:1;color:#d5efff;background:#235a80;border-color:#89c9f2;cursor:default;}
#profile-modal .inventory-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #81b6dc3e;padding-top:15px;margin-top:17px;}
#profile-modal #inventory-save-notice{font-size:10px;color:#b1d3ea;}
#profile-modal .inventory-go-shop{background:linear-gradient(110deg,#effaff,#acd9ff);color:#0a3150;border:1px solid #d4edff;min-height:42px;border-radius:10px;font-size:11px;font-weight:860;padding:10px 16px;white-space:nowrap;}
#menu-modal .profile-entry{width:100%;min-height:66px;display:flex;align-items:center;gap:14px;text-align:left;background:linear-gradient(112deg,#184f79,#123653);border:1px solid #9fd6ff90;border-radius:13px;padding:12px 14px;margin:1px 0 14px;color:#edf8ff;}
#menu-modal .profile-entry .frbc-ui-icon{width:27px;height:27px;stroke:#b5e7ff;}
#menu-modal .profile-entry>span{display:flex;flex:1;flex-direction:column;gap:3px;}
#menu-modal .profile-entry strong{font-size:13px;letter-spacing:.8px;color:#fff;}
#menu-modal .profile-entry small{font-size:10px;color:#b7d8ed;}
#menu-modal .profile-entry>b{font-size:10px;white-space:nowrap;color:#d8f2ff;}
@media(max-width:800px){#profile-modal .inventory-dashboard{grid-template-columns:1fr}#profile-modal .inventory-statline{margin-top:15px;justify-content:flex-start;gap:38px}#profile-modal .inventory-items{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:520px) and (orientation:portrait){#profile-modal .inventory-panel{max-height:calc(100dvh - 16px);padding:14px;border-radius:14px}#profile-modal .inventory-header{gap:8px;padding-bottom:12px}#profile-modal .inventory-avatar{width:43px;height:43px;border-radius:12px}#profile-modal .inventory-avatar svg{width:24px;height:24px}#profile-modal .inventory-ident{gap:10px}#profile-modal .inventory-header h2{font-size:21px}#profile-modal .inventory-kicker{font-size:8px;letter-spacing:1px}#profile-modal .inventory-close{width:40px;height:40px}#profile-modal .inventory-player-stats,#profile-modal .inventory-loadout{padding:12px}#profile-modal .inventory-dashboard{gap:9px;margin-top:11px}#profile-modal .inventory-statline{justify-content:space-between;gap:8px;margin-top:8px}#profile-modal .inventory-statline strong{font-size:22px}#profile-modal .inventory-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:11px}#profile-modal .inventory-slot{min-height:60px;flex-direction:row;align-items:center;gap:10px;padding:8px}#profile-modal .inventory-slot-symbol{font-size:20px}#profile-modal .inventory-collection-head{margin-top:17px}#profile-modal .inventory-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}#profile-modal .inventory-item-info{padding:10px}#profile-modal .inventory-item-info>strong{font-size:12px}#profile-modal .inventory-item-info>small{font-size:10px}#profile-modal .inventory-tabs button{padding:8px 10px;min-height:41px;font-size:12px}#profile-modal .inventory-tabs button span{display:none}#profile-modal .inventory-footer{flex-direction:column;align-items:stretch}#profile-modal .inventory-go-shop{width:100%}}
@media(max-height:490px) and (orientation:landscape){#profile-modal{padding:4px}#profile-modal .inventory-panel{max-height:calc(100dvh - 8px);padding:10px 16px;border-radius:13px}#profile-modal .inventory-header{padding-bottom:9px}#profile-modal .inventory-header h2{font-size:22px}#profile-modal .inventory-avatar{width:42px;height:42px}#profile-modal .inventory-avatar svg{width:21px;height:21px}#profile-modal .inventory-dashboard{grid-template-columns:.7fr 1.5fr;gap:9px;margin-top:10px}#profile-modal .inventory-statline{gap:18px;margin-top:11px}#profile-modal .inventory-player-stats,#profile-modal .inventory-loadout{padding:9px}#profile-modal .inventory-slots{margin-top:7px}#profile-modal .inventory-slot{min-height:61px;padding:7px}#profile-modal .inventory-slot-symbol{font-size:18px}#profile-modal .inventory-collection-head{margin-top:12px}#profile-modal .inventory-items{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding-top:9px}#profile-modal .inventory-art{aspect-ratio:2}#profile-modal .inventory-item-info{padding:8px}#profile-modal .inventory-item-info>small{display:none}#profile-modal .inventory-tabs button{min-height:34px;padding:5px 10px}#profile-modal .inventory-footer{padding-top:8px;margin-top:10px}}
@media(prefers-reduced-motion:reduce){#profile-modal *{scroll-behavior:auto!important;}}
/* Refined game-like affordances: restrained Riviera glow, no gold accents. */
#profile-modal .inventory-slot.selected{border-color:#a8daff;background:linear-gradient(135deg,#1b547f,#103b62);box-shadow:inset 0 0 0 1px #d3ebff24,0 5px 18px #0003}
#profile-modal .inventory-slot,#profile-modal .inventory-tabs button,#profile-modal .inventory-item,#profile-modal .inventory-equip,#profile-modal .inventory-go-shop{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
@media(hover:hover){#profile-modal .inventory-item:hover{border-color:#97cff6;box-shadow:0 10px 30px #0005}#profile-modal .inventory-equip:hover:not(:disabled),#profile-modal .inventory-go-shop:hover{box-shadow:0 5px 18px #70bafb40;transform:translateY(-1px)}#profile-modal .inventory-tabs button:hover:not(.active){background:#21567f;color:white}}
#profile-modal :is(button,a):focus-visible{outline:2px solid #d5f1ff;outline-offset:3px}
#profile-modal .inventory-art-spin:hover{background:#174770}
@media(prefers-reduced-motion:reduce){#profile-modal .inventory-slot,#profile-modal .inventory-tabs button,#profile-modal .inventory-item,#profile-modal .inventory-equip,#profile-modal .inventory-go-shop{transition:none}}


#profile-modal .inventory-art.frbc-dice-matched-background{background:radial-gradient(circle at 16% 16%,#205680 0%,transparent 31%),radial-gradient(circle at 54% 29%,#1b4c76 0%,transparent 27%),radial-gradient(circle at 86% 29%,#19476f 0%,transparent 27%),linear-gradient(180deg,#17466f 0%,#0d2a47 100%)!important}
#profile-modal .inventory-art.frbc-dice-matched-background>canvas.frbc-checker-live-canvas{display:block!important;width:100%;height:100%;object-fit:cover;visibility:visible!important;background:transparent!important}
#profile-modal .inventory-art .frbc-checker-loader{position:absolute;inset:auto 10px 10px 10px;z-index:2;text-align:center;font-size:10px;font-weight:700;color:#eaf6ff;background:#08223cdb;border:1px solid #b8e1ff91;border-radius:8px;padding:6px 8px}
#profile-modal .inventory-art.frbc-real-checker-loading::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.08) 50%,transparent 100%);transform:translateX(-100%);animation:frbcInvShimmer 1.4s linear infinite}
@keyframes frbcInvShimmer{to{transform:translateX(100%)}}

/* Credit offers: identical information and Stripe actions as the shop, within inventory. */
#profile-modal .inventory-credits{margin:24px 0 16px;padding:19px 20px;border:1px solid #7cbeff7e;border-radius:15px;background:linear-gradient(135deg,#10395c,#0b2845);color:#e8f5ff}
#profile-modal .inventory-credits .credits-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
#profile-modal .inventory-credits .credits-heading strong{font-size:13px;color:#e8f5ff;letter-spacing:.7px}
#profile-modal .inventory-credits .credits-heading span{color:#bcd9ed;font-size:10px}
#profile-modal .inventory-credits .credits-pack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
#profile-modal .inventory-credits .credits-pack-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:76px;border:1px solid #81c4ff77;border-radius:12px;background:#0e2848;color:#f0faff;padding:10px}
#profile-modal .inventory-credits .credits-pack-grid button:hover{background:#215a91}
#profile-modal .inventory-credits .credits-pack-grid button b{font-size:21px;font-weight:800;color:#e7f5ff}
#profile-modal .inventory-credits .credits-pack-grid button span{font-size:12px}
#profile-modal .inventory-credits .shop-donation-feature{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 15px;min-height:65px;background:linear-gradient(105deg,#164d7a,#10324f);border:1px solid #83caffaa;border-radius:13px;color:#f0f9ff;text-decoration:none}
#profile-modal .inventory-credits .shop-donation-feature svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;flex:none}
#profile-modal .inventory-credits .shop-donation-feature>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:2px}
#profile-modal .inventory-credits .shop-donation-feature strong{font-size:14px}
#profile-modal .inventory-credits .shop-donation-feature small{font-size:10px;color:#b9d5ed}
#profile-modal .inventory-credits .support-credits-copy{color:#b5d2e8;font-size:11px;line-height:1.55;margin:12px 0}
#profile-modal .inventory-credits>small{display:block;color:#acc9dd;font-size:10px;margin-top:10px}
@media(max-width:520px){#profile-modal .inventory-credits{padding:12px}#profile-modal .inventory-credits .credits-heading{flex-direction:column;align-items:flex-start}#profile-modal .inventory-credits .credits-pack-grid button b{font-size:15px}#profile-modal .inventory-credits .credits-pack-grid button{min-height:62px;padding:6px 3px}}

.frbc-public-profile{margin-top:16px;padding:14px;border:1px solid #83bce061;border-radius:12px;background:#0c2d49}.frbc-public-profile p{margin:5px 0 10px;color:#b9d9ef;font-size:12px}.frbc-public-profile form{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.frbc-public-profile label{font-size:11px;font-weight:700}.frbc-public-profile input,.frbc-public-profile select{min-width:110px;flex:1;background:#103a5b;color:#f5fbff;border:1px solid #87bde6;border-radius:8px;padding:10px}.frbc-public-profile button{background:#d3efff;color:#103350;border:0;border-radius:8px;padding:10px 16px;font-weight:800}.frbc-public-profile small{display:block;margin-top:8px;color:#c9e8fa}.frbc-public-fields{display:grid;gap:6px;margin:8px 0}.frbc-public-fields input,.frbc-public-fields select{width:100%;padding:10px;background:#143b59;color:white;border:1px solid #85bfe3;border-radius:7px}

/* Avatars FRBC et résumé de profil : aucune image distante ni photo personnelle. */
#profile-modal .inventory-avatar[class*="frbc-avatar-"]{font-size:30px;font-weight:900;color:#e4f7ff;line-height:1;border-radius:22px;text-shadow:0 2px 10px #0006;flex-shrink:0}
#profile-modal .frbc-profile-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:9px 0}
#profile-modal .frbc-profile-summary[hidden],#profile-modal .frbc-avatar-options[hidden],#profile-modal #frbc-profile-edit[hidden]{display:none!important}
#profile-modal .frbc-profile-summary>strong{font-size:20px;color:white}#profile-modal #frbc-profile-flag{font-size:26px}
#profile-modal .frbc-avatar-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:10px 0;color:#cfe9fa}
#profile-modal .frbc-profile-summary button,#profile-modal .frbc-avatar-actions button,#profile-modal .frbc-avatar-cancel{background:#1a537d;color:#e7f8ff;border:1px solid #9fd8ff99;padding:8px 12px;border-radius:9px;cursor:pointer}
#profile-modal .frbc-avatar-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:10px 0}
#profile-modal .frbc-avatar-choice{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:68px;border:1px solid #82bded88;border-radius:12px;color:#eaf7ff;background:#123b60;cursor:pointer}
#profile-modal .frbc-avatar-choice span{font-size:29px}#profile-modal .frbc-avatar-choice small{font-size:10px}
#profile-modal .frbc-avatar-choice.selected{outline:2px solid #edfaff;outline-offset:1px}
#profile-modal .frbc-avatar-riviera{background:linear-gradient(140deg,#076eaa,#063555)!important}
#profile-modal .frbc-avatar-royal{background:linear-gradient(140deg,#907047,#2a263b)!important}
#profile-modal .frbc-avatar-carbon{background:linear-gradient(140deg,#556a7c,#131d2e)!important}
#profile-modal .frbc-avatar-neon{background:linear-gradient(140deg,#1672cf,#251b69)!important}
#profile-modal .frbc-avatar-imperial{background:linear-gradient(140deg,#692b39,#13151f)!important}
#profile-modal .frbc-avatar-sakura{background:linear-gradient(140deg,#b46c97,#573766)!important}
#profile-modal .frbc-avatar-ice{background:linear-gradient(140deg,#75b9df,#246189)!important}
#profile-modal .frbc-avatar-casino{background:linear-gradient(140deg,#11605b,#082f37)!important}
#profile-modal .frbc-avatar-loft{background:linear-gradient(140deg,#71533a,#182d44)!important}
#profile-modal .frbc-avatar-pilot{background:linear-gradient(140deg,#496a90,#18243e)!important}
#profile-modal .frbc-avatar-chrome{background:linear-gradient(140deg,#879cb2,#243c59)!important}
#profile-modal .frbc-avatar-sunset{background:linear-gradient(140deg,#cc7750,#5b2d56)!important}
@media(max-width:540px){#profile-modal .frbc-avatar-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
#profile-modal .frbc-avatar-cancel{display:none}
#profile-modal .frbc-avatar-options:not([hidden])+.frbc-avatar-cancel{display:inline-flex;margin-bottom:8px}

#profile-modal .frbc-career-progression{background:linear-gradient(125deg,#14456c,#071f36);border:1px solid #83bde87a;border-radius:14px;padding:13px 16px;margin:15px 0;color:#e4f4ff}
#profile-modal .frbc-career-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}
#profile-modal #frbc-career-stars{font-size:20px;letter-spacing:2px;color:#e7ba63}
#profile-modal .frbc-career-track{height:9px;overflow:hidden;border-radius:9px;background:#071b31;margin:10px 0 7px}
#profile-modal #frbc-career-progress{height:100%;width:0%;background:linear-gradient(90deg,#348dd0,#b1eaff);border-radius:9px;transition:width .2s}
#profile-modal #frbc-career-xp{display:block;color:#beddf1;font-size:11px}
#profile-modal .frbc-career-local{display:block;color:#87b5d1;font-size:10px;margin-top:6px}


/* original: frbc-iphone-layout-v19.css */
/* FRBC V19 – Ajustements iPhone. Conserve le plateau, les caméras et les contrôles existants. */
/* Les sélecteurs visent uniquement l'interface mobile active, sans effet sur le bureau. */
@media (orientation: portrait) {
  html.frbc-mobile-ui:not(.mobile-intro):not(.mobile-decor-expanded) #mobile-ui .mobile-play > .mobile-rail {
    /* Corrige la colonne vide qui s'étendait jusqu'au bas du plateau. */
    align-self: start !important;
    justify-content: flex-start !important;
    height: fit-content !important;
    min-height: 0 !important;
    max-height: calc(100% - 16px) !important;
    margin-top: clamp(34px, 9dvh, 72px) !important;
    padding: 0 !important;
    overflow-y: auto !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  html.frbc-mobile-ui:not(.mobile-intro):not(.mobile-decor-expanded) #mobile-ui .mobile-play > .mobile-rail .mobile-tool {
    flex-shrink: 0 !important;
  }
}
@media (orientation: landscape) and (max-height: 500px) {
  html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded) #mobile-ui .mobile-play > .mobile-rail {
    /* Conserver les deux colonnes sans fond qui masque le décor. */
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    column-gap: 5px !important;
    row-gap: 5px !important;
  }
  html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded) #mobile-ui .mobile-play > .mobile-rail .mobile-tool {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 1px !important;
    min-width: 0 !important;
    padding: 1px !important;
  }
  html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded) #mobile-ui .mobile-play > .mobile-rail .mobile-tool-label {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font: 800 8px/1.15 Arial, sans-serif !important;
    text-align: center !important;
  }
}


/* original: shop-no-flash.css */
/* No obsolete thumbnails while the true 3D product renders. */
#shop-modal .shop-product-media.frbc-real-checker-loading{background:linear-gradient(145deg,#123958,#071c2e)}
#shop-modal .shop-product-media.frbc-real-checker-loading>img{visibility:hidden}
#shop-modal .shop-product-media .frbc-checker-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#b4d7ea;font-size:12px;letter-spacing:.3px;text-align:center;padding:18px}
#shop-modal .shop-product-media.frbc-checker-failed>img{display:none}
#shop-modal .shop-product-media.frbc-checker-failed .frbc-checker-loader{display:flex}

/* Pions 3D réellement rendus sur canvas ; même décor bleu que les vignettes dés. */
#shop-modal .shop-product-media.frbc-dice-matched-background{
 background:radial-gradient(circle at 16% 16%,#205680 0%,transparent 31%),
 radial-gradient(circle at 54% 29%,#1b4c76 0%,transparent 27%),
 radial-gradient(circle at 86% 29%,#19476f 0%,transparent 27%),
 linear-gradient(180deg,#17466f 0%,#0d2a47 100%)!important;
}
#shop-modal .shop-product-media.frbc-dice-matched-background>canvas.frbc-checker-live-canvas{
 display:block!important;width:100%;height:100%;object-fit:cover;visibility:visible!important;background:transparent!important;
}
#shop-modal .shop-product-media.frbc-real-checker-loading>canvas.frbc-checker-live-canvas{opacity:0}
#shop-modal .shop-product-media.frbc-dice-matched-background:not(.frbc-real-checker-loading)>canvas.frbc-checker-live-canvas{opacity:1}

#shop-modal .frbc-pack-checkers-wrap.frbc-dice-matched-background>canvas.frbc-checker-live-canvas{display:block!important;width:100%;height:100%;object-fit:cover;visibility:visible!important;background:transparent!important}

/* v2: checker canvas now paints the exact dice-style blue stage before 3D objects. */
#shop-modal .shop-product-media.frbc-dice-matched-background{background:linear-gradient(180deg,#1a4c75,#0c2b49)!important}
#shop-modal .shop-product-media.frbc-dice-matched-background>canvas.frbc-checker-live-canvas{opacity:1!important}
#shop-modal .shop-product-media.frbc-real-checker-loading>canvas.frbc-checker-live-canvas{opacity:0!important}


/* original: frbc-avatar-ui.css */
/* FRBC Avatar Luxe — shop, profile, menu, scoreboard. Visual only. */
.frbc-avatar-circle,.frbc-score-portrait,.frbc-avatar-choice-face,.frbc-lobby-round-avatar,.frbc-notice-avatar,.frbc-welcome-avatar{border-radius:50%!important;overflow:hidden;flex-shrink:0;position:relative}
.frbc-round-avatar-image,.frbc-score-portrait img,.frbc-avatar-choice-face img,.frbc-lobby-round-avatar{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.frbc-avatar-shop-preview{position:relative;display:flex!important;align-items:center;justify-content:center;gap:0;min-height:176px;padding:18px 15px 26px;isolation:isolate;background:radial-gradient(circle at 50% 5%,#3074b4,#092848 75%);overflow:hidden}
#shop-modal .shop-product-media.frbc-avatar-shop-preview > img{height:104px;width:104px;min-width:0;object-fit:cover;aspect-ratio:1;border-radius:50%;border:2px solid #dfecfc;box-shadow:0 6px 16px #0008;background:#133653;margin-inline:-18px;transition:transform .2s}
#shop-modal .shop-product-media.frbc-avatar-shop-preview > img:first-child{transform:scale(.8) translateX(7px)}
#shop-modal .shop-product-media.frbc-avatar-shop-preview > img:last-of-type{transform:scale(.8) translateX(-7px)}
#shop-modal .shop-product-media.frbc-avatar-shop-preview > img:nth-child(3){z-index:2;transform:scale(1.2);border-color:#cfad67}
.frbc-avatar-shop-count{position:absolute;bottom:5px;left:0;right:0;text-align:center;font-size:11px;font-weight:800;color:#f9f4db;letter-spacing:2px;text-shadow:0 1px 4px #000}
.frbc-avatar-collection-tabs{display:flex;gap:6px;overflow-x:auto;white-space:nowrap;padding:5px 1px 9px}
.frbc-avatar-collection-tab{white-space:nowrap!important;flex-shrink:0;padding:8px 12px!important;border-radius:999px!important;border:1px solid #4d7da8;background:#102944;color:#eaf5ff;font-size:12px}
.frbc-avatar-collection-tab.active{border-color:#e6bb6e;background:#214f75;box-shadow:0 0 0 1px #dba94c66}
.frbc-avatar-options{display:block!important;max-height:50vh;overflow:auto;padding:8px;background:#0d2742;border-radius:12px}
.frbc-avatar-options[hidden]{display:none!important}
.frbc-avatar-collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:9px;padding:4px}
.frbc-avatar-choice{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:8px 4px;border:1px solid #416482;background:#123351;color:#fff;border-radius:12px}
.frbc-avatar-choice-face{display:grid;place-items:center;width:68px;height:68px;aspect-ratio:1;background:#173959;border:2px solid #b4cee1;font-size:30px}
.frbc-avatar-choice.selected .frbc-avatar-choice-face{border-color:#f4cd7a;box-shadow:0 0 0 2px #d6ab5b55}
.frbc-avatar-choice small{font-size:10px;line-height:1.25;white-space:normal;text-align:center;color:inherit}
.frbc-avatar-choice.locked{opacity:.6}
.frbc-avatar-choice.locked .frbc-avatar-choice-face{filter:grayscale(.75)}
.frbc-avatar-locked-note{grid-column:1/-1;text-align:center;padding:8px;font-size:12px;color:#cbd8e6}
.inventory-avatar.frbc-avatar-circle{width:68px;height:68px;display:grid;place-items:center;}
.frbc-welcome-avatar.frbc-avatar-circle{display:grid;place-items:center;width:66px;height:66px}
.frbc-notice-avatar.frbc-avatar-circle{display:grid;place-items:center}
.frbc-lobby-round-avatar{width:38px;height:38px;border:2px solid #dfc581;order:-1;object-fit:cover}
.match-score .player{display:flex!important;align-items:center;gap:5px;min-width:0;flex-wrap:wrap;justify-content:center}
.frbc-score-portrait{display:grid;place-items:center;width:36px;height:36px;background:#18466b;border:2px solid #a7d1ef;line-height:1}
.frbc-score-extras{font-weight:700;font-size:10px;color:#d9b977;line-height:1.2;white-space:nowrap}
@media(max-width:850px){#shop-modal .shop-product-media.frbc-avatar-shop-preview > img{width:78px;height:78px;margin-inline:-12px}.frbc-avatar-shop-preview{min-height:142px}.frbc-score-portrait{width:27px;height:27px}.frbc-score-extras{font-size:9px}.match-score .player{gap:3px}.frbc-avatar-collection-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}.frbc-avatar-choice-face{width:58px;height:58px}}

/* V29.1 — Aperçu complet des DIX avatars Série 08 seulement.
   Aucun changement à la présentation des autres collections. */
#shop-modal .shop-product-media.frbc-v291-avatar-series-08{
 display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));
 align-items:center;justify-items:center;gap:5px;min-height:176px;padding:12px 8px 31px;
}
#shop-modal .shop-product-media.frbc-v291-avatar-series-08 > img{
 width:min(100%,62px)!important;height:auto!important;aspect-ratio:1/1;
 object-fit:cover;margin:0!important;transform:none!important;
 border:1px solid #b9d9e9;border-radius:50%;z-index:auto!important;
}
#shop-modal .shop-product-media.frbc-v291-avatar-series-08 > img:hover{
 transform:scale(1.07)!important;z-index:2!important;
}
@media(max-width:520px){
 #shop-modal .shop-product-media.frbc-v291-avatar-series-08{gap:3px;padding-inline:6px}
 #shop-modal .shop-product-media.frbc-v291-avatar-series-08 > img{width:min(100%,52px)!important}
}


/* original: frbc-online-invites.css */
.frbc-mode-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 18px}.frbc-mode{display:flex;align-items:center;justify-content:center;gap:10px;padding:15px 10px;min-height:75px;border:1px solid #75a9d1;border-radius:14px;background:#123958;color:#e7f5ff;font-weight:850;cursor:pointer}.frbc-mode.active{background:linear-gradient(125deg,#cfeaff,#90cafa);color:#0b2f4d}.frbc-mode-icon{font-size:25px}
#frbc-lobby-modal{z-index:110}#frbc-lobby-modal .frbc-lobby{width:min(790px,calc(100vw - 20px));max-height:92dvh;overflow:auto;margin:auto;border:1px solid #7ebbe8;border-radius:22px;background:linear-gradient(140deg,#153e60,#071b31);padding:clamp(16px,3vw,28px);color:#f5fbff;box-shadow:0 32px 80px #000a}#frbc-lobby-modal header{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #9ad1ff54;padding-bottom:13px}#frbc-lobby-modal header h2{font-size:clamp(25px,4vw,35px);margin:4px 0}#frbc-lobby-modal header p{color:#bbd9ec}#frbc-lobby-close{align-self:flex-start;font-size:28px;border:1px solid #729ac3;border-radius:12px;padding:8px 13px;color:white;background:#184768;cursor:pointer}#frbc-lobby-modal button:not(:disabled){cursor:pointer}#frbc-lobby-modal button:disabled{opacity:.45;cursor:not-allowed}.frbc-lobby-tools{display:flex;gap:8px;margin:20px 0 12px}.frbc-lobby-tools input{flex:1;min-width:0}.frbc-lobby-tools input,.frbc-lobby-join input{padding:12px;color:#fff;background:#0b2a46;border:1px solid #6395bd;border-radius:9px}.frbc-lobby-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:290px;overflow-y:auto}.frbc-lobby-player{display:flex;justify-content:space-between;gap:10px;padding:12px;background:#143c5b;border:1px solid #5689b0;border-radius:11px;align-items:center}.frbc-lobby-player-name{min-width:0}.frbc-lobby-player-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frbc-lobby-player-name small{display:block;color:#aacbdf;margin-top:4px;font-size:11px}.frbc-invite-panel{margin-top:17px;padding:16px;border:1px solid #6da7d2;border-radius:13px;background:#0c2943}.frbc-invite-panel p,.frbc-lobby-beta{color:#b8d4e6;font-size:12px;line-height:1.5}.frbc-lobby-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.frbc-lobby-actions button,.frbc-lobby-player button,.frbc-lobby-tools button,.frbc-lobby-join button,#frbc-lobby-leave{padding:10px 13px;border-radius:9px;border:1px solid #94c6e7;background:#21577d;color:#fff;font-weight:740}.frbc-lobby-join{display:flex;gap:8px;margin-top:12px}.frbc-lobby-join input{flex:1;min-width:0}.frbc-lobby-code{padding:12px;font-size:18px;font-weight:850;letter-spacing:2px;color:#e2f4ff}.frbc-incoming{padding:15px;background:#1a4869;border:1px solid #9ac7e6;border-radius:12px;margin-top:10px}#frbc-lobby-status{padding:10px 0;color:#b5deff}#frbc-lobby-modal [hidden]{display:none!important}@media(max-width:540px){.frbc-lobby-list{grid-template-columns:1fr}.frbc-mode{flex-direction:column;min-height:76px}.frbc-lobby-tools{flex-wrap:wrap}}

.frbc-online-test-link{display:inline-block;margin:12px 0 0;padding:10px 15px;border:1px solid #9fcbef;border-radius:9px;background:#e2f5ff;color:#103653;font-weight:800;text-decoration:none}.frbc-online-test-link[hidden]{display:none}

/* V4: larger scrollable club roster, contained independently of the invitation panel. */
#frbc-lobby-modal .frbc-lobby-list{max-height:min(48dvh,470px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;align-content:start;padding-right:4px}
#frbc-lobby-modal .frbc-lobby-player{min-height:78px}
#frbc-lobby-modal .frbc-lobby-player-name small{font-size:11px;line-height:1.5}

.frbc-player-actions{display:flex;align-items:center;flex-shrink:0;gap:6px}.frbc-lobby-player .frbc-favorite-toggle{font-size:23px;line-height:1;padding:7px;border-color:#b88e68;background:#26394e;color:#f4bfbd;min-width:36px}.frbc-favorite-toggle[aria-pressed="true"]{color:#f5798c;background:#583b4e}#frbc-favorite-filter[aria-pressed="true"]{background:#684052;color:white}.frbc-profile-favorite-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid #ffffff22;font-size:13px}.frbc-profile-favorite-row button{border:1px solid #7189a0;border-radius:8px;color:#ebf2fc;background:#253d55;padding:6px 9px;cursor:pointer}@media(max-width:520px){#frbc-lobby-modal .frbc-player-actions{gap:4px}.frbc-lobby-player .frbc-favorite-toggle{min-width:31px;padding:4px}.frbc-lobby-tools button{font-size:11px}}
/* V17: adaptive lobby without horizontal scroll or clipped actions on iPhone. */
#frbc-lobby-modal .frbc-lobby{box-sizing:border-box;max-width:calc(100vw - 16px);min-width:0;overflow-x:hidden}
#frbc-lobby-modal .frbc-lobby *{box-sizing:border-box}
#frbc-lobby-modal .frbc-lobby-list{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))}
#frbc-lobby-modal .frbc-lobby-player{min-width:0;max-width:100%;flex-wrap:nowrap;overflow:hidden}
#frbc-lobby-modal .frbc-lobby-player-name{flex:1 1 0;min-width:0;overflow:hidden}
#frbc-lobby-modal .frbc-player-actions{flex:0 0 auto;max-width:52%;min-width:0}
#frbc-lobby-modal .frbc-player-actions button{white-space:nowrap;flex-shrink:0}
@media(max-width:650px){
 #frbc-lobby-modal .frbc-lobby{padding:clamp(10px,3vw,18px);max-height:calc(100dvh - 16px)}
 #frbc-lobby-modal .frbc-lobby-list{grid-template-columns:minmax(0,1fr);max-height:min(48dvh,520px)}
 #frbc-lobby-modal .frbc-lobby-player{gap:5px;padding:9px 8px;min-height:68px}
 #frbc-lobby-modal .frbc-lobby-player-name strong{font-size:clamp(12px,3.8vw,17px)}
 #frbc-lobby-modal .frbc-lobby-player-name small{font-size:10px;overflow-wrap:anywhere}
 #frbc-lobby-modal .frbc-player-actions{gap:4px;max-width:49%}
 #frbc-lobby-modal .frbc-player-actions button{font-size:12px;padding:8px 9px;min-width:0}
 #frbc-lobby-modal .frbc-lobby-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
 #frbc-lobby-modal .frbc-lobby-tools input{grid-column:1/-1;width:100%;min-width:0}
 #frbc-lobby-modal .frbc-lobby-tools button{min-height:40px;padding:8px 10px}
 #frbc-lobby-modal .frbc-lobby-join{flex-wrap:wrap}
 #frbc-lobby-modal .frbc-lobby-join input{flex:1 1 55%;min-width:0}
 #frbc-lobby-modal .frbc-invite-panel{padding:10px}
}
@media(max-height:520px) and (orientation:landscape){
 #frbc-lobby-modal .frbc-lobby{max-height:calc(100dvh - 12px);padding:12px}
 #frbc-lobby-modal .frbc-lobby-list{max-height:42dvh}
}

.frbc-no-mp{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:none;width:30px;color:#a3adb6;opacity:.65;user-select:none}.frbc-no-mp svg{width:21px;height:21px}.frbc-no-mp small{font:700 8px/1.2 system-ui;letter-spacing:.02em;white-space:nowrap}


/* original: championship.css */
/* FRBC Championship Tour · independent tournament presentation, no 3D changes */
.frbc-tour-menu{display:flex!important;align-items:center;justify-content:space-between;margin:12px 0!important;min-height:48px!important;border-color:#9acbf4!important;background:linear-gradient(110deg,#123a61,#174d76)!important;color:#fff!important;font-weight:800!important;letter-spacing:.035em}
.frbc-tour-menu span{font-size:10px;color:#b9e4ff}
#frbc-tour-modal{z-index:70;background:#030c18df;backdrop-filter:blur(12px);padding:clamp(8px,2vw,26px)}
#frbc-tour-modal[hidden]{display:none!important}
.frbc-tour-panel{margin:auto;width:min(1020px,100%);max-height:94dvh;overflow-y:auto;border:1px solid #8dbce47c;border-radius:21px;background:linear-gradient(145deg,#143a60,#081d34 68%);box-shadow:0 25px 100px #000c;color:#fff;padding:clamp(15px,3vw,32px);font-family:Inter,system-ui,Arial,sans-serif}
.frbc-tour-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;border-bottom:1px solid #98c9ed40;padding-bottom:20px}
.frbc-tour-head small{font-size:10px;color:#a7d5f5;font-weight:800;letter-spacing:1.5px}
.frbc-tour-head h2{margin:7px 0;font-size:clamp(30px,5vw,52px);line-height:1.05;letter-spacing:-.04em}
.frbc-tour-head p,.frbc-tour-panel p{color:#b6d2e8;line-height:1.5}
#frbc-tour-close{height:44px;width:44px;flex:none;border:1px solid #83b5df;background:#194b73;color:#fff;border-radius:12px;font-size:26px}
.frbc-tour-tabs{display:flex;gap:9px;margin:22px 0 16px}.frbc-tour-tabs button{flex:1;min-height:44px;border:1px solid #78aad265;background:#113858;color:#c5e5fb;border-radius:10px;font-weight:800}
.frbc-tour-tabs button.active{color:#0c3453;background:#def1ff;border-color:#fff}
.frbc-tour-lead h3,.frbc-tour-prizes h3,.frbc-tour-empty h3,.frbc-tour-rules h3{font-size:22px;margin:10px 0}
.frbc-tour-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:17px 0}
.frbc-tour-event,.frbc-tour-prizes,.frbc-tour-empty,.frbc-tour-rules{padding:18px;border:1px solid #78abd35c;background:linear-gradient(140deg,#19476c,#0e2b48);border-radius:14px}
.frbc-tour-event{display:flex;flex-direction:column;gap:15px;min-height:146px}
.frbc-tour-event-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.frbc-tour-event-head strong{font-size:18px}.frbc-tour-event-head small{color:#a6cfe8}
.frbc-tour-points{color:#e7f7ff;font-weight:800}.frbc-tour-pending{font-size:11px;color:#9fc6e1}
.frbc-tour-prizes{margin-top:18px}.frbc-tour-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:15px 0}.frbc-tour-podium>div{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 6px;border:1px solid #8bbde36d;background:#0e2d4a;border-radius:10px}.frbc-tour-podium strong{font-size:clamp(17px,3vw,25px)}.frbc-tour-podium small{color:#bddcf0}.frbc-tour-prizes p{font-size:11px}
.frbc-tour-rule{padding:14px 0;border-bottom:1px solid #97bdd33a}.frbc-tour-rule:last-child{border:0}.frbc-tour-rule strong{color:#e8f8ff}.frbc-tour-rule p{margin:7px 0 0}
.frbc-tour-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px;padding-top:16px;border-top:1px solid #98c9ed40}.frbc-tour-foot span{font-size:11px;color:#add1eb}.frbc-tour-foot button{min-height:42px;background:#dcedff;color:#0a3454;border:0;border-radius:10px;padding:0 18px;font-weight:800}
@media(max-width:580px){.frbc-tour-grid{grid-template-columns:1fr}.frbc-tour-event{min-height:auto}.frbc-tour-foot{flex-direction:column;align-items:stretch}.frbc-tour-podium>div{padding:12px 3px}}


/* original: frbc-social.css */

.frbc-social-settings{margin:16px 0;padding:18px;border:1px solid rgba(150,175,204,.25);border-radius:14px;background:rgba(12,22,37,.7);color:#e3ebfa}.frbc-social-settings h3{margin:0 0 8px;font-size:17px}.frbc-social-settings p{font-size:12px;opacity:.7}.frbc-notif-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid rgba(160,180,210,.15);font-size:13px}.frbc-notif-option input{width:20px;height:20px;accent-color:#cda65a;flex-shrink:0}/* V14 : Social features are secondary to player identity, career and collection.
   Compact, expandable panels placed below support in the profile. */
.frbc-profile-secondary{display:grid;gap:0;margin:12px 0 5px;border-top:1px solid rgba(148,175,202,.20)}
.frbc-profile-secondary .frbc-profile-fold{background:transparent!important;border:0!important;border-bottom:1px solid rgba(148,175,202,.18)!important;border-radius:0!important;padding:0!important;margin:0!important;box-shadow:none!important;color:#bed2e5}
.frbc-profile-fold > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:13px 3px;font:600 13px/1.3 system-ui,-apple-system,Arial;color:#c6d9ec;min-height:44px;user-select:none}
.frbc-profile-fold > summary::-webkit-details-marker{display:none}
.frbc-profile-fold > summary > span:first-child{width:22px;text-align:center;font-size:17px;color:#95b2cc}
.frbc-profile-fold > summary:after{content:'⌄';margin-left:auto;font-size:19px;line-height:1;color:#829db8;transition:transform .18s ease}
.frbc-profile-fold[open] > summary:after{transform:rotate(180deg)}
.frbc-profile-fold > summary:hover{color:#fff}
.frbc-profile-fold > summary:focus-visible{outline:2px solid #a9d4f5;outline-offset:-2px;border-radius:5px}
.frbc-profile-fold-content{padding:0 4px 14px 34px;color:#bbccdc;font-size:12px}
.frbc-profile-fold-content > p{margin:0 0 10px!important;color:#9fb6cd;font-size:12px;line-height:1.45}
.frbc-profile-fold .frbc-notif-option{min-height:43px;padding:8px 0;font-size:12px;color:#c4d5e5}
.frbc-profile-fold .frbc-notif-option input{width:17px;height:17px;accent-color:#d1aa65}
.frbc-profile-fold #frbc-notif-feedback{display:block;padding-top:9px;font-size:11px;color:#91a8be}
@media(max-width:680px){.frbc-profile-secondary{margin-top:10px}.frbc-profile-fold-content{padding-left:12px;padding-right:4px}.frbc-profile-fold > summary{font-size:12px}.frbc-profile-fold .frbc-notif-option{font-size:12px;gap:14px}}
@media(prefers-reduced-motion:reduce){.frbc-profile-fold > summary:after{transition:none}}


/* V27.19: only notification geometry changes; the validated blue card palette is preserved. */
body .frbc-notification-root,body.frbc-mobile-ui .frbc-notification-root{position:fixed;z-index:3100;top:max(12px,env(safe-area-inset-top))!important;left:max(12px,env(safe-area-inset-left))!important;right:auto!important;bottom:auto!important;width:min(350px,calc(100vw - 24px))!important;max-height:min(46dvh,350px)!important;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:7px;pointer-events:none}
.frbc-player-notice{position:relative;pointer-events:auto;display:grid;grid-template-columns:1fr;gap:7px;padding:11px 30px 11px 12px;border:1px solid #578bab;border-radius:13px;background:#153d5a;color:#f4faff;box-shadow:0 8px 24px #0006;font:12px/1.4 Inter,system-ui,Arial;flex:none}
.frbc-player-notice[hidden]{display:none!important}.frbc-notice-identity{display:flex;align-items:center;gap:9px}.frbc-notice-identity strong{display:block;font-size:13px;font-weight:800}.frbc-notice-identity small{display:block;color:#afccdf;font-size:12px;letter-spacing:1px}
.frbc-notice-avatar{display:grid;place-items:center;width:34px;height:34px;flex:none;font-size:20px;border:1px solid #8ac3e1;border-radius:10px;background:linear-gradient(140deg,#076eaa,#063555);color:#e4f7ff}.frbc-notice-avatar-royal{background:linear-gradient(140deg,#907047,#2a263b)}.frbc-notice-avatar-carbon{background:linear-gradient(140deg,#556a7c,#131d2e)}.frbc-notice-avatar-sakura{background:linear-gradient(140deg,#a2497b,#302450)}
.frbc-notice-message{color:#dcecf6;overflow-wrap:anywhere}.frbc-notice-table{display:block;font-size:10px;color:#aecde1;margin-top:3px}
body .frbc-player-notice .frbc-notice-close{position:absolute;top:4px;right:4px;padding:0;width:24px;height:24px;min-height:24px;border:0;background:transparent;color:#d8edfa;font:22px/1 Arial;cursor:pointer}
body .frbc-player-notice .frbc-notice-action,.frbc-notice-history{pointer-events:auto;justify-self:start;min-height:30px;border:1px solid #8ebdd9;border-radius:7px;background:#245d84;color:#f4faff;font:700 11px system-ui;padding:5px 10px;cursor:pointer}.frbc-notice-history{align-self:flex-start}.frbc-notice-history[hidden]{display:none!important}
.frbc-player-notice button:focus-visible,.frbc-notice-history:focus-visible{outline:2px solid white;outline-offset:2px}
@media(orientation:landscape) and (max-height:540px){body .frbc-notification-root,body.frbc-mobile-ui .frbc-notification-root{width:min(300px,45vw)!important;max-height:44dvh!important}.frbc-player-notice{padding:8px 28px 8px 9px;gap:4px}}

.frbc-notice-actions{display:flex;gap:8px;flex-wrap:wrap}.frbc-notice-actions [data-invitation-response=accept]{background:#b9e2ff!important;color:#0b2f49!important}


/* original: frbc-pc-landscape-trial.css */
/* Desktop geometry bridge only; the retired PC comparison rail has been removed. */
@media (min-width: 980px) and (pointer: fine){
 html.frbc-pc-horizontal {
  --frbc-pc-right: clamp(188px, min(19vw, 33dvh), 294px);
  --frbc-pc-score-top: max(10px, env(safe-area-inset-top));
  --frbc-pc-score-height: 74px;
  --frbc-pc-actions-height: 84px;
  --frbc-pc-actions-top: calc(var(--frbc-pc-score-top) + var(--frbc-pc-score-height) + 8px);
  --frbc-pc-gutter: clamp(9px, 1.25vw, 26px);
 }
 html.frbc-pc-horizontal .topbar{padding:0;display:contents}
 html.frbc-pc-horizontal .topbar .brand{
  position:fixed;left:clamp(14px,2vw,32px);top:clamp(14px,2vw,23px);z-index:8;
  padding:7px 11px;border:1px solid #6c9cbd7d;border-radius:8px;
  background:#0b2039dc;backdrop-filter:blur(8px);font-size:11px
 }
 html.frbc-pc-horizontal .topbar .match-score{
  position:fixed;right:var(--frbc-pc-gutter);top:var(--frbc-pc-score-top);
  width:var(--frbc-pc-right);min-width:0;z-index:8;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:4px;
  padding:9px 9px 7px;border:1px solid #70b6ef85;border-radius:12px;
  background:#102c4eeb;box-shadow:0 6px 24px #0005;
 }
 html.frbc-pc-horizontal .match-score strong{font:24px Georgia,serif;letter-spacing:1px}
 html.frbc-pc-horizontal .match-score .player{font-size:9px;min-width:0}
 html.frbc-pc-horizontal .match-score .player span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
 html.frbc-pc-horizontal .match-score>small{font-size:8px;letter-spacing:.3px}
 html.frbc-pc-horizontal .round-progress{display:none}
 html.frbc-pc-horizontal .topbar .top-actions{
  position:fixed;right:var(--frbc-pc-gutter);top:var(--frbc-pc-actions-top);
  width:var(--frbc-pc-right);z-index:8;display:flex;flex-wrap:wrap;
  justify-content:flex-end;gap:5px;pointer-events:auto
 }
 html.frbc-pc-horizontal .topbar #hud-wallet{order:-1;flex:1 1 100%;width:100%;min-width:0;
  display:flex;align-items:center;justify-content:center;gap:12px;min-height:43px;
  border:1px solid #80c3f5;border-radius:10px;background:#194b79e8}
 html.frbc-pc-horizontal .topbar .wallet-button small{font-size:10px;letter-spacing:1px}
 html.frbc-pc-horizontal .topbar #menu-button{display:none}
 html.frbc-pc-horizontal .topbar .account-hud,
 html.frbc-pc-horizontal .topbar .language-button{max-height:30px;padding:3px 9px!important;min-height:27px!important}
 html.frbc-pc-horizontal .room-note,html.frbc-pc-horizontal .side-stats,
 html.frbc-pc-horizontal .view-switch{display:none}







 html.frbc-pc-horizontal #game-dock{
  left:clamp(12px,4vw,72px);right:auto;
  bottom:max(9px,env(safe-area-inset-bottom));transform:none;
  width:min(960px,calc(100vw - var(--frbc-pc-right) - var(--frbc-pc-gutter) - clamp(42px,6vw,100px)));
  max-width:none;max-height:min(26dvh,205px);overflow-y:auto;overscroll-behavior:contain;
  display:grid;grid-template-columns:minmax(130px,1fr) auto;
  gap:7px 10px;padding:10px 13px;background:#0b243bc9;
  border:1px solid #5e99c374;border-radius:13px;box-shadow:0 6px 24px #0006;
 }
 html.frbc-pc-horizontal #game-dock .turn-info{min-width:0;max-width:420px}
 html.frbc-pc-horizontal #game-dock .turn-info h1{font:700 clamp(14px,1.25vw,19px)/1.25 Arial,sans-serif;margin:4px 0}
 html.frbc-pc-horizontal #game-dock .turn-info p{font-size:clamp(11px,.9vw,14px);white-space:normal}
 html.frbc-pc-horizontal #game-dock .dock-actions{grid-column:2;grid-row:1;justify-content:flex-end}
 html.frbc-pc-horizontal #game-dock .dock-actions .primary{font-size:clamp(11px,1vw,14px);padding:13px 18px;
  background:linear-gradient(120deg,#f2f8ff,#9dd5ff);color:#092744;
  border:1px solid #c8edff;border-radius:9px;min-height:44px}
 html.frbc-pc-horizontal #game-dock .dock-actions .subtle{border-color:#6b9dc0;border-radius:9px}
 html.frbc-pc-horizontal #game-dock .dice-values{grid-column:1;grid-row:2;align-items:center}
 html.frbc-pc-horizontal #game-dock .dock-secondary{grid-column:1/-1;padding-top:5px;font-size:10px}
 html.frbc-pc-horizontal #game-dock .frbc-multiplayer-actions{grid-column:1/-1;grid-row:auto;justify-content:flex-end;margin:0}
 html.frbc-pc-horizontal #moves-panel{right:calc(var(--frbc-pc-gutter) + var(--frbc-pc-right) + 15px);bottom:min(200px,28dvh);max-height:55dvh;overflow:auto}

}
@media (min-width: 980px) and (pointer:fine) and (max-height:690px){

 html.frbc-pc-horizontal #game-dock{bottom:8px;padding:7px 10px}
 html.frbc-pc-horizontal .topbar .top-actions{gap:3px}
}
@media (min-width: 980px) and (pointer:fine){
}
/* V20.1 - final adaptable desktop constraints, no 3D camera or solo rules changed. */
@media (min-width:980px) and (pointer:fine){



}
@media (min-width:980px) and (pointer:fine) and (max-height:590px){

 html.frbc-pc-horizontal #game-dock{gap:3px 6px;padding:7px 10px}
}

/* FRBC V27 — Desktop landscape: restore the original left-hand club header and camera switch.
   Desktop only; keeps the V20 horizontal HUD, board, scene and mobile unchanged. */
@media (min-width: 980px) and (pointer: fine){
 html.frbc-pc-horizontal .topbar .brand{
  left:clamp(18px,2.7vw,52px);
  top:clamp(16px,2.3vw,42px);
  padding:0;
  gap:clamp(12px,1.5vw,26px);
  max-width:min(490px,calc(100vw - var(--frbc-pc-right) - 110px));
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  font-size:clamp(12px,.9vw,18px);
  font-weight:600;
  letter-spacing:clamp(2px,.24vw,4px);
  line-height:1.6;
  text-shadow:0 2px 12px #0008;
 }
 html.frbc-pc-horizontal .topbar .brand .brand-logo{
  width:clamp(65px,5.5vw,104px);
  height:clamp(65px,5.5vw,104px);
  border-radius:clamp(13px,1vw,22px)!important;
  border:1px solid #8daec2a0!important;
  background:#06121ecc!important;
  box-shadow:0 8px 22px #0007;
 }
 html.frbc-pc-horizontal .topbar .brand small{
  font-size:clamp(9px,.61vw,12px);
  letter-spacing:clamp(3px,.37vw,7px);
  margin-top:3px;
  color:#f0f5fa;
 }
 html.frbc-pc-horizontal .view-switch{
  display:flex;
  position:fixed;
  top:clamp(124px,10.6vw,196px);
  left:clamp(18px,2.7vw,52px);
  right:auto;
  z-index:16;
  gap:5px;
  align-items:center;
  transform:none;
  margin:0;
  padding:7px;
  max-width:calc(100vw - var(--frbc-pc-right) - 95px);
  white-space:nowrap;
  border-radius:9px;
  border:1px solid #709fc180;
  background:#0d1e30dc;
  backdrop-filter:blur(12px);
  box-shadow:0 8px 28px #0005;
  pointer-events:auto;
 }
 html.frbc-pc-horizontal .view-switch button{
  min-height:clamp(42px,3.5vw,70px);
  padding:clamp(9px,1vw,19px) clamp(10px,1.4vw,30px);
  border-radius:6px;
  color:#d7e4f2;
  font-size:clamp(10px,.92vw,17px);
  letter-spacing:.2px;
  touch-action:manipulation;
 }
 html.frbc-pc-horizontal .view-switch button.active,
 html.frbc-pc-horizontal .view-switch button:hover{
  background:#344b5f;
  color:#fff;
 }
}
@media (min-width: 980px) and (pointer: fine) and (max-height: 680px){
 html.frbc-pc-horizontal .topbar .brand{top:13px}
 html.frbc-pc-horizontal .view-switch{top:112px;padding:4px}
 html.frbc-pc-horizontal .view-switch button{min-height:38px;padding:8px 10px}
}


/* original: frbc-responsive-autofit.css */
/* FRBC V20.1 – Fluid-fit HUD overlay only; model geometry/camera untouched.
   Source principles: fluid scaling, safe areas, screen aspect ratios and orientation. */
html { --frbc-fit-gap: clamp(5px, .7vw, 13px); }
html.frbc-mobile-ui #mobile-ui {
  /* 100dvh follows the browser's dynamic toolbar on iPhone and Android. */
  max-width: 100%;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
html.frbc-mobile-ui #mobile-ui .mobile-summary,
html.frbc-mobile-ui #mobile-ui .mobile-play,
html.frbc-mobile-ui #mobile-ui .mobile-guidance,
html.frbc-mobile-ui #mobile-ui .mobile-actions { min-width:0;box-sizing:border-box; }
html.frbc-mobile-ui #mobile-ui .mobile-score,
html.frbc-mobile-ui #mobile-ui .mobile-wallet,
html.frbc-mobile-ui #mobile-ui .mobile-primary-copy {min-width:0;max-width:100%;}
html.frbc-mobile-ui #mobile-ui .mobile-sheet {
  box-sizing:border-box;
  max-width:calc(100vw - max(14px, env(safe-area-inset-left) + env(safe-area-inset-right)));
  overscroll-behavior:contain;
}
/* Vertical is the approved, playable main layout: only adjust compact command rail. */
@media (orientation:portrait){
 html.frbc-mobile-ui:not(.mobile-intro):not(.mobile-decor-expanded) #mobile-ui .mobile-play > .mobile-rail{
  max-height:min(74dvh,calc(100dvh - 185px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-width:none;
  row-gap:clamp(4px,.9dvh,9px);
 }
 html.frbc-mobile-ui:not(.mobile-intro) #mobile-ui .mobile-play > .mobile-rail::-webkit-scrollbar{display:none}
 html.frbc-mobile-ui:not(.mobile-intro) #mobile-ui .mobile-rail .mobile-tool{min-height:44px;touch-action:manipulation}
}
/* V20.2: iPhone landscape regression fix.
   The new V20.1 max-height + overflow-y:auto hid bottom command rows on Safari.
   Preserve V19/V20 landscape geometry and all existing buttons; no camera changes.
   V19 already controls two columns, gaps and labels in frbc-iphone-layout-v19.css. */
/* Pop-up notifications must not block touch targets or use a permanent bell. */
.frbc-notif-bell{display:none!important}
.frbc-notification-root{max-width:calc(100vw - 2*max(8px,env(safe-area-inset-right)));max-height:min(48dvh,330px);overflow:hidden;}
@media (max-width:850px) and (orientation:landscape){
 .frbc-mobile-ui .frbc-notification-root{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));}
}
@media (prefers-reduced-motion:reduce){
 .frbc-toast{animation:none!important;transition:none!important}
}


/* original: frbc-landscape-fixes-v204.css */
/* FRBC V20.4: Mobile-landscape-only refinements. No camera, model or portrait CSS changes. */
@media (orientation:landscape) and (max-height:500px){
 /* The camera toolbar has no screen-wide modal/backdrop: touches reach the 3D scene. */
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-controls {
  display:contents;pointer-events:none;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-hint {
  position:fixed;top:max(7px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));
  z-index:15;padding:5px 10px;max-width:min(46vw,310px);
  color:#e7f5ff;background:#0c2844cf;border:1px solid #7fb4dc8c;border-radius:8px;
  font:600 clamp(10px,1.65vw,12px)/1.2 Arial,sans-serif;pointer-events:none;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-buttons {
  position:fixed;right:max(8px,env(safe-area-inset-right));bottom:max(7px,env(safe-area-inset-bottom));
  z-index:15;display:flex;gap:6px;pointer-events:none;max-width:min(47vw,330px);
 }
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-buttons button {
  flex:1 1 auto;min-width:0;min-height:42px;padding:8px 12px;
  background:#103458ed;border:1px solid #92c9ef;border-radius:9px;color:#f5fbff;
  font:700 clamp(11px,1.75vw,13px)/1.1 Arial,sans-serif;pointer-events:auto;
  box-shadow:0 4px 12px #0007;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-save {
  background:#256ca4!important;border-color:#d1ecff!important;
 }
 /* The old fullscreen return button is never part of camera editing. */
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .mobile-scene-toggle,
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .mobile-scene-explore {display:none!important;}
 /* Two-column dock: fit ACTUAL visible buttons to the free space between HUD and action bar. */
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-play > .mobile-rail {
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:repeat(var(--frbc-dock-rows,4),minmax(0,1fr))!important;
  grid-auto-rows:minmax(0,1fr)!important;
  width:clamp(116px,19vw,160px)!important;
  height:var(--frbc-dock-height,196px)!important;max-height:none!important;
  min-height:0!important;overflow:visible!important;align-content:stretch!important;
  justify-content:stretch!important;gap:4px!important;padding:2px!important;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-play > .mobile-rail .mobile-tool,
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-play > .mobile-rail #mobile-menu {
  box-sizing:border-box!important;height:100%!important;max-height:none!important;
  min-height:0!important;min-width:0!important;width:100%!important;
  padding:2px!important;gap:1px!important;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-play > .mobile-rail .mobile-tool svg {
  width:clamp(17px,3.8dvh,23px)!important;height:clamp(17px,3.8dvh,23px)!important;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-play > .mobile-rail .mobile-tool-label {
  font-size:clamp(7px,1.7dvh,9px)!important;
 }
}
/* Hidden editor controls never occupy desktop, tablet, or portrait space. */
#mobile-ui .frbc-camera-edit-controls[hidden]{display:none!important;}

/* FRBC V22 — only the REAL iPhone landscape 3D overlay is affected. */
@media (orientation: landscape) and (max-height: 500px) {
 /* Release the dock on the right: move Undo / Validate turn to the bottom LEFT. */
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-actions {
  left:max(8px,env(safe-area-inset-left))!important;
  right:auto!important;
  width:clamp(190px,29vw,255px)!important;
  max-width:calc(100dvw - 24px)!important;
 }
 /* The optional coach/status must sit ABOVE the relocated action buttons. */
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-guidance .mobile-status {
  left:max(8px,env(safe-area-inset-left))!important;
  right:auto!important;
  bottom:max(57px,calc(env(safe-area-inset-bottom) + 55px))!important;
  width:min(200px,26vw)!important;
  max-height:38px!important;
 }
 /* Keep the dice on the right, independently of the left-hand turn buttons. */
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-dice {
  right:max(8px,env(safe-area-inset-right))!important;
 }
 /* Non-blocking 4-way orbit control, only while editing the landscape camera. */
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-pad {
  position:fixed;right:max(8px,env(safe-area-inset-right));
  bottom:max(7px,env(safe-area-inset-bottom));
  width:136px;height:92px;z-index:16;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;
  pointer-events:auto;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-pad button {
  touch-action:none;user-select:none;-webkit-user-select:none;
  min-width:0;min-height:0;padding:0;border-radius:9px;
  border:1px solid #92c9ef;color:#f5fbff;background:#103458ee;
  box-shadow:0 2px 8px #0007;font:700 23px/1 Arial,sans-serif;
  pointer-events:auto;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-pad button:active {background:#287fb8;}
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-arrow-up {grid-column:2;grid-row:1;}
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-arrow-left {grid-column:1;grid-row:2;}
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-arrow-down {grid-column:2;grid-row:2;}
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-arrow-right {grid-column:3;grid-row:2;}
 /* The camera editor's save/cancel controls move to the LEFT, out of the pad. */
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-buttons {
  left:max(8px,env(safe-area-inset-left))!important;
  right:auto!important;
  bottom:max(7px,env(safe-area-inset-bottom))!important;
  width:clamp(188px,29vw,255px)!important;
  max-width:calc(100dvw - 170px)!important;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay.frbc-camera-editing #mobile-ui .frbc-camera-edit-buttons button {
  padding:6px 8px!important;min-height:42px!important;
 }
}
#mobile-ui .frbc-camera-edit-pad[hidden]{display:none!important;}


/* original: frbc-confirm.css */
.frbc-confirm-overlay{position:fixed;inset:0;z-index:5000;background:#061322b8;display:grid;place-items:center;padding:16px;backdrop-filter:blur(3px)}
.frbc-confirm-overlay section{width:min(370px,100%);border:1px solid #669bbe;border-radius:16px;background:#102e48;color:#fff;padding:22px;box-shadow:0 22px 70px #0008;font:14px/1.5 Inter,system-ui,Arial}
.frbc-confirm-overlay strong{display:block;letter-spacing:.09em;font-weight:700}.frbc-confirm-overlay p{color:#d4e6f2;margin:16px 0 22px}.frbc-confirm-overlay section>div{display:flex;justify-content:flex-end;gap:9px}.frbc-confirm-overlay button{min-height:42px;padding:10px 14px;border:0;border-radius:7px;background:#31546d;color:#fff;cursor:pointer;font:inherit}.frbc-confirm-overlay button[data-answer=yes]{background:#b5d5ea;color:#102e48;font-weight:700}.frbc-confirm-overlay button:focus-visible{outline:2px solid white;outline-offset:3px}


/* original: frbc-game-dock.css */
/* Shared dock rules extracted verbatim from the validated master. No scene/camera changes. */
/* style.css */
.game-dock{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);width:min(940px,calc(100% - 64px));display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:13px 24px;padding:21px 24px 13px;background:var(--panel);border:1px solid var(--line);box-shadow:0 12px 60px #0005;backdrop-filter:blur(24px);border-radius:5px}
.turn-info>span{font-size:8px;letter-spacing:2.5px;color:var(--gold)}
.turn-info p{font-size:10px;color:var(--muted);margin:0;line-height:1.6}
.dice-values{display:flex;gap:6px}
.dice-values button{height:35px;width:35px;background:#eeeae0;border:2px solid transparent;color:#132d45;border-radius:5px;font-size:24px;line-height:1}
.dice-values button.selected{border-color:var(--gold);box-shadow:0 0 0 3px #c7a77033}
.dice-values button.used{opacity:.22}
.dock-actions{display:flex;gap:7px;align-items:center}
.dock-secondary{border-top:1px solid var(--line);padding-top:12px;grid-column:1/4;display:flex;align-items:center;gap:13px;font-size:9px;color:var(--muted)}
.dock-secondary button{background:none;border:0;font-size:9px}
.dock-secondary b{color:var(--white);border:1px solid var(--line);border-radius:3px;padding:4px 7px;margin:0 6px}
.dock-secondary span{color:var(--muted)}
@media(max-width:1000px){.game-dock{width:calc(100% - 40px);gap:12px;padding:18px 18px 12px}
.turn-info p{max-width:280px}
.dock-actions .primary{padding:14px}
.turn-info h1{font-size:18px}}
@media(max-width:650px){.game-dock{bottom:12px;width:calc(100% - 24px);grid-template-columns:1fr auto;padding:14px;gap:10px}
.turn-info{grid-column:1/3}
.turn-info>span{font-size:7px}
.turn-info h1{font-size:18px;margin:6px 0}
.turn-info p{font-size:9px;max-width:none}
.dice-values{grid-column:1}
.dice-values button{height:30px;width:30px;font-size:23px}
.dock-actions{grid-column:2;gap:5px}
.dock-actions .primary{padding:12px 10px;font-size:9px}
.dock-secondary{grid-column:1/3;font-size:7px;gap:8px}
.dock-secondary button{font-size:7px}
.dock-secondary :is(#cube-button,#double-offer) span{display:none}}
/* premium-ui.css */

/* frbc-pc-landscape-trial.css */
@media (min-width: 980px) and (pointer: fine){html.frbc-pc-horizontal :is(#game-dock,#online-game-dock){
  left:clamp(12px,4vw,72px);right:auto;
  bottom:max(9px,env(safe-area-inset-bottom));transform:none;
  width:min(960px,calc(100vw - var(--frbc-pc-right) - var(--frbc-pc-gutter) - clamp(42px,6vw,100px)));
  max-width:none;max-height:min(26dvh,205px);overflow-y:auto;overscroll-behavior:contain;
  display:grid;grid-template-columns:minmax(130px,1fr) auto;
  gap:7px 10px;padding:10px 13px;background:#0b243bc9;
  border:1px solid #5e99c374;border-radius:13px;box-shadow:0 6px 24px #0006;
 }
html.frbc-pc-horizontal :is(#game-dock,#online-game-dock) .turn-info{min-width:0;max-width:420px}
html.frbc-pc-horizontal :is(#game-dock,#online-game-dock) .turn-info h1{font:700 clamp(14px,1.25vw,19px)/1.25 Arial,sans-serif;margin:4px 0}
html.frbc-pc-horizontal :is(#game-dock,#online-game-dock) .turn-info p{font-size:clamp(11px,.9vw,14px);white-space:normal}
html.frbc-pc-horizontal :is(#game-dock,#online-game-dock) .dock-actions{grid-column:2;grid-row:1;justify-content:flex-end}
html.frbc-pc-horizontal :is(#game-dock,#online-game-dock) .dock-actions .primary{font-size:clamp(11px,1vw,14px);padding:13px 18px;
  background:linear-gradient(120deg,#f2f8ff,#9dd5ff);color:#092744;
  border:1px solid #c8edff;border-radius:9px;min-height:44px}
html.frbc-pc-horizontal :is(#game-dock,#online-game-dock) .dock-actions .subtle{border-color:#6b9dc0;border-radius:9px}
html.frbc-pc-horizontal :is(#game-dock,#online-game-dock) .dice-values{grid-column:1;grid-row:2;align-items:center}
html.frbc-pc-horizontal :is(#game-dock,#online-game-dock) .dock-secondary{grid-column:1/-1;padding-top:5px;font-size:10px}
html.frbc-pc-horizontal :is(#game-dock,#online-game-dock) .frbc-multiplayer-actions{grid-column:1/-1;grid-row:auto;justify-content:flex-end;margin:0}}
@media (min-width: 980px) and (pointer:fine) and (max-height:690px){html.frbc-pc-horizontal :is(#game-dock,#online-game-dock){bottom:8px;padding:7px 10px}}
@media (min-width:980px) and (pointer:fine) and (max-height:590px){html.frbc-pc-horizontal :is(#game-dock,#online-game-dock){gap:3px 6px;padding:7px 10px}}
/* frbc-responsive-autofit.css */

/* frbc-landscape-fixes-v204.css */



/* original: frbc-pause.css */
/* The same blue-and-white pause card for solo members and human tables. */
#frbc-own-pause,#online-pause-modal{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:18px;background:#061727a8;backdrop-filter:blur(6px);overflow:auto}
#frbc-own-pause[hidden],#online-pause-modal[hidden]{display:none!important}
#frbc-own-pause .frbc-mp-pause-dialog,#online-pause-modal .frbc-pause-card{position:relative;width:min(420px,100%);max-height:calc(100dvh - 36px);overflow:auto;margin:auto;padding:28px;border:1px solid #77b8e1;border-radius:17px;background:linear-gradient(145deg,#163f60,#0a253e);box-shadow:0 20px 75px #0008;color:#f2f8ff;font-family:Inter,system-ui,Arial,sans-serif;text-align:left}
#frbc-own-pause h2,#online-pause-modal h2{margin:3px 25px 16px 0;font:700 29px/1.15 Georgia,serif;color:#fff}
#frbc-own-pause p,#online-pause-modal p{margin:0 0 16px;font:14px/1.5 Inter,system-ui,Arial,sans-serif;color:#d4e9f7}
#frbc-own-pause .frbc-pause-options,#online-pause-modal #online-pause-options{position:static;display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-start;margin:16px 0 20px;padding:0;background:none}
#frbc-own-pause .frbc-pause-options button,#online-pause-modal [data-online-pause]{min-height:42px;flex:1;border:1px solid #82c0e4;border-radius:9px;background:#245b82;color:#fff;font:700 14px Inter,system-ui,Arial;padding:10px 12px}
#frbc-own-pause #frbc-own-resume,#online-pause-modal .frbc-pause-resume{display:block;width:100%;min-height:45px;margin:10px 0;border:1px solid #bce6ff;border-radius:9px;background:linear-gradient(120deg,#eef9ff,#9bd3fa);color:#0b304b;font:700 14px Inter,system-ui,Arial;padding:12px}
#frbc-own-pause #frbc-own-leave,#online-pause-modal .frbc-pause-lobby{display:block;width:100%;min-height:43px;border:1px solid #79b3d8;border-radius:9px;background:#0b2b46;color:#eaf7ff;font:600 13px Inter,system-ui,Arial;padding:11px}
#online-pause-modal .frbc-pause-close{position:absolute;right:10px;top:9px;min-height:32px;width:32px;padding:0;border:0;border-radius:8px;background:#275a7a;color:white;font:25px/1 Arial;cursor:pointer}
#online-pause-modal button:disabled{opacity:.45;cursor:not-allowed}#online-pause-modal button:focus-visible,#frbc-own-pause button:focus-visible{outline:2px solid white;outline-offset:3px}
@media(orientation:landscape) and (max-height:540px){#online-pause-modal .frbc-pause-card,#frbc-own-pause .frbc-mp-pause-dialog{width:min(460px,100%);padding:19px 24px}#online-pause-modal h2,#frbc-own-pause h2{font-size:24px;margin-bottom:10px}#online-pause-modal p,#frbc-own-pause p{font-size:12px;margin-bottom:9px}#online-pause-modal #online-pause-options,#frbc-own-pause .frbc-pause-options{margin:9px 0 12px}}


/* original: frbc-chat.css */
#frbc-chat-open{position:fixed;z-index:2600;left:max(14px,env(safe-area-inset-left));top:180px;width:46px;height:43px;padding:9px;border:1px solid #a0d1ef;border-radius:11px;background:#153f60;color:#f1faff;cursor:pointer;box-shadow:0 5px 20px #001b3d66}#frbc-chat-open[hidden]{display:none}#frbc-chat-open svg{width:26px;height:26px}#frbc-chat-open b{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;border-radius:20px;background:#ed415c;color:#fff;font:700 11px/20px system-ui;padding:0 3px}
#frbc-chat-modal{position:fixed;inset:0;z-index:3400;display:grid;place-items:center;padding:14px;background:#031625aa;backdrop-filter:blur(5px)}#frbc-chat-modal[hidden]{display:none!important}.frbc-chat-card{box-sizing:border-box;width:min(520px,100%);max-height:calc(100dvh - 28px);height:min(620px,calc(100dvh - 28px));display:flex;flex-direction:column;padding:20px;border:1px solid #9ed1ef;border-radius:20px;color:#edf8ff;background:linear-gradient(145deg,#123d60,#0b243a);font:14px/1.4 Inter,system-ui,Arial,sans-serif;box-shadow:0 20px 70px #00152ba6}.frbc-chat-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}.frbc-chat-card header small{color:#a8d6f1;font-size:10px;letter-spacing:.12em}.frbc-chat-card h2{font:700 27px Georgia,serif;margin:3px 0 13px;color:white}.frbc-chat-card button,.frbc-chat-card select{border:1px solid #84b9db;border-radius:8px;background:#1d5278;color:#f4fbff;font:inherit;padding:8px;cursor:pointer}.frbc-chat-card #frbc-chat-close{font:26px/1 Arial;padding:3px 9px;align-self:flex-start}.frbc-chat-label{display:block;color:#d0e9f9;font-size:12px;margin:3px 0 5px}.frbc-chat-card select{width:100%;min-height:36px}.frbc-chat-card option{color:#102d44;background:#f0f8fd}#frbc-chat-thread{flex:1;min-height:65px;overflow:auto;overscroll-behavior:contain;margin:12px 0;padding:8px 5px;border-top:1px solid #87b2cf44;border-bottom:1px solid #87b2cf44;display:flex;flex-direction:column;gap:10px}.frbc-chat-message{align-self:flex-start;max-width:90%;border-radius:12px 12px 12px 2px;padding:9px 12px;background:#285477;color:#fff;overflow-wrap:anywhere}.frbc-chat-message.is-own{align-self:flex-end;border-radius:12px 12px 2px 12px;background:#dcefff;color:#163d5b}.frbc-chat-message strong{font-size:11px}.frbc-chat-message p{margin:4px 0;white-space:pre-wrap;font-size:14px;line-height:1.4}.frbc-chat-message time{display:block;font-size:10px;opacity:.75;text-align:right}.frbc-chat-empty{color:#beddf0;font-size:13px;margin:auto 8px}#frbc-chat-text{box-sizing:border-box;width:100%;resize:vertical;max-height:115px;min-height:55px;border:1px solid #a1cce6;border-radius:9px;background:#f3faff;color:#153c59;font:14px/1.4 Inter,system-ui,Arial;padding:10px}.frbc-chat-actions{display:flex;gap:8px;justify-content:space-between;margin-top:8px}.frbc-chat-actions #frbc-chat-send{background:#c4e6ff;color:#133751;font-weight:700;padding:9px 22px}#frbc-chat-status{margin:7px 0 0;min-height:16px;font-size:12px;color:#d5eafa}.frbc-chat-card button:disabled{opacity:.45;cursor:default}.frbc-chat-card :focus-visible{outline:2px solid white;outline-offset:2px}
@media(orientation:landscape) and (max-height:540px){#frbc-chat-open{top:130px;left:10px;width:40px;height:38px;padding:6px}.frbc-chat-card{padding:12px 18px}.frbc-chat-card h2{font-size:23px;margin-bottom:6px}.frbc-chat-card header small{display:none}#frbc-chat-text{min-height:40px;max-height:60px;padding:6px}#frbc-chat-thread{margin:6px 0}.frbc-chat-actions{margin-top:5px}.frbc-chat-actions button{padding:6px 10px}#frbc-chat-status{margin-top:3px}}

.frbc-chat-entry{display:inline-flex;align-items:center;justify-content:center;gap:6px;position:relative}.frbc-chat-entry svg{width:19px;height:19px;flex:none}.frbc-chat-entry b{min-width:17px;border-radius:12px;background:#ea415d;color:white;font:700 10px/17px system-ui}.frbc-chat-entry b[hidden]{display:none}.frbc-chat-entry[disabled]{opacity:.5}#frbc-chat-menu{width:100%;margin:10px 0;border:1px solid #94c5e5;border-radius:9px;padding:10px;background:#1b4e73;color:white}#frbc-chat-pause-proposal{width:100%;margin-top:9px;min-height:38px;border:1px solid #96c8e6;border-radius:9px;background:#245b82;color:white}#frbc-chat-mobile{position:relative}#frbc-chat-mobile svg{width:20px;height:20px}#frbc-chat-game{min-height:30px;padding:5px 9px}

#frbc-chat-emojis{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}#frbc-chat-emojis[hidden]{display:none}#frbc-chat-emojis button{height:36px;width:36px;display:grid;place-items:center;padding:5px;background:#1e567f;color:#f2faff}#frbc-chat-emojis svg,#frbc-chat-emoji-toggle svg{width:24px;height:24px}#frbc-chat-emoji-toggle{display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px}.frbc-chat-emoji{display:inline-grid;vertical-align:middle;width:28px;height:28px;place-items:center;background:#1a527c;color:#fff;border:1px solid #aad8fa;border-radius:50%;margin:0 2px}.frbc-chat-emoji svg{width:23px;height:23px}.frbc-chat-actions{flex-wrap:wrap}.frbc-chat-actions button{font-size:12px}.frbc-chat-actions #frbc-chat-send{margin-left:auto}#online-pause-modal .frbc-pause-card{overflow:auto;max-height:calc(100dvh - 28px)}

/* Chat stays in the bottom command bar. Portrait uses the left envelope only. */
#frbc-chat-modal{position:fixed;inset:auto;left:14px;right:auto;bottom:14px;z-index:3400;display:block;padding:0;background:none;backdrop-filter:none;width:min(520px,calc(100vw - 28px))}
#frbc-chat-modal .frbc-chat-card{width:100%;height:min(400px,65dvh);max-height:calc(100dvh - 28px)}
#frbc-chat-modal.is-docked{position:static;inset:auto;width:auto;flex:1;min-width:150px;z-index:auto}
#frbc-chat-modal.is-docked .frbc-chat-card{height:220px;max-height:40dvh;min-height:100px;padding:9px 12px;box-shadow:none;border-radius:9px}
#frbc-chat-modal.is-docked header h2{font:700 15px system-ui;margin:0}#frbc-chat-modal.is-docked header small{display:none}
#frbc-chat-modal.is-docked header{min-height:22px}#frbc-chat-modal.is-docked #frbc-chat-close{font-size:19px;padding:0 6px}
#frbc-chat-modal.is-docked .frbc-chat-label{display:none}#frbc-chat-modal.is-docked #frbc-chat-room{min-height:25px;padding:3px;font-size:11px;margin-top:4px}
#frbc-chat-modal.is-docked #frbc-chat-thread{margin:5px 0;padding:3px;min-height:38px}
#frbc-chat-modal.is-docked .frbc-chat-message{padding:4px 8px;max-width:95%}#frbc-chat-modal.is-docked .frbc-chat-message p{font-size:12px;margin:2px 0}
#frbc-chat-modal.is-docked form{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
#frbc-chat-modal.is-docked #frbc-chat-text{flex:1;width:100px;min-width:100px;height:34px;min-height:34px;max-height:70px;resize:none;padding:6px;font-size:12px}
#frbc-chat-modal.is-docked .frbc-chat-actions{margin:0;flex-wrap:nowrap;gap:4px}
#frbc-chat-modal.is-docked .frbc-chat-actions button{padding:5px;min-height:30px;font-size:11px}
#frbc-chat-modal.is-docked #frbc-chat-pause{font-size:0;padding:5px}#frbc-chat-modal.is-docked #frbc-chat-pause:after{content:'⏸';font-size:14px}
#frbc-chat-modal.is-docked #frbc-chat-emoji-toggle span{display:none}#frbc-chat-modal.is-docked #frbc-chat-emoji-toggle svg{width:18px;height:18px}
#frbc-chat-modal.is-docked #frbc-chat-status{font-size:10px;margin-top:3px;min-height:0}
#frbc-chat-modal.is-collapsed header,#frbc-chat-modal.is-collapsed #frbc-chat-room,#frbc-chat-modal.is-collapsed #frbc-chat-thread,#frbc-chat-modal.is-collapsed #frbc-chat-status{display:none}
#frbc-chat-modal.is-collapsed .frbc-chat-card{height:auto;min-height:0;max-height:none;padding:4px 7px}
#frbc-chat-modal.is-docked #frbc-chat-emojis{flex-basis:100%;margin:0}
.dock-secondary:has(#frbc-chat-modal.is-docked){flex-wrap:wrap;align-items:center;gap:8px}
@media(max-width:600px) and (orientation:portrait){#frbc-chat-game{display:none!important}#frbc-chat-modal{bottom:max(12px,env(safe-area-inset-bottom));left:12px;width:calc(100vw - 24px)}#frbc-chat-modal .frbc-chat-card{height:min(560px,75dvh)}#frbc-chat-open{left:10px;top:150px}}

@media(orientation:landscape) and (max-height:540px){#frbc-chat-modal.is-docked .frbc-chat-card{height:140px;max-height:40dvh}body.direct-room #online-game-dock:has(#frbc-chat-modal.is-docked:not(.is-collapsed)){max-height:60dvh}#frbc-chat-modal.is-docked .frbc-chat-message time{display:none}#frbc-chat-modal.is-docked .frbc-chat-card header{display:none}#frbc-chat-modal.is-docked:not(.is-collapsed) #frbc-chat-room{display:none}}

@media(orientation:landscape) and (max-height:540px){#frbc-chat-modal.is-docked .frbc-chat-card{position:relative}#frbc-chat-modal.is-docked .frbc-chat-card header{display:flex;position:absolute;right:4px;top:2px;z-index:2}#frbc-chat-modal.is-docked header h2{display:none}#frbc-chat-modal.is-docked header #frbc-chat-close{display:block;background:#1e5378;color:white}}

#frbc-chat-modal.is-docked:not(.is-collapsed){flex:1 0 100%}#frbc-chat-modal.is-docked .frbc-chat-card{position:relative}#frbc-chat-modal.is-docked #frbc-chat-emojis:not([hidden]){position:absolute;bottom:45px;right:7px;z-index:5;max-width:calc(100% - 14px);padding:7px;border:1px solid #a5cee8;border-radius:9px;background:#153f60;box-shadow:0 4px 20px #001b3d66}#frbc-chat-modal.is-collapsed #frbc-chat-status:not(:empty){display:block}#frbc-chat-modal.is-docked #frbc-chat-pause:after{content:"Ⅱ";font-family:Arial,sans-serif}
@media(orientation:landscape) and (max-height:540px){#frbc-chat-modal.is-docked .frbc-chat-card{height:130px}#frbc-chat-modal.is-docked #frbc-chat-status{font-size:9px;line-height:1.1}#frbc-chat-modal.is-docked #frbc-chat-emojis button{width:30px;height:30px;padding:3px}}

[data-frbc-chat-entry].is-chat-disabled{opacity:.5;filter:grayscale(1)}

/* V27.22 — only landscape HUD/chat and the portrait chat overlay.
   The PC classic selectors, cameras, board and portrait game layout stay intact. */
@media (orientation:landscape) and (min-width:700px){
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .brand{
  left:28px;top:30px;gap:14px;padding:0;font-size:11px;letter-spacing:2px;
  max-width:280px;line-height:1.5;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .brand .brand-logo{
  width:54px;height:54px;border-radius:12px!important;box-shadow:0 6px 24px #050e1a90;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .brand small{
  font-size:8px;letter-spacing:4px;margin-top:3px;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .view-switch{
  left:28px;top:120px;padding:5px;gap:4px;border-radius:4px;
  width:max-content;max-width:calc(100vw - var(--frbc-pc-right) - 55px);
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .view-switch button{
  min-height:36px;padding:10px 12px;border-radius:3px;font-size:11px;letter-spacing:0;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .view-switch #frbc-chat-open{
  position:relative;inset:auto;z-index:auto;flex:none;width:36px;height:36px;
  min-height:36px;padding:7px;border:1px solid #87b2cf77;border-radius:4px;
  background:#153f60;box-shadow:none;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) #frbc-chat-open svg{width:21px;height:21px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .match-score{
  left:50%;right:auto;top:22px;transform:translateX(-50%);width:360px;
  max-width:calc(100vw - 620px);min-width:260px;border-radius:4px;
  padding:10px 14px;gap:6px 12px;background:#101923e8;border-color:#7297b44f;
  box-shadow:0 8px 24px #0003;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .match-score strong{font:30px Georgia,serif;letter-spacing:2px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .match-score .player{font-size:10px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .match-score>small{font-size:8px;letter-spacing:1.5px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .score-readout small{font-size:7px;letter-spacing:1px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock){
  box-sizing:border-box;left:28px;right:auto;bottom:max(14px,env(safe-area-inset-bottom));
  width:min(940px,calc(100vw - var(--frbc-pc-right) - var(--frbc-pc-gutter) - 56px));
  transform:none;border-radius:5px;padding:16px 20px 12px;gap:9px 18px;
  background:#0b1e30ed;max-height:calc(100dvh - 190px);overflow-y:auto;
  grid-template-columns:minmax(0,1fr) auto auto;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .turn-info{
  min-width:0;max-width:none;grid-column:1;grid-row:1;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .turn-info h1{
  font:normal 22px/1.2 Georgia,serif;margin:7px 0;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .turn-info>span{font-size:8px;letter-spacing:2.5px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .turn-info p{font-size:10px;line-height:1.5}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .dice-values{grid-column:2;grid-row:1}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .dock-actions{grid-column:3;grid-row:1}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .dock-actions .primary{
  min-height:38px;padding:10px 14px;font-size:11px;border-radius:4px;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .dock-secondary{
  grid-column:1/-1;padding-top:10px;font-size:9px;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock):has(#frbc-chat-modal:not([hidden])){
  /* Grow upward instead of clipping the chat at the old 205px dock limit. */
  max-height:calc(100dvh - 180px);
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) #frbc-chat-modal.is-docked .frbc-chat-card{
  height:clamp(170px,28dvh,270px);max-height:none;min-height:150px;
 }
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) #frbc-chat-modal.is-docked #frbc-chat-thread{min-height:55px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) #frbc-chat-modal.is-docked .frbc-chat-message p{font-size:13px}
}
@media (orientation:landscape) and (min-width:700px) and (max-width:1100px){
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .brand{left:16px;top:18px;font-size:9px;gap:9px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .brand .brand-logo{width:42px;height:42px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .brand small{font-size:7px;letter-spacing:2px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .match-score{top:14px;width:270px;min-width:240px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .view-switch{left:16px;top:88px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) .view-switch button{font-size:10px;padding:8px}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock){left:16px;padding:10px 12px;width:calc(100vw - var(--frbc-pc-right) - var(--frbc-pc-gutter) - 32px)}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .turn-info h1{font-size:18px}
}
/* Actual mobile landscape: readable bottom chat, no hidden desktop dock parent. */
@media (orientation:landscape){
 html.frbc-mobile-ui #frbc-chat-open{
  left:max(10px,env(safe-area-inset-left));top:max(64px,calc(env(safe-area-inset-top) + 56px));
  width:40px;height:38px;padding:7px;border-radius:7px;
 }
 html.frbc-mobile-ui #frbc-chat-mobile{display:none!important}
 #frbc-chat-modal.is-landscape-chat{
  position:fixed;left:max(10px,env(safe-area-inset-left));right:auto;
  bottom:max(8px,env(safe-area-inset-bottom));width:min(520px,calc(100dvw - 190px - env(safe-area-inset-left) - env(safe-area-inset-right)));
  z-index:3400;margin:0;transform:none;
 }
 #frbc-chat-modal.is-landscape-chat .frbc-chat-card{
  height:min(210px,58dvh);max-height:calc(100dvh - 70px);min-height:140px;
  padding:8px 10px;border-radius:9px;box-shadow:0 8px 24px #00152b88;
 }
 #frbc-chat-modal.is-landscape-chat header{min-height:20px}
 #frbc-chat-modal.is-landscape-chat header small,
 #frbc-chat-modal.is-landscape-chat .frbc-chat-label{display:none}
 #frbc-chat-modal.is-landscape-chat h2{font:600 14px/1.2 system-ui;margin:0}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-close{font-size:20px;padding:0 5px}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-room{min-height:25px;padding:3px;font-size:11px;margin-top:3px}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-thread{min-height:30px;margin:4px 0;padding:3px;gap:5px}
 #frbc-chat-modal.is-landscape-chat .frbc-chat-message{padding:3px 7px}
 #frbc-chat-modal.is-landscape-chat .frbc-chat-message p{font-size:12px;margin:2px 0}
 #frbc-chat-modal.is-landscape-chat .frbc-chat-message time{display:none}
 #frbc-chat-modal.is-landscape-chat form{display:flex;gap:5px;align-items:center}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-text{flex:1;min-width:0;min-height:34px;height:34px;max-height:50px;resize:none;padding:6px;font-size:12px}
 #frbc-chat-modal.is-landscape-chat .frbc-chat-actions{margin:0;flex-wrap:nowrap;gap:4px}
 #frbc-chat-modal.is-landscape-chat .frbc-chat-actions button{padding:5px;min-height:32px;font-size:11px}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-emoji-toggle span{display:none}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-emoji-toggle svg{width:18px;height:18px}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-pause{font-size:0}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-pause:after{content:'Ⅱ';font:14px Arial}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-status{font-size:10px;min-height:0;margin:3px 0 0}
 #frbc-chat-modal.is-landscape-chat #frbc-chat-emojis:not([hidden]){
  position:absolute;bottom:52px;left:10px;right:10px;z-index:5;padding:6px;
  background:#153f60;border:1px solid #a5cee8;border-radius:8px;
 }
 /* Refine the indications without moving the approved mobile camera or controls. */
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro) #mobile-ui .mobile-status{
  font:10px/1.35 Inter,system-ui,Arial,sans-serif!important;border-radius:4px!important;
  padding:5px 8px!important;background:#0b1e30df!important;box-shadow:none!important;
 }
 html.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro) #mobile-ui .mobile-score{
  border-radius:4px!important;background:#101923e8!important;box-shadow:none!important;
 }
}
/* Portrait: only the chat changes; it opens over the current game/menu. */
@media (orientation:portrait){
 #frbc-chat-modal.is-portrait-chat{
  position:fixed;inset:0;left:0;bottom:0;width:100%;height:100dvh;
  box-sizing:border-box;display:grid;place-items:center;
  padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
  background:#031625aa;backdrop-filter:blur(5px);z-index:3400;
 }
 #frbc-chat-modal.is-portrait-chat .frbc-chat-card{
  width:min(520px,100%);height:min(560px,80dvh);max-height:100%;min-height:0;
 }
 html.frbc-mobile-ui #frbc-chat-mobile{display:none!important}
}
@media (orientation:landscape) and (min-width:700px){
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) body.direct-room.online-full-ui .topbar .match-score{left:50%;right:auto;transform:translateX(-50%)}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) body.direct-room #online-game-dock #game-tools{grid-column:3;grid-row:1}
 html.frbc-pc-horizontal:not(.frbc-mobile-ui) #frbc-chat-game{display:none}
}
html.frbc-mobile-ui #mobile-ui .mobile-play > .mobile-rail #frbc-chat-mobile{display:none!important}

/* V27.22 : enveloppe dans la barre mobile, PC inchangé. */
html.frbc-mobile-ui #frbc-chat-open{display:none!important}
html.frbc-mobile-ui #mobile-ui .mobile-rail #frbc-chat-mobile:not([hidden]){display:flex!important;flex-direction:column;align-items:center;justify-content:center;position:relative;order:100;flex-shrink:0;gap:2px}
html.frbc-mobile-ui #mobile-ui .mobile-rail #frbc-chat-mobile .mobile-tool-label{display:block!important;font:800 8px/1.15 Arial,sans-serif;text-align:center}
html.frbc-mobile-ui #mobile-ui .mobile-rail #frbc-chat-mobile b:not([hidden]){position:absolute;top:0;right:0;min-width:17px;font:700 10px/17px system-ui}
html.frbc-mobile-ui #mobile-ui .mobile-rail #frbc-chat-mobile[hidden]{display:none!important}

/* FRBC Oreo single-set / intro mail legacy overlay */
@media (hover:none) and (pointer:coarse) {
  /* Remove the obsolete floating left envelope, including during intro load.
     The Chat button in .mobile-rail is intentionally preserved. */
  #frbc-chat-open { display:none!important; visibility:hidden!important; pointer-events:none!important; }
}


/* original: frbc-auth.css */
#auth-password-row{display:flex;align-items:stretch;gap:7px}#auth-password-row[hidden],#auth-code-block[hidden]{display:none!important}#auth-password-row input{flex:1;min-width:0}#auth-password-toggle{flex:none;padding:6px 10px;border:1px solid #a4c8e5;border-radius:9px;background:#17476d;color:#fff;font:600 12px system-ui}#auth-code-block{margin:10px 0}#auth-code{font:700 24px/1.3 ui-monospace,monospace;letter-spacing:.22em;text-align:center}#auth-verify-open{font-size:12px}#auth-feedback{overflow-wrap:anywhere}#auth-feedback a{color:#c6eaff;text-decoration:underline}#auth-resend:disabled{opacity:.6;cursor:default}


/* original: frbc-mobile-home.css */
/* V27.22 : corrections limitées au menu et à la connexion sur téléphone. */
#menu-modal #welcome-title.frbc-member-title{display:flex;align-items:center;gap:13px;padding-right:38px;overflow-wrap:anywhere}
.frbc-member-title .frbc-welcome-copy{min-width:0}
.frbc-member-title .frbc-welcome-label{display:block;font-size:.48em;line-height:1.5;letter-spacing:0;color:#c5d8ec}
.frbc-member-title .frbc-welcome-name{display:block}
.frbc-member-title .frbc-welcome-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 52px;width:52px;height:52px;border-radius:15px;border:1px solid #addbff88;background:var(--avatar-background,linear-gradient(140deg,#076eaa,#063555));font-size:30px;line-height:1;color:#e4f7ff;text-shadow:0 2px 10px #0006}
/* Le menu mobile reçoit z-index:40 dans mobile-ui.css ; auth doit passer devant. */
html.frbc-mobile-ui #auth-modal,body.frbc-mobile-ui #auth-modal{z-index:120}
@media (pointer:coarse) and (max-width:1000px){
 #auth-modal{z-index:120}
 #auth-modal .auth-card input,#auth-modal .auth-card select,#menu-modal .menu-card select{font-size:16px!important}
 #auth-modal .auth-card{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:calc(100dvh - 16px)!important}
}
@media (pointer:coarse) and (orientation:landscape) and (max-width:1000px){
 #menu-modal{align-items:center!important;justify-content:center!important;padding:max(6px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important}
 #menu-modal .menu-card{width:min(850px,100%)!important;max-height:calc(100dvh - 12px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;padding:12px 18px!important;overflow-y:auto!important;overscroll-behavior:contain}
 #menu-modal .menu-card h2{font-size:24px!important;line-height:1.1!important;margin:6px 48px 10px 0!important}
 #menu-modal .menu-card h2 br{display:none}
 #menu-modal .menu-card h2 br:after{content:' '}
 #menu-modal .eyebrow{font-size:8px;letter-spacing:1.5px}
 #menu-modal .intro{display:none!important}
 #menu-modal .frbc-mode-picker{gap:8px;margin:8px 0!important}
 #menu-modal .frbc-mode{min-height:44px!important;padding:8px 12px!important;flex-direction:row!important;gap:10px!important;font-size:13px!important}
 #menu-modal .frbc-mode-icon{font-size:22px!important}
 #menu-modal .settings-row{padding:5px 0!important;font-size:12px}
 #menu-modal .settings-row select{min-height:34px;padding:5px 8px}
 #menu-modal .guide-setting small{display:inline;margin-left:10px}
 #menu-modal .audio-settings{margin:6px 0!important;padding:4px 0!important;gap:8px!important}
 #menu-modal .audio-settings label{font-size:11px}
 #menu-modal .menu-card>.primary,#menu-modal .menu-card>.outline{margin-top:8px!important;min-height:40px!important;padding:9px 12px!important}
 #menu-modal .menu-primary-actions{margin-top:8px!important;gap:8px!important}
 #menu-modal .menu-primary-actions button{min-height:42px!important;padding:8px 12px!important}
 #menu-modal .frbc-tour-menu{font-size:12px}
 #menu-modal .close-modal{top:8px;right:10px}
 #menu-modal .frbc-welcome-avatar{width:40px;height:40px;flex-basis:40px;font-size:24px;border-radius:11px}
}
#loading #frbc-opening-video,#loading #frbc-opening-poster{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:#000;pointer-events:none}
#loading #frbc-opening-video[hidden],#loading #frbc-opening-poster[hidden]{display:none!important}
@media (pointer:coarse) and (orientation:landscape) and (max-width:1000px){
 #menu-modal .menu-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:18px;align-content:start}
 #menu-modal .menu-card>*{grid-column:1/-1;min-width:0}
 #menu-modal .menu-card>.eyebrow{grid-row:1}
 #menu-modal .menu-card>#welcome-title{grid-row:2}
 #menu-modal .menu-card>.frbc-mode-picker{grid-column:1;grid-row:3/6;grid-template-columns:1fr;align-self:center}
 #menu-modal .menu-card>#level-row{grid-column:2;grid-row:3}
 #menu-modal .menu-card>.settings-row:has(#match-length){grid-column:2;grid-row:4}
 #menu-modal .menu-card>.guide-setting{grid-column:2;grid-row:5}
 #menu-modal .menu-card>.audio-settings{grid-row:6}
 #menu-modal .menu-card>#new-game{grid-column:1;grid-row:7}
 #menu-modal .menu-card>#frbc-tour-open{grid-column:2;grid-row:7}
 #menu-modal .menu-card>#resume-game:not([hidden]){grid-column:2;grid-row:7}
 #menu-modal:has(#resume-game:not([hidden])) .menu-card>#frbc-tour-open{grid-column:1/-1;grid-row:8}
}


/* original: frbc-screen-fit.css */
/* FRBC V27.22 — Surface dynamique complète du jeu, sans altérer les caméras.
   Le contenu interactif conserve les safe areas déjà prévues par mobile-ui.css. */
@media (pointer: coarse) {
  html.frbc-mobile-ui, html.frbc-mobile-ui body {
    width: 100%;
    height: 100%;
    min-height: 100%;
    margin: 0;
    overflow: hidden;
    background-color: #071321;
  }
  html.frbc-mobile-ui #world {
    position: fixed;
    left: 0;
    top: 0;
    width: 100vw;
    width: 100dvw;
    height: 100vh;
    height: 100dvh;
    max-width: none;
    margin: 0;
    padding: 0;
  }
  html.frbc-mobile-ui #mobile-ui {
    position: fixed;
    inset: 0;
    box-sizing: border-box;
    width: 100vw;
    width: 100dvw;
    height: 100vh;
    height: 100dvh;
    max-width: none;
    /* NE PAS réinitialiser padding : il protège les boutons de l'encoche. */
  }
}


/* original: frbc-shop-selection.css */
/* FRBC V27.22 · Selection and BG credit currency only; outside shop unchanged */
#shop-modal .shop-wallet{position:relative;padding-left:49px!important}
#shop-modal .frbc-wallet-coin{position:absolute;width:36px;height:36px;left:9px;top:50%;transform:translateY(-50%);border-radius:50%;object-fit:cover;box-shadow:0 3px 12px #0007}
#shop-modal .frbc-shop-selection{position:sticky;top:0;z-index:9;display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;margin:12px 0;padding:12px 16px;border:1px solid #c5a66794;border-radius:14px;background:linear-gradient(110deg,#142e49f7,#193f5cf7);backdrop-filter:blur(12px);box-shadow:0 7px 24px #0006;color:#fff}
#shop-modal .frbc-selection-copy{display:grid;gap:2px;min-width:0}
#shop-modal .frbc-selection-copy strong{font-size:14px;color:#fff}
#shop-modal .frbc-selection-copy span{font-size:12px;color:#e6d7b0}
#shop-modal .frbc-selection-copy small{font-size:10px;color:#c9d9e5}
#shop-modal .frbc-selection-total{margin-left:auto;display:flex;align-items:center;gap:9px}
#shop-modal .frbc-selection-total span{font-size:12px;color:#ccdded}
#shop-modal .frbc-selection-total strong{font-size:clamp(15px,2vw,24px);color:#fff;white-space:nowrap}
#shop-modal .frbc-selection-total img{width:33px;height:33px;object-fit:cover;border-radius:50%;box-shadow:0 2px 9px #0007}
#shop-modal #frbc-clear-selection{min-height:34px;padding:7px 11px;background:#0c2840;border:1px solid #92bdd7;border-radius:9px;font-size:11px;color:white;cursor:pointer}
#shop-modal #frbc-clear-selection:disabled{opacity:.4;cursor:default}
#shop-modal .shop-item{position:relative}
#shop-modal .frbc-shop-select{position:absolute;top:12px;right:11px;z-index:1;display:flex;align-items:center;gap:5px;padding:5px 7px;background:#071d35dd;border:1px solid #cbdfed80;border-radius:9px;color:#fff;cursor:pointer;font-size:10px;font-weight:700;box-shadow:0 2px 8px #0005}
#shop-modal .frbc-shop-select input{width:17px;height:17px;accent-color:#efc069;cursor:pointer;margin:0}
#shop-modal .shop-item-price strong{display:inline-flex;align-items:center;gap:5px}
#shop-modal .frbc-price-coin{width:21px;height:21px;object-fit:cover;border-radius:50%;box-shadow:0 2px 5px #0007}
@media(max-width:550px){#shop-modal .frbc-shop-selection{gap:7px;padding:9px 10px;top:0}#shop-modal .frbc-selection-copy small{display:none}#shop-modal .frbc-selection-total{margin-left:0}#shop-modal .frbc-selection-total img{width:26px;height:26px}#shop-modal .frbc-selection-total span{display:none}#shop-modal .frbc-shop-select{font-size:9px}#shop-modal .shop-wallet{padding-left:40px!important}#shop-modal .frbc-wallet-coin{width:30px;height:30px;left:6px}}
@media(prefers-reduced-motion:reduce){#shop-modal .frbc-shop-selection{backdrop-filter:none}}


/* original: frbc-panels.css */
/* FRBC V27.32 — additive, opt-in collapsible UI panels.
   Default approved layout/cameras/assets remain untouched. */
#game-dock .frbc-panels-toggle{
 position:absolute;right:0;top:-33px;z-index:15;min-height:30px;
 background:#0b2945e8;border:1px solid #91bbd9a0;border-radius:8px 8px 0 0;
 color:#ecf7ff;font:600 11px/1.1 system-ui,Arial,sans-serif;
 padding:6px 11px;cursor:pointer;touch-action:manipulation;
}
#game-dock .frbc-panels-toggle:focus-visible,
#frbc-online-panels-toggle:focus-visible{outline:2px solid #e6d09c;outline-offset:3px}
#game-dock.frbc-solo-focus{gap:5px 9px!important;padding:7px 12px!important;max-height:min(40dvh,165px)!important;overflow:visible!important}
#game-dock.frbc-solo-focus .turn-info p{display:none!important}
#game-dock.frbc-solo-focus .turn-info h1{font-size:clamp(12px,1.25vw,16px)!important;margin:2px 0!important}
#game-dock.frbc-solo-focus .turn-info>span{font-size:7px!important}
#game-dock.frbc-solo-focus .coach-strip,
#game-dock.frbc-solo-focus .frbc-multiplayer-actions{display:none!important}
#game-dock.frbc-solo-focus .dock-secondary{padding-top:2px!important;gap:7px!important}
#game-dock.frbc-solo-focus #cube-note{display:none!important}
body:has(#game-dock.frbc-solo-focus) #side-stats,
body:has(#game-dock.frbc-solo-focus) .room-note{display:none!important}
/* Online: preserve camera controls and core actions, hide only optional info. */
#frbc-online-panels-toggle{font:600 11px system-ui,Arial,sans-serif;padding:7px 10px;background:#0b2945e8;white-space:nowrap}
body.frbc-online-focus #match-status,
body.frbc-online-focus #pause-actions{display:none!important}
body.frbc-online-focus #scoreboard{opacity:.72;transform:scale(.78);transform-origin:top right}
body.frbc-online-focus #board-details:not([open]){display:none!important}
@media(max-width:767px){
 #game-dock .frbc-panels-toggle{top:-32px;min-height:29px;font-size:10px;padding:6px 10px}
 #game-dock.frbc-solo-focus{grid-template-columns:minmax(0,1fr) auto!important;gap:4px 8px!important;max-height:38dvh!important}
 #game-dock.frbc-solo-focus .turn-info{grid-column:1/-1!important}
 #game-dock.frbc-solo-focus .dice-values{grid-column:1!important}
 #game-dock.frbc-solo-focus .dock-actions{grid-column:2!important;gap:4px!important}
 #game-dock.frbc-solo-focus .dock-secondary{grid-column:1/-1!important}
 #game-dock.frbc-solo-focus .dock-secondary #cube-button,
 #game-dock.frbc-solo-focus .dock-secondary #moves-button{min-height:25px}
 #frbc-online-panels-toggle{font-size:10px;padding:5px 7px}
 #world-wrap .scene-controls{max-width:calc(100% - 20px);flex-wrap:wrap;justify-content:flex-end}
}
@media(max-height:520px) and (orientation:landscape){
 #game-dock.frbc-solo-focus{max-height:min(45dvh,165px)!important;overflow:visible!important}
 #game-dock .frbc-panels-toggle{top:-29px}
 body.direct-room.frbc-online-focus #game-tools{padding:3px;gap:4px}
}


/* original: frbc-clock.css */
.frbc-clock-option{gap:10px;cursor:pointer;align-items:center}.frbc-clock-option input{width:18px;height:18px;flex:0 0 18px}.frbc-clock-option span{font-size:12px;line-height:1.4}.frbc-clock-display{display:block;margin:6px 0;padding:7px 10px;border:1px solid #9bbacb;border-radius:9px;background:#102d49;color:#f1f8ff;font:600 12px/1.4 system-ui;white-space:normal;font-variant-numeric:tabular-nums}.frbc-clock-display[hidden]{display:none}.frbc-clock-display[data-urgent=true]{border-color:#f0b76b;color:#ffe0b0}

.frbc-clock-display{position:fixed;top:84px;right:14px;z-index:80;max-width:calc(100vw - 28px);box-shadow:0 3px 15px #0003}.frbc-clock-display[data-side=left]{right:auto;left:14px}
@media(max-width:600px){.frbc-clock-display{top:96px;font-size:11px;padding:5px 8px}}


/* original: frbc-v28-demo.css */
/* FRBC DEMO V28 — additive A/B UI only. NO portrait-mobile rules or game assets modified. */
#v28-mode-switch,#v28-rail,#v28-rail-handle,#v28-chat-handle,#v28-match-hint,#v28-online-shop,#v28-clock-indicator{display:none}
html.frbc-v28-available #v28-mode-switch{display:flex;position:fixed;z-index:85;top:clamp(76px,11vh,116px);left:50%;transform:translateX(-50%);align-items:center;gap:3px;max-width:calc(100vw - 24px);background:#071b2ae9;border:1px solid #9cc5e977;border-radius:10px;padding:4px;box-shadow:0 5px 20px #0008;color:#eff8ff;font:700 11px system-ui,sans-serif}
#v28-mode-switch .v28-label{letter-spacing:.1em;color:#accfe9;padding:4px 10px;white-space:nowrap}
#v28-mode-switch button{border:1px solid transparent;background:transparent;color:#def1ff;border-radius:7px;padding:7px 10px;font:700 11px system-ui;cursor:pointer;white-space:nowrap;min-height:28px}
#v28-mode-switch button[aria-pressed="true"]{color:#08243b;background:#b9dfff;border-color:#b9dfff}
#v28-mode-switch button:focus-visible,html.frbc-v28-demo [data-v28-command]:focus-visible{outline:2px solid #ffdf9c;outline-offset:2px}
html.frbc-v28-demo{--v28-right:184px;--v28-left:290px;--v28-pad:10px}
html.frbc-v28-demo #v28-rail{display:block;position:fixed;top:clamp(177px,21vh,216px);right:10px;width:var(--v28-right);padding:8px;border:1px solid #9bcbed9e;border-radius:11px;background:#071d32e6;box-shadow:0 8px 25px #0007;z-index:86;box-sizing:border-box;max-height:calc(100dvh - clamp(177px,21vh,216px) - 62px);overflow-y:auto;scrollbar-width:thin}
html.frbc-v28-demo #v28-rail .v28-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
html.frbc-v28-demo #v28-rail button{display:flex;flex-direction:column-reverse;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:51px;border:1px solid #83b9dd88;border-radius:8px;background:#164468e6;color:#effaff;font:700 19px/1 system-ui;cursor:pointer}
html.frbc-v28-demo #v28-rail button span{font:700 9px/1 system-ui;letter-spacing:.03em;color:#deeeff}
html.frbc-v28-demo #v28-rail .v28-camera-icon{width:22px;height:22px;flex:none}
html.frbc-v28-demo #v28-rail button:disabled{opacity:.37;cursor:not-allowed}
html.frbc-v28-demo #v28-view-choices:not([hidden]),html.frbc-v28-demo #v28-camera-choices:not([hidden]){display:flex;gap:4px;margin-top:7px}
html.frbc-v28-demo #v28-view-choices button,html.frbc-v28-demo #v28-camera-choices button{min-height:35px;flex:1;font-size:11px;white-space:nowrap}
html.frbc-v28-demo #v28-rail-handle{display:grid;place-items:center;position:fixed;z-index:87;top:clamp(151px,19vh,188px);right:10px;width:34px;height:27px;border:1px solid #9bcbed;border-radius:8px;background:#17496b;color:#fff;font-size:16px;cursor:pointer}
html.frbc-v28-demo.frbc-v28-rail-closed #v28-rail{display:none}
html.frbc-v28-demo.frbc-v28-rail-closed{--v28-right:36px}
html.frbc-v28-demo #v28-chat-handle{display:flex;align-items:center;justify-content:center;position:fixed;left:12px;top:clamp(140px,18vh,170px);z-index:86;border:1px solid #a3d6f2;border-radius:10px;background:#18476c;color:#fff;width:42px;height:38px;font-size:20px;cursor:pointer}
html.frbc-v28-demo #v28-chat-handle b{position:absolute;top:-7px;right:-7px;padding:2px 5px;border-radius:11px;background:#ed415c;color:white;font:700 11px system-ui}
html.frbc-v28-demo #v28-chat-handle b[hidden]{display:none}
html.frbc-v28-demo #frbc-chat-modal:not([hidden]){display:block!important;position:fixed!important;top:clamp(185px,23vh,212px)!important;left:10px!important;right:auto!important;bottom:60px!important;width:min(288px,31vw)!important;height:auto!important;padding:0!important;margin:0!important;background:none!important;backdrop-filter:none!important;z-index:88!important;border:0!important;transform:none!important}
html.frbc-v28-demo #frbc-chat-modal:not([hidden]) .frbc-chat-card{height:100%!important;max-height:100%!important;min-height:0!important;width:100%!important;padding:10px!important;border-radius:10px!important;font-size:12px!important}
html.frbc-v28-demo #frbc-chat-modal:not([hidden]) .frbc-chat-card h2{font:700 16px system-ui!important;margin:0 0 5px!important}
html.frbc-v28-demo #frbc-chat-modal:not([hidden]) #frbc-chat-thread{min-height:30px!important;overflow:auto}
html.frbc-v28-demo #frbc-chat-open{display:none!important}
html.frbc-v28-demo .frbc-notification-root{top:max(5px,env(safe-area-inset-top))!important;left:max(9px,env(safe-area-inset-left))!important;z-index:3100!important}
html.frbc-v28-demo #v28-match-hint:not([hidden]){display:block;position:fixed;z-index:68;bottom:74px;right:calc(var(--v28-right) + 18px);max-width:min(290px,45vw);padding:9px 11px;background:#0b2d49e3;border:1px solid #8fbee0;border-radius:9px;color:#f2faff;font:600 12px/1.3 system-ui;pointer-events:none;box-shadow:0 4px 15px #0006}
html.frbc-v28-demo #toast:not([hidden]){top:auto!important;bottom:114px!important;left:auto!important;right:calc(var(--v28-right) + 18px)!important;max-width:300px!important;z-index:68!important}
/* Score, shop and the existing clock remain visible and usable. */
html.frbc-v28-demo .topbar .match-score,html.frbc-v28-demo .topbar .top-actions,html.frbc-v28-demo #frbc-clock-display{visibility:visible!important}
html.frbc-v28-demo .frbc-pc-rail,html.frbc-v28-demo .frbc-pc-layout-toggle,html.frbc-v28-demo .frbc-pc-sessions{display:none!important}
html.frbc-v28-demo #game-dock{box-sizing:border-box!important;bottom:8px!important;left:10px!important;right:auto!important;width:max-content!important;max-width:calc(100vw - var(--v28-right) - 45px)!important;min-height:45px!important;max-height:70px!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:7px!important;padding:5px 9px!important;background:#091e35e8!important;border:1px solid #87b7d273!important;border-radius:11px!important}
html.frbc-v28-demo #game-dock .turn-info,html.frbc-v28-demo #game-dock #coach-strip,html.frbc-v28-demo #game-dock #cube-note{display:none!important}
html.frbc-v28-demo #game-dock :is(.dock-actions,.dice-values,.dock-secondary){grid-area:auto!important;display:flex!important;align-items:center!important;gap:5px!important;padding:0!important;margin:0!important}
html.frbc-v28-demo #game-dock :is(.dock-actions,.dock-secondary) button{min-height:34px!important;padding:6px 9px!important;font:700 11px system-ui!important;white-space:nowrap!important}
html.frbc-v28-demo #game-dock .frbc-multiplayer-actions[hidden]{display:none!important}
html.frbc-v28-demo #game-dock .frbc-multiplayer-actions:not([hidden]){display:flex!important;gap:4px!important;max-height:45px!important;overflow:auto}
html.frbc-v28-demo #game-dock .frbc-panels-toggle{display:none!important}
html.frbc-v28-demo #moves-panel:not([hidden]){position:fixed!important;right:calc(var(--v28-right) + 14px)!important;bottom:112px!important;max-height:45dvh!important;max-width:min(380px,55vw)!important;overflow:auto!important}
/* 27.35 orientation/camera buttons still exist and retain the gameplay handlers; V28 provides compact alternatives. */
html.frbc-v28-demo .view-switch,html.frbc-v28-demo #board-orientation-switch{display:none!important}
/* Mobile landscape pilot. Portrait remains under V27.35 styles, entirely unmodified. */
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay{--v28-right:122px}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-mode-switch{top:4px!important;transform:translateX(-50%) scale(.82);transform-origin:top center;z-index:90}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail{top:66px!important;right:5px!important;width:116px!important;max-height:calc(100dvh - 117px)!important;padding:5px!important;border-radius:9px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid{gap:4px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail button{min-height:37px!important;font-size:16px!important;gap:2px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail button span{font-size:8px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail-handle{top:38px!important;right:7px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-chat-handle{top:64px!important;left:6px!important;width:35px;height:32px}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #frbc-chat-modal:not([hidden]){top:102px!important;left:5px!important;bottom:48px!important;width:min(236px,29vw)!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #frbc-chat-modal:not([hidden]) .frbc-chat-card{padding:6px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #mobile-ui .mobile-play{grid-template-columns:minmax(0,1fr)!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #mobile-ui .mobile-rail{display:none!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #mobile-ui .mobile-summary{display:flex!important;max-width:calc(100vw - var(--v28-right) - 8px)!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #mobile-ui .mobile-guidance{bottom:45px!important;max-height:38px!important;overflow:hidden!important;padding:2px 5px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #mobile-ui .mobile-actions{bottom:4px!important;min-height:36px!important;padding:2px 5px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-match-hint:not([hidden]){bottom:51px!important;right:calc(var(--v28-right) + 9px)!important;font-size:10px!important;max-width:190px!important;padding:5px 7px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #toast:not([hidden]){bottom:92px!important;right:calc(var(--v28-right) + 9px)!important;font-size:10px!important;max-width:170px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-online-shop{top:6px!important;right:7px!important}
/* Network table has different native dock and scoreboard; keep real controls. */
html.frbc-v28-demo body.direct-room #online-game-dock{min-height:0!important;max-height:68px!important;overflow:auto!important;bottom:6px!important;padding:5px 8px!important}
html.frbc-v28-demo body.direct-room #online-game-dock .turn-info{display:none!important}
html.frbc-v28-demo #v28-online-shop{display:block;position:fixed;top:8px;right:10px;z-index:82;border:1px solid #a8d9ff;border-radius:9px;padding:7px 11px;background:#18476c;color:white;font:700 12px system-ui;cursor:pointer}
html.frbc-v28-demo #v28-clock-indicator:not([hidden]){display:block;position:fixed;top:46px;right:10px;z-index:80;padding:6px;border-radius:8px;background:#0b2439cf;color:white;font:600 11px system-ui}
html.frbc-v28-demo #v28-clock-indicator.v28-muted{opacity:.45;filter:grayscale(1)}
@media(max-height:520px) and (orientation:landscape){
 html.frbc-v28-demo #v28-mode-switch{top:2px;transform:translateX(-50%) scale(.76);transform-origin:top center}
 html.frbc-v28-demo #v28-rail{top:70px;max-height:calc(100dvh - 104px)}
 html.frbc-v28-demo #v28-rail button{min-height:36px}
 html.frbc-v28-demo #v28-rail-handle{top:37px}
 html.frbc-v28-demo #v28-chat-handle{top:65px}
 html.frbc-v28-demo #v28-match-hint:not([hidden]){bottom:54px}
}

/* Mobile game dock is never duplicated with native landscape action buttons. */
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #game-dock{display:none!important}

html.frbc-v28-demo #v28-clock-indicator[hidden]{display:none!important}

/* During the online lobby, the demo rail must not cover login or room selection. */
html.frbc-v28-demo:has(#game[hidden]) #v28-rail,html.frbc-v28-demo:has(#game[hidden]) #v28-rail-handle,html.frbc-v28-demo:has(#game[hidden]) #v28-match-hint{display:none!important}

/* V28.1R: surgical corrections, based exclusively on the V28.1 master.
   The existing bottom-left game dock, approved 3D camera and menu tile art
   are deliberately NOT modified here. */
#v28-chat-fold,#v28-sessions-panel{display:none}
html.frbc-v28-demo #v28-rail .v28-grid>[data-v28-command=rotate]{grid-column:1/-1;min-height:40px}
html.frbc-v28-demo #v28-rail [data-v28-command=chat]{position:relative}
html.frbc-v28-demo #v28-rail .v28-chat-badge:not([hidden]){position:absolute;top:1px;right:1px;display:grid;place-items:center;min-width:17px;height:17px;border-radius:50%;background:#e84b60;color:white;font:700 10px Arial}
html.frbc-v28-demo :is(#v28-chat-handle,#frbc-chat-open,#frbc-chat-game,#frbc-chat-mobile){display:none!important;visibility:hidden!important;pointer-events:none!important}

/* Match score + wallet on right. Original score/boutique visuals retained. */
html.frbc-v28-demo .topbar .match-score,
html.frbc-v28-demo.frbc-pc-horizontal .topbar .match-score,
html.frbc-v28-demo.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .match-score,
html.frbc-v28-demo body.direct-room.online-full-ui .topbar .match-score{
 position:fixed!important;top:10px!important;right:10px!important;left:auto!important;
 transform:none!important;width:min(344px,calc(100vw - 360px))!important;
 min-width:250px!important;max-width:none!important;z-index:83!important;
}
html.frbc-v28-demo .topbar .top-actions,html.frbc-v28-demo.frbc-pc-horizontal .topbar .top-actions{
 position:fixed!important;right:10px!important;left:auto!important;top:81px!important;
 width:184px!important;max-width:184px!important;display:flex!important;flex-wrap:wrap!important;
 justify-content:flex-end!important;gap:4px!important;z-index:83!important;
}
html.frbc-v28-demo .topbar #hud-wallet{order:-1!important;flex:1 1 100%!important;width:100%!important;max-width:100%!important;min-height:40px!important;border-radius:9px!important}
html.frbc-v28-demo .topbar #menu-button{display:none!important}
html.frbc-v28-available #v28-mode-switch{top:83px!important;left:12px!important;right:auto!important;transform:none!important}

/* Actual chat is mounted outside of dock, top-left vertical and playable. */
html.frbc-v28-demo #frbc-chat-modal:not([hidden]){
 display:block!important;position:fixed!important;top:133px!important;left:10px!important;
 right:auto!important;bottom:74px!important;width:min(300px,31vw)!important;
 height:auto!important;max-height:none!important;margin:0!important;padding:0!important;
 border:0!important;background:transparent!important;transform:none!important;
 z-index:200!important;pointer-events:none!important;
}
html.frbc-v28-demo #frbc-chat-modal:not([hidden]) .frbc-chat-card{
 width:100%!important;height:100%!important;max-height:100%!important;min-height:0!important;
 box-sizing:border-box!important;display:flex!important;flex-direction:column!important;
 padding:10px!important;border-radius:11px!important;pointer-events:auto!important;
 background:linear-gradient(145deg,#123d60f4,#0b243af6)!important;
 border:1px solid #9fd2ee!important;
}
html.frbc-v28-demo #frbc-chat-modal:not([hidden]) #frbc-chat-thread{flex:1 1 auto!important;min-height:30px!important;overflow:auto!important}
html.frbc-v28-demo #frbc-chat-modal:not([hidden]) #frbc-chat-form{flex:none!important;display:flex!important;flex-direction:column!important;gap:5px!important}
html.frbc-v28-demo #frbc-chat-modal:not([hidden]) #frbc-chat-text{width:100%!important;height:55px!important;min-height:48px!important;max-height:70px!important}
html.frbc-v28-demo #frbc-chat-modal:not([hidden]) .frbc-chat-actions{display:flex!important;flex-wrap:wrap!important;gap:5px!important}
html.frbc-v28-demo.frbc-v28-chat-open #v28-chat-fold{
 display:grid;place-items:center;position:fixed;left:calc(min(300px,31vw) + 10px);top:140px;
 z-index:201;width:29px;height:33px;padding:0;border:1px solid #9bcbed;
 border-radius:0 8px 8px 0;background:#17496b;color:#fff;font:700 16px Arial;cursor:pointer;
}
/* Compact information lower-right, same width as the RIGHT menu, collapsible. */
html.frbc-v28-demo #v28-match-hint:not([hidden]){
 display:flex!important;align-items:flex-start;gap:6px;position:fixed!important;
 left:auto!important;right:10px!important;bottom:10px!important;
 width:184px!important;max-width:184px!important;max-height:106px!important;
 box-sizing:border-box!important;overflow:auto!important;padding:9px 7px!important;
 border-radius:10px!important;z-index:87!important;pointer-events:auto!important;
}
html.frbc-v28-demo #v28-hint-text{flex:1;min-width:0;overflow-wrap:anywhere}
html.frbc-v28-demo #v28-hint-fold{flex:none;min-width:21px;height:22px;padding:0;border:1px solid #9bcbed;border-radius:6px;background:#20527b;color:#fff;cursor:pointer}
html.frbc-v28-demo #v28-match-hint.v28-hint-collapsed{width:38px!important;min-height:32px!important;justify-content:center;padding:4px!important}
html.frbc-v28-demo #v28-match-hint.v28-hint-collapsed #v28-hint-text{display:none}
html.frbc-v28-demo #toast:not([hidden]){
 position:fixed!important;top:auto!important;left:auto!important;right:10px!important;bottom:126px!important;
 width:184px!important;max-width:184px!important;box-sizing:border-box!important;z-index:87!important;
}
html.frbc-v28-demo .frbc-notification-root{top:auto!important;left:auto!important;right:10px!important;bottom:145px!important;max-width:184px!important}
html.frbc-v28-demo #frbc-clock-display:not([hidden]){left:auto!important;right:10px!important;top:160px!important;width:184px!important;max-width:184px!important;box-sizing:border-box!important}
html.frbc-v28-demo:has(#frbc-clock-display:not([hidden])) #v28-rail{top:218px!important;max-height:calc(100dvh - 230px)!important}
html.frbc-v28-demo:has(#frbc-clock-display:not([hidden])) #v28-rail-handle{top:191px!important}

/* Parties is an overlay, not a navigation back to the lobby. */
html.frbc-v28-demo #v28-sessions-panel:not([hidden]){
 display:block;position:fixed;right:calc(var(--v28-right) + 18px);top:182px;
 width:min(320px,36vw);max-height:calc(100dvh - 202px);overflow:auto;
 z-index:89;border:1px solid #9bcbed;border-radius:12px;background:#0b2844f4;
 padding:12px;color:#eff8ff;box-shadow:0 10px 28px #0008;font:12px/1.4 system-ui;
}
html.frbc-v28-demo #v28-sessions-panel header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:16px}
html.frbc-v28-demo #v28-sessions-panel p{margin:5px 0 9px;color:#c9e0f3}
html.frbc-v28-demo #v28-sessions-panel button{min-height:31px;padding:6px 9px;border:1px solid #83b9dd;border-radius:7px;background:#164468;color:white;font:700 11px system-ui;cursor:pointer}
html.frbc-v28-demo #v28-sessions-panel .v28-session{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid #9bcbed55}

/* Landscape phone sizes. Nothing here targets mobile portrait. */
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .match-score{
 top:4px!important;right:5px!important;left:auto!important;width:min(270px,44vw)!important;
 min-width:0!important;padding:5px 8px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .top-actions{
 top:53px!important;right:5px!important;width:116px!important;max-width:116px!important;gap:2px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar #hud-wallet{min-height:26px!important;font-size:10px!important}
html.frbc-v28-available.frbc-mobile-ui.frbc-landscape-overlay #v28-mode-switch{
 top:4px!important;left:5px!important;transform:scale(.72)!important;transform-origin:top left!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail{
 top:105px!important;right:5px!important;width:116px!important;max-height:calc(100dvh - 115px)!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail-handle{top:78px!important;right:7px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid>[data-v28-command=rotate]{min-height:28px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #frbc-chat-modal:not([hidden]){top:47px!important;left:5px!important;bottom:54px!important;width:min(236px,35vw)!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #frbc-chat-modal:not([hidden]) .frbc-chat-card{padding:6px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay.frbc-v28-chat-open #v28-chat-fold{top:52px!important;left:calc(min(236px,35vw) + 5px)!important;width:23px!important;height:29px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-match-hint:not([hidden]){
 bottom:5px!important;right:5px!important;width:116px!important;max-width:116px!important;
 max-height:66px!important;font-size:10px!important;padding:5px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #toast:not([hidden]){
 right:5px!important;bottom:80px!important;width:116px!important;max-width:116px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .frbc-notification-root{right:5px!important;bottom:90px!important;max-width:116px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-sessions-panel:not([hidden]){top:105px!important;right:calc(var(--v28-right) + 8px)!important;width:min(250px,40vw)!important;max-height:calc(100dvh - 115px)!important}
/* Original V28.1 #game-dock and all gameplay controls are preserved. */
/* Landscape density: keep score, shop, account and menu in separate rows. */
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .top-actions{top:75px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail{top:148px!important;max-height:calc(100dvh - 154px)!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail-handle{top:120px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid button{min-height:31px!important;padding:3px!important;font-size:14px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid>[data-v28-command=rotate]{min-height:28px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-sessions-panel:not([hidden]){top:148px!important;max-height:calc(100dvh - 154px)!important}
html.frbc-v28-available.frbc-mobile-ui.frbc-landscape-overlay #v28-mode-switch{display:none!important}
/* The Menu tile must remain clickable while the native modal is displayed. */
html.frbc-v28-demo:has(#menu-modal:not([hidden])) #v28-rail{z-index:3600!important}
html.frbc-v28-demo:has(#menu-modal:not([hidden])) #v28-rail-handle{z-index:3601!important}
/* Inactive clock remains legible but does not cover the score. */
html.frbc-v28-demo #v28-clock-indicator:not([hidden]){left:auto!important;right:10px!important;top:161px!important;width:184px!important;box-sizing:border-box!important;font-size:10px!important;padding:4px 5px!important;text-align:center}
html.frbc-v28-demo:has(.topbar #hud-wallet) #v28-online-shop{display:none!important}
/* A/B access on mobile landscape remains available until the left chat opens. */
html.frbc-v28-available.frbc-mobile-ui.frbc-landscape-overlay #v28-mode-switch{display:flex!important;top:35px!important;left:5px!important;transform:scale(.66)!important;transform-origin:top left!important}
html.frbc-v28-demo.frbc-v28-chat-open.frbc-mobile-ui.frbc-landscape-overlay #v28-mode-switch{display:none!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-clock-indicator:not([hidden]){right:5px!important;top:141px!important;width:116px!important;font-size:8px!important;padding:2px 3px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail{top:161px!important;max-height:calc(100dvh - 166px)!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail-handle{top:133px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid button{min-height:28px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid>[data-v28-command=rotate]{min-height:25px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay:has(#frbc-clock-display:not([hidden])) #v28-rail{top:185px!important;max-height:calc(100dvh - 191px)!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-sessions-panel:not([hidden]){top:161px!important;max-height:calc(100dvh - 166px)!important}
/* Keep a visible gap between bottom-right alerts and the last menu tile. */
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid{gap:2px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid button{gap:1px!important;padding:1px!important;min-height:27px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid>[data-v28-command=rotate]{min-height:24px!important}

/* V28.4 — gameplay notices: approved light-blue card below RIGHT menu.
   The native game dock and the validated right rail are intentionally untouched. */
html.frbc-v28-demo #v28-match-hint:not([hidden]){
 display:flex!important;align-items:center!important;gap:9px!important;
 right:10px!important;left:auto!important;bottom:10px!important;
 width:184px!important;max-width:184px!important;max-height:128px!important;
 min-height:64px!important;overflow:visible!important;
 padding:9px 9px!important;box-sizing:border-box!important;
 border:2px solid #92bdd4!important;border-radius:14px!important;
 background:linear-gradient(115deg,#e8f6ff,#a3d7ff)!important;
 color:#0a2a46!important;box-shadow:0 5px 0 #112e42bb,0 10px 25px #0008!important;
 font:600 12px/1.3 system-ui,sans-serif!important;
}
html.frbc-v28-demo #v28-hint-text{display:flex!important;align-items:center!important;gap:8px!important;flex:1!important;min-width:0!important}
html.frbc-v28-demo #v28-hint-text .v28-hint-icon{flex:0 0 26px!important;font:700 26px/1 system-ui!important;text-align:center}
html.frbc-v28-demo #v28-hint-text .v28-hint-content{display:flex!important;flex:1;flex-direction:column;min-width:0;gap:3px}
html.frbc-v28-demo #v28-hint-heading{font:800 13px/1.1 system-ui,sans-serif!important;color:#0b2e4c!important}
html.frbc-v28-demo #v28-hint-caption{font:500 10px/1.25 system-ui,sans-serif!important;color:#193d59!important}
html.frbc-v28-demo #v28-hint-fold{align-self:flex-start!important;background:#18496e!important;border-color:#7ab8df!important;color:#fff!important}
html.frbc-v28-demo #v28-match-hint.v28-hint-collapsed{width:38px!important;min-height:32px!important;box-shadow:0 3px 0 #112e42bb!important}
html.frbc-v28-demo #v28-clock-indicator.v28-activated{background:#174b70ec!important;border:1px solid #8bc2e7!important;color:#eaf7ff!important;opacity:1!important;filter:none!important;border-radius:10px!important}
html.frbc-v28-demo #v28-clock-indicator.v28-muted{border:1px solid #5d7c90!important;border-radius:10px!important}
/* Keep the real club popup above the scene; the V28 PARTIES tile remains usable. */
html.frbc-v28-demo:has(#frbc-lobby-modal:not([hidden])) #v28-rail{z-index:3600!important}
html.frbc-v28-demo:has(#frbc-lobby-modal:not([hidden])) #v28-rail-handle{z-index:3601!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-match-hint:not([hidden]){
 right:5px!important;bottom:5px!important;width:116px!important;max-width:116px!important;
 min-height:43px!important;max-height:92px!important;gap:4px!important;padding:5px 5px!important;
 border-radius:10px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-hint-text{gap:4px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-hint-text .v28-hint-icon{flex-basis:17px!important;font-size:17px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-hint-heading{font-size:10px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-hint-caption{font-size:8px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-hint-fold{width:18px;height:18px;min-width:18px!important;font-size:10px}


/* original: frbc-v28-menu-locked.css */
/* FRBC V28.3 — right panel locked reference, 21/10/2026.
   Applies on desktop and mobile landscape ONLY when V28 is active.
   Do not style the 3D scene, the chat, bottom-left dock, or portrait UI. */
html.frbc-v28-demo:not(.frbc-mobile-ui),
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay {
 --v28-right:clamp(214px,15vw,268px);
 --v28-top-edge:12px;
 --v28-edge:14px;
 --v28-score-height:87px;
 --v28-clock-top:118px;
 --v28-account-top:165px;
 --v28-menu-top:213px;
 --v28-tile-height:clamp(56px,8.1dvh,74px);
 --v28-menu-gap:8px;
}
/* Remove obsolete A/B switch only while the locked right panel is active. */
html.frbc-v28-demo #v28-mode-switch {display:none!important}

/* Score top-right: the approved native scoreboard, not a copy. */
html.frbc-v28-demo .topbar .match-score,
html.frbc-v28-demo.frbc-pc-horizontal .topbar .match-score,
html.frbc-v28-demo.frbc-pc-horizontal:not(.frbc-mobile-ui) .topbar .match-score,
html.frbc-v28-demo body.direct-room.online-full-ui .topbar .match-score {
 position:fixed!important;top:var(--v28-top-edge)!important;
 left:auto!important;right:var(--v28-edge)!important;
 width:calc(var(--v28-right) + 17px)!important;min-width:0!important;
 max-width:calc(100vw - 2 * var(--v28-edge))!important;
 transform:none!important;box-sizing:border-box!important;
 display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
 gap:4px!important;align-items:center!important;
 padding:9px 7px 7px!important;border-radius:10px!important;
 background:#111c2af2!important;border:1px solid #789cb253!important;
 z-index:84!important;
}
html.frbc-v28-demo .topbar .match-score .player {font-size:10px!important;min-width:0!important;gap:4px!important}
html.frbc-v28-demo .topbar .match-score .player>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.frbc-v28-demo .topbar .match-score strong {font-size:25px!important;letter-spacing:1px!important}
html.frbc-v28-demo .topbar .match-score .round-progress {display:none!important}
html.frbc-v28-demo .topbar .match-score>small {font-size:8px!important;letter-spacing:.6px!important}

/* Time display is read from the native clock. The clock itself is never replaced. */
html.frbc-v28-demo #frbc-clock-display:not([hidden]) {
 position:fixed!important;top:var(--v28-clock-top)!important;
 left:auto!important;right:var(--v28-edge)!important;
 width:calc(var(--v28-right) - 12px)!important;max-width:calc(var(--v28-right) - 12px)!important;
 box-sizing:border-box!important;text-align:center!important;
 border-radius:12px!important;border:1.5px solid #a1d5f5!important;
 background:#102f4deF!important;color:#f4faff!important;
 padding:10px 5px!important;font-size:13px!important;
 z-index:84!important;
}
/* Language/account, then the arrow for retracting the same rail. */
html.frbc-v28-demo .topbar .top-actions,
html.frbc-v28-demo.frbc-pc-horizontal .topbar .top-actions {
 position:fixed!important;top:var(--v28-account-top)!important;
 left:auto!important;right:calc(var(--v28-edge) + 39px)!important;
 display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:flex-end!important;
 width:calc(var(--v28-right) - 39px)!important;max-width:calc(var(--v28-right) - 39px)!important;
 gap:6px!important;z-index:84!important;
}
html.frbc-v28-demo .topbar .top-actions :is(#language-switch,#hud-account){
 flex:0 1 auto!important;min-width:0!important;min-height:32px!important;max-height:35px!important;
 border-radius:12px!important;background:#0c2a4aeF!important;border:1px solid #5583a8!important;
 font-weight:700!important;white-space:nowrap!important;
}
html.frbc-v28-demo .topbar .top-actions #hud-account {flex:1 1 auto!important;min-width:0!important}
html.frbc-v28-demo .topbar .top-actions #hud-wallet,
html.frbc-v28-demo .topbar .top-actions #menu-button {display:none!important}
html.frbc-v28-demo #v28-rail-handle,
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail-handle,
html.frbc-v28-demo:has(#frbc-clock-display:not([hidden])) #v28-rail-handle {
 position:fixed!important;top:var(--v28-account-top)!important;right:var(--v28-edge)!important;
 display:grid!important;place-items:center!important;
 width:34px!important;height:35px!important;box-sizing:border-box!important;
 border:1.5px solid #8cc7e8!important;border-radius:11px!important;
 background:#1a5075!important;color:#fff!important;font:700 26px/1 system-ui,sans-serif!important;
 z-index:87!important;
}

/* Identical 2-column six-row menu, with exact order + detailed vector pictograms. */
html.frbc-v28-demo #v28-rail,
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail,
html.frbc-v28-demo:has(#frbc-clock-display:not([hidden])) #v28-rail {
 position:fixed!important;left:auto!important;
 top:var(--v28-menu-top)!important;right:var(--v28-edge)!important;
 width:var(--v28-right)!important;max-width:var(--v28-right)!important;
 box-sizing:border-box!important;
 max-height:calc(100dvh - var(--v28-menu-top) - 8px)!important;
 padding:11px!important;border:1.5px solid #8bc3e4!important;border-radius:17px!important;
 background:#0b2945f2!important;overflow-y:auto!important;scrollbar-width:thin!important;
 box-shadow:0 10px 26px #0008!important;z-index:86!important;
}
html.frbc-v28-demo #v28-rail .v28-grid,
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid {
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
 gap:var(--v28-menu-gap)!important;
}
html.frbc-v28-demo #v28-rail .v28-grid .v28-tile,
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid .v28-tile {
 grid-column:auto!important;display:flex!important;flex-direction:column!important;
 align-items:center!important;justify-content:center!important;
 gap:6px!important;width:100%!important;min-width:0!important;
 height:var(--v28-tile-height)!important;min-height:var(--v28-tile-height)!important;
 padding:5px 3px!important;box-sizing:border-box!important;
 border:1.5px solid #5686aa!important;border-radius:13px!important;
 background:#174363!important;color:#f0f8ff!important;
 font:800 13px/1.07 system-ui,sans-serif!important;letter-spacing:.3px!important;
 cursor:pointer!important;text-align:center!important;
}
html.frbc-v28-demo #v28-rail .v28-grid .v28-tile>svg {
 display:block!important;flex:0 0 auto!important;
 width:27px!important;height:27px!important;stroke:currentColor!important;
}
html.frbc-v28-demo #v28-rail .v28-grid .v28-tile>.v28-tile-label{
 display:block!important;font:800 12px/1.06 system-ui,sans-serif!important;
 color:inherit!important;letter-spacing:.4px!important;
}
html.frbc-v28-demo #v28-rail .v28-grid [data-v28-command=clock]{background:#143c5c!important}
html.frbc-v28-demo #v28-rail .v28-grid [data-v28-command=clock] svg{width:31px!important;height:31px!important}
html.frbc-v28-demo #v28-rail .v28-grid [data-v28-command=shop]{background:#215783!important}
html.frbc-v28-demo #v28-rail .v28-grid [data-v28-command=shop] svg{display:none!important}
html.frbc-v28-demo #v28-rail .v28-grid .v28-shop-credit{
 font:800 20px/1 system-ui,sans-serif!important;letter-spacing:.3px!important;white-space:nowrap!important;
}
html.frbc-v28-demo #v28-rail .v28-grid .v28-tile:disabled{
 opacity:1!important;color:#657b8c!important;
 background:#0a2740!important;border-color:#2f526e!important;cursor:not-allowed!important;
}
html.frbc-v28-demo #v28-rail .v28-grid .v28-tile:disabled .v28-tile-label{color:#657b8c!important}
html.frbc-v28-demo #v28-rail .v28-grid .v28-tile:hover:not(:disabled){background:#245779!important}
html.frbc-v28-demo #v28-rail .v28-grid .v28-tile:focus-visible{outline:2px solid #f6d48b!important;outline-offset:1px!important}
html.frbc-v28-demo.frbc-v28-rail-closed #v28-rail {display:none!important}
/* Notifications keep their separately-approved lower-right position. */
html.frbc-v28-demo #v28-match-hint:not([hidden]),
html.frbc-v28-demo #toast:not([hidden]),
html.frbc-v28-demo .frbc-notification-root {right:var(--v28-edge)!important}
html.frbc-v28-demo #v28-match-hint:not([hidden]){width:var(--v28-right)!important;max-width:var(--v28-right)!important}
html.frbc-v28-demo #toast:not([hidden]){width:var(--v28-right)!important;max-width:var(--v28-right)!important}

/* Landscape phones: same composition/icons, scaled without changing the vertical interface. */
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay {
 --v28-right:clamp(120px,18vw,166px);
 --v28-top-edge:3px;
 --v28-edge:5px;
 --v28-score-height:39px;
 --v28-clock-top:45px;
 --v28-account-top:77px;
 --v28-menu-top:107px;
 --v28-menu-gap:3px;
 --v28-tile-height:clamp(26px,8dvh,36px);
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .match-score,
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay body.direct-room.online-full-ui .topbar .match-score{
 top:var(--v28-top-edge)!important;right:var(--v28-edge)!important;
 width:calc(var(--v28-right) + 15px)!important;min-width:0!important;
 padding:3px 5px!important;border-radius:8px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .match-score .player{font-size:7px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .match-score strong{font-size:14px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .match-score>small{font-size:5px!important;letter-spacing:.2px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #frbc-clock-display:not([hidden]) {
 top:var(--v28-clock-top)!important;width:var(--v28-right)!important;max-width:var(--v28-right)!important;
 font-size:9px!important;padding:3px!important;border-radius:8px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .top-actions {
 top:var(--v28-account-top)!important;right:calc(var(--v28-edge) + 27px)!important;
 width:calc(var(--v28-right) - 27px)!important;max-width:calc(var(--v28-right) - 27px)!important;gap:3px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .top-actions :is(#language-switch,#hud-account){
 min-height:24px!important;max-height:24px!important;padding:3px!important;font-size:8px!important;border-radius:7px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .top-actions #hud-account svg{width:13px!important;height:13px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail-handle {
 top:var(--v28-account-top)!important;right:var(--v28-edge)!important;
 width:24px!important;height:24px!important;font-size:17px!important;border-radius:7px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail {
 top:var(--v28-menu-top)!important;right:var(--v28-edge)!important;width:var(--v28-right)!important;
 max-height:calc(100dvh - var(--v28-menu-top) - 5px)!important;
 padding:5px!important;border-radius:10px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid .v28-tile{
 height:var(--v28-tile-height)!important;min-height:var(--v28-tile-height)!important;
 padding:2px 1px!important;gap:1px!important;border-radius:6px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid .v28-tile>svg{
 width:15px!important;height:15px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid [data-v28-command=clock] svg{width:17px!important;height:17px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid .v28-tile>.v28-tile-label{
 font-size:8px!important;letter-spacing:0!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-grid .v28-shop-credit{font-size:11px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-match-hint:not([hidden]){
 right:var(--v28-edge)!important;width:var(--v28-right)!important;max-width:var(--v28-right)!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-sessions-panel:not([hidden]){right:calc(var(--v28-right) + 11px)!important}
/* Alignment fixes verified in isolated desktop/landscape layouts. */
html.frbc-v28-demo .topbar .match-score{min-height:87px!important}
html.frbc-v28-demo #v28-clock-indicator:not([hidden]){
 display:block!important;position:fixed!important;left:auto!important;
 top:var(--v28-clock-top)!important;right:var(--v28-edge)!important;
 width:calc(var(--v28-right) - 12px)!important;max-width:calc(var(--v28-right) - 12px)!important;
 box-sizing:border-box!important;text-align:center!important;
 padding:9px 5px!important;border:1px solid #6987a1!important;border-radius:12px!important;
 background:#102f4ddd!important;opacity:.65!important;color:#c7d9e9!important;
 font:600 12px/1.1 system-ui,sans-serif!important;z-index:83!important;
}
html.frbc-v28-available.frbc-mobile-ui.frbc-landscape-overlay #v28-mode-switch{display:none!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay .topbar .match-score{
 min-height:40px!important;height:40px!important;max-height:40px!important;overflow:hidden!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-clock-indicator:not([hidden]){
 top:var(--v28-clock-top)!important;width:var(--v28-right)!important;
 max-width:var(--v28-right)!important;padding:4px!important;font-size:8px!important;border-radius:8px!important;
}

/* V28.4 notification refinements: preserve every locked menu tile. */
html.frbc-v28-demo #v28-clock-indicator.v28-activated:not([hidden]){
 background:#184d72ee!important;border:1px solid #96caeb!important;
 color:#f1f9ff!important;opacity:1!important;filter:none!important;
}
html.frbc-v28-demo #v28-clock-indicator.v28-muted:not([hidden]){
 border:1px solid #70879a!important;border-radius:11px!important;
}
html.frbc-v28-demo #v28-match-hint:not([hidden]){
 right:var(--v28-edge)!important;
 width:var(--v28-right)!important;max-width:var(--v28-right)!important;
 background:linear-gradient(115deg,#e8f6ff,#a3d7ff)!important;
 color:#0a2a46!important;
}
html.frbc-v28-demo #v28-match-hint.v28-hint-collapsed:not([hidden]){
 width:38px!important;max-width:38px!important;min-height:34px!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-match-hint:not([hidden]){
 right:var(--v28-edge)!important;width:var(--v28-right)!important;max-width:var(--v28-right)!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-match-hint.v28-hint-collapsed:not([hidden]){
 width:29px!important;max-width:29px!important;
}


/* original: frbc-v28-5-targeted.css */

/* V28.5 — targeted additions to the locked V28.4 reference.
   No changes to the twelve tile positions, except the requested CLOCK caption. */
html.frbc-v28-demo #frbc-clock-display:not([hidden]){
 top:var(--v28-clock-top)!important;right:calc(var(--v28-edge) + 6px)!important;
 width:calc(var(--v28-right) - 12px)!important;max-width:calc(var(--v28-right) - 12px)!important;
 text-align:center!important;transform:none!important;z-index:85!important;
}
html.frbc-v28-demo #v28-rail .v28-grid [data-v28-command=shop] svg{
 display:block!important;width:20px!important;height:20px!important;margin:0!important;
}
html.frbc-v28-demo #v28-rail .v28-grid [data-v28-command=shop]{gap:3px!important}
html.frbc-v28-demo #v28-rail .v28-grid .v28-shop-credit{font-size:clamp(12px,1.55vw,18px)!important}
html.frbc-v28-demo #v28-rail .v28-grid [data-v28-command=clock] .v28-tile-label{display:block!important}
/* Keep the gameplay actions on the validated lower-left dock; only replace the secondary 'Coups possibles' shortcut. */
html.frbc-v28-demo #game-dock #moves-button,
html.frbc-v28-demo #online-game-dock #online-moves-button{display:none!important}
html.frbc-v28-demo #frbc-v28-dock-controls{display:inline-flex;gap:8px;margin-left:auto;align-items:center}
html.frbc-v28-demo #frbc-v28-dock-controls button{border:1px solid #6c9dc1;border-radius:7px;background:#17476b;color:#eef7ff;min-height:30px;padding:6px 9px;font:700 11px system-ui;white-space:nowrap}
html.frbc-v28-demo #frbc-v28-pause-modal:not([hidden]){display:block;position:fixed;bottom:100px;left:14px;width:min(330px,44vw);z-index:130;padding:15px;background:#0b2a47f7;border:1px solid #9bcfed;border-radius:13px;color:white;box-shadow:0 14px 35px #0009;font:13px system-ui}
html.frbc-v28-demo #frbc-v28-pause-modal header{display:flex;justify-content:space-between;align-items:center;gap:8px}
html.frbc-v28-demo #frbc-v28-pause-modal button{border:1px solid #8ebcda;border-radius:8px;background:#18527c;padding:7px 11px;color:white;cursor:pointer}
html.frbc-v28-demo #frbc-v28-pause-modal .v28-pause-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}
/* The right column is one flow: right rail -> transient hint -> legal-move grid. */
html.frbc-v28-demo #v28-rail{max-height:calc(100dvh - var(--v28-menu-top) - 104px)!important}
html.frbc-v28-demo.frbc-v28-moves-open #v28-rail{max-height:calc(100dvh - var(--v28-menu-top) - 190px)!important}
html.frbc-v28-demo #v28-match-hint:not([hidden]){
 position:fixed!important;top:calc(var(--v28-panel-bottom) + 7px)!important;bottom:auto!important;
 right:var(--v28-edge)!important;width:var(--v28-right)!important;max-width:var(--v28-right)!important;
 min-height:52px!important;max-height:82px!important;padding:7px 9px!important;overflow:auto!important;
}
html.frbc-v28-demo.frbc-v28-moves-open #v28-match-hint{display:none!important}
html.frbc-v28-demo #moves-panel:not([hidden]),
html.frbc-v28-demo body.direct-room #board-details[open]{
 position:fixed!important;right:var(--v28-edge)!important;left:auto!important;
 top:calc(var(--v28-panel-bottom) + 7px)!important;bottom:auto!important;
 width:var(--v28-right)!important;max-width:var(--v28-right)!important;
 height:auto!important;max-height:calc(100dvh - var(--v28-panel-bottom) - 14px)!important;
 padding:8px!important;border:1px solid #8fc6e9!important;border-radius:12px!important;
 background:#0b2945f6!important;box-shadow:0 8px 25px #000a!important;
 overflow:auto!important;z-index:92!important;
}
html.frbc-v28-demo #moves-panel header{font:700 13px system-ui!important}
html.frbc-v28-demo #moves-panel p{font-size:10px!important;line-height:1.35!important}
html.frbc-v28-demo #moves-panel #moves-list{display:none!important}
html.frbc-v28-demo #v28-point-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px}
html.frbc-v28-demo #v28-point-grid .v28-point-cell{
 min-width:0!important;min-height:33px;padding:2px 0!important;
 border:1px solid #456b8a;border-radius:4px;background:#1c4c6b;color:#ecf8ff;
 font:700 8px/1 system-ui;display:flex;flex-direction:column;align-items:center;justify-content:space-between;
}
html.frbc-v28-demo #v28-point-grid .v28-point-cell:disabled{opacity:.66}
html.frbc-v28-demo #v28-point-grid .v28-point-cell.is-source:not(:disabled){border-color:#8ad0fc}
html.frbc-v28-demo #v28-point-grid .v28-point-cell.is-selected{background:#3575a0;outline:1px solid #e6c47c}
html.frbc-v28-demo #v28-point-grid .v28-point-cell.is-destination{background:#1a698b;border-color:#f1dc9b}
html.frbc-v28-demo #v28-point-grid .v28-point-pips{display:flex;flex-direction:column;align-items:center;gap:1px;font:700 9px system-ui}
html.frbc-v28-demo #v28-point-grid .v28-point-pips i{width:7px;height:7px;border-radius:50%;background:#f5f5ef;border:1px solid #a9b7bd}
html.frbc-v28-demo #v28-point-grid .v28-point-pips i.v28-pip-blue{background:#2b9cf5;border-color:#14558b}
html.frbc-v28-demo #v28-point-grid .v28-grid-special{grid-column:1/-1;display:flex;gap:5px;margin-top:5px}
html.frbc-v28-demo #v28-point-grid .v28-grid-special button{background:#195078;color:#fff;border:1px solid #7bb1d4;border-radius:6px;min-height:26px;padding:4px 10px;font:700 9px system-ui}
html.frbc-v28-demo #v28-point-grid .v28-grid-special button:disabled{opacity:.5}
html.frbc-v28-demo #toast:not([hidden]){right:calc(var(--v28-right) + var(--v28-edge) + 9px)!important;bottom:25px!important}
/* Landscape keeps exactly the same logic while making room for legal moves. */
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail{max-height:calc(100dvh - var(--v28-menu-top) - 67px)!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay.frbc-v28-moves-open #v28-rail{max-height:calc(100dvh - var(--v28-menu-top) - 142px)!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-match-hint:not([hidden]){top:calc(var(--v28-panel-bottom) + 5px)!important;bottom:auto!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #moves-panel:not([hidden]){top:calc(var(--v28-panel-bottom) + 5px)!important;bottom:auto!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-point-grid .v28-point-cell{min-height:27px;font-size:7px}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-point-grid .v28-point-pips i{width:5px;height:5px}

/* No old V28 DEMO bar while the intro/home screen is visible. */
#v28-mode-switch{display:none!important}
html.frbc-v28-demo #frbc-clock-display:not([hidden]){
 top:var(--v28-clock-top)!important;min-height:34px!important;max-height:37px!important;
 height:36px!important;line-height:16px!important;white-space:nowrap!important;overflow:hidden!important;
 text-overflow:ellipsis!important;padding:8px 3px!important;font-size:11px!important;
}

/* Single vector icon and the live balance share one clean line. */
html.frbc-v28-demo #v28-rail .v28-grid .v28-shop-balance{display:inline-flex;justify-content:center;align-items:center;gap:5px;max-width:100%}
html.frbc-v28-demo #v28-rail .v28-grid .v28-shop-balance svg{display:block!important;width:21px!important;height:21px!important;flex-shrink:0!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-shop-balance{gap:2px!important}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #v28-rail .v28-shop-balance svg{width:13px!important;height:13px!important}

/* Reuse the same right-hand card slot for native in-game toasts. */
html.frbc-v28-demo #toast.show{
 top:calc(var(--v28-panel-bottom) + 7px)!important;bottom:auto!important;
 left:auto!important;right:var(--v28-edge)!important;
 width:var(--v28-right)!important;max-width:var(--v28-right)!important;
 transform:none!important;z-index:95!important;
}
html.frbc-v28-demo:has(#toast.show) #v28-match-hint:not([hidden]){display:none!important}
html.frbc-v28-demo.frbc-v28-rail-closed #v28-match-hint,
html.frbc-v28-demo.frbc-v28-rail-closed #moves-panel{display:none!important}
/* Compact mobile landscape clock: keep a physical gap above account row. */
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #frbc-clock-display:not([hidden]){
 top:var(--v28-clock-top)!important;height:25px!important;min-height:25px!important;max-height:25px!important;
 padding:4px 2px!important;font-size:9px!important;line-height:15px!important;
}

html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #mobile-ui .mobile-actions #frbc-v28-dock-controls{
 display:flex!important;gap:4px!important;flex:0 0 auto!important;margin-left:auto!important;
}
html.frbc-v28-demo.frbc-mobile-ui.frbc-landscape-overlay #frbc-v28-dock-controls button{
 min-height:26px!important;padding:3px 6px!important;font-size:9px!important;
}


/* original: frbc-sponsor-marquee.css */
/* FRBC V28.6 — ONLY the start-menu sponsors section, no gameplay styles */
#menu-modal #frbc-sponsors-marquee{
  display:block;
  min-width:0;
  width:100%;
  margin:16px 0 9px;
  padding:13px 0 10px;
  border-block:1px solid #99bfe333;
  color:#eef8ff;
  font-family:Inter,ui-sans-serif,system-ui,Arial,sans-serif;
}
#menu-modal .frbc-sponsors-heading{
  display:flex;align-items:center;justify-content:center;
  margin:0 0 10px;
  color:#b9d9f4;
  font-size:10px;font-weight:800;letter-spacing:.16em;
}
#menu-modal .frbc-sponsors-lanes{
  display:grid;gap:6px;
  overflow:hidden;
}
#menu-modal .frbc-sponsors-viewport{
  overflow:hidden;
  width:100%;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 11%,#000 89%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,#000 11%,#000 89%,transparent 100%);
}
#menu-modal .frbc-sponsors-track{
  display:flex;
  align-items:center;
  width:max-content;
  max-width:none;
  animation:frbc-sponsors-travel 21s linear infinite;
  will-change:transform;
}
#menu-modal .frbc-sponsors-track.frbc-sponsors-backward{
  animation-duration:26s;
  animation-direction:reverse;
}
#menu-modal .frbc-sponsors-segment{
  flex:none;
  display:flex;
  width:max-content;
  align-items:center;
  gap:22px;
  padding:0 22px 0 0;
}
#menu-modal .frbc-sponsors-logo{
  flex:none;
  display:flex;align-items:center;justify-content:center;
  height:48px;
  width:250px;
  padding:8px 12px;
  border:1px solid transparent;
  border-radius:10px;
  text-decoration:none;
  background:transparent;
  transition:border-color .2s,background .2s;
}
#menu-modal .frbc-sponsors-logo img{
  display:block; width:100%; height:100%; object-fit:contain;
}
#menu-modal .frbc-sponsors-invite{
  display:inline-flex;flex:none;gap:9px;
  align-items:center;justify-content:center;
  width:190px;height:48px;
  border:1px solid #83b7dc78;
  border-radius:11px;
  background:#123c5f;
  color:#e3f4ff;
  text-decoration:none;
  font-size:12px;font-weight:750;
  white-space:nowrap;
  transition:background .2s,border-color .2s;
}
#menu-modal .frbc-sponsors-plus{
  display:grid;place-items:center;
  flex:0 0 24px;height:24px;
  background:#1d5279;border:1px solid #87bee6;border-radius:50%;
  color:white;font:700 19px/1 Arial,sans-serif;
}
#menu-modal .frbc-sponsors-logo:hover,
#menu-modal .frbc-sponsors-logo:focus-visible,
#menu-modal .frbc-sponsors-invite:hover,
#menu-modal .frbc-sponsors-invite:focus-visible{
  border-color:#b3e1ff;
  background:#184366;
}
#menu-modal #frbc-sponsors-marquee:focus-within .frbc-sponsors-track,
#menu-modal #frbc-sponsors-marquee:hover .frbc-sponsors-track{
  animation-play-state:paused;
}
@keyframes frbc-sponsors-travel{to{transform:translateX(-50%)}}
@media(max-width:720px){
  #menu-modal #frbc-sponsors-marquee{margin-top:12px;padding-top:9px}
  #menu-modal .frbc-sponsors-lanes{gap:3px}
  #menu-modal .frbc-sponsors-logo{width:206px;height:43px}
  #menu-modal .frbc-sponsors-invite{width:166px;height:43px;font-size:11px}
  #menu-modal .frbc-sponsors-segment{gap:14px;padding-right:14px}
}
@media(max-height:520px) and (orientation:landscape){
  #menu-modal #frbc-sponsors-marquee{margin-top:8px;padding:7px 0 4px}
  #menu-modal .frbc-sponsors-heading{margin-bottom:4px}
  #menu-modal .frbc-sponsors-logo{height:36px}
  #menu-modal .frbc-sponsors-invite{height:36px}
  #menu-modal .frbc-sponsors-lanes{gap:0}
}
@media(prefers-reduced-motion:reduce){
  #menu-modal .frbc-sponsors-track{animation:none;will-change:auto}
}


/* original: frbc-mobile-desktop-parity.css */
/* V29.8: mobile layouts split deliberately by orientation.
   Landscape gets the left game rail; portrait keeps only the right icon rail. */
#v28-dock-handle,.v28-portrait-actions{display:none!important}
html.frbc-v28-clean-controls :is(.view-switch,#skip-decor-intro,.decor-intro,#board-orientation-switch){display:none!important}
html:is(.frbc-mobile-horizontal,.frbc-mobile-vertical) #v28-mode-switch{display:none!important}
@media (orientation:landscape) {
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro):not(.frbc-camera-editing) {
  --v28-right:clamp(120px,18vw,166px);
  --v28-top-edge:max(3px,env(safe-area-inset-top));
  --v28-edge:max(5px,env(safe-area-inset-right));
  --v28-score-height:58px;
  --v28-clock-top:calc(var(--v28-top-edge) + 61px);
  --v28-account-top:calc(var(--v28-top-edge) + 90px);
  --v28-menu-top:calc(var(--v28-top-edge) + 119px);
  --v28-menu-gap:3px;
  --v28-tile-height:clamp(26px,8dvh,36px);
  --v28-left-edge:max(20px,env(safe-area-inset-left));
  --v28-left-width:54px;
  --v28-left-top:max(72px,calc(env(safe-area-inset-top) + 72px));
 }
 /* The real scoreboard/account, six paired menu rows and their SVGs are shared. */
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) .topbar {display:flex!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) .topbar .match-score {
  top:var(--v28-top-edge)!important;right:var(--v28-edge)!important;
  width:calc(var(--v28-right) + 15px)!important;min-width:0!important;
  min-height:var(--v28-score-height)!important;height:var(--v28-score-height)!important;max-height:var(--v28-score-height)!important;
  padding:3px 5px!important;border-radius:8px!important;overflow:hidden!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) .topbar .match-score .score-readout{gap:1px!important;align-self:center!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) .topbar .match-score .player {font-size:7px!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) .topbar .match-score strong {display:block!important;font-size:15px!important;line-height:1!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) .topbar .match-score>small {font-size:5px!important;letter-spacing:.2px!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) .topbar .top-actions {
  top:var(--v28-account-top)!important;right:calc(var(--v28-edge) + 27px)!important;
  width:calc(var(--v28-right) - 27px)!important;max-width:calc(var(--v28-right) - 27px)!important;gap:3px!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) .topbar .top-actions :is(#language-switch,#hud-account) {
  min-height:24px!important;max-height:24px!important;padding:3px!important;font-size:8px!important;border-radius:7px!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) .topbar #hud-account svg {width:13px!important;height:13px!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail-handle {
  top:var(--v28-account-top)!important;right:var(--v28-edge)!important;
  width:24px!important;height:24px!important;font-size:17px!important;border-radius:7px!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail,
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro):has(#frbc-clock-display:not([hidden])) #v28-rail {
  top:var(--v28-menu-top)!important;right:var(--v28-edge)!important;
  width:var(--v28-right)!important;max-width:var(--v28-right)!important;
  max-height:calc(100dvh - var(--v28-menu-top) - 5px)!important;
  padding:5px!important;border-radius:10px!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal.frbc-v28-moves-open:not(.mobile-intro) #v28-rail,
 html.frbc-v28-demo.frbc-mobile-horizontal.frbc-v28-moves-open:not(.mobile-intro):has(#frbc-clock-display:not([hidden])) #v28-rail {
  max-height:calc(100dvh - var(--v28-menu-top) - 5px)!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail .v28-grid .v28-tile {
  height:var(--v28-tile-height)!important;min-height:var(--v28-tile-height)!important;
  padding:2px 1px!important;gap:1px!important;border-radius:6px!important;
 }
 /* Keep the complete desktop set in six balanced pairs, including VUES/CAMÉRA. */
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail .v28-grid>[data-v28-command=rotate]{
  grid-column:auto!important;min-height:var(--v28-tile-height)!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail .v28-grid>[data-v28-command=shop]{grid-column:auto!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail .v28-grid .v28-tile>svg {width:19px!important;height:19px!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail .v28-grid [data-v28-command=clock] svg {width:17px!important;height:17px!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail .v28-grid .v28-tile>.v28-tile-label {display:none!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail .v28-shop-balance {gap:2px!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail .v28-shop-balance svg {width:13px!important;height:13px!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail .v28-grid .v28-shop-credit {font-size:11px!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) :is(#frbc-clock-display,#frbc-online-clock-display):not([hidden]) {
  top:var(--v28-clock-top)!important;right:var(--v28-edge)!important;
  width:var(--v28-right)!important;max-width:var(--v28-right)!important;
  height:25px!important;min-height:25px!important;max-height:25px!important;
  padding:4px 2px!important;font-size:9px!important;line-height:15px!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-clock-indicator:not([hidden]) {
  top:var(--v28-clock-top)!important;right:var(--v28-edge)!important;
  width:var(--v28-right)!important;max-width:var(--v28-right)!important;padding:4px!important;font-size:8px!important;
 }
 /* Landscape: one narrow game rail, exactly below and as wide as the 54px logo. */
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #game-dock:not([hidden]) {
  display:flex!important;position:fixed!important;transform:none!important;box-sizing:border-box!important;
  left:var(--v28-left-edge)!important;right:auto!important;
  top:var(--v28-left-top)!important;bottom:74px!important;
  width:var(--v28-left-width)!important;min-width:var(--v28-left-width)!important;max-width:var(--v28-left-width)!important;
  min-height:0!important;max-height:none!important;flex-direction:column!important;flex-wrap:nowrap!important;
  align-items:stretch!important;gap:4px!important;padding:5px!important;overflow-x:hidden!important;overflow-y:auto!important;
  border-radius:0 0 10px 10px!important;z-index:86!important;pointer-events:auto!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock[hidden] {display:none!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock :is(.dock-actions,.dock-secondary,.dice-values) {
  display:flex!important;flex:0 0 auto!important;flex-direction:column!important;align-items:stretch!important;gap:4px!important;
  width:100%!important;margin:0!important;padding:0!important;border:0!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock .dock-secondary{margin-top:auto!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock :is(.dock-actions,.dock-secondary) button {
  width:100%!important;min-width:0!important;min-height:34px!important;height:auto!important;padding:4px 2px!important;
  font-size:8px!important;line-height:1.05!important;white-space:normal!important;overflow-wrap:anywhere!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock #undo-button {min-width:0!important;width:100%!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock .dice-values {display:grid!important;grid-template-columns:1fr 1fr!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock .dice-values button {width:100%!important;height:27px!important;font-size:18px!important;padding:0!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock :is(.turn-info,#coach-strip,#cube-note){display:none!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock .frbc-multiplayer-actions:not([hidden]){display:flex!important;flex-direction:column!important;margin:0!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #frbc-v28-dock-controls {
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:3px!important;width:100%!important;margin-top:4px!important;padding-top:4px!important;
  border-top:1px solid #87b7d255!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #frbc-v28-dock-controls button{height:32px!important;min-height:32px!important;padding:4px!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #frbc-v28-dock-controls svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock:has(#frbc-multiplayer-actions:not([hidden])) #frbc-v28-dock-controls {display:none!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-dock-handle{
  display:grid!important;place-items:center;position:fixed;z-index:87;
  left:calc(var(--v28-left-edge) + var(--v28-left-width) - 1px);top:var(--v28-left-top);
  width:19px;height:31px;padding:0;border:1px solid #9bcbed;border-left:0;border-radius:0 8px 8px 0;
  background:#17496be8;color:#fff;font:700 17px/1 system-ui;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal.frbc-v28-dock-closed #game-dock{display:none!important}
 html.frbc-v28-demo.frbc-mobile-horizontal.frbc-v28-dock-closed #v28-dock-handle{left:var(--v28-left-edge);border-left:1px solid #9bcbed;border-radius:8px}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #mobile-ui :is(.mobile-summary,.mobile-guidance,.mobile-actions,.mobile-coach-popover) {display:none!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #mobile-ui .mobile-board-wrap {display:none!important}
 html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-play>.mobile-rail {display:none!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #explore-help:not([hidden]) {
  display:block!important;left:max(8px,env(safe-area-inset-left))!important;right:auto!important;
  bottom:max(5px,env(safe-area-inset-bottom))!important;transform:none!important;
  width:min(400px,calc(100dvw - var(--v28-right) - 30px))!important;
 }
 /* Landscape game-state cards sit below the left game rail. */
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-match-hint:not([hidden]),
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #toast.show {
  left:var(--v28-left-edge)!important;right:auto!important;
  top:auto!important;bottom:max(5px,env(safe-area-inset-bottom))!important;
  width:clamp(142px,22vw,190px)!important;max-width:clamp(142px,22vw,190px)!important;transform:none!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-match-hint:not([hidden]) {min-height:43px!important;max-height:64px!important;overflow:auto!important}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #moves-panel:not([hidden]) {
  left:calc(var(--v28-left-edge) + var(--v28-left-width) + 8px)!important;right:auto!important;top:auto!important;
  bottom:max(5px,env(safe-area-inset-bottom))!important;width:min(290px,35vw)!important;max-height:52dvh!important;transform:none!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #frbc-v28-pause-modal:not([hidden]) {
  left:max(8px,env(safe-area-inset-left))!important;bottom:max(87px,calc(env(safe-area-inset-bottom) + 82px))!important;
  width:min(330px,calc(100dvw - var(--v28-right) - 30px))!important;max-height:calc(100dvh - 100px)!important;overflow:auto!important;
 }
}

@media (orientation:landscape) and (max-width:650px) {
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro){
  --v28-left-edge:max(15px,env(safe-area-inset-left));
  --v28-left-width:36px;
  --v28-left-top:max(50px,calc(env(safe-area-inset-top) + 50px));
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock :is(.dock-actions,.dock-secondary) button{font-size:7px!important;padding-inline:1px!important}
}

@media (orientation:landscape) and (min-width:1001px) and (max-width:1200px) {
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro){
  --v28-left-edge:max(32px,env(safe-area-inset-left));
  --v28-left-top:max(78px,calc(env(safe-area-inset-top) + 78px));
 }
}

@media (orientation:portrait) {
 html.frbc-v28-portrait-demo.frbc-mobile-ui {--mobile-rail:48px!important}
 /* V29.5 lower gameplay guidance/actions remain untouched; only its duplicate icon rail is hidden. */
 html.frbc-v28-portrait-demo.frbc-mobile-ui:not(.mobile-intro):not(.mobile-decor-expanded) #mobile-ui .mobile-play>.mobile-rail{
  visibility:hidden!important;pointer-events:none!important;
 }
 html.frbc-v28-portrait-demo #v28-rail{
  display:flex!important;flex-direction:column!important;position:fixed!important;z-index:186!important;
  top:max(96px,calc(env(safe-area-inset-top) + 82px))!important;
  right:max(5px,env(safe-area-inset-right))!important;bottom:max(154px,calc(env(safe-area-inset-bottom) + 142px))!important;
  width:48px!important;max-width:48px!important;padding:3px!important;box-sizing:border-box!important;
  overflow-y:auto!important;overflow-x:hidden!important;border:1px solid #9bcbed9e!important;border-radius:11px!important;
  background:#071d32e6!important;box-shadow:0 8px 25px #0007!important;scrollbar-width:none;
 }
 html.frbc-v28-portrait-demo #v28-rail::-webkit-scrollbar{display:none}
 html.frbc-v28-portrait-demo #v28-rail .v28-grid{display:flex!important;flex-direction:column!important;gap:3px!important}
 html.frbc-v28-portrait-demo #v28-rail :is(.v28-grid,.v28-portrait-actions)>[data-v28-command]{
  display:flex!important;flex:0 0 clamp(36px,5.35dvh,45px)!important;min-width:0!important;width:40px!important;
  min-height:36px!important;height:clamp(36px,5.35dvh,45px)!important;padding:2px 1px!important;
  flex-direction:column-reverse!important;align-items:center!important;justify-content:center!important;gap:1px!important;
  border:1px solid #83b9dd88!important;border-radius:8px!important;background:#164468e6!important;color:#effaff!important;
 }
 html.frbc-v28-portrait-demo #v28-rail :is(.v28-grid,.v28-portrait-actions)>[data-v28-command] svg{width:19px!important;height:19px!important;fill:none;stroke:currentColor;stroke-width:2}
 html.frbc-v28-portrait-demo #v28-rail :is(.v28-grid,.v28-portrait-actions) .v28-tile-label{display:none!important}
 html.frbc-v28-portrait-demo #v28-rail .v28-grid :is([data-v28-command=zoom-in],[data-v28-command=zoom-out],[data-v28-command=views],[data-v28-command=camera]){display:none!important}
 html.frbc-v28-portrait-demo #v28-rail .v28-portrait-actions{display:flex!important;flex-direction:column!important;gap:3px!important;margin-top:auto!important}
 html.frbc-v28-portrait-demo #v28-rail .v28-portrait-action{display:flex!important;margin-top:0!important}
 html.frbc-v28-portrait-demo #v28-rail .v28-portrait-action .v28-tile-label{display:none!important}
 html.frbc-v28-portrait-demo #v28-rail .v28-shop-balance{display:flex!important;align-items:center!important;gap:1px!important}
 html.frbc-v28-portrait-demo #v28-rail .v28-shop-balance svg{width:13px!important;height:13px!important}
 html.frbc-v28-portrait-demo #v28-rail .v28-shop-credit{font:700 8px/1 system-ui!important}
 html.frbc-v28-portrait-demo #v28-rail-handle{
  display:grid!important;place-items:center;position:fixed!important;z-index:187!important;
  top:max(66px,calc(env(safe-area-inset-top) + 54px))!important;right:max(7px,env(safe-area-inset-right))!important;
  width:32px!important;height:25px!important;padding:0!important;border:1px solid #9bcbed!important;border-radius:8px!important;
  background:#17496be8!important;color:#fff!important;font-size:14px!important;
 }
 html.frbc-v28-portrait-demo.frbc-v28-rail-closed #v28-rail{display:none!important}
 html.frbc-v28-portrait-demo #v28-dock-handle{display:none!important}
 html.frbc-v28-portrait-demo #v28-match-hint{display:none!important}
 html.frbc-v28-portrait-demo #v28-view-choices,html.frbc-v28-portrait-demo #v28-camera-choices{display:none!important}
 html.frbc-v28-portrait-demo #frbc-v28-pause-modal:not([hidden]){
  display:block!important;position:fixed!important;z-index:3600!important;left:12px!important;right:64px!important;
  bottom:max(158px,calc(env(safe-area-inset-bottom) + 148px))!important;max-height:45dvh!important;overflow:auto!important;
 }
}

/* V29.8.2 — only the approved controls: prevent legacy transition flashes.
   The hidden orientation button stays in the DOM as the rotation command's
   native handler; none of the 3D or match logic is replaced. */
#v28-mode-switch,
#board-orientation-switch,
.view-switch,
#skip-decor-intro,
#game .scene-controls,
#mobile-ui .mobile-play > .mobile-rail {display:none!important}
html.frbc-v28-demo #game #pause-actions {display:none!important}

/* Portrait: one horizontal icon rail across the top, never a side column.
   Ten available actions: MENU CHAT PARTIES COUPS HORLOGE AIDE PLATEAU
   BOUTIQUE PAUSE STOP. Full desktop menu layout remains unaffected. */
@media (orientation:portrait) {
 html.frbc-v28-portrait-demo.frbc-mobile-ui {
  --mobile-rail:0px!important;
 }
 html.frbc-v28-portrait-demo.frbc-mobile-ui #mobile-ui .mobile-play {
  grid-template-columns:minmax(0,1fr)!important;
 }
 html.frbc-v28-portrait-demo.frbc-mobile-ui #mobile-ui .mobile-board-wrap {
  width:100%!important;max-width:100%!important;min-width:0!important;
  margin-inline:auto!important;justify-self:center!important;
 }
 html.frbc-v28-portrait-demo #v28-rail {
  display:grid!important;grid-template-columns:repeat(10,minmax(0,1fr))!important;
  align-items:center!important;justify-items:stretch!important;
  position:fixed!important;top:max(82px,calc(env(safe-area-inset-top) + 69px))!important;
  left:max(3px,env(safe-area-inset-left))!important;
  right:max(3px,env(safe-area-inset-right))!important;
  bottom:auto!important;
  width:auto!important;max-width:none!important;height:42px!important;max-height:42px!important;
  gap:2px!important;padding:3px!important;overflow:visible!important;
  border-radius:9px!important;box-sizing:border-box!important;
 }
 html.frbc-v28-portrait-demo #v28-rail .v28-grid,
 html.frbc-v28-portrait-demo #v28-rail .v28-portrait-actions {
  display:contents!important;
 }
 html.frbc-v28-portrait-demo #v28-rail :is(.v28-grid,.v28-portrait-actions)>[data-v28-command] {
  display:flex!important;flex:initial!important;
  min-width:0!important;width:100%!important;
  min-height:0!important;height:34px!important;
  max-width:100%!important;margin:0!important;padding:2px 0!important;
  flex-direction:row!important;align-items:center!important;justify-content:center!important;
  border-radius:6px!important;
 }
 html.frbc-v28-portrait-demo #v28-rail :is(.v28-grid,.v28-portrait-actions)>[data-v28-command] svg {
  display:block!important;width:min(19px,5.3vw)!important;height:min(19px,5.3vw)!important;
  flex:0 1 auto!important;
 }
 html.frbc-v28-portrait-demo #v28-rail .v28-grid :is([data-v28-command=zoom-in],[data-v28-command=zoom-out],[data-v28-command=views],[data-v28-command=camera]){display:none!important}
 html.frbc-v28-portrait-demo #v28-rail :is(.v28-grid,.v28-portrait-actions) .v28-tile-label,
 html.frbc-v28-portrait-demo #v28-rail .v28-shop-credit{display:none!important}
 html.frbc-v28-portrait-demo #v28-rail .v28-shop-balance {display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important}
 html.frbc-v28-portrait-demo #v28-rail .v28-shop-balance svg{width:min(19px,5.3vw)!important;height:min(19px,5.3vw)!important}
 html.frbc-v28-portrait-demo #v28-rail-handle{display:none!important}
 html.frbc-v28-portrait-demo #v28-match-hint{display:none!important}
}

/* Centered, OPAQUE pause dialog with a true dark scrim on desktop and mobile. */
html #frbc-v28-pause-modal:not([hidden]) {
 display:flex!important;flex-direction:column!important;gap:14px!important;
 position:fixed!important;top:50%!important;left:50%!important;
 right:auto!important;bottom:auto!important;
 transform:translate(-50%,-50%)!important;
 width:min(370px,calc(100dvw - 26px))!important;max-width:min(370px,calc(100dvw - 26px))!important;
 max-height:calc(100dvh - 26px)!important;min-height:0!important;
 padding:20px!important;margin:0!important;box-sizing:border-box!important;
 overflow:auto!important;z-index:5000!important;
 border:1px solid #9ec9e7!important;border-radius:16px!important;
 background:#092c48!important;color:#f1f9ff!important;
 box-shadow:0 0 0 100vmax rgba(0,9,23,.76),0 24px 60px rgba(0,0,0,.65)!important;
 opacity:1!important;backdrop-filter:none!important;
}
html #frbc-v28-pause-modal:not([hidden]) header {
 display:flex!important;justify-content:space-between!important;align-items:center!important;gap:10px!important;
}
html #frbc-v28-pause-modal:not([hidden]) header strong {font-size:18px!important;color:#fff!important}
html #frbc-v28-pause-modal:not([hidden]) :is(button,[data-v28-command]) {
 color:#fff!important;border:1px solid #86b7d8!important;background:#174c72!important;
 border-radius:9px!important;min-height:38px!important;padding:8px 12px!important;cursor:pointer!important;
}
html #frbc-v28-pause-modal:not([hidden]) .v28-pause-choices {
 display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;
}
/* Existing native club pause popup: keep its logic and center its backdrop. */
html #frbc-own-pause:not([hidden]){display:flex!important;align-items:center!important;justify-content:center!important;z-index:4900!important;background:rgba(0,9,23,.76)!important}
html #frbc-own-pause:not([hidden]) .frbc-mp-pause-dialog{background:#092c48!important;opacity:1!important}
/* Beat earlier orientation-specific placement for the pause popup. */
html.frbc-v28-portrait-demo #frbc-v28-pause-modal:not([hidden]),
html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #frbc-v28-pause-modal:not([hidden]) {
 top:50%!important;left:50%!important;right:auto!important;bottom:auto!important;
 transform:translate(-50%,-50%)!important;
 width:min(370px,calc(100dvw - 26px))!important;
 max-width:min(370px,calc(100dvw - 26px))!important;
 max-height:calc(100dvh - 26px)!important;
}


/* FRBC V29.8 PROPRE — responsive overlays for approved secondary windows.
   Portrait / landscape each use the PHONE viewport, never change 3D framing.
   Keep the game running, and do not shift any part of the validated HUD. */
html:is(.frbc-v28-portrait-demo,.frbc-v28-demo.frbc-mobile-horizontal) :is(
  #shop-modal,#menu-modal,#frbc-lobby-modal,#profile-modal,
  #rules-modal,#journal-modal,#coach-modal,#frbc-chat-modal,
  #frbc-v298-online-shop
):not([hidden]){
 display:flex!important;position:fixed!important;inset:0!important;
 top:0!important;right:0!important;bottom:0!important;left:0!important;
 width:100dvw!important;height:100dvh!important;max-width:none!important;
 min-width:0!important;min-height:0!important;margin:0!important;
 padding:calc(env(safe-area-inset-top,0px) + 12px) calc(env(safe-area-inset-right,0px) + 12px)
         calc(env(safe-area-inset-bottom,0px) + 12px) calc(env(safe-area-inset-left,0px) + 12px)!important;
 box-sizing:border-box!important;align-items:center!important;justify-content:center!important;
 overflow:hidden!important;border:0!important;transform:none!important;
 background:rgba(2,12,25,.76)!important;opacity:1!important;
 z-index:5400!important;
}
/* A true foreground card with internal scrolling, no fullscreen stretching. */
html:is(.frbc-v28-portrait-demo,.frbc-v28-demo.frbc-mobile-horizontal) :is(
 #shop-modal>.shop-card,#menu-modal>.menu-card,
 #frbc-lobby-modal>.frbc-lobby,#profile-modal>.inventory-panel,
 #rules-modal>.rules-card,#journal-modal>.rules-card,
 #coach-modal>.small-card,#frbc-chat-modal .frbc-chat-card,
 #frbc-v298-online-shop>.frbc-v298-online-shop-card
){
 display:flex!important;flex-direction:column!important;position:relative!important;
 width:min(700px,100%)!important;max-width:100%!important;
 height:auto!important;max-height:100%!important;min-height:0!important;
 margin:auto!important;padding:clamp(10px,2.4vw,20px)!important;
 box-sizing:border-box!important;overflow:auto!important;overscroll-behavior:contain!important;
 border:1px solid #92c3e5!important;border-radius:13px!important;
 background:#0b2945!important;color:#f0f9ff!important;
 box-shadow:0 20px 55px rgba(0,0,0,.62)!important;
}
html:is(.frbc-v28-portrait-demo,.frbc-v28-demo.frbc-mobile-horizontal) :is(
 #shop-modal>.shop-card,#frbc-lobby-modal>.frbc-lobby,#profile-modal>.inventory-panel,
 #frbc-chat-modal .frbc-chat-card,#frbc-v298-online-shop>.frbc-v298-online-shop-card
){height:min(650px,100%)!important}
/* Chat is a foreground floating card. Outside the card, underlying board
   continues receiving pointer input; opening the chat never pauses the game. */
html:is(.frbc-v28-portrait-demo,.frbc-v28-demo.frbc-mobile-horizontal) #frbc-chat-modal:not([hidden]){
 pointer-events:none!important;
}
html:is(.frbc-v28-portrait-demo,.frbc-v28-demo.frbc-mobile-horizontal) #frbc-chat-modal:not([hidden]) .frbc-chat-card{
 pointer-events:auto!important;display:flex!important;flex-direction:column!important;
}
html:is(.frbc-v28-portrait-demo,.frbc-v28-demo.frbc-mobile-horizontal) #frbc-chat-modal:not([hidden]) #frbc-chat-thread{
 flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;
}
/* Moves/tool popover: also floats centrally, never permanently reserves a strip. */
html:is(.frbc-v28-portrait-demo,.frbc-v28-demo.frbc-mobile-horizontal) #moves-panel:not([hidden]){
 position:fixed!important;top:50%!important;left:50%!important;right:auto!important;bottom:auto!important;
 transform:translate(-50%,-50%)!important;width:min(450px,calc(100dvw - 24px))!important;
 max-height:calc(100dvh - 24px)!important;overflow:auto!important;
 background:#0b2945!important;color:#f0f9ff!important;
 border:1px solid #92c3e5!important;border-radius:13px!important;z-index:5350!important;
 box-shadow:0 0 0 100vmax rgba(2,12,25,.45),0 20px 55px #0009!important;
}
/* Native modal's own [hidden] continues to win, even if legacy rules were aggressive. */
html :is(#shop-modal,#menu-modal,#frbc-lobby-modal,#profile-modal,
 #rules-modal,#journal-modal,#coach-modal,#frbc-chat-modal,
 #frbc-v298-online-shop,#moves-panel)[hidden]{display:none!important}

@media (orientation:portrait){
 html.frbc-v28-portrait-demo :is(#shop-modal,#menu-modal,#frbc-lobby-modal,#profile-modal,
 #rules-modal,#journal-modal,#coach-modal,#frbc-chat-modal,#frbc-v298-online-shop):not([hidden]){
  padding:calc(env(safe-area-inset-top,0px) + 16px) calc(env(safe-area-inset-right,0px) + 9px)
          calc(env(safe-area-inset-bottom,0px) + 16px) calc(env(safe-area-inset-left,0px) + 9px)!important;
 }
 html.frbc-v28-portrait-demo :is(#shop-modal>.shop-card,#menu-modal>.menu-card,
 #frbc-lobby-modal>.frbc-lobby,#profile-modal>.inventory-panel,
 #rules-modal>.rules-card,#journal-modal>.rules-card,#coach-modal>.small-card,
 #frbc-chat-modal .frbc-chat-card,#frbc-v298-online-shop>.frbc-v298-online-shop-card){
  width:100%!important;max-height:100%!important;
 }
 html.frbc-v28-portrait-demo :is(#frbc-chat-modal .frbc-chat-card,#frbc-v298-online-shop>.frbc-v298-online-shop-card){
  height:min(590px,78dvh)!important;min-height:0!important;
 }
}
@media (orientation:landscape){
 html.frbc-v28-demo.frbc-mobile-horizontal :is(#shop-modal,#menu-modal,#frbc-lobby-modal,#profile-modal,
 #rules-modal,#journal-modal,#coach-modal,#frbc-chat-modal,#frbc-v298-online-shop):not([hidden]){
  padding:calc(env(safe-area-inset-top,0px) + 6px) calc(env(safe-area-inset-right,0px) + 14px)
          calc(env(safe-area-inset-bottom,0px) + 6px) calc(env(safe-area-inset-left,0px) + 14px)!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal :is(#shop-modal>.shop-card,#menu-modal>.menu-card,
 #frbc-lobby-modal>.frbc-lobby,#profile-modal>.inventory-panel,
 #rules-modal>.rules-card,#journal-modal>.rules-card,#coach-modal>.small-card,
 #frbc-chat-modal .frbc-chat-card,#frbc-v298-online-shop>.frbc-v298-online-shop-card){
  width:min(790px,84dvw)!important;height:min(480px,100%)!important;max-height:100%!important;
 }
}
/* Direct online.html shop: real home shop shown within this popup. */
#frbc-v298-online-shop .frbc-v298-online-shop-card{padding:0!important;overflow:hidden!important}
#frbc-v298-online-shop header{
 display:flex;justify-content:space-between;align-items:center;gap:12px;
 flex:0 0 auto;padding:8px 12px;border-bottom:1px solid #83bbdf88;
}
#frbc-v298-online-shop header button{
 border:1px solid #9fc8e7;border-radius:8px;background:#174f76;color:#fff;
 font:700 24px/1 system-ui;min-height:32px;min-width:38px;cursor:pointer;
}
#frbc-v298-online-shop iframe{border:0;flex:1 1 auto;width:100%;min-height:0;background:#0b2945}


/* FRBC V29.8 master: only the approved portrait clock/score alignment,
   landscape current-game left rail, and personal camera editor. */
@media (orientation:portrait){
 html.frbc-v28-portrait-demo #v28-rail{top:var(--frbc-portrait-rail-top,82px)!important;}
 html.frbc-v28-portrait-demo #mobile-ui .mobile-summary{
  display:grid!important;grid-template-columns:39px minmax(0,1fr) minmax(82px,27%)!important;
  gap:5px!important;align-items:center!important;padding-right:5px!important;
 }
 html.frbc-v28-portrait-demo #mobile-ui #mobile-score{grid-column:2!important;width:100%!important;margin:0!important;}
 html.frbc-v28-portrait-demo #mobile-ui #mobile-brand{grid-column:1!important;min-width:0!important;}
 html.frbc-v28-portrait-demo #mobile-ui #mobile-wallet{grid-column:3!important;visibility:hidden!important;}
 html.frbc-v28-portrait-demo :is(#frbc-clock-display,#frbc-online-clock-display):not([hidden]){
  position:fixed!important;top:var(--frbc-portrait-score-top,54px)!important;right:max(7px,env(safe-area-inset-right))!important;
  width:min(27vw,166px)!important;max-width:27vw!important;height:42px!important;max-height:42px!important;
  z-index:120!important;display:flex!important;justify-content:center!important;align-items:center!important;
  margin:0!important;padding:3px!important;transform:none!important;font-size:10px!important;
  background:#123453!important;border:1px solid #82b5d4!important;border-radius:9px!important;
 }
 html.frbc-v28-portrait-demo #v28-clock-indicator{display:none!important;}
}
@media (orientation:landscape){
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro){
  --v28-left-width:clamp(105px,12.4vw,154px)!important;
  --v28-left-edge:max(8px,env(safe-area-inset-left))!important;
  --v28-left-top:max(79px,calc(env(safe-area-inset-top) + 79px))!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock:not([hidden]){
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  gap:6px!important;padding:8px!important;max-height:calc(100dvh - var(--v28-left-top) - 76px)!important;
  border:1px solid #75b0d7!important;border-radius:11px!important;overflow-y:auto!important;
  background:linear-gradient(155deg,#163d5c 0%,#0b2944 50%,#061b30 100%)!important;
  box-shadow:0 9px 24px #0009,inset 0 1px 0 #ffffff28!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #frbc-v298-game-state{
  display:flex!important;flex-direction:column!important;gap:4px!important;flex:0 0 auto!important;
  padding:7px 5px!important;border-radius:8px!important;overflow:hidden!important;
  background:linear-gradient(115deg,#153f61,#0c2945)!important;
  border:1px solid #77a9cd78!important;text-align:center!important;color:#eaf6ff!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #frbc-v298-game-state small{
  font:800 clamp(6px,.72vw,9px)/1.1 system-ui!important;letter-spacing:.05em!important;color:#8fd2f6!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #frbc-v298-game-state strong{
  font:800 clamp(10px,1.16vw,14px)/1.2 system-ui!important;color:#fff!important;overflow-wrap:anywhere!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #frbc-v298-game-state span{
  font:500 clamp(8px,.84vw,11px)/1.3 system-ui!important;color:#c9e5fa!important;overflow-wrap:anywhere!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock .dock-actions{
  display:flex!important;flex-direction:column!important;gap:5px!important;width:100%!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock :is(.dock-actions,.dock-secondary) button{
  min-height:32px!important;font-size:clamp(9px,.95vw,12px)!important;padding:5px 4px!important;
  border-radius:7px!important;line-height:1.15!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock #roll-button{
  background:linear-gradient(145deg,#ead49f,#c8a765)!important;color:#10233c!important;
  border:1px solid #ffe5b6!important;font-weight:850!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock :is(#cube-button,#undo-button){
  background:#174362!important;color:#cce9fa!important;border:1px solid #77afd45e!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock :is(#cube-button,#undo-button):disabled{opacity:.53!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock .dock-secondary{
  margin-top:0!important;flex:0 0 auto!important;gap:5px!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock #frbc-v28-dock-controls{
  margin-top:2px!important;flex:0 0 auto!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #game-dock #frbc-v28-dock-controls button{
  min-height:32px!important;background:#123958!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-dock-handle{
  top:var(--v28-left-top)!important;
 }
}
/* Camera editor is a nonmodal HUD; never displaces approved game controls. */
#frbc-player-camera-editor[hidden]{display:none!important}
#frbc-player-camera-editor{
 position:fixed;z-index:5100;inset:auto 0 max(8px,env(safe-area-inset-bottom)) 0;
 display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;
 font:600 12px/1.3 system-ui;color:#f5faff;
}
#frbc-player-camera-editor .frbc-custom-head{
 pointer-events:auto;display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;
 padding:7px 10px;background:#0c2949ee;border:1px solid #91c2e3;border-radius:11px;box-shadow:0 10px 30px #0008;
}
#frbc-player-camera-editor button{pointer-events:auto;min-height:37px;min-width:44px;padding:7px 10px;border:1px solid #8fbddd;border-radius:8px;background:#1a4b6d;color:#fff;cursor:pointer;font-weight:750;}
#frbc-player-camera-editor button.frbc-save{background:#c6a96d;color:#14263e;border-color:#f6db9b;}
#frbc-player-camera-editor .frbc-custom-arrows{pointer-events:auto;display:grid;grid-template-columns:repeat(3,39px);gap:3px;padding:5px;background:#0c2949ee;border:1px solid #91c2e3;border-radius:12px;}
#frbc-player-camera-editor .frbc-custom-arrows button{min-width:0;min-height:35px;padding:2px;font-size:19px;}
#frbc-player-camera-editor .frbc-custom-arrows button[data-shift=up]{grid-column:2;}
#frbc-player-camera-editor .frbc-custom-arrows button[data-shift=left]{grid-column:1;grid-row:2;}
#frbc-player-camera-editor .frbc-custom-arrows button[data-shift=down]{grid-column:2;grid-row:2;}
#frbc-player-camera-editor .frbc-custom-arrows button[data-shift=right]{grid-column:3;grid-row:2;}
#frbc-player-camera-editor .frbc-custom-tip{font-size:11px;background:#092742d9;border-radius:7px;padding:4px 8px;text-align:center;}
html.frbc-player-camera-editing #game-dock,html.frbc-player-camera-editing #v28-rail{opacity:.35!important;pointer-events:none!important;}
@media (orientation:landscape) and (max-height:410px){#frbc-player-camera-editor{inset:auto max(4px,env(safe-area-inset-right)) max(3px,env(safe-area-inset-bottom)) auto;gap:3px;align-items:flex-end;}#frbc-player-camera-editor .frbc-custom-tip{max-width:230px;}#frbc-player-camera-editor .frbc-custom-arrows{grid-template-columns:repeat(3,34px);}}

/* V29.8.4: mount the existing real running clock inside the approved clock
   indicator slot. Never change the native time calculations or player turns. */
html.frbc-v28-demo #v28-clock-indicator.frbc-clock-live{
 display:flex!important;align-items:center!important;justify-content:center!important;
 box-sizing:border-box!important;overflow:hidden!important;
 background:#0e304e!important;color:#f5fbff!important;
 border:1px solid #7ca9c8!important;border-radius:8px!important;
 min-height:25px!important;z-index:110!important;
}
html.frbc-v28-demo #v28-clock-indicator.frbc-clock-live :is(#frbc-clock-display,#frbc-online-clock-display){
 position:static!important;inset:auto!important;top:auto!important;right:auto!important;
 bottom:auto!important;left:auto!important;transform:none!important;
 float:none!important;display:flex!important;align-items:center!important;
 justify-content:space-around!important;flex-wrap:wrap!important;
 width:100%!important;max-width:100%!important;height:100%!important;
 min-height:0!important;max-height:100%!important;margin:0!important;padding:2px!important;
 box-shadow:none!important;font-size:inherit!important;
}
/* Portrait clock remains outside the menu, in the top-right of the scoreboard. */
@media (orientation:portrait){
 html.frbc-v28-portrait-demo #v28-clock-indicator.frbc-clock-live{display:none!important;}
}


/* FRBC V29.8.6 — Mobile camera adjustment is a clean-room experience.
   Match HIDE rules use visibility to preserve validated scene geometry and state.
   Never hide the editor within #mobile-ui. */
html:is(.frbc-camera-editing,.frbc-player-camera-editing) :is(
 #v28-rail,#v28-rail-handle,#v28-dock-handle,#v28-match-hint,
 #v28-clock-indicator,#v28-sessions-panel,#frbc-v28-pause-modal,
 #game-dock,.topbar,.top-actions,.match-score,
 #frbc-chat-open,#frbc-chat-modal,#shop-modal,#menu-modal,
 #frbc-lobby-modal,#profile-modal,#rules-modal,#journal-modal,
 #coach-modal,#moves-panel,#frbc-v298-online-shop,
 #explore-help,#frbc-match-pause,#toast,.frbc-notification-root,.side-stats,.room-pill,.decor-intro,.walk-pad,#frbc-clock-display,
 #frbc-online-clock-display,#frbc-v298-state,#frbc-v298-state-title,
 #frbc-v298-dock,#frbc-v298-state-copy,#turn-toast,
 #opening-help,#opening-instructions,.frbc-game-notification,
 #frbc-notification-host,#frbc-notifications,#frbc-notification-layer
 ){
 visibility:hidden!important;opacity:0!important;pointer-events:none!important;
}
/* During mobile-landscape editing, only the D-pad and save/cancel controls
   survive inside the mobile HUD. Game canvas remains fully touch-responsive. */
html.frbc-camera-editing #mobile-ui > :not(.frbc-camera-edit-controls){
 visibility:hidden!important;opacity:0!important;pointer-events:none!important;
}
html.frbc-camera-editing #mobile-ui{pointer-events:none!important;background:transparent!important;}
html.frbc-camera-editing #mobile-ui .frbc-camera-edit-controls:not([hidden]){
 visibility:visible!important;opacity:1!important;pointer-events:auto!important;z-index:6200!important;
}
html.frbc-player-camera-editing #frbc-player-camera-editor:not([hidden]){
 visibility:visible!important;opacity:1!important;pointer-events:none!important;z-index:6200!important;
}
html.frbc-player-camera-editing #frbc-player-camera-editor button{pointer-events:auto!important;}
/* The lobby must NEVER flex-shrink its list to zero while a solo game is
   playing underneath the overlay. The scroll belongs to the modal card. */
@media (max-width:1100px), (pointer:coarse){
 html:is(.frbc-v28-demo,.frbc-v28-portrait-demo) #frbc-lobby-modal>.frbc-lobby{
  display:block!important;overflow-x:hidden!important;overflow-y:auto!important;
  overscroll-behavior:contain!important;
 }
 html:is(.frbc-v28-demo,.frbc-v28-portrait-demo) #frbc-lobby-modal #frbc-lobby-players{
  display:grid!important;flex:none!important;flex-shrink:0!important;
  height:auto!important;min-height:100px!important;
  max-height:min(42dvh,390px)!important;overflow-y:auto!important;
  align-content:start!important;
 }
}
/* Keep the salon's real scroll pane (not an elastic flex child) in both
   mobile orientations, regardless of preceding CSS specificity. */
html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui #frbc-lobby-modal>.frbc-lobby,
html.frbc-v28-portrait-demo.frbc-mobile-ui #frbc-lobby-modal>.frbc-lobby{
 display:block!important;overflow-y:auto!important;overflow-x:hidden!important;
}
/* V29.8.6 clock: the original live timer continues to update invisibly in
   landscape/PC; this header slot shows its actual text, never a fake timer. */
html.frbc-v28-demo:not(.frbc-v28-portrait-demo) .frbc-clock-source-mirrored:not([hidden]){
 visibility:hidden!important;pointer-events:none!important;
}
html.frbc-v28-demo #v28-clock-indicator.frbc-clock-live{
 display:flex!important;align-items:center!important;justify-content:center!important;
 font-variant-numeric:tabular-nums!important;white-space:nowrap!important;
 min-height:25px!important;font-size:clamp(10px,1.15vw,15px)!important;
 background:#0e304e!important;color:#fff!important;border:1px solid #7ca9c8!important;
 border-radius:8px!important;
}
html.frbc-v28-portrait-demo #v28-clock-indicator{display:none!important;}


/* V29.8.7 — only the approved portrait clock slot; retain all HUD geometry. */
@media (orientation:portrait){
 html.frbc-v28-portrait-demo #v28-clock-indicator.frbc-clock-portrait:not([hidden]){
  display:flex!important;position:fixed!important;
  top:var(--frbc-portrait-score-top,54px)!important;
  right:max(7px,env(safe-area-inset-right,0px))!important;
  left:auto!important;bottom:auto!important;
  width:min(27vw,166px)!important;max-width:27vw!important;
  min-height:42px!important;height:42px!important;max-height:42px!important;
  padding:3px 4px!important;margin:0!important;box-sizing:border-box!important;
  align-items:center!important;justify-content:center!important;text-align:center!important;
  font:700 clamp(9px,2.7vw,14px)/1.25 system-ui!important;
  white-space:nowrap!important;font-variant-numeric:tabular-nums!important;
  background:#123453!important;color:#e8f6ff!important;
  border:1px solid #82b5d4!important;border-radius:9px!important;
  opacity:1!important;filter:none!important;z-index:200!important;pointer-events:none!important;
 }
 html.frbc-v28-portrait-demo #v28-clock-indicator.frbc-clock-portrait.v28-muted:not([hidden]){
  color:#e8f6ff!important;opacity:1!important;filter:none!important;
 }
}
/* The native timer stays alive and keeps ticking; only its visual copy
   is suppressed while the V28 header slot mirrors its REAL output. */
html.frbc-v28-demo .frbc-clock-source-mirrored:not([hidden]){
 visibility:hidden!important;opacity:0!important;pointer-events:none!important;
}
/* Maintain readable, single-purpose camera controls over the scene. */
#mobile-ui .frbc-camera-edit-buttons .frbc-camera-edit-default{
 border:1px solid #86b5d6;border-radius:8px;background:#163952;color:#f6fbff;
 font-weight:700;cursor:pointer;
}

/* V29.8.8: only the camera editor pop-up gains a visible close action. */
#mobile-ui .frbc-camera-edit-buttons button.frbc-camera-edit-close,
#frbc-player-camera-editor .frbc-custom-head button.frbc-camera-popup-close{
 min-width:34px!important;min-height:34px!important;padding:3px 9px!important;
 font-size:23px!important;line-height:1!important;
 border:1px solid #9ac5e3!important;background:#164967!important;color:#fff!important;
 border-radius:9px!important;cursor:pointer!important;
}


/* V29.8.9 — STRICT MOBILE ONLY. Portrait master = reference image 2.
   Keep the original 3D render rig, its board-numbering meshes, and all
   scene/camera/gameplay files unchanged. */
@media (orientation:portrait) {
 html.frbc-v28-portrait-demo.frbc-mobile-ui #mobile-ui .mobile-summary {
   grid-template-columns:39px minmax(0,1fr) minmax(82px,27%)!important;
   gap:5px!important;
 }
 /* Reference clock occupies the same width as its score-row column, but
    only 30px HIGH (centered vertically), never the inflated 42px card. */
 html.frbc-v28-portrait-demo #v28-clock-indicator.frbc-clock-portrait:not([hidden]),
 html.frbc-v28-portrait-demo #v28-clock-indicator.frbc-clock-portrait.frbc-clock-live:not([hidden]) {
   box-sizing:border-box!important;
   top:calc(var(--frbc-portrait-score-top,54px) + 5px)!important;
   right:max(7px,env(safe-area-inset-right))!important;
   width:min(27vw,166px)!important;max-width:min(27vw,166px)!important;
   height:30px!important;min-height:30px!important;max-height:30px!important;
   margin:0!important;padding:2px 4px!important;border-radius:8px!important;
   font-size:clamp(9px,2.45vw,12px)!important;line-height:1.1!important;
   overflow:hidden!important;
 }
 html.frbc-v28-portrait-demo :is(#frbc-clock-display,#frbc-online-clock-display):not([hidden]) {
   top:calc(var(--frbc-portrait-score-top,54px) + 5px)!important;
   right:max(7px,env(safe-area-inset-right))!important;
   width:min(27vw,166px)!important;max-width:min(27vw,166px)!important;
   height:30px!important;min-height:30px!important;max-height:30px!important;
 }
 /* Only move the existing portrait WebGL viewport/canvas/hit targets as a
    single unit. The approved wood/frame/number models are untouched.
    This lowers the board into the reference frame and uncovers its cube. */
 html.frbc-v28-portrait-demo.frbc-mobile-ui:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-board-wrap {
   transform:translateY(24px)!important;
 }
 /* Friend presence and invitations: a SHORT full-width card just above
    the lower action bar. No side notifications in portrait. */
 html.frbc-v28-portrait-demo.frbc-mobile-ui body .frbc-notification-root,
 html.frbc-v28-portrait-demo.frbc-mobile-ui body.frbc-mobile-ui .frbc-notification-root {
   position:fixed!important;top:auto!important;
   left:max(7px,env(safe-area-inset-left))!important;
   right:max(7px,env(safe-area-inset-right))!important;
   bottom:calc(max(5px,env(safe-area-inset-bottom)) + 62px)!important;
   width:auto!important;max-width:none!important;
   max-height:min(106px,16dvh)!important;
   display:flex!important;gap:3px!important;overflow-y:auto!important;
   border-radius:10px!important;z-index:3100!important;
 }
 html.frbc-v28-portrait-demo.frbc-mobile-ui body .frbc-player-notice {
   display:grid!important;grid-template-columns:minmax(0,48%) minmax(0,1fr)!important;
   align-items:center!important;gap:3px 8px!important;
   width:100%!important;min-height:40px!important;max-width:100%!important;
   padding:5px 26px 5px 8px!important;border-radius:10px!important;
   font-size:11px!important;line-height:1.2!important;
 }
 html.frbc-v28-portrait-demo.frbc-mobile-ui body .frbc-notice-identity{min-width:0!important;gap:6px!important;}
 html.frbc-v28-portrait-demo.frbc-mobile-ui body .frbc-notice-avatar{width:26px!important;height:26px!important;min-width:26px!important;font-size:15px!important;}
 html.frbc-v28-portrait-demo.frbc-mobile-ui body .frbc-notice-identity :is(strong,small){font-size:10px!important;line-height:1.2!important;}
 html.frbc-v28-portrait-demo.frbc-mobile-ui body .frbc-notice-identity strong{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;max-width:32vw!important;}
 html.frbc-v28-portrait-demo.frbc-mobile-ui body .frbc-notice-message{font-size:11px!important;line-height:1.2!important;}
 html.frbc-v28-portrait-demo.frbc-mobile-ui body :is(.frbc-notice-actions,.frbc-notice-action){grid-column:1/-1!important;}
 html.frbc-v28-portrait-demo.frbc-mobile-ui body .frbc-notice-action{min-height:26px!important;padding:3px 8px!important;}
}
/* Landscape notifications always sit UNDER THE RIGHT ICON MENU. UI popups
   such as Shop/Chat continue to use their existing centered modal layout. */
@media (orientation:landscape) {
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notification-root,
 html.frbc-v28-demo.frbc-mobile-horizontal body.frbc-mobile-ui .frbc-notification-root {
   position:fixed!important;
   top:var(--frbc-mobile-notice-top,350px)!important;
   bottom:auto!important;left:auto!important;
   right:var(--v28-edge,5px)!important;
   width:var(--v28-right,150px)!important;
   max-width:var(--v28-right,150px)!important;
   max-height:var(--frbc-mobile-notice-room,30dvh)!important;
   overflow:auto!important;gap:4px!important;z-index:3100!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-player-notice {
   display:grid!important;grid-template-columns:minmax(0,1fr)!important;
   width:100%!important;max-width:100%!important;
   padding:6px 23px 7px 7px!important;gap:4px!important;
   min-height:40px!important;border-radius:9px!important;
   font-size:10px!important;line-height:1.25!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-avatar{width:26px!important;height:26px!important;font-size:15px!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-identity{gap:5px!important;min-width:0!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-identity strong{font-size:10px!important;overflow-wrap:anywhere!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-identity small{font-size:9px!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal body :is(.frbc-notice-message,.frbc-notice-action){font-size:10px!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-match-hint:not([hidden]) {
   top:var(--frbc-mobile-hint-top,360px)!important;
   bottom:auto!important;left:auto!important;
   right:var(--v28-edge,5px)!important;
   width:var(--v28-right,150px)!important;
   max-width:var(--v28-right,150px)!important;
   max-height:var(--frbc-mobile-hint-room,100px)!important;
   min-height:40px!important;
   overflow:auto!important;
   cursor:pointer!important;z-index:200!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-match-hint.v28-hint-actionable {border-color:#a8ddff!important;box-shadow:0 0 0 1px #b6e7ff80,0 7px 20px #0007!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-match-hint.v28-hint-actionable:focus-visible {outline:2px solid #fff!important;outline-offset:2px!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #toast.show {
   top:var(--frbc-mobile-toast-top,375px)!important;
   bottom:auto!important;left:auto!important;
   right:var(--v28-edge,5px)!important;
   width:var(--v28-right,150px)!important;
   max-width:var(--v28-right,150px)!important;
   max-height:var(--frbc-mobile-toast-room,75px)!important;
   overflow:auto!important;z-index:190!important;
 }
}


/* FRBC V29.8.10 — mobile landscape only, validated menu layout unchanged.
   The left chevron closes BOTH left game controls and left-side notices.
   The right chevron closes ONLY the right icon rail (clock/score remain).
   Important: override preceding :not([hidden]) dock rule which previously
   outweighed the old .frbc-v28-dock-closed selector. */
@media (orientation:landscape) {
 html.frbc-v28-demo.frbc-mobile-horizontal.frbc-v28-dock-closed:not(.mobile-intro) #game-dock:not([hidden]) {
  display:none!important;
 }
 /* Folded notifications remain in DOM and resume without loss on reopening. */
 html.frbc-v28-demo.frbc-mobile-horizontal.frbc-v28-dock-closed:not(.mobile-intro) :is(
  #v28-match-hint:not([hidden]), #toast.show,
  .frbc-notification-root, #explore-help:not([hidden])
 ) {display:none!important;pointer-events:none!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal.frbc-v28-rail-closed:not(.mobile-intro) #v28-rail:not([hidden]) {
  display:none!important;
 }
 /* The right arrow must never grow when clock switches from OFF to ON. */
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-rail-handle,
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro):has(#frbc-clock-display:not([hidden])) #v28-rail-handle,
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro):has(#frbc-online-clock-display:not([hidden])) #v28-rail-handle {
  display:grid!important;place-items:center!important;position:fixed!important;
  top:var(--v28-account-top)!important;right:var(--v28-edge)!important;
  width:24px!important;min-width:24px!important;max-width:24px!important;
  height:24px!important;min-height:24px!important;max-height:24px!important;
  box-sizing:border-box!important;padding:0!important;margin:0!important;
  font:700 17px/1 system-ui!important;line-height:1!important;
  flex:none!important;transform:none!important;overflow:hidden!important;
  border-radius:7px!important;
 }
 /* Correct side: beneath the LEFT game menu, in the bottom-left area.
    Slot sizes are measured in JS to stack different notice heights. */
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) body .frbc-notification-root,
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) body.frbc-mobile-ui .frbc-notification-root {
  position:fixed!important;top:auto!important;right:auto!important;
  left:var(--v28-left-edge)!important;
  bottom:var(--frbc-mobile-left-notice-bottom,65px)!important;
  width:clamp(148px,24vw,205px)!important;max-width:clamp(148px,24vw,205px)!important;
  max-height:min(140px,28dvh)!important;
  overflow-y:auto!important;gap:4px!important;z-index:3100!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) body .frbc-player-notice {
  display:grid!important;grid-template-columns:minmax(0,1fr)!important;
  width:100%!important;max-width:100%!important;
  min-height:38px!important;padding:5px 22px 6px 6px!important;
  gap:3px!important;border-radius:9px!important;
  font-size:10px!important;line-height:1.2!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #v28-match-hint:not([hidden]) {
  top:auto!important;right:auto!important;left:var(--v28-left-edge)!important;
  bottom:var(--frbc-mobile-left-hint-bottom,5px)!important;
  width:clamp(148px,24vw,205px)!important;max-width:clamp(148px,24vw,205px)!important;
  min-height:40px!important;max-height:68px!important;overflow:auto!important;
  z-index:200!important;cursor:pointer!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal:not(.mobile-intro) #toast.show {
  top:auto!important;right:auto!important;left:var(--v28-left-edge)!important;
  bottom:var(--frbc-mobile-left-toast-bottom,125px)!important;
  width:clamp(148px,24vw,205px)!important;max-width:clamp(148px,24vw,205px)!important;
  max-height:min(90px,20dvh)!important;overflow:auto!important;
  z-index:190!important;
 }
}

/* FRBC V30 — mobile finishing pass only. Keep the approved game/scene and
   menu structure; reclaim space and prevent mobile controls from covering it. */
@media (orientation:landscape) {
 html.frbc-v28-demo.frbc-mobile-horizontal {
  --v28-left-width:clamp(148px,17vw,214px)!important;
  --v28-left-edge:max(7px,env(safe-area-inset-left))!important;
  --v28-left-top:max(66px,calc(env(safe-area-inset-top) + 66px))!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal .topbar .brand {
  gap:7px!important;max-width:min(245px,31vw)!important;min-width:0!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal .topbar .brand-logo {
  width:44px!important;height:44px!important;min-width:44px!important;max-width:44px!important;
  flex:0 0 44px!important;object-fit:contain!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal .topbar .brand>span {
  font-size:8px!important;line-height:1.35!important;letter-spacing:.12em!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal .topbar .brand>span small {
  font-size:8px!important;letter-spacing:.12em!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #game-dock:not([hidden]) {
  bottom:max(55px,calc(env(safe-area-inset-bottom) + 48px))!important;
  max-height:calc(100dvh - var(--v28-left-top) - 62px)!important;
  padding:7px!important;gap:5px!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #game-dock .turn-info {
  display:flex!important;flex-direction:column!important;gap:3px!important;
  padding:8px!important;margin:0!important;border-radius:8px!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #game-dock .turn-info :is(#turn-kicker,#online-turn-kicker) {
  font-size:8px!important;line-height:1.1!important;letter-spacing:.08em!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #game-dock .turn-info h1 {
  font-size:clamp(12px,1.25vw,16px)!important;line-height:1.18!important;margin:0!important;
  overflow-wrap:normal!important;word-break:normal!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #game-dock .turn-info p {
  font-size:clamp(10px,1vw,12px)!important;line-height:1.24!important;margin:0!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #game-dock :is(.dock-actions,.dock-secondary) button {
  min-height:36px!important;padding:6px 7px!important;font-size:10px!important;line-height:1.15!important;
  overflow-wrap:normal!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #v28-rail-handle {
  inline-size:24px!important;block-size:24px!important;min-inline-size:24px!important;min-block-size:24px!important;
  max-inline-size:24px!important;max-block-size:24px!important;flex:0 0 24px!important;contain:strict!important;
 }
 /* One compact, readable status row below the right control rail. */
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notification-root,
 html.frbc-v28-demo.frbc-mobile-horizontal body.frbc-mobile-ui .frbc-notification-root {
  position:fixed!important;top:auto!important;left:auto!important;right:var(--v28-edge,5px)!important;
  bottom:var(--frbc-mobile-notice-bottom,52px)!important;width:var(--v28-right,150px)!important;
  max-width:var(--v28-right,150px)!important;max-height:min(86px,22dvh)!important;
  display:flex!important;flex-direction:column!important;gap:3px!important;overflow-y:auto!important;z-index:3100!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-player-notice {
  display:flex!important;flex-flow:row nowrap!important;align-items:center!important;gap:5px!important;
  width:100%!important;min-width:0!important;min-height:38px!important;max-height:42px!important;
  padding:4px 20px 4px 6px!important;border-radius:8px!important;font-size:9px!important;line-height:1.15!important;
  overflow:hidden!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-identity {flex:0 1 auto!important;min-width:0!important;gap:4px!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-avatar {width:22px!important;height:22px!important;min-width:22px!important;font-size:12px!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-identity :is(strong,small),
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-message {
  display:block!important;min-width:0!important;max-width:100%!important;font-size:9px!important;line-height:1.15!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-actions {display:flex!important;flex:0 0 auto!important;gap:3px!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal body .frbc-notice-action {min-height:24px!important;padding:2px 5px!important;font-size:9px!important;white-space:nowrap!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal #v28-match-hint:not([hidden]),
 html.frbc-v28-demo.frbc-mobile-horizontal #toast.show {
  top:auto!important;left:auto!important;right:var(--v28-edge,5px)!important;
  width:var(--v28-right,150px)!important;
  max-width:var(--v28-right,150px)!important;min-height:36px!important;height:36px!important;max-height:36px!important;
  padding:5px 22px 5px 7px!important;overflow:hidden!important;border-radius:8px!important;
 }
 html.frbc-v28-demo.frbc-mobile-horizontal #v28-match-hint:not([hidden]) {bottom:var(--frbc-mobile-hint-bottom,5px)!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal #toast.show {bottom:var(--frbc-mobile-toast-bottom,87px)!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal #v28-hint-text {display:flex!important;flex-flow:row nowrap!important;align-items:center!important;gap:5px!important;min-width:0!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal .v28-hint-icon {flex:0 0 auto!important;font-size:15px!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal .v28-hint-content {display:flex!important;flex-flow:row nowrap!important;align-items:baseline!important;gap:5px!important;min-width:0!important;overflow:hidden!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal #v28-hint-heading {flex:0 0 auto!important;font-size:10px!important;line-height:1.1!important;white-space:nowrap!important;}
 html.frbc-v28-demo.frbc-mobile-horizontal #v28-hint-caption {display:block!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:9px!important;line-height:1.1!important;}
}

/* Keep both portrait and landscape shop cards visible beneath the pinned
   selection summary. Selection controls are returned to the card flow so
   they never sit over product artwork. */
@media (orientation:portrait),(orientation:landscape) and (max-width:1100px) {
 html #shop-modal:not([hidden]) {padding:4px!important;}
 html #shop-modal>.shop-card {
  display:flex!important;flex-direction:column!important;overflow-x:hidden!important;overflow-y:auto!important;
  overscroll-behavior:contain!important;scrollbar-gutter:stable!important;
  width:min(96dvw,1120px)!important;height:min(94dvh,900px)!important;max-height:94dvh!important;
  padding:clamp(12px,2.3vw,22px)!important;
 }
 html #shop-modal .shop-heading {gap:10px!important;margin:4px 0 10px!important;}
 html #shop-modal #shop-title {font-size:clamp(22px,4vw,34px)!important;line-height:1.05!important;margin:0!important;}
 html #shop-modal .shop-wallet {min-width:0!important;padding:8px 10px!important;gap:4px!important;}
 html #shop-modal .frbc-shop-selection {
  position:sticky!important;top:0!important;z-index:80!important;flex:0 0 auto!important;
  display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important;
  gap:7px!important;min-height:56px!important;margin:0 0 10px!important;padding:8px 10px!important;
  border-radius:12px!important;background:#153a59f5!important;box-shadow:0 5px 14px #06182a70!important;
 }
 html #shop-modal .frbc-selection-copy {display:flex!important;flex-direction:column!important;gap:2px!important;min-width:0!important;}
 html #shop-modal .frbc-selection-copy :is(strong,span) {font-size:12px!important;line-height:1.1!important;}
 html #shop-modal .frbc-selection-copy small {display:none!important;}
 html #shop-modal .frbc-selection-total {display:flex!important;align-items:center!important;gap:4px!important;white-space:nowrap!important;}
 html #shop-modal .frbc-selection-total :is(span,strong) {font-size:12px!important;line-height:1.1!important;}
 html #shop-modal .frbc-selection-total img {width:22px!important;height:22px!important;}
 html #shop-modal #frbc-clear-selection {min-height:34px!important;padding:4px 8px!important;font-size:11px!important;}
 html #shop-modal #shop-grid {scroll-margin-top:70px!important;}
 html #shop-modal #shop-grid :is(label,button):has(input[type="checkbox"]) {
  position:relative!important;inset:auto!important;float:none!important;transform:none!important;z-index:2!important;
  display:inline-flex!important;align-items:center!important;gap:5px!important;align-self:flex-start!important;
  width:max-content!important;max-width:calc(100% - 12px)!important;margin:6px!important;
  padding:5px 8px!important;white-space:nowrap!important;
 }
 html #shop-modal #shop-grid input[type="checkbox"] {
  position:static!important;transform:none!important;flex:0 0 16px!important;width:16px!important;height:16px!important;margin:0!important;
 }
 html #shop-modal .credits-packs {padding:10px!important;margin:8px 0!important;}
 html #shop-modal .shop-tabs {position:sticky!important;top:66px!important;z-index:70!important;}
}

/* The clock stays in one fixed-size slot and short text never expands the arrow. */
html.frbc-v28-demo #v28-clock-indicator:not([hidden]) {
 box-sizing:border-box!important;min-width:0!important;max-width:100%!important;
 overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
 font-variant-numeric:tabular-nums!important;contain:layout size!important;
}
@media (orientation:portrait) {
 html.frbc-v28-portrait-demo #v28-clock-indicator.frbc-clock-portrait:not([hidden]) {
  width:min(27vw,166px)!important;max-width:min(27vw,166px)!important;
  font-size:clamp(8px,2.35vw,11px)!important;text-overflow:ellipsis!important;
 }
}

/* V30.1 — apply the landscape finishing rules from the mobile orientation
   class itself. The game shell may still be in its intro/first-roll state,
   so these essentials must not depend on frbc-v28-demo being active. */
@media (orientation:landscape) {
 html.frbc-mobile-horizontal .topbar .brand {
  gap:7px!important;max-width:min(220px,28vw)!important;min-width:0!important;
 }
 html.frbc-mobile-horizontal .topbar .brand-logo {
  width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;
  flex:0 0 46px!important;object-fit:contain!important;
 }
 html.frbc-mobile-horizontal .topbar .brand>span,
 html.frbc-mobile-horizontal .topbar .brand>span small {
  font-size:8px!important;line-height:1.3!important;letter-spacing:.12em!important;
 }
 html.frbc-mobile-horizontal :is(#game-dock,#online-game-dock):not([hidden]) {
  box-sizing:border-box!important;width:clamp(205px,20vw,280px)!important;
  min-width:clamp(205px,20vw,280px)!important;max-width:clamp(205px,20vw,280px)!important;
 }
 html.frbc-mobile-horizontal #game-dock .turn-info,
 html.frbc-mobile-horizontal #online-game-dock .turn-info {
  min-width:0!important;overflow-wrap:normal!important;word-break:normal!important;
 }
 html.frbc-mobile-horizontal :is(#game-dock,#online-game-dock) .turn-info h1 {
  font-size:clamp(13px,1.25vw,17px)!important;line-height:1.18!important;
 }
 html.frbc-mobile-horizontal :is(#game-dock,#online-game-dock) .turn-info p {
  font-size:clamp(11px,1vw,13px)!important;line-height:1.25!important;
 }
 html.frbc-mobile-horizontal #v28-match-hint:not([hidden]),
 html.frbc-mobile-horizontal #toast.show {
  left:auto!important;right:var(--v28-edge,5px)!important;
  width:var(--v28-right,150px)!important;max-width:var(--v28-right,150px)!important;
  min-height:36px!important;height:36px!important;max-height:36px!important;
  padding:5px 22px 5px 7px!important;overflow:hidden!important;border-radius:8px!important;
 }
 html.frbc-mobile-horizontal #v28-match-hint:not([hidden]) {bottom:5px!important;}
 html.frbc-mobile-horizontal #toast.show {bottom:48px!important;}
 html.frbc-mobile-horizontal #v28-hint-text {display:flex!important;flex-flow:row nowrap!important;align-items:center!important;gap:5px!important;min-width:0!important;}
 html.frbc-mobile-horizontal #v28-hint-content {min-width:0!important;overflow:hidden!important;}
 html.frbc-mobile-horizontal #v28-hint-caption {overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
}

html:is(.frbc-mobile-horizontal,.frbc-mobile-vertical) #v28-clock-indicator:not([hidden]) {
 box-sizing:border-box!important;min-width:0!important;max-width:100%!important;
 overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
 font-variant-numeric:tabular-nums!important;
}


/* original: frbc-v30.1-home.css */
/* V30.1 restored home composition. Scoped to the opening/main menu so the
   validated in-game pause menu keeps its V30.1 layout. */
#menu-modal .frbc-home-auth-slot:empty,#menu-modal .frbc-home-member-slot:empty {display:none!important}
#menu-modal.frbc-home-screen:not([hidden]) {
 position:fixed!important;inset:0!important;z-index:30!important;
 display:flex!important;align-items:stretch!important;justify-content:flex-start!important;
 padding:0!important;background:linear-gradient(90deg,rgba(3,12,23,.16),rgba(3,12,23,.06) 62%,rgba(3,12,23,.18))!important;
 backdrop-filter:none!important;-webkit-backdrop-filter:none!important;overflow:hidden!important;
}
#menu-modal.frbc-home-screen>.menu-card {
 display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;
 width:min(570px,46vw)!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;
 padding:clamp(22px,3vw,36px) clamp(20px,3vw,34px) max(18px,env(safe-area-inset-bottom))!important;
 overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;
 border-radius:0 20px 20px 0!important;border:1px solid #9bc9eb!important;
 background:linear-gradient(165deg,rgba(14,43,70,.985),rgba(7,25,45,.99))!important;
 box-shadow:14px 0 46px rgba(0,0,0,.38),inset 0 1px rgba(230,246,255,.08)!important;
 color:#f3f8ff!important;scrollbar-width:thin;scrollbar-color:#6e9bbd #0a233d;
}
#menu-modal.frbc-home-screen .close-modal {position:sticky!important;top:0!important;align-self:flex-end!important;z-index:3!important;margin:0 0 -52px!important;right:auto!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;display:grid!important;place-items:center!important;border:1px solid #a7d5f05c!important;border-radius:12px!important;background:#173b5ce8!important;color:#f3faff!important;font-size:27px!important;line-height:1!important}
#menu-modal.frbc-home-screen .menu-card>.eyebrow {display:none!important}
#menu-modal.frbc-home-screen #welcome-title {font-size:clamp(34px,4.2vw,52px)!important;line-height:1.03!important;letter-spacing:-.055em!important;margin:7px 50px 4px 0!important;overflow-wrap:anywhere}
#menu-modal.frbc-home-screen #welcome-title:not(.frbc-member-title) {max-width:520px}
#menu-modal.frbc-home-screen.frbc-menu-guest .intro {display:none!important}
#menu-modal.frbc-home-screen .intro {font-size:14px!important;line-height:1.55!important;margin:0 0 2px!important;color:#bfd4e7!important}
#menu-modal.frbc-home-screen .frbc-home-auth-slot:not(:empty) {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:4px 0 2px!important}
#menu-modal.frbc-home-screen .frbc-home-auth-slot .account-entry-actions {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;width:100%!important;margin:0!important}
#menu-modal.frbc-home-screen .frbc-home-auth-slot .account-entry-actions button {min-width:0!important;min-height:54px!important;padding:10px!important;border-radius:12px!important;font-size:13px!important;font-weight:780!important;white-space:normal!important}
#menu-modal.frbc-home-screen .frbc-home-auth-slot .account-entry-actions .account-primary {background:linear-gradient(125deg,#e9f6ff,#a6d8ff)!important;color:#0c2d4b!important;border:1px solid #d0ebff!important}
#menu-modal.frbc-home-screen .frbc-mode-picker {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:2px 0!important}
#menu-modal.frbc-home-screen .frbc-mode {display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;min-width:0!important;min-height:70px!important;padding:12px 10px!important;border:1px solid #8ec2e677!important;border-radius:14px!important;background:#143b5bbf!important;color:#eaf6ff!important;font-size:14px!important;font-weight:780!important;text-align:center!important}
#menu-modal.frbc-home-screen .frbc-mode.active {background:linear-gradient(125deg,#e1f3ff,#91cdff)!important;color:#0b2c49!important;border-color:#d3efff!important;box-shadow:0 7px 18px #04172d69!important}
#menu-modal.frbc-home-screen .frbc-mode-icon {font-size:22px!important;line-height:1!important}
#menu-modal.frbc-home-screen.frbc-menu-guest .frbc-home-member-slot {display:none!important}
#menu-modal.frbc-home-screen .frbc-home-member-slot:not(:empty) {display:flex!important;flex-direction:column!important;gap:10px!important;margin:2px 0 0!important}
#menu-modal.frbc-home-screen .frbc-member-title {display:flex!important;align-items:center!important;gap:14px!important;padding-right:38px!important;margin-top:3px!important;overflow-wrap:anywhere}
#menu-modal.frbc-home-screen .frbc-member-title .frbc-welcome-avatar {flex:0 0 64px!important;width:64px!important;height:64px!important;border-radius:50%!important;font-size:30px!important}
#menu-modal.frbc-home-screen .frbc-member-title .frbc-welcome-copy {min-width:0!important}
#menu-modal.frbc-home-screen .frbc-member-title .frbc-welcome-label {display:block!important;color:#bfd5e9!important;font-size:.46em!important;line-height:1.4!important;letter-spacing:0!important}
#menu-modal.frbc-home-screen .frbc-member-title .frbc-welcome-name {display:block!important;overflow-wrap:anywhere!important}
#menu-modal.frbc-home-screen .frbc-home-member-slot .profile-entry {margin:0!important;min-height:64px!important}
#menu-modal.frbc-home-screen .frbc-home-member-slot .account-member-actions {display:grid!important;grid-template-columns:repeat(auto-fit,minmax(118px,1fr))!important;gap:8px!important;margin:0!important}
#menu-modal.frbc-home-screen .frbc-home-member-slot .account-member-actions button {min-width:0!important;min-height:45px!important;padding:8px 9px!important;border:1px solid #8cb8dc62!important;border-radius:10px!important;background:#163957!important;color:#e8f5ff!important;font-size:11px!important;font-weight:700!important;white-space:normal!important}
#menu-modal.frbc-home-screen #refresh-wallet {display:none!important}
#menu-modal.frbc-home-screen .account-section {display:none!important}
#menu-modal.frbc-home-screen .frbc-home-settings {display:flex!important;flex-direction:column!important;gap:0!important;margin:2px 0 0!important;padding:14px 16px!important;border:1px solid #a9d8fb!important;border-radius:18px!important;background:linear-gradient(145deg,#1a4a70f2,#163d5cf2)!important;box-shadow:inset 0 1px #e1f3ff1a!important}
#menu-modal.frbc-home-screen .frbc-home-settings .settings-row {min-width:0!important;gap:10px!important;padding:9px 0!important;border-color:#b6d8f52a!important;color:#e4f2ff!important;font-size:12px!important}
#menu-modal.frbc-home-screen .frbc-home-settings .settings-row label {min-width:0!important;line-height:1.35!important}
#menu-modal.frbc-home-screen .frbc-home-settings .settings-row small {display:block!important;color:#b9d5eb!important;font-size:10px!important;line-height:1.35!important}
#menu-modal.frbc-home-screen .frbc-home-settings select {max-width:57%!important;min-width:100px!important;min-height:38px!important;padding:7px 9px!important;font-size:12px!important}
#menu-modal.frbc-home-screen .frbc-home-settings .guide-setting input,
#menu-modal.frbc-home-screen .frbc-home-settings #frbc-clock-option input {width:20px!important;height:20px!important;flex:0 0 auto!important}
#menu-modal.frbc-home-screen .frbc-home-settings .audio-settings {display:grid!important;grid-template-columns:minmax(90px,.75fr) repeat(2,minmax(110px,1fr))!important;gap:12px!important;align-items:center!important;margin:5px 0 8px!important;padding:10px 0!important;border-top:1px solid #badcf22e!important;border-bottom:1px solid #badcf22e!important}
#menu-modal.frbc-home-screen .frbc-home-settings .audio-settings label {min-width:0!important;font-size:11px!important;line-height:1.3!important;color:#d4e7f7!important}
#menu-modal.frbc-home-screen .frbc-home-settings .audio-settings input[type=range] {display:block!important;width:100%!important;max-width:100%!important;margin:6px 0 0!important}
#menu-modal.frbc-home-screen .frbc-home-play-actions {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;align-items:stretch!important}
#menu-modal.frbc-home-screen .frbc-home-play-actions button {min-width:0!important;min-height:48px!important;margin:0!important;padding:10px 8px!important;border-radius:11px!important;font-size:12px!important;line-height:1.2!important;white-space:normal!important}
#menu-modal.frbc-home-screen #frbc-tour-open {min-height:49px!important;margin:0!important;padding:10px 14px!important;text-align:left!important;border-radius:11px!important}
#menu-modal.frbc-home-screen .menu-tools {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;margin:0!important}
#menu-modal.frbc-home-screen .menu-tools button {min-width:0!important;min-height:52px!important;margin:0!important;padding:10px!important;border-radius:11px!important;font-size:12px!important}
#menu-modal.frbc-home-screen .menu-tools #training-button {display:none!important}
#menu-modal.frbc-home-screen .menu-donation-feature {display:none!important}
#menu-modal.frbc-home-screen #exit-training {margin:0!important}
#menu-modal.frbc-home-screen .frbc-links {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:0!important}
#menu-modal.frbc-home-screen .frbc-links a {min-width:0!important;min-height:43px!important;padding:8px!important;font-size:11px!important}
#menu-modal.frbc-home-screen footer {display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:space-between!important;gap:9px!important;margin:4px 0 0!important;padding:12px 0 4px!important;border-top:1px solid #a9cde72d!important}
#menu-modal.frbc-home-screen footer button,#menu-modal.frbc-home-screen footer a {font-size:10px!important}
#menu-modal:not(.frbc-home-screen) #frbc-home-messages {display:none!important}

/* The shop title and selection stay fixed inside the modal; the catalog owns
   the only scroll area so the summary reserves space and never covers art. */
#shop-modal:not([hidden]) {display:flex!important;align-items:center!important;justify-content:center!important;padding:clamp(5px,1.5vw,18px)!important;overflow:hidden!important}
#shop-modal>.shop-card {display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;box-sizing:border-box!important;width:min(1120px,calc(100vw - 20px))!important;height:min(94dvh,920px)!important;max-height:94dvh!important;margin:0!important;padding:clamp(14px,2vw,26px)!important;overflow:hidden!important;overscroll-behavior:contain!important}
#shop-modal .shop-card>.eyebrow {flex:0 0 auto!important;margin:0 52px 5px 0!important}
#shop-modal .shop-heading {flex:0 0 auto!important;align-items:center!important;gap:12px!important;margin:0 50px 10px 0!important}
#shop-modal .frbc-shop-selection {position:relative!important;inset:auto!important;z-index:1!important;flex:0 0 auto!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important;gap:clamp(6px,1vw,12px)!important;min-height:62px!important;margin:0 0 10px!important;padding:9px 12px!important;border:1px solid #a58351!important;border-radius:13px!important;background:linear-gradient(110deg,#163a59,#1a405e)!important;box-shadow:0 3px 9px #06182a40!important}
#shop-modal .frbc-selection-copy {display:flex!important;flex-direction:column!important;gap:2px!important;min-width:0!important}
#shop-modal .frbc-selection-copy strong {font-size:14px!important;line-height:1.15!important}
#shop-modal .frbc-selection-copy span {font-size:12px!important;line-height:1.15!important}
#shop-modal .frbc-selection-copy small {display:none!important}
#shop-modal .frbc-selection-total {display:flex!important;align-items:center!important;gap:6px!important;white-space:nowrap!important}
#shop-modal .frbc-selection-total :is(span,strong) {font-size:clamp(11px,1.2vw,15px)!important;line-height:1.1!important}
#shop-modal .frbc-selection-total img {width:24px!important;height:24px!important;object-fit:contain!important}
#shop-modal #frbc-clear-selection {min-width:58px!important;min-height:36px!important;padding:5px 9px!important;font-size:11px!important;white-space:nowrap!important}
#shop-modal .frbc-shop-scroll {display:block!important;flex:1 1 0!important;min-width:0!important;min-height:0!important;width:100%!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-gutter:stable!important;-webkit-overflow-scrolling:touch!important;padding:0 2px 18px 0!important}
#shop-modal .frbc-shop-scroll>.credits-packs {margin:5px 0 14px!important}
#shop-modal .frbc-shop-scroll .shop-tabs {position:sticky!important;top:0!important;z-index:10!important;flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:thin!important;background:#0b1e34f5!important}
#shop-modal .frbc-shop-scroll #shop-grid {scroll-margin-top:62px!important;align-items:stretch!important}
#shop-modal #shop-grid .shop-item {min-width:0!important;overflow:hidden!important}
#shop-modal #shop-grid .shop-product-media {position:relative!important;flex:0 0 auto!important;width:100%!important;isolation:isolate!important}
#shop-modal #shop-grid .frbc-shop-select,
#shop-modal #shop-grid :is(label,button):has(input[type="checkbox"]) {position:static!important;inset:auto!important;float:none!important;transform:none!important;z-index:auto!important;display:inline-flex!important;align-items:center!important;gap:7px!important;align-self:flex-start!important;width:max-content!important;max-width:calc(100% - 24px)!important;margin:9px 12px 0!important;padding:7px 10px!important;border:1px solid #8ab7dc73!important;border-radius:9px!important;background:#0b2947!important;color:#eef8ff!important;white-space:nowrap!important;font-size:11px!important;font-weight:750!important;line-height:1.2!important}
#shop-modal #shop-grid input[type="checkbox"] {position:static!important;inset:auto!important;transform:none!important;flex:0 0 17px!important;width:17px!important;height:17px!important;margin:0!important;accent-color:#87c8f4!important}
#shop-modal #shop-grid .shop-product-copy {min-width:0!important;flex:1 1 auto!important;padding:12px 14px 15px!important}
#shop-modal .profile-stats,#shop-modal .profile-backup {flex:0 0 auto!important}
@media (orientation:portrait) {
 #menu-modal.frbc-home-screen:not([hidden]) {padding:max(6px,env(safe-area-inset-top)) 8px max(6px,env(safe-area-inset-bottom)) 8px!important}
 #menu-modal.frbc-home-screen>.menu-card {width:min(640px,100%)!important;height:100%!important;max-height:100%!important;border-radius:17px!important;padding:22px clamp(16px,5vw,32px) max(16px,env(safe-area-inset-bottom))!important}
 #menu-modal.frbc-home-screen #welcome-title {font-size:clamp(34px,9vw,52px)!important}
 #menu-modal.frbc-home-screen .frbc-home-settings {padding:12px clamp(12px,4vw,20px)!important}
 #menu-modal.frbc-home-screen .frbc-home-settings .audio-settings {grid-template-columns:1fr 1fr!important}
 #menu-modal.frbc-home-screen .frbc-home-settings .audio-settings label:first-child {grid-column:1/-1}
 #shop-modal>.shop-card {width:min(96vw,760px)!important;height:94dvh!important;padding:13px!important}
 #shop-modal .shop-heading {align-items:center!important}
 #shop-modal .shop-wallet {min-width:110px!important}
 #shop-modal #shop-grid {grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
}
@media (orientation:landscape) and (max-width:1000px) {
 #menu-modal.frbc-home-screen:not([hidden]) {padding:max(4px,env(safe-area-inset-top)) 0 max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left))!important}
 #menu-modal.frbc-home-screen>.menu-card {width:min(500px,58vw)!important;height:100%!important;max-height:100%!important;padding:12px 17px max(10px,env(safe-area-inset-bottom))!important;gap:7px!important;border-radius:0 15px 15px 0!important}
 #menu-modal.frbc-home-screen #welcome-title {font-size:clamp(25px,5.5vh,37px)!important;margin:3px 48px 0 0!important}
 #menu-modal.frbc-home-screen .intro {font-size:11px!important}
 #menu-modal.frbc-home-screen .frbc-mode {min-height:45px!important;padding:7px!important;font-size:11px!important}
 #menu-modal.frbc-home-screen .frbc-mode-icon {font-size:17px!important}
 #menu-modal.frbc-home-screen .frbc-home-auth-slot .account-entry-actions button {min-height:39px!important;font-size:11px!important}
 #menu-modal.frbc-home-screen .frbc-home-member-slot .profile-entry {min-height:46px!important;padding:7px 10px!important}
 #menu-modal.frbc-home-screen .frbc-member-title .frbc-welcome-avatar {width:40px!important;height:40px!important;flex-basis:40px!important;font-size:22px!important}
 #menu-modal.frbc-home-screen .frbc-home-member-slot .account-member-actions button {min-height:34px!important;padding:5px!important;font-size:9px!important}
 #menu-modal.frbc-home-screen .frbc-home-settings {padding:7px 11px!important}
 #menu-modal.frbc-home-screen .frbc-home-settings .settings-row {padding:5px 0!important;font-size:10px!important}
 #menu-modal.frbc-home-screen .frbc-home-settings .settings-row select {min-height:31px!important;font-size:10px!important}
 #menu-modal.frbc-home-screen .frbc-home-settings .audio-settings {grid-template-columns:minmax(72px,.75fr) repeat(2,minmax(76px,1fr))!important;gap:6px!important;padding:5px 0!important;margin:3px 0!important}
 #menu-modal.frbc-home-screen .frbc-home-play-actions button {min-height:38px!important;font-size:10px!important}
 #menu-modal.frbc-home-screen #frbc-tour-open,#menu-modal.frbc-home-screen .menu-tools button {min-height:37px!important;padding:6px!important;font-size:10px!important}
 #menu-modal.frbc-home-screen .frbc-links a {min-height:32px!important}
 #menu-modal.frbc-home-screen footer {padding-top:7px!important}
 #shop-modal>.shop-card {height:96dvh!important;max-height:96dvh!important;padding:9px 13px!important}
 #shop-modal .shop-heading {margin-bottom:6px!important}
 #shop-modal .frbc-shop-selection {min-height:49px!important;margin-bottom:6px!important;padding:6px 9px!important}
 #shop-modal #shop-grid {grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
 #shop-modal .shop-product-media {aspect-ratio:1.8!important}
}
@media (max-width:420px) and (orientation:portrait) {
 #menu-modal.frbc-home-screen>.menu-card {gap:8px!important}
 #menu-modal.frbc-home-screen .frbc-mode {min-height:57px!important;font-size:11px!important}
 #menu-modal.frbc-home-screen .frbc-home-settings .settings-row {align-items:flex-start!important;flex-direction:column!important}
 #menu-modal.frbc-home-screen .frbc-home-settings .settings-row select {max-width:100%!important;width:100%!important}
 #menu-modal.frbc-home-screen .frbc-home-play-actions {grid-template-columns:1fr!important}
 #shop-modal .frbc-shop-selection {grid-template-columns:minmax(0,1fr) auto!important}
 #shop-modal #frbc-clear-selection {grid-column:2;grid-row:1/3}
 #shop-modal .frbc-selection-total {grid-column:1;grid-row:2;justify-self:start}
 #shop-modal #shop-grid {grid-template-columns:1fr!important}
}

/* V30.1 opening backdrop: keep the 3D room running while suppressing every
   gameplay/demo rail until a real match starts. The class is present on the
   initial body markup to prevent a flash before app.js initializes. */
body.frbc-background-only .topbar,
body.frbc-background-only .view-switch,
body.frbc-background-only .frbc-orientation-control,
body.frbc-background-only .room-note,
body.frbc-background-only .side-stats,
body.frbc-background-only #toast,
body.frbc-background-only #game-dock,
body.frbc-background-only #online-game-dock,
body.frbc-background-only #moves-panel,
body.frbc-background-only #board-details,
body.frbc-background-only #explore-help,
body.frbc-background-only #walk-pad,
body.frbc-background-only #skip-decor-intro,
body.frbc-background-only .room-pill,
body.frbc-background-only .mobile-rail,
body.frbc-background-only #frbc-chat-open,
body.frbc-background-only #frbc-chat-game,
body.frbc-background-only #frbc-chat-mobile,
body.frbc-background-only .frbc-notification-root,
body.frbc-background-only #frbc-clock-display,
body.frbc-background-only #frbc-online-clock-display,
body.frbc-background-only .frbc-pc-rail,
body.frbc-background-only .frbc-pc-sessions,
body.frbc-background-only .frbc-pc-layout-toggle,
body.frbc-background-only :is(#v28-mode-switch,[id^="v28-"],#frbc-v28-pause-modal,[id^="frbc-v28-"],[id^="frbc-v298-"]) {
 display:none!important;
 visibility:hidden!important;
 pointer-events:none!important;
}

/* The V28 A/B demo switch is not part of the shipped V30.1 game UI. */
#v28-mode-switch {display:none!important;visibility:hidden!important;pointer-events:none!important}


/* original: frbc-v30.1.13-ui-fixes.css */
/* FRBC V30.1.13 — correctifs ciblés accueil portrait et interface PC.
   Ces règles ne modifient ni le plateau 3D, ni le gameplay, ni les
   compositions mobiles validées pendant une vraie partie. */

/* À l'accueil, l'interface mobile 2D complète doit rester absente. En portrait,
   le plateau équipé reste visible sur une image fixe ; l'animation est réservée
   au paysage. */
body.frbc-background-only #mobile-ui,
body.frbc-background-only #mobile-sheet {
 display:none!important;
 visibility:hidden!important;
 pointer-events:none!important;
}

/* Les cartes de conseil qui annoncent une action réelle restent utilisables. */
html.frbc-v28-demo #v28-match-hint.v28-hint-actionable:not([hidden]) {
 pointer-events:auto!important;
 cursor:pointer!important;
 touch-action:manipulation!important;
}

/* PC uniquement : informations de partie au-dessus des commandes, dans un
   bloc compact ancré en bas à gauche. Les interfaces mobiles sont exclues. */
@media (min-width:900px) and (pointer:fine) {
 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock:not([hidden]) {
  box-sizing:border-box!important;
  left:10px!important;
  right:auto!important;
  bottom:10px!important;
  width:clamp(680px,55vw,880px)!important;
  max-width:calc(100vw - var(--v28-right,184px) - 34px)!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  max-height:min(150px,calc(100dvh - 20px))!important;
  display:flex!important;
  flex-flow:row wrap!important;
  align-items:center!important;
  align-content:flex-start!important;
  gap:6px!important;
  padding:8px 10px!important;
  overflow:auto!important;
 }

 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock .turn-info {
  order:-10!important;
  flex:1 0 100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:max-content minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  align-items:baseline!important;
  column-gap:9px!important;
  row-gap:2px!important;
  margin:0!important;
  padding:0 2px 7px!important;
  border-bottom:1px solid #87b7d245!important;
  background:transparent!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock .turn-info > span {
  grid-column:1!important;
  grid-row:1!important;
  margin:0!important;
  color:#9fc9e7!important;
  font:800 9px/1.2 system-ui,sans-serif!important;
  letter-spacing:.08em!important;
  white-space:nowrap!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock .turn-info > h1 {
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
  margin:0!important;
  font:750 14px/1.2 system-ui,sans-serif!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock .turn-info > p {
  grid-column:1 / -1!important;
  grid-row:2!important;
  min-width:0!important;
  margin:0!important;
  font:500 11px/1.3 system-ui,sans-serif!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
 }

 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock > :is(.frbc-multiplayer-actions,.dice-values,.dock-actions,.dock-secondary) {
  flex:0 1 auto!important;
  min-width:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock .frbc-multiplayer-actions:not([hidden]),
 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock :is(.dice-values,.dock-actions,.dock-secondary) {
  display:flex!important;
  flex-flow:row nowrap!important;
  align-items:center!important;
  gap:5px!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock .dice-values:empty {
  display:none!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock :is(.frbc-multiplayer-actions,.dock-actions,.dock-secondary) button {
  min-height:34px!important;
  height:34px!important;
  padding:5px 8px!important;
  font:700 10px/1.1 system-ui,sans-serif!important;
  white-space:nowrap!important;
 }

 /* Le texte désactivé était rogné par contain:size. Sa position ne change pas. */
 html.frbc-v28-demo:not(.frbc-mobile-ui) #v28-clock-indicator.v28-muted:not([hidden]) {
  contain:layout!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:34px!important;
  height:34px!important;
  padding:0 8px!important;
  line-height:1.2!important;
  overflow:hidden!important;
  white-space:nowrap!important;
 }
}


/* original: frbc-v30.1.14-mobile-touch.css */
/* FRBC V30.1.14 — interaction tactile verticale uniquement.
   La géométrie, les icônes et la composition validée restent inchangées. */
@media (orientation:portrait) {
 html.frbc-v28-portrait-demo #v28-rail {
  touch-action:none!important;
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-touch-callout:none!important;
 }
 html.frbc-v28-portrait-demo #v28-rail [data-v28-command] {
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent!important;
 }
}


/* original: frbc-v30.1.16-desktop-dock.css */
/* FRBC V30.1.16 — finition du bandeau de partie sur ordinateur uniquement.
   Les compositions mobile portrait et paysage restent inchangées. */
@media (min-width:900px) and (pointer:fine) {
 html.frbc-v28-demo:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock):not([hidden]) {
  left:10px!important;
  right:auto!important;
  bottom:10px!important;
  width:clamp(560px,46vw,720px)!important;
  max-width:calc(100vw - var(--v28-right,184px) - 34px)!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  max-height:min(132px,calc(100dvh - 20px))!important;
  display:flex!important;
  flex-flow:row wrap!important;
  align-items:center!important;
  align-content:flex-start!important;
  gap:8px!important;
  padding:9px 11px!important;
  overflow:auto!important;
 }

 /* The native title and help already contain the complete state. */
 html.frbc-v28-demo:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) #frbc-v298-game-state {
  display:none!important;
 }

 html.frbc-v28-demo:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .turn-info {
  order:-10!important;
  flex:1 0 100%!important;
  min-width:0!important;
  padding:0 3px 8px!important;
 }

 html.frbc-v28-demo:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) > :is(.frbc-multiplayer-actions,.dice-values,.dock-actions,.dock-secondary) {
  flex:0 1 auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) :is(.frbc-multiplayer-actions:not([hidden]),.dice-values,.dock-actions,.dock-secondary) {
  display:flex!important;
  flex-flow:row nowrap!important;
  align-items:center!important;
  gap:7px!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .dice-values:empty {
  display:none!important;
 }

 /* Slightly larger gameplay controls, while the whole dock remains narrower. */
 html.frbc-v28-demo:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) :is(.frbc-multiplayer-actions,.dock-actions,.dock-secondary) button {
  min-height:40px!important;
  height:40px!important;
  padding:7px 11px!important;
  font:750 11px/1.1 system-ui,sans-serif!important;
  white-space:nowrap!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) .dice-values button {
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  font-size:25px!important;
 }

 /* The dedicated icon buttons replace the duplicate text Pause/Abandonner. */
 html.frbc-v28-demo:not(.frbc-mobile-ui) :is(#game-dock,#online-game-dock) :is(#frbc-match-pause,#frbc-match-abandon) {
  display:none!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #frbc-v28-dock-controls {
  display:inline-flex!important;
  flex:0 0 auto!important;
  align-items:center!important;
  gap:7px!important;
  margin-left:3px!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #frbc-v28-dock-controls button {
  box-sizing:border-box!important;
  display:grid!important;
  place-items:center!important;
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0!important;
  border:1px solid #79acd0!important;
  border-radius:9px!important;
  background:#17476b!important;
  color:#f4faff!important;
  cursor:pointer!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #frbc-v28-dock-controls button:hover {
  background:#23618d!important;
  border-color:#b5ddf7!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #frbc-v28-dock-controls button:focus-visible {
  outline:3px solid #f0dca0!important;
  outline-offset:2px!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #frbc-v28-dock-controls svg {
  display:block!important;
  width:24px!important;
  height:24px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:2.2!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) #frbc-v28-dock-controls [data-v28-command="abandon"] svg rect {
  fill:currentColor!important;
  stroke:none!important;
 }
}


/* original: frbc-v30.1.17-desktop-dice.css */
/* FRBC V30.1.17 — choix des dés en bas à droite sur ordinateur uniquement.
   Aucun style mobile, plateau, caméra ou autre commande n'est modifié. */
@media (min-width:900px) and (pointer:fine) {
 html.frbc-v28-demo:not(.frbc-mobile-ui) body > #dice-values.v28-desktop-dice:not(:empty):not([hidden]) {
  box-sizing:border-box!important;
  position:fixed!important;
  left:auto!important;
  right:var(--v28-edge,14px)!important;
  bottom:10px!important;
  z-index:88!important;
  width:var(--v28-right,240px)!important;
  max-width:calc(100vw - 28px)!important;
  min-height:64px!important;
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(42px,1fr))!important;
  align-items:stretch!important;
  gap:8px!important;
  margin:0!important;
  padding:8px!important;
  overflow:visible!important;
  border:1px solid #87b7d2!important;
  border-radius:12px!important;
  background:#091e35ed!important;
  box-shadow:0 8px 26px #0008!important;
  backdrop-filter:blur(18px)!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) body > #dice-values.v28-desktop-dice:empty,
 html.frbc-v28-demo:not(.frbc-mobile-ui) body > #dice-values.v28-desktop-dice[hidden] {
  display:none!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui):has(body > #dice-values.v28-desktop-dice:not(:empty):not([hidden])) #v28-rail {
  max-height:calc(100dvh - var(--v28-menu-top) - 92px)!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) body > #dice-values.v28-desktop-dice button {
  box-sizing:border-box!important;
  width:100%!important;
  min-width:42px!important;
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border:2px solid transparent!important;
  border-radius:8px!important;
  background:#eeeae0!important;
  color:#132d45!important;
  font:700 29px/1 system-ui,sans-serif!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) body > #dice-values.v28-desktop-dice button.selected {
  border-color:#d5b87a!important;
  box-shadow:0 0 0 3px #d5b87a42!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) body > #dice-values.v28-desktop-dice button.used,
 html.frbc-v28-demo:not(.frbc-mobile-ui) body > #dice-values.v28-desktop-dice button:disabled {
  opacity:.38!important;
  cursor:not-allowed!important;
 }
 html.frbc-v28-demo:not(.frbc-mobile-ui) body > #dice-values.v28-desktop-dice button:focus-visible {
  outline:3px solid #f0dca0!important;
  outline-offset:2px!important;
 }
}


/* original: frbc-v30.1.18-desktop-dice-hint.css */
/* FRBC V30.1.18 — dés rattachés visuellement à la notification de droite.
   PC avec souris uniquement; aucun changement pour mobile ni gameplay. */
@media (min-width:900px) and (pointer:fine) {
 html.frbc-v28-demo:not(.frbc-mobile-ui) body > #dice-values.v28-desktop-dice:not(:empty):not([hidden]) {
  /* Overrides V30.1.17's bottom:10px, preserves its width, buttons and states. */
  top:var(--v28-dice-top,calc(var(--v28-menu-top,64px) + 475px))!important;
  bottom:auto!important;
 }
}


/* original: frbc-v30.1.23-portrait-fit.css */
/* FRBC V30.1.23 — Mobile vertical, responsive layout only.
 * Never change the master skins, wood board, pips, cameras, orientations,
 * gameplay rules, desktop layout or horizontal-mobile composition.
 * Reserve the actual space occupied by the fixed top icon rail, then give
 * the original WebGL board and its touch targets the same remaining rectangle.
 */
@media (orientation:portrait) {
  html.frbc-v28-portrait-demo.frbc-mobile-ui:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-play {
    min-width:0!important;
    min-height:0!important;
  }
  html.frbc-v28-portrait-demo.frbc-mobile-ui:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui .mobile-board-wrap {
    box-sizing:border-box!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    width:100%!important;
    max-width:100%!important;
    /* The positive top clearance is measured from the real icon bar.
       On short phones, the available board viewport shrinks without clipping. */
    margin-top:var(--frbc-pv-top-gap,0px)!important;
    margin-bottom:var(--frbc-pv-bottom-gap,4px)!important;
    /* The master offset of 24px was fixed for one phone. This rule makes
       placement responsive without touching the visual appearance. */
    transform:none!important;
  }
  html.frbc-v28-portrait-demo.frbc-mobile-ui:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui #mobile-targets {
    inset:0!important;
  }
  html.frbc-v28-portrait-demo.frbc-mobile-ui:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #mobile-ui #mobile-board {
    width:100%!important;
    height:100%!important;
  }
}


/* original: frbc-v30.1.28-landscape-fit.css */
/* FRBC V30.1.28 — unified 100% x 100% landscape geometry.
   Applies ONLY during gameplay on PC and mobile landscape. The portrait
   master, all 3D art/cameras, logic, colors, SVG and icon ordering are untouched.
   Loaded LAST to resolve mutually contradictory V28/V29/V30 fixed positioning. */
@media (orientation:landscape) {
  html.frbc-v28-demo:not(.frbc-mobile-vertical) {
    --frbc-h-s:1;
    --v28-edge:max(var(--frbc-h-edge-px,10px),env(safe-area-inset-right));
    --v28-top-edge:max(var(--frbc-h-pad-px,7px),env(safe-area-inset-top));
    --v28-right:clamp(112px,var(--frbc-h-right-px,184px),258px);
    --v28-score-height:var(--frbc-h-score-px,72px);
    --v28-clock-top:var(--frbc-h-clock-px,84px);
    --v28-account-top:var(--frbc-h-account-px,120px);
    --v28-menu-top:var(--frbc-h-menu-px,166px);
    --v28-menu-gap:var(--frbc-h-gap-px,4px);
    --v28-tile-height:var(--frbc-h-tile-px,48px);
    --frbc-h-dock-w:min(var(--frbc-h-dockw-px,535px),calc(100dvw - var(--v28-right) - var(--v28-edge) - var(--v28-edge) - var(--v28-edge) - env(safe-area-inset-left)));
    --frbc-h-dock-bottom:max(6px,env(safe-area-inset-bottom));
    --frbc-h-dock-max: min(132px,var(--frbc-h-dockmax-px,145px));
  }
  /* True browser/iframe viewport, with safe-area accounted for inside panels. */
  html.frbc-v28-demo:not(.frbc-mobile-vertical),
  html.frbc-v28-demo:not(.frbc-mobile-vertical) body {
    width:100%!important;height:100%!important;
    min-width:0!important;min-height:0!important;
    margin:0!important;overflow:hidden!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #world {
    position:fixed!important;inset:0!important;
    width:100dvw!important;height:100dvh!important;
    max-width:100dvw!important;max-height:100dvh!important;
  }
  /* Identical right-hand hierarchy: score / clock / account / handle / six paired rows. */
  html.frbc-v28-demo:not(.frbc-mobile-vertical) .topbar .match-score {
    position:fixed!important;left:auto!important;right:var(--v28-edge)!important;
    top:var(--v28-top-edge)!important;
    width:calc(var(--v28-right) + 12px)!important;
    min-width:0!important;max-width:calc(100dvw - var(--v28-edge) - var(--v28-edge))!important;
    height:var(--v28-score-height)!important;
    min-height:0!important;max-height:var(--v28-score-height)!important;
    padding:clamp(2px,var(--frbc-h-gap-px,4px),7px)!important;
    transform:none!important;overflow:hidden!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) .topbar .top-actions {
    position:fixed!important;top:var(--v28-account-top)!important;
    right:calc(var(--v28-edge) + 27px)!important;left:auto!important;
    width:calc(var(--v28-right) - 27px)!important;
    max-width:calc(var(--v28-right) - 27px)!important;
    min-width:0!important;transform:none!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail-handle {
    position:fixed!important;left:auto!important;right:var(--v28-edge)!important;
    top:var(--v28-account-top)!important;bottom:auto!important;
    width:clamp(24px,var(--frbc-h-handle-px,28px),37px)!important;
    min-width:0!important;height:clamp(24px,var(--frbc-h-handle-px,28px),37px)!important;
    min-height:0!important;max-height:none!important;
    transform:none!important;box-sizing:border-box!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) :is(#frbc-clock-display,#frbc-online-clock-display,#v28-clock-indicator):not([hidden]) {
    position:fixed!important;left:auto!important;
    right:var(--v28-edge)!important;top:var(--v28-clock-top)!important;
    bottom:auto!important;width:var(--v28-right)!important;max-width:var(--v28-right)!important;
    height:clamp(20px,var(--frbc-h-clockheight-px,27px),36px)!important;
    min-height:0!important;max-height:36px!important;
    box-sizing:border-box!important;margin:0!important;
    padding:3px!important;line-height:1.15!important;
    transform:none!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail,
  html.frbc-v28-demo:not(.frbc-mobile-vertical):has(#frbc-clock-display:not([hidden])) #v28-rail {
    position:fixed!important;left:auto!important;
    right:var(--v28-edge)!important;top:var(--v28-menu-top)!important;bottom:auto!important;
    width:var(--v28-right)!important;max-width:var(--v28-right)!important;
    min-width:0!important;box-sizing:border-box!important;
    max-height:calc(100dvh - var(--v28-menu-top) - 48px - env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;overflow-x:hidden!important;
    padding:clamp(4px,var(--frbc-h-pad-px,7px),11px)!important;
    transform:none!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail .v28-grid {
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:var(--v28-menu-gap)!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail .v28-grid > .v28-tile {
    grid-column:auto!important;
    height:var(--v28-tile-height)!important;min-height:var(--v28-tile-height)!important;
    max-height:var(--v28-tile-height)!important;
    min-width:0!important;box-sizing:border-box!important;
    padding:clamp(1px,var(--frbc-h-three-px,3px),5px)!important;
    gap:clamp(1px,var(--frbc-h-three-px,3px),6px)!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail .v28-grid > [data-v28-command="rotate"] {
    grid-column:auto!important;
  }
  /* Never resurrect controls explicitly hidden by the player. */
  html.frbc-v28-demo.frbc-v28-rail-closed #v28-rail,
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail[hidden] {display:none!important;}
  /* Right-side notification stays in its own bounded region, below the menu. */
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-match-hint:not([hidden]),
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #toast.show {
    right:var(--v28-edge)!important;left:auto!important;
    top:auto!important;bottom:max(5px,env(safe-area-inset-bottom))!important;
    width:var(--v28-right)!important;max-width:var(--v28-right)!important;
    box-sizing:border-box!important;transform:none!important;
  }
  /* Existing left-to-right desktop action order, scaled into a single lower-left dock.
     Phones must no longer switch to a DIFFERENT vertical command layout. */
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing):not(.frbc-camera-editing) #game-dock:not([hidden]),
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #game-dock:not([hidden]) {
    display:flex!important;position:fixed!important;
    left:max(7px,env(safe-area-inset-left))!important;right:auto!important;
    bottom:var(--frbc-h-dock-bottom)!important;top:auto!important;
    width:var(--frbc-h-dock-w)!important;max-width:var(--frbc-h-dock-w)!important;
    min-width:0!important;min-height:0!important;
    height:auto!important;max-height:var(--frbc-h-dock-max)!important;
    flex-flow:row wrap!important;align-items:center!important;
    align-content:flex-start!important;justify-content:flex-start!important;
    gap:clamp(3px,var(--frbc-h-six-px,6px),9px)!important;
    padding:clamp(4px,var(--frbc-h-pad-px,7px),10px)!important;
    overflow-x:auto!important;overflow-y:auto!important;
    transform:none!important;box-sizing:border-box!important;
  }
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #game-dock #frbc-v298-game-state,
  html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock #frbc-v298-game-state {display:none!important;}
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #game-dock .turn-info:not(#frbc-never),
  html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock .turn-info:not(#frbc-never) {
    order:-10!important;flex:1 0 100%!important;
    min-width:0!important;max-width:100%!important;
    display:block!important;margin:0!important;padding:0!important;
    border:0!important;background:transparent!important;
  }
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #game-dock .turn-info h1,
  html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock .turn-info h1 {
    font-size:clamp(10px,var(--frbc-h-title-px,13px),19px)!important;
    white-space:normal!important;line-height:1.13!important;
  }
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #game-dock > :is(.dock-actions,.dock-secondary,.dice-values,.frbc-multiplayer-actions),
  html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock > :is(.dock-actions,.dock-secondary,.dice-values,.frbc-multiplayer-actions) {
    order:0!important;display:flex!important;
    flex:0 1 auto!important;flex-flow:row nowrap!important;
    align-items:center!important;justify-content:flex-start!important;
    gap:clamp(3px,var(--frbc-h-five-px,5px),7px)!important;
    width:auto!important;min-width:0!important;max-width:100%!important;
    margin:0!important;padding:0!important;overflow:visible!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #game-dock :is(.dock-actions,.dock-secondary) button {
    width:auto!important;min-width:0!important;
    height:clamp(27px,var(--frbc-h-button-px,35px),43px)!important;
    min-height:clamp(27px,var(--frbc-h-button-px,35px),43px)!important;
    padding:3px clamp(3px,var(--frbc-h-six-px,6px),9px)!important;
    font-size:clamp(8px,var(--frbc-h-edge-px,10px),12px)!important;
    line-height:1.1!important;white-space:nowrap!important;
  }
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #game-dock #frbc-v28-dock-controls,
  html.frbc-v28-demo:not(.frbc-mobile-ui) #game-dock #frbc-v28-dock-controls {
    display:flex!important;flex-flow:row nowrap!important;
    width:auto!important;min-width:0!important;
    margin:0!important;padding:0!important;gap:clamp(3px,var(--frbc-h-five-px,5px),7px)!important;
    border:0!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #game-dock #frbc-v28-dock-controls button {
    width:clamp(29px,var(--frbc-h-pause-px,40px),48px)!important;
    min-width:clamp(29px,var(--frbc-h-pause-px,40px),48px)!important;
    height:clamp(29px,var(--frbc-h-pause-px,40px),48px)!important;
    min-height:clamp(29px,var(--frbc-h-pause-px,40px),48px)!important;
    padding:3px!important;
  }
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #game-dock #frbc-v28-dock-controls svg {
    width:clamp(17px,var(--frbc-h-pauseicon-px,22px),27px)!important;
    height:clamp(17px,var(--frbc-h-pauseicon-px,22px),27px)!important;
  }
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #game-dock .dice-values {
    display:flex!important;flex-direction:row!important;grid-template-columns:none!important;
    align-items:center!important;
  }
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #game-dock .dice-values button {
    width:clamp(27px,var(--frbc-h-dice-px,34px),43px)!important;
    min-width:clamp(27px,var(--frbc-h-dice-px,34px),43px)!important;
    height:clamp(27px,var(--frbc-h-dice-px,34px),43px)!important;
    min-height:clamp(27px,var(--frbc-h-dice-px,34px),43px)!important;
    padding:0!important;
  }
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #v28-dock-handle {
    display:grid!important;place-items:center!important;
    position:fixed!important;top:auto!important;
    left:calc(max(7px,env(safe-area-inset-left)) + var(--frbc-h-dock-w) - 2px)!important;
    bottom:calc(var(--frbc-h-dock-bottom) + 18px)!important;
    right:auto!important;transform:none!important;
    width:19px!important;height:30px!important;
  }
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-v28-dock-closed #game-dock,
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #game-dock[hidden] {display:none!important;}
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-v28-dock-closed #v28-dock-handle {
    left:max(7px,env(safe-area-inset-left))!important;
  }
  /* Use same right-hand notification anchor on phones and desktops. */
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro) body #v28-match-hint:not([hidden]),
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro) body #toast.show {
   right:var(--v28-edge)!important;left:auto!important;
   width:var(--v28-right)!important;max-width:var(--v28-right)!important;
   transform:none!important;
  }
  /* Preserve menu and popup event handlers and return to the original portrait master. */
}


/* original: frbc-v30.1.29-landscape-compact.css */
/* FRBC V30.1.29 — compact landscape correction.
   Load after frbc-v30.1.28-landscape-fit.css.
   V30.1.28 remains the sole source of responsive geometry variables.
   This file changes only the small landscape HTML controls; it does not
   resize the WebGL canvas or alter portrait/mobile-vertical styling. */

@media (orientation: landscape) and (max-height: 520px) and (max-width: 1100px) {
  /* Keep the existing 12-command rail in six compact rows. All placement and
     tile dimensions come from the values maintained by V30.1.28. */
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail,
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.frbc-mobile-vertical) #v28-rail,
  html.frbc-v28-demo:not(.frbc-mobile-vertical):has(#frbc-clock-display:not([hidden])) #v28-rail {
    position: fixed !important;
    top: var(--v28-menu-top) !important;
    right: var(--v28-edge) !important;
    bottom: auto !important;
    left: auto !important;
    width: var(--v28-right) !important;
    min-width: 0 !important;
    max-width: var(--v28-right) !important;
    max-height: calc(100dvh - var(--v28-menu-top) - 43px - env(safe-area-inset-bottom)) !important;
    padding: clamp(2px, var(--v28-menu-gap), 4px) !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: none !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail .v28-grid,
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.frbc-mobile-vertical) #v28-rail .v28-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: var(--v28-menu-gap) !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail .v28-grid > .v28-tile,
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.frbc-mobile-vertical) #v28-rail .v28-grid > .v28-tile {
    display: flex !important;
    position: relative !important;
    grid-column: auto !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: var(--v28-tile-height) !important;
    min-height: var(--v28-tile-height) !important;
    max-height: var(--v28-tile-height) !important;
    padding: 1px !important;
    gap: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    line-height: 1 !important;
  }

  /* Compact landscape uses the existing icon, accessible name and title. */
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail .v28-grid > .v28-tile > .v28-tile-label,
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.frbc-mobile-vertical) #v28-rail .v28-grid > .v28-tile > .v28-tile-label {
    display: none !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail .v28-grid > .v28-tile > svg,
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.frbc-mobile-vertical) #v28-rail .v28-grid > .v28-tile > svg {
    display: block !important;
    flex: none !important;
    width: clamp(15px, 4.8dvh, 21px) !important;
    height: clamp(15px, 4.8dvh, 21px) !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 auto !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail .v28-grid > .v28-tile .v28-shop-balance {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail .v28-grid > .v28-tile .v28-shop-credit {
    max-width: 100% !important;
    overflow: hidden !important;
    font-size: clamp(9px, 2.9dvh, 12px) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail > .v28-portrait-actions {
    display: none !important;
  }

  /* Open submenus sit beside the rail and keep their hidden state. */
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail :is(#v28-view-choices, #v28-camera-choices):not([hidden]) {
    position: fixed !important;
    top: var(--v28-menu-top) !important;
    right: calc(var(--v28-edge) + var(--v28-right) + clamp(3px, 1dvw, 5px)) !important;
    left: auto !important;
    max-width: min(170px, calc(100dvw - var(--v28-right) - 20px)) !important;
    max-height: calc(100dvh - var(--v28-menu-top) - 10px) !important;
    overflow-y: auto !important;
    z-index: 91 !important;
  }

  /* Keep the active gameplay hint below the rail, in its own right column. */
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-match-hint:not([hidden]),
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.frbc-mobile-vertical) #v28-match-hint:not([hidden]) {
    top: auto !important;
    right: var(--v28-edge) !important;
    bottom: max(4px, env(safe-area-inset-bottom)) !important;
    left: auto !important;
    width: var(--v28-right) !important;
    min-width: 0 !important;
    max-width: var(--v28-right) !important;
    height: clamp(32px, 9dvh, 36px) !important;
    min-height: clamp(32px, 9dvh, 36px) !important;
    max-height: clamp(32px, 9dvh, 36px) !important;
    padding: clamp(3px, 1dvh, 5px) clamp(16px, 3dvw, 20px) clamp(3px, 1dvh, 5px) clamp(4px, 1dvw, 6px) !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    transform: none !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-hint-text,
  html.frbc-v28-demo:not(.frbc-mobile-vertical) .v28-hint-content {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-hint-caption {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #toast.show {
    top: auto !important;
    right: var(--v28-edge) !important;
    bottom: calc(max(5px, env(safe-area-inset-bottom)) + clamp(36px, 10dvh, 42px)) !important;
    left: auto !important;
    width: var(--v28-right) !important;
    max-width: var(--v28-right) !important;
    max-height: clamp(26px, 8dvh, 30px) !important;
    overflow: hidden !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) .frbc-notification-root {
    top: auto !important;
    right: var(--v28-edge) !important;
    bottom: calc(max(5px, env(safe-area-inset-bottom)) + clamp(72px, 20dvh, 80px)) !important;
    left: auto !important;
    width: var(--v28-right) !important;
    max-width: var(--v28-right) !important;
    max-height: min(48px, 15dvh) !important;
    overflow-y: auto !important;
  }

  /* Fit the existing lower-left dock. Do not set its display here: V30.1.28
     owns that state, while [hidden] and the close classes remain authoritative. */
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #game-dock:not([hidden]),
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing):not(.frbc-v28-dock-closed):not(.frbc-dock-closed) #game-dock:not([hidden]),
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #online-game-dock:not([hidden]) {
    position: fixed !important;
    top: auto !important;
    right: auto !important;
    bottom: var(--frbc-h-dock-bottom) !important;
    left: max(var(--frbc-h-edge-px, 7px), env(safe-area-inset-left)) !important;
    width: var(--frbc-h-dock-w) !important;
    min-width: 0 !important;
    max-width: var(--frbc-h-dock-w) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: var(--frbc-h-dock-max) !important;
    flex-flow: row wrap !important;
    align-items: center !important;
    align-content: flex-start !important;
    justify-content: flex-start !important;
    gap: clamp(3px, var(--frbc-h-five-px, 5px), 7px) !important;
    padding: clamp(3px, var(--frbc-h-pad-px, 7px), 8px) !important;
    box-sizing: border-box !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    transform: none !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) :is(#game-dock, #online-game-dock) .turn-info {
    flex: 1 0 100% !important;
    order: -10 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: clamp(28px, 9dvh, 34px) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) :is(#game-dock, #online-game-dock) .turn-info h1 {
    margin: 0 !important;
    font-size: clamp(10px, 2.9dvh, 13px) !important;
    line-height: 1.1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) :is(#game-dock, #online-game-dock) .turn-info p {
    max-height: clamp(16px, 5.5dvh, 20px) !important;
    margin: 0 !important;
    overflow: hidden !important;
    font-size: clamp(8px, 2.4dvh, 9px) !important;
    line-height: 1.12 !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) :is(#game-dock, #online-game-dock) :is(.dock-actions, .dock-secondary, .dice-values, .frbc-multiplayer-actions) {
    display: flex !important;
    flex: 0 1 auto !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: clamp(2px, var(--frbc-h-five-px, 5px), 5px) !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) :is(#game-dock, #online-game-dock) :is(.dock-actions, .dock-secondary, .frbc-multiplayer-actions) button {
    min-width: 0 !important;
    min-height: clamp(25px, 7.2dvh, 30px) !important;
    height: clamp(25px, 7.2dvh, 30px) !important;
    max-height: clamp(25px, 7.2dvh, 30px) !important;
    padding: clamp(2px, 0.8dvh, 4px) clamp(3px, 1dvw, 5px) !important;
    font-size: clamp(8px, 2.2dvh, 10px) !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #game-dock #frbc-v28-dock-controls button {
    width: clamp(27px, var(--frbc-h-pause-px, 40px), 30px) !important;
    min-width: clamp(27px, var(--frbc-h-pause-px, 40px), 30px) !important;
    height: clamp(27px, var(--frbc-h-pause-px, 40px), 30px) !important;
    min-height: clamp(27px, var(--frbc-h-pause-px, 40px), 30px) !important;
    max-height: clamp(27px, var(--frbc-h-pause-px, 40px), 30px) !important;
    padding: 2px !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical) #game-dock #frbc-v28-dock-controls svg {
    width: clamp(16px, 4.8dvh, 20px) !important;
    height: clamp(16px, 4.8dvh, 20px) !important;
  }

  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) #game-dock .dice-values button {
    width: clamp(25px, var(--frbc-h-dice-px, 34px), 30px) !important;
    min-width: clamp(25px, var(--frbc-h-dice-px, 34px), 30px) !important;
    height: clamp(25px, var(--frbc-h-dice-px, 34px), 30px) !important;
    min-height: clamp(25px, var(--frbc-h-dice-px, 34px), 30px) !important;
    max-height: clamp(25px, var(--frbc-h-dice-px, 34px), 30px) !important;
    padding: 0 !important;
  }
}

/* State guards stay horizontal-only and never reopen explicitly closed UI. */
@media (orientation: landscape) {
  html.frbc-v28-demo.frbc-v28-rail-closed #v28-rail,
  html.frbc-v28-demo:not(.frbc-mobile-vertical) #v28-rail[hidden] {
    display: none !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-vertical).frbc-v28-rail-closed:not(.frbc-v28-moves-open):not(.mobile-intro):not(:has(#toast.show)):not(:has(#game[hidden])) #v28-match-hint:not([hidden]) {
    display: flex !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical):is(.frbc-v28-dock-closed, .frbc-dock-closed) :is(#game-dock, #online-game-dock):not([hidden]),
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) :is(.frbc-v28-dock-closed, .frbc-dock-closed) :is(#game-dock, #online-game-dock):not([hidden]),
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:is(.frbc-v28-dock-closed, .frbc-dock-closed) :is(#game-dock, #online-game-dock):not([hidden]),
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay :is(.frbc-v28-dock-closed, .frbc-dock-closed) :is(#game-dock, #online-game-dock):not([hidden]),
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) :is(#game-dock, #online-game-dock):is(.frbc-v28-dock-closed, .frbc-dock-closed),
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay :is(#game-dock, #online-game-dock):is(.frbc-v28-dock-closed, .frbc-dock-closed),
  /* Exceed the specificity of V30.1.28's mobile landscape display:flex rule.
     Its four state exclusions are repeated so a closed dock wins reliably. */
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing):not(.frbc-camera-editing):is(.frbc-v28-dock-closed, .frbc-dock-closed) :is(#game-dock, #online-game-dock):not([hidden]),
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing):not(.frbc-camera-editing) :is(.frbc-v28-dock-closed, .frbc-dock-closed) :is(#game-dock, #online-game-dock):not([hidden]),
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing):not(.frbc-camera-editing) :is(#game-dock, #online-game-dock):is(.frbc-v28-dock-closed, .frbc-dock-closed):not([hidden]),
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) :is(#game-dock, #online-game-dock)[hidden],
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay :is(#game-dock, #online-game-dock)[hidden] {
    display: none !important;
  }
}


/* original: frbc-v28-unified-menu.css */
/* FRBC V32 — shared solo/friend dock.
   online.html now creates the same #game-dock element as index.html.
   Geometry, responsive sizes, dice placement and pop-up stack come from the
   approved shared V28/V30/V32 stylesheets. This file only hides network-only
   duplicate controls already exposed through the shared V28 rail. */

.frbc-pc-rail,
.frbc-pc-layout-toggle,
.frbc-pc-sessions {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html:is(.frbc-v28-demo, .frbc-v28-portrait-demo) body.direct-room #game-dock #pause-actions {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

html:is(.frbc-v28-demo, .frbc-v28-portrait-demo) body.direct-room #game-dock #pause-actions > :not(#online-shelf) {
  display: none !important;
}

/* The online route keeps its native return action in the same shared dock. */
html:is(.frbc-v28-demo, .frbc-v28-portrait-demo) body.direct-room #game-dock #online-shelf {
  display: inline-flex !important;
  order: -1 !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
  min-height: 34px !important;
  height: 34px !important;
  padding: 6px 9px !important;
  border: 1px solid #87b7d273 !important;
  border-radius: 8px !important;
  background: #102b43 !important;
  color: #edf7ff !important;
  font: 700 11px/1.1 system-ui, sans-serif !important;
  white-space: nowrap !important;
}
html:is(.frbc-v28-demo, .frbc-v28-portrait-demo) body.direct-room #game-dock #online-moves-button,
html:is(.frbc-v28-demo, .frbc-v28-portrait-demo) body.direct-room #game-dock .dock-secondary > span:not(#frbc-v28-dock-controls) {
  display: none !important;
}

/* Social notices retain the shared V28 upper-left position and the normal
   FRBC card height. This replaces the old 48px cap that clipped invitations. */
html:is(.frbc-v28-demo, .frbc-v28-portrait-demo) body.direct-room.online-full-ui .frbc-notification-root {
  position: fixed !important;
  top: max(12px, env(safe-area-inset-top)) !important;
  right: auto !important;
  bottom: auto !important;
  left: max(12px, env(safe-area-inset-left)) !important;
  width: min(350px, calc(100vw - 24px)) !important;
  max-width: min(350px, calc(100vw - 24px)) !important;
  max-height: min(46dvh, 350px) !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
  box-sizing: border-box !important;
  z-index: 3100 !important;
}


/* original: frbc-desktop-window-placement-restore.css */
/* FRBC desktop correction v12 — based on the 26/10 loading/active captures.
   Uses the gameplay root class set by frbc-v28-demo.js.
   Desktop landscape only; no mobile, 3D scene, or game logic changes. */
@media screen and (orientation: landscape) and (min-width: 900px) and (min-height: 521px) and (pointer: fine) {
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) {
    --frbc-desktop-chat-top: clamp(72px, 8dvh, 92px);
    --frbc-desktop-dock-limit: min(180px, calc(100dvh - var(--frbc-h-dock-bottom, 6px) - 16px));
    --frbc-desktop-dock-reserve: var(--frbc-desktop-dock-limit);
  }

  /* The gameplay root removes this reserve when the dock is intentionally closed/hidden. */
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical):is(.frbc-v28-dock-closed, .frbc-dock-closed),
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical):has(:is(#game-dock, #online-game-dock)[hidden]) {
    --frbc-desktop-dock-reserve: 0px;
  }

  /* After gameplay starts, keep the existing dock layout but allow its full
     active controls to fit instead of collapsing into a short scroll strip.
     Hidden and explicitly closed states remain authoritative. */
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical):not(.frbc-v28-dock-closed):not(.frbc-dock-closed)
    :is(#game-dock, #online-game-dock):not([hidden]) {
    height: auto !important;
    max-height: var(--frbc-desktop-dock-limit) !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
  }

  /* Friend presence and invitation cards stay in their established upper-left stack. */
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) .frbc-notification-root:not([hidden]) {
    position: fixed !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: auto !important;
    bottom: auto !important;
    left: max(12px, env(safe-area-inset-left)) !important;
  }

  /* Only the floating chat is repositioned. A docked or collapsed chat keeps
     its native state; the open card stops above the visible command dock. */
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical)
    #frbc-chat-modal:not([hidden]):not(.is-docked):not(.is-collapsed) {
    display: block !important;
    position: fixed !important;
    inset: auto !important;
    top: var(--frbc-desktop-chat-top) !important;
    right: auto !important;
    bottom: auto !important;
    left: max(8px, env(safe-area-inset-left)) !important;
    width: min(320px, calc(100dvw - 20px)) !important;
    height: max(0px, min(620px, calc(100dvh - var(--frbc-desktop-chat-top) - var(--frbc-h-dock-bottom, 6px) - var(--frbc-desktop-dock-reserve) - 16px))) !important;
    min-height: 0 !important;
    max-height: max(0px, min(620px, calc(100dvh - var(--frbc-desktop-chat-top) - var(--frbc-h-dock-bottom, 6px) - var(--frbc-desktop-dock-reserve) - 16px))) !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    backdrop-filter: none !important;
    transform: none !important;
    overflow: hidden !important;
    z-index: 200 !important;
    pointer-events: none !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical)
    #frbc-chat-modal:not([hidden]):not(.is-docked):not(.is-collapsed) .frbc-chat-card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    pointer-events: auto !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical)
    #frbc-chat-modal:not([hidden]):not(.is-docked):not(.is-collapsed) #frbc-chat-thread {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical)
    #frbc-chat-modal:not([hidden]):not(.is-docked):not(.is-collapsed) #frbc-chat-form {
    flex: 0 0 auto !important;
  }

  /* Keep game guidance in the existing lower-right rail column. */
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #v28-match-hint:not([hidden]),
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #toast.show {
    right: var(--v28-edge, 10px) !important;
    left: auto !important;
  }
}



/* Network-only rules retained from the original 41st CSS section. */

/* FRBC V32 — notices under the right menu, with dice choices below them. */
@media screen and (min-width:900px) and (pointer:fine) {
 html.frbc-v28-demo:has(body.direct-room):not(.frbc-mobile-ui):not(.frbc-mobile-vertical) body > #dice-values.v28-desktop-dice:not(:empty):not([hidden]) {
  top:var(--v28-dice-top,calc(var(--v28-menu-top,64px) + 475px))!important;
  bottom:auto!important;
 }
 html.frbc-v28-demo:has(body.direct-room):not(.frbc-mobile-ui):not(.frbc-mobile-vertical) :is(#v28-match-hint:not([hidden]),#toast.show:not([hidden])) {
  position:fixed!important;
  top:var(--frbc-v32-popup-top,auto)!important;
  bottom:auto!important;
  right:var(--v28-edge,10px)!important;
  left:auto!important;
  width:var(--v28-right,184px)!important;
  max-width:var(--v28-right,184px)!important;
  max-height:var(--frbc-v32-popup-max-height,128px)!important;
  box-sizing:border-box!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  z-index:89!important;
 }
 html.frbc-v28-demo:has(body.direct-room):not(.frbc-mobile-ui):not(.frbc-mobile-vertical):has(#v28-match-hint:not([hidden]),#toast.show) #v28-rail:not([hidden]) {
  max-height:var(--frbc-v32-rail-max-height,calc(100dvh - var(--v28-menu-top,166px) - 230px))!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
 }
}



/* original: frbc-v34-ingame-menu-fix.css */
/* FRBC V34 ingame menu restore
   Restores the validated right-column behavior for desktop/laptop gameplay:
   - one approved V28/V32 right menu system
   - legal moves panel docked under the right menu
   - match hint/toast no longer blocked by the moves panel
   - multiplayer board-details follows the same geometry as solo moves-panel
   No 3D assets, rules, textures, or gameplay handlers are altered here.
*/

@media screen and (orientation: landscape) and (min-width: 900px) and (pointer: fine) {
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) {
    --frbc-v34-right-gap: 9px;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) .frbc-notification-root:not([hidden]) {
    position: fixed !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    left: max(12px, env(safe-area-inset-left)) !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 3100 !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #v28-rail:not([hidden]) {
    max-height: calc(100dvh - var(--v28-menu-top, 166px) - 104px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical).frbc-v28-moves-open #v28-rail:not([hidden]) {
    max-height: calc(100dvh - var(--v28-menu-top, 166px) - 190px) !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) :is(#moves-panel:not([hidden]), body.direct-room #board-details[open]) {
    position: fixed !important;
    top: calc(var(--v28-panel-bottom, 0px) + 7px) !important;
    right: var(--v28-edge, 14px) !important;
    left: auto !important;
    bottom: auto !important;
    width: var(--v28-right, 214px) !important;
    max-width: var(--v28-right, 214px) !important;
    height: auto !important;
    max-height: calc(100dvh - var(--v28-panel-bottom, 0px) - 14px) !important;
    padding: 8px !important;
    border: 1px solid #8fc6e9 !important;
    border-radius: 12px !important;
    background: #0b2945f6 !important;
    box-shadow: 0 8px 25px #000a !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    z-index: 92 !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #moves-panel header,
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) body.direct-room #board-details > summary,
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) body.direct-room #board-details header {
    font: 700 13px system-ui !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #moves-panel p,
  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) body.direct-room #board-details p {
    font-size: 10px !important;
    line-height: 1.35 !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #moves-panel #moves-list {
    display: none !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #v28-match-hint:not([hidden]) {
    position: fixed !important;
    top: calc(var(--v28-panel-bottom, 0px) + 7px) !important;
    right: var(--v28-edge, 14px) !important;
    left: auto !important;
    bottom: auto !important;
    width: var(--v28-right, 214px) !important;
    max-width: var(--v28-right, 214px) !important;
    min-height: 52px !important;
    max-height: 82px !important;
    padding: 7px 9px !important;
    overflow: auto !important;
    z-index: 91 !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical).frbc-v28-moves-open #v28-match-hint:not([hidden]) {
    display: none !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) #toast.show {
    position: fixed !important;
    top: calc(var(--v28-panel-bottom, 0px) + 7px) !important;
    right: var(--v28-edge, 14px) !important;
    left: auto !important;
    bottom: auto !important;
    width: var(--v28-right, 214px) !important;
    max-width: var(--v28-right, 214px) !important;
    transform: none !important;
    z-index: 95 !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical).frbc-v28-moves-open #toast.show {
    top: auto !important;
    bottom: 25px !important;
    right: calc(var(--v28-right, 214px) + var(--v28-edge, 14px) + var(--frbc-v34-right-gap)) !important;
    width: min(300px, 30vw) !important;
    max-width: min(300px, 30vw) !important;
  }

  html.frbc-v28-demo:not(.frbc-mobile-ui):not(.frbc-mobile-vertical) body.direct-room.online-full-ui #board-details {
    bottom: auto !important;
    right: var(--v28-edge, 14px) !important;
    max-width: var(--v28-right, 214px) !important;
    max-height: calc(100dvh - var(--v28-panel-bottom, 0px) - 14px) !important;
    z-index: 92 !important;
  }
}


/* Original V34 session selector — network mode only. */
/* FRBC V34 – navigation: the native sessions salon is a foreground overlay. */
body.direct-room #frbc-lobby-modal:not([hidden]) { position: fixed !important; inset: 0 !important; z-index: 6500 !important; pointer-events: auto !important; }
body.direct-room #frbc-lobby-modal:not([hidden]) :is(button, input, select, a) { pointer-events: auto; }

/* Original V34 human session confirmation — network mode only. */
/* FRBC V34 — human session navigation parity with resident AI. */
/* Foreground session selector, preserving live match viewport. */
body.direct-room #frbc-lobby-modal:not([hidden]){position:fixed!important;inset:0!important;z-index:6500!important;pointer-events:auto!important}
/* Confirmations (leave/cancel) must be above the sessions selector. */
body.direct-room .frbc-confirm-overlay{position:fixed!important;inset:0!important;z-index:9000!important;pointer-events:auto!important}
body.direct-room .frbc-confirm-overlay section,body.direct-room .frbc-confirm-overlay button{pointer-events:auto!important}
/* Native menu is always an overlay above the scene, including direct online tables. */
body.direct-room.online-full-ui #online-main-ui #menu-modal:not([hidden]){position:fixed!important;inset:0!important;z-index:6800!important;pointer-events:auto!important}
body.direct-room.online-full-ui #online-main-ui #menu-modal:not([hidden]) .menu-card{pointer-events:auto!important}

/* Original frbc-online-ui.css — all selectors already restricted to body.direct-room. */
/* Friend-only behavior; the visible menu, top bar, dock and responsive geometry
   inherit the same locked V28/V30/V32 styles as the AI game. */
body.direct-room #frbc-chat-open,
body.direct-room.online-full-ui #game>h2,
body.direct-room.online-full-ui #game>#scoreboard,
body.direct-room.online-full-ui .scene-controls,
body.direct-room.online-full-ui #moves-panel {
  display: none !important;
}

body.direct-room.online-full-ui #game {
  isolation: isolate;
}

body.direct-room.online-full-ui .modal-backdrop {
  z-index: 100;
  overflow-y: auto;
}

body.direct-room.online-full-ui .topbar {
  pointer-events: none;
}

body.direct-room.online-full-ui .topbar a,
body.direct-room.online-full-ui .topbar button {
  pointer-events: auto;
}

body.direct-room.online-full-ui #match-status,
body.direct-room.online-full-ui #paused-msg {
  display: none !important;
}

/* The accessible move list remains available from the shared V28 COUPS tile. */
body.direct-room.online-full-ui #board-details {
  position: fixed;
  right: var(--v28-edge, 14px);
  bottom: calc(var(--online-dock-height, 180px) + 25px);
  z-index: 20;
  padding: 8px;
  max-width: min(420px, 90vw);
  max-height: 70vh;
  overflow: auto;
  border-radius: 9px;
  background: #0a2c4bf5;
}

body.direct-room.online-full-ui #board-details:not([open]) {
  display: none !important;
}

body.direct-room.online-full-ui #direct-waiting {
  top: 200px;
  z-index: 22;
}

body.direct-room.online-at-lobby #game-dock,
body.direct-room.online-at-lobby #board-details,
body.direct-room.online-at-lobby #direct-waiting,
body.direct-room.online-at-lobby .match-score {
  display: none !important;
}

/* Network dice use the same face size, tile and color as the solo dock. */
body.direct-room #game-dock .online-die {
  box-sizing: border-box;
  display: grid;
  flex: 0 0 auto;
  width: 35px;
  min-width: 35px;
  height: 35px;
  min-height: 35px;
  place-items: center;
  border: 2px solid transparent;
  border-radius: 5px;
  background: #eeeae0;
  color: #132d45;
  font: 700 24px/1 system-ui, sans-serif;
}

@media (orientation: landscape) {
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) body.direct-room #game-dock .online-die {
    width: clamp(27px, var(--frbc-h-dice-px, 34px), 43px) !important;
    min-width: clamp(27px, var(--frbc-h-dice-px, 34px), 43px) !important;
    height: clamp(27px, var(--frbc-h-dice-px, 34px), 43px) !important;
    min-height: clamp(27px, var(--frbc-h-dice-px, 34px), 43px) !important;
    font-size: clamp(18px, 5dvh, 24px) !important;
  }
}

@media (orientation: landscape) and (max-height: 520px) and (max-width: 1100px) {
  html.frbc-v28-demo.frbc-mobile-horizontal.frbc-mobile-ui.frbc-landscape-overlay:not(.mobile-intro):not(.mobile-decor-expanded):not(.frbc-camera-editing) body.direct-room #game-dock .online-die {
    width: clamp(25px, var(--frbc-h-dice-px, 34px), 30px) !important;
    min-width: clamp(25px, var(--frbc-h-dice-px, 34px), 30px) !important;
    height: clamp(25px, var(--frbc-h-dice-px, 34px), 30px) !important;
    min-height: clamp(25px, var(--frbc-h-dice-px, 34px), 30px) !important;
    font-size: clamp(17px, 4.8dvh, 21px) !important;
  }
}

/* On desktop V28 moves #dice-values out of #game-dock and under the rail.
   Match the solo dice buttons there too; the old dock-only selector left
   these online spans as tiny unstyled glyphs in a full-width dark panel. */
@media (min-width: 900px) and (pointer: fine) {
  html.frbc-v28-demo:not(.frbc-mobile-ui) body.direct-room > #dice-values.v28-desktop-dice:not(:empty):not([hidden]) .online-die {
    box-sizing: border-box;
    display: grid;
    width: 100%;
    min-width: 42px;
    height: 48px;
    min-height: 48px;
    place-items: center;
    border: 2px solid transparent;
    border-radius: 8px;
    background: #eeeae0;
    color: #132d45;
    font: 700 29px/1 system-ui, sans-serif;
  }
}

/* FRBC V34 — Ajustement caméra : dés flottants sur ordinateur.
   Le menu V28 déplace #dice-values directement sous <body> : il n'est donc
   pas masqué par la règle caméra appliquée à #game-dock.
   Les choix de dés conservent leur état et réapparaissent automatiquement
   à la fermeture de « Mon angle de jeu ». Aucun changement du gameplay. */
html:is(.frbc-player-camera-editing,.frbc-camera-editing) #dice-values,
html:is(.frbc-player-camera-editing,.frbc-camera-editing) body > #dice-values.v28-desktop-dice {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* FRBC V35 retour salon : le dock multijoueur reste cache en solo quand [hidden] est present.
   Correctif MakePlay.ai 28 octobre 2026. Ne change ni les clics ni les modes humains. */
html #game-dock #frbc-multiplayer-actions[hidden],
html #online-game-dock #frbc-multiplayer-actions[hidden],
html #frbc-multiplayer-actions.frbc-multiplayer-actions[hidden]{display:none!important}
