/* ============================================================
   卤味供应链订货系统 · 设计系统（唯一样式源 / A 晴蓝）
   规则：主色只给可点/选中；正文只用 --c-ink / --c-mute；
   禁止 !important；正文不小于 12px；点击区 ≥44px。
   ============================================================ */

/* SECTION: tokens */
:root{
  --c-primary:#2563eb; --c-primary-d:#1d4ed8; --c-primary-l:#eaf1ff;
  --c-ink:#101828; --c-mute:#667085; --c-line:#e6e9ef; --c-soft:#f5f7fa;
  --c-ok:#0f9d58; --c-warn:#e8890c; --c-danger:#d92d20; --c-white:#ffffff;
  --c-tab-off:#475467;
  --c-notice-bg1:#fffaf0; --c-notice-bg2:#fff6e0; --c-notice-line:#ecd9a8; --c-notice-ink:#7a5410;
  --fs-num:26px; --fs-title:17px; --fs-body:14px; --fs-aux:12.5px; --fs-tag:12px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:28px;
  --rd-s:10px; --rd-m:14px; --rd-l:20px;
  --sh-1:0 1px 2px rgba(16,24,40,.04);
  --sh-2:0 4px 16px rgba(16,24,40,.06);
  --sh-3:0 12px 32px rgba(16,24,40,.09);
  --dur:180ms; --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{background:var(--c-soft);color:var(--c-ink);
  font:var(--fs-body)/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;touch-action:manipulation}
button,input,select,textarea{font-family:inherit}
a{color:var(--c-primary)}

/* SECTION: buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:44px;padding:0 18px;border-radius:var(--rd-s);border:1px solid var(--c-primary);
  background:var(--c-primary);color:var(--c-white);font-size:var(--fs-body);font-weight:600;
  cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease),transform var(--dur) var(--ease)}
.btn:active{background:var(--c-primary-d);transform:scale(.975)}
.btn:disabled{background:#eef1f5;border-color:#eef1f5;color:#a8b2c1;cursor:not-allowed;transform:none}
.btn.sub{background:var(--c-white);border-color:var(--c-line);color:var(--c-ink)}
.btn.sub:active{background:var(--c-soft)}
.btn.ok{background:var(--c-ok);border-color:var(--c-ok);color:var(--c-white)}
.btn.warn{background:var(--c-white);border-color:var(--c-warn);color:var(--c-warn)}
.btn.danger{background:var(--c-white);border-color:#f2c7c3;color:var(--c-danger)}
.btn.danger.solid{background:var(--c-danger);border-color:var(--c-danger);color:var(--c-white)}
.btn.sm{min-height:34px;padding:0 12px;font-size:var(--fs-aux);border-radius:8px}
.btn.block{width:100%}

/* SECTION: cards & layout */
.card{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--rd-m);
  box-shadow:var(--sh-1);padding:var(--sp-4);margin-bottom:var(--sp-3)}
