/* ============================================================
   KEKE 干洗管家 · 模块视觉层 v2
   商业作品级质感：手写 SVG 图表 / 材质卡片 / 精细动效
   ============================================================ */

/* ========== Hero（作品集门面） ========== */
.hero{
  position:relative;overflow:hidden;border-radius:var(--r-xl);padding:28px 30px;margin-bottom:20px;
  background:
    radial-gradient(90% 130% at 88% -18%,rgba(201,170,109,.15),transparent 58%),
    radial-gradient(70% 100% at 12% 118%,rgba(42,111,186,.10),transparent 60%),
    linear-gradient(122deg,#161A20 0%,#1D222A 46%,#272E38 100%);
  color:#E9EFF5;border:1px solid #0D1219;
  box-shadow:0 1px 2px rgba(12,17,24,.34),0 16px 40px rgba(12,17,24,.18);
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:linear-gradient(135deg,rgba(0,0,0,.9),transparent 68%);
  -webkit-mask-image:linear-gradient(135deg,rgba(0,0,0,.9),transparent 68%);
}
.hero::after{
  content:"";position:absolute;right:-90px;bottom:-140px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,170,109,.13),transparent 66%);pointer-events:none;
}
.hero-inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.hero-l{max-width:660px}
.hero-kicker{
  font-size:10.5px;letter-spacing:2.6px;color:var(--gold-400);text-transform:uppercase;font-weight:700;
  display:flex;align-items:center;gap:9px;
}
.hero-kicker::before{content:"";width:22px;height:1px;background:linear-gradient(90deg,var(--gold-500),transparent)}
.hero-title{
  font-size:27px;font-weight:700;margin-top:12px;letter-spacing:.8px;color:#fff;line-height:1.3;
  text-shadow:0 2px 14px rgba(0,0,0,.28);
}
.hero-title em{font-style:normal;color:var(--gold-400)}
.hero-desc{font-size:13px;color:#A8B6C6;margin-top:11px;line-height:1.85;max-width:560px}
.hero-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}
.hero-tag{
  font-size:11px;padding:4px 11px;border-radius:20px;background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.10);color:#B9C6D4;letter-spacing:.3px;
}
.hero-r{display:flex;gap:32px;flex-wrap:wrap;padding-left:8px}
.hero-metric{min-width:96px;position:relative}
.hero-metric + .hero-metric::before{
  content:"";position:absolute;left:-16px;top:4px;bottom:4px;width:1px;
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.14),transparent);
}
.hero-metric .v{font-size:24px;font-weight:700;color:var(--gold-400);letter-spacing:-.6px;font-variant-numeric:tabular-nums}
.hero-metric .l{font-size:11px;color:#8996A6;margin-top:3px;letter-spacing:.3px}

/* ========== 快捷入口 ========== */
.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
@media (max-width:1180px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:660px){.quick-grid{grid-template-columns:1fr}}
.quick{
  display:flex;align-items:center;gap:13px;padding:15px 16px;border-radius:var(--r-lg);
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);cursor:pointer;
  transition:transform .24s var(--ease),box-shadow .24s var(--ease),border-color .24s var(--ease);
  position:relative;overflow:hidden;
}
.quick::after{
  content:"";position:absolute;inset:0;opacity:0;pointer-events:none;
  background:linear-gradient(120deg,rgba(201,170,109,.06),transparent 58%);transition:opacity .24s var(--ease);
}
.quick:hover{transform:translateY(-3px);box-shadow:var(--sh-3);border-color:var(--gold-200)}
.quick:hover::after{opacity:1}
.quick-ic{
  width:40px;height:40px;border-radius:11px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  background:var(--gold-50);border:1px solid var(--gold-100);color:var(--gold-700);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.quick-ic svg{width:19px;height:19px}
.quick-ic.blue{background:var(--info-bg);border-color:var(--info-bd);color:var(--info)}
.quick-ic.green{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok)}
.quick-ic.purple{background:var(--violet-bg);border-color:var(--violet-bd);color:var(--violet)}
.quick-ic.amber{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--warn)}
.quick-t{font-size:13.5px;font-weight:600;color:var(--ink-900);letter-spacing:.3px}
.quick-d{font-size:11.5px;color:var(--ink-400);margin-top:2px;line-height:1.5}
.quick-arrow{margin-left:auto;color:var(--ink-300);flex:0 0 auto;transition:transform .24s var(--ease),color .24s var(--ease)}
.quick:hover .quick-arrow{transform:translateX(3px);color:var(--gold-600)}
.quick-arrow svg{width:16px;height:16px}

