/* Mobile presentation layer; desktop styles and game/accounting state are deliberately untouched. */
.mobile-site-nav,.mobile-battle-participants,.mobile-battle-controls,.mobile-dice-settings,.mobile-wheel-label{display:none}
.mobile-battle-participants[hidden]{display:none!important}
@media(max-width:1000px){
 body.ruvi-mobile{padding-bottom:calc(76px + env(safe-area-inset-bottom));--mobile-surface:#fff;--mobile-subtle:#f6f5f2;--mobile-border:#e6e3dd;--mobile-muted:#7e838e}
 :root[data-theme=dark] body.ruvi-mobile{--mobile-surface:#1b1f24;--mobile-subtle:#23272e;--mobile-border:#343a43;--mobile-muted:#9ba3b0}
 .ruvi-mobile .header{height:60px;position:relative;z-index:20}
 .ruvi-mobile .header-inner{height:60px;padding:0 12px;gap:8px}
 .ruvi-mobile .brand{font-size:24px;gap:5px;flex:none}
 .ruvi-mobile .brand-mark{width:40px;height:42px;transform:scale(.7);transform-origin:left center}
 .ruvi-mobile .desktop-nav{display:none}
 .ruvi-mobile .header-actions{gap:6px;margin-left:auto;min-width:0}
 .ruvi-mobile .wallet-pill{height:40px!important;max-width:156px;padding:0 10px;font-size:13px!important;gap:5px}
 .ruvi-mobile [data-balance]{overflow:hidden;text-overflow:ellipsis}
 .ruvi-mobile .profile-trigger{display:flex;gap:0;width:44px;height:44px;padding:4px;justify-content:center;flex:none}
 .ruvi-mobile .profile-trigger .avatar{--a:30px}
 .ruvi-mobile .profile-trigger>svg,.ruvi-mobile .profile-trigger>[data-icon]{display:none}
 .ruvi-mobile .mobile-menu{display:flex;width:44px;height:44px;padding:8px;flex:none}
 .mobile-site-nav{position:fixed;inset:auto 0 0;z-index:30;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:calc(64px + env(safe-area-inset-bottom));padding:4px max(8px,env(safe-area-inset-left)) calc(4px + env(safe-area-inset-bottom));border-top:1px solid var(--mobile-border);background:var(--mobile-surface)}
 .mobile-site-nav :is(a,button){min-width:0;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;border-radius:10px;background:none;text-decoration:none;color:var(--mobile-muted);font:inherit;font-size:11px;padding:3px}
 .mobile-site-nav svg{width:23px;height:23px}
 .mobile-site-nav:has(.wheel-launcher:not([hidden])){grid-template-columns:repeat(5,minmax(0,1fr))}
 .mobile-site-nav .wheel-launcher{position:static;inset:auto;width:auto;height:auto;box-shadow:none;border:0;border-radius:10px;z-index:auto;color:var(--mobile-muted)}
 .mobile-site-nav .wheel-launcher[hidden]{display:none!important}
 .mobile-site-nav .mobile-wheel-label{display:block}
 .mobile-site-nav [aria-current=page]{color:var(--orange)}
 .mobile-site-nav :is(a,button):focus-visible{outline:2px solid var(--orange);outline-offset:-3px}
 .mobile-input-active .mobile-site-nav{display:none}
 body.ruvi-mobile .chat-launcher{bottom:calc(78px + env(safe-area-inset-bottom));min-height:44px;z-index:31}
 .ruvi-mobile .chat-launcher:is(:hover,:focus-visible){z-index:32}
 .ruvi-mobile .ruvi-chat{inset:auto 0 var(--mobile-keyboard-offset,0px);width:100%;height:min(600px,calc(var(--mobile-viewport-height,100dvh) * .72));max-height:calc(var(--mobile-viewport-height,100dvh) - 88px);border-radius:20px 20px 0 0;transform:translateY(20px)}
 .ruvi-mobile .ruvi-chat.is-open{transform:none}
 .ruvi-mobile .chat-compose textarea{font-size:16px}
 .ruvi-mobile .chat-header{min-height:64px;padding:12px 16px}
 .ruvi-mobile .chat-toggle{width:44px;height:44px}
 .ruvi-mobile .toast-region{bottom:calc(80px + env(safe-area-inset-bottom));left:12px;right:12px;max-width:none}
 .ruvi-mobile .site-footer{margin-bottom:12px}
 #game-layout.mobile-game-layout{--mobile-stage-height:clamp(280px,80vw,380px);--mobile-banner-height:56px;display:flex;flex-direction:column;gap:10px;width:100%;max-width:640px;margin:8px auto 0;padding:0 10px;grid-template-rows:none;align-items:stretch}
 #game-layout.mobile-game-layout [hidden]{display:none!important}
 #game-layout.mobile-game-layout>.sidebar,#game-layout.mobile-game-layout>.main-column{display:contents;height:auto}
 #game-layout.mobile-game-layout .game-card{order:0;display:flex;flex-direction:column;height:calc(78px + var(--mobile-stage-height) + var(--mobile-banner-height));min-height:0;width:100%;border-radius:18px;overflow:clip}
 #game-layout.mobile-game-layout .game-heading{position:relative;display:block;flex:0 0 78px;height:78px;min-height:0;padding:25px 8px 5px}
 #game-layout.mobile-game-layout .game-heading>div:first-child{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}
 #game-layout.mobile-game-layout .game-mode-switch{display:grid;width:100%;height:48px;grid-template-columns:repeat(3,minmax(0,1fr));padding:2px;gap:2px;margin:0;border-radius:12px}
 #game-layout.mobile-game-layout .game-mode-switch a{min-width:0;min-height:42px;padding:0 4px;gap:6px;font-size:13px}
 #game-layout.mobile-game-layout .game-mode-switch svg{width:21px;height:21px}
 #game-layout.mobile-game-layout .game-mode-bank{height:20px;bottom:calc(100% + 3px);max-width:100px;font-size:10px;line-height:17px}
 #game-layout.mobile-game-layout .game-tools{position:absolute;top:122px;right:8px;z-index:6;display:flex;gap:0}
 #game-layout.mobile-game-layout .game-tools .icon-button{display:flex;width:44px;height:44px;padding:12px}
 #game-layout.mobile-game-layout .game-tools svg{width:20px;height:20px}
 #game-layout.mobile-game-layout .game-stage{position:relative;display:block;flex:0 0 var(--mobile-stage-height);height:var(--mobile-stage-height);min-height:0;padding:0;isolation:isolate}
 #game-layout.mobile-game-layout .round-summary{position:absolute;inset:0 0 auto;z-index:3;width:100%;height:84px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:16px 37px 22px;gap:0 8px;padding:4px 12px 0;align-items:center}
 #game-layout.mobile-game-layout .bank-label{grid-column:1;grid-row:1;font-size:9px;letter-spacing:1.6px}
 #game-layout.mobile-game-layout .bank-value{grid-column:1;grid-row:2;font-size:31px;line-height:1.1;letter-spacing:-1px;margin:0;white-space:nowrap}
 #game-layout.mobile-game-layout .bank-value span{font-size:25px}
 #game-layout.mobile-game-layout .timer{grid-column:2;grid-row:1/3;align-self:start;min-width:96px;height:40px;margin:0;padding:7px 9px;font-size:21px;gap:5px;border-radius:10px}
 #game-layout.mobile-game-layout .timer svg{width:18px!important;height:18px!important}
 #game-layout.mobile-game-layout .round-stats{grid-column:1;grid-row:3;display:flex;flex-direction:row;gap:9px;margin:0;padding:0;border:0}
 #game-layout.mobile-game-layout .round-stats>div{display:flex;gap:4px;font-size:10px;white-space:nowrap}
 #game-layout.mobile-game-layout .round-stats b{font-size:11px}
 #game-layout.mobile-game-layout .fair-note{display:none}
 #game-layout.mobile-game-layout .board-wrap{position:absolute;left:8px;bottom:12px;top:auto;z-index:2;flex:none;width:min(54%,calc(var(--mobile-stage-height) - 104px));height:auto;max-width:none;aspect-ratio:1;margin:0;overflow:visible}
 #game-layout.mobile-game-layout .host-layer{position:absolute;inset:86px 4px 4px 57%;z-index:1;width:auto;height:auto;overflow:visible}
 #game-layout.mobile-game-layout .host-canvas{overflow:visible}
 #game-layout.mobile-game-layout :is(#round-banner,.battle-banner){display:flex;flex:0 0 var(--mobile-banner-height);height:var(--mobile-banner-height);min-height:var(--mobile-banner-height);margin:0 8px 0;padding:6px 9px;border-radius:12px;gap:8px;align-items:center;overflow:hidden}
 #game-layout.mobile-game-layout :is(.banner-icon,.battle-banner>svg){display:none}
 #game-layout.mobile-game-layout .banner-text b,#game-layout.mobile-game-layout .battle-banner b{font-size:12px;line-height:1.25}
 #game-layout.mobile-game-layout .banner-text small,#game-layout.mobile-game-layout .battle-banner small{font-size:10px;line-height:1.3;margin-top:3px;overflow-wrap:anywhere}
 #game-layout.mobile-game-layout .winner-money,#game-layout.mobile-game-layout .battle-banner strong{font-size:22px;line-height:1.1}
 #game-layout.mobile-game-layout .winner-heading{font-size:11px}
 #game-layout.mobile-game-layout :is(.round-banner,.battle-banner) .avatar{--a:32px}
 #game-layout.mobile-game-layout .winner-chance{font-size:10px;margin-left:6px;padding-left:9px}
 #game-layout.mobile-game-layout .winner-chance b{font-size:12px}
 #game-layout.mobile-game-layout .mode-content{min-height:0;flex:1}
 #game-layout.mobile-game-layout .battle-view{display:flex;flex:1;min-height:0}
 #game-layout.mobile-game-layout .battle-scene{display:grid;grid-template-columns:1fr;grid-template-rows:80px 63px 96px minmax(44px,1fr);gap:0;height:var(--mobile-stage-height);min-height:0;flex:0 0 var(--mobile-stage-height);padding:0 12px 8px}
 #game-layout.mobile-game-layout .battle-bank{grid-row:1;align-items:flex-start;text-align:left;gap:3px;padding-top:5px}
 #game-layout.mobile-game-layout .battle-bank>span{font-size:9px;letter-spacing:1.5px}
 #game-layout.mobile-game-layout .battle-bank>strong{font-size:31px;line-height:1.1;letter-spacing:-1px}
 #game-layout.mobile-game-layout .battle-bank small{font-size:10px;max-width:calc(100% - 76px)}
 #game-layout.mobile-game-layout .battle-clock{top:4px;right:12px;z-index:2}
 #game-layout.mobile-game-layout .battle-clock .timer{font-size:21px;min-width:96px}
 #game-layout.mobile-game-layout .battle-team-row{grid-row:2;display:flex;gap:8px;margin:0;align-items:center}
 #game-layout.mobile-game-layout .battle-team{gap:6px;min-width:0}
 #game-layout.mobile-game-layout .team-emblem{display:none}
 #game-layout.mobile-game-layout .battle-team h2{font-size:12px;margin:0 0 3px}
 #game-layout.mobile-game-layout .battle-team strong{font-size:24px;letter-spacing:-.5px}
 #game-layout.mobile-game-layout .battle-team strong.large-amount{font-size:18px}
 #game-layout.mobile-game-layout .team-metrics{margin-top:2px;gap:8px}
 #game-layout.mobile-game-layout .team-metrics>b{font-size:14px}
 #game-layout.mobile-game-layout .team-metrics>span{font-size:10px}
 #game-layout.mobile-game-layout .battle-slot{grid-row:3;width:100%;height:96px;margin:0}
 #game-layout.mobile-game-layout .battle-pointer{top:0}
 #game-layout.mobile-game-layout .battle-pointer:after{height:max(0px,calc((96px - var(--h)) / 2 - 16px))}
 #game-layout.mobile-game-layout .mobile-battle-controls{grid-row:4;display:block;align-self:end}
 #game-layout.mobile-game-layout .mobile-battle-controls>label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
 #game-layout.mobile-game-layout .battle-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
 #game-layout.mobile-game-layout .battle-choice button{height:44px;min-height:44px;padding:5px;font-size:12px}
 #game-layout.mobile-game-layout .dice-view{display:flex;flex:1;min-height:0;padding:2px 12px 10px;gap:8px;justify-content:space-between}
 #game-layout.mobile-game-layout .dice-result{flex:1 1 88px;min-height:88px;display:flex;flex-direction:column;justify-content:center;padding:0;text-align:left;align-items:flex-start}
 #game-layout.mobile-game-layout .dice-symbol{display:none}
 #game-layout.mobile-game-layout .dice-result-label{font-size:12px;margin:0 0 5px}
 #game-layout.mobile-game-layout .dice-result>strong{font-size:clamp(32px,10vw,44px);line-height:1.05;min-height:48px;letter-spacing:-1px;max-width:calc(100% - 72px)}
 #game-layout.mobile-game-layout #dice-result-status{font-size:11px;line-height:1.3;min-height:15px}
 #game-layout.mobile-game-layout #dice-paid{font-size:12px;min-height:17px;margin:3px 0 0}
 #game-layout.mobile-game-layout .dice-scale{margin:0;flex:none;height:64px}
 #game-layout.mobile-game-layout .dice-track{height:16px;margin:0}
 #game-layout.mobile-game-layout #dice-board-range{height:44px;top:-14px}
 #game-layout.mobile-game-layout .dice-scale-labels{font-size:10px;margin-bottom:8px}
 #game-layout.mobile-game-layout .dice-boundary{margin-top:8px;font-size:12px}
 #game-layout.mobile-game-layout .dice-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:8px 0;gap:0;height:74px;min-height:74px}
 #game-layout.mobile-game-layout .dice-summary>div{padding:0 8px;border-right:1px solid var(--mobile-border)}
 #game-layout.mobile-game-layout .dice-summary>div:first-child{display:none}
 #game-layout.mobile-game-layout .dice-summary>div:last-child{border:0}
 #game-layout.mobile-game-layout .dice-summary span{font-size:10px;line-height:1.3;min-height:26px;margin-bottom:4px}
 #game-layout.mobile-game-layout .dice-summary b{font-size:clamp(14px,4vw,20px);line-height:1.2;letter-spacing:-.5px;white-space:nowrap}
 #game-layout.mobile-game-layout .dice-summary b.large-amount{font-size:clamp(10px,3vw,16px)}
 #game-layout.mobile-game-layout .mobile-dice-settings{display:grid;grid-template-columns:112px minmax(0,1fr);gap:8px;align-items:center;min-height:44px}
 #game-layout.mobile-game-layout .dice-chance-control{display:flex;align-items:center;gap:5px;margin:0;padding:0;border:0;min-height:44px}
 #game-layout.mobile-game-layout .dice-chance-control>label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
 #game-layout.mobile-game-layout .dice-chance-control>.amount-input{width:100%;height:44px;padding:0 8px}
 #game-layout.mobile-game-layout #dice-chance{font-size:18px;letter-spacing:0;min-width:0}
 #game-layout.mobile-game-layout .dice-chance-control>.amount-input>span{font-size:16px}
 #game-layout.mobile-game-layout :is(#dice-chance-range,.chance-ticks,.dice-range-info,.mode-fee){display:none}
 #game-layout.mobile-game-layout .dice-direction{display:flex;margin:0;height:44px}
 #game-layout.mobile-game-layout .dice-direction button{min-width:0;flex:1;height:42px;padding:5px;font-size:12px}
 #game-layout.mobile-game-layout .sidebar :is(.bet-card,.mode-bet-card){position:static;inset:auto;order:1;flex:none;width:100%;height:288px;min-height:288px;max-height:none;margin:0;padding:12px;border:1px solid var(--mobile-border);border-radius:16px;box-shadow:none;backdrop-filter:none}
 #game-layout.mobile-game-layout .sidebar .bet-title{display:none}
 #game-layout.mobile-game-layout :is(#bet-form,#battle-form,#dice-form){display:flex;flex-direction:column;gap:0;min-height:0;height:100%;flex:none}
 #game-layout.mobile-game-layout :is(#bet-button,#battle-play,#dice-play){order:0;display:flex;flex:none;height:48px;min-height:48px;margin:0 0 12px;padding:10px;font-size:15px;border-radius:11px}
 #game-layout.mobile-game-layout :is(#bet-form,#battle-form,#dice-form)>label{font-size:12px;line-height:18px;margin:0 0 5px}
 #game-layout.mobile-game-layout :is(#bet-form,#battle-form,#dice-form)>.amount-input{height:52px;min-height:52px;flex:none;border-radius:11px;padding:0 12px}
 #game-layout.mobile-game-layout :is(#bet-form,#battle-form,#dice-form)>.amount-input input{font-size:27px;line-height:1.2}
 #game-layout.mobile-game-layout :is(#bet-form,#battle-form,#dice-form)>.amount-input>span{font-size:23px}
 #game-layout.mobile-game-layout :is(#bet-form,#battle-form,#dice-form)>.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:44px;gap:7px;margin:8px 0 10px}
 #game-layout.mobile-game-layout :is(#bet-form,#battle-form,#dice-form)>.quick-actions button{display:flex;height:44px;min-height:44px;font-size:17px}
 #game-layout.mobile-game-layout :is(#bet-form,#battle-form,#dice-form)>.quick-actions .bet-max{font-size:12px}
 #game-layout.mobile-game-layout .bet-receipt{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:6px;padding:8px;margin:0;border-radius:10px;min-height:62px;font-size:11px;overflow:hidden}
 #game-layout.mobile-game-layout .bet-receipt h3{display:none}
 #game-layout.mobile-game-layout .bet-receipt-value{font-size:12px!important;line-height:1.35;min-height:0;margin:0;overflow-wrap:anywhere}
 #game-layout.mobile-game-layout .bet-receipt-details{font-size:10px;gap:4px;border:0;padding:0;line-height:1.4}
 #game-layout.mobile-game-layout .battle-personal{grid-column:1/-1;font-size:10px;margin:0;gap:0}
 #game-layout.mobile-game-layout .battle-personal b{font-size:10px}
 #game-layout.mobile-game-layout :is(#bet-error,#battle-error,#dice-error){display:none!important;height:0;min-height:0;flex:none;margin:0}
 #game-layout.mobile-game-layout :is(.bet-rules-link,.mode-fee){display:none}
 #game-layout.mobile-game-layout #dice-form::after{content:'Результат можно проверить · комиссия включена';color:var(--mobile-muted);font-size:11px;line-height:1.4;margin:auto 0 0;padding:8px 0}
 #game-layout.mobile-game-layout :is(.participants-card,.mobile-battle-participants,.recent-history){order:3;width:100%;margin:0;padding:12px;border-radius:16px}
 #game-layout.mobile-game-layout :is(.participants-card,.mobile-battle-participants){order:2}
 #game-layout.mobile-game-layout .mobile-battle-participants{display:block;min-height:90px}
 #game-layout.mobile-game-layout .battle-rosters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}
 #game-layout.mobile-game-layout .battle-rosters>div{min-height:64px}
 #game-layout.mobile-game-layout .mobile-section-title{display:none}
 #game-layout.mobile-game-layout .participants{display:flex;min-height:70px;height:70px;gap:8px;overflow:auto;scrollbar-width:thin;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:2px;margin:0;grid-template-rows:none}
 #game-layout.mobile-game-layout .participant{flex:0 0 135px;height:64px;min-height:64px;min-width:0;padding:8px;display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:32px 12px;gap:2px 7px;align-items:center;scroll-snap-align:start}
 #game-layout.mobile-game-layout .participant .avatar{--a:32px}
 #game-layout.mobile-game-layout .participant-name{font-size:11px}
 #game-layout.mobile-game-layout .participant-amount{font-size:12px}
 #game-layout.mobile-game-layout .participant-tickets{font-size:9px}
 #game-layout.mobile-game-layout .participants-empty{flex:1;min-height:64px}
 #game-layout.mobile-game-layout .participant-controls{display:none}
 #game-layout.mobile-game-layout .recent-history-scroll{height:268px}
 #game-layout.mobile-game-layout .recent-history :is(.empty-history,.mode-history-empty){min-height:240px}
 #game-layout.mobile-game-layout .recent-history .section-heading{height:32px;min-height:32px;margin-bottom:8px}
 #game-layout.mobile-game-layout .recent-history h2{font-size:18px}
 #game-layout.mobile-game-layout.is-secondary-mode .participants-card{display:none!important}
 #game-layout.mobile-game-layout>.site-footer{order:4;width:100%;margin-top:8px}
 .ruvi-mobile .rw-amount input,.ruvi-mobile input.text-input{font-size:16px}
 @media(max-height:700px) and (max-width:760px){
  #game-layout.mobile-game-layout{--mobile-stage-height:240px;--mobile-banner-height:48px}
  #game-layout.mobile-game-layout .board-wrap{width:min(54%,158px)}
  #game-layout.mobile-game-layout .host-layer{top:72px}
  #game-layout.mobile-game-layout .battle-scene{grid-template-rows:65px 56px 74px minmax(44px,1fr);padding-bottom:0}
  #game-layout.mobile-game-layout .battle-slot{height:74px}
  #game-layout.mobile-game-layout .battle-pointer:after{display:none}
  #game-layout.mobile-game-layout .battle-bank small{display:none}
  #game-layout.mobile-game-layout .dice-view{gap:5px;padding-top:0;padding-bottom:4px}
  #game-layout.mobile-game-layout .dice-result{min-height:65px;flex-basis:65px}
  #game-layout.mobile-game-layout .dice-result>strong{font-size:35px;min-height:36px}
  #game-layout.mobile-game-layout #dice-result-status{font-size:10px}
  #game-layout.mobile-game-layout #dice-paid{display:none}
  #game-layout.mobile-game-layout .dice-summary{height:60px;min-height:60px;padding-block:6px}
  #game-layout.mobile-game-layout .dice-summary span{min-height:22px;font-size:9px;line-height:1.2;margin-bottom:2px}
  #game-layout.mobile-game-layout .dice-summary b{font-size:clamp(14px,4vw,18px)}
 }
 @media(max-width:350px){
  .ruvi-mobile .brand{font-size:21px}.ruvi-mobile .brand-mark{width:34px;transform:scale(.6)}
  .ruvi-mobile .wallet-pill{max-width:132px;padding:0 7px;font-size:12px!important}
  .ruvi-mobile .profile-trigger{width:44px}
  .ruvi-mobile .header-inner{padding:0 8px}
  #game-layout.mobile-game-layout{padding-inline:6px}
  #game-layout.mobile-game-layout .bank-value,#game-layout.mobile-game-layout .battle-bank>strong{font-size:28px}
  #game-layout.mobile-game-layout .game-mode-switch a{gap:4px;font-size:12px}
  #game-layout.mobile-game-layout .battle-team strong{font-size:21px}
  #game-layout.mobile-game-layout .mobile-dice-settings{grid-template-columns:90px minmax(0,1fr)}
  #game-layout.mobile-game-layout .dice-summary b{font-size:18px}
 }
}
