:root{--navy:#17233d;--blue:#536dfe;--blue-dark:#4058db;--sky:#eef2ff;--bg:#f5f7fb;--line:#e8ebf2;--text:#202738;--muted:#8b93a7;--green:#22b78a;--danger:#ef5b6b;--shadow:0 18px 60px rgba(35,48,82,.12)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.hidden{display:none!important}.muted{color:var(--muted)}
.brand{display:flex;align-items:center;gap:11px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:#fff;background:linear-gradient(145deg,#6f83ff,#455de5);font-weight:800;box-shadow:0 7px 18px rgba(83,109,254,.27)}.brand-mark.large{width:46px;height:46px;border-radius:15px}.brand b{display:block;font-size:16px}.brand small{display:block;margin-top:1px;color:#a0a8ba;font-size:9px;letter-spacing:1.5px}.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2bc994;box-shadow:0 0 0 3px rgba(43,201,148,.13)}
.eyebrow{margin:0 0 7px;color:var(--blue);font-size:10px;font-weight:800;letter-spacing:1.8px}.primary-btn,.send-btn,.visitor-send{border:0;border-radius:10px;background:var(--blue);color:#fff;font-weight:700;box-shadow:0 7px 18px rgba(83,109,254,.2);transition:.2s}.primary-btn:hover,.send-btn:hover,.visitor-send:hover{background:var(--blue-dark);transform:translateY(-1px)}.primary-btn{padding:12px 22px}.primary-btn.wide{width:100%;padding:14px}.primary-btn.small{padding:9px 16px}.ghost-btn{padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#677086}.text-btn{border:0;background:none;color:#9299aa;padding:5px}.alert{padding:11px 14px;margin:15px 0;border-radius:10px;font-size:13px}.alert.error{background:#fff0f1;color:#ce4050}.alert.success{background:#eafaf5;color:#118560}

/* 登录 */
.login-body{display:grid;place-items:center;min-height:100vh;padding:28px;background:#eef1f8;background-image:radial-gradient(circle at 15% 20%,rgba(100,126,255,.15),transparent 28%),radial-gradient(circle at 85% 80%,rgba(68,209,171,.12),transparent 24%)}.login-shell{display:grid;grid-template-columns:1.1fr .9fr;width:min(980px,100%);min-height:600px;border-radius:26px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.login-intro{position:relative;padding:62px;color:#fff;background:linear-gradient(150deg,#182543 0%,#243866 58%,#465dce 140%);overflow:hidden}.login-intro:before,.login-intro:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%}.login-intro:before{width:360px;height:360px;right:-170px;top:-150px}.login-intro:after{width:260px;height:260px;left:-120px;bottom:-130px}.intro-brand{display:flex;align-items:center;gap:13px;font-size:20px;font-weight:800}.login-intro h1{margin:105px 0 20px;font-size:42px;line-height:1.3;letter-spacing:1px}.login-intro>p{max-width:360px;color:#c8d0e4;line-height:1.8}.intro-points{position:absolute;bottom:52px;left:62px;display:flex;flex-wrap:wrap;gap:11px}.intro-points span{padding:8px 12px;border:1px solid rgba(255,255,255,.13);border-radius:20px;color:#dce2f2;font-size:12px;background:rgba(255,255,255,.05)}.login-card{align-self:center;padding:70px 64px}.login-card h2{margin:0 0 7px;font-size:28px}.login-card>.muted{margin:0 0 32px;font-size:13px}.login-form{display:grid;gap:18px}.login-form label,.form-card label,.agent-edit-form label{display:grid;gap:8px;color:#687084;font-size:12px;font-weight:600}.login-form input,.form-card input,.agent-edit-form input,.agent-edit-form select{width:100%;padding:13px 14px;border:1px solid #dfe3ec;border-radius:10px;outline:none;background:#fafbfe;color:var(--text)}.login-form input:focus,.form-card input:focus,.agent-edit-form input:focus{border-color:#8596ff;box-shadow:0 0 0 3px rgba(83,109,254,.09);background:#fff}.login-form .check-row{display:flex;align-items:center;gap:7px}.check-row input{width:16px}.mobile-logo{display:none}

/* 后台框架 */
.admin-body{height:100vh;overflow:hidden;background:var(--bg)}.admin-topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);background:#fff}.admin-user{display:flex;align-items:center;gap:9px;font-size:13px}.role-tag{padding:4px 8px;border-radius:12px;background:var(--sky);color:var(--blue);font-size:10px}.workspace{display:grid;grid-template-columns:184px 330px minmax(400px,1fr);height:calc(100vh - 66px)}.side-nav{display:flex;flex-direction:column;justify-content:space-between;padding:22px 14px;border-right:1px solid var(--line);background:#fff}.side-nav nav{display:grid;gap:6px}.side-nav nav a{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:10px;color:#6f778a;font-size:13px;font-weight:600}.side-nav nav a span{width:18px;color:#aab0be;font-size:16px}.side-nav nav a.active{color:var(--blue);background:var(--sky)}.side-nav nav a.active span{color:var(--blue)}.side-tip{padding:14px;border-radius:12px;background:#f4f7ff}.side-tip b{font-size:11px;color:#6879c4}.side-tip p{margin:7px 0 0;color:#9aa2b6;font-size:10px;line-height:1.65}
.conversation-list-panel{min-width:0;border-right:1px solid var(--line);background:#fff}.panel-heading{height:88px;display:flex;align-items:center;justify-content:space-between;padding:18px 18px 12px}.panel-heading h2{display:flex;align-items:center;gap:7px;margin:0;font-size:20px}.count-badge{min-width:22px;padding:3px 6px;border-radius:11px;background:#eef1f6;color:#7a8295;text-align:center;font-size:10px}.icon-btn{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#778095;font-size:18px}.filters{display:flex;gap:3px;padding:0 14px 13px;border-bottom:1px solid var(--line);overflow:auto}.filters button{flex:none;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:#9299aa;font-size:11px}.filters button.active{color:var(--blue);background:var(--sky);font-weight:700}.conversation-list{height:calc(100% - 133px);overflow:auto}.conversation-item{position:relative;display:grid;grid-template-columns:42px 1fr auto;gap:10px;padding:15px 14px;border:0;border-bottom:1px solid #f0f1f5;background:#fff;width:100%;text-align:left}.conversation-item:hover,.conversation-item.active{background:#f6f8ff}.conversation-item.active:before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:0 3px 3px 0;background:var(--blue)}.customer-avatar,.list-avatar,.agent-avatar{display:grid;place-items:center;border-radius:13px;background:linear-gradient(145deg,#eff2ff,#dde4ff);color:#5b70da;font-weight:800}.list-avatar{width:42px;height:42px}.item-main{min-width:0}.item-top{display:flex;align-items:center;gap:6px}.item-top b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.item-main p{overflow:hidden;margin:6px 0 0;color:#9aa1b0;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.item-side{display:grid;justify-items:end;align-content:start;gap:7px;color:#a6adba;font-size:9px}.unread-badge{min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:9px;background:#f05f70;color:#fff;font-size:9px}.status-mini{padding:3px 6px;border-radius:8px;background:#fff3db;color:#ce8b16;font-size:8px}.status-mini.active{background:#e7f8f2;color:#1c9b75}.status-mini.closed{background:#eef0f4;color:#8d94a4}.loading-state,.no-conversations{padding:50px 20px;color:#a0a7b5;text-align:center;font-size:12px}
.chat-panel{min-width:0;background:#f7f8fc}.empty-chat{height:100%;display:grid;place-content:center;justify-items:center}.empty-illustration{width:94px;height:94px;display:grid;place-items:center;border-radius:50%;background:#edf1ff;font-size:35px;box-shadow:0 0 0 16px rgba(237,241,255,.45)}.empty-chat h2{margin:30px 0 8px;font-size:18px}.empty-chat p{margin:0;color:#9ca3b2;font-size:12px}.active-chat{height:100%;display:grid;grid-template-rows:70px minmax(0,1fr) auto 74px}.chat-contact-bar{display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid var(--line);background:#fff}.customer-avatar{width:39px;height:39px}.contact-main{min-width:100px;display:grid;margin-right:auto}.contact-main b{font-size:14px}.assign-box{display:flex;align-items:center;gap:7px;color:#9198a8;font-size:10px}.assign-box select{max-width:120px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#5f687b}.mobile-back{display:none;border:0;background:none;font-size:31px;color:#697188}.messages,.visitor-messages{overflow-y:auto;padding:24px}.message-row{display:flex;gap:9px;margin:13px 0;align-items:flex-end}.message-row.mine{justify-content:flex-end}.message-bubble{max-width:min(70%,560px);padding:10px 13px;border-radius:4px 14px 14px 14px;background:#fff;box-shadow:0 3px 13px rgba(39,51,81,.06);font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.message-row.mine .message-bubble{border-radius:14px 4px 14px 14px;background:var(--blue);color:#fff}.message-time{color:#aeb4c1;font-size:8px}.message-image-button{display:block;padding:0;border:0;border-radius:11px;background:transparent}.message-image{display:block;max-width:min(260px,65vw);max-height:300px;border-radius:11px;object-fit:cover;cursor:zoom-in}.message-bubble.image-only{padding:4px;background:#fff}.send-error{min-height:0;padding:0 20px;color:var(--danger);font-size:10px}.send-error:not(:empty){padding-top:7px}.composer{display:flex;align-items:center;gap:10px;padding:13px 18px;border-top:1px solid var(--line);background:#fff}.composer textarea,.visitor-composer textarea{flex:1;max-height:70px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;resize:none;outline:none;background:#f8f9fc;line-height:1.4}.composer textarea:focus,.visitor-composer textarea:focus{border-color:#adb9ff;background:#fff}.attach-btn,.picture-btn{width:39px;height:39px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#788197;font-size:22px}.send-btn{padding:11px 20px}.send-btn:disabled,.visitor-send:disabled{opacity:.55;cursor:wait}

.image-viewer{position:fixed;z-index:500;inset:0;display:none;align-items:center;justify-content:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:rgba(8,13,25,.9);backdrop-filter:blur(5px)}.image-viewer.open{display:flex}.image-viewer img{display:block;max-width:94vw;max-height:90dvh;border-radius:10px;object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.45)}.image-viewer-close{position:absolute;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:30px;line-height:1}.image-viewer-close:hover{background:rgba(255,255,255,.25)}

/* 客服账号 */
.management-page{display:grid;grid-template-columns:184px 1fr;height:calc(100vh - 66px);overflow:auto}.side-nav.static{position:sticky;top:0;height:calc(100vh - 66px)}.management-content{width:min(1120px,100%);padding:34px}.page-title h1{margin:0;font-size:27px}.page-title>div>p:last-child{color:#9098a9;font-size:13px}.form-card{margin:26px 0;padding:22px;border:1px solid var(--line);border-radius:15px;background:#fff}.form-card h3{margin:0 0 17px;font-size:15px}.agent-create-form{display:grid;grid-template-columns:1fr 1.3fr 1fr auto;align-items:end;gap:12px}.agents-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px}.agent-card{padding:17px;border:1px solid var(--line);border-radius:15px;background:#fff}.agent-summary{display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center}.agent-avatar{width:44px;height:44px}.agent-summary div{display:grid;gap:4px}.agent-summary b{font-size:13px}.agent-summary span{color:#9299a9;font-size:10px}.status-pill{padding:4px 8px;border-radius:10px;background:#e9f9f3;color:#168765;font-size:9px;font-style:normal}.status-pill.disabled{background:#f1f2f5;color:#949baa}.agent-card details{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.agent-card summary{cursor:pointer;color:#667087;font-size:11px}.agent-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.agent-edit-form .primary-btn{align-self:end}.empty-card{padding:50px;border:1px dashed #d8dce6;border-radius:15px;color:#969dac;text-align:center;background:#fff}

/* 访客 H5 */
.visitor-body{height:100vh;overflow:hidden;background:#edf1f8}.visitor-chat{height:100dvh;max-width:680px;margin:auto;display:grid;grid-template-rows:76px minmax(0,1fr) auto auto auto;background:#f5f7fb;box-shadow:0 0 50px rgba(38,51,82,.12)}.visitor-header{display:flex;align-items:center;gap:12px;padding:0 20px;padding-top:env(safe-area-inset-top);background:linear-gradient(130deg,#536dfe,#4860e8);color:#fff;box-shadow:0 5px 20px rgba(65,86,205,.18)}.service-avatar{position:relative;width:43px;height:43px;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.2);font-weight:800}.service-avatar i{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border:2px solid #536dfe;border-radius:50%;background:#43d4a6}.visitor-header h1{margin:0 0 5px;font-size:16px}.visitor-header p{margin:0;color:#dfe4ff;font-size:10px}.visitor-header .online-dot{margin-right:5px;background:#63efc4}.visitor-messages{padding:18px 16px}.welcome-card{display:flex;gap:11px;margin:0 auto 24px;padding:13px 15px;border:1px solid #e8ebf3;border-radius:13px;background:#fff;color:#5f687c;box-shadow:0 5px 18px rgba(47,58,89,.05)}.welcome-card>span{font-size:21px}.welcome-card b{font-size:12px}.welcome-card p{margin:5px 0 0;color:#9ba2b1;font-size:10px}.visitor-messages .message-row.mine .message-bubble{background:var(--blue)}.visitor-messages .message-bubble{font-size:14px}.image-preview{position:relative;width:74px;margin:7px 16px;padding:4px;border-radius:9px;background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.13)}.image-preview img{display:block;width:66px;height:66px;border-radius:7px;object-fit:cover}.image-preview button{position:absolute;right:-7px;top:-7px;width:20px;height:20px;border:0;border-radius:50%;background:#3d4557;color:#fff}.visitor-composer{display:flex;align-items:flex-end;gap:9px;padding:11px 12px;border-top:1px solid var(--line);background:#fff}.visitor-composer textarea{min-height:41px;font-size:14px}.visitor-send{height:41px;padding:0 16px}.safe-note{padding:0 0 max(8px,env(safe-area-inset-bottom));background:#fff;color:#b0b5c0;text-align:center;font-size:9px}

.attach-btn,.picture-btn{display:grid;place-items:center;flex:0 0 39px;padding:0;font-size:0;transition:.18s}.attach-btn:hover,.picture-btn:hover{border-color:#aeb9ff;background:#f4f6ff;color:var(--blue)}.attach-btn svg,.picture-btn svg{width:20px;height:20px;fill:currentColor;stroke:none}

/* 修改密码 */
.password-modal{position:fixed;z-index:100;inset:0;display:none;place-items:center;padding:18px}.password-modal.open{display:grid}.password-mask{position:absolute;inset:0;background:rgba(18,28,50,.48);backdrop-filter:blur(3px)}.password-dialog{position:relative;width:min(430px,100%);padding:24px;border-radius:18px;background:#fff;box-shadow:0 24px 80px rgba(17,29,58,.28)}.password-dialog-head{display:flex;align-items:flex-start;justify-content:space-between}.password-dialog-head h2{margin:0;font-size:21px}.modal-close{width:32px;height:32px;border:0;border-radius:9px;background:#f2f4f8;color:#7f8798;font-size:22px;line-height:1}.password-form{display:grid;gap:15px;margin-top:22px}.password-form label{display:grid;gap:7px;color:#687084;font-size:12px;font-weight:600}.password-form input{width:100%;padding:12px 13px;border:1px solid #dfe3ec;border-radius:10px;outline:none;background:#fafbfe}.password-form input:focus{border-color:#8596ff;box-shadow:0 0 0 3px rgba(83,109,254,.09);background:#fff}.password-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:5px}.global-toast{position:fixed;z-index:120;top:78px;left:50%;padding:10px 18px;border-radius:10px;background:#203054;color:#fff;font-size:12px;box-shadow:0 8px 28px rgba(20,32,64,.22);transform:translateX(-50%);transition:.3s}.global-toast.hide{opacity:0;transform:translate(-50%,-8px);pointer-events:none}

/* 客户备注 */
.active-chat{grid-template-rows:70px 45px minmax(0,1fr) auto 74px}.customer-name-bar{display:flex;align-items:center;gap:8px;padding:6px 20px;border-bottom:1px solid var(--line);background:#fff}.customer-name-bar>span{flex:none;color:#9098a9;font-size:10px}.customer-name-bar input{min-width:0;flex:1;padding:7px 9px;border:1px solid #e2e5ed;border-radius:8px;background:#fafbfe;color:#586174;font-size:11px;outline:none}.customer-name-bar input:focus{border-color:#a7b2ff;background:#fff}.customer-name-bar button{padding:7px 11px;border:0;border-radius:8px;background:var(--sky);color:var(--blue);font-size:10px;font-weight:700}.customer-name-bar em{min-width:34px;color:#26a47c;font-size:9px;font-style:normal}

.conversation-list{height:calc(100% - 88px)}

.delete-conversation-btn{flex:none;padding:7px 10px;border:1px solid #ffd7dc;border-radius:8px;background:#fff5f6;color:#d64c5c;font-size:10px}.delete-conversation-btn:hover{border-color:#ef9ca6;background:#ffebee}.delete-conversation-btn:disabled{opacity:.55;cursor:wait}
.conversation-item.deleted{background:#fafafa}.deleted-list-badge,.deleted-conversation-badge{padding:3px 6px;border-radius:8px;background:#f1f2f5;color:#8a91a0;font-size:8px;font-style:normal;font-weight:600}.contact-main{grid-template-columns:auto auto;align-items:center;justify-content:start;column-gap:7px}.active-chat.audit-readonly{grid-template-rows:70px minmax(0,1fr)}.active-chat.audit-readonly .customer-name-bar,.active-chat.audit-readonly .composer,.active-chat.audit-readonly .send-error,.active-chat.audit-readonly .assign-box,.active-chat.audit-readonly .delete-conversation-btn{display:none}

@media(max-width:850px){.workspace{grid-template-columns:64px 300px minmax(330px,1fr)}.side-nav{padding:18px 8px}.side-nav nav a{justify-content:center;padding:12px 8px;font-size:0}.side-nav nav a span{width:auto;font-size:18px}.side-tip{display:none}.management-page{grid-template-columns:64px}.agent-create-form{grid-template-columns:1fr 1fr}.agents-grid{grid-template-columns:1fr}}
@media(max-width:640px){.login-body{padding:0;background:#fff}.login-shell{display:block;min-height:100vh;border-radius:0;box-shadow:none}.login-intro{display:none}.login-card{padding:70px 26px}.mobile-logo{display:flex;align-items:center;gap:10px;margin-bottom:55px}.login-card h2{font-size:25px}.admin-topbar{height:58px;padding:0 13px}.admin-topbar .brand small,.admin-user>span:not(.role-tag):not(.online-dot),.role-tag{display:none}.admin-user{gap:3px}.workspace{display:block;height:calc(100vh - 58px)}.workspace>.side-nav{display:none}.conversation-list-panel{height:100%;border:0}.panel-heading{height:82px}.conversation-list{height:calc(100% - 127px)}.chat-panel{display:none;position:fixed;z-index:10;inset:58px 0 0}.workspace.chat-open .conversation-list-panel{display:none}.workspace.chat-open .chat-panel{display:block}.active-chat{grid-template-rows:62px minmax(0,1fr) auto 65px}.chat-contact-bar{padding:0 10px;gap:8px}.mobile-back{display:block}.assign-box{display:none}.chat-contact-bar .ghost-btn{padding:7px 9px;font-size:10px}.messages{padding:15px 12px}.message-bubble{max-width:78%;font-size:13px}.composer{padding:10px}.composer textarea{min-width:0}.send-btn{padding:11px 14px}.management-page{display:block;height:calc(100vh - 58px)}.management-page>.side-nav{display:none}.management-content{padding:22px 14px}.page-title h1{font-size:23px}.agent-create-form,.agent-edit-form{grid-template-columns:1fr}.agents-grid{grid-template-columns:1fr}.form-card{padding:16px}.visitor-chat{max-width:none;box-shadow:none}}
@media(max-width:640px){.active-chat{grid-template-rows:62px 43px minmax(0,1fr) auto 65px}.customer-name-bar{padding:5px 10px}.customer-name-bar em{display:none}.password-entry{padding:5px 3px}.delete-conversation-btn{padding:7px 9px}.conversation-list{height:calc(100% - 82px)}}
