/* Abracket Suite - app.css
   Niro is the visual reference (scope 7): same design tokens, system
   font at 14px, cards, compact SweetAlert2, hub sub-navs. New for a
   multi-module app: grouped expandable sidebar, command bar, shared
   table/kanban/timeline components. Partner theming overrides
   --accent/--accent-2 at load (index.php). */
:root{
  --surface-1:#fcfcfb; --page:#f9f9f7; --text-primary:#0b0b0b; --text-secondary:#52514e; --text-muted:#898781;
  --gridline:#e1e0d9; --border:rgba(11,11,11,0.10);
  --accent:#1bae70; --accent-wash:rgba(27,174,112,0.08); --accent-2:#06b6d4; --accent-2-wash:rgba(6,182,212,0.10);
  --good:#1bae70; --good-text:#0c7a4f; --good-wash:rgba(27,174,112,0.08);
  --warning:#fab219; --warning-wash:rgba(250,178,25,0.12); --serious:#ec835a;
  --critical:#d03b3b; --critical-wash:rgba(208,59,59,0.08);
  --indigo:#6952d6; --indigo-wash:rgba(105,82,214,0.10);
  --radius:14px; --shadow:0 1px 3px rgba(11,11,11,0.06);
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{margin:0;background:var(--page);color:var(--text-primary);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;font-size:14px;}
a{color:var(--accent);}
h1,h2,h3{margin:0;}
.muted{color:var(--text-muted);}
.small{font-size:12.5px;}
.hidden{display:none !important;}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.row.between{justify-content:space-between;}
.grow{flex:1;min-width:0;}
.mt{margin-top:14px;}.mb{margin-bottom:14px;}
.nowrap{white-space:nowrap;}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;}

/* ---------- Onboarding (Niro's split card) ---------- */
.onboard-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.onboard-shell{width:100%;max-width:960px;display:flex;background:var(--surface-1);border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);}
.onboard-showcase{flex:1 1 50%;background:var(--accent-wash);display:flex;align-items:center;justify-content:center;padding:44px 40px;background-size:cover;background-position:center;}
.onboard-showcase-inner{max-width:330px;}
.onboard-showcase-tagline{font-size:21px;font-weight:700;line-height:1.3;margin-bottom:22px;}
.onboard-showcase-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.onboard-showcase-features li{position:relative;padding-left:25px;font-size:13.5px;color:var(--text-secondary);line-height:1.45;}
.onboard-showcase-features li::before{content:"";position:absolute;left:0;top:2px;width:16px;height:16px;border-radius:50%;background:var(--accent);}
.onboard-showcase-features li::after{content:"";position:absolute;left:5.5px;top:5px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(40deg);}
.onboard-card{flex:1 1 50%;min-width:0;padding:40px 44px;display:flex;flex-direction:column;justify-content:center;}
.onboard-logo{width:44px;height:44px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;margin-bottom:16px;background:var(--accent);color:#fff;font-weight:800;font-size:20px;}
.onboard-logo img{width:100%;height:100%;object-fit:contain;background:#fff;}
.onboard-title{font-size:20px;font-weight:700;margin-bottom:6px;}
.onboard-sub{font-size:14px;color:var(--text-secondary);line-height:1.5;margin-bottom:20px;}
.auth-tabs{display:flex;gap:4px;background:var(--page);border:1px solid var(--gridline);border-radius:10px;padding:3px;margin-bottom:18px;}
.auth-tab{flex:1;appearance:none;border:none;background:transparent;font:inherit;font-weight:600;color:var(--text-secondary);padding:8px 10px;border-radius:8px;cursor:pointer;}
.auth-tab.active{background:var(--surface-1);color:var(--text-primary);box-shadow:0 1px 2px rgba(11,11,11,.08);}
.auth-panel{display:none;}.auth-panel.active{display:block;}
.auth-foot{text-align:center;margin-top:14px;font-size:12.5px;color:var(--text-secondary);}
.powered-by{text-align:center;margin-top:18px;font-size:11.5px;color:var(--text-muted);}
@media (max-width:760px){.onboard-showcase{display:none;}.onboard-card{padding:30px 24px;}.onboard-shell{max-width:440px;}}

/* ---------- Forms ---------- */
label.field,div.field{display:block;margin-bottom:12px;}
label.field > span,div.field > span{display:block;font-size:12.5px;font-weight:600;color:var(--text-secondary);margin-bottom:5px;}
input,select,textarea{width:100%;border:1px solid var(--gridline);border-radius:8px;padding:9px 12px;font:inherit;background:var(--page);color:var(--text-primary);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:#fff;}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent);}
input[type=color]{padding:2px;height:38px;}
textarea{min-height:80px;resize:vertical;}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:0 14px;}
.form-grid > *{min-width:0;}
.form-error{color:var(--critical);font-size:13px;margin:4px 0 10px;min-height:0;}
.form-error:empty{display:none;}
.hint{font-size:12px;color:var(--text-muted);margin-top:4px;line-height:1.4;}
.check{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:13.5px;cursor:pointer;}

/* ---------- Buttons / badges ---------- */
.btn{appearance:none;border:none;border-radius:8px;padding:9px 15px;font:inherit;font-weight:600;cursor:pointer;background:var(--accent);color:#fff;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none;line-height:1.2;}
.btn:hover{opacity:.9;}.btn:disabled{opacity:.55;cursor:default;}
.btn.secondary{background:var(--surface-1);color:var(--text-secondary);border:1px solid var(--gridline);}
.btn.danger{background:var(--critical);}
.btn.ghost{background:transparent;color:var(--text-secondary);}
.btn.sm{padding:6px 11px;font-size:12.5px;}
.btn.block{width:100%;justify-content:center;padding:11px;}
.btn-link{appearance:none;border:none;background:transparent;padding:0;font:inherit;font-size:12.5px;font-weight:600;color:var(--accent);cursor:pointer;}
.btn-link:hover{text-decoration:underline;}
.btn svg{width:15px;height:15px;}
.badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap;background:var(--gridline);color:var(--text-secondary);}
.badge.good{background:var(--good-wash);color:var(--good-text);}
.badge.warn{background:var(--warning-wash);color:#8a5a00;}
.badge.bad{background:var(--critical-wash);color:var(--critical);}
.badge.info{background:var(--accent-2-wash);color:#0e6b7a;}
.badge.indigo{background:var(--indigo-wash);color:var(--indigo);}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;padding:2px 8px;border-radius:12px;background:var(--page);border:1px solid var(--gridline);color:var(--text-secondary);margin:1px 2px 1px 0;}
.chip button{border:none;background:none;cursor:pointer;color:var(--text-muted);padding:0;font-size:13px;line-height:1;}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px;}

/* ---------- App shell ---------- */
.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.banner{padding:8px 20px;font-size:13px;display:flex;gap:12px;align-items:center;justify-content:center;}
.banner.warn{background:var(--warning-wash);color:#6b4600;}
.banner.info{background:var(--indigo-wash);color:var(--indigo);}
.banner.bad{background:var(--critical-wash);color:var(--critical);}
.topbar{display:flex;align-items:center;gap:14px;padding:10px 20px;background:var(--surface-1);border-bottom:1px solid var(--gridline);flex-shrink:0;z-index:30;}
.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;letter-spacing:-.01em;cursor:pointer;min-width:0;}
.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0;overflow:hidden;}
.brand-mark img{width:100%;height:100%;object-fit:contain;background:#fff;}
.brand-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cmd-trigger{flex:1;max-width:420px;margin:0 auto;display:flex;align-items:center;gap:8px;border:1px solid var(--gridline);background:var(--page);border-radius:9px;padding:7px 12px;color:var(--text-muted);cursor:pointer;font-size:13px;}
.cmd-trigger kbd{margin-left:auto;font-size:11px;border:1px solid var(--gridline);border-radius:5px;padding:1px 5px;background:#fff;}
.cmd-trigger svg{width:15px;height:15px;}
.user-chip{position:relative;}
.user-chip-btn{display:flex;align-items:center;gap:8px;border:none;background:transparent;font:inherit;cursor:pointer;padding:4px 8px;border-radius:9px;}
.user-chip-btn:hover{background:var(--page);}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-wash);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0;}
.avatar.lg{width:44px;height:44px;font-size:16px;}
.dropdown{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface-1);border:1px solid var(--gridline);border-radius:12px;box-shadow:0 8px 24px rgba(11,11,11,.10);min-width:220px;padding:6px;display:none;z-index:60;}
.dropdown.open{display:block;}
.dropdown-item{display:block;width:100%;text-align:left;border:none;background:none;font:inherit;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--text-primary);}
.dropdown-item:hover{background:var(--page);}
.dropdown-head{padding:8px 10px 10px;border-bottom:1px solid var(--gridline);margin-bottom:4px;}
.body-row{display:flex;flex:1;min-height:0;}
.sidebar{width:228px;flex-shrink:0;background:var(--surface-1);border-right:1px solid var(--gridline);overflow-y:auto;padding:10px 8px 20px;transition:width .15s ease;}
.sidebar.collapsed{width:62px;}
.sidebar.collapsed .nav-text,.sidebar.collapsed .nav-group-label,.sidebar.collapsed .nav-caret{display:none;}
.sidebar.collapsed .nav-item{justify-content:center;padding:9px 0;}
.nav-group{margin-bottom:4px;}
.nav-group-label{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding:12px 10px 4px;cursor:pointer;user-select:none;}
.nav-caret{transition:transform .15s;}
.nav-group.closed .nav-caret{transform:rotate(-90deg);}
.nav-group.closed .nav-items{display:none;}
.nav-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;font:inherit;font-size:13.5px;color:var(--text-secondary);padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left;position:relative;}
.nav-item:hover{background:var(--page);color:var(--text-primary);}
.nav-item.active{background:var(--accent-wash);color:var(--accent);font-weight:600;}
.nav-item svg{width:18px;height:18px;flex-shrink:0;}
.nav-count{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.nav-collapse{margin-top:10px;}
.main-col{flex:1;min-width:0;overflow-y:auto;display:flex;flex-direction:column;}
.page{padding:22px 26px 40px;max-width:1400px;width:100%;margin:0 auto;flex:1;display:flex;flex-direction:column;min-height:0;}
.page.full{max-width:none;padding:14px 16px;}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap;}
.page-title{font-size:20px;font-weight:700;}
.page-sub{font-size:13px;color:var(--text-muted);margin-top:3px;}
.crumbs{font-size:12.5px;color:var(--text-muted);margin-bottom:6px;}
.crumbs a{color:var(--text-muted);text-decoration:none;}.crumbs a:hover{color:var(--accent);}
.mobile-nav-btn{display:none;border:none;background:none;cursor:pointer;padding:4px;}
.mobile-nav-btn svg{width:22px;height:22px;}
@media (max-width:860px){
  .sidebar{position:fixed;top:0;bottom:0;left:0;z-index:80;transform:translateX(-100%);transition:transform .2s;width:250px !important;}
  .sidebar.mobile-open{transform:none;box-shadow:0 0 40px rgba(0,0,0,.15);}
  .sidebar.collapsed .nav-text,.sidebar.collapsed .nav-group-label{display:flex;}
  .mobile-nav-btn{display:block;}
  .cmd-trigger kbd,.cmd-trigger span{display:none;}
  .cmd-trigger{flex:0 0 auto;margin:0 0 0 auto;}
  .topbar{padding:8px 12px;gap:8px;}
  .user-chip-name{display:none;}
  .page{padding:16px 14px 30px;}
  .nav-collapse{display:none;}
}
.scrim{position:fixed;inset:0;background:rgba(11,11,11,.25);z-index:70;display:none;}
.scrim.open{display:block;}

/* ---------- Cards / KPIs ---------- */
.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px;}
.card-title{font-size:15px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.grid{display:grid;gap:14px;}
.grid.kpis{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin-bottom:16px;}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}
.kpi{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;}
.kpi-label{font-size:12px;color:var(--text-muted);font-weight:600;}
.kpi-value{font-size:24px;font-weight:700;margin-top:4px;letter-spacing:-.01em;}
.kpi-sub{font-size:12px;color:var(--text-muted);margin-top:2px;}
.bar-row{display:flex;align-items:center;gap:10px;margin:7px 0;font-size:13px;}
.bar-row .bar-label{width:120px;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);}
.bar-track{flex:1;height:10px;background:var(--page);border-radius:6px;overflow:hidden;}
.bar-fill{height:100%;border-radius:6px;background:var(--accent);}
.bar-row .bar-val{width:44px;text-align:right;font-weight:600;}
.spark{display:flex;align-items:flex-end;gap:4px;height:110px;padding-top:6px;}
.spark-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;align-items:stretch;min-width:0;}
.spark-col .s{background:var(--accent);border-radius:3px 3px 0 0;min-height:1px;}
.spark-col .r{background:var(--accent-2);border-radius:3px 3px 0 0;min-height:1px;}
.spark-x{display:flex;gap:4px;font-size:10px;color:var(--text-muted);margin-top:4px;}
.spark-x span{flex:1;text-align:center;overflow:hidden;white-space:nowrap;}
.legend{display:flex;gap:14px;font-size:12px;color:var(--text-secondary);}

/* ---------- Tables ---------- */
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;}
.toolbar input[type=search],.toolbar select{width:auto;min-width:150px;padding:7px 10px;background:var(--surface-1);}
.toolbar input[type=search]{min-width:220px;}
.bulkbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--accent-wash);border:1px solid var(--accent);border-radius:10px;padding:8px 12px;margin-bottom:10px;font-size:13px;}
.table-wrap{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);overflow:auto;}
table.data{width:100%;border-collapse:collapse;font-size:13.5px;}
table.data th{text-align:left;font-size:11.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-bottom:1px solid var(--gridline);background:var(--page);white-space:nowrap;position:sticky;top:0;}
table.data td{padding:10px 12px;border-bottom:1px solid var(--gridline);vertical-align:middle;}
table.data tr:last-child td{border-bottom:none;}
table.data tr.clickable{cursor:pointer;}
table.data tr.clickable:hover td{background:var(--accent-wash);}
table.data td.num,table.data th.num{text-align:right;}
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 4px;font-size:12.5px;color:var(--text-muted);}
.empty{padding:40px 20px;text-align:center;color:var(--text-muted);}
.empty strong{display:block;color:var(--text-primary);font-size:15px;margin-bottom:6px;}

/* ---------- Tabs / hubs ---------- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--gridline);margin-bottom:16px;overflow-x:auto;flex-shrink:0;}
/* .page is a flex column: blocks with overflow (tabs, pickers, tables) must keep their height instead of being squeezed when the page is long */
.page:not(.full) > *{flex-shrink:0;}
.tab{appearance:none;border:none;background:none;font:inherit;font-size:13.5px;font-weight:600;color:var(--text-secondary);padding:9px 4px;margin-right:16px;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;}
.tab.active{color:var(--text-primary);border-bottom-color:var(--accent);}
.hub{display:flex;gap:24px;align-items:flex-start;}
.hub-nav{width:200px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;}
.hub-nav-label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding:12px 10px 4px;}
.hub-nav-item{appearance:none;border:none;background:none;font:inherit;font-size:13.5px;text-align:left;padding:8px 10px;border-radius:8px;color:var(--text-secondary);cursor:pointer;}
.hub-nav-item:hover{background:var(--page);color:var(--text-primary);}
.hub-nav-item.active{background:var(--accent-wash);color:var(--accent);font-weight:600;}
.hub-body{flex:1;min-width:0;}
@media (max-width:860px){.hub{flex-direction:column;}.hub-nav{width:100%;flex-direction:row;overflow-x:auto;position:static;}.hub-nav-label{display:none;}.hub-nav-item{white-space:nowrap;}}

/* ---------- Kanban ---------- */
.kanban{display:flex;gap:12px;overflow-x:auto;flex:1;min-height:0;padding-bottom:6px;align-items:flex-start;}
.kanban-col{flex:0 0 272px;background:var(--page);border:1px solid var(--gridline);border-radius:12px;display:flex;flex-direction:column;max-height:100%;}
.kanban-col.drop{border-color:var(--accent);background:var(--accent-wash);}
.kanban-head{padding:10px 12px;display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;border-bottom:1px solid var(--gridline);}
.kanban-head .count{margin-left:auto;color:var(--text-muted);font-weight:600;font-size:12px;}
.kanban-cards{padding:8px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:60px;}
.kanban-more{align-self:center;flex:0 0 auto;}
.kanban-more[hidden]{display:none;}
.kcard{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:grab;font-size:13px;}
.kcard:hover{border-color:var(--accent);}
.kcard.dragging{opacity:.5;}
.kcard-name{font-weight:600;margin-bottom:3px;}
.kcard-meta{font-size:12px;color:var(--text-muted);display:flex;gap:8px;flex-wrap:wrap;}

/* ---------- Drawer / modal ---------- */
.drawer-wrap{position:fixed;inset:0;z-index:90;display:flex;justify-content:flex-end;background:rgba(11,11,11,.25);}
.drawer{width:min(560px,100%);background:var(--surface-1);height:100%;display:flex;flex-direction:column;box-shadow:-10px 0 40px rgba(0,0,0,.12);animation:slidein .18s ease;}
@keyframes slidein{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}
.drawer-head{padding:16px 20px;border-bottom:1px solid var(--gridline);display:flex;gap:12px;align-items:center;}
.drawer-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px 20px;}
.drawer-foot{padding:12px 20px;border-top:1px solid var(--gridline);display:flex;gap:8px;justify-content:flex-end;}

html.modal-open,html.modal-open body{overflow:hidden;}
.modal-wrap{position:fixed;inset:0;z-index:95;background:rgba(15,17,16,.42);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px 16px;animation:mfade .14s ease;}
.modal-wrap.closing{animation:mfadeout .14s ease forwards;}
.modal-wrap + .modal-wrap{background:rgba(15,17,16,.2);}
@keyframes mfade{from{opacity:0}to{opacity:1}}
@keyframes mfadeout{to{opacity:0}}
.modal{position:relative;background:var(--surface-1);border-radius:16px;width:100%;max-width:560px;max-height:min(860px,calc(100vh - 48px));max-height:min(860px,calc(100dvh - 48px));
  box-shadow:0 24px 70px rgba(0,0,0,.22),0 2px 6px rgba(0,0,0,.06);display:flex;flex-direction:column;min-width:0;overflow:hidden;animation:mpop .18s cubic-bezier(.2,.9,.3,1.2);}
