
*{box-sizing:border-box}body{margin:0;font:14px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#26374b;background:#fafbfd}button,input,textarea{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer;min-height:42px;border-radius:7px;padding:8px 12px}button:hover{background:#edf2fa}button:disabled{opacity:.45;cursor:not-allowed}input,textarea{border:1px solid #dbe3ef;border-radius:8px;padding:12px;outline:none;width:100%}.app{display:grid;grid-template-columns:210px 320px minmax(300px,1fr) 240px;height:100dvh;overflow:hidden}.nav{background:#f3f6fb;border-right:1px solid #e2e8f0;padding:24px 14px;display:flex;flex-direction:column}.logo{font-size:20px;font-weight:750;display:flex;align-items:center;gap:10px;margin-bottom:32px}.mark{background:#246af3;color:white;border-radius:10px;width:33px;height:33px;display:grid;place-items:center}.nav button{text-align:left;width:100%}.active{background:#e5edff!important;color:#2366dc!important}.section{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#93a0b1;margin:30px 10px 12px}.bottom{margin-top:auto}.avatar{width:38px;height:38px;display:grid;place-items:center;background:#e8efff;color:#3166bd;border-radius:50%;flex-shrink:0;font-weight:650}.owner{display:flex;align-items:center;gap:10px;border-top:1px solid #e0e6ee;padding-top:18px;margin-top:15px}.muted{color:#8997aa;font-size:11px;line-height:1.6}.list{background:white;border-right:1px solid #e1e7ef;display:flex;flex-direction:column;min-width:0}.list-head{padding:24px 18px 12px}h1{font-size:20px;margin:0 0 22px}h2{font-size:15px;margin:0}.heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.badge{font-size:10px;color:#3471cf;background:#edf3ff;border-radius:5px;padding:4px 7px}.search{background:#f5f7fa;border:0;font-size:12px}.tabs{display:flex;border-bottom:1px solid #e7ecf3;padding:0 12px;gap:6px}.tabs button{font-size:12px;border-radius:0}.tabs .active{background:white!important;border-bottom:2px solid #246af3}.convos{flex:1;overflow:auto}.convo{width:100%;display:flex;gap:10px;padding:18px 14px;text-align:left;border-radius:0;border-bottom:1px solid #ecf0f5;min-height:101px}.convo.active{border-left:3px solid #246af3;padding-left:11px;background:#eff5ff!important}.convo-body{min-width:0;flex:1}.name{font-weight:650;font-size:13px}.preview{font-size:12px;color:#7c8ca2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:9px 0}.row{display:flex;align-items:center;justify-content:space-between;gap:5px}.small{font-size:10px;color:#8799af}.chat{display:flex;flex-direction:column;min-width:0}.chat-head{padding:17px 20px;min-height:82px;display:flex;gap:12px;align-items:center;border-bottom:1px solid #e1e7ef;background:white}.chat-info{flex:1;min-width:0}.outline{border:1px solid #dce4ef;background:white}.messages{overflow:auto;flex:1;padding:28px 24px;display:flex;flex-direction:column;gap:18px}.message{max-width:82%;align-self:flex-start}.bubble{border:1px solid #e3e9f1;border-radius:3px 12px 12px;background:white;padding:12px 15px;line-height:1.65;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.message.out{align-self:flex-end}.out .bubble{background:#eaf1ff;border-color:#dce7fc;border-radius:12px 3px 12px 12px}.stamp{font-size:10px;color:#9aa6b5;margin:6px 3px}.out .stamp{text-align:right}.composer{padding:14px 20px 18px;border-top:1px solid #e2e8ef;background:white}.compose-box{border:1px solid #dbe3ef;border-radius:9px;overflow:hidden}.compose-top{border-bottom:1px solid #edf1f6;padding:3px 10px;display:flex;align-items:center;justify-content:space-between;font-size:12px}.ai{color:#7151bf;font-size:12px}.composer textarea{border:0;resize:none;height:96px;font-size:13px}.compose-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 10px 10px}.primary{background:#246af3;color:white;font-weight:600}.primary:hover{background:#1959da}.contact{border-left:1px solid #e1e7ef;background:white;padding:24px 18px}.contact h2{font-size:13px}.contact-person{text-align:center;padding:32px 0}.contact-person .avatar{width:62px;height:62px;font-size:22px;margin:0 auto 12px}.detail{border-top:1px solid #e8edf4;padding:20px 0}.detail h3{font-size:12px;margin:0 0 18px}.kv{font-size:11px;color:#94a0b1;margin:15px 0}.kv strong{font-weight:500;display:block;color:#536982;margin-top:6px;overflow-wrap:anywhere}.status{color:#8da0b6;font-size:10px;padding:13px;border-top:1px solid #e8edf4}.empty{margin:auto;text-align:center;padding:30px;color:#8b9aaf;line-height:1.7}.empty h2{color:#4a607a;margin-bottom:10px}.overlay{position:fixed;inset:0;background:#f0f4fa;display:grid;place-items:center;z-index:10;padding:20px}.login{background:white;width:370px;max-width:100%;border:1px solid #dfe6f0;border-radius:15px;padding:32px;box-shadow:0 20px 60px #25456713}.login h1{margin:22px 0 8px}.login label{display:block;font-size:12px;margin:22px 0 8px}.login .primary{width:100%;margin-top:12px}.error{color:#c74444;font-size:12px;line-height:1.5}.hidden{display:none!important}.back,.mobile-tools{display:none}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 20px;background:#21354e;color:white;font-size:12px;border-radius:9px;z-index:30;max-width:90vw}dialog{border:1px solid #e0e6ef;border-radius:12px;padding:24px;width:480px;max-width:95vw}dialog::backdrop{background:#1a2e4660}.channel-card{padding:16px 0;border-bottom:1px solid #e6ecf3}
@media(max-width:1150px){.app{grid-template-columns:180px 290px 1fr}.contact{display:none}}@media(max-width:850px){.app{grid-template-columns:64px 270px 1fr}.nav{padding:22px 7px}.logo{margin-left:8px}.nav .text,.nav .section,.nav #brands,.owner .text{display:none}.nav button{text-align:center;padding:8px 0}.chat-head{padding:14px}.composer{padding:12px}.messages{padding:22px 15px}}@media(max-width:640px){.app{display:block}.nav{display:none}.list{height:100dvh}.chat{height:100dvh;display:none}.app.in-chat .list{display:none}.app.in-chat .chat{display:flex}.back{display:block;font-size:24px;padding:0 10px}.mobile-tools{display:flex;gap:4px;margin:-10px 0 10px}.mobile-tools button{font-size:11px}.message{max-width:88%}.chat-head{gap:8px}.chat-head .avatar{width:32px;height:32px}.compose-foot .muted{max-width:52%}}
/* Default dark workspace. Native controls follow the same color scheme. */
:root{color-scheme:dark}body{background:#111720;color:#dce5f2}.nav{background:#121a25;border-color:#263243}.list,.chat-head,.composer,.contact,.login{background:#18212e;border-color:#2b3748}.chat{background:#111923}.messages{background:#111923}.nav .active,.active{background:#21375a!important;color:#8eb7ff!important}.convo.active{background:#1d304b!important;border-left-color:#6ba0ff}.convo{border-color:#263243}.convo:hover,button:hover{background:#243248}.tabs{border-color:#2a3748}.tabs .active{background:#18212e!important;border-bottom-color:#75a6ff}.search,input,textarea{background:#121b28;border-color:#324257;color:#e0e8f4}input::placeholder,textarea::placeholder{color:#8091aa}.composer textarea{background:#18212e}.bubble{background:#1d2a3a;border-color:#304156;color:#dbe5f4}.out .bubble{background:#203b66;border-color:#365988;color:#e0ebff}.badge{background:#223859;color:#a0c4ff}.avatar{background:#273f61;color:#b2cfff}.mark,.primary{background:#377bed;color:white}.primary:hover{background:#498af5}.outline{background:#1b283a;border-color:#3a4d67;color:#cedcf0}.muted,.small,.preview,.status{color:#9aaac0}.stamp,.kv{color:#91a3bb}.kv strong{color:#c2d1e5}.section{color:#93a3ba}.compose-box,.compose-top,.detail,.owner,.status,.channel-card{border-color:#2c3a4d}.ai{color:#c4a9ff}.empty{color:#a0b1c8}.empty h2{color:#d0dded}.overlay{background:#101722}.login{box-shadow:0 20px 75px #0005}.toast{background:#d7e6ff;color:#152944}.error{color:#ff9d9d}dialog{background:#182331;border-color:#3c4d64;color:#dce5f2}dialog::backdrop{background:#02061199}

#manage-channels{width:740px;max-height:90dvh;overflow:auto}#channel-form{margin-top:20px;padding:20px;background:#111b29;border-radius:10px}#channel-form label{display:block;margin:14px 0 7px;font-size:12px}.channel-actions{display:flex;gap:6px;flex-wrap:wrap}.channel-actions button{font-size:12px}.channel-card .row{flex-wrap:wrap;justify-content:flex-start;gap:12px}@media(max-width:640px){#manage-channels{padding:16px;width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0}.channel-actions button{flex:1;min-width:110px}#channel-form{padding:14px}}
.workspace-page{position:fixed;left:210px;right:0;top:0;bottom:0;background:#111923;overflow:auto;padding:32px 40px;z-index:3}.page-head{display:flex;justify-content:space-between;align-items:center;margin:0 auto 28px;max-width:1000px}.page-head h1{font-size:27px;margin:8px 0}.page-back{text-decoration:none;color:#cbdcf2;padding:12px;border-radius:7px}.route-page{max-width:1000px;margin:auto}.page-card,#manage-channels{background:#182331;border:1px solid #2c3c52;border-radius:12px;padding:24px;margin-bottom:24px}.workspace-page label{display:block;font-size:12px;margin:20px 0 8px}.workspace-page input,.workspace-page select,.workspace-page textarea{margin-bottom:10px}.workspace-page select{width:100%;padding:12px;background:#111b29;color:#dce5f2;border:1px solid #344762;border-radius:7px}.workspace-page textarea{min-height:160px;resize:vertical}.workspace-page .check-row{display:flex;align-items:flex-start;gap:10px;line-height:1.6}.check-row input{width:20px;flex-shrink:0;margin:3px 0}.warning{background:#352b1a;border:1px solid #635030;padding:16px;border-radius:8px;font-size:12px;color:#e9d4ab;line-height:1.7;margin:12px 0}.warning p{margin-bottom:0}.knowledge-entry{padding:18px 0;border-bottom:1px solid #344257}.knowledge-entry p{font-size:12px;white-space:pre-wrap;line-height:1.7;color:#b4c6de}.page-link{color:#9fc2ff}.page-open .app>.list,.page-open .app>.chat,.page-open .app>.contact{visibility:hidden}.workspace-page #manage-channels{width:auto;max-height:none;overflow:visible}.workspace-page #channel-form{margin-top:24px}.page-open .nav{z-index:4}@media(max-width:1150px){.workspace-page{left:180px;padding:25px}}@media(max-width:850px){.workspace-page{left:64px;padding:22px}}@media(max-width:640px){.workspace-page{left:0;padding:20px 14px}.page-head{gap:10px}.page-head h1{font-size:23px}.page-card,#manage-channels{padding:18px}.workspace-page #manage-channels{height:auto;border-radius:12px}.page-back{white-space:nowrap;font-size:12px}.workspace-page .row{flex-wrap:wrap}.mobile-tools{flex-wrap:wrap}}
.session-card{text-align:center;padding:30px}.session-spinner{height:32px;width:32px;border:3px solid #2c3d56;border-top-color:#6da4ff;border-radius:50%;margin:0 auto 22px;animation:session-spin .8s linear infinite}@keyframes session-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.session-spinner{animation:none;border-top-color:#6da4ff}}#session-loading{z-index:15}/* Familiar dark messenger conversation layout, no false delivery receipts. */
.chat{background:#0b141a}.chat-head{background:#202c33;border-color:#2a3942;min-height:74px}.chat-head .avatar{background:#344c5a;color:#d7eef7}.chat .messages{background-color:#0b141a;background-image:radial-gradient(#26404b38 .8px,transparent .8px);background-size:19px 19px;padding:26px 34px;gap:8px}.message{max-width:78%;min-width:95px;position:relative}.bubble{background:#202c33;color:#e9edef;border:0;border-radius:0 9px 9px 9px;padding:9px 12px 6px;box-shadow:0 1px 1px #0004;font-size:14px;line-height:1.5}.out .bubble{background:#005c4b;border:0;border-radius:9px 0 9px 9px}.message.in:before{content:'';position:absolute;left:-7px;top:0;border-top:9px solid #202c33;border-left:8px solid transparent}.message.out:before{content:'';position:absolute;right:-7px;top:0;border-top:9px solid #005c4b;border-right:8px solid transparent}.message-copy{white-space:pre-wrap;overflow-wrap:anywhere}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:5px;font-size:10px;color:#a7babf;margin:4px 0 0;line-height:14px;white-space:nowrap}.out .message-meta{color:#a9d2c7}.message-meta svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;vertical-align:middle}.receipt{display:inline-flex;align-items:center;gap:4px;cursor:help}.receipt.uncertain{color:#ffd28a}.date-chip{align-self:center;background:#18252d;color:#9eafb9;border-radius:7px;font-size:11px;padding:7px 11px;margin:8px 0 14px;box-shadow:0 1px 2px #0003}.chat .composer{background:#202c33;border:0;padding:12px 18px}.chat .compose-box{border:0;background:transparent;overflow:visible}.chat .compose-top{border:0;padding:0 4px 7px;color:#adbec7}.chat .composer textarea{display:block;background:#2a3942;color:#e9edef;border:0;border-radius:9px;height:60px;min-height:50px;max-height:180px;padding:14px 16px;resize:vertical}.chat .compose-foot{padding:9px 0 0}.chat #send{background:#00a884;border-radius:22px;padding:0 22px;min-height:44px;color:#062b25}.chat #send:hover{background:#11bb98}.chat #hint{font-size:10px;color:#a3b2ba}.chat #send-error{margin:6px 3px 0}.chat #ai{color:#beb3ef}.chat .messages:empty:after{content:'No messages yet';margin:auto;color:#8396a2}.chat-head .outline{background:#26363f;border-color:#3b4c55}.chat .muted{color:#9eafb9}.message.pending{opacity:.88}.message.uncertain .bubble{outline:1px solid #b18946}.receipt-note{font-size:10px;line-height:1.5;color:#a1b3bf;margin:8px 0 0}.composer .error:empty{display:none}@media(max-width:640px){.chat .messages{padding:20px 16px}.message{max-width:88%}.chat .composer{padding:10px 12px}.chat .composer textarea{font-size:16px;height:55px}.chat .compose-foot .muted{max-width:60%}.chat #send{padding:0 17px}.chat .chat-head{min-height:72px}.receipt-note{font-size:9px}}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.avatar[data-photo-brand]{overflow:hidden;flex-shrink:0}
/* Local, request-bound placeholders. Never blank populated data during polling. */
.is-loading{position:relative;min-height:120px;overflow:hidden}.is-loading>:not(.skeleton-overlay){visibility:hidden!important}.skeleton-overlay{position:absolute;inset:0;z-index:9;background:#172330;padding:20px;overflow:hidden;pointer-events:auto}.skeleton-chat{background:#0b141a;padding:32px}.skeleton-list{padding:16px 10px;background:#172330}.sk-row{display:flex;align-items:flex-start;gap:14px;padding:18px 0;border-bottom:1px solid #2a3942;min-height:96px}.sk-circle{width:40px!important;height:40px!important;border-radius:50%!important;flex:none}.sk-lines{flex:1;padding-top:3px}.sk-line{display:block;position:relative;background:#2a3a47;height:12px;width:90%;border-radius:5px;margin-bottom:11px;overflow:hidden}.sk-line:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 10%,#9bb8c020 45%,transparent 80%);transform:translateX(-100%);animation:shimmer 1.5s ease-in-out infinite}.sk-line.short{width:56%;height:10px}.sk-line.tiny{width:35%;height:8px}.sk-message{height:65px;width:60%;border-radius:12px;margin-bottom:18px}.sk-message.right{margin-left:auto;background:#17443e;width:68%}.skeleton-avatar{padding:0;border-radius:50%;background:#2a3a47}.skeleton-avatar .sk-row{display:none}.skeleton-avatar:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent,#9bb8c020,transparent);animation:shimmer 1.5s infinite}.route-page.is-loading{min-height:440px}.route-page>.skeleton-overlay{padding:24px;border:1px solid #293a46;border-radius:12px}.session-sk{width:min(260px,65vw);margin:20px auto}.session-sk .sk-line{height:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes shimmer{to{transform:translateX(100%)}}@media(prefers-reduced-motion:reduce){.sk-line:after,.skeleton-avatar:after{animation:none;background:none}}@media(max-width:640px){.route-page>.skeleton-overlay{padding:16px}.sk-row{gap:10px}.skeleton-chat{padding:24px 16px}}
#managed-list.is-loading{min-height:320px}#brands.is-loading{min-height:180px}#contact-panel.is-loading{min-height:100%}.route-page.is-loading{max-height:520px}.route-page.is-loading>.skeleton-overlay{min-height:440px}#test-answer.is-loading{min-height:140px}
.brand-photo-field{border:1px solid #344654;border-radius:10px;margin:18px 0;padding:16px}.brand-photo-field .avatar{width:64px;height:64px;margin-bottom:12px;overflow:hidden}#brands button{display:flex;align-items:center;gap:9px}#brands .avatar{width:25px;height:25px;font-size:10px;flex-shrink:0}
/* Keep composer help available to assistive technology, not visible chrome. */
.composer #hint,.composer .receipt-note{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.composer .compose-foot{justify-content:flex-end}
/* Lock the workspace to viewport; scroll content, never the shell. */
html,body{width:100%;height:100%;min-height:0;overflow:hidden}body{overscroll-behavior:none}.app{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;grid-template-rows:minmax(0,1fr);min-height:0;max-height:100dvh;overflow:hidden}.app>.nav,.app>.list,.app>.chat,.app>.contact{min-height:0;max-height:100%;overflow:hidden}.nav{overflow-y:auto!important}.list{min-height:0;display:flex;flex-direction:column}.list-head,.tabs,.status{flex-shrink:0}.convos{min-height:0;flex:1 1 0;overflow-y:auto;overscroll-behavior:contain}.chat{min-height:0;display:flex;flex-direction:column}.chat-head,.composer{flex:0 0 auto}.messages{min-height:0;flex:1 1 0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.messages>.message,.messages>.date-chip{flex-shrink:0}.contact{overflow-y:auto!important}.composer{position:relative;z-index:1}.chat .composer textarea{max-height:min(180px,25dvh)}.workspace-page{overscroll-behavior:contain}.page-open .app>.nav{height:100%}@media(max-width:640px){.app{display:block}.app>.list,.app>.chat{height:100%;max-height:100%;min-height:0}.app>.chat{display:none}.app.in-chat>.chat{display:flex}.app.in-chat>.list{display:none}.chat .composer textarea{max-height:22dvh}}
.nav .push-test-result{font-size:10px;line-height:1.5;margin:4px 9px 10px;overflow-wrap:anywhere}.push-test-result:empty{display:none}@media(max-width:850px) and (min-width:641px){.nav [data-push-test]{font-size:10px;line-height:1.2}.nav .push-test-result{font-size:8px;margin:2px}}
.unread-badge{display:inline-flex;justify-content:center;align-items:center;min-width:21px;height:21px;border-radius:12px;padding:2px 6px;background:#00a884;color:#032c23;font-size:10px;font-weight:750;flex-shrink:0}.convo.unread .name,.convo.unread .preview{font-weight:750;color:#edf7f5}.convo.unread .small{color:#41c7a3}.convo.unread .preview{color:#d6e7e3}#all{display:flex;gap:8px;align-items:center}#nav-unread{margin-left:auto}.convo .small{white-space:nowrap}
.messages{position:relative}.unread-divider{align-self:stretch;flex-shrink:0;text-align:center;background:#182d32;color:#79d8c5;font-size:11px;padding:9px 14px;border-radius:5px;margin:10px 0;box-shadow:0 1px 2px #0003}
.compose-box{position:relative}.saved-reply-menu{position:absolute;bottom:100%;left:0;right:0;background:#182b32;border:1px solid #3c535e;border-radius:10px;max-height:300px;overflow:auto;z-index:12;box-shadow:0 -8px 30px #0005;padding:6px}.saved-reply-menu button{display:block;text-align:left;width:100%;padding:11px 12px}.saved-reply-menu button:focus{outline:2px solid #00a884;background:#24403e}.saved-reply-menu small{display:block;color:#a7bfc3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:5px}.saved-reply-menu p{padding:8px 12px}
.customer-tag-list{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}.customer-tag{font-size:9px;padding:3px 6px;background:#1f4648;color:#a6ded2;border-radius:4px}.contact label,#notes-dialog label{display:block;margin:12px 0 6px;font-size:11px}.contact input,.contact textarea{font-size:12px;padding:9px}.contact textarea{height:110px;resize:vertical}.contact #customer-meta-save{font-size:11px;margin-top:10px;width:100%}#notes-dialog textarea{height:170px}#notes-dialog .primary{margin-top:12px}#open-notes{font-size:11px;padding:6px 9px}@media(max-width:640px){.chat-head{padding:10px}.chat-head .chat-info .name{font-size:12px}.chat-head #resolve{font-size:11px;padding:6px}.chat-head{gap:6px}}

#service-hours-form input[type=checkbox]{width:auto;display:inline-block;margin:0 8px 0 0}#service-hours-form label:has(input[type=checkbox]){display:inline-flex;align-items:center;margin:12px 12px 12px 0}#service-days{flex-wrap:wrap}