/* ========== 导览 ========== */
.guide-step{display:flex;gap:13px;padding:13px 0;border-bottom:1px dashed var(--line-soft)}
.guide-step:last-child{border-bottom:0}
.guide-n{
  width:27px;height:27px;border-radius:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,var(--gold-100),var(--gold-50));color:var(--gold-800);font-weight:700;font-size:12px;
  border:1px solid var(--gold-200);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.guide-t{font-size:13.5px;font-weight:600;color:var(--ink-900)}
.guide-d{font-size:12px;color:var(--ink-500);margin-top:3px;line-height:1.65}
.guide-go{margin-top:9px}
.guide-go .btn{cursor:pointer}

/* ========== 图表 ========== */
.chart-wrap{position:relative;width:100%}
.chart-svg{display:block;width:100%;overflow:visible}
.chart-svg .grid-line{stroke:var(--line-soft);stroke-width:1}
.chart-svg .axis-line{stroke:var(--line);stroke-width:1}
.chart-svg .axis-text{fill:var(--ink-400);font-size:10.5px;font-family:var(--font);letter-spacing:.3px}
.chart-svg .bar{transition:opacity .16s,filter .16s}
.chart-svg .bar:hover{filter:brightness(1.08)}
.chart-svg .line{fill:none;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.chart-svg .pt{stroke:#fff;stroke-width:2;transition:r .16s var(--ease)}
.chart-svg .hit{fill:transparent;cursor:crosshair}
.chart-svg .hit:hover ~ .pt{ }
.chart-tip{
  position:absolute;pointer-events:none;background:rgba(15,20,28,.94);color:#fff;font-size:11.5px;
  padding:7px 10px;border-radius:8px;box-shadow:var(--sh-3);white-space:nowrap;z-index:6;
  transform:translate(-50%,-138%);opacity:0;transition:opacity .14s;backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.08);
}
.chart-tip.on{opacity:1}
.chart-tip b{font-variant-numeric:tabular-nums;font-weight:700;color:var(--gold-400)}
.chart-tip .t{color:#9DAABA;margin-right:6px}

.legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;padding-top:13px;border-top:1px dashed var(--line-soft)}
.legend-item{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-600)}
.legend-dot{width:9px;height:9px;border-radius:3px;flex:0 0 auto;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.legend-item .v{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink-900)}

.donut-wrap{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.donut{position:relative;flex:0 0 auto;border-radius:50%;box-shadow:0 6px 24px rgba(16,24,40,.14),inset 0 0 0 1px rgba(255,255,255,.3)}
.donut::before{
  content:"";position:absolute;inset:27%;background:var(--surface);border-radius:50%;
  box-shadow:inset 0 1px 3px rgba(16,24,40,.10),0 0 0 1px rgba(16,24,40,.04);
}
.donut::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);pointer-events:none}
.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;z-index:2}
.donut-center .v{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-950);letter-spacing:-.6px}
.donut-center .l{font-size:11px;color:var(--ink-400);margin-top:2px;letter-spacing:.3px}
.donut-legend{flex:1;min-width:210px;display:flex;flex-direction:column;gap:10px}
.donut-legend-item{display:flex;align-items:center;gap:9px;font-size:12.5px}
.donut-legend-item .name{color:var(--ink-600);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.donut-legend-item .val{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink-900)}
.donut-legend-item .pct{font-variant-numeric:tabular-nums;color:var(--ink-400);width:46px;text-align:right;font-size:11.5px}