.modal.size-sm{max-width:420px;}
.modal.size-md{max-width:560px;}
.modal.size-lg{max-width:860px;}
.modal.size-xl{max-width:1100px;}
@keyframes mpop{from{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.modal.nudge{animation:mnudge .32s ease;}
@keyframes mnudge{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
.modal-head{flex-shrink:0;padding:16px 16px 14px 22px;border-bottom:1px solid var(--gridline);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.modal-titles{min-width:0;flex:1;}
.modal-title{font-weight:700;font-size:16.5px;line-height:1.35;overflow-wrap:anywhere;}
.modal-sub{font-size:12.5px;color:var(--text-muted);margin-top:3px;}
.modal-body{flex:1 1 auto;min-height:0;padding:18px 22px 6px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;}
.modal-body::after{content:"";display:block;height:12px;}
.modal-foot{flex-shrink:0;padding:12px 22px;border-top:1px solid var(--gridline);display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface-1);}
.modal-alert{flex-shrink:0;margin:0 22px 12px;padding:9px 12px;border-radius:10px;background:var(--critical-wash);color:var(--critical);font-size:13px;line-height:1.45;display:flex;gap:9px;align-items:flex-start;}
.modal-alert[hidden]{display:none;}
.ma-ic{flex-shrink:0;width:18px;height:18px;border-radius:50%;background:var(--critical);color:#fff;font-weight:800;font-size:12px;display:inline-flex;align-items:center;justify-content:center;margin-top:1px;}
.x-btn{border:none;background:none;width:32px;height:32px;flex-shrink:0;border-radius:8px;color:var(--text-muted);cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:22px;line-height:1;}
.x-btn:hover{background:var(--page);color:var(--text-primary);}
.x-btn:focus{outline:none;}.x-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.x-btn svg{width:18px;height:18px;}
.modal.is-busy .modal-body{pointer-events:none;opacity:.7;}
/* Everything inside a modal must shrink to its width - this is what kept
   inputs, selects and copy fields from spilling past the edge. */
.modal-body *,.drawer-body *{min-width:0;}
.modal-body input,.modal-body select,.modal-body textarea{max-width:100%;}
.modal-body img,.modal-body video{max-width:100%;height:auto;}
.modal-body p,.modal-body .hint,.modal-body li,.modal-body td{overflow-wrap:anywhere;}
.modal-body .form-grid{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));}
.modal-body .row > input,.modal-body .row > select{flex:1 1 160px;width:auto;}
.modal-body .row > .btn{flex-shrink:0;}
.modal-body .copy-field{min-width:0;width:100%;}
.modal-body .copy-field input{flex:1;min-width:0;}
label.field > span.copy-field{display:flex;margin-bottom:0;font-weight:400;}
.modal-body table.data{table-layout:auto;}
.modal-body table.data td,.modal-body table.data th{white-space:normal;}
.modal-body .table-wrap{max-width:100%;}
.modal-body .mapping-table{width:100%;border:1px solid var(--gridline);border-radius:10px;overflow:hidden;display:table;}
.modal-body .mapping-table td:nth-child(2){max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.modal-body .mapping-table td:last-child{width:46%;}
.modal-body .rule select,.modal-body .rule input{flex:1 1 140px;min-width:0;}
.modal-body .rule .btn{flex:0 0 auto;}
.modal-body .card{padding:14px 16px;}
.modal-body .card-title.mt{margin-top:18px;}
.modal-body .stat-pills{gap:8px;}
.modal-body label.field:last-child{margin-bottom:4px;}
.modal-body input[type=file]{padding:18px 14px;border:1.5px dashed var(--gridline);background:var(--page);cursor:pointer;}
.modal-body input[type=file]:hover{border-color:var(--accent);}
/* Dialogs (confirm / prompt / choose / alert) */
.is-dialog .modal-head{border-bottom:none;padding-bottom:4px;}
.is-dialog .modal-body{padding-top:6px;}
.is-dialog .modal-foot{border-top:none;padding-top:4px;padding-bottom:18px;}
.dlg{display:flex;gap:14px;align-items:flex-start;}
.dlg-main{flex:1;min-width:0;}
.dlg-text{margin:2px 0 10px;color:var(--text-secondary);line-height:1.5;}
.dlg-ic{flex-shrink:0;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.dlg-ic svg{width:20px;height:20px;}
.dlg-ic.danger{background:var(--critical-wash);color:var(--critical);}
.dlg-ic.info{background:var(--accent-2-wash);color:#0e6b7a;}
.dlg-ic.question{background:var(--accent-wash);color:var(--accent);}
/* Busy buttons */
.btn-spin{display:none;width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;flex-shrink:0;}
.is-busy > .btn-spin,.modal.is-busy [data-ok] .btn-spin{display:inline-block;}
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:600px){
  .modal-wrap{align-items:flex-end;padding:0;}
  .modal,.modal.size-sm,.modal.size-md,.modal.size-lg,.modal.size-xl{max-width:none;border-radius:18px 18px 0 0;max-height:94vh;max-height:94dvh;animation:msheet .22s cubic-bezier(.2,.9,.3,1);}
  .modal-head{padding:14px 12px 12px 18px;}
  .modal-head::before{content:"";position:absolute;top:6px;left:50%;width:36px;height:4px;margin-left:-18px;border-radius:2px;background:var(--gridline);}
  .modal-body{padding:16px 18px 4px;}
  .modal-alert{margin:0 18px 10px;}
  .modal-foot{padding:10px 18px calc(12px + env(safe-area-inset-bottom));}
  .modal-foot .btn{flex:1;justify-content:center;}
  .modal-foot .btn.ghost{flex:0 0 auto;}
  .modal-body .form-grid{grid-template-columns:1fr;}
  .modal-body .mapping-table td:nth-child(2){display:none;}
  .modal-body .mapping-table th:nth-child(2){display:none;}
  input,select,textarea{font-size:16px;} /* stops iOS zooming into fields */
}
@keyframes msheet{from{transform:translateY(40px);opacity:.3}to{transform:none;opacity:1}}

/* ---------- Toasts ---------- */
.toast-host{position:fixed;right:18px;bottom:18px;z-index:120;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none;width:min(380px,calc(100vw - 24px));}
.toast{pointer-events:auto;position:relative;overflow:hidden;width:100%;display:flex;gap:10px;align-items:flex-start;background:#1c1d1c;color:#f4f4f2;border-radius:12px;padding:11px 10px 12px 12px;box-shadow:0 12px 32px rgba(0,0,0,.22);font-size:13.5px;line-height:1.4;animation:tin .22s cubic-bezier(.2,.9,.3,1.1);}
.toast.out{animation:tout .18s ease forwards;}
.toast.bump{animation:tbump .3s ease;}
@keyframes tin{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@keyframes tout{to{transform:translateX(24px);opacity:0}}
@keyframes tbump{50%{transform:scale(1.03)}}
.toast-ic{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;margin-top:-1px;}
.toast-ic svg{width:14px;height:14px;}
.t-success .toast-ic{background:var(--good);}
.t-error .toast-ic{background:var(--critical);}
.t-warning .toast-ic{background:var(--warning);color:#3d2a00;}
.t-info .toast-ic{background:var(--accent-2);}
.toast-txt{flex:1;min-width:0;overflow-wrap:anywhere;}
.toast-txt b{display:block;margin-bottom:1px;}
.toast-act{display:inline-block;margin-top:6px;border:none;background:rgba(255,255,255,.12);color:#fff;font:inherit;font-weight:600;font-size:12.5px;padding:4px 10px;border-radius:7px;cursor:pointer;}
.toast-x{flex-shrink:0;border:none;background:none;color:rgba(255,255,255,.55);font-size:20px;line-height:1;cursor:pointer;padding:0 4px;margin-top:-2px;}
.toast-x:hover{color:#fff;}
.toast-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left;animation-name:tbar;animation-timing-function:linear;animation-fill-mode:forwards;opacity:.55;}
.t-success .toast-bar{background:var(--good);}.t-error .toast-bar{background:var(--critical);}.t-warning .toast-bar{background:var(--warning);}.t-info .toast-bar{background:var(--accent-2);}
.toast.paused .toast-bar{animation-play-state:paused;}
@keyframes tbar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media (max-width:600px){.toast-host{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;align-items:stretch;}}

/* ---------- Notification bell ---------- */
.notif{position:relative;}
.notif-btn{position:relative;border:none;background:none;width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);}
.notif-btn:hover{background:var(--page);color:var(--text-primary);}
.notif-btn svg{width:19px;height:19px;}
.notif-dot{position:absolute;top:4px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--critical);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface-1);box-sizing:content-box;}
.notif-panel{position:absolute;right:0;top:calc(100% + 6px);width:min(360px,calc(100vw - 24px));background:var(--surface-1);border:1px solid var(--gridline);border-radius:14px;box-shadow:0 12px 36px rgba(11,11,11,.14);z-index:60;display:none;overflow:hidden;}
.notif-panel.open{display:block;}
.notif-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--gridline);font-weight:700;}
.notif-list{max-height:min(420px,60vh);overflow-y:auto;}
.notif-item{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid var(--gridline);font-size:13px;line-height:1.45;}
.notif-item:last-child{border-bottom:none;}
.notif-item.unread{background:var(--accent-wash);}
.notif-item .ni-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--gridline);}
.notif-item.unread .ni-dot{background:var(--accent);}
.notif-item.t-low_balance .ni-dot{background:var(--warning);}
.notif-time{font-size:11.5px;color:var(--text-muted);margin-top:2px;}
.notif-empty{padding:28px 14px;text-align:center;color:var(--text-muted);font-size:13px;}
.banner .x-btn{width:24px;height:24px;font-size:18px;color:inherit;opacity:.7;}
@media (max-width:860px){.notif-panel{position:fixed;left:12px;right:12px;top:56px;width:auto;}}

/* ---------- Bulk select ---------- */
.bulk-all{border:none;background:none;font:inherit;font-weight:600;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline;}
.bulkbar .sep{flex-basis:100%;height:0;}

/* ---------- Timeline ---------- */
.timeline{position:relative;padding-left:22px;}
.timeline::before{content:"";position:absolute;left:7px;top:4px;bottom:4px;width:2px;background:var(--gridline);}
.tl-item{position:relative;margin-bottom:14px;font-size:13px;}
.tl-item::before{content:"";position:absolute;left:-19px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--surface-1);border:2px solid var(--accent);}
.tl-item.t-note::before{border-color:var(--warning);}
.tl-item.t-message_in::before,.tl-item.t-campaign_reply::before{border-color:var(--accent-2);}
.tl-item.t-stage_change::before{border-color:var(--indigo);}
.tl-meta{font-size:11.5px;color:var(--text-muted);margin-top:2px;}

