*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:14px;color:#1a1a1a;background:#f0f2f5;overflow:hidden;height:100vh}.toast{position:fixed;top:24px;left:50%;transform:translateX(-50%);z-index:2000;padding:10px 24px;border-radius:6px;color:#fff;font-size:14px;animation:fadeIn .3s}.toast.success{background:#52c41a}.toast.error{background:#ff4d4f}@keyframes fadeIn{from{opacity:0;transform:translateX(-50%) translateY(-10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.login-container{display:flex;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{background:#fff;border-radius:8px;padding:40px;width:380px;box-shadow:0 8px 32px rgba(0,0,0,.18)}.login-card h1{text-align:center;margin-bottom:8px;font-size:24px;color:#1677ff}.login-card .subtitle{text-align:center;color:#1a1a1a;margin-bottom:32px;font-size:13px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#333333}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;transition:border-color .2s;outline:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#1677ff;box-shadow:0 0 0 2px rgba(22,119,255,.15)}.form-group textarea{resize:vertical;min-height:60px}.btn{display:inline-block;padding:10px 24px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.btn-primary{background:#1677ff;color:#fff}.btn-primary:hover{background:#4096ff}.btn-default{background:#fff;color:#333;border:1px solid #d9d9d9}.btn-default:hover{border-color:#1677ff;color:#1677ff}.btn-danger{background:#ff4d4f;color:#fff}.btn-danger:hover{background:#ff7875}.btn-warning{background:#fa8c16;color:#fff}.btn-warning:hover{background:#ffa940}.btn-sm{padding:4px 12px;font-size:12px}.btn-block{width:100%}.btn-icon{background:none;border:none;cursor:pointer;font-size:18px;padding:4px 6px;border-radius:4px;line-height:1;transition:transform .3s ease}.btn-icon:hover{background:rgba(255,255,255,.15)}.btn:disabled{opacity:.5;cursor:not-allowed}.app-layout{display:flex;height:100vh}.sidebar{width:220px;background:#001529;color:#fff;flex-shrink:0;display:flex;flex-direction:column;transition:width .2s;overflow:hidden}.sidebar.collapsed{width:0}.sidebar-logo{padding:20px 16px;font-size:18px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.1);text-align:left;color:#1677ff;white-space:nowrap}.sidebar-user{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-size:13px;white-space:nowrap;display:flex;align-items:center;gap:8px}.sidebar-user .name{font-weight:600;font-size:14px}.sidebar-user .role{background:rgba(22,119,255,.2);color:#1677ff;font-size:11px;padding:1px 8px;border-radius:4px;display:inline-block}.nav{flex:1;padding:8px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;padding:12px 20px;color:#ffffffa6;cursor:pointer;transition:all .2s;gap:10px;font-size:14px;white-space:nowrap}.nav-item:hover{color:#fff;background:rgba(255,255,255,.08)}.nav-item.active{color:#fff;background:#1677ff}.nav-item .icon{font-size:16px;width:20px;text-align:center}.sidebar-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.1);color:#ffffff73;cursor:pointer;font-size:13px;white-space:nowrap}.sidebar-footer:hover{color:#fff}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.header{background:#fff;padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 4px rgba(0,0,0,.08);flex-shrink:0}.header-left{display:flex;align-items:center;gap:12px}.header-left .toggle-btn{background:none;border:none;font-size:20px;cursor:pointer;color:#333;padding:4px}.header-right{display:flex;align-items:center;gap:16px;font-size:13px;color:#1a1a1a}.content{flex:1;padding:24px;overflow-y:auto}.page{display:none}.page.active{display:block}.card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 4px rgba(0,0,0,.06)}.card-title{font-size:15px;margin-bottom:16px;color:#333}.card-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:24px}.stat-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:transform .2s ease,box-shadow .2s ease;text-align:center}.stat-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.12)}.stat-value{font-size:28px;font-weight:700;text-align:center}.stat-label{color:#1a1a1a;font-size:13px;margin-top:4px;text-align:center}.stat-card.stat-follow .stat-value{color:#fa8c16}.stat-card.stat-sign .stat-value{color:#52c41a}.stat-card.stat-order .stat-value{color:#722ed1}.stat-card.stat-install .stat-value{color:#13c2c2}.stat-card.stat-amount .stat-value{color:#ff4d4f}.stat-card.stat-preorder .stat-value{color:#722ed1}.stat-card.stat-delivery .stat-value{color:#1890ff}.brief-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.brief-val{font-size:22px;font-weight:700;display:block}.brief-lbl{font-size:12px;color:#1a1a1a}.alert-wrap{max-height:360px;overflow-y:auto}.alert-group{margin-bottom:10px}.alert-hdr{font-size:13px;font-weight:600;color:#ff4d4f;margin-bottom:4px}.alert-item{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:12px;border-radius:4px;cursor:pointer;transition:background .2s}.alert-item:hover{background:#fff2f0}.alert-name{font-weight:600;color:#333;min-width:50px}.alert-tag{font-size:11px;padding:1px 6px;border-radius:8px}.alert-days{color:#fa8c16;min-width:36px;text-align:right}.alert-days.alert-hot{color:#ff4d4f;font-weight:700}.alert-addr{color:#1a1a1a;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}.alert-by{color:#1a1a1a;min-width:48px;text-align:right}.alert-empty{font-size:12px;color:#ccc;padding:4px 8px}.rank-levels{display:flex;gap:2px;background:#f5f5f5;border-radius:6px;padding:2px}.rank-tab{padding:3px 10px;font-size:12px;border-radius:4px;cursor:pointer;transition:all .2s;color:#1a1a1a}.rank-tab:hover{color:#1677ff}.rank-tab.active{background:#1677ff;color:#fff}.rank-sorts{display:flex;gap:6px;flex-wrap:wrap}.rank-sort-btn{padding:2px 8px;font-size:11px;color:#1a1a1a;border:1px solid #e8e8e8;border-radius:10px;cursor:pointer;transition:all .2s}.rank-sort-btn:hover{border-color:#1677ff;color:#1677ff}.rank-sort-btn.active{background:#1677ff;color:#fff;border-color:#1677ff}.rank-item{transition:background .2s}.rank-item:hover{background:#fafafa}.rank-metric{font-size:12px;font-weight:500;color:#1a1a1a;white-space:nowrap}.rank-metric-on{color:#1677ff;font-weight:600}.rank-bar-wrap{width:100%;height:4px;background:#f0f0f0;border-radius:2px;overflow:hidden}.rank-bar{height:100%;background:linear-gradient(90deg,#1677ff,#69b1ff);border-radius:2px;transition:width .4s ease}.table-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.table-toolbar input,.table-toolbar select{padding:8px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none}.table-toolbar input:focus,.table-toolbar select:focus{border-color:#1677ff}.table-toolbar .spacer{flex:1}.table-wrap{background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid #f0f0f0;white-space:nowrap;font-size:14px}th{background:#fafafa;font-weight:600;color:#333333;position:sticky;top:0;font-size:14px}tr:hover td{background:#fafafa}.status-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px}.status-意向{background:#e6f0ff;color:#1677ff}.status-跟进{background:#fff3e0;color:#fa8c16}.status-量尺{background:#f6ffed;color:#52c41a}.status-签单{background:#e6ffe6;color:#237804}.status-下单{background:#f9f0ff;color:#722ed1}.status-安装{background:#e6fffb;color:#13c2c2}.status-验收{background:#fffbe6;color:#fadb14}.status-流失{background:#fff1f0;color:#ff4d4f}.status-成交{background:#f0f5ff;color:#2f54eb}.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px}.tag-意向{background:#e6f0ff;color:#1677ff}.tag-跟进{background:#fff3e0;color:#fa8c16}.tag-量尺{background:#f6ffed;color:#52c41a}.tag-签单{background:#e6ffe6;color:#237804}.tag-下单{background:#f9f0ff;color:#722ed1}.tag-安装{background:#e6fffb;color:#13c2c2}.tag-验收{background:#fffbe6;color:#fadb14}.tag-流失{background:#fff1f0;color:#ff4d4f}.tag-成交{background:#f0f5ff;color:#2f54eb}.cust-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.btn-success{background:#52c41a;color:#fff}.btn-success:hover{background:#73d13d}.refresh-indicator{font-size:12px;color:#1a1a1a}.rank-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0}.rank-label{font-weight:500;font-size:13px}.rank-num{font-size:12px;color:#1a1a1a}.rank-item .rank-cnt{font-size:12px;color:#1677ff;font-weight:500}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px}.pagination button{padding:6px 12px;border:1px solid #d9d9d9;background:#fff;border-radius:4px;cursor:pointer;font-size:13px}.pagination button:hover{border-color:#1677ff;color:#1677ff}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{color:#1a1a1a;font-size:13px}.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;align-items:center;justify-content:center}.modal-overlay.show{display:flex}.modal{background:#fff;border-radius:8px;width:90%;max-width:640px;max-height:85vh;overflow-y:auto;box-shadow:0 4px 24px rgba(0,0,0,.15)}.modal-header{padding:16px 24px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between}.modal-header h3{font-size:16px}.modal-header .close{background:none;border:none;font-size:20px;cursor:pointer;color:#1a1a1a}.modal-body{padding:24px}.modal-body .form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.modal-footer{padding:12px 24px;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;gap:8px}.payment-summary{background:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;padding:12px;margin-top:8px;font-size:13px}.payment-summary .row{display:flex;justify-content:space-between;padding:4px 0}.payment-summary .total{font-weight:600;color:#52c41a}.follow-list{margin-top:12px;max-height:240px;overflow-y:auto}.follow-item{padding:10px 0;border-bottom:1px solid #f0f0f0;font-size:13px}.follow-item .meta{color:#1a1a1a;font-size:12px}.admin-section{background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:24px;overflow:hidden}.admin-section .section-header{padding:14px 20px;background:#fafafa;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between}.admin-section .section-header h3{font-size:15px}.admin-section .section-body{padding:16px 20px}.admin-section .section-body .mgmt-topbar{margin:0 0 16px}.admin-section .section-body > .table-wrap{padding:0}.backup-list{font-size:13px}.backup-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f0}.profile-card{background:#fff;border-radius:8px;padding:32px;box-shadow:0 1px 4px rgba(0,0,0,.06);max-width:480px}.profile-card .info-row{display:flex;padding:10px 0;border-bottom:1px solid #f0f0f0}.profile-card .info-label{width:100px;color:#1a1a1a}.loading{text-align:center;padding:60px;color:#1a1a1a;font-size:14px}@media(max-width:1024px){.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:900}.sidebar.collapsed{left:-220px}.stats-row{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.chart-row{grid-template-columns:1fr}}@media(max-width:768px){body{touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}.sidebar{left:-220px;z-index:1000}.sidebar:not(.collapsed){left:0}.sidebar:not(.collapsed) ~ .sidebar-backdrop{display:block}.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:899}.content{padding:12px}.header{padding:0 12px;height:48px}.header h2{font-size:14px}#toggle-sidebar{padding:8px;min-width:44px;min-height:44px;font-size:22px}.header-right{gap:6px;font-size:12px}.login-container{padding:20px}.login-card{width:100%;max-width:360px;padding:28px 20px}.login-card h1{font-size:22px}.login-card .subtitle{margin-bottom:24px}.card{padding:14px;border-radius:6px}.stats-row{grid-template-columns:repeat(2,1fr);gap:8px}.stat-card{padding:14px;border-radius:8px}.stat-value{font-size:22px}.brief-row{grid-template-columns:repeat(2,1fr);gap:8px;font-size:13px}.brief-val{font-size:18px}.alert-name{min-width:40px}.alert-addr{max-width:80px}.rank-levels{flex-wrap:wrap}#page-customers input[type=text],#page-customers select,#page-customers input[type=date]{width:100% !important;min-height:40px;font-size:14px}#page-customers .card .btn{min-height:40px;font-size:14px}.table-wrap{overflow-x:visible !important;background:transparent;box-shadow:none;border-radius:0;padding:0}.cust-table,.cust-table thead,.cust-table tbody,.cust-table tr{display:block}.cust-table thead{display:none}.cust-table tbody tr{background:#fff;border-radius:10px;margin-bottom:12px;padding:14px;box-shadow:0 1px 4px rgba(0,0,0,.06);position:relative;display:flex;flex-wrap:wrap;align-items:flex-start}.cust-table tbody tr:hover td{background:transparent}.cust-table tbody td{display:inline-block;padding:3px 4px;border:none;white-space:normal;font-size:13px}.cust-table tbody td[data-label="姓名"]{display:block;width:100%;font-size:16px;font-weight:700;padding:0 60px 6px 0;color:#333}.cust-table tbody td[data-label="姓名"] strong{font-weight:700}.cust-table tbody td[data-label="状态"]{position:absolute;top:14px;right:14px}.cust-table tbody td[data-label="状态"] .status-tag{font-size:12px;padding:3px 10px !important}.cust-table tbody td[data-label="电话"]{color:#1677ff;font-weight:500;margin-right:8px;font-size:14px}.cust-table tbody td[data-label="来源"],.cust-table tbody td[data-label="意向产品"],.cust-table tbody td[data-label="建档"],.cust-table tbody td[data-label="预估下单"],.cust-table tbody td[data-label="签单金额"]{font-size:12px;color:#1a1a1a;margin-top:2px}.cust-table tbody td[data-label="来源"]::before,.cust-table tbody td[data-label="意向产品"]::before,.cust-table tbody td[data-label="建档"]::before,.cust-table tbody td[data-label="预估下单"]::before,.cust-table tbody td[data-label="签单金额"]::before{content:attr(data-label)':';color:#1a1a1a;font-weight:400}.cust-table tbody td[data-label="经销商"],.cust-table tbody td[data-label="门店"]{font-size:12px;color:#1a1a1a}.cust-table tbody td[data-label="经销商"]::before,.cust-table tbody td[data-label="门店"]::before{content:attr(data-label)':';color:#1a1a1a}.cust-table tbody td[data-label="门店"]{margin-right:8px}.cust-table tbody td[data-label="小区"]{font-size:12px;color:#1a1a1a;width:100%;margin-top:4px}.cust-table tbody td[data-label="小区"]::before{content:'📍 ';color:#1a1a1a}.cust-table tbody td[data-label="最近跟进"]{font-size:12px;color:#1a1a1a;width:100%}.cust-table tbody td[data-label="最近跟进"]::before{content:attr(data-label)':';color:#ccc}.cust-table tbody td[data-label="签单金额"]{color:#ff4d4f;font-weight:500}.cust-table tbody td[data-label="操作"]{display:block;width:100%;padding:8px 0 0 0;margin-top:6px;border-top:1px solid #f0f0f0}.cust-table tbody td[data-label="操作"] .btn{min-height:36px;min-width:60px}.admin-table,.data-table,.admin-table thead,.data-table thead,.admin-table tbody,.data-table tbody,.admin-table tr,.data-table tr{display:block}.admin-table thead,.data-table thead{display:none}.admin-table tbody tr,.data-table tbody tr{background:#fff;border-radius:10px;margin-bottom:12px;padding:14px;box-shadow:0 1px 4px rgba(0,0,0,.06)}.admin-table tbody tr:hover td,.data-table tbody tr:hover td{background:transparent}.admin-table tbody td,.data-table tbody td{display:block;padding:4px 0;border:none;white-space:normal;font-size:13px}.admin-table tbody td::before,.data-table tbody td::before{content:attr(data-label)':';color:#1a1a1a;font-weight:400;margin-right:4px}.admin-table tbody td:first-child,.data-table tbody td:first-child{font-size:16px;font-weight:700;color:#333;padding-bottom:8px}.admin-table tbody td:first-child::before,.data-table tbody td:first-child::before{content:none}.admin-table tbody td[data-label="操作"],.data-table tbody td[data-label="操作"]{margin-top:6px;padding-top:8px;border-top:1px solid #f0f0f0}.admin-table tbody td[data-label="操作"] .btn,.data-table tbody td[data-label="操作"] .btn{min-height:36px;min-width:60px}.admin-table .empty,.data-table .empty{text-align:center;color:#1a1a1a;padding:40px}.pagination button{min-height:40px;min-width:60px}.pagination span{line-height:40px !important}.modal{width:100%;max-width:none;max-height:100vh;border-radius:0;display:flex;flex-direction:column}.modal-overlay{align-items:flex-end}.modal-overlay.show{align-items:flex-end}.modal-header{padding:14px 16px}.modal-body{padding:16px}.modal-body .form-row{grid-template-columns:1fr}.modal-body .form-group{margin-bottom:14px}.modal-body input,.modal-body select,.modal-body textarea{min-height:44px;font-size:15px}.modal-footer{padding:14px 16px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0))}.modal-footer .btn{min-height:44px;min-width:80px;font-size:15px}.profile-card{max-width:100%;padding:20px;border-radius:0}.profile-card .info-row{flex-direction:column;gap:4px;padding:8px 0}.profile-card .info-label{width:auto}.admin-section{border-radius:0;margin-bottom:16px}.admin-section .section-header{padding:12px 16px}.admin-section .section-body{padding:12px}.backup-item{flex-direction:column;align-items:stretch;gap:8px}.backup-item .btn{min-height:36px}.chart-row{grid-template-columns:1fr}.card-row{grid-template-columns:1fr !important;gap:12px}pre{font-size:11px;white-space:pre-wrap;word-break:break-all}.toggle-wrap{padding:8px 12px}.monthly-matrix{overflow-x:auto !important;-webkit-overflow-scrolling:touch;border-radius:6px}.monthly-matrix table{min-width:700px}#page-targets select,#dash-year,#dash-dim,#dash-zone-id,#dash-dealer-id{width:100% !important;min-height:40px;font-size:14px;margin-bottom:4px}#page-targets .card .btn,#dash-table .btn{min-height:40px;font-size:14px}.monthly-matrix{margin:0 -12px;border-radius:0}.monthly-matrix table{min-width:480px;font-size:12px}.monthly-matrix thead th,.monthly-matrix td{padding:6px 4px}.monthly-matrix .mm-label{font-size:12px;padding:6px 4px}.matrix-val{font-size:14px}.dealer-metrics{grid-template-columns:1fr 1fr;gap:8px}.dealer-metric-card .mc-value{font-size:24px}.dealer-metric-card .mc-top{padding:8px 10px 6px;gap:2px}.mgmt-topbar{flex-direction:column;gap:10px}.mgmt-stats{gap:8px}.mgmt-stat{padding:10px 12px;gap:10px}.mgmt-stat-value{font-size:18px}.mgmt-filter{min-width:0;padding:8px 10px}.dealer-metric-card .mc-body{padding:14px 10px 14px}.dealer-metric-card .mc-label{font-size:12px}.dealer-metric-card .mc-detail{font-size:13px}.dealer-metric-card .mc-bar{margin:auto 10px 12px}.period-toggle{flex-wrap:wrap}.period-toggle button{font-size:12px;padding:5px 10px}}@media(max-width:480px){.dealer-metrics{grid-template-columns:1fr;gap:6px}.dealer-metric-card .mc-value{font-size:20px}.stats-row{grid-template-columns:1fr 1fr}.stat-value{font-size:18px}.stat-card{padding:10px}.brief-row{grid-template-columns:1fr 1fr}.mgmt-stats{gap:6px}.mgmt-stat{padding:8px 10px;gap:8px}.mgmt-stat-icon{width:30px;height:30px;font-size:14px}.mgmt-stat-value{font-size:16px}.tab-btn{font-size:12px;padding:5px 10px}}.tab-btn{padding:6px 16px;border:1px solid #d9d9d9;background:#fff;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s;color:#1a1a1a}.tab-btn:hover{border-color:#1677ff;color:#1677ff}.tab-btn.active{background:#1677ff;color:#fff;border-color:#1677ff}.toggle-wrap{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;background:#f6f8fa;border-radius:8px}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;cursor:pointer}.toggle-switch input{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background:#d9d9d9;border-radius:12px;transition:background .25s}.toggle-slider::after{content:'';position:absolute;width:20px;height:20px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .25s;box-shadow:0 1px 3px rgba(0,0,0,.15)}.toggle-switch input:checked+.toggle-slider{background:#1677ff}.toggle-switch input:checked+.toggle-slider::after{transform:translateX(20px)}.toggle-label{font-size:14px;font-weight:500;color:#1a1a1a;min-width:32px}.toggle-switch input:checked~.toggle-label{color:#1677ff;font-weight:600}.period-toggle{display:inline-flex;background:#f0f0f0;border-radius:8px;padding:3px;gap:2px}.period-toggle button{border:none;background:transparent;padding:6px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;color:#1a1a1a}.period-toggle button.active{background:#fff;color:#1677ff;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}.period-toggle button:not(.active):hover{color:#333}.dealer-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.dealer-metric-card{background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.04);transition:transform .2s ease,box-shadow .2s ease;overflow:hidden;cursor:default;display:flex;flex-direction:column}.dealer-metric-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.10)}.dealer-metric-card .mc-top{padding:14px 20px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;gap:4px}.dealer-metric-card .mc-top .mc-label{font-weight:600}.dealer-metric-card .mc-icon{font-size:40px;line-height:1;display:block}.dealer-metric-card .mc-body{flex:1;padding:24px 20px 20px;text-align:center;display:flex;flex-direction:column;align-items:center}.dealer-metric-card .mc-label{font-size:13px;margin-bottom:0;font-weight:500}.dealer-metric-card .mc-value{font-size:34px;font-weight:700;line-height:1;margin-bottom:10px;letter-spacing:-1px}.dealer-metric-card .mc-detail{font-size:14px;color:#1a1a1a;line-height:1.5}.dealer-metric-card .mc-bar{height:5px;background:#f0f0f0;border-radius:3px;margin:auto 20px 18px;overflow:hidden}.dealer-metric-card .mc-bar-fill{height:100%;border-radius:3px;transition:width .6s cubic-bezier(.4,0,.2,1)}.monthly-matrix{background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.04);overflow:hidden}.monthly-matrix table{width:100%;border-collapse:collapse;font-size:13px}.monthly-matrix thead th{background:#fafafa;padding:12px 6px;text-align:center;font-weight:700;font-size:14px;color:#1a1a1a;border-bottom:2px solid #f0f0f0;white-space:nowrap}.monthly-matrix td{padding:10px 8px;border-bottom:1px solid #f5f5f5;transition:background .15s;vertical-align:middle}.monthly-matrix tbody tr:hover td{background:#f5f5f5}.monthly-matrix tbody tr:last-child td{border-bottom:none}.monthly-matrix .mm-label{padding:10px 8px;font-weight:700;font-size:14px;display:flex;align-items:center;gap:6px}.monthly-matrix .mm-label .mm-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.matrix-val{font-weight:700;font-size:15px;line-height:1.3}.matrix-rate{font-size:14px;font-weight:700;line-height:1.3}.matrix-pbar{width:44px;height:4px;background:#f0f0f0;border-radius:2px;margin:4px auto 0;overflow:hidden}.matrix-pbar-fill{height:100%;border-radius:2px}@media(max-width:900px){.dealer-metrics{grid-template-columns:repeat(2,1fr)}}.app-footer{padding:20px 0 10px;text-align:center;font-size:12px;color:#1a1a1a}.app-footer span:hover{color:#1677ff}.mgmt-stats{display:flex;gap:10px;flex-shrink:0;align-items:stretch;}.mgmt-stat{flex:1;background:#fff;border:1px solid #f0f0f0;border-radius:10px;padding:14px 16px;display:flex;align-items:center;gap:12px;transition:box-shadow .2s,border-color .2s;cursor:default;min-width:0;}.mgmt-stat:hover{box-shadow:0 2px 8px rgba(0,0,0,.05);border-color:#e0e0e0;}.mgmt-stat-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}.mgmt-stat-icon.s-blue{background:#e6f4ff;}.mgmt-stat-icon.s-green{background:#f6ffed;}.mgmt-stat-icon.s-orange{background:#fff7e6;}.mgmt-stat-icon.s-purple{background:#f9f0ff;}.mgmt-stat-body{display:flex;flex-direction:column;min-width:0;line-height:1.3;}.mgmt-stat-value{font-size:22px;font-weight:700;color:#1a1a1a;letter-spacing:-0.5px;}.mgmt-stat-label{font-size:12px;color:#8c8c8c;margin-top:1px;white-space:nowrap;}.mgmt-filter{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fafafa;border:1px solid #f0f0f0;border-radius:10px;flex:1;min-width:280px;flex-wrap:wrap;}.mgmt-topbar{display:flex;gap:12px;align-items:stretch;margin-bottom:16px;flex-wrap:wrap;}.mgmt-filter input,.mgmt-filter select{padding:6px 10px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none;background:#fff;transition:all .2s;min-width:0;}.mgmt-filter input:focus,.mgmt-filter select:focus{border-color:#1677ff;box-shadow:0 0 0 2px rgba(22,119,255,.1);}.mgmt-filter input[type=text]{min-width:100px;}.mgmt-filter select{cursor:pointer;}.mgmt-filter .filter-spacer{flex:1;min-width:8px;}.mgmt-filter .filter-count{font-size:12px;color:#8c8c8c;background:#fff;border:1px solid #e8e8e8;border-radius:20px;padding:3px 12px;white-space:nowrap;flex-shrink:0;}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}input[type=number]{-moz-appearance:textfield;}

