/* ============================================================
   印记账房 · 后端管理（深色侧栏 + 浅色工作区 · 森林绿主题）
   仅作用于 /admin 页面。策略：重映射 tokens.css 变量 +
   覆盖框架级硬编码。
   设计：科技高级 SaaS —— 深绿侧栏、浅灰工作区、森林绿强调。
   ============================================================ */

/* ===== 1. 设计令牌（冷青 · 浅色工作区）===== */
:root{
  --green:var(--brand-green);
  --green2:var(--brand-green-deep);
  --pale:rgba(34,211,238,.10);
  --primary:var(--brand-green);
  --primary-dark:var(--brand-green-deep);
  --primary-light:rgba(var(--brand-green-rgb),.12);
  --primary-lighter:rgba(var(--brand-green-rgb),.06);
  --ink:#0C1B26;
  --muted:#5A6B78;
  --paper:#F2F6F9;
  --line:#E2E9EF;
  --gray-light:#F1F2F6;
  --star-empty:#D1D5DB;
  --border-light:#F0F0F2;
  --border-green:rgba(var(--brand-green-rgb),.35);
  --text-title:#0C1B26;
  --text-body:#3A4A55;
  --text-sub:#5A6B78;
  --text-placeholder:#8A9AA6;
  --orange:#D97706;
  --red:var(--danger);
  --danger:#DC2626;
  --danger-light:#FDEAEA;
  --success:#059669;
  --success-light:#E7F8F1;
  --warning:#D97706;
  --warning-light:#FEF3E2;
  --info:var(--brand-sky);
  --info-light:#E0F2FE;
  --bg-page:#F2F6F9;
  --bg-card:rgba(255,255,255,.72);
  --bg-card-hover:#FFFFFF;
  --border-card:rgba(255,255,255,.6);
  --shadow:0 2px 6px rgba(12,27,38,.04),0 14px 34px rgba(12,27,38,.08);
  --shadow-card:0 2px 6px rgba(12,27,38,.04),0 14px 34px rgba(12,27,38,.08);
  --shadow-card-hover:0 8px 18px rgba(12,27,38,.08),0 22px 44px rgba(12,27,38,.10);
  --shadow-btn:0 4px 16px rgba(var(--brand-green-rgb),.3);
}

/* ===== 2. 底色：主题背景 + 氛围光晕（html body 提高特异性以覆盖 dashboard-glass）===== */
html body{
  background:
    radial-gradient(1000px 460px at 18% -6%, var(--admin-bg-glow-1), transparent 60%),
    radial-gradient(700px 360px at 95% 8%, var(--admin-bg-glow-2), transparent 60%),
    var(--admin-bg) !important;
  color:var(--admin-text);
}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:transparent}
body::after{display:none!important}
::selection{background:rgba(var(--brand-green-rgb),.24)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#C9CDD6;border-radius:var(--ui-radius,12px);border:2px solid var(--admin-bg)}
::-webkit-scrollbar-thumb:hover{background:#B2B7C2}
::-webkit-scrollbar-track{background:transparent}

/* ===== 3. 侧边栏：主题渐变 + 强调色点缀 ===== */
.sidebar{
  background:
    radial-gradient(220px 220px at 90% -8%, var(--admin-sidebar-glow), transparent 70%),
    linear-gradient(165deg,var(--admin-sidebar-start) 0%,var(--admin-sidebar-mid) 50%,var(--admin-sidebar-end) 100%) !important;
  border-right:1px solid var(--admin-sidebar-border)!important;
  color:var(--admin-sidebar-text);
}
.brand-mark{
  background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep))!important;
  color:#fff!important;
  font-family:var(--font-sans,"Microsoft YaHei","PingFang SC",sans-serif)!important;
  box-shadow:0 4px 14px rgba(var(--brand-green-rgb),.35)!important;
}
.brand b{color:var(--admin-sidebar-text);font-family:var(--font-sans,"Microsoft YaHei","PingFang SC",sans-serif);letter-spacing:0}
.brand small,.side-foot small{color:var(--admin-sidebar-text-dim)!important}
.version-number{color:var(--admin-sidebar-text-dim)}
.nav{
  color:var(--admin-sidebar-text-soft)!important;
  border:1px solid transparent;
  transition:all .18s ease;
}
.nav:hover{background:var(--admin-sidebar-hover-bg)!important;border-color:var(--admin-sidebar-border);color:var(--admin-sidebar-text)!important;transform:translateX(2px)}
.nav.active{
  background:var(--admin-sidebar-active-bg)!important;
  border-color:var(--admin-sidebar-glow);
  color:var(--admin-sidebar-text)!important;
  box-shadow:inset 2px 0 0 var(--admin-sidebar-accent)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.nav.active span{color:var(--admin-sidebar-accent)}
.nav-group{color:var(--admin-sidebar-text-dim);font-size:var(--fs-xs);letter-spacing:3px}
.side-foot{border-top-color:var(--admin-sidebar-border)!important}
.shop-avatar{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep))!important;color:#fff!important}
.side-foot b{color:var(--admin-sidebar-text)}
#logout{background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--admin-sidebar-text-soft);border-radius:var(--ui-radius,12px);transition:all .18s}
#logout:hover{border-color:var(--admin-sidebar-accent);color:var(--admin-sidebar-accent)}

/* ===== 4. 主区标题 ===== */
main{position:relative;z-index:1}
h1,h2,h3{color:var(--admin-text);font-family:var(--font-sans,"Microsoft YaHei","PingFang SC",sans-serif)}
p{color:var(--admin-text-muted)}
.greeting{color:var(--admin-text-sub)!important}
.date{color:var(--admin-text-sub)!important}
#page-subtitle{color:var(--admin-text-sub)}
.card:hover,.metric-card:hover{box-shadow:var(--admin-card-shadow-hover)!important;border-color:var(--admin-border-strong)}
.metric:after{display:none}
.metric strong,.metric-value{color:var(--admin-text)!important}
.metric.warn strong,.metric-card.due .metric-value{color:var(--warning-deep)!important}
.metric.profit strong{color:var(--success-deep)!important}
.card-head h2{color:var(--admin-text)}
.card-head p{color:var(--admin-text-sub)!important}

/* ===== 6. 按钮：靛紫 ===== */
.btn{border-radius:var(--ui-radius,12px);transition:all .18s ease}
.btn.primary,.btn-primary{
  background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2))!important;
  color:#fff!important;font-weight:600;
  box-shadow:0 6px 18px rgba(var(--admin-accent-rgb),.35)!important;
}
.btn.primary:hover,.btn-primary:hover{box-shadow:0 10px 26px rgba(var(--admin-accent-2-rgb),.42)!important;transform:translateY(-1px);filter:none}
.btn.secondary{
  background:#FFFFFF!important;
  color:var(--admin-text-muted)!important;
  border:1px solid var(--admin-border)!important;
}
.btn.secondary:hover{border-color:var(--admin-accent)!important;color:var(--admin-accent-ink)!important;background:rgba(var(--admin-accent-rgb),.06)!important}
.btn.danger,.btn-expense{background:linear-gradient(135deg,var(--brand-rose),var(--brand-rose-deep))!important;color:#fff!important;border-color:transparent!important}
.btn-income{background:linear-gradient(135deg,var(--brand-emerald-deep),var(--green2))!important;color:#fff!important;border-color:transparent!important}
.btn-new{
  background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2))!important;color:#fff!important;
  border:none!important;font-weight:600;box-shadow:0 6px 18px rgba(var(--admin-accent-rgb),.35)!important;
}
.link-btn{color:var(--admin-accent-ink)!important}
.light-tool,.btn-query{
  background:#FFFFFF!important;border:1px solid var(--admin-border)!important;color:var(--admin-text-muted)!important;
}
.light-tool:hover,.btn-query:hover{border-color:var(--admin-accent)!important;color:var(--admin-accent-ink)!important}

