/* ============================================================
   订单系统 · 全局视觉规范
   （所有页面共用；打印小票 /print 用自己的样式，不受影响）
   ============================================================ */
:root{
  /* ---- 结构 / 中性色：所有配色共用，一般不用动 ---- */
  --panel:#ffffff;
  --text:#111827;
  --sub:#6b7280;
  --danger:#dc2626;
  --ok:#10b981;
  --warn:#f59e0b;
  --r:14px;
  --r-sm:9px;
  --shadow:0 1px 2px rgba(16,24,40,.04), 0 10px 24px -16px rgba(16,24,40,.30);

}

/* 中国红 · 默认配色（和下面 7 套一样，只覆盖「主题色」这一组变量） */
:root, :root[data-theme="red"]{
  /* ---- 配色方案：换主题 = 换这一组 ---- */
  --bg:#f6f4f3;
  --line:#eae3e1;
  --line-soft:#f4efed;
  --input-border:#e3d9d6;
  --soft:#faf6f5;
  --hover:#fdf8f7;
  --sum:#fdf3f3;
  --tab-bg:#f0e8e6;
  --brand:#c1121f;
  --brand-d:#9a0b14;
  --brand-l:#fdecec;
  --brand-m:#f2c0c3;
  --brand-glow:rgba(193,18,31,1);
  --grad:linear-gradient(135deg,#d81f2a,#a10a12);
  --grad-hover:linear-gradient(135deg,#c8182a,#8c0810);
  --ring:0 0 0 3px rgba(193,18,31,.12);
  --focus-border:#e2a2a6;
  --topbar:linear-gradient(135deg,#2a0b0e 0%,#451116 58%,#6b171d 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(216,31,42,.55),rgba(216,31,42,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(122,18,25,.55),rgba(122,18,25,0) 60%),
    linear-gradient(135deg,#2a0b0e,#451116 58%,#7d1418);
  --sheet-head:linear-gradient(135deg,#2a0b0e,#7d1418);
  --panel-soft:#fbf7f6;
  --sheet-line:#eae3e1;
}

/* ============================================================
   可选配色方案（管理后台 → 设置 → 系统配色）
   每个方案只覆盖上面那一组变量，结构色不动
   ============================================================ */

/* 藏青 */
:root[data-theme="navy"]{
  --bg:#f4f6fb;--line:#e2e8f2;--line-soft:#eef2f9;--input-border:#dbe2ef;
  --soft:#f6f8fc;--hover:#f8fafd;--sum:#eaf0fc;--tab-bg:#e6ecf7;
  --brand:#1d4ed8;--brand-d:#14359c;--brand-l:#e7eefc;--brand-m:#b3c6f0;
  --brand-glow:rgba(29,78,216,1);
  --grad:linear-gradient(135deg,#2b5fe0,#17389f);
  --grad-hover:linear-gradient(135deg,#2554d2,#12308d);
  --ring:0 0 0 3px rgba(29,78,216,.13);--focus-border:#a8bdea;
  --topbar:linear-gradient(135deg,#0a1430 0%,#132247 58%,#1e3a7a 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(43,95,224,.55),rgba(43,95,224,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(20,53,156,.6),rgba(20,53,156,0) 60%),
    linear-gradient(135deg,#0b1738,#1a2c58 58%,#26468f);
  --sheet-head:linear-gradient(135deg,#0a1430,#1e3a7a);
  --panel-soft:#f5f8fd;--sheet-line:#e2e8f2;
}

/* 墨绿 */
:root[data-theme="green"]{
  --bg:#f3f7f4;--line:#e0eae3;--line-soft:#eef5f0;--input-border:#d8e5dc;
  --soft:#f5f9f6;--hover:#f8fbf9;--sum:#e9f6ee;--tab-bg:#e5f0e9;
  --brand:#0f7a45;--brand-d:#0a5c33;--brand-l:#e7f7ee;--brand-m:#a9d8bd;
  --brand-glow:rgba(15,122,69,1);
  --grad:linear-gradient(135deg,#0e7f47,#0a5c33);
  --grad-hover:linear-gradient(135deg,#0b7440,#08512c);
  --ring:0 0 0 3px rgba(15,122,69,.13);--focus-border:#9cd3b4;
  --topbar:linear-gradient(135deg,#04140c 0%,#0b2b1a 58%,#10492c 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(24,154,86,.55),rgba(24,154,86,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(10,92,51,.6),rgba(10,92,51,0) 60%),
    linear-gradient(135deg,#04140c,#0b2b1a 58%,#0e5735);
  --sheet-head:linear-gradient(135deg,#04140c,#0e5735);
  --panel-soft:#f4faf6;--sheet-line:#e0eae3;
}

/* 青碧 */
:root[data-theme="teal"]{
  --bg:#f2f7f9;--line:#dee9ed;--line-soft:#edf4f7;--input-border:#d5e2e7;
  --soft:#f5f9fb;--hover:#f8fbfc;--sum:#e8f4f8;--tab-bg:#e4eff2;
  --brand:#0e7490;--brand-d:#0b5a70;--brand-l:#e6f6fa;--brand-m:#a5d3e0;
  --brand-glow:rgba(14,116,144,1);
  --grad:linear-gradient(135deg,#10778f,#0a5f76);
  --grad-hover:linear-gradient(135deg,#0e6c81,#08505f);
  --ring:0 0 0 3px rgba(14,116,144,.13);--focus-border:#9ecfdd;
  --topbar:linear-gradient(135deg,#05161c 0%,#0b2b33 58%,#0e4553 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(18,144,174,.55),rgba(18,144,174,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(10,95,118,.6),rgba(10,95,118,0) 60%),
    linear-gradient(135deg,#05161c,#0b2b33 58%,#0f4d5e);
  --sheet-head:linear-gradient(135deg,#05161c,#0f4d5e);
  --panel-soft:#f3f8fa;--sheet-line:#dee9ed;
}

/* 紫罗兰 */
:root[data-theme="purple"]{
  --bg:#f7f5fb;--line:#e7e1f2;--line-soft:#f1eef8;--input-border:#ded6ee;
  --soft:#f8f6fc;--hover:#faf9fd;--sum:#f0eafd;--tab-bg:#ece6f8;
  --brand:#7c3aed;--brand-d:#5f27c4;--brand-l:#f1e9fe;--brand-m:#cbb2f5;
  --brand-glow:rgba(124,58,237,1);
  --grad:linear-gradient(135deg,#8b47f2,#6a2ed0);
  --grad-hover:linear-gradient(135deg,#7c3ae4,#5b26bd);
  --ring:0 0 0 3px rgba(124,58,237,.14);--focus-border:#c3a8f5;
  --topbar:linear-gradient(135deg,#170a2e 0%,#2a1152 58%,#42197e 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(139,71,242,.55),rgba(139,71,242,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(95,39,196,.6),rgba(95,39,196,0) 60%),
    linear-gradient(135deg,#150a2b,#2a1152 58%,#4a1d8c);
  --sheet-head:linear-gradient(135deg,#170a2e,#4a1d8c);
  --panel-soft:#f7f5fc;--sheet-line:#e7e1f2;
}

/* 琥珀金 */
:root[data-theme="amber"]{
  --bg:#f8f5f1;--line:#eae2d9;--line-soft:#f4efea;--input-border:#e3d8cb;
  --soft:#faf7f3;--hover:#fcfaf7;--sum:#f9f0e4;--tab-bg:#f1e9df;
  --brand:#b45309;--brand-d:#8a3f05;--brand-l:#fdf0e2;--brand-m:#e8c79c;
  --brand-glow:rgba(180,83,9,1);
  --grad:linear-gradient(135deg,#b65c0b,#9a4a06);
  --grad-hover:linear-gradient(135deg,#a8540a,#884105);
  --ring:0 0 0 3px rgba(180,83,9,.14);--focus-border:#e6bc8e;
  --topbar:linear-gradient(135deg,#1d0f03 0%,#3a1e06 58%,#5e3208 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(201,105,15,.55),rgba(201,105,15,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(154,74,6,.6),rgba(154,74,6,0) 60%),
    linear-gradient(135deg,#1b0e03,#3a1e06 58%,#6b3a09);
  --sheet-head:linear-gradient(135deg,#1d0f03,#6b3a09);
  --panel-soft:#faf7f3;--sheet-line:#eae2d9;
}

/* 石墨黑 */
:root[data-theme="graphite"]{
  --bg:#f5f6f8;--line:#e4e7ec;--line-soft:#eff1f4;--input-border:#d9dde4;
  --soft:#f7f8fa;--hover:#fafbfc;--sum:#eef0f4;--tab-bg:#e9ebf0;
  --brand:#374151;--brand-d:#1f2937;--brand-l:#eef1f5;--brand-m:#c3cad4;
  --brand-glow:rgba(55,65,81,1);
  --grad:linear-gradient(135deg,#48566b,#232c39);
  --grad-hover:linear-gradient(135deg,#3f4c60,#1b232e);
  --ring:0 0 0 3px rgba(55,65,81,.13);--focus-border:#b0b9c6;
  --topbar:linear-gradient(135deg,#0b0f16 0%,#161d27 58%,#232d3b 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(72,86,107,.55),rgba(72,86,107,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(35,44,57,.6),rgba(35,44,57,0) 60%),
    linear-gradient(135deg,#0a0e14,#161d27 58%,#26313f);
  --sheet-head:linear-gradient(135deg,#0b0f16,#26313f);
  --panel-soft:#f7f8fa;--sheet-line:#e4e7ec;
}

/* 樱花粉 */
:root[data-theme="pink"]{
  --bg:#f9f5f7;--line:#ede2e7;--line-soft:#f6eef2;--input-border:#e6d6dd;
  --soft:#fbf7f9;--hover:#fdfafb;--sum:#fceef4;--tab-bg:#f3e8ed;
  --brand:#c2185b;--brand-d:#99124a;--brand-l:#fdeaf2;--brand-m:#f2bdd3;
  --brand-glow:rgba(194,24,91,1);
  --grad:linear-gradient(135deg,#d3236a,#a3114f);
  --grad-hover:linear-gradient(135deg,#c11f63,#8f0f45);
  --ring:0 0 0 3px rgba(194,24,91,.13);--focus-border:#f0a7c6;
  --topbar:linear-gradient(135deg,#2b0616 0%,#4d0c27 58%,#7a1440 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(211,35,106,.55),rgba(211,35,106,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(163,17,79,.6),rgba(163,17,79,0) 60%),
    linear-gradient(135deg,#2a0615,#4d0c27 58%,#8a1748);
  --sheet-head:linear-gradient(135deg,#2b0616,#8a1748);
  --panel-soft:#fbf6f8;--sheet-line:#ede2e7;
}
/* ============================================================
   柔和配色（低饱和，不刺眼）
   ============================================================ */

/* 雾蓝 */
:root[data-theme="mist"]{
  --bg:#f5f7f9;--line:#e4e9ef;--line-soft:#eef2f6;--input-border:#dbe2ea;
  --soft:#f7f9fb;--hover:#fafbfd;--sum:#edf2f7;--tab-bg:#e8eef4;
  --brand:#5b7899;--brand-d:#456079;--brand-l:#eef3f8;--brand-m:#c4d2e0;
  --brand-glow:rgba(91,120,153,1);
  --grad:linear-gradient(135deg,#6a89aa,#4b6682);
  --grad-hover:linear-gradient(135deg,#5f7d9d,#425b74);
  --ring:0 0 0 3px rgba(91,120,153,.10);--focus-border:#bed0e2;
  --topbar:linear-gradient(135deg,#141c26 0%,#223040 58%,#33465c 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(91,120,153,.32),rgba(91,120,153,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(58,80,102,.38),rgba(58,80,102,0) 60%),
    linear-gradient(135deg,#121a23,#223040 58%,#3b5169);
  --sheet-head:linear-gradient(135deg,#141c26,#33465c);
  --panel-soft:#f7f9fb;--sheet-line:#e4e9ef;
}

/* 豆沙 */
:root[data-theme="clay"]{
  --bg:#f8f4f2;--line:#eae0dc;--line-soft:#f4ece9;--input-border:#e5d6d0;
  --soft:#faf6f4;--hover:#fcf9f8;--sum:#f8ece8;--tab-bg:#f2e7e2;
  --brand:#a2715f;--brand-d:#83584a;--brand-l:#f9eeea;--brand-m:#dfc5ba;
  --brand-glow:rgba(162,113,95,1);
  --grad:linear-gradient(135deg,#ad7c69,#8b5f4f);
  --grad-hover:linear-gradient(135deg,#a1715f,#7d5344);
  --ring:0 0 0 3px rgba(162,113,95,.10);--focus-border:#dcc0b4;
  --topbar:linear-gradient(135deg,#21140f 0%,#3a2620 58%,#55392f 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(173,124,105,.32),rgba(173,124,105,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(139,95,79,.38),rgba(139,95,79,0) 60%),
    linear-gradient(135deg,#1f130f,#3a2620 58%,#5f4136);
  --sheet-head:linear-gradient(135deg,#21140f,#55392f);
  --panel-soft:#faf6f4;--sheet-line:#eae0dc;
}

/* 橄榄 */
:root[data-theme="olive"]{
  --bg:#f6f6f1;--line:#e7e7db;--line-soft:#f1f2ea;--input-border:#dfe1d2;
  --soft:#f8f8f4;--hover:#fbfbf7;--sum:#eef0e2;--tab-bg:#eaecdf;
  --brand:#6c7a4e;--brand-d:#54603c;--brand-l:#f0f2e4;--brand-m:#c8cfab;
  --brand-glow:rgba(108,122,78,1);
  --grad:linear-gradient(135deg,#78875a,#5c6a41);
  --grad-hover:linear-gradient(135deg,#6d7c4f,#515e39);
  --ring:0 0 0 3px rgba(108,122,78,.10);--focus-border:#c4cba4;
  --topbar:linear-gradient(135deg,#151a10 0%,#262e1c 58%,#3b472a 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(120,135,90,.32),rgba(120,135,90,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(92,106,65,.38),rgba(92,106,65,0) 60%),
    linear-gradient(135deg,#141910,#262e1c 58%,#44522f);
  --sheet-head:linear-gradient(135deg,#151a10,#3b472a);
  --panel-soft:#f8f8f4;--sheet-line:#e7e7db;
}

/* 燕麦 */
:root[data-theme="sand"]{
  --bg:#f8f6f1;--line:#eae4d8;--line-soft:#f4f0e7;--input-border:#e4dccb;
  --soft:#faf8f3;--hover:#fcfbf7;--sum:#f7f0e2;--tab-bg:#f1ebdd;
  --brand:#8f7a5b;--brand-d:#705f45;--brand-l:#f6f1e6;--brand-m:#d9cbb2;
  --brand-glow:rgba(143,122,91,1);
  --grad:linear-gradient(135deg,#9b8665,#7a6849);
  --grad-hover:linear-gradient(135deg,#8f7a5b,#6b5a3f);
  --ring:0 0 0 3px rgba(143,122,91,.10);--focus-border:#d6c7ab;
  --topbar:linear-gradient(135deg,#1d1810 0%,#332b1f 58%,#4b4030 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(155,134,101,.32),rgba(155,134,101,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(122,104,73,.38),rgba(122,104,73,0) 60%),
    linear-gradient(135deg,#1b160f,#332b1f 58%,#52452f);
  --sheet-head:linear-gradient(135deg,#1d1810,#4b4030);
  --panel-soft:#faf8f3;--sheet-line:#eae4d8;
}

/* 青灰 */
:root[data-theme="steel"]{
  --bg:#f4f7f7;--line:#e1e9e9;--line-soft:#edf3f3;--input-border:#d7e2e2;
  --soft:#f6f9f9;--hover:#fafcfc;--sum:#e9f2f1;--tab-bg:#e6eeed;
  --brand:#4f7376;--brand-d:#3c5a5d;--brand-l:#ecf4f3;--brand-m:#b7cecc;
  --brand-glow:rgba(79,115,118,1);
  --grad:linear-gradient(135deg,#5c8285,#436367);
  --grad-hover:linear-gradient(135deg,#53787b,#3a5659);
  --ring:0 0 0 3px rgba(79,115,118,.10);--focus-border:#b0cac9;
  --topbar:linear-gradient(135deg,#0d1718 0%,#1c2d2f 58%,#2c4548 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(92,130,133,.32),rgba(92,130,133,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(67,99,103,.38),rgba(67,99,103,0) 60%),
    linear-gradient(135deg,#0c1617,#1c2d2f 58%,#315055);
  --sheet-head:linear-gradient(135deg,#0d1718,#2c4548);
  --panel-soft:#f6f9f9;--sheet-line:#e1e9e9;
}

/* 藕荷 */
:root[data-theme="lilac"]{
  --bg:#f7f4f8;--line:#e9e2ec;--line-soft:#f3eef5;--input-border:#e2d8e7;
  --soft:#f9f6fa;--hover:#fcfafd;--sum:#f2eaf5;--tab-bg:#ece4f0;
  --brand:#7f6a8a;--brand-d:#665471;--brand-l:#f4eef7;--brand-m:#d5c7dd;
  --brand-glow:rgba(127,106,138,1);
  --grad:linear-gradient(135deg,#8b7697,#6f5c7b);
  --grad-hover:linear-gradient(135deg,#816c8d,#64526f);
  --ring:0 0 0 3px rgba(127,106,138,.10);--focus-border:#d2c3da;
  --topbar:linear-gradient(135deg,#171320 0%,#2b2436 58%,#41374f 100%);
  --login-bg:
    radial-gradient(900px 520px at 12% -12%,rgba(139,118,151,.32),rgba(139,118,151,0) 62%),
    radial-gradient(700px 520px at 105% 110%,rgba(111,92,123,.38),rgba(111,92,123,0) 60%),
    linear-gradient(135deg,#16121e,#2b2436 58%,#4a3f59);
  --sheet-head:linear-gradient(135deg,#171320,#41374f);
  --panel-soft:#f9f6fa;--sheet-line:#e9e2ec;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--text);
  font:14px/1.65 "Microsoft YaHei","PingFang SC","Segoe UI",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- 顶栏 ---------- */
header.top{
  background:var(--topbar);
  border-bottom:0;padding:11px 20px;color:#fff;
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  position:sticky;top:0;z-index:50;
  box-shadow:0 12px 26px -20px rgba(4,16,38,1);
}
header.top h1{margin:0;font-size:16.5px;font-weight:700;letter-spacing:.3px;color:#fff;display:flex;align-items:center;gap:10px}
header.top h1::before{
  content:"";width:44px;height:26px;flex:none;
  background:url("/logo.png") center/contain no-repeat;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.45));
}
header.top .sp{flex:1}
header.top .who{font-size:12.5px;color:#f4e2e0;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:20px;padding:3px 12px}
header.top .who:empty{display:none}
header.top .mini{color:#e8d2cf}
header.top button{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff}
header.top button:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.4)}

main{max-width:1240px;margin:0 auto;padding:20px 20px 90px}

/* ---------- 卡片 ---------- */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow)}
.panel>h2{
  margin:0 0 14px;font-size:15.5px;font-weight:700;color:#0f172a;
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  padding-left:13px;position:relative;
}
.panel>h2::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:16px;border-radius:3px;background:var(--grad)}
.panel>h2 .tag{font-weight:400;font-size:12.5px;color:var(--sub)}

/* ---------- 按钮 ---------- */
button{
  font:inherit;font-weight:500;padding:7px 14px;border:1px solid var(--line);background:#fff;
  color:#374151;border-radius:var(--r-sm);cursor:pointer;transition:.15s;
}
button:hover{border-color:var(--brand-m);background:var(--soft)}
button:active{transform:translateY(1px)}
button.primary{background:var(--grad);border-color:var(--brand-d);color:#fff;box-shadow:0 8px 18px -10px var(--brand-glow)}
button.primary:hover{background:var(--grad-hover);border-color:var(--brand-d)}
button.danger{color:var(--danger);border-color:#f2d5d5}
button.danger:hover{background:#fef6f6;border-color:#e9b9b9}
button.ok{background:linear-gradient(135deg,#22c55e,#0f9d58);border-color:#0f9d58;color:#fff;box-shadow:0 8px 18px -10px rgba(15,157,88,1)}
button.ok:hover{background:linear-gradient(135deg,#1eb455,#0b8a4b)}
button.sm{padding:4px 10px;font-size:12.5px;border-radius:8px}
button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}

/* ---------- 表单 ---------- */
input,select,textarea{
  font:inherit;padding:7px 11px;border:1px solid var(--input-border);border-radius:var(--r-sm);
  background:#fff;color:var(--text);width:100%;transition:.15s;
}
input::placeholder,textarea::placeholder{color:#9aa4b2}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus-border);box-shadow:var(--ring)}
select{cursor:pointer}
label.f{display:block;margin-bottom:12px}
label.f>span{display:block;font-size:12.5px;color:var(--sub);margin-bottom:5px;font-weight:500}

/* ---------- 表格 ---------- */
table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
th,td{border:0;border-bottom:1px solid var(--line-soft);padding:9px 12px;text-align:center;vertical-align:middle}
th{background:var(--soft);color:#5b6675;font-weight:600;font-size:12.5px;white-space:nowrap;border-bottom:1px solid var(--line)}
tbody tr:hover td{background:var(--hover)}
tbody tr:last-child td{border-bottom:0}
td.left,th.left{text-align:left}
tr.sum td,tr.sum th{background:var(--sum);font-weight:700}

/* ---------- 布局小件 ---------- */
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.row.end{justify-content:flex-end}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}

/* ---------- 页签（胶囊） ---------- */
.tabs{display:inline-flex;gap:5px;flex-wrap:wrap;margin-bottom:16px;background:var(--tab-bg);padding:5px;border-radius:12px;max-width:100%}
.tabs button{border:0;background:transparent;color:#4b5563;font-weight:600;font-size:13.5px;border-radius:9px;padding:6px 15px;box-shadow:none}
.tabs button:hover{background:rgba(255,255,255,.85);color:#111827}
.tabs button.on{background:#fff;color:var(--brand-d);box-shadow:0 1px 2px rgba(16,24,40,.10),0 8px 18px -12px rgba(16,24,40,.9)}

/* ---------- 提示 / 徽章 ---------- */
.empty{color:var(--sub);font-size:13px;padding:16px 2px;text-align:center}
.mini{font-size:12.5px;color:var(--sub)}
.badge{display:inline-block;font-size:12px;padding:2px 9px;border-radius:20px;background:#eef1f4;color:#4b5563;font-weight:600}
.badge.pending{background:#fff3e2;color:#b45309}
.badge.producing{background:var(--brand-l);color:var(--brand-d)}
.badge.done{background:#e7f8ef;color:#0f7b45}
.badge.cancelled{background:#f4f4f5;color:#6b7280;text-decoration:line-through}
.toast{
  position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:#111827;color:#fff;
  padding:10px 20px;border-radius:11px;font-size:13.5px;opacity:0;transition:.25s;
  pointer-events:none;z-index:999;box-shadow:0 16px 34px -14px rgba(16,24,40,.8);
}
.toast.on{opacity:1}
.toast.err{background:var(--danger)}

/* ---------- KPI 数字卡（管理后台 / 工厂端共用） ---------- */
.kpis{display:flex;gap:13px;flex-wrap:wrap;margin-bottom:16px}
.kpis>div,.kpis>.k{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:13px 22px;min-width:112px;box-shadow:var(--shadow);
  position:relative;overflow:hidden;
}
.kpis>div::before,.kpis>.k::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--grad)}
.kpis>div b,.kpis>.k b{display:block;font-size:22px;font-weight:800;letter-spacing:.3px;line-height:1.35}
.kpis>div span,.kpis>.k span{font-size:12px;color:var(--sub)}
.kpis>.k.hot::before{background:linear-gradient(180deg,#fbbf24,#f59e0b)}
.kpis>.k.prod::before{background:var(--grad)}
.kpis>.k.done::before{background:linear-gradient(180deg,#34d399,#10b981)}

/* ---------- 弹窗 ---------- */
.mask{position:fixed;left:0;right:0;top:0;bottom:0;background:rgba(15,23,42,.5);display:none;z-index:200;padding:16px;overflow:auto;backdrop-filter:blur(2px)}
.mask.on{display:block}
.modal{background:#fff;border-radius:var(--r);max-width:660px;margin:26px auto;padding:20px;box-shadow:0 30px 70px -25px rgba(2,10,30,.55);border:1px solid rgba(255,255,255,.7)}

/* ---------- 登录页 ---------- */
.login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:var(--login-bg);
}
.login-box{
  background:#fff;border-radius:16px;padding:30px 26px;width:100%;max-width:360px;
  box-shadow:0 30px 70px -22px rgba(3,12,32,.8);
}
.login-box .login-logo{display:block;width:210px;max-width:80%;height:auto;margin:2px auto 24px}
.login-box .err{color:var(--danger);font-size:13px;min-height:18px;margin-top:8px;text-align:center}

.w110{width:110px}

@media (max-width:640px){
  main{padding:14px 12px 80px}
  .panel{padding:14px;border-radius:12px}
  header.top{padding:10px 12px}
  .tabs{display:flex;width:100%}
  .tabs button{flex:1 1 auto;text-align:center;padding:6px 10px}
  .row{gap:8px}
  .row>input:not([type=checkbox]):not([type=radio]),.row>select{flex:1 1 130px;width:auto}
}

/* 手机上把宽表格改成一张张卡片：给表格加 class="resp"，每格加 data-l="列名" */
@media (max-width:760px){
  table.resp{display:block;border:0;border-radius:0;font-size:13.5px}
  table.resp thead{display:none}
  table.resp tbody{display:block}
  table.resp tr{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:3px 0;box-shadow:0 1px 2px rgba(16,24,40,.03)}
  table.resp tbody tr:hover td{background:transparent}
  table.resp td{display:flex;align-items:center;gap:12px;justify-content:space-between;text-align:right;border-bottom:1px dashed var(--line-soft);padding:8px 12px}
  table.resp td:last-child{border-bottom:0}
  table.resp td::before{content:attr(data-l);flex:none;color:var(--sub);font-size:12.5px;font-weight:600;text-align:left}
  table.resp td.left{text-align:right}
  table.resp td:empty{display:none}
  table.resp td input,table.resp td select{width:100%;max-width:210px;text-align:right}
  table.resp td.buttonish,table.resp td:last-child{justify-content:flex-end}
  table.resp td>button{margin-left:6px}
}

/* 订单列表里的备注：一行放不下就用省略号，鼠标停上去看全文 */
.ordnote{display:inline-block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;color:var(--sub)}
@media (max-width:760px){.ordnote{display:block;max-width:100%;white-space:normal;overflow:visible;text-align:right}}
@media print{
  header.top,.no-print{display:none!important}
  body{background:#fff}
  main{max-width:none;padding:0}
  .panel{border:0;padding:0;margin:0;box-shadow:none}
}

/* ---------- 分页条 ---------- */
.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px;margin-top:16px}
.pager .mini{margin:0 4px}
/* ---------- 公告 ---------- */
.ann-dot{display:inline-block;min-width:16px;height:16px;line-height:16px;padding:0 4px;margin-left:6px;
  background:#ff3b30;color:#fff;border-radius:9px;font-size:11px;font-weight:700;text-align:center;font-style:normal;
  box-shadow:0 0 0 2px rgba(255,255,255,.35)}
.ann-mask{position:fixed;left:0;right:0;top:0;bottom:0;background:rgba(15,23,42,.5);display:none;z-index:300;
  padding:16px;overflow:auto;backdrop-filter:blur(2px)}
.ann-mask.on{display:block}
.ann-box{background:#fff;border-radius:var(--r);max-width:620px;margin:22px auto;box-shadow:0 30px 70px -25px rgba(2,10,30,.55);
  border:1px solid var(--line);overflow:hidden}
.ann-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--soft)}
.ann-head .sp{flex:1}
.ann-head b{font-size:15.5px}
.ann-list{max-height:66vh;overflow:auto;padding:6px 0}
.ann-item{padding:13px 16px;border-bottom:1px dashed var(--line-soft)}
.ann-item:last-child{border-bottom:0}
.ann-item.unread{background:var(--brand-l);box-shadow:inset 3px 0 0 var(--brand)}
.ann-t{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:5px}
.ann-t b{font-size:14.5px;font-weight:700}
.ann-pin{background:var(--brand);color:#fff;font-size:11px;font-weight:700;border-radius:5px;padding:1px 6px;flex:none}
.ann-new{background:#ff3b30;color:#fff;font-size:11px;font-weight:700;border-radius:5px;padding:1px 6px;flex:none}
.ann-c{font-size:13.5px;line-height:1.7;white-space:pre-wrap;word-break:break-word;color:var(--text)}
.ann-m{margin-top:7px;font-size:12px;color:var(--sub)}
/* ---------- 品牌 logo ---------- */
/* BRAND-LOGO-BEGIN */
.sheet-head .sheet-logo{width:56px;height:28px;flex:none;display:inline-block;background:url(data:image/png;base64,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) center/contain no-repeat}
/* BRAND-LOGO-END */

/* ============================================================
   左侧卷帘菜单（门店端 / 工厂端 / 管理后台 / 车间扫码 共用）
   ============================================================ */
:root{--side-w:236px;--side-w-min:74px;--side-ease:cubic-bezier(.4,0,.2,1)}

body.has-side{padding-left:var(--side-w);transition:padding-left .26s var(--side-ease)}
body.has-side.side-mini{padding-left:var(--side-w-min)}
body.has-side header.top h1::before{display:none}

.side{
  position:fixed;left:0;top:0;bottom:0;width:var(--side-w);z-index:130;
  display:flex;flex-direction:column;color:#fff;background:var(--topbar);
  box-shadow:10px 0 34px -22px rgba(0,0,0,.9);
  transition:width .26s var(--side-ease);overflow:hidden;
}
.side::before{
  content:"";position:absolute;left:0;right:0;top:0;height:280px;pointer-events:none;
  background:radial-gradient(320px 200px at 0% 0%,rgba(255,255,255,.16),rgba(255,255,255,0) 72%);
}
.side>*{position:relative;z-index:1}
body.side-mini .side{width:var(--side-w-min)}

.side-brand{display:flex;align-items:center;gap:10px;padding:15px 12px 11px;flex:none}
.side-logo{width:56px;height:40px;flex:none;border-radius:10px;background:#fff;padding:4px 6px;object-fit:contain;
  box-shadow:0 10px 22px -13px rgba(0,0,0,.95)}
.side-brand-text{min-width:0;flex:1}
.side-brand-text b{display:block;font-size:15px;font-weight:800;letter-spacing:.6px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-brand-text u{display:block;font-size:11px;color:rgba(255,255,255,.5);text-decoration:none;letter-spacing:.5px;margin-top:1px;white-space:nowrap}
.side-fold{
  flex:none;width:27px;height:27px;padding:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.8);box-shadow:none;
}
.side-fold:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.3);color:#fff}
.side-fold svg{width:14px;height:14px;transition:transform .26s var(--side-ease)}
body.side-mini .side-fold svg{transform:rotate(180deg)}
body.side-mini .side-brand{flex-direction:column;gap:6px;padding:12px 0 6px}
body.side-mini .side-logo{width:46px;height:36px;padding:4px}
body.side-mini .side-brand-text{display:none}

.side-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 9px 12px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
.side-scroll::-webkit-scrollbar{width:6px}
.side-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:6px}
.side-scroll::-webkit-scrollbar-track{background:transparent}
.side-lab{font-size:11px;font-weight:600;letter-spacing:1.5px;color:rgba(255,255,255,.4);padding:12px 12px 7px;white-space:nowrap}
body.side-mini .side-lab{height:1px;padding:0;margin:11px 12px;overflow:hidden;background:rgba(255,255,255,.14);font-size:0}
.side-sep{height:1px;margin:10px;background:rgba(255,255,255,.14)}

.side .tabs,.side .side-nav{display:flex;flex-direction:column;width:100%;gap:3px;
  background:transparent;padding:0;margin:0;border-radius:0;max-width:none}
.side .tabs button,.side .nav-item{
  display:flex;align-items:center;gap:10px;width:100%;flex:none;min-height:38px;
  padding:8px 11px;border:0;border-radius:10px;background:transparent;box-shadow:none;
  color:rgba(255,255,255,.76);font-size:13.5px;font-weight:600;line-height:1.3;
  text-align:left;justify-content:flex-start;white-space:nowrap;text-decoration:none;
  position:relative;transition:background .15s,color .15s;
}
.side .tabs button:hover,.side .nav-item:hover{background:rgba(255,255,255,.09);color:#fff;border-color:transparent;text-decoration:none}
.side .tabs button.on,.side .nav-item.on{background:rgba(255,255,255,.16);color:#fff}
.side .tabs button.on::after,.side .nav-item.on::after{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:17px;border-radius:0 4px 4px 0;background:#fff;opacity:.85;
}
.nav-ico{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;flex:none;opacity:.92}
.nav-ico svg{width:19px;height:19px}
.nav-t{min-width:0;overflow:hidden;text-overflow:ellipsis}

body.side-mini .side .tabs button,body.side-mini .side .nav-item{justify-content:center;padding:10px 0;gap:0}
body.side-mini .nav-t{display:none}

.side-foot{flex:none;display:flex;align-items:center;gap:9px;padding:11px 12px;
  border-top:1px solid rgba(255,255,255,.13);background:rgba(0,0,0,.12)}
.side-ava{width:30px;height:30px;flex:none;border-radius:50%;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;color:#fff}
.side .who{flex:1;min-width:0;font-size:12.5px;color:rgba(255,255,255,.85);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:0;padding:0}
.side #logout{
  margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:5px;
  padding:4px 9px;font-size:12px;border-radius:8px;box-shadow:none;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;
}
.side #logout:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.34)}
.side #logout svg{width:14px;height:14px}
body.side-mini .side-foot{flex-direction:column;gap:8px;padding:10px 0}
body.side-mini .side-ava{width:32px;height:32px}
body.side-mini .side .who{display:none}
body.side-mini .side #logout{margin-left:0;padding:0;width:34px;height:30px;justify-content:center}
body.side-mini .logout-t{display:none}

.side-toggle{display:none;flex:none;width:36px;height:32px;padding:7px 8px;margin-right:2px;
  border-radius:9px;flex-direction:column;justify-content:space-between;box-shadow:none}
.side-toggle span{display:block;height:2px;border-radius:2px;background:#fff}
.side-veil{position:fixed;left:0;right:0;top:0;bottom:0;z-index:125;display:none;
  background:rgba(10,14,22,.5);backdrop-filter:blur(2px)}

@media (max-width:1000px){
  body.has-side,body.has-side.side-mini{padding-left:0}
  .side{width:266px;transform:translateX(-100%);transition:transform .26s var(--side-ease);
    box-shadow:18px 0 50px -24px rgba(0,0,0,.85)}
  body.side-mini .side{width:266px}
  body.side-open .side{transform:none}
  body.side-open .side-veil{display:block}
  .side-toggle{display:flex}
  body.side-mini .side-brand{flex-direction:row;gap:10px;padding:15px 12px 11px}
  body.side-mini .side-brand-text{display:block}
  body.side-mini .side-foot{flex-direction:row;gap:9px;padding:11px 12px}
  body.side-mini .side .who{display:block}
  body.side-mini .side #logout{margin-left:auto;width:auto;height:auto;padding:4px 9px}
  body.side-mini .logout-t{display:inline}
  body.side-mini .side .tabs button,body.side-mini .side .nav-item{justify-content:flex-start;padding:9px 11px;gap:10px}
  body.side-mini .nav-t{display:inline}
  body.side-mini .side-lab{height:auto;padding:12px 12px 7px;margin:0;background:none;font-size:11px}
}

@media print{
  .side,.side-veil,.side-toggle{display:none!important}
  body.has-side,body.has-side.side-mini{padding-left:0!important}
}

@media (max-width:1000px){.side-fold{display:none}}