/* === 折叠导航组 === */
.nav-group{margin:0}
.nav-group-header{display:flex;align-items:center;padding:12px 20px;color:#ffffffa6;cursor:pointer;transition:all .2s;gap:8px;font-size:14px;white-space:nowrap;user-select:none}
.nav-group-header:hover{color:#fff;background:rgba(255,255,255,.08)}
.nav-group.active>.nav-group-header{color:#fff;background:rgba(22,119,255,.15)}
.nav-group-header .icon{font-size:16px;width:20px;text-align:center}
.nav-arrow{margin-left:auto;font-size:10px;transition:transform .2s;color:rgba(255,255,255,.4)}
.nav-arrow.expanded{color:rgba(255,255,255,.65)}
.nav-sub-items{overflow:hidden;transition:max-height .25s ease}
.nav-sub-item{display:flex;align-items:center;padding:10px 20px 10px 50px;color:#ffffffa6;cursor:pointer;transition:all .2s;gap:8px;font-size:13px;white-space:nowrap}
.nav-sub-item:hover{color:#fff}
.nav-sub-item.active{color:#fff;background:rgba(22,119,255,.12)}
.nav-sub-item .sub-icon{font-size:14px;width:18px;text-align:center;flex-shrink:0}

/* === AI 分析页面 === */
#page-ai-analyze.active{display:flex;flex-direction:column;padding-top:0;height:100%;overflow:hidden}
#page-ai-analyze .period-toggle{overflow-x:auto;flex-wrap:nowrap;gap:4px}
#page-ai-analyze .period-toggle button{white-space:nowrap;padding:6px 14px}
.ai-msg{display:flex;gap:10px;max-width:85%}
.ai-msg.user{margin-left:auto;flex-direction:row-reverse}
.ai-msg .ai-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px}
.ai-msg.user .ai-avatar{background:#1677ff;color:#fff}
.ai-msg.bot .ai-avatar{background:#f0f0f0;color:#555}
.ai-msg .ai-bubble{padding:10px 14px;border-radius:10px;font-size:14px;line-height:1.7;white-space:pre-wrap;word-break:break-word}
.ai-msg.user .ai-bubble{background:#1677ff;color:#fff;border-radius:10px 4px 10px 10px}
.ai-msg.bot .ai-bubble{background:#f7f8fa;color:#333;border-radius:4px 10px 10px 10px;border:1px solid #e8e8e8}
.ai-msg.bot .ai-bubble table{font-size:13px;margin:6px 0;width:100%;border-collapse:collapse}
.ai-msg.bot .ai-bubble th,.ai-msg.bot .ai-bubble td{padding:6px 10px;border:1px solid #e0e0e0;text-align:left;font-size:13px;white-space:normal}
.ai-msg.bot .ai-bubble th{background:#f0f0f0;font-weight:600}
.ai-msg.bot .ai-bubble strong{color:#1a1a1a}
.ai-msg.bot .ai-bubble .rate-up{color:#016360;font-weight:600}
.ai-msg.bot .ai-bubble .rate-warn{color:#B8860B;font-weight:600}
.ai-msg.bot .ai-bubble .rate-down{color:#C41E1E;font-weight:600}
.ai-loading{display:flex;gap:4px;padding:6px 0}
.ai-loading span{width:6px;height:6px;border-radius:50%;background:#ccc;animation:aiBounce 1.4s infinite ease-in-out both}
.ai-loading span:nth-child(2){animation-delay:.16s}
.ai-loading span:nth-child(3){animation-delay:.32s}
@keyframes aiBounce{0%,80%,100%{transform:scale(0)}40%{transform:scale(1)}}
.ai-empty-msg{text-align:center;padding:40px 20px;color:#ccc;font-size:14px;line-height:2}

/* === AI 分析 - 头部与布局 === */
.ai-header-section{margin-bottom:12px;flex-shrink:0}
.ai-header-section .section-body{padding:10px 20px}
.ai-header-top{display:flex;align-items:center;justify-content:space-between}
.ai-header-title{font-weight:600;font-size:15px}
.ai-header-date{font-size:12px;color:#999}
.ai-header-desc{font-size:13px;color:#666;margin-top:4px}

/* === AI 分析 - 聊天区域 === */
#ai-chat-section{flex:1;display:flex;flex-direction:column;min-height:0;margin-bottom:0}
#ai-chat-section .section-header{flex-shrink:0}
#ai-chat-section .chat-body{flex:1;display:flex;flex-direction:column;padding:0;min-height:0}
#ai-chat-msgs{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:14px}

/* === AI 输入框区域 === */
.ai-input-wrap{display:flex;flex-direction:column;gap:0;padding:0;border-top:1px solid #f0f0f0;flex-shrink:0;background:#fff;border-radius:0 0 10px 10px}
.ai-input-wrap > .ai-textarea{flex:1;border:none;border-radius:0;padding:14px 16px 8px;font-size:15px;outline:none;resize:none;line-height:1.5;min-height:48px;max-height:120px;font-family:inherit;background:transparent;width:100%;box-sizing:border-box}
.ai-input-wrap > .ai-textarea:focus{border:none;box-shadow:none}
.ai-input-wrap > .ai-textarea::placeholder{color:#bbb}
.ai-input-bottom{display:flex;align-items:center;gap:8px;padding:6px 8px 8px}
.ai-input-tools{flex:1;display:flex;gap:12px;flex-wrap:wrap}
.ai-input-actions{display:flex;gap:4px;align-items:center;flex-shrink:0}
.ai-file-btn{display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer;padding:0 6px;border-radius:6px;background:#f9f9f9;border:1px solid #e8e8e8;width:44px;flex-shrink:0;transition:background .15s;min-height:38px}
.ai-file-btn:hover{background:#e8e8e8}
.ai-options-bar{display:flex;gap:16px;padding:8px 0 10px;flex-shrink:0;flex-wrap:wrap}
.ai-switch-label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;color:#555;user-select:none}
.ai-switch-label input{display:none}
.ai-switch-slider{width:34px;height:20px;background:#d9d9d9;border-radius:10px;position:relative;transition:background .2s;flex-shrink:0}
.ai-switch-slider::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s}
.ai-switch-label input:checked + .ai-switch-slider{background:#1677ff}
.ai-switch-label input:checked + .ai-switch-slider::after{transform:translateX(14px)}
.ai-input-wrap > .ai-textarea{flex:1;min-width:200px}
#ai-file-preview{width:100%;display:none;padding:4px 8px 6px;background:#f5f5f5;gap:4px;flex-wrap:wrap}
.ai-file-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 6px;background:#fff;border:1px solid #d9d9d9;border-radius:4px;font-size:12px;line-height:1.6;cursor:default}
.ai-file-pill img{width:18px;height:18px;border-radius:2px;object-fit:cover}
.ai-file-pill .remove{cursor:pointer;font-size:14px;color:#999;margin-left:2px;line-height:1}
.ai-file-pill .remove:hover{color:#C41E1E}
.ai-textarea{flex:1;padding:12px 16px;border:1px solid #d9d9d9;border-radius:8px;font-size:15px;outline:none;transition:border-color .2s;resize:none;line-height:1.5;min-height:48px;max-height:120px;font-family:inherit;background:#fff}
.ai-textarea:focus{border-color:#1677ff;box-shadow:0 0 0 2px rgba(22,119,255,.1)}
.ai-textarea::placeholder{color:#bbb}
.ai-send-btn{padding:6px 18px;font-size:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:8px;min-height:38px}

@media(max-width:768px){#page-ai-analyze{padding:12px !important}.ai-msg{max-width:95%}}
/* === 知识库管理 === */
/* ===== 知识库 ===== */
.kb-layout{display:flex;gap:0;min-height:500px;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden;background:#fff}
.kb-sidebar{width:220px;flex-shrink:0;border-right:1px solid #e8e8e8;display:flex;flex-direction:column;background:#fafafa}
.kb-sidebar-header{padding:16px 16px 12px;border-bottom:1px solid #e8e8e8;display:flex;flex-direction:column;gap:2px}
.kb-folder-list{flex:1;overflow-y:auto;padding:6px 0}
.kb-folder-item{display:flex;align-items:center;padding:8px 16px;cursor:pointer;font-size:13px;color:#333;transition:all .15s;position:relative}
.kb-folder-item:hover{background:#f0f0f0}
.kb-folder-item.active{background:#e6f4ff;color:#1677ff;font-weight:600}
.kb-folder-item.active::before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;background:#1677ff;border-radius:0 2px 2px 0}
.kb-folder-icon{margin-right:8px;flex-shrink:0;font-size:14px}
.kb-folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-folder-count{font-size:11px;color:#999;background:#eee;padding:0 6px;border-radius:8px;margin-left:6px;font-weight:400}
.kb-folder-item.active .kb-folder-count{background:#1677ff;color:#fff}
.kb-folder-actions{display:none;gap:2px;margin-left:4px;font-size:11px}
.kb-folder-actions span{cursor:pointer;opacity:.4;padding:1px 2px}
.kb-folder-actions span:hover{opacity:1}
.kb-sidebar-footer{padding:12px 16px;border-top:1px solid #e8e8e8}
.kb-sidebar-btn-add{width:100%;padding:7px 0;border:1px dashed #1677ff;border-radius:6px;background:#e6f4ff;color:#1677ff;font-size:13px;cursor:pointer;transition:all .2s;font-weight:500}
.kb-sidebar-btn-add:hover{background:#1677ff;color:#fff}
.kb-main{flex:1;display:flex;flex-direction:column;min-width:0}
.kb-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid #e8e8e8;gap:12px}
.kb-toolbar-left{display:flex;align-items:center;gap:6px}
.kb-current-folder{font-size:15px;font-weight:600;color:#1a1a1a}
.kb-toolbar-right{display:flex;align-items:center;gap:8px}
.kb-toolbar-right input[type=text]{width:200px;padding:6px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none;transition:border-color .2s}
.kb-toolbar-right input[type=text]:focus{border-color:#1677ff;box-shadow:0 0 0 2px rgba(22,119,255,.1)}
.kb-doc-list{flex:1;overflow-y:auto;padding:12px 20px}
.kb-doc-item{display:flex;align-items:center;padding:12px 14px;border:1px solid #f0f0f0;border-radius:8px;margin-bottom:6px;transition:all .15s;background:#fff}
.kb-doc-item:hover{border-color:#d9d9d9;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.kb-doc-disabled{background:#fafafa!important;opacity:.7}
.kb-doc-icon{font-size:28px;margin-right:14px;flex-shrink:0;width:36px;text-align:center}
.kb-doc-body{flex:1;min-width:0}
.kb-doc-title{font-size:14px;font-weight:600;color:#1a1a1a}
.kb-doc-ext{font-size:11px;color:#bbb;font-weight:400;margin-left:4px}
.kb-doc-folder{font-size:11px;color:#999;font-weight:400;margin-left:8px;background:#f5f5f5;padding:1px 6px;border-radius:3px}
.kb-doc-meta{font-size:12px;color:#999;margin-top:3px}
.kb-doc-actions{display:flex;gap:4px;flex-shrink:0;margin-left:12px}
.kb-doc-btn{width:28px;height:28px;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .15s;opacity:.5}
.kb-doc-btn:hover{opacity:1;background:#f5f5f5;border-color:#e8e8e8}
.kb-empty{text-align:center;padding:60px 20px;color:#999;font-size:14px}
.kb-upload-zone{border:2px dashed #d9d9d9;border-radius:8px;padding:32px;text-align:center;cursor:pointer;background:#fafafa;transition:all .2s}
.kb-upload-zone:hover{border-color:#1677ff;background:#e6f4ff}
.kb-acl-grid{display:flex;flex-wrap:wrap;gap:8px}
.kb-acl-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid #d9d9d9;border-radius:16px;font-size:12px;cursor:pointer;transition:all .15s;user-select:none}
.kb-acl-tag:hover{border-color:#1677ff;color:#1677ff}
.kb-acl-tag:has(input:checked){background:#e6f4ff;border-color:#1677ff;color:#1677ff}
.kb-acl-tag input[type=checkbox]{display:none}
.kb-acl-tag:has(input:checked) span::before{content:'✓ '}
@media(max-width:720px){
  .kb-layout{flex-direction:column}
  .kb-sidebar{width:100%;border-right:none;border-bottom:1px solid #e8e8e8}
  .kb-toolbar{flex-direction:column;align-items:stretch}
  .kb-toolbar-right input{width:100%}
}

/* === 手机端适配汇总 === */
@media(max-width:768px){
#page-admin-clawbot select.cmb-form,
#page-admin-clawbot select{width:100%!important;min-height:44px;font-size:15px;margin-bottom:6px}
#page-admin-clawbot .tab-btn{font-size:13px;padding:7px 12px}
#page-admin-clawbot #cb-role-tabs .tab-btn{font-size:12px;padding:6px 10px}
#page-admin-clawbot #cb-consultant-list label,
#page-admin-clawbot #cb-user-list label{font-size:14px;padding:6px 12px;width:100%}
#page-admin-clawbot .btn-sm{min-height:40px;min-width:80px;font-size:14px;padding:8px 16px}
#page-admin-clawbot #cb-inv-list table.table-striped,
#page-admin-clawbot #cb-inv-list table.table-striped thead,
#page-admin-clawbot #cb-inv-list table.table-striped tbody,
#page-admin-clawbot #cb-inv-list table.table-striped tr{display:block}
#page-admin-clawbot #cb-inv-list table.table-striped thead{display:none}
#page-admin-clawbot #cb-inv-list table.table-striped tbody tr{
  background:#fff;border-radius:10px;margin-bottom:12px;padding:12px 14px;
  box-shadow:0 1px 4px rgba(0,0,0,.06);position:relative;
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px
}
#page-admin-clawbot #cb-inv-list table.table-striped tbody tr:hover td{background:transparent}
#page-admin-clawbot #cb-inv-list table.table-striped tbody td{
  display:inline-block;padding:3px 4px;border:none;white-space:normal;font-size:13px
}
#page-admin-clawbot #cb-inv-list table.table-striped tbody td:nth-child(1){
  display:block;width:100%;font-size:15px;font-family:monospace;font-weight:700;
  color:#016360;padding:0 90px 4px 0
}
#page-admin-clawbot #cb-inv-list table.table-striped tbody td:nth-child(5){
  position:absolute;top:12px;right:14px
}
#page-admin-clawbot #cb-inv-list table.table-striped tbody td:nth-child(2)::before,
#page-admin-clawbot #cb-inv-list table.table-striped tbody td:nth-child(3)::before,
#page-admin-clawbot #cb-inv-list table.table-striped tbody td:nth-child(4)::before{
  content:attr(data-label)':';color:#8c8c8c;font-weight:400;margin-right:2px;font-size:12px
}
#page-admin-clawbot #cb-inv-list table.table-striped tbody td:nth-child(2){font-weight:600}
#page-admin-clawbot #cb-inv-list table.table-striped tbody td:nth-child(6){
  display:block;width:100%;padding:8px 0 0 0;margin-top:6px;
  border-top:1px solid #f0f0f0;text-align:center
}
#page-admin-clawbot #cb-inv-list table.table-striped tbody td:nth-child(6) .btn{min-height:38px}
#page-admin-kb select{width:100%!important;min-height:40px;font-size:14px}
#page-admin-kb input{font-size:14px;min-height:40px}
.kb-acl-grid{flex-direction:column;gap:6px}
.kb-acl-grid .acp-btn{text-align:center;padding:10px}
}

/* === 新店健康度 === */
.ih-card{display:flex;background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:14px 16px;margin-bottom:10px;cursor:pointer;position:relative;overflow:hidden;gap:16px}
.ih-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}
.ih-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.ih-card.green::before{background:#27ae60}
.ih-card.yellow::before{background:#f39c12}
.ih-card.red::before{background:#e74c3c}
.ih-card.pending::before{background:#d9d9d9}
.ih-card-left{flex:0 0 200px;min-width:0}
.ih-card-mid{flex:1;min-width:0}
.ih-card-right{flex:0 0 170px;text-align:right;display:flex;flex-direction:column;justify-content:space-between}
.ih-card-left .name{font-size:15px;font-weight:700;margin-bottom:4px;line-height:1.3}
.ih-card-left .meta{font-size:13px;color:#888;line-height:1.6}
.ih-badge{display:inline-block;padding:1px 8px;border-radius:4px;font-size:11px}
.ih-badge.green{background:#f6ffed;color:#27ae60;border:1px solid #b7eb8f}
.ih-badge.yellow{background:#fffbe6;color:#f39c12;border:1px solid #ffe58f}
.ih-badge.red{background:#fff2f0;color:#e74c3c;border:1px solid #ffbb96}
.ih-badge.pending{background:#f5f5f5;color:#888;border:1px solid #d9d9d9}
.ih-card-mid .dims{display:flex;gap:20px}
.ih-card-mid .dim{text-align:center;min-width:72px}
.ih-card-mid .dim .v{font-size:18px;font-weight:700;line-height:1.2}
.ih-card-mid .dim .l{font-size:12px;color:#888;margin-top:2px}
.ih-card-mid .dim .val{font-size:18px;font-weight:700}
.ih-card-mid .dim .track{font-size:12px;color:#888;margin-top:2px}
.ih-card-mid .dim .fill{color:#27ae60}
.btns{display:flex;gap:4px;flex-wrap:wrap}
.ih-card-right .btns{justify-content:flex-end}
.ih-card .hint{font-size:12px;color:#999}
.ih-card .hint.warn{color:#c41e1e;font-weight:600}
.ih-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.ih-detail-grid .item,.ih-detail-grid .it{padding:12px;background:#fafafa;border-radius:8px;border:1px solid #f0f0f0}
.ih-detail-grid .item .lb,.ih-detail-grid .it .lb{font-size:12px;color:#888;margin-bottom:3px}
.ih-detail-grid .item .v,.ih-detail-grid .it .v{font-size:18px;font-weight:700}
.ih-box{background:#fafafa;border:1px solid #f0f0f0;border-radius:8px;padding:14px;margin-bottom:10px}
.ih-box h4{font-size:14px;margin-bottom:8px}
.chart-bar{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.chart-bar .lb{font-size:11px;color:#888;min-width:50px;text-align:right;flex-shrink:0}
.chart-bar .track{flex:1;height:14px;background:#f0f0f0;border-radius:7px;overflow:hidden;position:relative}
.chart-bar .fill{height:100%;border-radius:7px;transition:width .4s ease;min-width:2px}
.chart-bar .val{font-size:11px;color:#555;min-width:60px;flex-shrink:0}
.visit-list{max-height:160px;overflow-y:auto}
.visit-item{padding:7px 0;border-bottom:1px solid #f0f0f0;display:flex;gap:8px;align-items:flex-start}
.visit-item:last-child{border:none}
.visit-item .d{font-size:11px;color:#888;white-space:nowrap;min-width:76px}
.visit-item .c{font-size:13px;line-height:1.4}
.issue-item{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid #f0f0f0;font-size:13px}
.issue-item:last-child{border:none}
.issue-item .st{font-size:11px;padding:1px 6px;border-radius:3px}
.issue-item .st.open{background:#fff2f0;color:#e74c3c}
.issue-item .st.done{background:#f6ffed;color:#27ae60}
@media(max-width:900px){
  .ih-card{flex-wrap:wrap;gap:10px}
  .ih-card-left{flex:0 0 100%;padding-bottom:8px;border-bottom:1px solid #f0f0f0;margin-bottom:6px}
  .ih-card-mid{flex:0 0 100%}
  .ih-card-right{flex:0 0 100%;text-align:left;flex-direction:row;align-items:center}
}
@media(max-width:600px){
  .ih-detail-grid{grid-template-columns:1fr 1fr}
  .ih-card-mid .dims{gap:10px}
  .ih-card-mid .dim{min-width:58px}
  .ih-card-mid .dim .v{font-size:15px}
}

/* === 人员与账号工具栏 === */
.sf-toolbar{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.sf-tabs{display:flex;gap:6px;flex-wrap:wrap}
.sf-tab{display:inline-block;padding:4px 12px;border:1px solid #e8e8e8;border-radius:16px;font-size:13px;cursor:pointer;transition:all .15s;color:#1a1a1a;background:#fff;user-select:none}
.sf-tab:hover{border-color:#1677ff;color:#1677ff}
.sf-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sf-actions input{padding:6px 10px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none;width:180px;transition:border-color .2s}
.sf-actions input:focus{border-color:#1677ff;box-shadow:0 0 0 2px rgba(22,119,255,.1)}
.sf-actions ._fz{padding:6px 10px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none;transition:border-color .2s;background:#fff}
.sf-actions ._fz:focus{border-color:#1677ff;box-shadow:0 0 0 2px rgba(22,119,255,.1)}
.sf-fcount{font-size:12px;color:#8c8c8c;white-space:nowrap}
#sf-batch-bar{display:flex;align-items:center;gap:4px}
@media(max-width:768px){
  .sf-toolbar{gap:8px}

  .sf-tab{padding:4px 10px;font-size:12px}
  .sf-actions{flex-direction:column;align-items:stretch}
  .sf-actions input{width:100%}
  .sf-actions ._fz{width:100%}
}
.spinner-inline{display:inline-block;width:14px;height:14px;border:2px solid #e5e7eb;border-top-color:#1D4ED8;border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:4px}@keyframes spin{to{transform:rotate(360deg)}}

/* === 招商管理（独立版样式） === */
.tag-s1{background:#e6f0ff;color:#1677ff}.tag-s2{background:#f0e6ff;color:#722ed1}.tag-s3{background:#fff3e0;color:#fa8c16}.tag-s4{background:#e6fffb;color:#13c2c2}.tag-s5{background:#f6ffed;color:#52c41a}.tag-s6{background:#fffbe6;color:#c8a96e}.step-done{color:#27ae60}.step-active{color:#c8a96e}.step-pending{color:#888}.fill-g{background:#27ae60}.fill-o{background:#f39c12}.fill-r{background:#e74c3c}.btn-accent{background:#c8a96e;color:#fff}.btn-accent:hover{background:#b89a5e}

/* === 新店健康度 — 统计卡片 === */
.ih-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.ih-stat-card{background:#fff;border-radius:8px;padding:20px 16px 24px;box-shadow:0 1px 4px rgba(0,0,0,.06);border-left:4px solid transparent;transition:transform .2s ease,box-shadow .2s ease}
.ih-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.ih-stat-card .ih-stat-val{font-size:32px;font-weight:700;line-height:1.3}
.ih-stat-card .ih-stat-desc{font-size:14px;color:#555;margin-top:6px}
.ih-stat-card.card-green{border-left-color:#27ae60;background:linear-gradient(135deg,#f6ffed,#fff)}.ih-stat-card.card-green .ih-stat-val{color:#27ae60}
.ih-stat-card.card-yellow{border-left-color:#f39c12;background:linear-gradient(135deg,#fffbe6,#fff)}.ih-stat-card.card-yellow .ih-stat-val{color:#f39c12}
.ih-stat-card.card-red{border-left-color:#e74c3c;background:linear-gradient(135deg,#fff2f0,#fff)}.ih-stat-card.card-red .ih-stat-val{color:#e74c3c}
.ih-stat-card.card-blue{border-left-color:#1677ff;background:linear-gradient(135deg,#e6f0ff,#fff)}.ih-stat-card.card-blue .ih-stat-val{color:#1677ff}

/* === 新店健康度 — 预警栏 === */
.ih-alert-bar{display:flex;gap:8px;align-items:flex-start;padding:10px 14px;background:#fff2f0;border:1px solid #ffccc7;border-radius:8px;margin-bottom:12px;font-size:13px}
.ih-alert-bar .ih-alert-icon{font-size:16px;flex-shrink:0;line-height:1.5}
.ih-alert-bar .ih-alert-label{font-weight:600;color:#c41e1e;flex-shrink:0}
.ih-alert-bar .ih-alert-items{display:flex;gap:14px;flex:1;flex-wrap:wrap}
.ih-alert-bar .ih-alert-items span{cursor:pointer;color:#c41e1e;font-weight:500}
.ih-alert-bar .ih-alert-items span:hover{text-decoration:underline}

/* === 新店健康度 — 弹窗增强 === */
.ih-detail-header{margin-bottom:12px}
.ih-detail-header .ih-detail-title{font-size:16px;font-weight:700;margin-bottom:2px}
.ih-detail-header .ih-detail-info{font-size:12px;color:#888;line-height:1.6}
.ih-detail-header .ih-detail-info select{padding:1px 4px;border:1px solid #d9d9d9;border-radius:4px;font-size:12px;cursor:pointer}
.ih-detail-actions{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.ih-month-table{width:100%;border-collapse:collapse;font-size:13px}
.ih-month-table th{padding:6px 10px;text-align:right;border-bottom:2px solid #e8e8e8;font-weight:600;font-size:12px;color:#555}
.ih-month-table th:first-child{text-align:left}
.ih-month-table td{padding:6px 10px;text-align:right;border-bottom:1px solid #f0f0f0}
.ih-month-table td:first-child{text-align:left;font-weight:500}
.ih-month-table td.ih-na{color:#ccc;font-size:12px}
.ih-box-empty{text-align:center;padding:20px;color:#999;font-size:13px}
.ih-visit-empty{text-align:center;padding:14px;color:#999;font-size:13px}
.ih-issue-empty{text-align:center;padding:14px;color:#999;font-size:13px}
.ih-team-header{display:flex;align-items:center;justify-content:space-between}
.ih-team-header h4{margin:0;font-size:14px}
.ih-team-status{font-size:13px;margin-top:4px}
.ih-team-note{font-size:12px;color:#888;margin-top:2px}
.ih-health-sel-header{padding:1px 4px;border:1px solid #d9d9d9;border-radius:4px;font-size:12px;cursor:pointer;vertical-align:middle;background:#fff}


/* === 新店健康度 — 反馈信息条 === */
.ih-hint-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#fafafa;border-radius:6px;margin-bottom:12px;font-size:12px;color:#888}

@media(max-width:900px){
  .ih-stat-row{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .ih-stat-row{grid-template-columns:1fr 1fr;gap:8px}
  .ih-stat-card{padding:14px 10px 16px}
  .ih-stat-card .ih-stat-val{font-size:22px}
}
