/* Adaptive layer only: desktop rules, trading state and storage stay unchanged. */
.mobile-shortcuts{display:none}
@media(max-width:760px), (max-width:950px) and (max-height:540px) and (pointer:coarse){
 html{scroll-padding-top:16px}body{overflow-wrap:break-word}
 .app-shell,.academy-shell,.chess-shell,.stats-shell{width:100%;min-width:0;padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));padding-bottom:max(12px,env(safe-area-inset-bottom))}
 .workspace,.chart-column,.trade-column,.trade-ticket,.academy-layout,.quiz-workspace,.lesson-studio,.control-panel,.stats-layout{min-width:0;max-width:100%}
 body .workspace,body.position-focus .workspace,body.order-pending .workspace{grid-template-columns:minmax(0,1fr)}.trade-column{position:static}
 .topbar{grid-template-columns:minmax(0,1fr) 44px;padding:8px}.brand{min-width:0}.brand strong{font-size:16px}.brand small{letter-spacing:.03em;overflow-wrap:anywhere}
 .market-strip{flex-wrap:wrap;gap:10px 16px;justify-content:flex-start}.market-strip strong{font-size:16px}.market-strip .feed-state{margin-left:auto}
 .desk-nav{gap:8px;min-width:0}.desk-nav #editLocalName{max-width:calc(100% - 60px);overflow-wrap:anywhere;min-height:44px}
 .desk-nav .profile-progression{min-width:0;grid-template-columns:35px minmax(0,1fr) auto;gap:8px}.progression-main{min-width:0}
 #deskMenu{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));max-height:100dvh}
 #sessionToggle,#deskMenuButton{width:44px;height:44px}#sessionBar{grid-template-columns:44px minmax(0,1fr)}.session-primary{min-width:0}.session-primary strong,.session-primary small{overflow-wrap:anywhere}.session-primary>span{font-size:12px}
 .chart-toolbar{padding:6px 0;gap:6px;align-items:center}.market-selector{width:100%;order:-3}.market-selector a{min-height:44px;display:grid;place-items:center;font-size:14px}
 .timeframes{width:100%;order:-2;gap:2px}.timeframes button{flex:1;min-width:0;min-height:44px;padding:8px 4px;font-size:14px}
 #flowSettingsToggle{min-height:44px}.mobile-shortcuts{display:flex;margin-left:auto;gap:12px;font-size:14px}.mobile-shortcuts a{display:flex;align-items:center;min-height:44px;color:#91e8cf;text-decoration:none}.mobile-position-link{display:none!important}.position-focus .mobile-plan-link,.order-pending .mobile-plan-link{display:none}.position-focus .mobile-position-link,.order-pending .mobile-position-link{display:flex!important}
 .zoom-controls{width:100%;margin:0;padding:0;border:0;flex-wrap:wrap;gap:2px}.zoom-controls button{min-width:40px;min-height:44px;font-size:14px;padding:8px}.zoom-controls #rangeLabel{display:block;min-width:0;flex:1;font-size:12px}.zoom-controls #alertToggle,.zoom-controls #decisionLedgerToggle{font-size:12px}
 .flow-legend{gap:6px 12px;font-size:12px;padding:4px 0}.flow-legend span{white-space:normal}.flow-legend .flow-method{width:100%}
 #feedHealth{font-size:12px;line-height:1.5;overflow-wrap:anywhere}.other-market-state{font-size:13px}
 /* One canvas, bounded by width/height rather than the old 640px minimum. */
 body:not(.position-focus):not(.order-pending) .chart-card{height:auto;min-height:0;display:flex;flex-direction:column;overflow:visible}
 body:not(.position-focus):not(.order-pending) .chart-card canvas,body.flow-mode .chart-card canvas{height:clamp(300px,58svh,520px);min-height:0;width:100%;flex:none}
 body.position-focus .chart-card,body.order-pending .chart-card{height:auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:clamp(300px,58svh,520px) auto;overflow:visible}
 body.position-focus .chart-card canvas,body.order-pending .chart-card canvas{height:100%;min-height:0;width:100%;grid-row:1;grid-column:1}
 .chart-rail{grid-row:2;grid-column:1;width:100%;padding:12px 8px;min-width:0}.rail-position.open .rail-pnl>strong{font-size:28px}.rail-position.open dl dd{font-size:14px}.rail-position dt{font-size:13px}.rail-position dl>div{gap:12px}.rail-position dl dd{max-width:66%;overflow-wrap:anywhere}
 .chart-rail button,.chart-rail input:not([type=checkbox]){min-height:44px}.chart-rail input:not([type=checkbox]){font-size:16px;min-width:0;max-width:100%}.rail-close{width:100%}
 .trade-ticket{padding:12px 8px}.trade-ticket label,.trade-ticket .control-label{font-size:14px}.trade-ticket .input-unit input{font-size:16px;min-height:44px;min-width:0;width:100%;padding:10px 8px}.input-unit{min-width:0}.trade-ticket .segmented button,.paper-actions button,#useLivePrice{min-height:44px;font-size:14px}.trade-ticket input[type=range]{height:36px;width:100%;touch-action:pan-y}.ticket-grid,.ticket-metrics,.paper-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notional-line{flex-wrap:wrap;gap:8px}.notional-line strong,.exit-row strong,.exit-row span{overflow-wrap:anywhere}.exit-row{flex-wrap:wrap;gap:6px}.field-help{font-size:13px}
 #railPositionBlock,#tradePlannerTitle{scroll-margin-top:16px}
 body.flow-mode .flow-guide{padding:12px 8px;border-left:0}.flow-guide>button{position:static;margin-top:8px;min-height:44px;font-size:14px}.flow-guide>div{gap:6px}.flow-guide strong{font-size:14px}.flow-guide #flowLevelClose{min-height:44px}.technical-lens button{min-height:44px}
 .section-shell>header{position:sticky;top:0;z-index:20;background:#080e14;padding:8px 0;gap:8px}.section-shell>header button{min-height:44px;font-size:14px}.section-shell #sectionPosition{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.section-shell iframe{height:calc(100dvh - 160px);min-height:360px}
 .embed .academy-layout,.embed .academy-layout.lesson-active{display:block}.embed .board-stage{min-height:0;width:100%;padding:8px}.embed .board-frame,.embed .opponent-bar,.embed .player-bar,.board-frame,.opponent-bar,.player-bar{width:min(100%,520px);max-width:100%;margin-left:auto;margin-right:auto}.board-frame{aspect-ratio:1}.chessboard{grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr))}.square{min-height:0;min-width:0;font-size:clamp(22px,9vw,48px)}
 .difficulty-control button,.game-actions button,.pause-tabs button,.game-controls button{min-height:44px;font-size:14px}.game-controls{flex-wrap:wrap}.game-controls button{flex:1 1 42%;white-space:normal}.mind-play #gameCanvas{height:clamp(220px,42svh,340px);width:100%}.game-toolbar{flex-wrap:wrap;gap:8px}
 .academy-actions button,.academy-actions a,.question-actions button,.lesson-toolbar button{min-height:44px}.answer-option{min-height:52px}.answer-option span,.explanation>p,.lesson-content p,.lesson-content li{font-size:16px;line-height:1.6}.lesson-list button{min-height:44px}.lesson-art{max-width:100%}.question-copy h1{font-size:20px;line-height:1.4}.lesson-toolbar{flex-wrap:wrap}.visual-wrap{height:clamp(205px,38svh,300px)}
 .stats-topbar{flex-wrap:wrap;padding:10px}.stats-actions{flex-wrap:wrap}.stats-actions button,.stats-actions a{min-height:44px}.table-scroll{overflow-x:auto;max-width:100%}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .first-tutorial{padding:12px}.tutorial-card{max-height:calc(100dvh - 24px);padding:16px;min-width:0}.tutorial-head{flex-wrap:wrap;gap:10px}.tutorial-head button,.tutorial-foot button{min-height:44px;font-size:14px}.opening-fields{grid-template-columns:minmax(0,1fr)}.opening-fields input,.opening-fields select{font-size:16px;min-height:44px}.tutorial-foot{flex-wrap:wrap}
 .entry-gate{min-height:100dvh;padding:24px 0 max(24px,env(safe-area-inset-bottom))}.entry-gate-footer{position:static;margin-top:22px;font-size:12px;letter-spacing:.03em}.entry-gate-content{max-width:calc(100% - 32px)}.local-name-field input{font-size:16px}.welcome-photo{padding:20px}.welcome-photo img{max-height:calc(100dvh - 70px);object-fit:contain}.welcome-photo button{right:0}
}
@media(max-width:760px) and (orientation:landscape) and (max-height:540px), (max-width:950px) and (max-height:540px) and (pointer:coarse){
 body:not(.position-focus):not(.order-pending) .chart-card canvas,body.flow-mode .chart-card canvas{height:300px}
 body.position-focus .chart-card,body.order-pending .chart-card{grid-template-rows:300px auto}
 .section-shell iframe{min-height:300px}.entry-gate{justify-content:flex-start}
}
