/* Mobile V2: a phone-first interface layered after every desktop theme. */
@media (max-width:760px) {
  :root { --mobile-nav-h: 68px; --mobile-gap: 12px; }
  html, body { width:100%; max-width:100%; overflow-x:hidden!important; }
  body { font-size:14px; background:var(--theme-background,#f3f7f5); -webkit-text-size-adjust:100%; }
  button, input, select, textarea { font-size:16px; }
  button, .ghost, .primary { min-height:44px; touch-action:manipulation; }

  #app { display:block!important; min-height:100dvh; }
  #app.hide { display:none!important; }
  main { width:100%; min-width:0; padding:0 12px calc(var(--mobile-nav-h) + 24px + env(safe-area-inset-bottom)); }
  #view { min-width:0; overflow:visible; }

  header {
    position:sticky; top:0; z-index:45; min-height:64px; height:auto; margin:0 -12px 10px; padding:9px 12px;
    display:grid; grid-template-columns:42px minmax(0,1fr) repeat(3,40px); align-items:center; gap:6px;
    border-bottom:1px solid color-mix(in srgb,var(--theme-primary,#155c49) 12%,transparent);
    background:color-mix(in srgb,var(--theme-background,#f3f7f5) 90%,#fff); backdrop-filter:blur(16px);
  }
  header .menu { display:grid!important; place-items:center; width:42px; height:42px; padding:0; border-radius:12px; background:#fff; box-shadow:0 5px 16px #153e3214; }
  header>div { min-width:0; }
  header h2 { margin:0; font-size:19px; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  header small { display:block; margin-top:3px; font-size:10px; color:#75847f; }
  header .ghost { width:40px; height:40px; min-height:40px; padding:0; overflow:hidden; font-size:0; border-radius:11px; background:#fff; }
  #qrBtn::before { content:'扫码'; font-size:11px; }
  #exportBtn::before { content:'导出'; font-size:11px; }
  #backupBtn::before { content:'备份'; font-size:11px; }

  aside {
    position:fixed!important; inset:0 auto 0 0; z-index:90; width:min(86vw,320px)!important; height:100dvh;
    padding:max(20px,env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom));
    display:grid; grid-template-rows:auto minmax(0,1fr) auto; transform:translateX(-105%); transition:transform .28s cubic-bezier(.2,.8,.2,1);
    overflow:hidden; box-shadow:18px 0 48px #0b2d2470;
  }
  body.open aside { transform:translateX(0); }
  body.open::after { content:''; position:fixed; inset:0; z-index:80; background:#0b221c8a; backdrop-filter:blur(2px); }
  aside .brand { padding:4px 10px 14px; }
  aside nav { min-height:0; overflow-y:auto; padding-bottom:12px; overscroll-behavior:contain; }
  aside nav button { min-height:48px; padding:0 13px!important; border-radius:12px; }
  aside .user { position:static!important; display:flex!important; align-items:center; justify-content:space-between; min-height:58px; margin:0!important; padding:9px 12px!important; border-radius:14px; background:#ffffff0d; }
  aside .user .link { display:inline-flex!important; min-height:40px; color:#fff!important; }

  .mobile-bottom-nav {
    position:fixed; left:8px; right:8px; bottom:8px; z-index:70; height:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom));
    padding:6px 5px env(safe-area-inset-bottom); display:grid; grid-template-columns:repeat(5,1fr); align-items:end;
    border:1px solid #dce8e3; border-radius:18px; background:#fffffff2; box-shadow:0 14px 38px #193d3338; backdrop-filter:blur(18px);
  }
  .mobile-bottom-nav.hide { display:none!important; }
  .mobile-bottom-nav button { min-width:0; min-height:54px; padding:5px 2px; display:grid; place-items:center; gap:1px; border:0; background:transparent; color:#71817b; font-size:11px; }
  .mobile-bottom-nav button i { font-style:normal; font-size:19px; line-height:1; }
  .mobile-bottom-nav button.active { color:var(--theme-primary,#155c49); font-weight:800; }
  .mobile-bottom-nav .mobile-new-sale { position:relative; top:-9px; color:#fff; }
  .mobile-bottom-nav .mobile-new-sale::before { content:''; position:absolute; width:48px; height:48px; border-radius:17px; background:var(--theme-primary,#155c49); box-shadow:0 7px 18px color-mix(in srgb,var(--theme-primary,#155c49) 38%,transparent); z-index:-1; }
  .mobile-bottom-nav .mobile-new-sale span { margin-top:8px; color:var(--theme-primary,#155c49); }

  .cards { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:10px!important; }
  .card { min-width:0!important; min-height:92px!important; height:auto!important; padding:14px!important; overflow:hidden!important; border-radius:16px!important; }
  .card strong { font-size:21px!important; overflow-wrap:anywhere; }
  .panel, .expense-pie-panel, .supplier-ranking-panel { min-width:0!important; width:100%!important; padding:14px!important; border-radius:17px!important; overflow:hidden; }
  .panel-head { align-items:flex-start!important; gap:9px!important; }
  .panel-head h3 { font-size:16px; }
  .panel-head button { flex:0 0 auto; padding:8px 10px; font-size:12px; }
  .grid2, .form-grid, .invoice-customer-grid { grid-template-columns:1fr!important; gap:11px!important; }
  .toolbar { display:grid!important; grid-template-columns:1fr 1fr!important; gap:8px!important; padding:10px!important; }
  .toolbar>* { width:100%!important; min-width:0!important; margin:0!important; }
  .toolbar input:first-child, .toolbar .wide, .toolbar [type=search] { grid-column:1/-1; }
  .table-wrap { width:100%; min-width:0; margin:0!important; padding:0!important; overflow:visible!important; }

  .dashboard-layout-toolbar { margin:0 0 10px!important; }
  .dashboard-layout-toolbar .layout-hint { width:auto!important; max-width:58%; font-size:11px; }
  .dashboard-free-grid { display:grid!important; grid-template-columns:1fr!important; gap:12px!important; }
  .dashboard-widget { grid-column:1/-1!important; width:100%!important; min-width:0!important; height:auto!important; min-height:0!important; overflow:hidden!important; }
  .dashboard-free-grid>.card { display:block!important; }
  .dashboard-free-grid .cards { display:contents!important; }
  .dashboard-free-grid .bar-chart { min-width:580px!important; }
  .dashboard-free-grid .chart-panel { overflow-x:auto!important; scrollbar-width:thin; }
  .expense-pie-layout { grid-template-columns:1fr!important; }
  .expense-pie-panel, .supplier-ranking-panel { height:auto!important; min-height:300px!important; }

  table.mobile-card-table { display:block!important; width:100%!important; min-width:0!important; border:0!important; background:transparent!important; }
  table.mobile-card-table>thead { display:none!important; }
  table.mobile-card-table>tbody { display:grid!important; gap:10px!important; width:100%!important; }
  table.mobile-card-table>tbody>tr { display:grid!important; grid-template-columns:1fr!important; width:100%!important; padding:8px 12px!important; border:1px solid #dce7e2!important; border-radius:15px!important; background:#fff!important; box-shadow:0 5px 16px #183e3310!important; }
  table.mobile-card-table>tbody>tr>td { display:grid!important; grid-template-columns:minmax(84px,34%) minmax(0,1fr)!important; align-items:center; gap:10px; width:100%!important; min-width:0!important; min-height:39px; padding:7px 0!important; border:0!important; border-bottom:1px dashed #e3ebe7!important; text-align:right!important; white-space:normal!important; overflow-wrap:anywhere; }
  table.mobile-card-table>tbody>tr>td:last-child { border-bottom:0!important; }
  table.mobile-card-table>tbody>tr>td::before { content:attr(data-label); color:#7a8983; font-size:12px; font-weight:500; text-align:left; }
  table.mobile-card-table>tbody>tr>td[colspan] { display:block!important; text-align:center!important; }
  table.mobile-card-table>tbody>tr>td[colspan]::before { display:none; }
  table.mobile-card-table td button { width:auto; max-width:100%; justify-self:end; }
  table.mobile-card-table td input:not([type=checkbox]), table.mobile-card-table td select { width:100%; min-width:0; }
  table.mobile-card-table td:has(input[type=checkbox]) { grid-template-columns:28px 1fr!important; }

  .modal { position:fixed!important; inset:0!important; z-index:100!important; align-items:stretch!important; padding:0!important; }
  .dialog, .invoice-dialog, .sale-viewer-v3-dialog, .account-dialog-wide {
    position:relative!important; inset:auto!important; width:100vw!important; max-width:none!important; height:100dvh!important; max-height:100dvh!important;
    margin:0!important; padding:0!important; border-radius:0!important; overflow:hidden!important; transform:none!important;
  }
  .dialog>.close { position:absolute!important; top:calc(9px + env(safe-area-inset-top))!important; right:10px!important; z-index:130!important; width:42px; height:42px; margin:0!important; }
  #modalBody { width:100%; height:100%; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding-bottom:calc(76px + env(safe-area-inset-bottom)); }

  .invoice-sheet { min-width:0!important; width:100%!important; }
  .invoice-title { position:sticky; top:0; z-index:25; display:grid!important; grid-template-columns:minmax(0,1fr) 130px; gap:10px; padding:15px 54px 13px 14px!important; background:#fffefcfa; backdrop-filter:blur(14px); }
  .invoice-title h2 { font-size:21px!important; }
  .invoice-date { width:100%!important; }
  .invoice-customer, .invoice-products { padding:15px 12px!important; }
  .invoice-customer-grid { display:grid!important; }
  .invoice-customer input, .invoice-customer select { min-height:46px; }
  .invoice-section-head { gap:8px; }
  .invoice-products .table-wrap { overflow:visible!important; }
  table.mobile-form-table { display:block!important; width:100%!important; min-width:0!important; border:0!important; }
  table.mobile-form-table>thead { display:none!important; }
  table.mobile-form-table>tbody { display:grid!important; gap:12px!important; }
  table.mobile-form-table>tbody>tr:not(.processing-inline-row) { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:9px!important; width:100%!important; padding:12px!important; border:1px solid #dce8e3!important; border-radius:16px!important; background:#fff!important; box-shadow:0 7px 20px #173e3210; }
  table.mobile-form-table>tbody>tr:not(.processing-inline-row)>td { display:block!important; width:auto!important; min-width:0!important; padding:0!important; border:0!important; }
  table.mobile-form-table>tbody>tr:not(.processing-inline-row)>td::before { content:attr(data-label); display:block; min-height:18px; margin:0 0 4px; color:#778680; font-size:11px; }
  table.mobile-form-table td[data-label*="产品编号"], table.mobile-form-table td[data-label*="铺贴"], table.mobile-form-table td[data-label*="金额"], table.mobile-form-table td[data-label*="操作"] { grid-column:1/-1; }
  table.mobile-form-table input, table.mobile-form-table select { width:100%!important; min-width:0!important; min-height:44px; }
  table.mobile-form-table .line-amount { min-height:44px; padding:11px!important; border-radius:9px!important; background:#f5f9f7; }
  table.mobile-form-table .processing-inline-row { display:block!important; width:100%!important; margin-top:-13px; }
  table.mobile-form-table .processing-inline-row td { display:block!important; width:100%!important; padding:10px!important; border-radius:0 0 14px 14px; }
  .processing-inline-row button { width:100%; }
  .invoice-bottom { display:grid!important; grid-template-columns:1fr!important; gap:14px!important; padding:14px 12px!important; }
  .invoice-note textarea { min-height:88px!important; }
  .invoice-summary input { width:120px!important; }
  .invoice-actions { position:sticky!important; bottom:0!important; z-index:35; display:grid!important; grid-template-columns:1fr 1.25fr; gap:8px!important; padding:10px 12px calc(10px + env(safe-area-inset-bottom))!important; background:#fffffff5!important; box-shadow:0 -12px 30px #163c3126!important; }
  .invoice-actions button { width:100%!important; min-width:0!important; margin:0!important; }
  .invoice-actions button:nth-last-child(n+3) { grid-column:span 1; }
  .order-mode-switch, .order-mode-options { display:grid!important; grid-template-columns:1fr!important; width:100%!important; gap:8px!important; }
  .order-mode-option { width:100%!important; min-width:0!important; }
  .toll-processing-table { overflow:visible!important; }
  .toll-processing-table table { min-width:0!important; }

  .sale-viewer-v3-shell { grid-template-rows:minmax(0,1fr) auto!important; }
  .sale-viewer-v3-scroll { overflow-x:hidden!important; }
  .sale-document-v3 { padding:14px 11px 20px!important; }
  .sale-document-v3 .sale-doc-head { grid-template-columns:1fr!important; gap:12px!important; }
  .sale-document-v3 .sale-doc-meta { width:100%!important; padding-top:38px!important; }
  .sale-document-v3 .sale-doc-customer { grid-template-columns:1fr!important; }
  .sale-document-v3 .sv-table-frame { overflow:visible!important; }
  table.mobile-document-table { display:block!important; width:100%!important; min-width:0!important; }
  table.mobile-document-table>thead { display:none!important; }
  table.mobile-document-table>tbody { display:grid!important; gap:9px; }
  table.mobile-document-table>tbody>tr { display:grid!important; grid-template-columns:1fr 1fr!important; gap:0 10px; padding:10px 12px; border:1px solid #d8e5df; border-radius:14px; background:#fff; }
  table.mobile-document-table>tbody>tr>td { display:grid!important; grid-template-columns:74px minmax(0,1fr); gap:8px; min-width:0!important; padding:7px 0!important; border:0!important; border-bottom:1px dashed #e5ece8!important; text-align:right!important; white-space:normal!important; overflow-wrap:anywhere; }
  table.mobile-document-table>tbody>tr>td::before { content:attr(data-label); text-align:left; color:#788780; font-size:11px; }
  table.mobile-document-table>tbody>tr>td[data-label*="产品"], table.mobile-document-table>tbody>tr>td[data-label*="加工"], table.mobile-document-table>tbody>tr>td[data-label*="金额"] { grid-column:1/-1; }
  table.mobile-document-table>tfoot { display:block; }
  .sale-document-v3 .sale-doc-foot { grid-template-columns:1fr!important; gap:10px!important; }
  .sale-document-v3 .sale-doc-note { min-height:90px!important; }
  .sale-viewer-v3-actions { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:7px!important; min-height:0!important; max-height:36dvh; padding:9px 10px calc(9px + env(safe-area-inset-bottom))!important; overflow-y:auto!important; overflow-x:hidden!important; }
  .sale-viewer-v3-actions button, .sale-viewer-v3-actions .profit-detail-button { width:100%!important; min-width:0!important; height:43px!important; margin:0!important; }
  .sale-viewer-v3-actions .profit-detail-button { grid-column:1/-1; }

  .account-cards { grid-template-columns:1fr 1fr!important; gap:9px!important; }
  .account-cards .card { min-height:86px!important; }
  .account-dialog-wide #modalBody, .account-dialog-wide .account-body { overflow-y:auto!important; }
  .actions { position:sticky; bottom:0; z-index:20; padding:10px 0 calc(6px + env(safe-area-inset-bottom)); background:#fff; }
  .actions button { flex:1; min-width:0; }

  .delivery-document { min-width:0!important; width:100%!important; padding:14px!important; }
  .delivery-head { grid-template-columns:1fr!important; }
  .delivery-customer { grid-template-columns:1fr!important; }
  .delivery-items-v2 { min-width:0!important; }

  #toast { left:12px!important; right:12px!important; bottom:calc(var(--mobile-nav-h) + 20px)!important; max-width:none!important; transform:none!important; }
}

@media (max-width:380px) {
  .cards { grid-template-columns:1fr!important; }
  .toolbar { grid-template-columns:1fr!important; }
  .toolbar>* { grid-column:1!important; }
  .account-cards { grid-template-columns:1fr!important; }
}

@media print {
  .mobile-bottom-nav { display:none!important; }
}
