/* Mobile-only layout contract. Loaded after feature styles; desktop and data stay unchanged. */
.mobile-scroll-hint { display: none; }
.mobile-table-generated { display: contents; }
@media (max-width: 820px) {
  html { -webkit-text-size-adjust: 100%; scroll-padding-bottom: 110px; }
  body { margin: 0; min-width: 0; }
  *, *::before, *::after { box-sizing: border-box; }
  .app-shell, body.sidebar-collapsed .app-shell { display: block; width: 100%; min-width: 0; }
  .workspace { width: 100%; min-width: 0; margin: 0; }
  #content, #content:has(.dashboard-v8) { width: 100%; max-width: 100%; min-width: 0; margin: 0; padding: 16px 12px calc(112px + env(safe-area-inset-bottom)); }
  #content :is(section, article, header, form, nav, aside, label, .panel) { min-width: 0; }
  #content > *, .dashboard-panel, .dashboard-executive-side { min-width: 0; max-width: 100%; }
  #content div { min-width: 0; }
  button, a, summary { touch-action: manipulation; }
  button, .button, .icon-button, summary { min-height: 44px; }
  .icon-button { min-width: 44px; }
  input:not([type=checkbox]):not([type=radio]), select, textarea { min-width: 0; max-width: 100%; font-size: 16px !important; }
  input:not([type=checkbox]):not([type=radio]), select { min-height: 44px; }
  input[type=checkbox], input[type=radio] { width: 20px; height: 20px; }
  :is(button, a, input, select, textarea, summary):focus-visible { outline: 3px solid #338fff; outline-offset: 2px; }
  .topbar { position: sticky; top: 0; z-index: 30; height: auto; min-height: calc(64px + env(safe-area-inset-top)); gap: 8px; padding: calc(8px + env(safe-area-inset-top)) 10px 8px; }
  .topbar .global-search { display: flex; flex: 1; width: auto; min-width: 0; max-width: none; }
  .global-search input { width: 100%; min-width: 0; }
  .global-search kbd, #new-task-button, .theme-toggle-button b { display: none; }
  .topbar-actions { flex: 0 0 auto; gap: 4px; margin: 0; }
  #theme-toggle, #notification-button { width: 44px; min-width: 44px; padding: 0; }
  #global-search-results { position: fixed; top: calc(66px + env(safe-area-inset-top)); left: 10px; right: 10px; width: auto; max-height: 65dvh; overflow: auto; }
  .sidebar, body.sidebar-collapsed .sidebar { width: min(310px, 88vw); height: 100vh; height: 100dvh; z-index: 70; overflow-y: auto; overscroll-behavior: contain; padding-bottom: env(safe-area-inset-bottom); }
  .sidebar-backdrop { z-index: 65; }
  .sidebar .nav-item { min-height: 48px; }
  .sidebar-collapse-button { display: none !important; }
  .mobile-bottom-nav { z-index: 44; }
  .mobile-bottom-item > b { font-size: 11px; white-space: normal; line-height: 1.15; }
  .mobile-bottom-nav .nav-item::after { display: none; }
  .mobile-bottom-nav button { min-height: 52px; }
  body.mobile-menu-open { overflow: hidden; }
  .page-header, .dashboard-v6-header, .dashboard-v6-card-heading, .today-sales-heading { flex-wrap: wrap; gap: 12px; }
  .page-header h1, .dashboard-v8 .dashboard-v6-header h1 { font-size: 25px; }
  .dashboard-v6-header-actions { flex-wrap: wrap; width: 100%; }
  .dashboard-command-tabs { position: static; display: flex; justify-content: flex-start; width: 100%; margin: 0; gap: 6px; padding: 4px 0 8px; overflow-x: auto; pointer-events: auto; }
  .dashboard-command-tabs button { flex: 0 0 auto; min-height: 46px; padding: 8px 12px; }
  .dashboard-command-tabs button span { font-size: 13px; }
  .dashboard-command-tabs button b { position: static; margin-left: 3px; }
  .dashboard-v8-kpis .dashboard-kpi-strip { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; overflow: visible; }
  .dashboard-v8-kpis .dashboard-kpi, .dashboard-v8-kpis .dashboard-kpi:nth-child(n) { width: auto; min-width: 0; min-height: 130px; padding: 14px 12px 28px; }
  .dashboard-v8-kpis .dashboard-kpi strong { font-size: clamp(18px, 4.8vw, 25px); overflow-wrap: anywhere; }
  .dashboard-v8 :is(small, p), .dashboard-v8 .dashboard-kpi-label { font-size: 12px; line-height: 1.45; }
  .dashboard-executive-grid, .dashboard-v73-commercial-grid, .dashboard-v73-attention-row, .dashboard-planning-block { display: grid; grid-template-columns: minmax(0,1fr); gap: 14px; }
  .dashboard-panel-logistics > .dashboard-logistics-card { grid-template-columns: minmax(0,1fr); grid-template-areas: "heading" "deadline" "metrics" "progress" "note" "next" "priority" "footer"; padding: 16px; gap: 14px; }
  .dashboard-panel-logistics .dashboard-logistics-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-logistics-metrics > span { min-width: 0; min-height: 68px; padding: 10px; }
  .dashboard-logistics-metrics small { white-space: normal; }
  .dashboard-logistics-footer, .dashboard-logistics-progress > div { flex-wrap: wrap; gap: 8px; }
  .dashboard-logistics-priority > div { overflow: auto; }
  .dashboard-executive-chart .dashboard-chart-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-chart-canvas { min-width: 0; max-width: 100%; }
  .dashboard-chart-canvas svg { width: 100%; min-width: 0; }
  .dashboard-chart-controls, .dashboard-chart-periods { flex-wrap: wrap; }
  #content .dashboard-chart-actions { display: flex; flex-wrap: wrap; width: 100%; gap: 8px; }
  #content .dashboard-period-picker { display: flex; flex-wrap: wrap; width: 100%; max-width: 100%; }
  #content .dashboard-period-picker button { flex: 1 0 auto; min-height: 44px; font-size: 12px; }
  #content .dashboard-chart-card .dashboard-v6-card-heading { display: flex; flex-direction: column; align-items: stretch; width: 100%; }
  #content .dashboard-chart-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; }
  #content .dashboard-chart-canvas { width: 100%; }
  #content .dashboard-chart-canvas svg { width: 100%; max-width: 100%; }
  .dashboard-chart-controls button, .dashboard-chart-periods button { min-height: 44px; font-size: 12px; }
  .sales-funnel-shell, .sales-funnel-v2, .inventory-shell, .profit-shell, .daily-report-shell { width: 100%; min-width: 0; max-width: 100%; padding: 12px; }
  .funnel-command-grid { grid-template-columns: minmax(0,1fr); }
  .funnel-flow-card, .funnel-action-center { width: 100%; max-width: 100%; min-width: 0; }
  .sales-funnel-flow.detailed { width: 100%; max-width: 100%; overflow-x: auto; }
  .sales-funnel-hero { flex-direction: column; align-items: flex-start; gap: 12px; }
  #content .ml-command-navigation { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; gap: 8px; }
  #content .ml-tab-group { width: auto; min-width: 0; padding: 8px; }
  #content .ml-tab-group > div { display: grid; grid-template-columns: minmax(0,1fr); }
  #content .ml-tab-group > header small { display: none; }
  #content .ml-tab-group button { min-height: 44px; font-size: 12px; white-space: normal; padding: 8px; }
  #content .ml-command-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #content .ml-command-summary > article:first-child { grid-column: 1 / -1; }
  #content :is(.ml-command-summary,.daily-report-summary) small { font-size: 12px; }
  .sales-funnel-toolbar, .sales-funnel-filters, .daily-report-toolbar, .daily-sales-filters, .olist-v3-filters, .olist-v3-detail-filters, .kit-map-toolbar, .kit-map-filters, .post-sales-filters, .stock-movement-filter-panel { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
  :is(.sales-funnel-toolbar,.daily-report-toolbar,.olist-v3-filters,.kit-map-filters,.post-sales-filters) > * { min-width: 0; width: 100%; grid-column: auto; }
  .filter-bar, .profit-toolbar, .inventory-filter-bar, .promotion-filter-bar { flex-wrap: wrap; gap: 10px; min-width: 0; }
  .filter-bar > *, .profit-date-filter > * { min-width: 0; max-width: 100%; }
  .ml-tabs, .integration-tabs, .kit-map-category-tabs, .stock-section-tabs, .olist-v3-detail-tabs { display: flex; min-width: 0; max-width: 100%; overflow-x: auto; gap: 6px; }
  :is(.ml-tabs,.integration-tabs,.kit-map-category-tabs,.stock-section-tabs,.olist-v3-detail-tabs) > button { flex: 0 0 auto; min-height: 46px; padding: 10px 14px; font-size: 13px; }
  .mobile-table-scroll { display: block; width: 100%; max-width: 100%; min-width: 0; overflow: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; touch-action: pan-x pan-y; }
  .mobile-table-scroll > table { min-width: 720px; }
  .mobile-table-scroll :is(th,td) { font-size: 12px; line-height: 1.45; }
  .mobile-table-scroll .task-table :is(th,td) { display: table-cell !important; }
  .mobile-scroll-hint.is-overflowing { display: block; margin: 6px 0; color: var(--muted, #64748b); font-size: 12px; line-height: 1.5; }
  .board { width: 100%; max-width: 100%; grid-template-columns: repeat(4,minmax(260px,80vw)); touch-action: pan-x pan-y; }
  #content .kit-map-filter-panel { grid-template-columns: minmax(0,1fr); }
  #content .kit-map-component > summary { grid-template-columns: 24px minmax(0,1fr); gap: 12px; }
  #content .kit-map-component-stat, #content .kit-map-risk { display: grid; grid-column: 2; }
  #content .kit-map-component-name strong { white-space: normal; }
  #content .chat-workspace { width: 100%; grid-template-columns: minmax(0,1fr); }
  #content .chat-conversation { min-height: 540px; }
  #content .chat-composer { flex-wrap: wrap; }
  #content .chat-composer textarea { flex-basis: 100%; }
  #content .chat-audio, #content .chat-audio audio { min-width: 0; max-width: 100%; }
  .modal-layer { padding: 8px; padding-top: max(8px,env(safe-area-inset-top)); padding-bottom: max(8px,env(safe-area-inset-bottom)); }
  .task-modal-panel, .simple-modal-panel { width: 100%; max-height: calc(100dvh - 32px); border-radius: 16px; }
  .modal-header, .modal-footer { flex-wrap: wrap; gap: 8px; padding: 12px; }
  .modal-header h2 { font-size: 19px; }
  .task-form-main, .simple-modal-body { min-height: 0; overflow-y: auto; padding: 14px; }
  .form-grid.two, .form-grid.three, .form-grid.four { grid-template-columns: minmax(0,1fr); }
  #quick-calculator-panel, #ai-assistant-panel { width: calc(100vw - 16px); max-width: calc(100vw - 16px); max-height: calc(100dvh - 110px - env(safe-area-inset-bottom)); }
  body.quick-calculator-open { overflow: hidden; }
  #quick-calculator-layer { pointer-events: auto; background: rgba(6,15,29,.45); }
  #quick-calculator-panel {
    position: fixed; left: 0; right: 0; top: var(--quick-viewport-top,0px); bottom: auto;
    width: 100%; max-width: 100%; height: 100vh; height: var(--quick-viewport-height,100dvh);
    max-height: none; margin: 0; border-radius: 0; animation: none;
    padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom);
  }
  #quick-calculator-panel .quick-calculator-header { flex: 0 0 auto; min-height: 72px; gap: 8px; padding: 12px; }
  #quick-calculator-panel .quick-calculator-heading h2 { font-size: 18px; }
  #quick-calculator-panel .quick-calculator-heading span { font-size: 10px; letter-spacing: .02em; }
  #quick-calculator-panel .quick-calculator-close { flex: 0 0 44px; width: 44px; height: 44px; }
  #quick-calculator-content { flex: 1 1 auto; min-height: 0; width: 100%; min-width: 0; padding: 12px 12px 24px; overflow-y: auto; }
  #quick-calculator-content :is(section,div,form,label,article) { min-width: 0; }
  #quick-calculator-content .quick-calculator-intro { flex-wrap: wrap; }
  #quick-calculator-content :is(.quick-calculator-price-grid,.quick-calculator-scenarios,.quick-calculator-margin-control) { grid-template-columns: minmax(0,1fr); }
  #quick-calculator-content .quick-calculator-margin-heading { flex-wrap: wrap; }
  #quick-calculator-content .quick-calculator-margin-presets { flex-wrap: wrap; }
  #quick-calculator-content .quick-calculator-product { grid-template-columns: 48px minmax(0,1fr); }
  #quick-calculator-content .quick-calculator-product-cost { grid-column: 2; border: 0; padding: 0; text-align: left; }
  #quick-calculator-content .quick-calculator-product > div:nth-child(2) > strong { white-space: normal; font-size: 13px; }
  #quick-calculator-content :is(.quick-calculator-form label > span,.quick-calculator-margin-heading strong,.quick-calculator-margin-presets button,.quick-calculator-quote-state,.quick-calculator-costs span,.quick-calculator-profit span,.quick-calculator-product-cost span,.quick-calculator-safety small) { font-size: 12px; line-height: 1.5; }
  #quick-calculator-content :is(#quick-calculator-submit,.quick-calculator-margin-control > button) { min-height: 46px; font-size: 13px; padding: 10px; }
  #quick-calculator-content .quick-calculator-profit strong { font-size: 20px; }
  #quick-calculator-content .quick-calculator-scenario-head strong { font-size: 16px; }
  body.quick-calculator-open :is(#quick-calculator-launcher,#ai-assistant-launcher,.mobile-bottom-nav,.ios-install-banner) { visibility: hidden; pointer-events: none; }
  #quick-calculator-launcher { bottom: calc(92px + env(safe-area-inset-bottom)); right: 12px; }
  #ai-assistant-launcher { bottom: calc(152px + env(safe-area-inset-bottom)); right: 12px; }
  body:has(.modal-layer:not(.hidden)) :is(#quick-calculator-launcher,#ai-assistant-launcher,.mobile-bottom-nav) { visibility: hidden; pointer-events: none; }
  .ios-install-banner { bottom: calc(88px + env(safe-area-inset-bottom)); }
  .login-shell { min-height: 100dvh; grid-template-columns: minmax(0,1fr); }
  .login-brand-panel { display: none; }
  .login-form-panel { padding: 20px 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar { transition: none; }
}