.card h3{margin:0 0 var(--sp-1);font-size:var(--fs-title);font-weight:700}
.card .sub{margin:0 0 var(--sp-3);font-size:var(--fs-aux);color:var(--c-mute)}
.rowline{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.grow{flex:1;min-width:0}
.muted{color:var(--c-mute)}
.small{font-size:var(--fs-aux)}
.tag{display:inline-flex;align-items:center;font-size:var(--fs-tag);border-radius:999px;padding:2px 10px;line-height:1.5}
.tag.blue{background:var(--c-primary-l);color:var(--c-primary)}
.tag.ok{background:#e7f6ee;color:var(--c-ok)}
.tag.warn{background:#fdf3e3;color:var(--c-warn)}
.tag.danger{background:#fdeceb;color:var(--c-danger)}
.tag.gray{background:#eef1f5;color:var(--c-mute)}
.tag.purple{background:#f1ebfd;color:#7c3aed}

/* SECTION: empty state */
.ds-empty{text-align:center;padding:44px 16px;color:var(--c-mute)}
.ds-empty .ico{font-size:40px;margin-bottom:var(--sp-2);opacity:.8}
.ds-empty .t{font-size:var(--fs-body);font-weight:600;color:var(--c-ink);margin-bottom:4px}
.ds-empty .d{font-size:var(--fs-aux)}

/* SECTION: forms */
.fg{margin-bottom:var(--sp-3)}
.fg label{display:block;font-size:var(--fs-tag);color:var(--c-mute);margin-bottom:var(--sp-1)}
.fg label i{color:var(--c-danger);font-style:normal}
.fg input,.fg select,.fg textarea{width:100%;min-height:44px;border:1px solid var(--c-line);
  border-radius:var(--rd-s);background:var(--c-white);padding:10px 12px;font-size:16px;color:var(--c-ink);outline:none}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-l)}
.fg textarea{min-height:76px;resize:vertical}
.fg .err{display:none;color:var(--c-danger);font-size:var(--fs-aux);margin-top:4px}
.fg.bad input,.fg.bad select,.fg.bad textarea{border-color:var(--c-danger)}
.fg.bad .err{display:block}
.grid2{display:grid;grid-template-columns:1fr;gap:0 var(--sp-3)}
@media (min-width:560px){.grid2{grid-template-columns:1fr 1fr}}

/* SECTION: modal（遮罩默认 none，仅 .show 显示；×/ESC/点遮罩三种关闭） */
.modal-mask{display:none;position:fixed;inset:0;background:rgba(16,24,40,.45);z-index:100;
  align-items:center;justify-content:center;padding:16px}
.modal-mask.show{display:flex}
.modal{background:var(--c-white);border-radius:var(--rd-m);box-shadow:var(--sh-3);
  width:100%;max-width:520px;max-height:86vh;display:flex;flex-direction:column}
.modal .mhead{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4);border-bottom:1px solid var(--c-line)}
.modal .mhead b{font-size:var(--fs-title);flex:1;min-width:0}
.modal .mx{width:34px;height:34px;border:0;background:var(--c-soft);border-radius:8px;font-size:16px;
  color:var(--c-mute);cursor:pointer;flex:none}
.modal .mbody{padding:var(--sp-4);overflow-y:auto;min-width:0}
.modal .mfoot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--c-line);display:flex;gap:var(--sp-2);justify-content:flex-end}
.modal.wide{max-width:760px}

/* SECTION: toast */
#toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:rgba(16,24,40,.92);
  color:var(--c-white);font-size:var(--fs-body);padding:10px 18px;border-radius:999px;opacity:0;
  pointer-events:none;transition:opacity var(--dur) var(--ease);z-index:200;max-width:86vw;text-align:center}
#toast.on{opacity:1}

/* SECTION: login（三入口各自独立，页内不出现其他端地址） */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-box{width:100%;max-width:380px;background:var(--c-white);border:1px solid var(--c-line);
  border-radius:var(--rd-l);box-shadow:var(--sh-2);padding:var(--sp-6) var(--sp-5)}
.login-logo{width:52px;height:52px;border-radius:14px;background:var(--c-primary);color:var(--c-white);
  display:grid;place-items:center;font-size:24px;font-weight:700;margin-bottom:var(--sp-4)}
.login-box h1{margin:0 0 var(--sp-1);font-size:20px}
.login-box .sub{margin:0 0 var(--sp-5);color:var(--c-mute);font-size:var(--fs-aux)}

/* SECTION: store shell（移动优先 · 仿 App） */
.store-top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--c-line);padding:10px var(--sp-4);display:flex;align-items:center;gap:var(--sp-2)}
.store-top .logo{width:30px;height:30px;border-radius:9px;background:var(--c-primary);color:var(--c-white);
  display:grid;place-items:center;font-size:14px;font-weight:700;flex:none}