/* ===== 7. 表格 ===== */
.table-wrap{background:transparent}
th{
  background:linear-gradient(90deg,rgba(var(--admin-accent-rgb),.08),rgba(var(--admin-accent-2-rgb),.08))!important;
  color:var(--admin-text-muted)!important;
  border-top-color:var(--admin-border)!important;
  border-bottom-color:rgba(120,130,255,.14)!important;
}
td{border-bottom-color:var(--admin-border-soft)!important;color:#43485C}
tbody tr:hover{background:rgba(var(--admin-accent-2-rgb),.05)!important}
.money{color:var(--admin-text)!important;font-weight:700}
.money.in{color:var(--success-deep)!important}
.money.out{color:var(--danger-deep)!important}
.project b{color:var(--admin-text)}
.project small{color:var(--admin-text-sub)}
.empty{color:var(--admin-text-sub)!important}
.th-sort{color:var(--admin-text-muted)!important;background:none;border:none;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;padding:0;font-weight:600}
.th-sort:hover{color:var(--brand-green)!important}
.sort-arrow{font-size:var(--fs-lg);font-weight:800;color:var(--brand-green);min-width:11px}

/* ===== 8. 表单控件 ===== */
input,select,textarea{
  /* background:#FFFFFF!important; */
  border:1.5px solid var(--admin-border)!important;
  color:var(--admin-text)!important;
  border-radius:var(--ui-radius,12px);
}
input:focus,select:focus,textarea:focus{
  border-color:var(--admin-accent)!important;
  box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.14)!important;
  outline:none;
}
input::placeholder,textarea::placeholder{color:var(--admin-text-sub)!important}
select option{background:#FFFFFF;color:var(--admin-text)}
input[type="date"]{color-scheme:light}
.search{background:#FFFFFF!important;border-color:#D6D8DF!important;color:var(--admin-text-sub)}
.search .search-icon{flex:none;color:var(--admin-text-sub)}
.search input{background:transparent!important;border:none!important;box-shadow:none!important;color:var(--admin-text)!important}
#quotations-page .search{display:flex;align-items:center;gap:8px;padding:0 11px}
#quotations-page .search input{flex:1;width:auto;min-width:0;padding:10px 0}
#customers-page .search,#members-page .search{display:flex;align-items:center;gap:8px;padding:0 11px}
#customers-page .search input,#members-page .search input{flex:1;width:auto;min-width:0;padding:10px 0}
.order-type-search input{border:none!important;background:transparent!important;box-shadow:none!important;color:var(--admin-text)!important}
.statement-picker-search input{border:none!important;background:transparent!important;box-shadow:none!important;color:var(--admin-text)!important}
.statement-picker-search input:focus{border:none!important;box-shadow:none!important}
.statement-picker-search .search-icon{flex:none;color:var(--admin-text-sub)}
label{color:#43485C}

/* ===== 9. 弹窗 ===== */
.modal{background:var(--admin-overlay)!important;backdrop-filter:blur(4px)!important}
.dialog{
  background:var(--admin-surface)!important;
  border:1px solid var(--admin-card-border)!important;
  box-shadow:0 24px 64px rgba(12,27,38,.2)!important;
  color:var(--admin-text);
  backdrop-filter:var(--admin-surface-blur);
  -webkit-backdrop-filter:var(--admin-surface-blur);
}
.dialog h2{color:var(--admin-text)}
.dialog p{color:var(--admin-text-muted)!important}
.close{color:var(--admin-text-sub)!important}
.close:hover{color:var(--brand-green)!important}
.title-icon{
  background:rgba(var(--brand-green-rgb),.12)!important;color:var(--brand-green)!important;
  border:1px solid rgba(var(--brand-green-rgb),.25);
}
.form-grid input,.form-grid select,.form-grid textarea{background:var(--admin-surface)!important}
.form-actions{border-top-color:var(--admin-border)!important}
.confirm-dialog{background:var(--admin-surface)!important;border:1px solid rgba(var(--brand-danger-rgb),.35)!important;color:var(--admin-text)}
.confirm-delete{background:linear-gradient(135deg,var(--danger),#B91C1C)!important;color:#fff!important}

/* ===== 10. 徽章 / 状态 ===== */
.badge{background:var(--admin-line-soft)!important;color:var(--admin-text-muted)!important;border:1px solid var(--admin-border)}
.badge.制作中,.badge.待安装{background:var(--admin-info-soft)!important;color:var(--admin-info)!important}
.badge.待制作{background:var(--admin-warning-soft)!important;color:var(--brand-amber-deep)!important}
.badge.已完成{background:var(--admin-success-soft)!important;color:var(--brand-emerald-deep)!important}
.badge.待确认{background:rgba(var(--brand-green-rgb),.1)!important;color:var(--green2)!important}
.badge.已取消{background:var(--admin-danger-soft)!important;color:var(--danger-deep)!important}

/* ===== 11. 提示 ===== */
#toast{
  background:var(--admin-toast-bg)!important;
  border:1px solid rgba(255,255,255,.1)!important;
  color:#e6f2ea!important;
  box-shadow:0 12px 32px rgba(0,0,0,.2)!important;
}

/* ===== 12. 分页 ===== */
.pagination-total,.page-current,.page-info{color:var(--admin-text-muted)}
.page-btn{background:var(--admin-surface)!important;border:1px solid var(--admin-border-strong)!important;color:var(--admin-text-muted)!important}
.page-btn:hover{border-color:var(--brand-green)!important;color:var(--brand-green)!important}
.page-btn:disabled{opacity:.35}
.page-size-select,.pagination-size select{background:var(--admin-surface)!important}

/* ===== 13. 周期 / 视图切换 ===== */
.period-switch button,.view-switch button,.orders-view-switch button,.view-btn,.tab{
  background:transparent!important;color:var(--admin-text-muted)!important;border-color:#D6D8DF!important;
}
.period-switch button.active,.view-switch button.active,.orders-view-switch button.active,.view-btn.active,.tab.active{
  background:rgba(var(--brand-green-rgb),.14)!important;color:var(--brand-green-deep)!important;border-color:rgba(var(--brand-green-rgb),.4)!important;
}
.orders-view-switch button{border:none!important;background:none!important}
.orders-view-switch{border:1px solid #D6D8DF!important;border-radius:var(--ui-radius,12px);overflow:hidden}

/* ===== 14. 订单页细节 ===== */
.order-category-btn,.order-category-clear{
  background:#FFFFFF!important;border:1px solid #D6D8DF!important;color:#43485C!important;
}
.order-category-panel{background:#FFFFFF!important;border:1px solid #D6D8DF!important;box-shadow:0 16px 48px rgba(12,27,38,.15)!important}
.order-type-picker-list button,.order-product-picker-list button{color:#43485C!important}
.order-type-picker-list button:hover,.order-product-picker-list button:hover{background:rgba(var(--brand-green-rgb),.1)!important;color:var(--brand-green-deep)!important}
.order-thumb{border:1px solid #D6D8DF}
.no-image{color:var(--admin-text-sub)!important}
.statement-table-card .order-thumb{width:48px;height:36px;object-fit:cover;border-radius:var(--ui-radius,12px);display:block;background:var(--admin-surface-soft);cursor:zoom-in}
.statement-table-card .project b[data-order-detail]{cursor:pointer;transition:color .15s}
.statement-table-card .project b[data-order-detail]:hover{color:var(--brand-green)}
.mini-progress{background:var(--admin-border-soft)!important}
.mini-progress i{background:linear-gradient(90deg,var(--brand-green),var(--brand-sky))!important}
.collect-btn{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep))!important;color:#fff!important;border:none!important}
.settled-mark{color:var(--success-deep)!important}
.invoice-badge{border:1px solid #D6D8DF}
.date-chip{background:rgba(var(--brand-green-rgb),.08)!important;border-color:rgba(var(--brand-green-rgb),.22)!important;color:var(--admin-text-muted)!important}
.result-foot .counts,.result-foot .hint,.page-sub{color:var(--admin-text-sub)!important}
.orders-filter-chips button{background:var(--admin-surface-soft)!important;color:#43485C!important;border:1px solid var(--admin-border)!important}
.orders-filter-chips button.active,.orders-filter-chips button:hover{background:rgba(var(--brand-green-rgb),.14)!important;color:var(--brand-green-deep)!important}

/* ===== 15. 经营总览细节 ===== */
.trend{border-top-color:var(--admin-border)!important}
.legend{color:var(--admin-text-muted)}
.dashboard-alert{background:#FFFFFF!important;border:1px solid var(--admin-border)!important;color:var(--admin-text)!important}
.dashboard-alert:hover{border-color:rgba(var(--brand-green-rgb),.4)!important}
.dashboard-alert small,.dashboard-alert em{color:var(--admin-text-muted)!important}
.metric-delta.up{color:var(--success-deep)!important}
.metric-delta.down{color:var(--danger-deep)!important}
.metric-delta.flat{color:var(--admin-text-sub)!important}
.module-tabs button{background:#FFFFFF!important;color:var(--admin-text-muted)!important;border:1px solid #D6D8DF!important}
.module-tabs button.active{background:rgba(var(--brand-green-rgb),.14)!important;color:var(--brand-green-deep)!important;border-color:rgba(var(--brand-green-rgb),.4)!important}

/* ===== 17. 员工头像 ===== */
.emp-avatar{background:rgba(var(--brand-green-rgb),.16)!important;color:var(--brand-green-deep)!important;border:1px solid rgba(var(--brand-green-rgb),.28)}

/* ===== 18. 绩效页 ===== */
.perf-metrics .metric-card,.perf-chart-card,.perf-table-card{background:#FFFFFF!important;border-color:var(--admin-card-border)!important}

/* ===== 19. 骨架屏 ===== */
.skeleton{background:linear-gradient(100deg,var(--admin-border-soft) 40%,#E7E9EE 50%,var(--admin-border-soft) 60%)!important;background-size:200% 100%!important}
.page.active{animation:adminFadeIn .3s ease}
@keyframes adminFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ===== 22. 字号 / 间距对齐设计稿 ===== */
/* 侧栏：品牌名与 logo 收紧 */
.brand-mark{width:30px;height:30px;font-size:var(--fs-lg)}
.brand b{font-size:var(--fs-lg)}
.nav{padding:8px 12px;font-size:var(--fs-md);border-radius:var(--ui-radius,12px);margin:2px 0}
.shop-avatar{width:32px;height:32px}
.side-foot b{font-size:var(--fs-md)}

/* 按钮几何统一由 base.css §1 负责（默认 34px / 大档 40px / 小档 30px） */

/* 卡片圆角统一由 §5 的 --admin-radius-card 控制 */

/* 指标卡：字号对齐（内边距由各页自行定义，勿在此全局覆写） */
.metric-value{font-size:var(--fs-3xl)}
.metric-card.wide .metric-value{font-size:32px}
.metric-name{font-size:var(--fs-md)}
.metric-delta{font-size:var(--fs-base)}
.metric .label{font-size:var(--fs-md)}

/* 表格内距/字号统一由 base.css §4 负责 */

/* ===== 23. 取消所有页面入场动画（修复刷新两次/内容不显示）===== */
*, *::before, *::after { animation: none !important; }

/* ===== 21. 打印 ===== */
@media print{
  body::before,body::after{display:none!important}
  body{background:#fff!important;color:#000!important}
}

/* ===== 24. 通用表格 ===== */
.data-table{width:100%;border-collapse:collapse}
.data-table th{text-align:left;border-bottom:1px solid var(--admin-border)}
.data-table td{border-bottom:1px solid #F0F0F2}
.data-table th.right,.data-table td.right{text-align:right}
/* ===== 采购记账（炫彩浅色，对齐物料列表） ===== */
#purchase-page .pur-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
#purchase-page .pur-toolbar h1{font-size:var(--fs-xl);font-weight:700;margin:0;background:linear-gradient(90deg,#155e75,var(--brand-violet-deep) 60%,var(--brand-pink));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#purchase-page .pur-toolbar p{font-size:var(--fs-base);color:var(--admin-text-muted);margin:3px 0 0}
#purchase-page .pur-date{font-size:var(--fs-base);color:#525a93;padding:8px 14px;border-radius:var(--ui-radius,12px);background:rgba(255,255,255,.85);border:1px solid var(--admin-card-border);box-shadow:0 2px 8px rgba(120,130,255,.08)}
#purchase-page .purchase-stats{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px}
#purchase-page .purchase-stat{flex:1 1 190px;min-width:0;padding:16px 18px;border-radius:var(--ui-radius,12px);background:var(--admin-surface);border:1px solid var(--admin-card-border);position:relative;overflow:hidden}
#purchase-page .purchase-stat::after{content:'';position:absolute;top:0;right:0;width:120px;height:120px;border-radius:0 var(--ui-radius,12px) 0 var(--ui-radius,12px);opacity:.22;filter:blur(20px);pointer-events:none}
#purchase-page .purchase-stat.c1{box-shadow:0 6px 20px rgba(var(--admin-accent-rgb),.12)}
#purchase-page .purchase-stat.c1::after{background:var(--admin-accent)}
#purchase-page .purchase-stat.c2{box-shadow:0 6px 20px rgba(var(--brand-rose-rgb),.12)}
#purchase-page .purchase-stat.c2::after{background:var(--brand-rose)}
#purchase-page .purchase-stat.c3{box-shadow:0 6px 20px rgba(var(--admin-accent-2-rgb),.12)}
#purchase-page .purchase-stat.c3::after{background:var(--admin-accent-2)}
#purchase-page .purchase-stat span{display:block;font-size:var(--fs-sm);color:var(--admin-text-muted);position:relative;z-index:1}
#purchase-page .purchase-stat b{display:block;font-size:var(--fs-3xl);font-weight:800;margin-top:6px;letter-spacing:.3px;position:relative;z-index:1;font-variant-numeric:tabular-nums;color:var(--admin-text)}
#purchase-page .purchase-stat.c1 b{color:var(--admin-accent-ink)}
#purchase-page .purchase-stat.c2 b{color:var(--brand-rose-deep)}
#purchase-page .purchase-stat.c3 b{color:var(--brand-violet)}
#purchase-page .purchase-stat .purchase-stat-foot{font-size:var(--fs-xs);color:var(--admin-text-muted);margin-top:5px}
#purchase-page .purchase-card{overflow:hidden}
#purchase-page .purchase-card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(120,130,255,.14)}
#purchase-page .purchase-card-head h2{font-size:var(--fs-lg);font-weight:700;color:var(--admin-text);margin:0}
#purchase-page #purchase-add.btn.primary{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2))!important;box-shadow:0 6px 18px rgba(var(--admin-accent-rgb),.35)!important;border:none!important}
#purchase-page #purchase-add.btn.primary:hover{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2))!important;box-shadow:0 10px 26px rgba(var(--admin-accent-2-rgb),.42)!important;transform:translateY(-2px);filter:none}
#purchase-page .data-table thead th{background:linear-gradient(90deg,rgba(var(--admin-accent-rgb),.08),rgba(var(--admin-accent-2-rgb),.08))!important;color:var(--admin-text-muted)!important;border-top:none!important}
#purchase-page .data-table tbody tr:hover{background:rgba(var(--admin-accent-2-rgb),.05)!important}
#purchase-page .purchase-act{display:inline-block;color:var(--admin-accent-ink);cursor:pointer;margin-left:8px;font-size:var(--fs-base);font-weight:600;padding:3px 12px;border-radius:var(--ui-radius,12px);background:#e0f7ff;border:1px solid rgba(var(--admin-accent-rgb),.35);transition:all .15s;text-decoration:none;white-space:nowrap}
#purchase-page .purchase-act:hover{background:#cff1fc;box-shadow:0 2px 8px rgba(var(--admin-accent-rgb),.18)}
#purchase-page .purchase-act.danger{color:var(--brand-rose-deep);background:#ffe4e9;border-color:rgba(var(--brand-rose-rgb),.32)}
#purchase-page .purchase-act.danger:hover{background:#ffd6df;box-shadow:0 2px 8px rgba(var(--brand-rose-rgb),.18)}
#purchase-page .purchase-status-select{padding:0 8px;border:1px solid rgba(120,130,255,.25)!important;border-radius:var(--ui-radius,12px);color:var(--admin-text-muted);background:#fff;cursor:pointer}
#purchase-page .purchase-status-select:focus{border-color:var(--admin-accent)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.12)!important}
/* 新建采购单弹窗（炫彩浅色） */
#purchase-modal .dialog{border-radius:var(--ui-radius,12px);overflow:hidden;position:relative}
#purchase-modal .dialog::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));z-index:1}
#purchase-modal .dialog-title{padding-bottom:14px;border-bottom:1px solid rgba(120,130,255,.14);margin-bottom:18px}
#purchase-modal .title-icon{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2));color:#fff;box-shadow:0 6px 16px rgba(var(--admin-accent-rgb),.35)}
#purchase-modal .dialog-title h2{background:linear-gradient(90deg,#155e75,var(--brand-violet-deep) 60%,var(--brand-pink));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#purchase-modal .dialog-title p{color:var(--admin-text-muted)}
#purchase-modal .form-grid label{font-size:var(--fs-base);color:var(--admin-text-muted);font-weight:600}#purchase-modal .form-grid input, #purchase-modal .form-grid select{
  border:1.5px solid var(--admin-border)!important;
  background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04);
  color:var(--admin-text)!important;transition:border-color .2s,box-shadow .2s}
#purchase-modal .form-grid textarea{
  border:1.5px solid var(--admin-border)!important;border-radius:var(--ui-radius,12px);height:40px;
  background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04);
  font-size:var(--fs-md);color:var(--admin-text)!important;transition:border-color .2s,box-shadow .2s}
#purchase-modal .form-grid textarea{height:auto;min-height:74px}
#purchase-modal .form-grid input::placeholder,#purchase-modal .form-grid textarea::placeholder{color:#a5abd8!important}
#purchase-modal .form-grid input:focus,#purchase-modal .form-grid select:focus,#purchase-modal .form-grid textarea:focus{
  border-color:var(--admin-accent)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.14)!important}
#purchase-modal .mm-cat-field input{cursor:pointer;padding-right:56px}
#purchase-modal .mm-cat-field button:hover{color:var(--admin-accent-ink);background:rgba(var(--admin-accent-rgb),.08)}
/* 状态：一行三个单选胶囊 */
#purchase-modal .pur-status-label{display:block;font-size:var(--fs-base);color:var(--admin-text-muted);font-weight:600}
#purchase-modal .pur-status-group{display:flex;gap:10px;margin-top:7px}
#purchase-modal .pur-status{flex:1;position:relative;cursor:pointer;margin:0}
#purchase-modal .pur-status input{position:absolute;opacity:0;pointer-events:none}
#purchase-modal .pur-status span{
  display:flex;align-items:center;justify-content:center;height:40px;
  border:1.5px solid var(--admin-border);border-radius:var(--ui-radius,12px);font-size:var(--fs-md);color:var(--admin-text-muted);background:#fff;
  box-shadow:0 1px 2px rgba(16,24,40,.04);transition:all .18s;user-select:none}
#purchase-modal .pur-status span:hover{border-color:rgba(var(--admin-accent-rgb),.5);color:var(--admin-text)}
#purchase-modal .pur-status.s1 input:checked + span{color:var(--brand-amber-deep);background:#fef3dc;border-color:rgba(var(--brand-amber-rgb),.55);box-shadow:0 4px 12px rgba(var(--brand-amber-rgb),.25);font-weight:600}
#purchase-modal .pur-status.s2 input:checked + span{color:var(--brand-emerald-deep);background:#e2fbf1;border-color:rgba(var(--brand-emerald-rgb),.55);box-shadow:0 4px 12px rgba(var(--brand-emerald-rgb),.25);font-weight:600}
#purchase-modal .pur-status.s3 input:checked + span{color:#fff;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2));border-color:transparent;box-shadow:0 4px 14px rgba(var(--admin-accent-rgb),.32);font-weight:600}
#purchase-modal .purchase-items-block{border:1px solid rgba(120,130,255,.2);border-radius:var(--ui-radius,12px);padding:14px;background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.04),rgba(var(--admin-accent-2-rgb),.04))}
#purchase-modal .purchase-items-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-weight:600;font-size:var(--fs-md);color:var(--admin-text)}
#purchase-modal #purchase-add-row.btn.secondary{
  font-size:var(--fs-base);font-weight:600;
  border:1px dashed rgba(var(--admin-accent-rgb),.55)!important;color:var(--admin-accent-ink)!important;background:rgba(var(--admin-accent-rgb),.06)!important}
#purchase-modal #purchase-add-row.btn.secondary:hover{background:rgba(var(--admin-accent-rgb),.12)!important;border-style:solid!important}
#purchase-modal .purchase-row{display:flex;gap:8px;margin-bottom:8px;align-items:center;background:#fff;border:1px solid rgba(120,130,255,.14);border-radius:var(--ui-radius,12px);padding:8px;box-shadow:0 1px 3px rgba(var(--brand-indigo-rgb),.06)}
#purchase-modal .purchase-row .pr-material,#purchase-modal .purchase-row input{
  background:#fff;border:1.5px solid var(--admin-border)!important;border-radius:var(--ui-radius,12px);box-shadow:0 1px 2px rgba(16,24,40,.04)!important;transition:border-color .2s,box-shadow .2s}
#purchase-modal .purchase-row .pr-material{flex:1;min-width:0;padding:0 10px}
#purchase-modal .purchase-row input{padding:0 10px;text-align:center}
#purchase-modal .purchase-row input.pr-qty{flex:0 0 80px}
#purchase-modal .purchase-row input.pr-price{flex:0 0 100px}
#purchase-modal .purchase-row .pr-material:focus,#purchase-modal .purchase-row input:focus{
  border-color:var(--admin-accent)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.14)!important}
#purchase-modal .purchase-row .pr-del{
  flex:0 0 32px;height:36px;border-radius:var(--ui-radius,12px);border:1px solid rgba(var(--brand-rose-rgb),.3)!important;
  background:#ffe4e9!important;color:var(--brand-rose-deep)!important;font-size:var(--fs-lg)}
#purchase-modal .purchase-row .pr-del:hover{background:var(--brand-rose)!important;color:#fff!important;border-color:var(--brand-rose)!important}
#purchase-modal .form-actions{border-top:1px solid rgba(120,130,255,.14);padding-top:16px;margin-top:20px}
#purchase-modal .btn.primary{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2))!important;box-shadow:0 6px 18px rgba(var(--admin-accent-rgb),.35)!important;border:none!important}
#purchase-modal .btn.primary:hover{box-shadow:0 10px 26px rgba(var(--admin-accent-2-rgb),.42)!important;transform:translateY(-1px);filter:none}
#purchase-modal .btn.secondary{border-radius:var(--ui-radius,12px)}
.product-material-row{display:flex;gap:8px;margin-bottom:8px;align-items:center}
.product-material-row .pm-material{flex:1;min-width:0;padding:0 10px;border:1px solid var(--admin-border);background:#fff}
.product-material-row .pm-qty{flex:0 0 90px;padding:0 10px;border:1px solid var(--admin-border);background:#fff;text-align:center}
.product-material-row .pm-del{flex:0 0 30px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--admin-border);background:#fff;border-radius:var(--ui-radius,12px);color:var(--danger-deep);cursor:pointer}
.product-spec-row{border:1px solid #EDEFF2;border-radius:var(--ui-radius,12px);padding:10px;margin-bottom:10px;background:#F9FAFB}
.product-spec-row .spec-head{display:flex;gap:8px;margin-bottom:8px;align-items:center}
.product-spec-row .spec-name{flex:1;min-width:0;padding:0 10px;border:1px solid var(--admin-border);background:#fff}
.product-spec-row .spec-mode{flex:0 0 120px;padding:0 8px;border:1px solid var(--admin-border);background:#fff}
.product-spec-row .spec-del{flex:0 0 30px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--admin-border);background:#fff;border-radius:var(--ui-radius,12px);color:var(--danger-deep);cursor:pointer}
.product-spec-row .spec-tiers{display:flex;flex-direction:column;gap:6px}
.product-spec-row .spec-tier-add{margin-top:8px;font-size:var(--fs-base);padding:4px 10px;border:1px solid var(--admin-border);background:#fff;border-radius:var(--ui-radius,12px);cursor:pointer;color:var(--brand-green)}
.spec-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.spec-tag{font-size:var(--fs-sm);line-height:18px;padding:0 8px;border-radius:var(--ui-radius,12px);background:rgba(var(--brand-green-rgb),.08);color:var(--brand-green);white-space:nowrap}
#quotations-page .data-table tbody tr{transition:background .15s}
#quotations-page .data-table tbody tr:hover{background:rgba(var(--brand-green-rgb),.08)!important}
#quotations-page .data-table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--brand-green)}
#quotations-page .data-table td .q-amount{font-weight:700!important;color:var(--brand-green)!important;font-variant-numeric:tabular-nums}
#quotations-page .q-actions{display:inline-flex;align-items:center;gap:6px}
#quotations-page .q-icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--admin-border);border-radius:var(--ui-radius,12px);background:#FFFFFF;cursor:pointer;flex:none;transition:border-color .15s,background .15s}
#quotations-page .q-icon-btn svg{width:15px;height:15px}
#quotations-page .q-icon-btn.q-ok{color:var(--success-deep)}
#quotations-page .q-icon-btn.q-ok:hover{background:rgba(5,150,105,.08);border-color:rgba(5,150,105,.35)}
#quotations-page .q-icon-btn.q-no{color:var(--danger-deep)}
#quotations-page .q-icon-btn.q-no:hover{background:rgba(var(--brand-danger-rgb),.08);border-color:rgba(var(--brand-danger-rgb),.35)}
#quotations-page .q-icon-btn.q-go{color:var(--brand-green)}
#quotations-page .q-icon-btn.q-go:hover{background:rgba(var(--brand-green-rgb),.08);border-color:rgba(var(--brand-green-rgb),.4)}
#quotations-page .q-icon-btn.q-edit{color:var(--brand-indigo-soft)}
#quotations-page .q-icon-btn.q-edit:hover{background:rgba(var(--brand-indigo-rgb),.08);border-color:rgba(var(--brand-indigo-rgb),.35)}
#quotations-page .q-none{color:#C2C7CE}
/* ===== 报价单页头 ===== */
#quotations-page .page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;background:#FFFFFF;border:1px solid var(--admin-border);border-radius:var(--ui-radius,12px);padding:14px 20px;box-shadow:0 1px 2px rgba(12,27,38,.04);margin-bottom:16px}
#quotations-page .greeting{font-size:var(--fs-base);color:var(--admin-text-muted)}
#quotations-page .greeting b{color:var(--admin-text);font-weight:600}
#quotations-page .page-title{display:flex;align-items:baseline;gap:12px;margin-top:5px}
#quotations-page .page-title h1{font-size:var(--fs-2xl);font-weight:700;color:var(--admin-text);margin:0}
#quotations-page .page-sub{font-size:var(--fs-base);color:#7D9388}
#quotations-page .top-right{display:flex;align-items:center;gap:12px}
#quotations-page .btn-new{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep));color:#fff;font-weight:600;box-shadow:0 6px 16px -4px rgba(var(--brand-green-rgb),.5);border:none;cursor:pointer}
#quotations-page .btn-new svg{flex:none}
/* ===== 报价单趋势卡片 ===== */
.quotation-trend-card{padding:20px 22px;margin-bottom:16px}
.quotation-trend-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:6px}
.quotation-trend-head h2{font-size:var(--fs-xl);color:var(--admin-text)}
.quotation-trend-head p{font-size:var(--fs-base);color:var(--admin-text-sub);margin-top:3px}
.quotation-trend-badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-base);font-weight:700;color:var(--success-deep);background:rgba(5,150,105,.12);border:1px solid rgba(5,150,105,.25);border-radius:var(--ui-radius,12px);padding:5px 11px}
.quotation-trend-badge svg{width:15px;height:15px}
#quotation-trend-chart{width:100%;height:200px;display:block}
.quotation-trend-rings{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:8px;padding-top:16px;border-top:1px solid var(--admin-border-soft)}
.qt-ring{display:flex;flex-direction:column;align-items:center;gap:8px}
.qt-ring-circle{width:72px;height:72px;border-radius:var(--ui-radius,12px);display:grid;place-items:center;position:relative;background:conic-gradient(#EEF2F6 0deg,#EEF2F6 360deg)}
.qt-ring-circle::after{content:"";position:absolute;inset:8px;background:#fff;border-radius:var(--ui-radius,12px)}
.qt-ring-circle b{position:relative;z-index:1;font-size:var(--fs-md);font-weight:800;color:var(--admin-text);white-space:nowrap;transform-origin:center}
.qt-ring span{font-size:var(--fs-base);color:var(--admin-text-muted)}
.purchase-items-summary{font-size:var(--fs-base);color:var(--admin-text-sub);margin-top:3px}
.badge.warn{background:var(--admin-danger-soft)!important;color:var(--danger-deep)!important;border:1px solid #F5C2C2!important}
.badge.muted{background:var(--admin-surface-soft)!important;color:var(--admin-text-sub)!important;border:1px solid var(--admin-border)!important}
.badge.待收货{background:var(--admin-warning-soft)!important;color:var(--brand-amber-deep)!important}
.badge.已入库{background:var(--admin-info-soft)!important;color:var(--brand-blue)!important}
.badge.已付款{background:var(--admin-success-soft)!important;color:var(--brand-emerald-deep)!important}
.badge.已接受{background:var(--admin-success-soft)!important;color:var(--brand-emerald-deep)!important}
.badge.已拒绝{background:var(--admin-danger-soft)!important;color:var(--danger-deep)!important}
.badge.已过期{background:var(--admin-surface-soft)!important;color:var(--admin-text-sub)!important}
.badge.已转订单{background:var(--admin-info-soft)!important;color:var(--brand-blue)!important}

/* ===== 25. P2：今日待办 / 考勤 / 税负 ===== */
.todo-card{margin:4px 0 20px}
.todo-item{display:flex;flex-direction:column;gap:10px;padding:14px 14px 16px;border:1px solid rgba(12,27,38,.10);background:rgba(255,255,255,.85);border-radius:var(--ui-radius,12px);cursor:pointer;text-align:left;transition:transform .25s var(--spring),box-shadow .25s var(--spring),opacity .25s}
.todo-item:hover{box-shadow:0 6px 16px rgba(12,27,38,.08)}
.todo-item.zero{opacity:.55}
.invoice-dir{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:var(--ui-radius,12px);font-size:var(--fs-sm);font-weight:600}
.invoice-dir.out{background:#EBF2FF;color:var(--brand-blue)}
.invoice-dir.in{background:#E7F8F1;color:var(--success-deep)}
.invoices-tax-stats{margin-top:14px}
#attendance-page .toolbar label{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-md);color:var(--text-sub)}
#attendance-page .toolbar input[type=date]{padding:7px 10px;border:1px solid var(--admin-border);border-radius:var(--ui-radius,12px);background:#fff;color:var(--text-body)}
.reports-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:1100px){.reports-grid{grid-template-columns:1fr}}
#accounting-tab-reports .reports-grid{grid-template-columns:repeat(2,1fr)}
#finance-page .finance-head{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#FFFFFF;border:1px solid var(--admin-border);border-radius:var(--ui-radius,12px);padding:14px 20px;margin-bottom:16px;box-shadow:0 1px 2px rgba(12,27,38,.04)}
#finance-page .finance-head-left h1{font-size:var(--fs-2xl);font-weight:700;color:var(--admin-text);margin:0}
#finance-page .finance-head-left p{font-size:var(--fs-base);color:#7D9388;margin:4px 0 0}
#finance-page .finance-head-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#finance-page .finance-head-right .date-item{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--admin-border);border-radius:var(--ui-radius,12px);padding:6px 10px;background:#FFFFFF}
#finance-page .finance-head-right .date-item svg{width:15px;height:15px;color:var(--admin-text-sub)}
#finance-page .finance-head-right .date-item input{border:none;background:transparent;color:var(--admin-text);outline:none;width:118px}
#finance-page .finance-head-right .date-sep{color:var(--admin-text-sub);font-size:var(--fs-md)}
#finance-page .finance-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}
#finance-page .finance-metrics .kpi-cell{min-height:96px}
#finance-page .kpi-cell.balance{--cell-color:var(--brand-green)}
#finance-page .kpi-cell.receivable{--cell-color:var(--danger-deep)}
#finance-page .finance-main{display:grid;grid-template-columns:1.7fr 1fr;gap:16px;margin-bottom:16px}
#finance-page .ledger-accounts-list{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px}
@media(max-width:900px){#finance-page .finance-metrics{grid-template-columns:repeat(2,1fr)}#finance-page .finance-main{grid-template-columns:1fr}}
/* 财务中心 · 简洁白卡片覆盖（覆盖 finance-modern.css 玻璃拟态） */
#finance-page .section-card{background:#FFFFFF!important;border:1px solid var(--admin-border)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:0 1px 2px rgba(12,27,38,.04)!important;animation:none!important}
#finance-page .cashflow-panel .accounting-chart-card{background:transparent!important;border:none!important;border-radius:0;padding:0;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;animation:none!important}
#finance-page .cashflow-panel .accounting-chart-body{padding:30px 18px 0}
#finance-page .cashflow-panel .cashflow-legend{justify-content:center}
#finance-page .section-head{padding:14px 18px 0}
#finance-page .section-title{font-size:var(--fs-lg);color:var(--admin-text)}
#finance-page .section-period{font-size:var(--fs-base);color:var(--admin-text-sub)}
#finance-page .kpi-cell{background:#FFFFFF;border:1px solid var(--admin-border);box-shadow:0 1px 2px rgba(12,27,38,.04);min-height:auto;padding:14px 16px}
#finance-page .kpi-cell::before{background:var(--cell-color,var(--brand-green));height:3px;opacity:1}
#finance-page .kpi-value{font-size:var(--fs-2xl)}
#finance-page .kpi-name{font-size:var(--fs-base);color:var(--admin-text-muted)}
#finance-page .kpi-ico{background:rgba(var(--brand-green-rgb),.08);border:1px solid var(--admin-border)}
#finance-page .date-item{height:auto;padding:7px 12px;border:1px solid var(--admin-border);border-radius:var(--ui-radius,12px);background:#FFFFFF}
#finance-page .date-item input{width:110px;border:none!important;background:transparent!important;box-shadow:none!important;outline:none;padding:0}
#finance-page .btn{height:auto;padding:8px 16px;font-size:var(--fs-md);border-radius:var(--ui-radius,12px)}
#finance-page .btn-query{height:auto;padding:8px 16px;background:#FFFFFF;border:1px solid var(--admin-border);font-size:var(--fs-md)}
#finance-page .light-tool{height:auto;padding:8px 12px}
#finance-page .cf-area-svg{width:100%;height:auto;display:block}

/* 现金流数据点 hover */
#finance-page .cf-area-svg .cf-dot{cursor:pointer;transition:opacity .15s}
#finance-page .cf-area-svg .cf-dot:hover{opacity:.72;stroke:#fff;stroke-width:2}
/* 财务中心 Tab 胶囊化 */
#finance-page .accounting-tabs{display:inline-flex;gap:4px;background:#F1F5F9;border-radius:var(--ui-radius,12px);padding:4px;margin-bottom:14px}
#finance-page .accounting-tabs .tab{border:none!important;background:transparent!important;color:var(--admin-text-muted)!important;cursor:pointer;margin-bottom:0;display:inline-flex;align-items:center;}
#finance-page .accounting-tabs .tab:hover{color:var(--admin-text)!important;background:rgba(255,255,255,.65)!important}
#finance-page .accounting-tabs .tab.active{background:#FFFFFF!important;color:var(--brand-green)!important;box-shadow:0 1px 3px rgba(12,27,38,.12)}
#finance-page .accounting-tabs .tab .tab-badge{background:rgba(var(--brand-green-rgb),.12);color:var(--brand-green)}
/* 收支流水 · 红冲操作列 */
#finance-page .tx-op-cell{text-align:center;white-space:nowrap}
#finance-page .tx-reverse-btn{display:inline-flex;align-items:center;justify-content:center;padding:5px 12px;font-size:var(--fs-base);font-weight:600;color:var(--danger-deep);background:#FFFFFF;border:1px solid rgba(var(--brand-danger-rgb),.3);border-radius:var(--ui-radius,12px);cursor:pointer;transition:all .15s}
#finance-page .tx-reverse-btn:hover{background:#FEF2F2;border-color:var(--danger-deep)}
#finance-page .tx-op-none{color:#C0C6CE;font-size:var(--fs-base)}
/* 资金账户 · 净利润趋势面积图 */
#finance-page #accounting-trend-combo{margin:8px 16px 16px;border-top:1px dashed var(--admin-border);padding-top:12px}
#finance-page .combo-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
#finance-page .combo-head b{font-size:var(--fs-md);color:var(--admin-text);font-weight:600}
#finance-page .combo-head small{font-size:var(--fs-sm);color:var(--admin-text-sub)}
#finance-page .net-area-svg{width:100%;height:auto;display:block}
#finance-page .net-area{animation:netAreaIn .9s ease-out both}
#finance-page .net-line{stroke-dasharray:1000;stroke-dashoffset:1000;animation:netLineDraw 1.1s ease-out .1s forwards}
#finance-page .net-dot{cursor:pointer}
@keyframes netAreaIn{from{opacity:0}to{opacity:1}}
@keyframes netLineDraw{to{stroke-dashoffset:0}}

/* ===== 财务中心 · 应收 / 客户 / 工序 2×2 玻璃拟态卡片 ===== */
#accounting-tab-analysis .analysis-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
#accounting-tab-analysis .analysis-card{position:relative;overflow:hidden;background:rgba(255,255,255,.52);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--admin-border-soft);border-radius:var(--ui-radius,12px);box-shadow:0 8px 32px rgba(15,23,42,.08);padding:18px 20px}
#accounting-tab-analysis .analysis-card::before{content:'';position:absolute;inset:0 0 auto 0;height:60%;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent);pointer-events:none}
#accounting-tab-analysis .analysis-card-head{position:relative;display:flex;align-items:center;gap:11px;margin-bottom:14px}
#accounting-tab-analysis .analysis-card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--ui-radius,12px);flex:none;color:#fff}
#accounting-tab-analysis .analysis-card-icon svg{width:18px;height:18px}
#accounting-tab-analysis .analysis-card-title b{display:block;font-size:var(--fs-lg);font-weight:700;color:#0F172A}
#accounting-tab-analysis .analysis-card-title small{display:block;font-size:var(--fs-sm);color:#5B6B7B;margin-top:2px}
#accounting-tab-analysis .analysis-card-body{position:relative;z-index:1}
/* 配色：应收=橙红、客户=青、工序=紫 */
#accounting-tab-analysis .card-ar-aging .analysis-card-icon{background:linear-gradient(135deg,#FB923C,var(--brand-flame));box-shadow:0 4px 12px rgba(var(--brand-flame-rgb),.28)}
#accounting-tab-analysis .card-receivable .analysis-card-icon{background:linear-gradient(135deg,#F87171,var(--danger));box-shadow:0 4px 12px rgba(var(--brand-danger-rgb),.28)}
#accounting-tab-analysis .card-customer .analysis-card-icon{background:linear-gradient(135deg,var(--brand-cyan),var(--brand-green));box-shadow:0 4px 12px rgba(var(--brand-green-rgb),.28)}
#accounting-tab-analysis .card-procedure .analysis-card-icon{background:linear-gradient(135deg,#A78BFA,var(--brand-violet));box-shadow:0 4px 12px rgba(var(--brand-violet-rgb),.28)}
/* 账龄汇总行 */
#accounting-tab-analysis .ar-aging-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding:10px 14px;background:rgba(var(--brand-flame-rgb),.06);border:1px solid rgba(var(--brand-flame-rgb),.16);border-radius:var(--ui-radius,12px)}
#accounting-tab-analysis .ar-aging-head span{font-size:var(--fs-base);color:#9A6A3C}
#accounting-tab-analysis .ar-aging-head b{font-size:var(--fs-xl);font-weight:700;color:var(--brand-flame-deep);font-variant-numeric:tabular-nums}
#accounting-tab-analysis .ar-aging-empty{display:flex;align-items:center;justify-content:center;min-height:140px;font-size:var(--fs-base);color:var(--admin-text-sub)}
/* 细滚动条兜底 */
#accounting-tab-analysis .zone-scroll{max-height:360px;overflow-y:auto;padding-right:4px}
#accounting-tab-analysis .zone-scroll::-webkit-scrollbar{width:4px}
#accounting-tab-analysis .zone-scroll::-webkit-scrollbar-thumb{background:rgba(15,23,42,.16);border-radius:var(--ui-radius,12px)}
#accounting-tab-analysis .zone-scroll::-webkit-scrollbar-thumb:hover{background:rgba(15,23,42,.3)}
#accounting-tab-analysis .zone-scroll::-webkit-scrollbar-track{background:transparent}
#accounting-tab-analysis .ar-aging-list{max-height:260px;overflow-y:auto}
/* 排行进度条动画（scaleX 生长 + 扫光） */
#accounting-tab-analysis .rank-bar-track{height:8px;background:rgba(15,23,42,.06);border-radius:var(--ui-radius,12px);overflow:hidden}
#accounting-tab-analysis .rank-bar-track i{display:block;height:100%;border-radius:var(--ui-radius,12px);position:relative;transform-origin:left center;animation:zoneBarGrow .9s cubic-bezier(.22,1,.36,1) both}
#accounting-tab-analysis .rank-bar-track i::after{content:'';position:absolute;inset:0;border-radius:var(--ui-radius,12px);background:linear-gradient(90deg,rgba(255,255,255,.4),rgba(255,255,255,0));opacity:.7}
@keyframes zoneBarGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* 排行奖牌（金/银/铜，与员工绩效一致） */
#accounting-tab-analysis .rank-bar-rank.gold,
#accounting-tab-analysis .rank-bar-rank.silver,
#accounting-tab-analysis .rank-bar-rank.bronze{background:transparent;box-shadow:none;width:auto;height:auto;font-size:var(--fs-2xl);line-height:1;margin-top:0}
/* 排行客户头像（可点击查看客户订单） */
#accounting-tab-analysis .rank-bar-customer{display:inline-flex;align-items:center;gap:8px;cursor:pointer;min-width:0;flex:1;border-radius:var(--ui-radius,12px);padding:2px 8px 2px 2px;margin-left:-2px}
#accounting-tab-analysis .rank-bar-customer .emp-avatar{flex:none}
#accounting-tab-analysis .rank-bar-customer b{font-size:var(--fs-md);color:#0F172A;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#accounting-tab-analysis .rank-bar-customer:hover .emp-avatar{box-shadow:0 0 0 3px rgba(var(--brand-green-rgb),.16)}
@media(max-width:900px){
  #accounting-tab-analysis .analysis-cards{grid-template-columns:1fr}
}

/* ===== 27. 审计日志筛选 ===== */
.audit-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:12px;background:#fff;border:1px solid var(--admin-border);border-radius:var(--ui-radius,12px)}
.audit-filter .search{flex:1 1 220px;display:flex;align-items:center;gap:6px;border:1px solid var(--admin-border);border-radius:var(--ui-radius,12px);padding:7px 10px;background:#fff;color:var(--admin-text-sub)}
.audit-filter .search input{border:none;outline:none;flex:1;font-size:var(--fs-md);color:var(--text-body);background:transparent}
.audit-filter select,.audit-filter input[type=date]{padding:7px 10px;border:1px solid var(--admin-border);border-radius:var(--ui-radius,12px);font-size:var(--fs-md);background:#fff;color:var(--text-body)}
.audit-filter label{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-md);color:var(--text-sub)}

/* ===== 28. 权限矩阵 ===== */
.employee-matrix .table-wrap{overflow-x:auto}
.permission-matrix{width:100%;border-collapse:collapse;min-width:920px}
.permission-matrix th,.permission-matrix td{border:1px solid var(--admin-border);padding:8px 6px;text-align:center;font-size:var(--fs-base)}
.permission-matrix th{background:var(--admin-surface-soft);font-weight:600;white-space:nowrap;color:var(--text-sub)}
.permission-matrix th.action-col{background:#F6F1FB;color:var(--brand-violet)}
.permission-matrix th.action-col small{display:block;font-weight:500}
.permission-matrix td.action-col{background:rgba(var(--brand-violet-rgb),.04)}
.permission-matrix th:first-child,.permission-matrix td.matrix-name{text-align:left;position:sticky;left:0;background:#fff;z-index:1;min-width:120px}
.permission-matrix td.granted{background:rgba(10,95,120,.07)}
.permission-matrix input[type=checkbox]{width:16px;height:16px;accent-color:var(--success-deep);cursor:pointer}
.permission-matrix input[type=checkbox]:disabled{cursor:not-allowed;opacity:.55}
.permission-matrix .matrix-name b{display:block;color:var(--text-title)}
.inactive-mark{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:var(--ui-radius,12px);font-size:var(--fs-sm);background:#FDEAEA;color:var(--danger-deep)}

/* ===== 29. 流体设计（ColorOS 17 水凝 · 冷青）===== */
/* 兼容别名：历史区块引用的 --aqua-* 一律指向 admin 语义令牌，
   主题切换时自动跟随，无需再为它们单独写覆盖。 */
:root{
  --aqua-bg:var(--admin-bg);
  --aqua-bg-2:var(--admin-bg);
  --aqua-ink:var(--admin-text);
  --aqua-sub:var(--admin-text-muted);
  --aqua-accent:var(--brand-green);
  --aqua-accent-deep:var(--brand-green-deep);
  --aqua-flow-a:var(--brand-cyan);
  --aqua-flow-b:var(--brand-sky);
  --aqua-glass:var(--admin-surface);
  --aqua-shadow:var(--admin-card-shadow);
  --aqua-radius:var(--admin-radius-card);
}

/* 工作区：主题氛围光 */
main{
  background:
    radial-gradient(1100px 480px at 82% -8%,var(--admin-bg-glow-1),transparent 60%),
    radial-gradient(860px 420px at -8% 6%,var(--admin-bg-glow-2),transparent 55%),
    var(--admin-bg);
}

/* 进入动效（仅页面切换时编排一次） */
@keyframes aqua-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.page.active > .card,.page.active > .reports-grid{animation:aqua-rise .5s var(--spring) both}
.page.active > .card:nth-of-type(1){animation-delay:0ms}
.page.active > .card:nth-of-type(2){animation-delay:70ms}
.page.active > .card:nth-of-type(3){animation-delay:140ms}

/* 财务中心 · 财务报表玻璃拟态覆盖 */
#accounting-tab-reports{position:relative;overflow:hidden;padding:16px;border-radius:var(--ui-radius,12px)}
#accounting-tab-reports::before{content:'';position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 10% 0%,rgba(var(--brand-green-rgb),.14),transparent 45%),radial-gradient(circle at 90% 100%,rgba(5,150,105,.12),transparent 45%),radial-gradient(circle at 70% 30%,rgba(var(--admin-accent-2-rgb),.08),transparent 50%)}
#accounting-tab-reports .reports-grid{position:relative;z-index:1}
#accounting-tab-reports .statement-card{background:rgba(255,255,255,.52)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;border:1px solid var(--admin-border-soft)!important;border-radius:var(--ui-radius,12px);box-shadow:0 8px 32px rgba(15,23,42,.08)!important}
#accounting-tab-reports .statement-card.acc-profit{--st-accent:var(--success);--st-tint:rgba(5,150,105,.12)}
#accounting-tab-reports .statement-card.acc-cashflow{--st-accent:var(--brand-green);--st-tint:rgba(var(--brand-green-rgb),.12)}
#accounting-tab-reports .statement-card::before{height:60%;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent)!important;z-index:0!important;pointer-events:none}
#accounting-tab-reports .statement-body{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px;padding:4px 20px 20px}

/* ===== 客户/会员 统计卡：对齐经营总览（变颜色） ===== */
.customers-metrics .customer-metric-card,
.member-metrics .customer-metric-card{
  background:var(--admin-surface)!important;
  border:1px solid var(--admin-card-border)!important;
  border-left:1px solid var(--admin-card-border)!important;
  backdrop-filter:blur(8px);
  box-shadow:0 6px 20px rgba(var(--brand-indigo-rgb),.08)!important;
  position:relative;overflow:hidden;
}
.customers-metrics .customer-metric-card::after,
.member-metrics .customer-metric-card::after{content:'';position:absolute;top:0;right:0;width:120px;height:120px;border-radius:0 var(--ui-radius,12px) 0 var(--ui-radius,12px);opacity:.18;filter:blur(18px);pointer-events:none}
.customers-metrics .customer-metric-card[data-metric="total"]::after,
.member-metrics .customer-metric-card[data-metric="balance"]::after{background:var(--admin-accent)}
.customers-metrics .customer-metric-card[data-metric="spent"]::after,
.member-metrics .customer-metric-card[data-metric="deposit"]::after{background:var(--brand-emerald)}
.customers-metrics .customer-metric-card[data-metric="due"]::after{background:var(--brand-rose)}
.customers-metrics .customer-metric-card[data-metric="prepaid"]::after{background:var(--admin-accent-2)}
.member-metrics .customer-metric-card[data-metric="consume"]::after{background:var(--brand-amber)}
.member-metrics .customer-metric-card[data-metric="count"]::after{background:#3b82f6}
.customers-metrics .customer-metric-card .metric-name,
.member-metrics .customer-metric-card .metric-name{color:var(--admin-text-muted);position:relative;z-index:1}
.customers-metrics .customer-metric-card .metric-main,
.member-metrics .customer-metric-card .metric-main{position:relative;z-index:1}
.customers-metrics .customer-metric-card .metric-value,
.member-metrics .customer-metric-card .metric-value{color:var(--admin-text);position:relative;z-index:1}
.customers-metrics .customer-metric-card .metric-foot,
.member-metrics .customer-metric-card .metric-foot{position:relative;z-index:1}
.customers-metrics .customer-metric-card .metric-foot small,
.member-metrics .customer-metric-card .metric-foot small{color:var(--admin-text-muted)}
.customers-metrics .customer-metric-card[data-metric="total"] .metric-value{color:var(--admin-accent-ink)}
.customers-metrics .customer-metric-card[data-metric="spent"] .metric-value{color:var(--success-deep)}
.customers-metrics .customer-metric-card[data-metric="due"] .metric-value{color:var(--brand-rose-deep)}
.customers-metrics .customer-metric-card[data-metric="prepaid"] .metric-value{color:var(--brand-violet)}
.member-metrics .customer-metric-card[data-metric="balance"] .metric-value{color:var(--admin-accent-ink)}
.member-metrics .customer-metric-card[data-metric="deposit"] .metric-value{color:var(--success-deep)}
.member-metrics .customer-metric-card[data-metric="consume"] .metric-value{color:var(--brand-amber-deep)}
.member-metrics .customer-metric-card[data-metric="count"] .metric-value{color:var(--brand-blue)}
.customers-metrics .customer-metric-card .metric-icon,
.member-metrics .customer-metric-card .metric-icon{position:relative;z-index:1}
.customers-metrics .customer-metric-card[data-metric="total"] .metric-icon{background:rgba(var(--admin-accent-rgb),.12);color:var(--admin-accent-ink);box-shadow:none}
.customers-metrics .customer-metric-card[data-metric="spent"] .metric-icon{background:rgba(var(--brand-emerald-rgb),.12);color:var(--success-deep);box-shadow:none}
.customers-metrics .customer-metric-card[data-metric="due"] .metric-icon{background:rgba(var(--brand-rose-rgb),.12);color:var(--brand-rose-deep);box-shadow:none}
.customers-metrics .customer-metric-card[data-metric="prepaid"] .metric-icon{background:rgba(var(--admin-accent-2-rgb),.12);color:var(--brand-violet);box-shadow:none}
.member-metrics .customer-metric-card[data-metric="balance"] .metric-icon{background:rgba(var(--admin-accent-rgb),.12);color:var(--admin-accent-ink);box-shadow:none}
.member-metrics .customer-metric-card[data-metric="deposit"] .metric-icon{background:rgba(var(--brand-emerald-rgb),.12);color:var(--success-deep);box-shadow:none}
.member-metrics .customer-metric-card[data-metric="consume"] .metric-icon{background:rgba(var(--brand-amber-rgb),.14);color:var(--brand-amber-deep);box-shadow:none}
.member-metrics .customer-metric-card[data-metric="count"] .metric-icon{background:rgba(59,130,246,.12);color:var(--brand-blue);box-shadow:none}

/* ===== 补：对账搜索按钮 / 考勤统计卡 统一青蓝紫浅色 ===== */
.statement-search-button{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2))!important}
.statement-search-button:hover{box-shadow:0 8px 20px rgba(var(--admin-accent-2-rgb),.3)!important}
#attendance-page .att-metric{background:linear-gradient(160deg,rgba(255,255,255,.96),rgba(248,246,255,.9))!important}

/* ===== 31. 新建报价单弹窗（炫彩浅色）===== */
#quotation-modal .dialog{border-radius:var(--ui-radius,12px);overflow:hidden;position:relative;width:min(860px,100%)}
#quotation-modal .dialog::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));z-index:1}
#quotation-modal .dialog-title{padding-bottom:14px;border-bottom:1px solid rgba(120,130,255,.14);margin-bottom:18px}
#quotation-modal .title-icon{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2));color:#fff;box-shadow:0 6px 16px rgba(var(--admin-accent-rgb),.35);border:none}
#quotation-modal .dialog-title h2{background:linear-gradient(90deg,#155e75,var(--brand-violet-deep) 60%,var(--brand-pink));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#quotation-modal .dialog-title p{color:var(--admin-text-muted)}
#quotation-modal .form-grid label{font-size:var(--fs-base);color:var(--admin-text-muted);font-weight:600}#quotation-modal .form-grid input, #quotation-modal .form-grid select{
  border:1.5px solid var(--admin-border)!important;
  background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04);
  color:var(--admin-text)!important;transition:border-color .2s,box-shadow .2s}
#quotation-modal .form-grid textarea{
  border:1.5px solid var(--admin-border)!important;border-radius:var(--ui-radius,12px);height:40px;
  background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04);
  font-size:var(--fs-md);color:var(--admin-text)!important;transition:border-color .2s,box-shadow .2s}
#quotation-modal .form-grid textarea{height:40px;min-height:40px}
#quotation-modal .form-grid input::placeholder,#quotation-modal .form-grid textarea::placeholder{color:#a5abd8!important}
#quotation-modal .form-grid input:focus,#quotation-modal .form-grid select:focus,#quotation-modal .form-grid textarea:focus{
  border-color:var(--admin-accent)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.14)!important}
/* 明细卡片 */
#quotation-modal .purchase-items-block{border:1px solid rgba(120,130,255,.2);border-radius:var(--ui-radius,12px);padding:14px;background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.04),rgba(var(--admin-accent-2-rgb),.04))}
#quotation-modal .purchase-items-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-weight:600;font-size:var(--fs-md);color:var(--admin-text)}
#quotation-modal #quotation-add-row.btn.secondary{
  font-size:var(--fs-base);font-weight:600;
  border:1px dashed rgba(var(--admin-accent-rgb),.55)!important;color:var(--admin-accent-ink)!important;background:rgba(var(--admin-accent-rgb),.06)!important}
#quotation-modal #quotation-add-row.btn.secondary:hover{background:rgba(var(--admin-accent-rgb),.12)!important;border-style:solid!important}
/* 明细行 */
#quotation-modal .purchase-row{display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:9px;align-items:center;background:#fff;border:1px solid rgba(120,130,255,.14);border-radius:var(--ui-radius,12px);padding:10px;box-shadow:0 1px 3px rgba(var(--brand-indigo-rgb),.06)}
#quotation-modal .purchase-row input{
  margin-top:0;background:#fff;border:1.5px solid var(--admin-border)!important;border-radius:var(--ui-radius,12px);
  box-shadow:0 1px 2px rgba(16,24,40,.04)!important;padding:0 9px;color:var(--admin-text)!important;transition:border-color .2s,box-shadow .2s}
#quotation-modal .purchase-row input.pr-qty{flex:0 0 66px;text-align:center}
#quotation-modal .purchase-row input.pr-price{flex:0 0 88px;text-align:center}
#quotation-modal .purchase-row input:focus{border-color:var(--admin-accent)!important;box-shadow:0 0 0 3px rgba(var(--admin-accent-rgb),.14)!important}
#quotation-modal .purchase-row .pr-del{flex:0 0 30px;height:34px;margin:0;padding:0;border-radius:var(--ui-radius,12px);border:1px solid rgba(var(--brand-rose-rgb),.3);background:#ffe4e9;color:var(--brand-rose-deep);font-size:var(--fs-lg);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1}
#quotation-modal .purchase-row .pr-del:hover{background:var(--brand-rose);color:#fff;border-color:var(--brand-rose)}
#quotation-modal .form-actions{border-top:1px solid rgba(120,130,255,.14);padding-top:16px;margin-top:20px}
#quotation-modal .btn.primary{background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2))!important;box-shadow:0 6px 18px rgba(var(--admin-accent-rgb),.35)!important;border:none!important}
#quotation-modal .btn.primary:hover{box-shadow:0 10px 26px rgba(var(--admin-accent-2-rgb),.42)!important;transform:translateY(-1px);filter:none}
#quotation-modal .btn.secondary{border-radius:var(--ui-radius,12px)}
#order-modal.quotation-mode .item-supplier-control{display:none}
#order-modal.quotation-mode .item-field-reason{display:none}

/* ===== 33. 报价单列表：图片缩略图 + 明细单元格（对齐订单列表）===== */
#quotations-page .order-thumb{width:46px;height:38px;object-fit:cover;border-radius:var(--ui-radius,12px);display:block;background:var(--admin-surface-soft)}
#quotations-page .no-image{display:inline-flex;align-items:center;justify-content:center;width:74px;height:38px;border:1px dashed #CDE0D6;border-radius:var(--ui-radius,12px);background:#FAFCFB;color:#9DB5A9;font-size:var(--fs-xs);white-space:nowrap}
#quotations-page .q-item-detail b,#quotations-page .q-item-detail small{display:block;line-height:var(--lh-normal)}
#quotations-page .q-item-detail b{color:var(--admin-text);font-weight:600}
#quotations-page .q-item-detail small{color:var(--admin-text-muted);font-size:var(--fs-sm)}

/* ===== 34. 报价单弹窗差异化（玫红主题，鲜明区别于订单青蓝）===== */
#order-modal.quotation-mode .order-builder-head{background:linear-gradient(120deg,#9F1239,#BE123C 45%,var(--brand-rose-deep))}
#order-modal.quotation-mode .order-builder-head .title-icon{background:rgba(0,0,0,.20);color:#fff}
#order-modal.quotation-mode .order-builder-head p{color:#FCE7F0}
#order-modal.quotation-mode .order-draft-state{background:rgba(0,0,0,.20);color:#fff}
#order-modal.quotation-mode #add-order-item.btn.primary{background:linear-gradient(135deg,var(--brand-rose),var(--brand-rose-deep))!important;box-shadow:0 6px 16px rgba(225,29,72,.32)!important;border:none!important}
#order-modal.quotation-mode .item-image-drop{border-color:var(--brand-rose-deep);background:rgba(225,29,72,.05)}
#order-modal.quotation-mode .item-image-drop:hover,#order-modal.quotation-mode .item-image-drop.dragover{border-color:var(--brand-rose-deep);background:rgba(225,29,72,.1);box-shadow:0 0 0 3px rgba(225,29,72,.12)}
#order-modal.quotation-mode .item-image-empty{color:var(--brand-rose-deep)}
#order-modal.quotation-mode .item-measure-btn{background:rgba(225,29,72,.95)}
#order-modal.quotation-mode .item-amount{color:var(--brand-rose-deep)}
#order-modal.quotation-mode .order-builder-dialog input:focus,
#order-modal.quotation-mode .order-builder-dialog select:focus,
#order-modal.quotation-mode .order-builder-dialog textarea:focus{border-color:#FB7185!important;box-shadow:0 0 0 3px rgba(225,29,72,.14)!important}
#order-modal.quotation-mode .order-builder-actions .save-order{background:linear-gradient(135deg,var(--brand-rose),var(--brand-rose-deep))!important;box-shadow:0 6px 18px rgba(225,29,72,.38)!important;border:none!important}
#order-modal.quotation-mode .order-builder-actions .save-order:hover{box-shadow:0 10px 26px rgba(225,29,72,.5)!important;transform:translateY(-1px)}

/* ===== 35. 新建报价单弹窗（炫彩科技版，独立于订单构建器）===== */
#quotation-modal .dialog{width:min(940px,96vw);padding:0;overflow:hidden;border-radius:var(--ui-radius,12px);background:var(--admin-surface)}
#quotation-modal .quotation-dialog{width:min(940px,96vw);padding:0;overflow:hidden;border-radius:var(--ui-radius,12px);background:var(--admin-surface);box-shadow:0 28px 80px rgba(var(--brand-indigo-rgb),.28)}
#quotation-modal .close{top:14px;right:18px;color:#fff;opacity:.85;font-size:var(--fs-3xl);z-index:6}
.qt-hero{position:relative;border-radius:var(--ui-radius,12px) var(--ui-radius,12px) 0 0;padding:20px 24px;background:linear-gradient(120deg,var(--admin-accent-ink) 0%,var(--brand-indigo-soft) 45%,#c026d3 100%);box-shadow:0 10px 30px rgba(var(--brand-indigo-rgb),.35);display:flex;justify-content:space-between;align-items:center;gap:14px;overflow:hidden}
.qt-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:26px 26px;pointer-events:none}
.qt-hero::after{content:'';position:absolute;top:-70%;right:-4%;width:340px;height:340px;border-radius:var(--ui-radius,12px);background:radial-gradient(circle,rgba(255,255,255,.2),transparent 60%);filter:blur(26px);pointer-events:none}
.qt-hero-left{display:flex;align-items:center;gap:14px;position:relative;z-index:1}
.qt-hero-logo{width:46px;height:46px;border-radius:var(--ui-radius,12px);flex-shrink:0;background:rgba(0,0,0,.18);backdrop-filter:blur(4px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),0 6px 18px rgba(0,0,0,.12);display:flex;align-items:center;justify-content:center}
.qt-hero-logo svg{width:24px;height:24px;color:#fff}
.qt-hero h1{font-size:var(--fs-2xl);font-weight:800;color:#fff;letter-spacing:.4px;display:flex;align-items:center;gap:8px;margin:0}
.qt-chip{font-size:var(--fs-xs);font-weight:700;letter-spacing:1.5px;color:#fff;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.35);padding:2px 9px;border-radius:var(--ui-radius,12px)}
.qt-hero p{font-size:var(--fs-base);color:rgba(255,255,255,.88);margin:4px 0 0}
.qt-cols{display:flex;gap:14px;padding:16px;align-items:flex-start;max-height:calc(94vh - 180px);overflow:auto}
.qt-col-left{width:300px;flex-shrink:0}
.qt-col-right{flex:1;min-width:0}
.qt-glass{position:relative;border-radius:var(--ui-radius,12px);padding:1px;margin-bottom:14px;background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.55),rgba(var(--admin-accent-2-rgb),.45) 50%,rgba(var(--admin-accent-3-rgb),.5));box-shadow:0 10px 30px rgba(var(--brand-indigo-rgb),.14)}
.qt-glass-in{position:relative;border-radius:var(--ui-radius,12px);background:rgba(255,255,255,.85);backdrop-filter:blur(10px);padding:15px 16px;overflow:hidden}
.qt-glass-in::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))}
.qt-card-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.qt-card-title{display:flex;align-items:center;gap:9px;font-size:var(--fs-lg);font-weight:800;color:var(--admin-text)}
.qt-step{width:26px;height:26px;border-radius:var(--ui-radius,12px);flex-shrink:0;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));color:#fff;font-size:var(--fs-base);font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(var(--admin-accent-2-rgb),.4)}
.qt-card-sub{font-size:var(--fs-sm);color:#6b74a8}
.qt-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qt-full{grid-column:1/-1}
.qt-f-label{font-size:var(--fs-sm);color:#6b74a8;margin-bottom:5px;font-weight:600}
.qt-req{color:var(--brand-rose)}
.qt-f-box{width:100%;min-height:36px;padding:8px 10px;border-radius:var(--ui-radius,12px);background:#fff;border:1px solid rgba(120,130,255,.22);font-size:var(--fs-base);color:var(--admin-text);font-family:inherit;outline:none;transition:all .16s}
.qt-f-box:focus{border-color:var(--admin-accent-2);box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.1)}
.qt-f-box[readonly]{background:#f8f8ff;color:#a5abd8}
.qt-customer-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.qt-customer-row select{min-height:36px;padding:0 8px;border-radius:var(--ui-radius,12px);background:#fff;border:1px solid rgba(120,130,255,.22);font-size:var(--fs-base);color:var(--admin-text);outline:none;min-width:0;width:100%}
.qt-customer-row button{min-height:36px;padding:0 10px;border-radius:var(--ui-radius,12px);border:1px solid rgba(var(--admin-accent-2-rgb),.5);background:rgba(var(--admin-accent-2-rgb),.08);color:var(--brand-violet);font-size:var(--fs-base);font-weight:700;white-space:nowrap;cursor:pointer;flex-shrink:0}
.qt-customer-row button:hover{background:rgba(var(--admin-accent-2-rgb),.15)}
.qt-info-strip{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:12px;padding:9px 12px;border-radius:var(--ui-radius,12px);font-size:var(--fs-sm);color:#6b74a8;background:linear-gradient(90deg,rgba(var(--admin-accent-rgb),.06),rgba(var(--admin-accent-2-rgb),.06),rgba(var(--admin-accent-3-rgb),.05));border:1px solid var(--admin-card-border)}
.qt-info-strip b{color:var(--admin-text);font-weight:600}
.qt-drop{display:flex;align-items:center;gap:12px;padding:13px;border-radius:var(--ui-radius,12px);cursor:pointer;border:2px dashed rgba(var(--admin-accent-2-rgb),.5);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.05),rgba(var(--admin-accent-3-rgb),.06));transition:all .18s ease}
.qt-drop:hover{border-color:var(--admin-accent-3);background:linear-gradient(135deg,rgba(var(--admin-accent-rgb),.1),rgba(var(--admin-accent-3-rgb),.12));box-shadow:0 6px 20px rgba(var(--admin-accent-3-rgb),.15)}
.qt-drop-ico{width:38px;height:38px;border-radius:var(--ui-radius,12px);flex-shrink:0;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(var(--admin-accent-2-rgb),.38)}
.qt-drop-ico svg{width:19px;height:19px;color:#fff}
.qt-drop-txt{flex:1;min-width:150px;font-size:var(--fs-base);font-weight:600;color:var(--admin-text)}
.qt-drop-txt b{background:linear-gradient(90deg,var(--admin-accent-ink),var(--brand-violet));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.qt-d-sub{font-size:var(--fs-xs);color:#6b74a8;font-weight:400;margin-top:2px;line-height:var(--lh-normal)}
.qt-table-wrap{overflow-x:auto;max-width:100%;border-radius:var(--ui-radius,12px);border:1px solid rgba(120,130,255,.22)}
.qt-grid-head,.qt-grid-row{display:grid;gap:4px;align-items:center;grid-template-columns:40px 1.1fr 1.2fr .6fr .6fr .7fr .5fr .5fr .6fr .7fr 24px;min-width:0}
.qt-grid-head{padding:7px 9px;font-size:var(--fs-xs);color:#6b74a8;font-weight:700;letter-spacing:.3px;background:linear-gradient(90deg,rgba(var(--admin-accent-rgb),.08),rgba(var(--admin-accent-2-rgb),.08),rgba(var(--admin-accent-3-rgb),.07));border-bottom:1px solid rgba(120,130,255,.22);cursor:grab;user-select:none}
.qt-grid-row{padding:6px 9px;font-size:var(--fs-base);border-top:1px solid rgba(120,130,255,.1);transition:background .14s}
.qt-grid-row:first-of-type{border-top:none}
.qt-grid-row:hover{background:linear-gradient(90deg,rgba(var(--admin-accent-2-rgb),.05),rgba(var(--admin-accent-3-rgb),.04))}
.qt-img{position:relative;width:40px;height:40px;border-radius:var(--ui-radius,12px);border:1px dashed rgba(var(--admin-accent-2-rgb),.4);display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;background:rgba(var(--admin-accent-2-rgb),.04);flex-shrink:0;justify-self:center}
.qt-img-empty{font-size:var(--fs-xl);color:#a5abd8;font-weight:700;line-height:1}
.qt-img img{width:40px;height:40px;object-fit:cover;display:none}
.qt-img.has-image img{display:block}
.qt-img.has-image .qt-img-empty{display:none}
.qt-img:hover{border-color:var(--admin-accent-2);background:rgba(var(--admin-accent-2-rgb),.08)}
.qt-cell-input{width:100%;padding:5px 6px;border-radius:var(--ui-radius,12px);font-size:var(--fs-sm);font-family:inherit;border:1px solid rgba(120,130,255,.22);background:#fff;color:var(--admin-text);outline:none;min-width:0;transition:border-color .15s,box-shadow .15s}
.qt-cell-input:focus{border-color:var(--admin-accent-2);box-shadow:0 0 0 3px rgba(var(--admin-accent-2-rgb),.1)}
.qt-cell-input::placeholder{color:#a5abd8}
.qt-cell-input[readonly]{background:#f8f8ff;color:#a5abd8}
.qt-cell-amount{font-weight:800;font-size:var(--fs-sm);white-space:nowrap;background:linear-gradient(90deg,var(--brand-violet),var(--brand-pink));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.qt-prod{color:var(--brand-violet);font-weight:700;cursor:pointer;white-space:nowrap;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis}
.qt-row-del{width:24px;height:24px;border-radius:var(--ui-radius,12px);border:none;cursor:pointer;background:transparent;color:#a5abd8;display:flex;align-items:center;justify-content:center;justify-self:end;transition:all .14s}
.qt-row-del:hover{background:rgba(var(--brand-rose-rgb),.12);color:var(--brand-rose)}
.qt-row-del svg{width:12px;height:12px}
.qt-add-row{display:flex;align-items:center;gap:5px;margin-top:10px;padding:6px 2px;cursor:pointer;font-size:var(--fs-base);font-weight:700;color:var(--admin-accent-2);background:none;border:none}
.qt-add-row:hover{color:var(--brand-rose)}
.qt-add-row svg{width:13px;height:13px}
.qt-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:11px 14px;border-radius:var(--ui-radius,12px);background:linear-gradient(90deg,rgba(var(--admin-accent-rgb),.07),rgba(var(--admin-accent-2-rgb),.07),rgba(var(--admin-accent-3-rgb),.06));border:1px solid rgba(120,130,255,.18);font-size:var(--fs-base);color:#6b74a8}
.qt-summary .qt-total b{font-size:var(--fs-2xl);font-weight:800;background:linear-gradient(90deg,var(--admin-accent-ink),var(--brand-violet),var(--brand-pink));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.qt-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 20px;background:rgba(255,255,255,.88);border-top:1px solid rgba(120,130,255,.22);position:relative}
.qt-footer::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3))}
.qt-hint{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:#6b74a8}
.qt-btns{display:flex;gap:10px}
.qt-btn{padding:10px 22px;border-radius:var(--ui-radius,12px);cursor:pointer;font-size:var(--fs-base);font-weight:700;transition:all .18s ease}
.qt-btn-cancel{border:1px solid rgba(120,130,255,.22);background:#fff;color:#6b74a8}
.qt-btn-cancel:hover{color:var(--admin-text);box-shadow:0 4px 14px rgba(120,130,255,.16)}
.qt-btn-save{display:flex;align-items:center;gap:7px;color:#fff;border:none;background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2),var(--admin-accent-3));box-shadow:0 6px 20px rgba(var(--admin-accent-2-rgb),.42)}
.qt-btn-save:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(var(--admin-accent-3-rgb),.5)}
@media(max-width:860px){.qt-cols{flex-direction:column}.qt-col-left{width:100%}}

/* ===== 制作明细浮窗（拖拽脱离 + 自由缩放）===== */
.qt-float{position:fixed;z-index:30;background:#fff;border:1px solid rgba(120,130,255,.42);border-radius:var(--ui-radius,12px);box-shadow:0 26px 80px rgba(20,15,60,.45);display:flex;flex-direction:column;overflow:hidden;min-width:520px;min-height:240px;padding:8px 9px 10px}
.qt-float .qt-table-wrap{border:none;border-radius:0;margin:0;flex:1;overflow:auto;min-height:140px}
.qt-float .qt-grid-head{cursor:grab;user-select:none;position:sticky;top:0;z-index:3;background:linear-gradient(90deg,var(--admin-accent-ink),var(--brand-violet),var(--brand-pink));color:#fff;border-bottom:none}
.qt-float .qt-grid-head:active{cursor:grabbing}
.qt-float .qt-add-row{margin-top:8px}
.qt-float .qt-summary{margin-top:6px}
.qt-float .qt-float-confirm{align-self:flex-end;margin-top:8px;padding:7px 22px;border:none;border-radius:var(--ui-radius,12px);background:linear-gradient(90deg,var(--admin-accent-ink),var(--brand-violet),var(--brand-pink));color:#fff;font-size:var(--fs-md);font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(var(--brand-violet-rgb),.28)}
.qt-float .qt-float-confirm:hover{filter:brightness(1.06)}
.qt-float-tip{color:#8a90c0;font-size:var(--fs-base);text-align:center;padding:22px 12px;line-height:var(--lh-relaxed)}
.qt-float-tip b{color:var(--admin-accent-2)}
/* 缩放手柄（四边 + 四角，透明，hover 高亮）*/
.qt-rs{position:absolute;z-index:6;transition:background .15s}
.qt-rs-n{top:0;left:50%;width:64px;height:5px;transform:translateX(-50%);cursor:ns-resize}
.qt-rs-s{bottom:0;left:50%;width:64px;height:5px;transform:translateX(-50%);cursor:ns-resize}
.qt-rs-e{right:0;top:50%;width:5px;height:64px;transform:translateY(-50%);cursor:ew-resize}
.qt-rs-w{left:0;top:50%;width:5px;height:64px;transform:translateY(-50%);cursor:ew-resize}
.qt-rs-ne{top:0;right:0;width:14px;height:14px;cursor:nesw-resize}
.qt-rs-nw{top:0;left:0;width:14px;height:14px;cursor:nwse-resize}
.qt-rs-se{bottom:0;right:0;width:14px;height:14px;cursor:nwse-resize}
.qt-rs-sw{bottom:0;left:0;width:14px;height:14px;cursor:nesw-resize}
.qt-rs:hover{background:linear-gradient(90deg,var(--admin-accent),var(--brand-violet));opacity:.55}
/* 虚线吸附区 */
.qt-snap-zone{position:fixed;z-index:29;border:2px dashed rgba(var(--admin-accent-ink-rgb),.55);border-radius:var(--ui-radius,12px);background:rgba(var(--admin-accent-ink-rgb),.05);display:flex;align-items:center;justify-content:center;pointer-events:none;box-sizing:border-box}
.qt-snap-zone span{color:var(--admin-accent-ink);font-size:var(--fs-base);font-weight:700;background:rgba(255,255,255,.94);padding:5px 12px;border-radius:var(--ui-radius,12px);box-shadow:0 2px 10px rgba(var(--admin-accent-ink-rgb),.18)}
/* 拖动时虚化 */
.qt-float.qt-dragging{opacity:.5;filter:grayscale(.3)}
/* 浮窗上层弹窗（产品选择/客户），确保显示在拖出的明细浮窗之上 */
#order-type-picker-modal,#customer-modal{z-index:40}
#cat-add-modal{z-index:50}

/* ===== 36. 外观主题选择器（系统设置 → 外观）===== */
.theme-card{grid-column:1/-1}
.theme-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:4px}
@media (max-width:980px){.theme-picker{grid-template-columns:1fr}}
.theme-option{position:relative;background:var(--admin-surface);border:1px solid var(--admin-card-border);border-radius:var(--ui-radius,12px);padding:14px;cursor:pointer;box-shadow:var(--admin-card-shadow);transition:transform .2s var(--spring),box-shadow .2s var(--spring),border-color .2s var(--spring)}
.theme-option:hover{transform:translateY(-2px);box-shadow:var(--admin-card-shadow-hover)}
.theme-option.active{border-color:var(--admin-accent);box-shadow:0 0 0 3px var(--admin-accent-soft),var(--admin-card-shadow-hover)}
.theme-option h3{margin:12px 0 4px;font-size:var(--fs-lg);font-weight:700;color:var(--admin-text)}
.theme-option p{margin:0;font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--admin-text-muted)}
.theme-preview{position:relative;height:104px;border-radius:var(--ui-radius,12px);overflow:hidden;display:flex;border:1px solid rgba(0,0,0,.06)}
.theme-preview .tp-side{width:26%;height:100%;display:block;flex:none}
.theme-preview .tp-body{flex:1;min-width:0;padding:10px;display:flex;flex-direction:column;gap:8px}
.theme-preview .tp-bar{height:12px;width:58%;border-radius:var(--ui-radius,12px);border:1px solid transparent;display:block}
.theme-preview .tp-cards{display:flex;gap:8px;flex:1;min-height:0}
.theme-preview .tp-cards i{flex:1;border-radius:var(--ui-radius,12px);border:1px solid transparent;display:block}
.theme-preview .tp-dot{position:absolute;right:10px;top:10px;width:10px;height:10px;border-radius:var(--ui-radius,12px)}
.theme-check{position:absolute;right:12px;bottom:12px;width:20px;height:20px;border-radius:var(--ui-radius,12px);background:linear-gradient(135deg,var(--admin-accent),var(--admin-accent-2));color:#fff;font-size:var(--fs-base);line-height:20px;text-align:center;display:none}
.theme-option.active .theme-check{display:block}
