/* AltoSky admin: tablet pass (iPad 11" 820-1194, Surface Pro 13" ~1280-1440). Loaded last. Copyright (c) 2026 AltoSky, Inc.
   1) Sidebar becomes a drawer below 1200px (iPad landscape gets the full width). 2) Kanban boards stop being a narrow
   horizontally-scrolling band: columns wrap into a readable grid. 3) Larger type, stronger contrast, 40-44px tap targets. */
@media (max-width:1439px), (pointer:coarse){
  body.sx{font-size:15px;--muted:#4A5368;--faint:#6B7489;--gut:24px}
  html[data-theme=dark] body.sx{--muted:#AAB3C7;--faint:#8A93A8}
  body.sx h1,body.sx .page-hero h1,body.sx .st h1{font-size:26px}
  body.sx h2,body.sx .card>h2:first-child,body.sx .st .card>h2{font-size:17px}
  body.sx h3{font-size:15.5px}
  body.sx .lede,body.sx .muted,body.sx .notice{font-size:14.5px}
  body.sx .small,body.sx small,body.sx .hint,body.sx label,body.sx legend{font-size:13.5px}
  body.sx .eyebrow,body.sx .k,body.sx .chip,body.sx .testbadge,body.sx kbd,body.sx .sx-count{font-size:12px}
  body.sx .pill,body.sx .st .pill{font-size:13.5px;line-height:22px;padding:2px 10px 2px 9px}
  /* tap targets */
  body.sx button,body.sx .btn{min-height:42px;font-size:15px;padding:0 16px}
  body.sx button.sm,body.sx .btn.sm{min-height:36px;font-size:14px;padding:0 12px}
  body.sx input,body.sx textarea,body.sx select{min-height:44px;font-size:16px;padding:9px 12px}
  body.sx input[type=checkbox],body.sx input[type=radio]{width:20px;height:20px;min-height:0}
  body.sx .sx-icon,body.sx .sx-avbtn{width:42px;min-height:42px}
  body.sx .sx-link{min-height:42px;font-size:15px}
  body.sx .sx-gl{font-size:11px}
  body.sx .st-tabs button{min-height:44px;font-size:14.5px}
  body.sx .st-folders button{min-height:38px;font-size:14px}
  body.sx details>summary{min-height:46px;font-size:15px}
  /* tables: readable, scroll inside their card instead of squeezing */
  body.sx table,body.sx .st table{font-size:14.5px}
  body.sx th,body.sx .st th{font-size:12px;padding:11px 14px;color:var(--text-2)}
  body.sx td,body.sx .st td{padding:13px 14px}
  body.sx .scroll,body.sx .grid-wrap,body.sx .card:has(>table){overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  body.sx .card>table,body.sx .scroll>table{min-width:640px}
  /* kanban (Pipeline / Deal Room / Projects): wrap columns into a grid, no cramped side-scroll band */
  body.sx .st-board,body.sx .rm-board,body.sx .pj-board{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));overflow:visible;scroll-snap-type:none;gap:16px}
  body.sx .st-col,body.sx .rm-col,body.sx .pj-col{padding:14px;min-width:0}
  body.sx .rm-col h3,body.sx .st-col h3,body.sx .pj-col h3{font-size:14px}
  body.sx .st-pc,body.sx .rm-card{font-size:15px;padding:14px 16px}
  body.sx .st-pc b,body.sx .rm-card b{font-size:15.5px}
  body.sx .st-kpi b,body.sx .crm-kpi b,body.sx .kpis .card b,body.sx .v{font-size:26px}
  body.sx .st-kpi span,body.sx .crm-kpi span,body.sx .st-pc small,body.sx .rm-card small{font-size:13.5px}
  body.sx .st-pc .chip,body.sx .st-pc .pill,body.sx .rm-card .pill{font-size:13px}
  body.sx .st-list .t b{font-size:15px}body.sx .st-list .t small,body.sx .st-list .r{font-size:13.5px}
  /* page header toolbars wrap instead of jamming controls into one row */
  body.sx .toolbar{flex-wrap:wrap;row-gap:12px}
  body.sx .toolbar select{max-width:340px}
  /* CRM contact: stat strip gets room */
  body.sx .cx-stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  body.sx .cx-grid{grid-template-columns:minmax(0,1fr)}
  body.sx .split .detail{max-width:none}
  body.sx{--top:60px}
}
@media (min-width:1200px) and (max-width:1439px){body.sx{--side:220px}}