.hbar-row{display:flex;align-items:center;gap:12px;margin-bottom:11px;font-size:12.5px}
.hbar-row:last-child{margin-bottom:0}
.hbar-row .nm{width:96px;color:var(--ink-600);flex:0 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar-row .bar{flex:1;height:17px;background:var(--surface-3);border-radius:5px;overflow:hidden}
.hbar-row .bar > i{display:block;height:100%;border-radius:5px;transition:width .7s var(--ease)}
.hbar-row .vl{width:80px;text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink-900);flex:0 0 auto}

/* 迷你趋势条（统计页内联） */
.spark-row{display:flex;align-items:flex-end;gap:3px;height:36px}
.spark-row i{flex:1;background:linear-gradient(180deg,var(--gold-400),var(--gold-600));border-radius:2px 2px 0 0;opacity:.85;transition:opacity .15s}
.spark-row i:hover{opacity:1}

/* ========== 衣物选择器 ========== */
.picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:840px){.picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pick{
  border:1px solid var(--line);border-radius:var(--r-md);padding:11px 9px;cursor:pointer;text-align:center;
  background:var(--surface);transition:all .18s var(--ease);position:relative;
}
.pick:hover{border-color:var(--gold-400);background:var(--gold-50);transform:translateY(-1px)}
.pick.on{border-color:var(--gold-500);background:var(--gold-50);box-shadow:inset 0 0 0 1px rgba(201,170,109,.35)}
.pick .em{height:30px;display:flex;align-items:center;justify-content:center;color:var(--ink-400);transition:color .18s var(--ease)}
.pick:hover .em,.pick.on .em{color:var(--gold-700)}
.pick .nm{font-size:12.5px;font-weight:600;color:var(--ink-800);margin-top:7px}
.pick .pr{font-size:11px;color:var(--gold-700);font-variant-numeric:tabular-nums;margin-top:3px}
.pick .ck{position:absolute;top:6px;right:6px;width:17px;height:17px;border-radius:50%;background:var(--gold-600);
  color:#fff;display:none;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(120,92,40,.4)}
.pick .ck svg{width:10px;height:10px}
.pick.on .ck{display:flex}
.pick-cat{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:15px}

/* ========== 订单明细（弹窗内） ========== */
.item-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.item-tbl th{font-size:10.5px;color:var(--ink-500);font-weight:600;text-align:left;padding:7px 9px;
  border-bottom:1px solid var(--line);white-space:nowrap;letter-spacing:.4px;text-transform:uppercase}
.item-tbl td{padding:8px 9px;border-bottom:1px solid var(--line-soft);vertical-align:middle;color:var(--ink-700)}
.item-tbl tr:last-child td{border-bottom:0}
.item-tbl .rm{color:var(--ink-300);cursor:pointer;display:inline-flex;padding:3px;border-radius:5px;transition:all .15s}
.item-tbl .rm:hover{color:var(--danger);background:var(--danger-bg)}
.item-tbl .rm svg{width:13px;height:13px}
.item-tbl .n{font-weight:600;color:var(--ink-900)}
.item-tbl .num{text-align:right;font-variant-numeric:tabular-nums}

.sum-bar{
  display:flex;align-items:flex-end;justify-content:flex-end;gap:24px;padding:14px 16px;margin-top:14px;
  background:linear-gradient(180deg,var(--surface-2),var(--surface-3));border:1px solid var(--line);
  border-radius:var(--r-md);flex-wrap:wrap;
}
.sum-item{text-align:right}
.sum-item .l{font-size:11px;color:var(--ink-500);letter-spacing:.3px}
.sum-item .v{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-900);letter-spacing:-.3px}
.sum-item.total .v{font-size:24px;color:var(--gold-800);letter-spacing:-.8px}
.sum-item.total .l{color:var(--gold-800);font-weight:600}
.garment-tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}