/* ---------- Inbox ---------- */
.inbox{display:flex;flex:1;min-height:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-1);}
.inbox-list{width:320px;flex-shrink:0;border-right:1px solid var(--gridline);display:flex;flex-direction:column;min-height:0;}
.inbox-tabs{display:flex;gap:4px;padding:10px 10px 6px;}
.inbox-tab{flex:1;border:none;background:none;border-radius:8px;padding:6px 4px;font:inherit;font-size:12px;font-weight:600;color:var(--text-muted);cursor:pointer;position:relative;}
.inbox-tab.active{background:var(--accent-wash);color:var(--accent);}
.inbox-tab .n{display:inline-block;min-width:16px;padding:0 4px;border-radius:8px;background:var(--accent);color:#fff;font-size:10px;margin-left:3px;}
.inbox-search{padding:0 10px 8px;}
.inbox-search input{padding:7px 10px;}
.conv-items{flex:1;overflow-y:auto;}
.conv{display:flex;gap:10px;padding:11px 12px;border-bottom:1px solid var(--gridline);cursor:pointer;}
.conv:hover,.conv.active{background:var(--accent-wash);}
.conv-body{flex:1;min-width:0;}
.conv-top{display:flex;gap:6px;align-items:center;}
.conv-name{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.conv-time{font-size:11px;color:var(--text-muted);flex-shrink:0;}
.conv-preview{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;}
.conv.unread .conv-name::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-left:6px;}
.thread{flex:1;display:flex;flex-direction:column;min-width:0;}
.thread-head{padding:10px 14px;border-bottom:1px solid var(--gridline);display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.thread-msgs{flex:1;overflow-y:auto;padding:16px;background:var(--page);display:flex;flex-direction:column;gap:6px;}
.bubble{max-width:72%;padding:8px 11px;border-radius:12px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word;background:var(--surface-1);border:1px solid var(--border);align-self:flex-start;}
.bubble.out{align-self:flex-end;background:#e7f7ef;border-color:rgba(27,174,112,.25);}
.bubble.tpl{background:#eef9fb;border-color:rgba(6,182,212,.25);}
.bubble-meta{font-size:10.5px;color:var(--text-muted);margin-top:3px;text-align:right;}
.bubble .btnchip{display:block;margin-top:5px;font-size:11.5px;font-weight:600;color:#0e6b7a;}
.day-sep{align-self:center;font-size:11px;color:var(--text-muted);background:var(--surface-1);border:1px solid var(--gridline);border-radius:10px;padding:2px 10px;margin:6px 0;}
.composer{border-top:1px solid var(--gridline);padding:10px;display:flex;gap:8px;align-items:flex-end;}
.composer textarea{min-height:42px;max-height:160px;resize:none;}
.session-note{font-size:12px;padding:8px 14px;background:var(--warning-wash);color:#6b4600;display:flex;gap:10px;align-items:center;justify-content:space-between;}
.inbox-side{width:280px;flex-shrink:0;border-left:1px solid var(--gridline);overflow-y:auto;padding:14px;}
.canned-pop{position:absolute;bottom:60px;left:10px;right:10px;background:#fff;border:1px solid var(--gridline);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.1);max-height:220px;overflow-y:auto;z-index:5;}
.canned-pop div{padding:8px 12px;cursor:pointer;font-size:13px;}
.canned-pop div:hover,.canned-pop div.sel{background:var(--accent-wash);}
@media (max-width:1100px){.inbox-side{display:none;}}
@media (max-width:760px){
  .inbox-list{width:100%;}
  .inbox.show-thread .inbox-list{display:none;}
  .inbox:not(.show-thread) .thread{display:none;}
  .bubble{max-width:88%;}
}

/* ---------- Command bar ---------- */
.cmd-wrap{position:fixed;inset:0;z-index:100;background:rgba(11,11,11,.3);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;}
.cmd{width:min(560px,92vw);background:var(--surface-1);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden;}
.cmd input{border:none;border-bottom:1px solid var(--gridline);border-radius:0;padding:14px 16px;font-size:15px;background:var(--surface-1);}
.cmd-results{max-height:50vh;overflow-y:auto;padding:6px;}
.cmd-item{padding:9px 12px;border-radius:8px;cursor:pointer;display:flex;gap:10px;align-items:center;font-size:13.5px;}
.cmd-item.sel,.cmd-item:hover{background:var(--accent-wash);}
.cmd-item .k{margin-left:auto;font-size:11px;color:var(--text-muted);}

/* ---------- Locked / upgrade card ---------- */
.lock-card{max-width:460px;margin:60px auto;text-align:center;}
.lock-card .icon{width:54px;height:54px;border-radius:50%;background:var(--accent-wash);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}

/* ---------- Wizard ---------- */
.steps{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;}
.step{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--text-muted);padding:6px 12px;border-radius:20px;background:var(--surface-1);border:1px solid var(--gridline);}
.step.active{color:var(--accent);border-color:var(--accent);background:var(--accent-wash);}
.step.done{color:var(--good-text);}
.step .n{width:20px;height:20px;border-radius:50%;background:var(--gridline);display:flex;align-items:center;justify-content:center;font-size:11px;}
.step.active .n{background:var(--accent);color:#fff;}
.tpl-preview{background:#e7f7ef;border:1px solid rgba(27,174,112,.25);border-radius:12px;padding:12px 14px;white-space:pre-wrap;font-size:13.5px;line-height:1.5;max-width:380px;}
.tpl-preview .hdr{font-size:11px;color:var(--text-muted);margin-bottom:6px;}
.tpl-preview .btns{margin-top:8px;display:flex;flex-direction:column;gap:4px;}
.tpl-preview .btns span{display:block;text-align:center;background:#fff;border-radius:8px;padding:5px;color:#0e6b7a;font-weight:600;font-size:12.5px;}
.rule{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap;}
.rule select,.rule input{width:auto;flex:1;min-width:120px;}
.mapping-table td{padding:6px 8px !important;}
.stat-pills{display:flex;gap:10px;flex-wrap:wrap;}
.stat-pill{flex:1;min-width:100px;background:var(--page);border-radius:10px;padding:10px 12px;}
.stat-pill b{display:block;font-size:20px;}
.stat-pill span{font-size:12px;color:var(--text-muted);}
.progress{height:8px;background:var(--page);border-radius:6px;overflow:hidden;}
.progress > div{height:100%;background:var(--accent);}

.copy-field{min-width:0;width:100%;}
.modal-body .copy-field input{flex:1;min-width:0;}
.modal-body table.data{table-layout:auto;}
.modal-body table.data td,.modal-body table.data th{white-space:normal;}
.modal-body .table-wrap{max-width:100%;}
.modal-body .mapping-table{width:100%;border:1px solid var(--gridline);border-radius:10px;overflow:hidden;display:table;}
.modal-body .mapping-table td:nth-child(2){max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.modal-body .mapping-table td:last-child{width:46%;}
.modal-body .rule select,.modal-body .rule input{flex:1 1 140px;min-width:0;}
.modal-body .rule .btn{flex:0 0 auto;}
.modal-body .card{padding:14px 16px;}
.modal-body .card-title.mt{margin-top:18px;}
.modal-body .stat-pills{gap:8px;}
.modal-body label.field:last-child{margin-bottom:4px;}
.modal-body input[type=file]{padding:18px 14px;border:1.5px dashed var(--gridline);background:var(--page);cursor:pointer;}
.modal-body input[type=file]:hover{border-color:var(--accent);}
/* Dialogs (confirm / prompt / choose / alert) */
.is-dialog .modal-head{border-bottom:none;padding-bottom:4px;}
.is-dialog .modal-body{padding-top:6px;}
.is-dialog .modal-foot{border-top:none;padding-top:4px;padding-bottom:18px;}
.dlg{display:flex;gap:14px;align-items:flex-start;}
.dlg-main{flex:1;min-width:0;}
.dlg-text{margin:2px 0 10px;color:var(--text-secondary);line-height:1.5;}
.dlg-ic{flex-shrink:0;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.dlg-ic svg{width:20px;height:20px;}
.dlg-ic.danger{background:var(--critical-wash);color:var(--critical);}
.dlg-ic.info{background:var(--accent-2-wash);color:#0e6b7a;}
.dlg-ic.question{background:var(--accent-wash);color:var(--accent);}
/* Busy buttons */
.btn-spin{display:none;width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;flex-shrink:0;}
.is-busy > .btn-spin,.modal.is-busy [data-ok] .btn-spin{display:inline-block;}
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:600px){
  .modal-wrap{align-items:flex-end;padding:0;}
  .modal,.modal.size-sm,.modal.size-md,.modal.size-lg,.modal.size-xl{max-width:none;border-radius:18px 18px 0 0;max-height:94vh;max-height:94dvh;animation:msheet .22s cubic-bezier(.2,.9,.3,1);}
  .modal-head{padding:14px 12px 12px 18px;}
  .modal-head::before{content:"";position:absolute;top:6px;left:50%;width:36px;height:4px;margin-left:-18px;border-radius:2px;background:var(--gridline);}
  .modal-body{padding:16px 18px 4px;}
  .modal-alert{margin:0 18px 10px;}
  .modal-foot{padding:10px 18px calc(12px + env(safe-area-inset-bottom));}
  .modal-foot .btn{flex:1;justify-content:center;}
  .modal-foot .btn.ghost{flex:0 0 auto;}
  .modal-body .form-grid{grid-template-columns:1fr;}
  .modal-body .mapping-table td:nth-child(2){display:none;}
  .modal-body .mapping-table th:nth-child(2){display:none;}
  input,select,textarea{font-size:16px;} /* stops iOS zooming into fields */
}
@keyframes msheet{from{transform:translateY(40px);opacity:.3}to{transform:none;opacity:1}}

/* ---------- Toasts ---------- */
.toast-host{position:fixed;right:18px;bottom:18px;z-index:120;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none;width:min(380px,calc(100vw - 24px));}
.toast{pointer-events:auto;position:relative;overflow:hidden;width:100%;display:flex;gap:10px;align-items:flex-start;background:#1c1d1c;color:#f4f4f2;border-radius:12px;padding:11px 10px 12px 12px;box-shadow:0 12px 32px rgba(0,0,0,.22);font-size:13.5px;line-height:1.4;animation:tin .22s cubic-bezier(.2,.9,.3,1.1);}
.toast.out{animation:tout .18s ease forwards;}
.toast.bump{animation:tbump .3s ease;}
@keyframes tin{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@keyframes tout{to{transform:translateX(24px);opacity:0}}
@keyframes tbump{50%{transform:scale(1.03)}}
.toast-ic{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;margin-top:-1px;}
.toast-ic svg{width:14px;height:14px;}
.t-success .toast-ic{background:var(--good);}
.t-error .toast-ic{background:var(--critical);}
.t-warning .toast-ic{background:var(--warning);color:#3d2a00;}
.t-info .toast-ic{background:var(--accent-2);}
.toast-txt{flex:1;min-width:0;overflow-wrap:anywhere;}
.toast-txt b{display:block;margin-bottom:1px;}
.toast-act{display:inline-block;margin-top:6px;border:none;background:rgba(255,255,255,.12);color:#fff;font:inherit;font-weight:600;font-size:12.5px;padding:4px 10px;border-radius:7px;cursor:pointer;}
.toast-x{flex-shrink:0;border:none;background:none;color:rgba(255,255,255,.55);font-size:20px;line-height:1;cursor:pointer;padding:0 4px;margin-top:-2px;}
.toast-x:hover{color:#fff;}
.toast-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left;animation-name:tbar;animation-timing-function:linear;animation-fill-mode:forwards;opacity:.55;}
.t-success .toast-bar{background:var(--good);}.t-error .toast-bar{background:var(--critical);}.t-warning .toast-bar{background:var(--warning);}.t-info .toast-bar{background:var(--accent-2);}
.toast.paused .toast-bar{animation-play-state:paused;}
@keyframes tbar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media (max-width:600px){.toast-host{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;align-items:stretch;}}

/* ---------- Notification bell ---------- */
.notif{position:relative;}
.notif-btn{position:relative;border:none;background:none;width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);}
.notif-btn:hover{background:var(--page);color:var(--text-primary);}
.notif-btn svg{width:19px;height:19px;}
.notif-dot{position:absolute;top:4px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--critical);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface-1);box-sizing:content-box;}
.notif-panel{position:absolute;right:0;top:calc(100% + 6px);width:min(360px,calc(100vw - 24px));background:var(--surface-1);border:1px solid var(--gridline);border-radius:14px;box-shadow:0 12px 36px rgba(11,11,11,.14);z-index:60;display:none;overflow:hidden;}
.notif-panel.open{display:block;}
.notif-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--gridline);font-weight:700;}
.notif-list{max-height:min(420px,60vh);overflow-y:auto;}
.notif-item{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid var(--gridline);font-size:13px;line-height:1.45;}
.notif-item:last-child{border-bottom:none;}
.notif-item.unread{background:var(--accent-wash);}
.notif-item .ni-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--gridline);}
.notif-item.unread .ni-dot{background:var(--accent);}
.notif-item.t-low_balance .ni-dot{background:var(--warning);}
.notif-time{font-size:11.5px;color:var(--text-muted);margin-top:2px;}
.notif-empty{padding:28px 14px;text-align:center;color:var(--text-muted);font-size:13px;}
.banner .x-btn{width:24px;height:24px;font-size:18px;color:inherit;opacity:.7;}
@media (max-width:860px){.notif-panel{position:fixed;left:12px;right:12px;top:56px;width:auto;}}

/* ---------- Bulk select ---------- */
.bulk-all{border:none;background:none;font:inherit;font-weight:600;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline;}
.bulkbar .sep{flex-basis:100%;height:0;}

/* ---------- Timeline ---------- */
.timeline{position:relative;padding-left:22px;}
.timeline::before{content:"";position:absolute;left:7px;top:4px;bottom:4px;width:2px;background:var(--gridline);}
.tl-item{position:relative;margin-bottom:14px;font-size:13px;}
.tl-item::before{content:"";position:absolute;left:-19px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--surface-1);border:2px solid var(--accent);}
.tl-item.t-note::before{border-color:var(--warning);}
.tl-item.t-message_in::before,.tl-item.t-campaign_reply::before{border-color:var(--accent-2);}
.tl-item.t-stage_change::before{border-color:var(--indigo);}
.tl-meta{font-size:11.5px;color:var(--text-muted);margin-top:2px;}

/* ---------- Inbox ---------- */
.inbox{display:flex;flex:1;min-height:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-1);}
.inbox-list{width:320px;flex-shrink:0;border-right:1px solid var(--gridline);display:flex;flex-direction:column;min-height:0;}
.inbox-tabs{display:flex;gap:4px;padding:10px 10px 6px;}
.inbox-tab{flex:1;border:none;background:none;border-radius:8px;padding:6px 4px;font:inherit;font-size:12px;font-weight:600;color:var(--text-muted);cursor:pointer;position:relative;}
.inbox-tab.active{background:var(--accent-wash);color:var(--accent);}
.inbox-tab .n{display:inline-block;min-width:16px;padding:0 4px;border-radius:8px;background:var(--accent);color:#fff;font-size:10px;margin-left:3px;}
.inbox-search{padding:0 10px 8px;}
.inbox-search input{padding:7px 10px;}
.conv-items{flex:1;overflow-y:auto;}
.conv{display:flex;gap:10px;padding:11px 12px;border-bottom:1px solid var(--gridline);cursor:pointer;}
.conv:hover,.conv.active{background:var(--accent-wash);}
.conv-body{flex:1;min-width:0;}
.conv-top{display:flex;gap:6px;align-items:center;}
.conv-name{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.conv-time{font-size:11px;color:var(--text-muted);flex-shrink:0;}
.conv-preview{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;}
.conv.unread .conv-name::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-left:6px;}
.thread{flex:1;display:flex;flex-direction:column;min-width:0;}
.thread-head{padding:10px 14px;border-bottom:1px solid var(--gridline);display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.thread-msgs{flex:1;overflow-y:auto;padding:16px;background:var(--page);display:flex;flex-direction:column;gap:6px;}
.bubble{max-width:72%;padding:8px 11px;border-radius:12px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word;background:var(--surface-1);border:1px solid var(--border);align-self:flex-start;}
.bubble.out{align-self:flex-end;background:#e7f7ef;border-color:rgba(27,174,112,.25);}
.bubble.tpl{background:#eef9fb;border-color:rgba(6,182,212,.25);}
.bubble-meta{font-size:10.5px;color:var(--text-muted);margin-top:3px;text-align:right;}
.bubble .btnchip{display:block;margin-top:5px;font-size:11.5px;font-weight:600;color:#0e6b7a;}
.day-sep{align-self:center;font-size:11px;color:var(--text-muted);background:var(--surface-1);border:1px solid var(--gridline);border-radius:10px;padding:2px 10px;margin:6px 0;}
.composer{border-top:1px solid var(--gridline);padding:10px;display:flex;gap:8px;align-items:flex-end;}
.composer textarea{min-height:42px;max-height:160px;resize:none;}
.session-note{font-size:12px;padding:8px 14px;background:var(--warning-wash);color:#6b4600;display:flex;gap:10px;align-items:center;justify-content:space-between;}
.inbox-side{width:280px;flex-shrink:0;border-left:1px solid var(--gridline);overflow-y:auto;padding:14px;}
.canned-pop{position:absolute;bottom:60px;left:10px;right:10px;background:#fff;border:1px solid var(--gridline);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.1);max-height:220px;overflow-y:auto;z-index:5;}
.canned-pop div{padding:8px 12px;cursor:pointer;font-size:13px;}
.canned-pop div:hover,.canned-pop div.sel{background:var(--accent-wash);}
@media (max-width:1100px){.inbox-side{display:none;}}
@media (max-width:760px){
  .inbox-list{width:100%;}
  .inbox.show-thread .inbox-list{display:none;}
  .inbox:not(.show-thread) .thread{display:none;}
  .bubble{max-width:88%;}
}

/* ---------- Command bar ---------- */
.cmd-wrap{position:fixed;inset:0;z-index:100;background:rgba(11,11,11,.3);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh;}
.cmd{width:min(560px,92vw);background:var(--surface-1);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden;}
.cmd input{border:none;border-bottom:1px solid var(--gridline);border-radius:0;padding:14px 16px;font-size:15px;background:var(--surface-1);}
.cmd-results{max-height:50vh;overflow-y:auto;padding:6px;}
.cmd-item{padding:9px 12px;border-radius:8px;cursor:pointer;display:flex;gap:10px;align-items:center;font-size:13.5px;}
.cmd-item.sel,.cmd-item:hover{background:var(--accent-wash);}
.cmd-item .k{margin-left:auto;font-size:11px;color:var(--text-muted);}

/* ---------- Locked / upgrade card ---------- */
.lock-card{max-width:460px;margin:60px auto;text-align:center;}
.lock-card .icon{width:54px;height:54px;border-radius:50%;background:var(--accent-wash);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}

/* ---------- Wizard ---------- */
.steps{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;}
.step{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--text-muted);padding:6px 12px;border-radius:20px;background:var(--surface-1);border:1px solid var(--gridline);}
.step.active{color:var(--accent);border-color:var(--accent);background:var(--accent-wash);}
.step.done{color:var(--good-text);}
.step .n{width:20px;height:20px;border-radius:50%;background:var(--gridline);display:flex;align-items:center;justify-content:center;font-size:11px;}
.step.active .n{background:var(--accent);color:#fff;}
.tpl-preview{background:#e7f7ef;border:1px solid rgba(27,174,112,.25);border-radius:12px;padding:12px 14px;white-space:pre-wrap;font-size:13.5px;line-height:1.5;max-width:380px;}
.tpl-preview .hdr{font-size:11px;color:var(--text-muted);margin-bottom:6px;}
.tpl-preview .btns{margin-top:8px;display:flex;flex-direction:column;gap:4px;}
.tpl-preview .btns span{display:block;text-align:center;background:#fff;border-radius:8px;padding:5px;color:#0e6b7a;font-weight:600;font-size:12.5px;}
.rule{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap;}
.rule select,.rule input{width:auto;flex:1;min-width:120px;}
.mapping-table td{padding:6px 8px !important;}
.stat-pills{display:flex;gap:10px;flex-wrap:wrap;}
.stat-pill{flex:1;min-width:100px;background:var(--page);border-radius:10px;padding:10px 12px;}
.stat-pill b{display:block;font-size:20px;}
.stat-pill span{font-size:12px;color:var(--text-muted);}
.progress{height:8px;background:var(--page);border-radius:6px;overflow:hidden;}
.progress > div{height:100%;background:var(--accent);}

/* ---------- SweetAlert2 compact (Niro) ---------- */
.swal2-popup{font-size:14px !important;border-radius:14px !important;}
.swal2-styled.swal2-confirm{background:var(--accent) !important;}
.swal2-toast{font-size:13px !important;}

.copy-field{display:flex;gap:6px;align-items:center;min-width:min(260px,100%);max-width:100%;}
.copy-field input{flex:1;min-width:0;}
.copy-field input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:6px 8px;background:var(--page);}
.toolbar input[type=date]{width:auto;min-width:0;background:var(--surface-1);padding:7px 10px;}
.danger-text{color:var(--critical)!important;}
.ch-badge{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.02em;padding:1px 6px;border-radius:6px;background:var(--surface-2,#eef);color:var(--text-secondary);text-transform:uppercase;vertical-align:middle;}

/* ---------- Contact / lead detail page ---------- */
.page.cd-page{max-width:1320px;}
.cd-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;min-height:30px;}
.cd-top .crumbs{margin:0;}
.cd-top .crumbs span{color:var(--text-secondary);}
.cd-pager{display:flex;align-items:center;gap:6px;}
.cd-head{display:flex;gap:16px;align-items:flex-start;padding:20px 22px;margin-bottom:12px;}
.cd-avatar{width:56px;height:56px;border-radius:16px;background:var(--accent-wash);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;flex-shrink:0;}
.cd-id{flex:1;min-width:0;}
.cd-name{font-size:21px;font-weight:750;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;flex-wrap:wrap;line-height:1.25;overflow-wrap:anywhere;}
.cd-meta{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-top:6px;font-size:13px;color:var(--text-secondary);}
.cd-meta svg{width:14px;height:14px;flex-shrink:0;color:var(--text-muted);}
.cd-copy{appearance:none;border:none;background:none;font:inherit;color:inherit;padding:2px 4px;margin:-2px -4px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;}
.cd-copy:hover{background:var(--page);color:var(--text-primary);}
.cd-owner{display:inline-flex;align-items:center;gap:6px;}
.cd-tags{margin-top:10px;display:flex;flex-wrap:wrap;gap:4px;}
.cd-tags .chip{margin:0;}
.chip-add{cursor:pointer;border-style:dashed;background:transparent;font:inherit;font-size:11.5px;}
.chip-add:hover{border-color:var(--accent);color:var(--accent);}
.cd-actions{display:flex;gap:8px;flex-shrink:0;align-items:center;}
.cd-more{position:relative;}
.temp{display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:20px;vertical-align:middle;}
.temp.t-hot{background:var(--critical-wash);color:var(--critical);}
.temp.t-warm{background:var(--warning-wash);color:#8a5a00;}
.temp.t-cold{background:var(--accent-2-wash);color:#0e6b7a;}

.cd-pipe{padding:14px 16px 10px;margin-bottom:14px;}
.cd-steps{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px;}
.cd-step{flex:1 1 0;min-width:96px;appearance:none;border:none;font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;color:var(--text-secondary);background:var(--page);
  padding:9px 12px 9px 20px;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%);transition:background .12s,color .12s;}
.cd-step:first-child{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);border-radius:8px 0 0 8px;padding-left:14px;}
.cd-step:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,10px 50%);border-radius:0 8px 8px 0;}
.cd-step span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cd-step:hover:not(:disabled){background:var(--gridline);color:var(--text-primary);}
.cd-step.done{background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c);}
.cd-step.on{background:var(--c);color:#fff;}
.cd-step:disabled{cursor:default;}
.cd-pipe-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;}
.cd-convert{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--accent-wash);border-color:rgba(27,174,112,.25);margin-bottom:14px;}

.cd-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start;}
.cd-main{min-width:0;}
.cd-tabs{margin-bottom:12px;}
.tab-n{display:inline-block;min-width:18px;padding:0 6px;margin-left:4px;border-radius:9px;background:var(--gridline);color:var(--text-secondary);font-size:11px;font-weight:700;line-height:18px;text-align:center;}
.tab.active .tab-n{background:var(--accent-wash);color:var(--accent);}
.cd-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:12px;}
.cd-side .card{margin:0;}
.cd-card{padding:14px 16px;}
.cd-card-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.cd-card-title .btn-link{text-transform:none;letter-spacing:0;}
.cd-dl{display:grid;grid-template-columns:104px minmax(0,1fr);gap:9px 10px;margin:0;font-size:13px;align-items:center;}
.cd-dl dt{color:var(--text-muted);}
.cd-dl dd{margin:0;min-width:0;overflow-wrap:anywhere;}
.cd-dl select{padding:5px 8px;font-size:13px;}
.cd-dl .chip{margin:1px 3px 1px 0;}
.cd-inline{appearance:none;border:1px dashed transparent;background:none;font:inherit;font-weight:600;padding:3px 6px;margin:-3px -6px;border-radius:6px;cursor:pointer;color:var(--text-primary);}
.cd-inline:hover{border-color:var(--gridline);background:var(--page);}
.seg{display:inline-flex;border:1px solid var(--gridline);border-radius:8px;overflow:hidden;}
.seg-b{appearance:none;border:none;background:var(--surface-1);font:inherit;font-size:12px;font-weight:600;padding:5px 10px;cursor:pointer;color:var(--text-secondary);}
.seg-b + .seg-b{border-left:1px solid var(--gridline);}
.seg-b:hover:not(:disabled){background:var(--page);}
.seg-b.on.t-hot{background:var(--critical);color:#fff;}
.seg-b.on.t-warm{background:var(--warning);color:#3d2a00;}
.seg-b.on.t-cold{background:var(--accent-2);color:#fff;}
.seg-b:disabled{cursor:default;}
.cd-fu{border-left:4px solid var(--gridline);}
.cd-fu.set{border-left-color:var(--accent);}
.cd-fu.overdue{border-left-color:var(--critical);background:linear-gradient(0deg,var(--critical-wash),var(--critical-wash)),var(--surface-1);}
.cd-fu-when{font-size:17px;font-weight:700;}
.cd-quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;}
.cd-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.cd-stat{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:10px 12px;}
.cd-stat span{display:block;font-size:11.5px;color:var(--text-muted);font-weight:600;}
.cd-stat b{display:block;font-size:18px;margin-top:2px;}
.cd-stat small{display:block;font-size:11px;font-weight:500;color:var(--text-muted);}
.cd-ch{display:flex;flex-direction:column;gap:2px;}
.cd-ch-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:13px;cursor:pointer;}
.cd-consent{margin-top:8px;padding-top:8px;border-top:1px solid var(--gridline);}
.switch{position:relative;display:inline-block;width:34px;height:20px;flex-shrink:0;}
.switch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;z-index:1;width:100%;}
.switch i{position:absolute;inset:0;border-radius:20px;background:var(--gridline);transition:background .15s;}
.switch i::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .15s;}
.switch input:checked + i{background:var(--accent);}
.switch input:checked + i::after{transform:translateX(14px);}
.switch input:disabled + i{opacity:.5;}

.cd-note{padding:10px 12px;margin-bottom:12px;}
.cd-note textarea{border:none;background:transparent;padding:4px 2px;min-height:44px;resize:vertical;}
.cd-note textarea:focus{background:transparent;}
.cd-note-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--gridline);padding-top:8px;}
.cd-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.pill{appearance:none;border:1px solid var(--gridline);background:var(--surface-1);font:inherit;font-size:12.5px;font-weight:600;color:var(--text-secondary);padding:5px 12px;border-radius:20px;cursor:pointer;}
.pill:hover{color:var(--text-primary);}
.pill.on{background:var(--text-primary);border-color:var(--text-primary);color:var(--surface-1);}
.cd-tl{position:relative;margin-bottom:12px;}
.cd-day{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:16px 0 8px;}
.cd-day:first-child{margin-top:0;}
.cd-ev{display:flex;gap:12px;position:relative;padding-bottom:12px;}
.cd-ev::before{content:"";position:absolute;left:15px;top:32px;bottom:0;width:2px;background:var(--gridline);}
.cd-ev:last-child::before{display:none;}
.cd-ev-ic{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--page);color:var(--text-muted);border:1px solid var(--gridline);}
.cd-ev-ic svg{width:15px;height:15px;}
.g-note .cd-ev-ic{background:var(--warning-wash);color:#8a5a00;border-color:transparent;}
.g-call .cd-ev-ic{background:var(--accent-wash);color:var(--accent);border-color:transparent;}
.g-message .cd-ev-ic,.g-campaign .cd-ev-ic{background:var(--accent-2-wash);color:#0e6b7a;border-color:transparent;}
.g-stage .cd-ev-ic{background:var(--indigo-wash);color:var(--indigo);border-color:transparent;}
.cd-ev-body{flex:1;min-width:0;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:9px 12px;}
.g-note .cd-ev-body{background:#fffbf0;border-color:rgba(250,178,25,.3);}
.cd-ev-text{font-size:13.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;}
.cd-ev-meta{font-size:11.5px;color:var(--text-muted);margin-top:3px;}
.cd-chat-card{padding:0;overflow:hidden;}
.cd-convs{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;border-bottom:1px solid var(--gridline);}
.cd-convs a.chip{text-decoration:none;padding:4px 10px;}
.cd-chat{max-height:560px;overflow-y:auto;padding:14px;background:var(--page);display:flex;flex-direction:column;gap:6px;}
.cd-chat-card > .empty{background:var(--page);}
.cd-chat-foot{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--gridline);}

.cd-skel .sk{background:linear-gradient(90deg,var(--gridline) 0,#efeee9 50%,var(--gridline) 100%);background-size:200% 100%;animation:sk 1.2s linear infinite;border-radius:14px;opacity:.6;}
.sk-head{height:120px;margin-bottom:12px;}.sk-bar{height:64px;margin-bottom:14px;}.sk-main{height:420px;}.sk-side{height:420px;}
@keyframes sk{to{background-position:-200% 0}}

@media (max-width:1060px){
  .cd-grid{grid-template-columns:minmax(0,1fr);}
  .cd-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));order:-1;}
  .cd-stats{grid-template-columns:repeat(4,1fr);}
}
@media (max-width:700px){
  .cd-head{flex-wrap:wrap;padding:16px;}
  .cd-avatar{width:46px;height:46px;font-size:17px;border-radius:13px;}
  .cd-name{font-size:18px;}
  .cd-actions{width:100%;}
  .cd-actions > .btn{flex:1;justify-content:center;}
  .cd-side{grid-template-columns:1fr;}
  .cd-stats{grid-template-columns:1fr 1fr;}
  .cd-step{flex:0 0 auto;min-width:0;font-size:12px;}
  .cd-step span{overflow:visible;}
  .cd-steps{scrollbar-width:none;}
  .cd-dl{grid-template-columns:96px minmax(0,1fr);}
}

/* ---------- Inbox v2 ---------- */
.ib2{position:relative;}
.ib2 .inbox-list{width:340px;}
.icon-btn{appearance:none;border:none;background:none;width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;flex-shrink:0;position:relative;}
.icon-btn:hover:not(:disabled){background:var(--page);color:var(--text-primary);}
.icon-btn.on{background:var(--accent-wash);color:var(--accent);}
.icon-btn:disabled{opacity:.4;cursor:default;}
.ib-listhead{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 6px 14px;}
.ib-title{font-weight:750;font-size:16px;}
.ib-tabs{display:flex;gap:4px;padding:4px 10px 8px;overflow-x:auto;scrollbar-width:none;}
.ib-tabs::-webkit-scrollbar{display:none;}
.ib-tab{flex:0 0 auto;appearance:none;border:1px solid transparent;background:none;border-radius:20px;padding:5px 11px;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-secondary);cursor:pointer;white-space:nowrap;}
.ib-tab:hover{background:var(--page);}
.ib-tab.active{background:var(--text-primary);color:var(--surface-1);}
.ib-tab .n{display:inline-block;min-width:16px;padding:0 5px;margin-left:5px;border-radius:8px;background:var(--accent);color:#fff;font-size:10px;line-height:16px;text-align:center;}
.ib-tab .n.soft{background:var(--gridline);color:var(--text-secondary);}
.ib-tab.active .n.soft{background:rgba(255,255,255,.25);color:#fff;}
.ib-search{display:flex;gap:4px;padding:0 10px 8px;align-items:center;}
.ib-search input{padding:7px 10px;flex:1;min-width:0;}
.fdot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--accent);}
.ib-filters{display:flex;flex-wrap:wrap;gap:8px;padding:0 10px 10px;align-items:center;}
.ib-filters select{width:auto;flex:1 1 120px;padding:6px 8px;font-size:12.5px;}
.ib-filters .check{font-size:12.5px;}
.ib-bulk{display:flex;align-items:center;gap:6px;padding:7px 10px;background:var(--accent-wash);border-top:1px solid var(--gridline);border-bottom:1px solid var(--gridline);font-size:12.5px;}
.ib2 .conv{position:relative;gap:10px;padding:11px 12px 11px 14px;align-items:flex-start;outline:none;}
.ib2 .conv.active{background:var(--accent-wash);box-shadow:inset 3px 0 0 var(--accent);}
.ib2 .conv.picked{background:var(--indigo-wash);}
.conv-pick{margin-top:9px;}
.ib-av{position:relative;}
.chd{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;border:2px solid var(--surface-1);background:#25d366;}
.chd.ch-sms{background:var(--indigo);}.chd.ch-rcs{background:var(--accent-2);}.chd.ch-email{background:var(--serious);}
.ib2 .conv.unread .conv-name{font-weight:750;}
.ib2 .conv.unread .conv-name::after{display:none;}
.ib2 .conv.unread .conv-preview{color:var(--text-primary);}
.cstar{display:inline-flex;}
.conv-mid{display:flex;gap:8px;align-items:center;margin-top:2px;}
.conv-mid .conv-preview{flex:1;margin:0;}
.ucount{flex-shrink:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;}
.conv-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;}
.conv-chips .badge{display:inline-flex;align-items:center;gap:3px;}
.conv-chips .chip{margin:0;font-size:11px;padding:1px 7px;}
.chip.muted{color:var(--text-muted);}
.ib-more,.ib-older{display:flex;justify-content:center;padding:12px;}
.ib-none{padding:10px;}
.ib-empty{flex:1;display:flex;align-items:center;justify-content:center;background:var(--page);}
.ib-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:var(--page);}

.ib-head{gap:10px;padding:10px 12px;flex-wrap:nowrap;}
.ib-back{display:none;}
.ib-who{min-width:0;}
.ib-name{font-weight:700;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ib-sub{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:1px;}
.win{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;padding:1px 7px;border-radius:10px;}
.win.ok{background:var(--good-wash);color:var(--good-text);}
.win.warn{background:var(--warning-wash);color:#8a5a00;}
.win.closed{background:var(--critical-wash);color:var(--critical);}
.ib-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;}
.ib-assign{width:auto;max-width:150px;padding:6px 8px;font-size:12.5px;background:var(--surface-1);}
.split{display:inline-flex;}
.split .btn:first-child{border-radius:8px 0 0 8px;}
.split .btn:last-child{border-radius:0 8px 8px 0;padding-left:6px;padding-right:6px;border-left:1px solid rgba(255,255,255,.35);}
.ib-tagbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px 14px;border-bottom:1px solid var(--gridline);background:var(--surface-1);}
.ib-tagbar .chip{margin:0;}
.ib2 .thread-msgs{padding:16px 18px;}
.ib2 .bubble{box-shadow:0 1px 1px rgba(0,0,0,.03);}
.ib2 .bubble.note{align-self:stretch;max-width:none;background:#fff8e1;border:1px dashed rgba(250,178,25,.7);}
.note-h{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#8a5a00;margin-bottom:3px;}
.b-tpl{font-size:11px;color:var(--text-muted);margin-bottom:3px;}
.b-text a{color:inherit;text-decoration:underline;}
.b-img{display:block;max-width:240px;max-height:240px;border-radius:8px;margin-bottom:4px;}
.b-file{display:flex;align-items:center;gap:6px;font-size:12.5px;margin-bottom:3px;}
.tick.s-read{color:var(--accent-2);}.tick.s-failed{color:var(--critical);font-weight:600;}
/* voice notes (28 Oct 2026, core/voice.js) */
.vn{display:flex;align-items:center;gap:10px;min-width:220px;max-width:300px;padding:2px 0 4px;white-space:normal;flex-wrap:wrap;}
.vn-play{appearance:none;border:none;width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;padding:0;}
.vn-play svg{margin-left:2px;}.vn.on .vn-play svg{margin-left:0;}
.vn-play:disabled{opacity:.7;cursor:default;}
.bubble:not(.out) .vn-play{background:var(--text-secondary);}
.vn-body{flex:1;min-width:0;}
.vn-bar{position:relative;height:16px;cursor:pointer;display:flex;align-items:center;}
.vn-bar::before{content:"";position:absolute;left:0;right:0;height:4px;border-radius:2px;background:rgba(11,11,11,.14);}
.vn-fill{position:absolute;left:0;height:4px;width:0;border-radius:2px;background:var(--accent);}
.bubble:not(.out) .vn-fill{background:var(--text-secondary);}
.vn-knob{position:absolute;left:0;width:11px;height:11px;margin-left:-5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px #fff;}
.bubble:not(.out) .vn-knob{background:var(--text-secondary);}
.vn-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;}
.vn-mic{display:inline-flex;color:var(--accent);}
.vn-grow{flex:1;}
.vn-speed{appearance:none;border:1px solid var(--border);background:var(--surface-1);border-radius:9px;font:inherit;font-size:10.5px;font-weight:700;padding:0 6px;line-height:16px;color:var(--text-secondary);cursor:pointer;}
.vn-gone{flex-basis:100%;font-size:11.5px;color:var(--text-muted);}
.ib-rec{position:absolute;inset:0;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-1);border-radius:inherit;z-index:5;}
.ib-rec .rec-dot{width:10px;height:10px;border-radius:50%;background:var(--critical);animation:recPulse 1.2s ease-in-out infinite;flex:0 0 auto;}
.ib-rec.sending .rec-dot{animation:none;background:var(--text-muted);}
.ib-rec .rec-time{font-weight:700;font-variant-numeric:tabular-nums;min-width:38px;}
.ib-rec .rec-level{width:90px;height:6px;border-radius:3px;background:var(--page);overflow:hidden;flex:0 0 auto;}
.ib-rec .rec-level i{display:block;height:100%;background:var(--accent);transform-origin:left;transform:scaleX(.04);transition:transform .1s linear;}
@keyframes recPulse{0%,100%{opacity:1}50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.ib-rec .rec-dot{animation:none;}}
@media (max-width:600px){.ib-rec .rec-level{display:none;}.vn{min-width:180px;}}

.ib-composer{border-top:1px solid var(--gridline);background:var(--surface-1);padding:6px 10px 8px;position:relative;}
.ib-composer.mode-note{background:#fffbef;}
.ib-modes{display:flex;gap:2px;align-items:center;margin-bottom:4px;}
.ib-mode{appearance:none;border:none;background:none;font:inherit;font-size:12.5px;font-weight:650;color:var(--text-muted);padding:5px 10px;border-radius:7px;cursor:pointer;}
.ib-mode.on{background:var(--page);color:var(--text-primary);}
.mode-note .ib-mode.on{background:var(--warning-wash);color:#8a5a00;}
.ib-mode:disabled{opacity:.45;cursor:not-allowed;}
.ib-composer textarea{border:none;background:transparent;padding:6px 4px;min-height:44px;max-height:200px;resize:none;line-height:1.45;}
.ib-composer textarea:focus{background:transparent;}
.ib-tools{display:flex;align-items:center;gap:2px;}
.ib-hint{margin-right:8px;}
.ib-composer .canned-pop{bottom:calc(100% + 4px);left:10px;right:10px;max-height:260px;}
.emoji-pop{position:absolute;bottom:calc(100% + 4px);left:44px;background:var(--surface-1);border:1px solid var(--gridline);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:6px;display:grid;grid-template-columns:repeat(8,32px);gap:2px;z-index:6;}
.emoji-pop button{border:none;background:none;font-size:18px;width:32px;height:32px;border-radius:6px;cursor:pointer;}
.emoji-pop button:hover{background:var(--page);}
.ib-menu{position:fixed;z-index:110;min-width:200px;background:var(--surface-1);border:1px solid var(--gridline);border-radius:12px;box-shadow:0 12px 32px rgba(11,11,11,.14);padding:5px;}
.ib-menu button{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;border:none;background:none;font:inherit;font-size:13px;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--text-primary);}
.ib-menu button:hover:not(:disabled){background:var(--page);}
.ib-menu button:disabled{color:var(--text-muted);cursor:default;}
.ib-menu-sep{height:1px;background:var(--gridline);margin:4px 2px;}

/* collapsible details panel */
.ib2 .ib-side{width:0;padding:0;border-left:none;overflow:hidden;transition:width .18s ease;display:block !important;}
.ib2.side-open .ib-side{width:300px;border-left:1px solid var(--gridline);overflow-y:auto;}
.ib-side-head{display:flex;justify-content:space-between;align-items:center;padding:10px 10px 6px 14px;position:sticky;top:0;background:var(--surface-1);z-index:1;}
.ib-card{padding:4px 14px 12px;border-bottom:1px solid var(--gridline);}
.ib-cname{font-weight:700;overflow-wrap:anywhere;}
.ib-quick{display:flex;gap:6px;margin-top:10px;}
.ib-ellip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ib-sec{border-bottom:1px solid var(--gridline);}
.ib-sec-h{display:flex;align-items:center;gap:6px;width:100%;appearance:none;border:none;background:none;font:inherit;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding:11px 14px;cursor:pointer;}
.ib-sec-h:hover{color:var(--text-primary);}
.ib-sec-h svg{transition:transform .15s;}
.ib-sec.closed .ib-sec-h svg{transform:rotate(-90deg);}
.ib-sec-b{padding:0 14px 12px;}
.ib-sec.closed .ib-sec-b{display:none;}
.ib-side .cd-dl{grid-template-columns:86px minmax(0,1fr);}
.ib-side .cd-dl select{width:100%;}
.ib-fu.over b{color:var(--critical);}
.ib-other{display:flex;gap:8px;align-items:center;padding:6px 0;color:var(--text-primary);text-decoration:none;font-size:12.5px;border-bottom:1px dashed var(--gridline);}
.ib-other:last-child{border-bottom:none;}
.ib-act{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;}
.ib-scrim{display:none;}
.kbd-list{display:flex;flex-direction:column;gap:8px;}
.kbd-list div{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;}
kbd{display:inline-block;min-width:22px;text-align:center;font:inherit;font-size:12px;font-weight:600;padding:2px 6px;border:1px solid var(--gridline);border-bottom-width:2px;border-radius:6px;background:var(--page);}

@media (max-width:1100px){
  .ib2 .ib-side{position:absolute;right:0;top:0;bottom:0;z-index:20;background:var(--surface-1);box-shadow:-12px 0 32px rgba(0,0,0,.12);}
  .ib2.side-open .ib-scrim{display:block;position:absolute;inset:0;z-index:19;background:rgba(11,11,11,.18);}
  .ib-hint{display:none;}
}
@media (max-width:760px){
  .ib2 .inbox-list{width:100%;}
  .ib-back{display:inline-flex;}
  .ib-assign{display:none;}
  .split .btn:first-child{font-size:0;padding:6px 8px;}
  .split .btn:first-child svg{width:16px;height:16px;}
  .ib2.side-open .ib-side{width:min(320px,88vw);}
}
.del-opt{align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--gridline);border-radius:10px;margin:8px 0 0;line-height:1.4;}
.del-opt input{margin-top:3px;}
.del-opt:has(input:checked){border-color:var(--critical);background:var(--critical-wash);}
.session-note.del-note{background:var(--critical-wash);color:var(--critical);}
.ib-filters .btn-link{flex-basis:100%;text-align:left;color:var(--critical);}
/* checkboxes / radios never shrink inside flex rows (modals set min-width:0 on everything) */
input[type=checkbox],input[type=radio]{flex-shrink:0;min-width:16px;width:16px;height:16px;}

/* ---------- Sortable tables / column picker ---------- */
table.data th.th-sort{padding:0;}
table.data th.th-sort button{appearance:none;border:none;background:none;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;padding:10px 12px;width:100%;text-align:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
table.data th.num.th-sort button{justify-content:flex-end;}
table.data th.th-sort button:hover{color:var(--text-primary);background:var(--gridline);}
table.data th.th-sort.on{color:var(--accent);}
.sort-ic{font-size:9px;opacity:.45;}
th.th-sort.on .sort-ic{opacity:1;}
.toolbar #colBtn{margin-left:auto;}
.col-pop{position:fixed;z-index:110;width:280px;max-height:min(520px,80vh);display:flex;flex-direction:column;background:var(--surface-1);border:1px solid var(--gridline);border-radius:14px;box-shadow:0 14px 40px rgba(11,11,11,.16);}
.col-pop-h{display:flex;justify-content:space-between;align-items:center;padding:12px 14px 8px;}
.col-pop-list{overflow-y:auto;padding:0 8px;}
.col-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 6px;border-radius:8px;font-size:13px;}
.col-row:hover{background:var(--page);}
.col-row.off{color:var(--text-muted);}
.col-mv{display:inline-flex;gap:2px;}
.col-mv button{border:1px solid var(--gridline);background:var(--surface-1);border-radius:6px;width:24px;height:22px;cursor:pointer;font-size:11px;color:var(--text-secondary);}
.col-mv button:disabled{opacity:.35;cursor:default;}
.col-pop-f{padding:8px 14px 12px;border-top:1px solid var(--gridline);margin-top:6px;}

/* ---------- Follow-ups ---------- */
.fu-cell{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;}
.fu-chip{font-size:12px;font-weight:600;padding:2px 8px;border-radius:12px;background:var(--accent-wash);color:var(--good-text);}
.fu-chip.over{background:var(--critical-wash);color:var(--critical);}
.fu-btn{width:26px;height:26px;opacity:.55;}
tr:hover .fu-btn,.fu-btn:focus-visible{opacity:1;}
.fu-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin:2px 0 6px;}
.fu-types{margin-bottom:12px;flex-wrap:wrap;}
.fu-quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.fu-quick .pill.on{background:var(--accent);border-color:var(--accent);color:#fff;}
.fu-add{padding:14px 16px;margin-bottom:14px;background:var(--page);}
.fu-sec-h{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin:10px 0 8px;}
.fu-sec-h:first-child{margin-top:0;}
.fu-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--gridline);border-radius:10px;margin-bottom:8px;border-left:4px solid var(--accent-2);}
.fu-item.over{border-left-color:var(--critical);background:var(--critical-wash);}
.fu-item.s-done{border-left-color:var(--good);}
.fu-item.s-rescheduled{border-left-color:var(--warning);}
.fu-item.s-cancelled{border-left-color:var(--gridline);opacity:.8;}
.fu-item-main{flex:1;min-width:0;}
.fu-item-top{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:2px;}
.fu-item-top .chip{margin:0;}
.fu-outcome{margin-top:4px;padding:5px 8px;background:var(--page);border-radius:6px;}
.fu-acts{display:flex;gap:4px;flex-shrink:0;}
.cd-fu-hist{display:block;margin-top:10px;}
.fu-types .seg-b.on{background:var(--accent);color:#fff;}

/* ---------- Company detail (partner consoles) ---------- */
.page.co-page{max-width:1320px;}
.co-head{display:flex;gap:16px;align-items:flex-start;padding:20px 22px;margin:10px 0 14px;}
.co-head .cd-meta span{display:inline-flex;align-items:center;gap:4px;}
.co-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start;}
.co-side{display:flex;flex-direction:column;gap:12px;}
.co-side .card{margin:0;}
.co-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--gridline);font-size:13px;}
.co-line:last-child{border-bottom:none;}
.co-line > span:first-child{flex:1;min-width:0;}
.kpi.kpi-warning{border-color:rgba(250,178,25,.6);background:var(--warning-wash);}
.kpi.kpi-critical{border-color:rgba(208,59,59,.5);background:var(--critical-wash);}
.lim-list{display:flex;flex-direction:column;gap:14px;}
.lim-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:5px;font-size:13.5px;}
.lim-label{font-weight:600;}
.lim-val{white-space:nowrap;}
.lim-bar{height:8px;border-radius:5px;background:var(--page);overflow:hidden;border:1px solid var(--gridline);}
.lim-bar > div{height:100%;background:var(--accent);border-radius:5px;}
.lim-bar.warn > div{background:var(--warning);}
.lim-bar.bad > div{background:var(--critical);}
.lim-bar.none{background:repeating-linear-gradient(135deg,var(--page) 0 6px,var(--gridline) 6px 7px);}
.lim-bar.mini{height:4px;width:110px;margin-top:4px;border:none;}
.plan-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;}
.plan-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:14px;border:1.5px solid var(--gridline);border-radius:12px;cursor:pointer;background:var(--surface-1);}
.plan-card:hover{border-color:var(--accent);}
.plan-card.on{border-color:var(--accent);background:var(--accent-wash);box-shadow:0 0 0 3px rgba(27,174,112,.12);}
.plan-card input{position:absolute;top:12px;right:12px;}
.plan-name{font-weight:750;font-size:15px;}
.plan-lims{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--text-secondary);}
.plan-lims b{color:var(--text-primary);}
.lim-edit .row input{flex:1;}
@media (max-width:1060px){.co-grid{grid-template-columns:minmax(0,1fr);}}
@media (max-width:700px){.co-head{flex-wrap:wrap;}.co-head .cd-actions{width:100%;}}

