/* ===== 经营总览 · 高端 SaaS 数据驾驶舱 ===== */

/* 视觉基底：浅灰绿底 + 顶部径向光晕 + 噪点纹理 */
body{background:linear-gradient(165deg,#edf4f0 0%,#eaf1ec 45%,#f5f9f6 100%)}
body::before{content:"";position:fixed;inset:0;background:radial-gradient(700px 460px at 18% -6%,rgba(60,160,110,.12),transparent 70%),radial-gradient(500px 360px at 95% 8%,rgba(60,160,110,.07),transparent 70%);pointer-events:none;z-index:-1}
body::after{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");opacity:.022;pointer-events:none;z-index:-1}

/* 玻璃拟态卡片 */
.card,.metric-card{background:rgba(255,255,255,.62);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.75);box-shadow:0 12px 40px rgba(31,83,59,.08);border-radius:16px;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1),border-color .3s cubic-bezier(.4,0,.2,1)}
.card:hover{transform:translateY(-4px);border-color:rgba(46,158,107,.4);box-shadow:0 22px 55px rgba(31,83,59,.15)}

/* 数据卡片：三层结构 */
.metrics{grid-template-columns:repeat(5,1fr)}
.metric-card{padding:14px 14px 12px;overflow:hidden;animation:cardIn .5s cubic-bezier(.4,0,.2,1) both}
.metric-card.wide{grid-column:span 2}
.metric-top{display:flex;justify-content:space-between;align-items:center}
.metric-name{color:#6c7f74;font-size:13px;font-weight:600}
.metric-icon{width:38px;height:38px;border-radius:11px;background:rgba(46,158,107,.1);display:grid;place-items:center}
.metric-icon svg{width:19px;height:19px}
.metric-main{display:flex;align-items:baseline;gap:10px;margin:14px 0 8px}
.metric-value{font-size:31px;font-weight:800;letter-spacing:-1.2px;color:#1a2f24}
.metric-card.wide .metric-value{font-size:38px}
.metric-delta{font-size:12px;padding:3px 9px;border-radius:20px;font-weight:600;white-space:nowrap}
.metric-delta.up{color:#1d7a55;background:rgba(46,158,107,.12)}
.metric-delta.down{color:#c0563a;background:rgba(232,145,90,.13)}
.metric-delta.flat{color:#98a39c;background:rgba(0,0,0,.05)}
.metric-spark-wrap{margin-top:8px}
.metric-spark{width:100%;height:42px;display:block}

/* 面积图 */
.area-chart{position:relative}
.area-chart svg{width:100%;height:210px;display:block}
.area-dot{transition:r .2s ease;cursor:pointer}
.area-axis{display:flex;justify-content:space-between;padding:4px 18px 16px;color:#9aa8a0;font-size:11px}

/* 环形进度图 */
.ring-wrap{display:flex;align-items:center;gap:24px;padding:22px 24px 28px}
.ring{width:150px;height:150px;border-radius:50%;flex:none;position:relative;box-shadow:0 10px 30px rgba(31,83,59,.1)}
.ring-hole{position:absolute;inset:20px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:50%;display:grid;place-items:center;align-content:center;box-shadow:inset 0 2px 8px rgba(0,0,0,.04)}
.ring-hole b{font-size:30px;font-weight:800;color:#1a2f24}
.ring-hole small{color:#8b9a92;font-size:11px;margin-top:2px}
.ring-legend{display:grid;gap:10px;flex:1}
.ring-legend-item{display:flex;align-items:center;gap:9px;font-size:12px}
.ring-legend-item i{grid-column:1;grid-row:1;width:10px;height:10px;border-radius:3px}
.ring-legend-item span{grid-column:2;grid-row:1;color:#55655b;white-space:nowrap}
.ring-legend-item b{grid-column:3;grid-row:1;color:#1a2f24;font-size:17px;font-weight:800}

/* 洞察模块 */
.insights{margin-bottom:17px}
.insight-card{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:16px;background:linear-gradient(120deg,#e7f5ed,#d7eee2);border:1px solid #a8d4bd;box-shadow:0 12px 36px rgba(46,158,107,.16)}
.insight-icon{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#176b49,#1e8057);color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 5px 14px rgba(23,107,73,.32)}
.insight-icon svg{width:21px;height:21px}
.insight-card p{margin:0;color:#355646;font-size:13px;line-height:1.7}
.insight-card p b{color:#146a48;font-weight:700}
.insight-tag{display:inline-block;color:#146a48;font-weight:700;background:rgba(20,106,72,.12);padding:3px 9px;border-radius:6px;font-size:12px;margin-right:8px;letter-spacing:.5px}

/* 侧边栏：深绿渐变 + 斜向光带 */
.sidebar{position:fixed;inset:0 auto 0 0;background:linear-gradient(165deg,#123f2d 0%,#15513a 45%,#1b6a4b 100%);overflow:hidden}
.sidebar::after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(103,201,149,.14),transparent 70%);top:-80px;right:-60px;pointer-events:none}
.nav{transition:transform .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1),color .3s}
.nav span svg{transition:transform .3s cubic-bezier(.4,0,.2,1)}
.nav:hover span svg{transform:scale(1.1)}
.nav:hover{background:rgba(255,255,255,.08);transform:translateX(2px)}
.nav.active{background:rgba(255,255,255,.14);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 3px 0 #67c995,0 4px 16px rgba(0,0,0,.12)}
.shop-avatar{background:linear-gradient(135deg,#2e9e6b,#1d7a55);box-shadow:0 0 0 3px rgba(103,201,149,.35),0 0 0 6px rgba(103,201,149,.12)}

/* 顶部：问候 + 时间切换 + 新建订单按钮 */
.greeting{display:block;color:#1d7a55;font-size:12px;font-weight:700;margin-bottom:5px;letter-spacing:.5px}
.range-switch{display:none;align-items:center;background:rgba(255,255,255,.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.7);border-radius:11px;padding:3px;margin-right:6px;box-shadow:0 4px 16px rgba(31,83,59,.06)}
.range-switch button{border:0;background:transparent;padding:6px 13px;border-radius:8px;font-size:12px;color:#6c7f74;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}
.range-switch button.active{background:#fff;color:#176b49;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.btn.primary{background:linear-gradient(135deg,#176b49,#1e8057);box-shadow:0 8px 22px rgba(23,107,73,.3);transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1),filter .3s}
.btn.primary:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 13px 30px rgba(23,107,73,.4)}

/* 动效 */
@keyframes cardIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

/* 骨架屏 */
.skeleton{background:linear-gradient(90deg,rgba(230,238,233,.6) 25%,rgba(245,249,247,.9) 50%,rgba(230,238,233,.6) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* 响应式 */
@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.metric-card.wide{grid-column:span 2}}
@media(max-width:620px){.metrics{grid-template-columns:1fr 1fr}.metric-card.wide{grid-column:span 2}.ring-wrap{flex-direction:column;align-items:center}.range-switch{display:none}}

/* 修复：SVG 固有宽度撑破 grid，加 min-width 约束 */
.grid-main>*{min-width:0}
.metric-card,.card{min-width:0}
.area-chart{overflow:hidden}
.metric-spark{max-width:100%}
.ring-wrap{min-width:0}

/* 左下角当前登录：胶囊形状 */
.side-foot{margin-top:auto;border-top:0;padding:9px 12px 9px 9px;display:flex;align-items:center;gap:10px;border-radius:999px;background:rgba(255,255,255,.1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14);box-shadow:0 4px 16px rgba(0,0,0,.12);transition:background .3s cubic-bezier(.4,0,.2,1)}
.side-foot:hover{background:rgba(255,255,255,.16)}
.side-foot>div:nth-child(2){flex:1;min-width:0}
.side-foot b{font-size:12px;color:#fff;display:block}
.side-foot small{color:#a9c3b7;font-size:10px}
.shop-avatar{width:34px;height:34px;border-radius:50%;flex:none}
#logout{width:30px;height:30px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#cfe0d7;display:grid;place-items:center;cursor:pointer;font-size:14px;transition:all .3s cubic-bezier(.4,0,.2,1);flex:none}
#logout:hover{background:rgba(255,255,255,.24);color:#fff;transform:scale(1.08)}

/* 最近订单 · 订单日期列：上下两行精致版 */
.recent-date b{display:block;font-size:14px;font-weight:700;color:#1a2f24;line-height:1.2}
.recent-date small{display:block;font-size:11px;color:#94a39c;line-height:1.3;margin-top:3px}
.recent-seq{color:#94a39c;font-weight:600;width:32px}

/* 最近订单表格表头不换行（修复"序号"竖排） */
#dashboard-page table th{white-space:nowrap}

/* ===== 订单管理页 · 玻璃拟态 ===== */
.orders-overview{display:grid;grid-template-columns:minmax(230px,290px) 1fr 1fr;grid-template-areas:"kpis status payment";gap:16px;margin-bottom:16px;align-items:start}
.orders-kpis{grid-area:kpis;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.orders-kpis .metric-card{margin:0}
.orders-kpis .metric-card.wide{grid-column:auto}
.orders-status-visual{grid-area:status;margin:0}
.orders-payment-visual{grid-area:payment;margin:0}

/* 快速状态标签 */
.orders-quick-status{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.quick-status-chip{display:flex;align-items:center;gap:8px;padding:8px 15px;border-radius:999px;background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.75);box-shadow:0 4px 14px rgba(31,83,59,.06);cursor:pointer;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1)}
.quick-status-chip:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(31,83,59,.12)}
.quick-status-chip i{width:8px;height:8px;border-radius:50%;flex:none}
.quick-status-chip span{font-size:13px;color:#55655b}
.quick-status-chip b{font-size:15px;font-weight:800;color:#1a2f24}

/* 统计条：浅色文字行 */
.orders-result-meta{background:transparent;box-shadow:none;border:0;color:#5c6d63;padding:8px 4px;margin-bottom:14px}
.orders-result-meta span{color:#5c6d63;font-weight:400;font-size:13px}
.orders-result-meta b{color:#1d7a55;font-weight:700}
.orders-result-meta small{color:#94a39c;font-size:11px}

/* 状态环形图图例按钮化 */
.ring-legend-item{border:0;background:transparent;cursor:pointer;display:grid;grid-template-columns:auto auto auto 1fr auto;align-items:center;column-gap:8px;padding:6px 8px;border-radius:8px;transition:background .2s;text-align:left;width:100%}
.ring-legend-item:hover{background:rgba(46,158,107,.08)}
.ring-legend-item em{grid-column:5;grid-row:1;justify-self:end;color:#fff;background:#5fb98c;font-style:normal;font-size:12px;padding:3px 11px;border-radius:999px;min-width:42px;text-align:center}

/* 回款完成度 */
.orders-payment-ring-wrap{flex-direction:column;align-items:center;gap:14px}
.payment-ring{width:140px;height:140px}
.payment-three{display:grid;gap:8px;width:100%}
.payment-item{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.6)}
.payment-item b{font-size:16px;font-weight:800}
.payment-item.settled b{color:#2e9e6b}
.payment-item.unpaid b{color:#e8915a}
.payment-item.overdue b{color:#d6635c}
.payment-item span{font-size:12px;color:#7b8a82}
.reminder-btn{margin-top:10px;width:100%;background:linear-gradient(135deg,#176b49,#1e8057);box-shadow:0 8px 20px rgba(23,107,73,.3)}
.payment-empty-hint{font-size:12px;color:#8b9a92;text-align:center;display:block;padding:8px}

@media(max-width:1050px){.orders-overview{grid-template-columns:1fr;grid-template-areas:none}.orders-kpis{grid-area:auto;grid-template-columns:repeat(2,1fr)}.orders-kpis .metric-card.wide{grid-column:auto}.orders-status-visual,.orders-payment-visual{grid-area:auto}}
@media(max-width:760px){.orders-kpis{grid-template-columns:repeat(2,1fr)}.orders-kpis .metric-card.wide{grid-column:auto}}

/* 订单表格行 hover 左侧竖条 */
#orders-body tr{position:relative;transition:background .2s ease}
#orders-body tr:hover td{background:rgba(46,158,107,.05)}
#orders-body tr:hover td:first-child{box-shadow:inset 3px 0 0 #2e9e6b}

/* 客户头像 */
.order-customer-cell{display:flex;align-items:center;gap:8px;min-width:0;max-width:260px}
.order-customer-cell span{width:28px;height:28px;border-radius:50%;background:#e6f3ec;color:#1d7a55;display:grid;place-items:center;font-weight:700;font-size:12px;flex:none}
.order-customer-cell b{font-weight:600;color:#2a3b31;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* 自定义滚动条 */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:rgba(46,158,107,.35);border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:rgba(46,158,107,.55)}
::-webkit-scrollbar-track{background:transparent}

/* 空状态 */
.orders-no-result{display:grid;place-items:center;justify-items:center;gap:12px;padding:42px!important;text-align:center}
.orders-empty-icon{width:72px;height:72px;color:#c4d9ce;animation:floaty 3s ease-in-out infinite}
.orders-no-result .empty-title{font-size:16px;font-weight:700;color:#466354}
.orders-no-result .empty-sub{font-size:12px;color:#9aa8a0;max-width:280px;line-height:1.7}
.pulse-btn{animation:pulse 2s infinite}

@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(46,158,107,.4)}70%{box-shadow:0 0 0 12px rgba(46,158,107,0)}}

/* 表头排序 */
.th-sort{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:0;font-weight:500}
.th-sort:hover{color:#176b49}
.sort-arrow{font-size:10px;color:#176b49;min-width:8px}

/* 筛选胶囊标签 */
.orders-filter-chips{display:flex;gap:8px;flex-wrap:wrap;padding:2px 0 12px}
.orders-filter-chips:empty{display:none}
.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#e6f3ec;color:#1d7a55;font-size:12px}
.filter-chip b{font-weight:700}
.filter-chip button{border:0;background:transparent;color:#5c7e6d;cursor:pointer;font-size:14px;padding:0 2px;line-height:1}
.filter-chip button:hover{color:#c0503a}

/* 数据卡片统一高度 + 字体层次分明 */
.metric-card{display:flex;flex-direction:column;min-height:104px}
.metric-spark-wrap{margin-top:auto}
.metric-name{font-size:12px;font-weight:600;letter-spacing:.3px}
.metric-value{font-size:30px}
.metric-card.wide .metric-value{font-size:34px}
.metric-delta{font-size:11px}
.metric-main{margin:12px 0 8px}

/* 状态/回款卡片紧凑 + 图例数字与文字同行调大 */
.orders-status-visual .ring{width:108px;height:108px}
.orders-status-visual .ring-hole{inset:15px}
.orders-status-visual .ring-hole b{font-size:22px}
.orders-status-visual .ring-legend{gap:5px}
.orders-status-visual .ring-legend-item{font-size:14px;padding:4px 8px;gap:8px}
.orders-status-visual .ring-legend-item i{grid-column:1;grid-row:1;width:10px;height:10px;border-radius:3px}
.ring-legend-item span{grid-column:2;grid-row:1;color:#2a3b31;font-size:14px;white-space:nowrap}
.ring-legend-item b{grid-column:3;grid-row:1;color:#1a2f24;font-weight:800;font-size:17px}
.ring-legend-item em{grid-column:5;grid-row:1;justify-self:end;color:#fff;background:#5fb98c;font-size:12px;padding:3px 11px;border-radius:999px;min-width:42px;text-align:center}
.orders-payment-visual .payment-ring{width:96px;height:96px}
.orders-payment-visual .ring-hole{inset:13px}
.payment-three{gap:6px}
.payment-item{padding:7px 11px}
.payment-item b{font-size:15px}
.payment-item span{font-size:13px}

/* 订单数据卡片压缩，与右侧高度对齐 */
.orders-kpis .metric-card{padding:12px 14px 10px;min-height:0}
.orders-kpis .metric-icon{width:30px;height:30px;border-radius:9px}
.orders-kpis .metric-icon svg{width:16px;height:16px}
.orders-kpis .metric-value{font-size:24px}
.orders-kpis .metric-main{margin:8px 0 6px;gap:8px}
.orders-kpis .metric-spark{height:28px}
.orders-kpis .metric-name{font-size:12px}
.orders-kpis .metric-delta{font-size:10px;padding:2px 7px}

/* 三列等高拉伸 + 右侧内容垂直居中 */
.orders-overview{align-items:stretch}
.orders-status-visual,.orders-payment-visual{display:flex;flex-direction:column;justify-content:center}
.orders-kpis .metric-spark{height:20px}
.orders-kpis .metric-icon{width:26px;height:26px}
.orders-kpis .metric-icon svg{width:14px;height:14px}
.orders-kpis .metric-value{font-size:22px}

/* 状态分布 + 回款完成度：字体放大 + 层次分明 */
.orders-status-visual h3,.orders-payment-visual h3{font-size:16px;font-weight:700;color:#1f332a}
.orders-status-visual p,.orders-payment-visual p{font-size:12px}
.ring-hole b{font-size:26px}
.ring-hole small{font-size:12px}
.payment-item b{font-size:18px}
.payment-item span{font-size:14px}

/* ===== 每日记账页 · 玻璃拟态 ===== */
.daily-filter{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 20px;margin-bottom:16px;background:rgba(255,255,255,.62);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.75);border-radius:16px;box-shadow:0 12px 36px rgba(31,83,59,.07);flex-wrap:wrap}
.period-switch{display:flex;gap:4px;background:#f1f6f3;border-radius:999px;padding:4px}
.period-switch button{border:0;background:transparent;color:#64756c;padding:7px 16px;border-radius:999px;font-size:13px;cursor:pointer;transition:.3s cubic-bezier(.4,0,.2,1)}
.period-switch button.active{background:#1d7a55;color:#fff;box-shadow:0 4px 12px rgba(29,122,85,.3)}
.custom-range{display:flex;align-items:center;gap:10px}
.custom-range label{display:flex;align-items:center;gap:6px;color:#8b9a92;font-size:12px}
.custom-range input[type=date]{border:1px solid #e2ece6;border-radius:8px;padding:7px 10px;font-size:13px;color:#1f332a;background:#fff;outline:none;transition:.3s}
.custom-range input[type=date]:focus{border-color:#62a985;box-shadow:0 0 0 3px #edf7f1}
.daily-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}
.daily-metric{border-top:3px solid transparent}
.daily-metric.today{border-top-color:#2e9e6b}
.daily-metric.month{border-top-color:#e8915a}
.daily-metric.total{border-top-color:#176b49}
.metric-sub{font-size:12px;color:#8b9a92;margin-top:6px}
.daily-count-pill{display:inline-block;padding:5px 14px;border-radius:999px;background:#e6f3ec;color:#1d7a55;font-size:12px;font-weight:700}
.method-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.method-badge.cash{background:#f0f3f1;color:#64756c}
.method-badge.wechat{background:#e6f5ed;color:#197049}
.method-badge.alipay{background:#e8f1fb;color:#2f6bb0}
.method-badge.card{background:#eef0f3;color:#4a5568}
.method-badge.credit{background:#fff1e0;color:#c07020}
.daily-empty{display:grid;place-content:center;justify-items:center;gap:12px;padding:48px 20px;text-align:center}
.daily-empty-icon{width:76px;height:76px;color:#c4d9ce;animation:floaty 3s ease-in-out infinite}
.daily-empty span{color:#466354;font-size:16px;font-weight:700}
.daily-empty small{color:#9aa8a0;font-size:13px;max-width:320px;line-height:1.7}
.daily-total-row td{background:#f0f8f4;font-weight:700;border-top:2px solid #2e9e6b}
.daily-total-row td:last-child{color:#1d7a55;font-size:16px}
.daily-table tr:hover td{background:rgba(46,158,107,.05)}
.daily-table tr:hover td:first-child{box-shadow:inset 3px 0 0 #2e9e6b}
.daily-table .center{text-align:center}
.daily-table .money.dim{color:#8b9a92;font-weight:400}
.daily-date b{display:block;font-weight:700;color:#24382f}
@media(max-width:900px){.daily-summary{grid-template-columns:1fr}.custom-range{margin-left:0}}

/* 每日记账字体统一 */
.daily-result-head h2{font-size:17px;font-weight:700}
.daily-result-head p{font-size:12px;color:#8b9a92;margin:4px 0 0}
.daily-metric .metric-name{font-size:13px}
.daily-metric .metric-value{font-size:28px}
.daily-metric .metric-sub{font-size:12px}
.daily-table th{font-size:12px;font-weight:600;color:#55655b}
.daily-table td{font-size:13px}
.daily-table .project b{font-size:13px}
.daily-table .project small{font-size:11px}
.daily-table .daily-date b{font-size:13px}
.period-switch button{font-size:13px}
.custom-range input[type=date]{font-size:13px}
.daily-filter .custom-range label{font-size:12px}
.daily-filter .custom-range>span{font-size:12px;color:#8b9a92}
.daily-count-pill{font-size:12px}
.method-badge{font-size:12px}
.daily-empty span{font-size:16px}
.daily-empty small{font-size:13px}

/* ===== 员工绩效页 · 玻璃拟态 ===== */
.perf-core-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}
.perf-sub-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.perf-core-card{border-left:4px solid #2e9e6b;min-height:118px}
.perf-core-card.commission{border-left-color:#e8915a}
.perf-core-card .metric-value{font-size:34px}
.perf-sub-card .metric-value{font-size:24px}
.perf-bar-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;transition:transform .3s cubic-bezier(.4,0,.2,1),background .3s}
.perf-bar-row:hover{background:rgba(46,158,107,.06);transform:translateX(4px)}
.perf-bar-row.gold{background:linear-gradient(90deg,rgba(212,175,55,.12),transparent)}
.perf-bar-row.silver{background:linear-gradient(90deg,rgba(160,170,180,.1),transparent)}
.perf-bar-row.bronze{background:linear-gradient(90deg,rgba(205,127,50,.1),transparent)}
.perf-rank-medal{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;color:#8b9a92;background:#f0f3f1;flex:none}
.perf-rank-medal.gold{background:linear-gradient(135deg,#f5d06a,#d4af37);color:#fff;box-shadow:0 0 0 3px rgba(212,175,55,.3)}
.perf-rank-medal.silver{background:linear-gradient(135deg,#e2e8ef,#a0aab4);color:#fff;box-shadow:0 0 0 3px rgba(160,170,180,.3)}
.perf-rank-medal.bronze{background:linear-gradient(135deg,#e8a56b,#cd7f32);color:#fff;box-shadow:0 0 0 3px rgba(205,127,50,.3)}
.perf-bar-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;background:#2e9e6b;flex:none}
.perf-bar-row.gold .perf-bar-avatar{box-shadow:0 0 0 3px rgba(212,175,55,.4)}
.perf-bar-main{flex:1;min-width:0}
.perf-bar-name{font-size:14px;font-weight:600;color:#24382f;margin-bottom:5px}
.perf-crown{color:#d4af37;margin-right:4px}
.perf-bar-track{height:8px;background:#edf1ee;border-radius:10px;overflow:hidden}
.perf-bar-track i{display:block;height:100%;background:linear-gradient(90deg,#2e9e6b,#5bb98c);border-radius:10px}
.perf-bar-row>b{font-size:15px;font-weight:800;color:#1a2f24;flex:none}
.perf-bar-row.gold>b{color:#b8912e}
.perf-bar-row.silver>b{color:#7a8793}
.perf-bar-row.bronze>b{color:#b06f28}
.perf-trend-svg{width:100%;height:auto;display:block}
.perf-grid-line{stroke:#eef2ef;stroke-width:1;stroke-dasharray:4 4}
.perf-dot{fill:#e8915a;stroke:#fff;stroke-width:1.5}
.perf-x-label{font-size:10px;fill:#9aa8a0}
.perf-bar-row .perf-bar-track i.gold{background:linear-gradient(90deg,#f5d06a,#d4af37)}
@media(max-width:1050px){.perf-sub-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.perf-core-row,.perf-sub-row{grid-template-columns:1fr}}

/* 修复绩效卡片容器（覆盖 extended.css 的 6 列 grid） */
#perf-metrics{display:block;margin:16px 0}
.perf-core-row,.perf-sub-row{display:grid;gap:16px}
.perf-core-row{grid-template-columns:repeat(2,1fr);margin-bottom:16px}
.perf-sub-row{grid-template-columns:repeat(4,1fr)}
.perf-core-card,.perf-sub-card{display:flex;flex-direction:column;min-height:104px}
.perf-core-card .metric-main,.perf-sub-card .metric-main{margin:10px 0 4px}

/* 提成排行：前三名固定 + 其余滚动 */
.perf-scroll-all{max-height:260px;overflow-y:auto;display:grid;gap:6px;padding-right:4px}
.perf-scroll-all .perf-bar-row{padding:8px 14px}

/* 前三名奖牌图标（emoji）透明显示 */
.perf-rank-medal.gold,.perf-rank-medal.silver,.perf-rank-medal.bronze{background:transparent;box-shadow:none;font-size:22px;width:auto;height:auto;line-height:1}

/* 员工头像通用组件 */
.emp-avatar{display:inline-grid;place-items:center;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,#176b49,#2a8f63);color:#fff;font-weight:800;flex:none;overflow:hidden;vertical-align:middle;user-select:none;font-family:inherit;text-shadow:0 1px 2px rgba(0,0,0,.18)}
.employee-avatar-upload{position:relative;width:72px;height:72px;margin:0 auto 4px;cursor:pointer;border-radius:50%}
.employee-avatar-upload img,.employee-avatar-upload .emp-avatar{width:72px;height:72px;border-radius:50%;object-fit:cover}
.employee-avatar-upload .avatar-camera{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:#1d7a55;color:#fff;display:grid;place-items:center;font-size:12px;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.employee-avatar-upload input{display:none}

/* 绩效明细员工列 + 员工管理头像适配 */
.perf-table-employee{display:flex;align-items:center;gap:8px}
.perf-table-employee b{font-weight:600;color:#24382f}
.employee-photo{overflow:hidden;padding:0}
.employee-photo .emp-avatar{width:100%;height:100%;font-size:16px}
.employee-person .emp-avatar{flex:none}
.order-creator .emp-avatar{flex:none}
.perf-bar-avatar.emp-avatar{flex:none}

/* 收支流水录入人头像 */
.tx-employee-cell{display:flex;align-items:center;gap:7px}
.tx-employee-cell .emp-avatar{flex:none}

/* 客户头像适配 */
.customer-avatar,.member-avatar{overflow:hidden;padding:0}
.customer-avatar .emp-avatar,.member-avatar .emp-avatar{width:100%;height:100%;font-size:16px;border-radius:inherit}
.table-person .emp-avatar,.order-customer-cell .emp-avatar{flex:none}

/* 供应商头像适配 */
.supplier-detail-avatar,.supplier-simple-avatar{overflow:hidden;padding:0}
.supplier-detail-avatar .emp-avatar,.supplier-simple-avatar .emp-avatar,.supplier-table-name .emp-avatar{width:100%;height:100%;border-radius:inherit}
.supplier-table-name .emp-avatar{flex:none}

/* ===== 经营总览 · 待办预警 ===== */
.dashboard-alerts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.dashboard-alert{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.62);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 10px 28px rgba(31,83,59,.06);cursor:pointer;text-align:left;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s;border-left:3px solid #2e9e6b}
.dashboard-alert:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(31,83,59,.12)}
.dashboard-alert.warn{border-left-color:#e8915a}
.dashboard-alert .alert-icon{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#1d7a55,#2e9e6b);color:#fff;display:grid;place-items:center;font-size:16px;font-weight:700;flex:none;box-shadow:0 4px 10px rgba(29,122,85,.25)}
.dashboard-alert.warn .alert-icon{background:linear-gradient(135deg,#e8915a,#d98324)}
.dashboard-alert .alert-body{min-width:0}
.dashboard-alert .alert-body small{display:block;font-size:12px;color:#7b8a82;font-weight:600}
.dashboard-alert .alert-body b{display:block;font-size:20px;font-weight:800;color:#1a2f24;margin:3px 0}
.dashboard-alert .alert-body em{display:block;font-size:11px;color:#9aa8a0;font-style:normal}

/* ===== 月度趋势 + 账龄 ===== */
.dashboard-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.dash-monthly-chart{display:flex;align-items:flex-end;justify-content:space-around;gap:10px;height:180px;padding:12px 6px 0}
.dash-monthly-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;min-width:0}
.dash-monthly-bars{flex:1;width:100%;max-width:60px;display:flex;align-items:flex-end;justify-content:center;gap:6px}
.dash-monthly-bar{width:16px;border-radius:5px 5px 0 0;transition:height .6s cubic-bezier(.4,0,.2,1)}
.dash-monthly-bar.sales{background:linear-gradient(180deg,#5b8def,#3f6fd1)}
.dash-monthly-bar.profit{background:linear-gradient(180deg,#e8a04a,#d98324)}
.dash-monthly-label{font-size:12px;color:#7a857e}
.dash-chart-legend{display:flex;gap:18px;justify-content:center;padding-top:10px;border-top:1px dashed #e6ebe7;margin-top:10px;font-size:12px;color:#7a857e}
.dash-chart-legend .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.dash-chart-legend .dot.sales{background:#2e9e6b}
.dash-chart-legend .dot.profit{background:#d98324}

/* 应收账龄 */
.dash-aging{display:flex;flex-direction:column;gap:14px;padding:16px 6px}
.dash-aging-row{display:flex;align-items:center;gap:12px}
.dash-aging-row span{font-size:12px;color:#7b8a82;width:66px;flex:none}
.dash-aging-bar{flex:1;height:10px;background:#edf1ee;border-radius:10px;overflow:hidden}
.dash-aging-bar i{display:block;height:100%;border-radius:10px;transition:width .6s cubic-bezier(.4,0,.2,1)}
.dash-aging-row b{font-size:13px;font-weight:700;color:#1a2f24;flex:none}

/* 最近订单 */
.recent-orders-card{margin-top:16px}
.dash-recent-list{display:flex;flex-direction:column;gap:8px}
.dash-recent-row{display:flex;align-items:center;gap:14px;padding:11px 14px;border-radius:11px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.75);cursor:pointer;text-align:left;transition:background .2s,transform .2s}
.dash-recent-row:hover{background:rgba(46,158,107,.06);transform:translateX(3px)}
.recent-no{font-size:12px;font-weight:700;color:#1d7a55;flex:none;min-width:90px}
.dash-recent-row>b{font-size:13px;color:#24382f;flex:none;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recent-proj{font-size:12px;color:#8b9a92;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recent-amount{font-size:14px;font-weight:800;color:#1a2f24;flex:none}
.recent-status{font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px;flex:none}
.recent-status.paid{background:#e6f3ec;color:#1d7a55}
.recent-status.unpaid{background:#fff0e7;color:#c56f35}
.dash-recent-row em{font-size:11px;color:#8b9a92;font-style:normal;flex:none;padding:3px 8px;background:#f0f3f1;border-radius:6px}

/* 响应式 */
@media(max-width:1050px){.dashboard-alerts{grid-template-columns:repeat(2,1fr)}.dashboard-grid2{grid-template-columns:1fr}}
@media(max-width:620px){.dashboard-alerts{grid-template-columns:1fr 1fr}.dashboard-alert{padding:11px 12px}.dash-recent-row{gap:8px}.recent-no{min-width:70px;font-size:11px}.recent-proj{display:none}}
