/* ── MOBILE RESPONSIVE ─────────────────────────────────────────── */
.hamburger{display:none;background:none;border:none;color:var(--text);font-size:20px;cursor:pointer;padding:4px 6px;line-height:1;flex-shrink:0}
#sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:199;backdrop-filter:blur(2px)}

@media(max-width:768px){
  .hamburger{display:flex;align-items:center;justify-content:center}
  .app{position:relative}
  #sidebar{position:fixed;top:0;left:0;height:100%;width:260px;z-index:200;transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1)}
  #sidebar.open{transform:translateX(0)}
  #sidebar-overlay.open{display:block}
  .main-content{margin-left:0!important;width:100%}
  .page{padding:0!important}
  .page>div[style*="padding:28px"]{padding:14px 12px 28px!important}
  .page-header{padding:12px 14px 10px!important}
  .metric-grid{grid-template-columns:1fr 1fr!important;gap:10px}
  .metric-card{padding:12px 10px;overflow:hidden}
  .metric-val{font-size:18px!important;letter-spacing:-.5px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .metric-label{font-size:9px!important}
  .metric-sub{font-size:10px!important}
  .chart-row{grid-template-columns:1fr!important;gap:12px}
  .analytics-grid{grid-template-columns:1fr!important;gap:12px}
  #a-hall{grid-template-columns:1fr!important;}
  #glance-cards{grid-template-columns:1fr!important;}
  .calc-layout{grid-template-columns:1fr!important;gap:12px}
  .strategies-grid{grid-template-columns:1fr!important;gap:12px}
  .strategy-grid{grid-template-columns:1fr!important;gap:12px}
  .stats-strip{grid-template-columns:1fr 1fr!important;gap:8px}
  .form-grid{grid-template-columns:1fr 1fr!important}
  .modal-box{width:96vw;max-width:96vw;padding:20px 16px;margin:10px}
  .modal-overlay{align-items:flex-start;padding-top:40px}
  .sidebar{width:260px}
  table{font-size:12px}
  .trade-table td,.trade-table th{padding:8px 6px}
  .page-title{font-size:18px}
  .stat-pill-val{font-size:16px!important}
  .onboard-wrap{display:block;padding:16px 12px 40px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .onboard-card{padding:28px 20px;margin:0 auto}
}

/* v14.9: session notes and hour heatmap on phones */
@media(max-width:768px){
  .cal-notes-grid{grid-template-columns:1fr;gap:6px}
  .tm-grid{grid-template-columns:repeat(6,1fr)}
  .su-grid{grid-template-columns:1fr}
  .ww-row{flex-wrap:wrap;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--border)}
  .ww-row .ww-label{flex:1 1 100%}
  .ww-row .ww-from,.ww-row .ww-to{flex:1;width:auto}
}

/* v15.2: nothing runs off the right edge on phones */
.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-input,.form-select,.form-textarea{min-width:0}
@media(max-width:768px){
  .calendar-wrap{padding:14px 10px}
  .cal-grid{gap:3px}
  .cal-cell{padding:5px 4px;min-height:62px;min-width:0}
  .cal-pnl{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cal-trade-count{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:480px){
  .form-grid,.form-grid-3{grid-template-columns:minmax(0,1fr)!important}
  .cal-cents{display:none}
}

/* Direction & Style: cards wrap when there's no room for three pies; phones get split bars */
.pie-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-bottom:16px}
.bar-view{display:none;width:100%}
.split-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--bg4);gap:2px}
.split-seg{min-width:4px}
.split-keys{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:12px;color:var(--text2)}
.split-key{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.split-key i{width:9px;height:9px;border-radius:2px;display:inline-block}
.split-key b,.split-row-head b{color:var(--text);font-weight:700}
.split-key em,.split-row-head em{font-style:normal;color:var(--text3)}
.split-row+.split-row{margin-top:12px}
.split-row-head{display:flex;justify-content:space-between;font-size:12px;color:var(--text2);margin-bottom:6px;font-weight:600}
.split-empty{font-size:12px;color:var(--text3)}
@media(max-width:640px){
  .pie-row{grid-template-columns:1fr}
  .pie-view{display:none}
  .bar-view{display:block}
  .pie-row>.section-block>div:last-child{padding:14px 16px!important;align-items:stretch!important}
}