.store-top b{font-size:15px}
.store-top .who{margin-left:auto;font-size:var(--fs-aux);color:var(--c-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.store-main{padding:var(--sp-3) var(--sp-3) 84px;max-width:720px;margin:0 auto}
.view{display:none;opacity:1}
.view.on{display:block;animation:fadein var(--dur) var(--ease)}
@keyframes fadein{from{opacity:0}to{opacity:1}}   /* 只用 opacity，不用 transform */

.task-card{background:linear-gradient(120deg,var(--c-primary),#4f8bff);color:var(--c-white);
  border-radius:var(--rd-m);padding:var(--sp-4);margin-bottom:var(--sp-3);box-shadow:var(--sh-2)}
.task-card .t{font-size:var(--fs-aux);opacity:.85;letter-spacing:.06em}
.task-card h2{margin:4px 0 var(--sp-2);font-size:var(--fs-title);font-weight:700}
.task-card .big{font-size:var(--fs-num);font-weight:800;line-height:1.2}
.todo-bar{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap}
.todo{flex:1;min-width:90px;background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--rd-s);
  padding:10px;text-align:center;cursor:pointer;box-shadow:var(--sh-1)}
.todo .n{font-size:20px;font-weight:800}
.todo .n.red{color:var(--c-danger)} .todo .n.orange{color:var(--c-warn)} .todo .n.blue{color:var(--c-primary)}
.todo .t{font-size:var(--fs-tag);color:var(--c-mute)}

.notice{background:linear-gradient(120deg,var(--c-notice-bg1),var(--c-notice-bg2));
  border:1px solid var(--c-notice-line);border-radius:var(--rd-s);box-shadow:var(--sh-1);
  padding:var(--sp-3) var(--sp-3) 10px;margin-bottom:18px;position:relative}
.notice .horn{position:absolute;left:12px;top:12px;font-size:15px;color:var(--c-notice-ink);opacity:.75}
.notice .nt{margin:0 0 4px 24px;font-size:var(--fs-body);font-weight:700;color:var(--c-notice-ink)}
.notice .nb{margin:0 0 6px 24px;font-size:var(--fs-body);color:var(--c-notice-ink);font-weight:700;line-height:1.55}
.notice .nd{text-align:right;font-size:var(--fs-tag);color:var(--c-notice-ink);opacity:.7}

.menu-group{margin-bottom:var(--sp-4)}
.menu-group .gt{font-size:var(--fs-body);font-weight:700;color:var(--c-mute);margin:0 2px var(--sp-2)}
.menu-item{display:flex;align-items:center;gap:var(--sp-3);min-height:54px;padding:0 var(--sp-3);
  background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--rd-s);margin-bottom:var(--sp-2);
  cursor:pointer;box-shadow:var(--sh-1)}
.menu-item .mi{width:20px;font-size:20px;color:var(--c-primary);opacity:.72;flex:none;text-align:center}
.menu-item .mt{flex:1;min-width:0;font-size:15px;font-weight:600}
.menu-item .ma{font-size:18px;color:#c3ccd9;flex:none}
.menu-item.weak .mt{font-weight:400;font-size:15px;color:var(--c-ink)}

.watermark{position:fixed;right:10px;bottom:70px;z-index:5;font-size:11px;color:#b6bfcc;pointer-events:none}

.store-foot{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);border-top:1px solid var(--c-line);display:flex;
  padding:0 4px env(safe-area-inset-bottom)}
.tabbtn{flex:1;background:none;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:2px;height:56px;color:var(--c-tab-off);position:relative;min-width:0;transform:none}
.tabbtn .ti{font-size:24px;line-height:1.25;transform:none;width:48px;height:26px;display:grid;place-items:center;border-radius:9px}
.tabbtn .tt{font-size:var(--fs-aux);font-weight:600;transform:none}
.tabbtn.on{color:var(--c-primary)}
.tabbtn.on .ti{background:var(--c-primary);color:var(--c-white)}
.tabbtn.on::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--c-primary)}
.tabbtn .badge{position:absolute;top:4px;left:50%;margin-left:6px;background:var(--c-danger);color:var(--c-white);
  font-size:10px;font-weight:700;border-radius:999px;padding:1px 5px;line-height:1.4;display:none}
.tabbtn .badge.on{display:block}

/* SECTION: 商品列表（门店订货） */
.catbar{display:flex;gap:var(--sp-2);overflow-x:auto;padding:2px 0 var(--sp-3);scrollbar-width:none}
.catbar::-webkit-scrollbar{display:none}
.catchip{flex:none;border:1px solid var(--c-line);background:var(--c-white);color:var(--c-mute);
  border-radius:999px;padding:8px 14px;font-size:var(--fs-body);cursor:pointer;min-height:36px}
.catchip.on{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-white);font-weight:600}
.plist{display:grid;grid-template-columns:1fr;gap:var(--sp-2)}
.pcard{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--rd-m);padding:var(--sp-3);
  display:flex;gap:var(--sp-3);box-shadow:var(--sh-1);min-width:0}
.pimg{width:60px;height:60px;border-radius:var(--rd-s);background:var(--c-soft);flex:none;
  display:grid;place-items:center;overflow:hidden;font-size:26px}
