/* TS WhatsApp 11.8.0 — unified UI system. Non-destructive override after legacy styles. */
:root{--ts8-radius:14px;--ts8-radius-sm:10px;--ts8-space:16px;--ts8-border:rgba(132,154,170,.20);--ts8-shadow:0 12px 38px rgba(11,30,43,.06);--ts8-ring:#16a786;--ts8-transition:160ms cubic-bezier(.2,.7,.2,1)}
.app-body{font-variant-numeric:tabular-nums;text-rendering:optimizeLegibility}
.app-body .app-shell,.app-body .workspace,.app-body .content{min-width:0}
.app-body .content{overflow-x:clip;max-width:100%;line-height:1.48}
.app-body .content>.page-heading{margin-bottom:22px}
.app-body .page-heading h1{font-weight:750;letter-spacing:-.035em;line-height:1.22}
.app-body .page-heading p{max-width:75ch;line-height:1.55;opacity:.84}
.app-body .sidebar{overscroll-behavior:contain}
.app-body .sidebar .nav-item{transition:background var(--ts8-transition),color var(--ts8-transition),transform var(--ts8-transition);border-radius:10px;min-height:39px}
.app-body .sidebar .nav-item:not(.nav-disabled):active{transform:scale(.985)}
.app-body .sidebar .nav-item svg{width:18px;height:18px;flex-shrink:0}
.app-body .sidebar-label{letter-spacing:.09em;font-size:10px;font-weight:750;margin-top:15px}
.app-body .sidebar .brand-row{min-width:0}
.app-body .sidebar .brand-copy{min-width:0}
.app-body .sidebar .brand-copy b,.app-body .sidebar .brand-copy span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-body .topbar{min-height:65px;gap:12px;min-width:0}
.app-body .breadcrumb{min-width:0;flex-shrink:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-body .topbar-right,.app-body .workspace-switcher{min-width:0}
.app-body .workspace-switcher select{max-width:min(240px,23vw);text-overflow:ellipsis}
.app-body .topbar-search form{width:100%;min-width:0}
.app-body .account-dropdown{z-index:1100;max-height:min(600px,calc(100dvh - 78px));overflow-y:auto}
.app-body :is(button,.btn,a.btn,input[type=submit],input[type=button]){min-height:36px;border-radius:var(--ts8-radius-sm);transition:background var(--ts8-transition),border-color var(--ts8-transition),box-shadow var(--ts8-transition),transform var(--ts8-transition);font-family:inherit;font-weight:600;letter-spacing:0;cursor:pointer;text-decoration:none}
.app-body :is(button,.btn,a.btn,input[type=submit],input[type=button]):not(:disabled):active{transform:translateY(1px)}
.app-body :is(button,.btn,a.btn):disabled,.app-body button[aria-disabled=true]{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none!important}
.app-body :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select){border-radius:var(--ts8-radius-sm);min-height:38px;max-width:100%;font:inherit;font-size:13px;line-height:1.45;transition:border-color var(--ts8-transition),box-shadow var(--ts8-transition)}
.app-body input[type=checkbox],.app-body input[type=radio]{accent-color:var(--ts8-ring);cursor:pointer;width:15px;height:15px;vertical-align:middle}
.app-body :is(input,textarea,select):focus-visible{outline:2px solid var(--ts8-ring);outline-offset:1px}
.app-body :is(button,a,select,input,textarea,[role=button]):focus-visible{outline:2px solid var(--ts8-ring)!important;outline-offset:2px!important}
.app-body label{line-height:1.5}
.app-body textarea{min-height:82px;resize:vertical}
.app-body :is(.card,.panel,.stat-card,.metric-card,.source-card,.summary-card){border-radius:var(--ts8-radius);min-width:0}
.app-body :is(.card,.panel,.source-card){overflow-wrap:anywhere}
.app-body :is(.card,.panel) :is(h2,h3,h4){line-height:1.35;letter-spacing:-.015em}
.app-body :is(.tabs,.tab-nav,.filters,.filter-row,.actions,.toolbar,.card-actions,.form-actions,.bulk-toolbar,.bulk-actions){column-gap:9px;row-gap:9px;align-items:center;flex-wrap:wrap;min-width:0}
.app-body :is(.table-wrap,.table-responsive,.table-scroll,.source-table-wrap,.table-container){max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;border-radius:var(--ts8-radius-sm)}
.app-body table{border-spacing:0;width:100%;font-size:13px}
.app-body table th{font-weight:700;letter-spacing:.005em;line-height:1.4;vertical-align:middle}
.app-body table th,.app-body table td{padding:11px 12px;vertical-align:middle}
.app-body table :is(th,td) :is(button,.btn){min-height:32px}
.app-body table td{overflow-wrap:anywhere}
.app-body table tbody tr{transition:background var(--ts8-transition)}
.app-body :is(.badge,.status,.chip,.pill){max-width:100%;overflow-wrap:anywhere}
.app-body :is(.notice,.alert,.flash,.error-message,.success-message){border-radius:12px;overflow-wrap:anywhere;line-height:1.55;padding-block:12px}
.app-body :is(.modal,.dialog,[role=dialog]){max-width:min(96vw,100%);max-height:calc(100dvh - 30px)}
.app-body :is(.modal,.dialog,[role=dialog]) :is(.modal-content,.dialog-content){max-width:100%;max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain}
.app-body :is(.pagination,.pager){display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.app-body .pagination a{min-width:35px;min-height:35px;display:inline-grid;place-items:center;border-radius:9px}
.app-body :is(.empty-state,.empty,.no-data){max-width:100%;overflow-wrap:anywhere}
.app-body .ts8-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:14px}
.app-body .ts8-print-hidden{display:inherit}
.app-body .ts8-sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.app-body .ts8-feedback{position:fixed;bottom:22px;right:22px;z-index:9999;max-width:min(410px,calc(100vw - 28px));padding:11px 16px;border-radius:12px;color:#fff;background:#1b3441;box-shadow:0 12px 32px rgba(0,0,0,.23);font-size:13px;line-height:1.5}
.app-body .ts8-feedback[hidden]{display:none!important}
.app-body .ts8-feedback[data-kind=error]{background:#96383f}
.app-body .ts8-feedback[data-kind=success]{background:#176d57}
.app-body .ts8-loading{opacity:.6;pointer-events:none}
.app-body .ts8-scroll-hint{font-size:11px;opacity:.68;margin:0 0 7px;text-align:right}
.app-body .ts8-backtotop{position:fixed;right:16px;bottom:16px;z-index:90;width:40px;height:40px;border-radius:50%!important;box-shadow:0 7px 22px rgba(0,0,0,.16);display:none!important}
.app-body .ts8-backtotop.is-visible{display:inline-flex!important}
.app-body .ts8-backtotop svg{width:17px;height:17px}
/* Specific pages: compact density without changing workflow */
.app-body.page-inbox .content{min-height:0}
.app-body.page-inbox :is(.conversation-list,.chat-list,.message-list,.messages){min-width:0}
.app-body.page-inbox :is(.message,.message-bubble,.chat-bubble){overflow-wrap:anywhere;max-width:100%}
.app-body.page-campaigns :is(.campaign-actions,.campaign-toolbar,.campaign-filters){display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.app-body.page-contacts :is(.contacts-actions,.contact-filters){display:flex;flex-wrap:wrap;gap:10px}
.app-body.page-ai_chatbot :is(.ai-actions,.ai-tabs,.ai-toolbar){display:flex;flex-wrap:wrap;gap:9px}
.app-body :is(.form-grid,.settings-grid,.stats-grid){min-width:0}
.app-body :is(.form-grid,.settings-grid,.stats-grid)>*{min-width:0}
@media(max-width:1150px){.app-body .workspace-switcher select{max-width:180px}.app-body .topbar-search{flex:1 1 180px}.app-body .breadcrumb{max-width:155px}}
@media(max-width:900px){.app-body .topbar{height:auto;padding-block:10px;flex-wrap:wrap;row-gap:9px}.app-body .workspace-switcher{flex:0 1 auto}.app-body .workspace-switcher select{max-width:min(52vw,270px)}.app-body .topbar-search{flex:1 1 210px}.app-body .content{padding-inline:clamp(12px,3vw,22px)}.app-body :is(.card,.panel){max-width:100%}}
@media(max-width:600px){.app-body .content{padding-inline:12px}.app-body .page-heading h1{font-size:21px}.app-body .topbar{gap:8px}.app-body .topbar-right{margin-left:auto}.app-body .workspace-switcher{order:3;flex:1 1 190px}.app-body .workspace-switcher select{max-width:100%}.app-body .topbar-search{order:4;flex-basis:100%}.app-body table th,.app-body table td{padding:9px 10px}.app-body :is(.modal,.dialog,[role=dialog]){margin-inline:5px}.app-body .ts8-feedback{bottom:72px;right:14px}}
@media(prefers-reduced-motion:reduce){.app-body *, .app-body *::before,.app-body *::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{.app-body .ts8-backtotop,.app-body .ts8-feedback,.app-body .ts8-scroll-hint{display:none!important}}
