@import url('./image-viewer.css?v=2.17.3');
@import url('./service-page.css?v=2.17.3');
@import url("compose-context.css?v=2.17.3");
/* Shared design tokens. New modules MUST reuse these colors, controls and spacing. */
:root{--primary:#7181e6;--primary-hover:#5c6ed8;--primary-soft:#edf0ff;--purple:#9886cf;--ink:#303747;--muted:#969baa;--line:#eef0f5;--surface:#fff;--canvas:#f7f8fc;--peach:#fdf0e9;--shadow:0 16px 55px #4856830b;--radius:18px;--control:11px;--danger:#d9757a;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--canvas);font-size:14px;line-height:1.6;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{display:inline-flex;justify-content:center;align-items:center;gap:7px;cursor:pointer;color:var(--ink);background:#fff;border:1px solid #e8ebf3;border-radius:var(--control);padding:9px 15px;transition:background .18s,border-color .18s,transform .18s}button:hover{background:#f4f5fc;border-color:#dce0f4}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:white;box-shadow:0 5px 12px #7181e61c}button.primary:hover{background:var(--primary-hover)}button.subtle{background:#f8f9fc;border-color:transparent;color:#858b9a}button.text-button{padding:2px 0;border:0;background:none;color:var(--primary);font-size:12px}button.icon-btn{padding:8px;border:0;background:transparent;color:#9a9faf;min-width:34px;min-height:34px}button.icon-btn:hover{background:var(--primary-soft);color:var(--primary)}.icon{width:19px;height:19px;flex-shrink:0;vertical-align:middle}.wide{width:100%}a{color:var(--primary);text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:24px;line-height:1.4;letter-spacing:.5px}h2{font-size:17px}h3{font-size:15px}small{font-size:12px}input:not([type=checkbox]):not([type=hidden]),textarea{display:block;border:1px solid #e8ebf3;border-radius:var(--control);background:#fafbfe;color:var(--ink);padding:11px 13px;width:100%;outline:0;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus{border-color:#b3bcf2!important;box-shadow:0 0 0 3px #7181e60d}input::placeholder,textarea::placeholder{color:#b4b8c5}textarea{min-height:104px;resize:vertical}label{display:block;color:#72798c;font-size:13px;margin-bottom:17px}label input,label textarea,label .choice{margin-top:7px}input[type=checkbox]{accent-color:var(--primary)}:focus-visible{outline:3px solid #bcc4f5;outline-offset:2px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#e2e5f0;border-radius:8px}::-webkit-scrollbar-track{background:transparent}.muted{color:#7d879b;font-size:12px}.hint{color:var(--muted);font-size:12px;margin:12px 0 22px}.center{text-align:center}.hidden{display:none!important}.error{color:var(--danger);font-size:12px;white-space:pre-wrap}.eyebrow{font-size:11px;letter-spacing:2px;color:#a0a5ba;font-weight:600;display:block}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);font-size:17px;font-weight:650;white-space:nowrap}.brand small{display:block;font-size:12px;color:#a2a7b7;font-weight:400;letter-spacing:1px;margin-top:1px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;color:white;font-size:21px;width:43px;height:43px;border-radius:15px;background:linear-gradient(135deg,#a7b4ff,#7788e6);box-shadow:0 6px 12px #8c9be02b;font-weight:500;flex-shrink:0}.badge{display:inline-flex;align-items:center;background:#f1f3fb;color:#8a93b5;font-size:11px;border-radius:6px;padding:3px 7px;white-space:nowrap;line-height:1.4}.badge.active{background:#edf2ff;color:#8192d5}.badge.waiting{background:#fff2e8;color:#d6a482}.badge.bot,.badge.purple{background:#f1edfb;color:#a190ca}.badge.closed{background:#f2f3f7;color:#a3a7b4}.badge.rating{background:#fff6e6;color:#cfad73}.avatar{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:13px;color:#8d9ade;background:#edf0fc;flex-shrink:0}.avatar.peach{background:var(--peach);color:#d5ac91}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#879be8;box-shadow:0 0 0 3px #879be810;margin-right:6px}.mini-icon{width:34px;height:34px;background:#f0f2fd;color:#92a0df;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.empty{height:100%;min-height:220px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#969daf;padding:30px;gap:8px}.empty>.icon{width:50px;height:50px;padding:12px;background:#eef1fb;color:#a8b3e7;border-radius:18px;margin-bottom:6px}.empty h3{font-size:15px;font-weight:500;color:#838da7}.empty p{font-size:12px;max-width:310px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.section-label{font-size:12px;color:#a4a9b7;text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;justify-content:space-between;margin:25px 0 12px}.boot{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;color:#a1a6b5}.boot p{font-size:12px}
/* Choice, modal, toggles and notification primitives are shared across all portals. */
.choice{position:relative;width:100%;font-size:13px}.choice-trigger{background:#fafbfe;width:100%;justify-content:space-between;padding:11px 13px;border-color:#e8ebf3}.choice-trigger .icon{width:14px;height:14px;color:#aab1c6}.choice-options{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:70;border:1px solid #e8ebf3;border-radius:11px;background:white;box-shadow:0 12px 30px #48568318;padding:5px;max-height:220px;overflow:auto;display:none}.choice.open .choice-options{display:block}.choice-options button{width:100%;border:0;justify-content:flex-start;font-size:12px;padding:9px 10px}.choice-options button[aria-selected=true]{background:var(--primary-soft);color:var(--primary)}.toggle-label{position:relative;display:flex;align-items:center;gap:9px;cursor:pointer;margin-top:12px}.toggle-label input{position:absolute;left:0;top:50%;transform:translateY(-50%);opacity:0;width:33px;height:19px;margin:0;cursor:pointer;z-index:1}.toggle{width:33px;height:19px;border-radius:20px;background:#e7e9f2;position:relative;display:inline-block}.toggle:after{content:'';width:13px;height:13px;border-radius:100%;background:white;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0001;transition:left .2s}.toggle-label input:checked+.toggle{background:#97a4ed}.toggle-label input:checked+.toggle:after{left:17px}.toggle-label input:focus-visible+.toggle{outline:3px solid #bbc4f8}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#626d8d25;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:550px;max-width:100%;max-height:90dvh;background:white;border-radius:21px;box-shadow:0 30px 90px #44527c26;overflow:hidden;animation:appear .2s ease}.modal>header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid var(--line)}.modal>header h2{font-size:17px;font-weight:600}.modal-body{padding:23px 25px;max-height:65dvh;overflow:auto}.modal footer{padding:15px 25px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;align-items:center;background:#fcfcff}.modal footer .error{flex:1}.modal-body>p{margin-bottom:18px}.modal-body label:last-child{margin-bottom:0}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,15px);z-index:200;opacity:0;pointer-events:none;padding:12px 24px;color:#6b779e;border:1px solid #e6eafb;background:white;box-shadow:0 8px 45px #536ba124;border-radius:13px;transition:opacity .2s,transform .2s;max-width:90vw;font-size:12px}#toast.show{opacity:1;transform:translate(-50%,0)}.pager{display:flex;align-items:center;justify-content:space-between;padding:18px 23px;color:#a4a9b9;font-size:12px}.pager>div{display:flex;gap:8px}.pager button{padding:6px}.pager .icon{width:15px;height:15px}.response-data{margin:0}.response-data dt{color:#a1a7b8;font-size:12px;margin:18px 0 5px}.response-data dd{margin:0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.submitted-banner{padding:13px;background:#f1f4ff;color:#8797d6;border-radius:10px;font-size:12px;display:flex;gap:8px;align-items:center}.rating-stars{display:flex;justify-content:center;gap:12px;margin:25px 0}.rating-stars button{background:transparent;border:0;padding:4px;color:#dce0ed}.rating-stars .icon{width:36px;height:36px}.rating-stars button.filled{color:#dfbf89}.rating-stars button.filled svg{fill:#fff0d7}
/* Auth portal shares exactly the same inputs, buttons, fonts and surface radii. */
.auth{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:40px;background:radial-gradient(ellipse at 10% 25%,#edf0ff,transparent 60%),#f9faff}.auth-shell{width:1000px;display:grid;grid-template-columns:1.1fr 1fr;border-radius:28px;background:#fff;box-shadow:0 20px 80px #606c9312;overflow:hidden;min-height:610px}.auth-story{padding:52px 45px;position:relative;background:linear-gradient(135deg,#f0f2ff,#f4f6fe 60%,#f6f0fd)}.auth-story h1{font-size:32px;color:#7b87bc;line-height:1.6;margin:20px 0 15px}.auth-story p{color:#a4abc3;font-size:12px;line-height:2.1}.story-orb{width:180px;height:160px;margin:30px auto;border-radius:45px;background:linear-gradient(135deg,#dce4ffbd,#eae2fcad);transform:rotate(-8deg);box-shadow:15px 25px 0 #e2e7fa35;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #fff}.story-orb span{font-size:55px;color:#a5b3e9;letter-spacing:-3px;line-height:1.2}.story-orb small{color:#a5add0;margin-top:5px}.story-foot{font-size:12px;letter-spacing:1.8px;color:#b4bbd4;position:absolute;bottom:32px}.auth-card{padding:50px 45px;background:white}.auth-card>.brand-mark{margin-bottom:22px}.auth-card .eyebrow{margin-bottom:7px}.auth-card h2{font-size:24px}.auth-card>p{font-size:12px;color:#a3a8b8;margin-top:10px}.auth-card form{margin-top:30px}.auth-card .primary{justify-content:space-between;padding:12px 18px}.auth-card .error{margin:12px 0}.auth-links{display:flex;justify-content:space-between;gap:10px;font-size:12px;border-top:1px solid var(--line);padding-top:22px;margin-top:28px}.auth-links a{color:#9ba3bf}.auth-card.install{width:700px;border-radius:24px;box-shadow:var(--shadow)}
/* Workspace shell: one navigation and one content container for admin and agents. */
.portal-shell{display:flex;height:100dvh;overflow:hidden}.sidebar{width:225px;background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:28px 20px 0;flex-shrink:0}.sidebar .brand{padding:0 4px}.sidebar-label{font-size:12px;letter-spacing:1px;color:#bac0cf;margin:35px 15px 11px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav button{justify-content:flex-start;border:0;padding:11px 15px;font-size:12px;border-radius:11px;color:#8e96aa;font-weight:500;gap:13px}.sidebar nav button .icon{width:18px;height:18px}.sidebar nav button.selected{color:var(--primary);background:#eff2ff}.sidebar-bottom{margin-top:auto;padding:25px 0 15px}.sidebar-bottom>a{display:flex;align-items:center;font-size:12px;color:#a0a8bd;gap:10px;padding:8px 13px}.sidebar-bottom>a>.icon:last-child:not(:first-child){width:14px;margin-left:auto}.account{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.account .avatar{width:34px;height:34px;font-size:13px;border-radius:11px}.account strong{font-size:12px;display:block}.account small{display:block;color:#adb3c3;font-size:12px}.account button{margin-left:auto}.portal-main{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:75px;background:#ffffffad;border-bottom:1px solid var(--line);padding:0 30px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;font-size:13px;}.topbar>div{display:flex;align-items:center;gap:18px}.topbar #breadcrumb{font-size:12px;color:#8c94a8}.online-pill{font-size:12px;border:1px solid #e8edfb;border-radius:20px;padding:5px 12px;color:#95a2c4;background:#f9faff}.today{color:#aeb3c2;font-size:12px}#mobile-menu{display:none}#workspace{flex:1;min-height:0}.chat-workspace{display:flex;background:#fff}.admin-workspace{overflow:auto}.admin-page{max-width:1440px;margin:auto;padding:30px 35px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.page-heading .eyebrow{margin-bottom:5px}.page-heading h1{font-size:24px;font-weight:600}.page-heading p{font-size:12px;color:#a4a9b9;margin-top:7px}.heading-actions{display:flex;gap:9px}.heading-actions button{font-size:12px;padding:9px 14px}.surface{background:white;border-radius:var(--radius);border:1px solid #edf0f7;box-shadow:var(--shadow);overflow:visible}.surface-header{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.surface-header h2{font-size:14px}.welcome-banner{border:1px solid #e6eafa;background:linear-gradient(110deg,#edf1ff,#f3f3fe 65%,#f5f0fc);padding:28px 32px;border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;overflow:hidden}.welcome-banner h2{font-size:22px;color:#7e8bbf;margin:8px 0}.welcome-banner p{font-size:12px;color:#a0a9c8}.banner-icon{color:#bac5f1;transform:rotate(-12deg);padding:14px 35px}.banner-icon .icon{width:72px;height:72px;stroke-width:1.3}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:25px}.stat-card{border:1px solid #edf0f7;border-radius:var(--radius);padding:20px;display:grid;grid-template-columns:1fr auto;background:white;gap:6px}.stat-icon{grid-row:span 2;grid-column:2;width:37px;height:37px;border-radius:12px;background:#f1f3fc;color:#95a4df;display:flex;align-items:center;justify-content:center}.stat-icon.waiting{background:#fdf1e9;color:#ddb296}.stat-icon.ratings{background:#f8f1e9;color:#d5b47d}.stat-icon.total{background:#f2eefb;color:#b39bda}.stat-card>small{color:#a2a9bd}.stat-card>strong{font-size:28px;font-weight:500;line-height:1.4;color:#67779c}.stat-caption{grid-column:span 2;color:#c0c5d2;font-size:12px}.feedback-cards{padding:6px 23px 15px;display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.feedback-card{width:100%;padding:17px 0;gap:12px;justify-content:flex-start;background:none;border:0;border-radius:0;border-bottom:1px solid var(--line);text-align:left}.feedback-card>div{flex:1;min-width:0}.feedback-card strong{font-size:12px;font-weight:500}.feedback-card p{font-size:12px;color:#acb2c3;margin-top:4px}.table-scroll{overflow:auto;border-radius:18px 18px 0 0}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th{background:#fbfcff;color:#a2a9bd;font-weight:500;text-align:left;padding:17px 22px;font-size:12px}td{padding:18px 22px;border-top:1px solid #f1f3f8;color:#7b859f}tbody tr:hover{background:#fdfdff}.row-actions{display:flex;gap:7px}.row-actions button{padding:5px;border:0;background:transparent;color:#a8b1cc}.row-actions .icon{width:16px;height:16px}.ellipsis{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.settings-form{padding:26px;max-width:850px}.settings-form h2{font-size:14px;margin:0 0 22px}.settings-form h2:not(:first-child){border-top:1px solid var(--line);padding-top:25px;margin-top:27px}.settings-form>.muted{margin:15px 0}.settings-form>.primary{margin-top:15px}.form-field-row{padding:15px;border:1px solid #e9ecf7;background:#fcfcff;border-radius:12px;margin-bottom:12px}.form-field-row label{margin-bottom:10px;font-size:12px;}.field-row-foot{display:flex;align-items:center;justify-content:space-between}.field-row-foot .toggle-label{margin:0}.form-field-row textarea{min-height:75px}
/* Shared conversation list, timeline and composer. */
.conversation-list{width:292px;flex-shrink:0;border-right:1px solid var(--line);display:flex;flex-direction:column;padding-top:23px;background:#fff}.list-title{padding:0 21px;display:flex;align-items:center;justify-content:space-between}.list-title h2{font-size:18px;font-weight:600;margin-top:3px}.list-title h2 span{font-size:12px;color:#9ca8cd;background:#f1f3fc;border-radius:5px;padding:2px 5px;margin-left:4px}.list-title>button{font-size:0;background:none;border:0;padding:3px;color:#acb5d0}.list-title>button .icon{width:17px;height:17px}.search-box{margin:20px 19px 15px;background:#f8f9fd;display:flex;align-items:center;padding:0 10px;border-radius:9px;color:#b4bdd5}.search-box .icon{width:16px;height:16px}.search-box input{background:none!important;border:0!important;font-size:12px;padding:10px!important;box-shadow:none!important}.segmented{margin:0 19px 12px;display:flex;gap:4px;background:#f7f8fd;border-radius:8px;padding:4px}.segmented button{flex:1;border:0;padding:6px 0;border-radius:6px;font-size:12px;background:none;color:#a7afc2}.segmented button.selected{background:white;box-shadow:0 2px 7px #61709f08;color:#7c8bc0}#conversation-items{overflow:auto;flex:1}.conversation-item{display:flex;align-items:flex-start;gap:10px;padding:18px 19px;border:0;border-radius:0;width:100%;background:white;text-align:left;position:relative;border-left:3px solid transparent}.conversation-item.selected{background:linear-gradient(90deg,#eff2ff,#f8f9ff);border-left-color:#a4b2f1}.conversation-item:hover{background:#f8f9fd}.conversation-info{flex:1;min-width:0}.conversation-info>div{display:flex;justify-content:space-between;align-items:center;gap:5px}.conversation-info strong{font-size:14px;font-weight:550;color:#687390}.conversation-info small{font-size:12px;color:#b7bfd1}.conversation-info p{font-size:12px;color:#aab2c7;margin:4px 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-info .badge{font-size:11px;padding:2px 5px}.unread{position:absolute;right:17px;bottom:18px;min-width:15px;height:15px;border-radius:10px;padding:0 4px;line-height:15px;background:#a6b2ed;color:white;font-size:11px}.list-pages{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:10px 15px;font-size:12px;color:#b2bacd}.list-pages button{font-size:12px;padding:3px 8px;border:0;background:none;color:#a3adca}.staff-chat{flex:1;display:flex;flex-direction:column;min-width:280px;min-height:0;background:#fcfcff}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:20px 26px;background:#fff;border-bottom:1px solid var(--line);gap:10px;flex-shrink:0}.chat-identity{display:flex;align-items:center;gap:12px;min-width:0}.chat-identity h2{font-size:16px;font-weight:550;color:#6c7895;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-identity p{font-size:12px;color:#a9b1c5;margin-top:4px}.header-actions{display:flex;gap:5px;white-space:nowrap}.header-actions button{font-size:12px;padding:6px 9px}.header-actions .icon{width:14px;height:14px}.context-strip{padding:9px 25px;display:flex;align-items:center;gap:8px;background:#f6f7ff;color:#a2adce;font-size:12px}.context-strip>.icon{width:15px;height:15px}.context-strip>span:first-of-type{flex:1}.connection-state{font-size:12px;color:#b0bad5;white-space:nowrap}.connection-state.offline{color:#d6a591}.connection-state.offline:before{content:'连接中 · '}.timeline{padding:15px 27px 25px;overflow-y:auto;flex:1;min-height:0;scroll-behavior:smooth}.timeline-top{display:flex;align-items:center;justify-content:center;gap:12px;font-size:12px;color:#c0c6d8;margin:5px 0 25px}.timeline-top button{font-size:12px}.system-message{text-align:center;margin:16px auto;color:#b4bdd1;font-size:12px;max-width:90%;white-space:pre-wrap}.system-message small{display:block;color:#cbd0dc;font-size:12px;margin-top:4px}.message{display:flex;align-items:flex-start;gap:9px;margin:22px 0}.message-avatar{width:32px;height:32px;border:1px solid #edf0fb;background:#f4f5fc;color:#acb8dd;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:10px}.message-avatar .icon{width:16px;height:16px}.message-avatar.robot{color:#b5a5d7;background:#f4f0fc;border-color:#f1edfa}.message-content{min-width:0;max-width:80%}.message-meta{display:flex;align-items:center;gap:8px;color:#9aa6c0;font-size:12px;margin-bottom:6px}.message-meta time{font-size:12px;color:#c0c7d8}.bubble{border:1px solid #edf0f8;background:#fff;padding:10px 13px;border-radius:0 13px 13px 13px;box-shadow:0 3px 8px #929ac504;font-size:14px;color:#7f8aa4;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.message.mine{flex-direction:row-reverse}.mine .message-meta{justify-content:flex-end}.mine .bubble{background:#edf0ff;border-color:#e8ecff;border-radius:13px 0 13px 13px;color:#7c8ac0}.read-label{display:block;text-align:right;font-size:12px;color:#bdc5dc;margin-top:3px}.media-bubble{padding:4px;overflow:hidden}.bubble img{max-width:250px;width:auto;max-height:240px;display:block;border-radius:9px;object-fit:contain}.bubble video{max-width:270px;max-height:240px;width:100%;display:block;border-radius:9px}.bubble audio{width:240px;max-width:100%;height:36px;display:block}.file-bubble{display:flex;align-items:center;gap:12px;white-space:normal;color:#8b99c4;min-width:160px}.file-bubble>span{flex:1}.file-bubble small{display:block;color:#b0bad5;font-size:12px;margin-top:4px}.composer{padding:10px 24px 18px;border-top:1px solid var(--line);background:#fff;flex-shrink:0}.composer-tools{display:flex;align-items:center;gap:2px}.composer-tools .icon-btn{padding:6px}.composer-tools .icon{width:17px;height:17px}.tool-text{font-size:12px;border:0;background:none;color:#9da9c5;padding:5px 9px;margin-left:5px}.tool-text .icon{width:14px;height:14px}.composer textarea{border:0!important;box-shadow:none!important;background:none;border-radius:0;min-height:65px;height:65px;padding:8px 2px;resize:none;font-size:12px;color:#8390ae}.composer textarea::placeholder{color:#c0c6d6}.composer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.composer-foot small{font-size:12px;color:#c1c7d7}.send{font-size:12px;padding:8px 16px!important;gap:14px}.send .icon{width:13px;height:13px}.record-status{font-size:12px;color:#cc9aab;margin-left:auto}.closed-strip{display:flex;justify-content:center;align-items:center;gap:12px;background:#fff;padding:20px;border-top:1px solid var(--line);font-size:12px;color:#a6b0c9}.closed-strip button{font-size:12px;padding:8px 16px}.invitation-tray{flex-shrink:0;max-height:150px;overflow:auto;padding:0 24px;background:#fbfcff}.invitation-card{display:flex;width:100%;text-align:left;justify-content:flex-start;padding:12px;gap:10px;margin:8px 0;border-color:#e9edfa;box-shadow:0 3px 15px #8393d005;background:#fff}.invitation-card>span:nth-child(2){flex:1}.invitation-card strong{display:block;font-size:12px;color:#8593b8;font-weight:500}.invitation-card small{display:block;font-size:12px;color:#b2bcd4;margin-top:3px}.invitation-card>.icon{width:13px;height:13px;color:#adb9db}.customer-panel{width:254px;border-left:1px solid var(--line);padding:24px 22px;background:white;overflow:auto;flex-shrink:0}.customer-title{font-size:12px;color:#8794b1;display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.customer-title .icon{color:#c0c8dc;width:15px;height:15px}.customer-avatar{margin:0 auto 12px;width:65px;height:65px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#edf0ff,#f3effb);color:#b0bbdf;border-radius:22px}.customer-avatar .icon{width:28px;height:28px;stroke-width:1.2}.customer-panel h3{text-align:center;font-size:14px;color:#8190b0;font-weight:500}.customer-panel>.muted{font-size:12px;margin:4px 0 24px}.detail-pair{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin:14px 0;color:#aeb7ce;gap:5px}.detail-pair strong{font-weight:400;color:#95a2c2}.detail-pair .badge{font-size:11px}.bot-switch{display:flex;align-items:center;gap:9px;width:100%;padding:10px;background:#fafbff;border:1px solid #edf0fa;text-align:left}.bot-switch>span:nth-child(2){flex:1}.bot-switch strong{font-size:12px;color:#98a5c6;font-weight:500;display:block}.bot-switch small{font-size:12px;color:#bbc3d8;display:block;margin-top:3px}.bot-switch .mini-icon{width:28px;height:28px}.bot-switch .mini-icon .icon{width:16px;height:16px}.switch-dot{width:23px;height:13px;border-radius:10px;background:#e2e7f3;position:relative;flex-shrink:0}.switch-dot:after{content:'';position:absolute;left:2px;top:2px;width:9px;height:9px;border-radius:50%;background:white}.on .switch-dot{background:#a7b4ee}.on .switch-dot:after{left:12px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.action-grid button{font-size:12px;gap:5px;padding:9px 3px;color:#a5b0cb;border-color:#eef1fa}.action-grid .icon{width:13px;height:13px}.note-preview{font-size:12px;color:#aeb8ce;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:#fafbfe;border-radius:10px}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.feedback-list>button{display:flex;gap:9px;align-items:center;justify-content:flex-start;border:0;width:100%;padding:8px 0;text-align:left;background:none;color:#a2b0ce}.feedback-list>button>span{flex:1;font-size:12px}.feedback-list small{display:block;font-size:12px;color:#c1cadc;margin-top:3px}.feedback-list .icon{width:13px;height:13px}.panel-placeholder{min-height:60%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;color:#c5cce0;font-size:12px}.panel-placeholder .icon{width:45px;height:45px;stroke-width:1}.quick-grid{display:grid;gap:9px}.quick-grid button{display:block;text-align:left;width:100%;padding:13px 15px;background:#fafbff}.quick-grid strong{font-size:12px;font-weight:500}.quick-grid p{color:#a1abc4;font-size:12px;margin-top:8px;white-space:pre-wrap}.quick-grid .badge{margin-left:5px;font-size:11px}.personal-list>div{display:flex;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.personal-list strong{flex:1;font-size:12px;font-weight:500}.personal-list button{border:0;padding:5px;color:#a8b3cf}.personal-list+.primary{margin-top:18px}.history-row{display:flex;width:100%;justify-content:flex-start;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 0;gap:14px;font-size:12px}.history-row strong{font-size:12px;flex:1}.history-row small{color:#aeb9d2}.history-row .icon{width:14px}
/* Visitor portal uses the exact same message and form components. */
.visitor-shell{max-width:1320px;height:100dvh;margin:auto;display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);padding:28px;gap:28px;align-items:stretch}.visitor-story{padding:14px 20px;display:flex;flex-direction:column}.visitor-story>.eyebrow{margin-top:65px}.visitor-story h1{font-size:27px;line-height:1.65;color:#8591ba;font-weight:500;margin:16px 0}.visitor-story>p{color:#7e89a2;font-size:13px;line-height:2}.visitor-chat{background:white;border-radius:23px;border:1px solid #e9edf8;overflow:hidden;box-shadow:0 15px 70px #7586bd0d;min-height:0}.visitor-chat>#chat-pane{display:flex;flex-direction:column;height:100%;background:#fcfcff;min-height:0}.care-art{height:180px;display:flex;align-items:center;justify-content:center;position:relative;margin-top:20px}.care-card{width:230px;padding:23px;background:linear-gradient(135deg,#edf0ffbf,#f1edfc9c);border:1px solid white;border-radius:21px;transform:rotate(-7deg);box-shadow:13px 19px 0 #e9edfa50;position:relative;z-index:1}.care-card>.icon{width:33px;height:33px;color:#b4c0ed;stroke-width:1.2}.care-card>span{font-size:12px;display:block;color:#b0bad7;margin-top:7px}.art-lines{margin-top:15px}.art-lines i{display:block;height:5px;border-radius:5px;background:#dee4fa;margin-top:7px;width:90%}.art-lines i:nth-child(2){width:65%}.art-lines i:nth-child(3){width:40%}.floating-dot{width:55px;height:55px;border-radius:18px;background:linear-gradient(140deg,#eee6fa,#f7f2fd);position:absolute;right:12px;top:0;transform:rotate(18deg)}.visitor-hours{display:flex;align-items:center;gap:12px;color:#a4afcc;margin-top:auto;font-size:12px;padding-top:30px}.visitor-hours>.icon{width:18px;height:18px}.visitor-hours small{display:block;font-size:12px;color:#bcc4d9;margin-top:4px}.mobile-back{display:none!important}
@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
/* Responsive layouts reuse controls; only container layout changes by breakpoint. */
@media(min-width:1600px){.conversation-list{width:330px}.customer-panel{width:290px}.chat-header{padding:24px 30px}.timeline{padding:18px 35px}}
@media(max-width:1250px){.sidebar{width:190px;padding-left:14px;padding-right:14px}.sidebar .brand{font-size:15px}.brand-mark{width:37px;height:37px;border-radius:12px;font-size:18px}.customer-panel{width:235px;padding:20px 16px}.conversation-list{width:260px}.chat-header{padding:18px}.timeline{padding:15px 18px}.topbar{padding:0 22px;font-size:13px;}.admin-page{padding:25px}.stats-grid{gap:12px}.stat-card{padding:16px}}
@media(max-width:1100px){.sidebar{width:78px;padding:24px 14px 12px}.sidebar .brand{padding:0;justify-content:center}.sidebar .brand>span:not(.brand-mark){display:none}.sidebar-label{font-size:0;margin:28px 0 0}.sidebar nav button{padding:12px;justify-content:center}.sidebar nav button>span{display:none}.sidebar-bottom>a{justify-content:center;padding:11px}.sidebar-bottom>a>span,.sidebar-bottom>a>.icon:last-child:not(:first-child){display:none}.account{justify-content:center;flex-wrap:wrap;padding-top:13px}.account>div{display:none}.account button{margin:auto}.customer-panel{width:220px}.conversation-list{width:250px}.context-strip{padding:8px 16px;font-size:12px;}.visitor-shell{grid-template-columns:330px 1fr;gap:25px;padding:30px}.visitor-story h1{font-size:27px}.visitor-story>.eyebrow{margin-top:50px}}
@media(max-width:900px){.chat-workspace{flex-wrap:wrap;position:relative}.customer-panel{display:none}.staff-chat{flex:1}.conversation-list{width:260px}.stats-grid{grid-template-columns:1fr 1fr}.feedback-cards{grid-template-columns:1fr}.visitor-shell{max-width:700px;grid-template-columns:1fr;padding:25px}.visitor-story{display:none}.auth-shell{grid-template-columns:1fr 1fr}.auth-story{padding:40px 28px}.auth-story h1{font-size:27px}.auth-card{padding:40px 30px}.story-orb{width:150px;height:140px}}
@media(max-width:650px){:root{font-size:14px}.portal-shell{display:block}.sidebar{position:fixed;inset:60px auto 0 0;width:220px;z-index:50;box-shadow:10px 10px 50px #6574a123;transform:translateX(-110%);transition:transform .2s;padding:25px 18px}.sidebar-open .sidebar{transform:translateX(0)}.sidebar .brand>span:not(.brand-mark){display:block}.sidebar .brand{justify-content:flex-start}.sidebar nav button{justify-content:flex-start}.sidebar nav button>span{display:block}.sidebar-bottom>a>span,.account>div{display:block}.sidebar-bottom>a{justify-content:flex-start}.account{flex-wrap:nowrap;justify-content:flex-start}.account button{margin-left:auto}.portal-main{height:100dvh}.topbar{height:60px;padding:0 13px;font-size:13px;}.topbar>div{gap:7px}.topbar #breadcrumb{font-size:12px}.topbar .today{display:none}#mobile-menu{display:flex}.conversation-list{width:100%;border:0;min-height:0;height:100%}.chat-workspace{display:flex;flex-wrap:nowrap;min-height:0}.staff-chat{display:none}.show-conversation .conversation-list{display:none}.show-conversation .staff-chat{display:flex;min-width:0;width:100%}.mobile-back{display:flex!important}.chat-header{padding:14px 12px;gap:5px}.chat-identity{gap:8px}.chat-identity .avatar{width:33px;height:33px;border-radius:11px}.chat-identity h2{font-size:16px}.chat-identity p{font-size:12px}.header-actions button{font-size:12px;padding:5px 7px}.context-strip{padding:8px 14px;font-size:12px}.connection-state{display:none}.timeline{padding:12px 14px 20px}.message-content{max-width:82%}.message{gap:7px}.message-avatar{width:29px;height:29px;border-radius:9px}.bubble{font-size:14px;padding:9px 11px;line-height:1.8;}.bubble img{max-width:200px;max-height:220px}.bubble video{max-width:230px}.bubble audio{width:220px}.composer{padding:8px 13px calc(12px + env(safe-area-inset-bottom))}.composer textarea{height:60px;min-height:60px;font-size:14px}.composer-foot small{font-size:12px}.composer-tools .icon-btn{min-width:30px;padding:5px}.invitation-tray{padding:0 13px;max-height:130px}.visitor-shell{padding:0;gap:0;height:100dvh}.visitor-chat{border:0;border-radius:0;box-shadow:none}.visitor-chat .chat-header{padding:17px 16px}.visitor-chat .chat-header h2{font-size:14px}.visitor-chat .chat-header p{font-size:12px}.auth{padding:20px}.auth-shell{grid-template-columns:1fr;min-height:0;background:none;box-shadow:none}.auth-story{display:none}.auth-card{padding:32px 27px;border-radius:24px;box-shadow:var(--shadow)}.auth-card h2{font-size:24px}.auth-card.install{padding:30px 23px}.auth-card.install h1{font-size:24px}.form-grid{grid-template-columns:1fr;gap:0}.admin-page{padding:24px 17px}.page-heading{gap:12px;align-items:flex-start}.page-heading h1{font-size:21px}.page-heading p{font-size:12px;max-width:240px;line-height:1.8}.heading-actions{gap:6px;flex-direction:column}.heading-actions button{font-size:12px;padding:6px 9px}.heading-actions .icon{width:14px;height:14px}.welcome-banner{padding:22px}.welcome-banner .eyebrow{font-size:11px;letter-spacing:1px}.welcome-banner h2{font-size:19px}.welcome-banner p{font-size:12px}.banner-icon{display:none}.stats-grid{gap:11px}.stat-card{padding:16px}.stat-card>strong{font-size:26px}.stat-icon{width:31px;height:31px;border-radius:10px}.stat-icon .icon{width:16px;height:16px}.surface-header{padding:17px 19px}.feedback-cards{padding:0 19px 10px}.settings-form{padding:20px}.modal-backdrop{padding:15px}.modal{border-radius:19px}.modal>header{padding:16px 20px}.modal-body{padding:20px;max-height:66dvh}.modal footer{padding:14px 20px}.modal .form-grid{grid-template-columns:1fr 1fr;gap:12px}input:not([type=checkbox]):not([type=hidden]),textarea{font-size:16px}.choice-trigger{font-size:14px}.modal footer button{font-size:12px}.record-status{font-size:12px;max-width:100px}.care-art{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Service drawer on mobile reuses the desktop customer-panel content. */
.mobile-services{display:none}
@media(max-width:900px){button.mobile-services{display:inline-flex}.modal-body .customer-title{margin-bottom:15px}.modal-body .customer-avatar{margin-top:10px}.modal-body>h3{text-align:center}.modal-body .action-grid button{font-size:12px;padding:10px}.modal-body .bot-switch strong{font-size:12px}.modal-body .bot-switch small{font-size:12px}.modal-body .note-preview{font-size:12px}.modal-body .detail-pair{font-size:12px}.modal-body .feedback-list>button>span{font-size:12px}.modal-body .section-label{font-size:12px}}
/* Content contrast: surfaces remain light; actual conversation text stays readable. */
.bubble{color:#65728d;font-size:14px;line-height:1.8;}.mine .bubble{color:#6678ac}.message-meta{color:#8c9ab7;font-size:12px;}.chat-identity h2{color:#63718f;font-size:16px;}.conversation-info strong{color:#606e8a;font-size:14px;}.conversation-info p{color:#8e9ab6;font-size:12px;}.note-preview{color:#8897b5}.customer-panel h3{color:#7484a5}.detail-pair{color:#95a2be;font-size:12px;}.feedback-list>button>span{color:#8798ba}.page-heading p{color:#8994ad}.auth-card>p{color:#919bb2}.visitor-story>p{color:#7e89a2;font-size:13px;}.composer textarea{color:#687995}.composer textarea::placeholder{color:#a7b2ca}.badge.waiting{color:#b98a64}.badge.active{color:#788ac3}.badge.purple,.badge.bot{color:#9580bd}.settings-form .muted{color:#8995b1}
/* Preserve native hidden semantics when shared input styles define display:block. */
[hidden]{display:none!important}
/* Chat content is slightly larger than metadata for comfortable desktop reading. */
.bubble{font-size:14px;line-height:1.8;}.conversation-info strong{font-size:14px}.conversation-info p{font-size:12px}.composer textarea{font-size:13px}.customer-panel .detail-pair{font-size:12px}.note-preview{font-size:12px}
@media(max-width:650px){.composer textarea{font-size:16px}.bubble{font-size:14px;line-height:1.8;}}
/* v2 shared search, navigation and rich text primitives. No portal-local replacements. */
.choice-options .choice-search{font-size:12px!important;padding:8px 10px!important;margin:3px 0 6px;border-radius:8px!important;background:#f7f9ff!important}.choice-no-results{font-size:12px;color:#9aa6c1;text-align:center;padding:12px}.choice-options{z-index:90}.account-tools{gap:9px!important}.site-choice{width:160px}.presence-choice{width:90px}.account-tools .choice-trigger{padding:6px 10px;font-size:12px;background:#f7f9ff;border-color:#edf0fb}.top-logout{font-size:12px;color:#8593b2;padding:6px 9px;border-color:#edf0fa}.top-logout .icon{width:15px}.logout-wide{width:100%;padding:8px;margin-top:15px;color:#8c99b6;border:0;background:#f6f8fd;font-size:12px}.module-tabs{display:flex;gap:7px;padding:10px 27px;background:#fff;border-bottom:1px solid var(--line);flex-shrink:0;overflow-x:auto;min-height:48px}.module-tabs button{padding:5px 13px;border:0;font-size:12px;color:#9ba6c0;white-space:nowrap}.module-tabs button.selected{background:var(--primary-soft);color:var(--primary)}.page-enter{animation:appear .22s ease}.resource-search{margin:0 0 19px;max-width:460px}.resource-search input{font-size:13px}.markdown-editor{margin-top:8px;border:1px solid #e7ebf6;border-radius:12px;overflow:hidden;background:#fafbff}.markdown-toolbar{display:flex;gap:3px;flex-wrap:wrap;border-bottom:1px solid #e8edf8;padding:6px;background:#f5f7ff}.markdown-toolbar button{border:0;padding:5px 8px;font-size:12px;color:#8394bc;background:transparent}.markdown-editor textarea{border:0!important;margin:0;box-shadow:none!important;min-height:160px;border-radius:0!important}.markdown-editor>small{display:block;padding:8px 12px;color:#a1abc3;font-size:12px}.markdown-preview{padding:15px;background:white;border-top:1px solid #e8edf8;font-size:13px;line-height:1.9;overflow-wrap:anywhere}.bubble h4,.markdown-preview h4{margin:5px 0;font-size:15px}.bubble pre,.markdown-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f5fb;padding:12px;border-radius:9px;max-width:100%}.bubble code,.markdown-preview code{background:#eff2fa;border-radius:4px;padding:1px 4px;font-size:12px}.bubble blockquote,.markdown-preview blockquote{border-left:3px solid #c5cff5;margin:8px 0;padding-left:12px;color:#919ec0}.bubble.markdown{white-space:normal}.markdown-image{max-width:100%;border-radius:9px}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}.permission-grid .toggle-label{font-size:12px}.settings-form label textarea[readonly]{font-family:ui-monospace,monospace;font-size:12px;min-height:110px}
/* Shared live indicators, animated invitation removal and the compact voice message control. */
.offline-avatar{filter:grayscale(1);opacity:.55}.offline-dot{background:#b8becb!important;box-shadow:none}.typing-dots{display:inline-flex;gap:3px;align-items:center;height:12px;margin-right:4px}.typing-dots i{width:3px;height:3px;border-radius:50%;background:#91a0df;animation:typing .9s infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes typing{50%{transform:translateY(-3px);opacity:.4}}.invitation-card.leaving{animation:invite-out .25s forwards;pointer-events:none}@keyframes invite-out{to{opacity:0;transform:translateY(12px) scale(.97);max-height:0;padding-top:0;padding-bottom:0;margin:0;border-width:0}}.voice-bubble{border:0;background:transparent!important;color:#8293c1;display:flex;gap:12px;padding:3px;min-width:145px;box-shadow:none}.voice-bubble small{font-size:12px}.voice-wave{display:flex;align-items:center;gap:3px;height:24px}.voice-wave i{width:3px;height:9px;background:#b3bfe9;border-radius:5px}.voice-wave i:nth-child(2n){height:18px}.voice-wave i:nth-child(3n){height:13px}.voice-bubble.playing .voice-wave i{animation:wave .65s infinite alternate}.voice-bubble.playing .voice-wave i:nth-child(2n){animation-delay:.2s}@keyframes wave{to{transform:scaleY(.35);opacity:.5}}.suggestions{background:#fff;border-top:1px solid #edf0fa;max-height:180px;overflow:auto;padding:10px 22px}.suggestions>small{display:block;font-size:12px;color:#a8b4cd;padding:2px 0 6px}.suggestions>button{display:flex;justify-content:flex-start;width:100%;border:0;padding:7px 0;font-size:12px;color:#8b9abd}.suggestions>button span{flex:1;text-align:left}.suggestions .icon{width:14px;height:14px}.profile-lines{font-size:13px;color:#adb8ce;overflow-wrap:anywhere}.profile-lines p{margin:7px 0}.profile-lines strong{font-weight:400;color:#889aba;margin-left:7px}.trail-list{max-height:180px;overflow:auto}.trail-list p{border-left:2px solid #e6ebfc;margin:0 0 14px;padding-left:10px}.trail-list strong{font-size:12px;font-weight:400;display:block;color:#8f9fbd;overflow-wrap:anywhere}.trail-list span{display:block;color:#b0bbd0;font-size:12px;overflow-wrap:anywhere}.trail-list small{font-size:12px;color:#bcc5d7}.history-hit{padding:15px 0;border-bottom:1px solid var(--line)}.history-hit small{font-size:12px;color:#a3afc7}.history-hit>div{font-size:13px;color:#7889ac;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}.embedded .visitor-shell{display:block;padding:0;height:100dvh;max-width:none}.embedded .visitor-story{display:none}.embedded .visitor-chat{height:100%;border:0;border-radius:0}.embedded .visitor-chat .chat-header{padding:13px}.embedded .header-actions button{font-size:12px;padding:5px 7px}.embedded .header-actions .icon{width:12px;height:12px}.header-actions{flex-wrap:wrap;justify-content:flex-end}.chat-header .chat-identity{flex-shrink:1}.chat-header .chat-identity>div{min-width:0}
@media(max-width:1100px){.sidebar .logout-wide{font-size:0;padding:10px}.sidebar .logout-wide .icon{width:18px}.site-choice{width:130px}.topbar{padding:0 15px;font-size:13px;}}
@media(max-width:650px){.module-tabs{padding:7px 12px;min-height:43px}.module-tabs button{font-size:12px;padding:6px 10px}.account-tools{gap:4px!important}.account-tools>.icon-btn{min-width:27px;padding:5px}.account-tools>.icon-btn .icon{width:15px;height:15px}.site-choice{width:85px}.presence-choice{width:64px}.account-tools .choice-trigger{padding:5px 6px;font-size:12px;gap:3px}.account-tools .choice-trigger .icon{width:10px;height:10px}.top-logout{padding:5px}.top-logout span{display:none}.topbar #breadcrumb{font-size:12px}.topbar>div{gap:3px}.sidebar .logout-wide{font-size:12px}.header-actions button{font-size:12px;padding:5px}.chat-identity h2{max-width:110px;font-size:16px;}.suggestions{padding:8px 15px}.permission-grid{gap:4px 9px}.modal-body .profile-lines,.modal-body .trail-list strong{font-size:12px}.resource-search input{font-size:16px}.markdown-editor textarea{font-size:16px}.presence-choice .choice-options{min-width:130px;right:0;left:auto}.site-choice .choice-options{min-width:180px;right:0;left:auto}}
/* Native control chrome is removed; all input visuals come from the shared design system. */
input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=search]{-webkit-appearance:none;appearance:none}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}

/* Independent portal entry, expiry and return links reuse existing surface and button tokens. */
.site-login-link{display:flex;gap:12px;margin-top:7px;flex-wrap:wrap}.site-login-link a,.return-platform{color:var(--primary);text-decoration:none}.return-platform{font-size:13px;font-weight:600;padding:9px 12px;background:var(--primary-soft);border-radius:10px}.portal-summary{padding:22px;background:var(--primary-soft);border-radius:16px;margin-bottom:24px;display:flex;gap:24px;flex-wrap:wrap}.portal-summary p{width:100%;margin:0;color:#64756e}.login-site-name{font-weight:600;color:var(--primary)}.platform-label{font-size:13px;color:#667a72}#form-results-trigger:empty{display:none}@media(max-width:760px){.header-actions{flex-wrap:wrap}#form-results-trigger button{font-size:12px;padding:7px}.account-tools{gap:6px}.return-platform{padding:7px;font-size:12px}}
/* Keep customer identity readable when result actions wrap on a narrow staff workspace. */
@media(max-width:650px){.staff-chat .chat-header{flex-wrap:wrap;gap:8px}.staff-chat .chat-identity{flex-basis:100%;width:100%}.staff-chat .chat-identity h2{max-width:240px}.staff-chat .header-actions{width:100%;justify-content:flex-end}.staff-chat .header-actions button{font-size:12px;padding:7px}.staff-chat #form-results-trigger button{font-size:12px}}
/* Chat composition uses a quiet focus surface; buttons retain keyboard focus indicators. */
.composer #message-input:focus,.composer #message-input:focus-visible{outline:none!important;box-shadow:none!important;border-color:transparent!important}
.visitor-menus{display:flex;gap:8px;overflow-x:auto;padding:10px 0 8px;scrollbar-width:thin;border-bottom:1px solid var(--line)}.visitor-menus button{white-space:nowrap;border:0;background:var(--primary-soft);color:var(--primary);padding:8px 12px;font-size:12px;flex-shrink:0}.visitor-menus .icon{width:15px;height:15px}
.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;margin-top:16px}.emoji-grid button{font-size:25px;padding:7px;border:0;background:transparent}.emoji-grid button:hover{background:var(--primary-soft)}
.message-meta-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:5px}.message-meta-actions .read-label{margin:0}.recall-button{border:0;background:transparent;padding:0;font-size:12px;color:#7b87aa;display:flex;gap:3px}.recall-button .icon{width:12px;height:12px}.recalled-message{font-size:12px!important}.navigation-card{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;min-width:180px;max-width:100%;padding:5px}.navigation-card>span:nth-child(2){min-width:0;flex:1}.navigation-card strong{display:block;font-size:13px;overflow-wrap:anywhere}.navigation-card small{display:block;font-size:12px;margin-top:7px;overflow-wrap:anywhere;color:#7b87aa}.safe-open-link{display:flex;gap:8px;align-items:center;color:var(--primary)}
.hold-record{width:100%;min-height:67px;margin-top:9px;border:1px solid var(--line);background:#f5f6fc;color:#66779b;font-size:14px;font-weight:600;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.hold-record.recording{background:var(--primary-soft);color:var(--primary)}.hold-record.canceling{background:#fff0ed;color:#b66b60}.record-status{font-size:12px;overflow-wrap:anywhere}.composer-tools{flex-wrap:wrap}.transfer-modes{display:flex;gap:8px;margin-bottom:20px}.transfer-modes button{flex:1}.transfer-modes .selected{background:var(--primary-soft);color:var(--primary);border-color:transparent}.geo-source{display:block;font-size:12px;line-height:1.8;color:#8390aa}.geo-source .text-button{font-size:12px}
.brand-image{width:100%;height:100%;object-fit:contain;border-radius:inherit}.brand-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.brand-image:not(.failed)+.brand-fallback{display:none}.brand-image.failed{display:none}.brand-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.brand-setting{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:14px}.brand-setting label{min-width:0;margin:0}.brand-setting input{font-size:12px}.brand-setting>button{grid-column:2}.brand-preview{width:48px;height:48px}.header-actions .enabled{color:var(--primary);background:var(--primary-soft)}
@media(max-width:650px){.emoji-grid{grid-template-columns:repeat(6,1fr)}.brand-settings-grid{grid-template-columns:1fr}.visitor-menus{margin:0 -4px}.visitor-menus button{font-size:12px;padding:7px 10px}.transfer-modes button{font-size:12px}.visitor-chat .chat-header{flex-wrap:wrap;gap:8px}.visitor-chat .chat-identity{flex-basis:100%}.visitor-chat .header-actions{width:100%;justify-content:flex-end}.visitor-chat .chat-identity h2{max-width:250px}.visitor-chat .header-actions button{font-size:12px;padding:6px}}
/* Stable flex viewport: footer changes and keyboard resize leave a real scrollable message region. */
.visitor-shell{height:var(--chat-viewport-height,100dvh)}.embedded .visitor-shell{height:var(--chat-viewport-height,100dvh)}.timeline{scroll-behavior:auto;overflow-anchor:none;overscroll-behavior:contain}.timeline-content{display:flow-root}.context-strip,.suggestions,.typing-preview{flex-shrink:0}.composer{position:relative}.draft-disclosure{font-size:12px;line-height:1.6;color:#8794b3;margin:7px 0 2px}.typing-preview{display:flex;align-items:flex-start;gap:8px;padding:10px 24px;background:#f2f5ff;border-bottom:1px solid var(--line);max-height:110px;overflow:auto}.typing-preview small{font-size:12px;color:#8b98ba}.typing-preview p{font-size:12px;color:#617598;white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 0}.typing-preview>div{min-width:0}
/* A press surface with CSS captions avoids selectable DOM text in embedded mobile browsers. */
.hold-record{height:56px;min-height:56px;border-radius:18px;border:1px solid #e4e9fb;background:linear-gradient(105deg,#f5f7ff,#f1f4fe);color:#6e7fb0;display:flex;align-items:center;gap:14px;padding:8px 16px;box-shadow:0 4px 15px #7486b508;transition:background .15s,transform .15s}.hold-record .hold-mic{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#e8edff;color:#7c8fcc;flex-shrink:0}.hold-record .hold-mic .icon{width:19px;height:19px}.hold-caption{flex:1;font-size:14px;font-weight:500;letter-spacing:.5px;text-align:center}.hold-caption:after{content:'按住说话'}.hold-record.recording{background:#e9eeff;transform:scale(.995)}.hold-record.recording .hold-caption:after{content:'松开发送'}.hold-record.canceling{background:#fff0ec;border-color:#f3dcd5;color:#b57c70}.hold-record.canceling .hold-caption:after{content:'松开取消'}.hold-meter{display:flex;align-items:center;gap:3px;height:22px;width:29px}.hold-meter i{display:block;width:3px;height:7px;border-radius:3px;background:#a7b6e6}.hold-meter i:nth-child(2n){height:13px}.hold-meter i:nth-child(3){height:19px}.recording .hold-meter i{animation:wave .65s infinite alternate}.recording .hold-meter i:nth-child(2n){animation-delay:.2s}
.hold-record,.hold-record *,.voice-feedback,.voice-feedback *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}.voice-holding,.voice-holding *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}.voice-feedback{position:absolute;z-index:45;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%);width:210px;max-width:85vw;border:1px solid #e4eafa;border-radius:23px;background:#fffffff5;box-shadow:0 12px 45px #6478a522;display:flex;align-items:center;flex-direction:column;gap:9px;padding:24px 18px 18px;pointer-events:none;backdrop-filter:blur(15px)}.record-orb{position:relative;width:50px;height:50px;border-radius:18px;background:#edf1ff;color:#8799d2;display:flex;align-items:center;justify-content:center;margin:4px 0 8px}.record-orb .icon{width:25px;height:25px}.record-rings{position:absolute;inset:-7px;border:1px solid #d7e1fc;border-radius:23px;animation:record-pulse 1.4s ease-out infinite}.voice-feedback strong{font-size:13px;font-weight:500;color:#6e7fa5}.voice-feedback #voice-clock{font-variant-numeric:tabular-nums;color:#94a5c8;font-size:18px}.voice-feedback small{font-size:12px;color:#a6b1c9}.voice-feedback.canceling{background:#fff8f5;border-color:#f1ded7}.voice-feedback.canceling strong{color:#b27e71}.voice-feedback.canceling .record-orb{background:#f8e8e2;color:#bb9085}@keyframes record-pulse{to{transform:scale(1.22);opacity:0}}
.alert-setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.alert-setting-row:last-child{border:0}.alert-setting-row strong{font-size:13px;font-weight:500}.alert-setting-row small{display:block;font-size:12px;margin-top:5px;color:#909fbd}.alert-setting-row button{font-size:12px;white-space:nowrap}.rating-recipient{font-size:12px;color:#7f8fb5;padding:12px 14px;border-radius:12px;background:var(--primary-soft);line-height:1.7}.menu-icon{width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:4px}.menu-icon .icon{width:16px;height:16px}.menu-icon .brand-image{object-fit:contain}.table-menu-icon{width:27px;height:27px}.table-menu-icon .icon{width:21px;height:21px}.menu-icon-editor{display:flex;gap:16px;align-items:center}.menu-icon-editor label{flex:1;min-width:0}.menu-icon-editor+.field{margin-top:12px}@media(max-width:650px){.typing-preview{padding:9px 14px;max-height:90px}.draft-disclosure{font-size:12px}.alert-setting-row button{padding:9px 10px}.voice-feedback{padding-top:20px}.hold-record{height:54px;min-height:54px}}
/* v2.4: shared external context cards and compact Markdown phrase previews. */
.context-card{min-width:0;max-width:310px;white-space:normal;width:min(340px,100%);}.context-card-heading{display:flex;gap:7px;align-items:center;color:var(--accent);font-size:12px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:10px}.context-card-heading>.icon{width:15px;height:15px}.context-card-heading small{margin-left:auto;font-size:12px;color:#7e8ca5}.context-card>strong{display:block;font-size:15px;font-weight:600}.context-card>p{font-size:13px;margin:6px 0;color:var(--muted)}.context-card>small{font-size:12px;color:var(--muted)}.context-card>img{width:100%;max-height:170px;object-fit:contain;margin:8px 0}.context-card dl{margin:10px 0}.context-card dl>div{display:flex;gap:12px;justify-content:space-between;font-size:13px;margin:7px 0}.context-card dt{color:var(--muted);flex-shrink:0}.context-card dd{text-align:right;margin:0;overflow-wrap:anywhere}.context-card>a{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;font-size:13px}.context-card>a>.icon{width:14px;height:14px}.quick-preview{font-size:12px;max-height:160px;overflow:auto;color:var(--muted);text-align:left}.quick-preview img{max-width:100%;max-height:100px;object-fit:contain}.invitation-tray:empty{padding-block:0}
/* v2.5 bounded scroll roots: long content scrolls inside its pane, never stretches the document. */
body[data-page="admin"],body[data-page="agent"],body[data-page="visitor"]{height:100dvh;overflow:hidden;overscroll-behavior:none}
body[data-page="admin"]>#app,body[data-page="agent"]>#app,body[data-page="visitor"]>#app{height:100%;min-height:0;overflow:hidden}
.portal-main,.portal-shell,.chat-workspace,.visitor-chat{min-height:0;max-height:100%;min-width:0}.portal-main{overflow:hidden}.chat-workspace{overflow:hidden}.admin-workspace{overscroll-behavior:contain;overflow-x:hidden}.timeline{overscroll-behavior:contain;overflow-anchor:none}.timeline-content{min-width:0}.staff-chat,#chat-pane{position:relative;overflow:hidden}.customer-panel,.conversation-list{min-height:0}.conversation-list{overflow:hidden}#conversation-items{min-height:0;overscroll-behavior:contain}
/* Short bubbles size to their text rather than the width of sender/time metadata. */
.message-content{display:flex;flex-direction:column;align-items:flex-start;max-width:80%;min-width:0}.mine .message-content{align-items:flex-end}.bubble{width:fit-content;max-width:100%;font-size:14px;line-height:1.8;}.message-meta{flex-wrap:wrap;font-size:12px;}.media-bubble img,.markdown-image{max-width:100%}.bubble .navigation-card{min-width:0;max-width:100%}.navigation-card.with-image{flex-wrap:wrap}.navigation-card.with-image>img{width:100%;height:130px;object-fit:cover}.navigation-card p{font-size:12px;margin:5px 0}.context-card{max-width:100%;min-width:0;width:min(340px,100%);}
/* Unread, answered and overdue conversation states remain distinct on light surfaces. */
.conversation-item.is-read{background:#fff}.conversation-item.is-read.selected{background:#f6f7fb;border-left-color:#aeb7ce}.conversation-item.has-unread{background:#eef2ff;border-left-color:#a5b2ee}.conversation-item.has-unread strong{color:#596bb7;font-weight:650}.conversation-item.has-unread.selected{background:#e5ebff;border-left-color:#7181e6}.conversation-item.is-overdue{background:#fff5ec;border-left-color:#e5b18c}.conversation-item.is-overdue.selected{background:#ffeddf}.badge.overdue{background:#ffe8d7;color:#a56335}.badge.new-message{background:#dfe7ff;color:#596bb7}.overdue-message .bubble{border-color:#e9c6a9;background:#fff8f0}.overdue-message .message-content:before{content:'超时待回复';font-size:12px;color:#a87142;margin-bottom:5px}
.capacity-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 20px 0;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fafbff;font-size:12px;color:#8a96b4}.capacity-summary>span{display:flex;align-items:center;gap:6px}.capacity-summary .icon{width:14px;height:14px}.capacity-summary strong{color:#6779b2;font-size:12px}.capacity-summary button{font-size:12px}.result-unread{display:inline-flex;border-radius:5px;padding:2px 5px;background:#e6ebff;color:#6275bf;font-size:12px}.header-actions .has-unviewed{border-color:#bcc8f4;background:#f2f5ff}.site-validity{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--line);background:#fff;border-radius:13px;padding:15px 20px;margin-bottom:20px;font-size:12px;color:#7e8cac}.site-validity strong{font-weight:550}.site-validity>span{margin-left:auto}.permission-section{margin:20px 0 0;border:1px solid var(--line);border-radius:12px;padding:17px}.permission-section legend{font-size:13px;color:#7685ae;font-weight:600;padding:0 8px}.permission-section .toggle-label{margin-bottom:10px}.permission-grid>div{min-width:0}.permission-section .toggle-label>span:last-child{font-size:12px}#integration-secret{font-family:ui-monospace,monospace;overflow-wrap:anywhere;min-height:85px;color:#526394;background:#f4f6ff;user-select:text}
/* Invitation buttons disappear on completion; result entry stays in the staff header. */
.form-message.pending{min-width:200px;max-width:300px}.form-message>strong{display:block;color:#6d7dab;font-size:13px}.form-message>small{display:block;font-size:12px;color:#9aa6bd;margin:7px 0}.form-message .invitation-card{width:auto;max-width:100%;font-size:12px;color:var(--primary);margin:10px 0 0;padding:8px 10px}.pending-form-status{font-size:12px;color:#9aa6bd;display:block;margin-top:12px}.form-completion{display:flex;gap:8px;align-items:flex-start;font-size:12px}.form-completion .icon{width:16px;height:16px;color:#8294cf;margin-top:3px}.form-completed .bubble{animation:appear .2s ease;background:#f8faff;border-color:#e7edfa}.handoff-hint p{margin-bottom:10px}.handoff-hint .primary{font-size:12px;padding:7px 10px}.invitation-message .message-content{max-width:85%}
@media(max-width:767px){.capacity-summary{margin:12px 16px 0;font-size:12px;}.permission-section{padding:12px}.permission-grid{grid-template-columns:1fr}.site-validity{padding:12px}.site-validity>span{margin-left:0}.header-actions .result-unread{font-size:11px}.header-actions button{gap:4px}.message-content{max-width:83%}}
@media(max-width:767px){.staff-chat .chat-header{flex-wrap:wrap}.staff-chat .header-actions{width:100%;flex-wrap:wrap;justify-content:flex-end}}
.pending-feedback{display:flex;gap:9px;padding:10px 0;border-bottom:1px solid var(--line);color:#8795b5;font-size:12px}.pending-feedback>.icon{width:15px;height:15px}.pending-feedback small{display:block;margin-top:4px;font-size:12px;color:#a4aec3}.submitted-summary{margin-top:12px;font-size:12px}
/* Dialogs also keep their actions reachable when the viewport becomes short. */
.modal{display:flex;flex-direction:column;min-height:0}.modal>header{flex-shrink:0}.modal>#modal-form{display:flex;flex-direction:column;min-height:0;overflow:hidden}.modal-body{min-height:0;flex:1 1 auto;overscroll-behavior:contain}.modal footer{flex-shrink:0}

/* Reminder bars indicate urgency only; selection uses the existing surface tint. */
.conversation-item.selected,.conversation-item.is-read.selected{border-left-color:transparent}.conversation-item.has-unread,.conversation-item.has-unread.selected{border-left-color:#a5b2ee}.conversation-item.is-overdue,.conversation-item.is-overdue.selected{border-left-color:#e5b18c}
.assist-summary{margin:12px 20px 0;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8faff}.assist-summary>strong{font-size:12px;color:#7586b5}.assist-request{padding:10px 0;border-top:1px solid var(--line);font-size:12px;color:#7e8ba8;margin-top:8px}.assist-request small{display:block;font-size:12px;margin:5px 0;color:#9da8bf}.assist-request>div{display:flex;gap:6px}.assist-request button{padding:5px 9px;font-size:12px}.assist-member{font-size:12px;padding:7px 0;color:#8995b1;display:flex;justify-content:space-between}.assist-readonly{padding:10px 0;color:#9aa7be;font-size:12px}
#assist-notices{font-size:12px;padding:6px 8px;white-space:nowrap;color:#8291bd}#assist-notices .icon{width:15px;height:15px}@media(max-width:767px){.topbar.has-assistance #breadcrumb{display:none}#assist-notices span{font-size:0}#assist-notices span:after{content:attr(data-count);font-size:12px}}
/* Four lifecycle categories combine owned/helper/authorized peer sessions; badges preserve urgency and ownership. */
.conversation-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;flex-shrink:0}.conversation-filters button{min-width:0;font-size:13px;padding:7px 4px}.contact-secondary{display:block;font-size:12px;margin-top:5px;color:var(--muted)}
/* Foreground assistance notices never replace a user's open editor or response dialog. */
.assist-live-alert{position:fixed;z-index:110;right:24px;top:85px;display:flex;align-items:center;gap:10px;max-width:min(480px,calc(100vw - 28px));padding:13px 15px;border:1px solid #dce5fb;border-radius:14px;background:#fbfcff;box-shadow:0 12px 35px #6574a11c;animation:appear .2s ease}.assist-live-alert>.icon{color:#8195c7;width:20px;flex-shrink:0}.assist-live-alert strong{font-size:12px;color:#6579ab}.assist-live-alert p{font-size:12px;color:#8a99b9;margin:4px 0 0}.assist-live-alert>button{font-size:12px;white-space:nowrap}.assist-live-alert .icon-btn{padding:3px;min-width:20px}
/* The roundtrip indicator reports HTTP latency and the actual message transport. */
.staff-network{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px;color:#8491ac;padding:6px 9px;background:#f7f9fd;border-radius:8px}.staff-network i{width:6px;height:6px;border-radius:50%;background:#b6c0d1}.staff-network[data-state=online] i{background:#829bce}.staff-network[data-state=slow] i{background:#d2ad7f}.staff-network[data-state=offline] i{background:#d29a9a}.shortcut-list>div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.shortcut-list kbd{border:1px solid var(--line);border-radius:6px;background:#f8faff;padding:3px 6px;white-space:nowrap;font-size:12px;color:#7b8bb2}
.metrics-toolbar{display:flex;align-items:flex-end;gap:15px;flex-wrap:wrap;margin-bottom:22px}.metrics-toolbar .segmented{margin:0;align-self:center}.metrics-toolbar>label{min-width:155px;max-width:230px;margin:0}.metrics-note{font-size:12px;color:#8593ae;line-height:1.9;margin:16px 0 22px}.idle-warning-message{font-variant-numeric:tabular-nums}
@media(max-width:767px){#shortcut-help{display:none}.topbar.has-network #breadcrumb{display:none}.topbar.has-network{padding-left:10px;padding-right:10px}.topbar.has-network .account-tools{gap:5px}.staff-network{font-size:12px;padding:5px 6px;max-width:105px;overflow:hidden}.assist-live-alert{right:14px;top:72px;padding:10px;gap:7px}.assist-live-alert>button{padding:5px 7px}.metrics-toolbar{gap:10px}.metrics-toolbar>label{min-width:130px;flex:1}.shortcut-list>div{font-size:12px}.shortcut-list kbd{font-size:12px}}
/* Metric tabs use the same segmented control at a readable console size; filters share one row on phones. */
.metrics-toolbar .segmented button{font-size:12px;padding:8px 13px}.metrics-toolbar .choice-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:767px){.metrics-toolbar .segmented{flex-basis:100%;justify-content:flex-start}.metrics-toolbar .segmented button{flex:0 0 auto}.metrics-toolbar>label{flex:1 1 calc(50% - 10px);min-width:0;max-width:none}}

/* 会话分类复用分段控件，按权限自动分配四或五列。 */
.conversation-filters{grid-template-columns:repeat(auto-fit,minmax(0,1fr));}.conversation-filters button{padding-inline:5px;font-size:13px;}
/* 分站公告共享浅色视觉和控件，限制总高度以保留时间线及输入区域。 */
.visitor-announcements{flex:0 1 auto;min-height:0;max-height:160px;overflow:auto;padding:8px 18px;background:#fbfcff;border-bottom:1px solid var(--line);overscroll-behavior:contain}.announcement-banner,.announcement-card{display:flex;align-items:flex-start;gap:5px;border:1px solid #e5e9fa;border-radius:12px;margin:4px 0;background:#f3f5ff;animation:announcement-in .22s ease-out}.announcement-banner>button:first-child{display:flex;align-items:center;gap:9px;flex:1;min-width:0;border:0;background:transparent;text-align:left;box-shadow:none;padding:9px 11px;font-size:12px}.announcement-banner strong,.announcement-card summary strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.announcement-banner span{font-size:12px;color:#8b95be}.announcement-banner .icon,.announcement-card summary .icon{width:15px;height:15px;flex-shrink:0}.announcement-banner>.icon-btn,.announcement-card>.icon-btn{flex-shrink:0;margin:3px;width:28px;height:28px;padding:6px;border:0;background:transparent}.announcement-card{background:white}.announcement-card details{flex:1;min-width:0}.announcement-card summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;padding:10px 12px;font-size:12px}.announcement-card summary::-webkit-details-marker{display:none}.announcement-body{padding:0 12px 12px;font-size:12px;overflow-wrap:anywhere}.announcement-body img,.announcement-dialog img{max-width:100%;height:auto;border-radius:10px}.announcement-dialog{overflow-wrap:anywhere}.announcement-dialog pre,.announcement-body pre{max-width:100%;overflow:auto}.announcement-card details[open] summary>.icon:last-child{transform:rotate(180deg)}@keyframes announcement-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:650px){.visitor-announcements{padding:5px 12px;max-height:110px}}@media(prefers-reduced-motion:reduce){.announcement-banner,.announcement-card{animation:none}}

/* 接入码模块沿用统一浅色按钮、弹窗与输入控件，窄屏可换行。 */
.list-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.list-header-actions button{font-size:12px;padding:4px 7px}.list-header-actions .icon{width:13px;height:13px}
.access-code-card{padding:22px 16px;margin:18px 0;border:1px solid var(--line);border-radius:14px;background:#f7f8ff;text-align:center}.access-code-card small{color:#8894b8}.access-code-card p{font-size:12px;line-height:1.8;margin:10px 0 0}.access-code-card .access-code-number{display:block;width:100%;max-width:300px;margin:12px auto;background:transparent;border:0;box-shadow:none;text-align:center;font-size:30px;font-weight:600;letter-spacing:5px;color:#7c8bc0;padding:8px 0}.access-code-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}.access-code-entry{font-variant-numeric:tabular-nums;letter-spacing:4px}

/* 微信Token管理复用渠道表单和按钮，不回显AppSecret/AESKey。 */
.wechat-token-panel{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fafbff}.wechat-token-actions{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.wechat-token-actions button{font-size:12px;padding:6px 10px}.wechat-token-panel input{font-variant-numeric:tabular-nums}

/* 微信队列诊断复用浅色卡片和状态标签，长错误不撑开页面。 */
.wechat-diagnostic{border:1px solid var(--line);border-radius:12px;padding:14px;margin:12px 0;background:#fafbff;overflow-wrap:anywhere}.wechat-diagnostic .badge{margin-left:10px}.wechat-diagnostic p{font-size:12px;line-height:1.8;margin-top:8px}

/* 剪贴板图片预览沿用共享弹窗、按钮与浅色边框。 */
.paste-image-preview{display:block;max-width:100%;max-height:45dvh;object-fit:contain;margin:16px auto;border:1px solid var(--line);border-radius:12px;background:#f8f9fd}

/* My conversations: secondary navigation shares the list's compact spacing. */
.conversation-subfilters{display:flex;gap:16px;margin:0 23px 12px;border-bottom:1px solid var(--line)}.conversation-subfilters button{border:0;border-radius:0;background:none;padding:3px 2px 9px;font-size:12px;color:var(--muted);border-bottom:2px solid transparent}.conversation-subfilters button.selected{color:var(--primary,#7c8bc0);border-bottom-color:currentColor}.conversation-filters button{font-size:13px;padding:7px 0}
/* Focused onboarding panels retain their form state when switching access channels. */
.channel-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.channel-tabs button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:11px 18px;border-radius:11px;background:#fff;color:#8e9bbb;font-size:13px}.channel-tabs button.selected{background:#edf0ff;border-color:#e3e8ff;color:#788ac7}.channel-tabs .icon{width:16px;height:16px}.channel-page [hidden]{display:none!important}.integration-heading{display:flex;gap:13px;align-items:flex-start;margin-bottom:22px}.integration-heading h2{margin:0 0 7px}.integration-heading .stat-icon{flex-shrink:0}.setup-steps{display:flex;gap:16px;list-style-position:inside;padding:0 0 17px;margin:0 0 24px;border-bottom:1px solid var(--line);color:#9ca9c8;font-size:12px;flex-wrap:wrap}.setup-steps li{padding-right:12px}.integration-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 22px}.integration-actions button,.integration-actions a{font-size:12px}.integration-status{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.integration-details{border-top:1px solid var(--line);margin-top:20px;padding-top:15px;color:#9aa8c5;font-size:12px;line-height:1.9}.integration-details summary{cursor:pointer;color:#8898bb;font-weight:500;margin-bottom:10px}.integration-details pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#f8f9fe;padding:14px;border-radius:10px}.integration-demo-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:18px;margin-top:18px}.integration-demo-grid h3{margin-bottom:14px;color:#7c8cad}.card-example-preview{padding:20px 12px;background:#f8f9fe;border-radius:13px;margin:14px 0 20px}.card-example-preview .context-card{max-width:100%;min-width:0;margin:auto}.code-wrap{display:block;overflow-wrap:anywhere;white-space:pre-wrap}.channel-page .wechat-settings{margin-top:0}.channel-page .wechat-settings>.form-grid{grid-template-columns:minmax(0,1fr)}.channel-page .wechat-channel{max-width:100%;border:0;padding:0}.channel-page .wechat-channel>h3{display:none}.channel-page .wechat-channel>label,.channel-page .wechat-token-panel{max-width:850px}.channel-page .wechat-diagnostic{overflow-wrap:anywhere}.channel-page textarea{min-height:0;line-height:1.7}.channel-page #card-example-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;resize:vertical}.channel-page #card-demo-result{margin-top:13px}.channel-page .surface{min-width:0}.channel-page .wechat-token-panel{background:#fafbff;border:1px solid var(--line);padding:16px;border-radius:11px}.channel-page .wechat-token-actions{flex-wrap:wrap}
/* A portal-wide inbox remains mounted while management pages navigate. */
.inbox-notices{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);background:#fff;font-size:12px;color:#96a4c6;border-radius:10px;white-space:nowrap}.inbox-notices .icon{width:16px;height:16px}.inbox-notices b{font-weight:500;font-size:12px;background:#f1f3fb;padding:1px 5px;border-radius:6px}.inbox-notices.has-unread{color:#7d8ed1;background:#f6f7ff}.inbox-notices.has-unread b{background:#9eaceb;color:white}.global-inbox-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 0;background:white}.global-inbox-row>span{background:#f0f3fe;padding:8px;border-radius:9px;color:#9cabda}.global-inbox-row .icon{width:16px;height:16px}.global-inbox-row>div{flex:1;min-width:0}.global-inbox-row strong{font-size:12px;font-weight:500;color:#7e8dab}.global-inbox-row small,.global-inbox-row p{font-size:12px;color:#a7b2cd;margin-top:5px}.global-inbox-row b{font-size:12px;font-weight:500;color:#8f9ed0}.portal-message-alert{top:auto;bottom:24px}.portal-message-alert p{overflow-wrap:anywhere}.portal-message-alert>button:last-child{padding:4px;border:0;background:none}.portal-message-alert>button:last-child .icon{width:14px;height:14px}
/* Service metrics separate the live backlog, period totals and event-time detail. */
.metrics-toolbar{align-items:flex-end;flex-wrap:wrap;gap:12px}.metrics-toolbar>label{min-width:130px;max-width:190px;flex:1}.metrics-toolbar>.segmented{margin:0;min-width:180px}.metrics-toolbar>button{align-self:flex-end;margin-bottom:4px;font-size:12px}.metrics-live{display:flex;flex-wrap:wrap;gap:14px 26px;padding:18px 20px;border:1px solid #e9edf9;border-radius:13px;background:#fafbff;color:#9ba9c6;font-size:12px;margin:20px 0}.metrics-live strong{margin-left:8px;color:#7c8fbc;font-weight:550}.metrics-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.metrics-stats .stat-card>strong{font-size:24px}.metrics-stats .stat-caption{font-size:12px;line-height:1.7}.metrics-insights{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr);gap:18px;margin-bottom:18px}.metrics-insights .surface-header small{font-size:12px;color:#aab6ce}.metrics-chart{padding:8px 22px 18px}.metric-trend{width:100%;height:auto;display:block}.metrics-composition{padding:8px 22px 20px;font-size:12px;color:#9cabc7}.metrics-composition>div{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0}.metrics-composition strong{font-weight:500;color:#8a9abc}.metrics-composition hr{border:0;border-top:1px solid var(--line);margin:18px 0}.metrics-page .metrics-note{margin:18px 0 24px}.metrics-page .stats-grid{gap:14px}.metrics-page .stats-grid .stat-card{min-width:0}.metrics-page .table-scroll{max-width:100%}
@media(max-width:1000px){.integration-demo-grid,.metrics-insights{grid-template-columns:minmax(0,1fr)}.metrics-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.channel-tabs button{padding:10px 13px;font-size:13px;}}
@media(max-width:650px){.channel-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.channel-tabs button{justify-content:center;font-size:13px;padding:10px}.setup-steps{gap:8px;font-size:12px}.setup-steps li{padding-right:0}.integration-heading{gap:10px}.integration-heading h2{font-size:17px}.integration-demo-grid{gap:12px}.channel-page .settings-form{padding:20px 17px}.channel-page #card-example-code{font-size:13px}.metrics-live{gap:14px;padding:15px}.metrics-live span{font-size:12px}.metrics-toolbar>label{min-width:calc(50% - 12px);max-width:none}.metrics-toolbar>.segmented{width:100%}.metrics-stats .stat-card>strong{font-size:20px}.metrics-stats .stat-card{padding:16px 13px}.metrics-chart{padding:8px 12px 15px}.inbox-notices{padding:5px 6px;gap:3px}.inbox-notices>span{display:none}.portal-message-alert{top:auto;bottom:16px;max-width:calc(100vw - 24px)}.account-tools{gap:4px!important}.topbar .presence-choice{max-width:76px}.topbar .presence-choice .choice-trigger{padding-right:22px;padding-left:8px}.topbar .top-logout{padding:5px}.topbar .return-platform{font-size:12px;padding:6px}.topbar .inbox-notices .icon{width:14px}}.identity-ended{display:flex;justify-content:center;padding:20px}
@media(max-width:650px){}

/* v2.14.1: collapse by actual conversation width, including embedded visitor windows. */
#chat-pane{container-type:inline-size}
.chat-header .chat-identity{flex:1;min-width:0}
.chat-identity>div{min-width:0}
.chat-identity>.avatar,.chat-identity>.mobile-back{flex-shrink:0}
.chat-identity p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;}
.header-mobile-actions{display:none;flex-shrink:0;align-items:center;gap:6px}
.conversation-more-actions{display:grid;gap:8px}
.conversation-more-actions>button{display:flex;width:100%;min-height:48px;padding:12px 14px;gap:12px;text-align:left;white-space:normal}
.conversation-more-actions>button>span{flex:1;overflow-wrap:anywhere}
.conversation-more-actions>button>.icon{flex-shrink:0;width:18px;height:18px}
.conversation-more-actions>.conversation-end-action{margin-top:8px;color:#b66f75;border-color:#f0dce0}
@media(max-width:760px){.chat-header{align-items:center;padding:12px;gap:8px}
.chat-header .header-desktop-actions{display:none}
.chat-header .header-mobile-actions{display:flex}
.chat-header .header-mobile-actions button{min-width:44px;min-height:44px;padding:8px;gap:5px;font-size:12px;white-space:nowrap}
.chat-header .header-mobile-actions .icon{width:16px;height:16px}
.chat-header .chat-identity{gap:8px}
.chat-header .chat-identity h2{max-width:none}
.chat-header .chat-identity .avatar{width:32px;height:32px;border-radius:10px}
}
@container(max-width:620px){.chat-header{align-items:center;padding:12px;gap:8px}
.chat-header .header-desktop-actions{display:none}
.chat-header .header-mobile-actions{display:flex}
.chat-header .header-mobile-actions button{min-width:44px;min-height:44px;padding:8px;gap:5px;font-size:12px;white-space:nowrap}
.chat-header .header-mobile-actions .icon{width:16px;height:16px}
.chat-header .chat-identity{gap:8px}
.chat-header .chat-identity h2{max-width:none}
.chat-header .chat-identity .avatar{width:32px;height:32px;border-radius:10px}
}

/* v2.14.3: a compact account list, with consistent row rhythm and explicit toggle state. */
.topbar{position:relative;gap:12px;font-size:13px;}
.topbar>div:first-child{flex:1;min-width:0}
.topbar #breadcrumb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .account-tools{flex-shrink:0;flex-wrap:nowrap}
.topbar-secondary{display:contents}
.toolbar-label,.toolbar-account,.toolbar-switch,.toolbar-trailing,#topbar-more{display:none}
.return-platform>.icon{display:none}
@media(max-width:900px){
 .topbar,.topbar.has-network{height:60px;min-height:60px;padding:0 12px;gap:10px;background:#fff}
 .topbar.has-network #breadcrumb,.topbar.has-assistance #breadcrumb{display:block}
 .topbar #breadcrumb{max-width:none;font-size:14px;font-weight:500;color:#535e76}
 .topbar .account-tools,.topbar.has-network .account-tools{flex:0 0 auto;flex-wrap:nowrap;gap:4px!important}
 .topbar #mobile-menu{width:44px;height:44px;min-width:44px;padding:11px;flex-shrink:0;color:#6f7b94}
 .topbar #inbox-notices,.topbar #topbar-more{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:10px;gap:0;white-space:nowrap;font-size:12px;border:0;border-radius:12px;background:transparent;color:#6f7b94;box-shadow:none}
 .topbar #inbox-notices>span{display:none}
 .topbar #inbox-notices .icon,.topbar #topbar-more .icon{width:21px;height:21px;flex-shrink:0}
 .topbar #topbar-more .icon{stroke-width:3}
 .topbar #topbar-more[aria-expanded=true]{background:#eff2fc;color:#7181c3}
 .topbar #inbox-count,.topbar #topbar-more-count{position:absolute;right:0;top:0;min-width:16px;height:16px;padding:0 4px;border:2px solid #fff;box-sizing:content-box;line-height:16px;text-align:center;font-size:11px;font-weight:500;background:#7b8dd3;border-radius:10px;color:#fff}
 .topbar #inbox-notices.has-unread{background:transparent;color:#7181c3}
 .topbar .topbar-secondary{display:none;position:absolute;right:12px;top:calc(100% + 8px);width:min(272px,calc(100vw - 24px));max-height:calc(100dvh - 84px);overflow:auto;overscroll-behavior:contain;z-index:80;background:#fff;border:1px solid #e9edf5;border-radius:16px;padding:8px;box-shadow:0 12px 40px #3442691c,0 2px 6px #34426905}
 .topbar.tools-open .topbar-secondary{display:block}
 .topbar-secondary .toolbar-account{display:flex;align-items:center;gap:10px;padding:8px 8px 12px;margin-bottom:4px;border-bottom:1px solid #f0f2f7}
 .toolbar-avatar{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border-radius:11px;background:#eef1fc;color:#7b8dcb;font-size:14px;font-weight:500}
 .toolbar-account>div{min-width:0;flex:1}
 .toolbar-account strong,.toolbar-account small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .toolbar-account strong{font-size:13px;color:#46526b;font-weight:550;line-height:1.5}
 .toolbar-account small{font-size:12px;color:#9ca6b9;line-height:1.6;margin-top:1px}
 .topbar .topbar-secondary>button,.topbar .topbar-secondary>a{display:flex;align-items:center;width:100%;min-width:0;min-height:44px;padding:10px 10px;gap:11px;white-space:normal;font-size:13px;font-weight:400;line-height:1.5;justify-content:flex-start;text-align:left;border:0;border-radius:9px;background:transparent;color:#5d6982;box-shadow:none}
 .topbar .topbar-secondary>button:hover,.topbar .topbar-secondary>a:hover{background:#f6f8fd}
 .topbar .topbar-secondary .icon{width:18px;height:18px;flex-shrink:0;color:#9aa5bb}
 .topbar .topbar-secondary>button>span:not(.toolbar-switch),.topbar .topbar-secondary>a>span{flex:1;min-width:0}
 .topbar-secondary .toolbar-label{display:inline;font-size:13px}
 .topbar .topbar-secondary .presence-choice{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;max-width:none;padding:5px 10px;margin-bottom:2px}
 .topbar-secondary .presence-choice>.toolbar-label{color:#5d6982;padding-left:29px;position:relative}
 .topbar-secondary .presence-choice>.toolbar-label:before{content:'';position:absolute;left:6px;top:50%;width:6px;height:6px;border-radius:50%;background:#a7b2cc;transform:translateY(-50%)}
 .topbar-secondary .presence-choice .choice{width:96px;flex-shrink:0}
 .topbar .topbar-secondary .presence-choice .choice-trigger{min-height:36px;font-size:12px;padding:7px 10px;background:#f8f9fc;border:1px solid #edf0f7;border-radius:9px;color:#6c7895}
 .topbar .topbar-secondary .presence-choice .choice-trigger .icon{width:13px;height:13px}
 .topbar-secondary .presence-choice .choice-options{right:0;left:auto;min-width:170px}
 .topbar .topbar-secondary .staff-network{display:flex;max-width:none;font-size:12px;white-space:normal;padding:8px 10px;background:none;color:#99a5bb}
 .topbar-secondary .platform-label,.topbar .topbar-secondary #shortcut-help{display:none}
 .topbar .topbar-secondary #assist-notices span,.topbar .topbar-secondary .top-logout span{font-size:13px;display:inline}
 .topbar-secondary #assist-notices span:after{content:none}
 .topbar-secondary .toolbar-switch{position:relative;display:block;flex:0 0 30px;width:30px;height:18px;border-radius:12px;background:#e6eaf2;transition:background .18s}
 .toolbar-switch:after{content:'';position:absolute;width:14px;height:14px;top:2px;left:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #4755731a;transition:transform .18s}
 .topbar-secondary button[aria-pressed=true] .toolbar-switch{background:#8b9cda}
 .topbar-secondary button[aria-pressed=true] .toolbar-switch:after{transform:translateX(12px)}
 .topbar .topbar-secondary>.return-platform{margin-top:5px;border-top:1px solid #f0f2f7;border-radius:0;padding-top:13px;min-height:49px}
 .topbar .topbar-secondary .return-platform>.icon{display:block}
 .topbar .topbar-secondary .return-platform>.toolbar-trailing{width:13px;height:13px;color:#b1bacc}
 .topbar .topbar-secondary>.top-logout,.topbar .topbar-secondary>.top-logout>.icon{color:#bc8490}
}
/* Service continuity extends the shared workbench; no extra primary navigation. */
.continuity-panel{margin:18px 0}.continuity-panel .section-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.continuity-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px}.followup-summary{width:100%;justify-content:flex-start;text-align:left;gap:10px;background:#f8faff;border-color:#e9edf8;padding:12px}.followup-summary>span{color:#9eacda}.followup-summary>div{flex:1;min-width:0}.followup-summary strong{display:block;font-size:12px;font-weight:550;color:#8593b7}.followup-summary small{display:block;font-size:12px;color:#a6b1cb;margin-top:4px}.followup-summary p{font-size:12px;color:#919fbe;margin-top:7px;overflow-wrap:anywhere;white-space:pre-wrap}.followup-summary>.icon{width:14px;color:#b3bdd7}.offline-progress{display:grid;gap:7px;font-size:12px;color:#99a6c1;padding:12px;background:#fafbff;border-radius:10px;margin-bottom:12px}.visitor-history-summary{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#9ba8c4;margin-bottom:8px}.visitor-history-preview{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:12px 0}.visitor-history-preview strong{display:block;font-size:13px;color:#637493;font-weight:500}.visitor-history-preview small{font-size:12px;color:#8794aa}.visitor-history-preview p{font-size:12px;color:#71809b;margin-top:5px;overflow-wrap:anywhere}.service-periods>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;padding:9px 0;border-bottom:1px solid var(--line);color:#99a6c1}.service-periods small{width:100%;font-size:12px;color:#b1bcd1}.service-periods .sla-overdue{color:#cc8794}.service-periods .sla-warning{color:#c5a277}.followup-owner{display:block;padding:10px;background:#f8f9fd;border:1px solid var(--line);border-radius:10px}.followup-finish-actions{display:flex;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:15px}.followup-event{padding:14px 0;border-bottom:1px solid var(--line)}.followup-event strong{font-size:12px;color:#8494b7;font-weight:500}.followup-event small{display:block;font-size:12px;color:#a6b2ca;margin-top:5px}.followup-event p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;color:#94a1bd;margin-top:8px}.history-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;color:#a7b1c8;font-size:12px}.history-pagination button{font-size:12px}.history-conversation{width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 0;gap:12px}.history-conversation>span{flex:1;min-width:0}.history-conversation strong{font-size:12px;color:#8796b8;font-weight:500}.history-conversation small{display:block;font-size:12px;color:#aab6cc;margin-top:5px}.history-conversation p{font-size:12px;overflow-wrap:anywhere;white-space:pre-wrap;margin-top:7px;color:#98a6c0}.history-conversation .icon{width:14px;color:#b1bdd6}.compose-modes{display:flex;gap:4px;margin-bottom:8px;width:max-content;max-width:100%;padding:3px;background:#f7f8fd;border-radius:8px}.compose-modes button{min-height:32px;font-size:12px;padding:6px 10px;border:0;background:none;color:#a2adc5}.compose-modes .icon{width:13px;height:13px}.compose-modes button[aria-pressed=true]{background:#fff;box-shadow:0 2px 7px #61709f08;color:#8798c6}.internal-composer{background:#fcfaff}.internal-note-warning{display:flex;align-items:center;gap:7px;font-size:12px;color:#ac98bf;line-height:1.8;margin-bottom:8px}.internal-note-warning>.icon{width:14px;height:14px}.internal-timeline-note{margin:18px 0;padding:12px 15px;background:#f7f3fb;border:1px solid #eee7f5;border-radius:12px;color:#746382}.internal-timeline-note>div{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:12px}.internal-timeline-note strong{font-weight:500}.internal-timeline-note>div>.icon{width:13px;height:13px}.internal-timeline-note>div>span{flex:1;min-width:100px;font-size:12px;color:#8d7c9d}.internal-timeline-note button{background:none;border:0;padding:4px;color:#b4a5c3}.internal-timeline-note button>.icon{width:13px;height:13px}.internal-timeline-note p{font-size:13px;color:#705f7f;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:7px}.staff-notice-row{display:flex;align-items:flex-start;gap:12px;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:15px 0;text-align:left}.staff-notice-row>span{color:#a2afd4;background:#f2f5ff;border-radius:9px;padding:8px}.staff-notice-row>span>.icon{width:16px;height:16px}.staff-notice-row>div{flex:1;min-width:0}.staff-notice-row strong{font-size:12px;color:#8696bb;font-weight:500}.staff-notice-row p{font-size:12px;color:#a3b0c9;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:4px}.staff-notice-row small{display:block;font-size:12px;color:#b2bdd2;margin-top:5px}.staff-notice-row>.icon{width:14px;color:#b3bed6;margin-top:10px}.sla-settings{border-top:1px solid var(--line);padding-top:24px;margin-top:25px}.sla-settings-heading p{margin-bottom:20px}.sla-roster{border:1px solid var(--line);border-radius:12px;padding:14px;margin:18px 0}.sla-roster summary{cursor:pointer;color:#8d9aba;font-size:12px}.sla-roster>p{font-size:12px;line-height:1.9;margin:15px 0}.sla-day{padding:12px 0;border-top:1px solid var(--line)}.sla-day-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px}.sla-day-heading label{margin:0;display:flex;align-items:center;gap:9px}.sla-day-heading button{border:0;background:none;font-size:12px;color:#9eacc9;padding:4px}.sla-day-heading .icon{width:13px;height:13px}.sla-ranges{display:grid;gap:7px}.sla-time-range{display:flex;align-items:center;gap:8px}.sla-time-range input{min-width:0;flex:1;font-size:12px!important;padding:8px!important}.sla-time-range>span{font-size:12px;color:#b0bacd}.sla-time-range>button{padding:5px;border:0;background:none;color:#b3bdd2}.sla-time-range .icon{width:14px;height:14px}
@media(max-width:650px){.followup-summary{min-height:62px}.compose-modes button{min-height:38px;font-size:12px}.internal-timeline-note{padding:11px;color:#746382;}.continuity-panel .text-button{min-height:34px}.continuity-panel .section-label{font-size:12px}.offline-progress{font-size:12px}.sla-time-range{gap:6px}.sla-time-range input{font-size:16px!important}.history-conversation{min-height:64px}.followup-finish-actions{flex-wrap:wrap}.sla-settings .form-grid{grid-template-columns:1fr}.modal-body .continuity-panel .followup-summary p{font-size:12px}}

/* Keep dialog actions reachable when a phone rotates or the keyboard reduces its height. */
.modal{display:flex;flex-direction:column}.modal>header,.modal footer{flex-shrink:0}.modal>form{display:flex;flex-direction:column;min-height:0;overflow:hidden}.modal>form>.modal-body{min-height:0;flex:1;overflow:auto}
/* Integrated service operations: retain existing colors, typography and modal boundaries. */
.operations-tabs{display:flex;gap:6px;overflow-x:auto;padding:0 0 14px;flex-shrink:0}.operations-tabs button{white-space:nowrap}.operations-tabs .selected{background:var(--primary-soft,#edf0ff);color:var(--primary,#6479c8)}
#operations-content{min-width:0}#operation-settings>details{margin-bottom:12px}#operation-settings details>summary{font-weight:600}#operation-settings details>label{margin:12px 0}.operation-option{display:flex;align-items:center;gap:8px;margin:8px 0;min-width:0}.operation-option>input:first-child{flex:1;min-width:0}.operation-option>label{display:flex;align-items:center;gap:5px;flex-shrink:0}.operation-option input[type=checkbox]{width:16px;height:16px}.operation-option button{flex-shrink:0}.operation-option svg{width:16px;height:16px;transform:rotate(-90deg)}
.calendar-exception{display:flex;align-items:end;gap:10px;padding:10px 0;border-bottom:1px solid #edf0f7}.calendar-exception label{min-width:0;flex:1}.operation-record{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #edf0f7}.operation-record>div{min-width:0}.operation-record p,.operation-record small{overflow-wrap:anywhere}.operation-record p{margin:5px 0;color:var(--muted,#8490ab)}.operation-record>div:last-child{display:flex;gap:6px;flex-wrap:wrap}.operation-record svg,.reply-source svg{width:16px;height:16px}.reply-source{padding:16px 0;border-bottom:1px solid #edf0f7}.reply-source small{display:block;color:var(--muted,#8490ab);margin-top:4px}.reply-source footer{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.reply-source .quick-preview{max-height:200px;overflow:auto}.rating-stars button{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14px}.rating-stars button span{white-space:nowrap}.rating-stars .filled{background:#edf0ff;border-radius:12px}#operations-content .history-hit{overflow-wrap:anywhere}
@media(max-width:520px){.calendar-exception{flex-wrap:wrap}.calendar-exception label{flex-basis:100%}.operation-record{align-items:flex-start;flex-wrap:wrap}.operation-record>div:first-child{flex:1 1 180px}.operation-option{gap:5px}.operations-tabs{margin-right:-6px}.rating-stars{gap:12px}.rating-stars button{min-width:68px}}
.quality-image{display:block;max-width:100%;max-height:320px;object-fit:contain;border-radius:10px}.service-availability{font-size:12px;overflow-wrap:anywhere}
.composer-foot{flex-wrap:wrap}#attachment-retry:empty{display:none}#attachment-retry button{font-size:12px;white-space:normal}
