/* Desktop keeps its existing layout; compact rules also cover an iPhone in landscape. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,select,input,[role="button"]{touch-action:manipulation}
button,input,select{font-family:inherit}
.mobile-settings-button{display:none}
.training-options{display:contents}
#intradayTip{position:static;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;padding:4px 8px;z-index:auto}
#intradayMask,#taMask{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
body.has-overlay{overflow:hidden}
.ind-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:13px}

@media(max-width:760px),(max-width:980px) and (pointer:coarse), (max-width:980px) and (max-height:500px){
  html{scroll-padding-bottom:calc(80px + env(safe-area-inset-bottom))}
  .page{width:100%;min-width:0;padding:calc(10px + env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) calc(88px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
  .top{padding:12px;gap:10px;border-radius:14px;margin-bottom:8px}
  .brand{width:100%;gap:8px;flex-wrap:wrap}
  .brand .logo{width:30px;height:30px;flex:none}
  .brand h1{font-size:17px;letter-spacing:-.3px}
  .brand .v{font-size:10px;margin-left:auto}
  .top-right{display:block;width:100%;min-width:0}
  .money{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px;font-size:12px;line-height:1.6}
  .money b{font-size:22px;font-variant-numeric:tabular-nums}
  #mPnl{margin-left:auto;font-size:13px}#mMode{margin:0;flex-basis:100%;width:fit-content;background:none;padding:0}
  .tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px max(16px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -4px 18px #1c233308}
  .tabs button{min-height:44px;font-size:15px;font-weight:600;border-radius:10px}
  .dataset-note{font-size:11px;line-height:1.6;margin:6px 2px 10px;overflow-wrap:anywhere}
  .panel{padding:12px 10px;border-radius:14px}.panel h3{flex-wrap:wrap;line-height:1.5;gap:4px}.panel h3 .tag{flex-basis:100%;font-size:11px}
  .ctl{gap:8px;margin-bottom:10px;min-width:0}.ctl>.sp{display:none}
  #segMode{flex:0 0 100%;display:grid;grid-template-columns:1fr 1fr}
  .seg button{min-height:44px;font-size:13px;padding:7px 5px;min-width:0;white-space:normal;line-height:1.4}
  .mobile-settings-button{display:block}.ctl>#btnMobileSettings,.ctl>#btnSkip,.ctl>#btnNext{flex:1;min-width:0;padding:8px 4px}
  .training-options{display:none;flex:0 0 100%;order:2;padding:10px;background:#f6f8fc;border:1px solid var(--line);border-radius:10px;gap:8px;min-width:0}
  .training-options.is-open{display:flex;flex-wrap:wrap}.training-options>.seg{flex:0 0 100%;min-width:0}.training-options .seg button{flex:1}.training-options>div:last-child{width:100%}#btnInd{width:100%}
  .btn,.who .eye{min-height:44px;min-width:44px;font-size:14px;padding:9px 12px}
  .who{gap:8px;padding:8px;margin-bottom:10px}.who .q{display:none}.who>div{min-width:0}.who .nm{font-size:14px}.who .cd{line-height:1.5;font-size:11px;overflow-wrap:anywhere}.who .eye{flex-shrink:0;white-space:nowrap;padding:8px}
  #intradayTip{padding:0;border:0;gap:6px}#intradayTip>span{font-size:11px;line-height:1.5;max-width:100px}#btnIntraday{font-size:12px;min-height:44px;padding:7px 9px}
  #chartBox{border-radius:9px}#chart canvas{touch-action:pan-y!important}
  .hint{font-size:12px;line-height:1.7;overflow-wrap:anywhere}
  .plan-controls{padding:10px;gap:10px}.plan-controls label{min-width:0;flex:1 1 100%;gap:6px}.plan-controls select{font-size:16px;min-height:44px;padding:9px;max-width:100%}.plan-controls>.hint{margin-top:0}
  .decide{gap:8px}.decide .card{min-width:0;min-height:84px;padding:12px 6px;display:flex;flex-direction:column;justify-content:center}.decide .card .t{font-size:15px;line-height:1.5}.decide .card .d{font-size:11px;line-height:1.6}.decide .card:hover{transform:none;box-shadow:none}
  .holdbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.hb-item{min-width:0;padding:10px}.hb-item:last-child{grid-column:1/-1}.hb-item .v{font-size:17px;overflow-wrap:anywhere}
  #holdDays{font-size:15px;line-height:1.5;word-break:keep-all;overflow-wrap:normal}.decide .card{scroll-margin-bottom:calc(88px + env(safe-area-inset-bottom))}
  #panelHold .decide .card{min-height:94px}#result{padding:14px}#result .rd{gap:8px}#result .big{font-size:21px;flex-basis:100%}
  .stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.stat{padding:10px;min-width:0}.stat .v{font-size:18px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.stat .k{line-height:1.5}
  #segStat{width:100%;display:grid;grid-template-columns:1fr 1fr}.scroll{max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}#recTable{min-width:700px}#recTable td,#recTable th{white-space:nowrap;padding:12px 9px}
  #taEntry .hint{display:block;margin:8px 0 0!important}#btnAnalysis{width:100%;font-size:15px}
  #viewStats .panel>div:last-child{gap:8px!important}#viewStats .panel>div:last-child>.sp{display:none}#btnExport,#btnBackup,#btnImport,#btnReset{flex:1 1 42%}
  #indSet{position:fixed;top:auto;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(78px + env(safe-area-inset-bottom));width:auto;max-height:65vh;overflow:auto;padding:16px;border-radius:14px;z-index:40}
  #indSet .row{min-height:44px;margin:0;gap:16px}#indSet .row input{font-size:16px;min-height:44px;width:90px!important}#indSet .sw{width:52px;height:44px;border-radius:22px;flex:none}#indSet .sw i{width:22px;height:22px;top:11px;left:5px}#indSet .sw.on i{left:25px}
  #intradayMask{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow-y:auto;align-items:center}
  #intradayBox{width:calc(100% - 16px);max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;padding:14px 10px;overscroll-behavior:contain}#intradayBox .hd{align-items:flex-start;gap:8px}#intradayTitle{font-size:14px;line-height:1.6;min-width:0}#intradayClose{min-width:44px;min-height:44px;flex:none}#intradayChart{height:clamp(190px,40dvh,320px)}
  #taMask{height:100%;height:100dvh;background:white!important}#taMask>div{max-width:none!important;margin:0!important;min-height:100%;border-radius:0!important;padding:0 max(12px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important;box-shadow:none!important}
  #taMask>div>div:first-child{position:sticky;top:0;z-index:2;background:#fff;display:flex;flex-wrap:wrap;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 0 10px;border-bottom:1px solid var(--line)}#taTitle{font-size:17px!important;flex:1 1 100%!important}#taExport{margin:0}#taClose{margin-left:auto}.ta-section{margin:20px 0}.ta-section h3{font-size:15px;line-height:1.6}.ta-table{font-size:12px}.ta-table td,.ta-table th{padding:10px 8px}.ta-note{padding:9px 11px;font-size:12px}.ta-section .scroll{max-height:55vh}
  .confirm-mask{padding:calc(16px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.confirm-box{max-height:85dvh;overflow:auto;padding:18px}.confirm-actions .btn{flex:1}
  .toast{top:calc(12px + env(safe-area-inset-top));width:max-content;max-width:calc(100vw - 32px);font-size:13px;line-height:1.6;text-align:center;z-index:350}
}
@media(max-width:380px){.brand .v{margin-left:38px}.money b{font-size:20px}#mPnl{font-size:12px}.decide .card .t{font-size:14px}}
@media(orientation:landscape) and (max-height:500px) and (max-width:980px){#intradayChart{height:190px}.tabs{padding-top:4px;padding-bottom:calc(4px + env(safe-area-inset-bottom))}.tabs button{min-height:40px}}