/* ---------- Embedded Signup ---------- */
.es-methods{display:flex;flex-direction:column;gap:10px;}
.es-method{display:flex;gap:14px;align-items:center;padding:14px 16px;border:1.5px solid var(--gridline);border-radius:14px;}
.es-method.rec{border-color:var(--accent);background:var(--accent-wash);}
.es-ic{font-size:24px;width:42px;height:42px;border-radius:12px;background:var(--page);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.es-body{flex:1;min-width:0;}
.es-title{font-weight:700;font-size:14.5px;}
.es-desc{font-size:13px;color:var(--text-secondary);margin-top:3px;line-height:1.45;}
.es-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;}
.es-tags .chip{margin:0;}
.es-admin .es-sec-h{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin:18px 0 10px;}
.es-admin .es-sec-h:first-child{margin-top:0;}
.es-admin .field.wide{grid-column:1/-1;}
.es-mcard{border:1px solid var(--gridline);border-radius:12px;padding:14px 16px;margin-bottom:10px;}
.es-mhead{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px;}
.es-mhead .field{margin:0;}
.es-whook{background:var(--page);border-radius:10px;padding:12px 14px;margin-top:4px;display:flex;flex-direction:column;gap:6px;}
.es-ready{display:flex;flex-direction:column;gap:2px;}
.es-ready-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--gridline);font-size:13px;}
.es-ready-row:last-child{border-bottom:none;}
@media (max-width:700px){.es-method{flex-wrap:wrap;}.es-method .btn{width:100%;justify-content:center;}.es-mhead{flex-wrap:wrap;}.es-mhead > div:last-child{width:100% !important;}}

