/* 移动端适配：全部 @media 响应式块集中于此，统一在最后加载 */

@media(max-width:1200px){.kpis{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:1fr}}
@media(max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}.wrap{padding:14px}
  .top{padding:0 14px;height:auto;min-height:60px;flex-wrap:wrap}
  .formgrid{grid-template-columns:1fr}.full{grid-column:auto}.search{width:100%}
  .detailgrid{grid-template-columns:110px 1fr}
  .qgrid,.qgrid.q6{grid-template-columns:1fr 1fr;gap:6px}
  .qgrid.head,.qgrid.q6.head{display:none}}

@media(max-width:1100px){.home-grid{grid-template-columns:1fr}}
@media(max-width:820px){
  body{padding-left:58px}
  .side{width:58px}
  .side-brand{justify-content:center;padding:0}
  .side-brand .logo-img{height:24px;max-width:44px}
  .side-bn{display:none}
  .nav{justify-content:center;padding:0}
  .nav .tx{display:none}
  .nav-lab{display:none}
  .side-foot{padding:8px 6px}
  .side-foot .userbtn{justify-content:center}
  .side-foot .userbtn>span:last-child{display:none}
  .top{padding:0 14px}
  .top .crumb .muted{display:none}
}
@media(max-width:820px){
  .welcome{align-items:flex-start}
  .wc-hi{font-size:16px}
  .wc-sub{font-size:11.5px}
  .wc-side{gap:10px}
  .wc-date{font-size:11.5px}
}
@media(max-width:700px){
  .kl-head{display:none}
  .kl-row{grid-template-columns:1fr auto;gap:6px}
  .kl-mo,.kl-dt{display:none}
}
@media(max-width:768px){
  /* ---------- 1. 底部标签栏 ---------- */
  body{padding-left:0 !important;padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .side{left:0;right:0;bottom:0;top:auto;width:auto;height:auto;
    flex-direction:row;align-items:stretch;border-right:0;
    border-top:1px solid var(--line);
    box-shadow:0 -2px 12px rgba(15,23,42,.06);
    padding-bottom:env(safe-area-inset-bottom);z-index:26}
  .side-brand,.side-nav .nav-lab{display:none}
  .side-nav{flex:1;display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;
    padding:0;gap:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .side-nav::-webkit-scrollbar{display:none}
  .nav{flex:1;min-width:64px;height:56px;flex-direction:column;justify-content:center;
    align-items:center;gap:3px;margin:0;border-radius:0;padding:0 4px;position:relative}
  .nav .ic{width:20px;height:20px}
  .nav .ic svg{width:20px;height:20px}
  .nav .tx{display:block !important;font-size:10.5px;line-height:1;letter-spacing:.2px}
  .nav.on{background:transparent;color:var(--blue)}
  .nav.on:after{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
    width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--blue)}
  .side-foot{flex:none;border-top:0;padding:0;border-left:1px solid var(--line);
    display:flex;align-items:center}
  .side-foot .userbtn{width:auto;height:56px;border:0;background:transparent;
    border-radius:0;padding:0 10px;justify-content:center}
  .side-foot .userbtn>span:last-child{display:none}
  .side-foot .avatar{width:28px;height:28px;font-size:13px}
  .side-foot .umenu{left:auto;right:6px;bottom:calc(100% + 8px);min-width:200px;
    max-width:calc(100vw - 24px)}

  /* ---------- 2. 顶栏 ---------- */
  .top{height:auto;min-height:52px;padding:8px 12px;flex-wrap:wrap;gap:8px}
  .top .crumb{width:100%;min-width:0}
  .top .crumb b{font-size:15px}
  .top .crumb .muted{display:none}
  .top .actions{width:100%;gap:8px}
  .top .actions .muted{display:none}
  .top .btn,.top .btn.primary{flex:1;justify-content:center;min-height:40px;font-size:13px}

  /* ---------- 3. 主内容 ---------- */
  .wrap{padding:12px 12px 24px !important}
  .kpis{grid-template-columns:repeat(2,1fr) !important;gap:9px;margin-bottom:12px}
  .kpi{padding:11px 12px}
  .kpi .num{font-size:21px;margin-top:5px}
  .kpi .lab{font-size:11px}
  .kpi .sub{font-size:10.5px}
  .kpi-link{padding-right:24px}
  .kpi-go{font-size:16px;right:8px}
  .grid2,.home-grid{grid-template-columns:1fr !important;gap:11px}
  .chart{height:150px;padding:10px 12px}
  .donutrow{height:auto;flex-direction:column;gap:14px;padding:14px}
  .donut{width:104px;height:104px}
  .legend{width:100%;grid-template-columns:1fr 1fr;gap:6px 10px}
  .panel-head{padding:11px 13px;font-size:13px}
  .panel-head .sub{display:none}

  /* 欢迎语 */
  .welcome{flex-direction:column;align-items:stretch;gap:9px;margin-bottom:13px}
  .wc-hi{font-size:16px;line-height:1.4}
  .wc-sub{font-size:11.5px;margin-top:3px}
  .wc-side{gap:8px;flex-wrap:wrap}
  .wc-hello{font-size:12.5px;padding:3px 10px}
  .wc-date{font-size:11.5px}
  .wc-todo{font-size:11.5px;padding:3px 10px}
  .wc-todo b{font-size:13px}

  /* ---------- 4. 表格 → 卡片 ---------- */
  .filters{padding:10px;gap:8px}
  .filters input,.filters select{height:40px;flex:1 1 calc(50% - 4px);min-width:0;
    font-size:16px /* 防 iOS 聚焦缩放 */}
  .search{flex:1 1 100% !important;width:100% !important}
  .filters .btn{min-height:40px;flex:1 1 calc(50% - 4px)}
  .filters .grow{display:none}
  .onlymine{flex:1 1 100%;font-size:12px}
  .tablewrap{overflow:visible;max-height:none;border-top:0;background:transparent;
    border-radius:0;box-shadow:none}
  table{min-width:0 !important;width:100%}
  colgroup{display:none}
  thead{display:none}
  tbody{display:block}
  tr{display:block;background:#fff;border:1px solid var(--line);border-radius:11px;
    padding:10px 12px;margin-bottom:10px;box-shadow:0 1px 3px rgba(15,23,42,.05)}
  td{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
    width:auto !important;height:auto !important;min-height:0 !important;
    padding:5px 0 !important;border:0 !important;white-space:normal !important;
    overflow:visible !important;text-overflow:clip !important;
    font-size:13px;line-height:1.45}
  td:before{content:attr(data-l);flex:none;width:82px;color:#94a3b8;font-size:11.5px;
    line-height:1.5;padding-top:1px}
  td:last-child{padding-top:9px !important;margin-top:6px;border-top:1px solid #f1f5f9 !important}
  td:last-child:before{display:none}
  td .cell{max-height:none !important;-webkit-line-clamp:unset !important;
    display:block !important;white-space:normal !important;overflow:visible !important}
  td.mono{word-break:break-all;font-size:11.5px;text-align:right;max-width:calc(100% - 92px)}
  td.money{text-align:right}
  .ops{flex-wrap:wrap;gap:7px;width:100%}
  .mini{height:36px;padding:0 13px;font-size:12.5px;flex:1;min-width:56px}
  .empty{padding:26px 14px;text-align:center}
  .pagination{flex-wrap:wrap;gap:10px;padding:10px 12px}
  .pagination>span{width:100%;font-size:12px}
  .pages{flex-wrap:wrap;gap:6px}
  .page{min-width:36px;height:36px}
  .pagesize{height:36px}

  /* ---------- 5. 看板 ---------- */
  .board{padding:2px 0 14px;gap:10px;scroll-snap-type:x mandatory}
  .bcol{flex:0 0 78%;max-width:300px;scroll-snap-align:start;max-height:none}
  .bcbody{max-height:52vh}

  /* ---------- 6. 弹窗 → 底部抽屉 ---------- */
  .modal{align-items:flex-end;padding:0}
  .box{width:100%;max-width:100%;max-height:90vh;border-radius:16px 16px 0 0;
    padding-bottom:env(safe-area-inset-bottom)}
  .modalhead{padding:14px 16px;position:sticky;top:0;background:#fff;z-index:2}
  .modalhead b{font-size:15px}
  .close{width:34px;height:34px}
  .modalbody{padding:14px 16px}
  .modalfoot{padding:12px 16px;gap:9px;position:sticky;bottom:0;background:#fff}
  .modalfoot .btn{flex:1;min-height:44px;justify-content:center}
  .formgrid{grid-template-columns:1fr !important;gap:12px}
  .field input,.field select,.field textarea{font-size:16px;min-height:44px}
  .field textarea{min-height:88px}
  .notice{font-size:12px;padding:9px 11px;line-height:1.55}
  .detailgrid{grid-template-columns:96px 1fr;font-size:12.5px}
  .detailgrid>div{padding:9px 10px}
  .set-item{padding:12px;min-height:56px}
  .set-ic{width:34px;height:34px}
  .set-tx b{font-size:14px}
  .set-tx span{font-size:11.5px}
  .drop{padding:22px 14px;font-size:13px}
  .upload-row{flex-wrap:wrap}
  .upload-row input[type=file]{flex:1 1 100%;min-height:44px}
  .btn{min-height:44px}
  .steps{gap:2px;margin:6px 0 14px}
  .step{font-size:10.5px}
  .step:before{width:20px;height:20px}
  .step:after{top:9px}
  .kl-head{display:none}
  .kl-row{grid-template-columns:1fr auto;gap:5px 8px;padding:10px 12px}
  .kl-mo,.kl-dt{display:none}
  .ql,.qtable{font-size:12px}
  .toast{right:12px;left:12px;bottom:calc(72px + env(safe-area-inset-bottom));
    text-align:center;font-size:13px}
}
@media(max-width:400px){
  .kpis{grid-template-columns:1fr 1fr !important;gap:8px}
  .kpi .num{font-size:19px}
  td:before{width:72px;font-size:11px}
  .top .btn,.top .btn.primary{font-size:12px;padding:0 8px}
}
/* 横屏手机：底部栏变窄，避免挤压内容 */
@media(max-height:480px) and (max-width:900px){
  .side-nav .nav{height:48px}
  .nav .tx{display:none !important}
  body{padding-bottom:calc(52px + env(safe-area-inset-bottom))}
}
@media(max-width:768px){
  .gsearch{max-width:none;flex:1 1 100%;order:3}
  .gsearch input{height:40px;font-size:16px}
  .col-resizer{display:none}
  .batchbar{padding:8px 10px;gap:7px}
  .batchbar .mini{flex:1;min-width:70px;height:36px}
  .ck-col{width:36px}
  td.ck-col:before{display:none}
  tr.sel{box-shadow:0 0 0 2px #93b4f7}
}
