@charset "UTF-8";
:root{--ink:#233d35;--text:#34443d;--muted:#68765f;--green:#164c3c;--green-dark:#103d32;--green-soft:#e6efdf;--lime:#cee1b7;--line:#e7e9e2;--paper:#fff;--canvas:#f5f6f0;--chat:#eeeee5;--amber:#94662a;--amber-bg:#f7eedc;--blue:#4e768f;--blue-bg:#e8f0f5;--danger:#ac4540;--radius:12px;--font:"Avenir Next","Avenir","PingFang SC","Microsoft YaHei",sans-serif;--display:"Iowan Old Style","Palatino Linotype","Songti SC",serif}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font:14px/1.55 var(--font);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}input,select,textarea{border:1px solid #dfe3d9;background:#fff;border-radius:8px;color:var(--ink);padding:11px 12px;min-width:0;outline:none;transition:border-color .18s,box-shadow .18s}input:focus,select:focus,textarea:focus{border-color:#639078;box-shadow:0 0 0 3px #50806716}input::placeholder,textarea::placeholder{color:#68765f}textarea{resize:vertical}button:focus-visible,a:focus-visible{outline:3px solid #7ba08a;outline-offset:3px}::selection{background:#cadac1;color:#173e30}[hidden]{display:none!important}
.icon{flex:none;display:inline-block;vertical-align:middle;width:20px;height:20px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;white-space:nowrap;border:1px solid transparent;border-radius:8px;font-size:14px;line-height:20px;font-weight:600;transition:background .16s,transform .16s,border-color .16s;color:var(--text);background:none}
.btn .icon{width:17px;height:17px}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--green);color:#fff;border-color:var(--green)}
.btn-primary:hover{background:var(--green-dark)}
.btn-secondary{background:#fff;border-color:#dce0d6}
.btn-secondary:hover{background:#f3f5ee;border-color:#c9d2c2}
.btn-ghost{color:var(--green);background:transparent}
.btn-ghost:hover{background:#edf2e9}
.btn-text{color:var(--green);padding:4px 7px;min-height:28px}
.btn-text:hover{background:#dce8d4}
.btn-icon{width:34px;min-height:34px;padding:7px;color:#68765f}
.btn-icon:hover{background:#edf1e7;color:var(--green)}
.btn-tab{padding:6px 11px;min-height:31px;font-size:14px;font-weight:500;color:#68765f;border-radius:6px}
.btn-tab.active{background:var(--green-soft);color:var(--green);font-weight:600}
.btn-tab:hover{background:#f0f3e9}
.btn-chip{padding:6px 10px;min-height:29px;border-color:#dce4d5;background:#f6f8f1;font-size:14px;color:#587149}
.btn-chip:hover{background:#e6eddf}
.full-width{width:100%}
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:5px;font-size:12px;font-weight:600;line-height:1.6;white-space:nowrap;background:#f0f1ec;color:#68765f;border:1px solid #e5e8e0}
.badge-green{background:#edf4e5;color:#567b40;border-color:#dce8ce}
.badge-amber{background:var(--amber-bg);color:var(--amber);border-color:#eddfbf}
.badge-blue{background:var(--blue-bg);color:var(--blue);border-color:#dbe6ed}
.eyebrow{font-size:12px;font-weight:650;letter-spacing:1.8px;color:#68765f;line-height:1.7}
.avatar{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:14px;letter-spacing:-.5px;background:#e8eddc;color:#68765f;font-weight:500}
.avatar-sage{background:#e1ead7;color:#68765f}
.avatar-sand{background:#f0e5d2;color:#68765f}
.avatar-rose{background:#f0e1dc;color:#68765f}
.avatar-blue{background:#dfe9ed;color:#68765f}
.avatar-small{width:32px;height:32px;font-size:12px}
.avatar-large{width:64px;height:64px;font-size:21px}
.muted{color:var(--muted)}
.small{font-size:12px}
.status-dot{height:6px;width:6px;border-radius:50%;background:#7ba36e;display:inline-block;flex:none}
.app-shell{display:flex;height:100dvh;min-height:600px;overflow:hidden}
.rail{width:92px;flex:none;background:var(--green-dark);color:#b3c7b8;display:flex;flex-direction:column;align-items:center;z-index:4}
.brand{height:97px;display:flex;align-items:center;justify-content:center;width:100%}
.brand-mark{height:43px;width:43px;background:#cfe1b5;display:flex;align-items:center;justify-content:center;border-radius:14px;color:var(--green-dark);box-shadow:0 3px 8px #001e1520}
.brand-mark .icon{width:25px;height:25px;stroke-width:1.8}
.rail nav{width:100%;padding:0 10px;display:flex;flex-direction:column;gap:7px}
.btn-nav{width:100%;padding:12px 1px 9px;min-height:66px;flex-direction:column;gap:6px;color:#b9cebd;border-radius:9px;font-size:12px;letter-spacing:.2px;position:relative;font-weight:500}
.btn-nav .icon{width:21px;height:21px}
.btn-nav:hover{color:#e7f1df;background:#ffffff09;transform:none}
.btn-nav.active{background:#d3e7b813;color:#d7e8c4}
.btn-nav.active:before{content:"";position:absolute;left:-10px;width:3px;height:28px;background:#d0e1a7;border-radius:0 3px 3px 0}
.nav-counter{position:absolute;top:5px;right:8px;border-radius:10px;background:#d2dfa7;color:var(--green-dark);min-width:16px;height:16px;line-height:16px;text-align:center;font-size:12px}
.rail-bottom{margin-top:auto;display:flex;align-items:center;flex-direction:column;padding:20px 0 21px;font-size:12px;letter-spacing:1.4px;gap:7px;color:#a7bfab}
.local-dot{width:4px;height:4px;background:#98b18b;border-radius:50%}
.owner-avatar{height:29px;width:29px;border-radius:50%;background:#315f4e;color:#bdcfb7;display:grid;place-items:center;letter-spacing:0;font-size:12px;margin-top:14px;border:1px solid #ffffff0a}
.main-shell{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}
.app-header{height:97px;flex:none;padding:21px 30px 19px;background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.breadcrumb{font-size:12px;letter-spacing:1.3px;color:#68765f;margin-bottom:5px;display:flex;align-items:center;gap:10px}
.breadcrumb>span:last-child{font-size:12px;letter-spacing:.3px;color:#68765f}
.breadcrumb>span:first-child{color:#68765f}
.app-header h1{font-size:22px;font-weight:600;letter-spacing:-.5px;color:var(--ink);line-height:1.3}
.header-status{display:flex;gap:7px;align-items:center;font-size:12px;color:#68765f}
.header-divider{width:1px;height:16px;background:#e3e7dc;margin:0 8px}
.workspace{flex:1;min-height:0;overflow:auto}
.page-chat{display:grid;grid-template-columns:300px minmax(320px,1fr) 300px;overflow:hidden;background:#fff}
.inbox-panel{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:hidden;background:#fff}
.inbox-heading{display:flex;align-items:center;justify-content:space-between;padding:25px 22px 18px}
.inbox-heading .eyebrow{font-size:12px;color:#68765f;letter-spacing:2px}
.inbox-heading h2{font-size:18px;font-weight:600;margin-top:2px;color:#294234;letter-spacing:-.4px}
.inbox-heading h2>span{font-size:12px;margin-left:4px;font-weight:500;color:#68765f}
.inbox-heading .btn{border:1px solid #e1e7d9;border-radius:8px;color:#68765f;width:29px;min-height:29px;padding:5px}
.search-wrap{position:relative;display:flex;align-items:center}
.search-wrap>.icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#68765f;pointer-events:none}
.search-wrap input{width:100%;padding:10px 12px 10px 36px;font-size:12px;border:1px solid #edf0e7;background:#f8f9f4;min-height:38px}
.inbox-panel>.search-wrap{margin:0 19px}
.filter-tabs{display:flex;gap:3px;align-items:center}
.inbox-panel>.filter-tabs{margin:14px 18px 12px;gap:0}
.conversation-list{flex:1;min-height:0;overflow:auto;padding:0 10px}
.conversation-row{display:flex;gap:11px;position:relative;padding:15px 11px;min-height:103px;align-items:center;border-radius:9px;margin:2px 0;transition:background .15s}
.conversation-row:hover{background:#f7f8f1}
.conversation-row.selected{background:#eff3e8}
.conversation-row.selected:after{content:"";position:absolute;right:-10px;top:23px;bottom:23px;width:3px;background:#729666;border-radius:3px 0 0 3px}
.conversation-copy{flex:1;min-width:0}
.conversation-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.conversation-title strong{font-size:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;letter-spacing:-.2px;font-weight:600;color:#3c4e3d}
.conversation-title time{font-size:12px;color:#68765f;flex:none}
.conversation-preview{display:flex;align-items:center;gap:5px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px;color:#68765f;margin:4px 0 7px}
.conversation-preview .icon{width:13px;height:13px;color:#68765f}
.conversation-labels{display:flex;align-items:center;gap:6px;min-height:18px}
.tiny-label{display:inline-flex;background:#e6ebdd;border:1px solid #dfe6d4;color:#68765f;font-size:12px;padding:0 4px;border-radius:3px;line-height:16px}
.live-label{background:#dcebd5;color:#68765f}
.pending-label{background:#f4e9d2;color:#68765f;border-color:#ebdebf}
.mode-label{font-size:12px;color:#68765f}
.unread-count{height:16px;min-width:16px;font-size:12px;display:grid;place-items:center;padding:0 4px;color:#fff;background:#719664;border-radius:12px;margin-left:auto}
.chat-panel{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--chat)}
.chat-header{height:81px;flex:none;display:flex;align-items:center;padding:0 25px;background:#fafbf6;border-bottom:1px solid #e2e6da;gap:11px}
.chat-header>.avatar{width:37px;height:37px;font-size:13px}
.chat-header h2{font-size:14px;font-weight:600;color:#2a4435}
.chat-header-copy{min-width:0}
.chat-header-copy>span{font-size:12px;color:#68765f}
.conversation-controls{display:flex;align-items:center;gap:10px;margin-left:auto}
.conversation-controls>.badge{font-size:12px;padding:2px 6px}
.conversation-controls .btn{font-size:14px;padding:6px 9px;min-height:30px;color:#68765f}
.conversation-controls .btn .icon{width:14px;height:14px}
.message-scroller{flex:1;min-height:0;overflow:auto;padding:20px 30px 24px;background-image:radial-gradient(#9d9e7f14 .7px,transparent .7px);background-size:12px 12px;scroll-behavior:smooth}
.day-divider{display:flex;justify-content:center;margin:0 0 24px}
.day-divider span{background:#e4e6da;border:1px solid #dde1d1;color:#68765f;padding:3px 13px;border-radius:5px;font-size:12px}
.message-list{display:flex;flex-direction:column;gap:23px}
.message{display:flex;flex-direction:column;max-width:83%;align-self:flex-start}
.message.outgoing{align-self:flex-end;align-items:flex-end}
.message-origin{display:flex;align-items:center;gap:4px;font-size:12px;color:#68765f;margin:0 4px 6px}
.message-origin .icon{height:11px;width:11px}
.message.outgoing .message-origin{color:#68765f}
.bubble{padding:12px 14px 7px;background:#fff;border-radius:0 11px 11px 11px;box-shadow:0 1px 1px #65704c08;min-width:95px;max-width:100%;border:1px solid #e5e6da}
.outgoing .bubble{background:#e0eaca;border-color:#d8e4be;border-radius:11px 0 11px 11px}
.bubble>p{font-size:15px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;color:#526047}
.message-meta{display:flex;justify-content:flex-end;align-items:center;gap:4px;margin-top:6px;color:#68765f;font-size:12px}
.message-meta .icon{width:12px;height:12px;color:#68765f}
.delivery-error{color:#68765f}
.message-source{margin-top:11px;display:flex;gap:4px;align-items:center;font-size:12px;color:#68765f;border-top:1px solid #c8d8b47a;padding-top:7px}
.message-source .icon{width:11px;height:11px}
.message-error{font-size:12px;color:var(--danger);margin-top:5px;max-width:100%;overflow-wrap:anywhere}
.composer{background:#fafbf6;border-top:1px solid #e2e6da;padding:11px 22px 12px;flex:none}
.composer-box{display:flex;align-items:flex-end;gap:10px;background:#fff;border:1px solid #e0e5d6;border-radius:9px;padding:5px 6px 5px 11px}
.composer-box:focus-within{border-color:#92a97d;box-shadow:0 0 0 2px #93a57410}
.composer-box textarea{resize:none;border:0;background:none;box-shadow:none;padding:9px 0;min-height:36px;max-height:140px;flex:1;font-size:14px;line-height:20px}
.send-button{width:35px;min-height:35px;padding:8px;margin-bottom:1px;border-radius:7px;background:#3d6e4f;border-color:#3d6e4f}
.send-button .icon{height:16px;width:16px}
.detail-panel{border-left:1px solid var(--line);min-width:0;overflow:auto;background:#fdfefa;padding:25px 21px 18px}
.detail-heading h2{font-size:14px;font-weight:600;color:#5a6b4d;margin-top:2px}
.detail-heading .eyebrow{font-size:12px;letter-spacing:1.5px;color:#68765f}
.customer-profile{text-align:center;padding:24px 0 25px}
.customer-profile h3{font-size:15px;font-weight:600;margin-top:12px;letter-spacing:-.2px}
.customer-profile p{font-size:12px;color:#68765f;margin:3px 0 9px}
.customer-profile .badge{font-size:12px;padding:1px 6px}
.detail-section{border-top:1px solid #edf0e5;padding:21px 0}
.detail-section h3{font-size:12px;font-weight:600;color:#68765f;margin-bottom:12px;display:flex;gap:6px;align-items:center}
.detail-section h3 .icon{width:14px;height:14px;color:#68765f}
.detail-section h3>span{margin-left:auto;font-size:12px;display:grid;place-items:center;width:17px;height:17px;background:#eaf0e0;border-radius:4px;color:#68765f}
.detail-section dl{margin:0;display:flex;flex-direction:column;gap:10px}
.detail-section dl>div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}
.detail-section dt{color:#68765f}
.detail-section dd{margin:0;color:#68765f;font-size:12px;text-align:right}
.source-card{padding:10px 11px;background:#f1f5e9;border:1px solid #e4ecd9;border-radius:7px;margin-bottom:8px}
.source-card strong{font-size:12px;color:#68765f;font-weight:600}
.source-card p{font-size:12px;color:#68765f;line-height:1.7;max-height:100px;overflow:auto;margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere}
.quiet-note{padding:14px 5px;font-size:12px;color:#68765f;text-align:center;border:1px dashed #e2e9d8;border-radius:7px}
.detail-footnote{font-size:12px;display:flex;gap:6px;color:#68765f;line-height:1.8}
.detail-footnote .icon{width:13px;height:13px;margin-top:1px}
.page-content{padding:34px 36px 50px;max-width:1440px;margin:0 auto}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:28px}
.section-heading h2{font-family:var(--display);font-size:29px;line-height:1.4;letter-spacing:-.8px;font-weight:500;color:var(--green-dark);margin-top:8px}
.section-heading p{font-size:12px;color:#68765f;margin-top:8px}
.section-heading>.btn{flex:none}
.page-tabs{margin-bottom:23px;gap:8px}
.count-card{display:flex;align-items:center;gap:14px;padding:0 8px}
.count-card strong{font-family:var(--display);font-size:42px;font-weight:400;letter-spacing:-2px;color:#557b48}
.count-card span{font-size:12px;color:#68765f}
.approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.approval-card{background:#fff;border:1px solid #e1e7d9;border-radius:12px;overflow:hidden;box-shadow:0 3px 8px #344e1810;min-width:0}
.approval-meta{padding:17px 18px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #f0f2eb}
.approval-meta>div{display:flex;flex-direction:column;gap:1px;min-width:0}
.approval-meta strong{font-size:12px;font-weight:600;overflow-wrap:anywhere}
.approval-meta>div>span{font-size:12px;color:#68765f}
.approval-meta>.badge{margin-left:auto;font-size:12px}
.approval-section{padding:16px 18px 12px}
.approval-section .eyebrow,.approval-draft .eyebrow{font-size:12px;letter-spacing:.4px;color:#68765f}
.approval-section p{font-size:13px;color:#526346;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin-top:4px}
.approval-reason{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:#68765f;line-height:1.7;padding:0 18px 15px}
.approval-reason>.icon{height:13px;width:13px;margin-top:2px}
.approval-draft{background:#f6f8f0;border-top:1px solid #edf0e6;border-bottom:1px solid #edf0e6;padding:14px 18px}
.approval-draft p{font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;color:#68765f}
.approval-sources{display:flex;align-items:center;gap:6px;padding:12px 18px 0;font-size:12px;color:#68765f;overflow-wrap:anywhere}
.approval-sources .icon{height:12px;width:12px}
.approval-actions{padding:15px 17px 8px;display:flex;flex-wrap:wrap;gap:7px}
.approval-actions .btn{font-size:14px;min-height:31px;padding:5px 9px}
.approval-actions .btn>.icon{height:14px;width:14px}
.approval-actions .btn-ghost{font-size:14px}
.approval-footer{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#68765f;padding:10px 18px 14px}
.resolved-note{display:flex;align-items:center;gap:5px;margin:15px 18px 6px;font-size:12px;color:#68765f}
.resolved-note>.icon{height:13px;width:13px}
.compact .approval-meta{padding:12px 10px 10px;gap:7px}
.compact .approval-meta .avatar{width:25px;height:25px;font-size:12px}
.compact .approval-meta strong{font-size:12px}
.compact .approval-meta>.badge{font-size:12px;padding:2px 4px}
.compact .approval-meta>div>span{font-size:12px}
.compact .approval-section{padding:12px 11px 8px}
.compact .approval-section p{font-size:14px}
.compact .approval-reason{padding:0 11px 12px;font-size:12px}
.compact .approval-draft{padding:11px}
.compact .approval-draft p{font-size:14px}
.compact .eyebrow{font-size:12px}
.compact .approval-actions{padding:11px 10px 2px;gap:5px}
.compact .approval-actions .btn{font-size:14px;padding:4px 6px;min-height:28px}
.compact .approval-actions .btn .icon{height:12px;width:12px}
.compact .approval-footer{padding:9px 11px 12px;font-size:12px;gap:5px;flex-direction:column}
.notice-card{border:1px solid #e1e8d8;background:#edf3e6;border-radius:10px;display:flex;gap:11px;padding:16px 18px;margin-bottom:25px}
.notice-card>.icon{color:#68765f;width:17px;height:17px;margin-top:1px}
.notice-card strong{font-size:12px;font-weight:600;color:#68765f}
.notice-card p{font-size:12px;color:#68765f;margin-top:3px;line-height:1.8}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}
.toolbar>.search-wrap{width:330px}
.toolbar .search-wrap input{background:#fff;border-color:#e3e7dc;min-height:40px}
.knowledge-summary{display:flex;gap:15px;margin-bottom:12px;color:#68765f;font-size:12px}
.knowledge-summary span+span{padding-left:15px;border-left:1px solid #dce3d3}
.knowledge-list{display:flex;flex-direction:column;gap:12px}
.knowledge-card{display:flex;align-items:flex-start;gap:17px;border:1px solid #e4e8dc;background:#fff;padding:23px;border-radius:11px}
.knowledge-symbol{height:37px;width:37px;flex:none;display:grid;place-items:center;background:#eff4e8;border:1px solid #e3ebd8;border-radius:8px;color:#68765f}
.knowledge-symbol>.icon{height:19px;width:19px}
.knowledge-copy{flex:1;min-width:0}
.knowledge-title{display:flex;align-items:center;gap:8px;margin-bottom:7px;flex-wrap:wrap}
.knowledge-title h3{font-size:14px;font-weight:600;color:#4e6844}
.knowledge-title>.badge{font-size:12px;padding:1px 5px}
.knowledge-question{font-size:12px;color:#68765f;margin-bottom:5px;white-space:pre-wrap;overflow-wrap:anywhere}
.knowledge-answer{font-size:14px;color:#68765f;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}
.knowledge-foot{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#68765f;margin-top:15px;flex-wrap:wrap}
.knowledge-actions{display:flex;gap:2px;flex:none}
.knowledge-actions>.btn{width:29px;min-height:29px;padding:6px}
.knowledge-actions .icon{height:14px;width:14px}
.surface{background:#fff;border:1px solid #e1e7d8;border-radius:12px;overflow:hidden}
.test-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:25px;align-items:start}
.test-left{display:flex;flex-direction:column;gap:20px}
.test-form-card{padding:23px}
.card-heading{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.step-number{height:32px;width:32px;display:grid;place-items:center;border:1px solid #dce6d2;border-radius:50%;color:#68765f;font-family:var(--display);font-size:16px;background:#f5f8ef}
.card-heading h3{font-size:14px;font-weight:600;color:#557247}
.card-heading p{font-size:12px;color:#68765f;margin-top:3px}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:19px;min-width:0}
.field-label{font-size:12px;font-weight:600;color:#68765f}
.field input,.field select,.field textarea{width:100%;font-size:14px;color:#68765f;border-color:#e0e7d6}
.field input::placeholder,.field textarea::placeholder{color:#68765f}
.field small{font-size:12px;color:#68765f;line-height:1.7}
.form-row{display:flex;gap:16px;align-items:flex-start}
.form-row>.field{flex:1}
.check-label{display:flex;gap:8px;align-items:center;white-space:nowrap;margin-top:32px;font-size:12px;color:#68765f}
.check-label input{accent-color:var(--green)}
.example-questions{margin:-3px 0 22px}
.example-questions>span{display:block;font-size:12px;color:#68765f;margin-bottom:7px}
.example-questions>div{display:flex;flex-wrap:wrap;gap:7px}
.test-disclaimer{display:flex;align-items:flex-start;gap:7px;border-top:1px solid #edf1e7;margin-top:21px;padding-top:15px;font-size:12px;color:#68765f;line-height:1.9}
.test-disclaimer>.icon{width:15px;height:15px;color:#68765f;margin-top:2px}
.test-messages-card{padding:23px}
.test-messages{display:flex;flex-direction:column;gap:15px;background:#f7f8f1;border:1px solid #edf0e4;border-radius:9px;padding:15px;min-height:160px}
.test-messages .message{max-width:92%}
.test-messages .bubble p{font-size:14px}
.test-messages .empty-state{padding:25px 10px}
.test-customer-label{display:flex;align-items:center;gap:8px;border-bottom:1px solid #e5eadb;padding-bottom:12px}
.test-customer-label strong{font-size:12px;color:#68765f}
.test-customer-label .badge{font-size:12px;padding:1px 5px}
.test-customer-label .btn{margin-left:auto;font-size:14px}
.telegram-heading{display:flex;align-items:center;gap:11px;padding:20px 22px;border-bottom:1px solid #e0e9e8;background:#f4f8f7}
.telegram-heading>.icon{width:25px;height:25px;color:#68765f}
.telegram-heading h3{font-size:14px;font-weight:600;color:#68765f}
.telegram-heading>div>span{font-size:12px;color:#68765f}
.telegram-heading>.badge{margin-left:auto;font-size:12px}
.telegram-paper{padding:19px;min-height:310px;background:#eaf0e9;background-image:radial-gradient(#95ad9a1a .8px,transparent .8px);background-size:13px 13px}
.telegram-date{font-size:12px;color:#68765f;background:#dce6db;border-radius:5px;padding:4px 12px;display:table;margin:0 auto 19px}
.telegram-paper .approval-card{margin-top:14px;box-shadow:0 2px 3px #68856b0a;border-color:#dae5d4;border-radius:5px 12px 12px 12px}
.telegram-paper .approval-card .approval-meta{background:#fbfdfa}
.telegram-paper .approval-card .approval-meta strong{color:#5c7e51}
.telegram-hint{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.9;color:#68765f;padding:17px 21px}
.telegram-hint>.icon{height:14px;width:14px;margin-top:2px}
.notification-preview{padding:14px 15px;border-radius:3px 12px 12px 12px;border:1px solid #dee8d6;background:#fff;margin:12px 0}
.notification-preview .eyebrow{font-size:12px;letter-spacing:.4px;color:#68765f}
.notification-preview p{font-size:12px;color:#68765f;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px}
.notification-preview time{display:block;text-align:right;font-size:12px;color:#68765f;margin-top:8px}
.settings-content{max-width:1100px}
.settings-section{display:grid;grid-template-columns:235px 1fr;margin-bottom:20px;padding:27px}
.settings-section-title{display:flex;align-items:flex-start;gap:11px;padding-right:20px}
.settings-symbol{background:#edf3e5;height:34px;width:34px;display:grid;place-items:center;border-radius:8px;flex:none;color:#68765f;border:1px solid #e4ecd9}
.settings-symbol>.icon{height:17px;width:17px}
.settings-symbol.blue{color:#68765f;background:#edf5f2;border-color:#dfebe5}
.settings-section-title h3{font-size:13px;font-weight:600;color:#5f7b4c;margin-top:2px}
.settings-section-title p{font-size:12px;color:#68765f;line-height:1.8;margin-top:5px}
.settings-fields{min-width:0}
.settings-fields>.field:last-child{margin-bottom:0}
.secret-input{position:relative}
.secret-input input{padding-right:85px}
.secret-input>.badge{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;padding:1px 5px;pointer-events:none}
.switch-row{display:flex;align-items:center;gap:15px;cursor:pointer;padding:15px 0;border-top:1px solid #edf1e6;position:relative}
.switch-row>span:first-child{flex:1}
.switch-row strong{display:block;font-size:12px;font-weight:600;color:#68765f}
.switch-row small{display:block;font-size:12px;color:#68765f;margin-top:4px;line-height:1.8}
.switch-row input{position:absolute;right:0;width:36px;height:22px;opacity:0;z-index:1;cursor:pointer;margin:0}
.switch-track{width:36px;height:22px;background:#e5eadd;border:1px solid #dae2ce;border-radius:20px;display:block;position:relative;flex:none;transition:background .2s}
.switch-track:after{content:"";position:absolute;height:16px;width:16px;border-radius:50%;top:2px;left:2px;background:#fff;box-shadow:0 1px 2px #76905220;transition:transform .2s}
.switch-row input:checked+.switch-track{background:#6c955b;border-color:#6c955b}
.switch-row input:checked+.switch-track:after{transform:translateX(14px)}
.switch-row input:focus-visible+.switch-track{outline:3px solid #a4bd91;outline-offset:3px}
.inline-info{display:flex;gap:10px;background:#f7f9f2;border:1px solid #e9efdf;border-radius:8px;padding:14px;margin-top:8px;color:#68765f}
.inline-info>.icon{width:16px;height:16px;margin-top:1px}
.inline-info strong{display:block;font-size:12px;font-weight:600;color:#68765f}
.inline-info p{font-size:12px;color:#68765f;line-height:1.8;margin-top:5px}
.inline-info code{display:block;font-size:12px;color:#68765f;font-family:ui-monospace,SFMono-Regular,monospace;margin-top:5px;overflow-wrap:anywhere}
.inline-note{display:flex;gap:6px;align-items:flex-start;font-size:12px;color:#68765f;line-height:1.9;margin-top:7px}
.inline-note .icon{width:13px;height:13px;margin-top:2px}
.live-section{background:#f9fbf5;border-color:#dbe7cd}
.live-section .switch-row{border-top:0;padding-top:0}
.settings-save{position:sticky;bottom:-1px;display:flex;align-items:center;justify-content:space-between;background:#f5f6f0ec;backdrop-filter:blur(8px);border-top:1px solid #dfe7d4;padding:18px 0 4px;margin-top:28px;gap:15px}
.settings-save>span{font-size:12px;color:#68765f;display:flex;align-items:center;gap:6px}
.settings-save>span>.icon{width:13px;height:13px}
.settings-save .has-changes{color:#68765f}
.log-search{max-width:400px;margin-bottom:23px}
.log-list{border:1px solid #e3e9d9;border-radius:10px;background:#fff;overflow:hidden}
.log-head{display:flex;justify-content:space-between;font-size:12px;color:#68765f;background:#f4f7ed;border-bottom:1px solid #e6ecdd;padding:13px 21px}
.log-head>span:last-child{padding-right:20px}
.log-row{display:flex;align-items:flex-start;gap:13px;padding:17px 21px;border-bottom:1px solid #edf2e5}
.log-row:last-child{border-bottom:0}
.log-symbol{display:grid;place-items:center;background:#f0f5e8;border:1px solid #e7eedc;color:#68765f;width:29px;height:29px;border-radius:7px;flex:none}
.log-symbol>.icon{width:14px;height:14px}
.log-row>div{flex:1;min-width:0}
.log-row strong{font-size:12px;color:#68765f;font-weight:600;overflow-wrap:anywhere}
.log-row p{font-size:12px;color:#68765f;margin-top:4px;overflow-wrap:anywhere;white-space:pre-wrap}
.log-row time{font-size:12px;color:#68765f;flex:none;margin-top:4px}
.empty-state{padding:70px 25px;text-align:center;display:flex;flex-direction:column;align-items:center;color:#68765f;width:100%;grid-column:1/-1}
.empty-state>.icon{height:35px;width:35px;color:#68765f;stroke-width:1.1;margin-bottom:16px}
.empty-state h3{font-size:14px;font-weight:500;color:#68765f}
.empty-state p{font-size:12px;color:#68765f;max-width:280px;line-height:1.9;margin-top:6px}
.chat-panel>.empty-state{margin:auto}
.conversation-list .empty-state{padding:45px 13px}
.conversation-list .empty-state h3{font-size:12px}
.conversation-list .empty-state p{font-size:12px}
.initial-loader{height:100dvh;display:flex;align-items:center;justify-content:center;gap:15px;flex-direction:column;color:#68765f;background:#f7f9f1}
.initial-loader p{font-size:12px}
.initial-loader h1{font-size:20px;font-weight:500;color:#587344}
.initial-loader>.icon{height:40px;width:40px;stroke-width:1.2;color:#68765f}
.initial-error .btn{margin-top:8px}
.loader{width:25px;height:25px;border-radius:50%;border:2px solid #dce6d0;border-top-color:#689153;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.connection-error{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);max-width:calc(100% - 35px);width:max-content;padding:11px 17px;background:#fff3dc;color:#68765f;border:1px solid #ead5a6;border-radius:8px;font-size:12px;box-shadow:0 4px 12px #67551715;z-index:10}
.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);background:#234e3e;color:#eef6e4;border:1px solid #42684b;border-radius:10px;padding:13px 19px;box-shadow:0 8px 25px #1c32252a;font-size:12px;z-index:1000;max-width:calc(100vw - 32px);animation:toast-in .2s ease}
.toast-error{background:#754f3e;border-color:#a67860;color:#fff0e4}@keyframes toast-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}dialog{padding:0;border:1px solid #dce5d0;border-radius:14px;box-shadow:0 30px 90px #14241236;width:600px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 40px);color:var(--text);background:#fff}dialog::backdrop{background:#19352459;backdrop-filter:blur(3px)}
.modal-form{display:flex;flex-direction:column;max-height:calc(100dvh - 45px)}
.modal-form>header{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid #edf1e5;gap:20px}
.modal-form>header h2{font-size:18px;font-weight:500;color:#496d3c;letter-spacing:-.4px}
.modal-form>header .eyebrow{font-size:12px;margin-bottom:3px;display:block}
.modal-body{padding:23px 26px;overflow:auto;flex:1;min-height:0}
.modal-form>footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:16px 26px;border-top:1px solid #edf1e5;background:#fafcf6}
.modal-body>.field:last-child{margin-bottom:0}
.review-question{padding:14px;background:#f5f8ef;border:1px solid #e7eede;border-radius:8px;margin-bottom:19px}
.review-question .eyebrow{font-size:12px;letter-spacing:.5px}
.review-question p{font-size:12px;color:#68765f;line-height:1.8;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}
.confirm-dialog .modal-body p{font-size:12px;color:#68765f;line-height:1.9}
.mobile-back{display:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#dce3d2;border-radius:5px}::-webkit-scrollbar-track{background:transparent}
@media(min-width:1600px){.page-chat{grid-template-columns:320px minmax(400px,1fr) 325px}
.message-scroller{padding-left:50px;padding-right:50px}
.detail-panel{padding-left:25px;padding-right:25px}}
@media(max-width:1250px){.rail{width:80px}
.rail nav{padding:0 8px}
.btn-nav.active:before{left:-8px}
.page-chat{grid-template-columns:270px minmax(280px,1fr) 260px}
.inbox-heading{padding:24px 18px 17px}
.inbox-panel>.search-wrap{margin:0 15px}
.inbox-panel>.filter-tabs{margin-left:13px;margin-right:13px}
.detail-panel{padding:24px 15px 17px}
.chat-header{padding:0 17px}
.conversation-controls{gap:6px}
.conversation-controls>.badge{display:none}
.message-scroller{padding:20px 22px}
.composer{padding:11px 15px 12px}
.page-content{padding:30px 27px 45px}
.settings-section{grid-template-columns:210px 1fr;padding:24px}
.approval-grid{gap:16px}
.test-grid{gap:18px}
.test-form-card,.test-messages-card{padding:21px}
.form-row{gap:12px}
.approval-actions{gap:5px}}
@media(max-width:1050px){.page-chat{grid-template-columns:270px minmax(320px,1fr)}
.detail-panel{display:none}
.page-content{padding:28px 24px 42px}
.section-heading h2{font-size:26px}
.approval-grid{grid-template-columns:1fr}
.approval-card:not(.compact){max-width:100%}
.settings-section{grid-template-columns:180px 1fr;padding:23px;gap:9px}
.settings-section-title{gap:9px}
.settings-symbol{width:29px;height:29px}
.settings-section-title h3{font-size:12px}
.settings-section-title p{font-size:12px}
.settings-fields .form-row{display:block}
.test-grid{grid-template-columns:1fr 1fr}
.test-form-card,.test-messages-card{padding:18px}
.test-left .form-row{display:block}
.test-form-card .field{margin-bottom:15px}
.card-heading{gap:9px}
.card-heading h3{font-size:12px}
.card-heading p{font-size:12px}
.step-number{height:28px;width:28px;font-size:14px}
.telegram-heading{padding:18px 15px}
.telegram-heading h3{font-size:12px}
.telegram-paper{padding:14px}
.telegram-paper .approval-meta{padding:13px}
.telegram-paper .approval-meta strong{font-size:12px}
.telegram-paper .approval-meta>.badge{font-size:12px}
.telegram-paper .approval-section{padding:13px}
.telegram-paper .approval-section p{font-size:14px}
.telegram-paper .approval-draft{padding:13px}
.telegram-paper .approval-draft p{font-size:14px}
.telegram-paper .approval-reason{padding-left:13px;padding-right:13px}
.telegram-paper .approval-actions{padding:13px 12px 5px}
.telegram-paper .approval-actions>.btn{font-size:14px;padding:5px 7px}
.telegram-paper .approval-footer{padding-left:13px;padding-right:13px;font-size:12px}
.telegram-hint{padding:15px}
.section-heading>div>p{max-width:390px}}
@media(max-width:760px){.app-shell{min-height:0}
.rail{width:64px}
.brand{height:77px}
.brand-mark{height:35px;width:35px;border-radius:11px}
.brand-mark>.icon{width:23px;height:23px}
.rail nav{padding:0 6px;gap:5px}
.btn-nav{font-size:12px;padding:10px 0 7px;min-height:59px;gap:5px;border-radius:7px}
.btn-nav .icon{height:19px;width:19px}
.btn-nav.active:before{left:-6px;height:25px}
.nav-counter{top:4px;right:2px;min-width:13px;height:13px;line-height:13px;font-size:12px}
.rail-bottom{padding:15px 0;font-size:12px;gap:5px}
.owner-avatar{margin-top:10px;width:25px;height:25px;font-size:12px}
.app-header{height:77px;padding:15px 19px}
.app-header h1{font-size:19px}
.breadcrumb{font-size:12px;gap:6px;letter-spacing:.8px;margin-bottom:4px}
.breadcrumb>span:last-child{font-size:12px;max-width:130px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.header-status{gap:5px}
.header-status>span:not(.badge){display:none}
.header-status>.badge{font-size:12px;padding:2px 5px}
.page-chat{display:block;position:relative}
.inbox-panel{height:100%;width:100%;border-right:0}
.chat-panel{position:absolute;inset:0;width:100%;height:100%;transform:translateX(105%);transition:transform .18s ease;z-index:2}
.show-conversation .chat-panel{transform:translateX(0)}
.show-conversation .inbox-panel{visibility:hidden}
.chat-panel>.empty-state{height:100%;display:flex}
.inbox-heading{padding:23px 20px 18px}
.inbox-heading h2{font-size:19px}
.inbox-panel>.search-wrap{margin:0 18px}
.inbox-panel>.filter-tabs{margin:15px 18px 12px}
.conversation-list{padding:0 9px}
.conversation-row{padding:17px 12px;min-height:106px}
.conversation-row .avatar{height:43px;width:43px}
.conversation-title strong{font-size:14px}
.conversation-title time{font-size:12px}
.conversation-preview{font-size:12px;margin:5px 0 7px}
.conversation-labels .tiny-label{font-size:12px}
.mode-label{font-size:12px}
.chat-header{height:72px;padding:0 12px;gap:8px}
.mobile-back{display:inline-flex;width:25px;min-height:32px;padding:3px;color:#68765f;margin-left:-4px}
.mobile-back .icon{width:19px;height:19px}
.chat-header>.avatar{height:32px;width:32px;font-size:12px}
.chat-header h2{font-size:14px}
.chat-header-copy>span{font-size:12px}
.conversation-controls>.btn{font-size:14px;gap:4px;padding:5px 4px}
.conversation-controls>.btn .icon{width:12px;height:12px}
.message-scroller{padding:18px 15px}
.message{max-width:90%}
.bubble{padding:10px 12px 6px}
.bubble>p{font-size:14px}
.message-list{gap:20px}
.composer{padding:10px 11px 11px}
.composer-box{padding:4px 5px 4px 10px;gap:7px}
.composer-box textarea{font-size:16px;min-height:34px;padding:7px 0}
.send-button{width:32px;min-height:32px;padding:7px}
.page-content{padding:25px 17px 35px}
.section-heading{margin-bottom:23px;gap:15px;align-items:flex-start;flex-wrap:wrap}
.section-heading h2{font-size:24px;letter-spacing:-.5px;line-height:1.45;margin-top:6px}
.section-heading .eyebrow{font-size:12px;letter-spacing:1.4px}
.section-heading p{font-size:12px;line-height:1.9;margin-top:7px}
.section-heading>.btn{font-size:14px;min-height:33px;padding:6px 10px}
.count-card{gap:10px;padding:0}
.count-card strong{font-size:32px}
.count-card span{font-size:12px}
.page-tabs{margin-bottom:18px}
.approval-meta{padding:14px}
.approval-meta strong{font-size:12px}
.approval-meta>.badge{font-size:12px;padding:2px 5px}
.approval-section{padding:14px}
.approval-section p{font-size:14px}
.approval-reason{padding:0 14px 14px;font-size:12px}
.approval-draft{padding:13px 14px}
.approval-draft p{font-size:14px}
.approval-actions{padding:13px 13px 5px;gap:6px}
.approval-actions .btn{font-size:14px;min-height:31px;padding:5px 8px}
.approval-footer{padding:10px 14px 13px;font-size:12px;gap:7px;flex-wrap:wrap}
.notice-card{padding:14px;gap:8px}
.notice-card>.icon{height:15px;width:15px}
.notice-card strong{font-size:12px}
.notice-card p{font-size:12px}
.toolbar{align-items:stretch;flex-direction:column;gap:13px;margin-bottom:15px}
.toolbar>.search-wrap{width:100%}
.toolbar .search-wrap input{font-size:12px}
.knowledge-card{padding:16px 13px;gap:10px;position:relative}
.knowledge-symbol{width:30px;height:30px;border-radius:7px}
.knowledge-symbol>.icon{width:15px;height:15px}
.knowledge-title{gap:5px;padding-right:0;margin-right:0}
.knowledge-title h3{font-size:14px;width:100%;margin-bottom:1px}
.knowledge-title .badge{font-size:12px}
.knowledge-question{font-size:12px}
.knowledge-answer{font-size:14px;line-height:1.9}
.knowledge-foot{font-size:12px;gap:6px;margin-top:12px;flex-direction:column}
.knowledge-actions{position:absolute;right:9px;top:11px;gap:0}
.knowledge-actions .btn{height:24px;width:24px;min-height:24px;padding:5px}
.knowledge-actions .btn .icon{height:12px;width:12px}
.knowledge-title h3{padding-right:70px}
.test-grid{grid-template-columns:1fr;gap:20px}
.test-form-card,.test-messages-card{padding:18px}
.test-left .form-row{display:flex}
.card-heading h3{font-size:13px}
.card-heading p{font-size:12px}
.telegram-heading{padding:18px}
.telegram-heading h3{font-size:14px}
.telegram-paper{padding:16px}
.telegram-paper .approval-meta strong{font-size:12px}
.telegram-paper .approval-actions>.btn{font-size:14px}
.settings-section{display:block;padding:18px;margin-bottom:17px}
.settings-section-title{padding-right:0;margin-bottom:21px;gap:11px}
.settings-symbol{width:31px;height:31px}
.settings-section-title h3{font-size:13px}
.settings-section-title p{font-size:12px}
.settings-fields .form-row{display:block}
.field{margin-bottom:17px;gap:6px}
.field-label{font-size:12px}
.field input,.field select,.field textarea{font-size:16px;padding:10px}
.field small{font-size:12px}
.secret-input input{padding-right:74px}
.secret-input>.badge{font-size:12px;right:8px}
.switch-row strong{font-size:12px}
.switch-row small{font-size:12px}
.inline-info{padding:12px}
.inline-info p,.inline-info strong,.inline-info code{font-size:12px}
.settings-save{margin-top:20px;padding-top:14px;padding-bottom:4px;gap:10px}
.settings-save>span{font-size:12px}
.settings-save .btn{font-size:14px;min-height:35px;padding:7px 11px}
.settings-save .btn .icon{width:14px;height:14px}
.log-search{width:100%}
.log-head{padding:12px 14px;font-size:12px}
.log-row{padding:15px 12px;gap:9px;flex-wrap:wrap}
.log-symbol{width:25px;height:25px}
.log-row strong{font-size:12px}
.log-row p{font-size:12px}
.log-row time{font-size:12px;width:100%;padding-left:34px;margin-top:-2px}
.empty-state{padding:45px 17px}
.empty-state h3{font-size:12px}
.empty-state p{font-size:12px}
.modal-form>header{padding:19px 20px}
.modal-form>header h2{font-size:17px}
.modal-body{padding:20px}
.modal-form>footer{padding:15px 20px}
.modal-body .form-row{display:block}
.modal-body .check-label{margin-top:4px;margin-bottom:16px}
.modal-form>footer .btn{font-size:14px}
.toast{font-size:12px;padding:11px 15px;bottom:18px}
.connection-error{font-size:12px;padding:9px 12px;bottom:10px}
.rail .btn:focus-visible{outline-offset:0}}
@media(max-width:370px){.rail{width:55px}
.rail nav{padding:0 4px}
.btn-nav{font-size:12px}
.app-header{padding-left:14px;padding-right:12px}
.header-status .badge{font-size:12px}
.breadcrumb>span:last-child{max-width:105px}
.page-content{padding-left:13px;padding-right:13px}
.section-heading h2{font-size:22px}
.test-left .form-row{display:block}
.knowledge-symbol{display:none}
.settings-save>span{max-width:100px}
.chat-header{gap:6px;padding-left:10px;padding-right:8px}
.chat-header>.avatar{width:28px;height:28px}
.conversation-controls>.btn{font-size:14px}
.conversation-controls>.btn .icon{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Authentication uses the same controls and leaves in-progress forms mounted. */
body.auth-locked{background:#f2f4eb}
body.auth-locked #app,body.auth-locked #modal{visibility:hidden}
#auth-modal{width:460px;border:1px solid #dfe7d4;border-radius:17px;max-height:calc(100dvh - 32px);box-shadow:0 24px 80px #15392118}
#auth-modal::backdrop{background:#f1f3eaf5;backdrop-filter:none}
.login-form{padding:35px 37px;color:#536347}
.login-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:35px}
.login-top .brand-mark{height:43px;width:43px}
.login-top .badge{font-size:12px}
.login-form>.eyebrow{font-size:11px;letter-spacing:1.7px;color:#718663}
.login-form>h1{font-family:var(--display);font-size:35px;letter-spacing:-1.1px;line-height:1.5;color:#264b32;font-weight:500;margin:7px 0 9px}
.login-form>p{font-size:14px;line-height:1.85;color:#687d5a;margin-bottom:22px}
.auth-message{font-size:13px;line-height:1.8;color:#637b50;margin-bottom:22px}
.auth-message:empty{display:none}
.login-form .field{margin-bottom:17px}
.login-form .field-label{font-size:14px;color:#526e3e}
.login-form .field input{font-size:16px;padding:12px 13px}
.login-form .btn{font-size:14px;min-height:44px;justify-content:space-between;padding:11px 15px}
.login-form .btn .icon{order:2}
.login-form .auth-error{font-size:13px;line-height:1.7;color:#9b4e3d;margin:0 0 15px}
.login-foot{display:flex;align-items:flex-start;gap:8px;padding-top:23px;margin-top:25px;border-top:1px solid #e7ecdf;font-size:12px;line-height:1.8;color:#7c8a6c;overflow-wrap:anywhere}
.login-foot>.icon{width:14px;height:14px;margin-top:3px;color:#7c9568}
.btn[aria-busy="true"]{cursor:wait}
@media(max-width:760px){.login-form{padding:28px 24px}.login-top{margin-bottom:28px}.login-top .badge{font-size:11px}.login-form>h1{font-size:31px}}
/* One typing indicator is shared by the inbox, chat and test conversation. */
.typing-indicator{display:inline-flex;align-items:center;gap:11px;max-width:100%;padding:12px 15px;border:1px solid #dce5d1;border-radius:2px 12px 12px 12px;background:#fbfdf7;color:#577345;box-shadow:0 1px 2px #3c542b07;line-height:1.6}
.typing-dots{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:30px;height:22px;flex:none}
.typing-dots i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block;opacity:.35;animation:typing-pulse 1.25s ease-in-out infinite}
.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}
.typing-copy{display:flex;flex-direction:column;min-width:0;gap:2px}
.typing-title{font-size:14px;color:#486636;font-weight:500}
.typing-timing{display:block;font-size:12px;color:#71875e;font-variant-numeric:tabular-nums;white-space:normal;overflow-wrap:anywhere}
.typing-countdown{display:inline-block;min-width:78px}
.typing-message{max-width:100%;margin-top:3px}
.typing-compact{padding:0;border:0;background:none;box-shadow:none;gap:6px;line-height:1.5;color:#63804e}
.typing-compact .typing-dots{width:22px;gap:3px}.typing-compact .typing-dots i{width:4px;height:4px}
.typing-compact .typing-title{font-size:12px}.typing-compact .typing-timing{font-size:12px}
.typing-compact .typing-duration{display:inline}
.conversation-preview.has-typing{white-space:normal;overflow:visible;margin:7px 0}
.test-customer-label{flex-wrap:wrap}
.test-customer-label>.btn{margin-left:auto;flex:none}
.test-messages>.typing-message{align-self:flex-start}
.example-questions>div{gap:8px}
@keyframes typing-pulse{0%,65%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media(max-width:760px){.typing-indicator{padding:11px 12px;gap:8px}.typing-compact{padding:0;gap:6px}.typing-title{font-size:14px}.typing-timing{font-size:12px}.typing-compact .typing-title,.typing-compact .typing-timing{font-size:12px}.example-questions .btn-chip{white-space:normal;text-align:left;justify-content:flex-start}.test-customer-label>.btn{min-height:34px}}
@media(prefers-reduced-motion:reduce){.typing-dots i{animation:none;opacity:.65}}

.typing-finished .typing-dots{display:none}
.typing-finished .typing-dots i{animation:none}
.typing-finished .typing-title{color:#6b7b60}

/* 2026-10-24 Phase 5: brand switcher, voice notes, passive events */
.header-right{display:flex;align-items:center;gap:14px}
.brand-switch:empty{display:none}
.brand-menu{position:relative}
.brand-menu summary{list-style:none;display:flex;align-items:center;gap:7px;cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:#f6f7f1;font-size:13px;color:var(--ink)}
.brand-menu summary::-webkit-details-marker{display:none}
.brand-menu summary .icon{width:15px;height:15px;color:#68765f}
.brand-menu .brand-label{font-size:12px;color:#68765f}
.brand-menu[open] summary{background:#e0eaca;border-color:#d8e4be}
.brand-list{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:240px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;box-shadow:0 10px 30px #31402914;display:flex;flex-direction:column;gap:6px}
.brand-list a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;color:var(--ink);text-decoration:none;font-size:14px}
.brand-list a:hover,.brand-list a:focus-visible{background:#f0f3e8}
.brand-list a .icon{width:14px;height:14px}
.brand-list p{font-size:12px;color:#68765f;line-height:1.6;margin-top:4px}
.voice-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:#68765f;margin-bottom:6px}
.voice-head .icon{width:13px;height:13px}
.voice-reasons{display:block;font-size:12px;color:#8a5a12;margin-bottom:6px}
.voice-player{display:block;width:100%;min-width:240px;max-width:380px;height:40px;margin:2px 0 8px}
/* Voice and media bubbles get room to breathe (Elvis 2026-10-27: the voice bubble looked too short). */
.bubble-voice{min-width:min(320px,100%);padding:12px 14px 8px}
.bubble-voice>p{background:#f6f7f1;border-radius:8px;padding:8px 10px;margin-top:2px}
.media-box{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.media-link{display:block;line-height:0}
.media-image{display:block;max-width:min(320px,100%);max-height:360px;border-radius:8px;border:1px solid #e5e6da;object-fit:contain;background:#f6f7f1}
.media-video{display:block;width:min(320px,100%);max-height:360px;border-radius:8px;background:#000}
.media-file{align-self:flex-start}
.media-note{font-size:11px;color:#8a9180}
.message-event{align-self:center;display:flex;gap:8px;align-items:center;font-size:12px;color:#68765f;background:#f0f1e8;border-radius:999px;padding:4px 12px;max-width:90%;overflow-wrap:anywhere}
.voice-sim{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-end;margin:4px 0 12px}
.voice-sim .check-label{margin-top:0;white-space:normal}
.voice-sim .check-label .icon{width:14px;height:14px;vertical-align:-2px;margin-right:3px}
.voice-sim .field{flex:1;min-width:200px}
.brand-menu summary{white-space:nowrap}.brand-menu summary strong{max-width:160px;overflow:hidden;text-overflow:ellipsis}
@media (max-width:760px){.header-right{flex-direction:column;align-items:flex-end;gap:4px;min-width:0;flex-shrink:1}.brand-menu .brand-label,.header-status>span:not(.badge):not(.status-dot),.header-status .header-divider{display:none}.brand-menu summary{padding:3px 9px;font-size:12px}.brand-menu summary strong{max-width:96px}.brand-list{right:-8px;min-width:210px}}

/* 2026-10-24 Phase 6: learned knowledge, products */
.suggestion-panel{background:#fbfaf3;border:1px solid #e7e3c8;border-radius:12px;padding:16px;margin:0 0 18px;display:flex;flex-direction:column;gap:12px}
.suggestion-panel h3{font-size:15px;color:var(--ink)}
.suggestion-panel .card-heading p{font-size:12px;color:#68765f}
.suggestion-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.suggestion-card small{font-size:12px;color:#68765f}
.approval-section p{white-space:pre-wrap}

/* 2026-10-24: test mode banner, usage & limits */
.test-mode-card{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fbf6e8;border:1px solid #eadfba;border-radius:12px;padding:12px 16px;margin-bottom:16px}
.test-mode-card.real{background:#eef5e4;border-color:#d4e4bd}
.test-mode-card>div{flex:1;min-width:220px;display:flex;flex-direction:column;gap:2px}
.test-mode-card strong{font-size:14px;color:var(--ink)}
.test-mode-card span{font-size:12px;color:#68765f}
.test-mode-card>.icon{width:18px;height:18px;color:#68765f}
.alert-list{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:10px}
.alert-list p{font-size:12px;color:#526047;display:flex;justify-content:space-between;gap:10px}
.alert-list time{color:#68765f;white-space:nowrap}
.holding-note{background:#eef5e4}
.secret-saved{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.secret-state{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#3f6b3a;background:#eef5e4;border:1px solid #d4e4bd;border-radius:8px;padding:7px 10px}
.secret-state .icon{width:14px;height:14px}
.secret-replace{flex-basis:100%}
.secret-replace input{width:100%}

/* "AI 处理中" line shown before the reply or typing exists (2026-10-26). */
.progress-message{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted,#667085);background:transparent;box-shadow:none}
.progress-dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:progress-pulse 1.2s ease-in-out infinite}
@keyframes progress-pulse{0%,100%{opacity:.25}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.progress-dot{animation:none}}

/* Knowledge page product filter (2026-10-26). */
.knowledge-product{min-height:38px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--text);padding:0 10px;font:inherit;font-size:14px}
.button-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}

/* Telegram pairing link must look like a button (Elvis could not find the plain-text link, 2026-10-26). */
.telegram-start-link{display:inline-block;margin:10px 0;padding:12px 20px;border-radius:var(--radius);background:var(--green);color:#fff;font-size:16px;font-weight:700;text-decoration:none}
.telegram-start-link:hover{background:var(--green-dark)}
.copyable{display:block;user-select:all;word-break:break-all;padding:8px 10px;margin:6px 0;border-radius:8px;background:var(--canvas);font-size:13px}
.pin-input{width:120px;min-height:38px;border:1px solid var(--line);border-radius:var(--radius);padding:0 10px;font:inherit}
.badge-red{background:#fbecea;color:#a2392b;border-color:#f2d4cf}

/* Approval card (2026-10-28 redesign): name on its own line, tags below, the question as a short list. */
.approval-meta{flex-wrap:nowrap}
.approval-who{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.approval-who strong{font-size:14px!important;font-weight:600;color:#33452f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal!important}
.approval-who span{font-size:12px;color:#68765f}
.approval-tags{display:flex;flex-wrap:wrap;gap:6px;padding:10px 18px 0}
.compact .approval-tags{padding:9px 11px 0}
.approval-tags .badge{font-size:12px}
.approval-lines{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.approval-lines li{display:flex;gap:6px;align-items:baseline;font-size:13px;line-height:1.7;color:#526346;overflow-wrap:anywhere}
.approval-lines li.is-first{font-size:15px;font-weight:600;color:#2f4229}
.approval-lines li.is-more{padding-left:10px;border-left:2px solid #e3e9da}
.line-tag{flex:none;font-size:11px;font-weight:600;line-height:1.6;padding:0 6px;border-radius:4px;background:#eef3f8;color:#3f6587}
.approval-reason{margin:0 18px 10px;padding:9px 11px!important;border-radius:8px;background:#f7f8f3}
.compact .approval-reason{margin:0 11px 8px}
.holding-note{background:#eef5e4!important;color:#4d6b3a}
.approval-actions .btn-primary{flex:1 1 100%;justify-content:center}
/* Image viewer */
.media-link{display:block;padding:0;border:0;background:none;cursor:zoom-in;line-height:0}
.lightbox{position:fixed;inset:0;z-index:1000;background:#141a12e6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px 16px;cursor:zoom-out}
.lightbox img{max-width:min(1100px,100%);max-height:calc(100vh - 110px);object-fit:contain;border-radius:8px;box-shadow:0 10px 40px #0008;background:#fff}
.lightbox-bar{display:flex;gap:10px}
.image-read{background:#f6f8f1;border-radius:8px;padding:8px 10px;font-size:13px;color:#4d5d43;max-width:min(320px,100%)}
.image-read p{margin:4px 0 0;line-height:1.6}
.image-read blockquote{margin:6px 0 0;padding:6px 8px;border-left:2px solid #d5dfcb;background:#fff;border-radius:4px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;color:#526346}
.image-read small{display:block;margin-top:6px;font-size:12px;color:#3f6587}
.brand-number{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:999px;background:#eef5e4;color:#3f5f33;font-size:12px;font-weight:600;white-space:nowrap}
.brand-number .icon{width:12px;height:12px}
@media (max-width:640px){.brand-number{display:none}}
/* 2026-10-28 card order: tags → question → who → actions → details */
.approval-card .approval-tags{padding:14px 18px 0}
.compact .approval-card .approval-tags,.compact.approval-card .approval-tags{padding:12px 11px 0}
.approval-card .approval-section{padding:10px 18px 6px}
.compact.approval-card .approval-section{padding:8px 11px 4px}
.approval-lines li.is-first{font-size:16px;line-height:1.5}
.approval-from{display:flex;align-items:center;gap:7px;padding:4px 18px 12px;font-size:12px;color:#68765f}
.compact.approval-card .approval-from{padding:4px 11px 10px}
.approval-from .avatar{width:22px;height:22px;font-size:11px}
.approval-from span{font-weight:600;color:#3f513a}
.approval-from time{margin-left:auto;color:#8a9180}
.approval-details{margin-top:6px;padding:10px 18px 14px;border-top:1px dashed #e3e8dc;background:#fafbf7;display:flex;flex-direction:column;gap:5px}
.compact.approval-card .approval-details{padding:9px 11px 12px}
.approval-details p{display:flex;gap:6px;align-items:flex-start;font-size:12px;line-height:1.6;color:#7a8571;margin:0;overflow-wrap:anywhere}
.approval-details .icon{width:12px;height:12px;margin-top:3px;flex:none}
/* Where a customer wrote from (Elvis 2026-10-28): one colour per app, same tag in list, chat, details and approvals. */
.platform-tag{display:inline-flex;align-items:center;gap:3px;font-size:12px;line-height:16px;padding:0 5px 0 3px;border-radius:3px;border:1px solid;font-weight:600;white-space:nowrap}
.platform-tag .icon{width:13px;height:13px;stroke-width:2}
.platform-whatsapp{color:#1b7d43;background:#e4f5ea;border-color:#c8e9d4}
.platform-messenger{color:#0a5ad6;background:#e6efff;border-color:#cbdcfb}
.platform-instagram{color:#b0306f;background:#fbe8f2;border-color:#f3cde1}
.avatar{position:relative}
.platform-dot{position:absolute;right:-3px;bottom:-3px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--paper)}
.platform-dot .icon{width:11px;height:11px;stroke-width:2.2}
.chat-header-sub{display:inline-flex;align-items:center;gap:6px}
.profile-tags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.conversation-labels{flex-wrap:wrap;row-gap:4px}
.conversation-labels .tiny-label,.conversation-labels .mode-label{white-space:nowrap}
.message-quote{display:flex;gap:6px;align-items:flex-start;margin:0 0 6px;padding:5px 8px;border-left:3px solid #9fb88f;background:#f3f6ee;border-radius:4px;font-size:12px;color:#5d6d52;line-height:1.5;max-width:320px}
.message-quote .icon{width:12px;height:12px;margin-top:2px;flex:none;transform:scaleX(-1)}
.message-quote span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.approval-count{margin:6px 0 2px;font-size:12px;font-weight:600;color:#3f6587}
.approval-lines.is-numbered li.is-item{font-size:15px;font-weight:600;color:#2f4229;line-height:1.5}
.approval-lines .line-no{flex:none;color:#7a8571;font-weight:600;min-width:18px}

/* Team seats, assignment and templates (CHECKLIST 84 / 85) */
.user-chip{display:flex;align-items:center;gap:5px;font-size:12px;color:#4d5f45}
.user-chip .icon{width:14px;height:14px}
.user-chip strong{font-weight:500;color:#2f4a28}
.assign-control{display:flex;align-items:center;gap:6px;font-size:12px;color:#68765f}
.assign-control select{padding:4px 8px;font-size:12px;max-width:170px}
.assign-name{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#68765f}
.assign-name .icon{width:13px;height:13px}
.message-sender{display:block;font-size:12px;color:#68765f;margin-top:3px;padding:0 4px}
.message.outgoing .message-sender{text-align:right}
.composer-closed{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:#4d5f45}
.composer-closed[hidden]{display:none}
.composer-closed .icon{width:16px;height:16px;flex:none}
.heading-actions{display:flex;gap:9px;flex-wrap:wrap}
.team-list{display:flex;flex-direction:column;gap:2px}
.team-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #edf1e5;flex-wrap:wrap}
.team-who{display:flex;flex-direction:column;min-width:150px;flex:1}
.team-who small{color:#68765f;font-size:12px}
.team-actions{display:flex;gap:4px;margin-left:auto}
.team-role-fixed{font-size:12px;color:#68765f}
.approver-set{border:1px solid #e2e6da;border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:8px}
.approver-set legend{font-size:12px;color:#68765f;padding:0 6px}
.approver-set small{color:#68765f;font-size:12px}
.approver-option{display:flex;align-items:center;gap:8px;font-size:13px}
.approver-option input{accent-color:var(--green)}
/* Team page and my account (CHECKLIST 86) */
.btn-plain{background:none;border:1px solid transparent;cursor:pointer}
.btn.user-chip{min-height:30px;padding:4px 10px;border-radius:999px;gap:5px;font-size:12px}
.btn.user-chip:hover{background:#eef3e8;border-color:#dfe7d6;transform:none}
.btn.owner-avatar{min-height:0;padding:0;border-radius:50%;background:#315f4e;color:#bdcfb7}
.btn.owner-avatar:hover{outline:2px solid #cee1b7;outline-offset:2px;transform:none}
.team-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.team-stat{background:#fff;border:1px solid #e1e7d8;border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:2px}
.team-stat>span{font-size:12px;color:#68765f}
.team-stat strong{font-family:var(--display);font-size:32px;font-weight:400;letter-spacing:-1px;color:#2f4a28;line-height:1.2}
.team-stat strong em{font-style:normal;font-size:18px;color:#8a977f;letter-spacing:0}
.team-stat small{font-size:12px;color:#8a977f}
.team-table{margin-bottom:18px}
.team-head,.team-member{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr) 28px;align-items:center;gap:12px;padding:12px 20px}
.team-head{font-size:12px;color:#8a977f;border-bottom:1px solid #edf1e5;background:#fafcf6}
.team-member{background:#fff;border-bottom:1px solid #edf1e5}
.team-member.is-editable{cursor:pointer}
.team-member:last-child{border-bottom:0}
.team-member.is-editable:hover{background:#f7faf2}
.team-member.is-disabled{color:#9aa592}
.team-member.is-disabled .avatar{filter:grayscale(1);opacity:.6}
.team-person{display:flex;align-items:center;gap:12px;min-width:0}
.team-person>span:last-child{display:flex;flex-direction:column;min-width:0}
.team-person strong{font-weight:500;color:#2f4a28;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-member.is-disabled .team-person strong{color:#9aa592}
.team-person small{font-size:12px;color:#8a977f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-person .avatar{width:36px;height:36px;font-size:13px}
.team-cell{font-size:13px}
.team-chevron{display:flex;justify-content:flex-end}
.team-chevron .btn-icon{width:28px;min-height:28px;padding:4px;color:#b5bfac}
.team-chevron .icon{width:16px;height:16px}
.role-tag{display:inline-flex;align-items:center;font-size:12px;padding:2px 9px;border-radius:999px;background:#eef2e8;color:#4d5f45;white-space:nowrap}
.role-tag.role-admin{background:#dfeedd;color:#1f5a3b}
.role-tag.role-manager{background:#e3ecf3;color:#2b5573}
.role-tag.role-agent{background:#f3ead9;color:#7a5520}
.role-tag.role-viewer{background:#eeeeea;color:#5f5e5a}
.team-member.is-disabled .role-tag{background:#f1f1ee;color:#9aa592}
.team-empty{display:flex;gap:14px;align-items:flex-start;padding:20px;color:#68765f}
.team-empty strong{color:#2f4a28;font-weight:500}
.team-empty p{font-size:13px;margin-top:2px}
.team-lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.team-roles,.team-approvers{padding:18px 20px}
.team-roles h3,.team-approvers h3{font-size:14px;font-weight:500;color:#2f4a28;margin-bottom:10px}
.team-role{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:start;padding:8px 0;border-top:1px solid #f0f3ea}
.team-role:first-of-type{border-top:0}
.team-role p{font-size:13px;color:#4d5f45;line-height:1.6}
.team-approvers .switch-row{padding:12px 0}
.team-approvers .switch-row strong{font-size:13px;color:#2f4a28;font-weight:500}
.team-danger{display:flex;gap:9px;flex-wrap:wrap;margin:6px 0 8px}
.my-account-who{display:flex;align-items:center;gap:14px;padding-bottom:18px;border-bottom:1px solid #edf1e5;margin-bottom:6px}
.my-account-who strong{display:block;font-size:16px;font-weight:500;color:#2f4a28}
.my-account-who small{font-size:12px;color:#68765f}
.my-account-block{padding:16px 0;border-bottom:1px solid #edf1e5;display:flex;flex-direction:column;gap:4px}
.my-account-block:last-child{border-bottom:0;padding-bottom:0}
.my-account-block h3{font-size:14px;font-weight:500;color:#2f4a28;margin-bottom:6px}
.my-account-block small.muted{font-size:12px;color:#8a977f;margin-bottom:8px}
@media (max-width:760px){
  .team-stats{gap:8px}
  .team-stat{padding:12px}
  .team-stat strong{font-size:24px}
  .team-stat strong em{font-size:14px}
  .team-stat small{display:none}
  .team-lower{grid-template-columns:minmax(0,1fr)}
  .team-head{display:none}
  .team-member{grid-template-columns:minmax(0,1fr) auto;row-gap:6px;padding:14px 16px}
  .team-member .team-person{grid-column:1/-1}
  .team-member .team-cell[data-label]::before{content:attr(data-label) " · ";color:#8a977f}
}
.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#6c955b;margin-right:6px;vertical-align:1px}

.requests-page{display:grid;gap:18px}
.requests-form{padding:18px 20px}
.requests-form .modal-body{padding:0;display:grid;gap:12px}
.request-row{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;padding:14px 20px;border-bottom:1px solid #eef2e8}
.request-row:last-child{border-bottom:0}
.request-row strong{color:#2f4a28;font-weight:500}
.request-row p{font-size:13px;color:#68765f;margin:2px 0;overflow-wrap:anywhere}
.requests-list>.muted{padding:18px 20px}
@media(max-width:760px){.request-row{flex-direction:column;gap:8px}}

/* ---- CloseChat features (CHECKLIST 88–92): reply helper, customer memory, today, coach, learning ---- */
.assist-bar{display:flex;flex-direction:column;gap:6px;margin:0 0 8px}
.assist-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.assist-row .btn{min-height:31px;padding:5px 10px;font-size:13px}
.assist-row .btn-icon{width:31px;padding:6px}
.assist-main.btn-secondary{background:var(--green-soft);border-color:#d3e2c7;color:var(--green)}
.assist-target{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;max-width:100%;padding:3px 4px 3px 9px;border-radius:6px;background:#f0f3e9;color:var(--muted);font-size:12px}
.assist-target span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.assist-target .btn-icon{width:24px;min-height:24px;padding:4px}
.assist-count,.assist-busy{font-size:12px;color:var(--muted)}
.assist-warning{display:flex;gap:6px;align-items:flex-start;margin:0;color:var(--amber);font-size:12px}
.assist-warning .icon{width:16px;height:16px}
.assist-menu{position:relative}
.assist-menu summary{display:inline-flex;align-items:center;gap:5px;min-height:31px;padding:5px 10px;border:1px solid #dce4d5;border-radius:8px;background:#fff;font-size:13px;cursor:pointer;list-style:none}
.assist-menu summary::-webkit-details-marker{display:none}
.assist-menu summary .icon{width:16px;height:16px}
.assist-menu-list{position:absolute;bottom:calc(100% + 6px);left:0;z-index:20;display:flex;flex-direction:column;min-width:200px;max-width:300px;max-height:260px;overflow:auto;padding:6px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(35,61,53,.12)}
.assist-menu-list .btn{justify-content:flex-start;white-space:normal;text-align:left}
.voice-capsule{display:inline-flex;align-items:center;width:90px;height:10px;border-radius:999px;background:#e6ebdd;overflow:hidden}
.voice-level{display:block;height:100%;width:calc(var(--level,0)*100%);min-width:6px;background:var(--green);border-radius:999px;transition:width .08s linear}
.assist-recording{animation:assist-pulse 1.2s ease-in-out infinite}
@keyframes assist-pulse{50%{opacity:.7}}
.message[data-action="ax-pick"]{cursor:pointer}
.message.picked .bubble{outline:2px solid var(--green);outline-offset:2px}
.assist-tools{padding:8px 20px;border-bottom:1px solid var(--line);background:#fafbf7;display:flex;flex-direction:column;gap:8px}
.suggestion-bar{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #dce8ce;background:#f2f7ec;border-radius:10px}
.suggestion-kind{color:var(--green)}
.suggestion-copy{flex:1;min-width:0;display:flex;flex-direction:column}
.suggestion-copy strong{font-size:13px}
.suggestion-copy small{color:var(--muted)}
.suggestion-copy details summary{font-size:12px;color:var(--muted);cursor:pointer}
.suggestion-copy details p{margin:2px 0 0;font-size:12px}
.suggestion-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.suggestion-actions .btn{min-height:30px;padding:4px 10px}
.status-tag{display:inline-flex;font-size:12px;padding:0 5px;border-radius:3px;line-height:16px;border:1px solid transparent}
.status-new{background:#eef2f6;color:#4b6478;border-color:#dde5ec}
.status-quoted{background:var(--amber-bg);color:var(--amber);border-color:#eddfbf}
.status-hot{background:#f7e5df;color:#9a4b33;border-color:#efd3c8}
.status-won{background:#e3f0da;color:#3f6b2c;border-color:#cfe2c0}
.status-lost{background:#f0f1ec;color:#7d867a;border-color:#e2e5dc}
.customer-memory .assist-status{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px}
.customer-memory select{border:1px solid var(--line);border-radius:7px;padding:4px 8px;background:#fff}
.fact-list{margin:0 0 8px}
.fact-list>div{display:grid;grid-template-columns:80px 1fr;gap:6px;padding:4px 0;border-bottom:1px dashed #edf0e5}
.fact-list dt{color:var(--muted);font-size:12px}
.fact-list dd{margin:0;display:flex;gap:4px;align-items:flex-start;justify-content:space-between}
.fact-actions{display:inline-flex;flex:none}
.fact-actions .btn-icon,.fact-suggestion .btn-icon{width:26px;min-height:26px;padding:4px}
.fact-pending{margin:8px 0;padding:8px;border-radius:8px;background:#f2f7ec}
.fact-suggestion{display:flex;align-items:center;gap:4px;font-size:13px}
.fact-suggestion span{flex:1}
.summary-body{margin-top:12px;display:flex;flex-direction:column;gap:12px}
.summary-situation{font-size:15px;color:var(--ink);margin:0}
.summary-block ul{margin:4px 0 0;padding-left:18px}
.summary-block p{margin:2px 0 0}
.coach-body{margin-top:12px;display:flex;flex-direction:column;gap:12px}
.coach-strategy{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #edf0e5}
.coach-strategy p{margin:0;font-size:13px;color:var(--muted)}
.coach-thread{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto;margin:12px 0}
.coach-line p{margin:0;padding:8px 11px;border-radius:10px;white-space:pre-line}
.coach-me{align-self:flex-end;max-width:85%}.coach-me p{background:var(--green);color:#fff}
.coach-coach{align-self:flex-start;max-width:90%}.coach-coach p{background:#f0f3e9}
.coach-form{display:flex;gap:8px;align-items:flex-end}
.coach-form textarea{flex:1;border:1px solid var(--line);border-radius:8px;padding:8px}
.quick-due{display:flex;flex-wrap:wrap;gap:6px 14px;margin:4px 0 8px}
.due-actions{display:inline-flex;flex-wrap:wrap;gap:2px}
.today-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
.today-section{padding:16px;display:flex;flex-direction:column;gap:10px}
.today-section h3{display:flex;align-items:center;gap:7px;margin:0;font-size:15px}
.today-section .count{margin-left:auto;font-size:12px;color:var(--muted)}
.today-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:#fff}
.today-card-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.today-card-head time{font-size:12px;color:var(--muted);white-space:nowrap}
.today-card p{margin:0;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.today-actions{display:flex;flex-wrap:wrap;gap:4px}
.today-actions .btn{min-height:30px;padding:4px 9px;font-size:13px}
.task-row{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #edf0e5}
.task-row small{display:block;color:var(--muted)}
.task-row.is-due strong{color:var(--amber)}
.task-actions{display:inline-flex;flex-wrap:wrap;gap:2px}
.pre-line{white-space:pre-line;margin:2px 0 0}
.note-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid #edf0e5}
.note-row p{margin:0}
.note-actions{display:inline-flex;align-items:center;gap:2px;flex:none}
.usage-table{display:flex;flex-direction:column;font-size:13px}
.usage-head,.usage-row{display:grid;grid-template-columns:1fr 70px 110px;gap:8px;padding:6px 0;border-bottom:1px solid #edf0e5}
.usage-head{color:var(--muted);font-size:12px}
.usage-total{font-weight:650}
.stats-cols{grid-template-columns:1.4fr repeat(6,minmax(54px,1fr))}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:8px}
.stats-grid>div{border:1px solid var(--line);border-radius:9px;padding:9px 10px;display:flex;flex-direction:column}
.stats-grid strong{font-size:19px;color:var(--ink)}
.stats-grid span{font-size:12px;color:var(--muted)}
.team-stats-table{padding:16px;margin-top:16px;overflow-x:auto}
.team-stats-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.team-stats-head h3{margin:0}
.quick-replies{padding:16px;margin-bottom:20px}
.quick-replies-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.quick-replies-head h3{display:flex;align-items:center;gap:7px;margin:0}
@media(max-width:760px){.assist-tools{padding:8px 12px}.due-actions{margin-left:0}.suggestion-bar{flex-wrap:wrap}.stats-cols{min-width:560px}.coach-strategy{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.assist-recording{animation:none}}

/* 2026-11-01 布局整理（Elvis：整体有点乱）：页头压矮、提醒放进页头、导航分组、聊天区少几条横栏、设置分页 */
.app-header{height:64px;padding:10px 24px}
.app-header h1{font-size:19px}
.breadcrumb{margin-bottom:2px;font-size:11px}
.brand{height:64px}
.header-right{display:flex;align-items:center;gap:10px}
.logout-button{color:#68765f}
.rail nav{overflow-y:auto;scrollbar-width:none;padding-bottom:8px;gap:2px}
.rail nav::-webkit-scrollbar{display:none}
.nav-group{display:flex;flex-direction:column;gap:3px;padding-top:6px}
.nav-group+.nav-group{margin-top:6px;border-top:1px solid #ffffff14}
.nav-group-label{font-size:10px;letter-spacing:1px;color:#8fa894;text-align:center;padding:2px 0}
.btn-nav{min-height:54px;padding:8px 1px 6px;gap:4px}
.btn-nav .icon{width:19px;height:19px}
.rail-bottom{padding:12px 0 14px;gap:5px}
.header-status{white-space:nowrap}
.btn-nav.active:before{left:-10px}
/* reminder bell */
.due-popover{position:relative}
.due-popover>summary{list-style:none;display:flex;align-items:center;gap:6px;cursor:pointer;padding:6px 10px;border-radius:999px;background:#fbf3e3;border:1px solid #eddfbf;color:#6f4c1f;font-size:13px;font-weight:600}
.due-popover>summary::-webkit-details-marker{display:none}
.due-popover>summary .icon{width:15px;height:15px}
.due-count{background:var(--amber);color:#fff;border-radius:999px;min-width:18px;height:18px;line-height:18px;text-align:center;font-size:11px;padding:0 5px}
.due-list{position:absolute;right:0;top:calc(100% + 6px);width:340px;max-width:calc(100vw - 32px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #1b2b2018;padding:8px;z-index:30;display:flex;flex-direction:column;gap:4px}
.due-item{padding:8px;border-radius:8px;display:flex;flex-direction:column;gap:4px;font-size:13px}
.due-item+.due-item{border-top:1px solid #f1f3eb}
.due-item strong{color:#3d3221;font-weight:600}
.due-item .btn{font-size:13px;min-height:24px;padding:1px 6px}
/* chat header: one line, less-used actions in "更多" */
.chat-header{height:60px;padding:0 18px}
.conversation-controls{margin-left:auto;display:flex;align-items:center;gap:8px}
.more-menu{position:relative;flex:none}
.more-menu>summary{list-style:none;display:flex;align-items:center;gap:4px;cursor:pointer;padding:6px 9px;border-radius:8px;color:#4e5e49;font-size:13px;border:1px solid transparent}
.more-menu>summary::-webkit-details-marker{display:none}
.more-menu>summary:hover,.more-menu[open]>summary{background:#eef2e7;border-color:#e0e6d6}
.more-menu>summary .icon{width:16px;height:16px}
.more-list{position:absolute;right:0;top:calc(100% + 4px);min-width:180px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #1b2b2018;padding:5px;z-index:20}
.more-list>div{display:flex;flex-direction:column}
.more-list>div:empty{display:none}
.more-list>div+div:not(:empty){border-top:1px solid #f1f3eb;margin-top:4px;padding-top:4px}
.more-list .btn{justify-content:flex-start;width:100%;padding:7px 9px;font-size:13px;border-radius:7px;min-height:32px}
.more-list .btn:hover{background:#f3f6ee}
.assist-tools:empty{display:none}
/* composer: two rows */
.composer{padding:8px 18px 10px}
.composer .assist-bar{margin-bottom:6px}
/* conversation list: the dot on the avatar already says which app */
.conversation-labels .platform-tag{display:none}
.inbox-panel>.filter-tabs{flex-wrap:wrap;row-gap:4px}
/* right panel: approvals first, background folded */
.approvals-in-detail.has-pending{background:#fffaf0;border-bottom:1px solid #f0e3c6}
.detail-fold>summary{list-style:none;cursor:pointer}
.detail-fold>summary::-webkit-details-marker{display:none}
.detail-fold>summary h3{display:flex;align-items:center;gap:6px}
.detail-fold>summary h3:after{content:"展开";margin-left:auto;font-size:12px;font-weight:400;color:#68765f}
.detail-fold[open]>summary h3:after{content:"收起"}
.fold-count{font-size:11px;color:#68765f;font-weight:400}
/* settings tabs */
.settings-tabs{margin:0 0 16px}
@media(max-width:760px){.app-header{height:58px;padding:8px 14px}.brand{height:58px}.header-status{display:none}.user-chip{display:none}.header-right{gap:6px}.due-popover>summary span:not(.due-count){display:none}.chat-header>.avatar{display:none}.chat-header-copy{flex:1;min-width:64px}.chat-header-copy h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-sub{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assign-control>span,.conversation-controls>.badge{display:none}.assign-control select{max-width:84px}.conversation-controls{gap:4px}.chat-header{height:56px;padding:0 10px}.more-menu>summary span{display:none}.composer{padding:8px 10px 10px}}
/* 2026-11-01 knowledge pictures (CHECKLIST 96) */
.message-images{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px}
.message-images a{display:block;line-height:0;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#f7f8f3}
.message-images img{width:120px;height:120px;object-fit:cover;display:block}
.approval-images{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.approval-images>span{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.approval-images .icon{width:15px;height:15px}
.approval-images img{width:72px;height:72px}
.kb-images{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 4px}
.kb-image{position:relative;margin:0;line-height:0}
.kb-image a{display:block;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.kb-image img{width:84px;height:84px;object-fit:cover;display:block}
.kb-image .btn{position:absolute;top:3px;right:3px;min-height:26px;width:26px;padding:4px;background:#fffffff0}
.kb-image .btn .icon{width:14px;height:14px}
.kb-image-add{cursor:pointer;gap:6px}
.kb-image-note{flex-basis:100%;margin:0;font-size:12px;color:var(--muted)}
.image-button{width:35px;min-height:35px;padding:8px;margin-bottom:1px;border-radius:7px;color:#4e5e49}
.image-button .icon{width:17px;height:17px}
.image-pick-group{border:1px solid var(--line);border-radius:10px;padding:8px 10px 10px;margin:0 0 10px}
.image-pick-group legend{font-size:13px;font-weight:600;padding:0 4px;display:flex;align-items:center;gap:6px}
.image-pick-grid{display:flex;flex-wrap:wrap;gap:8px}
.image-pick{position:relative;cursor:pointer;line-height:0}
.image-pick img{width:96px;height:96px;object-fit:cover;border-radius:8px;border:2px solid transparent}
.image-pick input{position:absolute;top:6px;left:6px;width:18px;height:18px;z-index:1}
.image-pick input:checked+img{border-color:var(--green)}
@media(max-width:760px){.message-images img{width:96px;height:96px}}

/* 2026-11-01 第二轮整理：输入区一行（点进去才变两行）、客户列表筛选一行、右栏客户资料一行 */
.chat-panel{container-type:inline-size}
.composer:not(.composer-open){display:flex;align-items:center;gap:8px}
.composer:not(.composer-open) .assist-bar{margin:0;flex:0 1 auto;min-width:0}
.composer:not(.composer-open) .assist-row{flex-wrap:nowrap}
.composer:not(.composer-open) .composer-box{flex:1;min-width:150px}
.composer:not(.composer-open) .composer-box textarea{height:36px!important;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@container (max-width:640px){.composer:not(.composer-open) .assist-row .btn-chip,.composer:not(.composer-open) .assist-menu{display:none}}
.inbox-panel>.filter-tabs{flex-wrap:nowrap;gap:2px}
.inbox-panel>.filter-tabs .btn-tab{padding:5px 8px;font-size:13px;white-space:nowrap}
.more-filter{margin-left:auto;min-height:29px;max-width:96px;padding:3px 6px;font-size:13px;border-radius:6px;color:#68765f;background:#fff}
.more-filter.active{border-color:var(--green);color:var(--green);background:var(--green-soft)}
.customer-profile{display:flex;align-items:center;gap:10px;text-align:left;padding:14px 0;border-bottom:1px solid #f1f3eb}
.customer-profile>.avatar{width:36px;height:36px;font-size:13px;flex:none}
.profile-copy{min-width:0;flex:1}
.customer-profile h3{margin:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.customer-profile p{margin:1px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.customer-profile .profile-tags{justify-content:flex-end;flex-wrap:nowrap;gap:4px}
.chat-header-copy{min-width:0;flex:0 1 auto}
.chat-header-copy h2,.chat-header-sub{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.assign-control>span{white-space:nowrap}

/* 2026-11-02 平滑动画：输入区展开／收起由 web/app.mjs animateComposer 量好位置再滑过去；这里只给消失的短语留位置 */
.composer{position:relative}
.composer-ghost{z-index:1}

/* CHECKLIST 98: AI find */
.search-wrap:has(.search-ai) input{padding-right:84px}
.search-wrap .search-ai{position:absolute;right:4px;top:50%;transform:translateY(-50%);min-height:30px;padding:4px 8px;font-size:12px}
.search-status,.search-none{margin:6px 0;color:#496d3c}
.search-hits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.search-hit{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.search-hit .btn{align-self:flex-start}
.search-hit:hover{border-color:var(--green);background:#f8faf4}
.search-hit-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.search-quote{white-space:pre-wrap;word-break:break-word}
.search-foot{margin-top:12px}
.message.flash .bubble{animation:search-flash 2s ease-out}
@keyframes search-flash{0%,60%{outline:3px solid var(--green);outline-offset:2px;background-color:#eef6df}100%{outline:3px solid transparent;outline-offset:2px}}
@media(prefers-reduced-motion:reduce){.message.flash .bubble{animation:none;outline:3px solid var(--green)}}
/* 右下角 AI 助手（CHECKLIST 101）: round button, panel, chat bubbles; place-flash marks the element a button walked to */
[data-place]{scroll-margin-top:84px}
.place-flash{animation:place-flash 2s ease-out;border-radius:10px}
@keyframes place-flash{0%,60%{outline:3px solid var(--green);outline-offset:3px;background-color:#eef6df}100%{outline:3px solid transparent;outline-offset:3px}}
.helper-fab{position:fixed;right:20px;bottom:calc(20px + var(--helper-lift,0px));z-index:40;width:52px;height:52px;padding:0;border-radius:50%;background:var(--green);color:#fff;border:0;box-shadow:0 6px 18px #103d3240;transition:bottom .18s ease,background .16s}
.helper-fab:hover{background:var(--green-dark)}
.helper-fab .icon{width:24px;height:24px}
.helper-panel{position:fixed;right:20px;bottom:20px;z-index:41;width:380px;max-width:calc(100vw - 32px);height:min(560px,calc(100dvh - 40px));display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 44px #10261e33;overflow:hidden}
.hp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 12px 10px 16px;border-bottom:1px solid var(--line);background:#f8faf4}
.hp-head>div{display:flex;flex-direction:column;min-width:0}
.hp-head strong{color:var(--ink)}
.hp-head-actions{display:flex;align-items:center;gap:2px;flex:none}
.hp-list{flex:1;min-height:0;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#fcfdf9}
.hp-msg{max-width:92%;padding:9px 12px;border-radius:12px;word-break:break-word;font-size:14px}
.hp-user{align-self:flex-end;background:var(--green);color:#fff;border-bottom-right-radius:4px;white-space:pre-wrap}
.hp-bot{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;display:flex;flex-direction:column;gap:8px}
.hp-places{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.hp-places .btn{max-width:100%;white-space:normal;text-align:left}
.hp-error{color:var(--danger)}
.hp-note{margin-top:2px}
.hp-empty{display:flex;flex-direction:column;gap:12px;color:var(--muted)}
.hp-chips{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.hp-chips .btn{white-space:normal;text-align:left;justify-content:flex-start}
.hp-typing{flex-direction:row;gap:5px;align-items:center;padding:12px 14px}
.hp-typing span{width:7px;height:7px;border-radius:50%;background:#9db08f;animation:hp-dot 1.2s infinite ease-in-out}
.hp-typing span:nth-child(2){animation-delay:.15s}
.hp-typing span:nth-child(3){animation-delay:.3s}
@keyframes hp-dot{0%,80%,100%{opacity:.3}40%{opacity:1}}
.hp-form{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#fff}
.hp-form textarea{flex:1;resize:none;min-height:38px;max-height:96px;line-height:20px;padding:8px 10px;overflow-y:auto}
.hp-form .btn{flex:none;width:40px;min-height:38px;padding:0}
.hp-list .search-hit{background:#f8faf4}
@media(max-width:760px){
  .helper-fab{right:14px;bottom:calc(14px + var(--helper-lift,0px));width:48px;height:48px}
  .helper-panel{inset:0;right:0;bottom:0;width:100%;max-width:100%;height:100dvh;border-radius:0;border:0}
  .hp-form textarea{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.place-flash{animation:none;outline:3px solid var(--green);outline-offset:3px}.helper-fab{transition:none}.hp-typing span{animation:none;opacity:.7}}
