:root{--bg:#f4f6f9;--panel:#fff;--text:#17212d;--muted:#6c7788;--line:#e3e8ef;--blue:#2364df;--blue2:#194bad;--red:#d92d20;--amber:#d98c10;--green:#138452;--nav:#122136;--shadow:0 16px 44px rgba(16,31,52,.16)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Microsoft YaHei",system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.topbar{height:70px;background:var(--nav);color:#fff;padding:0 26px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:20px;font-weight:750}.brand small{font-size:11px;background:#2d6ee4;padding:2px 5px;border-radius:5px}.subtitle{font-size:12px;color:#aebbcf;margin-top:3px}.userbar{display:flex;gap:8px;align-items:center;font-size:13px}.top-btn{border:1px solid #3a506c;background:#203651;color:#e9eef6;border-radius:6px;padding:6px 9px}
.page{max-width:1700px;margin:auto;padding:22px}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:11px;padding:15px 17px}.stat .k{font-size:12px;color:var(--muted)}.stat .v{font-size:27px;font-weight:750;margin-top:7px}.stat.alert .v{color:var(--red)}.stat.today .v{color:var(--amber)}.stat.deal .v{color:var(--green)}
.panel{background:#fff;border:1px solid var(--line);border-radius:11px}.toolbar{padding:11px;display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar select,.toolbar input{max-width:180px}.toolbar-break{flex-basis:100%;height:0}.search-wrap{position:relative;min-width:290px}.search-wrap span{position:absolute;left:10px;top:8px;font-size:18px;color:#748094}.search-wrap input{width:100%;max-width:none;padding-left:32px}
input,select,textarea{border:1px solid #d5dce5;background:#fff;color:var(--text);border-radius:7px;padding:9px 10px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(35,100,223,.1)}textarea{resize:vertical}.btn{border:0;border-radius:7px;padding:9px 14px;font-weight:650;white-space:nowrap}.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue2)}.btn.light{background:#eef2f7;color:#3d4a5c}.btn.danger{background:#fff0ee;color:var(--red)}.btn.full{width:100%}
.table-title{display:flex;justify-content:space-between;padding:15px 17px;border-bottom:1px solid var(--line)}.muted{font-size:12px;color:var(--muted);margin-left:7px}.legend{font-size:12px;color:var(--muted)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 5px 0 13px}.dot.red{background:var(--red)}.dot.amber{background:var(--amber)}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:1080px}th{padding:10px 14px;background:#f9fafb;text-align:left;color:var(--muted);font-size:12px;white-space:nowrap}td{padding:12px 14px;border-top:1px solid #edf0f4;font-size:13px;vertical-align:middle}tbody tr:hover{background:#f8faff}.customer-name{font-weight:650}.customer-sub{font-size:11px;color:var(--muted);margin-top:4px}.badge{display:inline-flex;padding:4px 8px;border-radius:14px;font-size:11px;font-weight:700}.level-A{background:#fee4e2;color:#b42318}.level-B{background:#ffead5;color:#b54708}.level-C{background:#e8f0ff;color:#175cd3}.level-D{background:#eaecf0;color:#475467}.stage{background:#f1f3f6;color:#475467;font-weight:500}.deal-yes{background:#dff5e9;color:#087647}.date.overdue{color:var(--red);font-weight:700}.date.today{color:var(--amber);font-weight:700}.link-btn{border:0;background:none;color:var(--blue);padding:4px}.empty{padding:55px;text-align:center;color:var(--muted)}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:9px;border-top:1px solid var(--line);padding:12px 15px;font-size:13px}.pagination select{padding:8px}
.modal{position:fixed;z-index:30;inset:0;background:rgba(11,22,36,.56);display:flex;align-items:center;justify-content:center;padding:18px}.modal-card{width:min(720px,100%);max-height:93vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:var(--shadow)}.modal-card.wide{width:min(1080px,100%)}.modal-card.small{width:min(430px,100%)}.detail-card{width:min(900px,100%)}.modal-head{position:sticky;top:0;z-index:2;background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:18px 21px}.modal-head h2{font-size:18px;margin:0}.icon-btn{border:0;background:none;color:#667386;font-size:26px}.modal-body{padding:20px}.modal-body>label{margin-bottom:13px}.modal-body p{margin-top:0}.login-card{width:min(400px,100%);padding:30px}.login-title{font-size:24px;font-weight:750}.login-card p{color:var(--muted);margin-bottom:22px}.login-card label{margin-bottom:14px}.login-hint{font-size:11px;color:var(--muted);margin-top:15px}
form{padding:0 21px 20px}.form-section{font-size:13px;font-weight:700;color:#3d4c60;margin:18px 0 10px}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.span-2{grid-column:span 2}.span-4{grid-column:span 4}label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#566377}label input,label select,label textarea{width:100%}label small{min-height:13px;color:var(--muted)}label small.ok{color:var(--green)}label small.warn{color:var(--red)}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:19px}.hint{background:#f5f7fa;border-radius:8px;padding:10px;font-size:12px;color:var(--muted);line-height:1.7;margin:12px 0}.result-box{font-size:12px;line-height:1.7;margin-top:12px;color:#4f5d70}.warning{background:#fff7e8;color:#8a5a0a;border-radius:7px;padding:10px;font-size:12px;margin:14px 0}
.detail-body{padding:17px 21px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.detail-item{background:#f7f9fb;border-radius:8px;padding:11px}.detail-item .key{font-size:11px;color:var(--muted)}.detail-item .val{font-size:13px;margin-top:5px;white-space:pre-wrap}.detail-item.wide{grid-column:span 4}.phone-reveal{padding:0 21px 15px;display:flex;align-items:center;gap:12px}.phone-reveal span{font-weight:700}.followup-box,.history{padding:17px 21px;border-top:1px solid var(--line)}.followup-box h3,.history h3{font-size:14px;margin:0 0 11px}.followup-box h3 span{font-size:12px;color:var(--blue);margin-left:7px}.followup-box textarea{width:100%}.followup-row{display:grid;grid-template-columns:1fr 1.3fr 1fr 1.2fr auto;gap:8px;align-items:end;margin-top:9px}.history-entry{border-left:2px solid #cdd9ec;padding:2px 0 13px 12px;margin-left:4px}.history-date{font-size:11px;color:var(--muted)}.history-text{font-size:13px;margin-top:5px;white-space:pre-wrap}.detail-actions{display:flex;gap:8px;padding:14px 21px;border-top:1px solid var(--line)}.detail-actions i{flex:1}
.account-layout{display:grid;grid-template-columns:300px 1fr;gap:18px;padding:18px}.account-form{padding:0;border-right:1px solid var(--line);padding-right:18px}.account-form h3{font-size:15px;margin-top:0}.account-form label{margin-bottom:11px}.account-form .btn{margin:4px 5px 0 0}.coverage-body{padding:18px}.coverage-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--muted)}.coverage-breadcrumb button{border:0;background:none;color:var(--blue);padding:4px 2px;font-weight:650}.coverage-breadcrumb strong{color:#344054}.coverage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.coverage-item{position:relative;border:1px solid var(--line);border-radius:10px;padding:12px;text-align:left;background:#fff;color:inherit}.coverage-item.zero{background:#fafafa;color:#a0a8b4}.coverage-item.drillable{cursor:pointer;padding-bottom:31px}.coverage-item.drillable:hover{border-color:#8eb3f7;background:#f7faff;transform:translateY(-1px)}.coverage-name{font-weight:700}.coverage-meta{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.6}.coverage-more{position:absolute;left:12px;bottom:9px;font-size:11px;color:var(--blue)}
.toast{position:fixed;z-index:100;right:22px;bottom:22px;background:#14243a;color:#fff;padding:12px 17px;border-radius:8px;box-shadow:var(--shadow);max-width:440px}.watermark{position:fixed;z-index:20;inset:0;pointer-events:none;overflow:hidden;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;transform:rotate(-16deg) scale(1.2);opacity:.055;color:#1a2d48;font-size:13px;font-weight:700}.watermark span{display:flex;align-items:center;justify-content:center;white-space:nowrap}.privacy-blur .sensitive{filter:blur(10px)!important}.privacy-blur .table-scroll{filter:blur(7px)}
@media print{body>*{display:none!important}body:after{content:"禁止打印客户资料";display:block!important;padding:50px;font-size:24px}}
@media(max-width:1000px){.stats{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.span-4{grid-column:span 2}.detail-body{grid-template-columns:repeat(2,1fr)}.detail-item.wide{grid-column:span 2}.followup-row{grid-template-columns:repeat(2,1fr)}.account-layout{grid-template-columns:1fr}.account-form{border:0;border-bottom:1px solid var(--line);padding-bottom:16px}.coverage-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.topbar{padding:0 14px}.subtitle,.userbar .top-btn:not(#logoutBtn){display:none}.page{padding:11px}.stats{grid-template-columns:repeat(2,1fr)}.search-wrap{width:100%;min-width:0}.toolbar select,.toolbar input{max-width:none;flex:1;min-width:140px}.form-grid,.detail-body,.followup-row{grid-template-columns:1fr}.span-2,.span-4,.detail-item.wide{grid-column:span 1}.coverage-grid{grid-template-columns:1fr}.pagination{justify-content:center}.watermark{grid-template-columns:repeat(2,1fr)}}

/* V2.1 visual refresh */
:root{--bg:#f3f6fb;--panel:#fff;--text:#172033;--muted:#718096;--line:#e5eaf2;--blue:#2563eb;--blue2:#1d4ed8;--nav:#0b1730;--shadow:0 18px 50px rgba(27,45,79,.13)}
body{background:radial-gradient(circle at 8% 0,#eaf2ff 0,transparent 28%),var(--bg);min-height:100vh}
.topbar{position:sticky;top:0;z-index:22;height:76px;padding:0 30px;background:linear-gradient(115deg,#0a1831,#142c52 70%,#183964);box-shadow:0 8px 30px rgba(11,23,48,.18)}
.brand{font-size:21px;letter-spacing:.2px}.brand small{margin-left:5px;background:#3b82f6}.subtitle{color:#aebed7}.top-btn{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);padding:8px 11px;transition:.18s}.top-btn:hover{background:rgba(255,255,255,.14)}
.page{padding:25px 24px 40px}.stats{gap:14px;margin-bottom:17px}.stat-card{position:relative;overflow:hidden;background:rgba(255,255,255,.94);border:1px solid rgba(221,228,239,.95);border-radius:14px;padding:17px 18px;box-shadow:0 7px 24px rgba(34,55,88,.055)}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#c6d5f4}.stat-card:nth-child(2):before{background:#ef4444}.stat-card:nth-child(3):before{background:#f59e0b}.stat-card:nth-child(4):before{background:#10b981}.stat-card:nth-child(5):before{background:#3b82f6}.stat-card:nth-child(6):before{background:#dc2626}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:28px;line-height:1.15;font-weight:780;margin-top:8px;letter-spacing:-.5px}.stat-card.alert .stat-value{color:#dc2626}
.panel{border-color:#e3e9f2;border-radius:14px;box-shadow:0 8px 28px rgba(35,52,81,.055)}.toolbar{padding:14px;gap:9px}.toolbar select,.toolbar input{border-color:#dfe5ee;background:#fbfcfe}.search-wrap{min-width:330px}.btn{border-radius:9px;padding:9px 15px;transition:transform .15s,box-shadow .15s,background .15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,#3174f1,#2259d4);box-shadow:0 5px 13px rgba(37,99,235,.22)}.btn.light{background:#f0f4f9;border:1px solid #e3e9f1;color:#405069}.btn.light:hover{background:#e7edf6}.table-title{padding:17px 19px}.table-title strong{font-size:15px}th{padding:12px 14px;background:#f7f9fc;color:#65738a;font-weight:650}td{padding:13px 14px}tbody tr{transition:background .15s}tbody tr:hover{background:#f5f8ff}.link-btn{font-weight:650}.pagination{padding:14px 17px}
.modal{background:rgba(8,18,36,.62);backdrop-filter:blur(5px)}.modal-card{border:1px solid rgba(255,255,255,.7);border-radius:18px}.modal-card.wide{width:min(1180px,100%)}.detail-card{width:min(960px,100%)}.modal-head{padding:19px 24px;box-shadow:0 1px 0 #e7ebf2}.modal-head h2{font-size:19px}.icon-btn{width:36px;height:36px;border-radius:9px;display:grid;place-items:center}.icon-btn:hover{background:#f0f3f7}
#customerForm{padding:2px 24px 0}.form-section{display:flex;align-items:center;gap:8px;margin:22px 0 12px;font-size:14px;color:#253650}.form-section span{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#e8f0ff;color:#245bd5;font-size:11px}.form-grid{gap:14px 13px}.required-grid{padding:17px;background:#f8faff;border:1px solid #e7edf6;border-radius:13px}label{position:relative;font-weight:550;color:#536176}label b{position:absolute;right:6px;top:0;color:#e24444;font-size:12px}input,select,textarea{min-height:40px;border-color:#d7deea;border-radius:9px;transition:border .15s,box-shadow .15s}textarea{line-height:1.6}select:disabled{background:#f0f3f7;color:#4e5a6b;opacity:1}label small{font-weight:400}.form-actions{position:sticky;bottom:0;z-index:2;margin:22px -24px 0;padding:14px 24px;background:rgba(255,255,255,.96);border-top:1px solid #e8ecf2;backdrop-filter:blur(8px)}
#phone1Status,#phone2Status{display:inline-flex;align-items:center;width:max-content;min-height:20px;padding:2px 7px;border-radius:10px}.checking{color:#2563eb!important;background:#edf4ff}.ok{color:#087647!important;background:#e9f8ef}.warn{color:#b42318!important;background:#fff0ee}.follow-policy{margin-top:13px;padding:13px;background:#fff9ed;border:1px solid #f5dfaf;border-radius:10px}.detail-item{border:1px solid #edf0f5;background:#f8fafc}.history-entry{border-left-color:#8eb3f7}.toast{border-radius:11px;padding:13px 18px}
.badge.level-D{background:#eef0f3;color:#4b5565}
@media(max-width:1000px){.topbar{padding:0 20px}.modal-card.wide{width:min(780px,100%)}.required-grid{padding:13px}}
@media(max-width:600px){.topbar{height:64px}.page{padding:12px 10px 28px}.stat-card{padding:14px}.stat-value{font-size:23px}.toolbar{padding:10px}.search-wrap{min-width:100%}.modal{padding:8px}.modal-card{border-radius:14px;max-height:97vh}#customerForm{padding:0 14px}.form-actions{margin-left:-14px;margin-right:-14px;padding:12px 14px}.required-grid{padding:10px}.form-section{margin-top:17px}}

/* V3.0 成交、位置、批量管理与自定义表头 */
.modal-card.extra-wide{width:min(1450px,98vw)}
.small-btn{padding:6px 10px;font-size:12px}
.phone-line{display:flex;gap:6px}.phone-line input{min-width:0}.phone-plus,.phone-minus{flex:0 0 40px;border:1px solid #cdd8e8;border-radius:9px;background:#edf4ff;color:#1e5bd4;font-size:22px;font-weight:700}.phone-minus{background:#fff1ef;color:#c43226;border-color:#f2d2ce}
.subsection-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.subsection-head h3,.subsection-head strong{margin:0;font-size:14px}
.deal-editor{padding:14px;border:1px solid #dbe7f7;border-radius:12px;background:#f8fbff}.deal-editor>small{display:block;margin-top:8px;color:var(--muted)}
.deal-edit-table{min-width:1120px}.deal-edit-table th,.deal-edit-table td{padding:7px}.deal-edit-table input,.deal-edit-table select{min-width:105px;padding:7px 8px}.deal-edit-table [data-deal="model"]{min-width:120px}.deal-edit-table [data-deal="policy"]{min-width:180px}.row-remove{width:30px;height:30px;border:0;border-radius:7px;background:#fff0ee;color:#c43226;font-size:20px}.saved-tag{font-size:11px;color:#78869a;white-space:nowrap}
.deal-section{padding:17px 21px;border-top:1px solid var(--line)}.deal-table{min-width:900px}.deal-table td,.deal-table th{padding:9px 10px}.danger-text{color:#c43226}
.aftersales-link-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 21px;border-top:1px solid var(--line);background:linear-gradient(90deg,#f7fbff,#fff)}.aftersales-link-row>div{display:flex;flex-direction:column;gap:3px}.aftersales-link-row strong{font-size:14px;color:#243754}.aftersales-link-row span{font-size:12px;color:var(--muted)}.aftersales-link{font-size:13px;white-space:nowrap}
.aftersales-table{min-width:1250px}.aftersales-table th,.aftersales-table td{padding:9px 10px}.aftersales-table th:nth-child(1){width:135px}.aftersales-table th:nth-child(2){width:180px}.aftersales-table th:nth-child(3){width:190px}.aftersales-table th:nth-child(4),.aftersales-table th:nth-child(5){width:260px}.aftersales-table input{width:100%;min-width:120px;padding:8px 9px}.aftersales-table [data-aftersales="problem"],.aftersales-table [data-aftersales="resolution"]{min-width:220px}.aftersales-remark-cell{display:flex;align-items:center;gap:7px;min-width:210px}.aftersales-remark-cell input{flex:1}.aftersales-plus{display:block;width:42px;height:34px;margin:2px auto;border:1px dashed #8eb3f7;border-radius:9px;background:#f2f7ff;color:#2563eb;font-size:22px;line-height:28px}.aftersales-plus:hover{background:#e7f0ff}.aftersales-actions{display:flex;justify-content:flex-end;margin-top:14px}.aftersales-import{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1.4fr) auto auto;align-items:end;gap:10px;margin-top:18px;padding:15px;border:1px solid #dfe7f2;border-radius:12px;background:#f8fafc}.aftersales-import>div{display:flex;flex-direction:column;gap:4px}.aftersales-import small{color:var(--muted)}.aftersales-import input{min-height:38px;padding:7px;background:#fff}
.summary-filter{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:15px}.summary-filter label{min-width:170px}.deal-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:15px}.deal-totals>div{padding:15px 17px;border:1px solid #e1e8f2;border-radius:12px;background:linear-gradient(145deg,#f9fbff,#fff)}.deal-totals span{display:block;font-size:12px;color:var(--muted)}.deal-totals strong{display:block;margin-top:7px;font-size:22px;color:#1e4fae}.summary-table{min-width:1180px}.empty-cell{text-align:center;color:var(--muted);padding:35px!important}
.deal-data-tools{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(220px,1fr) auto auto auto;align-items:end;gap:9px;margin-top:17px;padding:14px;border:1px solid #dfe7f2;border-radius:12px;background:#f8fafc}.deal-data-tools>div{display:flex;flex-direction:column;gap:4px}.deal-data-tools small{color:var(--muted);line-height:1.5}.deal-data-tools input{min-height:38px;padding:7px;background:#fff}.export-field-toolbar{display:flex;gap:8px;margin:15px 0 10px}.export-field-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.export-field-grid label{display:flex;align-items:center;gap:7px;padding:8px 9px;border:1px solid #e5eaf1;border-radius:8px;background:#fff;font-size:13px}.export-field-grid input{width:auto}
.column-settings{display:flex;flex-direction:column;gap:7px;margin-top:15px;max-height:55vh;overflow:auto}.column-item{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}.column-item label{display:block;color:#35445a;font-size:13px}.column-item span{display:flex;gap:5px}.column-item button{width:30px;height:28px;border:1px solid #d9e1ec;border-radius:6px;background:#fff;color:#31527f}.no-margin{margin:0}
.select-col{width:42px;min-width:42px;text-align:center}.select-col input{width:17px;height:17px;min-height:auto}
.danger-zone{margin-top:18px;padding-top:15px;border-top:1px solid #f0d9d5}.danger-zone p{font-size:12px;color:#9d332a;line-height:1.5}.btn.danger.full{background:#fff0ee;border:1px solid #f2ccc7}
#selectedCount{font-size:11px}.table-panel table{min-width:max-content}
@media(max-width:1000px){.modal-card.extra-wide{width:min(96vw,900px)}.deal-totals{grid-template-columns:1fr}.summary-filter label{min-width:140px}}
@media(max-width:1000px){.aftersales-import{grid-template-columns:1fr 1fr}.aftersales-import>div{grid-column:span 2}.deal-data-tools{grid-template-columns:1fr 1fr}.deal-data-tools>div{grid-column:span 2}.export-field-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.modal-card.extra-wide{width:100%}.deal-totals strong{font-size:18px}.summary-filter>*{width:100%}.phone-line{align-items:center}.aftersales-link-row{align-items:flex-start;flex-direction:column}.aftersales-import,.deal-data-tools{grid-template-columns:1fr}.aftersales-import>div,.deal-data-tools>div{grid-column:span 1}.aftersales-import>*,.deal-data-tools>*{width:100%}.export-field-grid{grid-template-columns:1fr 1fr}}

/* V3.2 状态、成交、售后、配件赠送与安全验证 */
.stats{grid-template-columns:repeat(7,minmax(130px,1fr))}
.stat-card:nth-child(4):before{background:#8b5cf6}.stat-card:nth-child(5):before{background:#10b981}.stat-card:nth-child(6):before{background:#3b82f6}.stat-card:nth-child(7):before{background:#dc2626}
.toolbar select{min-width:145px}.toolbar #levelFilter{min-width:220px}.toolbar #preDealFilter,.toolbar #partsDemandFilter{min-width:170px}
.badge{min-height:24px;align-items:center;justify-content:center;padding:4px 10px;border:1px solid transparent;letter-spacing:.1px}
.badge.level-A{background:#fff0ef;border-color:#ffd4cf;color:#b42318}.badge.level-B{background:#fff7e8;border-color:#f9dfae;color:#9a5b00}
.badge.level-C{background:#eef4ff;border-color:#d7e5ff;color:#175cd3}.badge.level-D{background:#f1f3f6;border-color:#e2e5ea;color:#475467}
.badge.deal-yes{background:#e7f8ef;border-color:#c9edd9;color:#087647}.badge.predeal-yes{background:#f3edff;border-color:#dfd2ff;color:#6941c6}
.badge.parts-yes{background:#e9f8ff;border-color:#c8eafa;color:#06759b}.badge.neutral{background:#f5f6f8;border-color:#e6e8ec;color:#697386;font-weight:550}
#customerTable th,#customerTable td{white-space:nowrap}#customerTable td:first-of-type{min-width:190px}#customerTable td{max-width:300px}
.detail-card{width:min(1080px,96vw)}.detail-body{grid-template-columns:repeat(4,minmax(150px,1fr));gap:11px;padding:20px 24px}
.detail-item{min-height:70px;padding:12px 13px}.detail-item .val{line-height:1.55;overflow-wrap:anywhere}.detail-item.wide{min-height:auto}
.deal-section,.gift-section{padding:20px 24px;border-top:1px solid var(--line)}.deal-section{background:linear-gradient(180deg,#fff,#fbfdfc)}
.deal-table{min-width:980px;table-layout:fixed}.deal-table th:nth-child(1){width:120px}.deal-table th:nth-child(2){width:120px}.deal-table th:nth-child(3){width:75px}.deal-table th:nth-child(4){width:100px}.deal-table th:nth-child(5){width:110px}.deal-table th:nth-child(6){width:230px}.deal-table th:nth-child(7){width:115px}.deal-table th:nth-child(8){width:70px}
.deal-table td{line-height:1.55;overflow-wrap:anywhere}.deal-table td:nth-child(2),.deal-table td:nth-child(5){font-variant-numeric:tabular-nums;font-weight:650;color:#1f4f91}
.deal-edit-table{table-layout:fixed}.deal-edit-table th:nth-child(1){width:130px}.deal-edit-table th:nth-child(2){width:125px}.deal-edit-table th:nth-child(3){width:85px}.deal-edit-table th:nth-child(4){width:115px}.deal-edit-table th:nth-child(5){width:125px}.deal-edit-table th:nth-child(6){width:220px}.deal-edit-table th:nth-child(7){width:145px}.deal-edit-table th:last-child{width:48px}
.aftersales-table{min-width:1320px;table-layout:fixed}.aftersales-table th:nth-child(1){width:125px}.aftersales-table th:nth-child(2){width:175px}.aftersales-table th:nth-child(3){width:180px}.aftersales-table th:nth-child(4){width:230px}.aftersales-table th:nth-child(5){width:220px}.aftersales-table th:nth-child(6){width:270px}.aftersales-table th:nth-child(7){width:75px}
.aftersales-table select,.aftersales-table input{width:100%;min-width:0}.aftersales-table td{vertical-align:top;line-height:1.55}.new-tag{font-size:11px;color:#2563eb;white-space:nowrap}
.gift-section{background:linear-gradient(180deg,#fff,#fbfaff)}.gift-section .subsection-head>div{display:flex;align-items:baseline;gap:10px}.gift-section .subsection-head span{font-size:11px;color:var(--muted)}
.gift-table{min-width:900px;table-layout:fixed}.gift-table th:nth-child(1){width:200px}.gift-table th:nth-child(2){width:85px}.gift-table th:nth-child(3){width:135px}.gift-table th:nth-child(4){width:130px}.gift-table th:nth-child(5){width:280px}.gift-table th:nth-child(6){width:70px}
.gift-table input{width:100%;min-width:0;padding:8px}.gift-table td{line-height:1.55;overflow-wrap:anywhere}.gift-owner{display:inline-flex;align-items:center;min-height:38px;padding:7px 10px;border-radius:8px;background:#f1f5fb;color:#36506f;font-weight:650}
.gift-actions{display:flex;justify-content:flex-end;margin-top:12px}.gift-summary-table{min-width:1280px;table-layout:fixed}.gift-summary-table th:nth-child(1){width:170px}.gift-summary-table th:nth-child(2){width:135px}.gift-summary-table th:nth-child(3){width:220px}.gift-summary-table th:nth-child(4){width:180px}.gift-summary-table th:nth-child(5){width:75px}.gift-summary-table th:nth-child(6){width:120px}.gift-summary-table th:nth-child(7){width:120px}.gift-summary-table th:nth-child(8){width:260px}
.gift-summary-table td{overflow-wrap:anywhere;line-height:1.5}
.totp-admin-bar{display:flex;align-items:center;gap:14px;padding:14px 20px;background:#f5f8ff;border-bottom:1px solid #e1e9f5}.totp-admin-bar span{font-size:12px;color:var(--muted)}
.account-list{min-width:0;overflow:auto}.account-list table{min-width:850px}.account-actions{display:flex;align-items:center;flex-wrap:wrap;gap:2px}.security-state{display:inline-flex;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:700}.security-state.enabled{background:#e7f8ef;color:#087647}.security-state.pending{background:#fff4dd;color:#9a5b00}.security-state.off{background:#f1f3f6;color:#697386}
.security-card{width:min(900px,96vw)}.security-message{display:flex;flex-direction:column;gap:5px;padding:16px;border-radius:12px;background:#f5f7fa;color:#4f5f75}.security-message.success{background:#eaf8f0;color:#086b44}
.security-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.security-steps>div{position:relative;display:flex;flex-direction:column;gap:5px;padding:14px 14px 14px 48px;border:1px solid #e3eaf4;border-radius:12px;background:#fafcff}.security-steps>div>span{position:absolute;left:14px;top:14px;display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#e8f0ff;color:#245bd5;font-weight:750}.security-steps small{color:var(--muted);line-height:1.5}
.security-bind{display:grid;grid-template-columns:210px minmax(250px,1fr);gap:13px 22px;align-items:center;padding:18px;border:1px solid #dfe7f2;border-radius:14px;background:#f8fafc}.totp-qr{grid-row:span 3;width:210px;min-height:210px;display:grid;place-items:center;padding:10px;background:#fff;border:1px solid #dbe4f0;border-radius:12px}.totp-qr img,.totp-qr canvas{max-width:190px!important;height:auto!important}
.security-secret{display:flex;flex-direction:column;gap:7px}.security-secret span{font-size:12px;color:var(--muted)}.security-secret code{display:block;padding:10px;border:1px dashed #9eb6d8;border-radius:9px;background:#fff;color:#143967;font-size:15px;font-weight:700;letter-spacing:1.5px;overflow-wrap:anywhere}
.backup-codes-wrap{display:flex;flex-direction:column;gap:13px}.backup-codes-wrap .warning{display:flex;flex-direction:column;gap:4px;margin:0}.backup-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:14px;border:1px dashed #d1a74c;border-radius:12px;background:#fffaf0}.backup-codes code{padding:9px;text-align:center;border-radius:8px;background:#fff;color:#6e4b04;font-size:15px;font-weight:750;letter-spacing:1px}
@media(max-width:1250px){.stats{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1000px){.detail-body{grid-template-columns:repeat(2,minmax(150px,1fr))}.security-steps{grid-template-columns:1fr}.security-bind{grid-template-columns:1fr}.totp-qr{grid-row:auto;margin:auto}.gift-section .subsection-head>div{align-items:flex-start;flex-direction:column;gap:3px}}
@media(max-width:600px){.stats{grid-template-columns:repeat(2,1fr)}.detail-body{grid-template-columns:1fr}.toolbar #levelFilter,.toolbar #preDealFilter,.toolbar #partsDemandFilter{min-width:100%}.security-bind{padding:12px}.backup-codes{grid-template-columns:1fr}.totp-admin-bar{align-items:flex-start;flex-direction:column}.gift-actions .btn{width:100%}}

/* V3.3 分期应收、面访、地图选点与信息层级优化 */
:root{--finance:#0f766e;--finance-soft:#e9f8f5;--finance-line:#c9ece5;--purple:#6941c6}
.span-3{grid-column:span 3}.finance-btn{position:relative;background:#e8f7f4;border:1px solid #bfe8df;color:#087064}.finance-btn:hover{background:#d9f2ed}
#installmentBadge{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:5px;padding:0 5px;border-radius:10px;background:#d92d20;color:#fff;font-size:10px}
.installment-alerts{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px;margin:-3px 0 16px}.installment-alert{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:13px 15px;text-align:left;border:1px solid;border-radius:12px;background:#fff;color:inherit;box-shadow:0 6px 18px rgba(25,45,75,.045)}.installment-alert strong{font-size:13px}.installment-alert span{font-size:12px;color:var(--muted)}.installment-alert i{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;font-size:12px}.installment-alert.warning{border-color:#f0d79d;background:#fffaf0}.installment-alert.warning i{color:#9a5b00}.installment-alert.danger{border-color:#f0c6c0;background:#fff7f6}.installment-alert.danger strong,.installment-alert.danger i{color:#b42318}
.map-input-line{display:flex;gap:8px}.map-input-line input{min-width:0}.map-input-line .btn{flex:0 0 auto}.location-detail{margin:0 24px 16px;border:1px solid #dbe8f8;border-radius:13px;background:linear-gradient(120deg,#f5f9ff,#fff)}.location-summary{display:flex;justify-content:space-between;gap:20px;padding:0 18px 16px;font-size:12px;color:var(--muted)}.location-summary>div{display:flex;flex-direction:column;gap:5px}.location-summary strong{font-size:13px;color:#293e5e}
.detail-section{padding:20px 24px;border-top:1px solid var(--line)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.section-title h3{margin:2px 0 0;font-size:15px;color:#263953}.section-title h3 em{font-style:normal;font-size:12px;color:var(--muted);font-weight:500}.section-kicker{display:block;color:#6d7f97;font-size:10px;font-weight:750;letter-spacing:.9px;text-transform:uppercase}.compact-grid{gap:10px}.visit-section{background:#fcfdff}.visit-entry{margin-bottom:17px;padding:15px;border:1px solid #dce6f3;border-radius:13px;background:#f7faff}.inline-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.timeline-list{display:flex;flex-direction:column}.timeline-entry{display:grid;grid-template-columns:22px 1fr;min-height:72px}.timeline-rail{position:relative}.timeline-rail:before{content:"";position:absolute;left:8px;top:17px;bottom:-5px;width:2px;background:#d7e2f1}.timeline-entry:last-child .timeline-rail:before{display:none}.timeline-rail i{position:absolute;left:3px;top:8px;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:#3b82f6;box-shadow:0 0 0 2px #a9c8fa}.timeline-content{padding:0 0 17px 5px;font-size:12px;line-height:1.75;color:#41516a}.timeline-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.timeline-head strong{font-size:13px;color:#233852}.timeline-address{margin:5px 0;color:#315a91}.timeline-entry.voided{opacity:.62}.void-reason{margin-top:5px;padding:6px 8px;border-radius:7px;background:#f7f1f0;color:#9c4038}.visit-valid{background:#eaf8f0;color:#087647}.empty-inline{padding:24px;text-align:center;border:1px dashed #dce3ec;border-radius:11px;color:var(--muted);font-size:12px;background:#fafbfd}
.installment-section{background:linear-gradient(180deg,#fbfffe,#fff)}.finance-mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:12px}.finance-mini-stats>div,.finance-dashboard>div{padding:12px 14px;border:1px solid #e0e8ee;border-radius:11px;background:#fff}.finance-mini-stats span,.finance-dashboard span{display:block;font-size:11px;color:var(--muted)}.finance-mini-stats strong,.finance-dashboard strong{display:block;margin-top:5px;color:#23405c;font-size:18px;font-variant-numeric:tabular-nums}.finance-mini-stats .positive strong,.finance-dashboard .success strong{color:#087647}.finance-mini-stats .important strong,.finance-dashboard .important strong{color:#b54708}.finance-dashboard .danger strong{color:#b42318}
.installment-contract-list{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:9px}.installment-contract-card{display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:13px 14px;text-align:left;border:1px solid #dce8e6;border-radius:12px;background:#fff;color:inherit}.installment-contract-card:hover{border-color:#78c9ba;background:#f7fffd}.installment-contract-card.overdue{border-color:#efc0ba;background:#fffafa}.installment-contract-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.installment-contract-card>span,.installment-contract-card>small{color:var(--muted);font-size:11px}.contract-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.contract-numbers b{padding:7px;border-radius:8px;background:#f3f7f8;color:#315367;font-size:11px;font-weight:650}
.finance-modal{width:min(1540px,98vw)}.finance-dashboard{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}.finance-dashboard>div{background:linear-gradient(145deg,#f9fbfd,#fff)}.finance-block{margin-top:18px;padding-top:17px;border-top:1px solid #e5eaf0}.finance-table-scroll{max-height:430px;border:1px solid #e4e9ef;border-radius:11px}.finance-table{min-width:1120px;table-layout:auto}.finance-table th{position:sticky;top:0;z-index:1;padding:10px 11px;background:#f5f8fa}.finance-table td{padding:10px 11px;line-height:1.45}.finance-table td small{display:block;margin-top:3px;color:var(--muted)}.finance-status{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border-radius:13px;font-size:11px;font-weight:700;white-space:nowrap}.finance-status.success{background:#e7f8ef;color:#087647}.finance-status.danger{background:#fff0ef;color:#b42318}.finance-status.warning{background:#fff6e5;color:#9a5b00}.finance-status.info{background:#eaf4ff;color:#175cd3}.finance-status.neutral{background:#f1f3f6;color:#667085}.money-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.money-cell.paid{color:#087647;font-weight:650}.money-cell.remaining{color:#b54708;font-weight:750}.money-cell.negative{color:#b42318}.contract-summary-table{min-width:1380px}.contract-summary-table th:nth-child(2){width:180px}.contract-summary-table th:nth-child(4){width:210px}
.modal-card{overflow-x:hidden;overflow-y:auto}.finance-form-grid{padding:15px;border:1px solid #e0e9ed;border-radius:13px;background:#f8fbfb}#installmentContractForm{padding:20px 21px 0}.schedule-builder{margin-top:18px}.schedule-generator{display:flex;align-items:end;gap:10px;padding:12px;margin-bottom:10px;border:1px solid #dfe8ec;border-radius:11px;background:#f7fafb}.schedule-generator label{width:170px}.schedule-generator span{margin-left:auto;padding:9px 11px;border-radius:8px;background:#eaf7f4;color:#0c6c61;font-size:12px;font-weight:700}.schedule-edit-table{min-width:620px}.schedule-edit-table th,.schedule-edit-table td{padding:8px 10px}.schedule-edit-table th:nth-child(1){width:110px}.schedule-edit-table th:nth-child(4){width:60px}.schedule-edit-table input{width:100%}
.contract-toolbar{display:flex;justify-content:flex-end;gap:8px;margin:-5px 0 5px}.payment-entry{margin-top:18px;padding:16px;border:1px solid var(--finance-line);border-radius:13px;background:var(--finance-soft)}.payment-preview{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:10px;border:1px dashed #8dc8bd;border-radius:9px;background:#fff;font-size:11px;color:#315d58}.payment-preview:empty{display:none}.payment-preview strong{width:100%;color:#0f675d}.payment-preview span{padding:4px 7px;border-radius:7px;background:#edf8f6}.payment-preview small{margin-left:auto}.setting-card{padding:15px;border:1px solid #e0e7ef;border-radius:12px;background:#f8fafc}.setting-card p{color:var(--muted);font-size:12px;line-height:1.7}.setting-card label{margin-bottom:12px}
.map-modal-card{width:min(1080px,96vw);overflow:hidden}.map-toolbar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.map-canvas{height:min(64vh,650px);background:#edf2f5}.map-unavailable{display:grid;place-items:center;min-height:360px;padding:30px;text-align:center;color:#8a5a0a;background:#fffaf0}.map-modal-card .form-actions{position:static;margin:0;padding:12px 16px}
.detail-card{width:min(1180px,97vw)}.detail-item{padding:11px 12px}.detail-item .key{margin-bottom:3px}.deal-section,.gift-section,.followup-box,.history{padding-top:18px;padding-bottom:18px}.modal-body{line-height:1.5}th,td{line-height:1.45}
@media(max-width:1100px){.installment-alerts{grid-template-columns:1fr 1fr}.finance-dashboard{grid-template-columns:repeat(3,1fr)}.finance-mini-stats{grid-template-columns:repeat(2,1fr)}.installment-contract-list{grid-template-columns:1fr}.span-3{grid-column:span 2}.schedule-generator{flex-wrap:wrap}.schedule-generator span{width:100%;margin-left:0}}
@media(max-width:700px){.installment-alerts{grid-template-columns:1fr}.finance-dashboard,.finance-mini-stats{grid-template-columns:repeat(2,1fr)}.location-summary{flex-direction:column}.span-3{grid-column:span 1}.map-input-line{flex-direction:column}.schedule-generator label{width:100%}.schedule-generator>*{width:100%}.contract-toolbar{flex-wrap:wrap;justify-content:flex-start}.map-canvas{height:55vh}.detail-section{padding:16px 14px}}

/* V3.4 信息架构、可维护性与可访问性优化 */
:root{--surface-soft:#f7f9fc;--surface-blue:#f3f7ff;--surface-purple:#fbf8ff;--focus:0 0 0 3px rgba(37,99,235,.18)}
body{font-family:"Segoe UI","Microsoft YaHei",system-ui,sans-serif;line-height:1.45}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #2563eb;outline-offset:2px;box-shadow:var(--focus)}
.topbar{border-bottom:1px solid rgba(255,255,255,.1)}.brand small{vertical-align:2px;padding:3px 7px;border-radius:7px}
.toolbar{background:linear-gradient(180deg,#fff,#fbfcfe)}.toolbar-break{border-top:1px dashed #e5eaf2;margin:3px 0}.table-panel{overflow:hidden}
#customerTable thead{position:sticky;top:0;z-index:3}#customerTable th{box-shadow:inset 0 -1px #e6ebf2}
.modal-card{scrollbar-color:#b9c4d3 transparent;scrollbar-width:thin}.modal-head{min-height:76px}
.detail-card{background:#f3f6fa}.detail-card>.modal-head{background:rgba(255,255,255,.98)}
.detail-nav{position:sticky;top:76px;z-index:2;display:flex;gap:7px;padding:10px 16px;border-bottom:1px solid #e1e7ef;background:rgba(247,249,252,.96);backdrop-filter:blur(10px);overflow-x:auto}
.detail-nav button{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:7px 12px;border:1px solid #dfe6f0;border-radius:18px;background:#fff;color:#40516a;font-size:12px;font-weight:650;white-space:nowrap}
.detail-nav button:hover{border-color:#9eb8e4;background:#f4f7ff;color:#1f57bd}.detail-nav span{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#eee9ff;color:#6941c6;font-size:10px}
.detail-body{margin:14px 14px 0;padding:18px 20px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}
.phone-reveal{margin:0 14px;padding:12px 20px;border:1px solid #e2e8f0;border-top:0;border-radius:0 0 14px 14px;background:#fff}
.detail-section,.deal-section,.gift-section,.followup-box,.history,.aftersales-link-row{scroll-margin-top:126px;margin:12px 14px;padding:18px 20px;border:1px solid #e1e7ef;border-radius:14px;background:#fff;box-shadow:0 4px 14px rgba(30,50,80,.035)}
.location-detail{margin:12px 14px}.location-detail .location-summary{padding-bottom:4px}
.deal-section{background:linear-gradient(145deg,#fff,#f9fcff)}.visit-section{background:linear-gradient(145deg,#fff,#f8fbff)}
.installment-section{background:linear-gradient(145deg,#fff,#f6fffc);border-color:#d5ebe6}
.gift-section{background:linear-gradient(145deg,#fff,#fbf8ff);border-color:#e6ddf7}.gift-section .section-kicker{color:#7955bd}.gift-section .subsection-head>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px}.gift-section .subsection-head h3{font-size:15px}.gift-section .subsection-head h3 em{font-style:normal;color:#7b6a96;font-size:12px;font-weight:500}
.aftersales-link-row{background:linear-gradient(100deg,#f6fbff,#fff)}.followup-box{background:linear-gradient(145deg,#fff,#fffcf5)}.history{background:#fff}
.detail-actions{position:sticky;bottom:0;z-index:3;padding:12px 18px;background:rgba(255,255,255,.97);box-shadow:0 -7px 22px rgba(27,45,72,.08);backdrop-filter:blur(10px)}
.detail-item{border-color:#e7ebf1;background:#f8fafc;transition:border-color .15s,background .15s}.detail-item:hover{border-color:#ced9e8;background:#fff}
.section-title,.subsection-head{min-height:37px}.section-title h3,.subsection-head h3{letter-spacing:.1px}
.gift-table,.deal-table{border:1px solid #e7ebf1;border-radius:10px;overflow:hidden}.gift-table th,.deal-table th{background:#f7f9fc}
.finance-status{letter-spacing:.1px}.money-cell{font-feature-settings:"tnum"}
@media(max-width:700px){#currentUser{display:none}.topbar{gap:8px}.brand{font-size:19px;white-space:nowrap}.userbar{margin-left:auto}.detail-nav{top:64px;padding:8px 10px}.detail-body,.detail-section,.deal-section,.gift-section,.followup-box,.history,.aftersales-link-row,.location-detail{margin:8px;padding:14px}.phone-reveal{margin:0 8px}.detail-actions{padding:10px}.detail-nav button{padding:6px 10px}.gift-section .subsection-head>div{align-items:flex-start;flex-direction:column}.gift-section .subsection-head{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.btn:hover{transform:none}}
