/* 汉服门店 · 后台管理系统样式（古风简约，与小程序端同源设计系统） */
:root{
  --bg:#faf6ef; --paper:#fffdf8; --ink:#3d332b; --ink2:#7a6f63;
  --cinnabar:#a5563e; --cinnabar-soft:#f3e4dc; --deep:#9a3b28; --gold:#b08d46;
  --line:#e6ddcf; --green:#5e7a5a; --red:#b23b2e; --side:#2f2823; --side2:#3d332b;
  --radius:10px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{background:var(--bg);color:var(--ink);font-size:14px;line-height:1.65;
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;}
.serif{font-family:"Songti SC","STSong","SimSun",serif;}
.hidden{display:none !important;}
a{color:var(--cinnabar);text-decoration:none;}

/* ── 登录 ── */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,#f3e4dc 0%,#faf6ef 45%,#efe7d8 100%);padding:24px;}
.login-card{width:400px;max-width:100%;background:var(--paper);border:1px solid var(--line);
  border-radius:14px;padding:40px 38px;box-shadow:0 18px 50px rgba(61,51,43,.12);text-align:center;}
.brand-mark{width:64px;height:64px;border-radius:16px;background:var(--cinnabar);color:#fff;
  font-family:"Songti SC",serif;font-size:34px;line-height:64px;margin:0 auto 16px;
  box-shadow:0 8px 20px rgba(165,86,62,.35);}
.brand-mark.sm{width:38px;height:38px;border-radius:10px;font-size:20px;line-height:38px;margin:0;}
.login-card h1{font-family:"Songti SC",serif;font-size:22px;letter-spacing:3px;margin-bottom:6px;}
.login-sub{color:var(--ink2);font-size:12.5px;margin-bottom:26px;}
.field{text-align:left;margin-bottom:16px;}
.field label{display:block;font-size:12.5px;color:var(--ink2);margin-bottom:6px;}
.field input,.field select,.field textarea{width:100%;padding:11px 13px;border:1px solid var(--line);
  border-radius:8px;background:#fff;font-size:14px;color:var(--ink);font-family:inherit;outline:none;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cinnabar);}
.lg-btn{width:100%;margin-top:6px;}
.lg-err{color:var(--red);font-size:12.5px;min-height:18px;margin-top:10px;}
.login-hint{margin-top:22px;padding-top:16px;border-top:1px dashed var(--line);
  font-size:12px;color:var(--ink2);line-height:1.9;text-align:left;}

/* ── 按钮 ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:9px 18px;border:none;border-radius:22px;background:var(--cinnabar);color:#fff;
  font-size:13.5px;font-family:inherit;cursor:pointer;transition:.15s;letter-spacing:.5px;}
.btn:hover{background:var(--deep);}
.btn.ghost{background:#fff;color:var(--cinnabar);border:1px solid var(--cinnabar);}
.btn.ghost:hover{background:var(--cinnabar-soft);}
.btn.danger{background:#fff;color:var(--red);border:1px solid #e0b3ac;}
.btn.danger:hover{background:#fbeceb;}
.btn.sm{padding:5px 12px;font-size:12.5px;border-radius:16px;}
.btn[disabled]{opacity:.5;cursor:not-allowed;}

/* ── 布局 ── */
.layout{display:flex;min-height:100vh;}
.sidebar{width:216px;flex:none;background:var(--side);color:#e9e0d4;display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;}
.brand{display:flex;align-items:center;gap:10px;padding:20px 18px;border-bottom:1px solid #ffffff14;}
.brand-tx b{display:block;font-family:"Songti SC",serif;font-size:16px;letter-spacing:2px;color:#fdf8f0;}
.brand-tx small{display:block;font-size:11px;color:#b6a894;letter-spacing:1px;}
.nav{flex:1;padding:12px 10px;overflow-y:auto;}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;
  color:#d8cdbd;font-size:13.5px;cursor:pointer;margin-bottom:3px;transition:.15s;}
.nav-item .ic{width:18px;text-align:center;font-size:15px;}
.nav-item:hover{background:#ffffff12;color:#fff;}
.nav-item.active{background:var(--cinnabar);color:#fff;}
.nav-group{font-size:11px;color:#8a7d6b;letter-spacing:2px;padding:12px 14px 4px;}
.nav-group-title{font-size:11px;color:#8a7d6b;letter-spacing:2px;padding:14px 14px 4px;
  text-transform:uppercase;display:flex;align-items:center;gap:6px;}
.nav-group-title .ic{font-size:13px;}
.nav-children .nav-item{padding-left:24px;font-size:13px;}

/* V2.0 顶部 6 大类 tab */
.top-tabs{display:flex;align-items:center;gap:2px;flex-wrap:wrap;}
.top-tab{padding:8px 18px;font-size:14px;color:var(--ink2);cursor:pointer;border-radius:8px;
  transition:.15s;display:flex;align-items:center;gap:6px;letter-spacing:1px;}
.top-tab .ic{font-size:15px;opacity:.8;}
.top-tab:hover{background:#f3ece1;color:var(--ink);}
.top-tab.active{background:var(--cinnabar-soft);color:var(--cinnabar);font-weight:600;}
.top-tab .ic-active{font-size:14px;}

/* V2.0 侧栏：组标题 + 子项 */
.nav-groups .nav-group-item{padding:10px 14px;color:#b6a894;font-size:13px;cursor:pointer;
  border-radius:8px;margin-bottom:2px;display:flex;align-items:center;gap:10px;
  letter-spacing:1px;transition:.15s;}
.nav-groups .nav-group-item .ic{width:18px;text-align:center;font-size:15px;}
.nav-groups .nav-group-item:hover{background:#ffffff12;color:#fff;}
.nav-groups .nav-group-item.active{background:#ffffff14;color:#fff;
  border-left:3px solid var(--cinnabar);padding-left:11px;}

/* 子菜单头部（展示当前组名） */
.nav-children-hd{font-size:11px;color:#8a7d6b;padding:8px 18px 4px;letter-spacing:2px;}

.side-foot{padding:12px 16px;border-top:1px solid #ffffff14;font-size:11px;color:#a99b86;}
.mode-badge{display:inline-block;font-size:11px;padding:2px 9px;border-radius:10px;margin-bottom:6px;}
.mode-badge.live{background:#2e4a2b;color:#bfe0b6;}
.mode-badge.mock{background:#5a4326;color:#f0d9a8;}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{height:60px;background:var(--paper);border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:5;}
.topbar h2{font-family:"Songti SC",serif;font-size:19px;letter-spacing:2px;}
.tb-right{display:flex;align-items:center;gap:14px;}
.staff-info{font-size:12.5px;color:var(--ink2);}
.staff-info b{color:var(--ink);}
.content{padding:24px 26px 50px;}

/* ── 卡片 ── */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:20px;overflow:hidden;}
.card-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 20px;border-bottom:1px solid var(--line);}
.card-hd h3{font-size:15px;font-weight:600;letter-spacing:1px;}
.card-hd .sub{font-size:12px;color:var(--ink2);font-weight:400;margin-left:8px;}
.card-bd{padding:18px 20px;}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px;}
.toolbar .sp{flex:1;}
.toolbar input,.toolbar select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;
  font-size:13px;font-family:inherit;background:#fff;color:var(--ink);outline:none;}
.toolbar input:focus,.toolbar select:focus{border-color:var(--cinnabar);}

/* ── 表格 ── */
table.data{width:100%;border-collapse:collapse;font-size:13px;}
table.data th{background:#f6eee2;text-align:left;font-weight:600;color:var(--ink);
  padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;}
table.data td{padding:10px 12px;border-bottom:1px solid #f0e9dc;vertical-align:middle;}
table.data tr:hover td{background:#fcf8f1;}
table.data .num{font-family:Georgia,serif;}
.mono{font-family:"SF Mono",Consolas,Menlo,monospace;font-size:12px;color:var(--ink2);}
.actions{display:flex;gap:6px;flex-wrap:wrap;}

/* ── 标签 ── */
.tag{display:inline-block;font-size:11.5px;padding:2px 9px;border-radius:10px;
  border:1px solid var(--line);color:var(--ink2);background:#fff;white-space:nowrap;}
.tag.gold{border-color:#e0cf9f;background:#faf3e0;color:#8a6a2d;}
.tag.green{border-color:#bcd0b8;background:#eef4ec;color:var(--green);}
.tag.red{border-color:#e0b3ac;background:#fbeceb;color:var(--red);}
.tag.blue{border-color:#b9c6dc;background:#eef2f9;color:#40608f;}
.tag.gray{background:#f2ede4;}
.pill-role{font-size:11.5px;padding:2px 9px;border-radius:10px;background:var(--cinnabar-soft);color:var(--deep);}

/* ── KPI ── */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:22px;}
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;}
.kpi .k{font-size:12.5px;color:var(--ink2);margin-bottom:8px;}
.kpi .v{font-size:26px;font-family:Georgia,serif;letter-spacing:.5px;}
.kpi .v small{font-size:13px;color:var(--ink2);margin-left:3px;font-family:inherit;}
.kpi.accent .v{color:var(--cinnabar);}
.kpi.gold .v{color:var(--gold);}

/* ── 表单行 ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-grid .full{grid-column:1 / -1;}
.field textarea{resize:vertical;min-height:70px;}

/* ── 弹窗 ── */
.modal-mask{position:fixed;inset:0;background:rgba(47,40,35,.42);display:flex;
  align-items:flex-start;justify-content:center;padding:60px 16px;z-index:60;overflow-y:auto;}
.modal{width:520px;max-width:100%;background:var(--paper);border-radius:12px;
  box-shadow:0 24px 60px rgba(0,0,0,.28);animation:pop .16s ease;}
@keyframes pop{from{transform:translateY(10px);opacity:.6}to{transform:none;opacity:1}}
.modal-hd{padding:16px 22px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600;letter-spacing:1px;}
.modal-bd{padding:20px 22px;}
.modal-ft{padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;}
.detail-list{font-size:13px;}
.detail-list .r{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px dashed var(--line);}
.detail-list .r:last-child{border-bottom:none;}
.detail-list .r .l{color:var(--ink2);}
.timeline{list-style:none;margin-top:6px;}
.timeline li{position:relative;padding:0 0 14px 18px;border-left:1px solid var(--line);font-size:12.5px;}
.timeline li:last-child{border-left-color:transparent;}
.timeline li::before{content:"";position:absolute;left:-4.5px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--cinnabar);}
.timeline .tt{color:var(--ink2);font-size:11.5px;}

/* ── Toast ── */
#toast-root{position:fixed;top:20px;right:20px;z-index:99;display:flex;flex-direction:column;gap:8px;}
.toast{background:var(--side);color:#fdf8f0;padding:11px 18px;border-radius:8px;font-size:13px;
  box-shadow:0 10px 26px rgba(0,0,0,.25);animation:slidein .2s ease;max-width:340px;}
.toast.ok{background:#2e4a2b;}
.toast.err{background:#7a2b22;}
@keyframes slidein{from{transform:translateX(20px);opacity:0}to{transform:none;opacity:1}}

.empty-line{text-align:center;color:var(--ink2);font-size:13px;padding:34px;}
.hint{font-size:12px;color:var(--ink2);}
.right{text-align:right;}
.nowrap{white-space:nowrap;}

/* ── 图片上传组件 ── */
.img-up{border:1px dashed var(--line);border-radius:8px;padding:12px;background:rgba(0,0,0,.015);}
.img-thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;}
.img-thumbs:empty{margin-bottom:0;}
.thumb{position:relative;width:86px;height:86px;border-radius:6px;overflow:hidden;border:1px solid var(--line);background:#f5f0e6;}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.thumb .thumb-del{position:absolute;top:2px;right:2px;width:18px;height:18px;line-height:17px;text-align:center;border-radius:50%;
  background:rgba(0,0,0,.55);color:#fff;font-size:11px;cursor:pointer;user-select:none;}
.thumb .thumb-del:hover{background:var(--cinnabar,#a3402e);}
.thumb .thumb-main{position:absolute;left:0;bottom:0;right:0;background:rgba(0,0,0,.5);color:#fff;font-size:10px;
  font-style:normal;text-align:center;padding:1px 0;letter-spacing:1px;}
.img-up-ops{display:flex;align-items:center;gap:10px;}
.row-thumb{width:52px;height:52px;object-fit:cover;border-radius:6px;border:1px solid var(--line);vertical-align:middle;}

/* ── V2.0 P5 报表中心 ── */
.seg-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:0;}
.seg-tab{padding:8px 16px;cursor:pointer;font-size:14px;color:var(--ink2);border-bottom:2px solid transparent;
  margin-bottom:-1px;user-select:none;letter-spacing:.05em;}
.seg-tab:hover{color:var(--cinnabar,#a3402e);}
.seg-tab.on{color:var(--cinnabar,#a3402e);border-bottom-color:var(--cinnabar,#a3402e);font-weight:600;}

.filter-row{display:flex;align-items:center;gap:8px;font-size:13px;}
.filter-row label{color:var(--ink2);}
.filter-row select,.filter-row input[type=month]{padding:4px 8px;border:1px solid var(--line);border-radius:6px;
  background:#fff;font-size:13px;}

.dash-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px;}
.dash-card{padding:14px;border-radius:10px;color:#fff;background:linear-gradient(135deg,#3d332b,#241d18);position:relative;overflow:hidden;}
.dash-card.c1{background:linear-gradient(135deg,#a3402e,#7a2c20);}
.dash-card.c2{background:linear-gradient(135deg,#3d332b,#241d18);}
.dash-card.c3{background:linear-gradient(135deg,#5a6a4a,#3d4a30);}
.dash-card.c4{background:linear-gradient(135deg,#7a5a3a,#5a3f25);}
.dash-card.c5{background:linear-gradient(135deg,#3a4a5a,#25333f);}
.dash-card .lab{font-size:12px;opacity:.85;letter-spacing:.05em;}
.dash-card .num{font-size:24px;font-weight:600;font-family:Georgia,serif;margin:6px 0 4px;}
.dash-card .sub{font-size:11px;opacity:.7;}

.trend-bars{display:flex;align-items:flex-end;gap:4px;height:80px;border-bottom:1px solid var(--line);
  padding:6px 4px;overflow-x:auto;background:linear-gradient(to top,rgba(163,64,46,.04),transparent);}
.trend-bars .tb{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:28px;}
.trend-bars .bar{width:18px;background:linear-gradient(to top,var(--cinnabar,#a3402e),#d4735a);border-radius:2px 2px 0 0;
  transition:height .3s;}
.trend-bars .lbl{font-size:10px;color:var(--ink2);transform:rotate(-45deg);transform-origin:left top;
  white-space:nowrap;margin-top:2px;}

.btn-line{padding:5px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;
  font-size:12px;color:var(--ink);transition:.15s;}

/* ─────────── V2.0 P6 KPI / Excel / Subscription ─────────── */
.kpi-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px;
  display:flex;flex-direction:column;gap:6px;transition:.2s;}
.kpi-card:hover{border-color:var(--cinnabar,#a3402e);transform:translateY(-1px);}
.kpi-label{font-size:12px;color:var(--ink2);}
.kpi-value{font-size:24px;font-weight:600;color:var(--ink);font-family:'Songti SC',serif;}
.kpi-foot{font-size:11px;color:var(--ink2);}
.health-bar{height:16px;background:#f3ede1;border-radius:8px;overflow:hidden;margin-bottom:8px;}
.health-fill{height:100%;background:linear-gradient(to right,#52c41a,#a0d911);transition:width .4s;}
.health-meta{display:flex;gap:12px;align-items:center;margin-bottom:14px;font-size:13px;}
.grade-tag{padding:3px 10px;border-radius:12px;background:#fbf6ec;color:var(--cinnabar,#a3402e);
  font-weight:600;font-size:12px;}
.grade-tag[data-g="优"]{background:#d9f7be;color:#389e0d;}
.grade-tag[data-g="良"]{background:#fff1b8;color:#d48806;}
.grade-tag[data-g="中"]{background:#ffe7ba;color:#d46b08;}
.grade-tag[data-g="差"]{background:#ffccc7;color:#cf1322;}
.health-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px;}
.hg-item{display:flex;flex-direction:column;gap:4px;font-size:12px;}
.hg-lab{color:var(--ink2);}
.hg-bar{height:8px;background:#f3ede1;border-radius:4px;overflow:hidden;}
.hg-fill{height:100%;background:var(--cinnabar,#a3402e);}
.hg-val{font-size:11px;color:var(--ink2);text-align:right;}
.kpi-extra-host{padding:14px;background:#fbf6ec;border-radius:8px;margin-top:8px;min-height:80px;}
.kpi-block{display:flex;flex-direction:column;gap:4px;}
.kb-num{font-size:32px;font-weight:600;color:var(--cinnabar,#a3402e);}
.kb-lab{font-size:13px;color:var(--ink2);}
.kb-meta{font-size:11px;color:var(--ink2);}
.seg-btn{padding:5px 14px;border:1px solid var(--line);border-radius:6px;background:#fff;
  font-size:12px;color:var(--ink);cursor:pointer;transition:.15s;}
.seg-btn:hover{border-color:var(--cinnabar,#a3402e);}
.seg-btn.active{background:var(--cinnabar,#a3402e);color:#fff;border-color:var(--cinnabar,#a3402e);}
.xlsx-result-host{padding:14px;background:#fbf6ec;border-radius:8px;margin-top:8px;min-height:60px;}
.ok-line{padding:10px 14px;background:#d9f7be;border-radius:6px;color:#389e0d;font-size:13px;}
.empty-line{padding:14px;text-align:center;color:var(--ink2);font-size:13px;}
.btn.small{padding:3px 8px;font-size:11px;border-radius:4px;border:1px solid var(--line);
  background:#fff;cursor:pointer;margin-right:4px;transition:.15s;}
.btn.small:hover{border-color:var(--cinnabar,#a3402e);}
.btn.small.primary{background:var(--cinnabar,#a3402e);color:#fff;border-color:var(--cinnabar,#a3402e);}
.btn.small.danger{background:#fff1f0;color:#cf1322;border-color:#ffccc7;}
.btn.small.danger:hover{background:#cf1322;color:#fff;border-color:#cf1322;}
.btn-line:hover{border-color:var(--cinnabar,#a3402e);color:var(--cinnabar,#a3402e);}

/* V2.0 P11：后台订单备注相关样式 */
.remark-val{color:var(--ink);font-size:13px;word-break:break-all;max-width:60%;}
.remark-sla{display:inline-block;background:#d04a3a;color:#fff;font-size:11px;
  padding:1px 6px;border-radius:3px;margin-left:6px;vertical-align:middle;
  letter-spacing:.5px;}