/* ========== 会员卡 ========== */
.member-card{
  position:relative;border-radius:14px;padding:19px 20px;overflow:hidden;color:#EDEFF2;
  background:linear-gradient(132deg,#1B2027 0%,#272E37 42%,#373F49 72%,#4A535E 100%);
  box-shadow:0 1px 2px rgba(12,17,24,.28),0 12px 32px rgba(12,17,24,.20);min-height:162px;
  display:flex;flex-direction:column;justify-content:space-between;
  border:1px solid rgba(201,170,109,.32);
}
.member-card::before{
  content:"";position:absolute;inset:0;opacity:.55;pointer-events:none;
  background-image:repeating-linear-gradient(118deg,rgba(255,255,255,.05) 0 1px,transparent 1px 10px);
}
.member-card::after{
  content:"";position:absolute;right:-46px;top:-46px;width:190px;height:190px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,170,109,.20),transparent 68%);
}
.member-card.silver{background:linear-gradient(132deg,#191E25 0%,#272D35 44%,#39414A 76%,#4B545E 100%);border-color:rgba(255,255,255,.16)}
.member-card.diamond{background:linear-gradient(132deg,#151C25 0%,#212E3C 44%,#32445A 76%,#455D76 100%);border-color:rgba(146,182,218,.30)}
.member-card.plain{background:linear-gradient(132deg,#1A1F26 0%,#252B33 46%,#343B44 80%,#424A54 100%);border-color:rgba(255,255,255,.12)}
.mc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;position:relative;z-index:2}
.mc-level{font-size:11.5px;font-weight:700;letter-spacing:2px;color:var(--gold-400)}
.mc-discount{font-size:11px;opacity:.6;margin-top:3px;letter-spacing:.3px}
.mc-logo{opacity:.5;width:30px;filter:brightness(1.7) saturate(.4)}
.mc-name{font-size:20px;font-weight:700;letter-spacing:1px;position:relative;z-index:2;margin-top:14px}
.mc-phone{font-size:12.5px;opacity:.6;font-variant-numeric:tabular-nums;margin-top:4px;position:relative;z-index:2;letter-spacing:.6px}
.mc-foot{display:flex;gap:26px;position:relative;z-index:2;margin-top:15px;padding-top:13px;border-top:1px solid rgba(255,255,255,.09)}
.mc-foot .v{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.mc-foot .l{font-size:10.5px;opacity:.55;margin-top:2px;letter-spacing:.3px}

/* ========== 挂衣位 ========== */
.slot-map{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}
.slot{
  aspect-ratio:1;border-radius:5px;background:var(--surface-3);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-size:9.5px;color:var(--ink-300);
  font-variant-numeric:tabular-nums;transition:all .16s var(--ease);
}
.slot:hover{border-color:var(--gold-400);transform:scale(1.08)}
.slot.used{background:var(--gold-100);border-color:var(--gold-200);color:var(--gold-800);font-weight:700}
.slot.hold{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--warn);font-weight:700}
.slot.reserve{background:var(--info-bg);border-color:var(--info-bd);color:var(--info);font-weight:700}
.slot-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px}
.slot-legend span{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-500)}
.slot-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}

/* ========== 交班 ========== */
.shift-hero{
  display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 22px;
  border-radius:var(--r-lg);background:
    radial-gradient(80% 140% at 90% -20%,rgba(201,170,109,.16),transparent 60%),
    linear-gradient(122deg,#171C23,#2A323D);color:#E7ECF0;flex-wrap:wrap;box-shadow:var(--sh-2);
}
.shift-hero .l{font-size:11.5px;color:#8E9CAB;letter-spacing:.4px}
.shift-hero .v{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--gold-400);letter-spacing:-.8px;margin-top:2px}
.shift-hero .r{text-align:right}
.tally{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line-soft);border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line)}
@media (max-width:780px){.tally{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tally-cell{background:var(--surface);padding:13px 15px}
.tally-cell .l{font-size:11.5px;color:var(--ink-500);letter-spacing:.3px}
.tally-cell .v{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-950);margin-top:3px;letter-spacing:-.4px}

/* ========== 系统设置 ========== */
.set-item{
  display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;
  border-bottom:1px solid var(--line-soft);cursor:pointer;transition:background .16s var(--ease);
}
.set-item:last-child{border-bottom:0}
.set-item:hover{background:var(--gold-50)}
.set-item .sl{display:flex;align-items:center;gap:12px;min-width:0}
.set-item .si{
  width:33px;height:33px;border-radius:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  background:var(--gold-50);border:1px solid var(--gold-100);color:var(--gold-700);
}
.set-item .si svg{width:16px;height:16px}
.set-item .si.blue{background:var(--info-bg);border-color:var(--info-bd);color:var(--info)}
.set-item .si.green{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok)}
.set-item .si.purple{background:var(--violet-bg);border-color:var(--violet-bd);color:var(--violet)}
.set-item .si.amber{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--warn)}
.set-item .st{font-size:13.5px;font-weight:600;color:var(--ink-900);letter-spacing:.2px}
.set-item .sd{font-size:11.5px;color:var(--ink-400);margin-top:1px}
.set-item .sr{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.set-item .sr .val{font-size:12.5px;color:var(--ink-600);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.set-item .sr .chev{color:var(--ink-300);transition:transform .2s var(--ease)}
.set-item:hover .sr .chev{transform:translateX(3px);color:var(--gold-600)}
.set-item .sr .chev svg{width:15px;height:15px}

.price-table{width:100%;border-collapse:collapse;font-size:12.5px}
.price-table th{text-align:left;font-size:10.5px;color:var(--ink-500);font-weight:600;padding:9px 11px;border-bottom:1px solid var(--line);background:var(--surface-2);letter-spacing:.4px;text-transform:uppercase}
.price-table td{padding:9px 11px;border-bottom:1px solid var(--line-soft)}
.price-table tr:last-child td{border-bottom:0}
.price-table tr:hover td{background:var(--gold-50)}
.price-table .num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}

/* ========== 通知 ========== */
.alert-list{display:flex;flex-direction:column;gap:10px}
.alert-item{
  display:flex;gap:12px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line);
  background:var(--surface);cursor:pointer;transition:all .18s var(--ease);
}
.alert-item:hover{border-color:var(--gold-200);background:var(--gold-50);transform:translateX(2px)}
.alert-ic{width:30px;height:30px;border-radius:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.alert-ic svg{width:15px;height:15px}
.alert-ic.warn{background:var(--warn-bg);color:var(--warn)}
.alert-ic.danger{background:var(--danger-bg);color:var(--danger)}
.alert-ic.info{background:var(--info-bg);color:var(--info)}
.alert-ic.ok{background:var(--ok-bg);color:var(--ok)}
.alert-t{font-size:13px;font-weight:600;color:var(--ink-900)}
.alert-d{font-size:11.5px;color:var(--ink-500);margin-top:2px;line-height:1.55}

/* ========== 时间线 ========== */
.timeline{position:relative;padding-left:21px}
.timeline::before{content:"";position:absolute;left:5px;top:7px;bottom:7px;width:1.5px;background:linear-gradient(180deg,var(--line),var(--line-soft))}
.tl-item{position:relative;padding-bottom:16px}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{
  content:"";position:absolute;left:-19px;top:5px;width:10px;height:10px;border-radius:50%;
  background:var(--surface);border:2px solid var(--line-strong);box-shadow:0 0 0 3px var(--surface);
}
.tl-item.ok::before{border-color:var(--ok);background:var(--ok)}
.tl-item.warn::before{border-color:var(--warn);background:var(--warn)}
.tl-item.gold::before{border-color:var(--gold-500);background:var(--gold-500)}
.tl-t{font-size:13px;font-weight:600;color:var(--ink-900)}
.tl-d{font-size:11.5px;color:var(--ink-500);margin-top:3px}
.tl-time{font-size:11px;color:var(--ink-400);font-variant-numeric:tabular-nums;margin-top:3px}

/* ========== 检索结果 ========== */
.result-item{
  display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:var(--r-md);
  border:1px solid var(--line);cursor:pointer;background:var(--surface);transition:all .16s var(--ease);
}
.result-item:hover{border-color:var(--gold-400);background:var(--gold-50);transform:translateX(2px)}
.result-ic{width:31px;height:31px;border-radius:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  background:var(--surface-3);color:var(--ink-500)}
.result-ic svg{width:15px;height:15px}
.result-t{font-size:13px;font-weight:600;color:var(--ink-900)}
.result-d{font-size:11.5px;color:var(--ink-400);margin-top:2px}

/* ========== 打印预览 ========== */
.print-preview{background:linear-gradient(180deg,#EDF0F4,#E6EAEF);padding:24px;border-radius:var(--r-md);display:flex;justify-content:center;border:1px solid var(--line)}
.paper{
  width:278px;background:#fff;padding:15px 16px;font-family:var(--mono);font-size:11px;line-height:1.75;
  color:#1A1A1A;box-shadow:0 8px 26px rgba(16,24,40,.18);
}
.paper .ph{text-align:center;font-size:12.5px;font-weight:700;letter-spacing:1.5px}
.paper .ps{text-align:center;font-size:10px;color:#666;margin-top:3px}
.paper .psep{border-top:1px dashed #A8A8A8;margin:8px 0}
.paper .pline{display:flex;justify-content:space-between;gap:10px}
.paper .pline span:last-child{font-weight:600}
.paper .ptotal{display:flex;justify-content:space-between;font-size:13.5px;font-weight:700;margin-top:4px}
.paper .pfoot{text-align:center;color:#777;font-size:9.5px;margin-top:10px;line-height:1.65}

/* ========== 其它 ========== */
.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
@media (max-width:1180px){.split{grid-template-columns:minmax(0,1fr)}}
.mini-tbl{width:100%;border-collapse:collapse;font-size:12px}
.mini-tbl th{font-size:10.5px;color:var(--ink-500);font-weight:600;text-align:left;padding:7px 9px;border-bottom:1px solid var(--line);letter-spacing:.4px}
.mini-tbl td{padding:7px 9px;border-bottom:1px solid var(--line-soft);color:var(--ink-700)}
.mini-tbl tr:last-child td{border-bottom:0}
.mini-tbl .num{text-align:right;font-variant-numeric:tabular-nums}
.mini-tbl tr:hover td{background:var(--gold-50)}

.pill-row{display:flex;gap:7px;flex-wrap:wrap}
.pill{
  display:inline-flex;align-items:center;gap:6px;height:27px;padding:0 12px;border-radius:14px;
  border:1px solid var(--line-strong);background:var(--surface);font-size:12px;color:var(--ink-600);cursor:pointer;
  transition:all .16s var(--ease);user-select:none;
}
.pill:hover{border-color:var(--gold-400);color:var(--ink-900);transform:translateY(-1px)}
.pill.on{background:linear-gradient(180deg,var(--gold-400),var(--gold-600));border-color:var(--gold-700);color:#fff;font-weight:600;box-shadow:var(--sh-gold)}
.pill.on:hover{background:linear-gradient(180deg,var(--gold-300),var(--gold-500))}

.flow-note{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-400);padding:9px 0 0;flex-wrap:wrap}
.flow-note b{color:var(--gold-700);font-weight:600}
.flow-arrow{color:var(--ink-300)}
.flow-arrow svg{width:14px;height:14px;vertical-align:-2px}

/* 统计下钻明细 */
.drill-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line-soft)}
.drill-row:last-child{border-bottom:0}
.drill-row .n{font-size:12.5px;color:var(--ink-700)}
.drill-row .v{font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-900)}

/* 状态灯 */
.status-dot{display:inline-flex;align-items:center;gap:7px;font-size:12.5px}
.status-dot i{width:7px;height:7px;border-radius:50%;display:inline-block;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.status-dot.ok i{background:var(--ok)}.status-dot.warn i{background:var(--warn)}
.status-dot.danger i{background:var(--danger)}.status-dot.info i{background:var(--info)}
.status-dot.idle i{background:var(--ink-300)}

/* 阶段流转 */
.stage-flow{display:flex;align-items:center;gap:0;flex-wrap:wrap;margin:4px 0 2px}
.stage{
  display:flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--r-sm);
  background:var(--surface-3);border:1px solid var(--line);font-size:12px;color:var(--ink-400);white-space:nowrap;
}
.stage.done{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok);font-weight:600}
.stage.cur{background:linear-gradient(180deg,var(--gold-100),var(--gold-50));border-color:var(--gold-400);color:var(--gold-800);font-weight:600;box-shadow:var(--sh-1)}
.stage-arrow{color:var(--ink-300);padding:0 8px;flex:0 0 auto}
.stage-arrow svg{width:14px;height:14px;vertical-align:-3px}