.pimg img{width:100%;height:100%;object-fit:cover;border-radius:var(--rd-s)}
.pinfo{flex:1;min-width:0}
.pname{font-weight:600;font-size:var(--fs-body);line-height:1.4}
.pdesc{color:var(--c-mute);font-size:var(--fs-aux);margin-top:2px;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.prow{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap}
.pprice{color:var(--c-primary);font-weight:700;font-size:15px;white-space:nowrap}
.pprice small{color:var(--c-mute);font-weight:400;font-size:var(--fs-tag)}
.pmeta{width:100%;font-size:var(--fs-tag);color:var(--c-mute)}
.pmeta .lack{color:var(--c-warn);font-weight:600}
.stepper{display:flex;align-items:center;border:1px solid #b9cdf7;border-radius:9px;overflow:hidden;background:var(--c-white);flex:none}
.stepper button{width:36px;height:36px;border:0;background:var(--c-white);color:var(--c-primary);
  font-size:17px;font-weight:700;cursor:pointer;display:grid;place-items:center;padding:0}
.stepper button:disabled{color:#c3ccd9;cursor:not-allowed}
.stepper .qv{min-width:44px;text-align:center;font-weight:700;font-size:var(--fs-aux);
  border-left:1px solid var(--c-primary-l);border-right:1px solid var(--c-primary-l);height:36px;display:grid;place-items:center}

/* SECTION: 起送差额卡（警示语义，不庆祝） */
.gap-card{background:linear-gradient(120deg,#b45309,var(--c-warn));color:var(--c-white);
  border-radius:var(--rd-m);padding:var(--sp-4);margin-bottom:var(--sp-3)}
.gap-card .gw{font-size:var(--fs-aux);opacity:.9}
.gap-card .gn{font-size:34px;font-weight:800;line-height:1.2;margin:2px 0}
.gap-card .gt{font-size:var(--fs-aux);opacity:.92}

.checkbar{position:fixed;left:0;right:0;bottom:56px;z-index:35;background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);border-top:1px solid var(--c-line);padding:10px var(--sp-3)
  calc(10px + env(safe-area-inset-bottom));display:none;align-items:center;gap:var(--sp-3);margin-bottom:env(safe-area-inset-bottom)}
.checkbar.on{display:flex}
.checkbar .cs{flex:1;min-width:0}
.checkbar .cs .n{font-size:var(--fs-tag);color:var(--c-mute)}
.checkbar .cs .a{font-size:20px;font-weight:800;color:var(--c-primary)}

/* SECTION: 订单卡 */
.ocard{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--rd-m);
  padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-2);box-shadow:var(--sh-1);cursor:pointer}
.ohead{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:6px}
.ono{font-size:var(--fs-aux);color:var(--c-mute)}
.oitems{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.ochip{background:var(--c-soft);border:1px solid var(--c-line);border-radius:8px;padding:3px 9px;
  font-size:var(--fs-tag);color:var(--c-mute)}
.ofoot{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.oamt{font-weight:700}
.oamt small{color:var(--c-mute);font-weight:400;font-size:var(--fs-tag)}

/* SECTION: 收货行（块级表单，产品名独立一行） */
.recv-line{border-bottom:1px solid var(--c-line);padding:var(--sp-3) 0}
.recv-line:last-child{border-bottom:0}
.recv-name{font-weight:600;font-size:var(--fs-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}
.recv-meta{font-size:var(--fs-aux);color:var(--c-mute);margin-bottom:6px}
.up-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  min-height:96px;border:1px dashed #b9cdf7;border-radius:var(--rd-s);background:var(--c-primary-l);
  color:var(--c-primary);font-size:var(--fs-aux);cursor:pointer;text-align:center;padding:var(--sp-3)}
.up-btn .cam{font-size:24px}
.up-prev{max-width:100%;max-height:180px;border-radius:var(--rd-s);object-fit:cover;display:block;margin-top:var(--sp-2)}

/* SECTION: 时间轴 */
.tl{margin:var(--sp-2) 0}
.tlitem{display:flex;gap:var(--sp-3);position:relative;padding-bottom:var(--sp-4)}
.tlitem:last-child{padding-bottom:0}
.tlitem .dot{width:12px;height:12px;border-radius:50%;background:#dfe4ec;flex:none;margin-top:5px;z-index:1}
.tlitem.done .dot{background:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-l)}
.tlitem::before{content:"";position:absolute;left:5px;top:17px;bottom:0;width:2px;background:var(--c-line)}
.tlitem:last-child::before{display:none}
.tlitem .tt{font-size:var(--fs-body);font-weight:600}
.tlitem .ts{font-size:var(--fs-aux);color:var(--c-mute)}
.kv{display:flex;justify-content:space-between;gap:var(--sp-3);padding:7px 0;border-bottom:1px dashed var(--c-line);font-size:var(--fs-body)}
.kv:last-child{border-bottom:0}
.kv .k{color:var(--c-mute);flex:none}
.kv .v{text-align:right;min-width:0;word-break:break-all}

/* SECTION: 汇总行 */
.sumrow{display:flex;justify-content:space-between;padding:7px 0;font-size:var(--fs-body);color:var(--c-mute)}
.sumrow.total{border-top:1px solid var(--c-line);margin-top:6px;padding-top:var(--sp-3);
  color:var(--c-ink);font-weight:700}
.sumrow.total .amt{color:var(--c-primary);font-size:20px}

/* SECTION: PC 三栏工作台（后台/财务） */
.hq-wrap{display:flex;min-height:100vh}
.hq-nav{width:206px;flex:none;background:var(--c-white);border-right:1px solid var(--c-line);
  padding:var(--sp-3) var(--sp-2);position:sticky;top:0;height:100vh;overflow-y:auto}
.hq-nav .nlogo{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-4)}
.hq-nav .nlogo .lg{width:32px;height:32px;border-radius:9px;background:var(--c-primary);color:var(--c-white);
  display:grid;place-items:center;font-weight:700;flex:none}
.hq-nav .nlogo b{font-size:15px}
.ngroup .ngt{font-size:var(--fs-tag);color:var(--c-mute);font-weight:700;padding:var(--sp-2) var(--sp-2) 4px}
.nitem{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-2);
  border-radius:var(--rd-s);cursor:pointer;font-size:var(--fs-body);color:var(--c-ink);margin-bottom:2px}
.nitem .ni{width:20px;text-align:center;flex:none;color:var(--c-primary);opacity:.72}
.nitem.on{background:var(--c-primary-l);color:var(--c-primary);font-weight:600}
.nitem.on .ni{opacity:1}
.hq-body{flex:1;min-width:0;padding:var(--sp-4);display:flex;gap:var(--sp-4);align-items:flex-start}
.hq-main{flex:1;min-width:0}
.hq-side{width:250px;flex:none;position:sticky;top:var(--sp-4)}
.hq-top{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}
.hq-top h2{margin:0;font-size:19px;flex:1;min-width:0}
.side-stat{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--c-line);font-size:var(--fs-body)}
.side-stat:last-child{border-bottom:0}
.side-stat .n{font-weight:800;color:var(--c-primary);font-size:16px}
@media (max-width:1023px){
  .hq-wrap{display:block}
  .hq-nav{width:auto;height:auto;position:static;border-right:0;border-bottom:1px solid var(--c-line);
    display:flex;gap:var(--sp-2);overflow-x:auto;padding:var(--sp-2)}
  .hq-nav .nlogo,.ngroup .ngt{display:none}
  .ngroup{display:flex;gap:var(--sp-2)}
  .nitem{flex:none;min-height:44px;border:1px solid var(--c-line)}
  .nitem.on{border-color:var(--c-primary)}
  .hq-body{flex-direction:column;padding:var(--sp-3)}
  .hq-side{width:auto;position:static}
}

