:root{
  --primary:#6f7a86;        /* 高级灰主色 */
  --primary-dark:#525c68;
  --primary-light:#e6eaee;
  --accent:#9aa4ae;
  --bg:#eef1f3;             /* 冷灰背景 */
  --card:#ffffff;
  --text:#2c3138;
  --muted:#7c8691;
  --border:#d5dbe1;
  --success:#4c9a6f;
  --danger:#d4574f;
  --warning:#e6a23c;
  --info:#5b8db8;
  --shadow:0 4px 20px rgba(70,82,96,.10);
  --radius:12px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:14px;color:var(--text);background:#fff;border:1px solid var(--border);border-radius:8px;padding:9px 12px;width:100%;transition:border .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary)}
i{color:var(--danger);font-style:normal}

/* ===== 登录页 ===== */
.login-view{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8d5bd,#f5efe6 60%,#d9b58d);position:relative}
.login-card{width:400px;background:#fff;border-radius:20px;box-shadow:var(--shadow);padding:40px 38px;text-align:center}
.login-logo{margin-bottom:26px}
.logo-mark{width:58px;height:58px;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--primary-dark));color:#fff;font-size:30px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(96,110,128,.35)}
.login-logo h1{font-size:24px;margin-top:14px;color:var(--primary-dark)}
.login-sub{color:var(--muted);font-size:13px;margin-top:4px}
.login-form{text-align:left}
.login-form .field{margin-bottom:14px}
.login-form label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.login-err{color:var(--danger);font-size:13px;min-height:18px;margin-bottom:8px}
.login-hint{text-align:center;color:var(--muted);font-size:12px;margin-top:14px}

/* ===== 布局 ===== */
.app-view{display:flex;height:100vh;overflow:hidden}
.sidebar{width:235px;background:#2e2a24;color:#ddd;display:flex;flex-direction:column;flex-shrink:0}
.side-brand{display:flex;align-items:center;gap:12px;padding:22px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.side-brand .logo-mark{width:42px;height:42px;font-size:22px}
.brand-text{display:flex;flex-direction:column}
.brand-text strong{font-size:15px;color:#fff}
.brand-text span{font-size:11px;color:#a89b8a;letter-spacing:.5px}
.side-nav{flex:1;padding:14px 10px;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;color:#b9b0a3;padding:12px 14px;border-radius:9px;font-size:14.5px;margin-bottom:4px;position:relative;transition:background .2s,color .2s}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item.active{background:var(--primary-dark);color:#fff;font-weight:600}
.nav-icon{font-size:17px;width:22px;text-align:center}
.nav-badge{background:var(--danger);color:#fff;font-size:11px;border-radius:20px;padding:1px 7px;margin-left:auto;font-weight:600}
.side-foot{padding:14px}
.user-box{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.05);padding:10px 12px;border-radius:10px}
.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600}
.user-info{flex:1;display:flex;flex-direction:column;overflow:hidden}
.user-info strong{font-size:13.5px;color:#fff}
.user-info span{font-size:11.5px;color:#a89b8a}
.logout-btn{background:none;border:none;color:#a89b8a;font-size:18px;padding:4px}
.logout-btn:hover{color:var(--danger)}

.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.topbar{height:60px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0}
.topbar-title{font-size:18px;font-weight:600;color:var(--primary-dark)}
.topbar-right{display:flex;align-items:center;gap:12px}
.clock{font-size:14px;color:var(--muted)}
.icon-btn{background:var(--primary-light);border:none;border-radius:9px;padding:8px 10px;font-size:16px}
.icon-btn:hover{background:#e9d4bd}
.content{flex:1;overflow-y:auto;padding:22px 24px}
.view{animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ===== 组件 ===== */
.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}
.panel-head h3{font-size:15px;color:var(--primary-dark)}
.panel-body{padding:20px}
.panel-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:1100px){.panel-row{grid-template-columns:1fr}}

/* 统计卡片 */
.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:20px}
@media(max-width:1200px){.stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.stat-grid{grid-template-columns:1fr 1fr}}
.stat-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.stat-card::after{content:"";position:absolute;right:-20px;top:-20px;width:70px;height:70px;border-radius:50%;background:var(--primary-light);opacity:.5}
.stat-card .stat-icon{font-size:22px;margin-bottom:8px}
.stat-card .stat-num{font-size:26px;font-weight:700;color:var(--primary-dark)}
.stat-card .stat-label{font-size:13px;color:var(--muted);margin-top:4px}
.stat-card .stat-sub{font-size:12px;color:var(--success);margin-top:2px}

/* 工具栏 */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.toolbar-right{display:flex;align-items:center;gap:10px}
.search-input{width:230px}
.select{width:auto;min-width:130px}
.count-text{font-size:14px;color:var(--muted)}
.count-text b{color:var(--primary-dark)}

/* 按钮 */
.btn{border:none;border-radius:9px;padding:10px 18px;font-size:14px;font-weight:500;background:#fff;color:var(--text);border:1px solid var(--border);transition:all .2s}
.btn:hover{background:#f7f2ea}
.btn-primary{background:var(--primary);color:#fff;border:1px solid var(--primary)}
.btn-primary:hover{background:var(--primary-dark)}
.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn-danger:hover{opacity:.85}
.btn-block{width:100%}
.link-btn{background:none;border:none;color:var(--primary);font-size:13px}
.link-btn:hover{text-decoration:underline}

/* 表格 */
.table-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.table{width:100%;border-collapse:collapse}
.table th{background:#faf7f2;text-align:left;padding:13px 16px;font-size:13px;color:var(--muted);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap}
.table td{padding:13px 16px;border-bottom:1px solid #f2ece2;font-size:14px;vertical-align:middle}
.table tr:last-child td{border-bottom:none}
.table tbody tr:hover{background:#fdfaf5}
.table .actions{display:flex;gap:6px}
.act-btn{background:none;border:none;padding:5px 7px;border-radius:6px;font-size:13px}
.act-btn:hover{background:var(--primary-light)}
.act-btn.del:hover{background:#f9e3e1;color:var(--danger)}
.customer-cell{display:flex;align-items:center;gap:11px;cursor:pointer}
.cust-ava{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--accent),var(--primary-dark));flex-shrink:0}
.cust-name{font-weight:600;color:var(--text)}
.cust-meta{font-size:12px;color:var(--muted)}

/* 标签 / 徽章 */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500;background:var(--primary-light);color:var(--primary-dark);margin-right:4px;margin-bottom:3px}
.badge.gray{background:#eee;color:#777}
.badge.green{background:#e3f3e9;color:#3d7d57}
.badge.red{background:#fbe5e3;color:#c2453d}
.badge.blue{background:#e7eef5;color:#3f6f9b}
.badge.orange{background:#fdf0dd;color:#b57a12}
.stage-pill{display:inline-block;padding:3px 11px;border-radius:8px;font-size:12.5px;font-weight:500}
.stage-0{background:#e6e6e6;color:#777}
.stage-1{background:#e7eef5;color:#3f6f9b}
.stage-2{background:#fdf0dd;color:#b57a12}
.stage-3{background:#fde8e6;color:#c2453d}
.stage-4{background:#e3f3e9;color:#3d7d57}
.stage-5{background:#f2e7e6;color:#8a6a68}
.pri-high{color:var(--danger);font-weight:600}
.pri-mid{color:var(--warning);font-weight:600}
.pri-low{color:var(--muted)}

/* 空状态 */
.empty{text-align:center;color:var(--muted);padding:50px 20px;font-size:14px}

/* ===== 看板 ===== */
.kanban{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;overflow-x:auto;padding-bottom:10px}
@media(max-width:1200px){.kanban{grid-template-columns:repeat(3,1fr)}}
.kanban-col{background:#f7f3ec;border:1px solid var(--border);border-radius:12px;min-height:300px;display:flex;flex-direction:column}
.kb-head{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.kb-head .kb-title{font-weight:600;font-size:14px;color:var(--primary-dark)}
.kb-head .kb-count{background:#fff;border-radius:20px;padding:1px 9px;font-size:12px;color:var(--muted)}
.kb-body{padding:10px;flex:1;display:flex;flex-direction:column;gap:9px;overflow-y:auto}
.kb-card{background:#fff;border-radius:10px;padding:12px;box-shadow:0 2px 6px rgba(0,0,0,.05);cursor:pointer;transition:box-shadow .2s;border:1px solid transparent}
.kb-card:hover{box-shadow:0 4px 12px rgba(120,90,60,.15);border-color:var(--primary)}
.kb-card .kb-name{font-weight:600;font-size:14px;margin-bottom:5px}
.kb-card .kb-cust{font-size:12px;color:var(--muted);margin-bottom:6px}
.kb-card .kb-amount{font-size:14px;color:var(--primary-dark);font-weight:600}
.kb-card .kb-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.kb-actions{display:flex;gap:4px}
.kb-arrow{background:var(--primary-light);border:none;border-radius:6px;padding:3px 7px;font-size:12px}
.kb-arrow:hover{background:#e9d4bd}

/* ===== 时间轴 ===== */
.timeline{position:relative;padding-left:28px;max-width:960px}
.timeline::before{content:"";position:absolute;left:10px;top:6px;bottom:6px;width:2px;background:var(--border)}
.tl-item{position:relative;margin-bottom:22px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow)}
.tl-item::before{content:"";position:absolute;left:-23px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 2px var(--accent)}
.tl-head{display:flex;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}
.tl-cust{font-weight:600;color:var(--primary-dark)}
.tl-time{font-size:12px;color:var(--muted)}
.tl-type{font-size:12px}
.tl-content{font-size:14px;color:var(--text);line-height:1.6}
.tl-next{font-size:12.5px;color:var(--warning);margin-top:8px;background:#fdf6e8;padding:5px 10px;border-radius:7px;display:inline-block}

/* ===== 弹窗 ===== */
.modal-mask{position:fixed;inset:0;background:rgba(40,35,30,.5);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}
.modal{background:#fff;border-radius:16px;width:520px;max-width:100%;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25);animation:pop .22s ease}
.modal-lg{width:760px}
.modal-sm{width:420px}
@keyframes pop{from{transform:scale(.95);opacity:0}to{transform:none;opacity:1}}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}
.modal-head h3{font-size:17px;color:var(--primary-dark)}
.modal-close{background:none;border:none;font-size:18px;color:var(--muted);padding:4px}
.modal-close:hover{color:var(--danger)}
.modal-body{padding:20px 22px;overflow-y:auto}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.form-grid{grid-template-columns:1fr}}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}

/* 详情 */
.detail-tabs{display:flex;gap:6px;margin-bottom:18px;border-bottom:1px solid var(--border);padding-bottom:10px;flex-wrap:wrap}
.dtab{background:none;border:none;padding:8px 16px;border-radius:8px;font-size:14px;color:var(--muted)}
.dtab.active{background:var(--primary-light);color:var(--primary-dark);font-weight:600}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.detail-item{background:#faf7f2;border-radius:9px;padding:12px 14px}
.detail-item .d-label{font-size:12px;color:var(--muted);margin-bottom:4px}
.detail-item .d-value{font-size:14.5px;font-weight:500}
.mini-list{list-style:none}
.mini-list li{padding:10px 0;border-bottom:1px solid #f2ece2;font-size:13.5px}
.mini-list li:last-child{border:none}
.mini-list .ml-head{display:flex;justify-content:space-between}
.mini-list .ml-title{font-weight:600}
.mini-list .ml-time{font-size:12px;color:var(--muted)}
.mini-list .ml-sub{color:var(--muted);font-size:12.5px;margin-top:3px}

/* 计算器 */
.calc-tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}
.ctab{background:#f7f3ec;border:1px solid var(--border);padding:8px 16px;border-radius:8px;font-size:14px;color:var(--muted)}
.ctab.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.calc-result{margin-top:16px;background:var(--primary-light);border-radius:9px;padding:14px 16px;font-size:15px;color:var(--primary-dark);text-align:center;min-height:20px}

/* Toast */
.toast{position:fixed;top:24px;left:50%;transform:translateX(-50%) translateY(-80px);background:#2e2a24;color:#fff;padding:12px 24px;border-radius:10px;font-size:14px;z-index:200;transition:transform .3s;box-shadow:0 8px 24px rgba(0,0,0,.3);opacity:0}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}

/* 滚动条 */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#d4c9b8;border-radius:8px}
::-webkit-scrollbar-track{background:transparent}

/* ===== 财务系统 ===== */
.nav-divider{font-size:11px;color:#6b6156;padding:14px 14px 6px;letter-spacing:2px}
.btn-sm{padding:6px 12px;font-size:13px}
.finance-stats .stat-card::after{background:#f5e2d0}
.ftabs{display:flex;gap:8px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:6px;margin-bottom:18px;box-shadow:var(--shadow);width:fit-content}
.ftab{border:none;background:none;padding:9px 22px;border-radius:9px;font-size:14px;color:var(--muted);font-weight:500;transition:all .2s}
.ftab.active{background:var(--primary);color:#fff;font-weight:600}
.payplan-editor{display:flex;flex-direction:column;gap:8px}
.ppe-row{display:grid;grid-template-columns:90px 110px 90px 140px 200px 120px;gap:8px;align-items:center;background:#faf7f2;padding:8px 10px;border-radius:8px}
.ppe-row .ppe-head{font-size:13px;color:var(--muted);font-weight:500}
.ppe-row input{font-size:13px;padding:7px 9px}
.ppe-del{background:none;border:none;color:var(--danger);font-size:14px}
@media(max-width:800px){.ppe-row{grid-template-columns:1fr 1fr}}

/* 回款进度列表 */
.payment-list{display:flex;flex-direction:column;gap:12px}
.pm-item{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow);display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.pm-main{flex:1;min-width:220px}
.pm-title{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}
.pm-title .pm-name{font-weight:600;font-size:15px}
.pm-sub{font-size:13px;color:var(--muted);margin-bottom:8px}
.progress{height:8px;background:#f0e9dd;border-radius:8px;overflow:hidden;margin-top:6px}
.progress>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--primary));border-radius:8px;transition:width .4s}
.pm-metric{text-align:right;min-width:150px}
.pm-money{font-size:15px;font-weight:600;color:var(--primary-dark)}
.pm-money small{color:var(--muted);font-weight:400;font-size:12px}

/* 组织架构 */
.org-layout{display:grid;grid-template-columns:320px 1fr;gap:20px;margin-bottom:20px}
@media(max-width:1000px){.org-layout{grid-template-columns:1fr}}
.org-head-right{display:flex;gap:10px;align-items:center}
.dept-tree{display:flex;flex-direction:column;gap:6px}
.dept-node{display:flex;align-items:center;justify-content:space-between;background:#faf7f2;border:1px solid var(--border);border-radius:9px;padding:9px 13px;font-size:14px}
.dept-node.child{margin-left:24px}
.dept-node .dn-name{display:flex;align-items:center;gap:8px;font-weight:500}
.dept-node .dn-actions{display:flex;gap:4px}
.dept-count{font-size:12px;color:var(--muted);background:#fff;border-radius:20px;padding:1px 8px}
.org-chart{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.oc-unit{background:#faf7f2;border:1px solid var(--border);border-radius:12px;padding:14px 16px;min-width:160px}
.oc-unit .oc-dept{font-weight:600;color:var(--primary-dark);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.oc-unit .oc-emp{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed #eee;font-size:13px}
.oc-unit .oc-emp:last-child{border:none}
.oc-ava{width:26px;height:26px;border-radius:50%;background:var(--primary-light);color:var(--primary-dark);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}

/* ===== 报价系统 ===== */
.qs-total { font-weight:700; color:var(--primary,#b98d4b); }
.qs-quote { border:1px solid #e5e1d9; border-radius:10px; padding:14px; margin-bottom:14px; background:#fffdf8; }
.qs-qhead { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.qs-qhead strong { font-size:15px; }
.qs-sub { font-weight:700; color:var(--primary,#b98d4b); margin-left:auto; }
.qs-note { color:#8a8a8a; font-size:13px; margin:4px 0 8px; }
.qs-table { width:100%; border-collapse:collapse; font-size:13px; }
.qs-table th, .qs-table td { border:1px solid #eee; padding:6px 8px; text-align:left; }
.qs-table th { background:#faf7f0; }
.qs-table td.a { text-align:center; white-space:nowrap; }
.btn-sm { padding:5px 10px; font-size:12px; }

/* 报价单分组与合计 */
.qs-section{ margin-bottom:14px; }
.qs-shead{ display:flex; align-items:center; justify-content:space-between; background:#f5efe6; padding:8px 10px; border-radius:6px 6px 0 0; font-size:14px; }
.qs-shead strong{ font-size:14px; }
.qs-qhead .qs-sub{ margin-left:auto; }
.qs-grand{ margin-top:10px; text-align:right; font-size:15px; padding:9px 12px; background:#fdf6ea; border-radius:6px; }
.qs-grand b{ color:var(--primary,#b98d4b); font-size:17px; }
.qs-table th{ white-space:nowrap; }

/* ===== 移动端适配 ===== */
.menu-btn{display:none;background:none;border:none;font-size:22px;color:var(--primary-dark);padding:4px 8px;line-height:1}
.side-mask{display:none}
@media (max-width:768px){
  .menu-btn{display:block}
  .side-mask{display:block;position:fixed;inset:0;background:rgba(20,15,10,.45);z-index:110;opacity:0;visibility:hidden;transition:opacity .22s}
  .menu-open .side-mask{opacity:1;visibility:visible}
  .app-view{position:relative}
  .sidebar{position:fixed;top:0;left:0;bottom:0;width:266px;z-index:120;transform:translateX(-100%);transition:transform .25s ease;box-shadow:2px 0 22px rgba(0,0,0,.22)}
  .menu-open .sidebar{transform:translateX(0)}
  .main{width:100%}
  .topbar{height:54px;padding:0 12px}
  .topbar-title{font-size:16px}
  .clock{display:none}
  .content{padding:14px 12px}
  .panel{margin-bottom:14px}
  .panel-head{padding:13px 16px}
  .panel-head h3{font-size:14.5px}
  .panel-body{padding:14px}
  .panel-row{grid-template-columns:1fr}
  .stat-grid{grid-template-columns:1fr 1fr;gap:10px}
  .stat-card{padding:13px;border-radius:10px}
  .stat-card .stat-num{font-size:21px}
  .stat-card .stat-icon{font-size:18px;margin-bottom:5px}
  .stat-card .stat-label{font-size:12px}
  /* 表格横滚 */
  .table-card{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .table{min-width:690px}
  /* 弹窗近全屏 */
  .modal-mask{padding:8px;align-items:flex-start;overflow-y:auto}
  .modal,.modal-lg,.modal-sm{width:100%;max-width:100%;max-height:96vh}
  .modal-lg{max-height:calc(100vh - 12px)}
  .modal-head{padding:14px 15px}
  .modal-head h3{font-size:16px}
  .modal-body{padding:15px;overflow-x:auto;overflow-y:auto}
  .modal-foot{padding-top:12px;margin-top:13px}
  .modal-foot .btn{flex:1;text-align:center;padding:11px 8px}
  .form-grid{grid-template-columns:1fr}
  /* 工具栏 */
  .toolbar{flex-direction:column;align-items:stretch;gap:10px}
  .toolbar-left,.toolbar-right{width:100%;flex-wrap:wrap}
  .search-input{width:100%}
  .select{flex:1;min-width:0}
  .toolbar-right .btn,.toolbar-left .btn{flex:1;text-align:center;white-space:nowrap}
  /* 看板 */
  .kanban{grid-template-columns:repeat(2,1fr);gap:10px}
  .kb-card{padding:11px}
  /* 详情 */
  .detail-grid{grid-template-columns:1fr}
  .detail-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .dtab{padding:7px 13px;font-size:13.5px;white-space:nowrap}
  .mini-list .ml-head{flex-direction:column;gap:4px}
  /* 财务 */
  .ftabs{width:100%;overflow-x:auto}
  .ftab{padding:9px 16px;white-space:nowrap}
  .ppe-row{grid-template-columns:1fr 1fr}
  .pm-item{padding:13px 14px}
  .pm-metric{text-align:left;min-width:0}
  /* 组织 */
  .org-layout{grid-template-columns:1fr}
  .dept-node.child{margin-left:10px}
  /* 报价系统 */
  .qs-quote{padding:11px}
  .qs-table{min-width:600px}
  .qs-shead,.qs-qhead{font-size:13px}
  .empty{padding:36px 14px}
  /* 登录 */
  .login-card{width:92%;padding:28px 20px;border-radius:16px}
  .login-logo h1{font-size:22px}
  /* toast */
  .toast{top:12px;width:88%;text-align:center}
  /* 时间轴 */
  .timeline{padding-left:22px}
  .tl-item{padding:14px 14px}
}
@media (max-width:400px){
  .kanban{grid-template-columns:1fr}
}

/* ===== 手机底部快捷导航栏 ===== */
.tabbar{display:none}
.qc-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px 15px;margin-bottom:10px;box-shadow:var(--shadow);cursor:pointer}
.qc-item:active{background:#fdfaf5}
.qc-item .qc-name{font-weight:600;font-size:14.5px}
.qc-item .qc-meta{font-size:12px;color:var(--muted);margin-top:2px}
.qc-item .qc-amt{color:var(--primary,#b98d4b);font-weight:700;font-size:16px;white-space:nowrap}
.mine-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.mine-avatar{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent),var(--primary-dark))}
.mine-name{font-size:18px;font-weight:700}
.mine-role{font-size:13px;color:var(--muted);margin-top:3px}
.mine-actions{display:flex;flex-direction:column;gap:10px}
.mine-actions .btn{padding:12px;text-align:center}
@media(max-width:768px){
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;height:56px;background:#fff;border-top:1px solid var(--border);z-index:120;box-shadow:0 -2px 12px rgba(60,45,25,.08);padding-bottom:env(safe-area-inset-bottom)}
  .tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;font-size:10.5px;color:var(--muted);padding:0}
  .tab-item .ti{font-size:20px;line-height:1}
  .tab-item.active{color:var(--primary-dark,#a05f27);font-weight:600}
  .main{padding-bottom:60px}
}

/* ===== 成交客户 / 售后 / 客户自助查询 ===== */
.badge.cyan{background:#e0f4f7;color:#23859a}
.badge.purple{background:#efe8fb;color:#6b4fb9}
.badge.amber{background:#fdeecf;color:#a86b14}
.badge.teal{background:#e0f2ef;color:#1e7d6f}
.btn-outline{background:#fff;border:1px solid var(--primary);color:var(--primary)}
.btn-outline:hover{background:var(--primary);color:#fff}
.btn-sm.danger{color:var(--danger)}
.stage-sel{padding:4px 8px;border:1px solid #e6e9ef;border-radius:6px;font-size:13px;background:#fff}
.ops{white-space:nowrap}
#client-panel{max-width:440px}
#client-panel .login-logo .logo-mark{background:var(--primary)}
.client-order{text-align:left;width:100%;margin-top:6px;max-height:62vh;overflow:auto}
.co-card{padding:14px;background:#f6f8fa;border-radius:12px}
.co-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.co-head h4{margin:0;font-size:16px}
.co-row{display:flex;justify-content:space-between;margin:8px 0;color:#666;font-size:13px}
.co-row b{color:#222;text-align:right}
.co-grid{display:flex;gap:8px;margin:10px 0}
.co-box{flex:1;background:#fff;border-radius:8px;padding:10px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.co-box span{display:block;font-size:11px;color:#999;margin-bottom:2px}
.co-box b{font-size:15px;color:#222}
.co-steps{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.cstep{display:flex;align-items:center;gap:5px;background:#eef0f3;padding:4px 9px;border-radius:20px;font-size:12px;color:#999}
.cstep i{font-style:normal;width:18px;height:18px;line-height:18px;text-align:center;border-radius:50%;background:#d3d7de;color:#fff;font-size:11px}
.cstep.done{background:#e7f5ee;color:#1e8a5c}
.cstep.done i{background:#2fb677}
.cstep.cur{background:#2fb677;color:#fff;font-weight:600}
.cstep.cur i{background:#fff;color:#2fb677}
.co-note{color:#888;font-size:13px}
.co-as-list{margin-top:4px}
.co-as{background:#fff;border:1px solid #eef0f3;border-radius:8px;padding:10px;margin-bottom:8px}
.co-as b{display:block;color:#333}
.co-as .badge{margin-left:6px}
.co-as em{display:block;font-style:normal;font-size:12px;color:#aaa;margin-top:3px}
.co-as p{margin:6px 0 0;font-size:13px;color:#555;background:#f7f8fa;padding:6px 8px;border-radius:6px}

/* ===== 售后图片（拍照/上传/缩略图/放大） ===== */
.co-upload{margin:8px 0}
.co-upload .btn{width:100%}
.co-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.co-thumb{position:relative;width:64px;height:64px;border-radius:8px;overflow:hidden;border:1px solid #eef0f3;background:#fff}
.co-thumb img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
.co-thumb i{position:absolute;top:2px;right:2px;width:18px;height:18px;line-height:18px;text-align:center;background:rgba(0,0,0,.55);color:#fff;border-radius:50%;font-style:normal;font-size:12px;cursor:pointer}
.co-thumbs.mini{display:flex;gap:5px;margin:6px 0 0}
.co-thumbs.mini img{width:56px;height:56px;object-fit:cover;border-radius:6px;cursor:zoom-in;border:1px solid #eef0f3}

/* ===== 客户个人中心（京东风格） ===== */
.pc-header{background:repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 1px, rgba(255,255,255,0) 1px 3px),linear-gradient(135deg,#4b5058,#282c33 55%,#3a3f47);border-radius:16px;padding:18px 16px;display:flex;align-items:center;gap:14px;margin-bottom:14px;box-shadow:0 4px 14px rgba(30,34,40,.45)}
.pc-avatar{position:relative;width:64px;height:64px;flex:none;border:3px solid #fff;border-radius:50%;overflow:hidden;background:#fff;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.pc-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.pc-avatar .pc-av-def{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:30px;background:#fff}
.pc-avatar::after{content:'换';position:absolute;right:2px;bottom:2px;font-size:9px;font-weight:700;color:#e8322f;background:#fff;border-radius:50%;width:16px;height:16px;line-height:16px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.pc-user{color:#fff;min-width:0}
.pc-user .pc-phone{display:block;font-size:19px;font-weight:700;letter-spacing:.5px;word-break:break-all}
.pc-user .pc-sub{display:block;font-size:12px;opacity:.92;margin-top:3px}
.pc-bar{display:flex;background:#fff;border-radius:14px;padding:12px 4px;margin-bottom:14px;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.pc-bar .pc-b{flex:1;text-align:center}
.pc-bar .pc-b b{display:block;font-size:17px;color:#e8322f}
.pc-bar .pc-b span{font-size:11px;color:#888}
.pc-sec{margin:0 0 10px;font-size:15px;font-weight:700;color:#222;display:flex;align-items:center;gap:6px}
.pc-sec::before{content:'';width:4px;height:16px;background:#e8322f;border-radius:2px}
.pc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}
.pc-grid .pc-g{background:#fff;border-radius:14px;padding:16px 8px;text-align:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.pc-grid .pc-g .pc-gi{font-size:26px;line-height:1}
.pc-grid .pc-g .pc-gt{font-size:12px;color:#555;margin-top:6px;display:block}
.pc-card{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.pc-card .pc-t{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pc-card .pc-t b{font-size:15px}
.pc-card .pc-amt{font-size:12px;color:#888;line-height:1.9}
.pc-card .pc-amt b{color:#333}
.pc-back{text-align:center;margin-top:14px}
