/* 手机 V3：独立的单手操作界面，覆盖桌面缩放式布局。 */
@media (max-width:760px){
  :root{
    --mobile-ink:#142820;
    --mobile-paper:#f3f7f5;
    --mobile-primary:var(--store-theme,var(--theme-primary,#155c49));
    --mobile-safe:calc(78px + env(safe-area-inset-bottom));
  }
  body{background:linear-gradient(180deg,#edf5f1 0,#f7faf8 220px,var(--mobile-paper) 100%)!important;color:var(--mobile-ink)}

  /* 登录页：身份卡 + 清晰的表单与备案信息 */
  .login{background:radial-gradient(circle at 88% 8%,color-mix(in srgb,var(--mobile-primary) 55%,#fff) 0,transparent 31%),linear-gradient(155deg,#092e25 0%,var(--mobile-primary) 54%,#0d3c31 100%)!important}
  .login-shell{justify-content:center!important;gap:14px;padding:24px 18px max(24px,env(safe-area-inset-bottom))!important}
  .login-card{width:min(100%,430px)!important;padding:28px 23px 24px!important;border-radius:26px!important;text-align:center!important;box-shadow:0 24px 65px rgba(0,22,16,.34)!important}
  .login-card .mark{width:52px!important;height:52px!important;line-height:52px!important;margin:0 auto!important;border-radius:16px!important;font-size:27px!important}
  .login-card h1{font-size:26px!important;margin:15px 0 1px!important}.login-card p{font-size:13px!important;margin:0 0 18px!important}
  .login-card input{height:49px!important;margin:5px 0!important;border-radius:13px!important;background:#f7faf8!important}
  .login-card button{height:50px!important;margin:14px 0 4px!important;border-radius:13px!important;font-weight:800!important;letter-spacing:.04em}
  .login-card small{text-align:center!important;font-size:12px!important}.login-icp-footer{font-size:12px!important;color:#ffffffc7!important}

  /* 应用头部：标题保持可读，工具键统一成轻量图标键 */
  main{padding:0 12px calc(var(--mobile-safe) + 18px)!important}
  header{min-height:70px!important;margin:0 -12px 13px!important;padding:11px 12px!important;grid-template-columns:44px minmax(0,1fr) repeat(3,42px)!important;gap:7px!important;background:rgba(247,251,249,.88)!important;box-shadow:0 7px 20px rgba(15,54,41,.06)}
  header .menu{width:44px!important;height:44px!important;border-radius:14px!important;color:#fff!important;background:linear-gradient(145deg,var(--mobile-primary),color-mix(in srgb,var(--mobile-primary) 70%,#092c23))!important;box-shadow:0 7px 18px color-mix(in srgb,var(--mobile-primary) 26%,transparent)!important}
  header h2{font-size:20px!important;font-weight:850!important;letter-spacing:.015em}header small{font-size:11px!important}
  header .ghost{width:42px!important;height:42px!important;min-height:42px!important;border-radius:14px!important;border-color:#dce9e3!important;color:var(--mobile-primary)!important;box-shadow:0 4px 12px rgba(16,58,43,.07)!important}
  #qrBtn::before{content:'⌁'!important;font-size:22px!important;font-weight:700}#exportBtn::before{content:'⇩'!important;font-size:21px!important;font-weight:700}#backupBtn::before{content:'◫'!important;font-size:18px!important}

  /* 抽屉导航：真实触控尺寸、明显当前状态和固定退出入口 */
  aside{width:min(88vw,340px)!important;padding:calc(22px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom))!important;border-radius:0 22px 22px 0!important;background:linear-gradient(165deg,#092f26 0%,var(--mobile-primary) 60%,#0a362c 100%)!important}
  aside .brand{padding:8px 12px 20px!important;border-bottom:1px solid rgba(255,255,255,.12)!important}aside .brand b{font-size:24px!important;letter-spacing:.08em!important}aside .brand span{font-size:12px!important;opacity:.7!important}
  aside nav{padding:14px 0!important;display:grid!important;gap:5px!important}aside nav button{min-height:48px!important;padding:0 13px 0 44px!important;border-radius:13px!important;font-size:15px!important}aside nav button:before{left:15px!important;top:13px!important;font-size:18px!important}aside nav button.active{box-shadow:inset 3px 0 0 #efbe66,0 6px 18px rgba(0,0,0,.12)!important}
  aside .user{min-height:60px!important;border:1px solid rgba(255,255,255,.11)!important;background:rgba(255,255,255,.10)!important}aside .user span{font-weight:700!important}aside .user .link{padding:9px 11px!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:10px!important;font-size:13px!important}

  /* 看板：卡片、数据区、空状态统一为手机阅读密度 */
  .cards{gap:11px!important}.card{min-height:106px!important;padding:15px!important;border:1px solid rgba(199,219,210,.8)!important;border-radius:18px!important;box-shadow:0 8px 22px rgba(14,56,41,.075)!important;background:linear-gradient(145deg,#fff,#fbfdfc)!important}.card:before{content:'';position:absolute;left:15px;right:15px;top:0;height:3px;border-radius:0 0 4px 4px;background:color-mix(in srgb,var(--mobile-primary) 72%,#e1ab58)}.card small{font-size:12px!important;color:#72827c!important}.card strong{margin-top:10px!important;font-size:24px!important;color:var(--mobile-primary)!important}.card.red strong{color:#c64b45!important}
  .panel,.expense-pie-panel,.supplier-ranking-panel{padding:16px!important;border-radius:19px!important;border-color:#e0ebe6!important;background:rgba(255,255,255,.92)!important;box-shadow:0 9px 24px rgba(16,58,43,.06)!important}.panel-head h3{font-size:17px!important;font-weight:850!important}.panel-head small{font-size:12px!important;line-height:1.45!important}.empty{padding:26px 12px!important;border-radius:13px!important;background:#f5f9f7!important}

  /* 查询、列表、表单：不强制横向滚动，字段一行一项，方便点按。 */
  .toolbar{border:0!important;border-radius:17px!important;background:#fff!important;box-shadow:0 8px 22px rgba(16,58,43,.06)!important}.toolbar input,.toolbar select,.toolbar button{height:45px!important;border-radius:12px!important}.toolbar button{font-weight:750!important}
  table.mobile-card-table>tbody>tr{padding:10px 13px!important;border-radius:17px!important;box-shadow:0 7px 17px rgba(16,58,43,.06)!important}table.mobile-card-table>tbody>tr>td{min-height:42px!important;font-size:14px!important}table.mobile-card-table>tbody>tr>td::before{font-size:12px!important;color:#6f8079!important}
  .field label,.invoice-products td::before{font-weight:700!important;color:#62746d!important}.field input,.field select,.field textarea{min-height:47px!important;border-radius:12px!important;background:#fcfefd!important}.field textarea{min-height:92px!important}

  /* 手机开单：每一项像商品卡；底部始终可见且不需要缩放页面。 */
  .invoice-title{min-height:77px!important;padding:13px 55px 12px 14px!important;border-bottom:1px solid #e2ece7!important}.invoice-title h2{font-size:22px!important}.invoice-title .primary{min-height:40px!important;border-radius:11px!important}.invoice-products,.invoice-customer{padding:15px 12px!important}
  table.mobile-form-table>tbody>tr:not(.processing-inline-row){gap:10px!important;padding:12px!important;border-radius:17px!important;box-shadow:0 7px 18px rgba(16,58,43,.06)!important}table.mobile-form-table>tbody>tr:not(.processing-inline-row)>td::before{font-size:11px!important;font-weight:750!important}.processing-inline-row td{padding:11px!important;background:color-mix(in srgb,var(--mobile-primary) 6%,#fff)!important}.invoice-bottom{padding:15px 12px 20px!important}.invoice-summary{border:1px solid #e0ebe6;border-radius:16px;padding:9px 12px;background:#fff}.invoice-summary .total{font-size:24px!important}.invoice-actions{grid-template-columns:1fr 1fr!important;gap:8px!important;border-top:1px solid #dde9e3!important}.invoice-actions button{height:47px!important;border-radius:13px!important;font-weight:800!important}.invoice-actions .primary{grid-column:span 1!important}

  /* 销售单/送货单查看：留出呼吸感，操作区固定在屏幕底部。 */
  .sale-document-v3{padding:16px 12px 24px!important}.sale-document-v3 .sale-doc-brand b{font-size:25px!important}.sale-document-v3 .sale-doc-meta{border-radius:15px!important}.sale-document-v3 .sale-doc-customer{border-radius:15px!important}.sale-document-v3 .sale-doc-note{border-radius:15px!important}.sale-viewer-v3-actions{background:#fffffff8!important;border-top:1px solid #dfeae5!important;box-shadow:0 -9px 28px rgba(16,58,43,.1)!important}.sale-viewer-v3-actions button,.sale-viewer-v3-actions .profit-detail-button{border-radius:12px!important;font-weight:750!important}.delivery-document{padding:16px 12px 25px!important}.delivery-head{padding-bottom:14px!important}.delivery-items-v2 td{line-height:1.5!important}

  /* 五键底栏：底色和主题同步，中央开单键更醒目。 */
  .mobile-bottom-nav{left:10px!important;right:10px!important;bottom:10px!important;height:calc(70px + env(safe-area-inset-bottom))!important;padding:6px 5px env(safe-area-inset-bottom)!important;border-radius:21px!important;border-color:#d8e7e1!important;box-shadow:0 14px 34px rgba(9,44,34,.23)!important}.mobile-bottom-nav button{min-height:55px!important;border-radius:14px!important}.mobile-bottom-nav button i{font-size:20px!important}.mobile-bottom-nav button.active{background:color-mix(in srgb,var(--mobile-primary) 10%,transparent)!important}.mobile-bottom-nav .mobile-new-sale::before{width:51px!important;height:51px!important;border-radius:18px!important;background:linear-gradient(145deg,var(--mobile-primary),color-mix(in srgb,var(--mobile-primary) 72%,#092f25))!important}.mobile-bottom-nav .mobile-new-sale span{font-weight:800!important}

  .site-icp-footer{margin:16px 0 calc(var(--mobile-safe) + 4px)!important;padding:13px!important;border-radius:13px!important;background:#ffffff91!important;border-top:0!important}.login-icp-footer{margin:0!important;background:transparent!important}

  /* 手机开单页只保留一个滚动容器，避免页面与弹窗出现双滚动条。 */
  body.mobile-modal-open{height:100dvh!important;overflow:hidden!important;overscroll-behavior:none}
  body.mobile-modal-open #app{height:100dvh!important;overflow:hidden!important}
  body.mobile-modal-open .mobile-bottom-nav{display:none!important}
  .modal:has(.invoice-dialog){overflow:hidden!important;background:#f2f6f4!important}
  .dialog.invoice-dialog{
    border:0!important;
    border-radius:0!important;
    background:#f5f8f6!important;
    box-shadow:none!important;
  }
  .dialog.invoice-dialog.ticket-form-dialog:before,
  .dialog.invoice-dialog.ticket-form-dialog:after{display:none!important}
  .dialog.invoice-dialog.ticket-form-dialog #modalBody{
    height:100dvh!important;
    padding:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    scrollbar-gutter:auto!important;
  }
  .dialog.invoice-dialog>.close{
    position:fixed!important;
    top:calc(10px + env(safe-area-inset-top))!important;
    right:10px!important;
    width:44px!important;
    height:44px!important;
    border:1px solid #dce8e3!important;
    background:rgba(247,251,249,.96)!important;
    box-shadow:0 5px 16px rgba(17,58,44,.12)!important;
  }

  /* 手机经营看板：使用独立的 APP 式信息层级。 */
  header{
    min-height:68px!important;
    grid-template-columns:42px minmax(0,1fr) repeat(3,38px)!important;
    gap:6px!important;
    padding:9px 12px!important;
  }
  header .menu{width:42px!important;height:42px!important}
  header>.menu{grid-column:1!important;grid-row:1!important}
  header>div{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
  }
  header>#qrBtn{grid-column:3!important;grid-row:1!important}
  header>#exportBtn{grid-column:4!important;grid-row:1!important}
  header>#backupBtn{grid-column:5!important;grid-row:1!important}
  header .ghost{
    width:38px!important;
    height:38px!important;
    min-height:38px!important;
    border-radius:12px!important;
  }
  header h2{font-size:19px!important}
  header small{margin-top:2px!important}

  #view.ticket-system-page{padding-top:0!important}
  #view.ticket-system-page:before,
  #view.ticket-system-page:after{display:none!important}
  #view.ticket-system-page>.dashboard-layout-toolbar{display:none!important}
  .dashboard-free-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    align-items:stretch!important;
  }
  .dashboard-free-grid>.dashboard-widget{
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .dashboard-free-grid>.card{
    grid-column:span 1!important;
    position:relative!important;
    display:flex!important;
    justify-content:flex-end!important;
    min-height:118px!important;
    padding:14px 13px!important;
    border:0!important;
    border-radius:20px!important;
    box-shadow:0 9px 24px rgba(12,55,41,.10)!important;
  }
  .dashboard-free-grid>.card:before{
    left:13px!important;
    right:auto!important;
    top:14px!important;
    width:34px!important;
    height:34px!important;
    border-radius:11px!important;
    background:color-mix(in srgb,var(--mobile-primary) 11%,#fff)!important;
  }
  .dashboard-free-grid>.card:after{
    position:absolute!important;
    left:13px!important;
    top:14px!important;
    right:auto!important;
    width:34px!important;
    height:34px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:11px!important;
    background:none!important;
    color:var(--mobile-primary)!important;
    font-size:17px!important;
    font-weight:850!important;
  }
  .dashboard-free-grid>[data-widget-id="metric-sales"]:after{content:'¥'}
  .dashboard-free-grid>[data-widget-id="metric-received"]:after{content:'✓'}
  .dashboard-free-grid>[data-widget-id="metric-expenses"]:after{content:'支'}
  .dashboard-free-grid>[data-widget-id="metric-receivable"]:after{content:'欠'}
  .dashboard-free-grid>[data-widget-id="metric-pending-cost"]:after{content:'本'}
  .dashboard-free-grid>[data-widget-id="metric-pending-supplier"]:after{content:'供'}
  .dashboard-free-grid>[data-widget-id="metric-pending-delivery"]:after{content:'运'}
  .dashboard-free-grid>[data-widget-id="metric-7"]:after{content:'订'}
  .dashboard-free-grid>.card small{
    margin-top:42px!important;
    overflow:hidden!important;
    color:#70817a!important;
    font-size:11px!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
  }
  .dashboard-free-grid>.card strong{
    margin-top:5px!important;
    color:#155f4d!important;
    font-size:clamp(18px,5.3vw,24px)!important;
    line-height:1.12!important;
    letter-spacing:-.045em!important;
    white-space:nowrap!important;
  }
  .dashboard-free-grid>.card.red strong{color:#c14e47!important}
  .dashboard-free-grid>.clickable-card em{
    position:absolute!important;
    top:23px!important;
    right:12px!important;
    max-width:calc(100% - 58px)!important;
    overflow:hidden!important;
    color:#82918b!important;
    font-size:9px!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
  }
  .dashboard-free-grid>.clickable-card:active{
    transform:scale(.975)!important;
    transition:transform .12s ease!important;
  }
  .dashboard-free-grid>.panel,
  .dashboard-free-grid>.expense-pie-panel,
  .dashboard-free-grid>.supplier-ranking-panel{
    grid-column:1/-1!important;
    width:100%!important;
    min-height:0!important;
    padding:15px!important;
    border:0!important;
    border-radius:20px!important;
    box-shadow:0 9px 24px rgba(12,55,41,.08)!important;
  }
  .dashboard-free-grid>.panel:before,
  .dashboard-free-grid>.expense-pie-panel:before,
  .dashboard-free-grid>.supplier-ranking-panel:before{display:none!important}
  .dashboard-free-grid .panel-head{margin-bottom:12px!important}
  .dashboard-free-grid .panel-head h3{font-size:16px!important}
  .dashboard-free-grid .panel-head small{font-size:10px!important}
  .dashboard-free-grid .chart-panel{
    overflow-x:auto!important;
    border-radius:20px!important;
  }
  .dashboard-free-grid .expense-pie-panel,
  .dashboard-free-grid .supplier-ranking-panel{min-height:280px!important}
  .dashboard-widget-tools{display:none!important}

  .mobile-bottom-nav button:before{display:none!important}
  .mobile-bottom-nav button i{
    display:block!important;
    opacity:1!important;
    color:inherit!important;
  }

  /* 其余业务模块共用的手机 APP 组件。 */
  #view{gap:10px!important;padding-bottom:4px}
  #view.ticket-system-page>.ticket-query-bar,
  #view.ticket-system-page>.toolbar,
  #view>.order-filter-bar{
    margin:0!important;
    padding:12px!important;
    border:0!important;
    border-radius:20px!important;
    background:rgba(255,255,255,.94)!important;
    box-shadow:0 9px 24px rgba(12,55,41,.075)!important;
    overflow:hidden!important;
  }
  #view.ticket-system-page>.ticket-query-bar:before,
  #view.ticket-system-page>.ticket-query-bar:after{display:none!important}
  #view.ticket-system-page>.toolbar input,
  #view.ticket-system-page>.toolbar select,
  #view.ticket-system-page>.toolbar button,
  #view.ticket-system-page>.ticket-query-bar input,
  #view.ticket-system-page>.ticket-query-bar select,
  #view.ticket-system-page>.ticket-query-bar button,
  #view>.order-filter-bar input,
  #view>.order-filter-bar select,
  #view>.order-filter-bar button{
    min-height:46px!important;
    border-radius:13px!important;
  }
  #view>.order-filter-bar{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:9px!important;
  }
  #view>.order-filter-bar label{
    display:grid!important;
    gap:5px!important;
    min-width:0!important;
    color:#6b7d75!important;
    font-size:11px!important;
  }
  #view>.order-filter-bar .order-search-field,
  #view>.order-filter-bar .order-filter-actions{grid-column:1/-1!important}
  #view>.order-filter-bar .order-filter-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }

  #view.ticket-system-page>.ticket-section,
  #view.ticket-system-page>.panel,
  #view.ticket-system-page .ticket-section{
    border:0!important;
    border-radius:20px!important;
    background:#fff!important;
    box-shadow:0 9px 24px rgba(12,55,41,.075)!important;
  }
  #view.ticket-system-page>.ticket-section:before,
  #view.ticket-system-page>.panel:before,
  #view.ticket-system-page .ticket-section:before{display:none!important}
  #view.ticket-system-page .ticket-section .panel-head h3:before{display:none!important}
  #view.ticket-system-page .ticket-section>.panel-head:first-child,
  #view.ticket-system-page .ticket-section>h3:first-child{padding-top:0!important}
  #view.ticket-system-page .panel-head{
    align-items:center!important;
    margin-bottom:12px!important;
  }
  #view.ticket-system-page .panel-head>div:first-child{min-width:0}
  #view.ticket-system-page .panel-head h3{
    overflow:hidden;
    font-size:17px!important;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  #view.ticket-system-page .panel-head small{
    display:block;
    margin-top:3px;
    font-size:10px!important;
    line-height:1.4!important;
  }
  #view.ticket-system-page .panel-head .primary,
  #view.ticket-system-page .panel-head .ghost{
    min-height:42px!important;
    border-radius:12px!important;
  }

  #view.ticket-system-page>.cards:not(.dashboard-cards-source),
  #view.ticket-system-page .account-cards,
  #view.ticket-system-page .order-summary{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
  }
  #view.ticket-system-page>.cards:not(.dashboard-cards-source)>.card,
  #view.ticket-system-page .account-cards>.card,
  #view.ticket-system-page .order-summary>.card{
    min-height:96px!important;
    padding:13px!important;
    border:0!important;
    border-radius:18px!important;
    box-shadow:0 8px 20px rgba(12,55,41,.075)!important;
  }
  #view.ticket-system-page>.cards:not(.dashboard-cards-source)>.card:before,
  #view.ticket-system-page .account-cards>.card:before,
  #view.ticket-system-page .order-summary>.card:before{display:none!important}
  #view.ticket-system-page>.cards:not(.dashboard-cards-source)>.card strong,
  #view.ticket-system-page .account-cards>.card strong,
  #view.ticket-system-page .order-summary>.card strong{
    font-size:20px!important;
    white-space:nowrap!important;
  }

  .contact-switch{
    gap:9px!important;
    margin:0!important;
  }
  .contact-switch-card{
    min-height:88px!important;
    padding:13px!important;
    border:0!important;
    border-radius:18px!important;
    box-shadow:0 8px 20px rgba(12,55,41,.075)!important;
  }
  .contact-switch-card.active{
    box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--mobile-primary) 45%,#fff),0 8px 20px rgba(12,55,41,.09)!important;
  }

  .ticket-table-frame{
    border:0!important;
    border-radius:16px!important;
    box-shadow:none!important;
    background:transparent!important;
  }
  table.mobile-card-table>tbody>tr{
    border:0!important;
    border-radius:16px!important;
    box-shadow:0 6px 18px rgba(12,55,41,.07)!important;
  }
  table.mobile-card-table>tbody>tr>td{
    grid-template-columns:minmax(78px,31%) minmax(0,1fr)!important;
  }

  .dialog.ticket-form-dialog:not(.invoice-dialog){
    border:0!important;
    border-radius:0!important;
    background:#f4f8f6!important;
    box-shadow:none!important;
  }
  .dialog.ticket-form-dialog:not(.invoice-dialog):before,
  .dialog.ticket-form-dialog:not(.invoice-dialog):after{display:none!important}
  .dialog.ticket-form-dialog:not(.invoice-dialog) #modalBody{
    height:100dvh!important;
    padding:62px 14px calc(88px + env(safe-area-inset-bottom))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }
  .dialog.ticket-form-dialog:not(.invoice-dialog) #modalBody>h2:first-child,
  .dialog.ticket-form-dialog:not(.invoice-dialog) #modalBody>form>h2:first-child{
    margin:0 0 16px!important;
    padding:0!important;
    border:0!important;
    font-size:22px!important;
  }
  .dialog.ticket-form-dialog:not(.invoice-dialog) .actions{
    position:sticky!important;
    bottom:calc(-88px - env(safe-area-inset-bottom))!important;
    z-index:25!important;
    margin:20px -14px calc(-88px - env(safe-area-inset-bottom))!important;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom))!important;
    border:0!important;
    background:rgba(255,255,255,.97)!important;
    box-shadow:0 -9px 26px rgba(14,52,40,.12)!important;
  }
  .dialog.ticket-form-dialog:not(.invoice-dialog) .actions:before{display:none!important}
  .dialog.ticket-form-dialog:not(.invoice-dialog) .actions button{
    min-height:48px!important;
    border-radius:13px!important;
  }

  .stamp-page,
  .expense-pie-panel,
  .report-cost-section{
    border-radius:20px!important;
    overflow:hidden!important;
  }
}

@media (max-width:350px){
  .dashboard-free-grid{grid-template-columns:1fr!important}
  .dashboard-free-grid>.card{grid-column:1/-1!important;min-height:108px!important}
}