/* SECTION: 表格（PC 表格 / 手机卡片化） */
.tbl-wrap{overflow-x:auto;background:var(--c-white);border:1px solid var(--c-line);
  border-radius:var(--rd-m);box-shadow:var(--sh-1)}
table.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-aux)}
.tbl th{background:var(--c-soft);text-align:left;padding:10px var(--sp-3);font-size:var(--fs-tag);
  color:var(--c-mute);font-weight:600;border-bottom:1px solid var(--c-line);white-space:nowrap}
.tbl td{padding:10px var(--sp-3);border-bottom:1px solid var(--c-line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl .acts{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:640px){
  .tbl thead{display:none}
  .tbl tr{display:block;border-bottom:1px solid var(--c-line);padding:var(--sp-2) var(--sp-3)}
  .tbl td{display:flex;justify-content:space-between;gap:var(--sp-3);border:0;padding:4px 0;text-align:right}
  .tbl td::before{content:attr(data-label);color:var(--c-mute);font-size:var(--fs-tag);flex:none;text-align:left}
  .tbl td.acts-cell{justify-content:flex-end}
}

/* SECTION: 仓库端 */
.depot-wrap{max-width:960px;margin:0 auto;padding:var(--sp-3) var(--sp-3) var(--sp-6)}
.depot-top{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) 0;flex-wrap:wrap}
.depot-top b{font-size:var(--fs-title)}
.depot-top .who{margin-left:auto;color:var(--c-mute);font-size:var(--fs-aux)}
.mega{background:linear-gradient(120deg,var(--c-primary),#4f8bff);color:var(--c-white);border-radius:var(--rd-m);
  padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-3);box-shadow:var(--sh-2)}
.mega .t{font-size:var(--fs-aux);opacity:.85}
.mega .n{font-size:var(--fs-num);font-weight:800}
.depot-tabs{display:flex;gap:var(--sp-2);overflow-x:auto;padding-bottom:var(--sp-3);scrollbar-width:none}
.depot-tabs::-webkit-scrollbar{display:none}

/* SECTION: misc */
.pill-tabs{display:flex;gap:var(--sp-2);overflow-x:auto;padding:2px 0 var(--sp-3);scrollbar-width:none}
.pill-tabs::-webkit-scrollbar{display:none}
.pill{flex:none;border:1px solid var(--c-line);background:var(--c-white);color:var(--c-mute);
  border-radius:999px;padding:8px 14px;font-size:var(--fs-body);cursor:pointer;min-height:36px}
.pill.on{background:var(--c-ink);border-color:var(--c-ink);color:var(--c-white);font-weight:600}
.searchbar{position:relative;margin-bottom:var(--sp-3)}
.searchbar input{width:100%;min-height:44px;border:1px solid var(--c-line);border-radius:var(--rd-s);
  background:var(--c-white);padding:0 12px 0 38px;font-size:16px;outline:none}
.searchbar input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-l)}
.searchbar .si{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--c-mute)}
.steps{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3)}
.step{flex:1;text-align:center;padding:var(--sp-2);border-radius:var(--rd-s);background:var(--c-white);
  border:1px solid var(--c-line);font-size:var(--fs-aux);color:var(--c-mute)}