/* ---------- WhatsApp signup troubleshooter ---------- */
.doc-sum{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;padding:10px 14px;border-radius:10px;margin-bottom:12px;background:var(--good-wash);}
.doc-sum.warn{background:var(--warning-wash);}
.doc-sum.fail{background:var(--critical-wash);}
.doc-list{border:1px solid var(--gridline);border-radius:12px;overflow:hidden;}
.doc-row{display:flex;gap:12px;align-items:flex-start;padding:11px 14px;border-bottom:1px solid var(--gridline);}
.doc-list .doc-row:last-child{border-bottom:none;}
.doc-row .small{color:var(--text-secondary);margin-top:2px;overflow-wrap:anywhere;}
.doc-row > .btn{flex-shrink:0;}
.doc-ic{flex:0 0 22px;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;background:var(--good);margin-top:1px;}
.warn > .doc-ic{background:var(--warning);color:#3d2a00;}
.fail > .doc-ic{background:var(--critical);}
.skipped > .doc-ic{background:var(--gridline);color:var(--text-muted);}
.doc-fixbox:empty{display:none;}
.doc-fixbox{margin-top:8px;display:flex;flex-direction:column;gap:6px;}
.doc-inline{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.doc-inline input,.doc-inline select{margin:0;}
.doc-err{font-size:12.5px;color:var(--critical);background:var(--critical-wash);border-radius:8px;padding:7px 10px;overflow-wrap:anywhere;}
.doc-ids summary,.doc-att + summary,details.small summary{cursor:pointer;color:var(--text-secondary);}
.doc-att{border:1px solid var(--gridline);border-radius:10px;padding:10px 12px;margin-top:8px;}
.doc-steps{margin-top:6px;display:flex;flex-direction:column;gap:4px;}
.doc-step{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;overflow-wrap:anywhere;}
.doc-step .doc-ic{flex-basis:18px;width:18px;height:18px;font-size:10px;}
.doc-card .co-line .small{overflow-wrap:anywhere;}
@media (max-width:640px){.doc-row{flex-wrap:wrap;}.doc-row > .btn{margin-left:34px;}}

/* ---------- WhatsApp template editor + business profile ---------- */
.wat-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start;}
.wat-form{min-width:0;}
.wat-prev{position:sticky;top:0;}
.wat-prev-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;}
.wat-cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.wat-cat{display:flex;flex-direction:column;gap:2px;border:1px solid var(--gridline);border-radius:10px;padding:10px 12px;cursor:pointer;position:relative;}
.wat-cat input{position:absolute;opacity:0;pointer-events:none;}
.wat-cat span{font-size:11.5px;color:var(--text-muted);line-height:1.35;}
.wat-cat:has(input:checked){border-color:var(--accent);background:var(--accent-wash);box-shadow:0 0 0 1px var(--accent) inset;}
.wat-cat:has(input:disabled){opacity:.45;cursor:not-allowed;}
.wat-count{font-size:11px;color:var(--text-muted);text-align:right;margin-top:2px;}
.wat-ex{border:1px dashed var(--gridline);border-radius:10px;padding:8px 10px;margin:-4px 0 12px;display:flex;flex-direction:column;gap:6px;}
.wat-exrow{display:flex;align-items:center;gap:8px;}
.wat-exrow .mono{flex:0 0 40px;color:var(--indigo);}
.wat-exrow input{margin:0;}
.wat-btn{display:flex;gap:6px;align-items:center;margin-bottom:6px;flex-wrap:wrap;}
.wat-btn input{flex:1 1 140px;min-width:0;margin:0;}
.wat-btn .badge{flex-shrink:0;}
#btnMenu{right:0;left:auto;}
.wat-filters .chips{display:flex;gap:6px;flex-wrap:wrap;}
.wat-filters .chip{cursor:pointer;font:inherit;font-size:12px;padding:3px 10px;}
.wat-filters .chip.on{border-color:var(--accent);color:var(--accent);background:var(--accent-wash);}
.wap-phone{background:#e9e2d8;border-radius:14px;padding:14px 12px;background-image:radial-gradient(rgba(0,0,0,.035) 1px,transparent 1px);background-size:12px 12px;}
.wap-bubble{background:#fff;border-radius:2px 10px 10px 10px;padding:7px 9px 18px;font-size:13.5px;line-height:1.4;color:#111b21;position:relative;box-shadow:0 1px .5px rgba(11,20,26,.13);overflow-wrap:anywhere;}
.wap-head{font-weight:700;margin-bottom:4px;}
.wap-media{display:block;width:100%;border-radius:6px;margin-bottom:6px;max-height:180px;object-fit:cover;}
.wap-media.ph,.wap-media.doc{background:#d9dee0;color:#54656f;height:120px;display:flex;align-items:center;justify-content:center;font-size:13px;}
.wap-media.doc{height:auto;padding:12px;justify-content:flex-start;}
.wap-var{background:var(--indigo-wash);color:var(--indigo);border-radius:4px;padding:0 3px;}
.wap-foot{font-size:12px;color:#667781;margin-top:4px;}
.wap-time{position:absolute;right:8px;bottom:3px;font-size:10.5px;color:#667781;}
.wap-btns{display:flex;flex-direction:column;gap:2px;margin-top:2px;}
.wap-btn{background:#fff;border-radius:8px;text-align:center;color:#027eb5;font-size:13.5px;padding:8px;box-shadow:0 1px .5px rgba(11,20,26,.13);}
.wpf-top{display:flex;gap:16px;align-items:center;margin-bottom:14px;}
.wpf-photo{width:84px;height:84px;border-radius:50%;background:var(--accent-wash);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;overflow:hidden;flex-shrink:0;}
.wpf-photo img{width:100%;height:100%;object-fit:cover;}
@media (max-width:860px){.wat-grid{grid-template-columns:minmax(0,1fr);}.wat-prev{position:static;}.wat-cats{grid-template-columns:minmax(0,1fr);}}

/* ---------- WhatsApp numbers (cards, number page, template picker) ---------- */
.wan-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.wan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;}
.wan-card{display:flex;flex-direction:column;gap:10px;margin:0;cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.wan-card:hover{border-color:var(--accent);box-shadow:0 2px 10px rgba(11,11,11,.06);}
.wan-card.off{opacity:.65;}
.wan-top{display:flex;gap:12px;align-items:flex-start;}
.wan-av{flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:var(--accent-wash);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700;overflow:hidden;position:relative;}
.wan-av img{width:100%;height:100%;object-fit:cover;}
.wan-av.lg{flex-basis:64px;width:64px;height:64px;font-size:22px;}
.wan-av.sm{flex-basis:30px;width:30px;height:30px;font-size:11px;}
.wan-av.off{filter:grayscale(1);}
.wan-name{font-weight:700;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wan-phone{font-size:13.5px;color:var(--text-secondary);font-variant-numeric:tabular-nums;}
.wan-about{font-size:12.5px;color:var(--text-secondary);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wan-chips{display:flex;flex-wrap:wrap;gap:4px;}
.wan-chips .chip{margin:0;}
.wan-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:1px solid var(--gridline);border-bottom:1px solid var(--gridline);padding:10px 0;}
.wan-stats > div{display:flex;flex-direction:column;min-width:0;}
.wan-stats span{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;}
.wan-stats b{font-size:16px;}
.wan-stats i{font-style:normal;font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;}
.wan-stats em{font-style:normal;color:var(--critical);}
.wan-q{display:inline-block;font-size:12px;font-weight:600;padding:1px 8px;border-radius:10px;background:var(--page);}
.wan-q.green{background:var(--good-wash);color:var(--good-text);}
.wan-q.yellow{background:var(--warning-wash);color:#8a5a00;}
.wan-q.red{background:var(--critical-wash);color:var(--critical);}
.wan-issues{display:flex;flex-direction:column;gap:4px;}
.wan-issues div{font-size:12px;padding:5px 9px;border-radius:8px;overflow-wrap:anywhere;}
.wan-issues .bad{background:var(--critical-wash);color:var(--critical);}
.wan-issues .warn{background:var(--warning-wash);color:#8a5a00;}
.wan-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto;}
.wan-hero{display:flex;gap:16px;align-items:flex-start;padding:20px 22px;margin:10px 0 14px;flex-wrap:wrap;}
.wan-hero .wan-chips{margin-top:6px;}
.wan-kpis .kpi-value .wan-q{font-size:14px;}
.wan-dl{grid-template-columns:minmax(150px,220px) minmax(0,1fr);}
.wan-dl dd{overflow-wrap:anywhere;}
.wpf-wrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start;}
.wpf-wrap:has(.wpf-form:only-child){grid-template-columns:minmax(0,1fr);}
.wpf-card{position:sticky;top:0;}
.wpf-preview{border:1px solid var(--gridline);border-radius:14px;padding:18px 14px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;}
.wpf-photo.lg{width:96px;height:96px;margin-bottom:8px;}
.wpf-pv-about{font-size:13px;margin:8px 0;color:var(--text-secondary);}
.wpf-pv-rows{width:100%;text-align:left;border-top:1px solid var(--gridline);padding-top:8px;font-size:12.5px;display:flex;flex-direction:column;gap:6px;overflow-wrap:anywhere;}
.wpf-pv-rows div:empty{display:none;}
.wat-picker{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;scrollbar-width:thin;}
.wat-pick{display:flex;align-items:center;gap:10px;min-width:220px;max-width:280px;flex:0 0 auto;text-align:left;font:inherit;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:9px 12px;cursor:pointer;color:inherit;}
.wat-pick:hover{border-color:var(--accent);}
.wat-pick.on{border-color:var(--accent);background:var(--accent-wash);box-shadow:0 0 0 1px var(--accent) inset;}
.wat-pick b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wat-pick .grow > span{display:block;font-size:12px;color:var(--text-muted);}
.wat-pick-n{font-weight:700;font-size:13px;display:flex;gap:3px;align-items:center;}
.wat-pick-n i{font-style:normal;font-size:10.5px;padding:0 5px;border-radius:8px;}
.wat-pick-n i.warn{background:var(--warning-wash);color:#8a5a00;}
.wat-pick-n i.bad{background:var(--critical-wash);color:var(--critical);}
@media (max-width:860px){.wpf-wrap{grid-template-columns:minmax(0,1fr);}.wpf-card{position:static;}.wan-dl{grid-template-columns:minmax(0,1fr);}}
.wan-title{font-weight:700;font-size:15px;margin-bottom:2px;}

/* ---- WhatsApp template pages (new / edit / details) + carousel (2026-10-14) */
.wat-page .wat-form > .card{margin-bottom:0;}
.wat-bar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding:12px 16px;background:var(--surface-1);border:1px solid var(--gridline);border-radius:12px;box-shadow:0 -6px 18px rgba(11,11,11,.06);}
.wat-bar .grow{min-width:180px;}
.wat-kinds{grid-template-columns:repeat(2,minmax(0,1fr));}
.wat-layout{display:flex;gap:6px;flex-wrap:wrap;min-height:30px;align-items:center;}
.wat-layout .chip{margin:0;font-size:12.5px;padding:3px 6px 3px 10px;}
.wat-layout .x-btn{width:20px;height:20px;font-size:15px;line-height:1;}
.wat-cards{display:flex;flex-direction:column;gap:10px;margin-bottom:10px;}
.wat-card{border:1px solid var(--gridline);border-radius:12px;padding:10px 12px;background:var(--surface-1);}
.wat-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px;}
.wat-card-body{display:flex;gap:12px;align-items:flex-start;}
.wat-card-body textarea{margin:0;}
.wat-card-body .wat-btn{margin-top:6px;}
.wat-card-file{flex:0 0 112px;height:112px;position:relative;border:1px dashed var(--gridline);border-radius:10px;background:var(--page);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;color:var(--text-muted);font-size:12.5px;text-align:center;}
.wat-card-file:hover{border-color:var(--accent);color:var(--accent);}
.wat-card-file input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.wat-card-thumb{width:100%;height:100%;object-fit:cover;display:flex;align-items:center;justify-content:center;padding:6px;font-size:12px;overflow-wrap:anywhere;}
img.wat-card-thumb{padding:0;}
.wat-card-change{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);color:#fff;font-size:11px;padding:3px;}
.wap-cards{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 6px;margin-top:4px;scroll-snap-type:x mandatory;scrollbar-width:thin;}
.wap-card{flex:0 0 80%;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px .5px rgba(11,20,26,.13);scroll-snap-align:start;display:flex;flex-direction:column;}
.wap-card .wap-card-media{border-radius:0;margin:0;height:120px;max-height:none;object-fit:cover;}
.wap-card-text{padding:7px 9px 8px;font-size:13px;line-height:1.35;color:#111b21;flex:1;overflow-wrap:anywhere;}
.wap-card-btn{border-top:1px solid #e9edef;color:#027eb5;text-align:center;font-size:13px;padding:7px 6px;}
.wat-sec{margin-bottom:14px;}
.wat-sec:last-child{margin-bottom:0;}
.wat-sec-t{font-size:11.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;}
.wat-pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--page);border-radius:8px;padding:8px 10px;font-size:13.5px;line-height:1.45;}
.wat-sec-btn{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;font-size:13px;}
.wat-sec-btn .mono{overflow-wrap:anywhere;}
.wat-dcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;}
.wat-dcard{border:1px solid var(--gridline);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;}
.wat-dcard-media{width:100%;height:110px;object-fit:cover;background:#d9dee0;color:#54656f;display:flex;align-items:center;justify-content:center;font-size:13px;}
.wat-dcard-body{padding:8px 10px;font-size:13px;display:flex;flex-direction:column;gap:2px;}
@media (max-width:560px){
  .wat-kinds{grid-template-columns:minmax(0,1fr);}
  .wat-card-body{flex-direction:column;}
  .wat-card-file{flex-basis:auto;width:100%;height:150px;}
  .wat-bar{padding:10px 12px;}
  .wat-bar > .muted{display:none;}
  .wat-bar .btn{flex:1;justify-content:center;}
}

/* ---- Campaigns: list, report tabs, funnel, recipients, cost (2026-10-14) */
.cp-kpis{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));}
.cp-tools{gap:8px;flex-wrap:wrap;}
.cp-tools input[type=search]{flex:1 1 220px;max-width:340px;margin:0;}
.cp-tools select{margin:0;}
.cp-dots{font-size:18px;line-height:1;padding:2px 8px;}
.cp-mini{height:4px;margin-top:5px;width:90px;}
.cp-banner{border-radius:10px;justify-content:flex-start;}
.cp-prog{display:flex;align-items:center;gap:10px;}
.cp-prog .progress{flex:1;}
.cp-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;}
.cp-main,.cp-side{min-width:0;display:flex;flex-direction:column;gap:0;}
.cp-fun{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;padding:7px 6px;margin:0 -6px;border-radius:8px;cursor:pointer;font:inherit;color:inherit;text-align:left;}
.cp-fun:hover{background:var(--page);}
.cp-fun-l{width:110px;flex-shrink:0;font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cp-fun-t{flex:1;height:12px;background:var(--page);border-radius:6px;overflow:hidden;}
.cp-fun-t > span{display:block;height:100%;background:var(--accent);border-radius:6px;min-width:2px;}
.cp-fun-v{width:110px;flex-shrink:0;text-align:right;font-size:12.5px;color:var(--text-muted);}
.cp-fun-v b{color:var(--text-primary,inherit);font-size:13.5px;}
.cp-fails{display:flex;flex-direction:column;gap:4px;margin-bottom:6px;}
.cp-fail{display:flex;justify-content:space-between;gap:12px;align-items:center;width:100%;text-align:left;font:inherit;font-size:13px;background:var(--critical-wash);color:var(--critical);border:0;border-radius:8px;padding:8px 10px;cursor:pointer;}
.cp-fail span{overflow-wrap:anywhere;}
.cp-fail:hover{filter:brightness(.97);}
.cp-follow{margin:0 6px 6px 0;}
.cp-rec{padding-top:14px;}
.cp-rec-top{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin-bottom:10px;}
.cp-chips{display:flex;gap:6px;flex-wrap:wrap;}
.cp-chips .chip{cursor:pointer;font:inherit;font-size:12px;padding:3px 10px;margin:0;}
.cp-chips .chip.on,.cp-active .chip.on{border-color:var(--accent);color:var(--accent);background:var(--accent-wash);}
.cp-rec-tools{gap:6px;flex-wrap:nowrap;}
.cp-rec-tools input{margin:0;width:240px;}
.cp-active{font-size:12.5px;color:var(--text-muted);margin:-2px 0 10px;}
.cp-active .chip{font-size:12px;padding:2px 4px 2px 10px;}
.cp-active .x-btn{width:20px;height:20px;font-size:15px;}
.cp-err{color:var(--critical);max-width:260px;overflow-wrap:anywhere;}
.cp-tl{color:var(--text-secondary);line-height:1.5;white-space:nowrap;}
.cp-cost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;}
.cp-cost-grid > .card{margin-bottom:0;}
.cp-cost-grid{margin-bottom:16px;}
.cp-how .small{line-height:1.55;color:var(--text-secondary);}
@media (max-width:980px){.cp-grid{grid-template-columns:minmax(0,1fr);}}
@media (max-width:640px){
  .cp-rec-tools{width:100%;}
  .cp-rec-tools input{flex:1;width:auto;min-width:0;}
  .cp-rec-tools .btn{flex-shrink:0;}
  .cp-fun-l{width:80px;}
  .cp-fun-v{width:84px;}
}

/* ---- Template header file (picker in send dialogs, default on template pages) + campaign retry (2026-10-14) */
.hp .field{margin-bottom:6px;}
.hp-opt{display:flex;gap:12px;align-items:center;border:1px solid var(--gridline);border-radius:10px;padding:8px 10px;margin-bottom:6px;cursor:pointer;}
.hp-opt:has(input:checked){border-color:var(--accent);background:var(--accent-wash);}
.hp-opt > span{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.hp-opt input[type=radio]{flex-shrink:0;}
.hp-thumb{width:64px;height:64px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--page);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--text-muted);overflow:hidden;}
.hp-thumb.lg{width:120px;height:120px;font-size:30px;}
.hp-thumb.hp-none{font-size:11px;text-align:center;padding:4px;border:1px dashed var(--gridline);}
.hp-thumb.hp-file{flex-direction:column;gap:2px;text-decoration:none;}
.hp-thumb.hp-file span{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px;}
.hp-acts{gap:6px;margin-top:4px;flex-wrap:wrap;}
.hp-acts .hp-link{flex:1 1 180px;min-width:0;margin:0;padding:5px 8px;font-size:12.5px;}
.hp-warn{background:var(--warning-wash);color:#8a5a00;border-radius:8px;padding:8px 10px;font-size:12.5px;margin-bottom:6px;}
.hp-default{display:flex;gap:14px;align-items:flex-start;}
.hp-mini{width:20px;height:20px;border-radius:4px;object-fit:cover;margin-right:4px;vertical-align:middle;}
.rt-list{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto;}
.rt-row{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--gridline);border-radius:8px;padding:8px 10px;cursor:pointer;}
.rt-row > span.grow{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere;font-size:13px;}
.rt-row:has(input:checked){border-color:var(--accent);background:var(--accent-wash);}
.rt-n{font-weight:700;font-size:13px;}
.rt-cost{background:var(--page);border-radius:8px;padding:10px 12px;font-size:13px;}
.cp-retry{flex-wrap:wrap;gap:6px;}
@media (max-width:560px){.hp-default{flex-direction:column;}}
.tpl-prev-img{display:block;width:100%;max-height:180px;object-fit:cover;border-radius:8px;margin-bottom:8px;}

/* inbox side panel: name links to the contact page (new tab) */
.ib-cname a{color:inherit;text-decoration:none;}
.ib-cname a:hover{color:var(--accent);text-decoration:underline;}
.ib-ext{font-size:11px;color:var(--text-muted);font-weight:400;}
.ib-quick a.btn{text-decoration:none;}
/* Lists & segments */
.sg-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.sg-top input[type=search]{margin-left:auto;width:260px;max-width:100%;}
.sg-help{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--text-muted);margin:0 0 12px;}
.sg-help span{flex:1 1 280px;}
.sg-name{font-weight:600;color:var(--text-primary);text-decoration:none;}
.sg-name:hover,.sg-count:hover{color:var(--accent);text-decoration:underline;}
.sg-desc{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sg-count{font-weight:600;color:var(--accent);text-decoration:none;}
.sg-info{font-size:13px;color:var(--text-muted);background:var(--accent-wash);border-radius:8px;padding:8px 12px;margin:0 0 12px;}
@media (max-width:640px){.sg-top input[type=search]{margin-left:0;width:100%;}.sg-desc{max-width:190px;}.sg-hm{display:none;}}

/* Radio cards (WhatsApp number: who pays Meta, webhook override) - 15 Oct 2026 */
.opt-cards{display:flex;flex-direction:column;gap:8px;min-width:0;}
.opt-card{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--border);border-radius:10px;cursor:pointer;background:var(--surface-1);min-width:0;}
.opt-card input{margin-top:3px;flex:none;width:auto;}
.opt-card > span{display:flex;flex-direction:column;gap:3px;min-width:0;overflow-wrap:anywhere;}
.opt-card:has(input:checked){border-color:var(--accent);background:var(--accent-wash);}
.opt-card.off{opacity:.6;cursor:not-allowed;}
.opt-card .opt-note{color:#8a5a00;}

/* WhatsApp numbers: 2 cards a row + cleaner number page (15 Oct 2026) */
.wan-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
@media (max-width:760px){.wan-grid{grid-template-columns:minmax(0,1fr);}}
.wnp-head{display:flex;gap:16px;align-items:center;margin:8px 0 16px;flex-wrap:wrap;}
.wnp-head .cd-name{font-size:20px;}
.wnp-sub{font-size:13.5px;color:var(--text-secondary);font-variant-numeric:tabular-nums;margin:2px 0 6px;}
.wnp-alert{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 14px;margin-bottom:14px;border-radius:var(--radius);background:var(--warning-wash);color:#6b4600;font-size:13px;}
.wnp-alert b{margin-right:4px;}
.wnp-alert span{padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.6);}
.wnp-alert span.bad{color:var(--critical);}
.wnp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;margin-bottom:16px;}
.wnp-stats > div{display:flex;flex-direction:column;gap:2px;padding:14px 18px;min-width:0;border-left:1px solid var(--gridline);}
.wnp-stats > div:first-child{border-left:0;}
.wnp-stats span{font-size:11.5px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em;}
.wnp-stats b{font-size:20px;font-weight:700;letter-spacing:-.01em;}
.wnp-stats b .wan-q{font-size:13px;}
.wnp-stats i{font-style:normal;font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wnp-stats em{font-style:normal;color:var(--critical);}
.wnp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px;}
.wnp-sec{margin:0;display:flex;flex-direction:column;gap:10px;min-width:0;}
.wnp-sec-title{font-weight:700;font-size:14px;}
.wnp-sec-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;}
.wnp-dl{grid-template-columns:130px minmax(0,1fr);}
.wnp-big{font-weight:650;font-size:14.5px;color:var(--text-primary,inherit);margin-bottom:2px;}
.wnp-field{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:12px;color:var(--text-muted);}
.wnp-ok{color:var(--good-text);}
.wnp-warn{color:#8a5a00;}
.wnp-bad{color:var(--critical);}
.wnp-danger{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.wnp-danger .wnp-sec-actions{margin:0;padding:0;}
@media (max-width:760px){
  .wnp-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .wnp-stats > div:nth-child(3){border-left:0;}
  .wnp-stats > div:nth-child(n+3){border-top:1px solid var(--gridline);}
  .wnp-grid{grid-template-columns:minmax(0,1fr);}
  .wnp-head .cd-actions{width:100%;}
  .wnp-head .cd-actions > .btn{flex:1;justify-content:center;}
}

/* Reports (15 Oct 2026): toolbar, trend chart, tables, print layout */
.print-only{display:none;}
.rp-head{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px;}
.rp-title{font-size:18px;font-weight:700;}
.rp-actions{display:flex;gap:6px;flex-wrap:wrap;}
.rp-toolbar{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;padding:12px 14px;margin-bottom:10px;}
.rp-filters{display:contents;}
.rp-f{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--text-muted);font-weight:600;min-width:0;}
.rp-f select,.rp-f input{padding:6px 8px;font-size:13px;min-width:120px;max-width:240px;}
.rp-date input{min-width:0;width:140px;}
.rp-applied{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px;}
.rp-applied:empty{display:none;}
.rp-kpis{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-bottom:6px;}
.rp-kpis .kpi-sub{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;}
.rp-delta{font-weight:700;color:var(--text-secondary);}
.rp-delta.up{color:var(--good-text);}
.rp-delta.down{color:var(--critical);}
.rp-prev{color:var(--text-muted);}
.rp-compare{margin:0 0 14px;}
.rp-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.rp-sec{margin:0;min-width:0;}
.rp-sec.rp-table,.rp-sections > .rp-sec:first-child{grid-column:1 / -1;}
.rp-sec-head{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px;}
.rp-sec-head .card-title{margin:0;}
.rp-sec-actions{display:flex;gap:4px;}
.rp-sec .bar-row .bar-label{width:160px;}
.rp-sec .bar-row .bar-val{width:auto;min-width:64px;}
.rp-data td.nowrap{white-space:nowrap;}
.rp-data tfoot td{font-weight:700;border-top:2px solid var(--gridline);background:var(--page);}
.rp-data tr.clickable{cursor:pointer;}
.rp-more{text-align:center;margin-top:10px;}
.rp-legend{display:flex;gap:12px;font-size:12px;color:var(--text-secondary);flex-wrap:wrap;}
.rp-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;}
.rp-trend{display:flex;align-items:stretch;gap:2px;height:180px;padding-top:6px;border-bottom:1px solid var(--gridline);}
.rp-col{flex:1;min-width:0;display:flex;flex-direction:column;}
.rp-bars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:1px;}
.rp-bars span{flex:1;max-width:14px;border-radius:3px 3px 0 0;min-height:0;}
.rp-x{font-size:10px;color:var(--text-muted);text-align:center;white-space:nowrap;overflow:visible;height:16px;line-height:16px;}
.rp-col:hover .rp-bars span{opacity:.75;}
.s0{background:var(--accent);}
.s1{background:var(--accent-2);}
.s2{background:#f59e0b;}
.rp-max{margin-top:16px;}
.rp-loading{opacity:.5;pointer-events:none;transition:opacity .15s;}
.rp-mnav{width:100%;margin-bottom:12px;}
@media (max-width:900px){.rp-sections{grid-template-columns:minmax(0,1fr);}}
@media (max-width:760px){
  .rp-hub{flex-direction:column;gap:0;}
  .rp-hub .hub-nav{width:100%;position:static;}
  .rp-f,.rp-f select{width:100%;max-width:none;}
  .rp-date{flex:1;}
  .rp-date input{width:100%;}
  .rp-trend{height:140px;}
}
/* Print: only the report, A4 landscape, header with company / period / filters */
@page{size:A4 landscape;margin:12mm;}
@media print{
  body.rp-printing{background:#fff !important;}
  body.rp-printing .topbar,body.rp-printing .sidebar,body.rp-printing .no-print,body.rp-printing .page-head,body.rp-printing .toast-host,
  body.rp-printing .banner,body.rp-printing .modal-wrap{display:none !important;}
  body.rp-printing .app-shell{display:block !important;height:auto !important;overflow:visible !important;}
  body.rp-printing .app-shell > *{overflow:visible !important;}
  body.rp-printing .body-row,body.rp-printing .main-col{overflow:visible !important;display:block !important;height:auto !important;}
  body.rp-printing .page{padding:0 !important;max-width:none !important;}
  body.rp-printing .hub{display:block !important;}
  body.rp-printing .print-only{display:block !important;}
  body.rp-printing .rp-head .rp-title,body.rp-printing .rp-head .muted{display:none;}
  body.rp-printing .rp-print-head{border-bottom:2px solid #0b0b0b;padding-bottom:8px;margin-bottom:12px;}
  body.rp-printing .rp-ph-brand{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
  body.rp-printing .rp-ph-title{font-size:20px;font-weight:700;margin:2px 0;}
  body.rp-printing .rp-ph-meta{font-size:11px;color:#444;}
  body.rp-printing .card{box-shadow:none !important;border:1px solid #ccc !important;break-inside:avoid;page-break-inside:avoid;padding:10px 12px !important;}
  body.rp-printing .rp-table{break-inside:auto;page-break-inside:auto;}
  body.rp-printing .rp-sections{display:block !important;}
  body.rp-printing .rp-sec{margin-bottom:10px !important;}
  body.rp-printing .rp-kpis{grid-template-columns:repeat(4,1fr) !important;gap:6px !important;}
  body.rp-printing .kpi{padding:8px 10px !important;}
  body.rp-printing .kpi-value{font-size:18px !important;}
  body.rp-printing table.data{font-size:10px;}
  body.rp-printing table.data th,body.rp-printing table.data td{padding:4px 6px !important;}
  body.rp-printing thead{display:table-header-group;}
  body.rp-printing tr{break-inside:avoid;}
  body.rp-printing .table-wrap{overflow:visible !important;}
  body.rp-printing .rp-trend{height:120px;}
  body.rp-printing *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}

/* Settings -> Pipeline: lead rules (15 Oct 2026) */
.lr-intro{background:var(--page);border-radius:10px;padding:10px 12px;margin-bottom:12px;line-height:1.5;}
.lr-group{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:14px 0 6px;}
.lr-rule{border:1px solid var(--gridline);border-radius:10px;padding:10px 12px;margin-bottom:8px;}
.lr-head{margin:0;}
.lr-desc{margin:2px 0 6px 24px;}
.lr-rule textarea{width:100%;margin-top:4px;font-size:13px;}
.lr-list{margin:0;padding-left:18px;line-height:1.6;}
.lr-test{margin-top:12px;}
.lr-yes{color:var(--good-text);font-weight:700;}
.lr-no{color:var(--text-secondary);font-weight:700;}

/* Media library + Inbox attach (15 Oct 2026) */
.ml-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.ml-bar input{flex:1;min-width:160px;}
.ml-bar select{width:auto;min-width:130px;}
.ml-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;min-height:120px;}
.ml-item{position:relative;border:1px solid var(--border);border-radius:10px;padding:6px;cursor:pointer;background:var(--surface-1);min-width:0;transition:border-color .12s,box-shadow .12s;}
.ml-item:hover{border-color:var(--accent);}
.ml-item.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-wash);}
.ml-cb{position:absolute;top:8px;left:8px;z-index:1;width:auto;}
.ml-th{height:96px;border-radius:7px;background:var(--page);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.ml-th img{width:100%;height:100%;object-fit:cover;}
.ml-ic{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--text-secondary);}
.ml-ic b{font-size:10.5px;letter-spacing:.04em;}
.ml-ic.k-document{color:#d03b3b;}.ml-ic.k-video{color:#6952d6;}.ml-ic.k-audio{color:#0c7a4f;}
.ml-name{font-size:12.5px;font-weight:600;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ml-meta{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ml-pg{margin-top:10px;}
.ml-actions{display:flex;gap:8px;align-items:center;margin-bottom:10px;padding:8px 10px;background:var(--accent-wash);border-radius:8px;}
.ml-actions[hidden]{display:none;}
.ml-drop{display:block;border:2px dashed var(--border);border-radius:12px;padding:18px;text-align:center;cursor:pointer;margin-bottom:8px;}
.ml-drop:hover{border-color:var(--accent);}
.ml-drop input{display:none;}
.ml-drop > span{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-secondary);}
.ml-chosen{margin-bottom:8px;}
.ml-fold{margin-top:8px;}
.ml-pane[hidden]{display:none;}
.ml-prev{max-width:100%;max-height:50vh;border-radius:8px;display:block;margin:0 auto;}
@media (max-width:600px){.ml-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.ml-th{height:80px;}}

/* Sortable table headers (every table, UI.sortTable) - 15 Oct 2026 */
table thead th:not(.th-sort):not(:empty){cursor:pointer;user-select:none;}
table thead th:not(.th-sort):not(:empty):hover{color:var(--text-primary);}
table thead th[aria-sort]{color:var(--accent);}
table thead th[aria-sort="ascending"]::after{content:" ▲";font-size:9px;}
table thead th[aria-sort="descending"]::after{content:" ▼";font-size:9px;}
table[data-nosort] thead th{cursor:default;}
@media print{table thead th[aria-sort]::after{content:"";}}

/* Inbox: automatic replies (15 Oct 2026) */
.bubble.b-auto{opacity:.78;border-style:dashed;}
.b-autotag{font-size:11px;color:var(--text-muted);margin-bottom:3px;display:flex;gap:4px;align-items:center;flex-wrap:wrap;}
.b-autotag .btn-link{font-size:11px;}
.ac-top{display:flex;flex-direction:column;gap:4px;font-size:12.5px;max-height:160px;overflow:auto;margin-bottom:6px;}
.conv-link{margin-left:auto;font-size:11.5px;color:var(--accent);text-decoration:none;white-space:nowrap;}
.conv-link:hover{text-decoration:underline;}

/* Recharge vs consumption (partner console → Reports, 15 Oct 2026) */
.rv-flow{display:flex;flex-wrap:wrap;gap:8px;}
.rv-step{display:flex;flex-direction:column;gap:2px;min-width:120px;flex:1 1 120px;padding:8px 10px;border:1px solid var(--gridline);border-radius:8px;}
.rv-step span{font-size:12px;color:var(--text-secondary);}
.rv-step b{font-size:15px;font-variant-numeric:tabular-nums;}

/* Company page → Balances (partner console): stacked rows that fit the 340px sidebar */
.bal-row{padding:10px 0;border-bottom:1px solid var(--gridline);font-size:13px;}
.bal-row:last-of-type{border-bottom:none;}
.bal-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.bal-name{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere;}
.bal-amt{flex-shrink:0;font-variant-numeric:tabular-nums;white-space:nowrap;}
.bal-sub{margin-top:2px;overflow-wrap:anywhere;}
.bal-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}

/* Automations, My tasks, Web chat, AI replies, CRM push (15 Oct 2026) */
.seg-b.on{background:var(--accent-wash,#e7f7ef);color:var(--text-primary);}
.au-recipes{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;}
.au-recipe{appearance:none;text-align:left;border:1px solid var(--gridline);background:var(--surface-1,#fff);border-radius:10px;padding:12px;cursor:pointer;font:inherit;display:flex;flex-direction:column;gap:4px;color:var(--text-primary);}
.au-recipe:hover{border-color:var(--accent);}
.au-recipe span{font-size:12.5px;color:var(--text-secondary);line-height:1.4;}
.au-sum{color:var(--text-secondary);margin-top:2px;}
.au-build{max-width:860px;padding-bottom:80px;}
.au-flow{display:flex;flex-direction:column;}
.au-node{margin:0;}
.au-node-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.au-node-head select{max-width:420px;}
.au-dot{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;}
.au-trigger .au-dot{background:var(--indigo,#6952d6);}
.au-sub{margin-top:10px;padding-top:10px;border-top:1px dashed var(--gridline);}
.au-wait{display:flex;flex-direction:column;align-items:flex-start;padding-left:22px;}
.au-line{width:2px;height:14px;background:var(--gridline);margin-left:0;}
.au-wait-in{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-secondary);padding:6px 0;flex-wrap:wrap;}
.au-wait-in select,.au-wait-in input{padding:4px 6px;font-size:12.5px;width:auto;}
.au-step + .au-step{margin-top:0;}
.au-add{align-self:flex-start;margin:14px 0 18px 0;}
.au-params .form-grid{margin-bottom:6px;}
.au-pv{margin-top:8px;}
.au-savebar{position:sticky;bottom:0;display:flex;gap:8px;align-items:center;padding:12px 0;background:var(--page);border-top:1px solid var(--gridline);max-width:860px;z-index:5;}
.tk-group .card-title{margin-bottom:4px;}
.tk-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--gridline);}
.tk-row:last-child{border-bottom:none;}
.tk-row.done{opacity:.6;}
.tk-ic{font-size:18px;width:26px;text-align:center;flex-shrink:0;}
.tk-main{flex:1;min-width:0;}
.tk-name{font-weight:600;color:var(--text-primary);}
.tk-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
@media (max-width:640px){.tk-row{flex-wrap:wrap;}.tk-act{width:100%;justify-content:flex-start;padding-left:38px;}}
.code-pre{background:var(--page);border:1px solid var(--gridline);border-radius:8px;padding:10px;font-size:12px;max-height:280px;overflow:auto;white-space:pre-wrap;word-break:break-all;}
.wc-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start;}
@media (max-width:980px){.wc-grid{grid-template-columns:minmax(0,1fr);}}
.wc-preview{border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.12);background:#fff;border:1px solid var(--gridline);}
.wc-preview .hd{padding:12px 14px;color:#fff;display:flex;gap:10px;align-items:center;}
.wc-preview .hd b{display:block;font-size:14.5px}.wc-preview .hd span{font-size:12px;opacity:.9}
.wc-preview .bd{padding:14px;background:#f6f6f3;min-height:120px;}
.wc-preview .bubble{background:#fff;border:1px solid var(--gridline);border-radius:12px;border-bottom-left-radius:4px;padding:8px 11px;font-size:13.5px;max-width:85%;white-space:pre-wrap;}
.wc-launch{display:inline-flex;align-items:center;gap:8px;color:#fff;border-radius:999px;padding:10px 16px;font-weight:600;font-size:14px;margin-top:12px;box-shadow:0 6px 18px rgba(0,0,0,.15);}
.ai-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--indigo-wash,#efecfb);color:var(--indigo,#6952d6);cursor:pointer;border:0;font:inherit;font-size:12px;}
.ai-chip.off{background:var(--gridline);color:var(--text-secondary);}
.msg-ai .bubble-meta,.bubble.ai{border-left:3px solid var(--indigo,#6952d6);}
.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#1bae70;margin-left:4px;vertical-align:1px;}

.chd.ch-webchat{background:var(--warning,#f5a524);}

/* ---------- Inbox: scrollable tabs + channel strip ---------- */
.ib-tabwrap{position:relative;}
.ib-tabwrap .ib-tabs{scroll-behavior:auto;cursor:grab;user-select:none;}
.ib-tabwrap .ib-tabs.dragging{cursor:grabbing;}
.ib-tabwrap .ib-tabs.dragging .ib-tab{pointer-events:none;}
.ib-tabarr{position:absolute;top:0;bottom:4px;z-index:2;width:30px;display:none;align-items:center;justify-content:center;border:none;padding:0;cursor:pointer;color:var(--text-secondary);}
.ib-tabarr svg{width:15px;height:15px;}
.ib-tabarr:hover{color:var(--text-primary);}
.ib-tabarr.l{left:0;background:linear-gradient(90deg,var(--surface-1) 55%,transparent);justify-content:flex-start;padding-left:4px;}
.ib-tabarr.r{right:0;background:linear-gradient(270deg,var(--surface-1) 55%,transparent);justify-content:flex-end;padding-right:4px;}
.ib-tabarr.r svg{transform:rotate(180deg);}
.ib-tabwrap.can-l .ib-tabarr.l,.ib-tabwrap.can-r .ib-tabarr.r{display:flex;}
.ib-rail{width:76px;flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:10px 6px;border-right:1px solid var(--gridline);background:var(--page);overflow-y:auto;scrollbar-width:none;}
.ib-rail::-webkit-scrollbar{display:none;}
.ib-rail-i{position:relative;appearance:none;border:none;background:none;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px 7px;border-radius:10px;font:inherit;font-size:11px;font-weight:600;line-height:1.15;color:var(--text-secondary);cursor:pointer;text-align:center;}
.ib-rail-i .ic{position:relative;width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--surface-1);border:1px solid var(--gridline);transition:background .12s,border-color .12s;}
.ib-rail-i:hover .ic{border-color:var(--text-tertiary,#bbb);}
.ib-rail-i:hover{color:var(--text-primary);}
.ib-rail-i.on{color:var(--text-primary);}
.ib-rail-i.on::before{content:"";position:absolute;left:-6px;top:12px;width:3px;height:30px;border-radius:0 3px 3px 0;background:var(--accent);}
.ib-rail-i.on .ic{background:var(--accent-wash);border-color:var(--accent);}
.ib-rail-i .n{position:absolute;top:-6px;right:-8px;min-width:17px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:10px;line-height:17px;text-align:center;border:2px solid var(--page);}
.ib-rail-sep{height:1px;background:var(--gridline);margin:4px 10px;}
.ib-rail-i.chi-all svg{color:var(--text-primary);}
.ib-rail-i.chi-whatsapp svg{color:#25d366;}
.ib-rail-i.chi-webchat svg{color:var(--warning,#f5a524);}
.ib-rail-i.chi-sms svg{color:var(--indigo);}
.ib-rail-i.chi-rcs svg{color:var(--accent-2);}
.ib-rail-i.chi-email svg{color:var(--serious);}
@media (max-width:760px){
  .ib-rail{width:62px;padding:8px 4px;}
  .ib-rail-i{font-size:10px;}
  .ib-rail-i .ic{width:34px;height:34px;}
  .ib-rail-i.on::before{left:-4px;}
  .ib2 .inbox-list{width:auto;flex:1;min-width:0;}
  .inbox.show-thread .ib-rail{display:none;}
}
.chd{width:16px;height:16px;right:-4px;bottom:-4px;display:inline-flex;align-items:center;justify-content:center;color:#fff;}
.chd svg{display:block;}
/* chat list: macOS draws the scrollbar over the content, so keep a clear lane for it */
.ib2 .conv-items{scrollbar-width:thin;scrollbar-color:var(--gridline) transparent;}
.ib2 .conv-items::-webkit-scrollbar{width:6px;}
.ib2 .conv-items::-webkit-scrollbar-thumb{background:var(--gridline);border-radius:3px;}
.ib2 .conv-items::-webkit-scrollbar-track{background:transparent;}
.ib2 .conv{padding-right:20px;}
/* AI messages report */
.aim td{vertical-align:top;}
.aim .aim-q,.aim .aim-a{min-width:200px;max-width:340px;white-space:pre-wrap;word-break:break-word;}
.aim .aim-full{display:none;}
.aim td.open .aim-full{display:inline;}
.aim td.open .aim-short{display:none;}
.aim .nowrap{white-space:nowrap;}
/* WhatsApp service replies: free left this month / price per reply */
.ib-svc{margin-left:10px;font-size:11.5px;font-weight:600;color:var(--text-secondary);background:var(--page);border:1px solid var(--gridline);border-radius:10px;padding:1px 8px;white-space:nowrap;cursor:help;}
.ib-svc.warn{color:#9a6b00;background:#fff6dd;border-color:#f3dc9a;}
.ib-svc.paid{color:var(--accent);background:var(--accent-wash);border-color:transparent;}
/* Settings → AI replies: aligned two-column fields */
.ai-form .ai-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-items:start;}
.ai-form input:not([type=checkbox]):not([type=radio]),.ai-form select{height:40px;}
.ai-form label.field > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-form .ai-sub{font-size:12.5px;font-weight:600;color:var(--text-secondary);margin:4px 0 8px;}
.ai-form .ai-sub .muted{font-weight:400;margin-left:6px;}
.ai-form .ai-hours{padding:10px 12px;border:1px solid var(--gridline);border-radius:8px;background:var(--page);margin-bottom:12px;}
.ai-form .ai-hours select{width:auto;height:34px;padding:4px 8px;}
.inp-unit{display:flex;align-items:stretch;border:1px solid var(--gridline);border-radius:8px;background:var(--page);overflow:hidden;}
.inp-unit:focus-within{border-color:var(--accent);background:#fff;}
.inp-unit input{border:0;border-radius:0;background:transparent;flex:1;min-width:0;}
.inp-unit input:focus{background:transparent;}
.inp-unit i{font-style:normal;display:flex;align-items:center;padding:0 12px;font-size:13px;color:var(--text-muted);white-space:nowrap;border-left:1px solid var(--gridline);}
@media (max-width:640px){.ai-form .ai-pair{grid-template-columns:1fr;}}
.ai-form label.check b{white-space:nowrap;}
/* ---------- Chatbot replies (builder + preview) ---------- */
.cb-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--gridline);border-radius:10px;background:var(--accent-wash);margin-bottom:14px;font-size:13px;line-height:1.45;}
.cb-note svg{width:18px;height:18px;flex:0 0 auto;color:var(--accent);margin-top:1px;}
.cb-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;}
.cb-chip{font-size:11px;padding:1px 7px;border-radius:9px;background:var(--page);border:1px solid var(--gridline);color:var(--text-secondary);}
.cb-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start;}
.cb-form .ai-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-items:start;}
.cb-form input:not([type=checkbox]):not([type=radio]),.cb-form select{height:40px;}
.cb-chk{gap:18px;align-items:center;min-height:40px;}
.cb-chk .check{margin:0;}
.cb-msg{border:1px solid var(--gridline);border-radius:10px;padding:10px 14px 4px;margin-bottom:12px;background:var(--surface-1);}
.cb-msg-h{display:flex;align-items:center;gap:2px;margin:-2px -6px 8px 0;}
.cb-msg-h b{font-size:13.5px;}
.cb-add{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.cb-opt{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) 32px;gap:6px;margin-bottom:6px;align-items:center;}
.cb-sec .cb-opt{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.2fr) 32px;}
.cb-sec{border-left:3px solid var(--gridline);padding:6px 0 6px 10px;margin:8px 0;}
.cb-sec > .row input{flex:1;}
.cb-file{width:100%;height:40px;justify-content:flex-start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.cb-side{position:sticky;top:12px;}
.cb-phone{border-radius:22px;overflow:hidden;border:1px solid var(--gridline);box-shadow:0 8px 28px rgba(0,0,0,.08);background:#efeae2;}
.cb-ph-h{background:#075e54;color:#fff;padding:12px 14px;font-weight:700;display:flex;justify-content:space-between;align-items:center;font-size:14px;}
.cb-ph-h span{font-weight:500;font-size:11px;opacity:.75;}
.cb-ph-b{padding:12px 10px;min-height:420px;max-height:640px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;font-size:13.5px;}
.cb-b{max-width:86%;padding:6px 8px 4px;border-radius:8px;box-shadow:0 1px 0.5px rgba(0,0,0,.13);white-space:pre-wrap;word-wrap:break-word;line-height:1.38;}
.cb-b.in{align-self:flex-end;background:#d9fdd3;}
.cb-b.out{align-self:flex-start;background:#fff;}
.cb-b.has-btn{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-6px;}
.cb-b small{display:block;text-align:right;font-size:10px;color:#667781;margin-top:2px;}
.cb-b img{display:block;max-width:100%;border-radius:6px;margin-bottom:4px;}
.cb-hd{font-weight:700;margin-bottom:2px;}
.cb-ft{font-size:12px;color:#667781;margin-top:3px;}
.cb-ph-media{background:#dfe5e7;border-radius:6px;height:110px;display:flex;align-items:center;justify-content:center;color:#54656f;margin-bottom:4px;font-size:13px;}
.cb-ph-doc{height:46px;justify-content:flex-start;padding:0 10px;}
.cb-ph-map{font-size:34px;background:#e6efe3;}
.cb-btns{align-self:flex-start;width:86%;display:flex;flex-direction:column;gap:1px;margin-bottom:2px;}
.cb-btn{background:#fff;color:#027eb5;text-align:center;padding:8px;font-weight:600;font-size:13px;box-shadow:0 1px 0.5px rgba(0,0,0,.13);}
.cb-btn:last-child{border-radius:0 0 8px 8px;}
.cb-btns .cb-btn:first-child{border-top:1px solid #e9edef;}
.cb-card{display:flex;gap:8px;align-items:center;}
.cb-card span{width:34px;height:34px;border-radius:50%;background:#dfe5e7;display:flex;align-items:center;justify-content:center;font-weight:700;}
.cb-list{align-self:flex-start;width:86%;background:#fff;border-radius:8px;padding:4px 0;opacity:.92;border:1px dashed #b9c4c9;}
.cb-ls{font-size:11px;font-weight:700;color:#008069;padding:6px 10px 2px;text-transform:uppercase;}
.cb-lr{padding:6px 10px;border-bottom:1px solid #f0f2f5;}
.cb-lr small{display:block;color:#667781;font-size:11.5px;}
@media (max-width:1000px){.cb-wrap{grid-template-columns:1fr;}.cb-side{position:static;}}
@media (max-width:640px){.cb-form .ai-pair{grid-template-columns:1fr;}.cb-opt,.cb-sec .cb-opt{grid-template-columns:1fr 32px;}.cb-opt select,.cb-opt input[name=o_desc]{grid-column:1;}}
/* inbox: chatbot messages */
.bubble.bot{background:#f3f0ff;}
.b-hd{font-weight:700;margin-bottom:2px;}
.b-ft{font-size:12px;color:var(--text-muted);margin-top:3px;}
.b-opts{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
.b-opt{font-size:12px;padding:3px 9px;border-radius:12px;border:1px solid var(--gridline);background:var(--surface-1);color:var(--indigo,#4f46e5);font-weight:600;}
.bot-pick{display:flex;flex-direction:column;gap:1px;text-align:left;max-width:280px;}
.bot-pick span{font-size:11.5px;color:var(--text-muted);font-weight:400;}
/* leads board: tick cards for bulk actions */
.kcard{position:relative;}
.kcard-sel{position:absolute;top:8px;right:8px;display:flex;opacity:0;transition:opacity .12s;cursor:pointer;}
.kcard-sel input{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--accent);}
.kcard:hover .kcard-sel,.lead-picking .kcard-sel,.kcard.picked .kcard-sel{opacity:1;}
.kcard.picked{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:color-mix(in srgb,var(--accent) 6%,var(--surface-1));}
.lead-picking .kcard{cursor:pointer;}
.kcard:has(.kcard-sel) .kcard-name{padding-right:22px;}
.kcol-sel{display:inline-flex;margin-right:6px;cursor:pointer;}
.kcol-sel input{width:15px;height:15px;margin:0;accent-color:var(--accent);cursor:pointer;}
#lbulk .bulkbar{margin:0 0 10px;}
/* ---- calling: shared form, call panel, call lists (16 Oct 2026) */
.call-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;}
@media (max-width:900px){.call-grid{grid-template-columns:1fr;}}
.cl-hist{padding:6px 0;border-bottom:1px solid var(--gridline);}
.cl-hist:last-child{border-bottom:none;}
.cl-oncall{background:var(--accent-wash);border-color:var(--accent);}
.cl-tmr{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;}
.cl-script-t{white-space:pre-wrap;line-height:1.5;}
details.cl-script>summary{cursor:pointer;list-style:none;margin:0;}
details.cl-script>summary::-webkit-details-marker{display:none;}
details.cl-script>summary::after{content:' ▾';color:var(--text-muted);font-weight:400;}
details.cl-script[open]>summary{margin-bottom:8px;}
.cl-panel{width:min(540px,100%);}
.cl-panel .drawer-body{background:var(--page);}
.cl-panel .card{margin-bottom:12px;}
.cl-dial{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.cl-dial-btn{justify-content:center;font-size:16px;padding:13px 18px;}
.cl-dnc{background:var(--critical-wash,#fdecec);color:var(--critical);border-radius:10px;padding:10px 12px;font-size:13px;}
.cl-onlist{background:var(--indigo-wash,#eef0ff);border:1px solid rgba(105,82,214,.25);border-radius:10px;padding:10px 12px;margin-bottom:12px;display:flex;flex-direction:column;gap:6px;font-size:13px;}
.cl-bar{height:6px;border-radius:4px;background:var(--gridline);overflow:hidden;margin:10px 0 6px;}
.cl-bar.sm{margin:0;height:5px;}
.cl-bar i{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .3s;}
.cl-nums{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--text-muted);}
.cl-nums b{color:var(--text-primary);}
.cl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.cl-card{cursor:pointer;margin:0;display:flex;flex-direction:column;gap:2px;transition:border-color .12s;}
.cl-card:hover{border-color:var(--accent);}
.cl-name{font-size:15px;}
.cl-meta{margin-top:2px;}
.cl-card-foot{margin-top:10px;}
.cl-empty{padding:30px 10px;}
.cl-dhead{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;}
.cl-dname{margin:0;font-size:20px;}
.cl-dnote{margin-top:8px;background:var(--page);border-radius:8px;padding:8px 10px;font-size:13px;white-space:pre-wrap;}
.cl-dgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;}
.cl-dgrid .card{margin:0 0 14px;}
@media (max-width:900px){.cl-dgrid{grid-template-columns:1fr;}}
.cl-results{display:flex;flex-direction:column;gap:8px;}
.cl-callers{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 12px;}
.cl-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.cl-mode{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:10px;cursor:pointer;font-size:13px;}
.cl-mode:has(input:checked){border-color:var(--accent);background:var(--accent-wash);}
.cl-mode input{margin-top:3px;}
.cl-src{background:var(--page);border-radius:8px;padding:10px 12px;margin-bottom:12px;}
.cl-work{display:flex;align-items:center;gap:8px;}
.cl-work label{white-space:nowrap;}
.cl-work select{flex:1;}
.cl-work.has-lists select{border-color:var(--accent);}
.cl-qhead{padding:8px 12px 10px;border-bottom:1px solid var(--gridline);background:var(--accent-wash);}
.cl-qhead .cl-bar{margin:6px 0 4px;}
.cl-qnote{margin-top:4px;}
.cl-help{display:flex;flex-direction:column;gap:14px;}
.cl-help-i{display:flex;gap:12px;}
.cl-help-i>span{flex:0 0 26px;height:26px;border-radius:50%;background:var(--accent-wash);color:var(--accent);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:13px;}
.cl-help-i p{margin:3px 0 0;font-size:13.5px;line-height:1.5;color:var(--text-secondary,inherit);}
/* contact page: chat in a side panel (the inbox thread, solo) */
.chat-panel{width:min(760px,100%);}
.chat-panel .drawer-body{padding:0;display:flex;flex-direction:column;overflow:hidden;}
.chat-panel .drawer-head{padding:10px 14px;}
.ib-solo .ib-rail,.ib-solo .inbox-list{display:none !important;}
.ib-solo .thread{display:flex !important;}
.ib-solo .ib-back{display:none;}
.ib-solo{border:none;border-radius:0;}
/* calls: 3-second "next number" countdown after Save & next */
#lead{position:relative;}
.cl-next{position:absolute;inset:0;z-index:5;background:color-mix(in srgb,var(--page) 86%,transparent);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding-top:90px;animation:fadein .15s ease;}
.cl-next-card{background:var(--surface-1);border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.12);padding:22px 26px;width:min(360px,92%);display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;}
.cl-next-ok{color:var(--accent);font-weight:700;display:flex;align-items:center;gap:6px;}
.cl-next-ok svg{width:16px;height:16px;}
.cl-next-ring{position:relative;width:64px;height:64px;}
.cl-next-ring svg{width:64px;height:64px;transform:rotate(-90deg);}
.cl-next-ring circle{fill:none;stroke-width:4;}
.cl-next-ring .bg{stroke:var(--gridline);}
.cl-next-ring .fg{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:119.4;stroke-dashoffset:0;transition:stroke-dashoffset 3s linear;}
.cl-next-ring b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;font-variant-numeric:tabular-nums;}
.cl-next-who{font-size:15px;}
@keyframes fadein{from{opacity:0}to{opacity:1}}
/* calls: "Working on" picker */
.cl-src{position:relative;padding:10px 10px 6px;border-bottom:1px solid var(--gridline);}
.cl-srcbtn{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:var(--page);border:1px solid var(--border);border-radius:12px;padding:8px 10px;cursor:pointer;font:inherit;color:inherit;transition:border-color .12s,box-shadow .12s;}
.cl-srcbtn:hover,.cl-srcbtn[aria-expanded="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);}
.cl-srcic{flex:0 0 34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--accent-wash);color:var(--accent);}
.cl-srcic.is-list{background:var(--indigo-wash,#eef0ff);color:#6952d6;}
.cl-srcic svg{width:18px;height:18px;}
.cl-srct{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25;}
.cl-srct small{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;}
.cl-srct b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cl-srct>span{font-size:12px;color:var(--text-muted);}
.cl-srct>span b{font-size:12px;color:var(--text-primary);}
.cl-srcn{flex:0 0 auto;min-width:20px;height:20px;border-radius:10px;background:#6952d6;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 6px;}
.cl-srccaret{color:var(--text-muted);display:flex;}
.cl-srccaret svg{width:14px;height:14px;}
.cl-srcmenu{position:absolute;left:10px;right:10px;top:calc(100% - 2px);z-index:30;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.14);padding:6px;max-height:60vh;overflow-y:auto;}
.cl-srcitem{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:none;border:none;border-radius:9px;padding:8px;cursor:pointer;font:inherit;color:inherit;}
.cl-srcitem:hover{background:var(--page);}
.cl-srcitem.on{background:var(--accent-wash);}
.cl-srcitem .cl-bar.sm{margin-top:5px;}
.cl-srch{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;padding:10px 8px 4px;}
.cl-srcnone{padding:6px 8px 8px;font-size:12.5px;color:var(--text-muted);}
.cl-srcall{display:block;padding:8px;border-top:1px solid var(--gridline);margin-top:4px;font-size:12.5px;font-weight:600;}
.cl-qhead{padding:4px 12px 8px;border-bottom:1px solid var(--gridline);}
.cl-qhead .cl-bar{margin:4px 0 6px;}
/* calls: QR code to dial from the phone */
.cl-qr{display:flex;flex-direction:column;align-items:center;gap:2px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:4px 4px 3px;cursor:zoom-in;font:inherit;color:#111;flex:0 0 auto;}
.cl-qr:hover{border-color:var(--accent);}
.cl-qr-img{display:block;width:66px;height:66px;}
.cl-qr-img svg,.cl-qr-bigimg svg{display:block;width:100%;height:100%;}
.cl-qr-t{font-size:9.5px;font-weight:600;color:#555;line-height:1;}
.cl-headacts{align-items:center;}
.cl-dial-row{display:flex;gap:10px;align-items:stretch;}
.cl-dial-row .cl-dial-btn{flex:1;align-self:center;}
.cl-qr-big{text-align:center;}
.cl-qr-bigimg{width:240px;height:240px;margin:0 auto 8px;background:#fff;border-radius:12px;padding:6px;}
.cl-qr-num{font-size:20px;font-weight:700;letter-spacing:.02em;margin-bottom:6px;}
.cl-talk{max-width:180px;}
.cl-talk .inp-unit i{font-style:normal;padding:0 10px;display:flex;align-items:center;color:var(--text-muted);font-size:12.5px;border-left:1px solid var(--gridline);}
.cl-qr-big .btn{display:inline-flex;}
/* icons on coloured buttons are always white (they follow the button's text colour) */
.btn:not(.secondary):not(.ghost) svg{color:inherit !important;}
.btn:not(.secondary):not(.ghost) svg [stroke]:not([stroke="none"]){stroke:currentColor;}
.cl-callbtn{font-size:15px;padding:11px 18px;}
.cl-callbtn svg,.cl-dial-btn svg{width:17px;height:17px;}

/* ---------- Meetings (booking links, 22 Oct 2026) ---------- */
.mt-group{padding-bottom:6px;}
.mt-row{display:flex;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--gridline);cursor:pointer;}
.mt-row:first-of-type{border-top:0;}
.mt-row:hover{background:var(--page);}
.mt-time{display:flex;flex-direction:column;min-width:78px;}
.mt-time b{font-size:14.5px;}
.mt-main{flex:1;min-width:0;}
.mt-name{font-weight:700;color:var(--text-primary);text-decoration:none;}
.mt-name:hover{text-decoration:underline;}
.mt-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.mt-kv{display:grid;grid-template-columns:140px 1fr;gap:8px 12px;font-size:13.5px;}
.mt-kv span{color:var(--text-muted);}
.mt-kv b{font-weight:500;min-width:0;overflow-wrap:anywhere;}
.mt-log{display:flex;flex-direction:column;gap:6px;font-size:13px;}
.mt-type{border-left:4px solid var(--c,var(--accent));}
.mt-type.off{opacity:.7;}
.mt-type-h{display:flex;gap:12px;align-items:flex-start;}
.mt-type-name{font-size:16px;font-weight:700;margin-bottom:2px;}
.mt-link{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap;}
.mt-link .copy-field{flex:1;min-width:240px;}
.mt-ed{display:flex;flex-direction:column;gap:4px;}
.mt-sec{border-top:1px solid var(--gridline);padding:14px 0 6px;}
.mt-sec:first-child{border-top:0;padding-top:0;}
.mt-sec-t{font-weight:700;font-size:14px;margin-bottom:10px;}
.mt-hosts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 14px;}
.mt-loc{display:flex;gap:8px;align-items:center;margin-bottom:8px;}
.mt-loc select{width:auto;max-width:260px;}
.mt-q{display:grid;grid-template-columns:1fr 150px 190px auto 28px;gap:8px;align-items:center;margin-bottom:8px;}
.mt-tpl{border:1px solid var(--gridline);border-radius:10px;padding:10px 12px 2px;margin-bottom:8px;}
.mt-day{display:flex;gap:12px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--gridline);}
.mt-day:first-child{border-top:0;}
.mt-ivs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1;}
.mt-iv{display:inline-flex;gap:4px;align-items:center;}
.mt-iv input{width:auto;padding:5px 6px;}
.mt-sp{display:grid;grid-template-columns:200px 1fr;gap:14px;min-height:260px;}
.mt-sp-days{display:flex;flex-direction:column;gap:6px;max-height:380px;overflow-y:auto;}
.mt-sp-d{appearance:none;border:1px solid var(--gridline);background:var(--surface-1);border-radius:10px;padding:8px 10px;text-align:left;font:inherit;cursor:pointer;display:flex;justify-content:space-between;gap:8px;}
.mt-sp-d span{color:var(--text-muted);font-size:12px;}
.mt-sp-d.on{border-color:var(--accent);background:var(--accent-wash);}
.mt-sp-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;align-content:start;}
.mt-sp-t{appearance:none;border:1px solid var(--accent);color:var(--accent);background:var(--surface-1);border-radius:8px;padding:8px 6px;font:inherit;font-weight:700;cursor:pointer;}
.mt-sp-t.on{background:var(--accent);color:#fff;}
.mt-cl{padding:12px 14px;margin-bottom:10px;}
@media (max-width:720px){.mt-row{flex-wrap:wrap}.mt-act{width:100%;justify-content:flex-start}.mt-q{grid-template-columns:1fr 1fr}.mt-sp{grid-template-columns:1fr}.mt-sp-days{flex-direction:row;overflow-x:auto}.mt-kv{grid-template-columns:1fr}}

/* Settings -> Developer API (27 Oct 2026) */
.code-block{background:var(--bg-soft,#f4f3ef);border:1px solid var(--gridline);border-radius:8px;padding:10px 12px;margin:6px 0 10px;font:12.5px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:auto;white-space:pre;max-width:100%;}
.api-warn{background:var(--warning-wash);color:#6b4600;border-radius:8px;padding:8px 12px;font-size:13px;}

/* One browser per person (27 Oct 2026): login screen note, waiting panel, allow / reject prompt */
.auth-note{background:var(--accent-wash);color:var(--text-primary);border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.45;margin-bottom:14px;}
.auth-note.warn{background:var(--warning-wash);color:#6b4600;}
.auth-note.bad{background:var(--critical-wash);color:var(--critical);}
.auth-wait{text-align:center;padding:6px 0 2px;}
.auth-wait .aw-spin{width:34px;height:34px;margin:0 auto 14px;border-radius:50%;border:3px solid var(--gridline);border-top-color:var(--accent);animation:awspin 0.9s linear infinite;}
@keyframes awspin{to{transform:rotate(360deg);}}
.auth-wait .aw-title{font-weight:700;font-size:16px;margin-bottom:6px;}
.auth-wait .aw-text{font-size:13.5px;line-height:1.5;color:var(--text-secondary);margin-bottom:10px;}
.auth-wait .aw-count{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:6px;}
.auth-wait .aw-small{font-size:12px;color:var(--text-secondary);margin-bottom:16px;}
.sess-ask p{margin:0 0 10px;}
.sess-dev{display:flex;flex-direction:column;gap:2px;background:var(--accent-wash);border-radius:8px;padding:10px 12px;margin-bottom:10px;}
.sess-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap;}

/* QR sign-in for the mobile app (28 Oct 2026, Shell.mobileQr) */
.qr-prof{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:6px;}
.qr-prof .btn{flex:0 0 auto;}
.qr-prof .btn svg{margin-right:2px;}
.qr-login{display:flex;gap:22px;align-items:center;}
.qr-box{flex:0 0 220px;width:220px;height:220px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--gridline);border-radius:12px;padding:8px;}
.qr-box svg{width:100%;height:100%;display:block;}
.qr-steps ol{margin:0 0 12px;padding-left:20px;line-height:1.7;}
.qr-time{font-variant-numeric:tabular-nums;margin-bottom:8px;}
.qr-warn{background:var(--warning-wash);color:#7a5200;border-radius:8px;padding:8px 10px;margin-bottom:8px;}
.qr-note{margin-top:4px;}
.qr-err{color:var(--critical);font-size:13px;text-align:center;}
.qr-ok{width:100%;text-align:center;padding:18px 0;}
.qr-ok-i{width:56px;height:56px;border-radius:50%;background:var(--good-wash);color:var(--good-text);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;}
.qr-ok-t{font-weight:700;font-size:16px;margin-bottom:4px;}
@media (max-width:600px){.qr-login{flex-direction:column;}.qr-prof{flex-direction:column;align-items:flex-start;}}

/* WhatsApp chat QR code (29 Oct 2026, settings.js waChatQr) */
.waqr{align-items:flex-start;}
.waqr .qr-steps{flex:1;min-width:0;}
.waqr .qr-steps textarea{width:100%;resize:vertical;}
.waqr-link .copy-field{display:flex;gap:6px;}
.waqr-link .copy-field input{flex:1;min-width:0;font-size:12px;}

/* Custom domain setup checklist (29 Oct 2026, partner.js p-domains) */
.dom-card{padding-bottom:10px;}
.dom-head{display:flex;gap:12px;align-items:flex-start;}
.dom-host{font-family:var(--mono,ui-monospace,Menlo,Consolas,monospace);font-weight:700;font-size:16px;overflow-wrap:anywhere;}
.dom-bar{height:6px;border-radius:3px;background:var(--page);overflow:hidden;margin:12px 0 10px;}
.dom-bar i{display:block;height:100%;background:var(--accent);border-radius:3px;}
.dom-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px;}
.dom-steps{list-style:none;margin:6px 0 0;padding:0;border-top:1px solid var(--gridline);}
.dom-step{display:flex;gap:12px;padding:12px 2px;border-bottom:1px solid var(--gridline);}
.dom-step:last-child{border-bottom:none;}
.dsi{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;border:2px solid var(--gridline);color:var(--text-muted);margin-top:1px;}
.s-done .dsi{background:var(--good);border-color:var(--good);color:#fff;}
.s-warning .dsi{background:var(--warning);border-color:var(--warning);color:#fff;}
.s-problem .dsi{background:var(--critical);border-color:var(--critical);color:#fff;}
.s-waiting .dsi{border-color:var(--warning);}
.dsp-dot{width:8px;height:8px;border-radius:50%;background:var(--warning);animation:recPulse 1.4s ease-in-out infinite;}
.s-blocked .dst b,.s-blocked .dsd{color:var(--text-muted);}
.dst{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;}
.dsw{font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--page);border-radius:10px;padding:1px 8px;}
.dss{font-size:11px;font-weight:700;margin-left:auto;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;}
.s-done .dss{color:var(--good-text);}.s-problem .dss{color:var(--critical);}.s-waiting .dss,.s-warning .dss{color:#9a6200;}
.dsd{font-size:13px;color:var(--text-secondary);margin-top:2px;overflow-wrap:anywhere;}
.dom-recs{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.dom-rec{display:flex;gap:10px;background:var(--page);border-radius:10px;padding:10px;}
.dom-rt{flex:0 0 auto;font-size:11px;font-weight:800;background:var(--surface-1);border:1px solid var(--gridline);border-radius:6px;padding:2px 7px;height:fit-content;}
.dom-rk{font-size:11px;font-weight:600;color:var(--text-muted);margin:2px 0;}
.dom-rec .copy-field{display:flex;gap:6px;margin-bottom:4px;}
.dom-rec .copy-field input{flex:1;min-width:0;font-family:var(--mono,ui-monospace,Menlo,Consolas,monospace);font-size:12px;}
.dom-help{margin-top:8px;font-size:13px;}
.dom-help summary{cursor:pointer;font-weight:600;color:var(--accent);}
.dom-help ul{margin:6px 0 0;padding-left:18px;color:var(--text-secondary);line-height:1.6;overflow-wrap:anywhere;}
.dom-browser{margin-top:6px;}
@media (prefers-reduced-motion:reduce){.dsp-dot{animation:none;}}
.dom-auto{margin-top:6px;font-size:12.5px;border-radius:8px;padding:7px 10px;background:var(--page);}
.dom-auto.bad{background:var(--critical-wash);}
.dom-auto pre{margin:6px 0 0;white-space:pre-wrap;word-break:break-word;font-size:11.5px;max-height:160px;overflow:auto;}
.dom-task{display:flex;gap:12px;align-items:flex-start;}
.dom-task-i{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;background:var(--warning);color:#fff;}
.dom-task.on .dom-task-i{background:var(--good);}
.dom-task-cmd{margin-top:6px;background:var(--page);border-radius:8px;padding:8px 10px;overflow-wrap:anywhere;}
/* folding a domain's steps (29 Oct 2026) */
.dom-head[data-tog]{cursor:pointer;border-radius:8px;margin:-4px -6px 0;padding:4px 6px;}
.dom-head[data-tog]:hover{background:var(--page);}
.dom-head[data-tog]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.dom-head{align-items:center;}
.dom-chev{display:flex;color:var(--text-muted);transition:transform .15s ease;flex:0 0 auto;}
.dom-card:not(.folded) .dom-chev{transform:rotate(180deg);}
.dom-card.folded .dom-steps{display:none;}
.dom-card.folded .dom-actions{margin-bottom:0;}
.dom-next{color:var(--text-secondary);font-weight:600;}
@media (prefers-reduced-motion:reduce){.dom-chev{transition:none;}}
/* Execute on steps 4 / 5 (29 Oct 2026) */
.dom-run{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap;}
.dom-err{margin:6px 0 0;background:var(--critical-wash);color:var(--critical);border-radius:8px;padding:7px 10px;font-size:11.5px;white-space:pre-wrap;word-break:break-word;}
.dom-rec .copy-field + .copy-field{margin-top:4px;}

/* ---- Login / sign-up designs (30 Oct 2026, brand.login_layout; index.php adds .auth-l-<name>) ----
   classic  = the original card: features on the left, form on the right
   centered = one card in the middle on a soft wash of the brand colours
   bold     = full-screen split: brand gradient with the features, form on white
   photo    = full-screen login image (or the brand gradient) with a frosted card
   minimal  = plain page, no box, a thin brand stripe on top */
.auth-l-centered{background:radial-gradient(1200px 600px at 10% -10%,var(--accent-wash),transparent 60%),radial-gradient(900px 500px at 110% 110%,var(--accent-2-wash),transparent 60%),var(--page);}
.auth-l-centered .onboard-showcase{display:none;}
.auth-l-centered .onboard-shell{max-width:440px;border-radius:22px;box-shadow:0 20px 50px rgba(11,11,11,.08);}
.auth-l-centered .onboard-card{align-items:stretch;text-align:left;}
.auth-l-centered .onboard-logo{margin-left:auto;margin-right:auto;width:56px;height:56px;border-radius:16px;}
.auth-l-centered .onboard-title,.auth-l-centered .onboard-sub{text-align:center;}

.auth-l-bold{padding:0;}
.auth-l-bold .onboard-shell{max-width:none;min-height:100vh;border:none;border-radius:0;box-shadow:none;}
.auth-l-bold .onboard-showcase{flex:1 1 55%;background:linear-gradient(140deg,var(--accent) 0%,var(--accent-2) 100%);color:#fff;padding:56px;}
.auth-l-bold .onboard-showcase-inner{max-width:420px;}
.auth-l-bold .onboard-showcase-tagline{font-size:32px;line-height:1.2;letter-spacing:-.01em;color:#fff;}
.auth-l-bold .onboard-showcase-features li{color:rgba(255,255,255,.92);font-size:15px;}
.auth-l-bold .onboard-showcase-features li::before{background:#fff;}
.auth-l-bold .onboard-showcase-features li::after{border-color:var(--accent);}
.auth-l-bold .onboard-card{flex:1 1 45%;max-width:560px;padding:56px 64px;}

.auth-l-photo{background:linear-gradient(rgba(11,11,11,.45),rgba(11,11,11,.55)),var(--login-img,linear-gradient(140deg,var(--accent),var(--accent-2)));background-size:cover;background-position:center;}
.auth-l-photo .onboard-shell{max-width:1040px;background:transparent;border:none;box-shadow:none;align-items:center;gap:40px;}
.auth-l-photo .onboard-showcase{background:transparent !important;color:#fff;justify-content:flex-start;}
.auth-l-photo .onboard-showcase-tagline{font-size:30px;line-height:1.2;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.25);}
.auth-l-photo .onboard-showcase-features li{color:rgba(255,255,255,.9);}
.auth-l-photo .onboard-showcase-features li::before{background:#fff;}
.auth-l-photo .onboard-showcase-features li::after{border-color:var(--accent);}
.auth-l-photo .onboard-card{flex:0 0 420px;background:rgba(252,252,251,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.25);}

.auth-l-minimal{background:var(--surface-1);align-items:flex-start;padding-top:12vh;}
.auth-l-minimal::before{content:"";position:fixed;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-2));}
.auth-l-minimal .onboard-shell{max-width:380px;background:transparent;border:none;box-shadow:none;border-radius:0;}
.auth-l-minimal .onboard-showcase{display:none;}
.auth-l-minimal .onboard-card{padding:0;}
.auth-l-minimal .onboard-logo{width:40px;height:40px;border-radius:10px;}
.auth-l-minimal .onboard-title{font-size:26px;letter-spacing:-.01em;}
.auth-l-minimal .auth-tabs{background:transparent;border:none;border-bottom:1px solid var(--gridline);border-radius:0;padding:0;gap:18px;}
.auth-l-minimal .auth-tab{flex:0 0 auto;padding:8px 0;border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px;}
.auth-l-minimal .auth-tab.active{background:transparent;box-shadow:none;border-bottom-color:var(--accent);}

@media (max-width:760px){
  .auth-l-bold .onboard-card,.auth-l-photo .onboard-card{flex:1 1 auto;padding:30px 24px;}
  .auth-l-bold .onboard-shell{min-height:0;}
  .auth-l-bold{padding:0;background:linear-gradient(140deg,var(--accent),var(--accent-2));}
  .auth-l-bold .onboard-card{background:var(--surface-1);margin:24px;border-radius:18px;}
  .auth-l-photo .onboard-shell{gap:0;}
  .auth-l-minimal{padding-top:8vh;}
}
.login-preview-tag{position:fixed;top:12px;right:12px;z-index:50;background:#0b0b0b;color:#fff;font-size:12px;font-weight:700;padding:5px 10px;border-radius:20px;opacity:.85;}

/* Crop / adjust a picture (30 Oct 2026, core/imgcrop.js) */
.ic{display:flex;flex-direction:column;gap:14px;}
.ic-stage{position:relative;width:100%;border-radius:12px;overflow:hidden;background:#2a2a28;touch-action:none;cursor:grab;outline:none;}
.ic-stage:active{cursor:grabbing;}
.ic-stage:focus-visible{box-shadow:0 0 0 3px var(--accent);}
.ic-stage canvas{display:block;}
.ic-tools{display:flex;flex-direction:column;gap:10px;}
.ic-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ic-lbl{width:88px;font-size:12.5px;font-weight:600;color:var(--text-secondary);}
.ic-zoom{flex:1;min-width:140px;accent-color:var(--accent);}
.ic-out{margin-top:2px;}
.ic .seg-b.on{background:var(--accent);color:#fff;}
@media (max-width:600px){.ic-lbl{width:100%;}}

/* Branding & providers -> Brand (30 Oct 2026, partner.js brandForm) */
.br-sec{padding:4px 0 18px;margin-bottom:16px;border-bottom:1px solid var(--gridline);}
.br-sec:last-of-type{border-bottom:none;}
.br-h{font-weight:700;font-size:14px;margin-bottom:10px;}
.br-pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;}
.br-pic{border:1px solid var(--gridline);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;background:var(--surface-1);}
.br-prev{height:120px;display:flex;align-items:center;justify-content:center;gap:16px;padding:12px;background-color:#fff;background-image:linear-gradient(45deg,#f0f0ec 25%,transparent 25%),linear-gradient(-45deg,#f0f0ec 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f0f0ec 75%),linear-gradient(-45deg,transparent 75%,#f0f0ec 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;border-bottom:1px solid var(--gridline);}
.br-prev.empty{background:var(--page);}
.br-prev img{max-width:100%;max-height:96px;object-fit:contain;}
.br-login_image .br-prev{padding:0;}
.br-login_image .br-prev img{width:100%;height:100%;max-height:none;object-fit:cover;}
.br-tab{display:flex;align-items:center;gap:6px;background:#dfe1e5;border-radius:8px 8px 0 0;padding:6px 10px;font-size:11.5px;max-width:150px;align-self:flex-end;}
.br-tab img{width:16px;height:16px;}
.br-tab span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.br-fav-big{width:64px;height:64px;border-radius:14px;}
.br-pic-b{padding:10px 12px 12px;}
.br-pic-t{display:flex;align-items:center;gap:6px;}
.br-colors{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.br-color{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--gridline);border-radius:12px;padding:12px;}
.br-sw{position:relative;flex:0 0 52px;width:52px;height:52px;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(11,11,11,.12);cursor:pointer;}
.br-sw input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0;}
.br-sw:focus-within{outline:2px solid var(--text-primary);outline-offset:2px;}
.br-hex{width:110px;text-transform:lowercase;}
.br-hex.bad{border-color:var(--critical);}
.br-warn{margin-top:6px;color:#8a5a00;background:var(--warning-wash);border-radius:8px;padding:6px 8px;}
.br-demo{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:12px;border-radius:12px;background:var(--page);}
.br-demo-btn{background:var(--a);color:#fff;font-weight:600;font-size:13px;padding:8px 14px;border-radius:8px;}
.br-demo-sec{border:1px solid var(--a);color:var(--a);font-weight:600;font-size:13px;padding:7px 13px;border-radius:8px;background:#fff;}
.br-demo-badge{background:color-mix(in srgb,var(--b) 14%,#fff);color:color-mix(in srgb,var(--b) 75%,#000);font-weight:700;font-size:11.5px;padding:3px 9px;border-radius:10px;}
.br-demo-link{color:var(--a);font-weight:600;font-size:13px;text-decoration:underline;}
.br-demo-grad{flex:1;min-width:100px;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--a),var(--b));}
.br-lays{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;}
.br-lay{appearance:none;font:inherit;text-align:left;display:flex;flex-direction:column;gap:3px;background:var(--surface-1);border:2px solid var(--gridline);border-radius:12px;padding:8px 8px 10px;cursor:pointer;color:var(--text-primary);}
.br-lay:hover{border-color:var(--text-muted);}
.br-lay.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);}
.br-lay b{margin-top:4px;font-size:13px;}
.br-th{position:relative;display:block;height:92px;border-radius:8px;overflow:hidden;background:#f4f4f1;border:1px solid var(--gridline);}
.br-th i{display:block;position:absolute;}
.br-th .t-card{background:#fff;border-radius:5px;padding:8% 7%;}
.br-th .t-card i{position:static;height:5px;border-radius:3px;background:#dcdcd6;margin-bottom:5px;}
.br-th .t-card i:last-child{background:var(--a);height:8px;margin:7px 0 0;}
.th-classic .t-show{left:8%;top:14%;bottom:14%;width:42%;border-radius:5px 0 0 5px;background:color-mix(in srgb,var(--a) 16%,#fff);}
.th-classic .t-card{left:50%;top:14%;bottom:14%;width:42%;border-radius:0 5px 5px 0;box-shadow:0 1px 2px rgba(0,0,0,.06);}
.th-centered{background:radial-gradient(circle at 15% 0,color-mix(in srgb,var(--a) 22%,#fff),transparent 55%),radial-gradient(circle at 100% 100%,color-mix(in srgb,var(--b) 22%,#fff),transparent 55%),#f7f7f4 !important;}
.th-centered .t-show{display:none;}
.th-centered .t-card{left:30%;top:14%;bottom:14%;width:40%;box-shadow:0 2px 6px rgba(0,0,0,.08);}
.th-bold .t-show{left:0;top:0;bottom:0;width:55%;background:linear-gradient(140deg,var(--a),var(--b));}
.th-bold .t-card{left:62%;top:22%;width:30%;padding:0;background:transparent;}
.th-photo{background:linear-gradient(rgba(0,0,0,.35),rgba(0,0,0,.45)),linear-gradient(140deg,var(--a),var(--b)) !important;}
.th-photo .t-show{left:10%;top:30%;width:34%;height:8px;border-radius:4px;background:rgba(255,255,255,.85);}
.th-photo .t-card{left:56%;top:12%;bottom:12%;width:34%;background:rgba(255,255,255,.92);}
.th-minimal{background:#fff !important;}
.th-minimal .t-show{left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--a),var(--b));}
.th-minimal .t-card{left:32%;top:18%;width:36%;padding:0;background:transparent;}
.br-pvbar{display:flex;justify-content:center;margin-bottom:10px;}
.br-pvbar .seg-b.on{background:var(--accent);color:#fff;}
.br-pvwrap{display:flex;justify-content:center;background:var(--page);border-radius:12px;overflow:hidden;}
.br-pv{width:100%;height:min(640px,70vh);border:none;background:#fff;transition:width .2s ease;}
@media (prefers-reduced-motion:reduce){.br-pv{transition:none;}}
/* Bold always uses the brand gradient (the login image belongs to Classic and Photo) */
.auth-l-bold .onboard-showcase{background-image:linear-gradient(140deg,var(--accent) 0%,var(--accent-2) 100%) !important;}
/* Classic with a login image: darken it so the headline and the list stay readable */
.auth-l-classic .onboard-showcase[style*="background-image"]{position:relative;color:#fff;}
.auth-l-classic .onboard-showcase[style*="background-image"]::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.55));}
.auth-l-classic .onboard-showcase[style*="background-image"] .onboard-showcase-inner{position:relative;}
.auth-l-classic .onboard-showcase[style*="background-image"] .onboard-showcase-tagline{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.3);}
.auth-l-classic .onboard-showcase[style*="background-image"] .onboard-showcase-features li{color:rgba(255,255,255,.92);}
.auth-l-classic .onboard-showcase[style*="background-image"] .onboard-showcase-features li::before{background:#fff;}
.auth-l-classic .onboard-showcase[style*="background-image"] .onboard-showcase-features li::after{border-color:var(--accent);}