.step.on{border-color:var(--c-primary);color:var(--c-primary);font-weight:600;background:var(--c-primary-l)}
.step.done{color:var(--c-ok);border-color:#bfe6cf;background:#f0faf4}
.freq{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.acct-card{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--rd-m);
  padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-2);display:flex;align-items:center;gap:var(--sp-3);box-shadow:var(--sh-1)}
.acct-card .av{width:42px;height:42px;border-radius:12px;background:var(--c-primary-l);color:var(--c-primary);
  display:grid;place-items:center;font-weight:700;font-size:16px;flex:none}
.acct-card .info{flex:1;min-width:0}
.acct-card .info b{display:block;font-size:var(--fs-body)}
.acct-card .info span{display:block;font-size:var(--fs-aux);color:var(--c-mute)}
.acct-card .ops{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media (prefers-reduced-motion:reduce){
  *{animation:none;transition:none}
}


/* SECTION: skeleton（P2：骨架屏组件类，页面切换等待时可用，不强塞假加载） */
.ds-skeleton{background:linear-gradient(90deg,#eef1f5 25%,#f7f9fb 50%,#eef1f5 75%);background-size:200% 100%;
  animation:sk 1.2s infinite;border-radius:var(--rd-s);min-height:16px}
@keyframes sk{from{background-position:200% 0}to{background-position:-200% 0}}
.sk-card{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--rd-m);padding:var(--sp-4);margin-bottom:var(--sp-3)}
.sk-line{height:14px;margin-bottom:10px}
.sk-line.w60{width:60%}.sk-line.w80{width:80%}.sk-line.w40{width:40%}
@media (prefers-reduced-motion:reduce){.ds-skeleton{animation:none}}


/* SECTION: linear icons（图标与文字基线、空态、菜单、底栏对齐） */
.licon{display:inline-block;vertical-align:-0.18em;flex:none}
.menu-item .mi{display:grid;place-items:center;width:20px;height:20px;color:var(--c-primary);opacity:.85}
.menu-item .mi .licon{width:20px;height:20px}
.menu-item .ma .licon{width:18px;height:18px}
.ds-empty .ico{display:grid;place-items:center;color:#9aa6b6}
.ds-empty .ico .licon{width:34px;height:34px}
.tabbtn .ti .licon{width:22px;height:22px}
.hbtn .licon,.btn .licon{vertical-align:-0.2em}
.navi .ti .licon{width:22px;height:22px}
