/* 
   BARANTUM-SHARED.CSS    TABLE OF CONTENTS
   Search "XX" to jump to that section.
   
   01  BASE & VARIABLES
   02  TOPBAR  (shared across all pages)
   03  LISTING PAGE
         03a  Table
         03b  Pagination
         03c  Filter Dropdown
         03d  Modals  (tag, upload, import)
         03e  Show Per Page
         03f  Stats Strip
         03g  Action Bar / Bulk
         03h  Advanced Filter Sidebar
         03i  Help Modal
         03j  Responsive Overrides
   04  CHART VIEW
   05  WIDGET CARD  /  Report Dashboard
   06  PIPELINE VIEW
   07  INLINE CELL EDITOR
   08  LEAD SLIDESHOW PANEL
   09  QUICK PREVIEW PANEL  (CRM Standard)
   10  LEAD DETAIL PAGE  Full CSS
         10a  Layout (Sidebar + Main)
         10b  Main Content & Tabs
         10c  Activity Cards
         10d  Comments Tab
         10e  Changelog Tab
         10f  Activity Slideout Panel
         10g  Toast & Generic Modal
         10h  Side Drawers  (Merge / Duplicate / Check-in)
         10i  Convert Wizard
         10j  Advanced Search  (detail page)
         10k  Calendar View
         10l  Description Cell
         10m  Customise Module Layout  (brtm-cml)
         10n  Column Resize
   11  SHARED  Report View, Status Pills, Module Cards
   12  UTILITY CLASSES
   13  CHAT MODULE  (Omnichannel)
         13a  Layout & Icon Sidebar
         13b  Chat Panel  (chat list)
         13c  Conversation Header
         13d  Messages & Bubbles
         13e  Input Bar & Toolbar
         13f  Profile Panel
         13g  Menus, Modals & Extras
   14  SHARED COMPONENTS  (used by 2+ pages)
         14a  Advanced Filter Drawer  (chat, email, lead)
         14b  Gmail-Style Thread  (chat, email)
         14c  Icon Sidebar  (listing pages)
    */

/* 
   01  BASE & VARIABLES
    */
    :root {
      --primary: #1B6FBE;
      --primary-light: #E7F1FB;
      --primary-dark: #134E8E;
      --accent: #00B87A;
      --accent-light: #E3F9F2;
      --sidebar-bg: #0D1F3C;
      --topbar-bg: #1B6FBE;
      --surface: #F5F7FA;
      --card-bg: #FFFFFF;
      --border: #DDE3ED;
      --text-main: #18233A;
      --text-muted: #6B7A99;
      --text-light: #A3ADBE;
      --badge-success: #00B87A;
      --badge-warn: #F59E0B;
      --row-hover: #EEF4FC;
      --shadow-sm: 0 1px 4px rgba(27, 111, 190, 0.07);
      --shadow-md: 0 4px 20px rgba(27, 111, 190, 0.12);
      --page-bg: #F4F6FA;
      /* aliases for lead-detail page */
      --ink: #1F2937;
      --muted: #64748B;
      --text-1: #18233A;
      --text-2: #6B7A99;
      --text-3: #A3ADBE;
      --white: #FFFFFF;
      --radius: 8px;

      /*  Phase 1: Typography & Color Tokens (Chat SAAS UX rev)  */
      --brtm-font-ui:  'Inter', 'Segoe UI Variable', 'Segoe UI', system-ui, -apple-system, sans-serif;
      --brtm-font-num: 'Inter', ui-monospace, 'SF Mono', 'Roboto Mono', monospace;

      /* Type scale (5 sizes) */
      --fs-xs:   11px;     /* meta: timestamps, chips, sub-labels */
      --fs-sm:   12.5px;   /* body in dense rows, secondary text */
      --fs-base: 13.5px;   /* default UI text, message bubbles */
      --fs-md:   15px;     /* names in conversation header, section titles */
      --fs-lg:   17px;     /* page titles, customer hero name */

      /* Weights (3 stops) */
      --fw-reg:  450;
      --fw-med:  550;
      --fw-bold: 650;

      /* Calmer surfaces */
      --bg-app:    #f7f8fa;
      --bg-card:   #ffffff;
      --bg-hover:  #f1f4f8;
      --bg-active: #e8f0fb;

      /* Borders */
      --br-1:      #eef1f5;
      --br-2:      #dde3ec;
      --br-strong: #c5cdd9;

      /* Text */
      --tx-1: #0f172a;
      --tx-2: #475569;
      --tx-3: #8a96aa;
      --tx-4: #b3bccd;

      /* Brand & semantic  used sparingly */
      --brand:    #2284C6;
      --brand-50: #eef6fc;
      --sev-crit-50: #FEF1F1;
      --sev-crit: #EF4444;
      --sev-warn: #d97706;
      --sev-ok:   #16a34a;
      --sev-ok-50: #EAFBF1;
      --sev-info: #2284C6;

      /* Spacing scale */
      --sp-1: 4px;
      --sp-2: 8px;
      --sp-3: 12px;
      --sp-4: 16px;
      --sp-5: 24px;
    }

    /* Tabular numerals for timestamps, counts, IDs  improves alignment */
    .brtm-chat-time,
    .brtm-cv-bubble-meta,
    .brtm-unread-badge,
    .brtm-tab-count,
    [data-num] {
      font-variant-numeric: tabular-nums;
      font-feature-settings: "tnum" 1, "cv11" 1;
    }

    * {
      box-sizing: border-box;
    }

    html,
    body {
      height: 100%;
      margin: 0;
      padding: 0;
    }

    body {
      font-family: var(--brtm-font-ui);
      background: var(--surface);
      color: var(--text-main);
      height: 100vh;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
    }

    /*  TOPBAR  */
/* 
   02  TOPBAR  (shared across all pages)
    */
    .brtm-topbar {
      background: var(--topbar-bg);
      height: 56px;
      display: flex;
      align-items: center;
      padding: 0 24px;
      gap: 0px;
      position: sticky;
      top: 0;
      z-index: 1030;
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.18);
    }

    .brtm-topbar-brand {
      display: flex;
      align-items: center;
      gap: 10px;
      text-decoration: none;
    }

    .brtm-topbar-brand .brtm-logo-box {
      width: 32px;
      height: 32px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .brtm-topbar-brand .brtm-logo-box img {
      width: 32px;
      height: 32px;
      object-fit: contain;
    }

    /*  Topbar Nav Wrap (responsive overflow)  */
    .brtm-topbar-nav-wrap {
      flex: 1; min-width: 0; position: relative;
      display: flex; align-items: center; gap: 4px;
    }
    .brtm-topbar-nav {
      display: flex; gap: 4px; min-width: 0;
      overflow: hidden;
    }
    .brtm-topbar-nav .brtm-nav-item {
      color: rgba(255, 255, 255, 0.65);
      font-size: 13.5px;
      font-weight: 500;
      padding: 6px 14px;
      border-radius: 6px;
      cursor: pointer;
      transition: color .18s, background .18s;
      text-decoration: none;
      position: relative;
      white-space: nowrap;
    }
    .brtm-topbar-nav .brtm-nav-item::after {
      content: ''; position: absolute; left: 14px; right: 14px; bottom: 2px;
      height: 2px; border-radius: 1px; background: #fff;
      transform: scaleX(0); transform-origin: left center;
      transition: transform .25s ease;
    }
    .brtm-topbar-nav .brtm-nav-item:hover { color: #fff; background: rgba(255,255,255,.12); }
    .brtm-topbar-nav .brtm-nav-item:hover::after { display: none; }
    .brtm-topbar-nav .brtm-nav-item.brtm-active { color: #fff; background: rgba(255,255,255,.1); font-weight: 600; }
    .brtm-topbar-nav .brtm-nav-item.brtm-active::after { display: none; }
    .brtm-topbar-nav .brtm-nav-item.is-hidden { visibility: hidden; pointer-events: none; position: absolute; opacity: 0; }

    /*  More overflow button  */
    .brtm-nav-more-wrap { position: relative; display: none; align-items: center; }
    .brtm-nav-more-wrap.visible { display: flex; }
    .brtm-nav-more {
      flex-shrink: 0; background: transparent; border: none;
      color: rgba(255,255,255,.65); cursor: pointer;
      padding: 6px 14px; border-radius: 6px;
      font-size: 13.5px; font-weight: 500; line-height: 1.4;
      display: inline-flex; align-items: center; gap: 6px;
      transition: color .18s, background .18s; font-family: inherit;
    }
    .brtm-nav-more:hover, .brtm-nav-more.open { color: #fff; background: rgba(255,255,255,.1); }
    .brtm-nav-more .bi { font-size: 11px; transition: transform .2s; }
    .brtm-nav-more.open .bi { transform: rotate(180deg); }
    .brtm-nav-more-panel {
      position: fixed; background: #fff; border: 1px solid #e2e8f0;
      border-radius: 10px; padding: 5px; min-width: 170px;
      box-shadow: 0 10px 28px rgba(0,0,0,.14); z-index: 2000; display: none;
      animation: brtm-dd-in .18s ease;
    }
    .brtm-nav-more-panel.open { display: block; }
    .brtm-nav-more-panel .brtm-nav-item {
      display: block; padding: 8px 12px; border-radius: 7px;
      color: #1a2234 !important; font-size: 13px; font-weight: 500;
      text-decoration: none; background: transparent !important;
    }
    .brtm-nav-more-panel .brtm-nav-item::after { display: none !important; }
    .brtm-nav-more-panel .brtm-nav-item:hover { background: #f1f5f9 !important; }
    .brtm-nav-more-panel .brtm-nav-item.brtm-active { background: #E7F1FB !important; color: #1B6FBE !important; font-weight: 600; }

    /*  Locked nav panel  */
    .brtm-nav-locked-wrap { position: relative; display: inline-flex; }
    .brtm-nav-item-locked { opacity: .65; display: flex; align-items: center; gap: 5px; cursor: pointer; }
    .brtm-nav-item-locked:hover { opacity: 1; }
    .brtm-nav-locked-panel {
      position: fixed; background: #fff; border: 1px solid #e2e8f0;
      border-radius: 14px; padding: 0; width: 260px;
      box-shadow: 0 16px 40px rgba(0,0,0,.15); z-index: 2000; display: none;
      overflow: hidden; animation: brtm-dd-in .18s ease;
    }
    .brtm-nav-locked-panel.open { display: block; }
    .brtm-nav-locked-header {
      padding: 16px 16px 12px;
      background: linear-gradient(135deg,#3b8de0 0%,#1B6FBE 45%,#0f3d72 100%);
      position: relative; overflow: hidden;
    }
    .brtm-nav-locked-header::before {
      content: ''; position: absolute; width: 120px; height: 120px; border-radius: 50%;
      background: rgba(255,255,255,.07); top: -40px; right: -30px; pointer-events: none;
    }
    .brtm-nav-locked-header::after {
      content: ''; position: absolute; width: 70px; height: 70px; border-radius: 50%;
      background: rgba(255,255,255,.06); bottom: -25px; left: 10px; pointer-events: none;
    }
    .brtm-nav-locked-badge {
      display: inline-flex; align-items: center;
      background: rgba(255,255,255,.2); color: #fff;
      font-size: 10.5px; font-weight: 700; letter-spacing: .04em;
      padding: 3px 8px; border-radius: 20px; margin-bottom: 8px;
    }
    .brtm-nav-locked-title { font-size: 15px; font-weight: 700; color: #fff; margin-bottom: 6px; }
    .brtm-nav-locked-desc { font-size: 12px; color: rgba(255,255,255,.8); line-height: 1.5; }
    .brtm-nav-locked-actions { padding: 12px 16px; display: flex; flex-direction: column; gap: 8px; }
    .brtm-nav-locked-preview { padding: 12px 16px 4px; display: flex; flex-direction: column; gap: 10px; border-bottom: 1px solid #f1f5f9; }
    .brtm-nav-locked-step { display: flex; align-items: flex-start; gap: 10px; }
    .brtm-nav-locked-step-icon {
      width: 32px; height: 32px; border-radius: 8px; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      font-size: 14px; background: #f1f5f9; color: #64748b;
    }
    .brtm-nav-locked-step-title { font-size: 12.5px; font-weight: 600; color: #1a2234; line-height: 1.3; }
    .brtm-nav-locked-step-desc { font-size: 11.5px; color: #8a9ab0; margin-top: 2px; line-height: 1.4; }
    .brtm-nav-locked-btn {
      display: flex; align-items: center; justify-content: center; gap: 7px;
      padding: 9px 14px; border-radius: 9px;
      font-size: 13px; font-weight: 600; text-decoration: none;
      transition: background .15s, transform .1s;
    }
    .brtm-nav-locked-btn:hover { transform: scale(1.02); }
    .brtm-nav-locked-btn.primary { background: #1B6FBE; color: #fff; }
    .brtm-nav-locked-btn.primary:hover { background: #134e8e; }
    .brtm-nav-locked-btn.secondary { background: #f1f5f9; color: #1a2234; }
    .brtm-nav-locked-btn.secondary:hover { background: #e2e8f0; }

    /*  Agent status (topbar)  */
    .brtm-agent-wrap { position: relative; flex-shrink: 0; }
    .brtm-agent-wrap .brtm-avatar-btn { cursor: pointer; position: relative; }
    .brtm-topbar-status-dot {
      position: absolute; bottom: 0; right: 0;
      width: 12px; height: 12px; border-radius: 50%;
      border: 2.5px solid #134e8e; transition: background .2s; pointer-events: none;
    }
    .brtm-topbar-status-dot.online  { background: #22c55e; }
    .brtm-topbar-status-dot.busy    { background: #f59e0b; }
    .brtm-topbar-status-dot.offline { background: #94a3b8; }
    .brtm-agent-status-dropdown {
      position: absolute; top: calc(100% + 8px); right: 0;
      background: #fff; border: 1px solid #e2e8f0;
      border-radius: 12px; padding: 6px; min-width: 160px;
      box-shadow: 0 8px 24px rgba(0,0,0,.12); z-index: 400; display: none;
      animation: brtm-dd-in .15s ease;
    }
    .brtm-agent-status-dropdown.open { display: block; }
    .brtm-agent-dd-header { font-size: 11px; color: #8a9ab0; font-weight: 600; padding: 4px 10px 6px; text-transform: uppercase; letter-spacing: .05em; }
    .brtm-agent-dd-item { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; cursor: pointer; font-size: 13px; color: #1a2234; transition: background .12s; }
    .brtm-agent-dd-item:hover { background: #f1f5f9; }
    .brtm-agent-dd-item.active { font-weight: 600; color: #1B6FBE; }
    .brtm-agent-dd-item .dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
    .brtm-agent-dd-item .dot.online  { background: #22c55e; }
    .brtm-agent-dd-item .dot.busy    { background: #f59e0b; }
    .brtm-agent-dd-item .dot.offline { background: #94a3b8; }
    @keyframes brtm-dd-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

    .brtm-topbar-actions {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-left: auto;
    }

    .brtm-btn-help-support {
      background: #2a4a72;
      color: #fff;
      border: none;
      border-radius: 8px;
      font-size: 13px;
      font-weight: 500;
      font-family: var(--brtm-font-ui);
      padding: 6px 14px;
      cursor: pointer;
      transition: background .18s;
    }

    .brtm-btn-help-support:hover {
      background: #1e3a5f;
    }

    .brtm-topbar-icon-btn {
      width: 34px;
      height: 34px;
      background: rgba(255, 255, 255, 0.1);
      border: none;
      border-radius: 8px;
      color: rgba(255, 255, 255, 0.8);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 17px;
      cursor: pointer;
      transition: background .18s;
      position: relative;
    }

    .brtm-topbar-icon-btn:hover {
      background: rgba(255, 255, 255, 0.18);
      color: #fff;
    }

    .brtm-topbar-icon-btn.brtm-green {
      background: #00B87A;
    }

    .brtm-topbar-icon-btn.brtm-green:hover {
      background: #009963;
    }

    .brtm-topbar-icon-btn {
      position: relative;
    }

    .brtm-topbar-icon-btn::after {
      content: attr(data-tooltip);
      position: absolute;
      top: calc(100% + 8px);
      left: 50%;
      transform: translateX(-50%) translateY(-4px);
      background: var(--text-main);
      color: #fff;
      font-size: 11.5px;
      font-weight: 500;
      white-space: nowrap;
      padding: 4px 9px;
      border-radius: 6px;
      pointer-events: none;
      opacity: 0;
      transition: opacity .15s, transform .15s;
      z-index: 9999;
    }

    .brtm-topbar-icon-btn::before {
      content: '';
      position: absolute;
      top: calc(100% + 3px);
      left: 50%;
      transform: translateX(-50%) translateY(-4px);
      border: 5px solid transparent;
      border-bottom-color: var(--text-main);
      pointer-events: none;
      opacity: 0;
      transition: opacity .15s, transform .15s;
      z-index: 9999;
    }

    .brtm-topbar-icon-btn:hover::after {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

    .brtm-topbar-icon-btn:hover::before {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

    .brtm-notif-badge {
      position: absolute;
      top: -4px;
      right: -4px;
      background: var(--sev-crit);
      color: #fff;
      font-size: 9px;
      font-weight: 700;
      border-radius: 20px;
      padding: 1px 5px;
      min-width: 17px;
      text-align: center;
    }

    .brtm-avatar-btn {
      width: 34px;
      height: 34px;
      background: var(--primary);
      border-radius: 50%;
      border: 2px solid rgba(255, 255, 255, 0.2);
      color: #fff;
      font-size: 13px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
    }

    .brtm-search-bar-top {
      background: rgba(255, 255, 255, 0.1);
      border: 1px solid rgba(255, 255, 255, 0.15);
      border-radius: 8px;
      color: #fff;
      font-size: 13px;
      padding: 5px 14px 5px 36px;
      width: 100px;
      outline: none;
    }

    .brtm-search-bar-top::placeholder {
      color: rgba(255, 255, 255, 0.45);
    }

    .brtm-search-wrap {
      position: relative;
    }

    .brtm-search-wrap .bi-search {
      position: absolute;
      left: 10px;
      top: 50%;
      transform: translateY(-50%);
      color: rgba(255, 255, 255, 0.5);
      font-size: 14px;
    }

    /*  PAGE WRAPPER  */
/* 
   03  LISTING PAGE
    */
    .brtm-page-wrapper {
      padding: 28px 32px 16px;
      flex: 1;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-height: 0;
    }

    /*  PAGE HEADER  */
    .brtm-page-header {
      display: flex;
      align-items: center;
      margin-bottom: 20px;
    }

    .brtm-page-title {
      font-size: 22px;
      font-weight: 500;
      color: var(--text-main);
      letter-spacing: -0.3px;
    }

    .brtm-page-title span {
      font-size: 13px;
      font-weight: 500;
      color: var(--text-muted);
      margin-left: 10px;
      font-family: 'Inter', monospace;
    }

    .brtm-btn-add-lead {
      background: var(--primary);
      color: #fff;
      border: none;
      border-radius: 8px;
      font-size: 13.5px;
      font-weight: 600;
      padding: 8px 18px;
      display: flex;
      align-items: center;
      gap: 6px;
      box-shadow: 0 2px 8px rgba(28, 110, 242, 0.25);
      transition: background .18s, box-shadow .18s;
      cursor: pointer;
    }

    .brtm-btn-add-lead:hover {
      background: var(--primary-dark);
      box-shadow: 0 4px 14px rgba(28, 110, 242, 0.35);
      color: #FFF !important;
    }

    /*  FILTER BAR  */
    .brtm-filter-bar {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 10px 16px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 16px;
      box-shadow: var(--shadow-sm);
      overflow: visible;
      position: relative;
    }

    .brtm-filter-bar-left {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .brtm-filter-bar-right {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
    }

    .brtm-filter-select {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 7px;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-main);
      padding: 6px 12px;
      outline: none;
      cursor: pointer;
    }

    .brtm-filter-btn {
      display: flex;
      align-items: center;
      gap: 6px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 7px;
      font-size: 13px;
      font-weight: 500;
      color: var(--text-muted);
      padding: 6px 12px;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-filter-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-filter-btn.brtm-active-filter {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
      font-weight: 600;
    }

    .brtm-approval-count {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: var(--badge-warn);
      color: #fff;
      font-size: 10px;
      font-weight: 700;
      border-radius: 20px;
      padding: 1px 6px;
      min-width: 18px;
      margin-left: 4px;
    }

    .brtm-filter-btn.brtm-approval-active {
      border-color: var(--badge-warn);
      color: var(--badge-warn);
      background: #FEF3C7;
      font-weight: 600;
    }

    .brtm-needs-approval-badge {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      background: #FEF3C7;
      color: #D97706;
      font-size: 10px;
      font-weight: 600;
      border-radius: 5px;
      padding: 2px 6px;
      margin-top: 2px;
    }

    .brtm-filter-divider {
      width: 1px;
      height: 24px;
      background: var(--border);
      margin: 0 4px;
    }

    .brtm-ms-auto-flex {
      margin-left: auto;
    }

    .brtm-view-toggle {
      display: flex;
      gap: 3px;
      align-items: center;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 9px;
      padding: 3px;
    }

    .brtm-view-sep {
      width: 1px;
      height: 18px;
      background: var(--border);
      flex-shrink: 0;
      margin: 0 1px;
    }

    .brtm-view-btn {
      position: relative;
    }

    .brtm-view-btn::after {
      content: attr(data-tooltip);
      position: absolute;
      top: calc(100% + 7px);
      left: 50%;
      transform: translateX(-50%) translateY(-4px);
      background: var(--text-main);
      color: #fff;
      font-size: 11.5px;
      font-weight: 500;
      white-space: nowrap;
      padding: 4px 9px;
      border-radius: 6px;
      pointer-events: none;
      opacity: 0;
      transition: opacity .15s, transform .15s;
      z-index: 9999;
    }

    .brtm-view-btn::before {
      content: '';
      position: absolute;
      top: calc(100% + 2px);
      left: 50%;
      transform: translateX(-50%) translateY(-4px);
      border: 5px solid transparent;
      border-bottom-color: var(--text-main);
      pointer-events: none;
      opacity: 0;
      transition: opacity .15s, transform .15s;
      z-index: 9999;
    }

    .brtm-view-btn:hover::after {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

    .brtm-view-btn:hover::before {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

    .brtm-view-btn {
      width: 30px;
      height: 28px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-muted);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-view-btn.brtm-active {
      background: #fff;
      color: var(--primary);
      box-shadow: 0 1px 4px rgba(0, 0, 0, .12);
    }

    .brtm-view-btn:hover:not(.brtm-active) {
      background: rgba(27, 111, 190, .08);
      color: var(--primary);
    }

    .brtm-col-settings-btn {
      position: relative;
      width: 32px;
      height: 32px;
      border-radius: 7px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-muted);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-col-settings-btn::after {
      content: attr(data-tooltip);
      position: absolute;
      top: calc(100% + 7px);
      right: 0;
      left: auto;
      transform: translateY(-4px);
      background: var(--text-main);
      color: #fff;
      font-size: 11.5px;
      font-weight: 500;
      white-space: nowrap;
      padding: 4px 9px;
      border-radius: 6px;
      pointer-events: none;
      opacity: 0;
      transition: opacity .15s, transform .15s;
      z-index: 9999;
    }

    .brtm-col-settings-btn::before {
      content: '';
      position: absolute;
      top: calc(100% + 2px);
      right: 11px;
      left: auto;
      transform: translateY(-4px);
      border: 5px solid transparent;
      border-bottom-color: var(--text-main);
      pointer-events: none;
      opacity: 0;
      transition: opacity .15s, transform .15s;
      z-index: 9999;
    }

    .brtm-col-settings-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-col-settings-btn:hover::after {
      opacity: 1;
      transform: translateY(0);
    }

    .brtm-col-settings-btn:hover::before {
      opacity: 1;
      transform: translateY(0);
    }

    /*  TABLE CARD  */
    /*  03a  Table  */
    #viewCalendar {
      flex: 1;
      display: flex;
      flex-direction: column;
      min-height: 0;
    }

    #viewList {
      flex: 1;
      display: flex;
      flex-direction: column;
      min-height: 0;
    }

    .brtm-table-card {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 14px;
      overflow: hidden;
      box-shadow: var(--shadow-sm);
      flex: 1;
      display: flex;
      flex-direction: column;
      min-height: 0;
    }

    .brtm-table-responsive {
      overflow-x: auto;
      overflow-y: auto;
      flex: 1;
      min-height: 0;
    }

    table.brtm-leads-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 13.5px;
    }

    table.brtm-leads-table thead tr {
      background: #DBEEFF;
      border-bottom: 1px solid var(--border);
    }

    table.brtm-leads-table thead th {
      padding: 12px 16px;
      font-size: 11.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.6px;
      color: var(--text-muted);
      white-space: nowrap;
      border-right: 1px solid var(--border);
      vertical-align: middle;
      position: sticky;
      top: 0;
      z-index: 2;
      background: #DBEEFF;
    }

    table.brtm-leads-table thead th:last-child {
      border-right: none;
    }

    table.brtm-leads-table thead th.brtm-sortable {
      cursor: pointer;
      user-select: none;
    }

    table.brtm-leads-table thead th.brtm-sortable:hover {
      color: var(--primary);
    }

    .brtm-sort-icon {
      margin-left: 4px;
      font-size: 11px;
      color: var(--primary);
    }

    /* filter row */
    .brtm-filter-row th {
      padding: 8px 12px !important;
      background: #FAFBFD !important;
      border-bottom: 1px solid var(--border) !important;
    }

    .brtm-col-filter {
      width: 100%;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 6px;
      padding: 5px 10px;
      font-size: 12.5px;
      font-family: inherit;
      color: var(--text-main);
      outline: none;
      transition: border-color .15s;
    }

    .brtm-col-filter:focus {
      border-color: var(--primary);
    }

    table.brtm-leads-table tbody tr {
      border-bottom: 1px solid var(--border);
      transition: background .12s;
    }

    table.brtm-leads-table tbody tr:last-child {
      border-bottom: none;
    }

    table.brtm-leads-table tbody tr:hover {
      background: var(--row-hover);
    }

    table.brtm-leads-table tbody td {
      padding: 13px 16px;
      vertical-align: middle;
      color: var(--text-main);
    }

    /* check col */
    .brtm-check-col {
      width: 44px;
      text-align: center;
    }

    .form-check-input {
      cursor: pointer;
    }

    .form-check-input:checked {
      background-color: var(--primary);
      border-color: var(--primary);
    }

    /* name col */
    .brtm-lead-name {
      font-weight: var(--fw-med);
      color: var(--primary);
      font-size: var(--fs-base);
      text-decoration: none;
    }

    .brtm-lead-name:hover {
      text-decoration: underline;
      color: var(--primary-dark);
    }

    .brtm-row-actions {
      display: flex;
      gap: 4px;
      margin-top: 4px;
    }

    .brtm-row-action-btn {
      width: 26px;
      height: 26px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: #fff;
      color: var(--text-muted);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-row-action-btn:hover {
      background: var(--primary-light);
      color: var(--primary);
      border-color: var(--primary);
    }

    /* date col */
    .brtm-date-main {
      font-weight: var(--fw-med);
      font-size: var(--fs-base);
    }

    .brtm-date-sub {
      font-size: var(--fs-xs);
      color: var(--text-muted);
      font-family: 'Inter', monospace;
    }

    /* activity col */
    .brtm-activity-item {
      display: flex;
      align-items: flex-start;
      gap: 7px;
    }

    .brtm-activity-icon {
      width: 22px;
      height: 22px;
      border-radius: 5px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .brtm-activity-icon.brtm-success {
      background: var(--accent-light);
      color: var(--accent);
    }

    .brtm-activity-icon.brtm-info {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-activity-label {
      font-weight: var(--fw-med);
      font-size: var(--fs-sm);
      color: var(--text-main);
      line-height: 1.2;
    }

    .brtm-activity-date {
      font-size: 11px;
      color: var(--text-muted);
      font-family: 'Inter', monospace;
    }

    /* contact cols */
    .brtm-contact-email {
      font-size: 12.5px;
      color: var(--text-main);
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .brtm-contact-email i {
      color: var(--text-muted);
      font-size: 13px;
    }

    .brtm-contact-phone {
      font-size: 12.5px;
      color: var(--text-main);
      display: flex;
      align-items: center;
      gap: 6px;
      font-family: 'Inter', monospace;
    }

    .brtm-wa-icon {
      width: 18px;
      height: 18px;
      background: #25D366;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .brtm-wa-icon i {
      color: #fff;
      font-size: 10px;
    }

    /* org badge */
    .brtm-org-badge {
      display: inline-block;
      background: var(--primary-light);
      color: var(--primary-dark);
      font-size: 11.5px;
      font-weight: 600;
      border-radius: 20px;
      padding: 3px 10px;
      white-space: nowrap;
    }

    /*  PAGINATION  */
    /*  03b  Pagination  */
    .brtm-pagination-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 14px 20px;
      background: #FAFBFD;
      border-top: 1px solid var(--border);
    }

    .brtm-pagination-info {
      font-size: 12.5px;
      color: var(--text-muted);
    }

    .brtm-pagination-controls {
      display: flex;
      gap: 4px;
    }

    .brtm-page-btn {
      height: 32px;
      min-width: 32px;
      border-radius: 7px;
      border: 1px solid var(--border);
      background: #fff;
      color: var(--text-main);
      font-size: 13px;
      font-weight: 500;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 10px;
      cursor: pointer;
      transition: all .15s;
      font-family: inherit;
    }

    .brtm-page-btn:hover,
    .brtm-page-btn.brtm-active {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-page-btn:disabled {
      opacity: .4;
      pointer-events: none;
    }

    /*  CUSTOM FILTER DROPDOWN  */
    /*  03c  Filter Dropdown  */
    .brtm-filter-dropdown {
      position: relative;
    }

    .brtm-filter-dropdown-btn {
      display: flex;
      align-items: center;
      gap: 8px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 7px;
      font-size: 13px;
      font-family: inherit;
      font-weight: 500;
      color: var(--text-main);
      padding: 6px 12px;
      cursor: pointer;
      transition: all .15s;
      white-space: nowrap;
      text-transform: capitalize;
    }

    .brtm-filter-dropdown-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-filter-dropdown-btn .brtm-chevron {
      font-size: 11px;
      color: var(--text-muted);
      margin-left: 2px;
      transition: transform .2s;
    }

    .brtm-filter-dropdown-btn.brtm-open .brtm-chevron {
      transform: rotate(180deg);
    }

    .brtm-filter-dropdown-menu {
      display: none;
      position: absolute;
      top: calc(100% + 6px);
      left: 0;
      min-width: 220px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 10px;
      box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
      z-index: 500;
      overflow: hidden;
    }

    .brtm-filter-dropdown-menu.brtm-show {
      display: block;
    }

    .brtm-fdd-search {
      padding: 10px 12px 8px;
      border-bottom: 1px solid var(--border);
    }

    .brtm-fdd-search input {
      width: 100%;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 6px;
      font-size: 12.5px;
      font-family: inherit;
      padding: 6px 10px 6px 30px !important;
      outline: none;
      color: var(--text-main);
    }

    .brtm-fdd-search input:focus {
      border-color: var(--primary);
    }

    .brtm-fdd-search-wrap {
      position: relative;
    }

    .brtm-fdd-search-wrap .bi-search {
      position: absolute;
      left: 9px;
      top: 50%;
      transform: translateY(-50%);
      font-size: 12px;
      color: var(--text-muted);
    }

    .brtm-fdd-options {
      padding: 6px 0;
      max-height: 180px;
      overflow-y: auto;
    }

    .brtm-fdd-option {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 7px 14px;
      font-size: 13px;
      color: var(--text-main);
      cursor: pointer;
      transition: background .12s;
      justify-content: space-between;
    }

    .brtm-fdd-option:hover {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-fdd-option.brtm-active {
      font-weight: 600;
      color: var(--primary);
    }

    .brtm-fdd-option .brtm-fdd-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--primary);
      flex-shrink: 0;
      opacity: 0;
    }

    .brtm-fdd-option.brtm-active .brtm-fdd-dot {
      opacity: 1;
    }

    .brtm-fdd-option-left {
      display: flex;
      align-items: center;
      gap: 8px;
      flex: 1;
      min-width: 0;
      text-transform: capitalize;
    }

    .brtm-fdd-option-actions {
      /* Kept in the layout (hidden, not display:none) so the row keeps its width
         on hover -- toggling display made the option label reflow and jump. */
      display: flex;
      align-items: center;
      gap: 2px;
      flex-shrink: 0;
      visibility: hidden;
    }

    .brtm-fdd-option:hover .brtm-fdd-option-actions {
      visibility: visible;
    }

    .brtm-fdd-opt-btn {
      width: 22px;
      height: 22px;
      border-radius: 5px;
      border: none;
      background: transparent;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      cursor: pointer;
      transition: background .12s, color .12s;
      color: var(--text-muted);
      padding: 0;
    }

    .brtm-fdd-opt-btn:hover {
      background: rgba(0, 0, 0, 0.07);
    }

    .brtm-fdd-opt-btn.brtm-edit:hover {
      color: var(--primary);
    }

    .brtm-fdd-opt-btn.brtm-delete:hover {
      color: #EF4444;
      background: #FEE2E2;
    }

    .brtm-fdd-actions {
      border-top: 1px solid var(--border);
      padding: 6px 0;
    }

    .brtm-fdd-action-btn {
      display: flex;
      align-items: center;
      gap: 8px;
      width: 100%;
      padding: 8px 14px;
      font-size: 12.5px;
      font-weight: 500;
      color: var(--text-muted);
      background: none;
      border: none;
      cursor: pointer;
      font-family: inherit;
      transition: all .12s;
      text-align: left;
    }

    .brtm-fdd-action-btn:hover {
      background: var(--surface);
      color: var(--primary);
    }

    .brtm-fdd-action-btn i {
      font-size: 13px;
    }

    /*  COLOR SWATCHES (tag modal)  */
    /*  03d  Modals (tag colors, upload zone, import stepper)  */
    .brtm-color-swatches {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-bottom: 14px;
    }

    .brtm-color-swatch {
      width: 26px;
      height: 26px;
      border-radius: 50%;
      border: 2px solid transparent;
      cursor: pointer;
      transition: transform .12s, box-shadow .12s;
      padding: 0;
      outline: none;
    }

    .brtm-color-swatch:hover {
      transform: scale(1.15);
    }

    .brtm-color-swatch.brtm-selected {
      border-color: #fff;
      box-shadow: 0 0 0 3px var(--primary);
    }

    /*  UPLOAD ZONE  */
    .brtm-upload-zone {
      border: 2px dashed var(--border);
      border-radius: 10px;
      padding: 28px 20px;
      text-align: center;
      cursor: pointer;
      transition: border-color .15s, background .15s;
      margin-bottom: 14px;
    }

    .brtm-upload-zone:hover,
    .brtm-upload-zone.brtm-drag-active {
      border-color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-upload-zone i {
      font-size: 28px;
      color: var(--primary);
      display: block;
      margin-bottom: 8px;
    }

    .brtm-upload-zone-title {
      font-size: 13.5px;
      font-weight: 600;
      color: var(--text-main);
    }

    .brtm-upload-zone-sub {
      font-size: 12px;
      color: var(--text-muted);
      margin-top: 4px;
    }

    .brtm-upload-zone input[type=file] {
      display: none;
    }

    .brtm-upload-file-info {
      display: none;
      align-items: center;
      gap: 10px;
      background: var(--primary-light);
      border: 1px solid var(--primary);
      border-radius: 8px;
      padding: 10px 14px;
      font-size: 13px;
      color: var(--primary);
      font-weight: 500;
      margin-bottom: 14px;
    }

    .brtm-upload-file-info.brtm-show {
      display: flex;
    }

    .brtm-upload-file-info .brtm-remove-file {
      margin-left: auto;
      cursor: pointer;
      color: var(--text-muted);
      font-size: 15px;
      background: none;
      border: none;
      padding: 0;
    }

    .brtm-upload-file-info .brtm-remove-file:hover {
      color: #EF4444;
    }

    /*  IMPORT STEPPER  */
    .brtm-import-stepper {
      display: flex;
      align-items: center;
      gap: 0;
      padding: 16px 20px 0;
      flex-shrink: 0;
    }

    .brtm-import-step {
      display: flex;
      align-items: center;
      gap: 7px;
      flex: 1;
    }

    .brtm-import-step-circle {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      border: 2px solid var(--border);
      background: #fff;
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: all .2s;
    }

    .brtm-import-step.brtm-active .brtm-import-step-circle {
      border-color: var(--primary);
      background: var(--primary);
      color: #fff;
    }

    .brtm-import-step.brtm-done .brtm-import-step-circle {
      border-color: var(--accent);
      background: var(--accent);
      color: #fff;
    }

    .brtm-import-step-label {
      font-size: 12px;
      font-weight: 600;
      color: var(--text-muted);
      white-space: nowrap;
    }

    .brtm-import-step.brtm-active .brtm-import-step-label {
      color: var(--primary);
    }

    .brtm-import-step.brtm-done .brtm-import-step-label {
      color: var(--accent);
    }

    .brtm-import-step-line {
      flex: 1;
      height: 2px;
      background: var(--border);
      margin: 0 6px;
      transition: background .2s;
    }

    .brtm-import-step-line.brtm-done {
      background: var(--accent);
    }

    /*  MAPPING TABLE  */
    .brtm-mapping-table {
      width: 100%;
      border-collapse: collapse;
    }

    .brtm-mapping-table th {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-muted);
      padding: 0 0 8px;
      text-align: left;
    }

    .brtm-mapping-table th:last-child {
      text-align: right;
    }

    .brtm-mapping-table td {
      padding: 6px 0;
      border-top: 1px solid var(--border);
      font-size: 13px;
      vertical-align: middle;
    }

    .brtm-mapping-col-file {
      font-weight: 500;
      color: var(--text-main);
      width: 42%;
    }

    .brtm-mapping-arrow {
      width: 16%;
      text-align: center;
      color: var(--text-muted);
      font-size: 14px;
    }

    .brtm-mapping-col-system {
      width: 42%;
    }

    .brtm-mapping-col-system select {
      width: 100%;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 7px;
      font-size: 12.5px;
      font-family: inherit;
      color: var(--text-main);
      padding: 6px 8px;
      outline: none;
      transition: border-color .15s;
    }

    .brtm-mapping-col-system select:focus {
      border-color: var(--primary);
    }

    .brtm-mapping-hint {
      font-size: 12px;
      color: var(--text-muted);
      margin-top: 12px;
      display: flex;
      align-items: flex-start;
      gap: 6px;
    }

    .brtm-mapping-hint i {
      flex-shrink: 0;
      color: var(--primary);
      margin-top: 1px;
    }

    .brtm-simple-dd {
      position: relative;
    }

    .brtm-simple-dd-menu {
      display: none;
      position: absolute;
      top: calc(100% + 6px);
      left: 0;
      min-width: 180px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 10px;
      box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
      z-index: 500;
      overflow: hidden;
    }

    .brtm-simple-dd-menu.brtm-right {
      left: auto;
      right: 0;
    }

    .brtm-simple-dd-menu.brtm-show {
      display: block;
    }

    /* Dropdown "+Create" listing: buka begitu wrapper di-hover/focus, tanpa perlu klik. */
    .brtm-hover-dropdown:hover .dropdown-menu,
    .brtm-hover-dropdown:hover .brtm-simple-dd-menu,
    .brtm-hover-dropdown:focus-within .dropdown-menu,
    .brtm-hover-dropdown:focus-within .brtm-simple-dd-menu {
      display: block;
    }

    /* Jembatan tak-terlihat: tutup celah antara tombol & menu supaya hover tidak
       putus saat kursor turun dari tombol menuju item menu (mis. "Buat Baru"). */
    .brtm-hover-dropdown::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      top: 100%;
      height: 16px;
    }

    .brtm-simple-dd-items-wrap {
      padding: 6px 0;
    }

    .brtm-simple-dd-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 7px 14px;
      font-size: 13px;
      color: var(--text-main);
      cursor: pointer;
      transition: background .12s;
      font-family: inherit;
      background: none;
      border: none;
      width: 100%;
      text-align: left;
    }

    .brtm-simple-dd-item:hover {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-simple-dd-item.brtm-active {
      font-weight: 600;
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-simple-dd-item.brtm-active::after {
      content: '\F633';
      font-family: 'bootstrap-icons';
      margin-left: auto;
      font-size: 13px;
    }

    .brtm-simple-dd-item i {
      font-size: 13px;
      width: 16px;
      text-align: center;
    }

    .brtm-tag-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      flex-shrink: 0;
      display: inline-block;
    }

    .brtm-simple-dd-action-wrap {
      border-top: 1px solid var(--border);
      padding: 6px 0;
    }

    .brtm-simple-dd-divider {
      height: 1px;
      background: var(--border);
      margin: 4px 0;
    }

    /*  SPLIT ADD LEAD BUTTON  */
    .brtm-split-add-lead {
      display: flex;
      align-items: stretch;
    }

    .brtm-split-add-lead .brtm-btn-add-lead {
      border-radius: 8px;
    }

    .brtm-split-add-lead .brtm-btn-add-lead-arrow {
      background: var(--primary);
      color: #fff;
      border: none;
      border-radius: 0 8px 8px 0;
      padding: 0 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      font-size: 11px;
      box-shadow: 0 2px 8px rgba(28, 110, 242, 0.25);
      transition: background .18s;
    }

    .brtm-split-add-lead .brtm-btn-add-lead-arrow:hover {
      background: var(--primary-dark);
    }

    /*  SHOW PER PAGE CUSTOM BTN  */
    /*  03e  Show Per Page  */
    .brtm-show-per-page-btn {
      display: flex;
      align-items: center;
      gap: 6px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 7px;
      font-size: 13px;
      font-family: inherit;
      font-weight: 500;
      color: var(--text-main);
      padding: 6px 10px;
      cursor: pointer;
      transition: all .15s;
      white-space: nowrap;
    }

    .brtm-show-per-page-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-show-per-page-btn .brtm-chevron {
      font-size: 11px;
      color: var(--text-muted);
      transition: transform .2s;
    }

    .brtm-show-per-page-btn.brtm-open .brtm-chevron {
      transform: rotate(180deg);
    }

    /*  03f  Stats Strip  */
    .brtm-stats-strip {
      display: flex;
      gap: 12px;
      margin-bottom: 20px;
    }

    .brtm-stat-card {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 14px 20px;
      flex: 1;
      box-shadow: var(--shadow-sm);
      display: flex;
      align-items: center;
      gap: 14px;
    }

    .brtm-stat-icon {
      width: 40px;
      height: 40px;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
    }

    .brtm-stat-icon.brtm-blue {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-stat-icon.brtm-green {
      background: var(--accent-light);
      color: var(--accent);
    }

    .brtm-stat-icon.amber {
      background: #FEF3C7;
      color: #D97706;
    }

    .brtm-stat-icon.indigo {
      background: #EDE9FE;
      color: #7C3AED;
    }

    .brtm-stat-num {
      font-size: 22px;
      font-weight: 700;
      line-height: 1;
    }

    .brtm-stat-lbl {
      font-size: 12px;
      color: var(--text-muted);
      margin-top: 2px;
      font-weight: 500;
    }

    /*  ACTION BAR  */
    /*  03g  Action Bar / Bulk Actions  */
    .brtm-action-bar {
      display: none;
      align-items: center;
      gap: 10px;
      background: var(--primary);
      border-radius: 12px;
      padding: 10px 16px;
      margin-bottom: 16px;
      box-shadow: 0 4px 20px rgba(34, 132, 198, 0.3);
      animation: slideDown .2s ease;
    }

    .brtm-action-bar.brtm-show {
      display: flex;
    }

    @keyframes slideDown {
      from {
        opacity: 0;
        transform: translateY(-8px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .brtm-action-counter {
      display: flex;
      align-items: center;
      gap: 8px;
      color: #fff;
      font-size: 13.5px;
      font-weight: 700;
      white-space: nowrap;
    }

    .brtm-action-counter .brtm-counter-badge {
      background: rgba(255, 255, 255, 0.25);
      border-radius: 20px;
      padding: 2px 10px;
      font-size: 13px;
    }

    .brtm-action-divider-v {
      width: 1px;
      height: 24px;
      background: rgba(255, 255, 255, 0.25);
      margin: 0 4px;
    }

    .brtm-action-btn {
      display: flex;
      align-items: center;
      gap: 6px;
      background: rgba(255, 255, 255, 1);
      border: 1px solid rgba(255, 255, 255, 1);
      border-radius: 7px;
      color: var(--primary);
      font-size: 13px;
      font-weight: 500;
      padding: 6px 13px;
      cursor: pointer;
      font-family: inherit;
      transition: background .15s;
      white-space: nowrap;
    }

    .brtm-action-btn:hover {
      background: rgba(255, 255, 255, 1);
    }

    .brtm-action-btn.brtm-danger {
      background: rgba(239, 68, 68, 1);
      border-color: rgba(239, 68, 68, 1);
      color: #fff;
    }

    .brtm-action-btn.brtm-danger:hover {
      background: rgba(239, 68, 68, 1);
    }

    .brtm-action-btn.brtm-danger-2 {
      background: rgba(248, 113, 113, 1);
      border-color: rgba(252, 165, 165, 1);
      color: var(--white);
    }

    .brtm-action-btn.brtm-danger-2:hover {
      background: rgba(248, 113, 113, 1);
      border-color: rgba(254, 202, 202, 1);
    }

    .brtm-action-btn.brtm-success {
      background: rgba(0, 196, 140, 1);
      border-color: rgba(0, 196, 140, 1);
      color: var(--white);
    }

    .brtm-action-btn.brtm-success:hover {
      background: rgba(0, 196, 140, 1);
    }

    .brtm-action-bar-right {
      margin-left: auto;
      display: flex;
      gap: 8px;
      align-items: center;
    }

    .brtm-action-close-btn {
      background: none;
      border: none;
      color: rgba(255, 255, 255, 0.7);
      font-size: 18px;
      cursor: pointer;
      width: 28px;
      height: 28px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 6px;
      transition: background .15s;
    }

    .brtm-action-close-btn:hover {
      background: rgba(255, 255, 255, 0.15);
      color: #fff;
    }

    /* Select-all-data banner */
    .brtm-select-all-banner {
      display: none;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background: var(--primary-light);
      border: 1px solid var(--primary);
      border-radius: 8px;
      padding: 9px 16px;
      margin-bottom: 12px;
      font-size: 13px;
      color: var(--primary-dark);
    }

    .brtm-select-all-banner.brtm-show {
      display: flex;
    }

    .brtm-select-all-banner strong {
      font-weight: 700;
    }

    /* Mass action controls inside .brtm-select-all-banner
       (rl-mass-clear / rl-mass-btn) - diangkat dari scoped style
       listing_number_blacklist / listing_chat supaya bisa dipakai global
       (mis. di campaign broadcast). */
    .brtm-select-all-banner .rl-mass-clear {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 26px;
      height: 26px;
      border-radius: 6px;
      border: 1px solid #e3e8ef;
      background: #fff;
      color: #475569;
      cursor: pointer;
    }
    .brtm-select-all-banner .rl-mass-clear:hover { background: #f1f5f9; }
    .brtm-select-all-banner .rl-mass-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 12px;
      border-radius: 8px;
      border: 1px solid #BCD8EE;
      background: #fff;
      color: #1B6FBE;
      font-size: 13px;
      cursor: pointer;
      transition: all .15s ease;
    }
    .brtm-select-all-banner .rl-mass-btn:hover { background: #EAF3FB; }

    .brtm-banner-btn {
      background: var(--primary);
      color: #fff;
      border: none;
      border-radius: 6px;
      font-size: 12.5px;
      font-weight: 600;
      padding: 5px 12px;
      cursor: pointer;
      font-family: inherit;
    }

    .brtm-banner-btn.brtm-outline {
      background: none;
      color: var(--primary);
      border: 1px solid var(--primary);
    }

    /* Export dropdown */
    .brtm-export-wrap {
      position: relative;
    }

    .brtm-export-menu {
      display: none;
      position: absolute;
      top: calc(100% + 6px);
      right: 0;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 10px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
      min-width: 160px;
      overflow: hidden;
      z-index: 200;
    }

    .brtm-export-menu.brtm-show {
      display: block;
    }

    .brtm-export-opt {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 9px 14px;
      font-size: 13px;
      color: var(--text-main);
      cursor: pointer;
      transition: background .12s;
      border-bottom: 1px solid var(--border);
    }

    .brtm-export-opt:last-child {
      border-bottom: none;
    }

    .brtm-export-opt:hover {
      background: var(--primary-light);
      color: var(--primary);
    }

    /* Mass Update modal */
    .brtm-modal-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.4);
      z-index: 2000;
      align-items: center;
      justify-content: center;
    }

    .brtm-modal-overlay.brtm-show {
      display: flex;
    }

    .brtm-modal-box {
      background: #fff;
      border-radius: 14px;
      padding: 28px;
      width: 420px;
      box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
      animation: slideDown .2s ease;
    }

    .brtm-modal-title {
      font-size: 16px;
      font-weight: 700;
      margin-bottom: 4px;
    }

    .brtm-modal-sub {
      font-size: 13px;
      color: var(--text-muted);
      margin-bottom: 20px;
    }

    .brtm-modal-field label {
      font-size: 12.5px;
      font-weight: 600;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: .5px;
      display: block;
      margin-bottom: 6px;
    }

    .brtm-modal-field select,
    .brtm-modal-field input {
      width: 100%;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 8px;
      font-size: 13.5px;
      font-family: inherit;
      color: var(--text-main);
      padding: 9px 12px;
      outline: none;
      margin-bottom: 14px;
    }

    .brtm-modal-field select:focus,
    .brtm-modal-field input:focus {
      border-color: var(--primary);
    }

    .brtm-modal-actions {
      display: flex;
      gap: 8px;
      justify-content: flex-end;
      margin-top: 6px;
    }

    .brtm-modal-btn {
      padding: 8px 18px;
      border-radius: 8px;
      font-size: 13.5px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      border: none;
    }

    .brtm-modal-btn.brtm-cancel {
      background: var(--surface);
      border: 1px solid var(--border);
      color: var(--text-main);
    }

    .brtm-modal-btn.brtm-apply {
      background: var(--primary);
      color: #fff;
    }

    .brtm-modal-btn.brtm-del {
      background: var(--sev-crit);
      color: #fff;
    }

    /* WA button floating */
    .brtm-wa-float {
      position: fixed;
      bottom: 24px;
      right: 24px;
      width: 52px;
      height: 52px;
      background: #25D366;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
      cursor: pointer;
      transition: transform .2s;
      z-index: 1039;
    }

    .brtm-wa-float:hover {
      transform: scale(1.08);
    }

    .brtm-wa-float i {
      color: #fff;
      font-size: 26px;
    }

    /*  OFFLINE INDICATOR  */
    .brtm-conn-indicator {
      display: flex;
      align-items: center;
      gap: 6px;
      background: rgba(0, 0, 0, 0.25);
      border: 1px solid rgba(255, 255, 255, 0.12);
      border-radius: 20px;
      padding: 4px 10px;
      font-size: 12px;
      font-weight: 600;
      color: #fff;
      white-space: nowrap;
      transition: background .3s, border-color .3s;
      cursor: default;
    }

    .brtm-conn-indicator.brtm-online {
      background: rgba(0, 184, 122, 0.2);
      border-color: rgba(0, 184, 122, 0.35);
    }

    .brtm-conn-indicator.brtm-offline {
      background: rgba(239, 68, 68, 0.22);
      border-color: rgba(239, 68, 68, 0.4);
    }

    .brtm-conn-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      flex-shrink: 0;
    }

    .brtm-conn-indicator.brtm-online .brtm-conn-dot {
      background: #00B87A;
      box-shadow: 0 0 0 2px rgba(0, 184, 122, 0.3);
    }

    .brtm-conn-indicator.brtm-offline .brtm-conn-dot {
      background: var(--sev-crit);
      box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.3);
      animation: blink-dot 1.4s ease-in-out infinite;
    }

    @keyframes blink-dot {

      0%,
      100% {
        opacity: 1;
      }

      50% {
        opacity: 0.3;
      }
    }

    @media (max-width: 480px) {
      .brtm-conn-indicator .brtm-conn-label {
        display: none;
      }

      .brtm-conn-indicator {
        padding: 5px 7px;
      }
    }

    /*  ADVANCED FILTER SIDEBAR  */
    /* -- ADVANCED SEARCH SLIDESHOW -- */
    /*  03h  Advanced Filter Sidebar  */
    .brtm-advsearch-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.3);
      z-index: 10000;
    }

    .brtm-advsearch-overlay.brtm-show {
      display: block;
    }

    .brtm-advsearch-panel {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      background: #fff;
      z-index: 10001;
      border-radius: 18px 18px 0 0;
      box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.15);
      display: flex;
      flex-direction: column;
      transform: translateY(100%);
      transition: transform .3s cubic-bezier(.4, 0, .2, 1);
      max-height: 86vh;
    }

    .brtm-advsearch-panel.brtm-open {
      transform: translateY(0);
    }

    .brtm-advsearch-panel::before {
      content: '';
      width: 40px;
      height: 4px;
      background: var(--border);
      border-radius: 4px;
      margin: 10px auto 0;
      flex-shrink: 0;
      display: block;
    }

    .brtm-advsearch-header {
      padding: 4px 20px 0;
      flex-shrink: 0;
    }

    .brtm-advsearch-title-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 8px 0 10px;
    }

    .brtm-advsearch-title {
      font-size: 15px;
      font-weight: 700;
      color: var(--text-main);
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .brtm-advsearch-title i {
      color: var(--primary);
    }

    .brtm-advsearch-badge {
      background: var(--primary);
      color: #fff;
      font-size: 10px;
      font-weight: 700;
      border-radius: 20px;
      padding: 1px 7px;
    }

    .brtm-advsearch-close {
      width: 30px;
      height: 30px;
      border-radius: 7px;
      border: none;
      background: var(--surface);
      color: var(--text-muted);
      font-size: 15px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
    }

    .brtm-advsearch-close:hover {
      background: #FFE4E4;
      color: #EF4444;
    }

    .brtm-advsearch-tabs {
      display: flex;
      align-items: stretch;
      border-top: 1px solid var(--border);
    }

    .brtm-advsearch-tab {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 10px 8px;
      font-size: 12.5px;
      font-weight: 600;
      font-family: inherit;
      color: var(--text-muted);
      background: none;
      border: none;
      border-bottom: 2px solid transparent;
      cursor: pointer;
      transition: all .15s;
      white-space: nowrap;
    }

    .brtm-advsearch-tab i {
      font-size: 13px;
    }

    .brtm-advsearch-tab:hover {
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-advsearch-tab.brtm-active {
      color: var(--primary);
      border-bottom-color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-advsearch-tab-sep {
      width: 1px;
      background: var(--border);
      flex-shrink: 0;
    }

    /* Viewport + slides */
    .brtm-advsearch-viewport {
      overflow: hidden;
      flex: 1;
      min-height: 0;
    }

    .brtm-advsearch-slides {
      display: flex;
      width: 400%;
      height: 100%;
      transition: transform .32s cubic-bezier(.4, 0, .2, 1);
    }

    .brtm-advsearch-slide {
      width: 25%;
      flex-shrink: 0;
      overflow-y: auto;
      padding: 20px 24px;
      box-sizing: border-box;
    }

    .brtm-advsearch-slide-header {
      margin-bottom: 18px;
    }

    .brtm-advsearch-slide-title {
      font-size: 14px;
      font-weight: 700;
      color: var(--text-main);
      margin-bottom: 4px;
    }

    .brtm-advsearch-slide-desc {
      font-size: 12px;
      color: var(--text-muted);
    }

    /* Slide 0: Module grid */
    .brtm-advsearch-module-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
    }

    .brtm-advsearch-module-card {
      cursor: pointer;
      user-select: none;
    }

    .brtm-advsearch-module-card input {
      display: none;
    }

    .brtm-advsearch-module-card-body {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 20px 12px;
      border: 2px solid var(--border);
      border-radius: 12px;
      background: var(--surface);
      font-size: 12.5px;
      font-weight: 600;
      color: var(--text-muted);
      transition: all .15s;
      text-align: center;
    }

    .brtm-advsearch-module-card-body i {
      font-size: 26px;
    }

    .brtm-advsearch-module-card:hover .brtm-advsearch-module-card-body {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-advsearch-module-card input:checked~.brtm-advsearch-module-card-body {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
      box-shadow: 0 0 0 3px rgba(0, 112, 205, 0.12);
    }

    /* Slide 1: Status grid */
    .brtm-advsearch-status-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 10px;
    }

    .brtm-advsearch-status-chip {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 14px;
      border: 2px solid var(--border);
      border-radius: 10px;
      background: var(--surface);
      font-size: 13px;
      font-weight: 600;
      color: var(--text-muted);
      cursor: pointer;
      user-select: none;
      transition: all .15s;
    }

    .brtm-advsearch-status-chip input {
      display: none;
    }

    .brtm-advsearch-status-chip i {
      font-size: 15px;
    }

    .brtm-advsearch-status-chip:hover {
      border-color: var(--chip-color, var(--primary));
      color: var(--chip-color, var(--primary));
    }

    /* .is-checked instead of :has(input:checked): a :has() with `input` in it made
       every new ag-grid row (each has checkbox inputs) re-check the page and made
       listing scroll lag (TM #15727). No template uses this class today; a component
       that adds it must also set .is-checked on the selected chip. */
    .brtm-advsearch-status-chip.is-checked {
      border-color: var(--chip-color, var(--primary));
      color: var(--chip-color, var(--primary));
      background: color-mix(in srgb, var(--chip-color, var(--primary)) 10%, transparent);
      font-weight: 700;
    }

    /* Slide 2: Date */
    .brtm-advsearch-date-body {
      display: flex;
      flex-direction: column;
      gap: 18px;
    }

    .brtm-advsearch-field {}

    .brtm-advsearch-label {
      display: block;
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-muted);
      margin-bottom: 8px;
    }

    .brtm-advsearch-select {
      width: 100%;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 8px;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-main);
      padding: 8px 12px;
      outline: none;
      transition: border-color .15s;
    }

    .brtm-advsearch-select:focus {
      border-color: var(--primary);
    }

    .brtm-advsearch-preset-row {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }

    .brtm-advsearch-preset {
      padding: 6px 14px;
      border: 1.5px solid var(--border);
      border-radius: 20px;
      font-size: 12.5px;
      font-weight: 600;
      font-family: inherit;
      color: var(--text-muted);
      background: var(--surface);
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-advsearch-preset:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-advsearch-preset.brtm-active {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-advsearch-input {
      flex: 1;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 8px;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-main);
      padding: 8px 12px;
      outline: none;
      transition: border-color .15s;
      min-width: 0;
    }

    .brtm-advsearch-input:focus {
      border-color: var(--primary);
    }

    .brtm-advsearch-date-row {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .brtm-advsearch-date-sep {
      color: var(--text-muted);
      font-size: 13px;
      flex-shrink: 0;
    }

    /* Slide 3: Owner */
    .brtm-advsearch-owner-body {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .brtm-advsearch-owner-search-wrap {
      position: relative;
    }

    .brtm-advsearch-owner-search-wrap>i {
      position: absolute;
      left: 10px;
      top: 50%;
      transform: translateY(-50%);
      font-size: 13px;
      color: var(--text-muted);
      pointer-events: none;
    }

    .brtm-advsearch-owner-search-wrap .brtm-advsearch-input {
      width: 100%;
      padding-left: 32px;
      box-sizing: border-box;
    }

    .brtm-advsearch-owner-list {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .brtm-advsearch-owner-item {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 10px 12px;
      border-radius: 9px;
      cursor: pointer;
      transition: background .12s;
      user-select: none;
      border: 1.5px solid transparent;
    }

    .brtm-advsearch-owner-item input[type="radio"] {
      display: none;
    }

    .brtm-advsearch-owner-item:hover {
      background: var(--surface);
    }

    /* .is-checked instead of :has(input:checked) — see .brtm-advsearch-status-chip.
       No template uses this class today. */
    .brtm-advsearch-owner-item.is-checked {
      background: var(--primary-light);
      border-color: var(--primary);
    }

    .brtm-advsearch-owner-avatar {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      font-weight: 700;
      color: #fff;
      flex-shrink: 0;
    }

    .brtm-advsearch-owner-avatar.brtm-all {
      background: var(--surface);
      color: var(--text-muted);
      border: 2px solid var(--border);
      font-size: 14px;
    }

    .brtm-advsearch-owner-avatar.brtm-unassigned {
      background: #F1F5F9;
      color: #A3ADBE;
      border: 2px solid var(--border);
      font-size: 16px;
    }

    .brtm-advsearch-owner-info {
      display: flex;
      flex-direction: column;
    }

    .brtm-advsearch-owner-name {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-main);
    }

    .brtm-advsearch-owner-sub {
      font-size: 11px;
      color: var(--text-muted);
    }

    /* Footer */
    .brtm-advsearch-footer {
      display: flex;
      align-items: center;
      padding: 12px 20px;
      border-top: 1px solid var(--border);
      gap: 12px;
      flex-shrink: 0;
    }

    .brtm-advsearch-btn-reset {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 8px 14px;
      border: 1px solid var(--border);
      border-radius: 8px;
      font-size: 12.5px;
      font-weight: 600;
      font-family: inherit;
      color: var(--text-muted);
      background: var(--surface);
      cursor: pointer;
      transition: all .15s;
      white-space: nowrap;
    }

    .brtm-advsearch-btn-reset:hover {
      border-color: #EF4444;
      color: #EF4444;
      background: #FEF2F2;
    }

    .brtm-advsearch-nav {
      display: flex;
      align-items: center;
      gap: 10px;
      flex: 1;
      justify-content: center;
    }

    .brtm-advsearch-nav-btn {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      border: 1.5px solid var(--border);
      background: var(--surface);
      color: var(--text-muted);
      font-size: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-advsearch-nav-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-advsearch-nav-btn:disabled {
      opacity: .3;
      cursor: default;
      pointer-events: none;
    }

    .brtm-advsearch-dots {
      display: flex;
      gap: 6px;
      align-items: center;
    }

    .brtm-advsearch-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--border);
      cursor: pointer;
      transition: all .22s;
    }

    .brtm-advsearch-dot.brtm-active {
      background: var(--primary);
      width: 22px;
      border-radius: 4px;
    }

    .brtm-advsearch-btn-apply {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 8px 18px;
      border: none;
      border-radius: 8px;
      font-size: 13px;
      font-weight: 700;
      font-family: inherit;
      color: #fff;
      background: var(--primary);
      cursor: pointer;
      transition: background .15s;
      white-space: nowrap;
    }

    .brtm-advsearch-btn-apply:hover {
      background: var(--primary-dark);
    }

    /* Search Leads button active state */
    .brtm-filter-btn.brtm-afilter-on {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
      font-weight: 600;
    }

    .brtm-col-drawer-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.25);
      z-index: 1040;
    }

    .brtm-col-drawer-overlay.brtm-show {
      display: block;
    }

    .brtm-col-drawer {
      position: fixed;
      top: 0;
      right: 0;
      width: 300px;
      height: 100vh;
      background: #fff;
      z-index: 1041;
      box-shadow: -6px 0 32px rgba(0, 0, 0, 0.14);
      display: flex;
      flex-direction: column;
      transform: translateX(100%);
      transition: transform .28s cubic-bezier(.4, 0, .2, 1);
    }

    .brtm-col-drawer.brtm-open {
      transform: translateX(0);
    }

    .brtm-col-drawer-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 16px 20px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }
    .brtm-col-drawer-header.compact { padding: 10px 16px; }

    .brtm-col-drawer-title {
      font-size: 14.5px;
      font-weight: 700;
      color: var(--text-main);
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .brtm-col-drawer-title i {
      color: var(--primary);
      font-size: 16px;
    }

    .brtm-col-drawer-close {
      width: 30px;
      height: 30px;
      border-radius: 7px;
      border: none;
      background: var(--surface);
      color: var(--text-muted);
      font-size: 16px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: background .15s, color .15s;
    }

    .brtm-col-drawer-close:hover {
      background: #FFE4E4;
      color: #EF4444;
    }

    .brtm-col-drawer-search {
      padding: 12px 16px 8px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-col-drawer-search-wrap {
      position: relative;
    }

    .brtm-col-drawer-search-wrap input {
      width: 100%;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 7px;
      font-size: 13px;
      font-family: inherit;
      padding: 7px 10px 7px 32px;
      outline: none;
      color: var(--text-main);
      transition: border-color .15s;
    }

    .brtm-col-drawer-search-wrap input:focus {
      border-color: var(--primary);
    }

    .brtm-col-drawer-search-wrap i {
      position: absolute;
      left: 10px;
      top: 50%;
      transform: translateY(-50%);
      font-size: 13px;
      color: var(--text-muted);
      pointer-events: none;
    }

    .brtm-col-drawer-body {
      flex: 1;
      overflow-y: auto;
      padding: 8px 0;
    }

    .brtm-col-drawer-section-label {
      padding: 10px 20px 4px;
      font-size: 10.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .6px;
      color: var(--text-light);
    }

    .brtm-col-drawer-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 9px 20px;
      cursor: default;
      transition: background .12s;
      user-select: none;
    }

    .brtm-col-drawer-item:hover {
      background: var(--surface);
    }

    .brtm-col-drawer-item-left {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 13.5px;
      color: var(--text-main);
      font-weight: 500;
    }

    .brtm-col-drawer-item-left i {
      font-size: 14px;
      color: var(--text-muted);
      width: 16px;
      text-align: center;
    }

    .brtm-col-drawer-item.brtm-locked .brtm-col-drawer-item-left {
      color: var(--text-muted);
    }

    .brtm-col-lock-icon {
      font-size: 12px;
      color: var(--text-light);
    }

    .brtm-col-drag-handle {
      font-size: 15px;
      color: var(--text-light);
      cursor: grab;
      flex-shrink: 0;
      padding: 0 2px;
      margin-right: 2px;
      touch-action: none;
    }

    .brtm-col-drag-handle:active {
      cursor: grabbing;
    }

    .brtm-col-drawer-item.brtm-dragging {
      opacity: 0.38;
      background: var(--surface);
    }

    .brtm-col-drawer-item.brtm-drag-over {
      background: var(--primary-light);
      outline: 2px dashed var(--primary);
      outline-offset: -2px;
      border-radius: 6px;
    }

    /* Toggle switch */
    .brtm-col-toggle {
      position: relative;
      width: 34px;
      height: 18px;
      flex-shrink: 0;
      cursor: pointer;
    }

    .brtm-col-toggle input {
      display: none;
    }

    .brtm-col-toggle-track {
      position: absolute;
      inset: 0;
      border-radius: 20px;
      background: var(--border);
      transition: background .2s;
    }

    .brtm-col-toggle input:checked~.brtm-col-toggle-track {
      background: var(--primary);
    }

    .brtm-col-toggle-thumb {
      position: absolute;
      top: 2px;
      left: 2px;
      width: 14px;
      height: 14px;
      border-radius: 50%;
      background: #fff;
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
      transition: left .2s;
    }

    .brtm-col-toggle input:checked~.brtm-col-toggle-thumb {
      left: 18px;
    }

    .brtm-col-drawer-footer {
      padding: 14px 16px;
      border-top: 1px solid var(--border);
      display: flex;
      gap: 8px;
      flex-shrink: 0;
    }

    .brtm-col-drawer-btn {
      flex: 1;
      padding: 8px;
      border-radius: 8px;
      font-size: 13px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-main);
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      transition: all .15s;
    }

    .brtm-col-drawer-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-col-drawer-btn.brtm-primary {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-col-drawer-btn.brtm-primary:hover {
      background: var(--primary-dark);
    }

    /*  TOPBAR PANELS (notif, avatar)  */
    .brtm-topbar-panel {
      display: none;
      position: absolute;
      top: calc(100% + 10px);
      right: 0;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 12px;
      box-shadow: var(--shadow-md);
      min-width: 280px;
      z-index: 2000;
      overflow: hidden;
    }

    .brtm-topbar-panel.brtm-show {
      display: block;
    }

    .brtm-tpanel-header {
      padding: 12px 16px;
      font-size: 13.5px;
      font-weight: 700;
      color: var(--text-main);
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .brtm-tpanel-badge {
      font-size: 11px;
      font-weight: 600;
      background: var(--primary-light);
      color: var(--primary);
      border-radius: 20px;
      padding: 2px 8px;
    }

    .brtm-tpanel-items {
      padding: 6px 0;
    }

    .brtm-tpanel-item {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 10px 16px;
      cursor: pointer;
      transition: background .15s;
    }

    .brtm-tpanel-item:hover {
      background: var(--surface);
    }

    .brtm-tpanel-item.brtm-unread {
      background: var(--primary-light);
    }

    .brtm-tpanel-item.brtm-unread:hover {
      background: #dce9f8;
    }

    .brtm-tpi-icon {
      font-size: 18px;
      margin-top: 1px;
      flex-shrink: 0;
    }

    .brtm-tpi-icon.brtm-blue {
      color: var(--primary);
    }

    .brtm-tpi-icon.brtm-green {
      color: var(--accent);
    }

    .brtm-tpi-icon.brtm-orange {
      color: #F59E0B;
    }

    .brtm-tpi-icon.brtm-red {
      color: #EF4444;
    }

    .brtm-tpi-title {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-main);
    }

    .brtm-tpi-sub {
      font-size: 11.5px;
      color: var(--text-muted);
      margin-top: 1px;
    }

    .brtm-tpanel-footer {
      padding: 10px 16px;
      border-top: 1px solid var(--border);
      text-align: center;
      font-size: 12.5px;
      font-weight: 600;
      color: var(--primary);
      cursor: pointer;
    }

    .brtm-tpanel-footer:hover {
      background: var(--primary-light);
    }

    .brtm-tpanel-action-item {
      display: flex;
      align-items: center;
      gap: 10px;
      width: 100%;
      padding: 10px 16px;
      background: none;
      border: none;
      font-family: inherit;
      font-size: 13.5px;
      font-weight: 500;
      color: var(--text-main);
      cursor: pointer;
      text-align: left;
      transition: background .15s;
    }

    .brtm-tpanel-action-item:hover {
      background: var(--surface);
    }

    /*  TOAST  */
    #toastContainer {
      position: fixed;
      bottom: 84px;
      right: 24px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      z-index: 9999;
    }

    .brtm-toast-item {
      background: var(--text-main);
      color: #fff;
      font-size: 13px;
      font-weight: 500;
      padding: 10px 16px;
      border-radius: 10px;
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
      display: flex;
      align-items: center;
      gap: 8px;
      opacity: 0;
      transform: translateY(10px);
      transition: opacity .2s, transform .2s;
      pointer-events: none;
    }

    .brtm-toast-item.brtm-show {
      opacity: 1;
      transform: translateY(0);
    }

    /*  HELP MODAL  */
    /*  03i  Help Modal  */
    #helpModal {
      display: none;
    }

    #helpModal.brtm-show {
      display: flex;
    }

    .brtm-help-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-top: 4px;
    }

    .brtm-help-card {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 4px;
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 14px;
      cursor: pointer;
      transition: border-color .15s, background .15s;
      background: var(--surface);
    }

    .brtm-help-card:hover {
      border-color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-help-card i {
      font-size: 20px;
      color: var(--primary);
    }

    .brtm-help-card span {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-main);
    }

    .brtm-help-card small {
      font-size: 11.5px;
      color: var(--text-muted);
    }

    /*  03j  Responsive Overrides  */
    @media (max-width: 1200px) {
      .brtm-search-bar-top {
        width: 150px;
      }

      .brtm-stats-strip {
        flex-wrap: wrap;
      }

      .brtm-stat-card {
        flex: 1 1 calc(50% - 6px);
      }
    }

    /*  Breakpoint: header starts wrapping  */
    @media (max-width: 1080px) {
      .brtm-page-wrapper {
        padding: 20px 20px 40px;
      }

      .brtm-page-header {
        flex-wrap: wrap;
        gap: 8px;
        align-items: center;
      }

      /* Title: shrink, stay left */
      .brtm-page-header>div:nth-child(1) {
        flex: 0 0 auto;
      }

      /* Filter row: full width, row 2 */
      .brtm-page-header>div:nth-child(2) {
        order: 3;
        flex: 1 1 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px;
        margin-left: 0 !important;
      }

      /* Show/view: row 3 */
      .brtm-page-header>div:nth-child(3) {
        order: 4;
        flex: 1 1 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px;
        margin-left: 0 !important;
        margin-right: 0 !important;
      }

      /* New Lead: stays right of title */
      .brtm-page-header>.brtm-split-add-lead {
        order: 2;
        margin-left: auto !important;
        margin-right: 0 !important;
        flex-shrink: 0;
      }
    }

    @media (max-width: 768px) {

      /*  TOPBAR  */
      .brtm-topbar {
        padding: 0 14px;
        gap: 8px;
      }

      .brtm-topbar-nav {
        display: none;
      }

      .brtm-search-bar-top {
        width: 120px;
      }

      .brtm-btn-help-support {
        display: none;
      }

      .brtm-topbar-icon-btn::after,
      .brtm-topbar-icon-btn::before {
        display: none;
      }

      /*  PAGE  */
      .brtm-page-wrapper {
        padding: 14px 14px 32px;
      }

      /*  PAGE HEADER  */
      .brtm-page-header {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
      }

      .brtm-page-header>div:nth-child(1) {
        order: 1;
        flex: 0 0 auto;
      }

      .brtm-page-header>.brtm-split-add-lead {
        order: 2;
        margin-left: auto !important;
        margin-right: 0 !important;
        flex-shrink: 0;
      }

      .brtm-page-header>div:nth-child(2) {
        order: 3;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        margin-left: 0 !important;
        gap: 6px;
      }

      .brtm-page-header>div:nth-child(3) {
        order: 4;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        margin-left: 0 !important;
        margin-right: 0 !important;
        gap: 6px;
      }

      /*  STATS  */
      .brtm-stats-strip {
        flex-wrap: wrap;
        gap: 10px;
      }

      .brtm-stat-card {
        flex: 1 1 calc(50% - 5px);
      }

      /*  ACTION BAR  */
      .brtm-action-bar {
        flex-wrap: wrap;
        gap: 6px;
        padding: 10px 12px;
      }

      .brtm-action-bar-right {
        margin-left: auto;
      }

      .brtm-action-divider-v {
        display: none;
      }

      /*  BANNER  */
      .brtm-select-all-banner {
        flex-wrap: wrap;
        gap: 8px;
      }

      /*  TABLE  */
      .brtm-leads-table th,
      .brtm-leads-table td {
        font-size: 12px;
        padding: 8px 10px;
      }

      /*  PAGINATION  */
      .brtm-pagination-bar {
        flex-direction: column;
        align-items: center;
        gap: 10px;
      }

      .brtm-page-btn {
        padding: 5px 10px;
        font-size: 12px;
      }
    }

    @media (max-width: 480px) {

      /*  TOPBAR  */
      .brtm-search-wrap {
        display: none;
      }

      .brtm-topbar-icon-btn[data-tooltip="Chat"],
      .brtm-topbar-icon-btn[data-tooltip="Call"],
      .brtm-topbar-icon-btn[data-tooltip="Settings"] {
        display: none;
      }

      /*  HEADER BUTTONS  */
      .brtm-filter-btn,
      .brtm-filter-dropdown-btn,
      .brtm-show-per-page-btn {
        font-size: 12px;
        padding: 5px 10px;
      }

      .brtm-approval-count {
        font-size: 10px;
        padding: 1px 5px;
      }

      /*  VIEW TOGGLE  */
      .brtm-view-toggle {
        gap: 2px;
        padding: 2px;
      }

      .brtm-view-btn {
        width: 26px;
        height: 26px;
        font-size: 13px;
      }

      /*  STATS: 1 kolom  */
      .brtm-stat-card {
        flex: 1 1 100%;
      }

      /*  ACTION BAR: icon only  */
      .brtm-action-btn span,
      .brtm-action-btn>*:not(i) {
        display: none;
      }

      .brtm-action-btn {
        padding: 6px 10px;
      }

      /*  PAGINATION  */
      .brtm-page-btn:not(.brtm-active):not(:first-child):not(:last-child) {
        display: none;
      }
    }

    /*  CHART VIEW  */
/* 
   04  CHART VIEW
    */
    .brtm-chart-view-wrap {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }

    .brtm-chart-summary-row {
      display: flex;
      gap: 12px;
    }

    .brtm-chart-summary-card {
      flex: 1;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 16px 18px;
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .brtm-chart-summary-val {
      font-size: 26px;
      font-weight: 700;
      color: var(--text-main);
      line-height: 1;
    }

    .brtm-chart-summary-label {
      font-size: 12px;
      color: var(--text-muted);
      font-weight: 500;
    }

    .brtm-chart-summary-card.accent .brtm-chart-summary-val {
      color: #EF4444;
    }

    .brtm-chart-summary-card.brtm-warn .brtm-chart-summary-val {
      color: #F59E0B;
    }

    .brtm-chart-summary-card.brtm-success .brtm-chart-summary-val {
      color: #00B87A;
    }

    .brtm-chart-summary-card.brtm-muted .brtm-chart-summary-val {
      color: #A3ADBE;
    }

    .brtm-chart-panels-row {
      display: flex;
      gap: 12px;
    }

    .brtm-chart-panel {
      flex: 1;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 18px 20px;
    }

    .brtm-chart-panel-title {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-main);
      margin-bottom: 16px;
    }

    .brtm-chart-bars {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .brtm-chart-bar-row {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .brtm-chart-bar-label {
      font-size: 12.5px;
      color: var(--text-muted);
      width: 88px;
      flex-shrink: 0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brtm-chart-bar-track {
      flex: 1;
      background: var(--surface);
      border-radius: 20px;
      height: 10px;
      overflow: hidden;
    }

    .brtm-chart-bar-fill {
      height: 100%;
      border-radius: 20px;
      transition: width .4s ease;
    }

    .brtm-chart-bar-val {
      font-size: 12px;
      font-weight: 600;
      color: var(--text-main);
      width: 28px;
      text-align: right;
      flex-shrink: 0;
    }

    /* column chart */
    .brtm-chart-col-wrap {
      display: flex;
      align-items: flex-end;
      gap: 12px;
      height: 140px;
      padding-bottom: 28px;
      position: relative;
    }

    .brtm-chart-col-group {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      height: 100%;
      justify-content: flex-end;
    }

    .brtm-chart-col-bar {
      width: 100%;
      border-radius: 6px 6px 0 0;
      transition: height .4s ease;
    }

    .brtm-chart-col-label {
      font-size: 11px;
      color: var(--text-muted);
    }

    .brtm-chart-col-val {
      font-size: 11.5px;
      font-weight: 600;
      color: var(--text-main);
    }

    /*  WIDGET CARD  */
/* 
   05  WIDGET CARD  /  Report Dashboard
    */
    .brtm-widget-card {
      flex: 1;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 12px;
      display: flex;
      flex-direction: column;
      min-width: 0;
      overflow: visible;
    }

    .brtm-widget-header {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 12px 14px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-widget-title {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-main);
      flex: 1;
      min-width: 0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    /* widget filter pill */
    .brtm-widget-filter {
      position: relative;
    }

    .brtm-widget-filter-menu {
      display: none;
      position: absolute;
      top: calc(100% + 5px);
      right: 0;
      width: 268px;
      max-height: 420px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 11px;
      box-shadow: 0 8px 28px rgba(0, 0, 0, 0.13);
      z-index: 600;
      display: none;
      flex-direction: column;
    }

    .brtm-widget-filter-menu.brtm-show {
      display: flex;
    }

    /* filter panel body */
    .brtm-wfm-body {
      padding: 14px 14px 10px;
      display: flex;
      flex-direction: column;
      gap: 13px;
      overflow-y: auto;
      flex: 1;
      min-height: 0;
    }

    .brtm-wfm-field {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .brtm-wfm-label {
      font-size: 10.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-muted);
    }

    .brtm-wfm-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
    }

    .brtm-wfm-pill {
      padding: 4px 11px;
      border-radius: 20px;
      font-size: 12px;
      font-weight: 500;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-main);
      cursor: pointer;
      font-family: inherit;
      transition: all .12s;
    }

    .brtm-wfm-pill:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-wfm-pill.brtm-active {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
      font-weight: 700;
    }

    .brtm-wfm-date-row {
      display: flex;
      gap: 6px;
    }

    .brtm-wfm-date-row input[type="date"] {
      flex: 1;
      padding: 6px 8px;
      font-size: 12px;
      border: 1px solid var(--border);
      border-radius: 7px;
      color: var(--text-main);
      font-family: inherit;
      outline: none;
      background: var(--surface);
    }

    .brtm-wfm-date-row input[type="date"]:focus {
      border-color: var(--primary);
    }

    .brtm-wfm-checkgroup {
      display: flex;
      flex-direction: column;
      gap: 4px;
      max-height: 116px;
      overflow-y: auto;
    }

    .brtm-wfm-checkitem {
      display: flex;
      align-items: center;
      gap: 7px;
      font-size: 12.5px;
      color: var(--text-main);
      cursor: pointer;
      padding: 2px 0;
    }

    .brtm-wfm-checkitem input[type="checkbox"] {
      accent-color: var(--primary);
      width: 14px;
      height: 14px;
      cursor: pointer;
      flex-shrink: 0;
    }

    .brtm-wfm-select {
      width: 100%;
      padding: 6px 8px;
      font-size: 12.5px;
      border: 1px solid var(--border);
      border-radius: 7px;
      color: var(--text-main);
      font-family: inherit;
      background: var(--surface);
      outline: none;
      cursor: pointer;
    }

    .brtm-wfm-select:focus {
      border-color: var(--primary);
    }

    /* filter panel footer */
    .brtm-wfm-footer {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      gap: 8px;
      padding: 10px 14px;
      border-top: 1px solid var(--border);
      flex-shrink: 0;
      background: #fff;
      border-radius: 0 0 11px 11px;
    }

    .brtm-wfm-reset-btn {
      font-size: 13px;
      font-weight: 500;
      color: var(--text-muted);
      background: none;
      border: none;
      cursor: pointer;
      font-family: inherit;
      padding: 0;
    }

    .brtm-wfm-reset-btn:hover {
      color: var(--text-main);
    }

    .brtm-wfm-apply-btn {
      padding: 6px 16px;
      border-radius: 7px;
      background: var(--primary);
      color: #fff;
      border: none;
      font-size: 13px;
      font-weight: 600;
      cursor: pointer;
      font-family: inherit;
      transition: background .12s;
    }

    .brtm-wfm-apply-btn:hover {
      background: #0047cc;
    }

    /* funnel badge dot */
    .brtm-wfb-wrap {
      position: relative;
      display: inline-flex;
    }

    .brtm-wfb-badge {
      position: absolute;
      top: -3px;
      right: -3px;
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--sev-crit);
      border: 2px solid #fff;
      display: none;
      pointer-events: none;
    }

    .brtm-wfb-wrap.brtm-has-filter .brtm-wfb-badge {
      display: block;
    }

    /* active filter chip */
    .brtm-wfm-chip-row {
      display: none;
      padding: 10px 16px 10px;
      flex-wrap: wrap;
      gap: 5px;
    }

    .brtm-wfm-chip-row.brtm-show {
      display: flex;
    }

    .brtm-wfm-chip {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 3px 6px 3px 10px;
      border-radius: 20px;
      background: var(--primary-light);
      border: 1px solid rgba(0, 90, 230, .25);
      color: var(--primary);
      font-size: 11.5px;
      font-weight: 600;
      max-width: 100%;
    }

    .brtm-wfm-chip>span {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .brtm-wfm-chip-x {
      width: 16px;
      height: 16px;
      border-radius: 50%;
      background: var(--primary);
      color: #fff;
      border: none;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      font-family: inherit;
      flex-shrink: 0;
      line-height: 1;
      transition: background .12s;
    }

    .brtm-wfm-chip-x:hover {
      background: #0047cc;
    }

    /* skeleton shimmer */
    .brtm-widget-skeleton {
      display: none;
      flex-direction: column;
      gap: 9px;
      padding: 2px 0 4px;
    }

    .brtm-widget-body.brtm-loading .brtm-widget-skeleton {
      display: flex;
    }

    .brtm-widget-body.brtm-loading>.brtm-chart-bars,
    .brtm-widget-body.brtm-loading>.brtm-chart-col-wrap {
      visibility: hidden;
    }

    .brtm-skel-bar {
      height: 13px;
      border-radius: 7px;
      background: linear-gradient(90deg, #f0f0f0 25%, #e2e8f0 50%, #f0f0f0 75%);
      background-size: 300% 100%;
      animation: skelShimmer .95s infinite linear;
    }

    @keyframes skelShimmer {
      0% {
        background-position: 150% 0
      }

      100% {
        background-position: -150% 0
      }
    }

    /* widget action buttons */
    .brtm-widget-actions {
      display: flex;
      align-items: center;
      gap: 2px;
      flex-shrink: 0;
    }

    .brtm-widget-action-btn {
      width: 30px;
      height: 30px;
      border-radius: 7px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-main);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      cursor: pointer;
      transition: background .12s, color .12s, border-color .12s;
    }

    .brtm-widget-action-btn:hover {
      background: #fff;
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-widget-state-card.brtm-expanded {
      grid-column: span 2;
    }

    .brtm-widget-action-btn.brtm-active {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-widget-action-btn.brtm-active:hover {
      background: #0047cc;
      border-color: #0047cc;
      color: #fff;
    }

    .brtm-widget-action-btn:disabled {
      opacity: .35;
      cursor: not-allowed;
      pointer-events: none;
    }

    /* kebab menu */
    .brtm-widget-export-wrap {
      position: relative;
    }

    .brtm-widget-export-menu {
      display: none;
      position: absolute;
      top: calc(100% + 5px);
      right: 0;
      min-width: 170px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 9px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.11);
      z-index: 600;
      overflow: hidden;
    }

    .brtm-widget-export-menu.brtm-show {
      display: block;
    }

    .brtm-widget-export-menu .brtm-wmenu-section-label {
      padding: 8px 14px 4px;
      font-size: 10.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-muted);
    }

    .brtm-widget-export-menu .brtm-wmenu-divider {
      height: 1px;
      background: var(--border);
      margin: 4px 0;
    }

    .brtm-widget-export-menu button {
      display: flex;
      align-items: center;
      gap: 8px;
      width: 100%;
      padding: 8px 14px;
      font-size: 12.5px;
      font-weight: 500;
      color: var(--text-main);
      background: none;
      border: none;
      font-family: inherit;
      cursor: pointer;
      transition: background .12s;
      text-align: left;
    }

    .brtm-widget-export-menu button:hover {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-widget-export-menu button.brtm-danger {
      color: #EF4444;
    }

    .brtm-widget-export-menu button.brtm-danger:hover {
      background: #FEE2E2;
      color: #EF4444;
    }

    .brtm-widget-export-menu button i {
      font-size: 13px;
      width: 14px;
      text-align: center;
      flex-shrink: 0;
    }

    /* widget sample states row */
    .brtm-widget-states-row {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
    }

    .brtm-widget-state-card {
      min-width: 0;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 12px;
      display: flex;
      flex-direction: column;
      overflow: visible;
    }

    .brtm-ws-card-header {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 12px 14px 10px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-ws-card-title {
      flex: 1;
      font-size: 13px;
      font-weight: 700;
      color: var(--text-main);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brtm-ws-card-badge {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .5px;
      padding: 2px 8px;
      border-radius: 20px;
      text-transform: uppercase;
    }

    .brtm-ws-badge-empty {
      background: #F1F5F9;
      color: #64748B;
    }

    .brtm-ws-badge-loading {
      background: #EFF6FF;
      color: #3B82F6;
    }

    .brtm-ws-badge-noresult {
      background: #FFF7ED;
      color: #F59E0B;
    }

    .brtm-ws-badge-new {
      background: #F0FDF4;
      color: #22C55E;
    }

    .brtm-ws-card-body {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 24px 16px;
      gap: 10px;
      text-align: center;
    }

    .brtm-ws-icon-wrap {
      width: 48px;
      height: 48px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
    }

    .brtm-ws-icon-empty {
      background: #F1F5F9;
      color: #94A3B8;
    }

    .brtm-ws-icon-loading {
      background: #EFF6FF;
      color: #3B82F6;
    }

    .brtm-ws-icon-noresult {
      background: #FFF7ED;
      color: #F59E0B;
    }

    .brtm-ws-icon-new {
      background: #F0FDF4;
      color: #22C55E;
    }

    .brtm-ws-card-body-title {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-main);
    }

    .brtm-ws-card-body-sub {
      font-size: 12px;
      color: var(--text-muted);
      line-height: 1.5;
      max-width: 160px;
    }

    .brtm-ws-action-btn {
      margin-top: 4px;
      padding: 6px 16px;
      border-radius: 7px;
      font-size: 12.5px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      border: none;
      transition: background .12s;
    }

    .brtm-ws-btn-primary {
      background: var(--primary);
      color: #fff;
    }

    .brtm-ws-btn-primary:hover {
      background: #0047cc;
    }

    .brtm-ws-btn-ghost {
      background: var(--surface);
      color: var(--text-muted);
      border: 1px solid var(--border);
    }

    .brtm-ws-btn-ghost:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    /* loading pulse for sample */
    .brtm-ws-skel-list {
      display: flex;
      flex-direction: column;
      gap: 7px;
      width: 100%;
    }

    .brtm-ws-skel-bar {
      height: 11px;
      border-radius: 6px;
      background: linear-gradient(90deg, #f0f0f0 25%, #e2e8f0 50%, #f0f0f0 75%);
      background-size: 300% 100%;
      animation: skelShimmer .95s infinite linear;
    }

    /* empty state */
    .brtm-widget-empty {
      display: none;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 32px 16px;
      gap: 8px;
      color: var(--text-muted);
      text-align: center;
    }

    .brtm-widget-empty.brtm-show {
      display: flex;
    }

    .brtm-widget-empty i {
      font-size: 28px;
      opacity: .35;
    }

    .brtm-widget-empty-title {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-muted);
    }

    .brtm-widget-empty-sub {
      font-size: 12px;
    }

    /*  PIPELINE VIEW  */
/* 
   06  PIPELINE VIEW
    */
    .brtm-pipeline-view-outer {
      overflow-x: auto;
      padding-bottom: 8px;
      scrollbar-width: thin;
      scrollbar-color: rgba(0, 0, 0, 0.18) transparent;
      cursor: grab;
    }

    .brtm-pipeline-view-outer.brtm-is-dragging-card {
      cursor: default !important;
    }

    .brtm-pipeline-view-outer.brtm-is-dragging {
      cursor: grabbing;
      scroll-behavior: auto;
      user-select: none;
    }

    .brtm-pipeline-view-outer::-webkit-scrollbar {
      height: 5px;
    }

    .brtm-pipeline-view-outer::-webkit-scrollbar-track {
      background: transparent;
    }

    .brtm-pipeline-view-outer::-webkit-scrollbar-thumb {
      background: rgba(0, 0, 0, 0.18);
      border-radius: 99px;
    }

    .brtm-pipeline-view-outer::-webkit-scrollbar-thumb:hover {
      background: rgba(0, 0, 0, 0.32);
    }

    .brtm-pipeline-board {
      display: flex;
      gap: 14px;
      align-items: stretch;
      min-width: max-content;
      padding: 2px 2px 12px;
      background: var(--page-bg);
    }

    @media (max-width: 992px) {
      .brtm-pipeline-board {
        padding: 0 20px;
      }
    }

    .brtm-pipeline-col {
      width: 300px;
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      gap: 16px;
      height: calc(100vh - 198px);
      padding: 10px;
      background: var(--white);
      border-radius: 12px;
      border: var(--borders-1px) var(--border);
    }

    .brtm-pipeline-col-header {
      border-top: 3px solid var(--primary);
      background: var(--primary-light);
      border-radius: 9px 9px 8px 8px;
      padding: 9px 11px 10px;
      position: relative;
      box-shadow: 0 1px 0 rgba(0, 0, 0, .02);
      color: var(--ink);
    }

    .brtm-pipeline-col-header .header-top {
      display: flex;
      align-items:center;
      gap: 8px;
    }

    .brtm-pipeline-col-header .h-row2 {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      margin-top: 12px;
      gap: 6px;
    }

    .brtm-pipeline-col-header .h-row2 .h-amt {
      font-size: 15px;
      font-weight: 700;
      color: var(--ink);
      letter-spacing: -.2px;
      margin: 0;
      flex: 1;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .brtm-pipeline-col.pipeline-won .brtm-pipeline-col-header {
      background-color: var(--sev-ok-50);
      border-top-color: var(--sev-ok);
    }

    .brtm-pipeline-col.pipeline-lost .brtm-pipeline-col-header {
      background-color: var(--sev-crit-50);
      border-top-color: var(--sev-crit);
    }

    .brtm-pipeline-col-title {
      font-size: 13px;
      font-weight: 700;
      color: var(--ink);
      flex: 1;
      letter-spacing: 0.1px;
      word-break: break-word;
      max-width: 100%;
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
    }

    .brtm-pipeline-stage-dot {
      display: block;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--primary);
      flex-shrink: 0;
    }

    .pipeline-won .brtm-pipeline-stage-dot {
      background: var(--sev-ok);
    }

    .pipeline-lost .brtm-pipeline-stage-dot {
      background: var(--sev-crit);
    }

    .brtm-pipeline-col-count {
      font-size: 11px;
      font-weight: 700;
      color: var(--muted);
      background: var(--surface);
      border-radius: 20px;
      padding: 2px 8px;
      flex-shrink: 0;
    }

    .pipeline-won .brtm-pipeline-col-count {
      color: var(--sev-ok);
    }

    .pipeline-lost .brtm-pipeline-col-count {
      color: var(--sev-crit);
    }

    .brtm-pipeline-col-body {
      display: flex;
      flex-direction: column;
      gap: 10px;
      flex: 1;
      overflow-y: auto;
      min-height: 0;
      padding-right: 3px;
      padding-top: 4px;
      scrollbar-width: thin;
      scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
    }

    .brtm-pipeline-card {
      background: #fff;
      border: 1px solid var(--border);
      border-left: 4px solid #1B6FBE;
      border-radius: 10px;
      padding: 14px 14px 12px 17px;
      cursor: pointer;
      transition: box-shadow .15s, border-color .15s, transform .12s;
      display: flex;
      flex-direction: column;
      gap: 0;
      /* box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05); */
      /* position: relative; */
      overflow: hidden;
      flex-shrink: 0;
    }

    .pipeline-won .brtm-pipeline-card {
      border-left: 4px solid var(--sev-ok);
    }

    .pipeline-lost .brtm-pipeline-card {
      border-left: 4px solid var(--sev-crit);
    }

    .brtm-pipeline-container {
      overflow-y: auto;
      scrollbar-width: thin;
      height: calc(100vh - 300px);
    }

    .brtm-pipeline-card.brtm-is-dragging {
      opacity: 0.4;
      transform: scale(0.98);
    }

    .brtm-pipeline-col-body.brtm-drag-over {
      outline: 2px dashed var(--primary);
      outline-offset: -2px;
      border-radius: 8px;
      background: var(--primary-light);
    }

    .brtm-pipeline-card-ghost {
      height: 6px;
      border-radius: 4px;
      background: var(--primary);
      opacity: 0.5;
      flex-shrink: 0;
      pointer-events: none;
    }

    .brtm-pipeline-card:hover {
      box-shadow: 0 8px 20px rgba(27, 111, 190, .16);
      transform: translateY(-2px);
      border-color: var(--primary);
      background: var(--primary-light);
    }

    .pipeline-won .brtm-pipeline-card:hover {
      border-color: var(--sev-ok);
      background: var(--sev-ok-50);
      box-shadow: 0 8px 20px rgba(22, 163, 74, .16);
    }

    .pipeline-lost .brtm-pipeline-card:hover {
      border-color: var(--sev-crit);
      background: var(--sev-crit-50);
      box-shadow: 0 8px 20px rgba(22, 163, 74, .16);
    }

    /* Kartu yang quick preview-nya sedang dibuka — dibedakan warnanya biar jelas
       kartu mana yang aktif. Menang atas :hover (tetap ter-highlight). */
    .brtm-pipeline-card--active,
    .brtm-pipeline-card--active:hover {
      background: var(--primary-light);
      border-color: var(--primary);
      box-shadow: inset 3px 0 0 0 var(--primary), 0 6px 18px rgba(27, 111, 190, .20);
      transform: none;
    }

    .pipeline-won .brtm-pipeline-card--active,
    .pipeline-won .brtm-pipeline-card--active:hover {
      background: var(--sev-ok-50);
      border-color: var(--sev-ok);
      box-shadow: inset 3px 0 0 0 var(--sev-ok), 0 6px 18px rgba(22, 163, 74, .20);
    }

    .pipeline-lost .brtm-pipeline-card--active,
    .pipeline-lost .brtm-pipeline-card--active:hover {
      background: var(--sev-crit-50);
      border-color: var(--sev-crit);
      box-shadow: inset 3px 0 0 0 var(--sev-crit), 0 6px 18px rgba(220, 38, 38, .20);
    }

    .brtm-pipeline-card-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 6px;
      margin-bottom: 3px;
    }

    .brtm-pipeline-card-name {
      font-size: 13px;
      font-weight: 700;
      color: var(--ink);
      line-height: 1.3;
      margin-bottom: 2px;
      display: -webkit-box;
      line-clamp: 2;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-transform: capitalize;
    }

    .brtm-pipeline-card .card-amt {
      font-size: 12.5px;
      font-weight: 700;
      color: var(--primary);
      margin-top: 2px;
    }

    .brtm-pipeline-card-actions {
      display: flex;
      gap: 8px;
      opacity: 0;
      transition: opacity .15s;
      flex-shrink: 0;
      margin-top: -1px;
    }

    .brtm-pipeline-card:hover .brtm-pipeline-card-actions {
      opacity: 1;
    }

    .brtm-pipeline-card-action {
      width: 24px;
      height: 24px;
      border-radius: 5px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-muted);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-pipeline-card-action:hover {
      background: var(--primary-light);
      color: var(--primary);
      border-color: var(--primary);
    }

    .brtm-pipeline-card-org {
      font-size: 12.5px;
      color: var(--text-muted);
      display: flex;
      align-items: center;
      gap: 4px;
      margin-bottom: 8px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .brtm-pipeline-card-org i {
      font-size: 10px;
      flex-shrink: 0;
    }

    .brtm-pipeline-card-info {
      border-top: 1px solid #f0f3f8;
      padding-top: 8px;
      margin-top: 2px;
      display: flex;
      flex-direction: column;
      align-items: start;
      gap: 8px;
    }

    .brtm-pipeline-card-info-label {
      font-size: 11px;
      color: var(--text-light);
      letter-spacing: .3px;
    }

    .brtm-contact-chips {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 5px;
    }

    .brtm-contact-chip {
      display: inline-flex;
      align-items: center;
      max-width: 120px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      padding: 3px 10px;
      border-radius: 999px;
      background: var(--primary-light);
      color: var(--primary);
      font-size: 11.5px;
      font-weight: 600;
      line-height: 1.4;
      text-decoration: none;
      transition: all .12s;
      border: var(--borders-1px) var(--primary);
    }

    a.brtm-contact-chip:hover {
      background: var(--primary);
      color: #fff;
    }

    .brtm-contact-chip-more {
      background: #eef1f6;
      color: var(--text-muted);
      max-width: none;
      cursor: default;
    }

    .brtm-pipeline-card-row {
      display: flex;
      align-items: center;
      gap: 5px;
      font-size: 11.5px;
      color: var(--muted);
    }

    .brtm-pipeline-card-row i {
      font-size: 12px;
      flex-shrink: 0;
      color: #9CAFC8;
    }

    .brtm-pipeline-card-meta {
      display: flex;
      flex-direction: column;
      row-gap:4px;
      margin-top: 9px;
    }

    .brtm-pipeline-card-meta .due-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }

    .brtm-pipeline-card-date,
    .brtm-pipeline-card-owner,
    .brtm-pipeline-card-created-by {
      font-size: 11.5px;
      color: var(--text-light);
      display: flex;
      align-items: center;
      gap: 3px;
    }

    .brtm-pipeline-card .brtm-pipeline-card-meta .chip-time {
      display: inline-flex;
      align-items: center;
      font-size: 10px;
      font-weight: 700;
      padding: 2px 7px;
      border-radius: 20px;
      flex-shrink: 0;
    }

     .brtm-pipeline-card .brtm-pipeline-card-meta .chip-time.c-aging {
      background: #FEF3C7;
      color: #B45309;
    }

    .brtm-pipeline-card .brtm-pipeline-card-meta .chip-time.c-fresh {
      background: #EAFBF1;
      color: #16803C;
    }

    .brtm-pipeline-card .brtm-pipeline-card-meta .chip-time.c-day {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-pipeline-card .brtm-pipeline-card-meta .chip-time.c-old {
      background: var(--sev-crit-50);
      color: var(--sev-crit);
    }

    /* Stage-age badge (top-right) + hover actions moved bottom-right so they never
       squeeze the deal name or cover the badge. */
    .brtm-pipeline-card { position: relative; }
    .brtm-pipeline-card-top > :first-child { min-width: 0; }
    .brtm-pipeline-card .card-amt { white-space: nowrap; }
    .brtm-pipeline-card-side {
      display: flex;
      align-items: center;
      flex-shrink: 0;
    }
    .brtm-pipeline-card-side .brtm-pipeline-card-actions {
      position: absolute;
      right: 12px;
      bottom: 10px;
      gap: 6px;
      margin-top: 0;
      padding-left: 22px;
      background: linear-gradient(90deg, transparent, var(--primary-light) 18px);
    }
    .pipeline-won .brtm-pipeline-card-side .brtm-pipeline-card-actions {
      background: linear-gradient(90deg, transparent, var(--sev-ok-50) 18px);
    }
    .pipeline-lost .brtm-pipeline-card-side .brtm-pipeline-card-actions {
      background: linear-gradient(90deg, transparent, var(--sev-crit-50) 18px);
    }
    .brtm-rot {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      height: 22px;
      padding: 0 7px;
      border-radius: 999px;
      border: 1px solid transparent;
      background: #F1F4F8;
      color: var(--text-muted);
      font-family: inherit;
      font-size: 10.5px;
      font-weight: 700;
      line-height: 1;
      white-space: nowrap;
      cursor: help;
    }
    .brtm-rot i { font-size: 11px; }
    .brtm-rot.is-warn { background: #FEF3C7; color: #B45309; }
    .brtm-rot.is-rot { background: var(--sev-crit-50); color: var(--sev-crit); border-color: #FBD5D5; }
    .brtm-rot:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
    .brtm-rot-tip {
      position: fixed;
      z-index: 1080;
      width: 240px;
      background: #1F2A44;
      color: #fff;
      border-radius: 8px;
      padding: 9px 11px;
      font-size: 11.5px;
      line-height: 1.45;
      box-shadow: 0 8px 24px rgba(15, 23, 42, .22);
      pointer-events: none;
    }
    .brtm-rot-tip-title {
      display: block;
      font-weight: 700;
      margin-bottom: 3px;
    }
    .brtm-rot-tip b { font-weight: 700; }
    .brtm-rot-tip-meta {
      display: block;
      margin-top: 5px;
      font-size: 11px;
      color: #AEB9CC;
    }
    .brtm-pipeline-card-row.is-late,
    .brtm-pipeline-card-row.is-late i { color: var(--sev-crit); }
    /* Expected close within 3 days: heads-up before it turns late */
    .brtm-pipeline-card-row.is-soon,
    .brtm-pipeline-card-row.is-soon i { color: #B45309; }
    /* Late date: keep the date on one line, the "late" note sits right after it
       (wraps below as a unit when the column is narrow) instead of being pushed apart. */
    .brtm-pipeline-card-meta .due-row:has(.is-late, .is-soon) { justify-content: flex-start; }
    .brtm-pipeline-card-row.is-late,
    .brtm-pipeline-card-row.is-soon {
      flex-wrap: wrap;
      column-gap: 5px;
      row-gap: 1px;
    }
    .brtm-pipeline-card-row .brtm-date-text { white-space: nowrap; }
    /* Always on its own line (consistent across widths), aligned with the date text:
       12px icon + 5px gap. */
    .brtm-pipeline-card-row .brtm-late-text {
      flex-basis: 100%;
      padding-left: 17px;
      font-weight: 600;
      white-space: nowrap;
    }
    .brtm-pipeline-approval-badge {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      background: #FEF3C7;
      color: #D97706;
      font-size: 10px;
      font-weight: 600;
      border-radius: 5px;
      padding: 2px 6px;
      white-space: nowrap;
      margin-bottom: 6px;
    }

    .brtm-pipeline-add-card {
      width: 100%;
      border: 1.5px dashed #D1DBE8;
      border-radius: 9px;
      background: rgba(255, 255, 255, .55);
      color: var(--muted);
      font-size: 12px;
      font-weight: 600;
      padding: 9px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
      cursor: pointer;
      transition: all .15s;
      flex-shrink: 0;
      margin-top: 2px;
    }

    .brtm-pipeline-add-card:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    /* pipeline color picker */
    .brtm-pipeline-color-btn {
      width: 22px;
      height: 22px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: transparent;
      color: var(--light-muted);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      cursor: pointer;
    }

    .brtm-pipeline-color-btn:hover,
    .brtm-pipeline-color-btn.active {
      color: var(--primary);
      border-color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-pipeline-color-pop {
      display: none;
      position: absolute;
      top: calc(100% + 8px);
      right: 0;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 10px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
      padding: 12px;
      z-index: 900;
      min-width: 192px;
    }

    .brtm-pipeline-color-pop.brtm-show {
      display: block;
    }

    .brtm-pipeline-color-pop-title {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-muted);
      margin-bottom: 9px;
    }

    .brtm-pipeline-color-swatches {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
    }

    .brtm-pipeline-swatch {
      width: 26px;
      height: 26px;
      border-radius: 50%;
      border: 2.5px solid transparent;
      cursor: pointer;
      transition: transform .12s, box-shadow .12s;
    }

    .brtm-pipeline-swatch:hover {
      transform: scale(1.15);
    }

    .brtm-pipeline-swatch.brtm-active {
      border-color: #fff;
      box-shadow: 0 0 0 2.5px var(--primary);
    }

    /* pipeline filter bar */
    .brtm-pipeline-header-group {
      display: none;
      align-items: center;
      gap: 8px;
    }

    /* new pipeline stage builder */
    .brtm-np-stage-row {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 10px;
      overflow: hidden;
      position: relative;
      transition: box-shadow .15s;
    }

    .brtm-np-stage-row:hover {
      box-shadow: 0 2px 10px rgba(27, 111, 190, 0.08);
    }

    .brtm-np-stage-row-top {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 12px;
      background: #fff;
      border-bottom: 1px solid var(--border);
    }

    .brtm-np-stage-row-sla {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 12px 8px 44px;
    }

    .brtm-np-sla-label {
      font-size: 11px;
      font-weight: 700;
      color: var(--text-muted);
      white-space: nowrap;
      text-transform: uppercase;
      letter-spacing: .4px;
      flex-shrink: 0;
    }

    .brtm-np-sla-input {
      width: 58px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 6px;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-main);
      padding: 5px 8px;
      outline: none;
      text-align: center;
      transition: border-color .15s;
    }

    .brtm-np-sla-input:focus {
      border-color: var(--primary);
    }

    .brtm-np-sla-unit {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 6px;
      font-size: 12.5px;
      font-family: inherit;
      color: var(--text-main);
      padding: 5px 8px;
      outline: none;
      cursor: pointer;
      transition: border-color .15s;
    }

    .brtm-np-sla-unit:focus {
      border-color: var(--primary);
    }

    .brtm-np-sla-none-toggle {
      display: flex;
      align-items: center;
      gap: 5px;
      font-size: 11.5px;
      color: var(--text-muted);
      cursor: pointer;
      user-select: none;
      white-space: nowrap;
      margin-left: auto;
    }

    .brtm-np-sla-none-toggle input {
      accent-color: var(--primary);
      cursor: pointer;
    }

    .brtm-np-stage-color-dot {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      cursor: pointer;
      flex-shrink: 0;
      border: 2.5px solid rgba(0, 0, 0, 0.08);
      transition: transform .12s, box-shadow .12s;
      position: relative;
    }

    .brtm-np-stage-color-dot:hover {
      transform: scale(1.1);
      box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.07);
    }

    .brtm-np-stage-name-input {
      flex: 1;
      background: transparent;
      border: none;
      font-size: 13px;
      font-weight: 600;
      font-family: inherit;
      color: var(--text-main);
      outline: none;
      padding: 0;
    }

    .brtm-np-stage-name-input::placeholder {
      color: var(--text-light);
      font-weight: 400;
    }

    .brtm-np-stage-delete-btn {
      width: 26px;
      height: 26px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-light);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      cursor: pointer;
      transition: all .12s;
      flex-shrink: 0;
    }

    .brtm-np-stage-delete-btn:hover {
      background: #FEE2E2;
      color: #EF4444;
    }

    .brtm-np-color-pop {
      display: none;
      position: absolute;
      left: 0;
      top: calc(100% + 6px);
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 10px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.13);
      padding: 10px;
      z-index: 1200;
      min-width: 180px;
    }

    .brtm-np-color-pop.brtm-show {
      display: block;
    }

    .brtm-np-color-pop-title {
      font-size: 10.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-muted);
      margin-bottom: 8px;
    }

    .brtm-np-color-swatches {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }

    .brtm-np-color-swatch {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      border: 2.5px solid transparent;
      cursor: pointer;
      transition: transform .12s;
    }

    .brtm-np-color-swatch:hover {
      transform: scale(1.15);
    }

    .brtm-np-color-swatch.brtm-selected {
      border-color: #fff;
      box-shadow: 0 0 0 2.5px var(--primary);
    }

    /*  INLINE CELL EDIT  */
/* 
   07  INLINE CELL EDITOR
    */
    td[data-col-id].brtm-editable-col:hover {
      cursor: text;
      background: rgba(27, 111, 190, 0.035);
    }

    td[data-col-id].brtm-editable-col {
      transition: background .1s;
    }

    td.brtm-cell-editing {
      padding: 4px 8px !important;
      background: #fff !important;
    }

    .brtm-cell-edit-wrap {
      position: relative;
    }

    .brtm-cell-edit-input {
      width: 100%;
      background: #fff;
      border: 2px solid var(--primary);
      border-radius: 7px;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-main);
      padding: 6px 10px;
      outline: none;
      box-shadow: 0 0 0 3px rgba(27, 111, 190, 0.12);
    }

    .brtm-cell-edit-actions {
      position: absolute;
      top: calc(100% + 4px);
      right: 0;
      display: flex;
      gap: 3px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 7px;
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.13);
      padding: 3px;
      z-index: 200;
    }

    .brtm-cell-edit-save,
    .brtm-cell-edit-cancel {
      width: 26px;
      height: 26px;
      border-radius: 5px;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 13px;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-cell-edit-save {
      background: var(--primary);
      color: #fff;
    }

    .brtm-cell-edit-save:hover {
      background: var(--primary-dark);
    }

    .brtm-cell-edit-cancel {
      background: var(--surface);
      color: var(--text-muted);
    }

    .brtm-cell-edit-cancel:hover {
      background: #fee2e2;
      color: #ef4444;
    }

    /*  CELL EDITOR  popup / radio / multiselect  */
    .brtm-ce-popup {
      position: absolute;
      top: calc(100% + 4px);
      left: 0;
      min-width: 160px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 10px;
      box-shadow: 0 6px 20px rgba(0, 0, 0, .13);
      padding: 6px;
      z-index: 300;
    }

    .brtm-ce-radio-item,
    .brtm-ce-ms-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 7px 10px;
      border-radius: 7px;
      cursor: pointer;
      font-size: 13px;
      transition: background .1s;
    }

    .brtm-ce-radio-item:hover,
    .brtm-ce-ms-item:hover {
      background: var(--primary-light);
    }

    .brtm-ce-radio-item.brtm-selected {
      background: var(--primary-light);
      font-weight: 600;
      color: var(--primary);
    }

    .brtm-ce-ms-item input[type=checkbox] {
      accent-color: var(--primary);
      width: 15px;
      height: 15px;
    }

    .brtm-ce-checkbox-wrap {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 4px;
    }

    .brtm-ce-toggle {
      position: relative;
      width: 40px;
      height: 22px;
      flex-shrink: 0;
    }

    .brtm-ce-toggle input {
      display: none;
    }

    .brtm-ce-toggle-track {
      position: absolute;
      inset: 0;
      background: #CBD5E1;
      border-radius: 99px;
      transition: background .15s;
    }

    .brtm-ce-toggle input:checked~.brtm-ce-toggle-track {
      background: var(--primary);
    }

    .brtm-ce-toggle-thumb {
      position: absolute;
      width: 16px;
      height: 16px;
      background: #fff;
      border-radius: 50%;
      top: 3px;
      left: 3px;
      transition: transform .15s;
      box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
    }

    .brtm-ce-toggle input:checked~.brtm-ce-toggle-thumb {
      transform: translateX(18px);
    }

    .brtm-ce-toggle-label {
      font-size: 13px;
      color: var(--text-main);
    }

    .brtm-ce-select {
      width: 100%;
      padding: 7px 10px;
      border: 1.5px solid var(--primary);
      border-radius: 8px;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-main);
      background: #fff;
      outline: none;
    }

    .brtm-ce-upload-zone {
      border: 2px dashed var(--border);
      border-radius: 8px;
      padding: 16px;
      text-align: center;
      font-size: 12px;
      color: var(--text-muted);
      cursor: pointer;
      transition: border-color .15s;
    }

    .brtm-ce-upload-zone:hover,
    .brtm-ce-upload-zone.brtm-drag-active {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-ce-upload-file-info {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 12.5px;
      padding: 6px 4px;
    }

    .brtm-ce-img-zone {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      padding: 8px 4px;
    }

    .brtm-ce-img-preview {
      width: 80px;
      height: 80px;
      object-fit: cover;
      border-radius: 10px;
      border: 1.5px solid var(--border);
    }

    .brtm-ce-img-pick-btn {
      font-size: 12px;
      padding: 5px 12px;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: #fff;
      cursor: pointer;
      color: var(--text-main);
    }

    /* cell display helpers */
    .brtm-ce-badge-radio {
      display: inline-block;
      padding: 2px 9px;
      border-radius: 99px;
      font-size: 11.5px;
      font-weight: 600;
    }

    .brtm-ce-badge-high {
      background: #FEE2E2;
      color: #DC2626;
    }

    .brtm-ce-badge-medium {
      background: #FEF9C3;
      color: #A16207;
    }

    .brtm-ce-badge-low {
      background: #DCFCE7;
      color: #15803D;
    }

    .brtm-ce-checkbox-cell {
      font-size: 16px;
    }

    .brtm-ce-checkbox-cell.on {
      color: #10B981;
    }

    .brtm-ce-checkbox-cell.off {
      color: #CBD5E1;
    }

    .brtm-ce-ms-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 3px;
    }

    .brtm-ce-ms-chip {
      display: inline-block;
      padding: 2px 7px;
      background: var(--primary-light);
      color: var(--primary);
      border-radius: 99px;
      font-size: 11px;
      font-weight: 600;
    }

    .brtm-ce-file-cell {
      display: flex;
      align-items: center;
      gap: 5px;
      font-size: 12px;
      color: var(--text-main);
    }

    .brtm-ce-file-cell i {
      color: var(--primary);
    }

    .brtm-ce-img-cell {
      width: 32px;
      height: 32px;
      object-fit: cover;
      border-radius: 6px;
      border: 1px solid var(--border);
    }

    .brtm-ce-img-placeholder {
      width: 32px;
      height: 32px;
      border-radius: 6px;
      border: 1.5px dashed var(--border);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--text-light);
      font-size: 14px;
    }

    /*  LEAD SLIDESHOW PANEL  */
/* 
   08  LEAD SLIDESHOW PANEL
    */
    .brtm-slide-name-banner {
      background: var(--primary-light);
      border-bottom: 1px solid var(--border);
      padding: 18px 20px;
      display: flex;
      align-items: center;
      gap: 14px;
      flex-shrink: 0;
    }

    .brtm-slide-avatar {
      width: 46px;
      height: 46px;
      border-radius: 12px;
      background: var(--primary);
      color: #fff;
      font-size: 20px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-slide-name {
      font-size: 15px;
      font-weight: 700;
      color: var(--text-main);
      line-height: 1.3;
    }

    .brtm-slide-status-tag {
      display: inline-block;
      font-size: 11px;
      font-weight: 600;
      background: var(--primary);
      color: #fff;
      border-radius: 20px;
      padding: 2px 9px;
      margin-top: 4px;
    }

    .brtm-slide-nav-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 8px 14px;
      border-bottom: 1px solid var(--border);
      background: #fafbfd;
      flex-shrink: 0;
    }

    .brtm-slide-nav-btn {
      display: flex;
      align-items: center;
      gap: 5px;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 7px;
      color: var(--text-main);
      font-size: 12.5px;
      font-weight: 500;
      font-family: inherit;
      padding: 5px 12px;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-slide-nav-btn:hover:not(:disabled) {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-slide-nav-btn:disabled {
      opacity: .35;
      cursor: not-allowed;
    }

    .brtm-slide-nav-pos {
      font-size: 12.5px;
      font-weight: 600;
      color: var(--text-muted);
    }

    .brtm-slide-field-group {
      padding: 12px 20px;
      border-bottom: 1px solid var(--border);
    }

    .brtm-slide-field-group:last-child {
      border-bottom: none;
    }

    .brtm-slide-field-label {
      font-size: 10.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-muted);
      margin-bottom: 5px;
      display: flex;
      align-items: center;
      gap: 5px;
    }

    .brtm-slide-field-label i {
      font-size: 12px;
      color: var(--primary);
    }

    .brtm-slide-field-value {
      font-size: 13.5px;
      color: var(--text-main);
      font-weight: 500;
      word-break: break-word;
      line-height: 1.5;
    }

    .brtm-slide-field-value.brtm-empty {
      color: var(--text-light);
      font-weight: 400;
      font-style: italic;
    }

    .brtm-slide-header-actions {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .brtm-slide-edit-toggle {
      display: flex;
      align-items: center;
      gap: 5px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 7px;
      color: var(--text-main);
      font-size: 12.5px;
      font-weight: 600;
      font-family: inherit;
      padding: 5px 12px;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-slide-edit-toggle:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    /*        QUICK PREVIEW  CRM STANDARD PANEL        */
    /*  Hero / identity  */
/* 
   09  QUICK PREVIEW PANEL  (CRM Standard)
    */
    .brtm-qp-hero {
      padding: 16px 20px;
      border-bottom: 1px solid var(--border);
      background: #fff;
      flex-shrink: 0;
    }

    .brtm-qp-hero-top {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 12px;
    }

    .brtm-qp-avatar {
      width: 42px;
      height: 42px;
      border-radius: 50%;
      background: var(--primary);
      color: #fff;
      font-size: 15px;
      font-weight: 700;
      letter-spacing: -.5px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-qp-name-block {
      flex: 1;
      min-width: 0;
    }

    .brtm-qp-name {
      font-size: 14.5px;
      font-weight: 700;
      color: var(--text-main);
      line-height: 1.3;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brtm-qp-org {
      font-size: 12px;
      color: var(--text-muted);
      margin-top: 2px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brtm-qp-status-badge {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 22px;
      padding: 0 9px;
      border-radius: 4px;
      font-size: 11px;
      font-weight: 700;
      white-space: nowrap;
      flex-shrink: 0;
      margin-top: 2px;
    }

    .brtm-qp-status-badge::before {
      content: '';
      width: 5px;
      height: 5px;
      border-radius: 50%;
      flex-shrink: 0;
    }

    .brtm-qp-status-badge.brtm-hot {
      background: #FEF2F2;
      color: #B91C1C;
    }

    .brtm-qp-status-badge.brtm-hot::before {
      background: var(--sev-crit);
    }

    .brtm-qp-status-badge.follow {
      background: #FFFBEB;
      color: #92400E;
    }

    .brtm-qp-status-badge.follow::before {
      background: #F59E0B;
    }

    .brtm-qp-status-badge.brtm-new {
      background: #EFF6FF;
      color: #1E40AF;
    }

    .brtm-qp-status-badge.brtm-new::before {
      background: #3B82F6;
    }

    .brtm-qp-status-badge.qual {
      background: #F0FDF4;
      color: #166534;
    }

    .brtm-qp-status-badge.qual::before {
      background: #22C55E;
    }

    .brtm-qp-status-badge.unqual {
      background: #F8FAFC;
      color: #475569;
    }

    .brtm-qp-status-badge.unqual::before {
      background: #94A3B8;
    }

    /* contact rows: phone + email dengan inline icon action */
    .brtm-qp-contact-rows {
      display: flex;
      flex-direction: column;
      gap: 0;
      border: 1px solid var(--border);
      border-radius: 8px;
      overflow: hidden;
      background: #fff;
    }

    .brtm-qp-contact-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 12px;
      border-bottom: 1px solid var(--border);
    }

    .brtm-qp-contact-row:last-child {
      border-bottom: none;
    }

    .brtm-qp-contact-icon {
      width: 28px;
      height: 28px;
      border-radius: 7px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      flex-shrink: 0;
    }

    .brtm-qp-contact-icon.brtm-phone {
      background: var(--accent-light);
      color: var(--accent);
    }

    .brtm-qp-contact-icon.brtm-email {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-qp-contact-icon.brtm-org {
      background: #F1F5F9;
      color: #64748B;
    }

    .brtm-qp-contact-row-label {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-light);
      white-space: nowrap;
      width: 44px;
      flex-shrink: 0;
    }

    .brtm-qp-contact-row-val {
      flex: 1;
      min-width: 0;
      font-size: 13px;
      font-weight: 500;
      color: var(--text-main);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brtm-qp-contact-row-val.brtm-empty {
      color: var(--text-light);
      font-style: italic;
    }

    .brtm-qp-contact-action {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 26px;
      height: 26px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-muted);
      font-size: 12px;
      cursor: pointer;
      transition: all .15s;
      flex-shrink: 0;
      text-decoration: none;
    }

    .brtm-qp-contact-action:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    /* meta strip: dibuat pada + owner */
    .brtm-qp-meta-strip {
      display: flex;
      gap: 16px;
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px solid var(--border);
    }

    .brtm-qp-meta-item {
      display: flex;
      align-items: center;
      gap: 6px;
      min-width: 0;
    }

    .brtm-qp-meta-label {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-light);
      white-space: nowrap;
    }

    .brtm-qp-meta-value {
      font-size: 12px;
      font-weight: 600;
      color: var(--text-main);
      display: flex;
      align-items: center;
      gap: 4px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brtm-qp-meta-value i {
      font-size: 11px;
      color: var(--text-muted);
      flex-shrink: 0;
    }

    /*  CTA bar  */
    .brtm-qp-cta-bar {
      display: flex;
      gap: 6px;
      align-items: center;
      padding: 10px 14px;
      border-bottom: 1px solid var(--border);
      background: var(--surface);
      flex-shrink: 0;
    }

    .brtm-qp-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 30px;
      padding: 0 11px;
      border-radius: 6px;
      font-size: 12px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      border: 1px solid transparent;
      transition: all .15s;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .brtm-qp-btn i {
      font-size: 11px;
    }

    .brtm-qp-btn-call {
      background: var(--accent);
      color: #fff;
      border-color: var(--accent);
    }

    .brtm-qp-btn-call:hover {
      background: #009963;
      border-color: #009963;
    }

    .brtm-qp-btn-convert {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-qp-btn-convert:hover {
      background: var(--primary-dark);
      border-color: var(--primary-dark);
    }

    .brtm-qp-btn-meeting {
      background: #fff;
      color: var(--text-main);
      border-color: var(--border);
    }

    .brtm-qp-btn-meeting:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    /* More dropdown */
    .brtm-qp-more-wrap {
      position: relative;
      margin-left: auto;
    }

    .brtm-qp-btn-more {
      width: 30px;
      height: 30px;
      padding: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: #fff;
      color: var(--text-muted);
      border: 1px solid var(--border);
      border-radius: 6px;
      font-size: 14px;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-qp-btn-more:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-qp-more-menu {
      display: none;
      position: absolute;
      bottom: calc(100% + 5px);
      right: 0;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 9px;
      box-shadow: 0 6px 20px rgba(0, 0, 0, .10);
      min-width: 164px;
      overflow: hidden;
      z-index: 600;
    }

    .brtm-qp-more-menu.brtm-show {
      display: block;
    }

    .brtm-qp-more-item {
      display: flex;
      align-items: center;
      gap: 9px;
      width: 100%;
      padding: 8px 14px;
      font-size: 13px;
      font-weight: 500;
      color: var(--text-main);
      background: none;
      border: none;
      font-family: inherit;
      cursor: pointer;
      text-align: left;
      transition: background .12s;
    }

    .brtm-qp-more-item:hover {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-qp-more-item i {
      font-size: 13px;
      width: 14px;
      text-align: center;
      color: var(--text-muted);
      flex-shrink: 0;
    }

    .brtm-qp-more-item:hover i {
      color: var(--primary);
    }

    .brtm-qp-more-item.brtm-danger {
      color: #EF4444;
    }

    .brtm-qp-more-item.brtm-danger i {
      color: #EF4444;
    }

    .brtm-qp-more-item.brtm-danger:hover {
      background: #FEF2F2;
      color: #EF4444;
    }

    .brtm-qp-more-divider {
      height: 1px;
      background: var(--border);
      margin: 3px 0;
    }

    /*  Tabs  */
    .brtm-qp-tabs-nav {
      display: flex;
      background: #fff;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
      overflow-x: auto;
      scrollbar-width: none;
      padding: 0 6px;
    }

    .brtm-qp-tabs-nav::-webkit-scrollbar {
      display: none;
    }

    .brtm-qp-tab-btn {
      padding: 9px 10px;
      font-size: 12px;
      font-weight: 600;
      font-family: inherit;
      color: var(--text-muted);
      background: none;
      border: none;
      border-bottom: 2px solid transparent;
      margin-bottom: -1px;
      cursor: pointer;
      transition: color .15s, border-color .15s;
      white-space: nowrap;
    }

    .brtm-qp-tab-btn:hover {
      color: var(--text-main);
    }

    .brtm-qp-tab-btn.brtm-active {
      color: var(--primary);
      border-bottom-color: var(--primary);
    }

    /* Tab body */
    .brtm-qp-tabs-body {
      flex: 1;
      min-height: 0;
      overflow: hidden;
    }

    .brtm-qp-tab-panel {
      display: none;
      height: 100%;
      overflow-y: auto;
    }

    .brtm-qp-tab-panel.brtm-active {
      display: block;
    }

    /*  Detail tab: field rows (CRM row style)  */
    .brtm-qp-field-group {
      padding: 6px 0;
    }

    .brtm-qp-field-group-title {
      padding: 10px 20px 4px;
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .7px;
      color: var(--text-light);
    }

    .brtm-qp-field-row {
      display: flex;
      align-items: flex-start;
      gap: 0;
      padding: 7px 20px;
      border-bottom: 1px solid var(--border);
      transition: background .12s;
    }

    .brtm-qp-field-row:first-of-type {
      border-top: 1px solid var(--border);
    }

    .brtm-qp-field-row:hover {
      background: var(--surface);
    }

    .brtm-qp-field-key {
      width: 130px;
      flex-shrink: 0;
      font-size: 12px;
      font-weight: 500;
      color: var(--text-muted);
      padding-top: 1px;
      line-height: 1.5;
    }

    .brtm-qp-field-val {
      flex: 1;
      font-size: 13px;
      font-weight: 500;
      color: var(--text-main);
      word-break: break-word;
      line-height: 1.5;
    }

    .brtm-qp-field-val.brtm-empty {
      color: var(--text-light);
      font-style: italic;
      font-weight: 400;
    }

    /*  Comments tab  */
    .brtm-qp-comment-form {
      padding: 12px 16px;
      border-bottom: 1px solid var(--border);
    }

    .brtm-qp-comment-input {
      width: 100%;
      border: 1px solid var(--border);
      border-radius: 7px;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-main);
      padding: 8px 12px;
      resize: none;
      outline: none;
      min-height: 60px;
      background: var(--surface);
      transition: border-color .15s;
      line-height: 1.5;
    }

    .brtm-qp-comment-input:focus {
      border-color: var(--primary);
      background: #fff;
    }

    .brtm-qp-comment-actions {
      display: flex;
      justify-content: flex-end;
      margin-top: 8px;
    }

    .brtm-qp-comment-submit {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      background: var(--primary);
      color: #fff;
      border: none;
      border-radius: 6px;
      font-size: 12px;
      font-weight: 600;
      font-family: inherit;
      height: 30px;
      padding: 0 14px;
      cursor: pointer;
      transition: background .15s;
    }

    .brtm-qp-comment-submit:hover {
      background: var(--primary-dark);
    }

    .brtm-qp-comment-list {
      padding: 12px 16px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .brtm-qp-comment-item {
      display: flex;
      gap: 9px;
    }

    .brtm-qp-comment-avatar {
      width: 26px;
      height: 26px;
      border-radius: 50%;
      background: var(--primary);
      color: #fff;
      font-size: 9px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-qp-comment-bubble {
      flex: 1;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 2px 8px 8px 8px;
      padding: 8px 11px;
    }

    .brtm-qp-comment-head {
      display: flex;
      align-items: baseline;
      gap: 8px;
      margin-bottom: 4px;
    }

    .brtm-qp-comment-author {
      font-size: 12px;
      font-weight: 700;
      color: var(--text-main);
    }

    .brtm-qp-comment-time {
      font-size: 11px;
      color: var(--text-light);
      margin-left: auto;
      white-space: nowrap;
    }

    .brtm-qp-comment-text {
      font-size: 12.5px;
      color: var(--text-main);
      line-height: 1.55;
    }

    /*  Activity tab  */
    .brtm-qp-activity-list {
      padding: 12px 16px;
      display: flex;
      flex-direction: column;
    }

    .brtm-qp-act-row {
      display: flex;
      gap: 11px;
      position: relative;
      padding-bottom: 18px;
    }

    .brtm-qp-act-row:last-child {
      padding-bottom: 4px;
    }

    .brtm-qp-act-row::before {
      content: '';
      position: absolute;
      left: 13px;
      top: 30px;
      bottom: 0;
      width: 1px;
      background: var(--border);
    }

    .brtm-qp-act-row:last-child::before {
      display: none;
    }

    .brtm-qp-act-icon {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      flex-shrink: 0;
      position: relative;
      z-index: 1;
      border: 1px solid transparent;
    }

    .brtm-qp-act-icon.brtm-success {
      background: var(--accent-light);
      color: var(--accent);
      border-color: rgba(0, 184, 122, .2);
    }

    .brtm-qp-act-icon.brtm-info {
      background: var(--primary-light);
      color: var(--primary);
      border-color: rgba(27, 111, 190, .2);
    }

    .brtm-qp-act-icon.brtm-warn {
      background: #FEF3C7;
      color: #D97706;
      border-color: rgba(245, 158, 11, .2);
    }

    .brtm-qp-act-icon.brtm-muted {
      background: #F1F5F9;
      color: #94A3B8;
      border-color: #E2E8F0;
    }

    .brtm-qp-act-content {
      flex: 1;
      min-width: 0;
      padding-top: 4px;
    }

    .brtm-qp-act-title {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-main);
      line-height: 1.3;
    }

    .brtm-qp-act-meta {
      font-size: 11px;
      color: var(--text-muted);
      margin-top: 2px;
    }

    .brtm-qp-act-desc {
      font-size: 12px;
      color: var(--text-muted);
      margin-top: 5px;
      padding: 5px 8px;
      background: var(--surface);
      border-radius: 5px;
      border-left: 2px solid var(--border);
      line-height: 1.4;
    }

    /*  Attachment tab  */
    .brtm-qp-attachment-list {
      padding: 12px 14px;
      display: flex;
      flex-direction: column;
      gap: 5px;
    }

    .brtm-qp-att-item {
      display: flex;
      align-items: center;
      gap: 10px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 7px;
      padding: 8px 12px;
      transition: border-color .15s, box-shadow .15s;
    }

    .brtm-qp-att-item:hover {
      border-color: var(--primary);
      box-shadow: var(--shadow-sm);
    }

    .brtm-qp-att-icon {
      font-size: 18px;
      flex-shrink: 0;
    }

    .brtm-qp-att-icon.brtm-pdf {
      color: #EF4444;
    }

    .brtm-qp-att-icon.doc {
      color: var(--primary);
    }

    .brtm-qp-att-icon.brtm-xls {
      color: var(--accent);
    }

    .brtm-qp-att-icon.img {
      color: #F59E0B;
    }

    .brtm-qp-att-info {
      flex: 1;
      min-width: 0;
    }

    .brtm-qp-att-name {
      font-size: 12.5px;
      font-weight: 600;
      color: var(--text-main);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brtm-qp-att-size {
      font-size: 11px;
      color: var(--text-light);
      margin-top: 1px;
    }

    .brtm-qp-att-dl {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-muted);
      font-size: 12px;
      cursor: pointer;
      transition: all .15s;
      flex-shrink: 0;
    }

    .brtm-qp-att-dl:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-qp-att-upload {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      border: 1.5px dashed var(--border);
      border-radius: 7px;
      padding: 12px;
      font-size: 12.5px;
      font-weight: 500;
      color: var(--text-muted);
      cursor: pointer;
      transition: border-color .15s, color .15s, background .15s;
      margin-top: 2px;
    }

    .brtm-qp-att-upload:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    /*  Status History tab  */
    .brtm-qp-sh-list {
      padding: 12px 16px;
      display: flex;
      flex-direction: column;
    }

    .brtm-qp-sh-row {
      display: flex;
      gap: 12px;
      position: relative;
      padding-bottom: 20px;
    }

    .brtm-qp-sh-row:last-child {
      padding-bottom: 4px;
    }

    .brtm-qp-sh-row::before {
      content: '';
      position: absolute;
      left: 9px;
      top: 22px;
      bottom: 0;
      width: 1px;
      background: var(--border);
    }

    .brtm-qp-sh-row:last-child::before {
      display: none;
    }

    .brtm-qp-sh-dot {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      border: 2px solid var(--border);
      background: #fff;
      flex-shrink: 0;
      position: relative;
      z-index: 1;
      margin-top: 2px;
    }

    .brtm-qp-sh-dot.brtm-current {
      background: var(--primary);
      border-color: var(--primary);
      box-shadow: 0 0 0 3px rgba(27, 111, 190, .15);
    }

    .brtm-qp-sh-status-tag {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      font-size: 12.5px;
      font-weight: 700;
      color: var(--text-main);
      margin-bottom: 4px;
    }

    .brtm-qp-sh-status-tag.brtm-current {
      color: var(--primary);
    }

    .brtm-qp-sh-date {
      font-size: 11.5px;
      color: var(--text-muted);
    }

    .brtm-qp-sh-by {
      font-size: 11px;
      color: var(--text-light);
      margin-top: 2px;
    }

    /*        LEAD DETAIL PAGE  FULL CSS        */
    /*  Topbar lead-detail aliases  */
/* 
   10  LEAD DETAIL PAGE  Full CSS
    */
    .brtm-tb-logo {
      display: flex;
      align-items: center;
      gap: 10px;
      text-decoration: none;
      flex-shrink: 0;
      margin-right: 8px;
    }

    .brtm-tb-logo img {
      width: 30px;
      height: 30px;
      object-fit: contain;
      flex-shrink: 0;
    }

    .brtm-tb-logo-name {
      font-size: 15px;
      font-weight: 700;
      color: #fff;
      letter-spacing: -.3px;
      white-space: nowrap;
    }

    .brtm-tb-nav {
      display: flex;
      align-items: center;
      gap: 2px;
      flex: 1;
    }

    .brtm-tn-link {
      color: rgba(255, 255, 255, 0.65);
      font-size: 13.5px;
      font-weight: 500;
      padding: 6px 14px;
      border-radius: 6px;
      cursor: pointer;
      transition: all .18s;
      text-decoration: none;
    }

    .brtm-tn-link:hover,
    .brtm-tn-link.brtm-active {
      color: #fff;
      background: rgba(255, 255, 255, 0.1);
    }

    .brtm-tb-right {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-left: auto;
    }

    .brtm-tb-icon {
      width: 34px;
      height: 34px;
      background: rgba(255, 255, 255, 0.1);
      border: none;
      border-radius: 8px;
      color: rgba(255, 255, 255, 0.8);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      cursor: pointer;
      transition: background .18s;
      flex-shrink: 0;
    }

    .brtm-tb-icon:hover {
      background: rgba(255, 255, 255, 0.18);
      color: #fff;
    }

    .brtm-tb-plus {
      background: var(--accent);
    }

    .brtm-tb-plus:hover {
      background: #009963;
    }

    .brtm-tb-notif-badge {
      position: absolute;
      top: -4px;
      right: -4px;
      background: var(--sev-crit);
      color: #fff;
      font-size: 9px;
      font-weight: 700;
      border-radius: 20px;
      padding: 1px 5px;
      min-width: 17px;
      text-align: center;
    }

    .brtm-tb-help {
      background: #2a4a72;
      color: #fff;
      border: none;
      border-radius: 8px;
      font-size: 13px;
      font-weight: 500;
      font-family: var(--brtm-font-ui);
      padding: 6px 14px;
      cursor: pointer;
      transition: background .18s;
      white-space: nowrap;
    }

    .brtm-tb-help:hover {
      background: #1e3a5f;
    }

    .brtm-tb-avatar {
      width: 34px;
      height: 34px;
      background: var(--primary);
      border-radius: 50%;
      border: 2px solid rgba(255, 255, 255, 0.2);
      color: #fff;
      font-size: 13px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      flex-shrink: 0;
    }

    /*  Page Shell  */
    .brtm-page-shell {
      flex: 1;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-height: 0;
    }

    /*  Subheader (breadcrumb + actions)  */
    .brtm-subheader {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 15px 20px 5px;
      border-bottom: 1px solid var(--border);
      background: var(--card-bg);
      flex-shrink: 0;
      gap: 12px;
      flex-wrap: wrap;
      margin-top: 0;
    }

    .brtm-breadcrumb {
      display: flex;
      align-items: center;
      gap: 4px;
      font-size: 12.5px;
      color: var(--text-muted);
      flex-wrap: wrap;
    }

    .brtm-breadcrumb a {
      color: var(--primary);
      text-decoration: none;
      font-weight: 500;
      transition: color .15s;
    }

    .brtm-breadcrumb a:hover {
      color: var(--primary-dark);
      text-decoration: underline;
    }

    .brtm-sep {
      font-size: 10px;
      color: var(--text-light);
    }

    .brtm-bc-current {
      color: var(--text-main);
      font-weight: 600;
    }

    .brtm-subheader-actions {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }

    .brtm-sh-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 32px;
      padding: 0 12px;
      border-radius: 7px;
      font-size: 12.5px;
      font-weight: 600;
      font-family: var(--brtm-font-ui);
      cursor: pointer;
      border: 1px solid var(--border);
      transition: all .15s;
      white-space: nowrap;
    }

    .brtm-sh-btn-convert {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-sh-btn-convert:hover {
      background: var(--primary-dark);
      border-color: var(--primary-dark);
      color: var(--white);
    }

    .brtm-sh-btn-checkin {
      background: var(--accent);
      color: #fff;
      border-color: var(--accent);
    }

    .brtm-sh-btn-checkin:hover {
      background: #009963;
      border-color: #009963;
    }

    .brtm-sh-btn-actions {
      background: var(--card-bg);
      color: var(--text-main);
    }

    .brtm-sh-btn-actions:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    /* Proporsi header detail: judul lebih kecil & sejajar tinggi tombol aksi */
    .brtm-subheader .brtm-breadcrumb-wrap,
    .brtm-subheader .brtm-breadcrumb {
      min-width: 0;
    }

    .brtm-subheader .brtm-page-title {
      font-size: 17px;
      font-weight: 600;
      line-height: 1.4;
      letter-spacing: -0.2px;
    }

    .brtm-subheader .brtm-sh-btn {
      height: 30px;
      padding: 0 11px;
      font-size: 12px;
    }

    .brtm-arrow {
      transition: transform .2s;
    }

    .brtm-sh-btn-actions.brtm-open .brtm-arrow {
      transform: rotate(180deg);
    }

    .brtm-dd-item {
      display: flex;
      align-items: center;
      gap: 8px;
      width: 100%;
      padding: 8px 12px;
      font-size: 12.5px;
      font-family: var(--brtm-font-ui);
      border: none;
      background: none;
      cursor: pointer;
      color: var(--text-1);
      text-align: left;
    }

    .brtm-dd-item:hover {
      background: var(--surface);
    }
    .brtm-dd-item.brtm-danger { color: #DC2626; }
    .brtm-dd-item.brtm-danger:hover { background: #FEF2F2; }
    .brtm-dd-item.disabled { opacity: .5; pointer-events: none; }

    /* 
       MODAL / DIALOG BUTTONS
        */
    .brtm-modal-cancel {
      height: 34px; padding: 0 16px; border-radius: 7px;
      border: 1px solid var(--border); background: var(--surface);
      color: var(--text-2); font-size: 12.5px; font-weight: 600;
      font-family: var(--brtm-font-ui); cursor: pointer;
    }
    .brtm-modal-cancel:hover { border-color: var(--primary); color: var(--primary); }
    .brtm-modal-confirm-danger {
      height: 34px; padding: 0 16px; border-radius: 7px;
      border: none; background: #DC2626; color: #fff;
      font-size: 12.5px; font-weight: 600; font-family: var(--brtm-font-ui);
      cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
    }
    .brtm-modal-confirm-danger:hover { background: #B91C1C; }

    /* Detail page inline buttons (save/cancel/edit in panels) */
    .brtm-panel-btn {
      display: inline-flex; align-items: center; gap: 5px;
      height: 30px; padding: 0 14px; border-radius: 6px;
      font-size: 12.5px; font-weight: 600; font-family: var(--brtm-font-ui);
      cursor: pointer; transition: all .15s;
    }
    .brtm-panel-btn-cancel {
      border: 1px solid var(--border); background: var(--surface); color: var(--text-2);
    }
    .brtm-panel-btn-cancel:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-light); }
    .brtm-panel-btn-save {
      border: none; background: var(--primary); color: #fff;
    }
    .brtm-panel-btn-save:hover { background: var(--primary-dark); }
    .brtm-panel-btn-secondary {
      border: 1px solid var(--border); background: var(--surface); color: var(--text-2);
    }
    .brtm-panel-btn-secondary:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-light); }

    /* Comment reply inline buttons (smaller) */
    .brtm-comment-btn {
      height: 26px; padding: 0 10px; border-radius: 5px;
      font-size: 12px; font-family: var(--brtm-font-ui); cursor: pointer;
    }
    .brtm-comment-btn-cancel {
      background: var(--surface); color: var(--text-2); border: 1px solid var(--border);
    }
    .brtm-comment-btn-send {
      background: var(--primary); color: #fff; border: none; font-weight: 600;
    }

    /* Drawer widths */
    .brtm-col-drawer-w480 { width: 480px; }
    .brtm-col-drawer-w500 { width: 500px; }
    /* Modal title danger variant */
    .brtm-modal-title-danger { color: #EF4444; }

    /*  Layout (sidebar + main)  */
    /*  10a  Layout (Sidebar + Main)  */
    .brtm-layout {
      flex: 1;
      display: flex;
      min-height: 0;
      overflow: hidden;
    }

    /*  Left Sidebar  */
    .brtm-sidebar {
      width: 300px;
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      border-right: 1px solid var(--border);
      background: var(--card-bg);
      overflow: hidden;
      position: relative;
    }

    .brtm-sidebar-resize-handle {
      width: 4px;
      background: transparent;
      cursor: col-resize;
      flex-shrink: 0;
      transition: background .15s;
      position: relative;
      z-index: 10;
    }

    /* Grip agar handle terlihat & jelas bisa ditarik */
    .brtm-sidebar-resize-handle::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 3px;
      height: 34px;
      border-radius: 3px;
      background: var(--border);
      opacity: 0;
      transition: opacity .15s, background .15s;
    }

    .brtm-sidebar-resize-handle:hover,
    .brtm-sidebar-resize-handle.brtm-dragging {
      background: var(--primary-light);
    }

    .brtm-sidebar-resize-handle:hover::before,
    .brtm-sidebar-resize-handle.brtm-dragging::before {
      opacity: 1;
      background: var(--primary);
    }

    /*  User Card  */
    .brtm-user-card {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 16px 16px 12px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
      background: var(--card-bg);
    }

    .brtm-user-avatar-wrap {
      position: relative;
      cursor: pointer;
      flex-shrink: 0;
    }

    .brtm-user-avatar {
      width: 48px;
      height: 48px;
      border-radius: 14px;
      background: var(--primary);
      color: #fff;
      font-size: 20px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .brtm-user-avatar-overlay {
      position: absolute;
      inset: 0;
      border-radius: 14px;
      background: rgba(0, 0, 0, 0.4);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      opacity: 0;
      transition: opacity .15s;
    }

    .brtm-user-avatar-wrap:hover .brtm-user-avatar-overlay {
      opacity: 1;
    }

    .brtm-user-name {
      font-size: 14px;
      font-weight: 700;
      color: var(--text-1);
      line-height: 1.3;
    }

    .brtm-sf-pill {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 2px 9px;
      border-radius: 99px;
      font-size: 11.5px;
      font-weight: 600;
    }

    .brtm-sf-pill.brtm-hot {
      background: #FEE2E2;
      color: #B91C1C;
    }

    .brtm-sf-pill.brtm-warm {
      background: #FEF3C7;
      color: #92400E;
    }

    .brtm-sf-pill.brtm-cold {
      background: #EFF6FF;
      color: #1E40AF;
    }

    .brtm-sf-pill.brtm-new {
      background: #F0FDF4;
      color: #166534;
    }

    /*  Sidebar scroll area  */
    .brtm-sidebar-scroll {
      flex: 1;
      overflow-y: auto;
      min-height: 0;
      scrollbar-width: thin;
      scrollbar-color: rgba(0, 0, 0, 0.12) transparent;
    }

    .brtm-sidebar-scroll::-webkit-scrollbar {
      width: 4px;
    }

    .brtm-sidebar-scroll::-webkit-scrollbar-track {
      background: transparent;
    }

    .brtm-sidebar-scroll::-webkit-scrollbar-thumb {
      background: rgba(0, 0, 0, 0.15);
      border-radius: 99px;
    }

    /*  Accordion Sections  */
    .brtm-acc-section {
      border-bottom: 1px solid var(--border);
    }

    .brtm-acc-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      padding: 11px 14px;
      cursor: pointer;
      background: #EDF1F7;
      border-bottom: 1px solid var(--border);
      transition: background .15s;
      user-select: none;
    }

    .brtm-acc-header:hover {
      background: var(--primary-light);
    }

    .brtm-acc-title {
      font-size: 12px;
      font-weight: 700;
      color: var(--text-1);
    }

    .brtm-acc-arrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 20px;
      height: 20px;
      border-radius: 6px;
      background: #fff;
      border: 1px solid var(--border);
      font-size: 10px;
      color: var(--text-3);
      transition: transform .2s, border-color .15s;
      flex-shrink: 0;
    }

    .brtm-acc-header:hover .brtm-acc-arrow {
      border-color: #B7C5DA;
    }

    .brtm-acc-body {
      display: none;
    }

    .brtm-acc-section.brtm-open .brtm-acc-body {
      display: block;
    }

    .brtm-acc-section.brtm-open .brtm-acc-arrow {
      transform: rotate(180deg);
    }

    .brtm-sec-map-btn {
      width: 22px;
      height: 22px;
      border: 1px solid var(--border);
      border-radius: 5px;
      background: var(--card-bg);
      color: var(--primary);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-sec-map-btn:hover {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    /*  Sidebar Field Rows  */
    .brtm-sf-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 3px 8px;
      padding: 8px 14px;
      border-bottom: 1px solid var(--border);
      transition: background .1s;
      position: relative;
    }

    .brtm-sf-row:hover {
      background: var(--row-hover);
    }

    .brtm-sf-row:hover .brtm-sf-pen {
      opacity: 1;
    }

    .brtm-sf-label {
      flex: 1 0 100%;
      width: auto;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: .02em;
      color: var(--text-3);
      line-height: 1.4;
      word-break: break-word;
    }

    .brtm-sf-readonly {
      font-size: 9.5px;
      color: var(--text-3);
      border: 1px solid var(--border);
      border-radius: 3px;
      padding: 0 4px;
      margin-left: 4px;
      font-weight: 500;
      opacity: 0;
      transition: opacity .12s;
    }

    .brtm-sf-row:hover .brtm-sf-readonly,
    .brtm-nd-field-row:hover .brtm-sf-readonly {
      opacity: 1;
    }

    .brtm-sf-val-wrap {
      flex: 1 1 auto;
      min-width: 0;
    }

    .brtm-sf-display {
      font-size: 12.5px;
      color: var(--text-1);
      font-weight: 500;
      line-height: 1.5;
      word-break: break-word;
      display: block;
    }

    .brtm-sf-display.brtm-empty {
      color: var(--text-3);
      font-style: italic;
    }

    .brtm-sf-display.brtm-truncated .brtm-sf-text {
      overflow: hidden;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
    }

    .brtm-sf-display.brtm-expanded .brtm-sf-text {
      -webkit-line-clamp: unset;
    }

    .brtm-sf-expand-btn {
      background: none;
      border: none;
      padding: 2px 0;
      font-size: 11.5px;
      color: var(--primary);
      cursor: pointer;
      font-family: inherit;
      display: inline-flex;
      align-items: center;
      gap: 3px;
    }

    .brtm-sf-expand-btn:hover {
      text-decoration: underline;
    }

    .brtm-sf-edit-wrap {
      display: none;
      align-items: center;
      gap: 5px;
      flex-wrap: wrap;
    }

    .brtm-sf-row.brtm-editing .brtm-sf-display {
      display: none;
    }

    .brtm-sf-row.brtm-editing .brtm-sf-edit-wrap {
      display: flex;
    }

    /* Floating inline-edit popover for side-field rows (ngambang) */
    .brtm-sf-edit-pop {
      position: absolute;
      top: 2px;
      left: 12px;
      right: 12px;
      z-index: 60;
      min-width: 200px;
      flex: none;
      background: #fff;
      border: 1px solid var(--border);
      border-top: 2px solid var(--primary);
      border-radius: 8px;
      box-shadow: 0 12px 32px rgba(0, 0, 0, .16);
      padding: 8px 10px;
    }

    /* Quick-update floating card (shared default; page CSS may override) */
    .brtm-sf-qu-wrap {
      position: absolute;
      top: 4px;
      left: 12px;
      right: 8px;
      z-index: 100;
      background: #fff;
      border: 1.5px solid #BFDBFE;
      border-top: 2px solid #1B6FBE;
      border-radius: 0 0 8px 8px;
      box-shadow: 0 6px 20px rgba(27,111,190,.18);
      padding: 4px 6px;
    }

    .brtm-sf-row.brtm-editing .brtm-sf-pen {
      display: none;
    }

    .brtm-sf-inline-input,
    .brtm-sf-inline-select {
      font-size: 12.5px;
      font-family: inherit;
      border: 1.5px solid var(--primary) !important;
      border-radius: 6px !important;
      outline: none !important;
      padding: 4px 8px !important;
      background: #fff;
      flex: 1;
      min-width: 0;
    }

    .brtm-sf-inline-textarea {
      font-size: 12.5px;
      font-family: inherit;
      border: 1.5px solid var(--primary) !important;
      border-radius: 6px !important;
      outline: none !important;
      padding: 6px 8px !important;
      background: #fff;
      min-height: 72px;
      resize: vertical;
      flex: 1;
      min-width: 0;
    }

    .brtm-sf-save-btn,
    .brtm-sf-cancel-btn {
      width: 26px;
      height: 26px;
      border-radius: 6px;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 13px;
      cursor: pointer;
      transition: all .12s;
      flex-shrink: 0;
    }

    .brtm-sf-save-btn {
      background: var(--primary);
      color: #fff;
    }

    .brtm-sf-save-btn:hover {
      background: var(--primary-dark);
    }

    .brtm-sf-cancel-btn {
      background: var(--surface);
      color: var(--text-2);
      border: 1px solid var(--border);
    }

    .brtm-sf-cancel-btn:hover {
      background: #FEE2E2;
      color: #EF4444;
    }

    .brtm-sf-pen {
      width: 22px;
      height: 22px;
      flex-shrink: 0;
      border: none;
      background: transparent;
      color: var(--text-3);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      cursor: pointer;
      opacity: 0;
      transition: opacity .15s, color .12s;
      border-radius: 5px;
      margin-top: 1px;
    }

    .brtm-sf-pen:hover {
      color: var(--primary);
      background: var(--primary-light);
      opacity: 1;
    }

    .brtm-qp-root .brtm-sf-pen {
      position: absolute;
      top: 5px;
      right: 8px;
      width: 22px;
      height: 22px;
      border: 1px solid var(--border);
      background: var(--white);
      border-radius: 5px;
      color: var(--text-3);
      font-size: 10px;
      opacity: 0;
      transition: opacity .12s;
    }

    .brtm-qp-root .brtm-sf-row .brtm-sf-pen:hover {
      border: solid 1px var(--primary);
      color: var(--primary);
    }

    .brtm-qp-root .brtm-sf-row:hover .brtm-sf-pen {
      opacity: 1;
    }

    /*  Click-to-call: action icon sejajar value (flex sibling val-wrap), bukan nempel di teks  */
    .brtm-sf-call-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px;
      height: 22px;
      padding: 0;
      flex-shrink: 0;
      margin-top: 1px;
      border: 1px solid var(--border);
      border-radius: 5px;
      background: var(--surface);
      color: var(--primary);
      font-size: 12px;
      line-height: 1;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-sf-call-btn:hover {
      background: var(--primary);
      border-color: var(--primary);
      color: #fff;
    }

    /*  Kartu "Last Activity" di sidebar  */
    .brtm-sf-activity-card {
      display: flex;
      flex-direction: column;
      gap: 3px;
    }

    .brtm-sf-activity-title {
      font-size: 12.5px;
      font-weight: 600;
      color: var(--primary);
      line-height: 1.4;
      text-decoration: none;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .brtm-sf-activity-title:hover {
      color: var(--primary-dark);
      text-decoration: underline;
    }

    .brtm-sf-activity-meta {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 4px;
      margin: 0;
      font-size: 11px;
      color: var(--text-3);
      line-height: 1.4;
    }

    .brtm-sf-activity-meta a {
      color: var(--text-2);
      font-weight: 500;
    }

    .brtm-sf-activity-badge {
      display: inline-flex;
      align-items: center;
      height: 16px;
      padding: 0 5px;
      border-radius: 4px;
      background: var(--primary-light);
      color: var(--primary);
      font-size: 9.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .3px;
    }

    /*  Re-skin sub-elemen legacy di sidebar detail (Leads/Contacts) yang belum
        ikut .brtm-sf-* — dirender langsung oleh detail_new.vue dengan kelas
        Bootstrap lama (btn-success rounded-circle, border m-0 p-50, badge-pill).
        Discope ke .brtm-sidebar-scroll supaya tak mempengaruhi halaman lain.  */
    .brtm-sidebar-scroll .brtm-sf-display .btn.rounded-circle.btn-success {
      width: 20px;
      height: 20px;
      min-width: 20px;
      padding: 0 !important;
      margin-left: 6px;
      vertical-align: -4px;
      border-radius: 5px !important;
      border: 1px solid var(--border) !important;
      background: var(--surface) !important;
      color: var(--primary) !important;
      box-shadow: none !important;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      line-height: 1;
    }

    .brtm-sidebar-scroll .brtm-sf-display .btn.rounded-circle.btn-success:hover {
      background: var(--primary) !important;
      border-color: var(--primary) !important;
      color: #fff !important;
    }

    .brtm-sidebar-scroll .brtm-sf-display .btn.rounded-circle.btn-success .bx {
      font-size: 11px;
    }

    .brtm-sidebar-scroll .brtm-sf-display .border.m-0.p-50 {
      border: 1px solid var(--border) !important;
      border-radius: 7px;
      padding: 7px 9px !important;
      background: var(--surface);
    }

    .brtm-sidebar-scroll .brtm-sf-display .border.m-0.p-50 .truncate-box {
      font-size: 12.5px;
      font-weight: 600;
      color: var(--primary);
      line-height: 1.4;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .brtm-sidebar-scroll .brtm-sf-display .border.m-0.p-50 p {
      font-size: 11px !important;
      color: var(--text-3);
      margin: 3px 0 0 !important;
      line-height: 1.4;
    }

    .brtm-sidebar-scroll .brtm-sf-display .badge.badge-pill.badge-light-secondary {
      border-radius: 4px !important;
      background: var(--primary-light) !important;
      color: var(--primary) !important;
      font-size: 9.5px !important;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .3px;
      padding: 2px 5px !important;
    }

    /*  Tags Section  */
    .brtm-tags-section {
      padding: 10px 14px;
      border-bottom: 1px solid var(--border);
    }

    .brtm-tags-section-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 8px;
    }

    .brtm-tags-section-title {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .4px;
      color: var(--text-2);
    }

    .brtm-tag-add-btn {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      height: 24px;
      padding: 0 10px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 11.5px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-tag-add-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    /* Deal/org/contact mini-rows (sidebar) — AI Studio/deals.html + projects.html */
    .brtm-dc-row { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 8px; }
    .brtm-dc-row:hover { background: var(--surface); }
    .brtm-dc-avatar { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 13px; font-weight: 600; flex-shrink: 0; }
    .brtm-dc-info { flex: 1; min-width: 0; }
    .brtm-dc-name { font-size: 12.5px; font-weight: 600; color: var(--text-1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .brtm-dc-meta { font-size: 11px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .brtm-dc-btn { width: 28px; height: 28px; border: 1px solid var(--border); background: #fff; border-radius: 7px; display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--primary); cursor: pointer; flex-shrink: 0; }
    .brtm-dc-btn:hover { background: var(--brand-soft, #E8F1FB); border-color: var(--primary); }
    .brtm-dc-primary-badge { display: inline-flex; align-items: center; gap: 3px; font-size: 9.5px; font-weight: 700; padding: 1px 7px; border-radius: 5px; background: rgba(217,119,6,.14); color: #B45309; margin-left: 4px; vertical-align: middle; }

    /* Footer "add" action utk section accordion (Kontak Terkait, Sub-Organisasi) — dipindah dari
       header biar gak nyampur sama area klik toggle collapse (feedback UX org-detail) */
    .brtm-sec-footer { padding: 9px 0 0; margin-top: 4px; border-top: 1px dashed var(--border); }
    .brtm-sec-footer-btn { display: flex; align-items: center; justify-content: center; gap: 5px; width: 100%; background: rgba(26,131,199,.1); border: 1px solid rgba(26,131,199,.3); border-radius: 6px; padding: 7px 12px; font-size: 12px; font-weight: 700; color: var(--primary); cursor: pointer; transition: all .12s; font-family: inherit; }
    .brtm-sec-footer-btn:hover { background: var(--primary); border-color: var(--primary); color: #fff; }

    .brtm-tags-display {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      margin-bottom: 6px;
    }

    .brtm-tag-chip {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 3px 8px;
      border-radius: 99px;
      background: var(--primary-light);
      color: var(--primary);
      font-size: 11.5px;
      font-weight: 600;
      border: 1px solid rgba(27, 111, 190, .2);
    }

    .brtm-tag-chip-x {
      width: 14px;
      height: 14px;
      border-radius: 50%;
      background: var(--primary);
      color: #fff;
      border: none;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 9px;
      line-height: 1;
      transition: background .12s;
    }

    .brtm-tag-chip-x:hover {
      background: var(--primary-dark);
    }

    .brtm-tag-input-row {
      display: none;
      align-items: center;
      gap: 5px;
      margin-top: 6px;
    }

    .brtm-tag-input-row.brtm-visible {
      display: flex;
    }

    .brtm-tag-input-field {
      font-size: 12.5px;
      font-family: inherit;
      flex: 1;
    }

    /*  Attachments Section  */
    .brtm-att-section {
      padding: 10px 14px;
      border-bottom: 1px solid var(--border);
    }

    .brtm-att-section-header {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
    }

    .brtm-att-section-title {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .4px;
      color: var(--text-2);
      flex: 1;
    }

    .brtm-att-upload-btn {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      height: 24px;
      padding: 0 10px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 11.5px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-att-upload-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-att-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 7px 8px;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: var(--card-bg);
      margin-bottom: 7px;
      transition: border-color .15s, box-shadow .15s;
      position: relative;
    }

    .brtm-att-item:last-child {
      margin-bottom: 0;
    }

    .brtm-att-item:hover {
      border-color: var(--primary);
      box-shadow: var(--shadow-sm);
    }

    .brtm-att-thumb {
      width: 52px;
      height: 44px;
      border-radius: 6px;
      overflow: hidden;
      background: var(--surface);
      flex-shrink: 0;
      position: relative;
      border: 1px solid var(--border);
    }

    .brtm-att-thumb-overlay {
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0.45);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-size: 15px;
      opacity: 0;
      transition: opacity .15s;
      cursor: pointer;
    }

    .brtm-att-item:hover .brtm-att-thumb-overlay {
      opacity: 1;
    }

    .brtm-att-info {
      flex: 1;
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .brtm-att-badge {
      display: inline-block;
      padding: 1px 7px;
      border-radius: 99px;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .3px;
      background: var(--primary-light);
      color: var(--primary);
      text-transform: capitalize;
      align-self: flex-start;
    }

    .brtm-att-filename {
      font-size: 12px;
      font-weight: 600;
      color: var(--primary);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      text-decoration: none;
      display: block;
    }

    .brtm-att-filename:hover {
      text-decoration: underline;
    }

    .brtm-att-meta {
      font-size: 10.5px;
      color: var(--text-3);
    }

    .brtm-att-more {
      width: 26px;
      height: 26px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-3);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      cursor: pointer;
      transition: all .12s;
      flex-shrink: 0;
    }

    .brtm-att-more:hover {
      background: var(--surface);
      color: var(--text-1);
    }

    .brtm-att-menu {
      display: none;
      position: absolute;
      right: 6px;
      top: calc(100% - 4px);
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 8px;
      box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
      min-width: 140px;
      overflow: hidden;
      z-index: 200;
    }

    .brtm-att-menu.brtm-show {
      display: block;
    }

    .brtm-att-menu-item {
      display: flex;
      align-items: center;
      gap: 8px;
      width: 100%;
      padding: 8px 12px;
      font-size: 12.5px;
      font-weight: 500;
      color: var(--text-1);
      background: none;
      border: none;
      font-family: inherit;
      cursor: pointer;
      transition: background .12s;
    }

    .brtm-att-menu-item:hover {
      background: var(--surface);
    }

    .brtm-att-menu-item.brtm-danger {
      color: #EF4444;
    }

    .brtm-att-menu-item.brtm-danger:hover {
      background: #FEF2F2;
    }

    .brtm-danger {
      color: #EF4444;
    }

    /*  Attachment list (notes-detail style, shared)  */
    .brtm-nd-att-item {
      display: flex; align-items: center; gap: 8px;
      background: #fff; border: 1px solid var(--border);
      border-radius: 7px; padding: 8px 10px; margin: 0 0 6px;
      transition: border-color .15s;
    }
    .brtm-nd-att-item:hover { border-color: var(--primary); }
    .brtm-nd-att-icon { font-size: 17px; flex-shrink: 0; }
    .brtm-nd-att-info { flex: 1; min-width: 0; }
    .brtm-nd-att-name { font-size: 12px; font-weight: 600; color: var(--primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .brtm-nd-att-meta { font-size: 10.5px; color: var(--text-3); }
    .brtm-nd-att-dl {
      width: 26px; height: 26px; border-radius: 5px;
      border: 1px solid var(--border); background: var(--surface);
      color: var(--text-muted); font-size: 11px; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: all .15s; flex-shrink: 0;
    }
    .brtm-nd-att-dl:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-light); }
    .brtm-nd-att-dl.brtm-danger:hover { border-color: #EF4444; color: #EF4444; background: #FEF2F2; }

    /* ── Detail-page notification notices ──
       Inline status banners shown above the detail layout (e.g. "needs
       approval", "submitted for approval", "record converted / locked").
       Layout: leading status icon, flexible message, trailing actions
       (a view-detail link and, for approvals, approve/reject buttons). */
    .brtm-notice {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 11px 14px;
      margin: 12px;
      border-radius: 8px;
      border: 1px solid transparent;
      font-size: 13px;
      font-weight: 500;
      line-height: 1.4;
    }
    .brtm-notice-icon { font-size: 17px; flex-shrink: 0; }
    .brtm-notice-text { flex: 1; min-width: 0; }              /* message takes remaining width */
    .brtm-notice-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
    .brtm-notice-link { font-weight: 600; text-decoration: none; white-space: nowrap; }
    .brtm-notice-link:hover { text-decoration: underline; }

    /* Info variant — pending action required (e.g. needs approval) */
    .brtm-notice-info { background: #EFF6FF; border-color: #BFDBFE; color: #1E40AF; }
    .brtm-notice-info .brtm-notice-icon { color: #2563EB; }
    .brtm-notice-info .brtm-notice-link { color: #1D4ED8; }

    /* Warning variant — awaiting / in-progress state (e.g. submitted) */
    .brtm-notice-warning { background: #FFFBEB; border-color: #FDE68A; color: #92400E; }
    .brtm-notice-warning .brtm-notice-icon { color: #D97706; }
    .brtm-notice-warning .brtm-notice-link { color: #B45309; }

    /* Locked variant — neutral, read-only state (e.g. already converted) */
    .brtm-notice-locked { background: #F8FAFC; border-color: #E2E8F0; color: #475569; }
    .brtm-notice-locked .brtm-notice-icon { color: #94A3B8; }

    /* Circular approve / reject action buttons inside an approval notice */
    .brtm-notice-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 30px;
      height: 30px;
      border-radius: 50%;
      border: none;
      color: #fff;
      font-size: 14px;
      cursor: pointer;
      transition: background .15s, opacity .15s;
    }
    .brtm-notice-btn:disabled { opacity: .5; cursor: not-allowed; }   /* disabled while a request is in flight */
    .brtm-notice-btn-approve { background: #16A34A; }
    .brtm-notice-btn-approve:hover:not(:disabled) { background: #15803D; }
    .brtm-notice-btn-reject { background: #DC2626; }
    .brtm-notice-btn-reject:hover:not(:disabled) { background: #B91C1C; }

    /*  Attachment preview modal (shared)  */
    .brtm-att-preview-overlay { position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px; }
    .brtm-att-preview-modal { background:#fff;border-radius:12px;box-shadow:0 8px 48px rgba(27,111,190,.18);width:100%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden; }
    .brtm-att-preview-head { display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);gap:12px; }
    .brtm-att-preview-head-title { font-size:13px;font-weight:700;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0; }
    .brtm-att-preview-close { width:30px;height:30px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s; }
    .brtm-att-preview-close:hover { border-color:#EF4444;color:#EF4444;background:#FEF2F2; }
    .brtm-att-preview-body { flex:1;overflow:auto;padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:14px; }

    /*  Sidebar Pagination  */
    .brtm-sidebar-pagination {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 4px;
      padding: 10px 14px;
      border-top: 1px solid var(--border);
      flex-shrink: 0;
      background: var(--card-bg);
    }

    .brtm-pg-btn {
      height: 28px;
      padding: 0 10px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 12px;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-pg-btn:hover,
    .brtm-pg-btn.brtm-active {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-pg-icon {
      width: 28px;
      height: 28px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 11px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .12s;
    }

    .brtm-pg-icon:hover {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    /*  Main Content Area  */
    /*  10b  Main Content & Tabs  */
    .brtm-main-content {
      flex: 1;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-width: 0;
      background: var(--surface);
    }

    /*  Tabs Bar  */
    .brtm-tabs-bar {
      display: flex;
      align-items: center;
      gap: 0;
      background: var(--card-bg);
      border-bottom: 1px solid var(--border);
      padding: 0 20px;
      flex-shrink: 0;
      overflow-x: auto;
      scrollbar-width: none;
    }

    .brtm-tabs-bar::-webkit-scrollbar {
      display: none;
    }

    .brtm-tab-btn {
      padding: 10px 14px;
      font-size: 13px;
      font-weight: 600;
      font-family: inherit;
      color: var(--text-muted);
      background: none;
      border: none;
      border-bottom: 2px solid transparent;
      margin-bottom: -1px;
      cursor: pointer;
      transition: color .15s, border-color .15s;
      white-space: nowrap;
    }

    .brtm-tab-btn:hover {
      color: var(--text-main);
    }

    .brtm-tab-btn.brtm-active {
      color: var(--primary);
      border-bottom-color: var(--primary);
    }

    .brtm-tab-panel {
      display: flex;
      flex: 1;
      flex-direction: column;
      overflow-y: auto;
      min-height: 0;
    }

    .brtm-tab-panel.brtm-active {
      display: flex;
    }

    /*  Activity Toolbar  */
    .brtm-act-toolbar {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 10px 20px;
      background: #FFF;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
      position: sticky;
      top: 0;
      z-index: 2;
    }

    .brtm-act-add-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 32px;
      padding: 0 14px;
      background: var(--primary);
      color: #fff;
      border: none;
      font-size: 12.5px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: background .15s;
      white-space: nowrap;
    }

    .brtm-act-add-btn:hover {
      background: var(--primary-dark);
    }

    .brtm-act-add-caret {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 32px;
      width: 28px;
      background: var(--primary);
      color: #fff;
      border: none;
      border-radius: 0 7px 7px 0;
      font-size: 11px;
      cursor: pointer;
      transition: background .15s;
      flex-shrink: 0;
    }

    .brtm-act-add-caret:hover {
      background: var(--primary-dark);
    }

    /* Solo variant: single button that opens the type dropdown directly
       (no separate "quick-create default type" click zone). Used where the
       split-button pattern reads as two glued-together buttons — see Leads
       activity toolbar. */
    .brtm-act-add-btn-solo {
      border-radius: 7px;
      padding: 0 12px 0 14px;
    }

    .brtm-act-add-chevron {
      font-size: 10px;
      margin-left: 2px;
      opacity: .85;
    }

    .brtm-act-generic-dropdown {
      position: absolute;
      top: calc(100% + 4px);
      left: 0;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 9px;
      box-shadow: 0 6px 22px rgba(0, 0, 0, .12);
      min-width: 160px;
      overflow: hidden;
      z-index: 300;
    }

    .brtm-act-dd-item {
      display: flex;
      align-items: center;
      gap: 8px;
      width: 100%;
      padding: 8px 12px;
      font-size: 13px;
      font-weight: 500;
      color: var(--text-1);
      background: none;
      border: none;
      font-family: inherit;
      cursor: pointer;
      transition: background .12s;
    }

    .brtm-act-dd-item:hover,
    .brtm-act-dd-item.brtm-active {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-act-dd-sep {
      height: 1px;
      background: var(--border);
      margin: 3px 0;
    }

    .brtm-act-filter-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 30px;
      padding: 0 10px;
      border-radius: 7px;
      border: 1px solid var(--border);
      background: var(--card-bg);
      color: var(--text-1);
      font-size: 12.5px;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
      white-space: nowrap;
    }

    .brtm-act-filter-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-act-filter-active-badge {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--primary);
      display: inline-block;
      flex-shrink: 0;
    }

    .brtm-act-spacer {
      flex: 1;
    }

    .brtm-act-view-pill {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 28px;
      padding: 0 10px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 12px;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
      white-space: nowrap;
    }

    .brtm-act-view-pill:hover,
    .brtm-act-view-pill.brtm-active {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-act-export-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 28px;
      padding: 0 10px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 12px;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
      white-space: nowrap;
    }

    .brtm-act-export-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-act-search-icon {
      width: 30px;
      height: 30px;
      border-radius: 7px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 14px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .12s;
      flex-shrink: 0;
    }

    .brtm-act-search-icon:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    /*  Activity Content  */
    .brtm-act-content {
      padding: 20px 24px;
      overflow-y: auto;
      flex: 1;
      min-height: 0;
    }

    .brtm-act-heading {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-1);
      margin-bottom: 14px;
    }

    .brtm-act-timeline-mode {
      padding: 20px 24px;
      overflow-y: auto;
      flex: 1;
    }

    .brtm-act-timeline-day {
      margin-bottom: 20px;
    }

    .brtm-act-timeline-day-label {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-2);
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 10px;
      padding-bottom: 6px;
      /* border-bottom: 1px solid var(--border); */
    }

    .brtm-act-timeline-group {
      display: flex;
      flex-direction: column;
      gap: 8px;
      padding: 0 16px;
    }

    /*  Empty States  */
    .brtm-act-empty-state {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 40px 24px;
      gap: 8px;
      text-align: center;
    }

    .brtm-act-empty-icon {
      width: 56px;
      height: 56px;
      border-radius: 50%;
      background: var(--primary-light, #E7F1FB);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
      color: var(--primary);
      margin-bottom: 2px;
    }

    .brtm-act-empty-title {
      font-size: 14px;
      font-weight: 700;
      color: var(--text-1);
    }

    .brtm-act-empty-sub {
      font-size: 12.5px;
      color: var(--text-2);
      max-width: 300px;
      line-height: 1.6;
    }

    .brtm-act-empty-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 32px;
      padding: 0 16px;
      border-radius: 7px;
      background: var(--primary);
      color: #fff;
      border: none;
      font-size: 12.5px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: background .12s;
      margin-top: 6px;
    }

    .brtm-act-empty-btn:hover {
      background: var(--primary-dark);
    }

    /* Compact variant: used for the per-status buckets (Disematkan/Direncanakan/
       Dilakukan/Tidak Dilakukan) so several stacked empty sections don't each
       read as a full-height hero block. */
    .brtm-act-empty-state.brtm-compact {
      flex-direction: row;
      justify-content: flex-start;
      padding: 14px 4px;
      gap: 10px;
      text-align: left;
    }

    .brtm-act-empty-state.brtm-compact .brtm-act-empty-icon {
      width: 34px;
      height: 34px;
      font-size: 15px;
      margin-bottom: 0;
      flex-shrink: 0;
    }

    .brtm-act-empty-state.brtm-compact .brtm-act-empty-title {
      font-size: 12.5px;
      font-weight: 600;
      color: var(--text-2);
    }

    /*  Activity Cards  */
    /*  10c  Activity Cards  */
    .brtm-activity-card {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 10px;
      margin-bottom: 10px;
      box-shadow: var(--shadow-sm);
      display: flex;
      transition: box-shadow .15s, border-color .15s;
      position: relative;
    }

    .brtm-activity-card:hover {
      box-shadow: 0 3px 14px rgba(27, 111, 190, .1);
      border-color: #c6d8ef;
    }

    .brtm-activity-card.brtm-pinned {
      border-color: var(--border);
      box-shadow: var(--shadow-sm);
    }

    .brtm-act-type-indicator {
      width: 5px;
      flex-shrink: 0;
      border-radius: 10px 0 0 10px;
      font-size: 0;
    }

    .brtm-act-type-indicator.brtm-notes {
      background: var(--primary);
    }

    .brtm-act-type-indicator.brtm-email {
      background: #EA580C;
    }

    .brtm-act-type-indicator.brtm-call {
      background: var(--accent);
    }

    .brtm-act-type-indicator.brtm-meeting {
      background: #7C3AED;
    }

    .brtm-act-type-indicator.brtm-task {
      background: #D97706;
    }

    .brtm-act-type-indicator.brtm-deal {
      background: #059669;
    }

    .brtm-act-type-indicator.brtm-project {
      background: #0284C7;
    }

    .brtm-act-type-indicator.brtm-ticket {
      background: #9333EA;
    }

    .brtm-act-type-indicator.brtm-survey {
      background: #EA580C;
    }

    .brtm-act-card-body {
      flex: 1;
      padding: 12px 20px;
      min-width: 0;
    }

    .brtm-act-card-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 6px;
    }

    .brtm-act-card-title,
    .brtm-act-card-title a,
    .brtm-act-card-title span.text-dark {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-1);
      line-height: 1.3;
    }

    .brtm-act-card-header .brtm-flex-c-g7w {
      flex-wrap: nowrap;
      min-width: 0;
    }

    .brtm-act-card-header .brtm-flex-c-g7w .brtm-act-card-title {
      flex: 1 1 auto;
      min-width: 0;
      overflow: hidden;
    }

    .brtm-act-card-header .brtm-flex-c-g7w .brtm-act-card-title a,
    .brtm-act-card-header .brtm-flex-c-g7w .brtm-act-card-title span.text-dark {
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .brtm-act-card-title-inline {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-1);
      line-height: 1.3;
      flex: 1;
      min-width: 120px;
    }

    .brtm-act-title-link {
      color: var(--text-1);
      text-decoration: none;
      font-weight: 700;
    }

    .brtm-act-title-link:hover {
      color: var(--primary);
      text-decoration: underline;
    }

    .brtm-act-detail-btn {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      height: 26px;
      padding: 0 10px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 11.5px;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
      text-decoration: none;
      white-space: nowrap;
    }

    .brtm-act-detail-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
      text-decoration: none;
    }

    /* ── Section padding wrappers ── */
    .brtm-act-section {
      padding: 12px 16px 0;
    }
    .pinned-tags {
      padding: 12px 16px 0;
    }
    .brtm-act-divider {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 11.5px;
      font-weight: 700;
      color: var(--text-3);
      text-transform: uppercase;
      letter-spacing: .5px;
      margin: 12px 0 8px;
    }
    .brtm-act-divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: var(--border);
    }

    .brtm-act-section-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 10px 16px 8px;
    }
    .brtm-act-section-header-title {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-1);
    }
    .brtm-act-section-count {
      font-size: 12px;
      color: var(--text-3);
      font-weight: 500;
    }

    .brtm-act-export-btn-active {
      background: var(--primary-light) !important;
      color: var(--primary) !important;
      border-color: rgba(27,111,190,.3) !important;
    }

    .brtm-act-type-chip {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      padding: 2px 7px;
      border-radius: 5px;
      font-size: 10.5px;
      font-weight: 700;
      white-space: nowrap;
      flex-shrink: 0;
      border: 1px solid transparent;
    }

    .brtm-act-type-chip.brtm-notes {
      background: #EFF6FF;
      color: #1B6FBE;
      border-color: rgba(27, 111, 190, .2);
    }

    .brtm-act-type-chip.brtm-email {
      background: #FFF7ED;
      color: #C2410C;
      border-color: rgba(234, 88, 12, .2);
    }

    .brtm-act-type-chip.brtm-call {
      background: #ECFDF5;
      color: #065F46;
      border-color: rgba(5, 150, 105, .2);
    }

    .brtm-act-type-chip.brtm-meeting {
      background: #F5F3FF;
      color: #6D28D9;
      border-color: rgba(124, 58, 237, .2);
    }

    .brtm-act-type-chip.brtm-task {
      background: #FFFBEB;
      color: #B45309;
      border-color: rgba(217, 119, 6, .2);
    }

    .brtm-act-pin-badge {
      display: none;
      align-items: center;
      gap: 3px;
      padding: 2px 7px;
      border-radius: 5px;
      font-size: 10px;
      font-weight: 700;
      background: #FFFBEB;
      color: #B45309;
      border: 1px solid rgba(217, 119, 6, .25);
      white-space: nowrap;
      flex-shrink: 0;
    }

    .brtm-activity-card.brtm-pinned .brtm-act-pin-badge {
      display: inline-flex;
    }

    .brtm-act-status-badge {
      display: inline-flex;
      align-items: center;
      padding: 2px 8px;
      border-radius: 5px;
      font-size: 10.5px;
      font-weight: 700;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .brtm-act-status-badge.brtm-planned {
      background: #EFF6FF;
      color: #1D4ED8;
    }

    .brtm-act-status-badge.brtm-held {
      background: #ECFDF5;
      color: #065F46;
    }

    .brtm-act-status-badge.brtm-not-held {
      background: #FEF2F2;
      color: #B91C1C;
    }

    .brtm-act-card-actions {
      display: flex;
      align-items: center;
      gap: 2px;
      flex-shrink: 0;
    }

    .brtm-act-card-btn {
      /* Square by construction: with only a height set the box collapsed to the
         glyph's advance width (13x28), so the white pill shown on an open card
         hugged the icon horizontally while staying tall. */
      width: 28px;
      min-width: 28px;
      flex: none;
      line-height: 1;
      height: 28px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-3);
      font-size: 13px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-act-card-btn:hover {
      background: var(--surface);
      color: var(--text-1);
    }

    .brtm-act-card-menu {
      display: none;
      position: absolute;
      top: calc(100% + 4px);
      right: 0;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 9px;
      box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
      min-width: 160px;
      overflow: hidden;
      z-index: 200;
    }

    .brtm-act-card-menu.brtm-show {
      display: block;
    }

    .brtm-act-menu-item {
      display: flex;
      align-items: center;
      gap: 8px;
      width: 100%;
      padding: 8px 12px;
      font-size: 12.5px;
      font-weight: 500;
      color: var(--text-1);
      background: none;
      border: none;
      font-family: inherit;
      cursor: pointer;
      transition: background .12s;
    }

    .brtm-act-menu-item:hover {
      background: var(--surface);
    }

    .brtm-act-menu-item.brtm-danger {
      color: #EF4444;
    }

    .brtm-act-menu-item.brtm-danger:hover {
      background: #FEF2F2;
    }

    .brtm-act-card-meta {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: nowrap;
      overflow: hidden;
      font-size: 11.5px;
      color: var(--text-2);
      margin-bottom: 8px;
    }

    .brtm-act-card-meta > span:not(:last-child) {
      flex-shrink: 0;
    }

    .brtm-act-card-meta > span:last-child {
      min-width: 0;
      flex-shrink: 1;
      display: inline-block;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
      vertical-align: middle;
    }

    .brtm-act-meta-label {
      font-weight: 600;
      color: var(--text-3);
      margin-right: 5px;
    }

    /* Elemen pemisah "," antar item badge "Berhubungan Dengan" multi-kontak —
       disembunyikan di item TERAKHIR biar tidak nyisa koma nyangkut di belakang. */
    .brtm-act-related-item:last-child .brtm-act-related-sep {
      display: none;
    }

    .brtm-act-meta-badge {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      padding: 1px 8px;
      border-radius: 5px;
      background: var(--surface);
      color: var(--text-1);
      font-size: 11px;
      font-weight: 600;
      border: 1px solid var(--border);
    }

    /* Batasi lebar "Pemilik" (nama owner) biar eclips kalau kepanjangan.
       Diarahkan ke .text-primary (bukan .brtm-act-meta-badge langsung) karena badge
       yang sama dipakai wrapper com-quick-update-timeline (dropdown inline-edit owner)
       yang butuh overflow visible & lebar bebas saat mode edit aktif. */
    .brtm-act-meta-badge .text-primary {
      display: inline-block;
      max-width: 140px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      vertical-align: bottom;
    }

    .brtm-act-meta-badge.brtm-person {
      display: inline-block;
      max-width: 180px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      vertical-align: middle;
      background: var(--primary-light);
      color: var(--primary);
      border-color: rgba(27, 111, 190, .2);
    }

    .brtm-act-meta-badge.brtm-person i {
      margin-right: 3px;
    }

    /* Deal line items (produk + total nilai deal) — pengganti badge "Detail Produk"
       + meta "Jumlah" di kartu aktivitas Deals, biar produk & nilainya langsung
       kelihatan tanpa klik. */
    .brtm-act-deal-lineitems {
      border: 1px solid var(--border);
      border-radius: 8px;
      overflow: hidden;
      margin-bottom: 8px;
    }

    .brtm-act-deal-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 7px 10px;
      font-size: 12px;
      color: inherit;
      cursor: pointer;
      transition: background .12s;
    }

    .brtm-act-deal-item:hover {
      background: var(--surface);
    }

    .brtm-act-deal-item + .brtm-act-deal-item {
      border-top: 1px dashed var(--border);
    }

    .brtm-act-deal-item-icon {
      width: 22px;
      height: 22px;
      border-radius: 6px;
      background: #ECFDF5;
      color: #059669;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      flex-shrink: 0;
    }

    .brtm-act-deal-item-name {
      flex: 1;
      min-width: 0;
      color: var(--text-1);
      font-weight: 600;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .brtm-act-deal-item-qty {
      color: var(--text-3);
      font-size: 11px;
      flex-shrink: 0;
    }

    .brtm-act-deal-item-price {
      color: var(--text-2);
      font-weight: 600;
      flex-shrink: 0;
      font-variant-numeric: tabular-nums;
    }

    .brtm-act-deal-total {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 8px 10px;
      background: var(--surface);
      border-top: 1px solid var(--border);
    }

    .brtm-act-deal-total-label {
      font-size: 11px;
      font-weight: 700;
      color: var(--text-2);
      text-transform: uppercase;
      letter-spacing: .3px;
    }

    .brtm-act-deal-total-value {
      font-size: 15px;
      font-weight: 800;
      color: #059669;
      font-variant-numeric: tabular-nums;
    }

    .brtm-act-card-note {
      font-size: 12.5px;
      color: var(--text-1);
      line-height: 1.6;
      overflow: hidden;
      display: -webkit-box;
      -webkit-line-clamp: 1;
      -webkit-box-orient: vertical;
      margin-bottom: 6px;
    }

    .brtm-act-card-note.brtm-expanded {
      -webkit-line-clamp: unset;
    }

    .brtm-act-note-toggle {
      background: none;
      border: none;
      padding: 0;
      font-size: 11.5px;
      color: var(--primary);
      cursor: pointer;
      font-family: inherit;
      display: inline-flex;
      align-items: center;
      gap: 3px;
      margin-bottom: 8px;
    }

    .brtm-act-note-toggle:hover {
      text-decoration: underline;
    }

    .brtm-act-card-footer {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-top: 10px;
      padding-top: 8px;
      border-top: 1px solid var(--border);
    }

    /* Chat-channel activity body (WhatsApp / Telegram / etc.) — status + quick actions */
    .brtm-act-card-chat {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 6px;
      margin-bottom: 8px;
    }

    .brtm-act-preview-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 26px;
      padding: 0 10px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 11.5px;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-act-preview-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-act-like-btn,
    .brtm-act-reply-btn {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      height: 26px;
      padding: 0 8px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-3);
      font-size: 13px;
      cursor: pointer;
      transition: all .12s;
      font-family: inherit;
    }

    .brtm-act-like-btn:hover,
    .brtm-act-reply-btn:hover {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-act-like-btn.brtm-liked {
      color: #EF4444;
    }

    .brtm-act-cmt-count {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 16px;
      height: 16px;
      padding: 0 4px;
      border-radius: 99px;
      background: var(--primary);
      color: #fff;
      font-size: 9px;
      font-weight: 700;
      margin-left: 2px;
    }

    /*  Activity Comments Section  */
    .brtm-act-comments-section {
      border-top: 1px solid var(--border);
      margin-top: 8px;
      padding-top: 10px;
    }

    .brtm-act-comments-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-bottom: 10px;
    }

    .brtm-act-cmt-more-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: 11.5px;
      font-weight: 600;
      color: var(--primary);
      background: none;
      border: none;
      cursor: pointer;
      padding: 2px 0 8px;
      font-family: inherit;
      transition: opacity .12s;
    }

    .brtm-act-cmt-more-btn:hover {
      opacity: .75;
    }

    .brtm-act-comment-form {}

    .brtm-cmt-avatar {
      width: 30px;
      height: 30px;
      border-radius: 50%;
      color: #fff;
      font-size: 11px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-cmt-avatar.brtm-sm {
      width: 22px;
      height: 22px;
      font-size: 9px;
    }

    .brtm-act-cmt-box {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .brtm-act-reply-input {
      font-size: 12.5px;
      font-family: inherit;
      resize: none;
      min-height: 48px;
      border-radius: 7px !important;
      border: 1.5px solid var(--border) !important;
      outline: none !important;
      transition: border-color .15s;
    }

    .brtm-act-reply-input:focus {
      border-color: var(--primary) !important;
    }

    .brtm-act-cmt-bottom-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 6px;
      flex-wrap: wrap;
    }

    .brtm-notify-btn {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      height: 26px;
      padding: 0 8px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-2);
      font-size: 11.5px;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-notify-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-notify-dropdown {
      display: none;
      position: absolute;
      top: calc(100% + 4px);
      left: 0;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 9px;
      box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
      z-index: 400;
      width: 230px;
      overflow: hidden;
    }

    .brtm-notify-dropdown.brtm-show {
      display: block;
    }

    .brtm-notify-tabs {
      display: flex;
      border-bottom: 1px solid var(--border);
    }

    .brtm-notify-tab {
      flex: 1;
      height: 32px;
      border: none;
      background: transparent;
      font-size: 12px;
      font-family: inherit;
      font-weight: 500;
      color: var(--text-3);
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-notify-tab:hover {
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-notify-tab.brtm-active {
      color: var(--primary);
      font-weight: 600;
      border-bottom: 2px solid var(--primary);
      background: transparent;
    }

    .brtm-notify-tab-panel {}

    .brtm-notify-search-wrap {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 8px 10px;
      border-bottom: 1px solid var(--border);
    }

    .brtm-notify-search-wrap .bi-search {
      font-size: 12px;
      color: var(--text-3);
      flex-shrink: 0;
    }

    .brtm-notify-search-input {
      font-size: 12.5px;
      font-family: inherit;
      border: none !important;
      outline: none !important;
      padding: 0 !important;
      background: transparent;
    }

    .brtm-notify-opts-list {
      max-height: 160px;
      overflow-y: auto;
    }

    .brtm-notify-opt {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 7px 12px;
      font-size: 12.5px;
      color: var(--text-1);
      cursor: pointer;
      transition: background .12s;
    }

    .brtm-notify-opt:hover {
      background: var(--primary-light);
      color: var(--primary);
    }

    /*  Comments Tab  */
    /*  10d  Comments Tab  */
    .brtm-comment-item {
      margin-bottom: 16px;
    }

    .brtm-cmt-bubble {
      font-size: 12.5px;
      line-height: 1.6;
      color: var(--text-1);
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 2px 8px 8px 8px;
      padding: 8px 12px;
      margin-bottom: 4px;
      word-break: break-word;
    }

    .brtm-cmt-edit-wrap {
      display: none;
    }

    .brtm-cmt-edit-wrap.brtm-visible {
      display: block;
    }

    .brtm-cmt-reply-form {
      display: none;
    }

    .brtm-cmt-reply-form.brtm-visible {
      display: block;
    }

    .brtm-cmt-edit-input {
      width: 100%;
      min-height: 60px;
      padding: 8px 10px;
      resize: vertical;
      border: 1.5px solid var(--primary);
      border-radius: 7px;
      outline: none;
      font-size: 12.5px;
      font-family: inherit;
      color: var(--text-1);
      box-sizing: border-box;
    }

    .brtm-cmt-action-bar {
      display: flex;
      align-items: center;
      gap: 4px;
      margin-top: 4px;
    }

    .brtm-cmt-action-btn {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      height: 24px;
      padding: 0 8px;
      border-radius: 5px;
      border: none;
      background: transparent;
      color: var(--text-3);
      font-size: 11.5px;
      cursor: pointer;
      font-family: inherit;
      transition: all .12s;
    }

    .brtm-cmt-action-btn:hover {
      background: var(--surface);
      color: var(--text-1);
    }

    .brtm-cmt-like-count {
      font-size: 11px;
    }

    .brtm-cmt-resolved-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      background: #ECFDF5;
      color: #065F46;
      border-radius: 5px;
      padding: 1px 8px;
      font-size: 10.5px;
      font-weight: 700;
    }

    .brtm-cmt-edited-label {
      font-size: 10px;
      color: var(--text-3);
      font-style: italic;
    }

    .brtm-cmt-fmt-btn {
      width: 26px;
      height: 26px;
      border-radius: 5px;
      border: none;
      background: transparent;
      color: var(--text-2);
      font-size: 13px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-cmt-fmt-btn:hover {
      background: var(--surface);
      color: var(--primary);
    }

    .brtm-cmt-fmt-toolbar {
      display: flex;
      align-items: center;
      gap: 2px;
      padding: 5px 8px;
      border-bottom: 1px solid var(--border);
      background: var(--surface);
    }

    .brtm-cmt-fmt-btn.brtm-fmt-active {
      background: var(--brand-soft);
      color: var(--primary);
    }

    .brtm-emoji-btn {
      width: 28px;
      height: 28px;
      border-radius: 6px;
      border: none;
      background: transparent;
      font-size: 16px;
      cursor: pointer;
      transition: background .1s;
    }

    .brtm-emoji-btn:hover {
      background: var(--surface);
    }

    .brtm-notify-chip {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 2px 7px;
      border-radius: 99px;
      background: var(--primary-light);
      color: var(--primary);
      font-size: 11px;
      font-weight: 600;
    }

    .brtm-notify-chip-x {
      width: 14px;
      height: 14px;
      border-radius: 50%;
      background: var(--primary);
      color: #fff;
      border: none;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 9px;
      line-height: 1;
    }

    /*  Changelog Tab  */
    /*  10e  Changelog Tab  */
    .brtm-cl-entry {
      display: flex;
      gap: 12px;
      position: relative;
      margin-bottom: 16px;
    }
    .brtm-cl-entry:last-child { margin-bottom: 4px; }

    .brtm-cl-entry::before {
      content: '';
      position: absolute;
      left: 11px;
      top: 28px;
      bottom: -16px;
      width: 1px;
      background: var(--border);
    }

    .brtm-cl-entry:last-child::before {
      display: none;
    }

    .brtm-cl-dot {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      flex-shrink: 0;
      margin-top: 2px;
      position: relative;
      z-index: 1;
    }

    .brtm-cl-card {
      flex: 1;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 9px;
      padding: 10px 12px;
      margin-bottom: 16px;
      min-width: 0;
    }

    .brtm-cl-card-head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 6px;
      flex-wrap: wrap;
    }

    .brtm-cl-time {
      font-size: 11px;
      color: var(--text-3);
      white-space: nowrap;
      flex-shrink: 0;
    }

    .brtm-cl-badge {
      display: inline-block;
      padding: 2px 8px;
      border-radius: 5px;
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .3px;
    }

    .brtm-cl-badge-field {
      background: var(--primary-light);
      color: var(--primary);
    }

    .brtm-cl-badge-status {
      background: #FEF3C7;
      color: #92400E;
    }

    .brtm-cl-badge-system {
      background: #F1F5F9;
      color: #64748B;
    }

    .brtm-cl-badge-owner {
      background: var(--accent-light);
      color: #065F46;
    }

    .brtm-cl-diff-row {
      display: flex;
      align-items: center;
      gap: 7px;
      font-size: 12.5px;
      flex-wrap: wrap;
      margin: 4px 0;
    }

    .brtm-cl-field-label {
      font-weight: 600;
      color: var(--text-2);
      font-size: 11.5px;
      min-width: 90px;
    }

    .brtm-cl-diff-old {
      padding: 1px 8px;
      border-radius: 5px;
      font-size: 12px;
      font-weight: 500;
      background: #FEF2F2;
      color: #B91C1C;
      text-decoration: line-through;
    }

    .brtm-cl-diff-new {
      padding: 1px 8px;
      border-radius: 5px;
      font-size: 12px;
      font-weight: 600;
      background: #ECFDF5;
      color: #065F46;
    }

    .brtm-cl-meta {
      font-size: 11px;
      color: var(--text-3);
      margin-top: 4px;
    }

    /*  Activity Slideout Panel  */
    /*  10f  Activity Slideout Panel  */
    .brtm-act-slideout-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.3);
      z-index: 1040;
    }

    .brtm-act-slideout-overlay.brtm-show {
      display: block;
    }

    .brtm-act-slideout {
      position: fixed;
      right: -480px;
      top: 0;
      bottom: 0;
      width: 440px;
      max-width: 100vw;
      background: var(--card-bg);
      border-left: 1px solid var(--border);
      box-shadow: -4px 0 24px rgba(0, 0, 0, .12);
      display: flex;
      flex-direction: column;
      z-index: 1041;
      transition: right .3s cubic-bezier(.25, .46, .45, .94);
    }

    .brtm-act-slideout.brtm-open {
      right: 0;
    }

    .brtm-act-slideout-header {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 14px 18px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-act-slideout-icon {
      width: 34px;
      height: 34px;
      border-radius: 9px;
      background: var(--primary);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      flex-shrink: 0;
    }

    .brtm-act-slideout-title {
      font-size: 14px;
      font-weight: 700;
      color: var(--text-1);
      flex: 1;
    }

    .brtm-act-slideout-close {
      width: 30px;
      height: 30px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-3);
      font-size: 13px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .12s;
      flex-shrink: 0;
    }

    .brtm-act-slideout-close:hover {
      background: var(--surface);
      color: var(--text-1);
    }

    .brtm-act-slideout-body {
      flex: 1;
      overflow-y: auto;
      padding: 18px 20px;
      scrollbar-width: thin;
      scrollbar-color: rgba(0, 0, 0, .12) transparent;
    }

    .brtm-act-slideout-footer {
      padding: 12px 20px;
      border-top: 1px solid var(--border);
      display: flex;
      gap: 8px;
      justify-content: flex-end;
      flex-shrink: 0;
    }

    /* Activity Detail Right Panel */
    .brtm-act-detail-panel {
      width: 0;
      flex-shrink: 0;
      background: var(--card-bg);
      border-left: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      position: relative;
      transition: width .25s cubic-bezier(.25, .46, .45, .94);
    }

    .brtm-act-detail-panel.brtm-open {
      width: 360px;
    }

    .brtm-adp-resize-handle {
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      width: 4px;
      cursor: col-resize;
      z-index: 10;
      background: transparent;
      transition: background .15s;
    }

    .brtm-adp-resize-handle:hover,
    .brtm-adp-resize-handle:active {
      background: var(--primary-light);
    }

    .brtm-adp-header {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 13px 16px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
      min-width: 360px;
    }

    .brtm-adp-icon {
      width: 32px;
      height: 32px;
      border-radius: 8px;
      background: var(--primary);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      flex-shrink: 0;
    }

    .brtm-adp-title {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-1);
      flex: 1;
      min-width: 0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brtm-adp-close {
      width: 28px;
      height: 28px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-3);
      font-size: 13px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      flex-shrink: 0;
      transition: all .12s;
    }

    .brtm-adp-close:hover {
      background: var(--surface);
      color: var(--text-1);
    }

    .brtm-adp-body {
      flex: 1;
      overflow-y: auto;
      padding: 16px;
      min-height: 0;
      min-width: 360px;
      scrollbar-width: thin;
      scrollbar-color: rgba(0, 0, 0, .12) transparent;
    }

    .brtm-adp-body::-webkit-scrollbar {
      width: 4px;
    }

    .brtm-adp-body::-webkit-scrollbar-track {
      background: transparent;
    }

    .brtm-adp-body::-webkit-scrollbar-thumb {
      background: rgba(0, 0, 0, 0.15);
      border-radius: 99px;
    }

    .brtm-adp-section {
      margin-bottom: 16px;
    }

    .brtm-adp-row {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 6px 0;
      border-bottom: 1px solid var(--border);
      font-size: 12.5px;
    }

    .brtm-adp-row:last-child {
      border-bottom: none;
    }

    .brtm-adp-label {
      width: 90px;
      flex-shrink: 0;
      color: var(--text-3);
      font-weight: 500;
      padding-top: 1px;
    }

    .brtm-adp-val {
      flex: 1;
      color: var(--text-1);
      font-weight: 500;
      word-break: break-word;
    }

    /* Stacked variant: label on top, badge value below (Tipe/Status). */
    .brtm-adp-row-badge {
      flex-direction: column;
      align-items: flex-start;
      gap: 6px;
    }

    .brtm-adp-row-badge .brtm-adp-label {
      width: auto;
    }

    .brtm-adp-divider {
      height: 1px;
      background: var(--border);
      margin: 4px 0 16px;
    }

    .brtm-adp-note-label {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .4px;
      color: var(--text-3);
      margin-bottom: 8px;
    }

    .brtm-adp-note-text {
      font-size: 13px;
      color: var(--text-1);
      line-height: 1.65;
      white-space: pre-line;
    }

    .brtm-activity-card.brtm-adp-active {
      background: var(--primary-light);
      border-color: var(--primary) !important;
    }

    /* Room chat di panel detail aktivitas (kartu kanal chat: wa/telegram/…).
       Read-only: tidak ada composer — balas pesan tetap di modul Barantumchat. */
    /* Header room chat — sengaja DI LUAR .brtm-adp-body (bukan sticky di dalam
       area overflow:auto). Sticky+negative-margin sempat bikin bubble yang
       discroll "nembus" ke atas header; box model statis kayak .brtm-adp-header
       jauh lebih robust & tidak butuh trik apa pun. */
    .brtm-cr-contact {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 13px 16px;
      background: var(--card-bg);
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-cr-avatar {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-size: 17px;
      flex-shrink: 0;
    }

    .brtm-cr-contact-name {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-1);
    }

    .brtm-cr-contact-sub {
      display: flex;
      align-items: center;
      gap: 4px;
      font-size: 11px;
      color: var(--text-3);
      margin-top: 1px;
    }

    .brtm-cr-goto {
      margin-left: auto;
      width: 30px;
      height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--border);
      background: var(--card-bg);
      border-radius: 7px;
      font-size: 13px;
      color: var(--primary);
      cursor: pointer;
      flex-shrink: 0;
    }

    .brtm-cr-goto:hover {
      background: var(--primary-light);
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-cr-close {
      margin-left: 4px;
      width: 30px;
      height: 30px;
      border: none;
      background: transparent;
      color: var(--text-3);
      border-radius: 7px;
      cursor: pointer;
      font-size: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-cr-close:hover {
      background: var(--surface);
      color: var(--text-1);
    }

    .brtm-cr-body {
      display: flex;
      flex-direction: column;
      gap: 8px;
      padding: 2px 0 4px;
    }

    .brtm-cr-day {
      align-self: center;
      font-size: 10px;
      color: var(--text-3);
      background: var(--surface);
      padding: 2px 10px;
      border-radius: 99px;
      margin: 2px 0 6px;
    }

    .brtm-cr-bubble {
      max-width: 84%;
      padding: 7px 11px;
      border-radius: 13px;
      font-size: 12.5px;
      line-height: 1.45;
      word-wrap: break-word;
      overflow-wrap: anywhere;
    }

    .brtm-cr-bubble .tm {
      display: block;
      font-size: 9px;
      margin-top: 3px;
      text-align: right;
      opacity: .65;
    }

    .brtm-cr-bubble p:last-child {
      margin-bottom: 0;
    }

    .brtm-cr-in {
      align-self: flex-start;
      background: var(--card-bg);
      border: 1px solid var(--border);
      color: var(--text-1);
      border-bottom-left-radius: 4px;
    }

    .brtm-cr-out {
      align-self: flex-end;
      color: #fff;
      border-bottom-right-radius: 4px;
    }

    .brtm-cr-out .tm {
      opacity: .85;
    }

    .brtm-cr-out a {
      color: #fff;
      text-decoration: underline;
    }

    .brtm-cr-att {
      font-style: italic;
      opacity: .9;
    }

    .brtm-adp-chat-state {
      margin-top: 12px;
      padding: 18px;
      text-align: center;
      font-size: 12px;
      color: var(--text-3);
      border: 1px dashed var(--border);
      border-radius: 8px;
    }

    /*  Toast  */
    .brtm-toast-wrap {
      position: fixed;
      bottom: 24px;
      right: 24px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      z-index: 9999;
      pointer-events: none;
    }

    .brtm-toast {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      background: #1E293B;
      color: #fff;
      border-radius: 10px;
      padding: 12px 16px;
      min-width: 240px;
      max-width: 340px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
      pointer-events: all;
      animation: toastIn .25s ease;
    }

    .brtm-toast.brtm-fade-out {
      animation: toastOut .25s ease forwards;
    }

    @keyframes toastIn {
      from {
        opacity: 0;
        transform: translateY(12px);
      }

      to {
        opacity: 1;
        transform: none;
      }
    }

    @keyframes toastOut {
      from {
        opacity: 1;
        transform: none;
      }

      to {
        opacity: 0;
        transform: translateY(8px);
      }
    }

    .brtm-toast-icon {
      font-size: 16px;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .brtm-toast-title {
      font-size: 13px;
      font-weight: 700;
    }

    .brtm-toast-msg {
      font-size: 12px;
      opacity: .75;
    }

    .brtm-toast.brtm-success .brtm-toast-icon {
      color: var(--accent);
    }

    .brtm-toast.brtm-error .brtm-toast-icon {
      color: #EF4444;
    }

    .brtm-toast.brtm-info .brtm-toast-icon {
      color: #60A5FA;
    }

    .brtm-toast.brtm-warn .brtm-toast-icon {
      color: #F59E0B;
    }

    /*  Generic Modal  */
    /*  10g  Toast & Generic Modal  */
    .brtm-modal-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.45);
      z-index: 1042;
      align-items: center;
      justify-content: center;
    }

    .brtm-modal-overlay.brtm-show {
      display: flex;
    }

    .brtm-modal-box {
      background: var(--card-bg);
      border-radius: 12px;
      box-shadow: 0 12px 40px rgba(0, 0, 0, .2);
      display: flex;
      flex-direction: column;
      width: 90vw;
      max-width: 860px;
      max-height: 90vh;
      overflow: hidden;
    }

    .brtm-modal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 14px 20px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-modal-title {
      font-size: 14px;
      font-weight: 700;
      color: var(--text-1);
    }

    .brtm-modal-close {
      width: 30px;
      height: 30px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-3);
      font-size: 13px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-modal-close:hover {
      background: var(--surface);
      color: var(--text-1);
    }

    .brtm-modal-body {
      flex: 1;
      overflow: auto;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #000;
      min-height: 200px;
    }

    .brtm-modal-body img {
      max-width: 100%;
      max-height: 70vh;
      display: block;
    }

    .brtm-modal-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 10px 16px;
      border-top: 1px solid var(--border);
      gap: 10px;
      flex-shrink: 0;
      flex-wrap: wrap;
    }

    .brtm-modal-footer-left {
      display: flex;
      align-items: center;
      gap: 8px;
      min-width: 0;
      flex: 1;
    }

    .brtm-modal-footer-name {
      font-size: 12.5px;
      font-weight: 600;
      color: var(--text-1);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .brtm-mf-rename-wrap {
      display: none;
      align-items: center;
      gap: 5px;
      flex: 1;
    }

    .brtm-mf-rename-wrap.brtm-visible {
      display: flex;
    }

    /* ── Approval Modal ── */
    .brtm-approval-condition-chip {
      display: inline-flex; flex-wrap: wrap; align-items: center; gap: 3px;
      padding: 2px 8px; border-radius: 6px;
      background: #F1F5F9; border: 1px solid #E2E8F0;
      font-size: 12px; margin: 2px 2px 2px 0;
    }
    .brtm-approval-approvers { display: flex; flex-wrap: wrap; gap: 5px; }
    .brtm-approval-approver-chip {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 3px 9px 3px 4px; border-radius: 999px;
      background: #EFF6FF; border: 1px solid #BFDBFE; font-size: 12px; color: #1D4ED8;
    }
    .brtm-approval-approver-chip .brtm-sf-avatar { background: #DBEAFE; color: #1D4ED8; }
    .brtm-approval-waiting {
      display: flex; align-items: center; justify-content: center; gap: 7px;
      margin-top: 16px; margin-bottom: 16px; padding: 10px 14px; border-radius: 8px;
      background: #FFFBEB; border: 1px solid #FDE68A; color: #92400E;
      font-size: 12.5px; font-weight: 600;
    }
    .brtm-spin { animation: brtm-spin .7s linear infinite; display: inline-block; }
    .brtm-modal-enter-active, .brtm-modal-leave-active { transition: opacity .2s, transform .2s; }
    .brtm-modal-enter-from, .brtm-modal-leave-to { opacity: 0; transform: scale(.96); }

    .brtm-mf-rename-input {
      flex: 1;
      padding: 5px 8px;
      border: 1.5px solid var(--primary);
      border-radius: 7px;
      font-size: 12.5px;
      font-family: inherit;
      outline: none;
      color: var(--text-1);
    }

    .brtm-mf-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 30px;
      padding: 0 12px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-1);
      font-size: 12px;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
      white-space: nowrap;
    }

    .brtm-mf-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-mf-btn.brtm-danger {
      color: #EF4444;
      border-color: #FECACA;
    }

    .brtm-mf-btn.brtm-danger:hover {
      background: #FEF2F2;
    }

    /*  Side Drawers (Merge / Duplicate / Checkin)  */
    /*  10h  Side Drawers (Merge / Duplicate / Check-in)  */
    .brtm-side-drawer-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.35);
      z-index: 1042;
      align-items: stretch;
      justify-content: flex-end;
    }

    .brtm-side-drawer-overlay.brtm-show {
      display: flex;
    }

    .brtm-side-drawer {
      width: 480px;
      max-width: 95vw;
      background: var(--card-bg);
      border-left: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      box-shadow: -6px 0 28px rgba(0, 0, 0, .14);
      animation: drawerIn .28s ease;
    }

    @keyframes drawerIn {
      from {
        transform: translateX(100%);
      }

      to {
        transform: none;
      }
    }

    .brtm-sd-header {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 16px 20px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-sd-header-icon {
      width: 36px;
      height: 36px;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      flex-shrink: 0;
    }

    .brtm-sd-header-icon.brtm-merge {
      background: #EDE9FE;
      color: #7C3AED;
    }

    .brtm-sd-header-icon.brtm-dup {
      background: #E0F2FE;
      color: #0284C7;
    }

    .brtm-sd-header-icon.brtm-checkin {
      background: var(--accent-light);
      color: var(--accent);
    }

    .brtm-sd-header-texts {
      flex: 1;
      min-width: 0;
    }

    .brtm-sd-header-title {
      font-size: 14px;
      font-weight: 700;
      color: var(--text-1);
    }

    .brtm-sd-header-sub {
      font-size: 12px;
      color: var(--text-2);
      margin-top: 1px;
    }

    .brtm-sd-close {
      width: 30px;
      height: 30px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-3);
      font-size: 13px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .12s;
      flex-shrink: 0;
    }

    .brtm-sd-close:hover {
      background: var(--surface);
      color: var(--text-1);
    }

    .brtm-sd-body {
      flex: 1;
      overflow-y: auto;
      padding: 18px 20px 60px 20px;
      scrollbar-width: thin;
      scrollbar-color: rgba(0, 0, 0, .12) transparent;
    }

    .brtm-sd-footer {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      padding: 12px 20px;
      border-top: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-sd-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      height: 34px;
      padding: 0 16px;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-1);
      font-size: 13px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
      white-space: nowrap;
    }

    .brtm-sd-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-sd-btn.brtm-primary {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-sd-btn.brtm-primary:hover {
      background: var(--primary-dark);
      border-color: var(--primary-dark);
    }

    .brtm-sd-btn.brtm-success {
      background: var(--accent);
      color: #fff;
      border-color: var(--accent);
    }

    .brtm-sd-btn.brtm-success:hover {
      background: #009963;
      border-color: #009963;
    }

    .brtm-sd-info-box {
      display: flex;
      align-items: flex-start;
      gap: 9px;
      padding: 10px 14px;
      border-radius: 8px;
      margin-bottom: 16px;
      font-size: 12.5px;
      line-height: 1.6;
    }

    .brtm-sd-info-box.brtm-warning {
      background: #FEF3C7;
      color: #92400E;
      border: 1px solid #FDE68A;
    }

    .brtm-sd-info-box.brtm-info {
      background: #EFF6FF;
      color: #1E40AF;
      border: 1px solid #BFDBFE;
    }

    .brtm-sd-section-title {
      font-size: 10.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-3);
      margin: 14px 0 8px;
    }

    .brtm-sd-section-title:first-child {
      margin-top: 0;
    }

    .brtm-sd-field {
      display: flex;
      flex-direction: column;
      gap: 5px;
      margin-bottom: 10px;
    }

    .brtm-sd-label {
      font-size: 11.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .4px;
      color: var(--text-2);
    }

    .brtm-sd-input,
    .brtm-sd-select,
    .brtm-sd-textarea {
      font-size: 13px;
      font-family: inherit;
      color: var(--text-1);
    }

    /* merge custom select */
    .brtm-msel {
      position: relative;
    }

    .brtm-msel-trigger {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 12px;
      border-radius: 9px;
      border: 1.5px solid var(--border);
      background: #fff;
      cursor: pointer;
      min-height: 40px;
      user-select: none;
      transition: border-color .15s, box-shadow .15s;
    }

    .brtm-msel-trigger:hover {
      border-color: var(--primary);
    }

    .brtm-msel-trigger.open {
      border-color: var(--primary);
    }

    .brtm-msel-ph {
      font-size: 13px;
      color: var(--text-3);
      flex: 1;
    }

    .brtm-msel-sel {
      display: flex;
      align-items: center;
      gap: 10px;
      flex: 1;
      min-width: 0;
    }

    .brtm-msel-av {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      font-size: 11px;
      font-weight: 700;
      color: #fff;
      background: #9CA3AF;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-msel-chev {
      font-size: 11px;
      color: var(--text-3);
      margin-left: auto;
      flex-shrink: 0;
      transition: transform .2s;
    }

    .brtm-msel-trigger.open .brtm-msel-chev {
      transform: rotate(180deg);
    }

    .brtm-msel-search-input {
      flex: 1;
      min-width: 0;
      border: none;
      outline: none;
      background: transparent;
      padding: 0;
      font-size: 13px;
      color: var(--text-1);
    }

    .brtm-msel-search-input::placeholder {
      color: var(--text-3);
    }

    .brtm-msel-list {
      display: none;
      position: absolute;
      top: calc(100% + 4px);
      left: 0;
      right: 0;
      background: #fff;
      border: 1.5px solid var(--border);
      border-radius: 9px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, .1);
      z-index: 300;
      overflow: hidden;
    }

    .brtm-msel-list.open {
      display: block;
    }

    .brtm-msel-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 12px;
      cursor: pointer;
      transition: background .1s;
    }

    .brtm-msel-item+.brtm-msel-item {
      border-top: 1px solid var(--border);
    }

    .brtm-msel-item:hover {
      background: var(--surface);
    }

    .brtm-msel-item.active {
      background: #EFF6FF;
    }

    .brtm-sd-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    .brtm-mlc-avatar {
      border-radius: 50%;
      color: #fff;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-mlc-info {
      flex: 1;
      min-width: 0;
    }

    .brtm-mlc-name {
      font-size: 13px;
      font-weight: 700;
      color: var(--text-1);
    }

    .brtm-mlc-meta {
      font-size: 11.5px;
      color: var(--text-2);
    }

    /* merge field mapping  card style */
    .brtm-mfg {
      border: 1.5px solid var(--border);
      border-radius: 10px;
      overflow: hidden;
      margin-bottom: 10px;
      background: #fff;
    }

    .brtm-mfg-label {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .6px;
      color: var(--text-3);
      text-transform: uppercase;
      padding: 6px 12px 5px;
      border-bottom: 1px solid var(--border);
      background: var(--surface);
    }

    .brtm-mfg-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 9px 12px;
      cursor: pointer;
      transition: background .1s;
    }

    .brtm-mfg-row+.brtm-mfg-row {
      border-top: 1px solid var(--border);
    }

    .brtm-mfg-row:hover {
      background: var(--surface);
    }

    .brtm-mfg-badge {
      flex-shrink: 0;
      font-size: 10.5px;
      font-weight: 600;
      padding: 2px 7px;
      border-radius: 5px;
      border: 1.5px solid var(--border);
      color: var(--text-2);
      background: #fff;
      white-space: nowrap;
    }

    .brtm-mfg-val {
      flex: 1;
      font-size: 13px;
      color: var(--text-1);
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .brtm-mfg-radio {
      flex-shrink: 0;
      width: 18px;
      height: 18px;
      border-radius: 50%;
      border: 2px solid #CBD5E1;
      background: #fff;
      transition: all .12s;
    }

    .brtm-mfg-row.brtm-selected .brtm-mfg-radio {
      background: var(--primary);
      border-color: var(--primary);
      box-shadow: inset 0 0 0 3px #fff;
    }

    /*  Check-in Meeting Cards  */
    .brtm-ci-meeting-card {
      padding: 10px 12px;
      border: 1.5px solid var(--border);
      border-radius: 9px;
      background: var(--card-bg);
      cursor: pointer;
      transition: all .15s;
      margin-bottom: 8px;
    }

    .brtm-ci-meeting-card:hover {
      border-color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-ci-meeting-card.brtm-selected {
      border-color: var(--primary);
      background: #EFF6FF;
    }

    .brtm-ci-mc-top {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .brtm-ci-mc-icon {
      width: 30px;
      height: 30px;
      border-radius: 8px;
      background: var(--primary);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      flex-shrink: 0;
    }

    .brtm-ci-mc-title {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-1);
    }

    .brtm-ci-mc-check {
      width: 22px;
      height: 22px;
      border-radius: 50%;
      flex-shrink: 0;
      border: 2px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      color: transparent;
      transition: all .15s;
    }

    .brtm-ci-meeting-card.brtm-selected .brtm-ci-mc-check {
      background: var(--primary);
      border-color: var(--primary);
      color: #fff;
    }

    .brtm-ci-mc-time {
      font-size: 11.5px;
      color: var(--text-2);
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .brtm-ci-mc-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 2px 8px;
      border-radius: 99px;
      font-size: 10.5px;
      font-weight: 600;
      background: #ECFDF5;
      color: #065F46;
    }

    /*  Convert Wizard Slideout  */
    /*  10i  Convert Wizard  */
    .brtm-cvt-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.45);
      z-index: 1042;
    }

    .brtm-cvt-overlay.brtm-show {
      display: block;
    }

    .brtm-cvt-modal {
      position: fixed;
      right: -720px;
      top: 0;
      bottom: 0;
      height: 100vh;
      width: 680px;
      max-width: 100vw;
      z-index: 1043;
      background: var(--card-bg);
      border-radius: 0;
      border-left: 1px solid var(--border);
      box-shadow: -6px 0 32px rgba(0, 0, 0, .18);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      transition: right .32s cubic-bezier(.25, .46, .45, .94);
    }

    .brtm-cvt-modal.brtm-open {
      right: 0;
    }

    .brtm-cvt-header {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 16px 20px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-cvt-header-icon {
      width: 36px;
      height: 36px;
      border-radius: 10px;
      background: var(--primary);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      flex-shrink: 0;
    }

    .brtm-cvt-header-texts {
      flex: 1;
      min-width: 0;
    }

    .brtm-cvt-header-title {
      font-size: 15px;
      font-weight: 700;
      color: var(--text-1);
    }

    .brtm-cvt-header-sub {
      font-size: 12px;
      color: var(--text-2);
      margin-top: 1px;
    }

    .brtm-cvt-close {
      width: 30px;
      height: 30px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-3);
      font-size: 13px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .12s;
    }

    .brtm-cvt-close:hover {
      background: var(--surface);
      color: var(--text-1);
    }

    .brtm-cvt-steps {
      display: flex;
      align-items: center;
      padding: 12px 20px;
      gap: 0;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-cvt-step {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 12px;
      font-weight: 600;
      color: var(--text-3);
      flex-shrink: 0;
    }

    .brtm-cvt-step.brtm-active {
      color: var(--primary);
    }

    .brtm-cvt-step.brtm-done {
      color: var(--accent);
    }

    .brtm-cvt-step-num {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      border: 2px solid currentColor;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11px;
      font-weight: 700;
    }

    .brtm-cvt-step.brtm-active .brtm-cvt-step-num,
    .brtm-cvt-step.brtm-done .brtm-cvt-step-num {
      background: currentColor;
      color: #fff;
    }

    .brtm-cvt-step-divider {
      flex: 1;
      height: 2px;
      background: var(--border);
      margin: 0 8px;
    }

    /* 2-panel split variant of .brtm-cvt-overlay/.brtm-cvt-modal (left sidebar
       with icon+title+vertical stepper, right side form+footer) — used by
       merge/duplicate style drawers. Coexists with the horizontal-step
       variant above (.brtm-cvt-steps/.brtm-cvt-step) without clashing: the
       vertical-stepper override is scoped under .brtm-cvt-side, and the
       .brtm-cvt-body override is scoped under .brtm-cvt-main, so neither
       touches the base rules a horizontal-step usage still relies on. */
    .brtm-cvt-split { display: flex; flex: 1; min-height: 0; }
    .brtm-cvt-side { width: 252px; flex-shrink: 0; border-right: 1px solid var(--border); background: linear-gradient(180deg, #f7faff, #eaf2fb); padding: 22px 18px; display: flex; flex-direction: column; overflow-y: auto; }
    .brtm-cvt-side-head { display: flex; align-items: center; gap: 11px; margin-bottom: 24px; }
    .brtm-cvt-side-head-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--primary); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; box-shadow: 0 6px 16px rgba(27,111,190,.32); }
    .brtm-cvt-side-head-title { font-size: 14.5px; font-weight: 700; color: var(--text-1); }
    .brtm-cvt-side-head-sub { font-size: 11.5px; color: var(--text-3); margin-top: 1px; }
    .brtm-cvt-side .brtm-cvt-steps { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 0; border-bottom: none; }
    .brtm-cvt-vstep { display: flex; gap: 12px; align-items: flex-start; position: relative; padding-bottom: 22px; cursor: default; }
    .brtm-cvt-vstep:last-child { padding-bottom: 0; }
    .brtm-cvt-vstep:not(:last-child)::before { content: ''; position: absolute; left: 14px; top: 31px; height: calc(100% - 24px); width: 2px; background: #cdd9e8; }
    .brtm-cvt-vstep.brtm-done:not(:last-child)::before { background: var(--primary); }
    .brtm-cvt-vstep-num { width: 30px; height: 30px; border-radius: 50%; border: 2px solid #cdd9e8; background: #fff; color: var(--text-3); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; flex-shrink: 0; z-index: 1; }
    .brtm-cvt-vstep.brtm-active .brtm-cvt-vstep-num { background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: 0 0 0 4px rgba(27,111,190,.16); }
    .brtm-cvt-vstep.brtm-done .brtm-cvt-vstep-num { background: var(--primary); border-color: var(--primary); color: #fff; }
    .brtm-cvt-vstep-tx { padding-top: 4px; }
    .brtm-cvt-vstep-title { font-size: 13px; font-weight: 700; color: var(--text-2); }
    .brtm-cvt-vstep.brtm-active .brtm-cvt-vstep-title { color: var(--primary); }
    .brtm-cvt-vstep.brtm-done .brtm-cvt-vstep-title { color: var(--text-1); }
    .brtm-cvt-vstep-sub { font-size: 11px; color: var(--text-3); margin-top: 1px; }
    .brtm-cvt-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
    .brtm-cvt-main-head { display: flex; align-items: center; justify-content: flex-end; padding: 12px 14px 0; }
    .brtm-cvt-main .brtm-cvt-body { flex: 1; overflow-y: auto; min-height: 0; padding-top: 6px; }

    .brtm-cvt-body {
      flex: 1;
      overflow-y: auto;
      padding: 18px 20px;
    }

    .brtm-cvt-panel {
      display: none;
    }

    .brtm-cvt-panel.brtm-active {
      display: block;
    }

    .brtm-cvt-panel-title {
      font-size: 14px;
      font-weight: 700;
      color: var(--text-1);
      margin-bottom: 3px;
      display: flex;
      align-items: center;
      gap: 7px;
    }

    .brtm-contact-ic {
      color: var(--primary);
    }

    .brtm-org-ic {
      color: #7C3AED;
    }

    .brtm-deal-ic {
      color: var(--accent);
    }

    .brtm-cvt-panel-sub {
      font-size: 12.5px;
      color: var(--text-2);
      margin-bottom: 12px;
    }

    .brtm-cvt-mode-tabs {
      display: flex;
      gap: 4px;
      margin-bottom: 14px;
      background: var(--surface);
      border-radius: 8px;
      padding: 3px;
    }

    .brtm-cvt-mode-tab {
      flex: 1;
      height: 30px;
      border-radius: 6px;
      border: none;
      background: transparent;
      color: var(--text-2);
      font-size: 12px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
    }

    .brtm-cvt-mode-tab.brtm-active {
      background: var(--card-bg);
      color: var(--primary);
      box-shadow: 0 1px 4px rgba(0, 0, 0, .08);
    }

    .brtm-cvt-mode-section {
      display: none;
    }

    .brtm-cvt-mode-section.brtm-active {
      display: block;
    }

    .brtm-cvt-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    .brtm-cvt-field {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .brtm-cvt-field label {
      font-size: 11.5px;
      font-weight: 600;
      color: var(--text-2);
    }

    .brtm-cvt-input {
      font-size: 13px;
      font-family: inherit;
      color: var(--text-1);
    }

    .brtm-req {
      color: #EF4444;
    }

    .brtm-span2 {
      grid-column: span 2;
    }

    .brtm-cvt-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 20px;
      border-top: 1px solid var(--border);
      flex-shrink: 0;
      gap: 8px;
    }

    .brtm-cvt-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      height: 34px;
      padding: 0 18px;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-1);
      font-size: 13px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      transition: all .12s;
      white-space: nowrap;
    }

    .brtm-cvt-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-cvt-btn.brtm-primary {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-cvt-btn.brtm-primary:hover {
      background: var(--primary-dark);
    }

    .brtm-cvt-btn.brtm-success {
      background: var(--accent);
      color: #fff;
      border-color: var(--accent);
    }

    .brtm-cvt-btn.brtm-success:hover {
      background: #009963;
    }

    /* existing search in convert wizard */
    .brtm-cvt-search-input {
      width: 100%;
      padding: 8px 12px;
      border: 1.5px solid var(--border);
      border-radius: 8px;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-1);
      outline: none;
      background: var(--surface);
      transition: border-color .15s;
      box-sizing: border-box;
    }

    .brtm-cvt-search-input:focus {
      border-color: var(--primary);
      background: #fff;
    }

    .brtm-cvt-result-list {
      margin-top: 8px;
      max-height: 200px;
      overflow-y: auto;
    }

    .brtm-cvt-result-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 10px;
      border-radius: 8px;
      cursor: pointer;
      transition: background .12s;
    }

    .brtm-cvt-result-item:hover,
    .brtm-cvt-result-item.brtm-selected {
      background: var(--primary-light);
    }

    .brtm-cvt-result-av {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      color: #fff;
      font-size: 11px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-cvt-result-name {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-1);
    }

    .brtm-cvt-result-sub {
      font-size: 11px;
      color: var(--text-2);
    }

    /* Activity slideout form fields */
    .brtm-asf-field {
      display: flex;
      flex-direction: column;
      gap: 5px;
      margin-bottom: 12px;
    }

    .brtm-asf-label {
      font-size: 11.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .4px;
      color: var(--text-2);
    }

    /*  Changelog filter buttons  */
    .brtm-cl-filter {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      height: 30px;
      padding: 0 12px;
      border-radius: 6px;
      font-size: 12px;
      font-weight: 500;
      font-family: inherit;
      cursor: pointer;
      border: 1.5px solid var(--border);
      background: #fff;
      color: var(--text-2);
      transition: border-color .15s, color .15s, background .15s;
    }

    .brtm-cl-filter:hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-cl-filter.brtm-active {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
      font-weight: 600;
    }

    .brtm-asf-input,
    .brtm-asf-select,
    .brtm-asf-textarea {
      font-size: 13px;
      font-family: inherit;
      color: var(--text-1);
    }

    .brtm-asf-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    /* Activity preview (slideout in detail mode) */
    .brtm-act-preview-body {
      padding: 0;
      display: flex;
      flex-direction: column;
      gap: 0;
    }

    .brtm-act-preview-section {
      padding: 12px 0;
      border-bottom: 1px solid var(--border);
    }

    .brtm-act-preview-section:last-child {
      border-bottom: none;
    }

    .brtm-act-preview-label {
      font-size: 10.5px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-3);
      margin-bottom: 4px;
    }

    .brtm-act-preview-val {
      font-size: 13px;
      color: var(--text-1);
      font-weight: 500;
      line-height: 1.6;
    }

    /* Advanced Search modal */
    /* -- ADVANCED SEARCH PANEL (detail page) -- */
    /*  10j  Advanced Search (detail page)  */
    .brtm-advs-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, .35);
      z-index: 1042;
    }

    .brtm-advs-overlay.brtm-show {
      display: block;
    }

    .brtm-advs-panel {
      position: fixed;
      top: 0;
      right: 0;
      width: 400px;
      height: 100vh;
      background: var(--card-bg, #fff);
      border-radius: 0;
      box-shadow: -6px 0 32px rgba(0, 0, 0, .14);
      z-index: 1043;
      display: flex;
      flex-direction: column;
      transform: translateX(100%);
      transition: transform .3s cubic-bezier(.4, 0, .2, 1);
    }

    .brtm-advs-panel.brtm-open {
      transform: translateX(0);
    }

    .brtm-advs-handle {
      display: none;
    }

    .brtm-advs-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 20px 12px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }

    .brtm-advs-title {
      font-size: 14.5px;
      font-weight: 700;
      color: var(--text-1);
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .brtm-advs-title i {
      color: var(--primary);
    }

    .brtm-advs-close {
      width: 30px;
      height: 30px;
      border-radius: 7px;
      border: none;
      background: var(--surface);
      color: var(--text-3);
      font-size: 15px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
    }

    .brtm-advs-close:hover {
      background: #FFE4E4;
      color: #EF4444;
    }

    .brtm-advs-body {
      flex: 1;
      overflow-y: auto;
      padding: 0 20px 8px;
    }

    .brtm-advs-section {
      padding: 16px 0 14px;
      border-bottom: 1px solid var(--border);
    }

    .brtm-advs-section:last-child {
      border-bottom: none;
    }

    .brtm-advs-section-label {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .5px;
      color: var(--text-3);
      margin-bottom: 10px;
    }

    .brtm-advs-module-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 9px;
    }

    .brtm-advs-module-card {
      cursor: pointer;
      user-select: none;
    }

    .brtm-advs-module-card input {
      display: none;
    }

    .brtm-advs-module-card-body {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 14px 6px;
      border: 2px solid var(--border);
      border-radius: 10px;
      background: var(--surface);
      font-size: 12px;
      font-weight: 600;
      color: var(--text-3);
      transition: all .15s;
      text-align: center;
    }

    .brtm-advs-module-card-body i {
      font-size: 22px;
    }

    .brtm-advs-module-card:hover .brtm-advs-module-card-body,
    .brtm-advs-module-card input:checked~.brtm-advs-module-card-body {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-advs-chip-row {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }

    .brtm-advs-chip {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 6px 13px;
      border: 1.5px solid var(--border);
      border-radius: 20px;
      font-size: 12.5px;
      font-weight: 600;
      color: var(--text-3) !important;
      background: var(--surface);
      cursor: pointer;
      user-select: none;
      transition: all .15s;
    }

    .brtm-advs-chip input {
      display: none;
    }

    .brtm-advs-chip i {
      font-size: 12px;
    }

    .brtm-advs-chip:hover {
      border-color: var(--cc, var(--primary));
      color: var(--cc, var(--primary));
    }

    /* .is-checked instead of :has(input:checked): a :has() with `input` in it made
       every new ag-grid row (each has checkbox inputs) re-check the page and made
       listing scroll lag (TM #15727). Set by src/leads/components/searchtimeline.vue. */
    .brtm-advs-chip.is-checked {
      border-color: var(--cc, var(--primary));
      color: var(--cc, var(--primary)) !important;
      background: color-mix(in srgb, var(--cc, var(--primary)) 10%, transparent);
      font-weight: 700;
    }

    .brtm-advs-preset {
      padding: 5px 12px;
      border: 1.5px solid var(--border);
      border-radius: 20px;
      font-size: 12px;
      font-weight: 600;
      font-family: inherit;
      color: var(--text-3);
      background: var(--surface);
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-advs-preset:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-advs-preset.brtm-active {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    .brtm-advs-date-row {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .brtm-advs-input {
      flex: 1;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 8px;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-1);
      padding: 8px 11px;
      outline: none;
      transition: border-color .15s;
      min-width: 0;
    }

    .brtm-advs-input:focus {
      border-color: var(--primary);
    }

    .brtm-advs-owner-list {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .brtm-advs-owner-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 10px;
      border-radius: 8px;
      cursor: pointer;
      transition: background .12s;
      user-select: none;
      border: 1.5px solid transparent;
    }

    .brtm-advs-owner-item input {
      display: none;
    }

    .brtm-advs-owner-item:hover {
      background: var(--surface);
    }

    /* .is-checked instead of :has(input:checked) — see .brtm-advs-chip.
       No template uses this class today (only .brtm-advs-chip is set, in searchtimeline.vue). */
    .brtm-advs-owner-item.is-checked {
      background: var(--primary-light);
      border-color: var(--primary);
    }

    .brtm-advs-owner-avatar {
      width: 34px;
      height: 34px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 11.5px;
      font-weight: 700;
      color: #fff;
      flex-shrink: 0;
    }

    .brtm-advs-owner-avatar.brtm-all {
      background: var(--surface);
      color: var(--text-3);
      border: 2px solid var(--border);
      font-size: 14px;
    }

    .brtm-advs-owner-name {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-1);
    }

    .brtm-advs-owner-sub {
      font-size: 11px;
      color: var(--text-3);
    }

    .brtm-advs-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 20px;
      border-top: 1px solid var(--border);
      flex-shrink: 0;
      gap: 10px;
    }

    .brtm-advs-btn-reset {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      background: transparent;
      border: none;
      color: #dc2626;
      font-size: 12.5px;
      font-weight: 550;
      cursor: pointer;
      padding: 0 6px;
    }

    .brtm-adbs-btn-cancel {
      display: flex;
      align-items: center;
      gap: 5px;
      padding: 8px 16px;
      border: 1px solid var(--border);
      border-radius: 8px;
      font-size: 13px;
      font-weight: 600;
      font-family: inherit;
      color: var(--text-3);
      background: var(--surface);
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-advs-btn-apply {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 9px 20px;
      border: none;
      border-radius: 8px;
      font-size: 13.5px;
      font-weight: 700;
      font-family: inherit;
      color: #fff;
      background: var(--primary);
      cursor: pointer;
      transition: background .15s;
    }

    .brtm-advs-btn-apply:hover {
      background: var(--primary-dark);
    }

    /* Map modal */
    .brtm-map-modal-body {
      width: 100%;
      height: 400px;
      background: #E8F4FD;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 13px;
      color: var(--text-2);
    }

    /* Inline card edit textarea (activity notes) */
    .brtm-act-inline-edit {
      width: 100%;
      min-height: 80px;
      padding: 8px 10px;
      border: 1.5px solid var(--primary);
      border-radius: 7px;
      font-size: 12.5px;
      font-family: inherit;
      color: var(--text-1);
      resize: vertical;
      outline: none;
      transition: border-color .15s;
    }

    .brtm-act-inline-edit:focus {
      border-color: var(--primary-dark);
    }

    .brtm-act-inline-edit-actions {
      display: flex;
      justify-content: flex-end;
      gap: 6px;
      margin-top: 6px;
    }

    /*  Convert Wizard  Existing Search/List  */
    .brtm-cvt-existing-search {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 10px;
      border: 1.5px solid var(--border);
      border-radius: 8px;
      background: var(--surface);
      margin-bottom: 10px;
      transition: border-color .15s;
    }

    .brtm-cvt-existing-search:focus-within {
      border-color: var(--primary);
      background: #fff;
    }

    .brtm-cvt-existing-search i {
      font-size: 13px;
      color: var(--text-3);
      flex-shrink: 0;
    }

    .brtm-cvt-existing-search input {
      flex: 1;
      border: none;
      outline: none;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-1);
      background: transparent;
    }

    .brtm-cvt-existing-list {
      max-height: 200px;
      overflow-y: auto;
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .brtm-cvt-existing-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 9px 10px;
      border-radius: 8px;
      cursor: pointer;
      border: 1.5px solid transparent;
      transition: all .12s;
    }

    .brtm-cvt-existing-item:hover {
      background: var(--primary-light);
      border-color: rgba(27, 111, 190, .2);
    }

    .brtm-cvt-existing-item.brtm-selected {
      background: var(--primary-light);
      border-color: var(--primary);
    }

    .brtm-cvt-ei-avatar {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      color: #fff;
      font-size: 12px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-cvt-ei-info {
      flex: 1;
      min-width: 0;
    }

    .brtm-cvt-ei-name {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-1);
    }

    .brtm-cvt-ei-meta {
      font-size: 11.5px;
      color: var(--text-2);
    }

    .brtm-cvt-ei-check {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      border: 2px solid var(--border);
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px;
      color: transparent;
      transition: all .15s;
    }

    .brtm-cvt-existing-item.brtm-selected .brtm-cvt-ei-check {
      background: var(--primary);
      border-color: var(--primary);
      color: #fff;
    }

    .brtm-cvt-select,
    .brtm-cvt-textarea {
      font-size: 13px;
      font-family: inherit;
      color: var(--text-1);
    }

    .brtm-cvt-mode-tab.brtm-skip {
      color: var(--text-2);
    }

    .brtm-cvt-mode-tab.brtm-skip.brtm-active {
      color: #EF4444;
    }

    /* Empty-state generik utk .brtm-cvt-existing-list (no-result & no-data) —
       belum ada sebelumnya di family .brtm-cvt-*, dipakai pertama kali oleh
       Convert Lead full-page (.cvx-*) di bawah, tapi diletakkan di sini
       supaya reusable kalau modal convert lama butuh juga. */
    .brtm-cvt-existing-state {
      text-align: center;
      padding: 30px 10px;
    }

    .brtm-es-ic {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--surface);
      border: 2px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 10px;
      font-size: 18px;
      color: var(--text-3);
    }

    .brtm-es-title {
      font-size: 12.5px;
      font-weight: 700;
      color: var(--text-1);
      margin-bottom: 4px;
    }

    .brtm-es-sub {
      font-size: 11px;
      color: var(--text-2);
      line-height: 1.5;
      max-width: 200px;
      margin: 0 auto;
    }

    .brtm-es-cta {
      margin-top: 12px;
      height: 32px;
      padding: 0 14px;
      border-radius: 8px;
      border: 1px solid var(--primary);
      background: var(--primary-light);
      color: var(--primary);
      font-size: 12px;
      font-weight: 700;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      cursor: pointer;
    }

    .brtm-es-cta:hover {
      background: var(--primary);
      color: #fff;
    }

    /* -- CALENDAR VIEW -- */
    /*  10k  Calendar View  */
    .brtm-cal-wrap {
      display: flex;
      flex-direction: column;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 14px;
      overflow: hidden;
      box-shadow: var(--shadow-sm);
      flex: 1;
      min-height: 0;
    }

    .brtm-cal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 16px;
      border-bottom: 1px solid var(--border);
      gap: 12px;
      flex-wrap: wrap;
    }

    .brtm-cal-nav {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .brtm-cal-nav-btn {
      width: 30px;
      height: 30px;
      border-radius: 7px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-muted);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      font-size: 13px;
      transition: all .15s;
    }

    .brtm-cal-nav-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-cal-month-label {
      font-size: 15px;
      font-weight: 700;
      color: var(--text-main);
      min-width: 130px;
      text-align: center;
    }

    .brtm-cal-today-btn {
      padding: 5px 12px;
      border-radius: 7px;
      border: 1px solid var(--border);
      background: var(--surface);
      color: var(--text-muted);
      font-size: 12.5px;
      font-weight: 600;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-cal-today-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-cal-field-toggle {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .brtm-cal-field-label {
      font-size: 12px;
      color: var(--text-muted);
      font-weight: 500;
    }

    .brtm-cal-field-btn {
      padding: 4px 11px;
      border-radius: 20px;
      border: 1px solid var(--border);
      background: transparent;
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 500;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-cal-field-btn.brtm-active {
      background: var(--primary);
      border-color: var(--primary);
      color: #fff;
      font-weight: 600;
    }

    .brtm-cal-field-btn:not(.brtm-active):hover {
      border-color: var(--primary);
      color: var(--primary);
    }

    .brtm-cal-grid-wrap {
      flex: 1;
      overflow-y: auto;
      min-height: 0;
    }

    .brtm-cal-day-headers {
      flex-shrink: 0;
    }

    .brtm-cal-day-headers {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      border-bottom: 1px solid var(--border);
      background: var(--surface);
    }

    .brtm-cal-day-headers>div {
      padding: 8px 10px;
      font-size: 11.5px;
      font-weight: 700;
      color: var(--text-muted);
      text-align: center;
      text-transform: uppercase;
      letter-spacing: .4px;
    }

    .brtm-cal-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
    }

    .brtm-cal-cell {
      min-height: 110px;
      border-right: 1px solid var(--border);
      border-bottom: 1px solid var(--border);
      padding: 8px;
      display: flex;
      flex-direction: column;
      gap: 3px;
      position: relative;
      transition: background .1s;
    }

    .brtm-cal-cell:nth-child(7n) {
      border-right: none;
    }

    .brtm-cal-cell:hover {
      background: var(--primary-light);
    }

    .brtm-cal-has-leads {
      background: #fafcff;
    }

    .brtm-cal-other-month {
      background: var(--surface);
      opacity: .55;
    }

    .brtm-cal-today .brtm-cal-date-num {
      background: var(--primary);
      color: #fff;
      border-radius: 50%;
      width: 24px;
      height: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 700;
    }

    .brtm-cal-date-num {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-main);
      line-height: 24px;
      width: 24px;
      text-align: center;
    }

    .brtm-cal-count {
      position: absolute;
      top: 6px;
      right: 7px;
      background: var(--primary);
      color: #fff;
      font-size: 10px;
      font-weight: 700;
      border-radius: 10px;
      padding: 1px 6px;
      line-height: 1.5;
    }

    .brtm-cal-chip {
      font-size: 11.5px;
      font-weight: 500;
      color: var(--chip-color, #6B7A99);
      background: color-mix(in srgb, var(--chip-color, #6B7A99) 12%, #fff);
      border-left: 3px solid var(--chip-color, #6B7A99);
      border-radius: 0 4px 4px 0;
      padding: 2px 6px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      cursor: default;
    }

    .brtm-cal-more {
      font-size: 11px;
      color: var(--text-muted);
      font-weight: 600;
      padding: 1px 4px;
      cursor: pointer;
    }

    .brtm-cal-more:hover {
      color: var(--primary);
      text-decoration: underline;
    }

    /* -- CALENDAR CHIP POPOVER -- */
    .brtm-cal-popover {
      display: none;
      position: fixed;
      z-index: 9000;
      width: 260px;
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 12px;
      box-shadow: 0 8px 28px rgba(0, 0, 0, .14);
      overflow: hidden;
    }

    .brtm-cal-popover.brtm-show {
      display: block;
      animation: calPopIn .15s ease;
    }

    @keyframes calPopIn {
      from {
        opacity: 0;
        transform: translateY(4px);
      }

      to {
        opacity: 1;
        transform: none;
      }
    }

    .brtm-cal-pop-header {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 12px 14px 8px;
    }

    .brtm-cal-pop-name {
      flex: 1;
      font-size: 14px;
      font-weight: 700;
      color: var(--text-main);
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .brtm-cal-pop-close {
      width: 24px;
      height: 24px;
      border: none;
      background: transparent;
      color: var(--text-muted);
      font-size: 11px;
      border-radius: 5px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .brtm-cal-pop-close:hover {
      background: var(--surface);
      color: var(--text-main);
    }

    .brtm-cal-pop-badge-row {
      padding: 0 14px 10px;
    }

    .brtm-cal-pop-badge {
      display: inline-flex;
      align-items: center;
      padding: 3px 10px;
      border-radius: 99px;
      font-size: 12px;
      font-weight: 600;
      border: 1px solid;
    }

    .brtm-cal-pop-rows {
      padding: 0 14px 10px;
      display: flex;
      flex-direction: column;
      gap: 7px;
      border-top: 1px solid var(--border);
      padding-top: 10px;
    }

    .brtm-cal-pop-row {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      font-size: 12.5px;
      color: var(--text-main);
    }

    .brtm-cal-pop-row i {
      font-size: 12px;
      color: var(--primary);
      flex-shrink: 0;
      margin-top: 2px;
    }

    .brtm-cal-pop-row span {
      flex: 1;
      min-width: 0;
      word-break: break-all;
    }

    .brtm-cal-pop-link {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 9px 14px;
      border-top: 1px solid var(--border);
      font-size: 12.5px;
      font-weight: 600;
      color: var(--primary);
      text-decoration: none;
      transition: background .12s;
    }

    .brtm-cal-pop-link:hover {
      background: var(--primary-light);
    }

    .brtm-cal-chip {
      cursor: pointer;
    }

    /* -- DESCRIPTION CELL -- */
    /*  10l  Description Cell  */
    .brtm-desc-cell {
      position: relative;
      display: inline-block;
      max-width: 200px;
      cursor: default;
    }

    .brtm-desc-preview {
      font-size: 12.5px;
      color: var(--text-main);
      display: block;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 200px;
    }

    .brtm-desc-tooltip {
      display: none;
      position: absolute;
      z-index: 8000;
      bottom: calc(100% + 8px);
      left: 0;
      width: 300px;
      background: #1E293B;
      color: #F1F5F9;
      font-size: 12.5px;
      line-height: 1.7;
      padding: 10px 14px;
      border-radius: 10px;
      box-shadow: 0 8px 28px rgba(0, 0, 0, .22);
      white-space: normal;
      pointer-events: none;
    }

    .brtm-desc-tooltip::after {
      content: '';
      position: absolute;
      top: 100%;
      left: 16px;
      border: 6px solid transparent;
      border-top-color: #1E293B;
    }

    .brtm-desc-global-tooltip {
      display: none;
      position: fixed;
      z-index: 9500;
      width: 300px;
      max-width: calc(100vw - 24px);
      background: #1E293B;
      color: #F1F5F9;
      font-size: 12.5px;
      line-height: 1.7;
      padding: 10px 14px;
      border-radius: 10px;
      box-shadow: 0 8px 28px rgba(0, 0, 0, .22);
      pointer-events: none;
      word-break: break-word;
    }

    .brtm-desc-global-tooltip.brtm-desc-tip-show {
      display: block;
      animation: calPopIn .15s ease;
    }

    .brtm-desc-global-tooltip::after {
      content: "";
      position: absolute;
      top: 100%;
      left: 16px;
      border: 6px solid transparent;
      border-top-color: #1E293B;
    }

    .brtm-photo-pop {
      display: none;
      position: fixed;
      z-index: 9600;
      background: #1E293B;
      border-radius: 12px;
      padding: 6px;
      box-shadow: 0 12px 40px rgba(0, 0, 0, .35);
      pointer-events: none;
    }

    .brtm-photo-pop.brtm-photo-pop-show {
      display: block;
      animation: calPopIn .15s ease;
    }

    .brtm-photo-pop img {
      display: block;
      width: 150px;
      height: 150px;
      object-fit: cover;
      border-radius: 8px;
    }

    /*  CUSTOMISE MODULE LAYOUT (brtm-cml)  */
    /*  10m  Customise Module Layout (brtm-cml)  */
    .brtm-cml-body {
      padding: 0;
    }

    .brtm-cml-section {
      border-bottom: 1px solid var(--border);
    }

    .brtm-cml-section:last-of-type {
      border-bottom: none;
    }

    .brtm-cml-section-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 11px 16px;
      background: var(--surface);
      font-size: 13px;
      font-weight: 600;
      color: var(--text-main);
      cursor: default;
      user-select: none;
    }

    .brtm-cml-section-header span {
      display: flex;
      align-items: center;
      gap: 7px;
    }

    .brtm-cml-section-header span i {
      color: var(--primary);
      font-size: 14px;
    }

    .brtm-cml-section-actions {
      display: flex;
      align-items: center;
      gap: 4px;
    }

    .brtm-cml-section-btn {
      width: 26px;
      height: 26px;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: #fff;
      color: var(--text-muted);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 13px;
      cursor: pointer;
      transition: all .15s;
    }

    .brtm-cml-section-btn:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-cml-chevron {
      transition: transform .2s;
    }

    .brtm-cml-section.brtm-collapsed .brtm-cml-chevron {
      transform: rotate(-180deg);
    }

    .brtm-cml-section-body {
      padding: 2px 0 6px;
    }

    .brtm-cml-section.brtm-collapsed .brtm-cml-section-body {
      display: none;
    }

    .brtm-cml-field-row {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 7px 16px;
      font-size: 13px;
      color: var(--text-main);
      transition: background .12s;
      cursor: grab;
    }

    .brtm-cml-field-row:hover {
      background: var(--primary-light);
    }

    .brtm-cml-field-icon {
      font-size: 14px;
      color: var(--text-muted);
      flex-shrink: 0;
    }

    .brtm-cml-field-name {
      flex: 1;
    }

    .brtm-cml-field-badge {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .4px;
      border-radius: 4px;
      padding: 2px 6px;
      flex-shrink: 0;
    }

    .brtm-cml-field-badge.brtm-required {
      background: #FEE2E2;
      color: #DC2626;
    }

    .brtm-cml-toggle {
      flex-shrink: 0;
      margin-left: 4px;
    }

    .brtm-cml-toggle input:disabled~.brtm-col-toggle-track {
      opacity: .5;
      cursor: not-allowed;
    }

    /* Section drag handle */
    .brtm-cml-section-drag-handle {
      color: var(--text-muted);
      font-size: 15px;
      cursor: grab;
      flex-shrink: 0;
      opacity: .35;
      transition: opacity .15s;
      padding: 0 2px;
    }

    .brtm-cml-section-header:hover .brtm-cml-section-drag-handle {
      opacity: .8;
    }

    .brtm-cml-section-drag-handle:active {
      cursor: grabbing;
    }

    /* Section drag states */
    .brtm-cml-section.brtm-section-dragging {
      opacity: .35;
    }

    .brtm-cml-section.brtm-section-drop-before {
      box-shadow: 0 -2px 0 var(--primary);
    }

    .brtm-cml-section.brtm-section-drop-after {
      box-shadow: 0 2px 0 var(--primary);
    }

    /* Section label structure */
    .brtm-cml-section-label {
      display: flex;
      align-items: center;
      gap: 7px;
      flex: 1;
      min-width: 0;
      overflow: hidden;
    }

    .brtm-cml-section-label .brtm-cml-section-icon {
      color: var(--primary);
      font-size: 14px;
      flex-shrink: 0;
    }

    .brtm-cml-section-text {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    /* Section inline edit mode */
    .brtm-cml-section-header.brtm-editing .brtm-cml-section-label {
      display: none;
    }

    .brtm-cml-section-edit-row {
      display: none;
      flex: 1;
      align-items: center;
      gap: 6px;
      min-width: 0;
    }

    .brtm-cml-section-header.brtm-editing .brtm-cml-section-edit-row {
      display: flex;
    }

    .brtm-cml-icon-pick-btn {
      width: 30px;
      height: 30px;
      flex-shrink: 0;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: var(--surface);
      cursor: pointer;
      font-size: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .15s;
      color: var(--primary);
    }

    .brtm-cml-icon-pick-btn:hover {
      border-color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-cml-name-input {
      flex: 1;
      min-width: 0;
      border: 1px solid var(--primary);
      border-radius: 6px;
      padding: 4px 8px;
      font-size: 13px;
      font-weight: 600;
      font-family: inherit;
      outline: none;
      color: var(--text-main);
      background: #fff;
    }

    .brtm-cml-edit-confirm-btn,
    .brtm-cml-edit-cancel-btn {
      width: 26px;
      height: 26px;
      flex-shrink: 0;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: var(--surface);
      cursor: pointer;
      font-size: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .15s;
    }

    .brtm-cml-edit-confirm-btn {
      color: var(--accent);
    }

    .brtm-cml-edit-confirm-btn:hover {
      background: #D1FAE5;
      border-color: var(--accent);
    }

    .brtm-cml-edit-cancel-btn {
      color: #EF4444;
    }

    .brtm-cml-edit-cancel-btn:hover {
      background: #FEE2E2;
      border-color: #EF4444;
    }

    /* Hide edit pencil btn in edit mode */
    .brtm-cml-section-header.brtm-editing .brtm-cml-edit-btn {
      display: none;
    }

    /* Icon picker popup */
    .brtm-cml-icon-picker {
      display: none;
      position: absolute;
      z-index: 1200;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 10px;
      box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14);
      padding: 10px;
      width: 224px;
    }

    .brtm-cml-icon-picker.brtm-show {
      display: block;
    }

    .brtm-cml-ip-title {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .4px;
      color: var(--text-muted);
      margin-bottom: 8px;
    }

    .brtm-cml-ip-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 3px;
    }

    .brtm-cml-ip-icon {
      width: 28px;
      height: 28px;
      border-radius: 6px;
      border: 1px solid transparent;
      background: none;
      cursor: pointer;
      font-size: 14px;
      color: var(--text-main);
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .12s;
    }

    .brtm-cml-ip-icon:hover {
      background: var(--primary-light);
      color: var(--primary);
      border-color: var(--primary);
    }

    .brtm-cml-ip-icon.brtm-selected {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }

    /*  FIELD ROW: hover actions (edit + delete)  */
    .brtm-cml-field-row {
      position: relative;
    }

    .brtm-cml-field-actions {
      display: none;
      align-items: center;
      gap: 3px;
      margin-left: auto;
      flex-shrink: 0;
    }

    .brtm-cml-field-row:hover .brtm-cml-field-actions {
      display: flex;
    }

    .brtm-cml-field-row:hover .brtm-cml-toggle {
      display: none;
    }

    .brtm-cml-field-action-btn {
      width: 24px;
      height: 24px;
      border-radius: 5px;
      border: 1px solid var(--border);
      background: #fff;
      cursor: pointer;
      font-size: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .13s;
      color: var(--text-muted);
    }

    .brtm-cml-field-action-btn.brtm-edit:hover {
      border-color: var(--primary);
      color: var(--primary);
      background: var(--primary-light);
    }

    .brtm-cml-field-action-btn.brtm-del:hover {
      border-color: #EF4444;
      color: #EF4444;
      background: #FEE2E2;
    }

    /* Field row inline edit mode */
    .brtm-cml-field-row.brtm-field-editing {
      cursor: default;
      background: var(--primary-light);
    }

    .brtm-cml-field-row.brtm-field-editing .brtm-col-drag-handle,
    .brtm-cml-field-row.brtm-field-editing .brtm-cml-field-icon,
    .brtm-cml-field-row.brtm-field-editing .brtm-cml-field-name,
    .brtm-cml-field-row.brtm-field-editing .brtm-cml-field-badge,
    .brtm-cml-field-row.brtm-field-editing .brtm-cml-toggle,
    .brtm-cml-field-row.brtm-field-editing .brtm-cml-field-actions {
      display: none !important;
    }

    .brtm-cml-field-edit-inline {
      display: none;
      align-items: center;
      gap: 6px;
      flex: 1;
      min-width: 0;
    }

    .brtm-cml-field-row.brtm-field-editing .brtm-cml-field-edit-inline {
      display: flex;
    }

    /* Add-field inline form row */
    .brtm-cml-add-field-row {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 8px 16px;
      background: #f0f6ff;
      border-top: 1px dashed var(--primary);
      animation: slideDown .15s ease;
    }

    .brtm-cml-add-type-select {
      flex-shrink: 0;
      width: 100px;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: #fff;
      font-size: 12px;
      font-family: inherit;
      padding: 4px 6px;
      outline: none;
      color: var(--text-main);
      cursor: pointer;
    }

    .brtm-cml-add-type-select:focus {
      border-color: var(--primary);
    }

    .brtm-cml-add-confirm-btn {
      padding: 4px 12px;
      border-radius: 6px;
      border: none;
      background: var(--primary);
      color: #fff;
      font-size: 12px;
      font-weight: 600;
      font-family: inherit;
      cursor: pointer;
      flex-shrink: 0;
      transition: background .15s;
      white-space: nowrap;
    }

    .brtm-cml-add-confirm-btn:hover {
      background: var(--primary-dark);
    }

    .brtm-cml-add-cancel-btn {
      padding: 4px 10px;
      border-radius: 6px;
      border: 1px solid var(--border);
      background: #fff;
      font-size: 12px;
      font-family: inherit;
      color: var(--text-muted);
      cursor: pointer;
      flex-shrink: 0;
      transition: all .13s;
    }

    .brtm-cml-add-cancel-btn:hover {
      border-color: #EF4444;
      color: #EF4444;
    }

    /*  COLUMN RESIZE  */
    /*  10n  Column Resize  */
    .brtm-col-resizer {
      position: absolute;
      right: -6px;
      top: 0;
      width: 12px;
      height: 100%;
      cursor: col-resize;
      user-select: none;
      z-index: 4;
      border-radius: 3px;
    }

    .brtm-col-resizer::after {
      content: '';
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      top: 15%;
      width: 3px;
      height: 70%;
      background: transparent;
      border-radius: 2px;
      transition: background .15s;
    }

    .brtm-col-resizer:hover::after,
    .brtm-col-resizer.brtm-resizing::after {
      background: var(--primary);
    }

    table.brtm-leads-table.brtm-col-resizing {
      cursor: col-resize !important;
      user-select: none !important;
    }

    table.brtm-leads-table.brtm-col-resizing * {
      cursor: col-resize !important;
      user-select: none !important;
    }

    /* 
       SHARED  REPORT VIEW (all listing pages)
        */
/* 
   11  SHARED  Report View, Status Pills, Module Cards
    */
    .brtm-report-wrap {
      padding: 20px 20px 32px;
      display: flex; flex-direction: column; gap: 20px;
    }
    .brtm-report-row {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: 16px;
    }
    .brtm-rpt-kpi {
      background: #fff; border: 1px solid var(--border);
      border-radius: 10px; padding: 18px 20px;
      display: flex; flex-direction: column; gap: 6px;
    }
    .brtm-rpt-kpi-label { font-size: 11px; font-weight: 700; color: var(--text-2); text-transform: uppercase; letter-spacing: .5px; }
    .brtm-rpt-kpi-val   { font-size: 28px; font-weight: 700; color: var(--text-1); line-height: 1.1; }
    .brtm-rpt-kpi-sub   { font-size: 11.5px; color: var(--text-3); }
    .brtm-rpt-chart-card {
      background: #fff; border: 1px solid var(--border);
      border-radius: 10px; padding: 16px 20px;
    }
    .brtm-rpt-chart-card-title {
      font-size: 12.5px; font-weight: 700; color: var(--text-1);
      margin-bottom: 14px;
    }
    .brtm-rpt-bar-row {
      display: flex; align-items: center; gap: 10px; margin-bottom: 8px;
    }
    .brtm-rpt-bar-label { font-size: 12px; color: var(--text-2); }
    .brtm-rpt-bar-track { flex: 1; height: 10px; background: var(--surface); border-radius: 99px; overflow: hidden; }
    .brtm-rpt-bar-fill  { height: 100%; border-radius: 99px; transition: width .4s; }
    .brtm-rpt-bar-val   { font-size: 11.5px; font-weight: 700; color: var(--text-1); min-width: 28px; text-align: right; }

    /* 
       SHARED  STATUS / TYPE / PRIORITY PILLS
        */
    .brtm-status-pill {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 2px 8px; border-radius: 99px;
      font-size: 11px; font-weight: 600; white-space: nowrap;
    }
    /* status variants */
    .brtm-status-pill.completed   { background: #DCFCE7; color: #15803D; }
    .brtm-status-pill.missed      { background: #FEE2E2; color: #B91C1C; }
    .brtm-status-pill.no-answer   { background: #FEF9C3; color: #A16207; }
    .brtm-status-pill.scheduled   { background: #DBEAFE; color: #1D4ED8; }
    .brtm-status-pill.cancelled   { background: #F1F5F9; color: #64748B; }
    .brtm-status-pill.rescheduled { background: #FEF9C3; color: #A16207; }
    .brtm-status-pill.not-started { background: #F1F5F9; color: #64748B; }
    .brtm-status-pill.in-progress { background: #DBEAFE; color: #1D4ED8; }
    .brtm-status-pill.overdue     { background: #FEE2E2; color: #B91C1C; }
    .brtm-status-pill.deferred    { background: #FEF9C3; color: #A16207; }
    .brtm-status-pill.draft       { background: #F1F5F9; color: #475569; }
    .brtm-status-pill.active      { background: #DCFCE7; color: #15803D; }
    .brtm-status-pill.closed      { background: #FEE2E2; color: #B91C1C; }
    .brtm-status-pill.archived    { background: #FEF9C3; color: #A16207; }

    .brtm-priority-pill {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 2px 8px; border-radius: 99px;
      font-size: 11px; font-weight: 600; white-space: nowrap;
    }
    .brtm-priority-pill.none   { background: #F1F5F9; color: #64748B; }
    .brtm-priority-pill.low    { background: #DCFCE7; color: #15803D; }
    .brtm-priority-pill.medium { background: #FEF9C3; color: #A16207; }
    .brtm-priority-pill.high   { background: #FEE2E2; color: #B91C1C; }

    .brtm-type-pill {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 2px 8px; border-radius: 99px;
      font-size: 11px; font-weight: 600; white-space: nowrap;
    }
    /* call type variants */
    .brtm-type-pill.sales-call   { background: #EFF6FF; color: #1E40AF; }
    .brtm-type-pill.support-call { background: #FEF3C7; color: #B45309; }
    .brtm-type-pill.follow-up    { background: #F0FDF4; color: #15803D; }
    .brtm-type-pill.demo-call    { background: #F5F3FF; color: #6D28D9; }
    .brtm-type-pill.escalation   { background: #FFF1F2; color: #BE123C; }
    /* meeting type variants */
    .brtm-type-pill.online  { background: #EDE9FE; color: #6D28D9; }
    .brtm-type-pill.offline { background: #FEF3C7; color: #B45309; }
    .brtm-type-pill.hybrid  { background: #CCFBF1; color: #0F766E; }
    /* task type variants */
    .brtm-type-pill.general     { background: #EFF6FF; color: #1E40AF; }
    .brtm-type-pill.integration { background: #F5F3FF; color: #6D28D9; }
    .brtm-type-pill.other       { background: #F1F5F9; color: #64748B; }
    /* survey type variants */
    .brtm-type-pill.csat     { background: #EDE9FE; color: #6D28D9; }
    .brtm-type-pill.nps      { background: #DBEAFE; color: #1D4ED8; }
    .brtm-type-pill.product  { background: #CCFBF1; color: #0F766E; }
    .brtm-type-pill.market   { background: #FEF3C7; color: #B45309; }
    .brtm-type-pill.employee { background: #FCE7F3; color: #9D174D; }
    .brtm-type-pill.internal { background: #E0F2FE; color: #0369A1; }

    .brtm-parent-pill {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 2px 8px; border-radius: 99px;
      font-size: 11px; font-weight: 600;
      background: #EFF6FF; color: #1E40AF;
    }

    /* direction (calls) */
    .brtm-dir-pill {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 2px 8px; border-radius: 99px;
      font-size: 11px; font-weight: 600; white-space: nowrap;
    }
    .brtm-dir-pill.inbound  { background: #EDE9FE; color: #6D28D9; }
    .brtm-dir-pill.outbound { background: #CCFBF1; color: #0F766E; }

    /* 
       SHARED  DETAIL PAGE: NOTE/CALL/TASK CARD
        */
    .brtm-nd-meta-chip {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 600;
      background: var(--surface); border: 1px solid var(--border);
      color: var(--text-2); white-space: nowrap;
    }
    .brtm-nd-meta-chip i { font-size: 11px; color: var(--text-3); }
    .brtm-nd-meta-chip a { color: var(--primary); text-decoration: none; }
    .brtm-nd-meta-chip a:hover { text-decoration: underline; }

    .brtm-nd-priority {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700;
    }
    .brtm-nd-priority.none   { background: #F1F5F9; color: #64748B; }
    .brtm-nd-priority.low    { background: #DCFCE7; color: #15803D; }
    .brtm-nd-priority.medium { background: #FEF9C3; color: #A16207; }
    .brtm-nd-priority.high   { background: #FEE2E2; color: #B91C1C; }

    .brtm-note-doc-card {
      background: #fff; border: 1px solid var(--border);
      border-radius: 12px; box-shadow: 0 1px 6px rgba(27,111,190,.06);
      overflow: hidden;
    }
    .brtm-note-doc-header {
      padding: 20px 24px 16px; border-bottom: 1px solid var(--border);
      background: var(--primary-light); border-radius: 11px 11px 0 0;
    }
    .brtm-note-doc-title {
      font-size: 20px; font-weight: 700; color: var(--text-1);
      line-height: 1.35; margin-bottom: 10px;
    }
    .brtm-note-doc-meta-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
    .brtm-note-doc-body {
      padding: 24px; font-size: 14px; color: var(--text-1);
      line-height: 1.8; min-height: 100px;
      white-space: pre-wrap; word-break: break-word;
    }
    .brtm-note-doc-body.brtm-empty-body { color: var(--text-3); font-style: italic; }
    .brtm-note-body-edit {
      width: 100%; min-height: 100px; padding: 24px;
      font-size: 14px; font-family: var(--brtm-font-ui);
      color: var(--text-1); line-height: 1.8;
      border: none; outline: none; resize: none;
      background: #fff; box-sizing: border-box;
    }
    .brtm-note-edit-bar {
      display: flex; align-items: center; justify-content: flex-end; gap: 6px;
      padding: 10px 16px; border-top: 1px solid var(--border);
      background: var(--surface);
    }
    .brtm-editable-zone {
      position: relative; cursor: pointer;
      transition: box-shadow .15s, background .15s;
    }
    .brtm-editable-zone:hover {
      box-shadow: inset 0 0 0 2px rgba(27,111,190,.35);
      background: rgba(27,111,190,.04) !important;
    }
    .brtm-edit-hint {
      position: absolute; top: 8px; right: 10px;
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 11px; font-weight: 600; color: var(--primary);
      background: #fff; border: 1px solid rgba(27,111,190,.3);
      border-radius: 5px; padding: 2px 8px;
      opacity: 0; pointer-events: none; transition: opacity .15s;
      white-space: nowrap; box-shadow: 0 1px 4px rgba(27,111,190,.12); z-index: 2;
    }
    .brtm-editable-zone:hover .brtm-edit-hint { opacity: 1; }

    .brtm-note-edit-btn {
      display: inline-flex; align-items: center; gap: 5px;
      height: 29px; padding: 0 12px; border-radius: 6px;
      border: 1px solid var(--border); background: #fff;
      color: var(--text-2); font-size: 12px; font-weight: 500;
      font-family: inherit; cursor: pointer; transition: all .15s;
    }
    .brtm-note-edit-btn:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-light); }

    /*  Sections  */
    .brtm-nd-section {
      background: #fff; border: 1px solid var(--border); border-radius: 12px; overflow: hidden;
    }
    .brtm-nd-section-header {
      display: flex; align-items: center; gap: 8px;
      padding: 12px 16px; cursor: pointer; user-select: none;
      background: var(--surface); transition: background .12s;
    }
    .brtm-nd-section-header:hover { background: #eef3fb; }
    .brtm-nd-section-icon {
      width: 28px; height: 28px; border-radius: 7px;
      display: flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0;
    }
    .brtm-nd-section-title { font-size: 12.5px; font-weight: 700; color: var(--text-1); flex: 1; }
    .brtm-nd-section-count {
      font-size: 10.5px; font-weight: 700;
      background: var(--primary-light); color: var(--primary);
      border-radius: 99px; padding: 1px 8px;
    }
    .brtm-nd-chevron { font-size: 10px; color: var(--text-3); transition: transform .2s; }
    .brtm-nd-section.brtm-open .brtm-nd-chevron { transform: rotate(180deg); }
    .brtm-nd-section-body { display: none; }
    .brtm-nd-section.brtm-open .brtm-nd-section-body { display: block; }

    /*  Field rows  */
    .brtm-nd-field-row {
      display: flex; align-items: flex-start;
      padding: 8px 16px; border-bottom: 1px solid var(--border);
      transition: background .1s; position: relative;
    }
    .brtm-nd-field-row:last-child { border-bottom: none; }
    .brtm-nd-field-row:hover { background: var(--row-hover); }
    .brtm-nd-field-key {
      width: 110px; flex-shrink: 0;
      font-size: 12px; font-weight: 500; color: var(--text-2);
      padding-top: 2px; line-height: 1.5;
    }
    .brtm-nd-field-val {
      flex: 1; min-width: 0;
      font-size: 12.5px; color: var(--text-1); font-weight: 500;
      line-height: 1.5; word-break: break-word;
    }
    .brtm-nd-field-val.empty { color: var(--text-3); font-style: italic; font-weight: 400; }
    .brtm-nd-field-val a { color: var(--primary); text-decoration: none; }
    .brtm-nd-field-val a:hover { text-decoration: underline; }

    /*  Right panel  */
    .brtm-nd-right-panel {
      width: 400px; flex-shrink: 0;
      border-left: 1px solid var(--border); background: var(--card-bg);
      display: flex; flex-direction: column; overflow: hidden;
    }
    .brtm-nd-tabs {
      display: flex; border-bottom: 1px solid var(--border);
      flex-shrink: 0; overflow-x: auto; scrollbar-width: none;
    }
    .brtm-nd-tabs::-webkit-scrollbar { display: none; }
    .brtm-nd-tab-btn {
      padding: 10px 13px; font-size: 12.5px; font-weight: 600;
      font-family: inherit; color: var(--text-muted);
      background: none; border: none;
      border-bottom: 2px solid transparent;
      margin-bottom: -1px; cursor: pointer;
      transition: color .15s, border-color .15s; white-space: nowrap;
    }
    .brtm-nd-tab-btn:hover { color: var(--text-main); }
    .brtm-nd-tab-btn.brtm-active { color: var(--primary); border-bottom-color: var(--primary); }
    .brtm-nd-tab-panel {
      display: none; flex: 1; flex-direction: column;
      overflow-y: auto; min-height: 0;
      scrollbar-width: thin; scrollbar-color: rgba(0,0,0,.12) transparent;
    }
    .brtm-nd-tab-panel::-webkit-scrollbar { width: 4px; }
    .brtm-nd-tab-panel::-webkit-scrollbar-track { background: transparent; }
    .brtm-nd-tab-panel::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 99px; }
    .brtm-nd-tab-panel.brtm-active { display: flex; flex-direction: column; overflow-y: auto; }
    .brtm-nd-center-scroll { scrollbar-width: thin; scrollbar-color: rgba(0,0,0,.12) transparent; }
    .brtm-nd-center-scroll::-webkit-scrollbar { width: 4px; }
    .brtm-nd-center-scroll::-webkit-scrollbar-track { background: transparent; }
    .brtm-nd-center-scroll::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 99px; }

    /*  Changelog  */
    .brtm-nd-cl-list { padding: 10px 14px; display: flex; flex-direction: column; }
    .brtm-nd-cl-entry { display: flex; gap: 10px; position: relative; padding-bottom: 18px; }
    .brtm-nd-cl-entry:last-child { padding-bottom: 4px; }
    .brtm-nd-cl-entry::before {
      content: ''; position: absolute; left: 9px; top: 22px; bottom: 0;
      width: 1px; background: var(--border);
    }
    .brtm-nd-cl-entry:last-child::before { display: none; }
    .brtm-nd-cl-dot {
      width: 20px; height: 20px; border-radius: 50%;
      border: 2px solid var(--border); background: #fff;
      flex-shrink: 0; position: relative; z-index: 1; margin-top: 3px;
    }
    .brtm-nd-cl-dot.brtm-current { background: var(--primary); border-color: var(--primary); box-shadow: 0 0 0 3px rgba(27,111,190,.15); }
    .brtm-nd-cl-card {
      flex: 1; background: var(--card-bg); border: 1px solid var(--border);
      border-radius: 8px; padding: 8px 10px; min-width: 0;
    }
    .brtm-nd-cl-head { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; margin-bottom: 4px; }
    .brtm-nd-cl-user { font-size: 11.5px; font-weight: 700; color: var(--text-1); }
    .brtm-nd-cl-time { font-size: 10px; color: var(--text-3); white-space: nowrap; }
    .brtm-nd-cl-badge {
      display: inline-block; padding: 1px 7px; border-radius: 4px; margin-bottom: 4px;
      font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px;
    }
    .brtm-nd-cl-diff { font-size: 11.5px; color: var(--text-2); display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
    .brtm-nd-cl-old { padding: 1px 6px; border-radius: 4px; background: #FEF2F2; color: #B91C1C; text-decoration: line-through; }
    .brtm-nd-cl-new  { padding: 1px 6px; border-radius: 4px; background: #ECFDF5; color: #065F46; font-weight: 600; }

    .brtm-nd-att-upload {
      display: flex; align-items: center; justify-content: center; gap: 7px;
      border: 1.5px dashed var(--border); border-radius: 8px;
      padding: 18px; font-size: 12.5px; font-weight: 500;
      color: var(--text-muted); cursor: pointer;
      transition: border-color .15s, color .15s, background .15s;
      margin: 10px 14px;
    }
    .brtm-nd-att-upload:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-light); }

    /*  Recording player card  */
    .brtm-rec-player {
      background: #fff; border: 1px solid var(--border); border-radius: 12px;
      overflow: hidden; margin-bottom: 16px;
    }
    .brtm-rec-player-header {
      display: flex; align-items: center; gap: 8px;
      padding: 12px 16px; border-bottom: 1px solid var(--border);
      background: var(--surface);
    }
    .brtm-rec-waveform {
      display: flex; align-items: center; gap: 12px;
      padding: 16px 20px;
    }
    .brtm-rec-play-btn {
      width: 44px; height: 44px; border-radius: 50%; border: none;
      background: var(--primary); color: #fff; font-size: 18px;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; transition: background .15s; flex-shrink: 0;
    }
    .brtm-rec-play-btn:hover { background: var(--primary-dark); }
    .brtm-rec-bars {
      flex: 1; display: flex; align-items: center; gap: 2px; height: 36px;
    }
    .brtm-rec-bar {
      flex: 1; border-radius: 2px; background: #BFDBFE;
      transition: background .2s;
    }
    .brtm-rec-bar.played { background: var(--primary); }
    .brtm-rec-time {
      font-size: 12px; font-weight: 700; color: var(--text-1); white-space: nowrap;
    }

    .brtm-outcome-card {
      background: #fff; border: 1px solid var(--border); border-radius: 12px;
      overflow: hidden; margin-bottom: 16px;
    }

    @keyframes brtm-pulse {
      0%, 100% { box-shadow: 0 0 0 3px rgba(245,158,11,.2); }
      50%       { box-shadow: 0 0 0 6px rgba(245,158,11,.08); }
    }

    /*  Quick preview bodies  */
    .brtm-qp-call-note,
    .brtm-qp-task-desc,
    .brtm-qp-note-body,
    .brtm-qp-agenda,
    .brtm-qp-desc {
      font-size: 12.5px; color: var(--text-1); line-height: 1.75;
      white-space: pre-wrap; word-break: break-word;
    }
    .brtm-qp-note-body,
    .brtm-qp-desc { padding: 0; }

    /*  Snippet cells  */
    .brtm-note-snippet,
    .brtm-meet-snippet,
    .brtm-desc-snippet {
      font-size: 12px; color: var(--text-2);
      max-width: 220px;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .brtm-note-snippet { max-width: 300px; }
    .brtm-meet-snippet { max-width: 200px; }

    /*  Header filter group (shared listing page pattern)  */
    .brtm-header-filter-group {
      display: flex; align-items: center; gap: 8px; margin-left: 16px;
    }
    .brtm-header-right-group {
      display: flex; align-items: center; gap: 8px;
      margin-left: auto; margin-right: 12px;
    }
    .brtm-header-btn-rel { position: relative; }

    /*  Topbar panel trigger wrappers  */
    .brtm-topbar-panel-wrap { position: relative; }

    /*  Topbar icon with cursor pointer  */
    .brtm-avatar-btn { cursor: pointer; }

    /*  Logout color  */
    .brtm-logout-icon { color: #EF4444; }
    .brtm-logout-text { color: #EF4444; }

    /*  Chevron small  */
    .brtm-chevron-sm { font-size: 10px; margin-left: 2px; }

    /*  Dropdown not-found placeholder  */
    .brtm-dd-not-found {
      display: none;
      padding: 12px 14px;
      font-size: 12.5px;
      color: var(--text-2);
      text-align: center;
    }
    .brtm-dd-not-found i {
      display: block;
      font-size: 20px;
      margin-bottom: 6px;
      opacity: .4;
    }

    /*  Pagination ellipsis  */
    .brtm-page-ellipsis {
      padding: 0 4px;
      color: var(--text-2);
      line-height: 32px;
    }

    /*  Info circle flex-shrink  */
    .brtm-flex-shrink-0 { flex-shrink: 0; }

    /*  Table th min-width helpers  */
    .brtm-col-w-180 { min-width: 180px; }
    .brtm-col-w-200 { min-width: 200px; }

    /* 
       SHARED  SETTINGS PAGE
        */
    .brtm-settings-shell {
      flex: 1; display: flex; overflow: hidden; min-height: 0;
    }
    .brtm-settings-nav {
      width: 240px; flex-shrink: 0;
      background: #fff;
      border-right: 1px solid var(--border);
      display: flex; flex-direction: column;
      overflow-y: auto;
    }
    .brtm-settings-nav::-webkit-scrollbar { width: 0; }
    .brtm-settings-nav-header {
      padding: 18px 20px 10px;
      font-size: 11px; font-weight: 700;
      text-transform: uppercase; letter-spacing: .6px;
      color: var(--text-muted);
    }
    .brtm-settings-nav-group { margin-bottom: 4px; }
    .brtm-settings-nav-group-label {
      padding: 10px 20px 4px;
      font-size: 10.5px; font-weight: 700;
      text-transform: uppercase; letter-spacing: .5px;
      color: var(--text-light);
    }
    .brtm-settings-nav-item {
      display: flex; align-items: center; gap: 10px;
      padding: 8px 20px;
      font-size: 13px; font-weight: 500;
      color: var(--text-main);
      cursor: pointer; border-radius: 0;
      transition: background .12s, color .12s;
      border: none; background: none; width: 100%; text-align: left;
      font-family: var(--brtm-font-ui);
    }
    .brtm-settings-nav-item i {
      font-size: 15px; color: var(--text-muted);
      width: 18px; text-align: center; flex-shrink: 0;
    }
    .brtm-settings-nav-item:hover { background: var(--surface); color: var(--primary); }
    .brtm-settings-nav-item:hover i { color: var(--primary); }
    .brtm-settings-nav-item.brtm-active {
      background: var(--primary-light); color: var(--primary); font-weight: 600;
    }
    .brtm-settings-nav-item.brtm-active i { color: var(--primary); }
    .brtm-settings-nav-divider { height: 1px; background: var(--border); margin: 6px 0; }
    .brtm-settings-content {
      flex: 1; overflow-y: auto; min-width: 0;
      background: var(--surface);
      padding: 28px 32px 40px;
    }
    .brtm-settings-panel { display: none; }
    .brtm-settings-panel.brtm-active { display: block; }
    .brtm-settings-section-title {
      font-size: 18px; font-weight: 700; color: var(--text-main);
      margin-bottom: 4px;
    }
    .brtm-settings-section-sub {
      font-size: 13px; color: var(--text-muted);
      margin-bottom: 24px;
    }
    .brtm-settings-card {
      background: #fff; border: 1px solid var(--border);
      border-radius: 12px; padding: 22px 24px;
      margin-bottom: 20px; box-shadow: var(--shadow-sm);
    }
    .brtm-settings-card-title {
      font-size: 14px; font-weight: 700; color: var(--text-main);
      margin-bottom: 4px; display: flex; align-items: center; gap: 8px;
    }
    .brtm-settings-card-title i { color: var(--primary); font-size: 16px; }
    .brtm-settings-card-sub { font-size: 12.5px; color: var(--text-muted); margin-bottom: 18px; }
    .brtm-settings-form-row {
      display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
      margin-bottom: 14px;
    }
    .brtm-settings-form-row.brtm-full { grid-template-columns: 1fr; }
    .brtm-settings-field { display: flex; flex-direction: column; gap: 5px; }
    .brtm-settings-label {
      font-size: 12px; font-weight: 600; color: var(--text-muted);
      text-transform: uppercase; letter-spacing: .4px;
    }
    .brtm-settings-input,
    .brtm-settings-select,
    .brtm-settings-textarea {
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 8px; font-size: 13.5px; font-family: var(--brtm-font-ui);
      color: var(--text-main); padding: 9px 12px;
      outline: none; transition: border-color .15s, background .15s;
    }
    .brtm-settings-input:focus,
    .brtm-settings-select:focus,
    .brtm-settings-textarea:focus { border-color: var(--primary); background: #fff; }
    .brtm-settings-textarea { resize: vertical; min-height: 80px; }
    .brtm-settings-avatar-row {
      display: flex; align-items: center; gap: 18px; margin-bottom: 18px;
    }
    .brtm-settings-avatar {
      width: 68px; height: 68px; border-radius: 16px;
      background: var(--primary); color: #fff;
      font-size: 26px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; position: relative; cursor: pointer;
    }
    .brtm-settings-avatar-overlay {
      position: absolute; inset: 0; border-radius: 16px;
      background: rgba(0,0,0,0.4); color: #fff;
      display: flex; align-items: center; justify-content: center;
      font-size: 16px; opacity: 0; transition: opacity .15s;
    }
    .brtm-settings-avatar:hover .brtm-settings-avatar-overlay { opacity: 1; }
    .brtm-settings-avatar-name { font-size: 16px; font-weight: 700; color: var(--text-main); }
    .brtm-settings-avatar-role { font-size: 12.5px; color: var(--text-muted); margin-top: 2px; }
    .brtm-settings-avatar-actions { display: flex; gap: 8px; margin-top: 8px; }
    .brtm-settings-toggle-row {
      display: flex; align-items: center; justify-content: space-between;
      padding: 12px 0; border-bottom: 1px solid var(--border);
    }
    .brtm-settings-toggle-row:last-child { border-bottom: none; }
    .brtm-settings-toggle-info { flex: 1; min-width: 0; }
    .brtm-settings-toggle-label { font-size: 13.5px; font-weight: 600; color: var(--text-main); }
    .brtm-settings-toggle-desc { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
    .brtm-settings-toggle {
      position: relative; width: 42px; height: 24px; flex-shrink: 0; margin-left: 16px;
    }
    .brtm-settings-toggle input { display: none; }
    .brtm-settings-toggle-track {
      position: absolute; inset: 0;
      border-radius: 99px; background: #CBD5E1;
      transition: background .2s; cursor: pointer;
    }
    .brtm-settings-toggle input:checked ~ .brtm-settings-toggle-track { background: var(--primary); }
    .brtm-settings-toggle-thumb {
      position: absolute; top: 3px; left: 3px;
      width: 18px; height: 18px;
      border-radius: 50%; background: #fff;
      box-shadow: 0 1px 3px rgba(0,0,0,.18);
      transition: left .2s; pointer-events: none;
    }
    .brtm-settings-toggle input:checked ~ .brtm-settings-toggle-thumb { left: 21px; }
    .brtm-settings-actions {
      display: flex; align-items: center; justify-content: flex-end;
      gap: 8px; margin-top: 8px;
    }
    .brtm-settings-btn {
      display: inline-flex; align-items: center; gap: 6px;
      height: 36px; padding: 0 18px; border-radius: 8px;
      font-size: 13.5px; font-weight: 600; font-family: var(--brtm-font-ui);
      cursor: pointer; border: 1px solid var(--border);
      background: var(--surface); color: var(--text-main);
      transition: all .15s;
    }
    .brtm-settings-btn:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-light); }
    .brtm-settings-btn.brtm-primary { background: var(--primary); color: #fff; border-color: var(--primary); }
    .brtm-settings-btn.brtm-primary:hover { background: var(--primary-dark); border-color: var(--primary-dark); }
    .brtm-settings-btn.brtm-danger { background: var(--sev-crit); color: #fff; border-color: #EF4444; }
    .brtm-settings-btn.brtm-danger:hover { background: #DC2626; border-color: #DC2626; }
    .brtm-settings-info-badge {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 4px 10px; border-radius: 99px; font-size: 11.5px; font-weight: 600;
    }
    .brtm-settings-info-badge.brtm-green { background: var(--accent-light); color: #065F46; }
    .brtm-settings-info-badge.brtm-blue  { background: var(--primary-light); color: var(--primary-dark); }
    .brtm-settings-info-badge.brtm-warn  { background: #FEF3C7; color: #92400E; }
    .brtm-settings-danger-card {
      border: 1px solid #FECACA; border-radius: 12px;
      padding: 22px 24px; margin-bottom: 20px; background: #FFF5F5;
    }
    .brtm-settings-danger-title {
      font-size: 14px; font-weight: 700; color: #B91C1C;
      margin-bottom: 4px; display: flex; align-items: center; gap: 7px;
    }
    .brtm-settings-danger-sub { font-size: 12.5px; color: #DC2626; margin-bottom: 16px; }
    .brtm-settings-danger-row {
      display: flex; align-items: center; justify-content: space-between;
      padding: 10px 0; border-bottom: 1px solid #FCA5A5; gap: 16px;
    }
    .brtm-settings-danger-row:last-child { border-bottom: none; }
    .brtm-settings-danger-row-label { font-size: 13.5px; font-weight: 600; color: var(--text-main); }
    .brtm-settings-danger-row-desc  { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
    .brtm-settings-apikey-row {
      display: flex; align-items: center; gap: 10px; margin-bottom: 14px;
    }
    .brtm-settings-apikey-field {
      flex: 1; background: var(--surface);
      border: 1px solid var(--border); border-radius: 8px;
      padding: 9px 14px; font-size: 13px; font-family: monospace;
      color: var(--text-main); outline: none; letter-spacing: .5px;
    }
    .brtm-settings-table {
      width: 100%; border-collapse: collapse; font-size: 13.5px;
    }
    .brtm-settings-table thead tr { background: #DBEEFF; border-bottom: 1px solid var(--border); }
    .brtm-settings-table thead th {
      padding: 10px 14px; font-size: 11px; font-weight: 700;
      text-transform: uppercase; letter-spacing: .5px; color: var(--text-muted);
      white-space: nowrap;
    }
    .brtm-settings-table tbody tr { border-bottom: 1px solid var(--border); transition: background .12s; }
    .brtm-settings-table tbody tr:last-child { border-bottom: none; }
    .brtm-settings-table tbody tr:hover { background: var(--row-hover); }
    .brtm-settings-table tbody td { padding: 11px 14px; vertical-align: middle; }
    .brtm-settings-member-av {
      width: 32px; height: 32px; border-radius: 50%;
      color: #fff; font-size: 12px; font-weight: 700;
      display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    }
    .brtm-settings-member-name { font-weight: 600; color: var(--text-main); line-height: 1.2; }
    .brtm-settings-member-email { font-size: 11.5px; color: var(--text-muted); }
    .brtm-settings-role-badge {
      display: inline-block; padding: 2px 9px; border-radius: 99px; font-size: 11px; font-weight: 700;
    }
    .brtm-settings-role-badge.brtm-admin   { background: #EDE9FE; color: #7C3AED; }
    .brtm-settings-role-badge.brtm-manager { background: var(--primary-light); color: var(--primary-dark); }
    .brtm-settings-role-badge.brtm-member  { background: var(--surface); color: var(--text-muted); border: 1px solid var(--border); }
    .brtm-settings-plan-card {
      background: linear-gradient(135deg, #1B6FBE 0%, #134E8E 100%);
      border-radius: 14px; padding: 22px 24px;
      display: flex; align-items: center; justify-content: space-between;
      gap: 16px; margin-bottom: 20px;
    }
    .brtm-settings-plan-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: rgba(255,255,255,.65); margin-bottom: 4px; }
    .brtm-settings-plan-name  { font-size: 22px; font-weight: 700; color: #fff; }
    .brtm-settings-plan-desc  { font-size: 12.5px; color: rgba(255,255,255,.75); margin-top: 4px; }
    .brtm-settings-plan-actions { display: flex; gap: 8px; flex-shrink: 0; }
    .brtm-settings-plan-btn {
      display: inline-flex; align-items: center; gap: 6px;
      height: 36px; padding: 0 18px; border-radius: 8px;
      font-size: 13px; font-weight: 600; font-family: var(--brtm-font-ui); cursor: pointer; transition: all .15s;
    }
    .brtm-settings-plan-btn.brtm-white { background: #fff; color: var(--primary); border: 1.5px solid rgba(255,255,255,0.4); }
    .brtm-settings-plan-btn.brtm-white:hover { background: rgba(255,255,255,.9); }
    .brtm-settings-plan-btn.brtm-ghost { background: rgba(255,255,255,.12); color: #fff; border: 1.5px solid rgba(255,255,255,.25); }
    .brtm-settings-plan-btn.brtm-ghost:hover { background: rgba(255,255,255,.22); }
    .brtm-settings-notif-section { margin-bottom: 8px; }
    .brtm-settings-notif-section-label {
      font-size: 11px; font-weight: 700; text-transform: uppercase;
      letter-spacing: .5px; color: var(--text-light); padding: 12px 0 6px;
    }
    .brtm-settings-theme-swatches { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
    .brtm-settings-swatch {
      width: 34px; height: 34px; border-radius: 50%;
      border: 3px solid transparent; cursor: pointer;
      transition: transform .15s, box-shadow .15s;
    }
    .brtm-settings-swatch:hover { transform: scale(1.1); }
    .brtm-settings-swatch.brtm-selected { border-color: #fff; box-shadow: 0 0 0 3px var(--primary); }
    .brtm-settings-search-bar {
      display: flex; align-items: center; gap: 8px;
      background: #fff; border: 1px solid var(--border);
      border-radius: 8px; padding: 7px 12px;
      margin-bottom: 20px; box-shadow: var(--shadow-sm);
    }
    .brtm-settings-search-bar i { color: var(--text-muted); font-size: 15px; flex-shrink: 0; }
    .brtm-settings-search-bar input {
      flex: 1; border: none; outline: none; font-size: 13.5px;
      font-family: var(--brtm-font-ui); color: var(--text-main);
      background: transparent;
    }
    .brtm-settings-search-bar input::placeholder { color: var(--text-light); }
    .brtm-settings-page-header {
      display: flex; align-items: center; justify-content: space-between;
      padding: 14px 28px;
      background: #fff; border-bottom: 1px solid var(--border); flex-shrink: 0;
    }
    .brtm-settings-page-header-left { display: flex; align-items: center; gap: 8px; }
    .brtm-settings-page-header h1 { font-size: 18px; font-weight: 700; color: var(--text-main); margin: 0; }
    .brtm-settings-integration-row {
      display: flex; align-items: center; gap: 14px;
      padding: 14px 0; border-bottom: 1px solid var(--border);
    }
    .brtm-settings-integration-row:last-child { border-bottom: none; }
    .brtm-settings-integration-logo {
      width: 40px; height: 40px; border-radius: 10px;
      border: 1px solid var(--border); background: var(--surface);
      display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0;
    }
    .brtm-settings-integration-info { flex: 1; min-width: 0; }
    .brtm-settings-integration-name { font-size: 13.5px; font-weight: 600; color: var(--text-main); }
    .brtm-settings-integration-desc { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
    .brtm-settings-integration-status {
      font-size: 11.5px; font-weight: 700;
      display: flex; align-items: center; gap: 5px; flex-shrink: 0;
    }
    .brtm-settings-integration-status.brtm-connected { color: var(--accent); }
    .brtm-settings-integration-status.brtm-disconnected { color: var(--text-light); }
    .brtm-settings-integration-status::before {
      content: ''; width: 6px; height: 6px; border-radius: 50%;
      background: currentColor; flex-shrink: 0;
    }
    .brtm-co-overlay {
      display: none; position: fixed; inset: 0;
      background: rgba(0,0,0,0.55); z-index: 3000;
      align-items: center; justify-content: center;
    }
    .brtm-co-overlay.brtm-show { display: flex; }

    /* 
       SHARED  SURVEY DETAIL PAGE
        */
    .brtm-sv-status {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700; white-space: nowrap;
    }
    .brtm-sv-status.draft    { background: #F1F5F9; color: #475569; }
    .brtm-sv-status.active   { background: #DCFCE7; color: #15803D; }
    .brtm-sv-status.closed   { background: #FEE2E2; color: #B91C1C; }
    .brtm-sv-status.archived { background: #FEF9C3; color: #A16207; }
    .brtm-sv-type { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 99px; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
    .brtm-sv-type.csat     { background: #EDE9FE; color: #6D28D9; }
    .brtm-sv-type.nps      { background: #DBEAFE; color: #1D4ED8; }
    .brtm-sv-type.product  { background: #CCFBF1; color: #0F766E; }
    .brtm-sv-type.market   { background: #FEF3C7; color: #B45309; }
    .brtm-sv-type.employee { background: #FCE7F3; color: #9D174D; }
    .brtm-sv-type.internal { background: #E0F2FE; color: #0369A1; }
    .brtm-sv-ctr-bar {
      display: flex; align-items: center; gap: 0;
      background: #fff; border-bottom: 1px solid var(--border);
      padding: 0 24px; flex-shrink: 0;
      position: sticky; top: 0; z-index: 20;
    }
    .brtm-sv-ctr-tab {
      display: inline-flex; align-items: center; gap: 7px;
      padding: 13px 0; margin-right: 30px;
      font-size: 13px; font-weight: 600; font-family: inherit;
      color: var(--text-muted); background: none; border: none;
      border-bottom: 3px solid transparent; margin-bottom: -1px;
      cursor: pointer; white-space: nowrap; transition: color .15s, border-color .15s;
    }
    .brtm-sv-ctr-tab i { font-size: 14px; }
    .brtm-sv-ctr-tab:hover { color: var(--text-main); }
    .brtm-sv-ctr-tab.brtm-active { color: var(--primary); border-bottom-color: var(--primary); }
    .brtm-sv-ctr-cnt {
      font-size: 10.5px; font-weight: 700;
      background: var(--surface); color: var(--text-3);
      padding: 1px 7px; border-radius: 99px;
    }
    .brtm-sv-ctr-tab.brtm-active .brtm-sv-ctr-cnt { background: var(--primary-light); color: var(--primary); }
    .brtm-sv-ctr-panel { display: none; }
    .brtm-sv-ctr-panel.brtm-active { display: block; }
    .brtm-sv-hdr { background: #fff; border-bottom: 1px solid var(--border); flex-shrink: 0; }
    .brtm-sv-hdr-inner { padding: 22px 28px 18px; border-left: 4px solid var(--primary); }
    .brtm-sv-title-edit {
      font-size: 22px; font-weight: 700; color: var(--text-1);
      line-height: 1.3; border: none; outline: none; background: transparent;
      font-family: inherit; width: 100%; padding: 0;
    }
    .brtm-sv-title-edit:focus { color: var(--primary); }
    .brtm-sv-desc-edit {
      font-size: 13.5px; color: var(--text-2); line-height: 1.7;
      border: none; outline: none; background: transparent;
      font-family: inherit; width: 100%; padding: 0; resize: none;
    }
    .brtm-sv-kpi { display: flex; border-top: 1px solid var(--border); }
    .brtm-sv-kpi-item {
      flex: 1; display: flex; flex-direction: column; align-items: center;
      padding: 12px 8px; border-right: 1px solid var(--border); text-align: center;
    }
    .brtm-sv-kpi-item:last-child { border-right: none; }
    .brtm-sv-kpi-val { font-size: 22px; font-weight: 700; color: var(--text-1); line-height: 1; }
    .brtm-sv-kpi-lbl { font-size: 10px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .5px; margin-top: 4px; }
    .brtm-sv-q {
      background: #fff; border: 1px solid var(--border);
      border-radius: 10px; overflow: hidden; margin-bottom: 10px;
      transition: box-shadow .15s, border-color .15s;
    }
    .brtm-sv-q:focus-within,
    .brtm-sv-q:hover { border-color: var(--primary); box-shadow: 0 2px 12px rgba(27,111,190,.1); }
    .brtm-sv-q-top { display: flex; align-items: flex-start; gap: 10px; padding: 16px 16px 4px; }
    .brtm-sv-q-num {
      width: 26px; height: 26px; border-radius: 7px;
      background: var(--primary); color: #fff; font-size: 11px; font-weight: 700;
      display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    }
    .brtm-sv-q-txt-field {
      flex: 1; font-size: 14px; font-weight: 600; color: var(--text-1);
      line-height: 1.5; border: none; outline: none; background: transparent;
      font-family: inherit; padding: 0; resize: none;
    }
    .brtm-sv-q-type-select {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 4px 10px; border-radius: 7px; font-size: 11.5px; font-weight: 600;
      background: var(--surface); color: var(--text-2);
      border: 1px solid var(--border); flex-shrink: 0; white-space: nowrap;
      cursor: pointer; font-family: inherit; appearance: none;
    }
    .brtm-sv-q-body { padding: 8px 16px 14px 52px; }
    .brtm-sv-q-footer {
      display: flex; align-items: center; gap: 10px;
      padding: 8px 16px; border-top: 1px solid var(--border); background: var(--surface);
    }
    .brtm-sv-req-badge { font-size: 10.5px; font-weight: 700; color: #DC2626; background: #FEF2F2; padding: 2px 8px; border-radius: 4px; display: inline-flex; align-items: center; gap: 3px; }
    .brtm-sv-opt-badge  { font-size: 10.5px; font-weight: 600; color: var(--text-3); background: var(--surface); border: 1px solid var(--border); padding: 2px 8px; border-radius: 4px; }
    .brtm-sv-opt { display: flex; align-items: center; gap: 10px; padding: 7px 0; font-size: 13px; color: var(--text-1); border-bottom: 1px solid var(--border); }
    .brtm-sv-opt:last-child { border-bottom: none; }
    .brtm-sv-opt-dot { width: 16px; height: 16px; border-radius: 50%; border: 2px solid #CBD5E1; flex-shrink: 0; }
    .brtm-sv-opt-box { width: 16px; height: 16px; border-radius: 3px; border: 2px solid #CBD5E1; flex-shrink: 0; }
    .brtm-sv-opt-inp { flex: 1; border: none; background: transparent; font-size: 13px; color: var(--text-1); font-family: inherit; outline: none; padding: 0; min-width: 0; }
    .brtm-sv-opt-inp:focus { background: var(--surface); border-radius: 4px; padding: 0 4px; outline: 1px solid var(--primary); }
    .brtm-sv-opt-del { width: 22px; height: 22px; border: none; background: none; color: var(--text-3); cursor: pointer; border-radius: 4px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 15px; line-height: 1; padding: 0; }
    .brtm-sv-opt-del:hover { color: #DC2626; background: #FEF2F2; }
    .brtm-sv-req-badge, .brtm-sv-opt-badge { cursor: pointer; user-select: none; }
    .brtm-sv-stars { display: flex; gap: 6px; }
    .brtm-sv-star { font-size: 28px; color: #F59E0B; line-height: 1; }
    .brtm-sv-star.empty { color: #D1D5DB; }
    .brtm-sv-nps-row { display: flex; gap: 4px; flex-wrap: wrap; }
    .brtm-sv-nps-n { width: 36px; height: 36px; border-radius: 7px; border: 1.5px solid var(--border); font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
    .brtm-sv-nps-n.det { background: #FEE2E2; border-color: #FECACA; color: #B91C1C; }
    .brtm-sv-nps-n.pas { background: #FEF9C3; border-color: #FDE68A; color: #92400E; }
    .brtm-sv-nps-n.pro { background: #DCFCE7; border-color: #BBF7D0; color: #15803D; }
    .brtm-sv-nps-lbl { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--text-3); margin-top: 6px; }
    .brtm-sv-resp-bar { display: flex; gap: 6px; padding: 16px 0 12px; }
    .brtm-sv-resp-subtab {
      padding: 6px 16px; border-radius: 8px; border: 1px solid var(--border);
      background: var(--surface); color: var(--text-2);
      font-size: 12.5px; font-weight: 600; font-family: inherit; cursor: pointer; transition: all .12s;
    }
    .brtm-sv-resp-subtab.brtm-active, .brtm-sv-resp-subtab:hover { background: var(--primary-light); color: var(--primary); border-color: rgba(27,111,190,.3); }
    .brtm-sv-resp-sub { display: none; }
    .brtm-sv-resp-sub.brtm-active { display: block; }
    .brtm-sv-sum { background: #fff; border: 1px solid var(--border); border-radius: 10px; margin-bottom: 10px; overflow: hidden; }
    .brtm-sv-sum-hdr { display: flex; align-items: flex-start; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--border); background: var(--surface); }
    .brtm-sv-sum-num { width: 22px; height: 22px; border-radius: 5px; background: var(--primary); color: #fff; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .brtm-sv-sum-q   { flex: 1; font-size: 12.5px; font-weight: 600; color: var(--text-1); line-height: 1.4; }
    .brtm-sv-sum-n   { font-size: 11px; color: var(--text-3); white-space: nowrap; }
    .brtm-sv-sum-body { padding: 14px 16px; }
    .brtm-sv-bar-row  { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
    .brtm-sv-bar-row:last-child { margin-bottom: 0; }
    .brtm-sv-bar-lbl  { font-size: 12px; color: var(--text-2); min-width: 160px; }
    .brtm-sv-bar-track { flex: 1; height: 10px; background: var(--surface); border-radius: 99px; overflow: hidden; }
    .brtm-sv-bar-fill  { height: 100%; border-radius: 99px; background: var(--primary); }
    .brtm-sv-bar-val   { font-size: 11.5px; font-weight: 700; color: var(--text-1); min-width: 44px; text-align: right; }
    .brtm-sv-resp-item { background: #fff; border: 1px solid var(--border); border-radius: 10px; margin-bottom: 8px; overflow: hidden; }
    .brtm-sv-resp-hdr { display: flex; align-items: center; gap: 10px; padding: 10px 14px; cursor: pointer; user-select: none; background: var(--surface); transition: background .12s; }
    .brtm-sv-resp-hdr:hover { background: #eef3fb; }
    .brtm-sv-resp-av { width: 28px; height: 28px; border-radius: 7px; font-size: 11px; font-weight: 700; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .brtm-sv-resp-name { flex: 1; font-size: 12.5px; font-weight: 600; color: var(--text-1); }
    .brtm-sv-resp-chev { font-size: 10px; color: var(--text-3); transition: transform .2s; }
    .brtm-sv-resp-item.brtm-open .brtm-sv-resp-chev { transform: rotate(180deg); }
    .brtm-sv-resp-body { display: none; padding: 12px 14px 14px; border-top: 1px solid var(--border); }
    .brtm-sv-resp-item.brtm-open .brtm-sv-resp-body { display: block; }
    .brtm-sv-ans-row { padding: 7px 0; border-bottom: 1px solid var(--border); }
    .brtm-sv-ans-row:last-child { border-bottom: none; padding-bottom: 0; }
    .brtm-sv-ans-q { font-size: 11.5px; font-weight: 600; color: var(--text-2); margin-bottom: 3px; }
    .brtm-sv-ans-a { font-size: 12.5px; color: var(--text-1); line-height: 1.5; }
    .brtm-sv-progress { width: 100%; height: 8px; background: var(--surface); border-radius: 99px; overflow: hidden; margin-top: 6px; }
    .brtm-sv-progress-fill { height: 100%; border-radius: 99px; background: var(--primary); }
    .brtm-sv-sett { background: #fff; border: 1px solid var(--border); border-radius: 10px; margin-bottom: 12px; overflow: hidden; }
    .brtm-sv-sett-hdr { padding: 12px 16px; border-bottom: 1px solid var(--border); background: var(--surface); font-size: 12.5px; font-weight: 700; color: var(--text-1); display: flex; align-items: center; gap: 7px; }
    .brtm-sv-sett-body { padding: 14px 16px; }
    .brtm-sv-sett-row { display: flex; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid var(--border); gap: 12px; }
    .brtm-sv-sett-row:last-child { border-bottom: none; padding-bottom: 0; }
    .brtm-sv-sett-lbl { font-size: 12px; font-weight: 500; color: var(--text-2); min-width: 130px; flex-shrink: 0; padding-top: 2px; }
    .brtm-sv-sett-val { flex: 1; font-size: 12.5px; color: var(--text-1); }
    .brtm-sv-link-box { display: flex; align-items: center; gap: 10px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; }
    .brtm-sv-link-url { flex: 1; font-size: 12.5px; color: var(--primary); font-weight: 500; word-break: break-all; }
    .brtm-rate-bar { display: flex; align-items: center; gap: 6px; }
    .brtm-rate-track { width: 60px; height: 6px; background: var(--surface); border-radius: 99px; overflow: hidden; flex-shrink: 0; }
    .brtm-rate-fill { height: 100%; border-radius: 99px; background: var(--primary); }
    .brtm-rate-pct { font-size: 11.5px; font-weight: 700; color: var(--text-1); }
    .brtm-survey-name-link {
      font-size: 13px; font-weight: 600; color: var(--primary);
      text-decoration: none; white-space: nowrap; overflow: hidden;
      text-overflow: ellipsis; max-width: 220px; display: block;
    }
    .brtm-survey-name-link:hover { text-decoration: underline; }

    /* 
       SHARED  DEALS PAGE SPECIFIC
        */
    .brtm-stage-pill {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 2px 8px; border-radius: 99px;
      font-size: 11px; font-weight: 600; white-space: nowrap;
    }
    .brtm-stage-pill.prospecting  { background: #DBEAFE; color: #1D4ED8; }
    .brtm-stage-pill.qualification{ background: #EDE9FE; color: #6D28D9; }
    .brtm-stage-pill.proposal     { background: #FEF3C7; color: #B45309; }
    .brtm-stage-pill.negotiation  { background: #FEF9C3; color: #A16207; }
    .brtm-stage-pill.closed-won   { background: #DCFCE7; color: #15803D; }
    .brtm-stage-pill.closed-lost  { background: #FEE2E2; color: #B91C1C; }
    .brtm-deal-type-pill {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 2px 8px; border-radius: 99px;
      font-size: 11px; font-weight: 600; white-space: nowrap;
    }
    .brtm-deal-type-pill.new-business { background: #EFF6FF; color: #1E40AF; }
    .brtm-deal-type-pill.existing     { background: #F0FDF4; color: #15803D; }
    .brtm-deal-type-pill.renewal      { background: #F5F3FF; color: #6D28D9; }
    .brtm-amount-val { font-size: 12.5px; font-weight: 700; color: var(--text-1); }
    .brtm-prob-badge { display: inline-flex; align-items: center; gap: 3px; font-size: 11.5px; font-weight: 700; color: var(--primary); }
    .brtm-close-date { font-size: 12.5px; color: var(--text-1); }
    .brtm-close-date.overdue { color: #B91C1C; font-weight: 600; }
    .brtm-pipeline-chip {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 2px 8px; border-radius: 99px; font-size: 11px; font-weight: 600;
      background: #EEF2FF; color: #4338CA;
    }

    /* 
       SHARED  CALLS PAGE SPECIFIC
        */
    .brtm-rec-pill {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11px; font-weight: 700;
      border: 1px solid transparent; font-family: inherit; cursor: pointer;
      transition: filter .15s; white-space: nowrap; line-height: 1.4; background: none;
    }
    .brtm-rec-pill.has-rec  { background: #DBEAFE; color: #1D4ED8; border-color: #BFDBFE; }
    .brtm-rec-pill.has-rec:hover { filter: brightness(.94); }
    .brtm-rec-pill.no-rec   { background: #F1F5F9; color: #94A3B8; border-color: #E2E8F0; cursor: default; }

    /* 
       SHARED  TASKS PAGE SPECIFIC
        */
    .brtm-due-chip {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 2px 8px; border-radius: 99px;
      font-size: 11px; font-weight: 600; white-space: nowrap;
    }
    .brtm-due-chip.overdue { background: #FEE2E2; color: #B91C1C; }
    .brtm-due-chip.soon    { background: #FEF9C3; color: #A16207; }
    .brtm-due-chip.normal  { background: #F1F5F9; color: #475569; }
    .brtm-due-chip.done    { background: #DCFCE7; color: #15803D; }

    /* 
       SHARED  MEETINGS PAGE SPECIFIC
        */
    .brtm-attendee-stack { display: inline-flex; align-items: center; }
    .brtm-attendee-stack .brtm-av {
      width: 22px; height: 22px; border-radius: 50%;
      border: 2px solid #fff;
      color: #fff; font-size: 8px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      margin-left: -6px; flex-shrink: 0;
    }
    .brtm-attendee-stack .brtm-av:first-child { margin-left: 0; }
    .brtm-attendee-stack .brtm-av-more {
      background: var(--surface); color: var(--text-2);
      border: 2px solid #fff; font-size: 8px; font-weight: 700;
    }
    .brtm-ci-pill {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11px; font-weight: 700;
      border: 1px solid transparent; font-family: inherit; cursor: pointer;
      transition: filter .15s; white-space: nowrap; line-height: 1.4;
    }
    .brtm-ci-pill.ci-none { background: #DCFCE7; color: #15803D; border-color: #BBF7D0; }
    .brtm-ci-pill.ci-none:hover { filter: brightness(.94); }
    .brtm-ci-pill.ci-in   { background: #FFFBEB; color: #92400E; border-color: #FDE68A; }
    .brtm-ci-pill.ci-in:hover { filter: brightness(.96); }
    .brtm-ci-pill.ci-out  { background: #EFF6FF; color: #1D4ED8; border-color: #BFDBFE; }
    .brtm-ci-pill.ci-out:hover { filter: brightness(.96); }
    .brtm-ci-drawer-overlay {
      position: fixed; inset: 0; background: rgba(15,23,42,.45);
      z-index: 1050; opacity: 0; pointer-events: none; transition: opacity .25s;
    }
    .brtm-ci-drawer-overlay.brtm-show { opacity: 1; pointer-events: all; }
    .brtm-ci-drawer {
      position: fixed; top: 0; right: 0; bottom: 0; width: 500px;
      background: #fff; box-shadow: -4px 0 28px rgba(0,0,0,.13);
      z-index: 1055; display: flex; flex-direction: column;
      transform: translateX(100%);
      transition: transform .28s cubic-bezier(.4,0,.2,1);
      overflow: hidden;
    }
    .brtm-ci-drawer.brtm-open { transform: translateX(0); }
    .brtm-ci-gps-panel {
      position: absolute; inset: 0; background: #fff; z-index: 10;
      display: flex; flex-direction: column;
      transform: translateY(12px); opacity: 0; pointer-events: none;
      transition: transform .22s ease, opacity .22s ease;
      overflow: hidden;
    }
    .brtm-ci-gps-panel.brtm-open { transform: translateY(0); opacity: 1; pointer-events: all; }

    /* 
       SURVEY LISTING  NEW SURVEY DRAWER FORMS
        */
    #newSurveyDrawer .form-control,
    #newSurveyDrawer .form-select,
    #newSurveyDrawer .form-label,
    #newSurveyDrawer .form-check-label,
    #newSurveyDrawer .btn,
    #newSurveyDrawer textarea,
    #newSurveyDrawer input,
    #newSurveyDrawer select {
      font-family: var(--brtm-font-ui);
      font-size: 13px;
    }
    #newSurveyDrawer .form-label {
      font-size: 12px; font-weight: 600; color: var(--text-1); margin-bottom: 5px;
    }
    #newSurveyDrawer .form-control,
    #newSurveyDrawer .form-select { font-size: 13px; color: var(--text-1); }
    #newSurveyDrawer .form-control::placeholder { color: var(--text-muted); }
    .brtm-nsv-label {
      font-size: 11px; font-weight: 700; text-transform: uppercase;
      letter-spacing: .5px; color: var(--text-3); margin-bottom: 6px; display: block;
    }
    .brtm-nsv-section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
    .brtm-nsv-section-title {
      font-size: 11px; font-weight: 700; text-transform: uppercase;
      letter-spacing: .5px; color: var(--text-2); display: flex; align-items: center; gap: 6px;
    }
    .brtm-nsv-section-title i { font-size: 12px; }
    .brtm-nsv-section-divider { border: none; border-top: 1px solid var(--border); margin: 4px 0 16px; }
    .brtm-nsv-qcard {
      background: #fff; border: 1.5px solid var(--border); border-radius: 10px;
      padding: 12px 14px; display: flex; flex-direction: column; gap: 10px;
      transition: border-color .15s, box-shadow .15s;
    }
    .brtm-nsv-qcard:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); }
    .brtm-nsv-qcard-top { display: flex; align-items: flex-start; gap: 8px; }
    .brtm-nsv-qnum {
      min-width: 22px; height: 22px; border-radius: 6px;
      background: var(--primary-light); color: var(--primary);
      font-size: 11px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; margin-top: 2px;
    }
    .brtm-nsv-qtext {
      flex: 1; border: none; outline: none; resize: none;
      font-family: inherit; font-size: 13px; font-weight: 500;
      color: var(--text-1); background: transparent;
      line-height: 1.5; min-height: 40px;
    }
    .brtm-nsv-qtext::placeholder { color: var(--text-muted); font-weight: 400; }
    .brtm-nsv-qdel {
      background: none; border: none; padding: 2px 4px; cursor: pointer;
      color: var(--text-3); font-size: 13px; line-height: 1;
      border-radius: 5px; flex-shrink: 0; transition: background .12s, color .12s;
    }
    .brtm-nsv-qdel:hover { background: #FEE2E2; color: #B91C1C; }
    .brtm-nsv-qcard-bottom { display: flex; align-items: center; gap: 8px; }
    .brtm-nsv-qtype {
      flex: 1; font-family: inherit; font-size: 12px; font-weight: 500;
      color: var(--text-1); background: var(--surface);
      border: 1px solid var(--border); border-radius: 7px;
      padding: 4px 8px; cursor: pointer; outline: none; transition: border-color .15s;
    }
    .brtm-nsv-qtype:focus { border-color: var(--primary); }
    .brtm-nsv-qrequired {
      display: flex; align-items: center; gap: 5px;
      font-size: 11.5px; color: var(--text-2); white-space: nowrap; cursor: pointer; user-select: none;
    }
    .brtm-nsv-qrequired input { cursor: pointer; accent-color: var(--primary); }
    .brtm-nsv-add-q-btn {
      width: 100%; padding: 8px 0; border-radius: 8px;
      border: 1.5px dashed var(--border); background: transparent;
      font-family: inherit; font-size: 12.5px; font-weight: 600;
      color: var(--primary); cursor: pointer;
      display: flex; align-items: center; justify-content: center; gap: 6px;
      transition: background .15s, border-color .15s;
    }
    .brtm-nsv-add-q-btn:hover { background: var(--primary-light); border-color: var(--primary); }
    .brtm-nsv-opts-wrap { display: flex; flex-direction: column; gap: 6px; }
    .brtm-nsv-opt-row { display: flex; align-items: center; gap: 7px; }
    .brtm-nsv-opt-input {
      flex: 1; border: none; border-bottom: 1.5px solid var(--border);
      outline: none; font-family: inherit; font-size: 12.5px; color: var(--text-1);
      background: transparent; padding: 2px 0;
    }
    .brtm-nsv-opt-input:focus { border-bottom-color: var(--primary); }
    .brtm-nsv-opt-del {
      width: 20px; height: 20px; border: none; background: none;
      color: var(--text-3); cursor: pointer; border-radius: 4px;
      display: flex; align-items: center; justify-content: center; font-size: 13px;
      padding: 0; transition: color .12s, background .12s; flex-shrink: 0;
    }
    .brtm-nsv-opt-del:hover { color: #DC2626; background: #FEF2F2; }

    /* 
       CALL DETAIL  STATUS / DIR / TYPE PILLS
        */
    .brtm-call-status {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700; white-space: nowrap;
    }
    .brtm-call-status.completed  { background:#DCFCE7; color:#15803D; }
    .brtm-call-status.missed     { background:#FEE2E2; color:#B91C1C; }
    .brtm-call-status.no-answer  { background:#FEF9C3; color:#A16207; }
    .brtm-call-status.scheduled  { background:#DBEAFE; color:#1D4ED8; }
    .brtm-call-status.cancelled  { background:#F1F5F9; color:#64748B; }
    .brtm-call-dir {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700; white-space: nowrap;
    }
    .brtm-call-dir.outbound { background:#CCFBF1; color:#0F766E; }
    .brtm-call-dir.inbound  { background:#EDE9FE; color:#6D28D9; }
    .brtm-call-type {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700; white-space: nowrap;
    }
    .brtm-call-type.sales-call   { background:#EFF6FF; color:#1E40AF; }
    .brtm-call-type.support-call { background:#FEF3C7; color:#B45309; }
    .brtm-call-type.follow-up    { background:#F0FDF4; color:#15803D; }
    .brtm-call-type.demo-call    { background:#F5F3FF; color:#6D28D9; }
    .brtm-call-type.escalation   { background:#FFF1F2; color:#BE123C; }

    /* 
       TASK DETAIL  STATUS / PRIORITY / TYPE PILLS
        */
    .brtm-task-status {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700; white-space: nowrap;
    }
    .brtm-task-status.not-started { background: #F1F5F9; color: #64748B; }
    .brtm-task-status.in-progress { background: #DBEAFE; color: #1D4ED8; }
    .brtm-task-status.completed   { background: #DCFCE7; color: #15803D; }
    .brtm-task-status.overdue     { background: #FEE2E2; color: #B91C1C; }
    .brtm-task-status.deferred    { background: #FEF9C3; color: #A16207; }
    .brtm-task-priority {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700; white-space: nowrap;
    }
    .brtm-task-priority.high   { background: #FEE2E2; color: #B91C1C; }
    .brtm-task-priority.medium { background: #FEF9C3; color: #A16207; }
    .brtm-task-priority.low    { background: #DCFCE7; color: #15803D; }
    .brtm-task-priority.none   { background: #F1F5F9; color: #64748B; }
    .brtm-task-type {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700; white-space: nowrap;
    }
    .brtm-task-type.follow-up   { background: #F0FDF4; color: #15803D; }
    .brtm-task-type.general     { background: #EFF6FF; color: #1E40AF; }
    .brtm-task-type.integration { background: #F5F3FF; color: #6D28D9; }
    .brtm-task-type.other       { background: #F1F5F9; color: #64748B; }

    /*  Complete task banner  */
    .brtm-task-complete-bar {
      display: flex; align-items: center; gap: 10px;
      padding: 10px 24px; background: #ECFDF5;
      border-bottom: 1px solid #BBF7D0;
    }
    .brtm-task-complete-bar.overdue { background: #FEF2F2; border-bottom-color: #FECACA; }
    .brtm-task-complete-bar i { color: #15803D; font-size: 14px; }
    .brtm-task-complete-bar.overdue i { color: #B91C1C; }
    .brtm-task-complete-bar span { font-size: 12.5px; font-weight: 500; flex: 1; }
    .brtm-task-complete-btn {
      display: inline-flex; align-items: center; gap: 5px;
      height: 30px; padding: 0 14px; border-radius: 6px;
      font-size: 12px; font-weight: 600; font-family: inherit;
      cursor: pointer; border: 1.5px solid #15803D;
      background: #fff; color: #15803D; transition: all .15s; white-space: nowrap;
    }
    .brtm-task-complete-btn:hover { background: #15803D; color: #fff; }
    .brtm-task-complete-bar.overdue .brtm-task-complete-btn { border-color: #B91C1C; color: #B91C1C; }
    .brtm-task-complete-bar.overdue .brtm-task-complete-btn:hover { background: #B91C1C; color: #fff; }

    /* 
       DEALS DETAIL  STAGE PILLS & STEPPER
        */
    .brtm-deal-stage {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 99px;
      font-size: 11.5px; font-weight: 700; white-space: nowrap;
    }
    .brtm-deal-stage.prospecting   { background:#DBEAFE; color:#1D4ED8; }
    .brtm-deal-stage.qualification { background:#EDE9FE; color:#6D28D9; }
    .brtm-deal-stage.proposal      { background:#FEF3C7; color:#B45309; }
    .brtm-deal-stage.negotiation   { background:#FEF9C3; color:#A16207; }
    .brtm-deal-stage.closed-won    { background:#DCFCE7; color:#15803D; }
    .brtm-deal-stage.closed-lost   { background:#FEE2E2; color:#B91C1C; }
    .brtm-stage-stepper-wrap {
      border-bottom: 1px solid var(--border);
      background: var(--surface-raised, #fff);
    }
    .brtm-stage-stepper {
      display: flex; align-items: stretch; gap: 0;
      padding: 10px 16px 8px; overflow-x: auto;
    }
    .brtm-stage-stepper::-webkit-scrollbar { display: none; }
    .brtm-stage-pill-btn {
      display: flex; align-items: center; gap: 6px;
      flex: 1; padding: 7px 14px; border-radius: 0; border: none;
      background: #F1F5F9; color: var(--text-3);
      font-size: 12px; font-weight: 600; font-family: inherit;
      cursor: pointer; white-space: nowrap; position: relative;
      transition: background .2s, color .2s;
      clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%, 10px 50%);
      padding-left: 20px; padding-right: 20px; min-width: 90px;
      justify-content: center; flex-direction: column;
    }
    .brtm-stage-pill-btn:first-child {
      clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
      border-radius: 6px 0 0 6px; padding-left: 14px;
    }
    .brtm-stage-pill-btn:last-child {
      clip-path: polygon(10px 0, 100% 0, 100% 100%, 10px 100%, 0 50%);
      border-radius: 0 6px 6px 0; padding-right: 14px;
    }
    .brtm-stage-pill-btn:hover:not(.brtm-stage-current) { background: #E2E8F0; color: var(--text-1); }
    .brtm-stage-pill-btn[data-stage="Prospecting"].brtm-stage-done   { background:#DBEAFE; color:#1D4ED8; }
    .brtm-stage-pill-btn[data-stage="Prospecting"].brtm-stage-done:hover { background:#BFDBFE; }
    .brtm-stage-pill-btn[data-stage="Qualification"].brtm-stage-done { background:#EDE9FE; color:#6D28D9; }
    .brtm-stage-pill-btn[data-stage="Qualification"].brtm-stage-done:hover { background:#DDD6FE; }
    .brtm-stage-pill-btn[data-stage="Prospecting"].brtm-stage-current   { background:#1D4ED8; color:#fff; box-shadow: 2px 0 0 0 #1D4ED8, -2px 0 0 0 #1D4ED8; }
    .brtm-stage-pill-btn[data-stage="Qualification"].brtm-stage-current  { background:#6D28D9; color:#fff; box-shadow: 2px 0 0 0 #6D28D9, -2px 0 0 0 #6D28D9; }
    .brtm-stage-pill-btn[data-stage="Proposal"].brtm-stage-current       { background:#B45309; color:#fff; box-shadow: 2px 0 0 0 #B45309, -2px 0 0 0 #B45309; }
    .brtm-stage-pill-btn[data-stage="Negotiation"].brtm-stage-current    { background:#A16207; color:#fff; box-shadow: 2px 0 0 0 #A16207, -2px 0 0 0 #A16207; }
    .brtm-stage-pill-btn[data-stage="Closed Won"].brtm-stage-current     { background:#15803D; color:#fff; box-shadow: 2px 0 0 0 #15803D, -2px 0 0 0 #15803D; }
    .brtm-stage-pill-btn[data-stage="Closed Lost"].brtm-stage-current    { background:#B91C1C; color:#fff; box-shadow: 2px 0 0 0 #B91C1C, -2px 0 0 0 #B91C1C; }
    .brtm-stage-pill-btn.brtm-stage-current { cursor: default; z-index: 1; color:#fff; }
    .brtm-stage-pill-btn .brtm-stage-check { font-size: 11px; flex-shrink: 0; }
    .brtm-stage-pill-label { display: flex; align-items: center; gap: 5px; }
    .brtm-stage-pill-sub { font-size: 9.5px; font-weight: 400; opacity: .75; margin-top: 1px; line-height: 1; }
    .brtm-stage-pill-btn.brtm-stage-current .brtm-stage-pill-sub { opacity: .85; }
    .brtm-stage-close-bar {
      display: flex; align-items: center; gap: 6px;
      padding: 5px 18px 9px; font-size: 11.5px; color: var(--text-2);
    }
    .brtm-stage-close-bar i { color: var(--primary); font-size: 12px; }
    .brtm-stage-close-bar strong { color: var(--text-1); font-weight: 600; }
    .brtm-stage-close-days {
      display: inline-flex; align-items: center;
      background: #FEF3C7; color: #B45309;
      font-size: 10.5px; font-weight: 700;
      padding: 1px 8px; border-radius: 99px;
    }
    .brtm-stage-bar { display: flex; gap: 3px; margin: 12px 0 4px; }
    .brtm-stage-seg { flex: 1; height: 5px; border-radius: 99px; background: var(--border); transition: background .3s; }
    .brtm-stage-seg.done    { background: #00B87A; }
    .brtm-stage-seg.current { background: #1B6FBE; }
    .brtm-deal-val-card {
      background: linear-gradient(135deg,#EFF6FF 0%,#E0F2FE 100%);
      border: 1px solid rgba(27,111,190,.2); border-radius: 10px;
      padding: 14px 16px; margin: 0 12px 14px;
    }
    .brtm-deal-val-label { font-size: 10px; font-weight: 700; color: var(--primary); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 4px; }
    .brtm-deal-val-amount { font-size: 22px; font-weight: 700; color: var(--text-1); line-height: 1.1; }
    .brtm-deal-val-prob { font-size: 11.5px; color: var(--text-2); margin-top: 5px; display: flex; align-items: center; gap: 6px; }
    .brtm-deal-prob-bar { flex: 1; height: 5px; background: var(--border); border-radius: 99px; overflow: hidden; }
    .brtm-deal-prob-fill { height: 100%; background: #00B87A; border-radius: 99px; transition: width .4s; }

    /* 
       TOPBAR  MISC UTILITY
        */
    .brtm-tb-icon-ml { margin-left: 4px; }
    .brtm-tb-icon-16 { font-size: 16px; }

    /* Form / drawer label heading style */
    .brtm-form-label-sm {
      font-size: 11px; font-weight: 700; text-transform: uppercase;
      letter-spacing: .5px; color: var(--text-3); margin-bottom: 6px; display: block;
    }
    /* Required asterisk */
    .brtm-required-star { color: #EF4444; }
    /* Form select consistent font */
    .brtm-form-select {
      font-size: 12.5px; font-family: var(--brtm-font-ui);
    }
    /* Form textarea consistent font */
    .brtm-form-textarea {
      width: 100%; border: 1.5px solid var(--border); border-radius: 9px;
      padding: 10px 12px; font-size: 12.5px; font-family: var(--brtm-font-ui);
      color: var(--text-1); line-height: 1.6; resize: none;
      box-sizing: border-box; outline: none; transition: border-color .15s;
    }
    .brtm-form-textarea:focus { border-color: var(--primary); }
    /* Icon in chart card title / info context */
    .brtm-icon-primary { color: var(--primary); margin-right: 6px; }
    /* Tag dot swatch */
    /* .brtm-tag-dot background is set inline (data-driven)  keep as is */
    /* Avatar initials in inline JS are kept inline (data-driven) */

    /* 
       UTILITY  FLEX & GRID
        */
/* 
   12  UTILITY CLASSES
    */
    .brtm-flex-1      { flex: 1; }
    .brtm-flex-1-min  { flex: 1; min-width: 0; }
    .brtm-flex-c-g2   { display: flex; align-items: center; gap: 2px; }
    .brtm-flex-c-g4   { display: flex; align-items: center; gap: 4px; }
    .brtm-flex-c-g5   { display: flex; align-items: center; gap: 5px; }
    .brtm-flex-c-g6   { display: flex; align-items: center; gap: 6px; }
    .brtm-flex-c-g7   { display: flex; align-items: center; gap: 7px; }
    .brtm-flex-c-g8   { display: flex; align-items: center; gap: 8px; }
    .brtm-flex-c-g9   { display: flex; align-items: center; gap: 9px; }
    .brtm-flex-c-g10  { display: flex; align-items: center; gap: 10px; }
    .brtm-flex-c-g12  { display: flex; align-items: center; gap: 12px; }
    .brtm-flex-c-g14  { display: flex; align-items: center; gap: 14px; }
    .brtm-flex-c-sb   { display: flex; align-items: center; justify-content: space-between; }
    .brtm-flex-c-g7w  { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; min-width: 0; }
    .brtm-flex-c-g8w  { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    .brtm-flex-FS-g8  { display: flex; gap: 8px; align-items: flex-start; }
    .brtm-flex-g4     { display: flex; gap: 4px; }
    .brtm-flex-g5     { display: flex; gap: 5px; }
    .brtm-flex-g6     { display: flex; gap: 6px; }
    .brtm-flex-g8     { display: flex; gap: 8px; }
    .brtm-flex-g10    { display: flex; gap: 10px; }
    .brtm-flex-g12    { display: flex; gap: 12px; }
    .brtm-flex-g14    { display: flex; gap: 14px; }
    .brtm-flex-g16    { display: flex; gap: 16px; }
    .brtm-flex-wrap-g2 { display: flex; flex-wrap: wrap; gap: 2px; }
    .brtm-flex-wrap-g4 { display: flex; flex-wrap: wrap; gap: 4px; }
    .brtm-flex-wrap-g5 { display: flex; flex-wrap: wrap; gap: 5px; }
    .brtm-flex-wrap-g6 { display: flex; flex-wrap: wrap; gap: 6px; }
    .brtm-flex-wrap-g8 { display: flex; flex-wrap: wrap; gap: 8px; }
    .brtm-flex-end-g6       { display: flex; justify-content: flex-end; gap: 6px; }
    .brtm-flex-end-g6-mt5   { display: flex; justify-content: flex-end; gap: 6px; margin-top: 5px; }
    .brtm-flex-col-g3       { display: flex; flex-direction: column; gap: 3px; }
    .brtm-flex-col-g8       { display: flex; flex-direction: column; gap: 8px; }
    .brtm-flex-col-g10      { display: flex; flex-direction: column; gap: 10px; }
    .brtm-ml-auto-flex      { margin-left: auto; display: flex; gap: 6px; }
    .brtm-ml-auto-bold      { margin-left: auto; font-weight: 600; color: var(--text-1); }
    .brtm-flex-sb-mb16      { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; flex-wrap: wrap; gap: 8px; }
    .brtm-flex-sb-mb14      { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
    .brtm-flex-base-g8      { display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px; flex-wrap: wrap; }
    .brtm-grid-2-g12        { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .brtm-grid-2-g16        { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .brtm-flex-c-g2-rel     { display: flex; align-items: center; gap: 2px; position: relative; }
    .brtm-flex-c-g8-sm      { display: flex; align-items: center; gap: 8px; font-size: 12px; }

    /* 
       UTILITY  TEXT & COLOR
        */
    .brtm-text-accent        { color: var(--accent); }
    .brtm-text-primary       { color: var(--primary); }
    .brtm-text-2             { color: var(--text-2); }
    .brtm-text-3             { color: var(--text-3); }
    .brtm-text-1-w6          { color: var(--text-1); font-weight: 600; }
    .brtm-text-3-w5          { color: var(--text-3); font-weight: 500; }
    .brtm-field-key          { font-size: 12.5px; font-weight: 700; color: var(--text-1); }
    .brtm-field-key-flex     { font-size: 12.5px; font-weight: 700; color: var(--text-1); display: flex; align-items: center; gap: 6px; }
    .brtm-text-xs-muted      { font-size: 11px; color: var(--text-3); }
    .brtm-text-xxs-muted     { font-size: 10px; color: var(--text-3); }
    .brtm-text-muted-sm      { font-size: 12px; color: var(--text-muted); }
    .brtm-text-muted         { font-size: 12.5px; color: var(--text-muted); }
    .brtm-text-sm-3          { font-size: 12px; color: var(--text-3); }
    .brtm-text-sm-2          { font-size: 12px; color: var(--text-2); }
    .brtm-text-muted-line    { font-size: 12px; color: var(--text-muted); line-height: 1.6; }
    .brtm-text-danger-sm     { font-size: 12px; color: #DC2626; }
    .brtm-text-primary-xs    { color: var(--primary); font-size: 11px; }
    .brtm-text-cyan-sm       { font-size: 12px; color: #0891B2; }
    .brtm-section-label      { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--text-muted); }
    .brtm-section-label-sm   { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--text-muted); }
    .brtm-section-label-xs   { font-size: 10px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 4px; }
    .brtm-section-label-grp  { font-size: 11px; color: var(--text-3); font-weight: 500; margin-bottom: 6px; text-transform: uppercase; letter-spacing: .5px; }
    .brtm-stat-val           { font-size: 26px; font-weight: 700; color: var(--text-main); margin: 6px 0 2px; }
    .brtm-stat-val-lg        { font-size: 26px; font-weight: 800; color: var(--text-main); }
    .brtm-text-md            { font-size: 13px; font-weight: 500; }
    .brtm-text-md-b          { font-size: 13px; font-weight: 600; }
    .brtm-text-sm-b          { font-size: 12px; font-weight: 600; }
    .brtm-sub-link-btn       { margin-top: 4px; display: inline-flex; align-items: center; gap: 5px; padding: 5px 0; font-size: 12.5px; color: var(--primary); background: none; border: none; font-family: inherit; cursor: pointer; font-weight: 600; }
    .brtm-sub-link-btn:hover { opacity: .8; }
    .brtm-act-likes          { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-3); flex: 1; }

    /* 
       UTILITY  SPACING
        */
    .brtm-mt-4   { margin-top: 4px; }
    .brtm-mt-5   { margin-top: 5px; }
    .brtm-mt-6   { margin-top: 6px; }
    .brtm-mb-0   { margin-bottom: 0; }
    .brtm-mb-12  { margin-bottom: 12px; }
    .brtm-mb-14  { margin-bottom: 14px; }
    .brtm-mb-16  { margin-bottom: 16px; }
    .brtm-ml-12  { margin-left: 12px; }

    /* 
       UTILITY  BUTTONS
        */
    .brtm-btn-sm-primary         { height: 28px; padding: 0 14px; border-radius: 6px; font-size: 12px; font-weight: 600; font-family: inherit; cursor: pointer; background: var(--primary); color: #fff; border: none; flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px; }
    .brtm-btn-sm-primary:hover   { background: var(--primary-dark); }
    .brtm-btn-sm-outline         { height: 26px; padding: 0 10px; border-radius: 5px; border: 1px solid var(--border); background: #fff; color: var(--text-2); font-size: 11.5px; font-family: inherit; cursor: pointer; display: inline-flex; align-items: center; }
    .brtm-btn-sm-outline:hover   { border-color: var(--primary); color: var(--primary); }
    .brtm-btn-sm-h28             { height: 28px; font-size: 12px; padding: 0 10px; }
    .brtm-btn-h30                { height: 30px; font-size: 12px; padding: 0 12px; }
    .brtm-btn-h30-danger         { height: 30px; font-size: 12px; padding: 0 12px; color: #EF4444; border-color: #FECACA; }
    .brtm-btn-h40                { height: 40px; padding: 0 22px; font-size: 13.5px; }

    /* ==============================================================
       BUTTON COMPONENTS (v2)  -  composable system
       Usage: <button class="brtm-btn brtm-btn--md brtm-btn--primary">
                <i class="bi bi-check2"></i>Save
              </button>
       Sizes:    --xs / --sm / --md / --lg
       Variants: --primary / --outline / --ghost
                 --danger / --danger-outline / --link
       States:   [disabled] / :disabled    auto muted + not-allowed
       Modifier: --icon-only  (square, equal height & width)
       ============================================================== */
    .brtm-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      font-family: var(--brtm-font-ui);
      font-weight: var(--fw-med);
      line-height: 1;
      border: 1px solid transparent;
      border-radius: 6px;
      cursor: pointer;
      transition: background-color .15s, color .15s, border-color .15s, opacity .15s;
      white-space: nowrap;
      text-decoration: none;
      user-select: none;
      box-sizing: border-box;
      vertical-align: middle;
    }
    .brtm-btn:focus { outline: none; }
    .brtm-btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
    .brtm-btn > i { font-size: 1em; line-height: 1; flex-shrink: 0; }

    /*  Sizes  */
    .brtm-btn--xs { height: 24px; padding: 0 8px;  font-size: 11px;   gap: 4px; border-radius: 5px; }
    .brtm-btn--sm { height: 28px; padding: 0 12px; font-size: 12px;   gap: 5px; border-radius: 6px; }
    .brtm-btn--md { height: 32px; padding: 0 16px; font-size: 12.5px; gap: 6px; border-radius: 6px; }
    .brtm-btn--lg { height: 36px; padding: 0 18px; font-size: 13px;   gap: 6px; border-radius: 7px; }

    /*  Icon-only modifier (square)  */
    .brtm-btn--icon-only.brtm-btn--xs { width: 24px; padding: 0; }
    .brtm-btn--icon-only.brtm-btn--sm { width: 28px; padding: 0; }
    .brtm-btn--icon-only.brtm-btn--md { width: 32px; padding: 0; }
    .brtm-btn--icon-only.brtm-btn--lg { width: 36px; padding: 0; }

    /*  Variant: Primary (solid)  */
    .brtm-btn--primary {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }
    .brtm-btn--primary:hover:not([disabled]):not(:disabled) {
      background: var(--primary-dark);
      border-color: var(--primary-dark);
    }
    .brtm-btn--primary:active:not([disabled]):not(:disabled) { opacity: .92; }

    /*  Variant: Outline (border primary)  */
    .brtm-btn--outline {
      background: #fff;
      color: var(--primary);
      border-color: var(--primary);
    }
    .brtm-btn--outline:hover:not([disabled]):not(:disabled) {
      background: var(--primary-light);
    }

    /*  Variant: Ghost (no border, hover bg)  */
    .brtm-btn--ghost {
      background: transparent;
      color: var(--tx-2, var(--text-2));
      border-color: transparent;
    }
    .brtm-btn--ghost:hover:not([disabled]):not(:disabled) {
      background: var(--bg-hover, #f1f4f8);
      color: var(--tx-1, var(--text-1));
    }

    /*  Variant: Danger (solid)  */
    .brtm-btn--danger {
      background: var(--sev-crit, #EF4444);
      color: #fff;
      border-color: var(--sev-crit, #EF4444);
    }
    .brtm-btn--danger:hover:not([disabled]):not(:disabled) {
      background: #DC2626;
      border-color: #DC2626;
    }

    /*  Variant: Danger outline  */
    .brtm-btn--danger-outline {
      background: #fff;
      color: var(--sev-crit, #EF4444);
      border-color: var(--sev-crit, #EF4444);
    }
    .brtm-btn--danger-outline:hover:not([disabled]):not(:disabled) {
      background: #fef2f2;
    }

    /*  Variant: Link (text-only, no padding/height)  */
    .brtm-btn--link {
      background: transparent;
      color: var(--primary);
      border-color: transparent;
      height: auto;
      padding: 0;
      border-radius: 0;
    }
    .brtm-btn--link:hover:not([disabled]):not(:disabled) {
      text-decoration: underline;
    }

    /*  Variant: Link Danger (destructive text-only)  */
    .brtm-btn--link-danger {
      background: transparent;
      color: var(--sev-crit, #dc2626);
      border-color: transparent;
      height: auto;
      padding: 0;
      border-radius: 0;
    }
    .brtm-btn--link-danger:hover:not([disabled]):not(:disabled) {
      text-decoration: underline;
    }

    /*  Disabled state (works on any variant)  */
    .brtm-btn[disabled],
    .brtm-btn:disabled {
      opacity: .55;
      cursor: not-allowed;
      pointer-events: none;
    }

    /*  Press feedback (works on any variant)  */
    .brtm-btn:active:not([disabled]):not(:disabled):not(.brtm-btn--loading) {
      transform: scale(.97);
    }

    /*  Loading state (spinner before text, auto-disabled)  */
    @keyframes brtm-btn-spin {
      to { transform: rotate(360deg); }
    }
    .brtm-btn--loading {
      pointer-events: none;
      cursor: wait;
      position: relative;
    }
    .brtm-btn--loading::before {
      content: '';
      width: 1em;
      height: 1em;
      border-radius: 50%;
      border: 1.5px solid currentColor;
      border-right-color: transparent;
      animation: brtm-btn-spin .6s linear infinite;
      flex-shrink: 0;
    }
    /* Hide existing icon when loading (spinner takes its place) */
    .brtm-btn--loading > i { display: none; }
    /* Loading-only: hide text too, show only spinner */
    .brtm-btn--loading-only {
      pointer-events: none;
      cursor: wait;
      color: transparent !important;
      position: relative;
    }
    .brtm-btn--loading-only > * { visibility: hidden; }
    .brtm-btn--loading-only::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 1em;
      height: 1em;
      margin: -.5em 0 0 -.5em;
      border-radius: 50%;
      border: 1.5px solid currentColor;
      border-right-color: transparent;
      animation: brtm-btn-spin .6s linear infinite;
      color: inherit;
      font-size: 1em;
    }
    /* For loading-only, restore currentColor on the spinner via filter trick */
    .brtm-btn--loading-only.brtm-btn--primary::after,
    .brtm-btn--loading-only.brtm-btn--danger::after { border-color: #fff; border-right-color: transparent; }
    .brtm-btn--loading-only.brtm-btn--outline::after,
    .brtm-btn--loading-only.brtm-btn--link::after { border-color: var(--primary); border-right-color: transparent; }
    .brtm-btn--loading-only.brtm-btn--danger-outline::after,
    .brtm-btn--loading-only.brtm-btn--link-danger::after { border-color: var(--sev-crit, #dc2626); border-right-color: transparent; }
    .brtm-btn--loading-only.brtm-btn--ghost::after { border-color: var(--tx-2); border-right-color: transparent; }

    /* 
       UTILITY  MISC COMPONENTS
        */
    .brtm-kpi-bar-track   { height: 6px; background: var(--border); border-radius: 99px; margin-top: 10px; overflow: hidden; }
    .brtm-overflow-x      { overflow-x: auto; }
    .brtm-w-full-jc       { width: 100%; justify-content: center; }
    .brtm-card-base       { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px 18px; box-shadow: var(--shadow-sm); }
    .brtm-mini-badge      { background: var(--primary-light); color: var(--primary); font-size: 10px; font-weight: 700; padding: 1px 7px; border-radius: 99px; margin-left: 8px; }
    .brtm-sep-h1          { height: 1px; background: var(--border); margin: 3px 0; }
    .brtm-pos-rel-pl32    { position: relative; padding-left: 32px; }
    .brtm-field-icon      { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); font-size: 12px; color: var(--text-3); pointer-events: none; }
    .brtm-search-field    { width: 100%; padding-left: 30px; box-sizing: border-box; }
    .brtm-pill-xs         { font-size: 11px; padding: 2px 8px; }
    .brtm-w-110-sm        { width: 110px; font-size: 11.5px; color: var(--text-2); font-weight: 500; }
    .brtm-timeline-line   { position: absolute; left: 13px; top: 6px; bottom: 6px; width: 2px; background: var(--border); border-radius: 2px; }
    .brtm-self-center-sm  { align-self: center; font-size: 12px; color: var(--text-3); }
    .brtm-empty-icon-lg   { display: block; font-size: 20px; margin-bottom: 6px; opacity: .4; }
    .brtm-icon-18-shrink  { font-size: 18px; flex-shrink: 0; }
    .brtm-check-icon-g    { color: #16A34A; font-size: 12px; width: 14px; text-align: center; flex-shrink: 0; }
    .brtm-check-icon-b    { color: #2563EB; font-size: 12px; width: 14px; text-align: center; flex-shrink: 0; }
    .brtm-green-icon-sm   { color: #059669; font-size: 12px; margin-right: 5px; }
    .brtm-comment-label   { font-size: 11px; margin-left: 3px; }
    .brtm-icon-22-primary { width: 22px; height: 22px; border-radius: 50%; background: var(--primary); color: #fff; font-size: 9px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .brtm-icon-22-violet  { width: 22px; height: 22px; border-radius: 6px; background: #7C3AED; color: #fff; font-size: 9px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .brtm-nd-center-scroll { flex: 1; overflow-y: auto; min-width: 0; background: var(--surface); scrollbar-width: thin; scrollbar-color: rgba(0,0,0,.12) transparent; }
    .brtm-btn-h28-danger  { height: 28px; font-size: 12px; padding: 0 10px; color: #EF4444; border-color: #FECACA; }
    .brtm-flex-scroll     { flex: 1; overflow-y: auto; min-height: 0; scrollbar-width: thin; scrollbar-color: rgba(0,0,0,.12) transparent; }
    .brtm-flex-scroll::-webkit-scrollbar { width: 4px; }
    .brtm-flex-scroll::-webkit-scrollbar-track { background: transparent; }
    .brtm-flex-scroll::-webkit-scrollbar-thumb { background: rgba(0,0,0,.12); border-radius: 2px; }
    .brtm-panel-header    { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--border); }
    .brtm-btn-inline-link { margin-top: 4px; display: inline-flex; align-items: center; gap: 5px; padding: 5px 0; font-size: 12.5px; color: var(--primary); background: none; border: none; font-family: inherit; cursor: pointer; font-weight: 600; }
    .brtm-ml-3            { margin-left: 3px; }
    .brtm-pos-rel-iflex   { position: relative; display: inline-flex; }
    .brtm-badge-blue      { background: #DBEAFE; color: #1D4ED8; }
    .brtm-badge-green     { background: #DCFCE7; color: #15803D; }
    .brtm-badge-red       { background: #FEE2E2; color: #B91C1C; }
    .brtm-tbl-sep-cell    { padding: 0 4px; color: var(--text-2); line-height: 32px; }
    .brtm-icon-28         { width: 28px; height: 28px; flex-shrink: 0; }
    .brtm-primary-bar-mt4 { background: var(--primary); margin-top: 4px; }
    /* Icon sizes */
    .brtm-icon-22 { font-size: 22px; }
    .brtm-icon-20 { font-size: 20px; }
    .brtm-icon-18 { font-size: 18px; }
    .brtm-icon-16 { font-size: 16px; }
    /* Settings toggle device icon */
    .brtm-settings-toggle-info > i { font-size: 22px; }
    /* GPS panel circle icon */
    #mpDetecting .brtm-text-primary, #ciGpsDetecting .brtm-text-primary { font-size: 22px; }
    /* Checkout section label icon */
    .brtm-co-section-label i,
    .brtm-co-pay-opt-icon i { font-size: 16px; }
    /* Single-value font-size utilities */
    .brtm-fs-9   { font-size: 9px; }
    .brtm-fs-10  { font-size: 10px; }
    .brtm-fs-11  { font-size: 11px; }
    .brtm-fs-12  { font-size: 12px; }
    .brtm-fs-13  { font-size: 13px; }
    .brtm-fs-14  { font-size: 14px; }
    .brtm-fs-15  { font-size: 15px; }
    .brtm-fs-17  { font-size: 17px; }
    .brtm-fs-20  { font-size: 20px; }
    .brtm-pos-rel { position: relative; }
    .brtm-fw-6    { font-weight: 600; }
    .brtm-min-w-0 { min-width: 0; }
    .brtm-min-w-50 { min-width: 50px; }
    /* Commonly repeated multi-prop patterns (4x+) */
    .brtm-dd-footer       { display: flex; align-items: center; justify-content: space-between; padding: 6px 8px; border-top: 1px solid var(--border); background: var(--surface); }
    .brtm-drawer-footer   { padding: 12px 18px; border-top: 1px solid var(--border); display: flex; justify-content: flex-end; gap: 8px; }
    .brtm-flex-FSB-g12    { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
    .brtm-flex-FS-g12     { display: flex; align-items: flex-start; gap: 12px; }
    .brtm-flex-c-g9-min   { display: flex; align-items: center; gap: 9px; min-width: 0; }
    .brtm-flex-c-g4-sh    { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
    .brtm-flex-c-g6-mb6   { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
    .brtm-flex-c-g6-sm    { display: flex; align-items: center; gap: 6px; font-size: 11.5px; }
    .brtm-flex-c-g8-sm13  { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-1); cursor: pointer; }
    .brtm-flex-wrap-g5-mb8 { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
    .brtm-flex-1-min-g6   { display: flex; align-items: center; gap: 6px; min-width: 0; flex: 1; }
    .brtm-flex-g12-rel    { display: flex; gap: 12px; position: relative; }
    .brtm-flex-col-c-sh   { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; }
    .brtm-flex-c-sb-mb16  { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
    .brtm-ml-auto-bold-r  { margin-left: auto; font-weight: 600; color: var(--text-1); text-align: right; }
    .brtm-card-title-clip { font-size: 13.5px; font-weight: 700; color: var(--text-1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .brtm-card-sub-row    { font-size: 10.5px; color: var(--text-3); display: flex; align-items: center; gap: 4px; margin-top: 1px; }
    .brtm-info-box        { background: var(--surface); border: 1px solid var(--border); border-radius: 9px; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
    .brtm-subhead-2       { font-size: 13px; font-weight: 600; color: var(--text-2); margin-bottom: 4px; }
    .brtm-text-sm-3-sh    { font-size: 12px; color: var(--text-3); flex-shrink: 0; }
    .brtm-text-key-6      { font-size: 12.5px; font-weight: 600; color: var(--text-1); }
    .brtm-text-11-3-sh    { font-size: 11px; color: var(--text-3); width: 16px; flex-shrink: 0; }
    .brtm-text-muted-xs   { font-size: 11.5px; color: var(--text-3); margin-right: auto; }
    .brtm-icon-circle-48  { width: 48px; height: 48px; border-radius: 50%; background: var(--surface); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; }
    .brtm-icon-circle-40  { width: 40px; height: 40px; border-radius: 50%; background: var(--surface); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; }
    .brtm-dd-section-label { padding: 6px 10px; font-size: 10px; font-weight: 700; color: var(--text-3); border-bottom: 1px solid var(--border); text-transform: uppercase; letter-spacing: .4px; }
    .brtm-btn-sm-disabled  { height: 28px; padding: 0 14px; border-radius: 6px; font-size: 12px; font-weight: 600; font-family: inherit; cursor: not-allowed; background: #C3D7EF; color: #fff; border: none; transition: all .12s; }
    .brtm-input-fieldset   { flex: 1; border: 1.5px solid var(--border); border-radius: 8px; overflow: visible; background: #fff; transition: border-color .15s; }
    .brtm-flex-1-scroll    { flex: 1; display: flex; min-height: 0; overflow: hidden; }
    .brtm-text-primary-md-sh { color: var(--primary); font-size: 14px; flex-shrink: 0; }
    .brtm-text-11-sec-sh   { font-size: 11px; color: var(--text-secondary); margin-top: 2px; flex-shrink: 0; }
    .brtm-btn-outline-primary { background: var(--white); color: var(--primary); border: 1px solid var(--primary); }
    .brtm-checkbox-sm      { accent-color: var(--primary); width: 14px; height: 14px; }
    .brtm-sep-v            { width: 1px; height: 16px; background: var(--border); margin: 0 3px; flex-shrink: 0; }
    .brtm-code-block       { background: var(--surface); border: 1px solid var(--border); border-radius: 7px; padding: 10px 12px; font-size: 12.5px; color: var(--text-1); line-height: 1.6; }
    .brtm-flex-c-g16-sh   { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
    .brtm-flex-c-g6-sh    { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
    .brtm-flex-c-g8-sh    { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
    .brtm-flex-col-g5     { display: flex; flex-direction: column; gap: 5px; }
    .brtm-icon-16-primary { width: 16px; height: 16px; border-radius: 50%; background: var(--primary); color: #fff; font-size: 8px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
    /* More color utilities */
    .brtm-text-1          { color: var(--text-1); }
    .brtm-text-disabled   { color: #CBD5E1; }
    .brtm-text-amber      { color: #D97706; }
    .brtm-text-amber-sm   { font-size: 12px; color: #D97706; }
    .brtm-text-orange     { color: #EA580C; }
    .brtm-text-green      { color: #059669; }
    .brtm-text-red        { color: #EF4444; }
    .brtm-text-dark-red   { color: #B91C1C; }
    .brtm-text-violet     { color: #7C3AED; }
    .brtm-text-yellow     { color: #F59E0B; }
    .brtm-text-purple     { color: #9333EA; }
    .brtm-text-blue       { color: #0284C7; }
    .brtm-text-white      { color: #fff; }
    .brtm-text-lg-3       { font-size: 20px; color: var(--text-3); }
    .brtm-text-lg-1       { font-size: 20px; color: var(--text-1); }
    /* Spacing */
    .brtm-m-0     { margin: 0; }
    .brtm-mb-0    { margin-bottom: 0; }
    .brtm-w-full  { width: 100%; }
    /* Component patterns */
    .brtm-btn-group       { display: flex; align-items: center; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
    .brtm-btn-group-r     { border: none; border-radius: 0; padding: 5px 9px; border-right: 1px solid var(--border); }
    .brtm-btn-group-l     { border: none; border-radius: 0; padding: 5px 9px; border-left: 1px solid var(--border); }
    .brtm-plan-card       { border: 1.5px solid var(--border); border-radius: 12px; padding: 20px; display: flex; flex-direction: column; gap: 10px; transition: border-color .15s; }
    .brtm-heading-flex    { font-size: 13px; font-weight: 600; color: var(--text-1); display: flex; align-items: center; gap: 5px; }
    .brtm-acc-body-p      { padding: 10px 12px 12px; }
    .brtm-acc-body-p2     { padding: 10px 12px 8px; }
    .brtm-text-center     { text-align: center; }
    .brtm-text-fs7        { font-size: 7px; }
    .brtm-text-fs6        { font-size: 6px; }
    /* Final utility batch */
    .brtm-section-label-xs2 { font-size: 10px; font-weight: 700; color: var(--text-3); margin-bottom: 7px; text-transform: uppercase; letter-spacing: .5px; }
    .brtm-body-text         { font-size: 12px; color: var(--text-2); line-height: 1.6; margin: 6px 0 4px; }
    .brtm-text-17-3         { font-size: 17px; color: var(--text-3); }
    .brtm-label-primary     { display: block; font-size: 10.5px; font-weight: 600; color: var(--primary); text-transform: uppercase; letter-spacing: .6px; margin-bottom: 4px; opacity: .8; }
    .brtm-grid-3-g14-mb20   { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 20px; }
    .brtm-grid-3-g14-mt4    { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 4px; }
    .brtm-sup-text          { font-size: 8px; vertical-align: baseline; }
    .brtm-subhead-3         { font-size: 12.5px; font-weight: 600; color: var(--text-2); margin-bottom: 3px; }
    .brtm-tag-text          { font-size: 11px; font-weight: 700; letter-spacing: -.5px; }
    .brtm-flex-end-g6-wrap  { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
    .brtm-modal-body-wide   { padding: 24px 24px 40px; max-width: none; }
    .brtm-form-input-sm     { font-size: 12.5px; font-family: inherit; max-width: 90px; }
    .brtm-plan-tag          { position: absolute; top: -11px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 10px; font-weight: 700; padding: 3px 12px; border-radius: 99px; letter-spacing: .4px; white-space: nowrap; }
/* 
   CHAT MODULE (Omnichannel)
   Classes use brtm- prefix, scoped under .brtm-chat-page body class
   to prevent conflicts with other Barantum page components.
 */
/* 
   13  CHAT MODULE  (Omnichannel  scoped under .brtm-chat-page)
    */
.brtm-chat-page {
  --panel-width: 320px;
  --sidebar-width: 56px;
  /* Chrome di atas chat-page = offset yang dipasang App.vue pada .tfa-app-root
     (`top: calc(var(--tfa-chrome-h) + 3px)`). Angkanya DIUKUR runtime oleh
     _measureChrome(), jadi ikut berubah saat pita "tampilan baru" muncul (55 -> 89)
     atau navbar wrap di <992px. Dulu di-hardcode 60px: begitu pita tampil, halaman
     jadi ~34px lebih tinggi dari viewport -> scrollbar muncul & composer terpotong. */
  --chat-chrome: calc(var(--tfa-chrome-h, 55px) + 3px);
  --bg: #f4f6fb;
  --text-muted: #8a9ab0;
  --tag-green: #43A047;
  --tag-blue: var(--primary);
  --tag-orange: #E65100;
  --border: #e3e8ef;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: calc(100vh - var(--chat-chrome, 60px));
  font-family: var(--brtm-font-ui);
}
.brtm-chat-page .brtm-topbar,
.brtm-chat-page .brtm-topbar * { font-family: var(--brtm-font-ui); }
.brtm-chat-page .brtm-chat-search-bar { top: 56px !important; left: calc(var(--sidebar-width) + 56px) !important; }

/* 13z  FOCUS / FULLSCREEN MODE  (toggled via body.brtm-chat-fs from listing2.vue)
   Hides the global CRM top navbar so the chat module fills the whole viewport.
   Everything keys off --chat-chrome, so setting it to 0 recalculates all heights. */
body.brtm-chat-fs #topNav { display: none !important; }
body.brtm-chat-fs #appvue { margin-top: 0 !important; padding-top: 0 !important; }

/* v7 SPA: #appvue tidak ada (layouts/app.vue dead-code, diganti AppShell). Clearance
   navbar kini dari .tfa-app-root { margin-top:55px } di App.vue, jadi inline
   padding-top di root index2.vue sudah di-nol-kan (dulu 60px → dobel dengan tfa =
   celah putih di atas + konten 100vh terpotong di bawah). --chat-chrome:60px tetap
   mewakili clearance navbar (~55px). Override di bawah menang atas inline (fullscreen). */
body.brtm-chat-fs #barantumchat-style { padding-top: 0 !important; }
/* Clearance navbar yang SEBENARNYA di v7 SPA: `.tfa-app-root { margin-top:55px }`
   di App.vue (dua override di atas menyasar elemen yang sudah tidak ada / sudah 0).
   Tanpa baris ini navbar hilang tapi pita 55px-nya tetap ada + konten terpotong di
   bawah. min-height ikut dipulihkan ke 100vh penuh karena 55px-nya tidak lagi dipotong.
   !important wajib: aturan App.vue scoped ([data-v-*]).
   `top: 0` WAJIB juga: khusus halaman chat, App.vue memberi clearance navbar lewat
   `.tfa-app-root:has(#barantumchat-style) { position:relative; top:58px }` — BUKAN
   margin-top (margin-top-nya sudah 0 di sana, jadi override margin-top saja percuma).
   Tanpa me-nol-kan `top`, fullscreen cuma menyembunyikan navbar tapi seluruh konten
   tetap tergeser 58px ke bawah: sisa pita kosong di atas DAN kolom setinggi 100vh
   meluber 58px di bawah viewport (footer list chat terpotong & tak bisa di-scroll
   karena body overflow:hidden). */
body.brtm-chat-fs .tfa-app-root {
  margin-top: 0 !important;
  top: 0 !important;
  min-height: 100vh !important;
}
body.brtm-chat-fs .brtm-chat-page { --chat-chrome: 0px !important; }
/* Classic layout fallback (focus button only shows in modern, but keep it robust) */
body.brtm-chat-fs .navigation { top: 0 !important; }

/* 13z2  BANNER RE-INTEGRATE EMAIL  (notif_revoke_email.vue)
   Banner dirender di dalam .main-content DI ATAS konten chat, jadi memakan tinggi
   yang tidak dihitung --chat-chrome (60px = navbar saja) — kolom-kolom setinggi
   calc(100vh - chrome) jadi kepanjangan dan terpotong/menyisakan celah.
   index2.vue mengukur tinggi banner dan men-set --banner-h inline di .main-content;
   override di sini hanya berlaku untuk TURUNAN .main-content (panel kiri/tengah/kanan)
   — rail icon & wrapper luar bukan turunannya, tetap pakai chrome navbar. */
.brtm-chat-page .main-content { --chat-chrome: calc(var(--tfa-chrome-h, 55px) + 3px + var(--banner-h, 0px)); }
/* Fullscreen: navbar hilang tapi banner tetap tampil di dalam main-content */
body.brtm-chat-fs .brtm-chat-page .main-content { --chat-chrome: var(--banner-h, 0px); }
/* Netralkan kompensasi banner versi CLASSIC di barantumchat-v6.css:
   `#barantumchat-style .reintegrate-email ~ .inbox-content { height: calc(100% - 130px) }`
   ikut aktif di modern (id-nya root seluruh modul) dan, dikombinasi overflow:hidden
   .inbox-content, memotong kolom ±90px → celah putih di dasar layar. Modern sudah
   dikompensasi penuh lewat --banner-h; biarkan tinggi inbox mengikuti kolomnya. */
#barantumchat-style .brtm-chat-page .reintegrate-email ~ .inbox-content {
  height: auto !important;
}

/*  LAYOUT  */
    /*  13a  Layout & Icon Sidebar  */
    .brtm-chat-page .brtm-main-wrapper {
      display: flex;
      flex: 1;
      width: 100%;
      height: calc(100vh - var(--chat-chrome, 60px));
      min-height: 0;
    }

    /*  ICON SIDEBAR  */
    .brtm-chat-page .brtm-icon-sidebar {
      width: var(--sidebar-width);
      background: white;
      border-right: 1px solid var(--border);
      display: flex; flex-direction: column;
      align-items: center;
      padding: 12px 6px;
      gap: 4px;
      flex-shrink: 0;
      height: calc(100vh - var(--chat-chrome, 60px));
      overflow: visible;
      transition: width .25s ease;
      position: relative;
    }
    .brtm-chat-page .brtm-sidebar-icon {
      width: 40px; height: 40px;
      border-radius: 12px;
      display: flex; align-items: center; justify-content: center;
      color: #94a3b8; font-size: 17px;
      cursor: pointer; transition: background .15s, color .15s, width .25s ease, justify-content .25s, padding .25s;
      text-decoration: none;
      flex-shrink: 0;
      gap: 0;
    }
    /* Expanded state: icons become full-width rows */
    .brtm-chat-page .brtm-icon-sidebar.brtm-expanded .brtm-sidebar-icon {
      width: calc(var(--sidebar-width) - 28px);
      justify-content: flex-start;
      padding: 0 10px;
      gap: 10px;
    }
    .brtm-chat-page .brtm-sidebar-icon:hover {
      background: var(--primary-light); color: var(--primary);
    }
    .brtm-chat-page .brtm-sidebar-icon.brtm-active {
      background: var(--primary-light); color: var(--primary);
    }
    /* Inline label (visible when expanded) */
    .brtm-chat-page .brtm-sidebar-label {
      font-size: 12.5px;
      font-weight: 500;
      white-space: nowrap;
      overflow: hidden;
      max-width: 0;
      opacity: 0;
      transition: max-width .25s ease, opacity .2s ease;
      pointer-events: none;
      display: inline-block;
    }
    .brtm-chat-page .brtm-icon-sidebar.brtm-expanded .brtm-sidebar-label {
      max-width: 130px;
      opacity: 1;
      pointer-events: auto;
    }
    .brtm-chat-page .brtm-sidebar-spacer { flex: 1; }
    .brtm-chat-page .brtm-sidebar-upgrade { color: #e65100 !important; }
    .brtm-chat-page .brtm-sidebar-upgrade:hover { background: #fff3ed; color: #e65100 !important; }
    .brtm-chat-page .brtm-sidebar-onboarding {
      background: var(--primary) !important;
      color: #fff !important;
      box-shadow: 0 2px 8px rgba(27,111,190,0.35);
    }
    .brtm-chat-page .brtm-sidebar-onboarding:hover {
      background: var(--primary-dark) !important;
      color: #fff !important;
    }
    .brtm-chat-page .brtm-sidebar-onboarding.brtm-active {
      background: var(--primary-dark) !important;
      color: #fff !important;
    }
    /* Expand/collapse toggle  tab protruding from right edge */
    .brtm-chat-page .brtm-sidebar-toggle {
      position: absolute;
      right: -12px;
      top: 50%;
      transform: translateY(-50%);
      width: 20px; height: 44px;
      border-radius: 0 8px 8px 0;
      border: 1px solid var(--border);
      border-left: none;
      background: white;
      display: flex; align-items: center; justify-content: center;
      color: #94a3b8;
      font-size: 11px;
      cursor: pointer;
      z-index: 10;
      transition: background .15s, color .15s, box-shadow .15s;
      padding: 0;
      box-shadow: 2px 0 6px rgba(0,0,0,0.06);
    }
    .brtm-chat-page .brtm-sidebar-toggle:hover {
      background: #f1f5f9; color: var(--primary);
    }
    .brtm-chat-page .brtm-sidebar-toggle .bi {
      transition: transform .25s ease;
    }
    .brtm-chat-page .brtm-icon-sidebar.brtm-expanded .brtm-sidebar-toggle .bi {
      transform: rotate(180deg);
    }
    /* JS tooltip element (fixed, appended to body) */
    .brtm-sidebar-tooltip-el {
      position: fixed;
      transform: translateY(-50%);
      background: #1e293b;
      color: #fff;
      font-size: 12px;
      font-weight: 500;
      padding: 5px 10px;
      border-radius: 6px;
      pointer-events: none;
      opacity: 0;
      transition: opacity .12s;
      z-index: 99999;
      white-space: nowrap;
      font-family: var(--brtm-font-ui);
    }
    .brtm-sidebar-tooltip-el.brtm-visible { opacity: 1; }

    /*  CHAT PANEL  */
    /*  13b  Chat Panel (chat list)  */
    .brtm-chat-page .brtm-chat-panel {
      /* 315px keeps the active status chip's label readable; see the
         three-step container query in 14c. Was a duplicated 260/220 pair. */
      width: var(--panel-width);
      min-width: 315px;
      max-width: 520px;
      background: white;
      border-right: 1px solid var(--border);
      display: flex; flex-direction: column;
      flex-shrink: 0;
      height: calc(100vh - var(--chat-chrome, 60px));
      position: relative;
    }

    /* Resize handle */
    .brtm-chat-page .brtm-resize-handle {
      position: absolute;
      top: 0; right: -4px;
      width: 8px; height: 100%;
      cursor: col-resize;
      z-index: 10;
      display: flex; align-items: center; justify-content: center;
    }
    .brtm-chat-page .brtm-resize-handle::after {
      content: '';
      width: 3px; height: 40px;
      background: #d0d8e8;
      border-radius: 3px;
      transition: background .15s, height .15s;
    }
    .brtm-chat-page .brtm-resize-handle:hover::after,
    .brtm-chat-page .brtm-resize-handle.brtm-dragging::after {
      background: var(--primary);
      height: 60px;
    }
    .brtm-chat-page .brtm-chat-panel-header {
      padding: 16px 20px 10px;
      display: flex; align-items: center; justify-content: space-between;
    }
    .brtm-chat-page .brtm-chat-panel-header h2 {
      font-size: 18px; font-weight: 700; color: var(--primary); margin: 0;
    }
    .brtm-chat-page .brtm-header-actions {
      display: flex; align-items: center; gap: 6px;
    }
    .brtm-chat-page .brtm-btn-plus {
      width: 32px; height: 32px; border-radius: 8px;
      background: var(--primary); color: #fff;
      border: none; display: flex; align-items: center;
      justify-content: center; cursor: pointer; font-size: 18px;
      transition: background .15s, box-shadow .15s;
    }
    .brtm-chat-page .brtm-btn-plus:hover { background: #1a72b0; box-shadow: 0 2px 8px rgba(34,132,198,.35); }
    .brtm-chat-page .brtm-header-icon-btn {
      width: 32px; height: 32px; border-radius: 8px;
      border: 1.5px solid #d0d8e8;
      background: white; color: #8a9ab0;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; font-size: 14px; flex-shrink: 0;
      transition: border-color .15s, color .15s;
    }
    .brtm-chat-page .brtm-header-icon-btn:hover {
      border-color: var(--primary); color: var(--primary);
    }
    .brtm-chat-page .brtm-filter-wrap .brtm-filter-dropdown {
      top: calc(100% + 6px);
      right: 0;
      left: auto;
    }

    /* Search box */
    .brtm-chat-page .brtm-search-box {
      margin: 10px 20px 10px;
      position: relative;
    }
    .brtm-chat-page .brtm-search-box input {
      width: 100%;
      border: 1.5px solid #d0d8e8;
      border-radius: 8px;
      padding: 8px 34px 8px 34px;
      font-size: 13px;
      font-family: var(--brtm-font-ui);
      outline: none; color: #1a2234;
      transition: border-color .15s;
    }
    .brtm-chat-page .brtm-search-box input:focus { border-color: var(--primary); }
    .brtm-chat-page .brtm-search-box input::placeholder { color: #b0bac8; }
    .brtm-chat-page .brtm-search-box .brtm-search-icon {
      position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
      color: #b0bac8; font-size: 15px; pointer-events: none;
    }
    .brtm-chat-page .brtm-search-box input.brtm-has-value { padding-left: 12px; }
    .brtm-chat-page .brtm-search-box .brtm-clear-btn {
      position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
      background: none; border: none; color: #8a9ab0;
      font-size: 16px; cursor: pointer; padding: 0; line-height: 1;
    }

    /* Only Me toggle (filter owner = user login) — switch + label, ke tengah */
    .brtm-chat-page .brtm-onlyme-row {
      display: flex; justify-content: center;
      padding: 0 20px 10px;
    }
    .brtm-chat-page .brtm-onlyme {
      display: inline-flex; align-items: center; gap: 8px;
      cursor: pointer; user-select: none; margin: 0;
    }
    .brtm-chat-page .brtm-onlyme-input {
      width: 15px; height: 15px; margin: 0; flex-shrink: 0;
      cursor: pointer; accent-color: var(--primary, #1B6FBE);
    }
    .brtm-chat-page .brtm-onlyme-text { font-size: 12.5px; color: #475569; font-weight: 500; }

    /* Status tabs */
    .brtm-chat-page .brtm-status-tabs {
      display: flex; align-items: center; gap: 4px;
      padding: 0 20px 10px; flex-wrap: nowrap; overflow-x: auto;
    }
    .brtm-chat-page .brtm-status-tabs::-webkit-scrollbar { display: none; }
    .brtm-chat-page .brtm-tab-btn {
      border: 1px solid #d0d8e8;
      background: white; color: #4b5563;
      border-radius: 14px; padding: 3px 10px;
      font-size: 11px; font-weight: 500;
      cursor: pointer; white-space: nowrap;
      transition: all .15s;
      font-family: var(--brtm-font-ui);
      line-height: 1.5;
    }
    .brtm-chat-page .brtm-tab-btn.brtm-active {
      background: var(--primary); color: white; border-color: var(--primary);
    }
    .brtm-chat-page .brtm-tab-btn:hover:not(.brtm-active) { border-color: var(--primary); color: var(--primary); }

    /* Chat list */
    .brtm-chat-page .brtm-chat-list { flex: 1; overflow-y: auto; overflow-x: hidden; }
    .brtm-chat-page .brtm-chat-list::-webkit-scrollbar { width: 4px; }
    .brtm-chat-page .brtm-chat-list::-webkit-scrollbar-track { background: transparent; }
    .brtm-chat-page .brtm-chat-list::-webkit-scrollbar-thumb { background: #d0d8e8; border-radius: 4px; }

    .brtm-chat-page .brtm-section-label {
      font-size: 11px; font-weight: 600;
      color: #8a9ab0; text-transform: uppercase;
      letter-spacing: .6px;
      padding: 8px 20px 4px;
    }

    .brtm-chat-page .brtm-chat-item {
      padding: 10px 12px;
      margin: 2px 10px;
      border-radius: 10px;
      cursor: pointer;
      border-bottom: none;
      transition: background .12s;
    }
    .brtm-chat-page .brtm-chat-item:hover { background: #f0f4fb; }
    .brtm-chat-page .brtm-chat-item-top {
      display: flex; align-items: flex-start; gap: 10px;
    }
    .brtm-chat-page .brtm-avatar-wrap { position: relative; flex-shrink: 0; }
    .brtm-chat-page .brtm-avatar {
      width: 38px; height: 38px; border-radius: 50%;
      background: #e3e8ef;
      display: flex; align-items: center; justify-content: center;
      font-size: 16px; color: #8a9ab0;
    }
    /* Group avatar: the real WhatsApp group photo when there is one. overflow
       clips it to the circle, object-fit keeps a non-square photo from
       stretching. Without both, a portrait photo spills out as a rectangle. */
    .brtm-chat-page .brtm-avatar-group { overflow: hidden; }
    .brtm-chat-page .brtm-avatar-group img {
      width: 100%; height: 100%; object-fit: cover; display: block;
    }
    /* Sender name in a group's list preview — same weight as WhatsApp: present
       but quieter than the chat name above it. */
    .brtm-chat-page .brtm-chat-preview-sender {
      font-weight: 600; color: #5b6b82; margin-right: 3px;
    }
    .brtm-chat-page .brtm-avatar-status {
      position: absolute; bottom: -1px; right: -1px;
      width: 14px; height: 14px; border-radius: 50%;
      background: white; display: flex; align-items: center; justify-content: center;
    }
    .brtm-chat-page .brtm-avatar-status i { font-size: 12px; color: #8a9ab0; }
    .brtm-chat-page .brtm-chat-info { flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-chat-name-row {
      display: flex; justify-content: space-between; align-items: center;
    }
    .brtm-chat-page .brtm-chat-name {
      font-size: var(--fs-base); font-weight: var(--fw-med); color: var(--tx-1);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      letter-spacing: -0.005em; min-width: 0;
    }
    .brtm-chat-page .brtm-chat-item.brtm-unread .brtm-chat-name { font-weight: var(--fw-bold); }
    .brtm-chat-page .brtm-chat-time { font-size: var(--fs-xs); color: var(--tx-3); flex-shrink: 0; font-variant-numeric: tabular-nums; }
    .brtm-chat-page .brtm-chat-msg {
      font-size: var(--fs-sm); color: var(--tx-2); line-height: 1.45;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      margin-top: 3px; display: flex; align-items: center; gap: 4px;
    }
    .brtm-chat-page .brtm-chat-item.brtm-unread .brtm-chat-msg { color: var(--tx-1); font-weight: var(--fw-med); }
    .brtm-chat-page .brtm-chat-msg i { font-size: 11px; color: #a0d4a0; }
    .brtm-chat-page .brtm-chat-msg .brtm-highlight { font-weight: var(--fw-bold); color: var(--tx-1); }
    .brtm-chat-page .brtm-chat-meta {
      display: flex; align-items: center; gap: 6px;
      margin-top: 6px; flex-wrap: wrap;
    }
    .brtm-chat-page .brtm-meta-chip {
      display: flex; align-items: center; gap: 4px;
      font-size: var(--fs-xs); color: var(--tx-3); font-weight: var(--fw-reg);
    }
    .brtm-chat-page .brtm-meta-chip i { font-size: 12px; }
    .brtm-chat-page .brtm-tag {
      font-size: 11px; font-weight: 600; border-radius: 20px;
      padding: 2px 10px; white-space: nowrap; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-tag-green { background: #e8f5e9; color: #388e3c; }
    .brtm-chat-page .brtm-tag-blue  { background: #e3f0ff; color: #2284C6; }
    .brtm-chat-page .brtm-tag-red   { background: #fff3e0; color: #e65100; }

    /* Empty state */
    .brtm-chat-page .brtm-empty-state {
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      height: 200px; color: #a0aab8;
      font-size: 13px; text-align: center; padding: 20px;
      line-height: 1.5;
    }

    /* Main area */
    .brtm-chat-page .brtm-main-area {
      flex: 1;
      min-width: 0;
      background: #f4f6fb;
      display: flex;
      flex-direction: column;
      height: calc(100vh - var(--chat-chrome, 60px));
      overflow: hidden;
      position: relative;
    }
    /* Active conversation column: the classic rule (#barantumchat-style .roomchat-container)
       sets flex:1 0 (grow but NO shrink) so it doesn't follow when the window narrows.
       Force grow+shrink so it tracks the window like .brtm-main-area. */
    .brtm-chat-page .roomchat-container { flex: 1 1 0% !important; min-width: 0 !important; overflow: hidden; container-type: inline-size; container-name: cvcol; }
    /* Channel modern (.roomchat.design-modern):
       1) inline padding-bottom (80/60px) warisan footer classic (position-absolute).
          Di modern composer-nya in-flow → 80px cuma jadi ruang kosong. Netralkan.
       2) inline background-color beda-beda per channel (#e3eef7 / #F1F5F9 / #D9F2FE).
          Area pesan (chat-body-inner) transparan → warna root yg keliatan, jadi tiap
          channel beda. Seragamkan ke BG netral (sama dgn .brtm-cv-messages WA) supaya
          bubble biru menonjol & nggak monoton. */
    .roomchat.design-modern {
      padding-bottom: 0 !important;
      background-color: #f5f6f8 !important;
      background-image: radial-gradient(circle, rgba(34,132,198,.10) 1.1px, transparent 1.1px) !important;
      background-size: 16px 16px !important;
    }
    /* barantumchat-v6.css hardcodes `.roomchat { height: 100vh }`. WA (chat2) escapes it
       because its modern root isn't .roomchat, but every other channel (line/shopee/fb/ig/
       telegram/...) uses .roomchat as the root in BOTH modes — so in modern that raw 100vh
       overflows the container (which is 100vh − chrome) and the bottom ~chrome px gets
       clipped, cutting off the composer. Give it the SAME chrome-aware definite height the
       wrappers use, so it fits exactly in normal mode AND grows to full 100vh in fullscreen
       (--chat-chrome → 0). Must be calc, not 100% — the parent chain isn't height-definite. */
    .brtm-chat-page .roomchat.design-modern { height: calc(100vh - var(--chat-chrome, 60px)) !important; }

    /*  CONVERSATION HEADER  */
    /*  13c  Conversation Header  */
    .brtm-chat-page .brtm-cv-header {
      background: white;
      border-bottom: 1px solid var(--border);
      padding: 11px 20px;
      display: flex; align-items: center; justify-content: space-between;
      flex-shrink: 0;
    }
    .brtm-chat-page .brtm-cv-header-left { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-cv-avatar-wrap { position: relative; flex-shrink: 0; }
    .brtm-chat-page .brtm-cv-avatar {
      width: 40px; height: 40px; border-radius: 50%;
      background: linear-gradient(135deg, #2284C6, #42a5f5);
      color: white; font-size: 14px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
    }
    .brtm-chat-page .brtm-cv-online-dot {
      position: absolute; bottom: 1px; right: 1px;
      width: 10px; height: 10px; background: #4caf50;
      border: 2px solid white; border-radius: 50%;
    }
    .brtm-chat-page .brtm-cv-header-info { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-cv-name {
      font-size: 15px; font-weight: 600; color: #1a2234;
      display: flex; align-items: center; gap: 8px;
    }
    .brtm-chat-page .brtm-cv-status-badge {
      font-size: 11px; font-weight: 600;
      background: #e8f5e9; color: #2e7d32;
      border-radius: 20px; padding: 2px 8px;
    }
    .brtm-chat-page .brtm-cv-status-badge.brtm-badge-open       { background: #e8f5e9; color: #2e7d32; }
    .brtm-chat-page .brtm-cv-status-badge.brtm-badge-inprogress { background: #eff6ff; color: #1d4ed8; }
    .brtm-chat-page .brtm-cv-status-badge.brtm-badge-done       { background: #dcfce7; color: #166534; }
    .brtm-chat-page .brtm-cv-status-badge.brtm-badge-pending    { background: #fff7ed; color: #ea580c; }
    .brtm-chat-page .brtm-cv-status-badge.brtm-badge-waiting    { background: #faf5ff; color: #7c3aed; }
    .brtm-chat-page .brtm-cv-sub {
      font-size: 12px; color: #8a9ab0;
      display: flex; align-items: center; gap: 4px;
    }
    .brtm-chat-page .brtm-cv-dot { color: #c4cdd8; }
    .brtm-chat-page .brtm-cv-header-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
    .brtm-chat-page .brtm-cv-action-btn {
      height: 34px; border-radius: 8px;
      border: 1px solid #e3e8ef; background: white;
      color: #8a9ab0; font-size: 18px;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; transition: all .15s;
      padding: 0 8px; gap: 5px;
    }
    .brtm-chat-page .brtm-cv-action-btn:hover { background: #f0f4ff; color: var(--primary); border-color: #c7d8f5; }
    .brtm-chat-page .brtm-cv-action-btn--active { background: #eff6ff; color: var(--primary); border-color: #bfdbfe; }
    /* WA Call button  same style as other action buttons */
    .brtm-chat-page .brtm-cv-wacall-btn { color: #8a9ab0; }
    .brtm-chat-page .brtm-cv-wacall-btn:hover { background: #f0f4ff; color: var(--primary); border-color: #c7d8f5; }
    /* WA Call permission bubbles */
    .brtm-chat-page .brtm-cv-wacall-bubble-wrap {
      overflow: hidden; min-width: 240px; max-width: 320px; border-radius: 12px;
    }
    .brtm-chat-page .brtm-outgoing-wacall { background: #dbeafe; border: 1px solid #bfdbfe; }
    .brtm-chat-page .brtm-incoming-wacall { background: #fff; border: 1px solid #e3e8ef; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
    .brtm-chat-page .brtm-cv-wacall-bubble { padding: 12px 12px 0; }
    .brtm-chat-page .brtm-cv-wacall-bubble-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
    .brtm-chat-page .brtm-cv-wacall-icon-circle {
      width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
      background: #e8f5e9; display: flex; align-items: center; justify-content: center;
      font-size: 15px; color: #25d366; position: relative;
    }
    .brtm-chat-page .brtm-wacall-badge-sm {
      position: absolute; bottom: -1px; right: -2px;
      font-size: 10px; color: #25d366; background: #fff; border-radius: 50%; line-height: 1;
    }
    .brtm-chat-page .brtm-cv-wacall-bubble-title { font-size: 13px; font-weight: 600; color: #1a2234; }
    .brtm-chat-page .brtm-cv-wacall-bubble-sub { font-size: 11px; color: #5a7396; }
    .brtm-chat-page .brtm-cv-wacall-bubble-desc { font-size: 12.5px; color: #4a5568; margin-bottom: 10px; line-height: 1.5; }
    /* Status pills */
    .brtm-chat-page .brtm-wacall-status-pill {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 10.5px; font-weight: 600; padding: 3px 8px; border-radius: 20px;
      margin-left: auto; flex-shrink: 0; white-space: nowrap;
    }
    .brtm-chat-page .brtm-wacall-pending { background: #fef9c3; color: #92400e; }
    .brtm-chat-page .brtm-wacall-allowed { background: #dcfce7; color: #166534; }
    .brtm-chat-page .brtm-wacall-denied  { background: #fee2e2; color: #991b1b; }
    .brtm-chat-page .brtm-wacall-ended   { background: #eff6ff; color: #1e40af; }
    /* Agent action row (Cancel / Call Now) */
    .brtm-chat-page .brtm-cv-wacall-bubble-actions { display: flex; gap: 8px; padding: 2px 12px 10px; }
    .brtm-chat-page .brtm-wacall-cancel-btn {
      display: inline-flex; align-items: center; gap: 5px;
      background: rgba(255,255,255,.7); border: 1px solid rgba(0,0,0,.12);
      color: #5a7396; font-size: 12px; font-weight: 500;
      padding: 5px 12px; border-radius: 6px; cursor: pointer; transition: all .15s;
    }
    .brtm-chat-page .brtm-wacall-cancel-btn:hover { background: #fee2e2; color: #dc2626; border-color: #fca5a5; }
    .brtm-chat-page .brtm-wacall-call-now-btn {
      display: inline-flex; align-items: center; gap: 6px;
      background: #25d366; border: none; color: #fff;
      font-size: 12.5px; font-weight: 600; padding: 7px 16px; border-radius: 7px; cursor: pointer; transition: all .15s;
    }
    .brtm-chat-page .brtm-wacall-call-now-btn:hover { background: #1ebe5d; }
    .brtm-chat-page .brtm-wacall-call-now-btn:disabled { background: #9de5bc; cursor: not-allowed; }
    /* User Izinkan / Tolak buttons  full-bleed row */
    .brtm-chat-page .brtm-cv-wacall-user-actions { display: flex; border-top: 1px solid rgba(0,0,0,.08); }
    .brtm-chat-page .brtm-wacall-deny-btn,
    .brtm-chat-page .brtm-wacall-allow-btn {
      flex: 1; display: flex; align-items: center; justify-content: center; gap: 5px;
      border: none; font-size: 13px; font-weight: 600; padding: 10px 0; cursor: pointer; transition: all .15s;
    }
    .brtm-chat-page .brtm-wacall-deny-btn { background: transparent; color: #64748b; border-right: 1px solid rgba(0,0,0,.08); }
    .brtm-chat-page .brtm-wacall-deny-btn:hover { background: #fef2f2; color: #dc2626; }
    .brtm-chat-page .brtm-wacall-allow-btn { background: transparent; color: #25d366; }
    .brtm-chat-page .brtm-wacall-allow-btn:hover { background: #f0fdf4; color: #166534; }
    /* Response states (replace Allow/Deny after tap) */
    .brtm-chat-page .brtm-wacall-response-granted,
    .brtm-chat-page .brtm-wacall-response-denied {
      display: flex; align-items: center; gap: 6px;
      border-top: 1px solid rgba(0,0,0,.08); padding: 9px 12px;
      font-size: 12.5px; font-weight: 500;
    }
    .brtm-chat-page .brtm-wacall-response-granted { color: #166534; background: #f0fdf4; }
    .brtm-chat-page .brtm-wacall-response-denied  { color: #991b1b; background: #fff5f5; }
    /* Time row */
    .brtm-chat-page .brtm-cv-wacall-time-row { padding: 4px 12px 8px; font-size: 11px; color: #8a9ab0; }
    .brtm-chat-page .brtm-outgoing-wacall .brtm-cv-wacall-time-row { text-align: right; }
    .brtm-chat-page .brtm-incoming-wacall .brtm-cv-wacall-time-row { text-align: left; }
    /* Live call pulsing dot */
    .brtm-chat-page .brtm-wacall-live { display: flex; align-items: center; gap: 5px; }
    .brtm-chat-page .brtm-wacall-live-dot {
      width: 7px; height: 7px; border-radius: 50%; background: #22c55e; flex-shrink: 0;
      animation: brtm-wacall-pulse 1.2s ease-in-out infinite;
    }
    @keyframes brtm-wacall-pulse { 0%,100%{ opacity:1;transform:scale(1); } 50%{ opacity:.5;transform:scale(.8); } }
    /* Simulator section divider */
    .brtm-chat-page .brtm-wacall-sim-divider span { background: #ede9fe; color: #5b21b6; }
    /* WA Call Modal  tier badge + info banner */
    .brtm-wacall-tier-badge {
      display: inline-flex; align-items: center; gap: 5px;
      background: linear-gradient(135deg,#7c3aed,#6d28d9); color: #fff;
      font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 20px;
    }
    .brtm-wacall-info-banner {
      display: flex; align-items: flex-start; gap: 8px;
      background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px;
      padding: 10px 12px; font-size: 12px; color: #1e40af; line-height: 1.5;
    }
    .brtm-wacall-info-banner i { color: #3b82f6; font-size: 14px; flex-shrink: 0; margin-top: 1px; }

    /* ══════════════════════════════════════════════════════════════════════════
       WA CALL — port dari adesign/wacall-real.html (prefix prototype .wcr-* →
       .brtm-wacall-*). Hanya state yang punya dukungan prop + endpoint produksi:
       locked(feature|status) · need · waiting · rejected · ready.
       ══════════════════════════════════════════════════════════════════════════ */
    .brtm-chat-page .brtm-wacall-wrap { position: relative; display: inline-flex; align-items: center; }
    .brtm-chat-page .brtm-cv-wacall-btn { position: relative; }
    .brtm-chat-page .brtm-wacall-lock { display: none; }
    .brtm-chat-page .brtm-cv-wacall-btn.is-locked { color: #b3bccd !important; background: #f8fafc !important; border-color: #eef1f5 !important; cursor: not-allowed; }
    .brtm-chat-page .brtm-cv-wacall-btn.is-locked .brtm-wacall-lock {
      display: flex; position: absolute; right: -2px; bottom: -2px;
      width: 13px; height: 13px; border-radius: 50%; background: #fff; color: #d97706;
      font-size: 7px; align-items: center; justify-content: center;
      box-shadow: 0 0 0 1.5px #fff, 0 1px 3px rgba(15,23,42,.25);
    }
    /* popover alasan terkunci — hanya muncul saat hover di state locked */
    .brtm-chat-page .brtm-wacall-pop {
      position: absolute; top: calc(100% + 10px); right: -4px; width: 262px;
      background: #fff; border: 1px solid #e3e8ef; border-radius: 11px;
      box-shadow: 0 12px 34px rgba(15,23,42,.18); padding: 13px 14px; z-index: 6000; display: none;
    }
    .brtm-chat-page .brtm-wacall-pop::before { content: ''; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
    .brtm-chat-page .brtm-wacall-wrap.locked:hover .brtm-wacall-pop { display: block; }
    /* waiting for the customer's answer: tips + Perbarui Status (the status card is off) */
    .brtm-chat-page .brtm-wacall-wrap.has-pop:hover .brtm-wacall-pop { display: block; }
    .brtm-chat-page .brtm-wacall-pop-tips { padding-left: 16px; }
    .brtm-chat-page .brtm-wacall-pop-tips li + li { margin-top: 4px; }
    .brtm-chat-page .brtm-wacall-pop-arrow {
      position: absolute; top: -6px; right: 13px; width: 11px; height: 11px; background: #fff;
      border-left: 1px solid #e3e8ef; border-top: 1px solid #e3e8ef; transform: rotate(45deg);
    }
    .brtm-chat-page .brtm-wacall-pop-head { font-size: 13px; font-weight: 700; color: #b45309; display: flex; align-items: center; gap: 6px; margin-bottom: 5px; }
    .brtm-chat-page .brtm-wacall-pop-body { font-size: 12px; color: #5a6b86; line-height: 1.55; margin-bottom: 11px; }
    .brtm-chat-page .brtm-wacall-pop-btn {
      width: 100%; border: none; background: var(--primary, #1B6FBE); color: #fff; font-weight: 600; font-size: 12.5px;
      padding: 8px; border-radius: 8px; cursor: pointer; display: flex; align-items: center; justify-content: center;
      gap: 6px; transition: .12s; text-decoration: none;
    }
    .brtm-chat-page .brtm-wacall-pop-btn:hover { background: #134E8E; color: #fff; }

    /* state "izin aktif": pill hijau + tombol hijau (amber bila ≤24 jam lagi) */
    .brtm-chat-page .brtm-wacall-ready-pill {
      display: inline-flex; align-items: center; gap: 4px; height: 26px; padding: 0 10px; margin-right: 3px;
      background: #e8f9ef; color: #12a150; border: 1px solid #b6ecc9; border-radius: 999px;
      font-size: 11.5px; font-weight: 600; white-space: nowrap; cursor: pointer;
    }
    .brtm-chat-page .brtm-wacall-ready-pill i { font-size: 12px; }
    .brtm-chat-page .brtm-cv-wacall-btn.brtm-wacall-ready { color: #12a150 !important; background: #e8f9ef !important; border-color: #b6ecc9 !important; cursor: pointer; }
    .brtm-chat-page .brtm-cv-wacall-btn.brtm-wacall-ready:hover { background: #d6f5e3 !important; }
    .brtm-chat-page .brtm-wacall-ready-pill.brtm-wacall-expiring { background: #fef3c7; color: #92400e; border-color: #fde68a; }
    .brtm-chat-page .brtm-cv-wacall-btn.brtm-wacall-ready.brtm-wacall-expiring-btn { color: #92400e !important; background: #fef3c7 !important; border-color: #fde68a !important; }
    /* state "menunggu persetujuan" — titik amber di pojok tombol */
    .brtm-chat-page .brtm-cv-wacall-btn.brtm-wacall-waiting::after {
      content: ''; position: absolute; right: -1px; top: -1px; width: 9px; height: 9px;
      border-radius: 50%; background: #f59e0b; box-shadow: 0 0 0 2px #fff;
    }

    /* ── kartu status permintaan izin di ujung stream ── */
    .brtm-chat-page .brtm-wacall-card-wrap { max-width: 340px; }
    .brtm-chat-page .brtm-wacall-card { background: #e8f6ef; border: 1px solid #c9e9d9; border-radius: 12px; padding: 12px 13px; box-shadow: 0 1px 2px rgba(15,23,42,.05); }
    .brtm-chat-page .brtm-wacall-card-head { display: flex; align-items: flex-start; gap: 9px; margin-bottom: 8px; }
    .brtm-chat-page .brtm-wacall-card-icon {
      position: relative; flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
      background: linear-gradient(135deg,#25d366,#12a150); color: #fff;
      display: flex; align-items: center; justify-content: center; font-size: 14px;
    }
    .brtm-chat-page .brtm-wacall-card-icon .bi-whatsapp {
      position: absolute; right: -3px; bottom: -3px; font-size: 8px; background: #fff; color: #25d366;
      border-radius: 50%; width: 14px; height: 14px; display: flex; align-items: center; justify-content: center;
    }
    .brtm-chat-page .brtm-wacall-card-title { font-size: 13px; font-weight: 650; color: #1a2234; line-height: 1.25; }
    .brtm-chat-page .brtm-wacall-card-sub { font-size: 11px; color: #8a9ab0; margin-top: 1px; }
    .brtm-chat-page .brtm-wacall-card-desc { font-size: 12.5px; color: #40597a; line-height: 1.5; }
    .brtm-chat-page .brtm-wacall-cpill {
      flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; white-space: nowrap;
    }
    .brtm-chat-page .brtm-wacall-cpill.wait { background: #fef3c7; color: #92400e; }
    .brtm-chat-page .brtm-wacall-cpill.ok   { background: #dcfce7; color: #15803d; }
    .brtm-chat-page .brtm-wacall-cpill.no   { background: #fee2e2; color: #b91c1c; }
    .brtm-chat-page .brtm-wacall-card-actions { display: flex; gap: 7px; margin-top: 10px; flex-wrap: wrap; }
    .brtm-chat-page .brtm-wacall-cbtn {
      flex: 1; min-width: 120px; display: flex; align-items: center; justify-content: center; gap: 6px;
      padding: 8px; border-radius: 9px; font-size: 12px; font-weight: 650; cursor: pointer;
      border: 1px solid transparent; transition: .12s;
    }
    .brtm-chat-page .brtm-wacall-cbtn--call { background: linear-gradient(135deg,#25d366,#12a150); color: #fff; }
    .brtm-chat-page .brtm-wacall-cbtn--call:hover { filter: brightness(1.05); }
    .brtm-chat-page .brtm-wacall-cbtn--ghost { background: #fff; border-color: #dbe3ee; color: #516079; }
    .brtm-chat-page .brtm-wacall-cbtn--ghost:hover { background: #f5f8fc; }
    .brtm-chat-page .brtm-wacall-cbtn:disabled { opacity: .45; cursor: not-allowed; }
    .brtm-chat-page .brtm-wacall-card-time { font-size: 10.5px; color: #8a9ab0; text-align: right; margin-top: 7px; }
    .brtm-chat-page .brtm-wacall-note-warn {
      margin-top: 8px; font-size: 10.5px; color: #b45309; background: #fffbeb;
      border: 1px dashed #fde68a; border-radius: 7px; padding: 6px 8px; line-height: 1.45;
    }

    /* ── tips kontekstual (isi beda per state) ── */
    .brtm-chat-page .brtm-wacall-tips { margin-top: 9px; background: #f7f9fc; border: 1px solid #e9eef6; border-radius: 9px; padding: 8px 10px; }
    .brtm-chat-page .brtm-wacall-tips-head {
      display: flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 700; color: #516079;
      text-transform: uppercase; letter-spacing: .03em; margin-bottom: 5px;
    }
    .brtm-chat-page .brtm-wacall-tips-head i { color: #d97706; font-size: 12px; }
    /* varian tombol: tips di kartu bisa dibuka-tutup supaya kartu tidak kepanjangan */
    .brtm-chat-page .brtm-wacall-tips-head--btn {
      width: 100%; margin: 0; padding: 0; border: 0; background: none;
      cursor: pointer; text-align: left; font-family: inherit;
    }
    .brtm-chat-page .brtm-wacall-tips-head--btn:hover { color: #18233a; }
    .brtm-chat-page .brtm-wacall-tips-count {
      background: #eef2f7; color: #64748b; border-radius: 999px;
      padding: 0 6px; font-size: 10px; font-weight: 700; letter-spacing: 0;
    }
    .brtm-chat-page .brtm-wacall-tips-chev { margin-left: auto; color: #8a9ab0; font-size: 11px; }
    .brtm-chat-page .brtm-wacall-tips ul { margin: 5px 0 0; padding-left: 15px; }
    .brtm-chat-page .brtm-wacall-tips li { font-size: 11.5px; color: #516079; line-height: 1.5; margin-bottom: 3px; }
    .brtm-chat-page .brtm-wacall-tips li:last-child { margin-bottom: 0; }
    .brtm-chat-page .brtm-wacall-tips li b { color: #18233a; }
    .brtm-wacall-tips--modal { background: #fbfcfe; border-color: #eef1f5; margin-top: 14px; padding: 11px 12px; }
    .brtm-wacall-tips--modal li { font-size: 12px; line-height: 1.55; }

    /* ══ modal minta izin (.wacm-*) — tidak di-scope ke .brtm-chat-page karena
       dirender di body-level oleh teleport-less overlay position:fixed ══ */
    .wacm-overlay { padding: 16px; z-index: 10050; position: fixed; inset: 0; background: rgba(15,23,42,.45); display: flex; align-items: center; justify-content: center; }
    .wacm-box { width: 404px; max-width: calc(100vw - 32px); background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 24px 60px rgba(15,23,42,.32); animation: wacmPop .18s cubic-bezier(.2,.8,.3,1); }
    @keyframes wacmPop { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
    .wacm-head { position: relative; display: flex; align-items: center; gap: 12px; padding: 18px 46px 16px 18px; background: linear-gradient(135deg,#25d366,#12a150 55%,#0b8043); color: #fff; }
    .wacm-head-icon { position: relative; flex-shrink: 0; width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.2); display: flex; align-items: center; justify-content: center; font-size: 18px; }
    .wacm-head-icon .wacm-head-wa { position: absolute; right: -3px; bottom: -3px; font-size: 11px; background: #fff; color: #25d366; border-radius: 50%; width: 17px; height: 17px; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
    .wacm-head-title { font-size: 16px; font-weight: 700; line-height: 1.2; }
    .wacm-head-sub { font-size: 12px; opacity: .92; margin-top: 2px; }
    .wacm-close { position: absolute; top: 13px; right: 13px; width: 28px; height: 28px; border: none; border-radius: 8px; background: rgba(255,255,255,.18); color: #fff; font-size: 12px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: .12s; }
    .wacm-close:hover { background: rgba(255,255,255,.34); }
    .wacm-body { padding: 18px; }
    .wacm-contact { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid #eef1f5; border-radius: 13px; background: #fbfcfe; }
    .wacm-avatar { flex-shrink: 0; width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg,#25d366,#128c7e); color: #fff; font-weight: 700; font-size: 16px; display: flex; align-items: center; justify-content: center; }
    .wacm-contact-info { flex: 1; min-width: 0; }
    .wacm-contact-name { font-size: 15px; font-weight: 650; color: #1a2234; }
    .wacm-contact-phone { font-size: 12.5px; color: #5a7396; margin-top: 2px; display: flex; align-items: center; gap: 5px; }
    .wacm-steps { display: flex; align-items: flex-start; justify-content: center; gap: 2px; margin: 18px 0 2px; }
    .wacm-step { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 72px; flex: 0 0 auto; }
    .wacm-step-dot { width: 26px; height: 26px; border-radius: 50%; background: #eef1f5; color: #8a9ab0; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
    .wacm-step-dot--active { background: #25d366; color: #fff; box-shadow: 0 0 0 4px rgba(37,211,102,.15); }
    .wacm-step-label { font-size: 10.5px; color: #5a6b86; text-align: center; line-height: 1.25; font-weight: 500; }
    .wacm-step-line { flex: 1; max-width: 34px; height: 2px; background: #eef1f5; margin-top: 12px; border-radius: 2px; }
    .wacm-note { display: flex; gap: 9px; align-items: flex-start; margin-top: 16px; padding: 11px 12px; background: #eef6ff; border: 1px solid #d6e6fb; border-radius: 11px; font-size: 12px; color: #40597a; line-height: 1.5; }
    .wacm-note i { color: var(--primary, #1B6FBE); font-size: 14px; margin-top: 1px; flex-shrink: 0; }
    .wacm-learnmore { margin-top: 10px; font-size: 11.5px; color: var(--primary, #1B6FBE); font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
    .wacm-learnmore:hover { text-decoration: underline; }
    .wacm-learnmore-box { margin-top: 10px; padding: 11px 12px; background: #f7f9fc; border: 1px solid #eef1f5; border-radius: 11px; font-size: 11.5px; color: #40597a; line-height: 1.6; }
    .wacm-learnmore-box b { color: #1a2234; }
    .wacm-foot { display: flex; gap: 10px; padding: 2px 18px 18px; }
    .wacm-btn-cancel { flex: 0 0 auto; padding: 11px 20px; border: 1.5px solid #e3e8ef; border-radius: 11px; background: #fff; color: #5a6b86; font-size: 13.5px; font-weight: 600; cursor: pointer; transition: .12s; }
    .wacm-btn-cancel:hover { background: #f5f7fa; color: #1a2234; }
    .wacm-btn-send { flex: 1; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 11px 18px; border: none; border-radius: 11px; background: linear-gradient(135deg,#25d366,#12a150); color: #fff; font-size: 13.5px; font-weight: 650; cursor: pointer; box-shadow: 0 4px 14px rgba(37,211,102,.35); transition: .12s; }
    .wacm-btn-send:hover { filter: brightness(1.05); }
    .wacm-btn-send:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
    /* channel: produksi mengunci ke room (startWACall kirim channel:"whatsapp") → baris info, bukan dropdown */
    .wacm-chanrow { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 10px 12px; border: 1px solid #eef1f5; border-radius: 11px; background: #fbfcfe; }
    .wacm-chanrow-ava { width: 30px; height: 30px; border-radius: 9px; background: #e8f9ef; color: #25d366; display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
    .wacm-chanrow-txt { flex: 1; min-width: 0; line-height: 1.3; }
    .wacm-chanrow-lbl { font-size: 10.5px; color: #8a9ab0; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
    .wacm-chanrow-val { font-size: 13px; font-weight: 600; color: #1a2234; }
    /* Active WA Call Bar */
    .brtm-active-call-bar {
      display: flex; align-items: center; justify-content: space-between;
      padding: 10px 16px; flex-shrink: 0;
      background: linear-gradient(135deg,#064e3b,#065f46);
      border-bottom: 1px solid #047857;
      box-shadow: 0 2px 10px rgba(16,185,129,.2);
      animation: brtm-callbar-in .25s ease;
    }
    @keyframes brtm-callbar-in { from{ opacity:0;transform:translateY(-6px); } to{ opacity:1;transform:translateY(0); } }
    .brtm-active-call-left { display: flex; align-items: center; gap: 10px; }
    .brtm-active-call-avatar {
      width: 36px; height: 36px; border-radius: 50%;
      background: rgba(255,255,255,.2); color: #fff;
      display: flex; align-items: center; justify-content: center;
      font-size: 13px; font-weight: 700; flex-shrink: 0;
    }
    .brtm-active-call-name { font-size: 13px; font-weight: 600; color: #fff; }
    .brtm-active-call-status { display: flex; align-items: center; gap: 5px; font-size: 12px; color: rgba(255,255,255,.8); }
    .brtm-active-call-dot {
      width: 7px; height: 7px; border-radius: 50%; background: #4ade80; flex-shrink: 0;
      animation: brtm-wacall-pulse 1.2s ease-in-out infinite;
    }
    .brtm-active-call-actions { display: flex; align-items: center; gap: 8px; }
    .brtm-active-call-btn {
      height: 34px; padding: 0 12px; border-radius: 8px;
      background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.25);
      color: #fff; font-size: 15px; display: flex; align-items: center; gap: 5px;
      cursor: pointer; transition: all .15s;
    }
    .brtm-active-call-btn:hover { background: rgba(255,255,255,.3); }
    .brtm-active-call-btn--active { background: rgba(255,255,255,.35); }
    .brtm-active-call-end {
      background: #dc2626 !important; border-color: #b91c1c !important;
      font-size: 13px; font-weight: 600; padding: 0 14px;
    }
    .brtm-active-call-end:hover { background: #b91c1c !important; }
    /* Status pesan button */
    .brtm-chat-page .brtm-cv-status-btn {
      font-size: 12px; font-weight: 500; color: #1a2234;
      padding: 0 10px; gap: 6px; min-width: unset;
    }
    .brtm-chat-page .brtm-cv-status-dot {
      width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-cv-status-dot.brtm-status-online  { background: #22c55e; }
    .brtm-chat-page .brtm-cv-status-dot.brtm-status-away    { background: #f59e0b; }
    .brtm-chat-page .brtm-cv-status-dot.brtm-status-offline { background: #94a3b8; }
    .brtm-chat-page .brtm-cv-status-label { font-family: var(--brtm-font-ui); font-size: 12px; }
    /* Bot toggle button */
    .brtm-chat-page .brtm-cv-bot-btn { gap: 5px; padding: 0 10px; position: relative; }
    .brtm-chat-page .brtm-cv-bot-btn i { font-size: 16px; }
    /* Bot status dot */
    .brtm-chat-page .brtm-bot-dot {
      position: absolute; top: 5px; right: 5px;
      width: 7px; height: 7px; border-radius: 50%;
      border: 1.5px solid white;
    }
    .brtm-chat-page .brtm-bot-dot--on  { background: #22c55e; }
    .brtm-chat-page .brtm-bot-dot--off { background: #94a3b8; }
    .brtm-chat-page .brtm-bot-dot--na  { background: var(--sev-crit); }
    .brtm-chat-page .brtm-cv-bot-btn[data-bot-state="unavailable"] { opacity: .5; cursor: not-allowed; }
    .brtm-chat-page .brtm-cv-bot-badge {
      font-size: 9px; font-weight: 700; font-family: var(--brtm-font-ui);
      padding: 1px 5px; border-radius: 10px; letter-spacing: .3px;
    }
    .brtm-chat-page .brtm-cv-bot-badge.brtm-bot-on  { background: #dcfce7; color: #16a34a; }
    .brtm-chat-page .brtm-cv-bot-badge.brtm-bot-off { background: #f1f5f9; color: #94a3b8; }
    /* Bot popover */
    .brtm-chat-page .brtm-bot-popover {
      display: none; position: absolute; top: calc(100% + 10px); right: 0;
      background: white; border-radius: 12px;
      box-shadow: 0 8px 28px rgba(0,0,0,.14);
      border: 1px solid #e8edf5;
      padding: 12px 14px; width: 220px; z-index: 300;
      animation: ctxFadeIn .15s ease;
    }
    .brtm-chat-page .brtm-bot-popover::before {
      content: ''; position: absolute; top: -6px; right: 16px;
      width: 10px; height: 10px; background: white;
      border-left: 1px solid #e8edf5; border-top: 1px solid #e8edf5;
      transform: rotate(45deg);
    }
    .brtm-chat-page .brtm-bot-popover--show { display: block; }
    .brtm-chat-page .brtm-bot-popover-title {
      font-size: 12px; font-weight: 700; color: #1a2234;
      display: flex; align-items: center; gap: 6px; margin-bottom: 6px;
    }
    .brtm-chat-page .brtm-bot-popover-title i { color: var(--primary); font-size: 13px; }
    .brtm-chat-page .brtm-bot-popover-desc {
      font-size: 11.5px; color: #64748b; line-height: 1.5;
    }
    .brtm-chat-page .brtm-bot-popover-desc strong { color: #16a34a; }
    /* Resolve split button */
    .brtm-chat-page .brtm-resolve-wrap {
      display: flex; align-items: stretch; position: relative;
    }
    .brtm-chat-page .brtm-cv-btn-resolve {
      background: var(--primary); color: white;
      border: none; border-radius: 8px 0 0 8px;
      padding: 8px 14px; font-size: 13px; font-weight: 600;
      display: flex; align-items: center; gap: 6px;
      cursor: pointer; font-family: var(--brtm-font-ui);
      transition: background .15s; white-space: nowrap;
    }
    .brtm-chat-page .brtm-cv-btn-resolve:hover { background: #1560a8; }
    .brtm-chat-page .brtm-cv-btn-resolve-arrow {
      background: var(--primary); color: rgba(255,255,255,.85);
      border: none; border-left: 1px solid rgba(255,255,255,.2);
      border-radius: 0 8px 8px 0;
      padding: 8px 9px; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .15s; font-size: 11px;
    }
    .brtm-chat-page .brtm-cv-btn-resolve-arrow:hover { background: #1560a8; }
    .brtm-chat-page .brtm-resolve-dropdown {
      display: none; position: absolute; top: calc(100% + 6px); right: 0;
      background: white; border-radius: 10px;
      box-shadow: 0 8px 24px rgba(0,0,0,.13); min-width: 200px;
      padding: 5px; z-index: 200; animation: ctxFadeIn .12s ease;
    }
    .brtm-chat-page .brtm-resolve-dropdown.brtm-open { display: block; }
    .brtm-chat-page .brtm-resolve-dd-item {
      display: flex; align-items: center; gap: 10px;
      padding: 9px 12px; border-radius: 7px; cursor: pointer;
      font-size: 13px; color: #1a2234; font-family: var(--brtm-font-ui);
      transition: background .12s;
    }
    .brtm-chat-page .brtm-resolve-dd-item:hover { background: #f0f4ff; color: var(--primary); }
    .brtm-chat-page .brtm-resolve-dd-item i { font-size: 15px; color: #8a9ab0; width: 18px; text-align: center; }
    .brtm-chat-page .brtm-resolve-dd-item:hover i { color: var(--primary); }
    .brtm-chat-page .brtm-resolve-dd-divider { height: 1px; background: #f0f0f0; margin: 3px 0; }

    /* Tags bar */
    .brtm-chat-page .brtm-cv-tags-bar {
      background: white;
      border-bottom: 1px solid var(--border);
      padding: 8px 20px;
      display: flex; align-items: center; gap: 8px;
      flex-shrink: 0;
    }
    .brtm-chat-page .brtm-cv-tag-add {
      background: none; border: 1px dashed #c4cdd8;
      color: #8a9ab0; border-radius: 20px;
      font-size: 11px; padding: 2px 10px;
      cursor: pointer; font-family: var(--brtm-font-ui);
      display: flex; align-items: center; gap: 3px;
      transition: all .15s;
    }
    .brtm-chat-page .brtm-cv-tag-add:hover { border-color: var(--primary); color: var(--primary); }

    /*  MESSAGES  */
    /*  13d  Messages & Bubbles  */
    .brtm-chat-page .brtm-cv-messages {
      flex: 1; overflow-y: auto;
      padding: 20px 24px;
      display: flex; flex-direction: column; gap: 15px;
      background-color: #f5f6f8;
      background-image: radial-gradient(circle, rgba(34,132,198,.10) 1.1px, transparent 1.1px);
      background-size: 16px 16px;
    }
    .brtm-chat-page .brtm-cv-messages::-webkit-scrollbar { width: 2px; }
    .brtm-chat-page .brtm-cv-messages::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 2px; }
    .brtm-chat-page .brtm-cv-messages::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,.28); }

    .brtm-chat-page .brtm-cv-date-divider {
      text-align: center; margin: 12px 0;
    }
    .brtm-chat-page .brtm-cv-daygroup {
      display: flex; flex-direction: column; gap: 15px;
    }
    .brtm-chat-page .brtm-cv-date-divider.brtm-date-real {
      position: sticky;
      top: 8px;
      z-index: 10;
    }
    .brtm-chat-page .brtm-cv-date-divider::before {
      content: ''; position: absolute;
      left: 0; right: 0; top: 50%;
      height: 0;
    }
    .brtm-chat-page .brtm-cv-date-divider span {
      background: #ffffff;
      position: relative;
      padding: 6px 16px; font-size: 13px;
      color: #1a2234; font-weight: 600;
      border-radius: 20px;
      letter-spacing: .2px;
    }
    /* "Last Status : done" — penanda room sebelumnya (old_room). Memakai <a> di dalam
       .brtm-cv-date-divider, jadi style sbg pill sekunder (muted) supaya tidak tampil
       sebagai teks mentah. Berlaku semua channel (telegram/line/fb/twitter/dll). */
    .brtm-chat-page .brtm-cv-date-divider a {
      display: inline-flex; align-items: center; gap: 6px;
      background: rgba(255, 255, 255, .6);
      position: relative;
      padding: 4px 14px; font-size: 11.5px;
      color: #6b7a90; font-weight: 600;
      border-radius: 20px; text-decoration: none;
      border: 1px solid rgba(0, 0, 0, .07);
    }
    .brtm-chat-page .brtm-cv-date-divider a:hover { color: #2284C6; border-color: rgba(34, 132, 198, .4); }

    .brtm-chat-page .brtm-cv-msg {
      display: flex; align-items: flex-end; gap: 8px;
      margin-bottom: 0;
      position: relative;
    }
    .brtm-chat-page .brtm-cv-msg.brtm-outgoing { flex-direction: row-reverse; }

    /* Channel rooms (telegram/line/fb/ig/twitter/tokopedia/shopee/livechat/
       callcenter/google-review/tiktok-shop) reuse the classic
       #chat_scroll_box.chat-body-inner container instead of .brtm-cv-messages,
       so they don't get its flex `gap`. Restore vertical spacing between
       modern bubbles here (scoped to the classic container so chat2 is unaffected). */
    .brtm-chat-page .chat-body-inner .brtm-cv-msg { margin-bottom: 14px; }
    /* Horizontal padding for the modern message area. Set to 0 per user preference — the
       channel bubbles already get their horizontal inset from elsewhere, so adding padding
       here doubled it up ("kejauhan"). Scoped to .design-modern so classic keeps its own. */
    .brtm-chat-page .design-modern .chat-body-inner { padding-left: 0; padding-right: 0; }
    /* Classic reserves `#barantumchat-style .chat-body { padding-bottom: 5rem }` (80px)
       to clear its position-absolute footer. In modern the composer is in-flow, so that
       80px just becomes dead space below the last message / above the composer — the
       "jarak" the user sees. chat2 (WA) escapes this because it uses .brtm-cv-messages;
       every other channel reuses .chat-body, so neutralize it here for all of them.
       Needs !important: the classic rule carries #barantumchat-style (id) specificity. */
    .brtm-chat-page .design-modern .chat-body { padding-bottom: 0 !important; }

    /*  BUBBLE HOVER ACTION BUTTONS (WA-style)  */
    /* Outside bubble: emoji + chevron, as flex siblings beside the bubble */
    .brtm-chat-page .brtm-cv-msg-outside-actions {
      display: flex; align-items: center; gap: 3px;
      align-self: center;
      opacity: 0; pointer-events: none; transition: opacity .15s;
      flex-shrink: 0;
    }
    .brtm-chat-page .brtm-cv-msg:hover .brtm-cv-msg-outside-actions {
      opacity: 1; pointer-events: auto;
    }
    .brtm-chat-page .brtm-cv-msg-actions-btn {
      width: 26px; height: 26px;
      border-radius: 50%;
      background: transparent;
      border: none; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      font-size: 13px; color: #8a9ab0;
      transition: background .12s, color .12s;
    }
    .brtm-chat-page .brtm-cv-msg-actions-btn:hover {
      background: rgba(0,0,0,.08); color: #4a5568;
    }
    .brtm-chat-page .brtm-cv-msg-avatar {
      width: 30px; height: 30px; border-radius: 50%;
      background: linear-gradient(135deg, #2284C6, #42a5f5);
      color: white; font-size: 10px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .brtm-chat-page .brtm-cv-msg-body { display: flex; flex-direction: column; gap: 3px; max-width: 65%; min-width: 0; }
    .brtm-chat-page .brtm-cv-msg.brtm-outgoing .brtm-cv-msg-body { align-items: flex-end; }

    .brtm-chat-page .brtm-cv-bubble {
      padding: 7px 12px 6px; border-radius: 10px;
      font-size: 13px; line-height: 1.55; word-break: break-word;
      position: relative;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-incoming {
      background: #ffffff;
      color: #1a2234;
      border-top-left-radius: 0;
      box-shadow: 0 1px 1px rgba(0,0,0,.1);
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-incoming::before {
      content: '';
      position: absolute;
      top: 0; left: -8px;
      border-top: 0 solid transparent;
      border-right: 8px solid #ffffff;
      border-bottom: 10px solid transparent;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing {
      background: #dbeafe;
      color: #1a2234;
      border-top-right-radius: 0;
      box-shadow: 0 1px 1px rgba(0,0,0,.1);
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing::after {
      content: '';
      position: absolute;
      top: 0; right: -8px;
      border-top: 0 solid transparent;
      border-left: 8px solid #dbeafe;
      border-bottom: 10px solid transparent;
    }
    /* Timestamp inside bubble (WhatsApp style) */
    .brtm-chat-page .brtm-cv-bubble-meta {
      float: right;
      margin: 4px -2px 6px 8px;
      font-size: 11px;
      white-space: nowrap;
      line-height: 1;
      color: #8a9ab0;
      display: flex; align-items: center; gap: 3px;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-bubble-meta {
      color: #5a7396;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-bubble-meta i:not(.brtm-msg-status) {
      color: var(--primary);
    }
    /* Meta row for audio/doc/call bubbles  timestamp below content, right-aligned */
    .brtm-chat-page .brtm-cv-bubble-meta-row {
      display: flex;
      justify-content: flex-end;
      margin-top: 2px;
      padding: 0 2px;
    }
    .brtm-chat-page .brtm-cv-bubble-meta-row .brtm-cv-bubble-meta {
      float: none;
      margin: 0;
    }
    .brtm-chat-page .brtm-cv-msg-meta { display: none; }

    /* Typing indicator — dipakai bareng .brtm-cv-bubble (shape: padding/radius/word-break),
       tapi warna sendiri (abu-abu netral) supaya tidak "misleading" dikira bubble pesan
       masuk beneran (.brtm-incoming). */
    .brtm-chat-page .brtm-cv-typing {
      display: inline-block; width: fit-content; max-width: 100%;
      align-self: flex-start; flex-shrink: 0; margin: 4px 0 4px 8px;
      position: relative;
      background: #eef1f5; color: #54656f;
      border-top-left-radius: 0;
      box-shadow: 0 1px 1px rgba(0,0,0,.06);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .brtm-chat-page .brtm-cv-typing::before {
      content: '';
      position: absolute;
      top: 0; left: -8px;
      border-top: 0 solid transparent;
      border-right: 8px solid #eef1f5;
      border-bottom: 10px solid transparent;
    }
    .brtm-cv-typing-classic {
      display: inline-block; width: fit-content; max-width: 100%;
      flex-shrink: 0;
      background: #eef1f5; color: #54656f;
      box-shadow: 0 1px 1px rgba(0,0,0,.06);
      white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis;
    }

    /* System note */
    .brtm-chat-page .brtm-cv-system-note {
      text-align: center; font-size: 11px; color: #54656f;
      background: #e8eef7; border-radius: 20px;
      padding: 4px 14px; align-self: center;
      margin: 6px 0; display: flex; align-items: center; gap: 5px;
      box-shadow: 0 1px 2px rgba(0,0,0,.08);
    }

    /*  MEDIA DOWNLOAD STATES  */
    .brtm-chat-page .brtm-cv-media-dl-wrap { position: relative; border-radius: 8px; overflow: hidden; }
    .brtm-chat-page .brtm-cv-media-thumb {
      width: 100%; min-height: 150px;
      display: flex; align-items: center; justify-content: center;
      flex-direction: column; gap: 6px; position: relative;
      background: rgba(0,0,0,.13); border-radius: 8px;
    }
    .brtm-chat-page .brtm-cv-media-thumb > i { font-size: 42px; opacity: .2; color: #fff; }
    .brtm-chat-page .brtm-cv-media-dl-btn {
      position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
      width: 50px; height: 50px; border-radius: 50%;
      background: rgba(0,0,0,.52); color: white;
      display: flex; align-items: center; justify-content: center;
      font-size: 22px; cursor: pointer; transition: background .15s;
    }
    .brtm-chat-page .brtm-cv-media-dl-btn:hover { background: rgba(0,0,0,.72); }
    .brtm-chat-page .brtm-cv-media-dl-size {
      position: absolute; bottom: 8px; right: 8px;
      font-size: 10px; color: white; font-weight: 600;
      background: rgba(0,0,0,.45); border-radius: 8px; padding: 2px 7px;
    }
    .brtm-chat-page .brtm-cv-media-progress-wrap {
      position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
      display: flex; flex-direction: column; align-items: center; gap: 6px;
    }
    .brtm-chat-page .brtm-cv-media-progress-ring {
      width: 52px; height: 52px; border-radius: 50%;
      border: 3px solid rgba(255,255,255,.25);
      border-top-color: white; animation: dlSpin .8s linear infinite;
    }
    @keyframes dlSpin { to { transform: rotate(360deg); } }
    .brtm-chat-page .brtm-cv-media-dl-pct { font-size: 11px; color: white; font-weight: 700; }
    .brtm-chat-page .brtm-cv-media-thumb.brtm-media-downloaded { background: rgba(0,0,0,.07); }
    .brtm-chat-page .brtm-cv-media-thumb.brtm-media-downloaded > i { opacity: .5; color: #0ea5e9; }
    .brtm-chat-page .brtm-media-dl-indicator {
      position: absolute; bottom: 8px; left: 8px;
      width: 20px; height: 20px; border-radius: 50%;
      background: #16a34a; color: white; font-size: 11px;
      display: flex; align-items: center; justify-content: center;
    }
    .brtm-chat-page .brtm-cv-media-thumb.brtm-media-previewing { background: #0d1117; }
    .brtm-chat-page .brtm-cv-media-thumb.brtm-media-previewing > i { opacity: .15; color: #fff; }
    .brtm-chat-page .brtm-cv-media-preview-btn {
      position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
      width: 54px; height: 54px; border-radius: 50%;
      background: rgba(255,255,255,.18); color: white;
      display: flex; align-items: center; justify-content: center;
      font-size: 28px; cursor: pointer; border: 2px solid rgba(255,255,255,.4);
    }
    .brtm-chat-page .brtm-cv-media-progress-label {
      position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%);
      font-size: 10px; color: white; font-weight: 600;
      background: rgba(0,0,0,.45); border-radius: 8px; padding: 2px 8px; white-space: nowrap;
    }
    .brtm-chat-page .brtm-cv-media-unsupported {
      background: #f4f6fb; min-height: 70px;
      flex-direction: row; gap: 12px; padding: 14px 16px;
      justify-content: flex-start; align-items: center; border-radius: 8px;
    }
    .brtm-chat-page .brtm-cv-media-unsupported > i { font-size: 28px; opacity: .35; flex-shrink: 0; }
    .brtm-chat-page .brtm-cv-media-unsupported-label { font-size: 13px; font-weight: 600; color: #555; }
    .brtm-chat-page .brtm-cv-media-unsupported-sub { font-size: 11px; color: #9ca3af; }

    /*  INTERACTIVE MESSAGE BUTTONS  */
    .brtm-chat-page .brtm-cv-btn-list { display: flex; flex-direction: column; margin-top: 4px; }
    .brtm-chat-page .brtm-cv-btn-item {
      display: flex; align-items: center; justify-content: center; gap: 7px;
      padding: 9px 12px; border-top: 1px solid rgba(0,0,0,.08);
      color: #1284d4; font-size: 13px; font-weight: 500;
      cursor: pointer; transition: background .12s;
    }
    .brtm-chat-page .brtm-cv-btn-item:hover { background: rgba(0,0,0,.04); }
    .brtm-chat-page .brtm-cv-btn-item i { font-size: 14px; }
    .brtm-chat-page .brtm-cv-tpl-header-img {
      width: 100%; min-height: 130px; border-radius: 8px; overflow: hidden;
      background: linear-gradient(135deg, #dbeafe, #e0e7ff);
      display: flex; align-items: center; justify-content: center;
      font-size: 44px; color: #6366f1; margin-bottom: 10px;
    }
    .brtm-chat-page .brtm-cv-tpl-header-text { font-size: 14px; font-weight: 700; color: #1a2234; margin-bottom: 6px; }
    .brtm-chat-page .brtm-cv-tpl-body { font-size: 13px; color: #1a2234; line-height: 1.55; margin-bottom: 6px; }
    /* Inline images from markdown (makeHashTextBold) inside text bubbles are clickable → lightbox.
       Height capped so a tall/wide poster doesn't dominate the thread; full size via lightbox. */
    .brtm-chat-page .brtm-cv-tpl-body img,
    .brtm-chat-page .brtm-cv-bubble-text img,
    .brtm-chat-page .brtm-cv-carousel-intro img {
      cursor: zoom-in; border-radius: 8px;
      max-width: 100%; max-height: 320px;
      width: auto; height: auto;
    }
    /* Bubble containing an inline image: lock the bubble width and let the image span it
       fully (cover-crop beyond the height cap) so no dead space remains beside the image */
    .brtm-chat-page .brtm-cv-bubble:has(.brtm-cv-bubble-text img),
    .brtm-chat-page .brtm-cv-bubble:has(.brtm-cv-tpl-body img) {
      width: min(380px, 100%);
    }
    .brtm-chat-page .brtm-cv-bubble-text img,
    .brtm-chat-page .brtm-cv-tpl-body img {
      width: 100%; object-fit: cover;
    }
    .brtm-chat-page .brtm-cv-tpl-footer { font-size: 11px; color: #8a9ab0; margin-bottom: 2px; }
    .brtm-chat-page .brtm-cv-bcast-label {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 10px; font-weight: 700; color: #1565c0;
      background: rgba(255,255,255,.6); border-radius: 20px; padding: 2px 8px;
      margin-bottom: 8px; text-transform: uppercase; letter-spacing: .4px;
    }
    .brtm-chat-page .brtm-cv-bot-badge {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 10px; font-weight: 700; color: #7c3aed;
      background: #f3e8ff; border-radius: 20px; padding: 2px 8px;
      margin-bottom: 8px; text-transform: uppercase; letter-spacing: .4px;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-btn-item {
      color: #1565c0; border-top-color: rgba(0,0,0,.1);
    }

    /*  CTW ADS ENTRY POINT  */
    /* CTW quote inside bubble */
    .brtm-chat-page .brtm-cv-ctw-quote {
      background: rgba(0,0,0,.04); border-radius: 8px;
      border-left: 3px solid #f59e0b;
      padding: 7px 10px; margin-bottom: 7px;
    }
    .brtm-chat-page .brtm-cv-ctw-quote-label {
      font-size: 10px; font-weight: 700; color: #b45309;
      text-transform: uppercase; letter-spacing: .5px;
      display: flex; align-items: center; gap: 4px; margin-bottom: 6px;
    }
    .brtm-chat-page .brtm-cv-ctw-quote-card { display: flex; gap: 8px; align-items: center; }
    .brtm-chat-page .brtm-cv-ctw-quote-thumb {
      width: 36px; height: 36px; border-radius: 6px; flex-shrink: 0;
      background: #fde68a; display: flex; align-items: center;
      justify-content: center; font-size: 18px;
    }
    .brtm-chat-page .brtm-cv-ctw-quote-title { font-size: 12px; font-weight: 700; color: #1a2234; margin-bottom: 2px; }
    .brtm-chat-page .brtm-cv-ctw-quote-src { font-size: 11px; color: #8a9ab0; }

    /*  POLL MESSAGE  */
    .brtm-chat-page .brtm-cv-poll-tag {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 10px; font-weight: 700; color: #7c3aed;
      text-transform: uppercase; letter-spacing: .4px; margin-bottom: 6px;
    }
    .brtm-chat-page .brtm-cv-poll-question { font-size: 13px; font-weight: 700; color: #1a2234; margin-bottom: 10px; }
    .brtm-chat-page .brtm-cv-poll-option { display: flex; flex-direction: column; gap: 4px; margin-bottom: 7px; }
    .brtm-chat-page .brtm-cv-poll-option-label {
      display: flex; justify-content: space-between;
      font-size: 12px; color: #1a2234; font-weight: 500;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-poll-bar-track { background: rgba(0,0,0,.12); }
    .brtm-chat-page .brtm-cv-poll-bar-track { height: 5px; background: #e3e8ef; border-radius: 5px; overflow: hidden; }
    .brtm-chat-page .brtm-cv-poll-bar-fill { height: 100%; background: var(--primary); border-radius: 5px; }
    .brtm-chat-page .brtm-cv-poll-option.brtm-poll-winner .brtm-cv-poll-bar-fill { background: #10b981; }
    .brtm-chat-page .brtm-cv-poll-total { font-size: 11px; color: #8a9ab0; margin-top: 2px; }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-poll-total { color: #5a7396; }
    .brtm-chat-page .brtm-cv-poll-choices { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; }
    .brtm-chat-page .brtm-cv-poll-choice {
      padding: 8px 12px; border-radius: 10px; border: 1.5px solid #dde3ee;
      font-size: 13px; font-weight: 500; cursor: pointer; user-select: none;
      transition: border-color .15s, background .15s, color .15s; color: #2d3a50;
    }
    .brtm-chat-page .brtm-cv-poll-choice:hover { border-color: var(--primary); background: #f0f5ff; }
    .brtm-chat-page .brtm-cv-poll-choice.selected {
      border-color: var(--primary); background: var(--primary); color: #fff;
    }

    /*  EMOJI REACTIONS  */
    .brtm-chat-page .brtm-cv-reactions { display: flex; gap: 4px; margin-top: 4px; flex-wrap: wrap; }
    .brtm-chat-page .brtm-cv-msg.brtm-outgoing .brtm-cv-reactions { justify-content: flex-end; }
    .brtm-chat-page .brtm-cv-reaction {
      display: inline-flex; align-items: center; gap: 3px;
      background: white; border: 1px solid #e3e8ef;
      border-radius: 20px; padding: 2px 8px;
      font-size: 14px; cursor: pointer; transition: background .12s;
      box-shadow: 0 1px 3px rgba(0,0,0,.07);
    }
    .brtm-chat-page .brtm-cv-reaction:hover { background: #f0f4ff; border-color: #c7daff; }
    .brtm-chat-page .brtm-cv-reaction span { font-size: 11px; font-weight: 600; color: #5a7396; }
    .brtm-chat-page .brtm-cv-reaction.brtm-reacted { background: #eef4ff; border-color: #c7daff; }

    /*  PAYMENT LINK  */
    .brtm-chat-page .brtm-cv-payment-bubble { padding: 12px 14px; min-width: 220px; }
    .brtm-chat-page .brtm-cv-payment-label {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 10px; font-weight: 700; color: #16a34a;
      text-transform: uppercase; letter-spacing: .4px; margin-bottom: 8px;
    }
    .brtm-chat-page .brtm-cv-payment-amount { font-size: 22px; font-weight: 700; color: #1a2234; margin-bottom: 4px; }
    .brtm-chat-page .brtm-cv-payment-desc { font-size: 12px; color: #5a7396; margin-bottom: 10px; }
    .brtm-chat-page .brtm-cv-payment-btn {
      display: flex; align-items: center; justify-content: center; gap: 6px;
      width: 100%; padding: 9px 12px; border-top: 1px solid rgba(0,0,0,.08);
      color: #16a34a; font-size: 13px; font-weight: 600; cursor: pointer;
      transition: background .12s; box-sizing: border-box;
    }
    .brtm-chat-page .brtm-cv-payment-btn:hover { background: rgba(0,0,0,.04); }

    /*  INPUT BAR  */
    /*  13e  Input Bar & Toolbar  */
    /*  QUICK REPLY / FAQ PANEL (brtm-qr-panel)  */
    .brtm-chat-page .brtm-cv-input-bar { position: relative; }
    .brtm-chat-page .brtm-qr-panel { position:absolute; bottom:calc(100% + 0px); left:0; right:0; background:#fff; border:1.5px solid #d6e4f0; border-radius:12px 12px 0 0; box-shadow:0 -4px 28px rgba(0,0,0,.12); overflow:hidden; display:flex; flex-direction:column; z-index:200; max-height:300px; }
    .brtm-chat-page .brtm-qr-panel-head { display:flex; align-items:center; gap:8px; padding:9px 13px; border-bottom:1px solid #f1f5f9; background:#f9fafb; flex-shrink:0; }
    .brtm-chat-page .brtm-qr-panel-icon { width:24px; height:24px; border-radius:6px; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:13px; }
    .brtm-chat-page .brtm-qr-panel-head-title { font-size:12.5px; font-weight:600; color:#1a2234; flex:1; }
    .brtm-chat-page .brtm-qr-panel-head-hint { font-size:11px; color:#b0bcc9; }
    .brtm-chat-page .brtm-qr-panel-close { background:none; border:none; color:#8a9ab0; cursor:pointer; font-size:14px; padding:0; line-height:1; }
    .brtm-chat-page .brtm-qr-list { overflow-y:auto; flex:1; min-height:0; }
    .brtm-chat-page .brtm-qr-item { display:flex; align-items:flex-start; gap:10px; padding:9px 13px; cursor:pointer; border-bottom:1px solid #f5f7fb; transition:background .1s; }
    .brtm-chat-page .brtm-qr-item:hover, .brtm-chat-page .brtm-qr-item.brtm-active { background:#f0f7ff; }
    .brtm-chat-page .brtm-qr-shortcut-chip { padding:2px 8px; background:#eef4ff; color:#2284C6; border-radius:6px; font-size:11px; font-weight:700; white-space:nowrap; flex-shrink:0; margin-top:1px; }
    .brtm-chat-page .brtm-qr-info { flex:1; min-width:0; }
    .brtm-chat-page .brtm-qr-label { font-size:12.5px; font-weight:600; color:#1a2234; margin-bottom:2px; }
    .brtm-chat-page .brtm-qr-text { font-size:12px; color:#5a7396; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .brtm-chat-page .brtm-qr-empty { padding:18px; text-align:center; font-size:12.5px; color:#8a9ab0; }
    .brtm-chat-page .brtm-qtpl-item { display:flex; flex-direction:column; gap:3px; padding:8px 13px; cursor:pointer; border-bottom:1px solid #f5f7fb; transition:background .1s; }
    .brtm-chat-page .brtm-qtpl-item:hover, .brtm-chat-page .brtm-qtpl-item.brtm-active { background:#f0f7ff; }
    .brtm-chat-page .brtm-qtpl-toprow { display:flex; align-items:center; gap:7px; }
    .brtm-chat-page .brtm-qtpl-shortcut { padding:2px 8px; background:#fce7f3; color:#be185d; border-radius:6px; font-size:11px; font-weight:700; white-space:nowrap; flex-shrink:0; }
    .brtm-chat-page .brtm-qtpl-preview { font-size:12px; color:#5a7396; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .brtm-chat-page .brtm-tpl-pill { font-size:10px; padding:2px 7px; border-radius:10px; font-weight:600; }
    .brtm-chat-page .brtm-tpl-pill-approved { background:#dcfce7; color:#15803d; }
    .brtm-chat-page .brtm-tpl-pill-utility { background:#dbeafe; color:#1d4ed8; }
    .brtm-chat-page .brtm-tpl-pill-marketing { background:#fce7f3; color:#be185d; }
    .brtm-chat-page .brtm-qr-scroll-loading { padding:8px; text-align:center; color:#b0bcc9; font-size:14px; }
    .brtm-chat-page .brtm-qr-scroll-loading i { animation:brtm-spin .7s linear infinite; display:inline-block; }
    @keyframes brtm-spin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
    .brtm-chat-page .brtm-qr-pagination { padding:6px 12px; border-top:1px solid #f1f5f9; flex-shrink:0; }
    .brtm-chat-page .brtm-qr-pagination .pagination { margin:0; gap:2px; }

    /*  QUICK CHAT / FAQ — 2-PANE PREVIEW POPOVER (brtm-qpv-*)  */
    .brtm-chat-page .brtm-qpv-panel { position:absolute; bottom:calc(100% + 0px); left:0; right:0; background:#fff; border:1px solid #dbe3ef; border-radius:14px 14px 0 0; box-shadow:0 -6px 34px rgba(16,39,68,.16); overflow:hidden; display:flex; flex-direction:column; z-index:200; }
    .brtm-chat-page .brtm-qpv-head { display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid #f1f5f9; }
    .brtm-chat-page .brtm-qpv-head-t { font-size:13px; font-weight:700; color:#15233b; display:flex; align-items:center; gap:8px; white-space:nowrap; }
    .brtm-chat-page .brtm-qpv-head-t i { color:#1B6FBE; font-size:16px; }
    .brtm-chat-page .brtm-qpv-head-sp { flex:1; }
    .brtm-chat-page .brtm-qpv-head-hint { font-size:11px; color:#8493aa; white-space:nowrap; }
    .brtm-chat-page .brtm-qpv-kbd { display:inline-flex; align-items:center; justify-content:center; min-width:17px; height:17px; padding:0 4px; margin:0 1px; border-radius:5px; background:#f1f4f9; border:1px solid #dfe5ee; border-bottom-width:2px; font-size:10px; font-weight:700; color:#516079; }
    .brtm-chat-page .brtm-qpv-x { width:26px; height:26px; border:none; background:none; border-radius:7px; color:#8493aa; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:14px; }
    .brtm-chat-page .brtm-qpv-x:hover { background:#f1f4f9; color:#15233b; }
    /*  Toolbar SATU baris (menggantikan head+cats dua baris di room WhatsApp).
        Judul panel dibuang — segmen aktif SUDAH menjadi judulnya. Filter kepemilikan
        duduk di sebelah segmen karena keduanya memilih HIMPUNAN yang tampil;
        kolom cari (menyaring yang sudah tampil) + tombol tutup di kanan.  */
    .brtm-chat-page .brtm-qpv-bar { display:flex; align-items:center; gap:8px; padding:8px 10px 8px 12px; border-bottom:1px solid #f1f5f9; }
    .brtm-chat-page .brtm-qpv-bar-sp { flex:1; }
    .brtm-chat-page .brtm-qpv-seg { display:flex; gap:2px; background:#f4f6fa; border-radius:10px; padding:3px; }
    .brtm-chat-page .brtm-qpv-seg button { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:650; color:#516079; padding:5px 12px; border:none; background:none; border-radius:8px; cursor:pointer; transition:.13s; white-space:nowrap; }
    .brtm-chat-page .brtm-qpv-seg button i { font-size:14px; }
    .brtm-chat-page .brtm-qpv-seg button:hover { color:#15233b; }
    .brtm-chat-page .brtm-qpv-seg button.brtm-active { background:#fff; color:#1B6FBE; box-shadow:0 1px 2px rgba(16,39,68,.10); }
    .brtm-chat-page .brtm-qpv-scope-bd { position:absolute; inset:0; z-index:20; }
    .brtm-chat-page .brtm-qpv-scope.is-open { z-index:30; }
    .brtm-chat-page .brtm-qpv-scope-btn { display:flex; align-items:center; gap:6px; height:30px; padding:0 9px 0 10px; border:1px solid #e7ecf3; border-radius:9px; background:#fbfcfe; font-size:12px; font-weight:650; color:#516079; white-space:nowrap; cursor:pointer; transition:.13s; }
    .brtm-chat-page .brtm-qpv-scope-btn b { font-weight:700; color:#15233b; }
    .brtm-chat-page .brtm-qpv-scope-btn > i { font-size:13px; color:#8493aa; }
    .brtm-chat-page .brtm-qpv-scope-car { font-size:11px !important; color:#aab6c7 !important; }
    .brtm-chat-page .brtm-qpv-scope-btn:hover { border-color:#c6d3e2; background:#fff; }
    .brtm-chat-page .brtm-qpv-scope.is-open .brtm-qpv-scope-btn { border-color:#1B6FBE; background:#fff; box-shadow:0 0 0 3px #E8F1FB; }
    .brtm-chat-page .brtm-qpv-scope-menu { position:absolute; top:calc(100% + 6px); left:0; width:236px; background:#fff; border:1px solid #e7ecf3; border-radius:12px; box-shadow:0 14px 34px rgba(16,39,68,.16); padding:5px; z-index:31; }
    .brtm-chat-page .brtm-qpv-scope-mh { font-size:9.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#aab6c7; padding:7px 9px 5px; }
    .brtm-chat-page .brtm-qpv-scope-menu button { display:flex; align-items:flex-start; gap:9px; width:100%; text-align:left; padding:8px 9px; border:none; background:none; border-radius:9px; cursor:pointer; transition:.1s; }
    .brtm-chat-page .brtm-qpv-scope-menu button:hover { background:#f5f8fc; }
    .brtm-chat-page .brtm-qpv-scope-menu button.brtm-active { background:#F4F9FE; }
    .brtm-chat-page .brtm-qpv-scope-mi { width:26px; height:26px; border-radius:8px; background:#f1f4f9; color:#516079; display:flex; align-items:center; justify-content:center; font-size:13px; flex:none; }
    .brtm-chat-page .brtm-qpv-scope-menu button.brtm-active .brtm-qpv-scope-mi { background:#fff; color:#1B6FBE; }
    .brtm-chat-page .brtm-qpv-scope-mb { flex:1; min-width:0; }
    .brtm-chat-page .brtm-qpv-scope-mt { display:block; font-size:12.5px; font-weight:700; color:#15233b; }
    .brtm-chat-page .brtm-qpv-scope-md { display:block; font-size:11px; color:#8493aa; margin-top:1px; line-height:1.4; }
    .brtm-chat-page .brtm-qpv-scope-ck { font-size:14px; color:#1B6FBE; opacity:0; align-self:center; }
    .brtm-chat-page .brtm-qpv-scope-menu button.brtm-active .brtm-qpv-scope-ck { opacity:1; }
    /*  kolom kiri = daftar + strip hint keyboard di kakinya  */
    .brtm-chat-page .brtm-qpv-left { width:44%; min-width:250px; border-right:1px solid #f1f5f9; display:flex; flex-direction:column; }
    .brtm-chat-page .brtm-qpv-left .brtm-qpv-list { width:100%; min-width:0; flex:1; border-right:none; }
    .brtm-chat-page .brtm-qpv-listfoot { display:flex; align-items:center; gap:3px; padding:6px 12px; border-top:1px solid #f1f5f9; background:#fcfdff; font-size:10.5px; color:#8493aa; white-space:nowrap; }
    .brtm-chat-page .brtm-qpv-listfoot-c { margin-left:auto; font-weight:650; }

    .brtm-chat-page .brtm-qpv-cats { display:flex; gap:6px; padding:9px 14px 3px; }
    .brtm-chat-page .brtm-qpv-cat { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:650; color:#516079; padding:6px 12px; border:none; border-radius:9px; background:#f5f7fb; cursor:pointer; transition:.13s; }
    .brtm-chat-page .brtm-qpv-cat i { font-size:14px; }
    .brtm-chat-page .brtm-qpv-cat:hover { background:#eef2f8; }
    .brtm-chat-page .brtm-qpv-cat.brtm-active { background:#E8F1FB; color:#1B6FBE; }
    .brtm-chat-page .brtm-qpv-cats-sp { flex:1; }
    .brtm-chat-page .brtm-qpv-scope { position:relative; display:flex; align-items:center; gap:6px; margin:0; color:#6b7b91; }
    .brtm-chat-page .brtm-qpv-split { display:flex; height:250px; border-top:1px solid #f1f5f9; margin-top:8px; }
    /*  toolbar satu baris sudah punya border bawah sendiri — jangan dobel garis/jarak,
        dan ruang yang dihemat kepala dikembalikan ke tinggi daftar (250→288px).  */
    .brtm-chat-page .brtm-qpv-bar + .brtm-qpv-split { height:288px; border-top:none; margin-top:0; }
    .brtm-chat-page .brtm-qpv-list { width:44%; min-width:230px; border-right:1px solid #f1f5f9; overflow-y:auto; padding:7px; }
    .brtm-chat-page .brtm-qpv-li { display:flex; align-items:flex-start; gap:10px; padding:8px 10px; border-radius:10px; cursor:pointer; transition:.1s; }
    .brtm-chat-page .brtm-qpv-li:hover { background:#f5f8fc; }
    .brtm-chat-page .brtm-qpv-li.brtm-active { background:#E8F1FB; }
    .brtm-chat-page .brtm-qpv-li-ic { width:29px; height:29px; border-radius:8px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:14px; background:#eef2f8; color:#516079; }
    .brtm-chat-page .brtm-qpv-li.brtm-active .brtm-qpv-li-ic { background:#fff; color:#1B6FBE; }
    .brtm-chat-page .brtm-qpv-li-b { min-width:0; flex:1; display:flex; flex-direction:column; }
    .brtm-chat-page .brtm-qpv-li-kw { font-size:12.5px; font-weight:700; color:#15233b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .brtm-chat-page .brtm-qpv-li-sub { font-size:11.5px; color:#8493aa; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .brtm-chat-page .brtm-qpv-badge { font-size:9.5px; font-weight:700; padding:2px 7px; border-radius:99px; white-space:nowrap; align-self:center; flex-shrink:0; }
    .brtm-chat-page .brtm-qpv-badge.is-txt { background:#E8F1FB; color:#1B6FBE; }
    .brtm-chat-page .brtm-qpv-badge.is-media { background:#f1ebfe; color:#7c3aed; }
    .brtm-chat-page .brtm-qpv-badge.is-kb { background:#e0f5f2; color:#0d9488; }
    .brtm-chat-page .brtm-qpv-loading { padding:8px; text-align:center; color:#b0bcc9; font-size:14px; }
    .brtm-chat-page .brtm-qpv-loading i { animation:brtm-spin .7s linear infinite; display:inline-block; }
    .brtm-chat-page .brtm-qpv-empty { padding:26px 14px; text-align:center; font-size:12px; color:#8493aa; }
    .brtm-chat-page .brtm-qpv-empty i { display:block; font-size:18px; color:#cfd8e5; margin-bottom:5px; }
    .brtm-chat-page .brtm-qpv-prev { flex:1; min-width:0; display:flex; flex-direction:column; background:#fbfcfe; }
    .brtm-chat-page .brtm-qpv-prev-top { display:flex; align-items:center; gap:8px; padding:10px 14px; border-bottom:1px solid #f1f5f9; }
    .brtm-chat-page .brtm-qpv-code { font-family:ui-monospace,Menlo,monospace; color:#1B6FBE; background:#F4F9FE; padding:2px 8px; border-radius:6px; font-size:12px; font-weight:700; white-space:nowrap; }
    .brtm-chat-page .brtm-qpv-nm { font-size:12px; font-weight:700; color:#15233b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .brtm-chat-page .brtm-qpv-prev-scroll { flex:1; overflow-y:auto; padding:13px 14px 10px; }
    .brtm-chat-page .brtm-qpv-plabel { font-size:9.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#aab6c7; margin:0 0 8px; }
    .brtm-chat-page .brtm-qpv-plabel + .brtm-qpv-vfield { margin-top:0; }
    .brtm-chat-page .brtm-qpv-vfield { margin-bottom:10px; }
    .brtm-chat-page .brtm-qpv-vfield label { display:block; margin-bottom:4px; }
    .brtm-chat-page .brtm-qpv-vcode { font-family:ui-monospace,Menlo,monospace; color:#d97706; font-size:11px; font-weight:700; }
    .brtm-chat-page .brtm-qpv-vin { width:100%; border:1px solid #e7ecf3; border-radius:8px; padding:8px 10px; font-size:12.5px; color:#15233b; outline:none; }
    .brtm-chat-page .brtm-qpv-vin:focus { border-color:#1B6FBE; box-shadow:0 0 0 3px #E8F1FB; }
    .brtm-chat-page .brtm-qpv-vin.is-filled { border-color:#cfe0d4; background:#fbfefc; }
    .brtm-chat-page .brtm-qpv-bubble { background:#fff; border:1px solid #e7ecf3; border-radius:12px; border-top-left-radius:4px; box-shadow:0 1px 2px rgba(16,39,68,.05); overflow:hidden; }
    .brtm-chat-page .brtm-qpv-bubble-media { display:block; width:100%; max-height:150px; object-fit:cover; background:#000; }
    .brtm-chat-page .brtm-qpv-bubble-doc { display:flex; align-items:center; gap:8px; margin:9px 9px 0; padding:9px 11px; background:#f1f5f9; border-radius:8px; font-size:12px; color:#475569; }
    .brtm-chat-page .brtm-qpv-bubble-doc i { font-size:18px; color:#64748b; }
    .brtm-chat-page .brtm-qpv-bubble-doc span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .brtm-chat-page .brtm-qpv-bubble-header { padding:9px 13px 0; font-size:12.5px; font-weight:700; color:#15233b; }
    .brtm-chat-page .brtm-qpv-bubble-body { padding:11px 13px; font-size:12.5px; line-height:1.6; color:#15233b; word-break:break-word; }
    .brtm-chat-page .brtm-qpv-bubble-body img { max-width:100%; border-radius:6px; }
    .brtm-chat-page .brtm-qpv-bubble-footer { padding:0 13px 11px; font-size:11px; color:#8493aa; }
    .brtm-chat-page .brtm-qpv-var { background:#fdf3e4; color:#b45309; padding:0 4px; border-radius:4px; font-weight:700; font-family:ui-monospace,Menlo,monospace; font-size:11.5px; }
    .brtm-chat-page .brtm-qpv-prev-foot { display:flex; align-items:center; gap:9px; padding:9px 14px; border-top:1px solid #f1f5f9; }
    .brtm-chat-page .brtm-qpv-note { font-size:11px; color:#8493aa; display:flex; align-items:center; gap:6px; white-space:nowrap; }
    .brtm-chat-page .brtm-qpv-note.is-warn { color:#d97706; }
    .brtm-chat-page .brtm-qpv-btn { display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 14px; border:none; border-radius:9px; font-size:12px; font-weight:650; cursor:pointer; transition:.13s; white-space:nowrap; }
    .brtm-chat-page .brtm-qpv-btn.out { background:#fff; border:1px solid #e7ecf3; color:#516079; }
    .brtm-chat-page .brtm-qpv-btn.out:hover { border-color:#c6d3e2; }
    .brtm-chat-page .brtm-qpv-btn.pri { background:#1B6FBE; color:#fff; }
    .brtm-chat-page .brtm-qpv-btn.pri:hover { background:#155a9c; }
    .brtm-chat-page .brtm-qpv-btn:disabled { opacity:.5; cursor:not-allowed; }
    .brtm-chat-page .brtm-qpv-prev-empty { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; color:#aab6c7; font-size:12px; padding:20px; text-align:center; }
    .brtm-chat-page .brtm-qpv-prev-empty i { font-size:26px; }

    /*  Tambahan room EMAIL: pemicunya tombol + kolom cari (bukan ketik "/"),
        pratinjaunya lembar surat (bukan gelembung WA), dan item ber-media /
        interaktif ditampilkan tapi dimatikan.  */
    .brtm-chat-page .brtm-qpv-search { margin-left:auto; position:relative; }
    .brtm-chat-page .brtm-qpv-search i { position:absolute; left:9px; top:50%; transform:translateY(-50%); font-size:13px; color:#aab6c7; }
    .brtm-chat-page .brtm-qpv-search input { width:210px; border:1px solid #e7ecf3; border-radius:9px; padding:6px 10px 6px 28px; font-size:12px; color:#15233b; outline:none; }
    .brtm-chat-page .brtm-qpv-search input:focus { border-color:#1B6FBE; box-shadow:0 0 0 3px #E8F1FB; }
    .brtm-chat-page .brtm-qpv-li.brtm-off { opacity:.55; cursor:default; }
    .brtm-chat-page .brtm-qpv-li.brtm-off:hover { background:transparent; }
    .brtm-chat-page .brtm-qpv-li.brtm-off.brtm-active { background:#f1f4f9; }
    .brtm-chat-page .brtm-qpv-badge.is-off { background:#f1f4f9; color:#8493aa; }
    .brtm-chat-page .brtm-qpv-sheet { background:#fff; border:1px solid #e7ecf3; border-radius:10px; box-shadow:0 1px 2px rgba(16,39,68,.05); overflow:hidden; }
    .brtm-chat-page .brtm-qpv-sheet-hd { display:flex; align-items:center; gap:7px; padding:8px 12px; border-bottom:1px solid #f1f5f9; background:#fafcff; font-size:10.5px; color:#8493aa; }
    .brtm-chat-page .brtm-qpv-sheet-hd b { color:#516079; font-weight:700; }
    .brtm-chat-page .brtm-qpv-sheet-bd { padding:12px 14px; font-size:12.5px; line-height:1.7; color:#15233b; word-break:break-word; }
    .brtm-chat-page .brtm-qpv-off { margin-top:10px; display:flex; gap:9px; align-items:flex-start; background:#FEF6E0; border:1px solid #F1E0B6; border-radius:10px; padding:10px 12px; font-size:11.5px; line-height:1.6; color:#8A6D1A; }
    .brtm-chat-page .brtm-qpv-off i { font-size:15px; flex:none; margin-top:1px; }

    @media (max-width:640px) {
      .brtm-chat-page .brtm-qpv-split { height:auto; max-height:56vh; }
      .brtm-chat-page .brtm-qpv-prev { display:none; }
      .brtm-chat-page .brtm-qpv-list { width:100%; border-right:none; }
      .brtm-chat-page .brtm-qpv-search { width:100%; margin:6px 0 0; }
      .brtm-chat-page .brtm-qpv-search input { width:100%; }
    }

    .brtm-chat-page .brtm-cv-input-bar {
      background: white;
      border-top: 1px solid var(--border);
      padding: 10px 16px 12px;
      flex-shrink: 0;
    }

    /*  REPLY PREVIEW BAR (above input)  */
    .brtm-chat-page .brtm-reply-preview-bar {
      display: flex; align-items: center; gap: 10px;
      background: #f0f4ff;
      border-left: 3px solid var(--primary);
      border-radius: 8px;
      padding: 8px 10px;
      margin-bottom: 8px;
      font-size: 12px;
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-content {
      flex: 1; min-width: 0;
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-sender {
      font-weight: 600; color: var(--primary); margin-bottom: 2px;
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-text {
      color: #5a7396; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-close {
      background: none; border: none; cursor: pointer;
      color: #8a9ab0; font-size: 16px; padding: 0; line-height: 1;
      flex-shrink: 0;
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-close:hover { color: #dc2626; }

    /*  FORWARD MODAL  */
    .brtm-forward-modal {
      display: none; position: fixed; inset: 0; z-index: 9990;
      background: rgba(0,0,0,.35); align-items: center; justify-content: center;
    }
    .brtm-forward-modal.brtm-open { display: flex; }
    .brtm-forward-modal-card {
      background: white; border-radius: 16px;
      width: 400px; max-width: 94vw;
      box-shadow: 0 16px 48px rgba(0,0,0,.18);
      overflow: hidden; animation: ctxFadeIn .15s ease;
      display: flex; flex-direction: column; max-height: 90vh;
    }
    .brtm-forward-modal-header {
      display: flex; align-items: center; justify-content: space-between;
      padding: 16px 20px; border-bottom: 1px solid #f0f0f0;
      font-weight: 600; font-size: 15px; color: #1a2234; flex-shrink: 0;
    }
    .brtm-forward-modal-header button {
      background: none; border: none; cursor: pointer;
      color: #8a9ab0; font-size: 18px; line-height: 1;
      width: 32px; height: 32px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      transition: background .12s;
    }
    .brtm-forward-modal-header button:hover { background: #f0f4ff; color: #1a2234; }
    /* Message preview */
    .brtm-forward-modal-preview {
      margin: 14px 20px 0;
      border: 1px solid #e2e8f0; border-radius: 10px;
      padding: 10px 13px; font-size: 12.5px;
      background: #f8faff; overflow: hidden;
      flex-shrink: 0;
    }
    .brtm-fwd-preview-label {
      display: flex; align-items: center; gap: 5px;
      font-size: 11px; color: #8a9ab0; margin-bottom: 6px;
    }
    .brtm-fwd-preview-label i { font-size: 11px; }
    .brtm-fwd-preview-body { color: #1a2234; }
    /* Selected chips strip */
    .brtm-fwd-chips {
      display: flex; gap: 8px; flex-wrap: wrap;
      padding: 10px 20px 0; flex-shrink: 0;
      min-height: 0;
    }
    .brtm-fwd-chip {
      display: flex; align-items: center; gap: 6px;
      background: #eef4ff; border-radius: 20px;
      padding: 4px 10px 4px 6px; font-size: 12px;
      color: var(--primary); font-weight: 500;
      animation: ctxFadeIn .1s ease;
    }
    .brtm-fwd-chip .brtm-fwd-chip-avatar {
      width: 22px; height: 22px; border-radius: 50%;
      background: var(--primary); color: white;
      font-size: 9px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
    }
    .brtm-fwd-chip button {
      background: none; border: none; cursor: pointer;
      color: #8a9ab0; font-size: 12px; padding: 0; line-height: 1;
      display: flex; align-items: center;
    }
    .brtm-fwd-chip button:hover { color: #dc2626; }
    /* Search */
    .brtm-forward-modal-search {
      padding: 12px 20px 8px; flex-shrink: 0; position: relative;
    }
    .brtm-forward-modal-search i {
      position: absolute; left: 32px; top: 50%; transform: translateY(-50%);
      color: #8a9ab0; font-size: 14px; pointer-events: none;
    }
    .brtm-forward-modal-search input {
      width: 100%; padding: 9px 12px 9px 36px;
      border: 1px solid #e2e8f0; border-radius: 10px;
      font-size: 13px; outline: none;
      font-family: var(--brtm-font-ui);
      transition: border-color .15s;
      box-sizing: border-box;
    }
    .brtm-forward-modal-search input:focus { border-color: var(--primary); }
    /* List */
    .brtm-forward-modal-list { overflow-y: auto; padding: 4px 10px 4px; flex: 1; min-height: 160px; }
    .brtm-forward-modal-item {
      display: flex; align-items: center; gap: 12px;
      padding: 9px 10px; border-radius: 10px; cursor: pointer;
      font-size: 13px; color: #1a2234; transition: background .12s;
      position: relative;
    }
    .brtm-forward-modal-item:hover { background: #f5f8ff; }
    .brtm-forward-modal-item.brtm-fwd-selected { background: #eef4ff; }
    .brtm-forward-modal-item .brtm-fwd-avatar {
      width: 40px; height: 40px; border-radius: 50%;
      background: linear-gradient(135deg, #2284C6, #42a5f5);
      color: white; font-size: 12px; font-weight: 700;
      display: flex; align-items: center; justify-content: center; flex-shrink: 0;
      position: relative;
    }
    .brtm-forward-modal-item .brtm-fwd-info { flex: 1; min-width: 0; }
    .brtm-forward-modal-item .brtm-fwd-name { font-weight: 500; color: #1a2234; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .brtm-forward-modal-item .brtm-fwd-sub  { font-size: 11px; color: #8a9ab0; margin-top: 1px; }
    .brtm-forward-modal-item .brtm-fwd-check {
      width: 20px; height: 20px; border-radius: 50%;
      border: 2px solid #d0d8e8; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      transition: all .15s; font-size: 11px; color: transparent;
    }
    .brtm-forward-modal-item.brtm-fwd-selected .brtm-fwd-check {
      background: var(--primary); border-color: var(--primary); color: white;
    }
    .brtm-fwd-empty {
      text-align: center; padding: 28px 0; color: #b0bac8; font-size: 13px;
    }
    .brtm-fwd-empty i { font-size: 28px; display: block; margin-bottom: 8px; }
    /* Footer */
    .brtm-forward-modal-footer {
      padding: 14px 20px; border-top: 1px solid #f0f0f0;
      display: flex; align-items: center; justify-content: space-between; gap: 8px;
      flex-shrink: 0;
    }
    .brtm-fwd-footer-count { font-size: 12px; color: #8a9ab0; }
    .brtm-fwd-footer-btns { display: flex; gap: 8px; }
    .brtm-forward-modal-footer button {
      padding: 9px 22px; border-radius: 8px; font-size: 13px;
      font-family: var(--brtm-font-ui); cursor: pointer; border: none;
      font-weight: 500;
    }
    .brtm-fwd-btn-cancel { background: #f0f4ff; color: #1a2234; }
    .brtm-fwd-btn-cancel:hover { background: #e2eaf8; }
    .brtm-fwd-btn-send   { background: var(--primary); color: white; transition: opacity .15s; }
    .brtm-fwd-btn-send:disabled { opacity: .45; cursor: not-allowed; }
    .brtm-fwd-btn-send:not(:disabled):hover { opacity: .88; }

    /*  MSG INFO PANEL (slide from right)  */
    .brtm-msg-info-panel {
      position: fixed; top: 0; right: -340px; bottom: 0;
      width: 320px; background: white; z-index: 9980;
      box-shadow: -4px 0 24px rgba(0,0,0,.12);
      transition: right .22s ease;
      display: flex; flex-direction: column;
      font-family: var(--brtm-font-ui);
    }
    .brtm-msg-info-panel.brtm-open { right: 0; }
    .brtm-msg-info-header {
      display: flex; align-items: center; gap: 12px;
      padding: 16px 18px; border-bottom: 1px solid #f0f0f0;
      font-weight: 600; font-size: 14px; color: #1a2234;
    }
    .brtm-msg-info-header button {
      background: none; border: none; cursor: pointer;
      color: #8a9ab0; font-size: 18px; margin-left: auto;
    }
    .brtm-msg-info-bubble-wrap {
      padding: 16px 18px; border-bottom: 1px solid #f0f0f0;
    }
    .brtm-msg-info-rows { padding: 12px 18px; display: flex; flex-direction: column; gap: 2px; }
    .brtm-msg-info-row {
      display: flex; align-items: center; gap: 12px;
      padding: 11px 0; border-bottom: 1px solid #f8f8f8;
      font-size: 13px;
    }
    .brtm-msg-info-row i { font-size: 16px; width: 20px; text-align: center; }
    .brtm-msg-info-row .brtm-mir-label { color: #8a9ab0; min-width: 80px; }
    .brtm-msg-info-row .brtm-mir-val { color: #1a2234; font-weight: 500; }
    .brtm-chat-page .brtm-cv-tool-btn {
      width: 34px; height: 34px; border-radius: 50%;
      border: none; background: none; outline: none;
      -webkit-appearance: none; appearance: none;
      color: #8a9ab0; font-size: 18px;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; transition: background .15s, color .15s;
      flex-shrink: 0;
    }
    .brtm-chat-page .brtm-cv-tool-btn:focus,
    .brtm-chat-page .brtm-cv-tool-btn:focus-visible { outline: none; box-shadow: none; }
    .brtm-chat-page .brtm-cv-tool-btn:hover { color: #4a5568; background: rgba(0,0,0,.08); }

    /* WhatsApp-style input row */
    .brtm-chat-page .brtm-cv-input-row {
      display: flex; align-items: flex-end; gap: 4px;
    }
    .brtm-chat-page .brtm-cv-input-wrap {
      flex: 1;
      background: #f0f2f5;
      border: none;
      border-radius: 24px;
      padding: 9px 14px;
      transition: background .15s;
      min-height: 42px;
      display: flex; align-items: flex-end;
    }
    .brtm-chat-page .brtm-cv-input-wrap:focus-within {
      background: #e8eaf0;
    }
    .brtm-chat-page .brtm-cv-textarea {
      flex: 1; border: none; background: none;
      font-family: var(--brtm-font-ui); font-size: 13px;
      color: #1a2234; resize: none; outline: none;
      line-height: 1.5;
      /* Single line by default, grows with content */
      height: 22px;
      max-height: 140px;
      /* auto (not hidden): resizeTextarea caps height at 120px in most channels without
         adding .brtm-expanded, so long text was clipped with no way to scroll. */
      overflow-y: auto;
      display: block;
      padding: 0;
    }
    .brtm-chat-page .brtm-cv-textarea.brtm-expanded { overflow-y: auto; }
    .brtm-chat-page .brtm-cv-textarea::placeholder { color: #b0bac8; }
    .brtm-chat-page .brtm-cv-send-btn {
      width: 42px; height: 42px; border-radius: 50%;
      background: var(--primary); color: white; border: none; outline: none;
      font-size: 18px; display: flex; align-items: center;
      justify-content: center; cursor: pointer; flex-shrink: 0;
      transition: background .15s, transform .1s;
      box-shadow: 0 2px 8px rgba(34,132,198,.3);
    }
    .brtm-chat-page .brtm-cv-send-btn:focus,
    .brtm-chat-page .brtm-cv-send-btn:focus-visible { outline: none; box-shadow: 0 2px 8px rgba(34,132,198,.3); }
    .brtm-chat-page .brtm-cv-send-btn:hover { background: var(--primary-dark); transform: scale(1.05); }
    .brtm-chat-page .brtm-cv-send-btn:active { transform: scale(0.95); }
    .brtm-chat-page .brtm-cv-send-btn.brtm-note-mode { background: #f59e0b; box-shadow: 0 2px 8px rgba(245,158,11,.35); }
    .brtm-chat-page .brtm-cv-send-btn.brtm-note-mode:hover { background: #d97706; }

    /*  MODE TOGGLE  */
    .brtm-chat-page .brtm-cv-input-toprow {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 8px;
    }
    .brtm-chat-page .brtm-cv-mode-toggle {
      display: flex; gap: 4px;
      background: #f4f6fb;
      border-radius: 10px;
      padding: 3px;
      width: fit-content;
    }
    .brtm-chat-page .brtm-cv-mode-btn {
      display: flex; align-items: center; gap: 5px;
      padding: 5px 14px; border-radius: 8px;
      border: none; background: none;
      font-size: 12px; font-weight: 600;
      color: #8a9ab0; cursor: pointer;
      font-family: var(--brtm-font-ui);
      transition: all .15s;
    }
    .brtm-chat-page .brtm-cv-mode-btn i { font-size: 14px; }
    .brtm-chat-page .brtm-cv-mode-btn.brtm-active {
      background: white;
      color: var(--primary);
      box-shadow: 0 1px 4px rgba(0,0,0,.1);
    }
    .brtm-chat-page .brtm-cv-mode-btn.brtm-active.brtm-note-active {
      color: #d97706;
    }

    /* Input wrap note mode */
    .brtm-chat-page .brtm-cv-input-wrap.brtm-note-mode {
      background: #fffbeb;
      border-color: #fcd34d;
    }
    .brtm-chat-page .brtm-cv-input-wrap.brtm-note-mode:focus-within {
      border-color: #f59e0b;
      background: #fffdf5;
    }
    .brtm-chat-page .brtm-cv-textarea.brtm-note-mode::placeholder { color: #c4a84a; }

    /* Note hint */
    .brtm-chat-page .brtm-cv-note-hint {
      display: none;
      align-items: center; gap: 5px;
      font-size: 11px; color: #b45309;
      background: #fef3c7; border-radius: 8px;
      padding: 5px 10px; margin-top: 6px;
    }
    .brtm-chat-page .brtm-cv-note-hint.brtm-visible { display: flex; }
    .brtm-chat-page .brtm-cv-note-hint i { font-size: 13px; }

    /*  NOTE BUBBLE  */
    .brtm-chat-page .brtm-cv-msg.brtm-note {
      justify-content: flex-end;
      margin-bottom: 6px;
    }
    .brtm-chat-page .brtm-cv-note-bubble {
      max-width: 68%;
      background: #fffbeb;
      border: 1.5px dashed #fcd34d;
      border-radius: 14px;
      border-bottom-right-radius: 4px;
      padding: 10px 14px;
      font-size: 13px; line-height: 1.55;
      color: #78350f;
      position: relative;
    }
    .brtm-chat-page .brtm-cv-note-header {
      display: flex; align-items: center; gap: 5px;
      font-size: 11px; font-weight: 700;
      color: #d97706; margin-bottom: 6px;
      text-transform: uppercase; letter-spacing: .4px;
    }
    .brtm-chat-page .brtm-cv-note-header i { font-size: 13px; }
    .brtm-chat-page .brtm-cv-note-author { color: #92400e; }
    .brtm-chat-page .brtm-cv-note-time {
      font-size: 11px; color: #b45309;
      margin-top: 6px; text-align: right;
    }

    /*  LAMPIRAN CATATAN INTERNAL (.ntx-*) — baki di atas kolom ketik mode Note.
        Warnanya sengaja disamakan dengan bubble note (amber + dashed #fcd34d)
        supaya beda tegas dari alur biru "kirim ke pelanggan".  */
    .brtm-chat-page .ntx-tray {
      border: 1.5px dashed #fcd34d; background: #fffbeb;
      border-radius: 12px; padding: 8px 10px 9px; margin-bottom: 8px;
      animation: ntxTrayIn .16s ease-out;
    }
    @keyframes ntxTrayIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
    .brtm-chat-page .ntx-tray__head {
      display: flex; align-items: center; gap: 6px; margin-bottom: 8px;
      font-size: 11px; font-weight: 700; color: #d97706;
      text-transform: uppercase; letter-spacing: .4px;
    }
    .brtm-chat-page .ntx-lock {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 10.5px; font-weight: 700; color: #d97706;
      background: rgba(245,158,11,.16); border-radius: 20px; padding: 2px 8px;
      text-transform: none; letter-spacing: 0;
    }
    .brtm-chat-page .ntx-tray__count {
      margin-left: auto; text-transform: none; letter-spacing: 0; font-weight: 600;
      background: rgba(245,158,11,.16); color: #d97706;
      border-radius: 20px; padding: 2px 9px; font-size: 11px;
    }
    .brtm-chat-page .ntx-tray__count.is-full { background: #fde68a; color: #92400e; }
    .brtm-chat-page .ntx-tray__clear {
      border: none; background: none; color: #b45309; cursor: pointer;
      font-family: var(--brtm-font-ui); font-size: 11px; font-weight: 600;
      text-transform: none; letter-spacing: 0; padding: 2px 6px; border-radius: 6px;
    }
    .brtm-chat-page .ntx-tray__clear:hover { background: rgba(245,158,11,.16); }
    .brtm-chat-page .ntx-strip { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
    .brtm-chat-page .ntx-strip::-webkit-scrollbar { height: 6px; }
    .brtm-chat-page .ntx-strip::-webkit-scrollbar-thumb { background: #fcd34d; border-radius: 6px; }
    .brtm-chat-page .ntx-thumb {
      position: relative; flex: 0 0 auto; width: 64px; height: 64px; border-radius: 10px;
      border: 1.5px solid #fcd34d; background: #fff; overflow: hidden; cursor: pointer;
    }
    .brtm-chat-page .ntx-thumb img,
    .brtm-chat-page .ntx-thumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
    .brtm-chat-page .ntx-thumb--doc {
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 3px; padding: 5px; text-align: center;
    }
    .brtm-chat-page .ntx-thumb--doc > i { font-size: 20px; color: #d97706; }
    .brtm-chat-page .ntx-thumb--doc > span {
      font-size: 9px; color: #92400e; line-height: 1.15; width: 100%;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .brtm-chat-page .ntx-thumb__badge {
      position: absolute; left: 3px; bottom: 3px; background: rgba(0,0,0,.62); color: #fff;
      font-size: 9px; border-radius: 4px; padding: 1px 4px;
      display: flex; align-items: center; gap: 3px;
    }
    .brtm-chat-page .ntx-thumb__x {
      position: absolute; top: 3px; right: 3px; width: 18px; height: 18px; border-radius: 50%;
      background: rgba(17,24,39,.72); color: #fff; border: none; cursor: pointer;
      display: flex; align-items: center; justify-content: center; font-size: 11px;
      opacity: 0; transition: opacity .12s; padding: 0;
    }
    .brtm-chat-page .ntx-thumb:hover .ntx-thumb__x,
    .brtm-chat-page .ntx-thumb__x:focus-visible { opacity: 1; }
    .brtm-chat-page .ntx-thumb--add {
      display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
      border-style: dashed; color: #d97706; background: rgba(255,255,255,.6);
      font-family: var(--brtm-font-ui); font-size: 9.5px; font-weight: 600;
    }
    .brtm-chat-page .ntx-thumb--add > i { font-size: 17px; }
    /* :disabled harus menang atas .ntx-thumb--add apa pun urutan sumbernya */
    .brtm-chat-page .ntx-thumb--add:disabled { opacity: .4; cursor: not-allowed; }
    .brtm-chat-page .ntx-notice {
      margin-top: 8px; background: #fff7e6; border: 1px solid #fcd34d; border-radius: 8px;
      padding: 6px 10px; font-size: 11.5px; color: #92400e;
      display: flex; align-items: center; gap: 6px;
    }
    .brtm-chat-page .ntx-notice.is-err { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
    .brtm-chat-page .ntx-limits {
      margin-top: 6px; font-size: 10.5px; color: #b45309; opacity: .85;
      display: flex; align-items: center; gap: 5px;
    }
    /* Menu "+" versi catatan */
    .brtm-chat-page .ntx-attach-dd-head {
      font-size: 10.5px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase;
      color: #d97706; background: #fffbeb; border-radius: 7px;
      padding: 5px 9px; margin: 2px 2px 6px; display: flex; align-items: center; gap: 5px;
    }
    /* Album catatan — beberapa lampiran dari SATU kiriman digabung jadi satu
       bubble (backend menulis 1 record per file, lihat computed noteAlbumIndex). */
    .brtm-chat-page .ntx-note-count {
      margin-left: auto; text-transform: none; letter-spacing: 0;
      font-weight: 600; opacity: .85; display: inline-flex; align-items: center; gap: 3px;
    }
    .brtm-chat-page .ntx-note-grid {
      display: grid; gap: 4px; margin: 4px 0 2px; max-width: 292px;
    }
    .brtm-chat-page .ntx-note-grid[data-n="1"] { grid-template-columns: 1fr; }
    .brtm-chat-page .ntx-note-grid[data-n="2"],
    .brtm-chat-page .ntx-note-grid[data-n="3"],
    .brtm-chat-page .ntx-note-grid[data-n="4"] { grid-template-columns: 1fr 1fr; }
    .brtm-chat-page .ntx-note-grid > .cell {
      position: relative; border-radius: 8px; overflow: hidden;
      background: rgba(245,158,11,.1); cursor: zoom-in; aspect-ratio: 4/3;
    }
    .brtm-chat-page .ntx-note-grid[data-n="1"] > .cell { aspect-ratio: auto; max-height: 260px; }
    .brtm-chat-page .ntx-note-grid > .cell img,
    .brtm-chat-page .ntx-note-grid > .cell video {
      width: 100%; height: 100%; object-fit: cover; display: block;
    }
    .brtm-chat-page .ntx-note-grid[data-n="1"] > .cell img { height: auto; max-height: 260px; }
    /* petak ke-4 jadi penanda sisa "+N" saat lampiran lebih dari 4 */
    .brtm-chat-page .ntx-note-grid > .cell.more::after {
      content: '+' attr(data-more); position: absolute; inset: 0;
      background: rgba(17,24,39,.6); color: #fff; font-size: 20px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
    }

    /* Baris dokumen di dalam bubble note */
    .brtm-chat-page .ntx-note-doc {
      display: flex; align-items: center; gap: 10px; margin: 4px 0;
      background: rgba(245,158,11,.13); border-radius: 10px; padding: 8px 10px;
      color: #78350f; text-decoration: none; min-width: 200px;
    }
    .brtm-chat-page .ntx-note-doc:hover { background: rgba(245,158,11,.2); color: #78350f; }
    .brtm-chat-page .ntx-note-doc .ic { font-size: 22px; color: #d97706; flex-shrink: 0; }
    .brtm-chat-page .ntx-note-doc .nm {
      font-size: 12.5px; font-weight: 600; min-width: 0;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .brtm-chat-page .ntx-note-doc .sz { font-size: 11px; opacity: .7; flex-shrink: 0; }
    .brtm-chat-page .ntx-note-doc .dl { margin-left: auto; color: #b45309; flex-shrink: 0; }

    /*  BOT / BUSINESS APP BUBBLE (status 3)  */
    .brtm-chat-page .brtm-cv-bubble.brtm-bot {
      background: #f5f0ff; color: #1a2234;
      border-top-right-radius: 0;
      box-shadow: 0 1px 1px rgba(0,0,0,.1);
      border: 1px solid #d8b4fe; position: relative;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-bot::after {
      content: ''; position: absolute; top: 0; right: -8px;
      border-top: 0 solid transparent;
      border-left: 8px solid #d8b4fe;
      border-bottom: 10px solid transparent;
    }
    .brtm-chat-page .brtm-cv-bot-label {
      font-size: 10px; font-weight: 700; letter-spacing: .4px;
      color: #7c3aed; text-transform: uppercase;
      margin-bottom: 4px; display: flex; align-items: center; gap: 4px;
    }

    /*  JIRA ISSUE / COMMENT BUBBLE (status 3 + jira)  */
    .brtm-chat-page .brtm-cv-msg.brtm-jira { justify-content: flex-end; }
    .brtm-chat-page .brtm-cv-jira-bubble {
      max-width: 68%; background: #fffbeb;
      border: 1.5px solid #fcd34d; border-radius: 12px; border-top-right-radius: 0;
      padding: 10px 14px; font-size: 13px; line-height: 1.5; color: #1a2234;
      box-shadow: 0 1px 3px rgba(0,0,0,.08);
    }
    .brtm-chat-page .brtm-cv-jira-header {
      display: flex; align-items: center; gap: 6px;
      font-size: 11px; font-weight: 700; color: #b45309;
      text-transform: uppercase; letter-spacing: .4px; margin-bottom: 6px;
    }
    .brtm-chat-page .brtm-cv-jira-header i { font-size: 14px; }
    .brtm-chat-page .brtm-cv-jira-id {
      font-size: 11px; font-weight: 700; color: var(--primary);
      background: #dbeafe; border-radius: 4px; padding: 1px 6px; margin-left: auto;
    }
    .brtm-chat-page .brtm-cv-jira-title { font-weight: 600; font-size: 13px; color: #1a2234; margin-bottom: 4px; }
    .brtm-chat-page .brtm-cv-jira-meta {
      font-size: 11px; color: #8a9ab0;
      display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 6px;
    }
    .brtm-chat-page .brtm-cv-jira-status { background: #dcfce7; color: #16a34a; border-radius: 4px; padding: 1px 7px; font-size: 11px; font-weight: 600; }
    .brtm-chat-page .brtm-cv-jira-priority { background: #fee2e2; color: #b91c1c; border-radius: 4px; padding: 1px 7px; font-size: 11px; font-weight: 600; }
    .brtm-chat-page .brtm-cv-jira-time { font-size: 11px; color: #b45309; text-align: right; margin-top: 6px; }

    /* -- STICKER: transparent bubble (no bg, no tail) -- */
    .brtm-chat-page .brtm-cv-bubble.brtm-no-bg {
      background: transparent !important;
      box-shadow: none !important;
      border: none !important;
      padding: 0 !important;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-no-bg::before,
    .brtm-chat-page .brtm-cv-bubble.brtm-no-bg::after { display: none !important; }

    /* -- AGENT NAME LABEL inside bubble -- */
    .brtm-chat-page .brtm-cv-bubble-sender {
      font-size: 11px; font-weight: 700; color: var(--primary);
      margin-bottom: 4px; letter-spacing: .2px;
    }

    /* -- WA CALL BUBBLE -- */
    .brtm-chat-page .brtm-cv-call-bubble {
      display: flex; align-items: center; gap: 10px; padding: 10px 14px; min-width: 180px;
    }
    .brtm-chat-page .brtm-cv-call-icon {
      width: 36px; height: 36px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-call-icon { background: rgba(27,111,190,.12); color: var(--primary); }
    .brtm-chat-page .brtm-cv-bubble.brtm-incoming .brtm-cv-call-icon { background: #f0f4ff; color: var(--primary); }
    .brtm-chat-page .brtm-cv-call-icon.brtm-call-missed,
    .brtm-chat-page .brtm-cv-call-icon.brtm-call-rejected { background: #fee2e2 !important; color: #b91c1c !important; }
    .brtm-chat-page .brtm-cv-call-info { display: flex; flex-direction: column; gap: 2px; flex: 1; }
    .brtm-chat-page .brtm-cv-call-label { font-size: 13px; font-weight: 600; }
    .brtm-chat-page .brtm-cv-call-sub { font-size: 11px; opacity: .75; }

    /*  MEDIA BUBBLES  */
    .brtm-chat-page .brtm-cv-media-bubble { padding: 4px; min-width: 180px; max-width: 260px; }
    /* Cap media height (inline width:100% on the elements; cover keeps aspect, lightbox has full size) */
    .brtm-chat-page .brtm-cv-media-bubble > img,
    .brtm-chat-page .brtm-cv-media-bubble > video { max-height: 320px; object-fit: cover; }
    /* Saat video masuk fullscreen, elemen <video> ITU SENDIRI jadi seukuran layar, jadi
       max-height + object-fit:cover di atas ikut terbawa dan memotong (nge-zoom) videonya.
       Balikkan ke contain + lepas cap tinggi supaya video mengikuti tinggi layar.
       Tiap prefix ditulis rule terpisah: satu selector tak dikenal membatalkan seluruh grup. */
    .brtm-chat-page video:fullscreen { max-height: none !important; max-width: none !important; width: 100% !important; height: 100% !important; object-fit: contain !important; background: #000; }
    .brtm-chat-page video:-webkit-full-screen { max-height: none !important; max-width: none !important; width: 100% !important; height: 100% !important; object-fit: contain !important; background: #000; }
    .brtm-chat-page video:-moz-full-screen { max-height: none !important; max-width: none !important; width: 100% !important; height: 100% !important; object-fit: contain !important; background: #000; }
    .brtm-chat-page video:-ms-fullscreen { max-height: none !important; max-width: none !important; width: 100% !important; height: 100% !important; object-fit: contain !important; background: #000; }
    .brtm-chat-page .brtm-cv-media-placeholder {
      width: 100%; border-radius: 8px; background: rgba(0,0,0,.06);
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 6px; min-height: 110px; padding: 16px;
      cursor: pointer; transition: filter .15s;
    }
    .brtm-chat-page .brtm-cv-media-placeholder:hover { filter: brightness(.92); }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-media-placeholder { background: rgba(27,111,190,.08); }
    .brtm-chat-page .brtm-cv-media-placeholder i { font-size: 32px; opacity: .55; }
    .brtm-chat-page .brtm-cv-media-placeholder span { font-size: 12px; opacity: .6; }

    /* Media Lightbox */
    .brtm-media-lightbox {
      position: fixed; inset: 0; z-index: 9999;
      background: rgba(0,0,0,.92);
      display: flex; flex-direction: column;
      opacity: 0; pointer-events: none;
      transition: opacity .2s;
    }
    .brtm-media-lightbox.brtm-lb-open { opacity: 1; pointer-events: all; }
    .brtm-media-lb-header {
      display: flex; align-items: center; justify-content: space-between;
      padding: 10px 16px; background: rgba(0,0,0,.45);
      backdrop-filter: blur(6px); flex-shrink: 0;
    }
    .brtm-media-lb-sender { color: #fff; font-size: 14px; font-weight: 600; }
    .brtm-media-lb-actions { display: flex; gap: 4px; }
    .brtm-media-lb-btn {
      width: 38px; height: 38px; border-radius: 50%;
      border: none; background: none; color: rgba(255,255,255,.8);
      font-size: 17px; cursor: pointer; display: flex;
      align-items: center; justify-content: center;
      transition: background .15s, color .15s;
    }
    .brtm-media-lb-btn:hover { background: rgba(255,255,255,.15); color: #fff; }
    .brtm-media-lb-body {
      flex: 1; display: flex; align-items: center; justify-content: center;
      overflow: hidden; padding: 16px;
    }
    .brtm-media-lb-content { max-width: 100%; max-height: 100%; display: flex; align-items: center; justify-content: center; }
    .brtm-media-lb-content img {
      max-width: min(90vw, 900px); max-height: calc(100vh - 140px);
      border-radius: 6px; object-fit: contain; display: block;
      box-shadow: 0 8px 40px rgba(0,0,0,.6);
    }
    .brtm-media-lb-content video {
      max-width: min(90vw, 900px); max-height: calc(100vh - 140px);
      border-radius: 6px; display: block;
      box-shadow: 0 8px 40px rgba(0,0,0,.6);
    }
    /* Lightbox di-teleport ke <body>, jadi override fullscreen-nya ditulis global juga. */
    video:fullscreen { max-width: none !important; max-height: none !important; width: 100% !important; height: 100% !important; object-fit: contain !important; border-radius: 0 !important; box-shadow: none !important; background: #000; }
    video:-webkit-full-screen { max-width: none !important; max-height: none !important; width: 100% !important; height: 100% !important; object-fit: contain !important; border-radius: 0 !important; box-shadow: none !important; background: #000; }
    video:-moz-full-screen { max-width: none !important; max-height: none !important; width: 100% !important; height: 100% !important; object-fit: contain !important; border-radius: 0 !important; box-shadow: none !important; background: #000; }
    video:-ms-fullscreen { max-width: none !important; max-height: none !important; width: 100% !important; height: 100% !important; object-fit: contain !important; border-radius: 0 !important; box-shadow: none !important; background: #000; }
    .brtm-media-lb-footer {
      min-height: 40px; padding: 8px 20px 14px;
      text-align: center; color: rgba(255,255,255,.7);
      font-size: 13px; flex-shrink: 0;
    }
    /* Counter "3 / 12" inside sender label */
    .brtm-media-lb-counter {
      display: inline-block;
      background: rgba(255,255,255,.15);
      padding: 2px 10px; border-radius: 20px;
      font-size: 12px; font-weight: 600; color: #fff;
      margin-right: 10px;
    }
    /* Prev / Next navigation arrows */
    .brtm-media-lb-body { position: relative; }
    .brtm-media-lb-nav {
      position: absolute; top: 50%; transform: translateY(-50%);
      width: 48px; height: 48px; border-radius: 50%;
      border: none;
      background: rgba(255,255,255,.12);
      color: rgba(255,255,255,.95);
      font-size: 22px;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .15s, color .15s, transform .12s;
      z-index: 2;
    }
    .brtm-media-lb-nav:hover:not(:disabled) {
      background: rgba(255,255,255,.25);
      transform: translateY(-50%) scale(1.06);
    }
    .brtm-media-lb-nav:disabled {
      opacity: .25; cursor: not-allowed;
    }
    .brtm-media-lb-nav-prev { left: 16px; }
    .brtm-media-lb-nav-next { right: 16px; }

    /* Audio preview in lightbox */
    .brtm-media-lb-audio-wrap {
      display: flex; flex-direction: column; align-items: center; gap: 18px;
      padding: 40px 28px;
      background: rgba(255,255,255,.08);
      border-radius: 14px;
      min-width: 320px;
    }
    .brtm-media-lb-audio-icon {
      width: 90px; height: 90px; border-radius: 50%;
      background: rgba(255,255,255,.15);
      display: flex; align-items: center; justify-content: center;
      font-size: 44px; color: rgba(255,255,255,.9);
    }
    .brtm-media-lb-audio-label {
      color: #fff; font-size: 14px; font-weight: 600;
    }
    .brtm-media-lb-audio-wrap audio {
      width: 100%; min-width: 280px;
    }

    /* Document preview in lightbox */
    .brtm-media-lb-doc-wrap {
      display: flex; flex-direction: column; align-items: center; gap: 18px;
      padding: 48px 36px;
      background: rgba(255,255,255,.08);
      border-radius: 14px;
      min-width: 340px;
      max-width: 440px;
      text-align: center;
    }
    .brtm-media-lb-doc-icon {
      width: 110px; height: 110px; border-radius: 16px;
      background: rgba(255,255,255,.15);
      display: flex; align-items: center; justify-content: center;
      font-size: 54px; color: rgba(255,255,255,.9);
    }
    .brtm-media-lb-doc-name {
      color: #fff; font-size: 15px; font-weight: 600;
      word-break: break-word;
      max-width: 340px;
      line-height: 1.4;
    }
    .brtm-media-lb-doc-dl {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 10px 22px; border-radius: 8px;
      border: none; background: #fff; color: #1a2234;
      font-size: 14px; font-weight: 600; font-family: inherit;
      cursor: pointer; transition: background .12s, transform .12s;
    }
    .brtm-media-lb-doc-dl:hover {
      background: #f1f5f9; transform: scale(1.04);
    }

    /* Thumbnail strip at bottom — jump to any media */
    .brtm-media-lb-thumbs {
      flex-shrink: 0;
      display: flex; align-items: center;
      gap: 8px;
      padding: 14px 20px;
      overflow-x: auto;
      overflow-y: hidden;
      background: rgba(0,0,0,.45);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      scrollbar-width: thin;
      scrollbar-color: rgba(255,255,255,.3) transparent;
    }
    .brtm-media-lb-thumbs::-webkit-scrollbar { height: 6px; }
    .brtm-media-lb-thumbs::-webkit-scrollbar-thumb { background: rgba(255,255,255,.3); border-radius: 3px; }
    .brtm-media-lb-thumb {
      flex-shrink: 0;
      width: 56px; height: 56px;
      border-radius: 8px;
      border: 2px solid transparent;
      background: rgba(255,255,255,.08);
      padding: 0; cursor: pointer;
      overflow: hidden;
      transition: border-color .15s, transform .12s, opacity .15s;
      opacity: .65;
      position: relative;
    }
    .brtm-media-lb-thumb:hover {
      opacity: 1;
      transform: scale(1.05);
    }
    .brtm-media-lb-thumb.brtm-active {
      opacity: 1;
      border-color: #fff;
      box-shadow: 0 0 0 1px rgba(255,255,255,.25);
    }
    .brtm-media-lb-thumb img {
      width: 100%; height: 100%; object-fit: cover; display: block;
    }
    .brtm-media-lb-thumb-video {
      width: 100%; height: 100%;
      position: relative;
      background: #000;
    }
    .brtm-media-lb-thumb-video video {
      width: 100%; height: 100%; object-fit: cover; display: block;
    }
    .brtm-media-lb-thumb-icon {
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      color: #fff; font-size: 22px;
      text-shadow: 0 1px 3px rgba(0,0,0,.6);
      pointer-events: none;
    }
    .brtm-media-lb-thumb-misc {
      width: 100%; height: 100%;
      display: flex; align-items: center; justify-content: center;
      font-size: 24px; color: rgba(255,255,255,.9);
    }
    .brtm-media-lb-thumb-audio { background: rgba(139,92,246,.4); }
    .brtm-media-lb-thumb-doc { background: rgba(99,102,241,.4); }
    .brtm-chat-page .brtm-cv-media-caption {
      padding: 5px 8px 2px; font-size: 13px;
      display: flex; align-items: flex-end; justify-content: space-between; gap: 8px;
    }
    /* Caption multi-baris: <br/> dari sanitizeAndReplace harus bisa membungkus,
       jadi span-nya perlu min-width:0 supaya tidak dipaksa satu baris oleh flex. */
    .brtm-chat-page .brtm-cv-media-caption-text {
      min-width: 0; line-height: 1.55; word-break: break-word;
    }

    /* Audio / Voice */
    .brtm-chat-page .brtm-cv-audio-bubble {
      display: flex; align-items: center; gap: 10px; padding: 10px 14px; min-width: 200px;
    }
    .brtm-chat-page .brtm-cv-audio-play {
      width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center; font-size: 18px; cursor: pointer;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-audio-play { background: rgba(27,111,190,.12); color: var(--primary); }
    .brtm-chat-page .brtm-cv-bubble.brtm-incoming .brtm-cv-audio-play { background: #f0f4ff; color: var(--primary); }
    .brtm-chat-page .brtm-cv-audio-waveform { flex: 1; display: flex; align-items: center; gap: 2px; height: 28px; }
    .brtm-chat-page .brtm-cv-audio-waveform span { display: inline-block; width: 3px; border-radius: 3px; background: currentColor; opacity: .4; }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-audio-waveform { color: var(--primary); }
    .brtm-chat-page .brtm-cv-bubble.brtm-incoming .brtm-cv-audio-waveform { color: var(--primary); }
    .brtm-chat-page .brtm-cv-audio-dur { font-size: 11px; opacity: .75; flex-shrink: 0; }

    /* Document */
    .brtm-chat-page .brtm-cv-doc-bubble {
      display: flex; align-items: center; gap: 10px; padding: 10px 14px; min-width: 200px;
    }
    .brtm-chat-page .brtm-cv-doc-icon {
      width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center; font-size: 22px;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-doc-icon { background: rgba(27,111,190,.12); color: var(--primary); }
    .brtm-chat-page .brtm-cv-bubble.brtm-incoming .brtm-cv-doc-icon { background: #f0f4ff; color: #6366f1; }
    .brtm-chat-page .brtm-cv-doc-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
    .brtm-chat-page .brtm-cv-doc-name { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .brtm-chat-page .brtm-cv-doc-size { font-size: 11px; opacity: .65; }

    /* Contact card */
    .brtm-chat-page .brtm-cv-contact-bubble { padding: 10px 14px 8px; min-width: 210px; }
    .brtm-chat-page .brtm-cv-contact-card {
      display: flex; align-items: center; gap: 10px;
      padding-bottom: 8px; margin-bottom: 0;
    }
    .brtm-chat-page .brtm-cv-contact-avatar {
      width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      font-size: 18px; background: rgba(0,0,0,.08);
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-contact-avatar { background: rgba(27,111,190,.12); }
    .brtm-chat-page .brtm-cv-contact-name { font-size: 13px; font-weight: 600; }
    .brtm-chat-page .brtm-cv-contact-phone { font-size: 11px; opacity: .7; }

    /* Location */
    .brtm-chat-page .brtm-cv-location-bubble { padding: 4px 4px 0; min-width: 210px; }
    .brtm-chat-page .brtm-cv-location-map {
      width: 100%; border-radius: 8px; overflow: hidden; background: #e8f0fe;
      min-height: 100px; display: flex; align-items: center; justify-content: center; cursor: pointer;
      transition: filter .15s;
    }
    .brtm-chat-page .brtm-cv-location-map:hover { filter: brightness(.93); }
    .brtm-chat-page .brtm-cv-location-map i { font-size: 36px; color: #b91c1c; }
    .brtm-chat-page .brtm-cv-location-info {
      padding: 6px 8px 2px; font-size: 12px;
      display: flex; align-items: flex-end; justify-content: space-between;
    }
    .brtm-chat-page .brtm-cv-location-action {
      font-size: 12.5px; font-weight: 600; text-align: center; cursor: pointer;
      color: var(--primary); padding: 9px 8px;
      border-top: 1px solid rgba(0,0,0,.08);
      display: flex; align-items: center; justify-content: center; gap: 6px;
      transition: background .12s;
    }
    .brtm-chat-page .brtm-cv-location-action:hover { background: rgba(0,0,0,.04); }

    /* Carousel */
    .brtm-chat-page .brtm-cv-carousel-wrap { max-width: 480px; }
    .brtm-chat-page .brtm-cv-carousel-label {
      font-size: 11px; font-weight: 700; color: #8a9ab0;
      text-transform: uppercase; letter-spacing: .4px; margin-bottom: 6px; padding: 0 2px;
    }
    .brtm-chat-page .brtm-cv-carousel-track { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
    .brtm-chat-page .brtm-cv-carousel-track::-webkit-scrollbar { height: 3px; }
    .brtm-chat-page .brtm-cv-carousel-track::-webkit-scrollbar-thumb { background: #d0d8e8; border-radius: 3px; }
    .brtm-chat-page .brtm-cv-carousel-card {
      min-width: 190px; background: white; border-radius: 10px;
      border: 1px solid #e3e8ef; overflow: hidden; flex-shrink: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08);
    }
    .brtm-chat-page .brtm-cv-carousel-card-img {
      width: 100%; height: 90px; background: #eef2fb;
      display: flex; align-items: center; justify-content: center; font-size: 30px; color: #8a9ab0;
    }
    .brtm-chat-page .brtm-cv-carousel-card-body { padding: 8px; }
    .brtm-chat-page .brtm-cv-carousel-card-title { font-size: 12px; font-weight: 700; color: #1a2234; margin-bottom: 2px; }
    .brtm-chat-page .brtm-cv-carousel-card-desc { font-size: 11px; color: #8a9ab0; margin-bottom: 6px; }
    .brtm-chat-page .brtm-cv-carousel-card-btn {
      width: 100%; padding: 5px; border: 1px solid var(--primary); border-radius: 6px;
      background: none; color: var(--primary); font-size: 12px; font-weight: 600;
      font-family: inherit; cursor: pointer;
    }
    /* Carousel intro — a real chat bubble (inherits theme colour) floating above the cards */
    .brtm-chat-page .brtm-cv-carousel-intro {
      display: inline-block; max-width: 100%; margin-bottom: 8px;
    }
    /* Outgoing (agent) carousel: align the whole block (intro + cards) to the right */
    .brtm-chat-page .brtm-cv-msg.brtm-outgoing .brtm-cv-carousel-wrap {
      display: flex; flex-direction: column; align-items: flex-end;
      max-width: 100%; min-width: 0;
    }
    /* Keep the card track shrinkable so it scrolls internally instead of widening the chat column */
    .brtm-chat-page .brtm-cv-carousel-wrap .brtm-cv-carousel-track {
      max-width: 100%; min-width: 0;
    }

    /* Order (WA Catalog) */
    .brtm-chat-page .brtm-cv-order-bubble { padding: 10px 14px; min-width: 220px; }
    .brtm-chat-page .brtm-cv-order-header {
      font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
      margin-bottom: 8px; display: flex; align-items: center; gap: 5px;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-order-header { color: #5a7396; }
    .brtm-chat-page .brtm-cv-bubble.brtm-incoming .brtm-cv-order-header { color: #8a9ab0; }
    .brtm-chat-page .brtm-cv-order-item {
      display: flex; align-items: center; gap: 8px;
      padding: 5px 0; border-bottom: 1px solid rgba(0,0,0,.07);
    }
    .brtm-chat-page .brtm-cv-order-item:last-of-type { border-bottom: none; }
    .brtm-chat-page .brtm-cv-order-img {
      width: 36px; height: 36px; border-radius: 6px; flex-shrink: 0;
      background: rgba(0,0,0,.08); display: flex; align-items: center; justify-content: center; font-size: 18px;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-order-img { background: rgba(27,111,190,.1); }
    .brtm-chat-page .brtm-cv-order-item-name { font-size: 12px; font-weight: 600; }
    .brtm-chat-page .brtm-cv-order-item-price { font-size: 11px; opacity: .7; }
    .brtm-chat-page .brtm-cv-order-total {
      padding-top: 8px; margin-top: 4px; border-top: 1px solid rgba(0,0,0,.1);
      display: flex; justify-content: space-between; font-size: 13px; font-weight: 700;
    }

    /* Error / unsupported */
    .brtm-chat-page .brtm-cv-error-bubble {
      display: flex; align-items: center; gap: 8px; padding: 10px 14px;
      background: #f9fafb; border: 1.5px dashed #d1d5db; color: #9ca3af;
      font-size: 12px; font-style: italic; border-radius: 10px; max-width: 260px;
    }
    .brtm-chat-page .brtm-cv-error-bubble i { font-size: 18px; flex-shrink: 0; }

    /* System notification variants (status 5) */
    .brtm-chat-page .brtm-cv-system-note.brtm-sys-blocked { background: #fee2e2; color: #b91c1c; }
    .brtm-chat-page .brtm-cv-system-note.brtm-sys-unblocked { background: #dcfce7; color: #16a34a; }
    .brtm-chat-page .brtm-cv-system-note.brtm-sys-warn { background: #fef3c7; color: #92400e; }
    .brtm-chat-page .brtm-cv-system-note.brtm-sys-info { background: #dbeafe; color: #1e40af; }
    .brtm-chat-page .brtm-cv-system-note.brtm-sys-bot  { background: #f3e8ff; color: #6d28d9; }

    /* Log aktivitas room (assign / status / bot) yang disisipkan ke stream dari changelog. */
    .brtm-chat-page .brtm-cv-system-note .brtm-cv-log-actor { font-weight: 700; }
    .brtm-chat-page .brtm-cv-system-note .brtm-cv-log-time { opacity: .72; }

    /* Entri panggilan room call center. Latar, radius dan warna diwarisi dari
       .brtm-cv-system-note di atas — yang ditambahkan hanya jarak, pembungkusan
       baris, dan ruang untuk tombol aksinya. Tidak ada warna baru: arah
       panggilan dibedakan lewat ikon telepon, bukan lewat latar. */
    .brtm-chat-page .brtm-cv-system-note.cc-call-note {
      /* Same padding and gap as the base pill so it matches system notes in other rooms. */
      position: relative; flex-wrap: wrap;
      justify-content: center; max-width: 92%;
      /* .brtm-cv-system-note menyusut lewat align-self:center, dan itu hanya
         bekerja kalau induknya flex column. Wadah pesan room call center div
         biasa, jadi pil display:flex ini memenuhi lebar room. Dua baris berikut
         membuatnya seukuran isinya tanpa bergantung pada tata letak induknya. */
      width: fit-content;
      margin-left: auto;
      margin-right: auto;
      /* Jarak antar pil. WhatsApp memakai wadah flex ber-gap 15px, dan di flex
         margin tidak saling meniadakan. Di sini wadahnya div biasa, jadi margin
         6px bawaan .brtm-cv-system-note bertemu 6px milik pil berikutnya lalu
         MENIADAKAN diri jadi 6px — sumber kesan rapat itu.
         Yang ditiru ritme antar-itemnya (15px), bukan 27px penuh ala WhatsApp:
         angka 27 itu 6+15+6, dan tambahan 6+6 ada untuk memisahkan SATU pil
         sistem dari gelembung di sekitarnya. Di room ini semua baris berupa pil,
         jadi menerapkannya ke setiap pasangan justru jadi terlalu renggang. */
      margin-top: 15px;
      margin-bottom: 15px;
    }
    /* Tak terjawab = pekerjaan yang belum selesai, bukan sekadar arah panggilan.
       Dibedakan ikon saja membuatnya tenggelam di antara puluhan panggilan lain.
       Merahnya memakai nilai .brtm-sys-blocked yang sudah ada di design system,
       jadi tidak ada warna baru yang diperkenalkan. */
    .brtm-chat-page .brtm-cv-system-note.cc-call-note--missed {
      background: #fee2e2;
      color: #b91c1c;
    }

    /* The action button sits OUTSIDE the pill: inside, its 26px box made the pill
       taller and left empty space on the right even while hidden. */
    .brtm-chat-page .cc-call-note .brtm-cv-msg-outside-actions {
      position: absolute; left: 100%; top: 50%; transform: translateY(-50%);
      margin-left: 4px; opacity: 0; transition: opacity .12s ease;
    }
    .brtm-chat-page .cc-call-note:hover .brtm-cv-msg-outside-actions,
    .brtm-chat-page .cc-call-note:focus-within .brtm-cv-msg-outside-actions { opacity: 1; pointer-events: auto; }


    /* === Bubble Right-click Context Menu === */
    .brtm-chat-page .brtm-cv-ctx-menu {
      position: fixed; z-index: 1080;
      width: 250px;
      background: #fff;
      border-radius: 14px;
      box-shadow: 0 8px 28px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.08);
      border: 1px solid #e3e8ef;
      overflow: hidden;
      animation: brtmCtxFadeIn .12s ease-out;
    }
    @keyframes brtmCtxFadeIn {
      from { opacity: 0; transform: scale(.96); }
      to   { opacity: 1; transform: scale(1); }
    }
    .brtm-chat-page .brtm-cv-ctx-reactions {
      display: flex; align-items: center; gap: 2px;
      padding: 8px;
      border-bottom: 1px solid #f1f5f9;
    }
    .brtm-chat-page .brtm-cv-ctx-react-btn {
      width: 32px; height: 32px; border-radius: 50%;
      border: none; background: transparent;
      font-size: 18px; cursor: pointer;
      transition: background .12s, transform .12s;
      display: flex; align-items: center; justify-content: center;
    }
    .brtm-chat-page .brtm-cv-ctx-react-btn:hover { background: #f1f5f9; transform: scale(1.15); }
    .brtm-chat-page .brtm-cv-ctx-react-more {
      width: 32px; height: 32px; border-radius: 50%;
      border: none; background: #f1f5f9; color: #5a7396;
      font-size: 14px; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      margin-left: auto;
    }
    .brtm-chat-page .brtm-cv-ctx-react-more:hover { background: #e3e8ef; }
    .brtm-chat-page .brtm-cv-ctx-list { padding: 4px 0; }
    .brtm-chat-page .brtm-cv-ctx-item {
      display: flex; align-items: center; gap: 12px;
      width: 100%; padding: 9px 16px;
      border: none; background: transparent;
      font-size: 13.5px; color: #1a2234;
      font-family: inherit; cursor: pointer;
      text-align: left; transition: background .12s;
    }
    .brtm-chat-page .brtm-cv-ctx-item:hover { background: #f5f7fa; }
    .brtm-chat-page .brtm-cv-ctx-item > i { font-size: 15px; color: #5a7396; width: 18px; flex-shrink: 0; }
    .brtm-chat-page .brtm-cv-ctx-item > span { flex: 1; }
    .brtm-chat-page .brtm-cv-ctx-divider { height: 1px; background: #f1f5f9; margin: 4px 0; }
    .brtm-chat-page .brtm-cv-ctx-item.brtm-ctx-danger { color: #dc2626; }
    .brtm-chat-page .brtm-cv-ctx-item.brtm-ctx-danger > i { color: #dc2626; }
    .brtm-chat-page .brtm-cv-ctx-item.brtm-ctx-danger:hover { background: #fef2f2; }
    .brtm-chat-page .brtm-cv-ctx-backdrop {
      position: fixed; inset: 0; z-index: 1079;
      background: transparent;
    }

    /* === Session-ended bar (WA 24h window expired) — adopts adesign reference === */
    /* Hidden by default; revealed via modifier class on .brtm-cv-input-bar */
    .brtm-chat-page .brtm-session-ended-bar { display: none; }
    .brtm-chat-page .brtm-cv-input-bar.brtm-session-ended .brtm-session-ended-bar {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 14px 4px 6px;
    }
    .brtm-chat-page .brtm-cv-input-bar.brtm-session-ended .brtm-cv-input-toprow,
    .brtm-chat-page .brtm-cv-input-bar.brtm-session-ended .brtm-cv-input-row,
    .brtm-chat-page .brtm-cv-input-bar.brtm-session-ended .brtm-cv-note-hint,
    .brtm-chat-page .brtm-cv-input-bar.brtm-session-ended .brtm-reply-preview-bar {
      display: none !important;
    }
    .brtm-chat-page .brtm-seb-icon {
      flex-shrink: 0;
      width: 40px; height: 40px; border-radius: 12px;
      background: #fff7ed;
      display: flex; align-items: center; justify-content: center;
      color: #d97706; font-size: 18px;
      border: 1px solid #fed7aa;
    }
    .brtm-chat-page .brtm-seb-content { flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-seb-title {
      font-size: 13px; font-weight: 600; color: #1e293b;
      margin-bottom: 2px;
    }
    .brtm-chat-page .brtm-seb-desc {
      font-size: 11.5px; color: #64748b; line-height: 1.45;
    }
    .brtm-chat-page .brtm-seb-btn {
      flex-shrink: 0;
      display: inline-flex; align-items: center; gap: 6px;
      padding: 8px 14px; border-radius: 8px;
      background: var(--primary, #1B6FBE); color: #fff;
      border: none; cursor: pointer; font-family: inherit;
      font-size: 12.5px; font-weight: 600;
      white-space: nowrap;
      transition: background .15s;
    }
    .brtm-chat-page .brtm-seb-btn:hover { background: #134E8E; }
    .brtm-chat-page .brtm-seb-btn i { font-size: 14px; }
    /* Lock Chat (#6952): kulit toast melayang "percakapan diambil alih".
       Toast-nya dirender vue-toastification di container-nya sendiri (di luar
       .brtm-chat-page), jadi aturannya global — bukan scoped di komponen.
       Warnanya sengaja NETRAL, bukan merah/hijau: ini kabar, bukan error dan
       bukan konfirmasi keberhasilan. */
    .Vue-Toastification__toast.lck-toast-shell {
      background: #1e293b;
      color: #f8fafc;
      min-height: auto;
      padding: 12px 14px;
    }
    .Vue-Toastification__toast.lck-toast-shell .Vue-Toastification__close-button {
      color: #f8fafc;
      opacity: 0.7;
    }
    /* Varian "room-mu yang diambil": diberi pita kuning supaya pemilik lama
       bisa membedakannya sekilas dari kabar ambil alih room orang lain. */
    .Vue-Toastification__toast.lck-toast-shell .lck-toast--mine {
      border-left: 3px solid #fbbf24;
      padding-left: 9px;
      margin-left: -9px;
    }

    /* Lock Chat (#6952): same bar, but this agent may not reply at all — the
       action reads as unavailable instead of inviting a click that the server
       would refuse anyway. :hover is neutralised so it does not look live. */
    .brtm-chat-page .brtm-seb-btn--locked,
    .brtm-chat-page .brtm-seb-btn--locked:hover {
      background: #e2e8f0; color: #64748b; cursor: not-allowed;
    }

    /* === Reply preview bar (above input) — compact 2-col reference style === */
    .brtm-chat-page .brtm-reply-preview-bar {
      display: flex; align-items: center; gap: 10px;
      background: #f0f4ff;
      border-left: 3px solid var(--primary, #1B6FBE);
      border-radius: 8px;
      padding: 8px 10px;
      margin-bottom: 8px;
      font-size: 12px;
      animation: brtmReplyFadeIn .15s ease-out;
    }
    @keyframes brtmReplyFadeIn {
      from { opacity: 0; transform: translateY(4px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-content {
      flex: 1; min-width: 0;
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-sender {
      font-weight: 600; color: var(--primary, #1B6FBE); margin-bottom: 2px;
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-text {
      color: #5a7396;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      display: flex; align-items: center; gap: 4px;
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-text i { font-size: 12px; opacity: .8; }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-close {
      background: none; border: none; cursor: pointer;
      color: #8a9ab0; font-size: 16px; padding: 0; line-height: 1;
      flex-shrink: 0;
    }
    .brtm-chat-page .brtm-reply-preview-bar .brtm-rp-close:hover { color: #dc2626; }

    /* === Send button loading state === */
    .brtm-chat-page .brtm-cv-send-btn.brtm-cv-send-loading {
      cursor: progress;
      opacity: .8;
    }
    .brtm-chat-page .brtm-spin {
      display: inline-block;
      animation: brtmSpin 1s linear infinite;
    }
    @keyframes brtmSpin {
      from { transform: rotate(0deg); }
      to   { transform: rotate(360deg); }
    }

    /* === Start New Chat Session modal (template-expired cost confirmation) === */
    .brtm-chat-page .brtm-sess-modal-overlay {
      position: fixed; inset: 0; z-index: 1050;
      background: rgba(15,23,42,.55);
      display: flex; align-items: center; justify-content: center;
      padding: 20px;
      animation: brtmSessFadeIn .15s ease-out;
    }
    @keyframes brtmSessFadeIn { from { opacity: 0; } to { opacity: 1; } }
    .brtm-chat-page .brtm-sess-modal {
      position: relative;
      width: 100%; max-width: 440px;
      background: #fff; border-radius: 14px;
      padding: 28px 28px 20px;
      box-shadow: 0 10px 40px rgba(15,23,42,.18), 0 2px 8px rgba(0,0,0,.06);
      animation: brtmSessSlideIn .18s ease-out;
    }
    @keyframes brtmSessSlideIn {
      from { opacity: 0; transform: translateY(8px) scale(.97); }
      to   { opacity: 1; transform: translateY(0) scale(1); }
    }
    .brtm-chat-page .brtm-sess-modal-close {
      position: absolute; top: 12px; right: 12px;
      width: 32px; height: 32px; border-radius: 50%;
      border: none; background: #f1f5f9; color: #5a7396;
      font-size: 12px; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .12s, color .12s;
    }
    .brtm-chat-page .brtm-sess-modal-close:hover { background: #e3e8ef; color: #1a2234; }

    .brtm-chat-page .brtm-sess-icon {
      width: 64px; height: 64px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 28px;
      margin: 0 auto 18px;
    }
    .brtm-chat-page .brtm-sess-icon-info {
      background: #eef4ff; color: #1B6FBE;
      border: 1px solid #c7dffb;
    }
    .brtm-chat-page .brtm-sess-icon-warn {
      background: #fef3c7; color: #d97706;
      border: 1px solid #fed7aa;
    }

    .brtm-chat-page .brtm-sess-title {
      font-size: 17px; font-weight: 700; color: #1a2234;
      text-align: center; margin-bottom: 6px;
    }
    .brtm-chat-page .brtm-sess-desc {
      font-size: 13px; color: #5a7396; line-height: 1.55;
      text-align: center; margin-bottom: 18px;
    }

    .brtm-chat-page .brtm-sess-cost-row {
      display: flex; align-items: center; justify-content: space-between;
      padding: 10px 14px; gap: 12px;
      background: #f7f9fc; border-radius: 8px;
      margin-bottom: 8px;
    }
    .brtm-chat-page .brtm-sess-cost-label {
      font-size: 12.5px; color: #5a7396; line-height: 1.35;
      display: flex; align-items: center; gap: 6px;
    }
    .brtm-chat-page .brtm-sess-cost-label i { font-size: 13px; color: #8a9ab0; }
    .brtm-chat-page .brtm-sess-cost-amount {
      font-size: 14px; font-weight: 700; color: #1a2234;
      white-space: nowrap; flex-shrink: 0;
    }

    .brtm-chat-page .brtm-sess-balance {
      display: flex; align-items: center; justify-content: space-between;
      padding: 12px 14px; border-radius: 8px; gap: 12px;
      margin-bottom: 16px;
    }
    .brtm-chat-page .brtm-sess-balance-left {
      display: flex; align-items: center; gap: 8px;
      font-size: 12.5px;
    }
    .brtm-chat-page .brtm-sess-balance-left i { font-size: 14px; }
    .brtm-chat-page .brtm-sess-balance-amount {
      font-size: 15px; font-weight: 700;
      white-space: nowrap; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-sess-balance-ok {
      background: #E7F4FD; color: #1565c0;
      border: 1px solid #c7dffb;
    }
    .brtm-chat-page .brtm-sess-balance-ok .brtm-sess-balance-amount { color: #0d47a1; }
    .brtm-chat-page .brtm-sess-balance-low {
      background: #fee2e2; color: #991b1b;
      border: 1px solid #fecaca;
    }
    .brtm-chat-page .brtm-sess-balance-low .brtm-sess-balance-amount { color: #7f1d1d; }

    .brtm-chat-page .brtm-sess-shortfall {
      display: flex; align-items: flex-start; gap: 8px;
      padding: 10px 14px;
      background: #fef3c7; border: 1px solid #fde68a;
      border-radius: 8px;
      font-size: 12px; color: #92400e; line-height: 1.5;
      margin-bottom: 12px;
    }
    .brtm-chat-page .brtm-sess-shortfall i { font-size: 14px; color: #d97706; flex-shrink: 0; margin-top: 1px; }
    .brtm-chat-page .brtm-sess-shortfall b { color: #78350f; font-weight: 700; }

    .brtm-chat-page .brtm-sess-topup {
      text-align: center; margin-bottom: 12px;
    }
    .brtm-chat-page .brtm-sess-topup a {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 8px 16px; border-radius: 8px;
      background: #dcfce7; color: #15803d;
      font-size: 12.5px; font-weight: 600; text-decoration: none;
      border: 1px solid #bbf7d0;
      transition: background .12s;
    }
    .brtm-chat-page .brtm-sess-topup a:hover { background: #bbf7d0; }
    .brtm-chat-page .brtm-sess-topup a i { font-size: 13px; }

    .brtm-chat-page .brtm-sess-employee-note {
      display: flex; align-items: center; gap: 6px;
      padding: 9px 12px;
      background: #f1f5f9; color: #475569;
      border-radius: 8px;
      font-size: 12px; line-height: 1.4;
      margin-bottom: 12px;
    }
    .brtm-chat-page .brtm-sess-employee-note i { font-size: 13px; color: #64748b; }

    .brtm-chat-page .brtm-sess-foot {
      display: flex; gap: 10px; margin-top: 18px;
    }
    .brtm-chat-page .brtm-sess-btn {
      flex: 1;
      display: inline-flex; align-items: center; justify-content: center; gap: 6px;
      padding: 11px 14px; border-radius: 8px;
      font-size: 13px; font-weight: 600; font-family: inherit;
      cursor: pointer; transition: all .12s;
      border: 1.5px solid transparent;
    }
    .brtm-chat-page .brtm-sess-btn i { font-size: 14px; }
    .brtm-chat-page .brtm-sess-btn-secondary {
      background: #fff; color: #4a5568;
      border-color: #e3e8ef;
    }
    .brtm-chat-page .brtm-sess-btn-secondary:hover {
      border-color: #94a3b8; color: #1a2234;
    }
    .brtm-chat-page .brtm-sess-btn-primary {
      background: #1B6FBE; color: #fff;
      border-color: #1B6FBE;
    }
    .brtm-chat-page .brtm-sess-btn-primary:hover:not(:disabled) {
      background: #134E8E; border-color: #134E8E;
    }
    .brtm-chat-page .brtm-sess-btn-primary:disabled {
      background: #cbd5e0; border-color: #cbd5e0; cursor: not-allowed;
    }

    /* === Bookmark indicator on bubble === */
    .brtm-chat-page .brtm-cv-bookmark-flag {
      position: absolute;
      top: -6px; right: -6px;
      width: 20px; height: 20px;
      border-radius: 50%;
      background: #f59e0b;
      color: #fff;
      font-size: 11px;
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 1px 3px rgba(0,0,0,.2);
      z-index: 2;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-bubble-bookmarked { /* hook for future styling */ }

    /* Sticker */
    .brtm-chat-page .brtm-cv-sticker {
      font-size: 72px; background: transparent; box-shadow: none;
      border: none; padding: 8px; line-height: 1;
    }

    /*  MESSAGE STATUS ICONS  */
    .brtm-chat-page .brtm-msg-status { font-size: 13px; }
    .brtm-chat-page .brtm-status-pending   { color: #a0aab8; }
    .brtm-chat-page .brtm-status-sent      { color: #a0aab8; }
    .brtm-chat-page .brtm-status-delivered { color: #a0aab8; }
    .brtm-chat-page .brtm-status-read      { color: var(--primary); }
    .brtm-chat-page .brtm-status-failed    { color: #dc2626; }
    .brtm-chat-page .brtm-status-expired   { color: #d97706; }

    /* Bubble tint overrides for failed/expired */
    .brtm-chat-page .brtm-cv-bubble.brtm-bubble-failed {
      background: #fff1f1;
      border: 1px solid #fecaca;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-bubble-failed::after {
      border-left-color: #fff1f1;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-bubble-expired {
      background: #fffbeb;
      border: 1px solid #fde68a;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-bubble-expired::after {
      border-left-color: #fffbeb;
    }
    .brtm-chat-page .brtm-meta-failed { color: #dc2626; }
    .brtm-chat-page .brtm-meta-expired { color: #d97706; }

    /* Popover rows */
    .brtm-status-pop-title {
      font-size: 11px; font-weight: 700; text-transform: uppercase;
      letter-spacing: .4px; margin-bottom: 10px;
      display: flex; align-items: center; gap: 6px;
    }
    .brtm-status-pop-row {
      display: flex; align-items: flex-start; gap: 8px;
      padding: 5px 0; border-bottom: 1px solid #f0f0f0;
      font-size: 12px; color: #1a2234;
    }
    .brtm-status-pop-row:last-child { border-bottom: none; }
    .brtm-status-pop-row .brtm-pop-icon { width: 18px; flex-shrink: 0; text-align: center; }
    .brtm-status-pop-row .brtm-pop-label { color: #8a9ab0; width: 72px; flex-shrink: 0; }
    .brtm-status-pop-row .brtm-pop-val { flex: 1; }
    .brtm-status-pop-row.brtm-pop-empty .brtm-pop-val { color: #c0cad8; }
    .brtm-status-pop-row.brtm-pop-error .brtm-pop-val { color: #dc2626; font-weight: 600; }
    .brtm-status-pop-row.brtm-pop-expired .brtm-pop-val { color: #d97706; font-weight: 600; }
    .brtm-status-pop-tip {
      margin-top: 8px; padding: 6px 10px; border-radius: 8px;
      font-size: 11px; display: flex; align-items: flex-start; gap: 6px;
    }
    .brtm-status-pop-tip.brtm-tip-error { background: #fff1f1; color: #b91c1c; }
    .brtm-status-pop-tip.brtm-tip-expired { background: #fffbeb; color: #b45309; }

    /*  CHAT ITEM CONTEXT MENU  */
    .brtm-ctx-menu {
      background: white;
      border-radius: 12px;
      box-shadow: 0 8px 32px rgba(0,0,0,.15), 0 2px 8px rgba(0,0,0,.08);
      padding: 6px;
      min-width: 210px;
      font-family: var(--brtm-font-ui);
      font-size: 13px;
      overflow: hidden;
      animation: ctxFadeIn .12s ease;
    }
    @keyframes ctxFadeIn {
      from { opacity: 0; transform: scale(.96) translateY(-4px); }
      to   { opacity: 1; transform: scale(1) translateY(0); }
    }
    .brtm-ctx-item {
      display: flex; align-items: center; gap: 12px;
      padding: 10px 14px; border-radius: 8px;
      cursor: pointer; color: #1a2234;
      transition: background .12s;
      white-space: nowrap;
    }
    .brtm-ctx-item:hover { background: #f0f4ff; color: var(--primary); }
    .brtm-ctx-item i { font-size: 15px; width: 18px; text-align: center; flex-shrink: 0; color: #8a9ab0; }
    .brtm-ctx-item:hover i { color: var(--primary); }
    .brtm-ctx-item-danger { color: #dc2626; }
    .brtm-ctx-item-danger i { color: #dc2626; }
    .brtm-ctx-item-danger:hover { background: #fff1f1; color: #b91c1c; }
    .brtm-ctx-item-danger:hover i { color: #b91c1c; }
    .brtm-ctx-divider {
      height: 1px; background: #f0f0f0; margin: 4px 0;
    }

    /*  BUBBLE CONTEXT MENU  */
    .brtm-bubble-ctx {
      background: #ffffff;
      border-radius: 12px;
      box-shadow: 0 8px 32px rgba(0,0,0,.15), 0 2px 8px rgba(0,0,0,.08);
      overflow: hidden;
      font-family: var(--brtm-font-ui);
      font-size: 13px;
      min-width: 210px;
      animation: ctxFadeIn .12s ease;
    }
    .brtm-bubble-ctx-emojis {
      display: flex; align-items: center; justify-content: space-between;
      padding: 10px 12px;
      border-bottom: 1px solid #f0f0f0;
    }
    .brtm-bubble-ctx-emoji {
      font-size: 22px; cursor: pointer;
      width: 38px; height: 38px;
      display: flex; align-items: center; justify-content: center;
      border-radius: 50%; transition: background .12s, transform .12s;
      line-height: 1;
    }
    .brtm-bubble-ctx-emoji:hover { background: #f0f4ff; transform: scale(1.25); }
    .brtm-bubble-ctx-emoji-more {
      font-size: 17px; color: #8a9ab0; cursor: pointer;
      width: 38px; height: 38px;
      display: flex; align-items: center; justify-content: center;
      border-radius: 50%; transition: background .12s, color .12s;
    }
    .brtm-bubble-ctx-emoji-more:hover { background: #f0f4ff; color: var(--primary); }
    .brtm-bubble-ctx-item {
      display: flex; align-items: center; gap: 12px;
      padding: 10px 14px; cursor: pointer;
      color: #1a2234;
      transition: background .12s; white-space: nowrap;
    }
    .brtm-bubble-ctx-item:hover { background: #f0f4ff; color: var(--primary); }
    .brtm-bubble-ctx-item i { font-size: 15px; width: 18px; text-align: center; flex-shrink: 0; color: #8a9ab0; }
    .brtm-bubble-ctx-item:hover i { color: var(--primary); }
    .brtm-bubble-ctx-item-danger { color: #dc2626; }
    .brtm-bubble-ctx-item-danger i { color: #dc2626; }
    .brtm-bubble-ctx-item-danger:hover { background: #fff1f1; color: #b91c1c; }
    .brtm-bubble-ctx-item-danger:hover i { color: #b91c1c; }
    .brtm-bubble-ctx-divider { height: 1px; background: #f0f0f0; }

    /*  MULTI-SELECT MODE  */
    .brtm-chat-page.brtm-select-mode .brtm-cv-msg {
      cursor: pointer; user-select: none;
      padding-left: 44px; position: relative;
      transition: background .12s;
    }
    .brtm-chat-page.brtm-select-mode .brtm-cv-msg.brtm-outgoing {
      padding-left: 0; padding-right: 44px;
    }
    /* hide hover action buttons in select mode */
    .brtm-chat-page.brtm-select-mode .brtm-bubble-chevron-wrap,
    .brtm-chat-page.brtm-select-mode .brtm-cv-msg-outside-actions { display: none !important; }
    /* checkbox circle */
    .brtm-chat-page.brtm-select-mode .brtm-cv-msg::before {
      content: '';
      position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
      width: 22px; height: 22px; border-radius: 50%;
      border: 2px solid #c0cad8; background: white;
      transition: all .15s; z-index: 2;
    }
    .brtm-chat-page.brtm-select-mode .brtm-cv-msg.brtm-outgoing::before {
      left: auto; right: 10px;
    }
    /* selected state */
    .brtm-chat-page.brtm-select-mode .brtm-cv-msg.brtm-msg-selected::before {
      background: var(--primary); border-color: var(--primary);
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E");
      background-size: 14px; background-repeat: no-repeat; background-position: center;
    }
    .brtm-chat-page.brtm-select-mode .brtm-cv-msg.brtm-msg-selected {
      background: rgba(27,111,190,.07);
      border-radius: 8px;
    }
    /* Multi-select bottom action bar */
    .brtm-multiselect-bar {
      display: none;
      position: absolute; top: 0; left: 0; right: 0;
      z-index: 50; background: white;
      border-bottom: 1px solid #e2e8f0;
      box-shadow: 0 4px 16px rgba(0,0,0,.08);
      padding: 10px 20px;
      align-items: center; justify-content: space-between;
      font-family: var(--brtm-font-ui);
      animation: ctxFadeIn .15s ease;
    }
    .brtm-multiselect-bar.brtm-open { display: flex; }
    .brtm-multiselect-bar-left { display: flex; align-items: center; gap: 12px; }
    .brtm-multiselect-bar-count {
      font-size: 14px; font-weight: 600; color: #1a2234;
    }
    .brtm-multiselect-bar-hint {
      font-size: 12px; color: #8a9ab0;
    }
    .brtm-multiselect-bar-close {
      background: none; border: none; cursor: pointer;
      color: #8a9ab0; font-size: 20px;
      display: flex; align-items: center; padding: 0;
    }
    .brtm-multiselect-bar-close:hover { color: #1a2234; }
    .brtm-multiselect-bar-actions { display: flex; gap: 8px; }
    .brtm-multiselect-bar-actions button {
      display: flex; align-items: center; gap: 7px;
      padding: 9px 18px; border-radius: 8px; border: none;
      font-size: 13px; font-weight: 500; cursor: pointer;
      font-family: var(--brtm-font-ui); transition: opacity .12s;
    }
    .brtm-multiselect-bar-actions button:hover { opacity: .82; }
    .brtm-msbar-btn-fwd   { background: var(--primary); color: white; }
    .brtm-msbar-btn-del   { background: #fff1f1; color: #dc2626; }
    .brtm-msbar-btn-copy  { background: #f0f4ff; color: #1a2234; }
    .brtm-chat-page .brtm-cv-reply-quote {
      display: flex;
      border-left: 3px solid var(--primary);
      background: rgba(0,0,0,.06);
      border-radius: 6px;
      padding: 6px 10px;
      margin-bottom: 6px;
      gap: 8px;
      cursor: pointer;
      overflow: hidden;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-reply-quote {
      border-left-color: var(--primary);
      background: rgba(27,111,190,.1);
    }
    .brtm-chat-page .brtm-cv-reply-quote-thumb {
      width: 36px; height: 36px; border-radius: 4px; flex-shrink: 0;
      background: rgba(0,0,0,.1);
      display: flex; align-items: center; justify-content: center;
      font-size: 18px; overflow: hidden;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-reply-quote-thumb { background: rgba(27,111,190,.1); }
    .brtm-chat-page .brtm-cv-reply-quote-body { flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-cv-reply-quote-author {
      font-size: 11px; font-weight: 700; color: var(--primary);
      margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-reply-quote-author { color: var(--primary); }
    .brtm-chat-page .brtm-cv-reply-quote-text {
      font-size: 12px; color: #5a7396; line-height: 1.4;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-reply-quote-text { color: #5a7396; }

    /*  FORWARD LABEL  */
    .brtm-chat-page .brtm-cv-forward-label {
      display: flex; align-items: center; gap: 4px;
      font-size: 11px; color: #8a9ab0; font-style: italic;
      margin-bottom: 4px;
    }
    /* forward label inside outgoing bubble */
    .brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-forward-label { color: #5a7396; }
    /* forward label outside bubble (on msg-body, for non-text types) */
    .brtm-chat-page .brtm-cv-msg.brtm-outgoing .brtm-cv-msg-body > .brtm-cv-forward-label { justify-content: flex-end; }
    .brtm-chat-page .brtm-cv-forward-label i { font-size: 12px; }
    /*  PROFILE PANEL  */
    /*  13f  Profile Panel  */
    .brtm-chat-page .brtm-profile-panel {
      width: 300px;
      min-width: 260px;
      max-width: 520px;
      background: white;
      border-left: 1px solid var(--border);
      display: flex; flex-direction: column;
      height: calc(100vh - var(--chat-chrome, 60px));
      overflow: hidden;
      flex-shrink: 0;
      position: relative;
      /* Always the last column. Below 1200px barantumchat-v6.css gives the room
         chat (.main) order:3, which would otherwise put this panel before it. */
      order: 4;
    }
    /* Below 1100px (listing2.vue isOverlayInfoPanel) there is no room to push the
       chat aside, so the panel floats over the room chat instead of pushing it. */
    .brtm-chat-page .inbox-content.brtm-info-overlay { position: relative; }
    .brtm-chat-page .brtm-profile-panel.brtm-profile-panel--overlay {
      /* !important: listing2.vue's scoped style also sets position:relative on the
         panel, and scoped styles load later with the same specificity. */
      position: absolute !important;
      top: 0;
      right: 0;
      min-width: 0;
      max-width: calc(100% - var(--brtm-chat-list-width, 320px));
      z-index: 30;
      box-shadow: -10px 0 28px rgba(24, 35, 58, .18);
    }
    .brtm-chat-page .brtm-profile-panel::-webkit-scrollbar { width: 4px; }
    .brtm-chat-page .brtm-profile-panel::-webkit-scrollbar-thumb { background: #d0d8e8; border-radius: 4px; }
    .brtm-chat-page .brtm-pp-body {
      flex: 1 1 auto;
      overflow-y: auto;
      min-height: 0;
    }
    .brtm-chat-page .brtm-pp-body::-webkit-scrollbar { width: 4px; }
    .brtm-chat-page .brtm-pp-body::-webkit-scrollbar-thumb { background: #d0d8e8; border-radius: 4px; }

    /* Profile panel resize handle (left side) */
    .brtm-chat-page .brtm-pp-resize-handle {
      position: absolute;
      top: 0; left: -4px;
      width: 8px; height: 100%;
      cursor: col-resize;
      z-index: 10;
      display: flex; align-items: center; justify-content: center;
    }
    .brtm-chat-page .brtm-pp-resize-handle::after {
      content: '';
      width: 3px; height: 40px;
      background: #d0d8e8;
      border-radius: 3px;
      transition: background .15s, height .15s;
    }
    .brtm-chat-page .brtm-pp-resize-handle:hover::after,
    .brtm-chat-page .brtm-pp-resize-handle.brtm-dragging::after {
      background: var(--primary);
      height: 60px;
    }

    .brtm-chat-page .brtm-pp-header {
      padding: 10px 16px;
      min-height: 48px;
      display: flex; align-items: center; justify-content: space-between;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
      box-sizing: border-box;
      position: sticky; top: 0;
      background: white;
      z-index: 2;
    }
    .brtm-chat-page .brtm-pp-header span {
      font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--tx-1);
      text-transform: none; letter-spacing: -0.01em;
    }
    .brtm-chat-page .brtm-pp-close {
      width: 28px; height: 28px; border-radius: 7px;
      border: none; background: none;
      color: #8a9ab0; font-size: 18px; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: all .15s;
    }
    .brtm-chat-page .brtm-pp-close:hover { background: #f0f4ff; color: var(--primary); }

    /* Profile hero */
    .brtm-chat-page .brtm-pp-hero {
      display: flex; flex-direction: column; align-items: center;
      padding: 16px 16px 12px;
      border-bottom: 1px solid var(--border); gap: 0;
    }
    .brtm-chat-page .brtm-pp-hero-top { display: none; }
    .brtm-chat-page .brtm-pp-big-avatar {
      width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0;
      background: linear-gradient(135deg, #2284C6, #63b3ed);
      color: white; font-size: 17px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 3px 10px rgba(34,132,198,.25);
      margin-bottom: 8px;
    }
    .brtm-chat-page .brtm-pp-hero-info { display: contents; }
    .brtm-chat-page .brtm-pp-name {
      font-size: 14px; font-weight: 700; color: #1a2234;
      margin-bottom: 4px; text-align: center;
    }
    .brtm-chat-page .brtm-pp-hero-phone {
      display: flex; align-items: center; gap: 5px;
      margin-bottom: 6px;
    }
    .brtm-chat-page .brtm-pp-hero-phone-num {
      font-size: 12px; color: #4a5568; font-weight: 500;
    }
    .brtm-chat-page .brtm-pp-channel {
      font-size: 11.5px; color: #8a9ab0;
      display: flex; align-items: center; gap: 4px;
      margin-bottom: 10px;
    }
    .brtm-chat-page .brtm-pp-badges {
      display: flex; gap: 6px; flex-wrap: wrap; justify-content: center;
    }
    .brtm-chat-page .brtm-pp-hero-phone {
      display: flex; align-items: center; gap: 5px;
    }
    .brtm-chat-page .brtm-pp-hero-phone-num {
      font-size: 12px; color: #4a5568; font-weight: 500;
      flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .brtm-chat-page .brtm-pp-channel {
      font-size: 11.5px; color: #8a9ab0;
      display: flex; align-items: center; gap: 4px;
    }
    .brtm-chat-page .brtm-pp-badges {
      display: flex; gap: 6px; flex-wrap: wrap;
    }

    /* Section */
    .brtm-chat-page .brtm-pp-section {
      border-bottom: 1px solid var(--border);
    }
    .brtm-chat-page .brtm-pp-section-header {
      padding: 12px 16px 8px;
      display: flex; align-items: center; justify-content: space-between;
      cursor: pointer; user-select: none;
    }
    .brtm-chat-page .brtm-pp-section-header:hover { background: #fafbfd; }
    .brtm-chat-page .brtm-pp-section-title {
      font-size: 11px; font-weight: 700; color: #8a9ab0;
      text-transform: uppercase; letter-spacing: .6px;
    }
    .brtm-chat-page .brtm-pp-section-toggle {
      font-size: 16px; color: #b0bac8;
      transition: transform .2s;
    }
    .brtm-chat-page .brtm-pp-section-meta {
      margin-left: auto; margin-right: 8px;
      font-size: 12px; font-weight: 600; color: #1a2234;
      display: inline-flex; align-items: center;
      text-transform: none; letter-spacing: 0;
    }
    .brtm-chat-page .brtm-pp-section--static .brtm-pp-section-header {
      cursor: default;
    }
    .brtm-chat-page .brtm-pp-section--static .brtm-pp-section-header:hover {
      background: transparent;
    }
    .brtm-chat-page .brtm-pp-section-toggle.brtm-open { transform: rotate(180deg); }
    .brtm-chat-page .brtm-pp-section-body {
      padding: 0 16px 14px;
    }

    /* Info row */
    .brtm-chat-page .brtm-pp-info-row {
      display: flex; align-items: flex-start;
      gap: 10px; padding: 6px 0;
    }
    .brtm-chat-page .brtm-pp-info-icon {
      width: 28px; height: 28px; border-radius: 7px;
      background: #f0f4ff; color: var(--primary);
      display: flex; align-items: center; justify-content: center;
      font-size: 15px; flex-shrink: 0; margin-top: 1px;
    }
    .brtm-chat-page .brtm-pp-info-content { flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-pp-info-label { font-size: 11px; color: #a0aab8; margin-bottom: 1px; }
    .brtm-chat-page .brtm-pp-info-value {
      font-size: 13px; font-weight: 500; color: #1a2234;
      word-break: break-word;
    }
    .brtm-chat-page .brtm-pp-info-value a { color: var(--primary); text-decoration: none; }
    .brtm-chat-page .brtm-pp-info-value a:hover { text-decoration: underline; }

    /* Assign row */
    .brtm-chat-page .brtm-pp-assign-row { display: flex; align-items: center; justify-content: space-between; padding: 7px 0; }
    .brtm-chat-page .brtm-pp-delete-agent-btn {
      width: 28px; height: 28px; border-radius: 7px;
      border: 1px solid transparent; background: transparent;
      color: #94a3b8; font-size: 12px; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      opacity: 0; transition: all .15s; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-pp-assign-row--deletable:hover .brtm-pp-delete-agent-btn {
      opacity: 1;
    }
    .brtm-chat-page .brtm-pp-delete-agent-btn:hover {
      background: #fee2e2; border-color: #fca5a5; color: #dc2626;
    }
    .brtm-chat-page .brtm-pp-assign-label { font-size: 12.5px; color: #1a2234; font-weight: 500; }
    .brtm-chat-page .brtm-pp-assign-val {
      font-size: 12px; color: #8a9ab0;
      display: flex; align-items: center; gap: 5px;
    }
    .brtm-chat-page .brtm-pp-assign-val .brtm-dot-unassigned {
      width: 8px; height: 8px; border-radius: 50%;
      background: #d0d8e8;
    }
    .brtm-chat-page .brtm-pp-assign-btn {
      font-size: 11.5px; color: var(--primary);
      background: none; border: 1px solid #c7d8f5;
      border-radius: 6px; padding: 3px 9px;
      cursor: pointer; font-family: var(--brtm-font-ui);
      transition: all .15s;
    }
    .brtm-chat-page .brtm-pp-assign-btn:hover { background: #e8f3ff; }

    /* Escalation rows */
    .brtm-chat-page .brtm-pp-esc-list { display: flex; flex-direction: column; gap: 5px; }
    .brtm-chat-page .brtm-pp-esc-row {
      display: flex; align-items: center; justify-content: space-between;
      padding: 8px 10px; border-radius: 8px;
      border: 1.5px solid #e8edf5; background: #f8fafc;
      cursor: pointer; transition: all .15s;
      position: relative;
    }
    .brtm-chat-page .brtm-pp-esc-row:hover { border-color: #c7d8f5; background: #eff6ff; }
    .brtm-chat-page .brtm-pp-esc-active { border-color: #3b82f6 !important; background: #eff6ff !important; }
    .brtm-chat-page .brtm-pp-esc-left { display: flex; align-items: center; gap: 7px; min-width: 0; }
    .brtm-chat-page .brtm-pp-esc-icon {
      width: 24px; height: 24px; border-radius: 6px;
      background: #dbeafe; color: #2563eb;
      display: flex; align-items: center; justify-content: center;
      font-size: 12px; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-pp-esc-active .brtm-pp-esc-icon { background: #2563eb; color: #fff; }
    .brtm-chat-page .brtm-pp-esc-name { font-size: 12.5px; font-weight: 500; color: #1a2234; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .brtm-chat-page .brtm-pp-esc-badge-assigned {
      font-size: 10px; font-weight: 600; color: #16a34a;
      background: #dcfce7; border-radius: 10px; padding: 1px 7px;
      white-space: nowrap; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-pp-esc-check-icon { font-size: 14px; color: #16a34a; flex-shrink: 0; }
    .brtm-chat-page .brtm-pp-esc-counts { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
    .brtm-chat-page .brtm-pp-esc-count { display: flex; align-items: center; gap: 3px; font-size: 11.5px; color: #64748b; font-weight: 500; }
    .brtm-chat-page .brtm-pp-esc-dot {
      width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-pp-esc-dot--online { background: #16a34a; }
    .brtm-chat-page .brtm-pp-esc-dot--offline { background: #cbd5e1; }
    .brtm-chat-page .brtm-pp-esc-row[data-tooltip] { overflow: visible; }
    .brtm-chat-page .brtm-pp-esc-row[data-tooltip]::before,
    .brtm-chat-page .brtm-pp-esc-row[data-tooltip]::after {
      content: ''; position: absolute; left: 50%; transform: translateX(-50%);
      pointer-events: none; opacity: 0;
      transition: opacity .18s, transform .18s;
      z-index: 200;
    }
    .brtm-chat-page .brtm-pp-esc-row[data-tooltip]::after {
      content: attr(data-tooltip);
      bottom: calc(100% + 10px);
      background: #1e293b; color: #f1f5f9;
      font-size: 11.5px; line-height: 1.55; font-weight: 400;
      padding: 8px 11px; border-radius: 8px;
      width: 210px; white-space: normal; text-align: left;
      box-shadow: 0 6px 20px rgba(0,0,0,.18);
      transform: translateX(-50%) translateY(4px);
    }
    .brtm-chat-page .brtm-pp-esc-row[data-tooltip]::before {
      content: '';
      bottom: calc(100% + 4px);
      border: 6px solid transparent;
      border-top-color: #1e293b;
      transform: translateX(-50%) translateY(4px);
    }
    .brtm-chat-page .brtm-pp-esc-row[data-tooltip]:hover::after,
    .brtm-chat-page .brtm-pp-esc-row[data-tooltip]:hover::before {
      opacity: 1; transform: translateX(-50%) translateY(0);
    }

    /* Tags input + list */
    .brtm-chat-page .brtm-pp-tags-input { margin-bottom: 8px; }
    .brtm-chat-page .brtm-pp-tags-input .multiselect { font-size: 12px; }
    .brtm-chat-page .brtm-pp-tags-input .multiselect__tags { min-height: 34px; padding: 4px 36px 4px 8px; border-radius: 7px; border-color: #d6e4f0; }
    .brtm-chat-page .brtm-pp-tags-input .multiselect__placeholder { font-size: 12px; color: #b0bcc9; margin: 0; padding: 0; }
    .brtm-chat-page .brtm-pp-tags-input .multiselect__input { font-size: 12px; }
    .brtm-chat-page .brtm-pp-tag-list { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
    .brtm-chat-page .brtm-pp-add-agent-form .multiselect { font-size: 12px; }
    .brtm-chat-page .brtm-pp-add-agent-form .multiselect__tags { min-height: 34px; padding: 4px 36px 4px 8px; border-radius: 7px; border-color: #d6e4f0; }
    .brtm-chat-page .brtm-pp-add-agent-form .multiselect__placeholder { font-size: 12px; color: #b0bcc9; margin: 0; padding: 0; }
    .brtm-chat-page .brtm-pp-add-agent-form .multiselect__content-wrapper { position: absolute !important; z-index: 9999; width: 100%; }
    .brtm-chat-page .brtm-pp-add-agent-divider { border: none; border-top: 1px solid #e8edf5; margin: 10px 0 8px; }
    .brtm-chat-page .brtm-pp-add-agent-label { display: block; font-size: 11px; font-weight: 600; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 6px; }
    .brtm-chat-page .brtm-pp-add-agent-row { display: flex; align-items: center; gap: 6px; }
    .brtm-chat-page .brtm-pp-add-agent-select { flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-pp-add-agent-btns { display: flex; gap: 5px; flex-shrink: 0; }
    .brtm-chat-page .brtm-pp-agt-confirm,
    .brtm-chat-page .brtm-pp-agt-cancel {
      width: 32px; height: 32px; border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; font-size: 13px; transition: all .15s; border: none;
    }
    .brtm-chat-page .brtm-pp-agt-confirm { background: #16a34a; color: #fff; }
    .brtm-chat-page .brtm-pp-agt-confirm:hover { background: #15803d; }
    .brtm-chat-page .brtm-pp-agt-confirm:disabled { background: #86efac; cursor: not-allowed; }
    .brtm-chat-page .brtm-pp-agt-spinner {
      width: 13px; height: 13px; border-radius: 50%;
      border: 2px solid rgba(255,255,255,.35);
      border-top-color: #fff;
      animation: brtm-spin .6s linear infinite;
      display: inline-block;
    }
    @keyframes brtm-spin { to { transform: rotate(360deg); } }
    .brtm-chat-page .brtm-pp-assign-row--deletable {
      animation: brtm-agent-in .25s ease;
    }
    @keyframes brtm-agent-in {
      from { opacity: 0; transform: translateY(-6px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .brtm-chat-page .brtm-pp-agt-cancel { background: #f1f5f9; color: #64748b; border: 1px solid #e3e8ef; }
    .brtm-chat-page .brtm-pp-agt-cancel:hover { background: #e2e8f0; }
    .brtm-chat-page .brtm-pp-delete-confirm-text { font-size: 12px; color: #1a2234; flex: 1; }
    .brtm-chat-page .brtm-pp-delete-confirm-text b { font-weight: 600; }
    .brtm-chat-page .brtm-pp-delete-inline {
      display: flex; align-items: center; justify-content: space-between;
      width: 100%; animation: brtm-agent-in .18s ease;
      border: 1px solid #fca5a5; border-radius: 8px; padding: 5px 8px;
    }
    .brtm-chat-page .brtm-pp-assign-avatar--dim { background: #e2e8f0; color: #94a3b8; }
    .brtm-chat-page .brtm-pp-delete-inline-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
    .brtm-chat-page .brtm-pp-delete-inline-yes {
      font-size: 11.5px; font-weight: 500; color: #ef4444;
      background: none; border: 1px solid #fca5a5;
      border-radius: 999px; padding: 2px 10px; cursor: pointer;
      transition: all .15s; font-family: var(--brtm-font-ui);
    }
    .brtm-chat-page .brtm-pp-delete-inline-yes:hover { background: #fef2f2; border-color: #ef4444; }
    .brtm-chat-page .brtm-pp-delete-inline-sep { color: #cbd5e1; font-size: 12px; }
    .brtm-chat-page .brtm-pp-delete-inline-no {
      font-size: 11.5px; color: #94a3b8; background: none; border: none;
      cursor: pointer; padding: 0; font-family: var(--brtm-font-ui);
      transition: color .15s;
    }
    .brtm-chat-page .brtm-pp-delete-inline-no:hover { color: #475569; }
    .brtm-chat-page .brtm-pp-delete-confirm-card {
      width: 100%; background: #fef2f2;
      border: 1px solid #fecaca; border-left: 3px solid #ef4444;
      border-radius: 8px; padding: 9px 11px;
      display: flex; flex-direction: column; gap: 8px;
      animation: brtm-agent-in .2s ease;
    }
    .brtm-chat-page .brtm-pp-delete-confirm-top { display: flex; align-items: center; gap: 8px; }
    .brtm-chat-page .brtm-pp-delete-confirm-icon { font-size: 14px; color: #ef4444; flex-shrink: 0; }
    .brtm-chat-page .brtm-pp-delete-confirm-title { font-size: 11.5px; font-weight: 600; color: #991b1b; }
    .brtm-chat-page .brtm-pp-delete-confirm-name { font-size: 11px; color: #b91c1c; margin-top: 1px; }
    .brtm-chat-page .brtm-pp-delete-confirm-actions { display: flex; gap: 6px; }
    .brtm-chat-page .brtm-pp-delete-confirm-yes {
      flex: 1; padding: 5px 8px; border-radius: 6px;
      background: var(--sev-crit); color: #fff; border: none;
      font-size: 12px; font-weight: 500; cursor: pointer;
      display: flex; align-items: center; justify-content: center; gap: 4px;
      transition: background .15s;
    }
    .brtm-chat-page .brtm-pp-delete-confirm-yes:hover { background: #dc2626; }
    .brtm-chat-page .brtm-pp-delete-confirm-no {
      flex: 1; padding: 5px 8px; border-radius: 6px;
      background: #fff; color: #64748b;
      border: 1px solid #e2e8f0;
      font-size: 12px; font-weight: 500; cursor: pointer;
      transition: all .15s;
    }
    .brtm-chat-page .brtm-pp-delete-confirm-no:hover { background: #f8fafc; border-color: #cbd5e1; }
    .brtm-chat-page .brtm-pp-btn-confirm { flex: 1; padding: 5px 8px; border-radius: 6px; border: 1px solid #2563eb; background: #eff6ff; color: #2563eb; font-size: 12px; cursor: pointer; }
    .brtm-chat-page .brtm-pp-btn-confirm:hover { background: #dbeafe; }
    .brtm-chat-page .brtm-pp-btn-cancel { flex: 1; padding: 5px 8px; border-radius: 6px; border: 1px solid #e3e8ef; background: #f8fafc; color: #64748b; font-size: 12px; cursor: pointer; }
    .brtm-chat-page .brtm-pp-btn-cancel:hover { background: #f1f5f9; }
    .brtm-chat-page .brtm-pp-add-agent-ghost-btn {
      display: block; width: 100%; margin-top: 8px;
      padding: 6px 12px; border-radius: 8px;
      border: 1.5px dashed #c7d8f5; background: transparent;
      color: #2284C6; font-size: 12px; font-weight: 500;
      cursor: pointer; text-align: center; transition: all .15s;
      font-family: var(--brtm-font-ui);
    }
    .brtm-chat-page .brtm-pp-add-agent-ghost-btn:hover { background: #eff6ff; border-color: #2284C6; }
    .brtm-chat-page .brtm-pp-agent-limit-note {
      display: flex; align-items: center; gap: 5px; justify-content: center;
      margin-top: 8px; padding: 6px 12px; border-radius: 8px;
      border: 1.5px dashed #e2e8f0; color: #94a3b8;
      font-size: 11.5px; font-family: var(--brtm-font-ui);
    }
    .brtm-chat-page .brtm-pp-tags-input { margin-bottom: 8px; position: relative; }
    .brtm-chat-page .brtm-pp-tags-select-overlay {
      position: absolute; inset: 0; z-index: 10;
      background: rgba(255,255,255,.78); border-radius: 8px;
      display: flex; align-items: center; justify-content: center; gap: 7px;
      font-size: 11.5px; color: #64748b; font-family: var(--brtm-font-ui);
      backdrop-filter: blur(1px); pointer-events: none;
    }
    .brtm-chat-page .brtm-pp-tag-feedback {
      display: flex; align-items: center; gap: 6px;
      font-size: 11.5px; font-family: var(--brtm-font-ui);
      padding: 5px 8px; border-radius: 7px; margin-top: 7px;
    }
    .brtm-chat-page .brtm-pp-tag-feedback--success { background: #f0fdf4; color: #16a34a; }
    .brtm-chat-page .brtm-pp-tag-feedback--error { background: #fef2f2; color: #dc2626; }
    .brtm-tag-fb-enter-active { transition: opacity .2s, transform .2s; }
    .brtm-tag-fb-leave-active { transition: opacity .25s, transform .25s; }
    .brtm-tag-fb-enter-from, .brtm-tag-fb-leave-to { opacity: 0; transform: translateY(-4px); }
    .brtm-chat-page .brtm-pp-tag-chips {
      display: flex; flex-wrap: wrap; gap: 6px;
      margin-top: 4px;
    }
    .brtm-chat-page .brtm-pp-tag-chip {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 8px 3px 10px;
      background: #e8f0fe; color: #2563eb;
      border-radius: 20px; font-size: 11.5px;
      font-family: var(--brtm-font-ui); font-weight: 500;
      line-height: 1.4;
      transition: opacity .15s;
    }
    .brtm-chat-page .brtm-pp-tag-chip-del {
      display: inline-flex; align-items: center; justify-content: center;
      width: 16px; height: 16px; border-radius: 50%;
      border: none; background: transparent;
      color: inherit; opacity: .6;
      cursor: pointer; padding: 0; font-size: 12px;
      transition: opacity .15s, background .15s;
    }
    .brtm-chat-page .brtm-pp-tag-chip-del:hover { opacity: 1; background: rgba(0,0,0,.12); }
    .brtm-chat-page .brtm-pp-tags-empty {
      display: flex; align-items: center; gap: 6px;
      font-size: 12px; color: #b0bac8;
      font-family: var(--brtm-font-ui);
      padding: 6px 0 2px;
    }
    .brtm-chat-page .brtm-pp-note-input {
      width: 100%; border: 1.5px solid #e3e8ef;
      border-radius: 8px; padding: 8px 10px;
      font-size: 12px; font-family: var(--brtm-font-ui);
      color: #1a2234; resize: none; outline: none;
      min-height: 68px;
      transition: border-color .15s;
    }
    .brtm-chat-page .brtm-pp-note-input:focus { border-color: var(--primary); }
    .brtm-chat-page .brtm-pp-note-input::placeholder { color: #b0bac8; }
    .brtm-chat-page .brtm-pp-note-save {
      margin-top: 6px; width: 100%;
      background: var(--primary); color: white; border: none;
      border-radius: 8px; padding: 7px;
      font-size: 12px; font-weight: 600;
      cursor: pointer; font-family: var(--brtm-font-ui);
      transition: background .15s;
    }
    .brtm-chat-page .brtm-pp-note-save:hover { background: #1a6ea8; }

    /*  Hero meta rows (phone/channel/bot/room id)  */
    .brtm-chat-page .brtm-pp-hero-meta-row { display: none; }
    .brtm-chat-page .brtm-pp-hero-meta-text { display: none; }
    /* Channel (WA account) card - small green chip below phone */
    .brtm-chat-page .brtm-pp-channel-card {
      display: inline-flex; align-items: center; gap: 5px;
      margin-bottom: 10px; padding: 3px 10px 3px 7px;
      background: #f0fdf4; border: 1px solid #bbf7d0;
      border-radius: 20px; width: auto; box-sizing: border-box;
    }
    .brtm-chat-page .brtm-pp-channel-card-icon {
      color: #16a34a; font-size: 13px; line-height: 1;
      display: flex; align-items: center;
    }
    .brtm-chat-page .brtm-pp-channel-card-info {
      display: flex; flex-direction: column;
    }
    .brtm-chat-page .brtm-pp-channel-card-title {
      font-size: 11.5px; font-weight: 600; color: #15803d;
    }
    .brtm-chat-page .brtm-pp-channel-card-sub { display: none; }
    .brtm-chat-page .brtm-pp-bot-card {
      display: flex; align-items: center; justify-content: space-between;
      margin-top: 8px; padding: 7px 10px;
      background: #f5f0ff; border: 1.5px solid #e9d5ff;
      border-radius: 8px; gap: 10px; width: 100%; box-sizing: border-box;
    }
    .brtm-chat-page .brtm-pp-bot-card-left {
      display: flex; align-items: center; gap: 9px; flex: 1; min-width: 0;
    }
    .brtm-chat-page .brtm-pp-bot-card-icon {
      width: 32px; height: 32px; border-radius: 8px;
      background: #ede9fe; color: #7c3aed;
      display: flex; align-items: center; justify-content: center;
      font-size: 15px; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-pp-bot-card-info {
      display: flex; flex-direction: column; gap: 2px;
    }
    .brtm-chat-page .brtm-pp-bot-card-title {
      font-size: 12.5px; font-weight: 600; color: #1a2234;
    }
    .brtm-chat-page .brtm-pp-bot-card-status {
      font-size: 11px; color: #7c3aed;
      display: flex; align-items: center; gap: 4px;
    }
    .brtm-chat-page .brtm-pp-bot-card-status.brtm-bot-off {
      color: #94a3b8;
    }
    .brtm-chat-page .brtm-pp-bot-sdot {
      width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-pp-bot-sdot--on { background: #22c55e; }
    .brtm-chat-page .brtm-pp-bot-sdot--off { background: #94a3b8; }
    /* Channel (WA account) - small green pill chip */
    .brtm-chat-page .brtm-pp-channel-card {
      display: inline-flex; align-items: center; gap: 5px;
      margin-bottom: 10px; padding: 3px 10px 3px 6px;
      background: #f0fdf4; border: 1px solid #bbf7d0;
      border-radius: 20px;
    }
    .brtm-chat-page .brtm-pp-channel-card-icon {
      color: #16a34a; font-size: 13px;
      display: flex; align-items: center;
    }
    .brtm-chat-page .brtm-pp-channel-card-info { display: contents; }
    .brtm-chat-page .brtm-pp-channel-card-title {
      font-size: 11.5px; font-weight: 600; color: #15803d;
    }
    .brtm-chat-page .brtm-pp-channel-card-sub { display: none; }
    .brtm-chat-page .brtm-pp-roomid-bar {
      display: flex; align-items: center; gap: 6px;
      margin-top: 0; padding: 5px 9px;
      background: #f8fbff; border: 1.5px solid #e3e8ef;
      border-radius: 8px; width: 100%; box-sizing: border-box;
    }
    .brtm-chat-page .brtm-pp-roomid-left {
      flex: 1; min-width: 0;
      display: flex; align-items: center; gap: 6px;
    }
    .brtm-chat-page .brtm-pp-roomid-lbl {
      font-size: 10.5px; font-weight: 700; color: #a0aab8;
      text-transform: uppercase; letter-spacing: .5px; white-space: nowrap;
    }
    .brtm-chat-page .brtm-pp-roomid-val {
      font-size: 12px; font-weight: 600; color: #1a2234;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .brtm-chat-page .brtm-pp-copylink-btn {
      display: inline-flex; align-items: center; justify-content: center; gap: 4px;
      padding: 4px 10px; border-radius: 6px;
      border: 1.5px solid #e3e8ef; background: #fff;
      font-size: 11.5px; color: #4a5568; cursor: pointer;
      font-family: inherit; font-weight: 500; white-space: nowrap;
      flex: 1; width: 100%; transition: border-color .15s, color .15s;
    }
    .brtm-chat-page .brtm-pp-copylink-btn:hover { border-color: var(--primary); color: var(--primary); }

    /*  Info tip button  */
    .brtm-chat-page .brtm-pp-tip {
      display: inline-flex; align-items: center; justify-content: center;
      width: 16px; height: 16px; border-radius: 50%;
      border: 1.5px solid #c7d3e8; background: #f0f4ff;
      color: #6b7fa8; font-size: 9.5px; font-weight: 700;
      cursor: default; flex-shrink: 0; line-height: 1;
      position: relative; font-family: inherit;
      transition: border-color .15s, color .15s, background .15s;
      pointer-events: auto;
    }
    .brtm-chat-page .brtm-pp-tip:hover {
      border-color: var(--primary); color: var(--primary); background: #ddeaff;
    }

    /*  CRM Records rows  */
    .brtm-chat-page .brtm-pp-crm-row {
      border-bottom: 1px solid #f1f5f9;
    }
    .brtm-chat-page .brtm-pp-crm-create,
    .brtm-chat-page .brtm-pp-crm-linked {
      display: flex; align-items: center; gap: 10px;
      padding: 10px 16px;
    }
    .brtm-chat-page .brtm-pp-crm-icon {
      width: 30px; height: 30px; border-radius: 8px;
      background: #f0f4ff; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
      font-size: 15px;
    }
    .brtm-chat-page .brtm-pp-crm-label {
      font-size: 12.5px; font-weight: 600; color: #1a2234; flex: 1;
    }
    .brtm-chat-page .brtm-pp-crm-btn {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 4px 10px; border-radius: 6px;
      border: 1.5px dashed #c8d5e0; background: transparent;
      font-size: 11.5px; color: #8a9ab0; cursor: pointer;
      font-family: inherit; font-weight: 500; white-space: nowrap;
      transition: border-color .15s, color .15s, background .15s;
    }
    .brtm-chat-page .brtm-pp-crm-btn:hover {
      border-color: var(--primary); color: var(--primary); background: #eff6ff;
    }
    .brtm-chat-page .brtm-pp-crm-linked-info { flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-pp-crm-linked-name {
      font-size: 11.5px; color: #5a7396; margin-top: 1px;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .brtm-chat-page .brtm-pp-crm-open-btn {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 4px 10px; border-radius: 6px;
      border: 1.5px solid #c7d8f5; background: #eff6ff;
      font-size: 11.5px; color: var(--primary); cursor: pointer;
      font-family: inherit; font-weight: 600; white-space: nowrap;
      text-decoration: none; transition: background .15s, border-color .15s;
    }
    .brtm-chat-page .brtm-pp-crm-open-btn:hover { background: #dbeafe; border-color: var(--primary); }

    /*  Escalation badge  */
    .brtm-chat-page .brtm-pp-escal-badge {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 11.5px; font-weight: 600; color: #ea580c;
      background: #fff7ed; border: 1.5px solid #fed7aa;
      border-radius: 20px; padding: 2px 9px;
    }

    /*  Tags chips in pp  */
    .brtm-chat-page .brtm-pp-tags-chips {
      display: flex; flex-wrap: wrap; gap: 6px;
    }
    .brtm-chat-page .brtm-pp-tags-add-btn {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 9px; border-radius: 20px;
      border: 1.5px dashed #c8d5e0; background: transparent;
      font-size: 11px; color: #8a9ab0; cursor: pointer;
      font-family: inherit; transition: border-color .15s, color .15s;
    }
    .brtm-chat-page .brtm-pp-tags-add-btn:hover { border-color: var(--primary); color: var(--primary); }
    .brtm-chat-page .brtm-pp-tag-remove {
      background: none; border: none; padding: 0 0 0 3px;
      cursor: pointer; color: inherit; opacity: .6;
      display: inline-flex; align-items: center; font-size: 10px;
    }
    .brtm-chat-page .brtm-pp-tag-remove:hover { opacity: 1; }
    .brtm-chat-page .brtm-pp-tags-chips .brtm-tag {
      display: inline-flex; align-items: center; gap: 3px;
      padding: 3px 8px 3px 10px;
    }
    .brtm-chat-page .brtm-pp-tags-add-cancel {
      display: inline-flex; align-items: center; gap: 4px;
      margin-top: 6px;
      padding: 3px 9px; border-radius: 20px;
      border: 1.5px solid #e3e8ef; background: transparent;
      font-size: 11px; color: #8a9ab0; cursor: pointer;
      font-family: var(--brtm-font-ui); transition: .15s;
    }
    .brtm-chat-page .brtm-pp-tags-add-cancel:hover {
      border-color: #cbd5e1; color: #475569; background: #f8fafc;
    }

    /*  Bookmark Bubble  */
    .brtm-chat-page .brtm-pp-bookmark-item {
      display: flex; align-items: flex-start; gap: 9px;
      padding: 9px 16px;
      border-bottom: 1px solid #f1f5f9;
      cursor: pointer;
      transition: background .1s;
    }
    .brtm-chat-page .brtm-pp-bookmark-item:last-child { border-bottom: none; }
    .brtm-chat-page .brtm-pp-bookmark-item:hover { background: #f8fbff; }
    .brtm-chat-page .brtm-pp-bookmark-avatar {
      width: 26px; height: 26px; border-radius: 50%;
      background: var(--brand-50); color: var(--brand);
      font-size: 10px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; margin-top: 1px;
    }
    .brtm-chat-page .brtm-pp-bookmark-avatar--agent {
      background: linear-gradient(135deg,#2284C6,#42a5f5); color: #fff;
    }
    .brtm-chat-page .brtm-pp-bookmark-content { flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-pp-bookmark-text {
      font-size: 12px; color: #1a2234; font-weight: 500;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .brtm-chat-page .brtm-pp-bookmark-meta { font-size: 11px; color: #a0aab8; margin-top: 2px; }
    .brtm-chat-page .brtm-pp-bookmark-del {
      background: none; border: none; cursor: pointer;
      color: #c0cad8; font-size: 14px; padding: 2px;
      flex-shrink: 0; transition: color .12s;
    }
    .brtm-chat-page .brtm-pp-bookmark-del:hover { color: #dc2626; }

    /*  Sublabel (used in bot log section)  */
    .brtm-chat-page .brtm-pp-sublabel {
      font-size: 10.5px; font-weight: 700; color: #8a9ab0;
      text-transform: uppercase; letter-spacing: .5px; margin-bottom: 6px;
    }

    /*  Bot Log  */
    .brtm-chat-page .brtm-pp-botlog { display: flex; flex-direction: column; gap: 0; }
    .brtm-chat-page .brtm-pp-botlog-item {
      display: flex; align-items: flex-start; gap: 9px;
      padding: 7px 0;
      border-bottom: 1px solid #f4f6fb;
    }
    .brtm-chat-page .brtm-pp-botlog-item:last-child { border-bottom: none; }
    .brtm-chat-page .brtm-pp-botlog-dot {
      width: 8px; height: 8px; border-radius: 50%;
      background: #d0d8e8; flex-shrink: 0; margin-top: 4px;
    }
    .brtm-chat-page .brtm-pp-botlog-content { flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-pp-botlog-text {
      font-size: 12px; font-weight: 500; color: #1a2234;
    }
    .brtm-chat-page .brtm-pp-botlog-time { font-size: 11px; color: #a0aab8; margin-top: 1px; }

    /*  Footer actions  */
    .brtm-chat-page .brtm-pp-footer-actions {
      display: flex; flex-direction: column; gap: 6px;
      padding: 12px 14px 16px;
      border-top: 1px solid #f1f5f9;
      background: var(--bg-app);
      margin-top: 4px;
    }
    .brtm-chat-page .brtm-pp-footer-btn {
      flex: 1; display: inline-flex; align-items: center;
      justify-content: center; gap: 6px;
      padding: 7px 10px; border-radius: 8px;
      border: 1.5px solid #e3e8ef; background: #fff;
      font-size: 12px; font-weight: 600; color: #4a5568;
      cursor: pointer; font-family: inherit;
      transition: border-color .15s, background .15s, color .15s;
    }
    .brtm-chat-page .brtm-pp-footer-btn:hover {
      border-color: #a0aab8; background: #f8fafc;
    }
    .brtm-chat-page .brtm-pp-footer-btn--danger {
      color: #dc2626; border-color: #fecaca; background: #fff5f5;
    }
    .brtm-chat-page .brtm-pp-footer-btn--danger:hover {
      border-color: #dc2626; background: #fee2e2;
    }

    /* Conversation history mini list */
    .brtm-chat-page .brtm-pp-conv-item {
      display: flex; align-items: center; gap: 8px;
      padding: 7px 0;
      border-bottom: 1px solid #f4f6fb;
      cursor: pointer;
    }
    .brtm-chat-page .brtm-pp-conv-item:last-child { border-bottom: none; }
    .brtm-chat-page .brtm-pp-conv-icon {
      width: 28px; height: 28px; border-radius: 7px;
      background: #e8f3ff; color: var(--primary);
      display: flex; align-items: center; justify-content: center;
      font-size: 14px; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-pp-conv-info { flex: 1; min-width: 0; }
    .brtm-chat-page .brtm-pp-conv-title {
      font-size: 12px; font-weight: 600; color: #1a2234;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .brtm-chat-page .brtm-pp-conv-date { font-size: 11px; color: #a0aab8; }
    .brtm-chat-page .brtm-pp-conv-badge {
      font-size: 10px; font-weight: 600; border-radius: 20px;
      padding: 2px 8px;
    }

    /*  pp-conv-item hover  */
    .brtm-chat-page .brtm-pp-conv-item:hover { background: #f4f7fd; border-radius: 8px; }

    /* tag-orange */
    .brtm-chat-page .brtm-tag-orange { background: #fff3e0; color: #e65100; }
    .brtm-chat-page .brtm-tag-purple { background: #f3e8ff; color: #7c3aed; }

    /*  UNREAD state  */
    .brtm-chat-page .brtm-chat-item.brtm-unread { background: transparent; }
    .brtm-chat-page .brtm-chat-item.brtm-unread .brtm-chat-name { color: #0f172a; }
    /* Lock Chat (#6952): a conversation this agent may only read is toned down,
       so the lock reads at a glance and not only from the badge. Placed AFTER
       the unread rule on purpose — a locked room stays toned down even when it
       is unread. */
    .brtm-chat-page .brtm-chat-item.lck-locked .brtm-chat-name { color: #475569; }
    .brtm-chat-page .brtm-chat-item.brtm-unread .brtm-chat-msg { color: #1a2234; font-weight: 500; }
    .brtm-chat-page .brtm-chat-item.brtm-unread:hover { background: var(--bg-hover); }
    /* Unread badge */
    .brtm-chat-page .brtm-unread-badge {
      min-width: 18px; height: 18px;
      background: var(--primary); color: white;
      border-radius: 20px; font-size: 10px; font-weight: 700;
      display: inline-flex; align-items: center; justify-content: center;
      padding: 0 5px; flex-shrink: 0;
    }
    /* Unread dot (marked as unread manually) */
    .brtm-chat-page .brtm-unread-dot {
      width: 8px; height: 8px; border-radius: 50%;
      background: var(--primary); flex-shrink: 0;
      display: inline-block;
    }

    /*  PINNED state  */
    .brtm-chat-page .brtm-chat-item.brtm-pinned {
      background: #fffbeb;
      border-left: 3px solid #f59e0b;
    }
    .brtm-chat-page .brtm-chat-item.brtm-pinned:hover { background: #fef3c7; }
    .brtm-chat-page .brtm-chat-item.brtm-pinned.brtm-active {
      background: #fef3c7;
      border-left-color: #d97706;
    }
    .brtm-chat-page .brtm-pin-icon {
      font-size: 12px; color: #f59e0b; flex-shrink: 0;
    }

    /*  SLA timer  */
    /* icon jam jadi trigger  tooltip dihandle JS */
    .brtm-chat-page .brtm-avatar-status.brtm-sla-trigger {
      cursor: default;
    }
    /* sla-chip class kept for potential future use but hidden */
    .brtm-chat-page .brtm-sla-chip { display: none; }

    /*  Tags overflow  */
    .brtm-chat-page .brtm-tags-row {
      display: flex; align-items: center; gap: 4px;
      flex-wrap: nowrap; min-width: 0;
    }
    .brtm-chat-page .brtm-tag-more {
      font-size: 10px; font-weight: 600; color: #8a9ab0;
      background: #f1f5f9; border-radius: 20px;
      padding: 2px 7px; white-space: nowrap; flex-shrink: 0;
      cursor: pointer;
    }
    /* JS-powered tag tooltip popup */
    .brtm-tag-popup {
      position: fixed;
      background: white;
      border: 1px solid #e3e8ef;
      border-radius: 10px;
      box-shadow: 0 8px 24px rgba(0,0,0,.13);
      padding: 8px 10px;
      z-index: 99999;
      pointer-events: none;
      opacity: 0;
      transition: opacity .12s;
      min-width: 130px;
    }
    .brtm-tag-popup.brtm-visible { opacity: 1; }
    .brtm-tag-popup-label {
      font-size: 10px; font-weight: 700; color: #a0aab8;
      text-transform: uppercase; letter-spacing: .5px;
      margin-bottom: 6px;
      display: flex; align-items: center; gap: 4px;
    }
    .brtm-tag-popup-chips {
      display: flex; flex-direction: column; gap: 4px;
    }
    /* SLA JS tooltip */
    .brtm-sla-tooltip {
      position: fixed;
      background: #1e293b;
      color: #fff;
      font-size: 11px;
      font-weight: 600;
      padding: 4px 10px;
      border-radius: 7px;
      white-space: nowrap;
      pointer-events: none;
      opacity: 0;
      transition: opacity .12s;
      z-index: 99999;
      box-shadow: 0 4px 10px rgba(0,0,0,.2);
      font-family: var(--brtm-font-ui);
    }
    .brtm-sla-tooltip.brtm-visible { opacity: 1; }
    .brtm-sla-tooltip.brtm-sla-ok     { background: #15803d; }
    .brtm-sla-tooltip.brtm-sla-warn   { background: #b45309; }
    .brtm-sla-tooltip.brtm-sla-breach { background: #b91c1c; }

    /*  Message type previews  */
    .brtm-chat-page .brtm-msg-type-icon {
      font-size: 12px; margin-right: 3px; flex-shrink: 0;
    }
    .brtm-chat-page .brtm-msg-type-icon.brtm-type-img { color: #0ea5e9; }
    .brtm-chat-page .brtm-msg-type-icon.brtm-type-file { color: #6366f1; }
    .brtm-chat-page .brtm-msg-type-icon.brtm-type-voice { color: #10b981; }
    .brtm-chat-page .brtm-msg-type-icon.brtm-type-video { color: #f59e0b; }
    .brtm-chat-page .brtm-msg-type-icon.brtm-type-loc { color: #ef4444; }

    /*  Section label with scenario note  */
    .brtm-chat-page .brtm-scenario-label { display: none; }
    .brtm-chat-page .brtm-scenario-label::before { display: none; }

    /*  MORE MENU  */
    /*  13g  Menus, Modals & Extras  */
    .brtm-chat-page .brtm-more-menu {
      position: absolute;
      top: calc(100% + 6px);
      right: 0;
      background: white;
      border: 1px solid #e3e8ef;
      border-radius: 10px;
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
      min-width: 180px;
      z-index: 200;
      padding: 4px 0;
      display: none;
    }
    .brtm-chat-page .brtm-more-menu.brtm-open { display: block; }
    .brtm-chat-page .brtm-more-menu-floating {
      position: absolute;
      top: calc(100% + 6px);
      right: 0;
      background: #fff;
      border: 1px solid #e3e8ef;
      border-radius: 10px;
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
      min-width: 180px;
      z-index: 200;
      padding: 4px 0;
    }
    .brtm-chat-page .brtm-more-menu-item {
      display: flex; align-items: center; gap: 9px;
      width: 100%; padding: 9px 16px;
      background: none; border: none;
      font-size: 12.5px; font-family: var(--brtm-font-ui);
      color: #1a2234; cursor: pointer; text-align: left;
      transition: background .12s;
    }
    .brtm-chat-page .brtm-more-menu-item:hover { background: #f4f7fd; }
    .brtm-chat-page .brtm-more-menu-item i { font-size: 16px; color: #8a9ab0; }
    .brtm-chat-page .brtm-more-menu-item.brtm-danger { color: #e53935; }
    .brtm-chat-page .brtm-more-menu-item.brtm-danger i { color: #e53935; }
    .brtm-chat-page .brtm-more-menu-item.brtm-danger:hover { background: #fff5f5; }
    .brtm-chat-page .brtm-more-menu-divider { height: 1px; background: #f0f3f8; margin: 4px 0; }

    /*  FILTER DROPDOWN  */
    .brtm-chat-page .brtm-filter-dropdown {
      position: absolute;
      top: calc(100% + 6px);
      right: 0;
      background: white;
      border: 1px solid #e3e8ef;
      border-radius: 10px;
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
      min-width: 220px;
      z-index: 200;
      padding: 12px 0 6px;
      display: none;
    }
    .brtm-chat-page .brtm-filter-dropdown.brtm-open { display: block; }
    .brtm-chat-page .brtm-filter-dropdown-title {
      font-size: 10.5px; font-weight: 700; color: #8a9ab0;
      text-transform: uppercase; letter-spacing: .6px;
      padding: 2px 14px 6px;
    }
    .brtm-chat-page .brtm-filter-option {
      display: flex; align-items: center; gap: 8px;
      padding: 7px 14px;
      font-size: 12.5px; color: #1a2234; cursor: pointer;
      transition: background .1s;
    }
    .brtm-chat-page .brtm-filter-option:hover { background: #f4f7fd; }
    .brtm-chat-page .brtm-filter-option input[type=checkbox] { accent-color: var(--primary); width: 14px; height: 14px; }
    .brtm-chat-page .brtm-filter-divider { height: 1px; background: #f0f3f8; margin: 6px 0; }
    .brtm-chat-page .brtm-filter-actions {
      display: flex; gap: 8px;
      padding: 8px 12px 4px;
    }
    .brtm-chat-page .brtm-filter-reset {
      flex: 1; padding: 6px; border-radius: 7px;
      border: 1px solid #e3e8ef; background: white;
      font-size: 12px; font-family: var(--brtm-font-ui);
      color: #555; cursor: pointer;
    }
    .brtm-chat-page .brtm-filter-reset:hover { background: #f4f7fd; }
    .brtm-chat-page .brtm-filter-apply {
      flex: 1; padding: 6px; border-radius: 7px;
      border: none; background: var(--primary);
      font-size: 12px; font-family: var(--brtm-font-ui);
      color: white; cursor: pointer; font-weight: 600;
    }
    .brtm-chat-page .brtm-filter-apply:hover { background: var(--primary-dark); }
    .brtm-chat-page .brtm-status-tabs { position: relative; }

    /*  EMOJI PICKER  */
    .brtm-chat-page .brtm-emoji-picker {
      position: absolute;
      bottom: calc(100% + 8px);
      left: 0;
      right: auto;
      transform: none;
      background: #fff;
      border: 1px solid #e3e8ef;
      border-radius: 14px;
      box-shadow: 0 10px 32px rgba(0,0,0,.14), 0 2px 6px rgba(0,0,0,.06);
      padding: 0;
      width: 340px;
      max-width: calc(100vw - 40px);
      z-index: 1050;
      display: none;
      overflow: hidden;
    }
    .brtm-chat-page .brtm-emoji-picker.brtm-open { display: block; }
    .brtm-chat-page .brtm-emoji-picker .v3-emoji-picker {
      width: 100% !important;
    }

    /* ── vue3-emoji-picker override (visual only — don't fight library's size/display) ── */
    .brtm-chat-page .brtm-emoji-picker .v3-emoji-picker {
      box-shadow: none !important;
      border: none !important;
      border-radius: 14px !important;
    }
    /* Top category tabs */
    .brtm-chat-page .brtm-emoji-picker .v3-header {
      padding: 8px 10px !important;
      border-bottom: 1px solid #f1f5f9 !important;
      background: #fff !important;
    }
    .brtm-chat-page .brtm-emoji-picker .v3-header .v3-group-icon {
      width: 30px !important; height: 30px !important;
      border-radius: 8px !important;
      color: #8a9ab0 !important;
      transition: background .12s, color .12s;
    }
    .brtm-chat-page .brtm-emoji-picker .v3-header .v3-group-icon:hover {
      background: #f1f5f9 !important;
      color: #1B6FBE !important;
    }
    .brtm-chat-page .brtm-emoji-picker .v3-header .v3-group-icon.v3-is-active {
      background: #eef4ff !important;
      color: #1B6FBE !important;
    }
    /* Search bar */
    .brtm-chat-page .brtm-emoji-picker .v3-body-search {
      padding: 10px 12px !important;
      border-bottom: 1px solid #f1f5f9 !important;
    }
    .brtm-chat-page .brtm-emoji-picker .v3-body-search .v3-search,
    .brtm-chat-page .brtm-emoji-picker .v3-body-search input {
      padding: 8px 12px !important;
      border: 1.5px solid #e3e8ef !important;
      border-radius: 20px !important;
      font-size: 13px !important;
      font-family: inherit !important;
      color: #1a2234 !important;
      background: #f7f9fc !important;
      outline: none !important;
      width: 100% !important;
      transition: border-color .15s, background .15s;
    }
    .brtm-chat-page .brtm-emoji-picker .v3-body-search input:focus {
      border-color: #1B6FBE !important;
      background: #fff !important;
    }
    /* Group sections */
    .brtm-chat-page .brtm-emoji-picker .v3-body,
    .brtm-chat-page .brtm-emoji-picker .v3-emojis {
      padding: 4px 8px 10px !important;
      max-height: 280px !important;
    }
    .brtm-chat-page .brtm-emoji-picker .v3-group-name,
    .brtm-chat-page .brtm-emoji-picker .v3-text {
      font-size: 11px !important; font-weight: 700 !important;
      color: #8a9ab0 !important;
      text-transform: uppercase !important;
      letter-spacing: .5px !important;
      padding: 8px 4px 6px !important;
      background: #fff !important;
    }
    /* Emoji button */
    .brtm-chat-page .brtm-emoji-picker .v3-emoji {
      width: 34px !important; height: 34px !important;
      border-radius: 8px !important;
      font-size: 22px !important;
      cursor: pointer !important;
      transition: background .12s, transform .12s;
      display: flex !important; align-items: center !important; justify-content: center !important;
    }
    .brtm-chat-page .brtm-emoji-picker .v3-emoji:hover {
      background: #eef4ff !important;
      transform: scale(1.18);
    }
    /* Scrollbar */
    .brtm-chat-page .brtm-emoji-picker .v3-body::-webkit-scrollbar,
    .brtm-chat-page .brtm-emoji-picker .v3-emojis::-webkit-scrollbar { width: 4px !important; }
    .brtm-chat-page .brtm-emoji-picker .v3-body::-webkit-scrollbar-thumb,
    .brtm-chat-page .brtm-emoji-picker .v3-emojis::-webkit-scrollbar-thumb { background: #d0d8e8 !important; border-radius: 4px !important; }
    /* Footer (preview + skin tone) — hide untuk lebih clean */
    .brtm-chat-page .brtm-emoji-picker .v3-footer {
      display: none !important;
    }
    .brtm-chat-page .brtm-emoji-grid {
      display: grid;
      grid-template-columns: repeat(8, 1fr);
      gap: 2px;
    }
    .brtm-chat-page .brtm-emoji-btn {
      font-size: 22px; padding: 4px;
      background: none; border: none;
      cursor: pointer; border-radius: 6px;
      transition: background .1s;
      line-height: 1;
    }
    .brtm-chat-page .brtm-emoji-btn:hover { background: #f0f4ff; }

    /*  TEMPLATE PANEL  */
    /*  ATTACH + DROPDOWN  */
    .brtm-chat-page .brtm-attach-dropdown-wrap {
      position: relative;
      display: flex;
      align-items: center;
    }
    .brtm-chat-page .brtm-attach-dropdown {
      position: absolute;
      bottom: calc(100% + 8px);
      left: 0;
      background: white;
      border: 1px solid #e3e8ef;
      border-radius: 10px;
      box-shadow: 0 8px 32px rgba(0,0,0,.13), 0 2px 8px rgba(0,0,0,.07);
      min-width: 180px;
      z-index: 200;
      padding: 4px;
      display: none;
      font-family: var(--brtm-font-ui);
      animation: ctxFadeIn .12s ease;
    }
    .brtm-chat-page .brtm-attach-dropdown.brtm-open { display: block; }
    .brtm-chat-page .brtm-attach-dd-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 5px 8px;
      font-size: 12px;
      font-weight: 500;
      color: #1a2234;
      cursor: pointer;
      border-radius: 8px;
      transition: background .12s;
      white-space: nowrap;
    }
    .brtm-chat-page .brtm-attach-dd-item:hover { background: #f5f7ff; }
    .brtm-chat-page .brtm-attach-dd-icon {
      width: 26px; height: 26px; border-radius: 7px;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; font-size: 12px;
    }
    .brtm-chat-page .brtm-attach-dd-item i { font-size: 12px; }
    .brtm-chat-page .brtm-attach-dd-divider {
      height: 1px; background: #f0f3f8; margin: 3px 2px;
    }

    .brtm-chat-page .brtm-template-panel, .brtm-chat-page .brtm-quick-reply-panel {
      position: absolute;
      bottom: calc(100% + 8px);
      right: 0;
      background: white;
      border: 1px solid #e3e8ef;
      border-radius: 12px;
      box-shadow: 0 8px 24px rgba(0,0,0,.13);
      width: 280px;
      z-index: 200;
      display: none;
    }
    .brtm-chat-page .brtm-template-panel.brtm-open, .brtm-chat-page .brtm-quick-reply-panel.brtm-open { display: block; }
    .brtm-chat-page .brtm-template-header {
      font-size: 12px; font-weight: 700; color: #8a9ab0;
      text-transform: uppercase; letter-spacing: .5px;
      padding: 10px 14px 6px;
      border-bottom: 1px solid #f0f3f8;
    }
    .brtm-chat-page .brtm-template-search { padding: 8px 10px; }
    .brtm-chat-page .brtm-template-search input {
      width: 100%; border: 1.5px solid #e3e8ef; border-radius: 7px;
      padding: 6px 10px; font-size: 12.5px;
      font-family: var(--brtm-font-ui); outline: none;
    }
    .brtm-chat-page .brtm-template-search input:focus { border-color: var(--primary); }
    .brtm-chat-page .brtm-template-list { max-height: 220px; overflow-y: auto; padding-bottom: 6px; }
    .brtm-chat-page .brtm-template-item {
      padding: 10px 14px; cursor: pointer;
      border-bottom: 1px solid #f8fafc;
      transition: background .1s;
    }
    .brtm-chat-page .brtm-template-item:hover { background: #f4f7fd; }
    .brtm-chat-page .brtm-template-name { font-size: 13px; font-weight: 600; color: #1a2234; }
    .brtm-chat-page .brtm-template-preview { font-size: 11px; color: #8a9ab0; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .brtm-chat-page .brtm-template-list::-webkit-scrollbar { width: 3px; }
    .brtm-chat-page .brtm-template-list::-webkit-scrollbar-thumb { background: #d0d8e8; border-radius: 3px; }

    /*  TAG PICKER  */
    .brtm-chat-page .brtm-tag-picker {
      position: absolute;
      top: calc(100% + 6px);
      left: 24px;
      background: white;
      border: 1px solid #e3e8ef;
      border-radius: 10px;
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
      min-width: 200px;
      z-index: 200;
      padding: 6px 0;
      display: none;
    }
    .brtm-chat-page .brtm-tag-picker.brtm-open { display: block; }
    .brtm-chat-page .brtm-tag-picker-input {
      display: block; width: calc(100% - 16px);
      margin: 0 8px 6px;
      border: 1.5px solid #e3e8ef; border-radius: 7px;
      padding: 6px 10px; font-size: 12.5px;
      font-family: var(--brtm-font-ui); outline: none;
    }
    .brtm-chat-page .brtm-tag-picker-input:focus { border-color: var(--primary); }
    .brtm-chat-page .brtm-tag-picker-item {
      padding: 7px 12px; cursor: pointer;
      transition: background .1s;
    }
    .brtm-chat-page .brtm-tag-picker-item:hover { background: #f4f7fd; }
    .brtm-chat-page .brtm-tag-picker-create { padding: 4px 8px 6px; }
    .brtm-chat-page .brtm-tag-picker-create button {
      display: flex; align-items: center; gap: 5px;
      background: none; border: none;
      color: var(--primary); font-size: 12.5px;
      font-family: var(--brtm-font-ui); cursor: pointer;
      padding: 4px 4px;
    }

    /*  CHAT SEARCH BAR  */
    .brtm-chat-page .brtm-chat-search-bar {
      position: fixed;
      top: 0; left: var(--sidebar-width);
      right: 0;
      background: white;
      border-bottom: 1px solid var(--border);
      padding: 10px 20px;
      display: flex; align-items: center; gap: 10px;
      z-index: 150;
      box-shadow: 0 2px 12px rgba(0,0,0,.08);
    }
    .brtm-chat-page .brtm-chat-search-bar i { color: #8a9ab0; font-size: 18px; }
    .brtm-chat-page .brtm-chat-search-bar input {
      flex: 1; border: none; outline: none;
      font-size: 14px; font-family: var(--brtm-font-ui); color: #1a2234;
    }
    .brtm-chat-page .brtm-chat-search-bar button {
      background: none; border: none; color: #8a9ab0;
      font-size: 20px; cursor: pointer; display: flex; align-items: center;
    }
    .brtm-chat-page .brtm-chat-search-bar button:hover { color: var(--primary); }

    /*  MODAL  */
    .brtm-chat-page .brtm-modal-backdrop {
      position: fixed; inset: 0;
      z-index: 100;
      display: none;
    }
    .brtm-chat-page .brtm-modal-backdrop.brtm-active { display: block; }
    .brtm-chat-page .brtm-modal-overlay {
      position: fixed; inset: 0;
      background: rgba(15,23,42,.4);
      backdrop-filter: blur(2px);
      z-index: 300;
      display: flex; align-items: center; justify-content: center;
      padding: 20px;
    }
    .brtm-chat-page .brtm-modal-box {
      background: white;
      border-radius: 16px;
      width: 100%; max-width: 480px;
      box-shadow: 0 24px 64px rgba(0,0,0,.2);
      overflow: hidden;
      animation: modalIn .18s ease;
    }
    .brtm-chat-page .brtm-modal-box--sm { max-width: 380px; }
    @keyframes modalIn {
      from { transform: scale(.95); opacity: 0; }
      to   { transform: scale(1);   opacity: 1; }
    }
    .brtm-chat-page .brtm-modal-header {
      display: flex; align-items: center; justify-content: space-between;
      padding: 16px 20px 12px;
      border-bottom: 1px solid var(--border);
    }
    .brtm-chat-page .brtm-modal-title { font-size: 15px; font-weight: 700; color: #1a2234; }
    .brtm-chat-page .brtm-modal-close {
      width: 28px; height: 28px; border-radius: 7px;
      border: none; background: none; color: #8a9ab0;
      font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center;
    }
    .brtm-chat-page .brtm-modal-close:hover { background: #f0f4ff; color: var(--primary); }
    .brtm-chat-page .brtm-modal-body { padding: 18px 20px; background: white; display: block; min-height: unset; }
    .brtm-chat-page .brtm-modal-field { margin-bottom: 14px; }
    .brtm-chat-page .brtm-modal-field label { display: block; font-size: 12px; font-weight: 600; color: #4a5568; margin-bottom: 6px; }
    .brtm-chat-page .brtm-modal-input {
      width: 100%; border: 1.5px solid #e3e8ef; border-radius: 8px;
      padding: 9px 12px; font-size: 13.5px;
      font-family: var(--brtm-font-ui); outline: none; color: #1a2234;
    }
    .brtm-chat-page .brtm-modal-input:focus { border-color: var(--primary); }
    .brtm-chat-page .brtm-modal-select {
      width: 100%; border: 1.5px solid #e3e8ef; border-radius: 8px;
      padding: 9px 12px; font-size: 13.5px;
      font-family: var(--brtm-font-ui); outline: none; color: #1a2234;
      background: white; cursor: pointer;
    }
    .brtm-chat-page .brtm-modal-select:focus { border-color: var(--primary); }
    .brtm-chat-page .brtm-modal-textarea {
      width: 100%; border: 1.5px solid #e3e8ef; border-radius: 8px;
      padding: 9px 12px; font-size: 13.5px;
      font-family: var(--brtm-font-ui); outline: none; color: #1a2234;
      resize: none; min-height: 80px;
    }
    .brtm-chat-page .brtm-modal-textarea:focus { border-color: var(--primary); }
    .brtm-chat-page .brtm-modal-contact-results {
      margin-top: 6px; border: 1px solid #e3e8ef;
      border-radius: 8px; overflow: hidden;
    }
    .brtm-chat-page .brtm-modal-contact-item {
      display: flex; align-items: center; gap: 10px;
      padding: 9px 12px; cursor: pointer;
      transition: background .1s;
    }
    .brtm-chat-page .brtm-modal-contact-item:hover { background: #f4f7fd; }
    .brtm-chat-page .brtm-modal-contact-avatar {
      width: 34px; height: 34px; border-radius: 50%;
      background: linear-gradient(135deg, #2284C6, #42a5f5);
      color: white; font-size: 12px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .brtm-chat-page .brtm-modal-contact-name { font-size: 13px; font-weight: 600; color: #1a2234; }
    .brtm-chat-page .brtm-modal-contact-sub { font-size: 11.5px; color: #8a9ab0; }
    .brtm-chat-page .brtm-modal-footer {
      padding: 12px 20px 16px;
      border-top: 1px solid var(--border);
      display: flex; justify-content: flex-end; gap: 8px;
    }
    .brtm-chat-page .brtm-modal-btn-cancel {
      padding: 8px 18px; border-radius: 8px;
      border: 1px solid #e3e8ef; background: white;
      font-size: 13px; font-weight: 600; font-family: var(--brtm-font-ui);
      color: #555; cursor: pointer;
    }
    .brtm-chat-page .brtm-modal-btn-cancel:hover { background: #f4f7fd; }
    .brtm-chat-page .brtm-modal-btn-primary {
      padding: 8px 18px; border-radius: 8px;
      border: none; background: var(--primary);
      font-size: 13px; font-weight: 600; font-family: var(--brtm-font-ui);
      color: white; cursor: pointer;
      display: flex; align-items: center; gap: 6px;
    }
    .brtm-chat-page .brtm-modal-btn-primary:hover { background: var(--primary-dark); }

    /*  ASSIGN LIST  */
    .brtm-chat-page .brtm-assign-list { margin-top: 10px; max-height: 240px; overflow-y: auto; }
    .brtm-chat-page .brtm-assign-item {
      display: flex; align-items: center; gap: 10px;
      padding: 9px 8px; border-radius: 8px;
      cursor: pointer; transition: background .1s;
    }
    .brtm-chat-page .brtm-assign-item:hover { background: #f4f7fd; }
    .brtm-chat-page .brtm-assign-avatar {
      width: 34px; height: 34px; border-radius: 50%;
      color: white; font-size: 11px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .brtm-chat-page .brtm-assign-name { font-size: 13px; font-weight: 600; color: #1a2234; }
    .brtm-chat-page .brtm-assign-sub { font-size: 11.5px; color: #8a9ab0; }
    .brtm-chat-page .brtm-assign-check { margin-left: auto; color: var(--primary); font-size: 18px; display: none; }
    .brtm-chat-page .brtm-assign-item.brtm-selected .brtm-assign-check { display: block; }
    .brtm-chat-page .brtm-assign-item.brtm-selected { background: #eef6ff; }

    /*  PAGE OVERLAY  */
    .brtm-chat-page .brtm-page-overlay {
      position: fixed;
      inset: 0;
      background: #f4f6fb;
      z-index: 50;
      display: flex; align-items: center; justify-content: center;
    }
    .brtm-chat-page .brtm-page-overlay-content {
      text-align: center;
      display: flex; flex-direction: column; align-items: center; gap: 12px;
    }
    .brtm-chat-page .brtm-page-overlay-icon { font-size: 56px; color: var(--primary); }
    .brtm-chat-page .brtm-page-overlay-title { font-size: 22px; font-weight: 700; color: #1a2234; }
    .brtm-chat-page .brtm-page-overlay-sub { font-size: 14px; color: #8a9ab0; }
    .brtm-chat-page .brtm-page-overlay-back {
      margin-top: 8px;
      padding: 9px 22px; border-radius: 10px;
      border: none; background: var(--primary);
      color: white; font-size: 13.5px; font-weight: 600;
      font-family: var(--brtm-font-ui); cursor: pointer;
      display: flex; align-items: center; gap: 7px;
      transition: background .15s;
    }
    .brtm-chat-page .brtm-page-overlay-back:hover { background: var(--primary-dark); }

    /*  TOAST  */
    .brtm-chat-page .brtm-toast {
      position: fixed;
      bottom: 24px; left: 50%;
      transform: translateX(-50%) translateY(20px);
      background: #1a2234; color: white;
      font-size: 13.5px; font-family: var(--brtm-font-ui);
      padding: 10px 20px; border-radius: 30px;
      box-shadow: 0 4px 20px rgba(0,0,0,.2);
      z-index: 500;
      opacity: 0; pointer-events: none;
      transition: opacity .2s, transform .2s;
      white-space: nowrap;
    }
    .brtm-chat-page .brtm-toast.brtm-show {
      opacity: 1; transform: translateX(-50%) translateY(0);
    }
    .brtm-chat-page .brtm-toast.brtm-success { background: #2e7d32; }
    .brtm-chat-page .brtm-toast.brtm-error   { background: #c62828; }

    /*  UPGRADE FEATURES  */
    .brtm-chat-page .brtm-upgrade-features {
      margin-top: 16px;
      display: flex; flex-direction: column; gap: 8px;
      text-align: left;
    }
    .brtm-chat-page .brtm-upgrade-feat {
      display: flex; align-items: center; gap: 8px;
      font-size: 13px; color: #1a2234;
    }

/* 
   14  CHAT SAAS UX REVISION  PHASES 28 (overrides earlier rules)
   --------------------------------------------------------------------------
   14a  Phase 2  Chat list item: SLA edge bar + condensed layout
   14b  Phase 3  Color tokens: calm palette, single severity source
   14c  Phase 4  Segmented tab bar with counts
   14d  Phase 5  Conversation header regrouping (ghost-icon secondaries)
   14e  Phase 6  Customer panel hero + quick-stats + smart collapse
   14f  Phase 7  WA-style bubble palette + max-width caps
   14g  Phase 8  Compact mode toggle (body.brtm-compact)
    */

/*  14a  Phase 2  Chat list item  */
.brtm-chat-page .brtm-chat-item {
  position: relative;
  padding: 10px 14px 10px 16px;
  border-bottom: 1px solid var(--br-1);
  transition: background .12s;
}
.brtm-chat-page .brtm-chat-item:hover  { background: var(--bg-hover); }
.brtm-chat-page .brtm-chat-item.brtm-active,
.brtm-chat-page .brtm-chat-item.brtm-selected { background: var(--bg-active); }

/* Severity / pin encoded as left edge bar (single source of truth) */
.brtm-chat-page .brtm-chat-item::before {
  content: none;
}

/* Avatar  flatter, calmer, smaller monogram */
.brtm-chat-page .brtm-chat-item .brtm-avatar {
  width: 36px; height: 36px;
  background: var(--brand-50); color: var(--brand);
  font-size: var(--fs-sm); font-weight: var(--fw-bold);
}

/* Calmer SLA dot inside avatar (color carried by left bar; here just an indicator) */
.brtm-chat-page .brtm-avatar-status {
  width: 13px; height: 13px;
  background: #fff; border: 1.5px solid var(--br-2);
}
.brtm-chat-page .brtm-avatar-status i { font-size: 9px; color: var(--tx-3); }

/* Meta row  keep it single-line, ellipsis-able */
.brtm-chat-page .brtm-chat-meta {
  margin-top: 5px; flex-wrap: nowrap; gap: 8px;
  white-space: nowrap; overflow: hidden;
}
.brtm-chat-page .brtm-chat-meta > * { flex-shrink: 0; }
.brtm-chat-page .brtm-chat-meta .brtm-tags-row { flex: 1 1 auto; min-width: 0; }
.brtm-chat-page .brtm-meta-left { display: flex; align-items: center; gap: 6px; flex: 1 1 auto; min-width: 0; overflow: hidden; }
.brtm-chat-page .brtm-meta-chip--truncate { min-width: 0; overflow: hidden; flex-shrink: 1; }
.brtm-chat-page .brtm-meta-chip--truncate > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.brtm-chat-page .brtm-meta-chip--owner { flex-shrink: 1; min-width: 0; overflow: hidden; }
.brtm-chat-page .brtm-meta-chip--owner > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }

/* Unread badge  pill, brand color, tabular */
.brtm-chat-page .brtm-unread-badge {
  min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: var(--brand); color: #fff;
  font-size: 10.5px; font-weight: var(--fw-bold);
  display: inline-flex; align-items: center; justify-content: center;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 1px 2px rgba(34,132,198,.25);
}
.brtm-chat-page .brtm-unread-dot {
  width: 9px; height: 9px; border-radius: 50%; background: var(--brand);
  display: inline-block;
}

/*  Info popover (body-level, not clipped)  */
#brtmTipPopover {
  position: fixed;
  z-index: 9999;
  max-width: 220px;
  background: #1a2234;
  color: #fff;
  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.55;
  padding: 9px 12px;
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0,0,0,.22);
  pointer-events: auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity .15s, visibility .15s;
  font-family: var(--brtm-font-ui);
}
#brtmTipPopover.brtm-tip-show {
  opacity: 1; visibility: visible;
}
#brtmTipPopover::before {
  content: '';
  position: absolute;
  border: 6px solid transparent;
}
#brtmTipPopover.brtm-tip-above::before {
  top: 100%; left: var(--arrow-x, 50%);
  transform: translateX(-50%);
  border-top-color: #1a2234;
}
#brtmTipPopover.brtm-tip-below::before {
  bottom: 100%; left: var(--arrow-x, 50%);
  transform: translateX(-50%);
  border-bottom-color: #1a2234;
}

/*  14b  Phase 3  Color rollout  */
.brtm-chat-page { background: var(--bg-app); }
.brtm-chat-page .brtm-chat-panel { background: var(--bg-card); border-right: 1px solid var(--br-1); }
.brtm-chat-page .brtm-main-area  { background: var(--bg-app); }
.brtm-chat-page .brtm-chat-panel-header { border-bottom: 1px solid var(--br-1); }
.brtm-chat-page .brtm-chat-panel-header h2,
.brtm-chat-page #panelTitle { font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--tx-1); letter-spacing: -0.01em; }

/* Tag pills  softer, tighter */
.brtm-chat-page .brtm-tag {
  font-size: var(--fs-xs); font-weight: var(--fw-med);
  padding: 2px 8px; border-radius: 10px; line-height: 1.5;
  letter-spacing: .01em;
}
.brtm-chat-page .brtm-tag-green   { background: #e8f6ee; color: #166534; }
.brtm-chat-page .brtm-tag-blue    { background: #e7f1fb; color: #1554a6; }
.brtm-chat-page .brtm-tag-red     { background: #fde9e7; color: #b91c1c; }
.brtm-chat-page .brtm-tag-orange  { background: #fef0e3; color: #b34507; }
.brtm-chat-page .brtm-tag-purple  { background: #f1ecfe; color: #6024c5; }

/* Soften the colored clock icons inside avatar status  bar is the truth */
.brtm-chat-page .brtm-avatar-status .bi-clock { color: var(--tx-3) !important; }
.brtm-chat-page .brtm-avatar-status[data-sla-type="breach"] .bi-clock { color: var(--sev-crit) !important; }
.brtm-chat-page .brtm-avatar-status[data-sla-type="warn"] .bi-clock   { color: var(--sev-warn) !important; }
.brtm-chat-page .brtm-avatar-status[data-sla-type="ok"] .bi-clock     { color: var(--sev-ok)   !important; }

/*  14c  Phase 4  Icon-tab filter row (equal-width, no scroll) 
   Pattern: icon + count chips, all tabs share the bar evenly via flex 1.
   No labels (tooltips on hover via title="..."), so all 4 always fit. */
.brtm-chat-page .brtm-status-tabs {
  position: relative;
  display: flex; align-items: center;
  padding: 0 12px 10px;
  background: transparent; border-radius: 0;
  gap: 6px;
  overflow: hidden;
}

.brtm-chat-page .brtm-tab-btn {
  flex: 1 1 0; min-width: 0;
  padding: 0 6px;
  border: 1px solid var(--br-2); background: #fff;
  font-size: var(--fs-sm); font-weight: var(--fw-med); color: var(--tx-2);
  border-radius: 16px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  column-gap: 5px;
  white-space: nowrap;
  transition: background .12s, color .12s, border-color .12s, box-shadow .12s;
  font-family: var(--brtm-font-ui);
  letter-spacing: -0.005em;
  line-height: 1;
  height: 30px;
}
.brtm-chat-page .brtm-tab-btn:hover:not(.brtm-active) {
  background: var(--bg-hover); color: var(--tx-1); border-color: var(--br-strong);
}
.brtm-chat-page .brtm-tab-btn.brtm-active {
  background: var(--brand); color: #fff; border-color: var(--brand);
  box-shadow: 0 1px 3px rgba(34,132,198,.25);
}

/* Icon  colored per status; white on active */
.brtm-chat-page .brtm-tab-icon {
  font-size: 14px; line-height: 1; flex-shrink: 0;
}
.brtm-chat-page .brtm-tab-btn[data-status="open"]     .brtm-tab-icon { color: #16a34a; }
.brtm-chat-page .brtm-tab-btn[data-status="pending"]  .brtm-tab-icon { color: #d97706; }
.brtm-chat-page .brtm-tab-btn[data-status="progress"] .brtm-tab-icon { color: #2284C6; }
.brtm-chat-page .brtm-tab-btn[data-status="done"]     .brtm-tab-icon { color: #16a34a; }
.brtm-chat-page .brtm-tab-btn.brtm-active .brtm-tab-icon { color: #fff; }

/* Label  never ellipsized. It has exactly two states: fully rendered, or
   hidden. Which one applies is decided by the three-step container query
   further down. Ellipsis produced unreadable stubs ("Pen...", "Inpr...") at
   the default 320px panel width, so shrinking is disabled outright. */
.brtm-chat-page .brtm-tab-label { overflow: visible; text-overflow: clip; flex-shrink: 0; }

/* Count badge */
.brtm-chat-page .brtm-tab-count {
  flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 16px;
  padding: 0 5px; border-radius: 8px;
  font-size: 10.5px; font-weight: var(--fw-bold);
  background: rgba(15,23,42,.08); color: var(--tx-2);
  font-variant-numeric: tabular-nums;
  line-height: 1; letter-spacing: 0;
}
.brtm-chat-page .brtm-tab-btn.brtm-active .brtm-tab-count {
  background: rgba(255,255,255,.22); color: #fff;
}

/* Container query  react to the chat panel's own width, not the viewport.
   The panel is a fixed-width column (resizable), so a viewport @media
   would never fire. When the panel itself is wide enough, all labels
   become visible (segmented-row behavior); otherwise the icon-only
   compact mode stays active. */
.brtm-chat-page .brtm-chat-panel { container-type: inline-size; container-name: chatpanel; }

/* Every chip sizes to its own content (flex-basis auto) and shares the
   leftover space equally (flex-grow 1). Growing only ever adds space, so no
   label can be squeezed; flex-shrink 0 rules out the reverse. Giving the
   grow factor to the active chip alone made it swallow the whole row while
   the others collapsed, which is why all four carry it. */
.brtm-chat-page .brtm-tab-btn   { flex: 1 0 auto; }
.brtm-chat-page .brtm-tab-label { display: none; }

/* Step 2 (315px and up)  the active chip shows its label. This is the
   default state, since the panel starts at 320px. */
@container chatpanel (min-width: 315px) {
  .brtm-chat-page .brtm-tab-btn.brtm-active .brtm-tab-label { display: inline; }
}

/* Step 3 (345px and up)  every chip shows its label. 345px is the measured
   width of all four Indonesian labels (341px) plus a small margin. The chips
   carry no count badge, only an icon and a label, so this fits far sooner
   than a panel would need for a badge row. */
@container chatpanel (min-width: 345px) {
  .brtm-chat-page .brtm-tab-label { display: inline; }
}

/* Roomier chip padding, but only once there is width to spare for it.
   Raising the padding costs ~32px across the row, so it must not kick in at
   the same breakpoint that first fits the four labels. */
@container chatpanel (min-width: 400px) {
  .brtm-chat-page .brtm-tab-btn { padding: 0 10px; column-gap: 6px; }
}

/* Compact-mode adjustments */
body.brtm-compact .brtm-status-tabs   { padding: 0 10px 8px !important; gap: 5px !important; }
body.brtm-compact .brtm-tab-btn       { height: 26px !important; padding: 0 5px !important; }
body.brtm-compact .brtm-tab-icon      { font-size: 12.5px !important; }
body.brtm-compact .brtm-tab-count     { height: 14px !important; font-size: 10px !important; min-width: 16px !important; padding: 0 4px !important; }

/* Persistent search input  quieter chrome */
.brtm-chat-page .brtm-search-box input {
  border: 1px solid var(--br-2); background: var(--bg-app);
  font-size: var(--fs-sm); color: var(--tx-1);
  height: 36px; border-radius: 8px;
}
.brtm-chat-page .brtm-search-box input:focus {
  border-color: var(--brand); background: #fff;
  box-shadow: 0 0 0 3px rgba(34,132,198,.12);
}
.brtm-chat-page .brtm-search-box input::placeholder { color: var(--tx-4); }

/*  14d  Phase 5  Conversation header  */
.brtm-chat-page .brtm-cv-header {
  padding: 10px 20px;
  border-bottom: 1px solid var(--br-1);
  background: #fff;
  gap: 14px;
}
.brtm-chat-page .brtm-cv-avatar {
  width: 38px; height: 38px;
  background: var(--brand-50); color: var(--brand);
  font-size: var(--fs-sm); font-weight: var(--fw-bold);
}
.brtm-chat-page .brtm-cv-name {
  font-size: var(--fs-md); font-weight: var(--fw-bold);
  color: var(--tx-1); letter-spacing: -0.01em;
  display: block; min-width: 0; max-width: 100%;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.brtm-chat-page .brtm-cv-sub { font-size: var(--fs-sm); color: var(--tx-2); margin-top: 1px; }

/* Secondary actions become ghost circular icons */
.brtm-chat-page .brtm-cv-action-btn {
  width: 34px; height: 34px; padding: 0; border-radius: 50%;
  border: 1px solid transparent; background: transparent;
  color: var(--tx-2); font-size: 16px;
}
.brtm-chat-page .brtm-cv-action-btn:hover {
  background: var(--bg-hover); color: var(--tx-1);
  border-color: transparent;
}
.brtm-chat-page .brtm-cv-action-btn--active,
.brtm-chat-page .brtm-cv-action-btn.brtm-cv-action-btn--active {
  background: var(--brand-50); color: var(--brand); border-color: transparent;
}
.brtm-chat-page .brtm-cv-wacall-btn:hover { background: var(--bg-hover); color: var(--brand); border-color: transparent; }

/* Resolve  primary action, larger weight */
.brtm-chat-page .brtm-cv-btn-resolve {
  height: 34px; padding: 0 16px;
  background: var(--brand); color: #fff;
  font-size: var(--fs-sm); font-weight: var(--fw-med);
  border-radius: 8px 0 0 8px; border: none;
  letter-spacing: -0.005em;
}
.brtm-chat-page .brtm-cv-btn-resolve:hover { background: #1a72b0; }
.brtm-chat-page .brtm-cv-btn-resolve-arrow {
  height: 34px; width: 28px; padding: 0;
  background: var(--brand); color: #fff;
  border: none; border-left: 1px solid rgba(255,255,255,.22);
  border-radius: 0 8px 8px 0;
}
.brtm-chat-page .brtm-cv-btn-resolve-arrow:hover { background: #1a72b0; }
/* Status DONE / RESOLVE / DONE-WAITING → tombol putih (sesi selesai, non-aktif).
   lc-status-done = class statis tombol done livechat (sebelumnya tanpa CSS → biru). */
.brtm-chat-page .brtm-cv-btn-resolve.brtm-cv-btn-resolve--done,
.brtm-chat-page .brtm-cv-btn-resolve-arrow.brtm-cv-btn-resolve--done,
.brtm-chat-page .brtm-cv-btn-resolve.lc-status-done {
  background: #fff;
  color: #1a2234;
  border: 1px solid var(--border, #e3e8ef);
}
.brtm-chat-page .brtm-cv-btn-resolve.brtm-cv-btn-resolve--done { border-right: none; }
.brtm-chat-page .brtm-cv-btn-resolve-arrow.brtm-cv-btn-resolve--done { border-left: 1px solid var(--border, #e3e8ef); }
.brtm-chat-page .brtm-cv-btn-resolve.brtm-cv-btn-resolve--done:hover,
.brtm-chat-page .brtm-cv-btn-resolve-arrow.brtm-cv-btn-resolve--done:hover,
.brtm-chat-page .brtm-cv-btn-resolve.lc-status-done:hover { background: #f7f9fc; }

/* Header conversation merapat saat kolom tengah menyempit (panel kiri tetap utuh,
   center reflow tanpa ke-clip). Pakai container-query pada .roomchat-container. */
@container cvcol (max-width: 540px) {
  .brtm-chat-page .brtm-cv-header { padding: 10px 12px; gap: 8px; }
  .brtm-chat-page .brtm-cv-header-actions { gap: 3px; }
}
@container cvcol (max-width: 440px) {
  .brtm-chat-page .brtm-cv-action-btn { width: 30px; height: 30px; font-size: 15px; }
  .brtm-chat-page .brtm-cv-btn-resolve { padding: 0 9px; }
  .brtm-chat-page .brtm-cv-btn-resolve-arrow { width: 24px; }
}
/* ─────────────────────────────────────────────────────────────────────────
   Header room: identitas kanal + agen penanggung jawab
   Port dari adesign/chat-listing-bsuid.html (prototype .hdx-*).
   Kiri  = identitas (avatar berlencana kanal, nama, nomor) — STATE.
   Kanan = agen + aksi, urutan konvensi: agen | telepon · status · ⋮ | info.
   ───────────────────────────────────────────────────────────────────────── */
/* leading dirapatkan: sumber jarak nama↔nomor itu line-height, bukan gap */
.brtm-chat-page .brtm-cv-header-info { gap: 1px; }
.brtm-chat-page .brtm-cv-name { line-height: 1.2; }
.brtm-chat-page .hdx-metarow {
  display: flex; align-items: center; flex-wrap: nowrap;
  min-width: 0; line-height: 1.3;
}
/* nomor / username — teks polos, bukan chip: tidak ada aksi di baliknya */
.brtm-chat-page .hdx-ident {
  font-size: var(--fs-sm); font-weight: var(--fw-reg); color: var(--tx-2);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0;
}
/* lencana kanal menempel di pojok kanan-bawah avatar */
.brtm-chat-page .hdx-av-badge {
  position: absolute; right: -2px; bottom: -2px;
  width: 16px; height: 16px; border-radius: 50%;
  background: #fff; border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(16, 32, 64, .18);
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; line-height: 1;
}
/* chip agen di zona aksi kanan */
.brtm-chat-page .hdx-ag-slot { position: relative; margin-right: 2px; }
.brtm-chat-page .hdx-ag-chip {
  display: inline-flex; align-items: center; gap: 6px;
  height: 32px; padding: 0 10px; border-radius: 8px;
  border: 1px solid var(--br-1); background: #fff;
  font-size: 12px; font-weight: var(--fw-med); color: var(--tx-2);
  cursor: pointer; transition: .12s; max-width: 230px; white-space: nowrap;
}
.brtm-chat-page .hdx-ag-chip:hover { background: var(--bg-hover); color: var(--tx-1); }
.brtm-chat-page .hdx-ag-chip[disabled] { opacity: .6; cursor: default; }
.brtm-chat-page .hdx-ag-chip-txt { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.brtm-chat-page .hdx-ag-chip .hdx-caret { font-size: 9px; color: #98a7ba; flex: none; }
.brtm-chat-page .hdx-ag-av {
  width: 20px; height: 20px; border-radius: 50%; flex: none;
  background: var(--brand-50); color: var(--brand);
  font-size: 9px; font-weight: var(--fw-bold);
  display: flex; align-items: center; justify-content: center;
}
/* state: belum ada agen */
.brtm-chat-page .hdx-ag-chip.is-empty {
  border-style: dashed; border-color: #f5b95c; background: #fffbf2;
  color: #b45309; font-weight: var(--fw-med);
}
.brtm-chat-page .hdx-ag-chip.is-empty:hover { background: #fff4e0; border-color: #e0912a; color: #92400e; }
.brtm-chat-page .hdx-ag-chip.is-empty .hdx-caret { color: #c98a30; }
.brtm-chat-page .hdx-ag-cta {
  font-weight: var(--fw-bold); border-left: 1px solid #f0cf9a;
  padding-left: 6px; margin-left: 1px;
}
.brtm-chat-page .hdx-warn-dot {
  width: 6px; height: 6px; border-radius: 50%; background: #f59e0b; flex: none;
}
.brtm-chat-page .hdx-ag-sep {
  width: 1px; height: 20px; background: var(--br-1);
  margin: 0 6px 0 4px; flex: none;
}
/* popover agen */
/* badge jumlah agen tambahan + sorotan saat header mengantar ke panel */
.brtm-chat-page .hdx-ag-more {
  background: var(--brand-50); color: var(--brand);
  font-size: 10px; font-weight: var(--fw-bold);
  border-radius: 99px; padding: 0 5px; line-height: 15px; flex: none;
}
.brtm-chat-page .hdx-flash {
  animation: hdxFlash 1.6s ease;
  border-radius: 8px;
}
@keyframes hdxFlash {
  0%, 100% { background: transparent; }
  25%, 60% { background: var(--brand-50); }
}
/* kolom sempit: nama agen disembunyikan, sisakan avatar + caret (nama tetap di title) */
@container cvcol (max-width: 540px) {
  .brtm-chat-page .hdx-ag-chip { max-width: none; padding: 0 7px; }
  .brtm-chat-page .hdx-ag-chip .hdx-ag-chip-txt,
  .brtm-chat-page .hdx-ag-chip .hdx-ag-cta { display: none; }
  .brtm-chat-page .hdx-ag-sep { margin: 0 4px 0 2px; }
}


/*  14e  Phase 6  Customer panel hero + quick-stats  */
.brtm-chat-page .brtm-pp-header {
  padding: 15px 16px; border-bottom: 1px solid var(--br-1);
  font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--tx-1);
  letter-spacing: -0.01em; text-transform: none;
}
.brtm-chat-page .brtm-pp-hero {
  padding: 18px 16px 14px; text-align: center;
  border-bottom: 1px solid var(--br-1);
}
.brtm-chat-page .brtm-pp-big-avatar {
  width: 64px; height: 64px; margin: 0 auto 10px;
  border-radius: 50%;
  background: var(--brand-50); color: var(--brand);
  font-size: 22px; font-weight: var(--fw-bold);
  display: flex; align-items: center; justify-content: center;
  letter-spacing: -0.02em;
}
.brtm-chat-page .brtm-pp-name {
  font-size: var(--fs-lg); font-weight: var(--fw-bold);
  color: var(--tx-1); letter-spacing: -0.015em; line-height: 1.25;
}
.brtm-chat-page .brtm-pp-channel {
  margin-top: 6px;
  font-size: var(--fs-sm); color: var(--tx-2);
  display: inline-flex; align-items: center; gap: 6px;
}

/* Quick-stats strip (added in HTML) */
.brtm-chat-page .brtm-pp-quickstats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
  padding: 12px 14px; border-bottom: 1px solid var(--br-1);
  background: var(--bg-app);
}
.brtm-chat-page .brtm-pp-qs-card {
  background: #fff; border: 1px solid var(--br-1); border-radius: 8px;
  padding: 9px 8px; text-align: center; min-width: 0;
}
.brtm-chat-page .brtm-pp-qs-val {
  font-size: var(--fs-md); font-weight: var(--fw-bold);
  color: var(--tx-1); letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}
.brtm-chat-page .brtm-pp-qs-lbl {
  font-size: 10.5px; color: var(--tx-3);
  text-transform: uppercase; letter-spacing: .04em;
  font-weight: var(--fw-med); margin-top: 2px;
}

/* Quick actions row */
.brtm-chat-page .brtm-pp-quickactions {
  display: flex; gap: 8px; padding: 10px 14px;
  border-bottom: 1px solid var(--br-1);
}
.brtm-chat-page .brtm-pp-qa-btn {
  flex: 1; height: 32px; border-radius: 8px;
  border: 1px solid var(--br-2); background: #fff;
  font-size: var(--fs-sm); font-weight: var(--fw-med); color: var(--tx-1);
  font-family: var(--brtm-font-ui); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  transition: border-color .12s, background .12s, color .12s;
}
.brtm-chat-page .brtm-pp-qa-btn:hover { background: var(--bg-hover); border-color: var(--br-strong); }
.brtm-chat-page .brtm-pp-qa-btn--primary { background: var(--brand); color: #fff; border-color: var(--brand); }
.brtm-chat-page .brtm-pp-qa-btn--primary:hover { background: #1a72b0; border-color: #1a72b0; }

/* Section titles use type tokens */
.brtm-chat-page .brtm-pp-section-title {
  font-size: 11px; font-weight: var(--fw-bold); color: var(--tx-3);
  text-transform: uppercase; letter-spacing: .06em;
}
.brtm-chat-page .brtm-pp-section-header { padding: 12px 16px 8px; cursor: pointer; }

/*  14f  Phase 7  Bubble palette (WA-feel)  */
.brtm-chat-page .brtm-cv-msg-body { max-width: min(640px, 72%); }
.brtm-chat-page .brtm-cv-bubble {
  padding: 8px 12px 6px; border-radius: 14px;
  font-size: var(--fs-base); line-height: 1.55; word-break: break-word;
}
.brtm-chat-page .brtm-cv-bubble.brtm-incoming {
  background: #ffffff; color: var(--tx-1);
  border: 1px solid var(--br-1);
  border-radius: 14px 14px 14px 4px;
  box-shadow: 0 1px 1px rgba(15,23,42,.04);
}
.brtm-chat-page .brtm-cv-bubble.brtm-incoming::before { display: none; }
.brtm-chat-page .brtm-cv-bubble.brtm-outgoing {
  background: #dbeafe; color: #0f172a;
  border-radius: 14px 14px 4px 14px;
  box-shadow: 0 1px 1px rgba(15,23,42,.06);
}
.brtm-chat-page .brtm-cv-bubble.brtm-outgoing::after { display: none; }
.brtm-chat-page .brtm-cv-bubble-meta {
  font-size: 10.5px; color: rgba(15,23,42,.45);
  margin-left: 8px; font-variant-numeric: tabular-nums;
  letter-spacing: .01em;
}
.brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-bubble-meta { color: rgba(15,23,42,.55); }
.brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-bubble-meta i { color: #2284C6; }

/* Date divider - floating pill. It is sticky over the dotted canvas, so it needs its
   own surface + elevation: a flat --bg-app fill has almost no contrast against the
   #f5f6f8 canvas and reads as bare text sitting on top of the bubbles. */
.brtm-chat-page .brtm-cv-date-divider span {
  display: inline-block;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: saturate(180%) blur(8px);
  backdrop-filter: saturate(180%) blur(8px);
  color: #64748b;
  font-size: 11px; font-weight: 600;
  line-height: 1.5;
  padding: 4px 12px;
  border: 1px solid rgba(15, 23, 42, .06);
  border-radius: 999px;
  letter-spacing: .04em;
  text-transform: capitalize;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 4px 12px -6px rgba(15, 23, 42, .18);
}

/* Avatar in messages  calmer */
.brtm-chat-page .brtm-cv-msg-avatar {
  width: 28px; height: 28px;
  background: var(--brand-50); color: var(--brand);
}

/*  14g  Phase 8  Compact mode 
   NOTE: <body> already has class "brtm-chat-page", so we use a compound
   selector (body.brtm-compact) + descendants  NOT body.brtm-compact .brtm-chat-page
   which would require .brtm-chat-page to be a child element. */
body.brtm-compact .brtm-chat-item              { padding: 6px 12px 6px 14px !important; }
body.brtm-compact .brtm-chat-item-top          { gap: 8px !important; }
body.brtm-compact .brtm-chat-item .brtm-avatar { width: 30px !important; height: 30px !important; font-size: 11.5px !important; }
body.brtm-compact .brtm-avatar-status          { width: 11px !important; height: 11px !important; }
body.brtm-compact .brtm-avatar-status i        { font-size: 7.5px !important; }
body.brtm-compact .brtm-chat-name              { font-size: var(--fs-sm) !important; }
body.brtm-compact .brtm-chat-msg               { font-size: 11.5px !important; margin-top: 1px !important; }
body.brtm-compact .brtm-chat-meta              { margin-top: 3px !important; gap: 6px !important; }
body.brtm-compact .brtm-chat-time              { font-size: 10.5px !important; }
body.brtm-compact .brtm-meta-chip              { font-size: 10.5px !important; }
body.brtm-compact .brtm-tag                    { font-size: 10px !important; padding: 1px 6px !important; }
body.brtm-compact .brtm-section-label          { padding: 6px 14px 2px !important; font-size: 10px !important; }
body.brtm-compact .brtm-status-tabs            { padding: 3px !important; margin: 0 10px 8px !important; }
body.brtm-compact .brtm-tab-btn                { padding: 4px 8px !important; font-size: 11.5px !important; }
body.brtm-compact .brtm-tab-count              { font-size: 10px !important; padding: 0 5px !important; }
body.brtm-compact .brtm-search-box             { margin: 0 12px 8px !important; }
body.brtm-compact .brtm-search-box input       { height: 30px !important; font-size: 12px !important; }
body.brtm-compact .brtm-chat-panel-header      { padding-top: 10px !important; padding-bottom: 8px !important; }
body.brtm-compact #panelTitle,
body.brtm-compact .brtm-chat-panel-header h2   { font-size: 14px !important; }

/* Conversation area in compact mode */
body.brtm-compact .brtm-cv-header              { padding: 8px 16px !important; gap: 10px !important; }
body.brtm-compact .brtm-cv-avatar              { width: 32px !important; height: 32px !important; font-size: 12px !important; }
body.brtm-compact .brtm-cv-name                { font-size: var(--fs-base) !important; }
body.brtm-compact .brtm-cv-sub                 { font-size: 11.5px !important; }
body.brtm-compact .brtm-cv-action-btn          { width: 30px !important; height: 30px !important; font-size: 14px !important; }
body.brtm-compact .brtm-cv-btn-resolve,
body.brtm-compact .brtm-cv-btn-resolve-arrow   { height: 30px !important; }
body.brtm-compact .brtm-cv-btn-resolve         { padding: 0 12px !important; font-size: 12px !important; }
body.brtm-compact .brtm-cv-messages            { padding: 12px 18px !important; gap: 8px !important; }
body.brtm-compact .brtm-cv-bubble              { padding: 6px 10px 5px !important; font-size: var(--fs-sm) !important; line-height: 1.5 !important; border-radius: 12px !important; }
body.brtm-compact .brtm-cv-msg-avatar          { width: 24px !important; height: 24px !important; font-size: 9px !important; }
body.brtm-compact .brtm-cv-msg-body            { max-width: min(560px, 76%) !important; }
body.brtm-compact .brtm-cv-bubble-meta         { font-size: 9.5px !important; }
body.brtm-compact .brtm-cv-date-divider        { margin: 6px 0 !important; }
body.brtm-compact .brtm-cv-date-divider span   { font-size: 10px !important; padding: 2px 9px !important; }

/* Customer profile panel in compact mode */
body.brtm-compact .brtm-pp-hero                { padding: 12px 14px 10px !important; }
body.brtm-compact .brtm-pp-big-avatar          { width: 52px !important; height: 52px !important; font-size: 18px !important; margin-bottom: 8px !important; }
body.brtm-compact .brtm-pp-name                { font-size: var(--fs-md) !important; }
body.brtm-compact .brtm-pp-channel             { font-size: 11.5px !important; }
body.brtm-compact .brtm-pp-quickstats          { padding: 9px 12px !important; gap: 6px !important; }
body.brtm-compact .brtm-pp-qs-card             { padding: 7px 6px !important; }
body.brtm-compact .brtm-pp-qs-val              { font-size: var(--fs-base) !important; }
body.brtm-compact .brtm-pp-qs-lbl              { font-size: 9.5px !important; }
body.brtm-compact .brtm-pp-quickactions        { padding: 8px 12px !important; gap: 6px !important; }
body.brtm-compact .brtm-pp-qa-btn              { height: 28px !important; font-size: 11.5px !important; }
body.brtm-compact .brtm-pp-section-header     { padding: 10px 14px 6px !important; }
body.brtm-compact .brtm-pp-section-title       { font-size: 10px !important; }
body.brtm-compact .brtm-pp-section-body        { padding: 0 14px 10px !important; }

/* Compact-mode indicator pill (visible in header so users know it is on) */
.brtm-compact-indicator {
  display: none; align-items: center; gap: 5px;
  margin-left: 8px; padding: 2px 8px; border-radius: 10px;
  background: var(--brand-50); color: var(--brand);
  font-size: 10.5px; font-weight: var(--fw-bold);
  text-transform: uppercase; letter-spacing: .05em;
  vertical-align: middle;
}
body.brtm-compact .brtm-compact-indicator { display: inline-flex; }
body.brtm-compact #compactToggleBtn       { background: var(--brand-50) !important; color: var(--brand) !important; }

/* Keyboard-cue for the toggle */
.brtm-kbd {
  display: inline-flex; align-items: center; justify-content: center;
  height: 18px; min-width: 18px; padding: 0 5px;
  border-radius: 4px; border: 1px solid var(--br-2);
  background: #fff; color: var(--tx-2);
  font-size: 10px; font-weight: var(--fw-med);
  font-family: var(--brtm-font-num);
  box-shadow: 0 1px 0 rgba(15,23,42,.06);
}

/* ==============================================================
   SHARED ICON SIDEBAR (CRM/Activity pages  non-chat)
   ============================================================== */
/* KENAPA ADA "- 1px" DI BEBERAPA ATURAN DI BAWAH INI
   Aturan-aturan ini dulu memakai calc(100vh - 56px), sementara clearance navbar
   yang sebenarnya (dan nilai fallback --tfa-chrome-h) adalah 55px. Selisih 1px itu
   sudah ada sejak lama dan tampilannya sudah disetujui apa adanya, jadi saat angka
   mati 56px diganti variabel terukur, selisihnya DIPERTAHANKAN ("- 1px") supaya
   tampilan tanpa pita tidak bergeser sedikit pun -- perbaikan ini hanya menyasar
   kasus pita tampil. Jadi 1px ini bukan angka baru: itu 56 - 55 yang lama.
   (Pola yang sama dipakai blok chat di file ini: "+ 3px" pada --chat-chrome.)
   Kalau suatu saat selisih itu memang mau dihilangkan, hapus di SEMUA aturan
   sekaligus, jangan satu-satu. */
.brtm-page-wrap { display: flex; flex: 1; height: calc(100vh - var(--tfa-chrome-h, 55px) - 1px); min-height: 0; }
.brtm-icon-sidebar {
  width: 56px; background: #fff;
  border-right: 1px solid #e2e8f0;
  display: flex; flex-direction: column; align-items: center;
  padding: 12px 0; gap: 4px; flex-shrink: 0;
  height: calc(100vh - var(--tfa-chrome-h, 55px) - 1px); overflow: visible;
  transition: width .25s ease; position: relative;
}
.brtm-icon-sidebar.brtm-expanded { width: 160px; }
.brtm-sidebar-icon {
  width: 40px; height: 40px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  color: #94a3b8; font-size: 17px; cursor: pointer;
  transition: background .15s, color .15s, width .25s ease, justify-content .25s, padding .25s;
  text-decoration: none; flex-shrink: 0; gap: 0;
}
.brtm-icon-sidebar.brtm-expanded .brtm-sidebar-icon {
  width: 144px; justify-content: flex-start; padding: 0 10px; gap: 10px;
}
.brtm-sidebar-icon:hover { background: var(--primary-light, #E7F1FB); color: var(--primary, #1B6FBE); }
.brtm-sidebar-icon.brtm-active { background: var(--primary-light, #E7F1FB); color: var(--primary, #1B6FBE); }
.brtm-sidebar-label {
  font-family: var(--brtm-font-ui); font-size: 12.5px; font-weight: 500;
  white-space: nowrap; overflow: hidden;
  max-width: 0; opacity: 0;
  transition: max-width .25s ease, opacity .2s ease;
  pointer-events: none; display: inline-block;
}
.brtm-icon-sidebar.brtm-expanded .brtm-sidebar-label { max-width: 130px; opacity: 1; pointer-events: auto; }
.brtm-sidebar-spacer { flex: 1; }
.brtm-sidebar-toggle {
  position: absolute; right: -12px; top: 50%; transform: translateY(-50%);
  width: 20px; height: 44px; border-radius: 0 8px 8px 0;
  border: 1px solid #e2e8f0; border-left: none; background: #fff;
  display: flex; align-items: center; justify-content: center;
  color: #94a3b8; font-size: 11px; cursor: pointer; z-index: 10;
  transition: background .15s, color .15s; padding: 0;
  box-shadow: 2px 0 6px rgba(0,0,0,.06);
}
.brtm-sidebar-toggle:hover { background: #f1f5f9; color: #1B6FBE; }
.brtm-sidebar-toggle .bi { transition: transform .25s ease; }
.brtm-icon-sidebar.brtm-expanded .brtm-sidebar-toggle .bi { transform: rotate(180deg); }
.brtm-sidebar-section-label {
  font-size: 9.5px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase;
  color: #b0bcc9; padding: 12px 0 4px; display: none;
  font-family: var(--brtm-font-ui); width: 100%; text-align: center;
}
.brtm-icon-sidebar.brtm-expanded .brtm-sidebar-section-label {
  display: block; text-align: left; padding-left: 12px;
}
.brtm-sidebar-divider {
  width: 32px; height: 1px; background: #e8edf2; margin: 4px 0;
  transition: width .25s;
}
.brtm-icon-sidebar.brtm-expanded .brtm-sidebar-divider { width: calc(100% - 24px); }

/* Sidebar icon tooltip popover (replaces native title) */
.brtm-sidebar-icon[data-tooltip] { position: relative; }
.brtm-sidebar-icon[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  left: calc(100% + 14px);
  top: 50%;
  transform: translateY(-50%) translateX(-6px);
  background: #1e293b;
  color: #fff;
  font-family: var(--brtm-font-ui);
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .1px;
  padding: 8px 11px;
  border-radius: 8px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  box-shadow: 0 8px 20px rgba(15,23,42,.22), 0 2px 6px rgba(15,23,42,.12);
  z-index: 10000;
}
.brtm-sidebar-icon[data-tooltip]::before {
  content: '';
  position: absolute;
  left: calc(100% + 8px);
  top: 50%;
  transform: translateY(-50%) translateX(-6px);
  width: 0; height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-right: 6px solid #1e293b;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  z-index: 10000;
}
.brtm-sidebar-icon[data-tooltip]:hover::after,
.brtm-sidebar-icon[data-tooltip]:hover::before {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
}
.brtm-icon-sidebar.brtm-expanded .brtm-sidebar-icon[data-tooltip]::after,
.brtm-icon-sidebar.brtm-expanded .brtm-sidebar-icon[data-tooltip]::before {
  display: none;
}

/*  Profile-panel Media & File section  */
.brtm-pp-mf-body { display: block; }
.brtm-pp-mf-tabs { display: flex; gap: 2px; padding: 8px 12px 6px; border-bottom: 1px solid #f1f5f9; flex-wrap: wrap; }
.brtm-pp-mf-tab {
  padding: 4px 10px; border-radius: 20px;
  border: 1.5px solid transparent;
  font-family: var(--brtm-font-ui);
  font-size: 11.5px; font-weight: 500;
  color: #8a9ab0; background: transparent; cursor: pointer;
  transition: .15s;
}
.brtm-pp-mf-tab:hover { color: var(--primary, #1B6FBE); border-color: #c8d5e0; }
.brtm-pp-mf-tab--active {
  background: var(--primary-light, #E7F1FB);
  color: var(--primary, #1B6FBE);
  border-color: #b3d4f0;
  font-weight: 600;
}
.brtm-pp-mf-pane { }
.brtm-pp-mf-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; padding: 8px 12px 10px; }
.brtm-pp-mf-thumb {
  position: relative; aspect-ratio: 1; border-radius: 6px; overflow: hidden;
  cursor: pointer; background: #f1f5f9; display: block;
}
.brtm-pp-mf-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: .2s; }
.brtm-pp-mf-thumb:hover img { opacity: .75; }
.brtm-pp-mf-thumb-hover {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: .15s; color: #fff; font-size: 16px;
  background: rgba(0,0,0,.18);
}
.brtm-pp-mf-thumb:hover .brtm-pp-mf-thumb-hover { opacity: 1; }
.brtm-pp-mf-file-list { display: flex; flex-direction: column; }
.brtm-pp-mf-file-item {
  display: flex; align-items: center; gap: 9px;
  padding: 8px 12px; border-bottom: 1px solid #f1f5f9;
}
.brtm-pp-mf-file-item:last-child { border-bottom: none; }
.brtm-pp-mf-file-icon {
  width: 32px; height: 32px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; flex-shrink: 0;
}
.brtm-pp-mf-file-icon--pdf   { background: #fee2e2; color: #dc2626; }
.brtm-pp-mf-file-icon--xls   { background: #dcfce7; color: #16a34a; }
.brtm-pp-mf-file-icon--doc   { background: #dbeafe; color: #2563eb; }
.brtm-pp-mf-file-icon--audio { background: #ede9fe; color: #7c3aed; }
.brtm-pp-mf-file-icon--link  { background: #f1f5f9; color: #64748b; }
.brtm-pp-mf-file-info { flex: 1; min-width: 0; }
.brtm-pp-mf-file-name {
  font-family: var(--brtm-font-ui);
  font-size: 12px; font-weight: 600; color: #1a2234;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.brtm-pp-mf-file-meta {
  font-family: var(--brtm-font-ui);
  font-size: 10.5px; color: #8a9ab0; margin-top: 1px;
}
.brtm-pp-mf-file-dl {
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 7px; border: none;
  background: #f1f5f9; color: #64748b;
  cursor: pointer; font-size: 13px; flex-shrink: 0;
  text-decoration: none; transition: .15s;
}
.brtm-pp-mf-file-dl:hover { background: var(--primary-light, #E7F1FB); color: var(--primary, #1B6FBE); }
.brtm-pp-mf-empty {
  padding: 18px 14px; text-align: center;
  font-family: var(--brtm-font-ui); font-size: 12px;
  color: #94a3b8;
}
.brtm-pp-mf-empty i { display: block; font-size: 22px; margin-bottom: 4px; color: #cbd5e1; }

/* Action-style section (single clickable row, opens sidebar) */
.brtm-pp-section--action .brtm-pp-section-header {
  transition: background .15s;
}
.brtm-pp-section--action .brtm-pp-section-header:hover {
  background: var(--primary-light, #E7F1FB);
}
.brtm-pp-section--action .brtm-pp-section-header:hover .brtm-pp-section-toggle {
  color: var(--primary, #1B6FBE);
}
.brtm-pp-section--action .brtm-pp-section-title {
  display: flex; align-items: center; gap: 0;
  text-transform: none;
  letter-spacing: 0;
  font-size: 13px;
  font-weight: 500;
  color: #1a2234;
}


.brtm-page-content { flex: 1; min-width: 0; overflow: hidden; display: flex; flex-direction: column; }

/* Activity shell (existing) */
.brtm-activity-shell {
  display: flex; flex: 1; height: calc(100vh - var(--tfa-chrome-h, 55px) - 1px); min-height: 0;
}
.brtm-act-sidebar {
  width: 56px; background: #fff; border-right: 1px solid #e2e8f0;
  display: flex; flex-direction: column; align-items: center;
  padding: 10px 0; gap: 2px; flex-shrink: 0;
  transition: width .25s ease;
}
.brtm-act-sidebar.brtm-act-expanded { width: 160px; }
.brtm-act-sidebar-icon {
  width: 40px; height: 40px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  color: #94a3b8; font-size: 17px; cursor: pointer;
  transition: background .15s, color .15s, width .25s, padding .25s;
  text-decoration: none; flex-shrink: 0; gap: 0;
}
.brtm-act-sidebar.brtm-act-expanded .brtm-act-sidebar-icon {
  width: 144px; justify-content: flex-start; padding: 0 10px; gap: 10px;
}
.brtm-act-sidebar-icon:hover { background: #f1f5f9; color: #1B6FBE; }
.brtm-act-sidebar-icon.brtm-active { background: #E7F1FB; color: #1B6FBE; }
.brtm-act-sidebar-label {
  font-family: var(--brtm-font-ui); font-size: 12.5px; font-weight: 500;
  white-space: nowrap; overflow: hidden;
  max-width: 0; opacity: 0; transition: max-width .25s ease, opacity .2s ease;
  pointer-events: none; display: inline-block;
}
.brtm-act-sidebar.brtm-act-expanded .brtm-act-sidebar-label { max-width: 130px; opacity: 1; pointer-events: auto; }
.brtm-act-sidebar-toggle {
  margin-top: auto; width: 32px; height: 32px; border-radius: 8px;
  border: 1px solid #e2e8f0; background: #fff;
  display: flex; align-items: center; justify-content: center;
  color: #94a3b8; font-size: 13px; cursor: pointer;
  transition: background .15s, color .15s;
}
.brtm-act-sidebar-toggle:hover { background: #f1f5f9; color: #1B6FBE; }

/* 
   14  SHARED COMPONENTS  (used by 2+ pages)
    */

/* 
   14a  ADVANCED FILTER DRAWER  (chat-listing, email-listing)
    */
  /* drawer width overridden per-page via #advFilterDrawer */
  .brtm-adv-filter-head { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid #e8edf2; flex-shrink:0; }
  .brtm-adv-filter-head-title { font-weight:700; font-size:14px; color:#1a2234; display:flex; align-items:center; gap:7px; }
  .brtm-adv-filter-count-badge { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; border-radius:9px; background:#2284C6; color:#fff; font-size:10px; font-weight:700; padding:0 4px; }
  .brtm-adv-filter-body { flex:1; overflow-y:auto; overflow-x:hidden; }
  .brtm-adv-filter-toggle-row { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; border-bottom:1px solid #f1f5f9; }
  .brtm-adv-filter-toggle-label { font-size:12.5px; color:#1a2234; font-weight:500; display:flex; align-items:center; gap:7px; }
  .brtm-adv-filter-section { padding:10px 14px 12px; border-bottom:1px solid #f1f5f9; }
  .brtm-adv-filter-section:last-of-type { border-bottom:none; }
  .brtm-adv-filter-sec-title { font-size:11px; font-weight:700; color:#8a9ab0; text-transform:uppercase; letter-spacing:.6px; margin-bottom:8px; }
  .brtm-adv-filter-chips { display:flex; flex-wrap:wrap; gap:6px; }
  .brtm-afc { display:inline-flex; align-items:center; gap:5px; padding:5px 11px; border-radius:20px; border:1.5px solid #e3e8ef; font-size:12px; cursor:pointer; color:#4a5568; transition:border-color .15s,background .15s,color .15s; user-select:none; white-space:nowrap; }
  .brtm-afc:hover { border-color:#2284C6; color:#2284C6; }
  .brtm-afc.brtm-afc--on { border-color:#2284C6; background:#eef4ff; color:#2284C6; font-weight:600; }
  .brtm-afc .brtm-afc-dot { width:8px; height:8px; border-radius:50%; }
  .brtm-adv-agent-search { width:100%; padding:6px 10px; border:1.5px solid #e3e8ef; border-radius:8px; font-size:12px; font-family:inherit; color:#1a2234; outline:none; margin-bottom:8px; box-sizing:border-box; }
  .brtm-adv-agent-search:focus { border-color:#2284C6; }
  .brtm-adv-agent-list { display:flex; flex-direction:column; gap:3px; max-height:130px; overflow-y:auto; }
  .brtm-adv-agent-item { display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:8px; cursor:pointer; transition:background .1s; }
  .brtm-adv-agent-item:hover { background:#f5f7fa; }
  .brtm-adv-agent-item.brtm-agent-on { background:#eef4ff; }
  .brtm-adv-agent-av { width:26px; height:26px; border-radius:50%; background:linear-gradient(135deg,#2284C6,#42a5f5); color:#fff; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .brtm-adv-agent-av.brtm-av-gray { background:#e3e8ef; color:#8a9ab0; }
  .brtm-adv-agent-name { font-size:12px; color:#1a2234; flex:1; }
  .brtm-adv-agent-check { color:#2284C6; font-size:12px; display:none; }
  .brtm-adv-agent-item.brtm-agent-on .brtm-adv-agent-check { display:block; }
  .brtm-adv-filter-date-row { display:flex; gap:8px; align-items:center; }
  .brtm-adv-filter-date-row input[type=date] { flex:1; min-width:0; padding:6px 8px; border:1.5px solid #e3e8ef; border-radius:8px; font-size:12px; font-family:inherit; color:#1a2234; outline:none; width:100%; box-sizing:border-box; }
  .brtm-adv-filter-date-row input[type=date]:focus { border-color:#2284C6; }
  .brtm-adv-filter-footer { display:flex; gap:8px; padding:10px 14px; border-top:1px solid #e8edf2; background:#fff; flex-shrink:0; }
  .brtm-adv-btn-reset { flex:1; padding:7px; border-radius:8px; border:1.5px solid #e3e8ef; background:#fff; font-size:12.5px; font-family:inherit; color:#4a5568; cursor:pointer; font-weight:500; }
  .brtm-adv-btn-apply { flex:2; padding:7px; border-radius:8px; border:none; background:#2284C6; color:#fff; font-size:12.5px; font-family:inherit; cursor:pointer; font-weight:600; }
  .brtm-adv-btn-reset:hover { border-color:#2284C6; color:#2284C6; }
  .brtm-adv-btn-apply:hover { background:#1a72b0; }
  /* Toggle switch */
  .brtm-sw { position:relative; width:36px; height:20px; display:inline-block; flex-shrink:0; }
  .brtm-sw input { opacity:0; width:0; height:0; position:absolute; }
  .brtm-sw-track { position:absolute; cursor:pointer; inset:0; background:#cbd5e0; border-radius:20px; transition:.2s; }
  .brtm-sw-track:before { position:absolute; content:''; height:14px; width:14px; left:3px; bottom:3px; background:#fff; border-radius:50%; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.15); }
  .brtm-sw input:checked + .brtm-sw-track { background:#2284C6; }
  .brtm-sw input:checked + .brtm-sw-track:before { transform:translateX(16px); }
  /* Active state for toggle buttons in chat panel header (fullscreen, compact) */
  .brtm-header-icon-btn.brtm-active { background:var(--primary-light); border-color:var(--primary); color:var(--primary); }
  .brtm-header-icon-btn.brtm-active i { color:var(--primary); }
  /* Active filter indicator on topbar button */
  .brtm-header-icon-btn.brtm-filter-active { background:#eef4ff; color:#2284C6; border-color:#2284C6; }
  .brtm-filter-active-dot { position:absolute; top:-4px; right:-4px; width:12px; height:12px; border-radius:50%; background:#ef4444; border:2px solid #fff; box-shadow:0 0 0 1px rgba(239,68,68,.25); z-index:2; display:none; }
  .brtm-filter-wrap .brtm-header-icon-btn { position:relative; }
  .brtm-filter-wrap.brtm-has-filter .brtm-filter-active-dot { display:block; }
  /* tombol filter saat ada filter aktif — outline primary + dot (tidak solid) */
  .brtm-header-icon-btn.brtm-filter-on { position:relative; background:var(--primary-light); border-color:var(--primary); color:var(--primary); }
  .brtm-header-icon-btn.brtm-filter-on i { color:var(--primary); }
  .brtm-header-icon-btn.brtm-filter-on:hover { background:var(--primary-light); border-color:var(--primary-dark); color:var(--primary-dark); }
  .brtm-header-icon-btn.brtm-filter-on .brtm-filter-active-dot { display:block; }

/* 
   14b  GMAIL-STYLE THREAD  (chat-listing, email-listing)
    */
  .brtm-gmail-thread-outer { display:block; padding:4px 0 10px; width:100%; }
  .brtm-gmail-thread-wrap { border-radius:8px; overflow:hidden; }
  /* Subject bar */
  .brtm-gmail-subject-bar { display:flex; align-items:center; gap:8px; padding:10px 16px 9px; border-bottom:1px solid #ebebeb; }
  .brtm-gmail-subject-icon { font-size:14px; flex-shrink:0; }
  .brtm-gmail-subject-text { font-size:14px; font-weight:700; color:#202124; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .brtm-gmail-subject-count { font-size:12px; color:#5f6368; font-weight:400; flex-shrink:0; }
  .brtm-gmail-subject-label { padding:2px 8px; border-radius:12px; font-size:10.5px; font-weight:600; flex-shrink:0; }
  .brtm-gmail-star-btn { background:none; border:none; cursor:pointer; padding:4px; font-size:15px; color:#dadce0; line-height:1; flex-shrink:0; transition:color .15s; }
  .brtm-gmail-star-btn:hover { color:#f4b400; }
  .brtm-gmail-star-btn.brtm-starred { color:#f4b400; }
  /* Individual email */
  .brtm-gmail-email { border-top:1px solid #ebebeb; }
  .brtm-gmail-email:first-of-type { border-top:none; }
  .brtm-gmail-email-collapsed { display:flex; align-items:center; gap:10px; padding:9px 16px; cursor:pointer; transition:background .12s; }
  .brtm-gmail-email-collapsed:hover { background:#f5f5f5; }
  .brtm-gmail-av { width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:#fff; flex-shrink:0; }
  .brtm-gmail-col-from { font-size:13px; font-weight:600; color:#202124; white-space:nowrap; flex-shrink:0; min-width:72px; }
  .brtm-gmail-col-snippet { font-size:13px; color:#5f6368; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .brtm-gmail-col-attach { font-size:13px; color:#9aa0a6; flex-shrink:0; }
  .brtm-gmail-col-time { font-size:11.5px; color:#5f6368; white-space:nowrap; flex-shrink:0; margin-left:6px; }
  /* Expanded */
  .brtm-gmail-email-expanded { padding:12px 16px 0; }
  .brtm-gmail-exp-header { display:flex; align-items:flex-start; gap:10px; }
  .brtm-gmail-exp-header-right { flex:1; min-width:0; }
  .brtm-gmail-exp-sender-row { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
  .brtm-gmail-exp-name { font-size:13.5px; font-weight:700; color:#202124; flex:1; min-width:0; }
  .brtm-gmail-exp-time { font-size:11.5px; color:#5f6368; white-space:nowrap; flex-shrink:0; }
  .brtm-gmail-exp-actions { display:flex; gap:0; margin-left:2px; flex-shrink:0; }
  .brtm-gmail-exp-action-btn { width:30px; height:30px; border-radius:50%; border:none; background:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:#5f6368; font-size:14px; transition:background .12s; }
  .brtm-gmail-exp-action-btn:hover { background:#f1f3f4; }
  .brtm-gmail-exp-to-row { font-size:12px; color:#5f6368; display:flex; align-items:center; gap:4px; cursor:pointer; margin-top:3px; line-height:1.4; user-select:none; }
  .brtm-gmail-exp-to-row:hover { color:#202124; }
  .brtm-gmail-exp-to-row i { font-size:9px; transition:transform .15s; }
  .brtm-gmail-details-panel { display:none; margin-top:6px; padding:4px 0 2px; }
  .brtm-gmail-detail-row { display:flex; gap:8px; font-size:11.5px; margin-bottom:2px; }
  .brtm-gmail-detail-lbl { color:#5f6368; min-width:42px; flex-shrink:0; }
  .brtm-gmail-detail-val { color:#202124; word-break:break-all; }
  .brtm-gmail-exp-body { font-size:13px; color:#202124; line-height:1.75; padding:12px 0 10px; }
  .brtm-gmail-quote-toggle-btn { display:inline-flex; align-items:center; gap:4px; font-size:12.5px; letter-spacing:2px; color:#5f6368; cursor:pointer; border:1px solid #dadce0; background:#f8f9fa; padding:0 8px 2px; border-radius:3px; margin-bottom:10px; line-height:1.8; }
  .brtm-gmail-quote-toggle-btn:hover { background:#f1f3f4; border-color:#bdc1c6; }
  .brtm-gmail-quote-body { font-size:12.5px; color:#5f6368; border-left:3px solid #dadce0; padding:6px 10px; margin-bottom:10px; display:none; line-height:1.65; }
  .brtm-gmail-attachments { display:flex; flex-wrap:wrap; gap:8px; padding:8px 0 12px; border-top:1px solid #ebebeb; margin-top:4px; }
  .brtm-gmail-attach-card { display:flex; align-items:center; gap:8px; border:1px solid #dadce0; border-radius:6px; padding:7px 12px; cursor:pointer; min-width:168px; max-width:238px; transition:border-color .12s,box-shadow .12s; }
  .brtm-gmail-attach-card:hover { border-color:#aecbfa; box-shadow:0 1px 4px rgba(34,132,198,.15); }
  .brtm-gmail-attach-icon { width:36px; height:36px; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
  .brtm-gmail-attach-meta { min-width:0; }
  .brtm-gmail-attach-name { font-size:11.5px; font-weight:600; color:#202124; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:150px; display:block; }
  .brtm-gmail-attach-size { font-size:11px; color:#5f6368; }
  .brtm-gmail-reply-bar { display:flex; gap:8px; padding:10px 0 12px; border-top:1px solid #ebebeb; margin-top:4px; flex-wrap:wrap; }
  .brtm-gmail-reply-btn { display:flex; align-items:center; gap:6px; padding:6px 16px; border-radius:4px; border:1px solid #dadce0; background:#fff; font-size:13px; color:#202124; cursor:pointer; font-family:inherit; transition:border-color .12s,color .12s; }
  .brtm-gmail-reply-btn:hover { background:#f0f7ff; border-color:#aecbfa; color:#1a72b0; }
  /* Inline compose */
  .brtm-gmail-compose { border-top:1px solid #ebebeb; background:#fff; }
  .brtm-gmail-compose-placeholder { display:flex; align-items:center; gap:10px; padding:10px 16px; cursor:text; }
  .brtm-gmail-compose-placeholder-text { flex:1; font-size:13px; color:#bdc1c6; background:#f1f3f4; border-radius:24px; padding:8px 16px; transition:background .12s; }
  .brtm-gmail-compose-placeholder:hover .brtm-gmail-compose-placeholder-text { background:#e8eaed; }
  .brtm-gmail-compose-expanded { padding:10px 16px 0; display:none; }
  .brtm-gmail-compose.brtm-compose-open .brtm-gmail-compose-placeholder { display:none; }
  .brtm-gmail-compose.brtm-compose-open .brtm-gmail-compose-expanded { display:block; }
  .brtm-gmail-compose-fields { border:1px solid #e0e0e0; border-radius:6px 6px 0 0; border-bottom:none; }
  .brtm-gmail-compose-field-row { display:flex; align-items:center; gap:6px; padding:6px 12px; border-bottom:1px solid #f1f3f4; min-height:36px; }
  .brtm-gmail-compose-field-row:last-of-type { border-bottom:none; }
  .brtm-gmail-compose-field-lbl { font-size:12px; color:#5f6368; flex-shrink:0; min-width:36px; }
  .brtm-gmail-compose-field-val { flex:1; font-size:13px; color:#202124; outline:none; border:none; background:transparent; font-family:inherit; }
  .brtm-gmail-compose-field-chip { display:inline-flex; align-items:center; gap:4px; background:#e8eaed; border-radius:12px; padding:2px 8px; font-size:12px; color:#202124; margin-right:4px; }
  .brtm-gmail-compose-field-chip button { background:none; border:none; cursor:pointer; color:#5f6368; font-size:11px; padding:0; line-height:1; }
  .brtm-gmail-compose-cc-bcc { display:flex; gap:6px; margin-left:auto; }
  .brtm-gmail-compose-cc-bcc button { background:none; border:none; cursor:pointer; font-size:12px; color:#5f6368; font-family:inherit; padding:2px 4px; border-radius:3px; }
  .brtm-gmail-compose-cc-bcc button:hover { background:#f1f3f4; color:#202124; }
  .brtm-gmail-compose-toolbar { display:flex; align-items:center; gap:1px; padding:5px 10px; border:1px solid #e0e0e0; border-top:none; border-bottom:none; background:#f8f9fa; flex-wrap:wrap; }
  .brtm-gmail-compose-tb-sep { width:1px; height:18px; background:#dadce0; margin:0 4px; flex-shrink:0; }
  .brtm-gmail-compose-tb-btn { width:28px; height:28px; display:flex; align-items:center; justify-content:center; border:none; background:none; cursor:pointer; font-size:12.5px; color:#5f6368; border-radius:4px; font-family:inherit; font-weight:600; transition:background .1s; flex-shrink:0; }
  .brtm-gmail-compose-tb-btn:hover { background:#e8eaed; color:#202124; }
  .brtm-gmail-compose-tb-btn.brtm-tb-active { background:#d2e3fc; color:#1967d2; }
  .brtm-gmail-compose-body-wrap { border:1px solid #e0e0e0; border-top:none; border-radius:0 0 6px 6px; background:#fff; overflow:hidden; }
  .brtm-gmail-compose-body { min-height:100px; max-height:280px; overflow-y:auto; padding:10px 14px; font-size:13px; color:#202124; line-height:1.7; outline:none; font-family:inherit; }
  .brtm-gmail-compose-body:empty:before { content:attr(data-placeholder); color:#bdc1c6; pointer-events:none; display:block; }
  .brtm-gmail-compose-sig-divider { border:none; border-top:1px solid #e0e0e0; margin:8px 0 4px; }
  .brtm-gmail-compose-sig { font-size:12px; color:#5f6368; line-height:1.5; }
  .brtm-gmail-compose-attach-area { display:flex; flex-wrap:wrap; gap:6px; padding:8px 14px 4px; }
  .brtm-gmail-compose-attach-chip { display:inline-flex; align-items:center; gap:6px; border:1px solid #dadce0; border-radius:6px; padding:5px 10px; font-size:11.5px; color:#202124; cursor:default; background:#f8f9fa; }
  .brtm-gmail-compose-attach-chip button { background:none; border:none; cursor:pointer; color:#5f6368; font-size:12px; padding:0; line-height:1; }
  .brtm-gmail-compose-attach-chip button:hover { color:#d93025; }
  .brtm-gmail-compose-footer { display:flex; align-items:center; gap:6px; padding:10px 14px 12px; }
  .brtm-gmail-compose-send-btn { display:inline-flex; align-items:center; gap:7px; background:#1a73e8; color:#fff; font-size:13px; font-weight:600; padding:7px 20px; border-radius:4px; border:none; cursor:pointer; font-family:inherit; transition:background .12s; }
  .brtm-gmail-compose-send-btn:hover { background:#1558b4; }
  .brtm-gmail-compose-footer-icon-btn { width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:none; background:none; cursor:pointer; color:#5f6368; font-size:15px; transition:background .12s; }
  .brtm-gmail-compose-footer-icon-btn:hover { background:#f1f3f4; }
  .brtm-gmail-compose-footer-icon-btn.brtm-discard:hover { color:#d93025; background:#fce8e6; }
  .brtm-gmail-compose-fwd-header { font-size:12px; color:#5f6368; padding:8px 0 4px; border-top:1px solid #ebebeb; margin-top:8px; line-height:1.6; }
  .brtm-email-subject-preview { color:#1a2234; font-weight:600; font-size:12.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* 
   14c  ICON SIDEBAR  (brtm-customer-page  listing pages)
    */
  .brtm-customer-page .brtm-main-wrapper { display:flex; flex:1; height:calc(100vh - var(--tfa-chrome-h, 55px) - 1px); min-height:0; }
  .brtm-customer-page .brtm-icon-sidebar {
    width:56px; background:#fff; border-right:1px solid var(--border,#e2e8f0);
    display:flex; flex-direction:column; align-items:center;
    padding:12px 0; gap:4px; flex-shrink:0;
    height:calc(100vh - var(--tfa-chrome-h, 55px) - 1px); overflow:visible;
    transition:width .25s ease; position:relative;
  }
  .brtm-customer-page .brtm-icon-sidebar.brtm-expanded { width:160px; }
  .brtm-customer-page .brtm-sidebar-icon {
    width:40px; height:40px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    color:#94a3b8; font-size:17px; cursor:pointer;
    transition:background .15s, color .15s, width .25s ease, justify-content .25s, padding .25s;
    text-decoration:none; flex-shrink:0; gap:0;
  }
  .brtm-customer-page .brtm-icon-sidebar.brtm-expanded .brtm-sidebar-icon { width:144px; justify-content:flex-start; padding:0 10px; gap:10px; }
  .brtm-customer-page .brtm-sidebar-icon:hover { background:#f1f5f9; color:var(--primary,#1B6FBE); }
  .brtm-customer-page .brtm-sidebar-icon.brtm-active { background:var(--primary-light,#E7F1FB); color:var(--primary,#1B6FBE); }
  .brtm-customer-page .brtm-sidebar-label { font-size:12.5px; font-weight:500; white-space:nowrap; overflow:hidden; max-width:0; opacity:0; transition:max-width .25s ease, opacity .2s ease; pointer-events:none; display:inline-block; }
  .brtm-customer-page .brtm-icon-sidebar.brtm-expanded .brtm-sidebar-label { max-width:130px; opacity:1; pointer-events:auto; }
  .brtm-customer-page .brtm-sidebar-spacer { flex:1; }
  .brtm-customer-page .brtm-sidebar-toggle {
    position:absolute; right:-12px; top:50%; transform:translateY(-50%);
    width:20px; height:44px; border-radius:0 8px 8px 0;
    border:1px solid var(--border,#e2e8f0); border-left:none;
    background:#fff; display:flex; align-items:center; justify-content:center;
    color:#94a3b8; font-size:11px; cursor:pointer; z-index:10;
    transition:background .15s, color .15s; padding:0;
    box-shadow:2px 0 6px rgba(0,0,0,.06);
  }
  .brtm-customer-page .brtm-sidebar-toggle:hover { background:#f1f5f9; color:var(--primary,#1B6FBE); }
  .brtm-customer-page .brtm-sidebar-toggle .bi { transition:transform .25s ease; }
  .brtm-customer-page .brtm-icon-sidebar.brtm-expanded .brtm-sidebar-toggle .bi { transform:rotate(180deg); }
  .brtm-customer-page .brtm-page-wrapper { flex:1; min-width:0; overflow:hidden; }

/* 


/* === MERGED FROM barantum-shared.css (preserved) === */

/* --- 10 SF user-chip / team / rel-link / type-pill --- */
    /*  User chip (avatar + name)  */
    .brtm-sf-user-chip {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      text-decoration: none;
      color: #18233A;
      font-weight: 500;
      font-size: 12px;
      text-transform: capitalize;
    }
    .brtm-sf-user-chip:hover { color: #18233A; }
    .brtm-sf-avatar {
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background: #1B6FBE;
      color: #fff;
      font-size: 10px;
      font-weight: 700;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .brtm-sf-avatar-sm {
      width: 18px;
      height: 18px;
      font-size: 9px;
      background: #7C3AED;
    }

    /*  Team pills  */
    .brtm-sf-teams-wrap {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }
    .brtm-sf-team-pill {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 11.5px;
      font-weight: 600;
      color: #5B21B6;
      background: #EDE9FE;
      border: 1px solid #DDD6FE;
      border-radius: 99px;
      padding: 3px 10px 3px 10px;
      width: fit-content;
    }
    .brtm-sf-empty { color: #A3ADBE; font-style: italic; font-size: 12px; }

    /*  Related link chip  */
    .brtm-sf-rel-link {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: 12px;
      font-weight: 500;
      color: #1B6FBE;
      text-decoration: none;
      background: #EFF6FF;
      border: 1px solid #BFDBFE;
      border-radius: 6px;
      padding: 2px 8px;
      margin-bottom: 3px;
      transition: background .15s, border-color .15s;
    }
    .brtm-sf-rel-link:hover { background: #DBEAFE; border-color: #93C6F0; color: #1558A0; }
    .brtm-sf-rel-link i { font-size: 10px; opacity: .7; }
    .brtm-sf-rel-link-org { color: #6D28D9; background: #F5F3FF; border-color: #DDD6FE; }
    .brtm-sf-rel-link-org:hover { background: #EDE9FE; border-color: #C4B5FD; color: #5B21B6; }

    /*  Parent type pill  */
    .brtm-sf-type-pill {
      display: inline-flex;
      align-items: center;
      font-size: 11.5px;
      font-weight: 600;
      color: #0891B2;
      background: #ECFEFF;
      border: 1px solid #A5F3FC;
      border-radius: 99px;
      padding: 2px 10px;
    }

/* ==============================================================
   14  BROADCAST / CAMPAIGN PAGE  (barantumchat)
   ============================================================== */

/*  Layout  */
.bc-campaign-wrap {
  padding: 10px 20px 60px 20px;
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/*  Page Header  */
.bc-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  flex-shrink: 0;
  gap: 10px;
  /* Toolbar bar putih full-width dengan garis bawah - samakan dgn
     rl-toolbar (header NPS Score / report listing). margin negatif
     menembus padding .bc-campaign-wrap (10px 20px) supaya flush ke tepi. */
  margin: -10px -20px 20px -20px;
  padding: 12px 22px;
  background: #fff;
  border-bottom: 1px solid #e8edf2;
}
.bc-title-group {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}
.bc-page-title {
  font-size: 14px;
  font-weight: 700;
  color: #1a2234;
  letter-spacing: -.01em;
  margin: 0;
}
.bc-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.bc-guide-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 500;
  color: #1A83C7;
  font-style: normal;
  text-decoration: none;
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  border-radius: 20px;
  padding: 3px 10px 3px 8px;
  transition: all .15s;
  white-space: nowrap;
}
.bc-guide-link:hover { background: #DBEAFE; border-color: #93C5FD; text-decoration: none; }
.bc-last-refresh {
  font-size: 12px;
  color: #9CA3AF;
  white-space: nowrap;
}
.bc-icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid #E5E7EB;
  background: #fff;
  color: #374151;
  cursor: pointer;
  transition: all .15s;
  font-size: 16px;
  padding: 0;
  flex-shrink: 0;
}
.bc-icon-btn:hover { border-color: #1A83C7; color: #1A83C7; background: #EFF6FF; }
.bc-icon-btn.bc-active { border-color: #1A83C7; color: #1A83C7; background: #EFF6FF; }
.bc-filter-dot {
  width: 7px;
  height: 7px;
  background: #1A83C7;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(3px, -3px);
}
.bc-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 8px;
  border: none;
  background: #1A83C7;
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(26, 131, 199, 0.25);
  transition: background .18s, box-shadow .18s;
  white-space: nowrap;
  font-family: inherit;
}
.bc-btn-primary:hover {
  background: #1671ab;
  box-shadow: 0 4px 14px rgba(26, 131, 199, 0.35);
}

/*  Secondary button (outline) - dipakai tombol "Variable" di Message Template  */
.bc-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 8px;
  border: 1px solid #D1D5DB;
  background: #fff;
  color: #374151;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background .18s, border-color .18s, color .18s;
  white-space: nowrap;
  font-family: inherit;
}
.bc-btn-secondary:hover {
  background: #EFF6FF;
  border-color: #1A83C7;
  color: #1A83C7;
}

/*  Refresh SVG icon  */
.bc-svg-icon {
  fill: currentColor;
  flex-shrink: 0;
}

/*  Selection Bar  */
.bc-selection-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  border-radius: 8px;
  margin-bottom: 12px;
}
.bc-selection-count { font-size: 13px; color: #1D4ED8; font-weight: 500; }
.bc-btn-danger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 14px;
  height: 32px;
  border-radius: 7px;
  border: none;
  background: var(--sev-crit);
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s;
  font-family: inherit;
}
.bc-btn-danger:hover { background: #DC2626; }

/*  Main content flex column  */
.bc-main-content {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.bc-table-container {
  /* Tinggi ikut isi tabel; mentok di calc(100vh - 250px) lalu body
     scroll internal. Hindari ruang kosong saat baris sedikit. */
  flex: 0 1 auto;
  max-height: calc(100vh - 250px);
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/*  Table  */
.bc-table-wrap {
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  overflow-x: auto;
  /* basis auto (bukan 0) supaya tinggi mengikuti isi saat baris sedikit,
     tapi tetap menyusut + scroll internal saat kontainer mentok max-height. */
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.bc-table-wrap.has-selection { flex: 1 1 auto; }
.bc-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}
.bc-table thead tr {
  position: sticky;
  top: 0;
  z-index: 2;
}
.bc-th-check,
.bc-th {
  background: #EFF6FF;
  padding: 10px 14px;
  font-size: 11.5px;
  font-weight: 600;
  color: #374151;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid #E5E7EB;
  white-space: nowrap;
}
.bc-th-check { width: 52px; text-align: center; }
.bc-td-check { width: 52px; text-align: center; padding: 10px 0; border-bottom: 1px solid #F3F4F6; vertical-align: middle; }
.bc-td-action { width: 60px; text-align: center; padding: 10px 8px; border-bottom: 1px solid #F3F4F6; vertical-align: middle; }
.bc-td {
  padding: 10px 14px;
  font-size: 12.5px;
  color: #374151;
  border-bottom: 1px solid #F3F4F6;
  white-space: nowrap;
  vertical-align: middle;
}
.bc-td-time { white-space: nowrap; font-size: 12px; color: #6B7280; }
.bc-table tbody tr:last-child td { border-bottom: none; }
.bc-table tbody tr:hover { background: #F9FAFB; }
.bc-row-selected { background: #EFF6FF !important; }

/* Action button */
.bc-action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: #F3F4F6;
  color: #374151;
  font-size: 15px;
  transition: all .15s;
}
.bc-action-btn:hover { background: #EFF6FF; color: #1A83C7; }

/* Status badges */
.bc-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
}
.bc-badge-success { background: #DCFCE7; color: #15803D; }
.bc-badge-danger  { background: #FEE2E2; color: #DC2626; }
.bc-badge-warning { background: #FEF9C3; color: #92400E; }
.bc-badge-primary { background: #DBEAFE; color: #1D4ED8; }
.bc-queue-info { display: block; font-size: 11px; color: #9CA3AF; margin-top: 3px; }

/* Bot badge */
.bc-bot-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #F3F4F6;
  border-radius: 20px;
  padding: 2px 10px;
  font-size: 12px;
  color: #374151;
  max-width: 130px;
  overflow: hidden;
}

/* ==============================================================
   CAMPAIGN TABLE - komponen sel (prefix .bc-ct-*)
   Redesign isi tabel campaign listing (campaign.vue).
   ============================================================== */
/* Campaign name */
.bc-ct-name {
  font-size: 13px;
  font-weight: 600;
  color: #1A2234;
}
.bc-ct-name-sub {
  font-size: 11px;
  color: #94A3B8;
  margin-top: 2px;
}
/* Chip - List Receiver / Template / Bot */
.bc-ct-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #F1F5F9;
  border-radius: 7px;
  padding: 4px 9px;
  font-size: 12px;
  color: #475569;
  max-width: 200px;
}
.bc-ct-chip i { font-size: 13px; color: #8A9AB0; flex-shrink: 0; }
.bc-ct-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bc-ct-chip--tpl { background: #EEF4FF; color: #3A5A9C; }
.bc-ct-chip--tpl i { color: #6B86C4; }
.bc-ct-chip--bot { background: #F3EFFE; color: #6B4EA8; }
.bc-ct-chip--bot i { color: #9579D4; }
.bc-ct-empty { color: #CBD5E1; font-size: 13px; }
/* Status badge berikon */
.bc-ct-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
}
.bc-ct-status i { font-size: 13px; }
.bc-ct-status--sent     { background: #DCFCE7; color: #15803D; }
.bc-ct-status--failed   { background: #FEE2E2; color: #DC2626; }
.bc-ct-status--pending  { background: #FEF9C3; color: #A16207; }
.bc-ct-status--progress { background: #DBEAFE; color: #1D4ED8; }
.bc-ct-status--draft    { background: #F1F5F9; color: #64748B; }
.bc-ct-queue { display: block; font-size: 10.5px; color: #94A3B8; margin-top: 4px; }
/* Tanggal + jam (1 kolom) */
.bc-ct-datetime { display: flex; flex-direction: column; gap: 3px; }
.bc-ct-date {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  color: #334155;
  white-space: nowrap;
}
.bc-ct-date i { font-size: 13px; color: #94A3B8; }
.bc-ct-time {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  color: #64748B;
  white-space: nowrap;
}
.bc-ct-time i { font-size: 12px; color: #94A3B8; }
/* Sender - avatar inisial */
.bc-ct-sender { display: inline-flex; align-items: center; gap: 7px; }
.bc-ct-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  text-transform: uppercase;
  background: #1A83C7;
}
.bc-ct-sender-name { font-size: 12.5px; color: #334155; }

/*  REDESIGN broadcast-wa.html : Stats Cards + Popover Panduan 
   Ditambahkan menyatu dengan section campaign agar konsisten (tidak scope sendiri). */

/* CTA di dalam popover bantuan "Panduan" (gaya signature) */
.bc-help-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: 12px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid #BFDBFE;
  background: #EFF6FF;
  color: #1A83C7;
  font-size: 12.5px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.bc-help-cta:hover { background: #DBEAFE; border-color: #93C5FD; }
.bc-help-cta i { font-size: 15px; }

/* Embed panduan (Canva) di dalam popover bantuan */
.bc-help-embed {
  margin-top: 12px;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  overflow: hidden;
  background: #F8FAFC;
}
.bc-help-embed iframe {
  display: block;
  width: 100%;
  height: 210px;
  border: 0;
}
.bc-help-embed__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 210px;
  color: #9CA3AF;
  font-size: 26px;
}
.bc-help-embed__loading {
  height: 210px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9CA3AF;
  font-size: 26px;
}

/* Stats cards */
.bc-stats-row {
  display: flex;
  gap: 14px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.bc-stat-card {
  position: relative;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 180px;
}
.bc-stat-body { min-width: 0; }

/* Tooltip kartu stats - gaya WhatsApp Usage (billing_wa .tw/.tip):
   kartu putih terstruktur (header + body) + panah, muncul saat hover. */
.bc-stat-tw {
  position: absolute;
  top: 10px;
  right: 10px;
  display: inline-flex;
  cursor: help;
}
.bc-stat-tw > i {
  font-size: 14px;
  color: #C0C7D1;
  transition: color .15s;
}
.bc-stat-tw:hover > i { color: #1A83C7; }
.bc-stat-tip {
  position: absolute;
  top: calc(100% + 9px);
  right: -8px;
  background: #fff;
  color: #6B7280;
  font-size: 12px;
  font-weight: 500;
  text-align: left;
  white-space: normal;
  line-height: 1.5;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, .14);
  width: max-content;
  max-width: 260px;
  padding: 9px 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-3px);
  transition: opacity .14s, transform .14s, visibility .14s;
  z-index: 60;
}
.bc-stat-tw:hover .bc-stat-tip {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
/* hover-bridge: tooltip tetap terbuka saat kursor pindah ke dalamnya */
.bc-stat-tip::before {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  height: 11px;
}
/* panah */
.bc-stat-tip::after {
  content: "";
  position: absolute;
  top: -5px;
  right: 12px;
  width: 9px;
  height: 9px;
  background: #fff;
  border-top: 1px solid #E5E7EB;
  border-left: 1px solid #E5E7EB;
  transform: rotate(45deg);
}
.bc-stat-tip-h {
  font-weight: 700;
  color: #111827;
  font-size: 12px;
  padding: 0 12px 3px;
}
.bc-stat-tip-b { padding: 5px 12px 0; }
/* Caption periode data di bawah label kartu */
.bc-stat-period {
  display: flex;
  align-items: center;
  gap: 3px;
  margin-top: 5px;
  font-size: 10px;
  color: #9CA3AF;
}
.bc-stat-period i { font-size: 11px; }

/* ==============================================================
   CREATE / EDIT CAMPAIGN - form slideout (prefix .bc-cb-*)
   Dipakai create_broadcast.vue (redesign). Konsisten dgn bc-* campaign.
   ============================================================== */
.bc-cb-grid {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.bc-cb-col-form { flex: 1 1 360px; min-width: 0; }
.bc-cb-col-preview {
  flex: 1 1 340px;
  max-width: 420px;
  position: sticky;
  top: 4px;
}
/* Section card pembungkus form */
.bc-cb-card {
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 18px 20px;
}
/* Field group */
.bc-cb-field { margin-bottom: 16px; }
.bc-cb-field:last-child { margin-bottom: 0; }
.bc-cb-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #111827;
  margin: 0 0 2px 0;
  text-transform: none;
  letter-spacing: 0;
}
.bc-cb-req { color: #DC2626; }
.bc-cb-desc {
  font-size: 11.5px;
  color: #9CA3AF;
  line-height: 1.5;
  margin: 0 0 7px 0;
}
.bc-cb-input {
  width: 100%;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid #DDE3ED;
  border-radius: 8px;
  font-size: 13px;
  font-family: inherit;
  color: #111827;
  background: #fff;
  outline: none;
  box-sizing: border-box;
  transition: border-color .15s, box-shadow .15s;
}
.bc-cb-input:focus {
  border-color: #1A83C7;
  box-shadow: 0 0 0 3px rgba(26, 131, 199, .12);
}
/* Native <select> - disamakan tampilannya dengan komponen multiselect
   (tinggi 38px, radius 8px, border sama, chevron custom) */
select.bc-cb-input {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='%236B7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;
  background-size: 16px;
}
.bc-cb-error {
  display: block;
  font-size: 11px;
  color: #DC2626;
  margin-top: 4px;
}
.bc-cb-hint {
  font-size: 11.5px;
  color: #9CA3AF;
  line-height: 1.5;
  margin: 6px 0 0 0;
}
.bc-cb-hint a { color: #1A83C7; cursor: pointer; font-weight: 600; }
/* Info / warning box */
.bc-cb-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 12px;
  color: #1E3A5F;
  line-height: 1.5;
}
.bc-cb-note i { color: #1A83C7; font-size: 15px; flex-shrink: 0; margin-top: 1px; }
/* Action bar bawah */
.bc-cb-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid #E5E7EB;
  padding-top: 14px;
  margin-top: 18px;
}
.bc-cb-actions-right { display: flex; align-items: center; gap: 8px; }
.bc-cb-btn-reset {
  background: none;
  border: none;
  color: #DC2626;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}
.bc-cb-btn-cancel {
  padding: 8px 16px;
  border-radius: 8px;
  border: 1px solid #D1D5DB;
  background: #fff;
  color: #374151;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}
.bc-cb-btn-cancel:hover { background: #F9FAFB; }
.bc-cb-btn-submit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 8px;
  border: none;
  background: #1A83C7;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s;
}
.bc-cb-btn-submit:hover { background: #1671ab; }
/* Variable mapping row */
.bc-cb-varmap-row {
  display: flex;
  align-items: stretch;
  gap: 8px;
  margin-top: 8px;
}
.bc-cb-varmap-key {
  flex: 0 0 88px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F3F4F6;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  color: #374151;
  padding: 6px 4px;
  text-align: center;
}

/*  WA Bot Quality info card  */
.bc-cb-quality {
  display: flex;
  gap: 10px;
  margin-top: 10px;
  padding: 12px 14px;
  border: 1px solid #E5E7EB;
  border-left-width: 4px;
  border-radius: 8px;
  background: #F9FAFB;
}
.bc-cb-quality--danger  { border-left-color: #DC2626; background: #FEF6F6; }
.bc-cb-quality--warning { border-left-color: #D97706; background: #FFFBEB; }
.bc-cb-quality--success { border-left-color: #15803D; background: #F2FBF4; }
.bc-cb-quality-icon {
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 1px;
  color: #9CA3AF;
}
.bc-cb-quality--danger  .bc-cb-quality-icon { color: #DC2626; }
.bc-cb-quality--warning .bc-cb-quality-icon { color: #D97706; }
.bc-cb-quality--success .bc-cb-quality-icon { color: #15803D; }
.bc-cb-quality-body {
  flex: 1;
  min-width: 0;
  font-size: 12.5px;
  color: #4B5563;
  line-height: 1.55;
}
.bc-cb-quality-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}
.bc-cb-quality-stat { display: flex; align-items: center; gap: 6px; }
.bc-cb-quality-stat-lbl { font-size: 12px; font-weight: 600; color: #6B7280; }
.bc-cb-quality-dash { color: #9CA3AF; }
.bc-cb-quality-desc { margin-top: 8px; }
.bc-cb-quality-desc:empty { display: none; }
.bc-cb-quality-tips {
  margin-top: 6px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, .7);
  border-radius: 6px;
}
.bc-cb-quality-tips-lbl { font-weight: 700; color: #374151; }
.bc-cb-quality-divider {
  height: 1px;
  background: #E5E7EB;
  margin: 10px 0;
}
.bc-cb-quality-tier {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.bc-cb-quality-tier-lbl { font-size: 12px; font-weight: 600; color: #6B7280; }
.bc-cb-quality-tier-val {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: #111827;
}
.bc-cb-quality-refresh {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #E5E7EB;
  border-radius: 7px;
  background: #fff;
  color: #5A7396;
  font-size: 15px;
  cursor: pointer;
  padding: 0;
  transition: all .15s;
}
.bc-cb-quality-refresh:hover { border-color: #1A83C7; color: #1A83C7; background: #EFF6FF; }
.bc-cb-quality-refresh:disabled { opacity: .5; cursor: not-allowed; }

/*  Upload media (dynamic header)  */
.bc-cb-upload {
  display: flex;
  align-items: stretch;
  gap: 8px;
}
.bc-cb-upload-type {
  flex: 0 0 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F3F4F6;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 700;
  color: #6B7280;
}
.bc-cb-upload-input {
  flex: 1;
  min-width: 0;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 12px;
  background: #fff;
  color: #111827;
}

/*  Preview panel WhatsApp  */
.bc-cb-preview {
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  display: flex;
  flex-direction: column;
  height: calc(100vh - 150px);
}
.bc-cb-preview-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: #075E55;
  color: #fff;
}
.bc-cb-preview-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.bc-cb-preview-name { font-size: 13px; font-weight: 600; margin: 0; line-height: 1.3; }
.bc-cb-preview-num { font-size: 11px; opacity: .85; margin: 0; line-height: 1.3; }
.bc-cb-preview-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 16px;
  background-color: #E5DDD4;
}
/* Empty state preview */
.bc-cb-preview-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  height: 100%;
  color: #6B7280;
}
.bc-cb-preview-empty i { font-size: 40px; color: #9CA3AF; margin-bottom: 10px; }
.bc-cb-preview-empty p { font-size: 12.5px; margin: 0; max-width: 220px; line-height: 1.5; }
/* Balance pill */
.bc-cb-balance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 24px;
  font-size: 12.5px;
  margin-bottom: 12px;
}
.bc-cb-balance--ok { background: #DCFCE7; color: #15803D; }
.bc-cb-balance--warn { background: #FEF9C3; color: #A16207; }
.bc-cb-balance--danger { background: #FEE2E2; color: #DC2626; }
.bc-cb-balance-topup {
  background: #fff;
  border-radius: 20px;
  padding: 3px 12px;
  font-size: 11.5px;
  font-weight: 600;
  color: #1A83C7;
  text-decoration: none;
  white-space: nowrap;
}

.bc-stat-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.bc-stat-val {
  font-size: 22px;
  font-weight: 700;
  color: #111827;
  line-height: 1;
}
.bc-stat-label {
  font-size: 11.5px;
  color: #9CA3AF;
  margin-top: 3px;
}

/* Truncated column tooltips */
.template-name,
.campaign-name {
  max-width: 200px !important;
}
.template-name + .show-hover,
.campaign-name + .show-hover {
  max-width: 200px;
  text-wrap: wrap;
  word-break: break-all;
}

/*  Pagination  */
.brtm-pagination-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  padding: 10px 4px;
  background: transparent;
}
.brtm-pagination-info { font-size: 12.5px; color: #6B7280; }
.brtm-pagination-controls { display: flex; align-items: center; gap: 6px; margin-right: 50px; }
.brtm-page-btn {
  height: 32px;
  min-width: 32px;
  border-radius: 7px;
  border: 1px solid #E5E7EB;
  background: #fff;
  color: #374151;
  font-size: 13px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0 12px;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
.brtm-page-btn:hover {
  background: #1A83C7;
  color: #fff;
  border-color: #1A83C7;
}
.brtm-page-btn:disabled {
  opacity: .4;
  pointer-events: none;
}

/*  Header Buttons  */
.brtm-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  padding: 0 12px;
  height: 36px;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
  white-space: nowrap;
}
.brtm-filter-btn:hover {
  border-color: #1A83C7;
  color: #1A83C7;
  background: #EFF6FF;
}
.brtm-filter-btn.brtm-active-filter {
  border-color: #1A83C7;
  color: #1A83C7;
  background: #EFF6FF;
  font-weight: 600;
}
.brtm-filter-divider {
  width: 1px;
  height: 24px;
  background: #E5E7EB;
  margin: 0 4px;
  flex-shrink: 0;
}
.brtm-show-per-page-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  padding: 0 10px;
  height: 36px;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
  white-space: nowrap;
}
.brtm-show-per-page-btn:hover {
  border-color: #1A83C7;
  color: #1A83C7;
}
.brtm-show-per-page-btn .brtm-chevron {
  font-size: 11px;
  color: #9CA3AF;
  transition: transform .2s;
}
.brtm-show-per-page-btn.brtm-open .brtm-chevron {
  transform: rotate(180deg);
}

/*  Per-page Dropdown  */
.brtm-simple-dd {
  position: relative;
}
.brtm-simple-dd-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 160px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0,0,0,0.12);
  z-index: 500;
  overflow: hidden;
}
.brtm-simple-dd-items-wrap {
  padding: 6px 0;
  display: flex;
  flex-direction: column;
}
.brtm-simple-dd-item {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 7px 14px;
  font-size: 13px;
  color: #374151;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  white-space: nowrap;
  font-family: inherit;
  transition: background .12s;
}
.brtm-simple-dd-item:hover {
  background: #EFF6FF;
  color: #1A83C7;
}
.brtm-simple-dd-item.brtm-active {
  font-weight: 600;
  color: #1A83C7;
  background: #EFF6FF;
}

/*  Empty States  */
.bc-empty-state {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  width: 100%;
  min-height: 400px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 48px 24px;
}
.bc-empty-full {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  min-height: 300px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 48px 24px;
}
.bc-empty-title {
  font-size: 15px;
  font-weight: 700;
  color: #111827;
  margin-top: 14px;
  margin-bottom: 6px;
}
.bc-empty-desc { font-size: 13px; color: #9CA3AF; margin: 0; line-height: 1.6; }
/* signature-empty-state di dalam .bc-empty-full: matikan min-height tinggi
   bawaannya supaya konten (termasuk tombol CTA) tidak terpotong di layar pendek. */
.bc-empty-full .signature-empty-state { min-height: auto; }
/* Ikon empty state di dalam lingkaran - standar mengikuti listing report chat */
.bc-empty-circle {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: #EAF4FB;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}

/*  Skeleton  */
@keyframes bc-shimmer {
  0%   { background-position: -600px 0; }
  100% { background-position:  600px 0; }
}
.bc-skel {
  background: linear-gradient(90deg, #E5E7EB 25%, #D1D5DB 50%, #E5E7EB 75%);
  background-size: 1200px 100%;
  animation: bc-shimmer 1.4s infinite linear;
  border-radius: 6px;
  flex-shrink: 0;
}
.bc-skeleton-wrap { display: flex; flex-direction: column; gap: 0; }
.bc-skel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* Mirror .bc-page-header - toolbar bar putih flush ke tepi + garis bawah */
  margin: -10px -20px 20px -20px;
  padding: 12px 22px;
  background: #fff;
  border-bottom: 1px solid #e8edf2;
}
.bc-skel-header-btns {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bc-skel-title  { width: 140px; height: 15px; }
.bc-skel-btn    { width: 160px; height: 34px; }
.bc-skel-btn-lg { width: 110px; height: 36px; border-radius: 8px; }
.bc-skel-icon   { width: 34px;  height: 34px; border-radius: 8px; }
.bc-skel-table {
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  overflow: hidden;
}
.bc-skel-thead {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  background: #F9FAFB;
  border-bottom: 1px solid #E5E7EB;
  align-items: center;
}
.bc-skel-th     { height: 11px; flex: 1; max-width: 100px; }
.bc-skel-th-xs  { max-width: 36px !important; }
.bc-skel-th-sm  { max-width: 70px !important; }
.bc-skel-th-lg  { max-width: 160px !important; }
.bc-skel-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  border-bottom: 1px solid #F3F4F6;
}
.bc-skel-row:last-child { border-bottom: none; }
.bc-skel-check  { width: 16px;  height: 16px; border-radius: 4px; flex-shrink: 0; }
.bc-skel-action { width: 30px;  height: 30px; border-radius: 7px; flex-shrink: 0; }
.bc-skel-cell   { height: 13px; flex-shrink: 0; }
.bc-skel-cell-lg{ width: 160px; }
.bc-skel-cell-sm{ width: 72px;  }
.bc-skel-badge  { width: 64px;  height: 22px; border-radius: 20px; flex-shrink: 0; }

/* Stats card skeleton - mirror .bc-stats-row / .bc-stat-card (Campaign) */
.bc-skel-stats {
  display: flex;
  gap: 14px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.bc-skel-stat {
  flex: 1;
  min-width: 180px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.bc-skel-stat-ic   { width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0; }
.bc-skel-stat-body { display: flex; flex-direction: column; gap: 7px; flex: 1; }
.bc-skel-stat-val  { width: 54px; height: 16px; }
.bc-skel-stat-lbl  { width: 90px; height: 10px; }

/*  Session modal icon  */
#barantumchat-style .icon-open-session {
  width: 80px;
  height: 80px;
  margin: var(--space-4) auto var(--space-0) auto;
}

/*  Refresh Toast  */
.bc-toast-refresh {
  border-radius: 10px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important;
}

/*  Modal: Balance / Saldo boxes  */
.bc-balance-info {
  padding: 2px;
  background-color: #E7F4FD;
  display: flex;
  justify-content: center;
  align-items: center;
}
.bc-balance-danger {
  padding: 12px;
  background-color: #fee0e0;
  text-align: center;
}
.bc-modal-btn-h {
  height: 40px;
}

/* ==============================================================
   14b  CAMPAIGN DETAIL - Shared UI Patterns
   ============================================================== */

/*  Status description chips  */
.bc-status-desc { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; padding: 8px 12px; border-radius: 8px; }
.bc-status-desc i { font-size: 14px; flex-shrink: 0; }
.bc-status-desc--success { background: #ECFDF5; color: #059669; }
.bc-status-desc--danger  { background: #FEF2F2; color: #DC2626; }
.bc-status-desc--warning { background: #FFFBEB; color: #D97706; }
.bc-status-desc--primary { background: #EFF6FF; color: #2563EB; }

/*  Status badge chips (pill style)  */
.bc-status-badge { display: inline-flex; align-items: center; font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 20px; letter-spacing: 0.2px; }
.bc-status-badge--success  { background: #ECFDF5; color: #059669; }
.bc-status-badge--danger   { background: #FEF2F2; color: #DC2626; }
.bc-status-badge--warning  { background: #FFFBEB; color: #D97706; }
.bc-status-badge--primary  { background: #EFF6FF; color: #2563EB; }
.bc-status-badge--default  { background: #F3F4F6; color: #6B7280; }
.bc-header-dot { width: 3px; height: 3px; border-radius: 50%; background: #D1D5DB; }
.bc-category-chip { display: inline-flex; align-items: center; font-size: 11px; font-weight: 500; color: #6B7280; background: #F3F4F6; border-radius: 20px; padding: 3px 10px; }
.bc-category-chip--empty { color: #9CA3AF; }

/*  Meta grid layout  */
.bc-meta-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.bc-meta-card { display: flex; align-items: flex-start; gap: 10px; background: #F8FAFC; border: 1px solid #EEF2F7; border-radius: 10px; padding: 12px 14px; }

/*  Meta components (sidebar info rows)  */
.bc-meta-icon {
  width: 32px; height: 32px;
  background: #fff; border: 1px solid #E5E7EB; border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; color: #1A83C7; font-size: 16px;
}
.bc-meta-body  { min-width: 0; }
.bc-meta-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; color: #9CA3AF; font-weight: 500; margin-bottom: 3px; }
.bc-meta-value { font-size: 13px; font-weight: 500; color: #1F2937; line-height: 1.4; word-break: break-word; }
.bc-meta-sub   { font-size: 11px; color: #6B7280; margin-top: 2px; }
.bc-meta-list  { display: flex; flex-direction: column; gap: 8px; }
.bc-meta-row   { display: flex; align-items: flex-start; gap: 10px; }
.bc-meta-sidebar { background: #F8FAFC; }
.bc-sidebar-campaign-name { background: #fff; border-bottom: 1px solid #EEF2F7; }

/*  Time badge  */
.bc-time-badge { display: inline-flex; align-items: center; font-size: 11px; font-weight: 500; color: #2563EB; background: #EFF6FF; border-radius: 4px; padding: 1px 6px; }

/*  Outcome chips  */
.bc-outcome-row { display: flex; gap: 10px; }
.bc-outcome-chip { flex: 1; background: #fff; border: 1px solid #E5E7EB; border-radius: 8px; padding: 10px 8px; text-align: center; border-top: 3px solid #E5E7EB; }
.bc-outcome-chip--primary { border-top-color: #1A83C7; }
.bc-outcome-chip--success { border-top-color: #28C76F; }
.bc-outcome-chip--danger  { border-top-color: #EA5455; }
.bc-outcome-chip--warning { border-top-color: #FF9F43; }
.bc-outcome-num { font-size: 18px; font-weight: 700; color: #1A83C7; line-height: 1; margin-bottom: 2px; }
.bc-outcome-chip--success .bc-outcome-num { color: #059669; }
.bc-outcome-chip--danger  .bc-outcome-num { color: #DC2626; }
.bc-outcome-chip--warning .bc-outcome-num { color: #D97706; }
.bc-outcome-pct { font-size: 11px; color: #9CA3AF; margin-bottom: 6px; min-height: 16px; }
.bc-outcome-lbl { font-size: 12px; font-weight: 600; color: #374151; margin-bottom: 3px; }

/*  Stat row  */
.bc-stat-row { display: flex; align-items: center; gap: 0; background: #F8FAFC; border: 1px solid #EEF2F7; border-radius: 10px; padding: 10px 16px; }
.bc-stat-group-label { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: #9CA3AF; width: 90px; flex-shrink: 0; padding-right: 12px; border-right: 1px solid #E5E7EB; margin-right: 4px; line-height: 1.3; }
.bc-stat-item  { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 4px 8px; }
.bc-stat-num   { font-size: 18px; font-weight: 700; line-height: 1; }
.bc-stat-num--primary { color: #1A83C7; }
.bc-stat-num--success { color: #059669; }
.bc-stat-num--warning { color: #D97706; }
.bc-stat-num--danger  { color: #DC2626; }
.bc-stat-num--blue    { color: #1A83C7; }
.bc-stat-lbl  { font-size: 12px; font-weight: 500; color: #6B7280; }
.bc-stat-badge { font-size: 10px; font-weight: 600; padding: 1px 5px; border-radius: 4px; }
.bc-stat-badge--success { background: #ECFDF5; color: #059669; }
.bc-stat-badge--warning { background: #FFFBEB; color: #D97706; }
.bc-stat-badge--danger  { background: #FEF2F2; color: #DC2626; }
.bc-stat-badge--blue    { background: #EFF6FF; color: #2563EB; }
.bc-stat-sep   { width: 1px; height: 28px; background: #E5E7EB; flex-shrink: 0; }

/*  Bar track  */
.bc-bar-track { width: 100%; height: 4px; background: #F3F4F6; border-radius: 99px; margin-top: 8px; overflow: hidden; }
.bc-bar-fill  { height: 100%; border-radius: 99px; transition: width 0.4s ease; }
.bc-bar-pct   { font-size: 10px; color: #9CA3AF; margin-top: 3px; text-align: right; }

/*  Pipeline  */
.bc-pipeline-title { font-size: 14px; letter-spacing: 0.6px; font-weight: 600; margin-bottom: 0; white-space: nowrap; flex-shrink: 0; }
.bc-pipeline { display: flex; align-items: stretch; gap: 0; }
.bc-pipeline-step { flex: 1; background: #fff; border: 1px solid #E5E7EB; border-radius: 8px; padding: 10px 8px; text-align: center; }
.bc-pipeline-top  { display: flex; align-items: baseline; justify-content: center; gap: 4px; margin-bottom: 4px; }
.bc-pipeline-num  { font-size: 18px; font-weight: 700; color: #1A83C7; line-height: 1; }
.bc-pipeline-pct  { font-size: 11px; font-weight: 500; color: #9CA3AF; }
.bc-pipeline-lbl  { font-size: 12px; font-weight: 500; color: #374151; margin-bottom: 3px; }
.bc-pipeline-hint { font-size: 10px; color: #9CA3AF; line-height: 1.4; }
.bc-pipeline-arrow {
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; color: #3B82F6; font-size: 18px;
  background: #DBEAFE; border-radius: 50%; width: 22px; height: 22px; align-self: center;
}
.bc-pipeline-sep { width: 1px; align-self: stretch; background: #E5E7EB; margin: 0 8px; flex-shrink: 0; }
.bc-pipeline-gap { width: 8px; flex-shrink: 0; }
.bc-pipeline-step--failed  { border-color: #FCA5A5; border-width: 2px; background: #FFF8F8; flex: none; min-width: 90px; }
.bc-pipeline-num--failed   { color: #DC2626; }
.bc-pipeline-pct--failed   { color: #F87171; }
.bc-pipeline-step--success { border-color: #86EFAC; border-width: 2px; background: #F0FFF4; flex: none; min-width: 90px; }
.bc-pipeline-num--success  { color: #16A34A; }
.bc-pipeline-cost { font-size: 11px; font-weight: 500; color: #16A34A; margin-top: 2px; }
.bc-pipeline-step--pending { border-color: #FCD34D; border-width: 2px; background: #FFFBEB; flex: none; min-width: 90px; }
.bc-pipeline-num--pending  { color: #D97706; }

/*  Custom Popover  */
.bc-custom-popover {
  position: fixed; z-index: 99999;
  background: #fff; border: 1px solid rgba(0,0,0,0.12); border-radius: 6px;
  padding: 8px 12px; box-shadow: 0 4px 16px rgba(0,0,0,0.14);
  max-width: 240px; font-size: 12px; color: #374151; line-height: 1.5;
  pointer-events: auto;
}
.bc-custom-popover--top::after {
  content: ''; position: absolute; bottom: -5px; left: 50%; transform: translateX(-50%);
  border-left: 5px solid transparent; border-right: 5px solid transparent;
  border-top: 5px solid #fff; filter: drop-shadow(0 1px 0 rgba(0,0,0,0.1));
}
.bc-custom-popover--bottom::after {
  content: ''; position: absolute; top: -5px; left: 50%; transform: translateX(-50%);
  border-left: 5px solid transparent; border-right: 5px solid transparent;
  border-bottom: 5px solid #fff; filter: drop-shadow(0 -1px 0 rgba(0,0,0,0.1));
}
.bc-custom-popover-title {
  font-weight: 600; margin-bottom: 4px; font-size: 12px; color: #111827;
  border-bottom: 1px solid #F3F4F6; padding-bottom: 4px;
}
.bc-custom-popover-body { color: #6B7280; }
.bc-custom-popover--wide { max-width: 360px; }
.bc-btn-fixed-h { height: 32px !important; line-height: 1 !important; display: inline-flex !important; align-items: center !important; }

/*  Resize handle (resizable panel)  */
.bc-resize-handle {
  position: absolute; top: 0; right: -3px; bottom: 0; width: 6px;
  cursor: col-resize; z-index: 10; background: transparent; transition: background 0.15s;
}
.bc-resize-handle:hover,
.bc-resize-handle:active { background: rgba(26, 131, 199, 0.25); }

/*  WA Preview  */
.bc-wa-body-flex { display: flex; flex-direction: column; row-gap: var(--space-4, 16px); padding: var(--space-4, 16px); }
.bc-wa-empty-state { display: flex; align-items: center; justify-content: center; flex: 1; padding: 16px; }
.bc-wa-empty-bubble { max-width: 200px; text-align: center; opacity: 0.85; }

/*  Table toolbar / footer  */
.bc-table-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px; border: 1px solid #E5E7EB; border-radius: 10px 10px 0 0; background: #F8FAFC;
}
.bc-table-title  { font-size: 13px; font-weight: 600; color: #1F2937; }
.bc-table-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 14px; border: 1px solid #E5E7EB; border-top: none;
  border-radius: 0 0 10px 10px; background: #F8FAFC; font-size: 12px;
}

/* ==============================================================
   14c  CAMPAIGN DETAIL - Skeleton cells
   ============================================================== */
.bc-skel-preview-col  { width: 320px; flex-shrink: 0; overflow: hidden; display: flex; flex-direction: column; }
.bc-skel-name-line1   { width: 70%; height: 16px; margin-bottom: 6px; }
.bc-skel-name-line2   { width: 40%; height: 12px; }
.bc-skel-meta-list    { gap: 12px; }
.bc-skel-meta-item    { gap: 10px; }
.bc-skel-meta-ico     { width: 32px; height: 32px; border-radius: 7px; flex-shrink: 0; }
.bc-skel-meta-body    { flex: 1; }
.bc-skel-meta-lbl     { width: 50%; height: 10px; margin-bottom: 5px; }
.bc-skel-wa-area      { padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.bc-skel-wa-b1        { width: 55%; height: 60px; border-radius: 8px; }
.bc-skel-wa-b2        { width: 70%; height: 40px; border-radius: 8px; }
.bc-skel-main-col     { min-width: 0; overflow: hidden; display: flex; flex-direction: column; }
.bc-skel-hdr-row      { flex-shrink: 0; gap: 10px; }
.bc-skel-title-cell   { width: 140px; height: 14px; }
.bc-skel-status-w     { width: 280px; }
.bc-skel-btn-row      { gap: 8px; }
.bc-skel-btn-lg       { width: 80px; height: 30px; border-radius: 7px; }
.bc-skel-btn-sm       { width: 32px; height: 30px; border-radius: 7px; }
.bc-skel-pipe-row     { gap: 4px; }
.bc-skel-pipe-step    { flex: 1; height: 58px; border-radius: 8px; }
.bc-skel-pipe-sep     { width: 1px; background: #E5E7EB; margin: 0 6px; align-self: stretch; }
.bc-skel-pipe-failed  { width: 90px; height: 58px; border-radius: 8px; }
.bc-skel-right-body   { flex: 1; overflow-y: auto; display: flex; flex-direction: column; background: #fff; }
.bc-skel-table-header { border-radius: 0 !important; flex-shrink: 0; }
.bc-skel-col-xl       { width: 160px; }
.bc-skel-col-lg       { width: 120px; }
.bc-skel-col-md       { width: 90px; }
.bc-skel-col-sm       { width: 80px; }

/* ==============================================================
   14d  CAMPAIGN DETAIL - Utility helpers
   ============================================================== */
.bc-capitalize    { text-transform: capitalize; }
.bc-flex-1        { flex: 1; }
.bc-flex-shrink-0 { flex-shrink: 0; }
.bc-gap-6  { gap: 6px; }
.bc-gap-8  { gap: 8px; }
.bc-gap-10 { gap: 10px; }
.bc-detail-body     { overflow: hidden; }
.bc-campaign-name-h5 { font-size: 15px; line-height: 1.4; }
.bc-detail-header   { flex-shrink: 0; }
.bc-detail-title-row { gap: 10px; }
.bc-empty-state-td  { height: 320px; }
.bc-empty-icon      { font-size: 48px; opacity: 0.4; }
.bc-empty-text      { font-size: 14px; }
.bc-chevron-xs      { font-size: 11px; }
.bc-pag-info-row    { gap: 6px; }
.bc-link-underline {
  text-decoration: underline;
}

/*  Modal: Change Template boxes  */
.bc-ct-estimate {
  background: rgb(237 246 255);
  padding: 15px;
}
.bc-ct-saldo-ok {
  padding: 15px;
  background-color: rgb(241, 241, 241);
}
.bc-ct-saldo-err {
  padding: 15px;
  background-color: #fee0e0;
}
.bc-confirm-text {
  line-height: 27px;
}

/* 
   ADDITIONAL  Rules from barantum-shared.css (not yet in source)
    */
    .brtm-btn-add-lead::after {
      display: none;
    }
    .brtm-settings-menu {
      min-width: 260px !important;
      padding: 6px 0;
    }
    .brtm-settings-item {
      display: flex !important;
      align-items: flex-start !important;
      gap: 12px;
      padding: 10px 16px !important;
      white-space: normal !important;
    }
    .brtm-settings-item:hover {
      background: var(--primary-light);
    }
    .brtm-settings-item-icon {
      width: 32px;
      height: 32px;
      border-radius: 8px;
      background: var(--primary-light);
      color: var(--primary);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 15px;
      flex-shrink: 0;
      margin-top: 1px;
      transition: background .15s, transform .15s;
    }
    .brtm-settings-item:hover .brtm-settings-item-icon {
      background: #dbeafe;
      color: var(--primary);
      transform: scale(1.08);
    }
    .brtm-settings-item-body {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .brtm-settings-item-title {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-main);
      line-height: 1.3;
      text-transform: none;
    }
    .brtm-settings-item-desc {
      font-size: 11.5px;
      color: var(--text-muted);
      line-height: 1.4;
      text-transform: none;
    }
    .brtm-settings-menu {
      min-width: 260px !important;
      padding: 6px 0;
    }
    .brtm-settings-item {
      display: flex !important;
      align-items: flex-start !important;
      gap: 12px;
      padding: 10px 16px !important;
      white-space: normal !important;
    }
    .brtm-settings-item:hover { background: var(--primary-light); }
    .brtm-settings-item-icon {
      width: 32px; height: 32px; border-radius: 8px;
      background: var(--primary-light); color: var(--primary);
      display: flex; align-items: center; justify-content: center;
      font-size: 15px; flex-shrink: 0; margin-top: 1px;
      transition: background .15s, transform .15s;
    }
    .brtm-settings-item:hover .brtm-settings-item-icon { background: #dbeafe; color: var(--primary); transform: scale(1.08); }
    .brtm-settings-item-body { display: flex; flex-direction: column; gap: 2px; }
    .brtm-settings-item-title { font-size: 13px; font-weight: 600; color: var(--text-main); line-height: 1.3; text-transform: none; }
    .brtm-settings-item-desc { font-size: 11.5px; color: var(--text-muted); line-height: 1.4; text-transform: none; }
    .brtm-skel {
      background: linear-gradient(90deg, #edf0f5 25%, #e0e6ef 50%, #edf0f5 75%);
      background-size: 1200px 100%;
      animation: brtm-shimmer 1.4s infinite linear;
      border-radius: 6px;
      flex-shrink: 0;
    }
    .brtm-skel-check  { width: 18px; height: 18px; border-radius: 4px; }
    .brtm-skel-avatar { width: 32px; height: 32px; border-radius: 50%; }
    .brtm-skel-cell   { height: 14px; border-radius: 6px; }
    .brtm-skel-badge  { width: 60px; height: 22px; border-radius: 20px; flex-shrink: 0; }
    .brtm-tl-skel-list { padding-top: 8px; }
    .brtm-skeleton-wrap {
      border: 1px solid var(--border);
      border-radius: 10px;
      overflow: hidden;
      background: #fff;
    }
    .brtm-skel-header-row {
      display: flex;
      align-items: center;
      gap: 16px;
      padding: 14px 20px;
      background: #f5f7fa;
      border-bottom: 1px solid var(--border);
    }
    .brtm-skel-row {
      display: flex;
      align-items: center;
      gap: 16px;
      padding: 14px 20px;
      border-bottom: 1px solid #f0f3f8;
    }
    .brtm-skel-row:last-child { border-bottom: none; }
    .brtm-listing-wrap {
      height: calc(100vh - 140px); /* 115px = navbar + page header */
      display: flex;
      flex-direction: column;
      min-height: 0;
    }
    .brtm-table-wrap {
      flex: 1;
      overflow: hidden;
      min-height: 0;
    }
    .brtm-table-wrap > div {
      height: 100%;
    }
    .brtm-table-wrap .ag-theme-alpine {
      height: 100% !important;
    }
    .brtm-page-btn:hover {
      background: var(--primary-light);
      color: var(--primary);
      border-color: var(--primary);
    }
    .brtm-col-filter-panel {
      padding: 0;
      height: 100%;
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    .brtm-col-filter-search {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 16px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
      background: #fff;
      position: sticky;
      top: 0;
      z-index: 1;
    }
    .brtm-col-filter-search i {
      font-size: 14px;
      color: var(--text-muted);
      flex-shrink: 0;
    }
    .brtm-col-filter-search-input {
      flex: 1;
      border: none;
      outline: none;
      font-size: 13px;
      font-family: inherit;
      color: var(--text-main);
      background: transparent;
    }
    .brtm-col-filter-search-input::placeholder {
      color: var(--text-light);
    }
    .brtm-col-filter-search-clear {
      cursor: pointer;
      font-size: 16px;
      color: var(--text-muted);
    }
    .brtm-col-filter-search-clear:hover {
      color: var(--text-main);
    }
    .brtm-col-filter-section-label {
      font-size: 10.5px;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--text-muted);
      padding: 10px 20px 4px;
      flex-shrink: 0;
    }
    .brtm-col-filter-info {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      color: var(--text-muted);
      padding: 8px 20px 6px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }
    .brtm-col-filter-list {
      flex: 1;
      overflow-y: auto;
      padding: 4px 0;
    }
    .brtm-col-filter-list-static {
      flex-shrink: 0;
      padding: 4px 0;
    }
    .brtm-col-filter-list-scroll {
      flex: 1;
      overflow-y: auto;
      padding: 4px 0;
      min-height: 0;
    }
    .brtm-col-filter-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 20px;
      border-bottom: 1px solid #f0f3f8;
      cursor: default;
      transition: background .12s;
    }
    .brtm-col-filter-item:hover {
      background: var(--primary-light);
    }
    .brtm-col-filter-item-locked {
      cursor: default;
      opacity: 0.75;
    }
    .brtm-col-filter-drag-handle {
      color: var(--text-light);
      font-size: 16px;
      cursor: grab;
      flex-shrink: 0;
    }
    .brtm-col-filter-item-locked .brtm-col-filter-drag-handle {
      cursor: default;
    }
    .brtm-col-filter-label {
      display: flex;
      align-items: center;
      gap: 10px;
      cursor: pointer;
      flex: 1;
      margin: 0;
    }
    .brtm-col-filter-checkbox {
      display: none;
    }
    .brtm-col-filter-check-box {
      width: 18px;
      height: 18px;
      border-radius: 5px;
      border: 1.5px solid var(--border);
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: all .15s;
      color: #fff;
      font-size: 13px;
    }
    .brtm-col-filter-check-box.brtm-col-filter-checked {
      background: var(--primary);
      border-color: var(--primary);
    }
    .brtm-col-filter-item:hover .brtm-col-filter-check-box {
      border-color: var(--primary);
    }
    .brtm-col-filter-name {
      font-size: 13.5px;
      font-weight: 500;
      color: var(--text-main);
    }
    
    .brtm-col-filter-lock {
      font-size: 13px;
      color: var(--text-light);
      flex-shrink: 0;
    }
    .brtm-col-filter-ghost {
      background: #EEF4FF !important;
      border: 1.5px dashed var(--primary) !important;
      border-radius: 6px;
      opacity: 1;
    }
    .brtm-col-filter-ghost * {
      visibility: hidden;
    }
    .brtm-col-filter-chosen {
      opacity: 0.4;
    }
    .brtm-col-filter-drag {
      background: #fff !important;
      border-radius: 8px !important;
      box-shadow: 0 8px 24px rgba(0,0,0,0.14) !important;
      opacity: 1 !important;
      border: 1.5px solid var(--primary) !important;
      cursor: grabbing !important;
    }
    .brtm-col-filter-empty {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 40px 20px;
      text-align: center;
      flex: 1;
    }
    .brtm-col-filter-empty-icon {
      font-size: 28px;
      color: var(--text-light);
      margin-bottom: 10px;
    }
    .brtm-col-filter-empty-title {
      font-size: 13px;
      font-weight: 600;
      color: var(--text-muted);
      margin-bottom: 4px;
    }
    .brtm-col-filter-empty-kw {
      font-size: 12px;
      color: var(--text-light);
    }
    .brtm-col-filter-skeleton {
      padding: 8px 0;
    }
    .brtm-col-filter-skel-row {
      height: 44px;
      margin: 0 20px 6px;
      border-radius: 8px;
    }
    .brtm-dd-empty {
      padding: 20px 14px;
      text-align: center;
    }
    .brtm-dd-empty-icon {
      font-size: 24px;
      color: var(--text-light);
      display: block;
      margin-bottom: 8px;
    }
    .brtm-dd-empty-title {
      font-size: 12.5px;
      font-weight: 600;
      color: var(--text-muted);
      margin-bottom: 4px;
    }
    .brtm-dd-empty-desc {
      font-size: 11.5px;
      color: var(--text-light);
      line-height: 1.5;
    }
    .brtm-dd-empty-kw {
      font-size: 11.5px;
      color: var(--text-light);
      margin-top: 3px;
    }
    .brtm-dd-empty-btn {
      margin-top: 12px;
      background: var(--primary);
      color: #fff;
      border: none;
      border-radius: 6px;
      padding: 6px 14px;
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 5px;
      transition: background .15s;
    }
    .brtm-dd-empty-btn:hover {
      background: var(--primary-dark);
    }

/* ==============================================================
   BRTM SWEETALERT2 - Generic Confirmation Modal Theme
   Usage:
     Swal.fire({
       title: '...',
       text: '...',
       icon: 'warning',
       showCancelButton: true,
       buttonsStyling: false,
       reverseButtons: true,
       customClass: {
         popup: 'brtm-swal',
         icon: 'brtm-swal-icon brtm-swal-icon--warning',
         title: 'brtm-swal-title',
         htmlContainer: 'brtm-swal-body',
         actions: 'brtm-swal-actions',
         confirmButton: 'brtm-btn brtm-btn--md brtm-btn--danger',
         cancelButton: 'brtm-btn brtm-btn--md brtm-btn--outline',
       },
     })
   Icon variants: --warning / --danger / --info / --success
   ============================================================== */
.brtm-swal.swal2-popup {
  border-radius: 14px !important;
  padding: 32px 32px 24px !important;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.16) !important;
  font-family: var(--brtm-font-ui) !important;
  width: 440px !important;
  max-width: 92vw !important;
}
.brtm-swal .brtm-swal-icon.swal2-icon {
  border: none !important;
  margin: 0 auto 18px !important;
  width: 64px !important;
  height: 64px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.brtm-swal .brtm-swal-icon.swal2-icon::before,
.brtm-swal .brtm-swal-icon.swal2-icon::after {
  display: none !important;
}
.brtm-swal .brtm-swal-icon .swal2-icon-content {
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
}
/* Icon style variants */
.brtm-swal .brtm-swal-icon--warning { background: #FEF3C7 !important; }
.brtm-swal .brtm-swal-icon--warning .swal2-icon-content { color: #D97706 !important; }
.brtm-swal .brtm-swal-icon--danger  { background: #FEF2F2 !important; }
.brtm-swal .brtm-swal-icon--danger  .swal2-icon-content { color: var(--sev-crit, #dc2626) !important; }
.brtm-swal .brtm-swal-icon--info    { background: var(--primary-light) !important; }
.brtm-swal .brtm-swal-icon--info    .swal2-icon-content { color: var(--primary) !important; }
.brtm-swal .brtm-swal-icon--success { background: #D1FAE5 !important; }
.brtm-swal .brtm-swal-icon--success .swal2-icon-content { color: var(--sev-ok, #16a34a) !important; }
/* Hide default warning border/ring */
.brtm-swal .swal2-icon.swal2-warning,
.brtm-swal .swal2-icon.swal2-error,
.brtm-swal .swal2-icon.swal2-success,
.brtm-swal .swal2-icon.swal2-info,
.brtm-swal .swal2-icon.swal2-question {
  border: none !important;
}
.brtm-swal .swal2-icon.swal2-warning .swal2-icon-content { color: #D97706 !important; }
.brtm-swal .swal2-icon.swal2-warning { background: #FEF3C7 !important; width: 64px !important; height: 64px !important; margin: 0 auto 18px !important; }

.brtm-swal .brtm-swal-title.swal2-title {
  font-size: var(--fs-md) !important;
  font-weight: var(--fw-bold) !important;
  color: var(--tx-1) !important;
  padding: 0 !important;
  margin: 0 0 8px !important;
  line-height: 1.3 !important;
}
.brtm-swal .brtm-swal-body.swal2-html-container,
.brtm-swal .brtm-swal-body .swal2-html-container {
  font-size: var(--fs-sm) !important;
  font-weight: var(--fw-reg) !important;
  color: var(--tx-2) !important;
  margin: 0 !important;
  line-height: 1.55 !important;
  padding: 0 8px !important;
}
.brtm-swal .brtm-swal-actions.swal2-actions,
.brtm-swal .swal2-actions {
  padding: 0 !important;
  margin: 22px 0 0 !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  /* Force order: Cancel di kiri, Confirm/destructive di kanan (UX convention) */
  flex-direction: row-reverse !important;
  justify-content: center !important;
}
/* Overlay (backdrop) - darker for better focus */
.swal2-container.swal2-backdrop-show {
  background: rgba(15, 23, 42, 0.45) !important;
}

/*  Force brtm-btn styles inside SwAl (override SwAl2 defaults)  */
.brtm-swal button.brtm-btn {
  flex: 1 0;
  padding: 10px 20px;
  font-family: var(--brtm-font-ui) !important;
  font-weight: var(--fw-med) !important;
  line-height: 1 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  transition: background-color .15s, color .15s, border-color .15s, opacity .15s !important;
  border-radius: 8px;
}
.brtm-swal button.brtm-btn:focus { outline: none !important; box-shadow: none !important; }
.brtm-swal button.brtm-btn--xs { height: 24px !important; padding: 0 8px !important;  font-size: 11px !important;   border-radius: 5px !important; }
.brtm-swal button.brtm-btn--sm { height: 28px !important; padding: 0 12px !important; font-size: 12px !important;   border-radius: 6px !important; }
.brtm-swal button.brtm-btn--md { height: 32px !important; padding: 0 16px !important; font-size: 12.5px !important; border-radius: 6px !important; }
.brtm-swal button.brtm-btn--lg { height: 36px !important; padding: 0 18px !important; font-size: 13px !important;   border-radius: 7px !important; }
.brtm-swal button.brtm-btn--primary {
  background: var(--primary) !important;
  color: #fff !important;
  border: 1px solid var(--primary) !important;
}
.brtm-swal button.brtm-btn--primary:hover {
  background: var(--primary-dark) !important;
  border-color: var(--primary-dark) !important;
}
.brtm-swal button.brtm-btn--outline {
  background: #fff !important;
  color: var(--primary) !important;
  border: 1px solid var(--primary) !important;
}
.brtm-swal button.brtm-btn--outline:hover {
  background: var(--primary-light) !important;
}
.brtm-swal button.brtm-btn--ghost {
  background: transparent !important;
  color: var(--tx-2) !important;
  border: 1px solid transparent !important;
}
.brtm-swal button.brtm-btn--ghost:hover {
  background: var(--bg-hover) !important;
  color: var(--tx-1) !important;
}
.brtm-swal button.brtm-btn--danger {
  background: var(--sev-crit, #dc2626) !important;
  color: #fff !important;
  border: 1px solid var(--sev-crit, #dc2626) !important;
}
.brtm-swal button.brtm-btn--danger:hover {
  background: #b91c1c !important;
  border-color: #b91c1c !important;
}
.brtm-swal button.brtm-btn--danger-outline {
  background: #fff !important;
  color: var(--sev-crit, #dc2626) !important;
  border: 1px solid var(--sev-crit, #dc2626) !important;
}
.brtm-swal button.brtm-btn--danger-outline:hover {
  background: #fef2f2 !important;
}
.brtm-swal button.brtm-swal-btn-danger-ghost {
  background: transparent !important;
  color: var(--sev-crit, #dc2626) !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
}
.brtm-swal button.brtm-swal-btn-danger-ghost:hover:not([disabled]):not(:disabled) {
  background: #fef2f2 !important;
  color: #b91c1c !important;
}
.brtm-swal button.brtm-swal-btn-danger-ghost:focus-visible {
  outline: 2px solid rgba(220, 38, 38, 0.35) !important;
  outline-offset: 2px;
}

/*  15  V2 Select Input - Native select styled per design system  */
.v2-select-wrap { position: relative; }
.v2-select {
  width: 100%;
  height: 38px;
  padding: 0 34px 0 12px;
  font-size: var(--fs-base, 13.5px);
  font-family: var(--brtm-font-ui, 'Inter', sans-serif);
  color: var(--tx-1, #0f172a);
  background: var(--bg-card, #fff);
  border: 1px solid var(--br-2, #dde3ec);
  border-radius: var(--radius, 8px);
  outline: none;
  cursor: pointer;
  appearance: none;
  transition: border-color .15s ease-in, box-shadow .15s ease-in;
}
.v2-select:hover:not(:disabled) { border-color: var(--br-strong, #c5cdd9); }
.v2-select:focus { border-color: var(--primary, #1B6FBE); box-shadow: 0 0 0 3px rgba(27,111,190,.15); }
.v2-select:disabled { background: #e9ecef; color: var(--tx-3, #8a96aa); cursor: not-allowed; }
.v2-select-wrap .v2-caret {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: var(--tx-2, #475569);
  pointer-events: none;
}

/*  BRTM Delete Confirm Modal - SweetAlert2 override  */
.brtm-swal-delete.swal2-popup {
  border-radius: 16px !important;
  padding: 40px 40px 32px !important;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.16) !important;
  font-family: 'Inter', sans-serif !important;
  width: 460px !important;
  max-width: 92vw !important;
}
.brtm-swal-delete .brtm-swal-icon-danger.swal2-icon {
  border: none !important;
  margin: 0 auto 24px !important;
  width: 80px !important;
  height: 80px !important;
  background: #FEF2F2 !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.brtm-swal-delete .brtm-swal-icon-danger.swal2-icon::before,
.brtm-swal-delete .brtm-swal-icon-danger.swal2-icon::after {
  display: none !important;
}
.brtm-swal-delete .brtm-swal-icon-danger .swal2-icon-content {
  font-size: 32px !important;
  color: #EF4444 !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
}
.brtm-swal-delete .brtm-swal-title.swal2-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #1E293B !important;
  padding: 0 !important;
  margin-bottom: 10px !important;
}
.brtm-swal-delete .brtm-swal-body.swal2-html-container {
  font-size: 13.5px !important;
  color: #64748B !important;
  margin: 0 0 8px !important;
  line-height: 1.7 !important;
  padding: 0 8px !important;
}
.brtm-swal-delete .swal2-actions {
  padding: 0 !important;
  margin-top: 28px !important;
  margin-bottom: 0 !important;
  gap: 10px !important;
}

/*  BRTM Confirm Modal - Primary variant  */
.brtm-swal-primary.swal2-popup {
  border-radius: 16px !important;
  padding: 40px 40px 32px !important;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.16) !important;
  font-family: 'Inter', sans-serif !important;
  width: 460px !important;
  max-width: 92vw !important;
}
.brtm-swal-primary .brtm-swal-icon-primary.swal2-icon {
  border: none !important;
  margin: 0 auto 24px !important;
  width: 80px !important;
  height: 80px !important;
  background: #E7F1FB !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.brtm-swal-primary .brtm-swal-icon-primary.swal2-icon::before,
.brtm-swal-primary .brtm-swal-icon-primary.swal2-icon::after {
  display: none !important;
}
.brtm-swal-primary .brtm-swal-icon-primary .swal2-icon-content {
  font-size: 32px !important;
  color: #1B6FBE !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
}
.brtm-swal-primary .brtm-swal-title.swal2-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #1E293B !important;
  padding: 0 !important;
  margin-bottom: 10px !important;
}
.brtm-swal-primary .brtm-swal-body.swal2-html-container {
  font-size: 13.5px !important;
  color: #64748B !important;
  margin: 0 0 8px !important;
  line-height: 1.7 !important;
  padding: 0 8px !important;
}
.brtm-swal-primary .swal2-actions {
  padding: 0 !important;
  margin-top: 28px !important;
  margin-bottom: 0 !important;
  gap: 10px !important;
}
.brtm-swal-primary button.swal-btn-confirm {
  background: var(--primary, #1B6FBE) !important;
  color: #fff !important;
  border: 1px solid var(--primary, #1B6FBE) !important;
  box-shadow: none !important;
}
.brtm-swal-primary button.swal-btn-confirm:hover:not([disabled]):not(:disabled) {
  background: var(--primary-dark, #134E8E) !important;
  border-color: var(--primary-dark, #134E8E) !important;
}
.brtm-swal-primary button.swal-btn-confirm:focus-visible {
  outline: 2px solid rgba(27, 111, 190, 0.35) !important;
  outline-offset: 2px;
}

/*  BRTM Confirm Modal - Warning variant  */
.brtm-swal-warning.swal2-popup {
  border-radius: 16px !important;
  padding: 40px 40px 32px !important;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.16) !important;
  font-family: 'Inter', sans-serif !important;
  width: 460px !important;
  max-width: 92vw !important;
}
.brtm-swal-warning .brtm-swal-icon-warning.swal2-icon {
  border: none !important;
  margin: 0 auto 24px !important;
  width: 80px !important;
  height: 80px !important;
  background: #FEF3C7 !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.brtm-swal-warning .brtm-swal-icon-warning.swal2-icon::before,
.brtm-swal-warning .brtm-swal-icon-warning.swal2-icon::after {
  display: none !important;
}
.brtm-swal-warning .brtm-swal-icon-warning .swal2-icon-content {
  font-size: 32px !important;
  color: #d97706 !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
}
.brtm-swal-warning .brtm-swal-title.swal2-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #1E293B !important;
  padding: 0 !important;
  margin-bottom: 10px !important;
}
.brtm-swal-warning .brtm-swal-body.swal2-html-container {
  font-size: 13.5px !important;
  color: #64748B !important;
  margin: 0 0 8px !important;
  line-height: 1.7 !important;
  padding: 0 8px !important;
}
.brtm-swal-warning .swal2-actions {
  padding: 0 !important;
  margin-top: 28px !important;
  margin-bottom: 0 !important;
  gap: 10px !important;
}
.brtm-swal-warning button.swal-btn-confirm {
  background: #d97706 !important;
  color: #fff !important;
  border: 1px solid #d97706 !important;
  box-shadow: none !important;
}
.brtm-swal-warning button.swal-btn-confirm:hover:not([disabled]):not(:disabled) {
  background: #b45309 !important;
  border-color: #b45309 !important;
}
.brtm-swal-warning button.swal-btn-confirm:focus-visible {
  outline: 2px solid rgba(217, 119, 6, 0.35) !important;
  outline-offset: 2px;
}

/*  Vue Simple Calendar redesign (shared: tasks, notes, meetings, calls)  */
.calendar-parent {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  overflow: hidden;
  max-height: 80vh;
  background: #fff;
}
.appcalendar .cv-wrapper {
  border: 1px solid #DDE3ED;
  border-radius: 0 0 12px 12px;
  overflow: hidden;
  font-family: 'Inter', sans-serif !important;
  box-shadow: 0 1px 6px rgba(27, 111, 190, 0.08);
}
.appcalendar .cv-wrapper,
.appcalendar .cv-wrapper div {
  font-family: 'Inter', sans-serif !important;
  box-sizing: border-box;
}
.appcalendar .cv-header {
  background: #1B6FBE !important;
  padding: 0 12px !important;
  height: 52px !important;
  min-height: 52px !important;
  border: none !important;
  border-width: 0 !important;
  display: flex;
  align-items: center;
}
.appcalendar .cv-header-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0 8px !important;
}
.appcalendar .cv-header button {
  background: rgba(255,255,255,0.12) !important;
  border: 1px solid rgba(255,255,255,0.25) !important;
  color: #fff !important;
  border-radius: 6px !important;
  min-width: 30px !important;
  height: 30px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  cursor: pointer;
  transition: background 0.15s;
  line-height: 1 !important;
}
.appcalendar .cv-header button:hover { background: rgba(255,255,255,0.25) !important; }
.appcalendar .cv-header button.currentPeriod { padding-left: 20px !important; padding-right: 20px !important; }
.appcalendar .cv-header .periodLabel { display: none !important; }
.appcalendar .cv-header-days {
  background: #F5F7FA !important;
  border-bottom: 1px solid #DDE3ED !important;
  border-left: none !important;
}
.appcalendar .cv-header-day {
  background: #F5F7FA !important;
  color: #6B7A99 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  padding: 9px 6px !important;
  border-color: #DDE3ED !important;
  justify-content: center !important;
}
.appcalendar .cv-weeks { border-color: #DDE3ED !important; border-bottom: none !important; }
.appcalendar .cv-week { min-height: 100px !important; border: none !important; }
.appcalendar .cv-week:last-child .cv-day { border-bottom: none !important; }
.appcalendar .cv-day {
  border-top: none !important;
  border-left: none !important;
  border-right: 1px solid #DDE3ED !important;
  border-bottom: 1px solid #DDE3ED !important;
  background: #fff !important;
  transition: background 0.1s;
}
.appcalendar .cv-day:hover { background: #F0F5FB !important; }
.appcalendar .cv-day.outsideOfMonth { background: #F8FAFC !important; opacity: 0.65 !important; }
.appcalendar .theme-default .cv-day.past { background: #fff !important; }
.appcalendar .theme-default .cv-day.today { background: #fff !important; }
.appcalendar .cv-day-number {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #18233A !important;
  padding: 7px 8px !important;
  width: auto;
  height: auto;
}
.appcalendar .cv-day.today .cv-day-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: #1B6FBE;
  color: #fff !important;
  border-radius: 50%;
  font-weight: 700 !important;
  font-size: 12.5px !important;
  margin: 5px 6px;
  padding: 0 !important;
  box-shadow: 0 2px 6px rgba(27, 111, 190, 0.35);
  z-index: 1;
}
.appcalendar .cv-day.dow0 .cv-day-number,
.appcalendar .cv-day.dow6 .cv-day-number { color: #94A3B8 !important; }
.appcalendar .cv-item {
  border-radius: initial;
  font-size: 12px !important;
  font-weight: 500 !important;
  padding: 4px 12px !important;
  margin: 0;
  box-sizing: border-box;
  cursor: pointer;
  transition: filter 0.12s, box-shadow 0.12s;
  line-height: 1.4 !important;
  border-left-width: 3px;
}
.appcalendar .cv-item:hover {box-shadow: 0 2px 6px rgba(0,0,0,0.18); }
.appcalendar .theme-default .cv-item.status-planned {
  background-color: #54a9ea !important;
  color: #fff !important;
}
.appcalendar .theme-default .cv-item.status-held {
  background-color: #54ea79 !important;
  color: #000 !important;
}
.appcalendar .theme-default .cv-item.status-not-held {
  background-color: #ea6554 !important;
  color: #fff !important;
}
.appcalendar .cv-item.continued { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; margin-left: 0 !important; }
.appcalendar .cv-item.toBeContinued { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; margin-right: 0 !important; }
.appcalendar .theme-default .cv-item.continued::before,
.appcalendar .theme-default .cv-item.toBeContinued::after { content: '' !important; }
.appcalendar .theme-default .cv-day.draghover { box-shadow: inset 0 0 0 2px #1B6FBE !important; background: #EEF4FC !important; }

/* Calendar status legend (overlay on header) */
.brtm-cv-header-wrap { display: block; position: relative; gap: 16px; flex-wrap: wrap; }
.brtm-cv-status-legend {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 11.5px;
  font-weight: 600;
  color: rgba(255,255,255,0.9);
  font-family: 'Inter', sans-serif;
  pointer-events: auto;
  z-index: 1;
}
.brtm-cv-status-dot {
  display: inline-block;
  width: 10px; height: 10px;
  border-radius: 2px;
  margin-right: 4px;
  flex-shrink: 0;
  vertical-align: middle;
}
.brtm-cv-status-item { position: relative; cursor: default; display: inline-flex; align-items: center; }
/* .brtm-cv-status-item::after {
  content: attr(data-tooltip);
  position: absolute;
  top: calc(100% + 8px); right: 0; left: auto;
  transform: translateY(-4px);
  background: #1a1f36; color: #fff;
  font-size: 11px; font-weight: 500;
  white-space: nowrap;
  padding: 4px 9px;
  border-radius: 6px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s, transform .15s;
  z-index: 9999;
}
.brtm-cv-status-item::before {
  content: '';
  position: absolute;
  top: calc(100% + 3px); right: 10px; left: auto;
  transform: translateY(-4px);
  border: 5px solid transparent;
  border-bottom-color: #1a1f36;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s, transform .15s;
  z-index: 9999;
} */
.brtm-cv-status-item:hover::after,
.brtm-cv-status-item:hover::before { opacity: 1; transform: translateY(0); }

/* Calendar empty state */
.brtm-cal-empty-state {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  min-height: calc(100vh - 304px); gap: 10px; padding: 40px 20px;
}
.brtm-cal-empty-icon { font-size: 48px; color: #DDE3ED; margin-bottom: 4px; }
.brtm-cal-empty-title { font-size: 15px; font-weight: 700; color: #18233A; }
.brtm-cal-empty-desc { font-size: 13px; color: #6B7A99; text-align: center; max-width: 320px; }

/* Calendar skeleton loader */
@keyframes brtm-shimmer {
  0%   { background-position: -600px 0; }
  100% { background-position:  600px 0; }
}
.brtm-cal-skeleton { border: 1px solid #DDE3ED; border-radius: 12px; overflow: hidden; }
.brtm-cal-skeleton-header { height: 52px; background: #1B6FBE; opacity: 0.7; }
.brtm-cal-skeleton-dayheaders {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: #F5F7FA;
  border-bottom: 1px solid #DDE3ED;
}
.brtm-cal-skeleton-dayheaders > div {
  height: 36px;
  border-right: 1px solid #DDE3ED;
  background: linear-gradient(90deg, #F5F7FA 25%, #E8EDF5 50%, #F5F7FA 75%);
  background-size: 600px 100%;
  animation: brtm-shimmer 1.4s infinite linear;
}
.brtm-cal-skeleton-dayheaders > div:last-child { border-right: none; }
.brtm-cal-skeleton-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.brtm-cal-skeleton-cell {
  min-height: 100px;
  border-right: 1px solid #DDE3ED;
  border-bottom: 1px solid #DDE3ED;
  padding: 8px;
  display: flex; flex-direction: column; gap: 6px;
}
.brtm-cal-skeleton-cell:nth-child(7n) { border-right: none; }
.brtm-cal-skeleton-cell:nth-last-child(-n+7) { border-bottom: none; }
.brtm-skel-date {
  width: 24px; height: 24px; border-radius: 50%;
  background: linear-gradient(90deg, #E8EDF5 25%, #D5DCE8 50%, #E8EDF5 75%);
  background-size: 600px 100%;
  animation: brtm-shimmer 1.4s infinite linear;
}

@media (max-width: 767px) {
  .brtm-cal-wrap {
    width: 100%;
  }
  .brtm-cal-outer-wrap.brtm-split-active .brtm-cal-wrap {
    display: none;
  }  

  .brtm-cal-outer-wrap.brtm-split-active .brtm-split-preview {
    flex: 0 0 100%;
    max-width: initial;
  }

}
/* --- Owner cell (Tasks Owner / created_by / modified_by) --- */
.brtm-owner-cell {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.brtm-owner-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 1.5px solid #dde8f5;
}
.brtm-owner-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.brtm-owner-name {
  font-size: 13px;
  font-weight: 500;
  color: #1e2d45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.3;
  text-transform: capitalize;
  word-break: break-word;
}
.brtm-owner-teams {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 3px;
  font-size: 10px;
  font-weight: 500;
  color: #3b6abf;
  background: #e8f0fc;
  border: 1px solid #c5d5f0;
  border-radius: 20px;
  padding: 1px 6px 1px 5px;
  line-height: 1.5;
  white-space: nowrap;
  margin-top: 2px;
}
/* Initial-letter avatar inside owner cell — upscale brtm-sf-avatar to 28px */
.brtm-owner-avatar--initial {
  width: 28px;
  height: 28px;
  font-size: 12px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ag-row:hover .brtm-owner-avatar {
  border-color: #1B6FBE;
  box-shadow: 0 0 0 2px rgba(27, 111, 190, 0.18);
}
.ag-row:hover .brtm-owner-avatar--initial {
  box-shadow: 0 0 0 2px rgba(27, 111, 190, 0.28);
}

/* ==============================================================
   CONTACT "+N" POPOVER — daftar seluruh kontak di sel person_name.
   Dirender oleh Bootstrap Popover ke <body> (container:'body'), jadi
   HARUS global — CSS scoped komponen tidak menjangkau isi popover ini.
   ============================================================== */
.brtm-cmore-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 168px;
  max-height: 260px;
  overflow-y: auto;
}
.brtm-cmore-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 6px;
  border-radius: 6px;
  color: #1e2d45;
  text-decoration: none;
}
a.brtm-cmore-row:hover {
  background: #f0f5fc;
}
.brtm-cmore-av {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #7c3aed;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.brtm-cmore-nm {
  font-size: 13px;
  font-weight: 500;
  color: #1e2d45;
  text-transform: capitalize;
  word-break: break-word;
}



/* ==============================================================
   ACTION CELL - Subject column (pencil + eye buttons)
   ============================================================== */
.brtm-action-cell {
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0;
  min-width: 0;
}
.brtm-action-cell__left {
  flex: 1;
  min-width: 0;
}
.brtm-subject-link {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 100%;
  font-size: 13px;
  font-weight: 500;
  color: #1B6FBE;
  text-decoration: none;
  line-height: 1.4;
  word-break: break-word;
  transition: color .13s;
  text-transform: capitalize;
}
.brtm-subject-link:hover {
  color: #0f4f8e;
  text-decoration: none;
}
.brtm-action-cell__btns {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  transition: opacity .15s;
  margin-left: 6px;
}

/* Icon buttons */
.brtm-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  border: 1.5px solid #d8e2f0;
  background: #f4f7fc;
  color: #5a6a8a;
  text-decoration: none !important;
  cursor: pointer;
  transition: background .13s, border-color .13s, color .13s, box-shadow .13s;
  font-size: 14px;
  line-height: 1;
  flex-shrink: 0;
}
.brtm-icon-btn > i {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  width: 1em;
  height: 1em;
}
.brtm-icon-btn:hover {
  background: #dbeafe;
  border-color: #1B6FBE;
  color: #1B6FBE;
  box-shadow: 0 2px 6px rgba(27,111,190,.18);
  text-decoration: none !important;
}
.brtm-icon-btn--disabled {
  opacity: 0.4;
  pointer-events: none;
  cursor: not-allowed;
}
.brtm-icon-btn--warn {
  border-color: #f59e0b;
  background: #fffbeb;
  color: #b45309;
}
.brtm-icon-btn--warn:hover {
  background: #fde68a;
  border-color: #d97706;
  color: #92400e;
  box-shadow: 0 2px 6px rgba(245,158,11,.2);
}
.brtm-icon-btn--pending {
  border-color: #a78bfa;
  background: #f5f3ff;
  color: #6d28d9;
}
.brtm-icon-btn--pending:hover {
  background: #ede9fe;
  border-color: #7c3aed;
  color: #5b21b6;
  box-shadow: 0 2px 6px rgba(139,92,246,.2);
}
.brtm-icon-btn--sm {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  font-size: 12px;
}

/* ==============================================================
   SUBJECT CELL "ORANG" — avatar inisial + aksi hover (brtm-action-cell--person)
   Dipakai listing modul orang (Leads, Contacts, …). Kelas HANYA dipasang
   renderer yang sudah dikonversi → modul lain tak terpengaruh.
   TODO(coder): ekstrak jadi cellSubject.vue biar 23 renderer tak diedit manual.
   ============================================================== */
.brtm-subj-avatar {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 10px;
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .02em;
  text-transform: uppercase;
  background: #1B6FBE;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22);
}
.brtm-subj-avatar--empty { background: #cbd5e1; font-size: 15px; }
.brtm-subj-avatar--empty > i { margin: 0 !important; line-height: 1; }

/* Grup aksi edit/preview = murni LAYOUT. Redup/reveal-nya IKUT perilaku global
   .brtm-icon-btn (opacity .45 → 1 saat .ag-row-hover / :focus-visible) — konsisten
   dgn modul lain & aman di layar sentuh (TIDAK disembunyikan total; kalau
   opacity:0, user sentuh tak bisa memunculkannya karena tak ada hover). */
.brtm-console .brtm-grid-host .brtm-action-cell--person .brtm-action-cell__acts {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.brtm-console .brtm-grid-host .brtm-action-cell--person .brtm-action-cell__btns {
  margin-left: auto;
}

/* Root sel action harus PENUH selebar kolom supaya tombol aksi rata kanan
   (root = flex-item di .ag-cell console yang default menyusut selebar isi).
   Leads membungkus di <section.brtm-subjcell-host>; Contacts dkk TANPA section
   → .brtm-action-cell--person langsung jadi flex-item. Dua-duanya dicakup. */
.brtm-console .brtm-grid-host .brtm-subjcell-host,
.brtm-console .brtm-grid-host .brtm-action-cell--person {
  width: 100%;
  height: 100%;
  flex: 1 1 auto;
  min-width: 0;
}

/* ==============================================================
   14  SETTINGS SUB-PAGE COMPONENTS  (brtm-sp-*)
        Sticky breadcrumb  Page header  Toolbar  Table 
        Empty states  Skeleton shimmer
        Reusable across all settings detail pages.
   ============================================================== */

/*  Breadcrumb (sticky)  */
.brtm-sp-crumb {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 1.5rem;
  font-size: 13px;
  user-select: none;
  background: #f8f9fa;
  border-bottom: 1px solid #e5e7eb;
}
.brtm-sp-crumb-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  color: #374151;
  cursor: pointer;
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s;
  flex-shrink: 0;
}
.brtm-sp-crumb-back:hover { background: #e5e7eb; color: #111827; }
.brtm-sp-crumb-back i { font-size: 15px; line-height: 1; }
.brtm-sp-crumb-sep { color: #d1d5db; font-size: 14px; }
.brtm-sp-crumb-parent {
  color: #9ca3af;
  cursor: pointer;
  transition: color 0.15s;
}
.brtm-sp-crumb-parent:hover { color: #1a83c7; }
.brtm-sp-crumb-current { color: #1a83c7; font-weight: 600; }

/*  Page header  */
.brtm-sp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e5e7eb;
  margin-bottom: 16px;
  margin-top: 62px;
}
.brtm-sp-header-left {
  display: flex;
  align-items: center;
  gap: 14px;
}
.brtm-sp-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: #f5f3ff;
  border: 1px solid #ddd6fe;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.brtm-sp-icon img { width: 24px; height: 24px; object-fit: contain; }
.brtm-sp-title {
  font-size: 17px;
  font-weight: 700;
  color: #111827;
  margin: 0 0 3px;
  line-height: 1.3;
}
.brtm-sp-desc {
  font-size: 13px;
  color: #6b7280;
  margin: 0;
}

/*  Access denied  */
.brtm-sp-denied {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  height: 70vh;
}

/*  Toolbar  */
.brtm-sp-listing { padding-top: 4px; }
.brtm-sp-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.brtm-sp-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  width: 280px;
  flex-shrink: 0;
}
.brtm-sp-search-icon {
  position: absolute;
  left: 10px;
  color: #9ca3af;
  font-size: 16px;
  pointer-events: none;
}
.brtm-sp-search-input {
  width: 100%;
  height: 36px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 0 12px 0 32px;
  font-size: 13px;
  color: #374151;
  background: #fff;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
}
.brtm-sp-search-input:focus {
  border-color: #1a83c7;
  box-shadow: 0 0 0 3px rgba(26, 131, 199, 0.1);
}

/*  Mass-action bar  */
.brtm-sp-massbar {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 6px 14px 6px 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.brtm-sp-massbar-clear {
  display: flex;
  align-items: center;
  background: none;
  border: none;
  color: #6b7280;
  font-size: 18px;
  cursor: pointer;
  padding: 0 2px;
  line-height: 1;
  transition: color 0.15s;
}
.brtm-sp-massbar-clear:hover { color: #111827; }
.brtm-sp-massbar-count {
  font-size: 13px;
  color: #374151;
  font-weight: 500;
  white-space: nowrap;
}
.brtm-sp-massbar-delete {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 30px;
  padding: 0 12px;
  border-radius: 6px;
  border: 1px solid #fecdd3;
  background: #fff1f2;
  color: #be123c;
  font-size: 12.5px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.brtm-sp-massbar-delete:hover:not(:disabled) { background: #ffe4e6; border-color: #fda4af; }
.brtm-sp-massbar-delete:disabled { opacity: 0.5; cursor: not-allowed; }
.brtm-sp-massbar-delete i { font-size: 14px; }

/* Transition */
.brtm-sp-fade-enter-active,
.brtm-sp-fade-leave-active { transition: opacity 0.2s, transform 0.2s; }
.brtm-sp-fade-enter-from,
.brtm-sp-fade-leave-to { opacity: 0; transform: translateY(-6px); }

/*  Table  */
.brtm-sp-table-wrap {
  overflow-x: auto;
  overflow-y: auto;
  max-height: calc(100vh - 258px);
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
.brtm-sp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
  color: #374151;
}
.brtm-sp-table thead tr {
  background: #E7F1FB;
  border-bottom: 2px solid #c8dff4;
}
.brtm-sp-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #E7F1FB;
  padding: 12px 16px;
  font-size: 11.5px;
  font-weight: 700;
  color: #1e4f7a;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
  text-align: left;
  border: none;
}
.brtm-sp-table thead th:first-child { border-radius: 11px 0 0 0; }
.brtm-sp-table thead th:last-child  { border-radius: 0 11px 0 0; }
.brtm-sp-th-check, .brtm-sp-td-check {
  width: 44px;
  text-align: center;
  padding-left: 16px !important;
  padding-right: 8px !important;
}
.brtm-sp-th-action, .brtm-sp-td-action {
  width: 80px;
  text-align: center;
}
.brtm-sp-td-action {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.brtm-sp-table tbody tr {
  border-bottom: 1px solid #f1f5f9;
  transition: background 0.12s;
}
.brtm-sp-table tbody tr:last-child { border-bottom: none; }
.brtm-sp-table tbody td {
  padding: 14px 16px;
  vertical-align: middle;
  border: none;
}
.brtm-sp-row:hover { background: #f8fafc; }

/* Label */
.brtm-sp-label {
  font-weight: 600;
  color: #0f172a;
  font-size: 13.5px;
}

/* Status badges */
.brtm-sp-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
}
.brtm-sp-badge-active   { background: #dcfce7; color: #15803d; }
.brtm-sp-badge-inactive { background: #fee2e2; color: #dc2626; }

/* Chips */
.brtm-sp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.brtm-sp-chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: #e0e7ff;
  color: #3730a3;
  border: none;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
  line-height: 1;
}
.brtm-sp-chip:hover { background: #c7d2fe; color: #1e1b4b; }

/* Action button */
.brtm-sp-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  color: #64748b;
  font-size: 16px;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.brtm-sp-action-btn:hover {
  border-color: #93c5fd;
  color: #1d4ed8;
  background: #eff6ff;
}

/*  Empty states  */
.brtm-sp-empty-cell {
  padding: 0 !important;
  border: none !important;
}
.brtm-sp-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  height: calc(100vh - 258px);
  padding: 40px 0;
}
.brtm-sp-empty-icon {
  width: 72px;
  height: 72px;
  border-radius: 18px;
  background: #eff6ff;
  border: 1px solid #dbeafe;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  font-size: 32px;
  color: #1a83c7;
}
.brtm-sp-empty-title {
  font-size: 15px;
  font-weight: 700;
  color: #111827;
  margin: 0 0 6px;
}
.brtm-sp-empty-desc {
  font-size: 13px;
  color: #6b7280;
  margin: 0 0 18px;
}
.brtm-sp-empty-clear {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 36px;
  padding: 0 16px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  color: #374151;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.brtm-sp-empty-clear:hover { border-color: #1a83c7; background: #eff6ff; color: #1a83c7; }

/*  Skeleton shimmer  */
@keyframes brtm-sp-shimmer {
  0%   { background-position: 200% center; }
  100% { background-position: -200% center; }
}
.brtm-sp-sk {
  background: linear-gradient(90deg, #f0f2f5 25%, #e4e8ed 50%, #f0f2f5 75%);
  background-size: 400% auto;
  border-radius: 6px;
  animation: brtm-sp-shimmer 1.4s ease infinite;
}

/*  Responsive  */
@media (max-width: 575px) {
  .brtm-sp-search-wrap { width: 100%; }
  .brtm-sp-toolbar { flex-direction: column; align-items: flex-start; }
}


/* ==============================================================
   Signature Chat Mail - Stage 1 (empty state) + Stage 2 (header + howto)
   Source: resources/js/barantumchat/components/signature/*.vue
   ============================================================== */

/* ---------- Stage 1: Empty state ---------- */
.signature-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: calc(100vh - 200px);
  padding: 32px 24px;
}
.signature-empty-state .empty-illu {
  width: 280px;
  max-width: 100%;
  margin-bottom: 16px;
}
.signature-empty-state .empty-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--tx-1);
  margin: 0 0 8px;
}
.signature-empty-state .empty-desc {
  font-size: 12.5px;
  color: var(--tx-2);
  max-width: 480px;
  line-height: 1.6;
  margin: 0 0 16px;
}
.signature-empty-state .empty-bullets {
  display: flex;
  gap: 24px;
  margin: 16px 0 24px;
  flex-wrap: wrap;
  justify-content: center;
}
.signature-empty-state .empty-bullet {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  max-width: 160px;
}
.signature-empty-state .empty-bullet__ic {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--primary-light);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}
.signature-empty-state .empty-bullet__txt {
  font-size: 11px;
  color: var(--tx-2);
  line-height: 1.5;
}
.signature-empty-state .empty-bullet__txt b {
  color: var(--tx-1);
  font-weight: 600;
  display: block;
  margin-bottom: 2px;
  font-size: 12.5px;
}

/* ---------- Stage 2: Help button + popover next to title ---------- */
.sig-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
}

.sig-help-btn {
  width: 22px;
  height: 22px;
  border: 1px solid var(--border);
  background: var(--card-bg);
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tx-3);
  transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
  flex-shrink: 0;
  padding: 0;
}
.sig-help-btn:hover,
.sig-help-btn.is-open {
  color: var(--primary);
  border-color: #BEE0F9;
  background: var(--primary-light);
}
.sig-help-btn i { font-size: 13px; }

@keyframes sigHelpPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(27,111,190,.5); }
  50%      { box-shadow: 0 0 0 10px rgba(27,111,190,0); }
}
.sig-help-btn.is-highlighting {
  border-color: var(--primary);
  background: var(--primary-light);
  color: var(--primary);
  animation: sigHelpPulse 1.2s ease-in-out 3;
}

/* Hint tooltip pointing to help button (shown after dismiss) */
.sig-help-hint {
  position: absolute;
  top: calc(100% + 10px);
  left: -6px;
  background: var(--tx-1);
  color: #fff;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
  z-index: 60;
  box-shadow: 0 4px 16px rgba(15,23,42,.18);
}
.sig-help-hint::before {
  content: "";
  position: absolute;
  top: -4px;
  left: 14px;
  width: 8px;
  height: 8px;
  background: var(--tx-1);
  transform: rotate(45deg);
}

/* Popover anchored below help button */
.sig-help-popover {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 70;
  width: 380px;
  max-width: calc(100vw - 40px);
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 16px 48px rgba(15,23,42,.16);
  padding: 16px;
}
.sig-help-popover::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 18px;
  width: 10px;
  height: 10px;
  background: var(--card-bg);
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
  transform: rotate(45deg);
}
.sig-help-popover__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.sig-help-popover__title {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--tx-1);
  display: flex;
  align-items: center;
  gap: 6px;
}
.sig-help-popover__title i {
  color: var(--primary);
  font-size: 14px;
}
.sig-help-popover__close {
  width: 22px;
  height: 22px;
  border: none;
  background: transparent;
  color: var(--tx-3);
  cursor: pointer;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}
.sig-help-popover__close:hover {
  background: var(--surface);
  color: var(--tx-1);
}
.sig-help-popover__desc {
  font-size: 12.5px;
  color: var(--tx-2);
  line-height: 1.6;
  margin-bottom: 12px;
}
.sig-help-popover__steps {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sig-help-popover__step {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 12.5px;
  color: var(--tx-2);
}
.sig-help-popover__step-num {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

/* Mini email mockup inside popover */
.sig-help-popover__visual {
  margin-top: 12px;
  padding: 10px 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
}
.sig-mini-email__head {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
  color: var(--tx-3);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 600;
}
.sig-mini-email {
  padding-top: 8px;
  font-size: 11px;
}
.sig-mini-email__field {
  display: flex;
  gap: 6px;
  padding: 3px 0;
  border-bottom: 1px solid #EEF2F7;
  color: var(--tx-3);
}
.sig-mini-email__field b {
  color: var(--tx-2);
  width: 44px;
  font-weight: 600;
  flex-shrink: 0;
}
.sig-mini-email__field span {
  color: var(--tx-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sig-mini-email__body {
  padding: 6px 0 8px;
  color: var(--tx-2);
  line-height: 1.5;
  font-size: 10.5px;
}
.sig-mini-email__sig {
  padding: 8px 0 4px;
  border-top: 1px dashed var(--primary);
  position: relative;
  color: var(--tx-1);
}
.sig-mini-email__sig::before {
  content: "SIGNATURE";
  position: absolute;
  top: -7px;
  left: 0;
  background: var(--primary);
  color: #fff;
  font-size: 8px;
  padding: 1px 5px;
  border-radius: 3px;
  letter-spacing: .05em;
  font-weight: 700;
}
.sig-mini-email__sig b {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--tx-1);
}
.sig-mini-email__sig span {
  color: var(--tx-2);
  font-size: 10px;
}
.sig-help-popover__visual-caption {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  color: var(--tx-3);
  line-height: 1.4;
}
.sig-help-popover__visual-caption i {
  color: var(--primary);
  font-size: 12px;
}

/* ---------- Inline page grid: list (left) + create/edit panel (right) ---------- */
.sig-page-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  transition: grid-template-columns .35s cubic-bezier(.4, 0, .2, 1), gap .25s ease;
  align-items: start;
}
.sig-page-grid.is-editing {
  gap: 0;
}
.sig-page-grid.is-resizing {
  transition: none;
}
@media (max-width: 1100px) {
  .sig-page-grid.is-editing {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }
}

/* Draggable resizer between list and panel */
.sig-resizer {
  width: 6px;
  cursor: col-resize;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  z-index: 5;
  background: transparent;
}
.sig-resizer__handle {
  width: 2px;
  height: 40px;
  background: var(--border);
  border-radius: 2px;
  transition: background .15s ease, height .15s ease, width .15s ease;
}
.sig-resizer:hover .sig-resizer__handle,
.sig-resizer.is-dragging .sig-resizer__handle {
  background: var(--primary);
  height: 60px;
  width: 3px;
}
.sig-resizer.is-dragging {
  /* Visual feedback during drag */
}
.sig-page-grid__list {
  min-width: 0;
}
.sig-page-grid__panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(15,23,42,.06);
  position: sticky;
  top: 16px;
  height: calc(100vh - 100px);
}
.sig-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  background: #fff;
  flex-shrink: 0;
}
.sig-panel-header__title {
  font-size: 15px;
  font-weight: 600;
  color: var(--tx-1);
}
.sig-panel-header__actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.sig-panel-action {
  width: 30px;
  height: 30px;
  border: none;
  background: transparent;
  color: var(--tx-3);
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background .15s ease, color .15s ease;
}
.sig-panel-action:hover {
  background: var(--surface);
  color: var(--tx-1);
}
.sig-panel-action--danger:hover {
  background: #FEF2F2;
  color: #dc2626;
}
.sig-panel-action i {
  font-size: 16px;
}
.sig-panel-close {
  width: 30px;
  height: 30px;
  border: none;
  background: transparent;
  color: var(--tx-3);
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease, color .15s ease;
  padding: 0;
}
.sig-panel-close:hover {
  background: var(--surface);
  color: var(--tx-1);
}
.sig-panel-close i {
  font-size: 18px;
}
.sig-panel-body {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.sig-preview-panel-body {
  padding: 20px;
  background: linear-gradient(180deg, #EDF2F9 0%, #E6EEF7 100%);
}
.sig-preview-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--border);
  background: #fff;
  flex-shrink: 0;
}
.sig-preview-topbar__left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sig-preview-topbar__label {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--tx-1);
  white-space: nowrap;
}

/* ---------- Signature skeleton (initial load) ---------- */
@keyframes sig-skel-shimmer {
  0%   { background-position: -200px 0; }
  100% { background-position: calc(200px + 100%) 0; }
}
.signature-skeleton {
  padding: 4px 0;
}
.signature-skeleton__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.signature-skeleton__toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}
.signature-skeleton__rows {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.skel-row {
  display: grid;
  grid-template-columns: 40px 1fr auto;
  gap: 14px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  align-items: flex-start;
}
.skel-bar,
.skel-icon,
.skel-action {
  background: #EEF2F7;
  background-image: linear-gradient(90deg, #EEF2F7 0px, #F8FAFC 60px, #EEF2F7 120px);
  background-size: 200px 100%;
  background-repeat: no-repeat;
  animation: sig-skel-shimmer 1.4s ease infinite;
  border-radius: 4px;
}
.skel-bar--page-title    { width: 200px; height: 20px; }
.skel-bar--page-button   { width: 110px; height: 36px; border-radius: 8px; }
.skel-bar--search        { width: 340px; height: 32px; border-radius: 8px; }
.skel-bar--counter       { width: 80px;  height: 14px; }
.skel-bar--row-title     { width: 60%;   height: 14px; margin-bottom: 8px; }
.skel-bar--row-meta      { width: 40%;   height: 11px; margin-bottom: 10px; }
.skel-bar--row-preview   { width: 100%;  height: 60px; border-radius: 6px; }
.skel-icon {
  width: 40px;
  height: 40px;
  border-radius: 8px;
}
.skel-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
.skel-action {
  width: 30px;
  height: 30px;
  border-radius: 6px;
}

/* Panel slide-in transition - smooth + slightly delayed for material feel */
.sig-panel-enter-active {
  transition: opacity .35s cubic-bezier(.4, 0, .2, 1) .05s, transform .35s cubic-bezier(.4, 0, .2, 1) .05s;
}
.sig-panel-leave-active {
  transition: opacity .2s ease, transform .2s ease;
}
.sig-panel-enter,
.sig-panel-leave-to {
  opacity: 0;
  transform: translateX(40px) scale(.98);
}

/* ---------- Stage 2: Wide first-time howto panel ---------- */
.sig-howto {
  background: linear-gradient(135deg, #F0F7FE 0%, #FFFFFF 60%);
  border: 1px solid #d6e6f7;
  border-radius: 8px;
  padding: 16px 24px;
  margin-bottom: 16px;
  position: relative;
  overflow: hidden;
}
.sig-howto__dismiss {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 26px;
  height: 26px;
  border: none;
  background: rgba(255,255,255,.7);
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tx-2);
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.sig-howto__dismiss:hover {
  background: #fff;
  color: var(--tx-1);
  box-shadow: 0 1px 4px rgba(15,23,42,.08);
}
.sig-howto__dismiss i { font-size: 15px; }
.sig-howto__title {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--tx-1);
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  padding-right: 36px;
}
.sig-howto__title i { color: var(--primary); }
.sig-howto__desc {
  font-size: 12.5px;
  color: var(--tx-2);
  line-height: 1.6;
  margin-bottom: 12px;
  max-width: 720px;
}
.sig-howto__steps {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sig-howto__step {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 12.5px;
  color: var(--tx-2);
}
.sig-howto__step-num {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

/* Vue transitions */
.sig-fade-enter-active,
.sig-fade-leave-active {
  transition: opacity .2s ease, transform .2s ease;
}
.sig-fade-enter,
.sig-fade-leave-to {
  opacity: 0;
  transform: translateY(-4px);
}

.sig-howto-enter-active,
.sig-howto-leave-active {
  transition: opacity .25s ease, transform .25s ease, max-height .3s ease, padding .25s ease, margin .25s ease, border-color .25s ease;
  max-height: 400px;
}
.sig-howto-enter,
.sig-howto-leave-to {
  opacity: 0;
  transform: translateY(-6px);
  max-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin-bottom: 0;
  border-color: transparent;
}

/* ---------- Stage 3: List row card ---------- */
.sig-row {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  transition: border-color .15s ease, box-shadow .15s ease;
  cursor: pointer;
}
.sig-row:hover {
  border-color: var(--primary);
  box-shadow: 0 1px 4px rgba(27,111,190,.07);
}
.sig-row__icon {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--primary-light);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.sig-row__main {
  min-width: 0;
}
.sig-row__title-line {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
  flex-wrap: wrap;
}
.sig-row__title {
  font-size: 14px;
  font-weight: 600;
  color: var(--tx-1);
  word-break: break-word;
}
.sig-row__meta {
  display: flex;
  gap: 14px;
  font-size: 11px;
  color: var(--tx-3);
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.sig-row__meta span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.sig-row__preview {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 12px;
  color: var(--tx-2);
  line-height: 1.55;
  max-height: 92px;
  overflow: hidden;
  position: relative;
}
.sig-row__preview::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 28px;
  background: linear-gradient(to bottom, transparent, var(--surface));
  pointer-events: none;
}
/* Sanitize child elements inside v-html preview so rich signature content stays compact */
.sig-row__preview * {
  max-width: 100% !important;
}
.sig-row__preview img {
  max-height: 50px !important;
  width: auto !important;
}
.sig-row__preview p,
.sig-row__preview div {
  margin: 0 0 4px;
}
.sig-row__preview p:last-child,
.sig-row__preview div:last-child {
  margin-bottom: 0;
}

.sig-row__actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
  align-items: center;
  opacity: 0;
  transition: opacity .15s ease;
}
.sig-row:hover .sig-row__actions,
.sig-row.is-active .sig-row__actions {
  opacity: 1;
}
.sig-row__action {
  width: 30px;
  height: 30px;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 6px;
  color: var(--tx-3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
  padding: 0;
}
.sig-row__action:hover {
  background: var(--surface);
  color: var(--tx-1);
}
.sig-row__action--danger:hover {
  background: #FEF2F2;
  color: #dc2626;
}
.sig-row__action.is-active,
.sig-row__action.is-active:hover {
  background: var(--primary);
  color: #fff;
}
.sig-row__action i {
  font-size: 14px;
  transition: transform .2s ease;
}
.sig-row__action.is-active i {
  transform: rotate(180deg);
}

/* Active row (currently being previewed in side panel) */
.sig-row.is-active {
  border-color: var(--primary);
  background: var(--primary-light);
  box-shadow: 0 0 0 1px var(--primary);
}
.sig-row.is-active .sig-row__icon {
  background: var(--primary);
  color: #fff;
}
.sig-row.is-active .sig-row__preview {
  background: #fff;
}


/* ---------- Stage 4: Toolbar (search + count) ---------- */
.sig-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  
}
.sig-search-box {
  position: relative;
  flex: 1;
  margin-top: 10px;
}
.sig-search-box > i {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--tx-3);
  font-size: 14px;
  pointer-events: none;
}
.sig-search-box input {
  width: 100%;
  padding: 8px 32px 8px 32px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 12.5px;
  font-family: inherit;
  background: #fff;
  color: var(--tx-1);
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.sig-search-box input::placeholder {
  color: var(--tx-3);
}
.sig-search-box input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(27,111,190,.12);
}
.sig-search-clear {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  border: none;
  background: transparent;
  color: var(--tx-3);
  cursor: pointer;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.sig-search-clear:hover {
  background: var(--surface);
  color: var(--tx-1);
}
.sig-search-clear i {
  font-size: 14px;
}
.sig-toolbar__count {
  font-size: 12.5px;
  color: var(--tx-3);
  white-space: nowrap;
}

/* ---------- Stage 4: No-results state ---------- */
.sig-no-results {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 56px 24px;
  text-align: center;
  background: #fff;
  border: 1px dashed var(--border);
  border-radius: 8px;
}
.sig-no-results i {
  font-size: 36px;
  color: var(--tx-3);
  margin-bottom: 10px;
}
.sig-no-results p {
  font-size: 13.5px;
  color: var(--tx-2);
  margin: 0;
}

/* ---------- Stage 4: Numeric pagination ---------- */
.sig-pagination-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.sig-pagination__info {
  margin: 0;
  font-size: 12.5px;
  color: var(--tx-2);
}
.sig-pagination {
  display: flex;
  gap: 4px;
  margin-right: 60px;
}
.sig-pg-btn {
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tx-2);
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 500;
  font-family: inherit;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sig-pg-btn i {
  font-size: 14px;
}
.sig-pg-btn:hover:not(:disabled):not(.is-active):not(.is-ellipsis) {
  background: var(--surface);
  border-color: var(--primary);
  color: var(--primary);
}
.sig-pg-btn:disabled {
  cursor: not-allowed;
}
.sig-pg-btn:disabled:not(.is-active):not(.is-ellipsis) {
  opacity: .4;
}
.sig-pg-btn.is-active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
  font-weight: 600;
}
.sig-pg-btn.is-ellipsis {
  border: none;
  background: transparent;
  color: var(--tx-3);
  cursor: default;
}

/* ---------- Stage 5a: Create/Edit slideout split-pane ---------- */
.sig-edit-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 100%;
  min-height: 100%;
}
.sig-edit-form {
  padding: 20px 24px;
  border-right: 1px solid var(--border);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.sig-edit-form__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding-top: 16px;
  margin-top: auto;
  border-top: 1px solid var(--border);
  position: sticky;
  bottom: 0;
  background: #fff;
}

/* ---------- Live preview section (collapsible) inside sig-edit-form ---------- */
.sig-preview-section {
  margin: 6px 0 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: linear-gradient(180deg, #EDF2F9 0%, #E6EEF7 100%);
  overflow: hidden;
  transition: background .2s ease, border-color .2s ease;
}
.sig-preview-section.is-collapsed {
  background: var(--surface);
}
.sig-preview-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  cursor: pointer;
  user-select: none;
  transition: background .15s ease;
}
.sig-preview-section__head:hover {
  background: rgba(27,111,190,.05);
}
.sig-preview-section__head-info { min-width: 0; }
.sig-preview-section__head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.sig-preview-section__toggle {
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: var(--tx-2);
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background .15s ease, color .15s ease;
}
.sig-preview-section__toggle:hover {
  background: rgba(27,111,190,.08);
  color: var(--primary);
}
.sig-preview-section__toggle i {
  font-size: 18px;
}
.sig-preview-section__body {
  padding: 0 14px 14px;
}

/* Collapse transition */
.sig-preview-collapse-enter-active,
.sig-preview-collapse-leave-active {
  transition: opacity .2s ease, max-height .25s ease, padding .2s ease;
  overflow: hidden;
  max-height: 600px;
}
.sig-preview-collapse-enter,
.sig-preview-collapse-leave-to {
  opacity: 0;
  max-height: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.sig-edit-form__intro {
  font-size: 12px;
  color: var(--tx-2);
  line-height: 1.6;
  margin: 0 0 18px;
  padding: 10px 14px;
  background: linear-gradient(135deg, #F0F7FE 0%, #E7F1FB 100%);
  border: 1px solid #c7dcf3;
  border-left: 3px solid var(--primary);
  border-radius: 6px;
}

/* Form labels (sig-prefix to avoid conflict with global .form-label) */
.sig-form-label {
  display: block;
  font-size: 12.5px;
  color: var(--tx-1);
  font-weight: 600;
  margin-bottom: 6px;
  text-transform: none;
}
.sig-form-label__hint {
  font-size: 11px;
  color: var(--tx-3);
  font-weight: 400;
  margin-left: 6px;
}
.sig-form-help {
  font-size: 11px;
  color: var(--tx-3);
  margin: 4px 0 0;
  line-height: 1.5;
}

/* RIGHT pane: preview - deeper, cooler tone vs form (white) for clear separation */
.sig-edit-preview {
  padding: 20px 24px;
  background: linear-gradient(180deg, #EDF2F9 0%, #E6EEF7 100%);
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
  box-shadow: inset 8px 0 12px -8px rgba(15,23,42,.08);
}
.sig-edit-preview__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}
.sig-edit-preview__head-info {
  min-width: 0;
}
.sig-edit-preview__label {
  font-size: 11px;
  color: var(--tx-3);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 600;
  margin-bottom: 2px;
}
.sig-edit-preview__sub {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--tx-1);
  line-height: 1.3;
}
.sig-edit-preview__toggle {
  display: flex;
  gap: 2px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 2px;
  flex-shrink: 0;
}
.sig-edit-preview__toggle button {
  border: none;
  background: transparent;
  color: var(--tx-2);
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.sig-edit-preview__toggle button:hover {
  color: var(--tx-1);
}
.sig-edit-preview__toggle button.is-active {
  background: var(--primary);
  color: #fff;
}

/* Email mock frame */
.sig-edit-preview__email-wrap {
  flex: 1;
  display: flex;
  justify-content: center;
  transition: max-width .25s ease;
}
.sig-edit-preview__email-wrap.is-desktop .sig-edit-preview__email {
  width: 100%;
}
.sig-edit-preview__email-wrap.is-mobile .sig-edit-preview__email {
  width: 340px;
  max-width: 100%;
}
.sig-edit-preview__email {
  background: #fff;
  border: 1px solid #c5d1e0;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 280px;
  box-shadow: 0 8px 24px rgba(15,23,42,.08), 0 2px 6px rgba(15,23,42,.04);
}
.sig-edit-preview__email-head {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  background: #FAFBFD;
}
.sig-edit-preview__email-from {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--tx-1);
  display: flex;
  align-items: center;
  gap: 6px;
}
.sig-edit-preview__email-from i {
  color: var(--primary);
}
.sig-edit-preview__email-meta {
  font-size: 11px;
  color: var(--tx-3);
  margin-top: 2px;
}
.sig-edit-preview__email-subject {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--tx-1);
  margin-top: 4px;
}
.sig-edit-preview__email-body {
  padding: 14px;
  font-size: 12.5px;
  color: var(--tx-1);
  line-height: 1.6;
  flex: 1;
}
.sig-edit-preview__email-text {
  margin: 0 0 12px;
  color: var(--tx-2);
}
.sig-edit-preview__sig-mark {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0 8px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 600;
  color: var(--primary);
}
.sig-edit-preview__sig-mark::before,
.sig-edit-preview__sig-mark::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #c7d7f5;
}
.sig-edit-preview__sig-mark span {
  flex-shrink: 0;
}
.sig-edit-preview__sig-content {
  font-size: 12px;
  color: var(--tx-1);
  line-height: 1.55;
}
.sig-edit-preview__sig-content * {
  max-width: 100% !important;
}
.sig-edit-preview__sig-content img {
  max-height: 80px !important;
  width: auto !important;
}
.sig-edit-preview__sig-content p,
.sig-edit-preview__sig-content div {
  margin: 0 0 4px;
}
.sig-edit-preview__sig-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 20px;
  font-size: 11.5px;
  color: var(--tx-3);
  border: 1px dashed var(--border);
  border-radius: 6px;
  background: var(--surface);
  text-align: center;
}
.sig-edit-preview__sig-empty i {
  font-size: 24px;
  color: var(--tx-3);
}

/* Responsive: if slideout is fullscreen on narrow viewport, collapse split to single column */
@media (max-width: 900px) {
  .sig-edit-split {
    grid-template-columns: 1fr;
  }
  .sig-edit-form {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }
}

/* ════════════════════════════════════════════════════════════════
   V2 BUTTON — tombol aksi reusable
   Pakai: <button class="v2-btn v2-btn--primary">…</button>
   Varian: --primary (aksi utama) · --outline (sekunder) · --ghost (quiet)
   ════════════════════════════════════════════════════════════════ */
.v2-btn {
  font: inherit;
  font-size: var(--fs-base);
  font-weight: var(--fw-med);
  cursor: pointer;
  border-radius: var(--radius);
  padding: 0 18px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid transparent;
  transition: background .15s, color .15s, border-color .15s;
}
.v2-btn i { position: static; }
.v2-btn:disabled { opacity: .55; cursor: not-allowed; }
.v2-btn--primary {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 4px 14px rgba(27, 111, 190, .3);
}
.v2-btn--primary:hover { background: var(--primary-hover, var(--primary-dark)); }
.v2-btn--outline {
  background: var(--card-bg);
  color: var(--text-2);
  border-color: var(--br-strong);
}
.v2-btn--outline:hover { background: var(--surface); }
.v2-btn--ghost {
  background: transparent;
  color: var(--text-2);
}
.v2-btn--ghost:hover { color: var(--sev-crit); }

/* ════════════════════════════════════════════════════════════════
   V2 ACTION BAR — baris tombol sticky di dasar form/modal
   Posisi/offset (margin) diserahkan ke halaman pemakai.
   ════════════════════════════════════════════════════════════════ */
.v2-actionbar {
  position: sticky;
  bottom: 0;
  z-index: 25;
  padding: 13px 16px;
  background: rgba(255, 255, 255, .95);
  backdrop-filter: blur(6px);
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 10px;
}

/* ════════════════════════════════════════════════════════════════
   V2 WHATSAPP PREVIEW — panel preview pesan WhatsApp reusable
   Struktur:
     .v2-wa-preview
       .v2-wa-preview-cap        (caption "MESSAGE PREVIEW")
       .v2-wa-preview-head       (header hijau: avatar + nama + nomor)
         .v2-wa-preview-avatar
         .v2-wa-preview-name
         .v2-wa-preview-num
       .v2-wa-preview-body       (area chat; .bubble-chat untuk gelembung)
         .v2-wa-preview-empty    (empty state)
   ════════════════════════════════════════════════════════════════ */
.v2-wa-preview {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--card-bg);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}
.v2-wa-preview-cap {
  font-size: 10.5px;
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--text-3);
  padding: 13px 15px 0;
  display: flex;
  align-items: center;
  gap: 6px;
}
.v2-wa-preview-cap i { color: var(--accent); font-size: 13px; }
.v2-wa-preview-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 11px;
  padding: 9px 11px;
  background: #0B6E63;
  color: #fff;
  border-radius: 10px;
}
.v2-wa-preview-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #0f8a7c;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.v2-wa-preview-name { font-size: var(--fs-sm); font-weight: var(--fw-bold); margin: 0; }
.v2-wa-preview-num { font-size: 10.5px; opacity: .8; margin: 1px 0 0; }
.v2-wa-preview-body {
  background-color: #E4DDD4;
  background-image: url("../img/wa-background.png");
  background-repeat: repeat;
  padding: 16px 14px 20px;
  min-height: 280px;
  flex: 1;
  overflow-y: auto;
}
.v2-wa-preview-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 50px 24px;
  color: #9aa49c;
}
.v2-wa-preview-empty i { font-size: 42px; margin-bottom: 10px; }
.v2-wa-preview-empty p { font-size: var(--fs-sm); line-height: 1.5; max-width: 190px; margin: 0; }
.v2-wa-preview-body .bubble-chat {
  position: relative;
  background-color: #fff;
  padding: 12px 14px;
  border-radius: 8px;
  word-break: break-word;
  max-width: 300px;
  font-size: 13px;
  color: #1F2937;
  box-shadow: 0 1px 1px rgba(0, 0, 0, .08);
}
.v2-wa-preview-body .carousel-control-container a { width: 32px !important; height: 32px; }
.v2-wa-preview-body .carousel-control-container a.disabled { background-color: var(--gray-30); }

/* ─────────────────────────────────────────────────────────────
   Modern Chat Dropzone (Drag & Drop file ke room chat)
   Dipakai oleh chat2.vue (NEW design) & chat_instagram.vue (modern mode).
   Aktif saat user drag file dari komputer ke area .brtm-main-area /
   wrapper Instagram modern. Reuse method dragFile/changeLayoutDrag
   ─────────────────────────────────────────────────────────────*/
.brtm-cv-dropzone {
  position: absolute;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(245, 248, 252, 0.94);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  border: 2px dashed #4f6dde;
  border-radius: 12px;
  margin: 8px;
  pointer-events: auto;
  animation: brtmDzFade 0.18s ease-out;
}
@keyframes brtmDzFade {
  from { opacity: 0; transform: scale(0.98); }
  to   { opacity: 1; transform: scale(1); }
}
.brtm-cv-dropzone-inner {
  text-align: center;
  pointer-events: none;
  padding: 24px 32px;
  max-width: 420px;
}
.brtm-cv-dropzone-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #e7eeff;
  color: #4f6dde;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
  line-height: 1;
}
.brtm-cv-dropzone-title {
  font-size: 17px;
  font-weight: 600;
  color: #1a2234;
  margin-bottom: 6px;
  letter-spacing: -0.01em;
}
.brtm-cv-dropzone-sub {
  font-size: 13px;
  color: #54656f;
  line-height: 1.5;
}
.brtm-main-area { position: relative; }



/* ==============================================================
   UI SURVEY — tombol "Beri Masukan" + modal survey tampilan baru
   (.uisv-*) dipakai index2.vue barantumchat
   ============================================================== */
.uisv-sidebar-feedback { position: relative; }
.uisv-sidebar-feedback .uisv-dot {
  position: absolute; top: 7px; right: 7px;
  width: 8px; height: 8px; border-radius: 50%;
  background: #f59e0b; border: 2px solid #fff;
  animation: uisv-pulse 2s ease infinite;
}
.brtm-icon-sidebar.brtm-expanded .uisv-sidebar-feedback .uisv-dot { right: auto; left: 28px; }
@keyframes uisv-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(245,158,11,.45); }
  50%      { box-shadow: 0 0 0 5px rgba(245,158,11,0); }
}

.uisv-overlay {
  position: fixed; inset: 0; background: rgba(15,23,42,.45);
  display: none; align-items: center; justify-content: center;
  z-index: 11000; padding: 20px;
}
.uisv-overlay.is-open { display: flex; }

.uisv-modal {
  position: relative; width: 420px; max-width: 100%;
  background: #fff; border-radius: 14px;
  box-shadow: 0 24px 60px rgba(15,23,42,.25);
  font-family: var(--brtm-font-ui), 'Inter', sans-serif;
  animation: uisv-in .22s ease;
}
@keyframes uisv-in {
  from { opacity: 0; transform: translateY(10px) scale(.98); }
  to   { opacity: 1; transform: none; }
}
.uisv-modal__close {
  position: absolute; top: 12px; right: 12px;
  width: 28px; height: 28px; border: none; border-radius: 50%;
  background: #f1f5f9; color: #64748b;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 16px; cursor: pointer; line-height: 1; z-index: 2;
}
.uisv-modal__close:hover { background: #e2e8f0; color: #334155; }
.uisv-modal__body { padding: 28px 24px 18px; text-align: center; }
.uisv-modal__icon {
  width: 56px; height: 56px; border-radius: 50%;
  margin: 0 auto 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; background: #e7f1fb; color: #1B6FBE;
}
.uisv-modal__icon.is-ok { background: #dcfce7; color: #16a34a; }
.uisv-modal__icon.is-warn { background: #fef3c7; color: #d97706; }
.uisv-modal__title { margin: 0 0 5px; font-size: 16.5px; font-weight: 700; color: #14213b; }
.uisv-modal__sub { margin: 0; font-size: 12.5px; color: #64748b; line-height: 1.55; }
.uisv-modal__footer { display: flex; gap: 12px; padding: 6px 24px 22px; }

.uisv-btn {
  flex: 1; height: 42px; border-radius: 9px;
  font-size: 13px; font-weight: 600; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  transition: background .15s, border-color .15s, opacity .15s;
  font-family: inherit;
}
.uisv-btn--ghost { background: #fff; border: 1px solid #d7dee8; color: #475569; }
.uisv-btn--ghost:hover { background: #f8fafc; }
.uisv-btn--primary { background: #1B6FBE; border: 1px solid #1B6FBE; color: #fff; }
.uisv-btn--primary:hover { background: #15689E; }
.uisv-btn--primary:disabled { opacity: .45; cursor: not-allowed; }
.uisv-btn--danger { background: #fff; border: 1px solid #fecaca; color: #dc2626; }
.uisv-btn--danger:hover { background: #fef2f2; }

.uisv-rating { display: flex; justify-content: center; gap: 8px; margin: 18px 0 4px; }
.uisv-rate {
  width: 58px; padding: 9px 0 7px; border-radius: 11px;
  border: 1.5px solid #e5eaf1; background: #fff; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  transition: transform .12s, border-color .12s, background .12s;
  font-family: inherit;
}
.uisv-rate .em { font-size: 24px; line-height: 1; filter: grayscale(.55); transition: filter .12s, transform .12s; }
.uisv-rate .lb { font-size: 9.5px; font-weight: 600; color: #94a3b8; letter-spacing: .1px; }
.uisv-rate:hover { transform: translateY(-2px); border-color: #bcd6ef; }
.uisv-rate:hover .em { filter: none; }
.uisv-rate.is-active { border-color: #1B6FBE; background: #f0f7fd; }
.uisv-rate.is-active .em { filter: none; transform: scale(1.12); }
.uisv-rate.is-active .lb { color: #1B6FBE; }

.uisv-textwrap { margin-top: 14px; text-align: left; }
.uisv-textwrap label { font-size: 12px; font-weight: 600; color: #475569; display: block; margin-bottom: 6px; }
.uisv-textwrap label span { font-weight: 400; color: #94a3b8; }
.uisv-textarea {
  width: 100%; box-sizing: border-box; min-height: 76px; resize: vertical;
  border: 1.5px solid #e5eaf1; border-radius: 9px;
  padding: 10px 12px; font-size: 12.5px; font-family: inherit; color: #1a2234;
  outline: none; transition: border-color .12s;
}
.uisv-textarea:focus { border-color: #1B6FBE; }
.uisv-textarea::placeholder { color: #b0bcc9; }

.uisv-reasons { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; text-align: left; }
.uisv-reason {
  display: flex; align-items: center; gap: 10px;
  border: 1.5px solid #e5eaf1; border-radius: 10px;
  padding: 11px 13px; cursor: pointer; background: #fff;
  transition: border-color .12s, background .12s;
  font-family: inherit; font-size: 12.5px; color: #334155; text-align: left;
}
.uisv-reason i { font-size: 15px; color: #94a3b8; flex-shrink: 0; transition: color .12s; }
.uisv-reason:hover { border-color: #bcd6ef; }
.uisv-reason.is-active { border-color: #1B6FBE; background: #f0f7fd; color: #14213b; font-weight: 600; }
.uisv-reason.is-active i { color: #1B6FBE; }
.uisv-reason .uisv-check {
  margin-left: auto; width: 18px; height: 18px; border-radius: 50%;
  border: 1.5px solid #d7dee8; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px; color: transparent; transition: all .12s;
}
.uisv-reason.is-active .uisv-check { background: #1B6FBE; border-color: #1B6FBE; color: #fff; }

/* UI Survey — spotlight intro sekali muncul (anak .uisv-sidebar-feedback) */
.uisv-sidebar-feedback.uisv-intro-highlight {
  background: var(--primary-light, #E7F1FB);
  color: var(--primary, #1B6FBE);
  box-shadow: 0 0 0 3px rgba(27,111,190,.25);
  animation: uisv-intro-ring 1.6s ease infinite;
}
@keyframes uisv-intro-ring {
  0%, 100% { box-shadow: 0 0 0 3px rgba(27,111,190,.25); }
  50%      { box-shadow: 0 0 0 7px rgba(27,111,190,.08); }
}
.uisv-intro {
  position: absolute;
  left: calc(100% + 18px);
  bottom: -10px;
  width: 236px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 14px 14px 12px;
  text-align: left;
  cursor: default;
  box-shadow: 0 14px 36px rgba(15,23,42,.22), 0 3px 10px rgba(15,23,42,.10);
  z-index: 10001;
  animation: uisv-intro-in .28s ease;
  font-family: var(--brtm-font-ui), 'Inter', sans-serif;
}
@keyframes uisv-intro-in {
  from { opacity: 0; transform: translateX(-8px); }
  to   { opacity: 1; transform: none; }
}
.uisv-intro::before {
  content: '';
  position: absolute;
  left: -7px;
  bottom: 22px;
  width: 12px; height: 12px;
  background: #fff;
  border-left: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  transform: rotate(45deg);
}
.uisv-intro__title {
  font-size: 13px; font-weight: 700; color: #14213b;
  margin-bottom: 4px; white-space: normal;
}
.uisv-intro__text {
  font-size: 12px; color: #64748b; line-height: 1.5;
  margin-bottom: 10px; white-space: normal;
}
.uisv-intro__btn {
  width: 100%; height: 32px;
  border: none; border-radius: 8px;
  background: #1B6FBE; color: #fff;
  font-size: 12px; font-weight: 600; cursor: pointer;
  font-family: inherit;
  transition: background .15s;
}
.uisv-intro__btn:hover { background: #15689E; }

/* UI Survey — chip pertanyaan komparatif & aspek */
.uisv-qlabel {
  font-size: 12px; font-weight: 600; color: #475569;
  text-align: left; margin: 16px 0 8px;
}
.uisv-chips { display: flex; flex-wrap: wrap; gap: 6px; text-align: left; }
.uisv-chip {
  border: 1.5px solid #e5eaf1; border-radius: 999px;
  padding: 6px 12px; font-size: 12px; color: #334155;
  background: #fff; cursor: pointer; font-family: inherit;
  transition: border-color .12s, background .12s, color .12s;
}
.uisv-chip:hover { border-color: #bcd6ef; }
.uisv-chip.is-active { border-color: #1B6FBE; background: #f0f7fd; color: #1B6FBE; font-weight: 600; }

/* Tombol feedback selalu berwarna (rose, sengaja beda dari oranye billing-warning)
   supaya gampang ditemukan walau survey sudah diisi */
.brtm-chat-page .brtm-sidebar-icon.uisv-sidebar-feedback {
  background: #fdf2f8; border: 1.5px solid #fbcfe8; color: #db2777;
}
.brtm-chat-page .brtm-sidebar-icon.uisv-sidebar-feedback:hover { background: #fce7f3; color: #be185d; }
.brtm-chat-page .brtm-sidebar-icon.uisv-sidebar-feedback .brtm-sidebar-label { color: #db2777; font-weight: 600; }
/* Saat BELUM isi survey: tambahan pulse di icon + chip "Baru" */
.brtm-chat-page .brtm-sidebar-icon.uisv-attn i { animation: uisv-attn-pulse 1.8s infinite; }
.uisv-attn-chip {
  display: none;
  font-size: 10px; font-weight: 700; color: #db2777;
  background: #fce7f3; border: 1px solid #fbcfe8;
  border-radius: 5px; padding: 1px 6px;
  white-space: nowrap; margin-left: auto;
  animation: uisv-attn-pulse 1.8s infinite;
}
.brtm-icon-sidebar.brtm-expanded .uisv-attn .uisv-attn-chip { display: inline-block; }
@keyframes uisv-attn-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: .55; }
}
/* ring intro diselaraskan rose mengikuti warna tombol feedback */
.uisv-sidebar-feedback.uisv-intro-highlight {
  box-shadow: 0 0 0 3px rgba(219,39,119,.25);
  animation: uisv-intro-ring-rose 1.6s ease infinite;
}
@keyframes uisv-intro-ring-rose {
  0%, 100% { box-shadow: 0 0 0 3px rgba(219,39,119,.25); }
  50%      { box-shadow: 0 0 0 7px rgba(219,39,119,.08); }
}

/* ============================================================
   MERGE (full-page) — module Contacts, dst — (.mrg-*)
   Port dari AI Studio/merge.html. Accent pakai --primary (sama
   dengan biru mockup #1B6FBE), supaya otomatis konsisten kalau
   modul lain punya --primary beda saat nanti di-porting.
   ============================================================ */
:root{ --mrg: var(--primary); --mrg-soft:#E7F1FB; --mrg-border:#BBD5F0;
       --conflict:#D97706; --conflict-soft:#FEF3C7; }

/* Chain flex (.brtm-page-shell/.brtm-page-content) tidak pernah benar-benar
   dibatasi tinggi sampai ke root (layouts/app.vue cuma <div class="w-100">
   tanpa height/overflow) — flex:1 sendirian tidak cukup, makanya .mrg-center
   ikut discroll global Chrome. Pola yang sudah terbukti jalan di halaman lain
   (.brtm-page-wrap, .brtm-icon-sidebar, dll): height eksplisit calc(100vh -
   var(--tfa-chrome-h)). Angkanya DIUKUR runtime oleh App.vue >
   _measureChrome(), jadi ikut berubah saat pita "tampilan baru" muncul
   (55 -> 89px) atau navbar wrap di <992px. */
.mrg-page{height:calc(100vh - var(--tfa-chrome-h, 55px) - 1px);min-height:0;overflow:hidden;background:var(--surface);display:flex;flex-direction:column}
.mrg-sel-list::-webkit-scrollbar,
.mrg-side::-webkit-scrollbar,
.mrg-center::-webkit-scrollbar,
.mrg-preview-col::-webkit-scrollbar{width:7px;height:7px}
.mrg-sel-list::-webkit-scrollbar-track,
.mrg-side::-webkit-scrollbar-track,
.mrg-center::-webkit-scrollbar-track,
.mrg-preview-col::-webkit-scrollbar-track{background:transparent}
.mrg-sel-list::-webkit-scrollbar-thumb,
.mrg-side::-webkit-scrollbar-thumb,
.mrg-center::-webkit-scrollbar-thumb,
.mrg-preview-col::-webkit-scrollbar-thumb{background:#CBD3E0;border-radius:99px;border:2px solid transparent;background-clip:content-box}
.mrg-sel-list::-webkit-scrollbar-thumb:hover,
.mrg-side::-webkit-scrollbar-thumb:hover,
.mrg-center::-webkit-scrollbar-thumb:hover,
.mrg-preview-col::-webkit-scrollbar-thumb:hover{background:#A8B3C4;background-clip:content-box}
.mrg-sel-list{scrollbar-width:thin;scrollbar-color:#C7D0DE transparent}

/* ---- Header band ---- */
.mrg-head{flex-shrink:0;z-index:20;background:var(--card-bg);border-bottom:1px solid var(--border);
          display:flex;align-items:center;gap:14px;padding:11px 22px;flex-wrap:wrap}
.mrg-back{width:34px;height:34px;border:1px solid var(--border);background:#fff;border-radius:9px;
          display:flex;align-items:center;justify-content:center;color:var(--text-2);font-size:15px;cursor:pointer;flex-shrink:0}
.mrg-back:hover{background:var(--surface);color:var(--text-1)}
.mrg-head-icon{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#1B6FBE,#134E8E);
               color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;
               box-shadow:0 6px 16px rgba(27,111,190,.30)}
.mrg-head-tx{min-width:0}
.mrg-head-title{font-size:15px;font-weight:700;color:var(--text-1);line-height:1.15}
.mrg-head-sub{font-size:11.5px;color:var(--text-3);margin-top:1px}
.mrg-head-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.mrg-close{width:34px;height:34px;border:none;background:transparent;color:var(--text-3);border-radius:9px;
           cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center}
.mrg-close:hover{background:var(--surface);color:var(--text-1)}

/* ---- 3-column workspace (kiri & kanan bisa di-resize) ---- */
.mrg-work{position:relative;flex:1;min-height:0;overflow:hidden;display:grid;
          grid-template-columns:var(--mrg-lw,300px) 1fr var(--mrg-rw,340px);
          grid-template-rows:minmax(0,1fr);gap:16px;
          padding:18px 22px;align-items:stretch;max-width:1560px;width:100%;margin:0 auto}
@media(max-width:1200px){.mrg-work{grid-template-columns:var(--mrg-lw,260px) 1fr}.mrg-preview-col{display:none}}
.mrg-rz{position:absolute;top:0;bottom:0;width:12px;margin-left:-6px;cursor:col-resize;z-index:16;
        display:flex;align-items:center;justify-content:center}
.mrg-rz .grip{display:block;width:4px;height:48px;border-radius:99px;background:var(--border);transition:background .12s,height .12s}
.mrg-rz:hover .grip,.mrg-rz.drag .grip{background:var(--mrg);height:64px}
body.mrg-resizing{cursor:col-resize!important;user-select:none}

.mrg-col-head{display:flex;align-items:center;gap:8px;margin-bottom:11px;padding:0 2px}
.mrg-col-head .ic{width:26px;height:26px;border-radius:8px;background:var(--mrg-soft);color:var(--mrg);
                  display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.mrg-col-title{font-size:12.5px;font-weight:700;color:var(--text-1)}
.mrg-col-sub{font-size:11px;color:var(--text-3)}

/* == LEFT — daftar record sumber (scroll independen) == */
.mrg-side{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;
          scrollbar-width:thin;scrollbar-color:#C7D0DE transparent}
.mrg-rec{background:var(--card-bg);border:1.5px solid var(--border);border-radius:12px;padding:12px;margin-bottom:10px;
         position:relative;transition:all .12s}
.mrg-rec.mrg-survivor{border-color:var(--mrg);background:linear-gradient(180deg,#fff,var(--mrg-soft))}
.mrg-rec-top{display:flex;align-items:center;gap:10px}
.mrg-rec-av{width:38px;height:38px;border-radius:10px;color:#fff;display:flex;align-items:center;justify-content:center;
            font-size:15px;font-weight:700;flex-shrink:0}
.mrg-rec-info{min-width:0;flex:1}
.mrg-rec-name{font-size:13px;font-weight:700;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrg-rec-meta{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.mrg-rec-badge{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;text-transform:uppercase;
               letter-spacing:.4px;padding:2px 8px;border-radius:99px;margin-top:8px}
.mrg-rec-badge.survivor{background:var(--mrg);color:#fff}
.mrg-rec-badge.source{background:var(--surface);color:var(--text-2)}
.mrg-rec-actions{display:flex;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}
.mrg-rec-act{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:600;
             padding:5px 6px;border-radius:7px;border:1px solid var(--border);background:#fff;color:var(--text-2);cursor:pointer}
.mrg-rec-act:hover{background:var(--surface);color:var(--text-1)}
.mrg-rec-act.set:hover{border-color:var(--mrg);color:var(--mrg);background:var(--mrg-soft)}
.mrg-rec-act.del:hover{border-color:#FECACA;color:#EF4444;background:#FEF2F2}
.mrg-rec-act[disabled]{opacity:.4;cursor:not-allowed}
.mrg-add{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;padding:11px;border-radius:11px;
         border:1.5px dashed var(--border);background:#fff;color:var(--text-2);font-size:12px;font-weight:600;cursor:pointer}
.mrg-add:hover{border-color:var(--mrg);color:var(--mrg);background:var(--mrg-soft)}
.mrg-add:disabled{opacity:.5;cursor:not-allowed;border-color:var(--border);color:var(--text-3);background:#fff}
.mrg-max-hint{font-size:10.5px;color:var(--text-3);text-align:center;margin-top:6px}

.mrg-primary{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;
             border:1.5px solid var(--mrg);background:linear-gradient(180deg,#fff,var(--mrg-soft))}
.mrg-primary .av{width:38px;height:38px;border-radius:10px;color:#fff;display:flex;align-items:center;
                 justify-content:center;font-size:15px;font-weight:700;flex-shrink:0;background:var(--mrg)}
.mrg-primary .info{min-width:0;flex:1}
.mrg-primary .nm{font-size:13px;font-weight:700;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrg-primary .mt{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.mrg-primary .badge{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:700;text-transform:uppercase;
                    letter-spacing:.4px;padding:3px 8px;border-radius:99px;background:var(--mrg);color:#fff;margin-top:5px}
.mrg-primary .lock{margin-left:auto;color:var(--mrg);font-size:13px;flex-shrink:0}

.mrg-slot-lbl{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.3px;margin:16px 0 9px}
.mrg-slot-lbl span{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-3)}

.mrg-slot{position:relative;margin-bottom:9px}
.mrg-sel{display:flex;align-items:center;gap:9px;min-height:46px;padding:7px 10px;border:1.5px solid var(--border);
         border-radius:10px;background:#fff;cursor:pointer;transition:all .12s}
.mrg-sel:hover{border-color:var(--mrg-border)}
.mrg-slot.open .mrg-sel{border-color:var(--mrg);box-shadow:0 0 0 3px rgba(27,111,190,.12)}
.mrg-sel .av{width:30px;height:30px;border-radius:8px;color:#fff;display:flex;align-items:center;justify-content:center;
             font-size:12px;font-weight:700;flex-shrink:0}
.mrg-sel .ph{color:var(--text-3);font-size:12.5px;flex:1}
.mrg-sel .info{min-width:0;flex:1}
.mrg-sel .nm{font-size:12.5px;font-weight:700;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrg-sel .mt{font-size:10.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrg-sel .chev{color:var(--text-3);font-size:11px;flex-shrink:0;transition:transform .15s}
.mrg-slot.open .mrg-sel .chev{transform:rotate(180deg)}
.mrg-sel .clr{color:var(--text-3);font-size:13px;flex-shrink:0;padding:2px}
.mrg-sel .clr:hover{color:#EF4444}
.mrg-sel-list{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:15;background:#fff;
              border:1px solid var(--border);border-radius:11px;box-shadow:0 12px 30px rgba(24,35,58,.14);padding:5px;max-height:260px;overflow-y:auto}
.mrg-slot.open .mrg-sel-list{display:block}
.mrg-sel-search{display:flex;align-items:center;gap:7px;padding:6px 9px;margin-bottom:4px;border:1px solid var(--border);border-radius:8px}
.mrg-sel-search i{color:var(--text-3);font-size:12px}
.mrg-sel-search input{border:none;outline:none;font-family:inherit;font-size:12px;width:100%;color:var(--text-1);background:transparent}
.mrg-sel-item{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;cursor:pointer}
.mrg-sel-item:hover{background:var(--mrg-soft)}
.mrg-sel-item .av{width:28px;height:28px;border-radius:8px;color:#fff;display:flex;align-items:center;justify-content:center;
                  font-size:11px;font-weight:700;flex-shrink:0}
.mrg-sel-item .nm{font-size:12px;font-weight:600;color:var(--text-1)}
.mrg-sel-item .mt{font-size:10.5px;color:var(--text-3)}
.mrg-sel-empty{padding:14px;text-align:center;font-size:11.5px;color:var(--text-3)}

/* == CENTER — rekonsiliasi field (scroll independen) == */
.mrg-center{min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;
            scrollbar-width:thin;scrollbar-color:#C7D0DE transparent}
.mrg-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--mrg-soft);border:1px solid var(--mrg-border);
             border-radius:11px;padding:10px 13px;margin-bottom:14px;position:sticky;top:0;z-index:10}
.mrg-tb-lbl{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--mrg)}
.mrg-tb-lbl i{font-size:13px}
.mrg-tb-btns{display:inline-flex;gap:6px}
.mrg-tb-btn{font-size:11.5px;font-weight:600;color:var(--text-1);background:#fff;border:1px solid var(--mrg-border);
            border-radius:7px;padding:5px 10px;cursor:pointer}
.mrg-tb-btn:hover{border-color:var(--mrg);color:var(--mrg);background:#fff;box-shadow:0 0 0 2px rgba(27,111,190,.12)}
/* Kartu aktif = record yang sedang jadi sumber SELURUH field (lihat
   computed bulkActiveRecId di merge.vue). Menyala saat muat pertama
   (semua dari record utama) & setelah tombol bulk ditekan. */
.mrg-tb-btn.active{border-color:var(--mrg);color:#fff;background:var(--mrg);box-shadow:0 0 0 2px rgba(27,111,190,.18)}
.mrg-tb-btn.active:hover{color:#fff;background:var(--mrg)}
/* Pemisah + gaya tombol "Yang ada isinya": aksinya BEDA jenis dari tombol
   per-record (tidak mengunci ke satu kartu), jadi dibedakan lewat garis
   putus-putus supaya tidak terbaca sebagai kartu record tambahan. */
.mrg-tb-sep{width:1px;align-self:stretch;margin:0 2px;background:var(--mrg-border)}
.mrg-tb-btn.auto{border-style:dashed;color:var(--text-2)}
.mrg-tb-btn.auto:hover{border-style:dashed;border-color:var(--mrg);color:var(--mrg)}
.mrg-tb-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-2);cursor:pointer;user-select:none}

.mrg-group{background:var(--card-bg);border:1px solid var(--border);border-radius:13px;margin-bottom:14px;overflow:hidden}
.mrg-group-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--mrg-border);
                background:linear-gradient(90deg,var(--mrg-soft),rgba(231,241,251,.35));border-left:3px solid var(--mrg)}
.mrg-group-head .ic{width:26px;height:26px;border-radius:8px;background:var(--mrg);color:#fff;display:flex;
                    align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.mrg-group-title{font-size:13px;font-weight:700;color:var(--text-1);letter-spacing:.1px}
.mrg-group-count{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.3px}
.mrg-group-count .cf{color:var(--conflict)}

.mrg-field{padding:12px 15px;border-bottom:1px solid var(--border)}
.mrg-field:last-child{border-bottom:none}
.mrg-field.mrg-same{background:#FCFCFD}
.mrg-field-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.mrg-field-label{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.3px}
.mrg-flag{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;padding:1px 7px;border-radius:99px}
.mrg-flag.conflict{background:var(--conflict-soft);color:var(--conflict)}
.mrg-flag.same{background:#ECFDF5;color:#059669}
.mrg-flag.empty{background:var(--surface);color:var(--text-3)}
.mrg-field-top .mrg-collapse-hint{margin-left:auto;font-size:10.5px;color:var(--text-3);cursor:pointer}

.mrg-cands{display:flex;flex-direction:column;gap:7px}
.mrg-cand{display:flex;align-items:center;gap:12px;border:1.5px solid var(--border);border-radius:9px;padding:9px 13px;
          cursor:pointer;background:#fff;transition:all .12s;min-width:0}
.mrg-cand:hover{border-color:var(--mrg-border);background:var(--mrg-soft)}
.mrg-cand.mrg-picked{border-color:var(--mrg);background:var(--mrg-soft);box-shadow:0 0 0 1px var(--mrg) inset}
.mrg-cand-src{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-3);
              flex-shrink:0;width:104px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrg-cand.mrg-picked .mrg-cand-src{color:var(--mrg)}
.mrg-cand-val{flex:1;min-width:0;font-size:12.5px;color:var(--text-1);word-break:break-word;line-height:1.35}
.mrg-cand-val.empty{color:var(--text-3);font-style:italic}
.mrg-cand-input{flex:1;min-width:0;font-family:inherit;font-size:12.5px;color:var(--text-1);border:1px solid var(--mrg-border);
                border-radius:6px;padding:5px 9px;outline:none;background:#fff}
.mrg-cand-input:focus{border-color:var(--mrg);box-shadow:0 0 0 2px rgba(27,111,190,.14)}
/* wrapper widget tipe-spesifik (component-text/singleoption/dkk) di kartu
   "Nilai sendiri" — reset shell brtm-field bawaan komponen supaya rata
   sejajar dengan kartu kandidat lain di baris yang sama. */
.mrg-cand-input-wrap{flex:1;min-width:0;font-size:12.5px}
.mrg-cand-input-wrap .brtm-field{margin:0}
.mrg-cand-input-wrap .brtm-form-control{font-size:12.5px;padding:5px 9px;height:auto;min-height:32px}
.mrg-cand.custom{border-style:dashed}
.mrg-radio{width:17px;height:17px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;position:relative;order:9}
.mrg-cand.mrg-picked .mrg-radio{border-color:var(--mrg);background:var(--mrg)}
.mrg-cand.mrg-picked .mrg-radio::after{content:'';position:absolute;inset:3px;border-radius:50%;background:#fff}

/* == field "Last Activity" (nilai = OBJEK aktivitas) → link + preview inline ==
   Hanya aktif kalau API merge mengirim objek aktivitas {activity_module,
   activity_subject, activity_date_created, activity_last_name} (bentuk yg SAMA
   dengan yg sudah dikirim listing/customRenderAgGrid). Nilai skalar → render biasa. */
/* overflow:hidden SENGAJA dibatasi ke .rich saja. Sebelumnya ditulis polos
   `.mrg-cand{overflow:hidden}` — padahal ia bagian dari blok "Last Activity"
   di atas, jadi maksudnya cuma memotong teks kartu aktivitas. Akibat tak
   sengaja: SEMUA sel kandidat ikut memotong, sehingga dropdown vue-multiselect
   di baris "Nilai sendiri" (Products Status/Brand/Category dll.) tertelan
   begitu dibuka — daftar opsinya ter-clip tepat di batas sel. */
.mrg-cand.rich{overflow:hidden}
.mrg-cand.rich{align-items:flex-start}

/* Saat dropdown BENAR-BENAR terbuka, lepaskan clipping di sel & kartu grup
   supaya daftar opsi bisa keluar. Dipakai :has() (sudah dipakai 11x di file
   ini) agar hanya aktif selama dropdown terbuka — di luar itu .mrg-group
   tetap overflow:hidden supaya sudut membulatnya tidak bocor. */
.mrg-cand:has(.multiselect--active){overflow:visible}
.mrg-group:has(.multiselect--active){overflow:visible}
.mrg-cand.rich .mrg-cand-src{padding-top:2px}
.mrg-cand.rich .mrg-radio{margin-top:2px}
.mrg-actinline{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:5px}
.mrg-actinline-head{display:flex;align-items:center;gap:8px;max-width:100%;min-width:0;color:var(--mrg);font-weight:700;font-size:13px;text-decoration:none}
.mrg-actinline-head:hover .mrg-actinline-subj{border-bottom-color:currentColor}
.mrg-actinline-subj{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px dashed transparent}
/* deskripsi aktivitas — clamp 2 baris spt prototype, biar kartu tidak tumbuh liar kalau catatannya panjang */
.mrg-actinline-body{font-size:12px;color:var(--text-2);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.mrg-actinline-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11px;color:var(--text-3)}
.mrg-actinline-meta span{display:inline-flex;align-items:center;gap:5px;min-width:0}
.mrg-actinline-meta i{font-size:13px;flex:0 0 auto}
.mrg-actinline-meta .ownr{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrg-act-ico{width:22px;height:22px;flex:0 0 22px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;background:#64748b}
.mrg-act-ico.acc-meetings{background:#7c3aed}
.mrg-act-ico.acc-calls{background:#0ea5e9}
.mrg-act-ico.acc-tasks{background:#f59e0b}
.mrg-act-ico.acc-notes{background:#64748b}
.mrg-act-ico.acc-deals{background:#16a34a}
.mrg-act-ico.acc-tickets{background:#ef4444}
.mrg-act-ico.acc-survey{background:#ec4899}
.mrg-act-ext{font-size:14px;flex:0 0 auto;opacity:.7}
.mrg-cand.disabled{cursor:default;background:#fafbfd}
.mrg-cand.disabled:hover{border-color:var(--border);background:#fafbfd}
.mrg-pv-link{display:inline-flex;align-items:center;gap:5px;color:var(--mrg);font-weight:600;justify-content:flex-end;max-width:100%;text-decoration:none}
.mrg-pv-link .mrg-act-ico{width:18px;height:18px;flex:0 0 18px;border-radius:5px;font-size:11px}
.mrg-pv-link span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* == RIGHT — live preview == */
.mrg-preview-col{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;
                 scrollbar-width:thin;scrollbar-color:#C7D0DE transparent}
.mrg-summary{background:var(--card-bg);border:1px solid var(--border);border-radius:13px;padding:14px;margin-bottom:12px}
.mrg-sum-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding:5px 0}
.mrg-sum-row+.mrg-sum-row{border-top:1px dashed var(--border)}
.mrg-sum-lbl{color:var(--text-2)}
.mrg-sum-val{font-weight:700;color:var(--text-1)}
.mrg-sum-val.warn{color:var(--conflict)}
.mrg-sum-val.ok{color:#059669}
.mrg-progress{height:7px;border-radius:99px;background:var(--surface);overflow:hidden;margin:10px 0 4px}
.mrg-progress-bar{height:100%;background:linear-gradient(90deg,#1B6FBE,#134E8E);border-radius:99px;transition:width .25s}

.mrg-preview{background:var(--card-bg);border:1px solid var(--border);border-radius:13px;overflow:hidden}
.mrg-pv-head{background:linear-gradient(135deg,var(--mrg),#134E8E);color:#fff;padding:15px;display:flex;align-items:center;gap:11px}
.mrg-pv-av{width:42px;height:42px;border-radius:11px;background:rgba(255,255,255,.2);display:flex;align-items:center;
           justify-content:center;font-size:17px;font-weight:700;flex-shrink:0}
.mrg-pv-name{font-size:14px;font-weight:700;line-height:1.2}
.mrg-pv-sub{font-size:11px;opacity:.85;margin-top:2px}
.mrg-pv-tag{display:inline-block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;
            background:rgba(255,255,255,.22);padding:2px 7px;border-radius:99px;margin-top:6px}
.mrg-pv-body{padding:6px 15px 12px}
.mrg-pv-item{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px}
.mrg-pv-item:last-child{border-bottom:none}
.mrg-pv-k{color:var(--text-3);flex-shrink:0}
.mrg-pv-v{color:var(--text-1);font-weight:600;text-align:right;word-break:break-word}
.mrg-pv-v.from-custom{color:var(--mrg)}

/* ---- action buttons (di header kanan) ---- */
.mrg-btn{font-size:12.5px;font-weight:600;border-radius:9px;padding:9px 16px;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--text-2)}
.mrg-btn:hover{background:var(--surface)}
.mrg-btn.reset{color:#EF4444;border-color:#FECACA}
.mrg-btn.reset:hover{background:#FEF2F2}
.mrg-btn.primary{background:var(--mrg);border-color:var(--mrg);color:#fff;box-shadow:0 4px 12px rgba(27,111,190,.28)}
.mrg-btn.primary:hover{filter:brightness(1.06)}
.mrg-btn.primary[disabled]{background:#CBD1DC;border-color:#CBD1DC;box-shadow:none;cursor:not-allowed}

/* confirm dialog */
.mrg-confirm-ov{position:fixed;inset:0;z-index:60;background:rgba(24,35,58,.5);display:flex;align-items:center;justify-content:center;padding:20px}
.mrg-confirm{background:#fff;border-radius:15px;width:420px;max-width:100%;padding:24px;text-align:center}
.mrg-confirm-ic{width:56px;height:56px;border-radius:50%;background:#FEF2F2;color:#EF4444;display:flex;align-items:center;
                justify-content:center;font-size:26px;margin:0 auto 14px}
.mrg-confirm-title{font-size:16px;font-weight:700;color:var(--text-1)}
.mrg-confirm-sub{font-size:12.5px;color:var(--text-2);line-height:1.55;margin-top:8px}
.mrg-confirm-acts{display:flex;gap:10px;margin-top:20px}
.mrg-confirm-acts .mrg-btn{flex:1;justify-content:center;display:inline-flex}
.mrg-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);z-index:70;background:#111827;
           color:#fff;padding:11px 20px;border-radius:10px;font-size:13px;opacity:0;transition:all .25s;pointer-events:none}
.mrg-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ============================================================
   IMPOR DATA (full-page) — module generik, dipakai semua modul — (.imp-*)
   Port dari AI Studio/import.html. Susunan MENGIKUTI .mrg-* di atas
   (3-kolom resizable: sumber · pemetaan · live-preview); reuse token
   --primary/--conflict yang sama supaya konsisten dengan MERGE.
   ============================================================ */
:root{ --imp: var(--primary); --imp-soft:#E7F1FB; --imp-border:#BBD5F0; --imp-dark:#134E8E; }

.imp-page{height:calc(100vh - var(--tfa-chrome-h, 55px) - 1px);min-height:0;overflow:hidden;background:var(--surface);display:flex;flex-direction:column}
.imp-side::-webkit-scrollbar,.imp-center::-webkit-scrollbar,.imp-preview-col::-webkit-scrollbar{width:7px;height:7px}
.imp-side::-webkit-scrollbar-track,.imp-center::-webkit-scrollbar-track,.imp-preview-col::-webkit-scrollbar-track{background:transparent}
.imp-side::-webkit-scrollbar-thumb,.imp-center::-webkit-scrollbar-thumb,.imp-preview-col::-webkit-scrollbar-thumb{background:#CBD3E0;border-radius:99px;border:2px solid transparent;background-clip:content-box}
.imp-side::-webkit-scrollbar-thumb:hover,.imp-center::-webkit-scrollbar-thumb:hover,.imp-preview-col::-webkit-scrollbar-thumb:hover{background:#A8B3C4;background-clip:content-box}
.imp-side,.imp-center,.imp-preview-col{scrollbar-width:thin;scrollbar-color:#C7D0DE transparent}

/* ---- Header band ---- */
.imp-head{flex-shrink:0;z-index:20;background:var(--card-bg);border-bottom:1px solid var(--border);
          display:flex;align-items:center;gap:14px;padding:11px 22px;flex-wrap:wrap}
.imp-back{width:34px;height:34px;border:1px solid var(--border);background:#fff;border-radius:9px;
          display:flex;align-items:center;justify-content:center;color:var(--text-2);font-size:15px;cursor:pointer;flex-shrink:0}
.imp-back:hover{background:var(--surface);color:var(--text-1)}
.imp-head-icon{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#1B6FBE,#134E8E);
               color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;
               box-shadow:0 6px 16px rgba(27,111,190,.30)}
.imp-head-tx{min-width:0}
.imp-head-title{font-size:15px;font-weight:700;color:var(--text-1);line-height:1.15;display:flex;align-items:center;gap:9px}
.imp-head-sub{font-size:11.5px;color:var(--text-3);margin-top:1px}
.imp-head-tag{display:inline-flex;align-items:center;gap:6px;background:var(--imp-soft);border:1px solid var(--imp-border);
              color:var(--imp-dark);border-radius:99px;padding:4px 12px;font-size:11.5px;font-weight:700}
.imp-head-right{margin-left:auto;display:flex;align-items:center;gap:8px}

.imp-btn{font-size:12.5px;font-weight:600;border-radius:9px;padding:9px 16px;cursor:pointer;border:1px solid var(--border);
         background:#fff;color:var(--text-2);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.imp-btn:hover{background:var(--surface)}
.imp-btn.primary{background:var(--imp);border-color:var(--imp);color:#fff;box-shadow:0 4px 12px rgba(27,111,190,.28)}
.imp-btn.primary:hover{filter:brightness(1.06)}
.imp-btn.primary[disabled]{background:#CBD1DC;border-color:#CBD1DC;box-shadow:none;filter:none;cursor:not-allowed}
.imp-btn.sm{padding:6px 11px;font-size:11.5px}

/* ---- 3-column workspace (kiri & kanan bisa di-resize) ---- */
.imp-work{position:relative;flex:1;min-height:0;overflow:hidden;display:grid;
          grid-template-columns:var(--imp-lw,320px) 1fr var(--imp-rw,340px);grid-template-rows:minmax(0,1fr);gap:16px;
          padding:18px 22px;align-items:stretch;max-width:1560px;width:100%;margin:0 auto}
@media(max-width:1180px){.imp-work{grid-template-columns:var(--imp-lw,300px) 1fr}.imp-preview-col{display:none}}
.imp-rz{position:absolute;top:0;bottom:0;width:12px;margin-left:-6px;cursor:col-resize;z-index:16;display:flex;align-items:center;justify-content:center}
.imp-rz .grip{display:block;width:4px;height:48px;border-radius:99px;background:var(--border);transition:background .12s,height .12s}
.imp-rz:hover .grip,.imp-rz.drag .grip{background:var(--imp);height:64px}
body.imp-resizing{cursor:col-resize!important;user-select:none}

.imp-col-head{display:flex;align-items:center;gap:8px;margin-bottom:11px;padding:0 2px;flex-shrink:0}
.imp-col-head .ic{width:26px;height:26px;border-radius:8px;background:var(--imp-soft);color:var(--imp);
                  display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.imp-col-title{font-size:12.5px;font-weight:700;color:var(--text-1)}
.imp-col-sub{font-size:11px;color:var(--text-3)}

/* == LEFT — berkas + pengaturan == */
.imp-side{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;display:flex;flex-direction:column}
.imp-side .imp-empty-fill,.imp-side .imp-loaded-fill{flex:1;display:flex;flex-direction:column}

.imp-file{display:flex;align-items:center;gap:11px;padding:12px;border-radius:12px;
          border:1.5px solid var(--imp);background:linear-gradient(180deg,#fff,var(--imp-soft))}
.imp-file .fic{width:40px;height:40px;border-radius:10px;background:#fff;border:1px solid var(--imp-border);color:#059669;
               display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.imp-file .info{min-width:0;flex:1}
.imp-file .nm{font-size:13px;font-weight:700;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imp-file .mt{font-size:11px;color:var(--text-3);margin-top:2px}
.imp-file .mt b{color:#059669}
.imp-file .badge{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:700;text-transform:uppercase;
                 letter-spacing:.4px;padding:3px 8px;border-radius:99px;background:var(--imp);color:#fff;margin-top:6px}
.imp-file .chg{margin-left:auto;color:var(--imp);font-size:15px;cursor:pointer;flex-shrink:0;padding:4px;border:none;background:none}
.imp-file .chg:hover{color:var(--imp-dark)}

.imp-tpl{width:100%;margin-top:9px;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px;
         border:1.5px dashed var(--imp-border);border-radius:11px;background:#fff;color:var(--imp);font-size:12px;font-weight:600;cursor:pointer}
.imp-tpl:hover{background:var(--imp-soft)}

.imp-slot-lbl{font-size:11px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.3px;margin:18px 0 10px;
              display:flex;align-items:center;gap:6px}
.imp-set{margin-bottom:13px}
.imp-set .k{font-size:11px;font-weight:600;color:var(--text-2);margin-bottom:5px;display:block}
.imp-set .k .hint{font-weight:400;color:var(--text-3)}
.imp-input{width:100%;padding:9px 11px;border:1.5px solid var(--border);border-radius:9px;background:#fff;
           font-family:inherit;font-size:12.5px;color:var(--text-1);outline:none}
.imp-input:focus{border-color:var(--imp);box-shadow:0 0 0 3px rgba(27,111,190,.12)}

.imp-seg{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:3px;gap:3px}
.imp-seg button{flex:1;border:none;background:none;border-radius:7px;padding:7px 6px;font-family:inherit;font-size:11.5px;
                font-weight:600;color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;line-height:1.2}
.imp-seg button i{font-size:12px}
.imp-seg button.on{background:#fff;color:var(--imp);box-shadow:0 1px 3px rgba(24,35,58,.12)}

.imp-warn{display:flex;gap:9px;margin-top:16px;padding:11px 12px;border-radius:11px;background:var(--conflict-soft);
          border:1px solid #F5D98B;color:#8a5a06;font-size:11.5px;line-height:1.5}
.imp-warn>i{flex-shrink:0;margin-top:1px;color:var(--conflict);font-size:14px}
.imp-warn-toggle{display:inline-flex;align-items:center;gap:5px;margin-top:8px;background:none;border:none;padding:0;
                 color:#8a5a06;font-size:11px;font-weight:700;cursor:pointer}
.imp-warn-toggle:hover{text-decoration:underline}
.imp-warn-toggle i{transition:transform .15s;font-size:11px}
.imp-warn-toggle.open i{transform:rotate(180deg)}
.imp-badrows{margin-top:9px;display:flex;flex-direction:column;gap:6px}
.imp-badrow{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #F5D98B;border-radius:8px;padding:6px 9px;font-size:11px}
.imp-badrow .bn{font-weight:700;color:#8a5a06;flex-shrink:0}
.imp-badrow .bc{background:#fde7c8;color:#8a5a06;border-radius:4px;padding:1px 6px;font-weight:600;flex-shrink:0;white-space:nowrap}
.imp-badrow .br{color:var(--text-2);min-width:0}

/* == CENTER — pemetaan kolom == */
.imp-center{min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;display:flex;flex-direction:column}
.imp-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--imp-soft);border:1px solid var(--imp-border);
             border-radius:11px;padding:9px 13px;margin-bottom:14px;position:sticky;top:0;z-index:10}
.imp-tb-lbl{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--imp)}
.imp-tb-btn{font-size:11.5px;font-weight:600;color:var(--text-1);background:#fff;border:1px solid var(--imp-border);
            border-radius:7px;padding:5px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.imp-tb-btn:hover{border-color:var(--imp);color:var(--imp);box-shadow:0 0 0 2px rgba(27,111,190,.12)}
.imp-tb-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-2);cursor:pointer;user-select:none}

.imp-group{background:var(--card-bg);border:1px solid var(--border);border-radius:13px;margin-bottom:14px;overflow:hidden}
.imp-group-head{display:flex;align-items:center;gap:10px;padding:11px 15px;border-bottom:1px solid var(--imp-border);
                background:linear-gradient(90deg,var(--imp-soft),rgba(231,241,251,.35));border-left:3px solid var(--imp)}
.imp-group-head.warn{border-left-color:var(--conflict);background:linear-gradient(90deg,var(--conflict-soft),rgba(254,243,199,.3))}
.imp-group-head .ic{width:26px;height:26px;border-radius:8px;background:var(--imp);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
.imp-group-head.warn .ic{background:var(--conflict)}
.imp-group-title{font-size:13px;font-weight:700;color:var(--text-1)}
.imp-group-count{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.3px}

.imp-map{display:flex;align-items:center;gap:12px;padding:12px 15px;border-bottom:1px solid var(--border)}
.imp-map:last-child{border-bottom:none}
.imp-map-src{width:38%;min-width:0;flex-shrink:0}
.imp-map-src .nm{font-size:12.5px;font-weight:700;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imp-map-src .ex{font-size:10.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.imp-map-arrow{color:#B6C1D4;font-size:13px;flex-shrink:0}
.imp-map-tgt{flex:1;min-width:0;position:relative}
.imp-fsel{width:100%;padding:8px 30px 8px 11px;border:1.5px solid var(--border);border-radius:9px;background:#fff;
          font-family:inherit;font-size:12.5px;font-weight:600;color:var(--text-1);outline:none;cursor:pointer;
          appearance:none;-webkit-appearance:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imp-fsel:focus{border-color:var(--imp);box-shadow:0 0 0 3px rgba(27,111,190,.12)}
.imp-fsel.skip{color:var(--text-3);font-weight:500;font-style:italic}
.imp-fsel.unmatched{border-color:#F5D98B;background:#FFFDF6}
.imp-map-tgt .chev{position:absolute;right:11px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-3);font-size:11px}
.imp-flag{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;padding:3px 8px;border-radius:99px;white-space:nowrap}
.imp-flag.auto{background:#ECFDF5;color:#059669}
.imp-flag.unmatched{background:var(--conflict-soft);color:var(--conflict)}
.imp-flag.skip{background:var(--surface);color:var(--text-3)}

/* == RIGHT — ringkasan + pratinjau == */
.imp-preview-col{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;display:flex;flex-direction:column}
.imp-summary{background:var(--card-bg);border:1px solid var(--border);border-radius:13px;padding:14px;margin-bottom:12px}
.imp-sum-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding:5px 0}
.imp-sum-row+.imp-sum-row{border-top:1px dashed var(--border)}
.imp-sum-lbl{color:var(--text-2);display:inline-flex;align-items:center;gap:6px}
.imp-sum-val{font-weight:700;color:var(--text-1)}
.imp-sum-val.ok{color:#059669} .imp-sum-val.warn{color:var(--conflict)} .imp-sum-val.err{color:#DC2626}
.imp-progress{height:7px;border-radius:99px;background:var(--surface);overflow:hidden;margin:10px 0 4px}
.imp-progress-bar{height:100%;background:linear-gradient(90deg,#1B6FBE,#134E8E);border-radius:99px;transition:width .25s}
.imp-progtxt{font-size:11px;color:var(--text-3);text-align:center}

.imp-chips{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.imp-chip{border:1px solid var(--border);border-radius:11px;padding:9px 11px;background:var(--card-bg)}
.imp-chip .v{font-size:17px;font-weight:800;line-height:1}
.imp-chip .k{font-size:10.5px;color:var(--text-3);margin-top:3px;font-weight:600}
.imp-chip.ok .v{color:#059669} .imp-chip.warn .v{color:var(--conflict)} .imp-chip.err .v{color:#DC2626} .imp-chip.tot .v{color:var(--text-1)}

.imp-preview{background:var(--card-bg);border:1px solid var(--border);border-radius:13px;overflow:hidden;margin-bottom:12px}
.imp-pv-head{background:linear-gradient(135deg,var(--imp),#134E8E);color:#fff;padding:14px;display:flex;align-items:center;gap:11px}
.imp-pv-av{width:42px;height:42px;border-radius:11px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}
.imp-pv-name{font-size:14px;font-weight:700;line-height:1.2}
.imp-pv-sub{font-size:11px;opacity:.85;margin-top:2px}
.imp-pv-tag{display:inline-block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:rgba(255,255,255,.22);padding:2px 7px;border-radius:99px;margin-top:6px}
.imp-pv-nav{margin-left:auto;display:flex;gap:5px;flex-shrink:0}
.imp-pv-nav button{width:26px;height:26px;border-radius:7px;border:none;background:rgba(255,255,255,.2);color:#fff;cursor:pointer;font-size:12px}
.imp-pv-nav button:hover{background:rgba(255,255,255,.34)}
.imp-pv-body{padding:5px 15px 12px}
.imp-pv-item{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px}
.imp-pv-item:last-child{border-bottom:none}
.imp-pv-k{color:var(--text-3);flex-shrink:0}
.imp-pv-v{color:var(--text-1);font-weight:600;text-align:right;word-break:break-word}
.imp-pv-v.skip{color:var(--text-3);font-weight:400;font-style:italic}

.imp-queue{display:flex;gap:9px;padding:11px 12px;border-radius:11px;background:var(--imp-soft);border:1px solid var(--imp-border);color:var(--imp-dark);font-size:11px;line-height:1.5}
.imp-queue i{flex-shrink:0;margin-top:1px;color:var(--imp);font-size:14px}

/* == EMPTY STATE — menyatu di panel (bukan halaman terpisah) == */
.imp-lz{border:2px dashed var(--imp-border);border-radius:14px;background:linear-gradient(180deg,#fff,var(--imp-soft));
        padding:26px 16px;text-align:center;cursor:pointer;transition:.16s;
        flex:1;display:flex;flex-direction:column;justify-content:center}
.imp-lz:hover,.imp-lz.drag{border-color:var(--imp);background:var(--imp-soft)}
.imp-lz .ic{width:62px;height:62px;border-radius:16px;background:#fff;border:1px solid var(--imp-border);
            display:grid;place-items:center;font-size:27px;color:var(--imp);margin:0 auto 12px;box-shadow:0 8px 20px rgba(27,111,190,.12)}
.imp-lz .t{font-size:13.5px;font-weight:700;color:var(--text-1)}
.imp-lz .s{font-size:11px;color:var(--text-3);margin-top:5px;line-height:1.45}
.imp-lz .acts{margin-top:15px;display:flex;flex-direction:column;gap:8px}
.imp-lz .acts .imp-btn{justify-content:center}
.imp-lz-parsing .sp{font-size:30px;color:var(--imp);display:inline-block}
.imp-lz-hint{font-size:11px;color:var(--text-3);text-align:center;margin-top:12px;line-height:1.5;padding:0 6px}

.imp-ghost{position:relative;flex:1;display:flex;flex-direction:column}
.imp-ghost.dim{opacity:.55}
.imp-ghost .veil{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:20px}
.imp-ghost .veilchip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--imp-border);
                     box-shadow:0 8px 24px rgba(24,35,58,.12);border-radius:99px;padding:10px 18px;font-size:12.5px;font-weight:600;color:var(--text-2);text-align:center}
.imp-ghost .veilchip i{color:var(--imp);font-size:15px;flex-shrink:0}
.imp-ghost .veilchip b{color:var(--imp-dark);font-weight:700}

.imp-gh-tbar{height:42px;border-radius:11px;margin-bottom:14px;opacity:.7;flex-shrink:0}
.imp-gh-card{background:var(--card-bg);border:1px solid var(--border);border-radius:13px;overflow:hidden;opacity:.7;
             flex:1;display:flex;flex-direction:column}
.imp-gh-row{flex:1;display:flex;align-items:center;gap:14px;padding:15px 16px;border-bottom:1px solid var(--border)}
.imp-gh-row:last-child{border-bottom:none}

.imp-gh-sum{background:var(--card-bg);border:1px solid var(--border);border-radius:13px;padding:14px;margin-bottom:12px}
.imp-gh-line{display:flex;align-items:center;justify-content:space-between;padding:5px 0}
.imp-gh-line+.imp-gh-line{border-top:1px dashed var(--border)}
.imp-gh-chips{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.imp-gh-chips .brtm-skel{border-radius:11px}
.imp-gh-pv{flex:1;display:flex;align-items:flex-start;gap:11px;background:var(--card-bg);border:1px solid var(--border);border-radius:13px;padding:14px}

/* ============================================================
   CONSOLE FULL-BLEED — .brtm-console  (OPT-IN)
   Chrome listing ala Knowledge Base: header jadi pita putih, tabel
   full-width + full-height, pagination menempel di dasar layar.

   Semua aturan digembok di bawah .brtm-console, jadi modul listing yang
   BELUM memasang kelas ini (kontak, deals, tiket, dst.) tidak berubah.
   Rollout ke modul lain = tambahkan kelas .brtm-console di root <section>
   listing-nya.

   Terpasang di: src/leads/components/listing.vue
                 src/org/components/listing.vue
                 src/meetings/components/listing.vue  (2 kolom pinned, lihat seam)
                 src/contacts/components/listing.vue
                 src/deals/components/listing.vue
                 src/calls/components/listing.vue      (grid dibungkus .brtm-table-wrap)
                 src/tasks/components/listing.vue      (grid dibungkus .brtm-table-wrap)
                 src/notes/components/listing.vue      (grid dibungkus .brtm-table-wrap)
   ============================================================ */
.brtm-console {
  /* .content-wrapper punya padding calc(2.2rem - .4rem) 2.2rem 0 (components.css)
     — ditarik balik supaya tabel menempel ke tepi layar. */
  /* Tinggi konsol = sisa layar di bawah header. Header itu TIDAK selalu 55px:
     begitu pita "You’re using the new Barantum" tampil jadi 89px, dan navbar
     wrap di <992px lebih tinggi lagi. Angkanya diukur runtime oleh App.vue >
     _measureChrome() lalu ditulis ke --tfa-chrome-h. JANGAN di-hardcode lagi:
     dulu 55px mati, begitu pita muncul halaman jadi 34px lebih tinggi dari
     layar -> scrollbar muncul & bar pagination terpotong di semua listing. */
  margin: calc(-2.2rem + 0.4rem) -2.2rem 0;
  height: calc(100vh - var(--tfa-chrome-h, 55px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
}

/* ---------- HEADER: pita, bukan blok melayang ---------- */
/* Padding kiri/kanan 2.2rem = sejajar dengan isi tabel di bawahnya. */
.brtm-console .brtm-page-header {
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 0;
  padding: 18px 2.2rem 16px;
  background: #fff;
  border-bottom: 1px solid var(--border, #E5E7EB);
}
.brtm-console .brtm-page-title {
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.2px;
  white-space: nowrap;
}
.brtm-console .brtm-header-filter-group {
  margin-left: 12px;
  flex-wrap: wrap;
}
/* margin-right bawaan (12px) bikin tombol kanan tidak sejajar tepi tabel */
.brtm-console .brtm-header-right-group {
  margin-right: 0;
}

/* pita mass-select & banner: ikut padding tepi, jangan ikut memanjang */
.brtm-console .brtm-action-bar,
.brtm-console .brtm-select-all-banner {
  flex: 0 0 auto;
  margin-left: 2.2rem;
  margin-right: 2.2rem;
}

/* ---------- BODY: tabel mengisi SISA tinggi ---------- */
/* Tinggi tidak lagi ditebak (dulu calc(100vh - 140px)); wrapper cuma
   memakai ruang yang tersisa setelah header. */
.brtm-console .brtm-listing-wrap,
.brtm-console .brtm-skeleton-wrap {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
/* full-bleed: kartu skeleton tak perlu bingkai sendiri */
.brtm-console .brtm-skeleton-wrap {
  border: 0;
  border-radius: 0;
}
.brtm-console .brtm-listing-wrap > .card-empty {
  flex: 1 1 auto;
  margin-bottom: 0 !important;
}

/* ---------- PAGINATION: menempel di dasar ---------- */
.brtm-console .brtm-pagination-bar {
  padding: 9px 2.2rem;
  background: #FBFDFF;
  border-top: 1px solid var(--border, #E5E7EB);
}
/* margin-right 50px bawaan bikin tombol Sebelumnya/Selanjutnya menggantung */
.brtm-console .brtm-pagination-controls {
  margin-right: 90px;
}

/* ---------- EMPTY STATE & HASIL KOSONG (di dalam .brtm-console) ----------
   Dua layar berbeda, jangan disamakan:
   - .brtm-empty-hero : modul benar-benar kosong (belum ada data sama sekali).
                        Tabel tidak dirender; seluruh ruang untuk mengarahkan aksi.
   - .brtm-noresult   : filter/pencarian tidak menemukan apa pun. Header kolom
                        TETAP terlihat (user perlu membetulkan filternya), panel
                        ini hanya menutup area baris.
   -------------------------------------------------------------------------- */
.brtm-console .brtm-listing-wrap { position: relative; }

.brtm-console .brtm-empty-hero,
.brtm-console .brtm-noresult {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 32px 24px;
  background:
    radial-gradient(120% 90% at 50% 0%, #F4F9FE 0%, #FFFFFF 62%);
}

/* .brtm-noresult menutup area baris, TAPI tidak menutup header kolom (42px). */
.brtm-console .brtm-noresult {
  position: absolute;
  top: 42px;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 3;
  background: #fff;
}

.brtm-console .brtm-empty-ill,
.brtm-console .brtm-noresult-ill {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  background: var(--primary-light, #E7F1FB);
  color: var(--primary, #1B6FBE);
}
.brtm-console .brtm-empty-ill i,
.brtm-console .brtm-noresult-ill i {
  font-size: 32px;
  position: static;
}
/* hasil kosong = keadaan netral, bukan ajakan: ikonnya lebih tenang */
.brtm-console .brtm-noresult-ill {
  background: #F1F4F9;
  color: #8496AD;
}

.brtm-console .brtm-empty-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--text-main, #0F2942);
  margin: 0 0 8px;
}
.brtm-console .brtm-empty-desc {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--text-muted, #6B7A99);
  max-width: 460px;
  margin: 0;
}
.brtm-console .brtm-empty-hint {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-main, #0F2942);
  margin: 14px 0 0;
}

.brtm-console .brtm-empty-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 22px;
}
.brtm-console .brtm-empty-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 38px;
  padding: 0 16px;
  border-radius: 9px;
  border: 1px solid var(--border, #E5E7EB);
  background: #fff;
  color: var(--text-2, #516079);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
  text-decoration: none;
}
.brtm-console .brtm-empty-btn:hover {
  border-color: var(--primary, #1B6FBE);
  color: var(--primary, #1B6FBE);
}
.brtm-console .brtm-empty-btn i { font-size: 16px; position: static; }
.brtm-console .brtm-empty-btn-primary {
  background: var(--primary, #1B6FBE);
  border-color: var(--primary, #1B6FBE);
  color: #fff;
}
.brtm-console .brtm-empty-btn-primary:hover {
  filter: brightness(1.06);
  color: #fff;
}
.brtm-console .brtm-empty-btn.disabled {
  opacity: .5;
  pointer-events: none;
}

/* ============================================================
   GRID (di dalam .brtm-console) — tema tabel ag-Grid untuk console.
   Dipindah dari leads/listing.vue supaya bisa dipakai ulang semua modul.

   CARA PAKAI di modul lain:
     1. tambah kelas .brtm-console di root <section> listing-nya;
     2. kirim :rowHeight="48" ke <listing-ag-grid>;
     3. kalau kolom pinned-nya BUKAN 330px, setel variabelnya, mis. Meetings:
        <section class="brtm-console" style="--brtm-pinned-w: 420px">

   SPESIFISITAS: listing_ag_grid.vue punya <style scoped> sendiri (latar header
   primary-light + .ag-theme-alpine{border-radius:200px}) dengan bobot (0,2,0)
   yang di-inject SETELAH file ini. Karena itu selector di bawah selalu bertingkat
   .brtm-console .brtm-grid-host ... (0,3,0) — jangan dipendekkan, nanti kalah.

   JEBAKAN ag-Grid v36 (sudah terbukti, jangan diulang):
     - .ag-pinned-left-header / .ag-pinned-left-cols-container / 
       .ag-horizontal-left-spacer TIDAK ADA di v36 -> selector tak pernah match.
       Kolom pinned dijangkar lewat col-id (colId milik kita di setColumnDefs).
     - padding-left di .ag-body-horizontal-scroll MEMUAIKAN SELURUH grid
       (elemen itu width:100% di dalam .ag-root) -> pakai margin di viewport-nya.
   ============================================================ */
.brtm-console {
  --brtm-pinned-w: 330px; /* lebar kolom pinned "action"; Meetings pakai 420px */
}

/* host grid mengisi sisa tinggi (dulu tingginya ditebak calc(100vh - 190px)) */
.brtm-console .brtm-grid-host {
  flex: 1 1 auto;
  min-height: 0;
}

/* calls/tasks/notes membungkus <listing-ag-grid> dalam .brtm-table-wrap; supaya
   .brtm-grid-host di dalamnya bisa mengisi sisa tinggi, wrapper-nya juga harus
   jadi flex-fill (leads/meetings/dst menaruh grid langsung tanpa wrapper ini). */
.brtm-console .brtm-table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.brtm-console .brtm-grid-host .ag-theme-alpine {
  height: 100% !important; /* !important: ag-grid-vue menaruh height:75vh inline */
  border-radius: 0;
  border-left: 0;
  border-right: 0;

  /* Latar header sengaja TIDAK diubah — tetap primary-light dari
     listing_ag_grid.vue. Yang disetel di sini cuma tinggi & garis. */
  --ag-header-height: 42px;
  --ag-border-color: #EDF1F6;
  --ag-row-border-color: #F1F4F9;
  --ag-cell-horizontal-border: 1px solid #F1F4F9; /* garis pemisah kolom */
  --ag-row-hover-color: #F8FAFC;
  --ag-selected-row-background-color: #EFF6FD;
  --ag-cell-horizontal-padding: 14px;
}
.brtm-console .brtm-grid-host .ag-root-wrapper {
  border-radius: 0;
  border: 0;
}
.brtm-console .brtm-grid-host .ag-cell-wrapper { height: 100%; }

/* Header: tipografi ditenangkan (dulu UPPERCASE + bobot 700 + letter-spacing) */
.brtm-console .brtm-grid-host .ag-header {
  border-bottom: 1px solid #D5E5F5;
}
.brtm-console .brtm-grid-host .ag-header-row {
  text-transform: none;
  letter-spacing: 0;
  font-size: 12.5px;
  font-weight: 600;
}
.brtm-console .brtm-grid-host .ag-cell { font-size: 13px; }

/* Kolom pinned pertama: beri napas 2.2rem supaya lurus dengan judul halaman &
   teks pagination (tabelnya full-bleed, tanpa ini menempel ke tepi layar).
   Seam kanan (garis + bayangan) menegaskan batas berhentinya scroll — kolom di
   kanannya memang ter-scroll separuh, itu perilaku normal ag-Grid. */
.brtm-console .brtm-grid-host .ag-header-cell[col-id="action"],
.brtm-console .brtm-grid-host .ag-cell[col-id="action"] {
  padding-left: 2.2rem !important;
  border-right: 1px solid #E3E9F1;
  box-shadow: 3px 0 6px -2px rgba(15, 41, 66, 0.08);
  clip-path: inset(0 -8px 0 0); /* bayangan boleh keluar ke kanan, bukan ke kiri */
}

/* MEETINGS punya DUA kolom pinned: "action" lalu "cico" (tombol check-in/out).
   Seam wajib menempel di kolom pinned TERAKHIR — kalau tidak, garis + bayangannya
   jatuh di TENGAH blok pinned. Padding kiri tetap di "action" (kolom pertama).
   Selector ber-id (1,2,0) menang atas aturan umum di atas (0,3,0). */
.brtm-console #table-meetings .ag-header-cell[col-id="action"],
.brtm-console #table-meetings .ag-cell[col-id="action"] {
  border-right: 0;
  box-shadow: none;
  clip-path: none;
}
.brtm-console #table-meetings .ag-header-cell[col-id="cico"],
.brtm-console #table-meetings .ag-cell[col-id="cico"] {
  border-right: 1px solid #E3E9F1;
  box-shadow: 3px 0 6px -2px rgba(15, 41, 66, 0.08);
  clip-path: inset(0 -8px 0 0);
}

/* Bar scroll horizontal berhenti di batas kolom pinned — kolom itu tidak ikut
   di-scroll, jadi bar-nya tak boleh lewat di bawahnya.
   Meetings: 460px = action(width 330) + cico(130). */
.brtm-console .brtm-grid-host .ag-body-horizontal-scroll-viewport {
  margin-left: var(--brtm-pinned-w);
}

/* Isi sel mengikuti lebar kolom.
   customRenderAgGrid.vue (23 salinan, satu per modul) membungkus isi sel dengan
   <div class="pt-25" style="max-width:190px"> — teks selalu terpotong di 190px
   berapa pun lebar kolomnya, jadi resize kolom tidak pernah menampilkan teks
   lebih banyak. Dinetralkan di sini supaya cukup satu tempat, bukan 23 file.
   !important wajib: yang ditimpa adalah inline style. */
.brtm-console .brtm-grid-host .ag-cell .d-flex > .pt-25 {
  max-width: none !important;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden; /* ellipsis dihitung dari lebar sel */
}

/* ============================================================
   CONSOLE — BOARD / PIPELINE  (.brtm-console .brtm-console-board)
   Varian console untuk view Kanban (leads/board.vue). Bedanya dengan
   console listing: isinya bukan tabel + pagination, tapi papan yang
   ter-scroll HORIZONTAL, dan tiap kolom ter-scroll VERTIKAL sendiri.

   Yang dikerjakan blok ini:
     1. header (breadcrumb + tombol) jadi pita, tombol didorong ke kanan;
     2. papan mengisi SISA tinggi console — tinggi kolom tidak lagi ditebak
        (dulu .brtm-pipeline-col height: calc(100vh - 198px) dan
        .brtm-pipeline-container height: calc(100vh - 300px); dua angka itu
        salah begitu tinggi header berubah);
     3. .brtm-pipeline-container dijadikan flex column supaya yang ter-scroll
        adalah .brtm-pipeline-col-body — elemen #board_<id> yang dipasangi
        listener infinite-scroll di board.vue (runScrolling). Kalau bukan dia
        yang scroll, loadMore tidak pernah terpanggil.

   Terpasang di: src/leads/components/index.vue (view == 'board')
                 src/deals/components/index.vue (view == 'board')
   ============================================================ */

/* ---------- HEADER: pita, tombol kanan ---------- */
.brtm-console-board .brtm-page-header > :last-child {
  margin-left: auto; /* dorong grup tombol (view toggle + Tambah) ke tepi kanan */
}
.brtm-console-board .brtm-breadcrumb-wrap {
  display: flex;
  align-items: center;
  margin-bottom: 0;
}
.brtm-console-board .brtm-console-banner {
  flex: 0 0 auto;
  margin: 12px 2.2rem 0;
}

/* ---------- BODY: papan mengisi sisa tinggi ---------- */
.brtm-console-board .brtm-board-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
/* Papan menempel ke tepi console (full-bleed) — TIDAK diberi padding tepi
   seperti pita header; kolom Kanban dibiarkan mulai dari tepi layar. */
.brtm-console-board .brtm-pipeline-view-outer {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow-x: auto;
  overflow-y: hidden;
}
/* Skeleton mengisi sisa tinggi seperti papan, TAPI tidak boleh scroll horizontal
   (kolomnya dipotong saja) — scrollbar hanya untuk papan berisi data. */
.brtm-console-board .brtm-pipeline-skeleton-wrap {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}
.brtm-console-board .brtm-pipeline-board,
.brtm-console-board .brtm-pipeline-skeleton-board {
  height: 100%;
  align-items: stretch;
  padding: 0; /* menimpa padding 2px 2px 12px dari rule dasar (bukan cuma bawahnya) */
  overflow: visible; /* kolom tinggi penuh; yang scroll adalah pembungkusnya */
}

@media (max-width: 992px) {
  .brtm-console-board .brtm-pipeline-board {
    padding: 0 20px;
  }
}

/* Tinggi kolom = tinggi papan (bukan calc(100vh - …) yang menebak header). */
.brtm-console-board .brtm-pipeline-col,
.brtm-console-board .brtm-pipeline-skeleton-col {
  height: auto;
  min-height: 0;
}
.brtm-console-board .brtm-pipeline-container {
  height: auto;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden; /* scroll didelegasikan ke .brtm-pipeline-col-body */
}
.brtm-console-board .brtm-pipeline-col-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.brtm-console-board .brtm-pipeline-add-card {
  flex: 0 0 auto;
  margin-top: 10px;
}

/* Empty-state per kolom: isi tinggi kolom, jangan pakai calc(100vh - 304px)
   (angka itu untuk kalender full-page — di dalam kolom board dia kepanjangan). */
.brtm-console-board .brtm-cal-empty-state {
  flex: 1 1 auto;
  min-height: 0;
  padding: 24px 12px;
}

/* ============================================================
   CONSOLE — LAPORAN  (.brtm-console .brtm-console-page)
   Varian console untuk view yang isinya halaman ter-scroll biasa
   (widget laporan), bukan tabel + pagination seperti console listing.

   Alasan blok ini ada: view reports dulu memakai .content-header polos di
   luar console, sehingga judul halaman LOMPAT tiap ganti view — turun 12px
   (padding .content-wrapper ikut terhitung) dan membesar dari 20px/600 ke
   22px/500 karena .brtm-page-title kehilangan induk .brtm-console. Dengan
   varian ini header reports memakai pita yang sama persis dengan listing
   dan board, jadi hanya isinya yang berganti.

   Yang dikerjakan blok ini:
     1. header dibiarkan memakai pita .brtm-console .brtm-page-header apa
        adanya — tombol kanan didorong ke tepi seperti di board;
     2. badan halaman jadi satu-satunya elemen yang ter-scroll, supaya
        .brtm-console tetap overflow:hidden dan tidak melahirkan scrollbar
        kedua setinggi navbar.

   Terpasang di: src/deals/components/index.vue (view == 'reports')
                 src/calls/components/index.vue  (view == 'reports')
                 src/products/components/index.vue (view == 'reports')
   ============================================================ */
.brtm-console-page .brtm-page-header > :last-child {
  margin-left: auto; /* dorong grup tombol (view toggle + Tambah) ke tepi kanan */
}
.brtm-console-page .brtm-breadcrumb-wrap {
  display: flex;
  align-items: center;
  margin-bottom: 0;
}
.brtm-console-page .brtm-console-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 2.2rem 24px;
  /* .brtm-console memakai latar putih untuk pita header; badan laporan harus
     tetap abu supaya kartu widget yang putih tidak kehilangan kontras. */
  background: var(--surface, #F5F7FA);
}

/* ============================================================
   CONSOLE — KALENDER  (.brtm-console, view calendar)
   Varian console untuk view Kalender. Bedanya dengan console listing:
   isinya bukan tabel + pagination, tapi grid vue-simple-calendar yang
   harus mengisi sisa tinggi layar.

   Yang dikerjakan blok ini:
     1. kartu kalender (.brtm-cal-wrap: border + radius 14px + shadow)
        di-full-bleed-kan — di console ia bukan kartu melayang lagi,
        melainkan badan halaman;
     2. pita navigasi biru (#1A83C7, dulu inline style di calendar.vue)
        diganti sub-pita putih .brtm-calbar sejajar header, supaya warna
        primary tinggal dipakai untuk aksi;
     3. tinggi kalender berhenti ditebak — .calendar-parent bawaan memasang
        max-height: 80vh (lihat blok "Vue Simple Calendar redesign"), angka
        itu menyisakan pita kosong di bawah begitu kromnya jadi full-bleed.

   Aturan .appcalendar di blok bersama itu dipakai juga oleh calls/tasks/notes
   yang BELUM console — karena itu semua override di sini digembok di bawah
   .brtm-console. Modul kalender lain tinggal menambah kelas .brtm-console.

   Terpasang di: src/meetings/components/calendar.vue
                 src/calls/components/calendar.vue   (nav biru bespoke + split preview; rantai tinggi di <style scoped>)
                 src/tasks/components/calendar.vue
                 src/notes/components/calendar.vue
   ============================================================ */

/* ---------- BADAN: kalender mengisi sisa tinggi, tanpa bingkai kartu ---------- */
.brtm-console .brtm-cal-wrap {
  flex: 1 1 auto;
  min-height: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.brtm-console .brtm-cal-grid-wrap {
  display: flex;
  flex-direction: column;
  overflow: hidden; /* yang ter-scroll adalah .calendar-parent, bukan wrapper */
}
.brtm-console .appcalendar {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
/* max-height 80vh bawaan diganti "sisa ruang yang ada". overflow: hidden bawaan
   juga dilepas: kalau layar lebih pendek dari 6 baris × min-height 100px, grid-nya
   akan terpotong diam-diam — di console ia harus bisa di-scroll. */
.brtm-console .calendar-parent {
  max-height: none;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
/* .cv-wrapper bawaan punya border + radius bawah 12px + shadow: sisa bingkai
   kartu yang sudah tidak ada lagi di console. */
.brtm-console .appcalendar .cv-wrapper {
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* ---------- PITA NAVIGASI (pengganti header biru) ---------- */
.brtm-console .brtm-calbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 10px 2.2rem; /* 2.2rem = lurus dengan judul halaman di pita header */
  background: #FBFDFF;
  border-bottom: 1px solid var(--border, #E5E7EB);
}
.brtm-console .brtm-calbar-nav {
  display: flex;
  align-items: center;
  gap: 4px;
}
.brtm-console .brtm-calbar-btn {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border, #E5E7EB);
  border-radius: 8px;
  background: #fff;
  color: var(--text-2, #516079);
  cursor: pointer;
  transition: all .15s;
}
.brtm-console .brtm-calbar-btn:hover {
  border-color: var(--primary, #1B6FBE);
  color: var(--primary, #1B6FBE);
}
.brtm-console .brtm-calbar-btn i {
  font-size: 18px;
  position: static; /* boxicons di repo ini memasang position:relative + top */
  top: 0;
}
.brtm-console .brtm-calbar-label {
  min-width: 170px;
  text-align: center;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--text-main, #0F2942);
}
/* "Fetching data" hint shown while changing period/view/scope. The skeleton only
   covers the first load (a refetch keeps the old grid on screen), so without this
   hint the page looks frozen and people keep clicking the same button. */
.brtm-console .brtm-calbar-loading {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 10px;
  font-size: 12.5px;
  color: var(--text-2, #516079);
}
.brtm-console .brtm-calbar-loading i {
  font-size: 15px;
  position: static; /* boxicons in this repo sets position:relative plus a top offset */
  top: 0;
}
.brtm-console .brtm-calbar-today {
  height: 30px;
  margin-left: 8px;
  padding: 0 12px;
  border: 1px solid var(--border, #E5E7EB);
  border-radius: 8px;
  background: #fff;
  color: var(--text-2, #516079);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
}
.brtm-console .brtm-calbar-today:hover {
  border-color: var(--primary, #1B6FBE);
  color: var(--primary, #1B6FBE);
}

/* Legenda status: di pita biru teksnya putih (lihat .brtm-cv-status-legend di
   blok bersama). Di pita putih ia harus jadi tinta redup. */
.brtm-console .brtm-cv-status-legend {
  color: var(--text-muted, #6B7A99);
}

/* Select filter (User/Tim) di header: .form-control bawaan Bootstrap width:100%,
   jadi di dalam grup flex-wrap ia memakan satu baris penuh dan mendorong tombol
   lain turun (header jadi tumpukan vertikal yang menabrak judul). Lebar dikunci
   agar sebaris dengan dropdown & tombol di sebelahnya. */
.brtm-console .brtm-header-filter-group > select.form-control {
  width: auto;
  flex: 0 0 auto;
  max-width: 220px;
}

/* Baris nama hari (SUN…SAT): di blok bersama .appcalendar warnanya abu #F5F7FA.
   Di console dijadikan primary-light supaya sebaris dengan aksen tabel Listing.
   !important wajib: aturan .appcalendar .cv-header-day di blok bersama juga
   ber-!important. */
.brtm-console .appcalendar .cv-header-days {
  background: var(--primary-light, #E7F1FB) !important;
}
.brtm-console .appcalendar .cv-header-day {
  background: var(--primary-light, #E7F1FB) !important;
  color: var(--primary, #1B6FBE) !important;
}

/* ---------- SKELETON & EMPTY-STATE ---------- */
/* Kartu skeleton ikut kehilangan bingkainya; kepala birunya diganti abu supaya
   tidak menjanjikan pita biru yang sudah tidak ada. */
.brtm-console .brtm-cal-skeleton {
  flex: 1 1 auto;
  min-height: 0;
  border: 0;
  border-radius: 0;
}
.brtm-console .brtm-cal-skeleton-header {
  height: 51px;
  background: #F1F4F9;
  opacity: 1;
  border-bottom: 1px solid var(--border, #E5E7EB);
}
/* Empty-state "Pilih Tim/User dahulu": di console area ini jadi sangat lapang,
   jadi ikon + teks polos terlihat hambar. Dipoles menyamai .brtm-empty-hero —
   badge ikon bulat primary-light + tipografi lebih tegas + latar gradient lembut.
   min-height calc(100vh - 304px) bawaan menebak tinggi krom; diganti "isi sisa
   ruang". */
.brtm-console .brtm-cal-empty-state {
  flex: 1 1 auto;
  min-height: 0;
  gap: 0;
  padding: 32px 24px;
}
/* ikon <i> polos dijadikan badge bulat (tanpa ubah markup) */
.brtm-console .brtm-cal-empty-state .brtm-cal-empty-icon {
  width: 72px;
  height: 72px;
  margin: 0 0 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--primary-light, #E7F1FB);
  color: var(--primary, #1B6FBE);
  font-size: 32px;
}
.brtm-console .brtm-cal-empty-state .brtm-cal-empty-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  margin-top: 12px;
}
.brtm-console .brtm-cal-empty-state .brtm-cal-empty-desc {
  margin-top: 0;
  font-size: 11px;
  color: var(--text-light);
  line-height: 1.5;
}

/* ============================================================
   CONSOLE — KALENDER TIM (time-grid vue-cal, view Hari/Minggu)
   Tampilan ala Calendly (TASK #6357): sumbu Y = jam, X = hari, event
   diposisikan by jam & DIWARNAI per-owner; rail kiri berisi anggota tim
   dengan toggle. Digembok di bawah .brtm-console; vue-cal juga dipakai
   widget users/workload.vue yang BUKAN console, jadi jangan menyetel
   .vuecal global tanpa .brtm-console di depannya.

   Terpasang di: src/meetings/components/calendar.vue (viewMode day/week)
   ============================================================ */
.brtm-console .brtm-tcal {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
}

/* ---------- RAIL anggota tim ---------- */
.brtm-console .brtm-tcal-rail {
  flex: 0 0 232px;
  border-right: 1px solid var(--border, #E5E7EB);
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: #fff;
}
.brtm-console .brtm-tcal-rail-head {
  padding: 12px 16px 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-muted, #6B7A99);
}
.brtm-console .brtm-tcal-rail-list {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 4px 8px 12px;
}
.brtm-console .brtm-tcal-mem {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 8px;
  border-radius: 9px;
  cursor: pointer;
  transition: background .12s;
}
.brtm-console .brtm-tcal-mem:hover { background: #F7FAFD; }
.brtm-console .brtm-tcal-check {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  border: 2px solid #CBD5E1;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 12px;
  transition: all .12s;
}
.brtm-console .brtm-tcal-check i { position: static; top: 0; }
.brtm-console .brtm-tcal-ava {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.brtm-console .brtm-tcal-mem-meta { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.brtm-console .brtm-tcal-mem-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-main, #0F2942);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.brtm-console .brtm-tcal-mem-sub { font-size: 11.5px; color: var(--text-muted, #6B7A99); }
/* Baris diri sendiri disematkan di paling atas; penanda (Anda) dibuat kalem
   supaya menandai, bukan berteriak. */
.brtm-console .brtm-tcal-mem-name em {
  font-style: normal;
  font-weight: 500;
  font-size: 11px;
  color: var(--text-muted, #6B7A99);
  margin-left: 3px;
}
.brtm-console .brtm-tcal-mem.off { opacity: .5; }
.brtm-console .brtm-tcal-mem.off .brtm-tcal-mem-name { text-decoration: line-through; }

/* Empty state "pilih tim/pengguna dulu" kini hidup DI DALAM area grid, bukan
   menggantikan seluruh kalender — kalau ia menelan rail, pemilihnya ikut hilang
   dan pengguna terkunci tanpa jalan keluar. */
.brtm-console .brtm-tcal-grid > .brtm-cal-empty-state {
  flex: 1 1 auto;
  display: grid;
  place-content: center;
  justify-items: center;
  text-align: center;
}

/* ---------- GRID (vue-cal) ---------- */
.brtm-console .brtm-tcal-grid {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.brtm-console .brtm-tcal-grid .vuecal {
  height: 100%;
  box-shadow: none;
  font-family: 'Inter', sans-serif;
}
/* baris nama hari = primary-light, selaras view lain */
.brtm-console .brtm-tcal-grid .vuecal__weekdays-headings {
  background: var(--primary-light, #E7F1FB);
  border-bottom: 1px solid var(--border, #E5E7EB);
}
.brtm-console .brtm-tcal-grid .vuecal__heading { color: var(--primary, #1B6FBE); }
.brtm-console .brtm-tcal-grid .vuecal__heading .weekday-label { font-weight: 700; }
.brtm-console .brtm-tcal-grid .vuecal__cell--today,
.brtm-console .brtm-tcal-grid .vuecal__cell--current { background: rgba(27, 111, 190, .04); }
.brtm-console .brtm-tcal-grid .vuecal__now-line { color: #EF4444; }
/* teks "No Event" bawaan vue-cal disembunyikan (bikin ramai di kolom kosong) */
.brtm-console .brtm-tcal-grid .vuecal__no-event { display: none; }

/* Kotak event vue-cal dibuat transparan; isi & warna owner dirender via slot
   #event (.brtm-tev). Dengan begitu jumlah owner tak dibatasi kelas warna. */
.brtm-console .brtm-tcal-grid .vuecal__event {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.brtm-console .brtm-tev {
  height: 100%;
  border-radius: 7px;
  padding: 4px 8px;
  overflow: hidden;
  color: #fff;
  border-left: 3px solid rgba(0, 0, 0, .2);
  box-shadow: 0 1px 3px rgba(15, 41, 66, .14);
  cursor: pointer;
  font-size: 11.5px;
  line-height: 1.3;
  position: relative;
}
.brtm-console .brtm-tev:hover { filter: brightness(1.05); }
.brtm-console .brtm-tev-time { font-weight: 700; font-size: 10.5px; opacity: .95; }
.brtm-console .brtm-tev-title { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brtm-console .brtm-tev-who { font-size: 10px; opacity: .9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brtm-console .brtm-tev-st {
  position: absolute;
  top: 4px;
  right: 5px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, .85);
}


/* ============================================================
   CONSOLE — KALENDER TIM v2 (.brtm-tcal2) — grid waktu buatan sendiri
   Port dari adesign/meetings-team-calendar-v2.html. Menggantikan vue-cal
   PADA MEETINGS saja (Calls & Tasks masih vue-cal, jadi blok .vuecal +
   .brtm-tev di atas JANGAN dihapus).

   Prinsip yang dibawa dari prototipe:
   - Kanvas netral. Warna = IDENTITAS orang (rel 3px + avatar), bukan latar
     blok; status turun jadi titik kecil di kanan atas kartu.
   - Tumpukan dibatasi 3 kolom + kantong "+N" yang bisa diklik, bukan dibagi
     rata sampai jadi sliver 8px seperti vue-cal.
   - Record ≥6 jam pindah ke lane "Durasi panjang" di atas grid.

   Terpasang di: src/meetings/components/calendar.vue
                 src/config/components/calendar/team_time_grid.vue
   ============================================================ */
.brtm-console .brtm-tcal2 {
  --brtm-tcal2-gutter: 62px;
  --brtm-tcal2-hour: 56px;
  --brtm-tcal2-line: #E2E8F0;
  --brtm-tcal2-line-soft: #EFF2F6;
  --brtm-tcal2-ink-3: #94A3B8;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: #fff;
  font-size: 13px;
}

/* ---------- header kolom (hari / orang) ---------- */
.brtm-console .brtm-tcal2-dayhead {
  display: grid;
  border-bottom: 1px solid var(--brtm-tcal2-line);
  flex: 0 0 auto;
  padding-right: 10px;
}
.brtm-console .brtm-tcal2-gut-head { width: var(--brtm-tcal2-gutter); }
.brtm-console .brtm-tcal2-dh {
  padding: 7px 8px 0;
  text-align: center;
  border: 0;
  border-left: 1px solid var(--brtm-tcal2-line-soft);
  background: none;
  min-width: 0;
  font: inherit;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.brtm-console .brtm-tcal2-dh--static { cursor: default; }
.brtm-console .brtm-tcal2-dh:not(.brtm-tcal2-dh--static):hover { background: #FAFBFC; }
.brtm-console .brtm-tcal2-dh-name {
  font-size: 11px;
  font-weight: 600;
  color: var(--brtm-tcal2-ink-3);
  text-transform: uppercase;
  letter-spacing: .5px;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.brtm-console .brtm-tcal2-dh-num { font-size: 17px; font-weight: 650; line-height: 1.35; }
.brtm-console .brtm-tcal2-dh.today .brtm-tcal2-dh-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--primary, #1B6FBE);
  color: #fff;
  font-size: 14px;
  line-height: 28px;
}
.brtm-console .brtm-tcal2-dh.today .brtm-tcal2-dh-name { color: var(--primary, #1B6FBE); }
.brtm-console .brtm-tcal2-dh-cnt { font-size: 11px; color: var(--brtm-tcal2-ink-3); margin-bottom: 5px; }
/* heat bar: seberapa padat kolom ini dibanding kolom tersibuk */
.brtm-console .brtm-tcal2-dh-heat {
  height: 3px;
  width: 100%;
  border-radius: 2px 2px 0 0;
  margin-top: auto;
}
.brtm-console .brtm-tcal2-dh--person .brtm-tcal2-dh-name { text-transform: none; font-size: 11.5px; color: var(--text-main, #0F2942); }
.brtm-console .brtm-tcal2-ava {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 10.5px;
  font-weight: 650;
  margin-bottom: 4px;
}
.brtm-console .brtm-tcal2-ava--xs { width: 20px; height: 20px; font-size: 9px; margin: 0; }

/* ---------- lane durasi panjang ---------- */
/* Lane ini pernah menelan layar: satu hari dengan 16 kunjungan luar kota
   mendorong grid jam sampai keluar viewport. Tingginya dibatasi ~3 baris lalu
   ikut menggulir sendiri. */
.brtm-console .brtm-tcal2-allday {
  display: grid;
  border-bottom: 1px solid var(--brtm-tcal2-line);
  background: #FCFDFE;
  flex: 0 0 auto;
  padding-right: 10px;
  max-height: 82px;
  overflow-y: auto;
}
.brtm-console .brtm-tcal2-allday-gut {
  width: var(--brtm-tcal2-gutter);
  font-size: 10px;
  color: var(--brtm-tcal2-ink-3);
  text-align: right;
  padding: 7px 8px 0;
  line-height: 1.25;
}
.brtm-console .brtm-tcal2-allday-col {
  border-left: 1px solid var(--brtm-tcal2-line-soft);
  padding: 5px 4px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  min-height: 32px;
}

/* ---------- grid jam ---------- */
.brtm-console .brtm-tcal2-gridwrap { flex: 1 1 auto; overflow: auto; position: relative; min-height: 0; padding-top: 8px; }
.brtm-console .brtm-tcal2-grid { display: grid; position: relative; padding-right: 10px; }
.brtm-console .brtm-tcal2-gut { width: var(--brtm-tcal2-gutter); position: relative; }
.brtm-console .brtm-tcal2-gut-h {
  height: var(--brtm-tcal2-hour);
  text-align: right;
  padding-right: 9px;
  font-size: 11px;
  color: var(--brtm-tcal2-ink-3);
  transform: translateY(-6px);
}
.brtm-console .brtm-tcal2-col { position: relative; border-left: 1px solid var(--brtm-tcal2-line-soft); min-width: 0; }
.brtm-console .brtm-tcal2-col.weekend { background: #FBFCFD; }
.brtm-console .brtm-tcal2-col-h { height: var(--brtm-tcal2-hour); border-bottom: 1px solid var(--brtm-tcal2-line-soft); }
.brtm-console .brtm-tcal2-now {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  border-top: 2px solid #DC2626;
  z-index: 6;
  pointer-events: none;
}
.brtm-console .brtm-tcal2-now::before {
  content: "";
  position: absolute;
  left: -4px;
  top: -5px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #DC2626;
}

/* ---------- kartu acara ---------- */
.brtm-console .brtm-tcal2-ev {
  position: absolute;
  border-radius: 6px;
  background: #fff;
  border: 1px solid var(--brtm-tcal2-line);
  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
  padding: 3px 6px 3px 9px;
  overflow: hidden;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 1px;
  line-height: 1.25;
  text-align: left;
  font: inherit;
  z-index: 2;
}
.brtm-console .brtm-tcal2-ev::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--brtm-ev-c, var(--primary, #1B6FBE));
  border-radius: 6px 0 0 6px;
}
.brtm-console .brtm-tcal2-ev:hover {
  box-shadow: 0 4px 12px rgba(15, 23, 42, .14);
  border-color: #CBD5E1;
  z-index: 8;
}
.brtm-console .brtm-tcal2-ev-t { font-size: 10.5px; color: var(--brtm-tcal2-ink-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.brtm-console .brtm-tcal2-ev-n { font-size: 11.5px; font-weight: 600; color: var(--text-main, #0F2942); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brtm-console .brtm-tcal2-ev-w { font-size: 10.5px; color: var(--text-muted, #6B7A99); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brtm-console .brtm-tcal2-ev-st { position: absolute; right: 5px; top: 5px; width: 6px; height: 6px; border-radius: 50%; }
/* kartu pendek: satu baris saja, sisanya disembunyikan agar tidak terpotong */
.brtm-console .brtm-tcal2-ev--tiny { padding: 1px 5px 1px 9px; flex-direction: row; align-items: center; gap: 5px; }
.brtm-console .brtm-tcal2-ev--tiny .brtm-tcal2-ev-n { font-size: 11px; }
.brtm-console .brtm-tcal2-ev--tiny .brtm-tcal2-ev-w,
.brtm-console .brtm-tcal2-ev--tiny .brtm-tcal2-ev-st { display: none; }
.brtm-console .brtm-tcal2-ev--compact .brtm-tcal2-ev-w { display: none; }
.brtm-console .brtm-tcal2-ev--long {
  position: relative;
  height: 20px;
  flex: 0 0 auto;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  padding: 0 6px 0 9px;
}
.brtm-console .brtm-tcal2-ev--long .brtm-tcal2-ev-w { display: none; }

/* ---------- kantong "+N" ---------- */
.brtm-console .brtm-tcal2-more {
  position: absolute;
  border-radius: 6px;
  border: 1px dashed #CBD5E1;
  background: #F8FAFC;
  color: var(--text-muted, #6B7A99);
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  cursor: pointer;
  z-index: 3;
  overflow: hidden;
  padding: 2px;
}
.brtm-console .brtm-tcal2-more:hover { background: #EEF2F7; border-color: var(--primary, #1B6FBE); color: var(--primary, #1B6FBE); }
.brtm-console .brtm-tcal2-more-faces { display: flex; }
.brtm-console .brtm-tcal2-more-faces span {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1.5px solid #fff;
  margin-left: -5px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 8px;
  font-weight: 700;
}
.brtm-console .brtm-tcal2-more-faces span:first-child { margin-left: 0; }

/* ---------- popover isi kantong ---------- */
.brtm-console .brtm-tcal2-scrim { position: fixed; inset: 0; z-index: 1050; }
.brtm-console .brtm-tcal2-pop {
  position: fixed;
  z-index: 1051;
  width: 304px;
  max-height: 340px;
  overflow: auto;
  background: #fff;
  border: 1px solid var(--brtm-tcal2-line);
  border-radius: 12px;
  box-shadow: 0 14px 40px rgba(15, 23, 42, .18);
  padding: 8px;
}
.brtm-console .brtm-tcal2-pop-head {
  font-size: 11.5px;
  font-weight: 650;
  color: var(--text-muted, #6B7A99);
  padding: 4px 6px 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.brtm-console .brtm-tcal2-pop-head button { border: 0; background: none; cursor: pointer; color: var(--brtm-tcal2-ink-3); font-size: 16px; line-height: 1; padding: 0; }

/* ---------- agenda ---------- */
/* Kolom, bukan blok: dengan begitu empty state di dalamnya bisa flex dan duduk
   di tengah ruang kosong, bukan menempel di atas. */
.brtm-console .brtm-tcal2-agenda {
  flex: 1 1 auto;
  overflow: auto;
  padding: 14px 20px 40px;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.brtm-console .brtm-tcal2-agenda > .brtm-tcal2-day,
.brtm-console .brtm-tcal2-agenda > .brtm-tcal2-ag-day { flex: 0 0 auto; }
.brtm-console .brtm-tcal2-ag-day { margin-bottom: 6px; border-bottom: 1px solid var(--brtm-tcal2-line-soft); }
.brtm-console .brtm-tcal2-ag-head {
  position: sticky;
  top: 0;
  background: #fff;
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 9px 0 7px;
  font-weight: 650;
  font-size: 13px;
  z-index: 2;
}
.brtm-console .brtm-tcal2-ag-head small { font-weight: 500; color: var(--brtm-tcal2-ink-3); font-size: 11.5px; }
.brtm-console .brtm-tcal2-ag-day.today .brtm-tcal2-ag-head { color: var(--primary, #1B6FBE); }
/* Hari kosong tetap punya baris — kerangkanya yang membuat agenda bisa dipakai,
   bukan panel "tidak ada apa-apa". */
.brtm-console .brtm-tcal2-ag-day--empty .brtm-tcal2-ag-head { font-weight: 550; color: var(--text-muted, #6B7A99); }
.brtm-console .brtm-tcal2-ag-add {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px 8px;
  padding: 5px 10px;
  border: 1px dashed #CBD5E1;
  border-radius: 8px;
  background: none;
  font: inherit;
  font-size: 11.5px;
  font-weight: 550;
  color: var(--text-muted, #6B7A99);
  cursor: pointer;
}
.brtm-console .brtm-tcal2-ag-add:hover {
  border-color: var(--primary, #1B6FBE);
  color: var(--primary, #1B6FBE);
  background: #F5F9FE;
}
.brtm-console .brtm-tcal2-ag-add i { font-size: 14px; }
.brtm-console .brtm-tcal2-ag-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border: 0;
  border-radius: 8px;
  background: none;
  width: 100%;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.brtm-console .brtm-tcal2-ag-row:hover { background: #FAFBFC; }
.brtm-console .brtm-tcal2-ag-time { width: 96px; flex: 0 0 auto; font-size: 11.5px; color: var(--text-muted, #6B7A99); font-variant-numeric: tabular-nums; }
.brtm-console .brtm-tcal2-ag-bar { width: 3px; height: 22px; border-radius: 2px; flex: 0 0 auto; }
.brtm-console .brtm-tcal2-ag-name { flex: 1; min-width: 0; font-size: 12.5px; font-weight: 550; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brtm-console .brtm-tcal2-ag-who { display: flex; align-items: center; gap: 6px; color: var(--text-muted, #6B7A99); font-size: 11.5px; flex: 0 0 auto; }
.brtm-console .brtm-tcal2-badge { font-size: 10.5px; font-weight: 600; padding: 2px 7px; border-radius: 20px; flex: 0 0 auto; }

/* ---------- bulan ----------
   Pengganti vue-simple-calendar: bar yang membentang & bertumpuk diganti chip
   ringkas satu baris, maksimal 3 per sel + "+N lainnya". Tinggi baris dikunci
   grid-auto-rows:1fr supaya minggu padat tidak melar dan yang kosong tidak
   gepeng. */
.brtm-console .brtm-tcal2-month { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }
.brtm-console .brtm-tcal2-month-head {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-bottom: 1px solid var(--brtm-tcal2-line);
  flex: 0 0 auto;
}
.brtm-console .brtm-tcal2-month-head div {
  padding: 7px 0;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  color: var(--brtm-tcal2-ink-3);
  text-transform: uppercase;
  letter-spacing: .5px;
}
.brtm-console .brtm-tcal2-month-grid {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  min-height: 0;
}
.brtm-console .brtm-tcal2-mcell {
  border-left: 1px solid var(--brtm-tcal2-line-soft);
  border-bottom: 1px solid var(--brtm-tcal2-line-soft);
  padding: 4px 5px;
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.brtm-console .brtm-tcal2-mcell.out { background: #FBFCFD; }
.brtm-console .brtm-tcal2-mcell.out .brtm-tcal2-mcell-num { color: var(--brtm-tcal2-ink-3); }
.brtm-console .brtm-tcal2-mcell-d { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2px; }
.brtm-console .brtm-tcal2-mcell-num {
  border: 0;
  background: none;
  font: inherit;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-main, #0F2942);
  cursor: pointer;
  padding: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
}
.brtm-console .brtm-tcal2-mcell-num:hover { background: #EEF2F7; }
.brtm-console .brtm-tcal2-mcell.today .brtm-tcal2-mcell-num { background: var(--primary, #1B6FBE); color: #fff; }
.brtm-console .brtm-tcal2-mcell-cnt { font-size: 10px; color: var(--brtm-tcal2-ink-3); }
.brtm-console .brtm-tcal2-mchip {
  display: flex;
  align-items: center;
  gap: 5px;
  font: inherit;
  font-size: 11px;
  padding: 1px 5px 1px 4px;
  border-radius: 5px;
  background: #F8FAFC;
  border: 1px solid var(--brtm-tcal2-line-soft);
  cursor: pointer;
  min-width: 0;
  flex: 0 0 auto;
  text-align: left;
}
.brtm-console .brtm-tcal2-mchip:hover { background: #EEF2F7; border-color: #CBD5E1; }
.brtm-console .brtm-tcal2-mchip-bar { width: 3px; height: 12px; border-radius: 2px; flex: 0 0 auto; }
.brtm-console .brtm-tcal2-mchip-t { color: var(--text-muted, #6B7A99); font-variant-numeric: tabular-nums; flex: 0 0 auto; }
.brtm-console .brtm-tcal2-mchip-n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.brtm-console .brtm-tcal2-mmore {
  border: 0;
  background: none;
  font: inherit;
  font-size: 10.5px;
  font-weight: 600;
  color: var(--primary, #1B6FBE);
  cursor: pointer;
  padding: 0 0 0 4px;
  text-align: left;
  flex: 0 0 auto;
}
.brtm-console .brtm-tcal2-mmore:hover { text-decoration: underline; }

/* Tombol ikon di baris filter (mis. Google Calendar di Meetings): kotak, tanpa
   teks. Labelnya ada di title/aria-label supaya tetap terbaca screen reader. */
.brtm-console .brtm-filter-btn--icon {
  width: 36px;
  padding: 0;
  justify-content: center;
  flex: 0 0 auto;
}
.brtm-console .brtm-filter-btn--icon i { font-size: 17px; margin: 0; }

/* ---------- POPOVER PETUNJUK GOOGLE CALENDAR (.brtm-gcal-*) ----------
   Dulu hidup di <style scoped> meetings/calendar.vue DAN calls/calendar.vue —
   disalin dua kali, dan karena scoped, Tasks tidak kebagian sama sekali:
   di sana popover-nya tampil PERMANEN (tak pernah dapat opacity:0). Dipindah
   ke sini supaya satu sumber untuk tiga modul. */
.brtm-gcal-hint-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.brtm-gcal-popover {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 260px;
  max-width: 320px;
  background: #fff;
  border: 1px solid #dfe3e8;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .14);
  padding: 10px 12px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
  z-index: 30;
  pointer-events: none;
}
.brtm-gcal-hint-wrap:hover .brtm-gcal-popover,
.brtm-gcal-hint-wrap:focus-within .brtm-gcal-popover {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.brtm-gcal-popover-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 4px;
}
.brtm-gcal-popover-body {
  font-size: 12px;
  line-height: 1.45;
  color: #4b5563;
}

/* ---------- MENU CAKUPAN kalender (.brtm-scope-*) ----------
   Bukan .dropdown-menu bawaan bootstrap: tenant nyata punya 20+ tim, dan menu
   polos tumbuh melewati viewport — tak bisa digulir, tak bisa dicari, dan dua
   entri terpenting (Kalender Saya / Semua Pengguna) terdorong keluar layar.
   Di sini tingginya dibatasi, daftar timnya yang menggulir, sementara dua entri
   itu disematkan di luar area gulir. */
.brtm-console .brtm-scope { position: relative; }
.brtm-console .brtm-scope-scrim { position: fixed; inset: 0; z-index: 1050; }
.brtm-console .brtm-scope-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 1051;
  width: 268px;
  background: #fff;
  border: 1px solid var(--border, #E5E7EB);
  border-radius: 12px;
  box-shadow: 0 14px 40px rgba(15, 23, 42, .18);
  padding: 6px;
  display: flex;
  flex-direction: column;
  max-height: 380px;
}
.brtm-console .brtm-scope-search { position: relative; padding: 2px 2px 6px; flex: 0 0 auto; }
.brtm-console .brtm-scope-search input {
  width: 100%;
  height: 32px;
  border: 1px solid var(--border, #E5E7EB);
  border-radius: 8px;
  padding: 0 9px 0 30px;
  font: inherit;
  font-size: 12.5px;
}
.brtm-console .brtm-scope-search input:focus {
  outline: none;
  border-color: var(--primary, #1B6FBE);
  box-shadow: 0 0 0 3px rgba(27, 111, 190, .12);
}
.brtm-console .brtm-scope-search i { position: absolute; left: 10px; top: 10px; font-size: 15px; color: #94A3B8; }
/* disematkan: di luar area gulir, jadi tak pernah hilang dari jangkauan */
.brtm-console .brtm-scope-pinned {
  flex: 0 0 auto;
  padding-bottom: 5px;
  margin-bottom: 5px;
  border-bottom: 1px solid #EFF2F6;
}
.brtm-console .brtm-scope-list { flex: 1 1 auto; overflow-y: auto; min-height: 0; }
.brtm-console .brtm-scope-head {
  font-size: 10.5px;
  font-weight: 650;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: #94A3B8;
  padding: 5px 9px 3px;
}
.brtm-console .brtm-scope-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 0;
  background: none;
  font: inherit;
  font-size: 12.5px;
  color: var(--text-main, #0F2942);
  padding: 7px 9px;
  border-radius: 8px;
  cursor: pointer;
  text-align: left;
}
.brtm-console .brtm-scope-item:hover { background: #F1F5F9; }
.brtm-console .brtm-scope-item.on { background: var(--primary-light, #E7F1FB); color: var(--primary, #1B6FBE); font-weight: 600; }
.brtm-console .brtm-scope-item i { font-size: 16px; color: #94A3B8; }
.brtm-console .brtm-scope-item.on i { color: var(--primary, #1B6FBE); }
.brtm-console .brtm-scope-none { padding: 12px 9px; font-size: 12px; color: #94A3B8; }

/* ---------- tahun ----------
   Pengganti vue-simple-calendar mode year: bukan daftar acara (setahun bisa
   ribuan baris, tak ada yang membacanya) melainkan 12 mini-bulan yang selnya
   digelapkan menurut kepadatan. Skala sengaja 4 anak tangga, bukan gradien
   mulus, supaya antar-bulan bisa dibandingkan mata. */
.brtm-console .brtm-tcal2-year { flex: 1 1 auto; overflow: auto; min-height: 0; padding: 12px 18px 28px; }
.brtm-console .brtm-tcal2-year-legend {
  display: flex;
  align-items: center;
  gap: 5px;
  justify-content: flex-end;
  font-size: 11px;
  color: var(--brtm-tcal2-ink-3);
  margin-bottom: 8px;
}
.brtm-console .brtm-tcal2-year-swatch {
  width: 11px;
  height: 11px;
  border-radius: 3px;
  background: var(--primary, #1B6FBE);
  display: inline-block;
}
.brtm-console .brtm-tcal2-year-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(196px, 1fr));
  gap: 14px;
}
.brtm-console .brtm-tcal2-ymonth {
  border: 1px solid var(--brtm-tcal2-line-soft);
  border-radius: 10px;
  padding: 8px 9px 10px;
  background: #fff;
  min-width: 0;
}
.brtm-console .brtm-tcal2-ymonth-h {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px;
  width: 100%;
  border: 0;
  background: none;
  font: inherit;
  font-size: 12.5px;
  font-weight: 650;
  color: var(--text-main, #0F2942);
  cursor: pointer;
  padding: 0 2px 6px;
  text-align: left;
}
.brtm-console .brtm-tcal2-ymonth-h:hover { color: var(--primary, #1B6FBE); }
.brtm-console .brtm-tcal2-ymonth-h small { font-weight: 500; font-size: 11px; color: var(--brtm-tcal2-ink-3); }
.brtm-console .brtm-tcal2-ymonth-dows,
.brtm-console .brtm-tcal2-ymonth-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 2px;
}
.brtm-console .brtm-tcal2-ymonth-dows {
  margin-bottom: 3px;
  font-size: 9.5px;
  font-weight: 600;
  color: var(--brtm-tcal2-ink-3);
  text-align: center;
}
.brtm-console .brtm-tcal2-yday {
  aspect-ratio: 1;
  border: 0;
  border-radius: 4px;
  background: #F4F6F9;
  font: inherit;
  font-size: 9.5px;
  color: var(--text-muted, #6B7A99);
  cursor: pointer;
  padding: 0;
  display: grid;
  place-items: center;
  min-width: 0;
}
.brtm-console .brtm-tcal2-yday.out { visibility: hidden; }
/* --brtm-yday-a = anak tangga kepadatan; teks jadi putih di dua tangga teratas */
.brtm-console .brtm-tcal2-yday.on {
  background: rgba(27, 111, 190, var(--brtm-yday-a, .2));
  color: var(--text-main, #0F2942);
  font-weight: 600;
}
.brtm-console .brtm-tcal2-yday.on[style*="--brtm-yday-a: 0.7"],
.brtm-console .brtm-tcal2-yday.on[style*="--brtm-yday-a: 1"] { color: #fff; }
.brtm-console .brtm-tcal2-yday:hover { outline: 2px solid var(--primary, #1B6FBE); outline-offset: -2px; }
.brtm-console .brtm-tcal2-yday.today { box-shadow: inset 0 0 0 2px var(--primary, #1B6FBE); font-weight: 700; }

/* ---------- empty state ---------- */
.brtm-console .brtm-tcal2-empty {
  flex: 1 1 auto;
  display: grid;
  place-content: center;
  justify-items: center;
  text-align: center;
  color: var(--text-muted, #6B7A99);
  padding: 40px;
}
.brtm-console .brtm-tcal2-empty i { font-size: 36px; margin-bottom: 10px; color: #CBD5E1; }
.brtm-console .brtm-tcal2-empty b { color: var(--text-main, #0F2942); font-size: 14px; margin-bottom: 4px; }

/* ---------- saklar kepadatan di sub-ribbon ---------- */
.brtm-console .brtm-tcal2-switches { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.brtm-console .brtm-tcal2-switch {
  text-transform: none;
  letter-spacing: normal;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--text-muted, #6B7A99);
  cursor: pointer;
  user-select: none;
  margin: 0;
}
.brtm-console .brtm-tcal2-switch input {
  -webkit-appearance: none;
  appearance: none;
  width: 30px;
  height: 17px;
  border-radius: 9px;
  background: #CBD5E1;
  position: relative;
  cursor: pointer;
  transition: background .15s;
  margin: 0;
  flex: 0 0 auto;
}
.brtm-console .brtm-tcal2-switch input:checked { background: var(--primary, #1B6FBE); }
.brtm-console .brtm-tcal2-switch input::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #fff;
  transition: transform .15s;
}
.brtm-console .brtm-tcal2-switch input:checked::after { transform: translateX(13px); }

/* ---------- tambahan RAIL v2 (cari, "Hanya", bar beban) ----------
   Kelas .brtm-tcal-* lama dipakai bersama Calls & Tasks yang masih vue-cal,
   jadi di sini cuma DITAMBAH, tidak diubah. */
.brtm-console .brtm-tcal-rail-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.brtm-console .brtm-tcal-rail-head button {
  border: 0;
  background: none;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--primary, #1B6FBE);
  cursor: pointer;
  padding: 0;
  white-space: nowrap;
}
/* Pemilih cakupan di kepala rail (My Calendar / Tim / User + tim mana). */
.brtm-console .brtm-tcal-scope {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0 12px 10px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--border, #E5E7EB);
}
.brtm-console .brtm-tcal-scope-select {
  width: 100%;
  height: 32px;
  border: 1px solid var(--border, #E5E7EB);
  border-radius: 8px;
  padding: 0 26px 0 9px;
  font: inherit;
  font-size: 12.5px;
  color: var(--text-main, #0F2942);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 9px center;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}
.brtm-console .brtm-tcal-scope-select:focus {
  outline: none;
  border-color: var(--primary, #1B6FBE);
  box-shadow: 0 0 0 3px rgba(27, 111, 190, .12);
}
.brtm-console .brtm-tcal-rail-head--members { padding-top: 4px; }
.brtm-console .brtm-tcal-rail-search { margin: 6px 12px 8px; position: relative; }
.brtm-console .brtm-tcal-rail-search input {
  width: 100%;
  height: 29px;
  border: 1px solid var(--border, #E5E7EB);
  border-radius: 8px;
  padding: 0 8px 0 28px;
  font: inherit;
  font-size: 12px;
  background: #fff;
}
.brtm-console .brtm-tcal-rail-search input:focus {
  outline: none;
  border-color: var(--primary, #1B6FBE);
  box-shadow: 0 0 0 3px rgba(27, 111, 190, .12);
}
.brtm-console .brtm-tcal-rail-search i { position: absolute; left: 8px; top: 7px; color: #94A3B8; font-size: 14px; }
.brtm-console .brtm-tcal-rail-none { padding: 14px 10px; color: #94A3B8; font-size: 12px; }
.brtm-console .brtm-tcal-mem { position: relative; }
.brtm-console .brtm-tcal-mem-only {
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
  background: #fff;
  border: 1px solid var(--border, #E5E7EB);
  border-radius: 6px;
  font: inherit;
  font-size: 10.5px;
  font-weight: 600;
  color: var(--primary, #1B6FBE);
  padding: 2px 6px;
  cursor: pointer;
  display: none;
}
.brtm-console .brtm-tcal-mem:hover .brtm-tcal-mem-only { display: block; }
.brtm-console .brtm-tcal-load { height: 3px; border-radius: 2px; background: #E2E8F0; margin-top: 4px; overflow: hidden; }
.brtm-console .brtm-tcal-load > span { display: block; height: 100%; border-radius: 2px; }

/* ── CHAT BUBBLE WIDTH CLAMP ─────────────────────────────────────────────
   Sengaja TANPA prefix .brtm-chat-page: clamp lama cuma ada di pembungkus
   (.brtm-cv-msg-body) dan seluruhnya di-scope ke .brtm-chat-page, jadi begitu
   ancestor itu absen bubble melar selebar kolom chat. */
.brtm-cv-msg-body { max-width: min(640px, 72%); min-width: 0; }
.brtm-cv-bubble {
  max-width: min(560px, 100%);
  overflow-wrap: anywhere;
}
/* Sticker/carousel bubble transparan: biarkan isinya yang menentukan lebar. */
.brtm-cv-bubble.brtm-no-bg { max-width: 100%; }
/* ============================================================
   CONVERT LEAD (full-page, single-screen) — module Leads — (.cvx-*)
   Port dari AI Studio/leads_convert.html. Pola sama dengan MERGE
   (.mrg-*, lihat komentar di atas): height eksplisit calc(100vh -
   56px) karena flex chain .brtm-page-shell/.brtm-page-content tidak
   dibatasi tinggi sampai ke root. Field/existing-list reuse class
   .brtm-cvt-* yang sudah ada (dipakai modal convert lama).
   ============================================================ */
.cvx-page { height: calc(100vh - var(--tfa-chrome-h, 55px) - 1px); min-height: 0; background: var(--surface); display: flex; flex-direction: column; overflow: hidden; }

/* ---- Sticky top bar ---- */
.cvx-top { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 14px; padding: 13px 26px; background: var(--card-bg); border-bottom: 1px solid var(--border); flex-shrink: 0; }
.cvx-back { width: 36px; height: 36px; border-radius: 9px; background: var(--surface); border: 1px solid var(--border); color: var(--text-2); display: flex; align-items: center; justify-content: center; flex-shrink: 0; cursor: pointer; font-size: 16px; transition: all .12s; }
.cvx-back:hover { background: var(--primary-light); color: var(--primary); border-color: var(--primary); }
.cvx-top-lead { display: flex; align-items: center; gap: 11px; min-width: 0; }
/* rantai flex harus min-width:0 sampai ke elemen yang di-ellipsis */
.cvx-top-lead > div { min-width: 0; }
.cvx-top-avatar { width: 38px; height: 38px; border-radius: 50%; background: #7C3AED; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 15px; flex-shrink: 0; }
.cvx-top-title { font-size: 15px; font-weight: 700; color: var(--text-1); display: flex; align-items: center; gap: 6px; white-space: nowrap; min-width: 0; }
.cvx-top-sep { color: var(--text-3); font-weight: 400; flex-shrink: 0; }
/* nama lead panjang dipotong, JANGAN mendorong zona aksi — .cvx-top-right
   flex-shrink:0 jadi tanpa ini judul melimpah keluar top bar */
.cvx-top-name { color: var(--text-2); font-weight: 600; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.cvx-top-right { margin-left: auto; display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.cvx-btn { height: 38px; padding: 0 16px; border-radius: 8px; border: 1px solid var(--border); background: var(--card-bg); color: var(--text-2); font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 7px; cursor: pointer; transition: all .12s; white-space: nowrap; }
.cvx-btn:disabled { opacity: .5; cursor: not-allowed; }
.cvx-btn:hover { background: var(--surface); }
.cvx-btn.cvx-primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.cvx-btn.cvx-primary:hover { filter: brightness(1.07); }
.cvx-btn.cvx-success { background: var(--accent); border-color: var(--accent); color: #fff; }
.cvx-btn.cvx-success:hover { filter: brightness(1.06); }

/* ---- Dropdown "Setelah convert" (checkbox_action: converted | deleted) ----
   Menggantikan 2 radio lebar-penuh milik halaman convert lama. Ditaruh di top
   bar menempel tombol Convert karena ini pengubah aksi submit; yang bikin ia
   TIDAK terbaca sebagai tombol aksi kedua adalah sekat antara label dan nilai
   (pola "label : value") + nilainya yang selalu menyebut objek ("Hapus Lead",
   bukan "Hapus"). Chip ini SATU-SATUNYA penanda pilihan destruktif di badan
   halaman (strip ringkasan sudah dibuang) — jaring pengaman terakhirnya ada
   di $confirm merah sebelum submit, lihat saveConvert(). */
.cvx-after { position: relative; flex-shrink: 0; }
.cvx-after-btn { height: 38px; padding: 0 11px 0 0; border-radius: 8px; border: 1px solid var(--border); background: var(--card-bg); display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 12.5px; transition: all .12s; white-space: nowrap; }
.cvx-after-btn:hover, .cvx-after-btn.cvx-after-on { background: var(--surface); border-color: var(--primary); }
.cvx-after-btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }
.cvx-after-lbl { padding: 0 11px 0 13px; color: var(--text-3); font-weight: 500; }
/* sekat — ini yang mengubah bacaan dari "tombol" jadi "setelan = nilai" */
.cvx-after-val { padding-left: 11px; border-left: 1px solid var(--border); height: 22px; color: var(--text-1); font-weight: 700; display: inline-flex; align-items: center; gap: 5px; }
.cvx-after-val i { font-size: 12px; color: var(--accent); }
.cvx-after-caret { font-size: 10px; color: var(--text-2); font-weight: 700; }
.cvx-after-btn.cvx-after-danger { border-color: #FECACA; background: #FEF2F2; }
.cvx-after-btn.cvx-after-danger .cvx-after-val { color: #B91C1C; border-left-color: #FECACA; }
.cvx-after-btn.cvx-after-danger .cvx-after-val i, .cvx-after-btn.cvx-after-danger .cvx-after-caret { color: #DC2626; }

.cvx-after-menu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 40; width: 330px; background: var(--card-bg); border: 1px solid var(--border); border-radius: 11px; box-shadow: 0 10px 28px rgba(16, 24, 40, .14); padding: 5px; }
.cvx-after-opt { width: 100%; display: flex; align-items: flex-start; gap: 9px; padding: 9px 10px; border: 0; border-radius: 8px; background: transparent; text-align: left; cursor: pointer; transition: background .12s; }
.cvx-after-opt:hover { background: var(--surface); }
.cvx-after-opt:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
.cvx-after-opt > i { font-size: 14px; color: var(--text-3); margin-top: 1px; flex-shrink: 0; }
.cvx-after-opt > span { min-width: 0; flex: 1; }
/* > span > b saja — <b> di dalam <small> harus tetap inline, kalau ikut
   display:block kata yang ditebalkan pecah ke barisnya sendiri. */
.cvx-after-opt > span > b { display: block; font-size: 12.5px; font-weight: 650; color: var(--text-1); }
.cvx-after-opt small { display: block; margin-top: 2px; font-size: 11px; line-height: 1.45; color: var(--text-3); }
.cvx-after-opt small b { display: inline; font-size: inherit; font-weight: 700; color: var(--text-2); }
.cvx-after-tick { font-size: 13px; color: var(--primary); opacity: 0; flex-shrink: 0; margin-top: 1px; }
.cvx-after-opt.brtm-active { background: var(--primary-light); }
.cvx-after-opt.brtm-active > i { color: var(--primary); }
.cvx-after-opt.brtm-active .cvx-after-tick { opacity: 1; }
.cvx-after-opt-danger:hover { background: #FEF2F2; }
.cvx-after-opt-danger > i, .cvx-after-opt-danger > span > b { color: #B91C1C; }
.cvx-after-opt-danger.brtm-active { background: #FEF2F2; }
.cvx-after-opt-danger.brtm-active > i, .cvx-after-opt-danger .cvx-after-tick { color: #DC2626; }

/* ---- Body ---- */
.cvx-body { width: 100%; flex: 1; min-height: 0; padding: 18px 26px 22px; display: flex; flex-direction: column; overflow: hidden; }

.cvx-intro { font-size: 12.5px; color: var(--text-2); margin: 2px 2px 13px; display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.cvx-intro i { color: var(--primary); }
.cvx-intro b { color: var(--text-1); font-weight: 700; }

/* footer note strip (ringkasan hasil / preview) — di atas kartu */
.cvx-footnote { display: flex; align-items: center; gap: 9px; margin: 0 0 14px; padding: 12px 16px; background: var(--primary-light); border: 1px solid #cfe1f5; border-radius: 11px; font-size: 12px; color: var(--text-2); flex-shrink: 0; }
.cvx-footnote i { color: var(--primary); font-size: 15px; flex-shrink: 0; }
.cvx-footnote b { color: var(--text-1); font-weight: 650; }

/* ---- 3 kartu record paralel — tinggi sama, isi field scroll di dalam tiap kartu ---- */
.cvx-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: stretch; flex: 1; min-height: 0; }
.cvx-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; transition: opacity .15s, box-shadow .15s; display: flex; flex-direction: column; min-height: 0; }
.cvx-card:hover { box-shadow: 0 4px 20px rgba(16, 39, 68, .06); }
.cvx-card.cvx-off .cvx-card-body, .cvx-card.cvx-off .cvx-toggle-wrap { opacity: .5; }

.cvx-card-head { display: flex; align-items: center; gap: 11px; padding: 15px 16px 14px; flex-shrink: 0; }
.cvx-card-ic { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 17px; flex-shrink: 0; }
.cvx-card-ic.cvx-c-contact { background: #7C3AED; }
.cvx-card-ic.cvx-c-org { background: var(--accent); }
.cvx-card-ic.cvx-c-deal { background: var(--primary); }
.cvx-card-ht { flex: 1; min-width: 0; }
.cvx-card-title { font-size: 14px; font-weight: 700; color: var(--text-1); }
.cvx-card-opt { font-size: 10px; font-weight: 600; color: var(--text-3); }
.cvx-card-sub { font-size: 11px; color: var(--text-3); margin-top: 1px; }
.cvx-card-badge { font-size: 10px; font-weight: 700; padding: 3px 9px; border-radius: 99px; white-space: nowrap; flex-shrink: 0; }
.cvx-card-badge.cvx-b-new { background: rgba(0, 184, 122, .13); color: #00875f; }
.cvx-card-badge.cvx-b-linked { background: rgba(27, 111, 190, .12); color: var(--primary); }
.cvx-card-badge.cvx-b-skip { background: rgba(148, 163, 184, .16); color: #64748b; }

.cvx-toggle-wrap { padding: 0 16px 6px; flex-shrink: 0; }
/* padding-top isi field dipindah ke .cvx-sec (bukan di sini) supaya elemen
   sticky di dalamnya (search existing-list) menempel persis di tepi atas
   scrollport — kalau tidak, isi list "ngintip" di celah padding atas. */
.cvx-card-body { padding: 0 16px 18px; border-top: 1px solid var(--br-1); flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #dbe3ed transparent; }
.cvx-card-body::-webkit-scrollbar { width: 7px; }
.cvx-card-body::-webkit-scrollbar-thumb { background: #dbe3ed; border-radius: 99px; border: 2px solid transparent; background-clip: padding-box; }
.cvx-card-body:hover::-webkit-scrollbar-thumb { background: #c3cedd; background-clip: padding-box; }

/* barantum.css mengunci .brtm-cvt-existing-list ke max-height:200px (warisan
   modal lama yang sempit) → di kartu full-page ini bikin scroll-di-dalam-
   scroll. Lepas cap-nya supaya list ikut tinggi kartu & pakai scroll
   .cvx-card-body; search di-sticky supaya list panjang tetap mudah dicari. */
.cvx-card-body .brtm-cvt-existing-list { max-height: none; overflow: visible; }
.cvx-card-body .brtm-cvt-existing-search { position: sticky; top: 0; z-index: 2; background: var(--card-bg); margin-bottom: 10px; box-shadow: 0 10px 0 var(--card-bg); }

.cvx-fields { display: flex; flex-direction: column; gap: 12px; }
.cvx-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cvx-group-label { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-3); margin: 8px 0 -3px; padding-top: 11px; border-top: 1px dashed var(--br-1); }
.cvx-group-label:first-child { border-top: none; padding-top: 0; margin-top: 0; }
.cvx-sec { padding-top: 12px; }

/* Field dinamis dari Api.Convert dipakai via component-text/singleoption/dkk
   (barantum-cvt-field), yang render .brtm-form-control (input-design-system.css)
   — dibuat lebih rapat di sini supaya seukuran field statis lain di kartu
   (pola sama seperti .mrg-cand-input-wrap .brtm-form-control). */
.cvx-card-body .brtm-form-control { font-size: 12.5px; padding: 6px 10px; height: auto; min-height: 32px; }
.cvx-card-body textarea.brtm-form-control { min-height: 64px; }
.cvx-field-unsupported { font-size: 11.5px; color: var(--text-3); font-style: italic; padding: 6px 0; }

/* skip note (Deal dilewati) */
.cvx-skip-note { text-align: center; padding: 26px 14px; }
.cvx-skip-ic { width: 52px; height: 52px; border-radius: 50%; background: var(--surface); border: 2px solid var(--border); display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; font-size: 22px; color: var(--text-3); }
.cvx-skip-title { font-size: 13px; font-weight: 700; color: var(--text-1); margin-bottom: 5px; }
.cvx-skip-sub { font-size: 11.5px; color: var(--text-2); line-height: 1.55; max-width: 220px; margin: 0 auto; }

/* ---- Success hero ---- */
.cvx-result { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 76px 20px 60px; background: linear-gradient(180deg, #eaf2fb, #f5f7fb 55%); flex: 1; min-height: 0; overflow-y: auto; }
.cvx-done-ic { width: 74px; height: 74px; border-radius: 50%; background: #00B87A; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 34px; margin-bottom: 22px; box-shadow: 0 12px 30px rgba(0, 184, 122, .28); }
.cvx-done-title { font-size: 21px; font-weight: 800; color: var(--text-1); }
.cvx-done-sub { font-size: 13px; color: var(--text-3); margin-top: 7px; max-width: 440px; line-height: 1.6; }
.cvx-done-cards { display: flex; gap: 14px; margin-top: 32px; flex-wrap: wrap; justify-content: center; max-width: 780px; }
.cvx-done-card { width: 224px; background: var(--card-bg); border: 1px solid var(--border); border-radius: 12px; padding: 16px; text-align: left; box-shadow: 0 4px 16px rgba(16, 39, 68, .05); }
.cvx-done-card .ic { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 16px; margin-bottom: 10px; }
.cvx-done-card .nm { font-size: 13px; font-weight: 700; color: var(--text-1); }
.cvx-done-card .sub { font-size: 11px; color: var(--text-3); margin: 2px 0 12px; }
.cvx-done-card a { font-size: 11.5px; font-weight: 700; color: var(--primary); display: inline-flex; align-items: center; gap: 4px; text-decoration: none; cursor: pointer; }
.cvx-done-card a:hover { text-decoration: underline; }
.cvx-done-actions { display: flex; gap: 10px; margin-top: 34px; }

/* Layar sempit: kartu ditumpuk → balik ke tinggi natural + scroll halaman
   biasa (scroll per-kartu cuma masuk akal saat 3 kolom sejajar) */
@media (max-width: 1000px) {
  .cvx-page { height: auto; min-height: calc(100vh - var(--tfa-chrome-h, 55px) - 1px); overflow: visible; }
  .cvx-body { display: block; overflow: visible; }
  .cvx-cards { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; flex: none; }
  .cvx-card { min-height: 0; }
  .cvx-card-body { overflow-y: visible; flex: none; }
}

/* =========================================================================
   SECTION ACCORDION (.brtm-acc-*)
   Header seksi form create/edit (Leads Info, Profile Info, dst) — dipakai
   src/config/components/views/section_accordion.vue, menggantikan
   card-header bg-gray-30 Bootstrap lama.
   ========================================================================= */
.brtm-acc { display: flex; flex-direction: column; gap: 12px; }

.brtm-acc-item {
  border: 1px solid var(--border); border-radius: var(--radius, 8px); background: var(--card-bg, #fff);
  overflow: hidden; transition: border-color .15s ease, box-shadow .15s ease;
}
.brtm-acc-item.is-open { border-color: #C7DCF2; box-shadow: 0 2px 10px rgba(27,111,190,.06); }

.brtm-acc-head {
  display: flex; align-items: center; gap: 12px; padding: 13px 16px;
  cursor: pointer; user-select: none; background: var(--card-bg, #fff); transition: background .12s ease;
  position: relative;
}
.brtm-acc-head:hover { background: #FAFBFD; }
.brtm-acc-item.is-open .brtm-acc-head { background: var(--primary-light, #E7F1FB); }
.brtm-acc-item.is-open .brtm-acc-head:hover { background: #DCEBFA; }
.brtm-acc-item.is-open .brtm-acc-head::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--primary);
}

.brtm-acc-ic {
  width: 30px; height: 30px; border-radius: 8px; flex: none;
  display: flex; align-items: center; justify-content: center;
  background: var(--primary-light, #E7F1FB); color: var(--primary); font-size: 16px;
  transition: background .12s ease, color .12s ease;
}
.brtm-acc-item.is-open .brtm-acc-ic { background: var(--primary); color: #fff; }

.brtm-acc-titlewrap { flex: 1; min-width: 0; }
.brtm-acc-title { font-size: 12.5px; font-weight: 700; color: var(--text-main); line-height: 1.3; }

.brtm-acc-badge {
  font-size: 11px; font-weight: 600; color: var(--text-muted); background: #F0F2F6;
  border-radius: 20px; padding: 2px 9px; flex: none; margin-right: 2px;
}
.brtm-acc-item.is-open .brtm-acc-badge { background: #fff; color: var(--primary); }

.brtm-acc-chev {
  width: 26px; height: 26px; border-radius: 7px; flex: none;
  display: flex; align-items: center; justify-content: center;
  color: var(--text-muted); font-size: 16px;
  transition: transform .18s ease, background .12s ease, color .12s ease;
}
.brtm-acc-head:hover .brtm-acc-chev { background: rgba(20,30,50,.06); }
.brtm-acc-item.is-open .brtm-acc-chev { color: var(--primary); transform: rotate(180deg); }

.brtm-acc-body-outer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .2s ease; }
.brtm-acc-item.is-open .brtm-acc-body-outer { grid-template-rows: 1fr; }
.brtm-acc-body-inner { overflow: hidden; }
.brtm-acc-item .brtm-acc-body { display: block; padding: 18px 18px 20px; border-top: 1px solid var(--border); }

/* ═══════════════ GRID PREMIUM POLISH (2026-07-17, PR #217) ═══════════════
   Menjawab review owner "kurang rapi/premium" pada listing console (deals dkk):
   kurangi noise ikon, rapikan ritme baris, haluskan pill. Semua ter-namespace
   .brtm-console .brtm-grid-host — modul non-console TIDAK berubah. */

/* 1. Ikon aksi per-baris (pensil/mata) lembut, penuh saat baris di-hover /
      tombolnya difokus keyboard. Tidak disembunyikan total (touch device). */
.brtm-console .brtm-grid-host .ag-row .brtm-icon-btn {
  opacity: .45;
  transition: opacity .12s ease;
}
.brtm-console .brtm-grid-host .ag-row-hover .brtm-icon-btn,
.brtm-console .brtm-grid-host .ag-row .brtm-icon-btn:focus-visible {
  opacity: 1;
}

/* 2. Tombol filter/menu di header senyap sampai kolomnya di-hover — hutan ikon
      corong di tiap header adalah sumber utama kesan "ramai". Filter yang
      AKTIF tetap terang supaya state-nya tidak tersembunyi. */
.brtm-console .brtm-grid-host .ag-header-cell-filter-button,
.brtm-console .brtm-grid-host .ag-header-cell-menu-button {
  opacity: .35;
  transition: opacity .12s ease;
}
.brtm-console .brtm-grid-host .ag-header-cell:hover .ag-header-cell-filter-button,
.brtm-console .brtm-grid-host .ag-header-cell:hover .ag-header-cell-menu-button,
.brtm-console .brtm-grid-host .ag-header-cell-filter-button.ag-filter-active {
  opacity: 1;
}

/* 3. Ritme baris: garis pemisah lebih lembut, hover & selected bernuansa
      primary tipis (bukan abu datar). */
.brtm-console .brtm-grid-host .ag-theme-alpine {
  --ag-border-color: #EDF1F7;
  --ag-row-border-color: #EEF2F8;
  --ag-row-hover-color: #F7FAFE;
  --ag-selected-row-background-color: #EDF4FD;
}

/* 4. Pill "Complete Time": inline width 215px dari customRenderAgGrid deals
      dinetralkan — lebar mengikuti isi, gaya pill tenang, bukan balok abu
      selebar kolom di tiap baris. */
.brtm-console .brtm-grid-host .ag-cell[col-id="complete_time"] .badge {
  width: auto !important;
  min-width: 84px;
  padding: 4px 12px;
  background: #F1F5F9;
  color: #64748B;
  font-weight: 600;
  border-radius: 999px;
}

/* 5. Badge status kecil (Overdue dll) berbentuk pill konsisten */
.brtm-console .brtm-grid-host .badge-light-danger,
.brtm-console .brtm-grid-host .badge-light-secondary {
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: .02em;
}

/* ── PREMIUM POLISH 2: ritme sel & owner satu baris ─────────────────────── */

/* Owner: nama + pill "N Teams" SEBARIS (dulu bertumpuk 2 baris + align-start) */
.brtm-console .brtm-grid-host .brtm-owner-cell { align-items: center !important; }
.brtm-console .brtm-grid-host .brtm-owner-cell > div {
  display: flex; align-items: center; gap: 6px; min-width: 0;
}
.brtm-console .brtm-grid-host .brtm-owner-name {
  -webkit-line-clamp: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.brtm-console .brtm-grid-host .brtm-owner-teams { margin-top: 0; flex: none; }

/* Padding vertikal .ag-cell-value dari renderer (--space-2 = 8px atas-bawah)
   terlalu boros utk row 48px — rapatkan agar konten center rapi. */
.brtm-console .brtm-grid-host .ag-cell-value { padding-top: 2px; padding-bottom: 2px; }

/* Placeholder sel kosong konsisten: div value yang benar-benar kosong diberi
   en-dash muted (dulu campuran &nbsp; / div kosong / nihil). */
.brtm-console .brtm-grid-host .ag-cell-value:empty::before {
  content: "\2013"; color: #B6C2D6;
}
/* KECUALI kolom seleksi/checkbox: ag-grid membungkus SEMUA sel di
   .ag-cell-wrapper, dan sel kolom seleksi punya .ag-cell-value KOSONG bawaan →
   placeholder di atas dulu memunculkan "–" hantu di samping tiap checkbox.
   Target HANYA wrapper yang berisi .ag-selection-checkbox supaya sel DATA
   biasa TETAP mendapat placeholder "–" (standar sel kosong).
   Sibling selector instead of :has(> .ag-selection-checkbox): ag-grid renders the
   checkbox right before .ag-cell-value inside the wrapper, so the result is the same,
   while the :has() version made every new grid row re-check the page (TM #15727). */
.brtm-console .brtm-grid-host .ag-cell-wrapper > .ag-selection-checkbox ~ .ag-cell-value:empty::before,
.brtm-console .brtm-grid-host .ag-cell[col-id="ag-Grid-SelectionColumn"] .ag-cell-value:empty::before {
  content: none;
}

/* complete_time: kalahkan .badge-light-secondary!important dari colors.css */
.brtm-console .brtm-grid-host .ag-cell[col-id="complete_time"] .badge {
  background: #F1F5F9 !important;
  color: #64748B !important;
}

/* ── PREMIUM POLISH 3: cell editor menyatu dgn design system v7 ─────────── */

/* Panel editor mengambang (pengganti inline width:242px + margin negatif).
   Lebar mengikuti kolom (min 242 utk usability di kolom sempit). */
.brtm-console .brtm-grid-host .brtm-ce-float,
.brtm-grid-host .brtm-ce-float {
  position: absolute; left: 0; top: 0; z-index: 300;
  width: 100%; min-width: 242px;
  background: #fff; border: 1px solid var(--border, #DDE3ED);
  border-radius: 10px; box-shadow: 0 8px 24px rgba(15, 41, 66, .14);
  padding: 6px;
}
.brtm-grid-host .brtm-ce-panel { padding: 10px 12px; }
.brtm-grid-host .brtm-ce-panel .form-group { margin-bottom: 0; }

/* Input editor bertoken v7 (menggantikan look Bootstrap .form-control lama). */
.brtm-console .brtm-grid-host .ag-cell .form-control,
.brtm-console .brtm-grid-host .brtm-ce-float .form-control {
  height: 34px; font-size: 13px; color: var(--text-main, #18233A);
  border: 1.5px solid var(--primary, #1B6FBE); border-radius: 7px;
  box-shadow: 0 0 0 3px rgba(27, 111, 190, .10);
}

/* vue-multiselect dirapikan ke token v7 */
.brtm-grid-host .brtm-ce-float .multiselect__tags {
  min-height: 34px; padding-top: 5px; font-size: 13px;
  border: 1px solid var(--border, #DDE3ED); border-radius: 7px;
}
.brtm-grid-host .brtm-ce-float .multiselect__input,
.brtm-grid-host .brtm-ce-float .multiselect__single,
.brtm-grid-host .brtm-ce-float .multiselect__placeholder { font-size: 13px; margin-bottom: 4px; }
.brtm-grid-host .brtm-ce-float .multiselect__option--highlight,
.brtm-grid-host .brtm-ce-float .multiselect__option--highlight:after { background: var(--primary, #1B6FBE); }
.brtm-grid-host .brtm-ce-float .multiselect__tag { background: var(--primary, #1B6FBE); border-radius: 6px; }
.brtm-grid-host .brtm-ce-float .multiselect__content-wrapper {
  border: 1px solid var(--border, #DDE3ED); border-radius: 0 0 8px 8px; font-size: 13px;
}

/* vue-datepicker-next input mengikuti token */
.brtm-console .brtm-grid-host .mx-input {
  height: 34px; font-size: 13px; border-radius: 7px;
  border: 1.5px solid var(--primary, #1B6FBE); box-shadow: 0 0 0 3px rgba(27, 111, 190, .10);
}

/* vue-select (related) mengikuti token */
.brtm-grid-host .brtm-ce-float .vs__dropdown-toggle {
  min-height: 34px; font-size: 13px;
  border: 1px solid var(--border, #DDE3ED); border-radius: 7px; background: #fff;
}

/* Isi sel renderer mengikuti lebar kolom — pengganti kunci max-width:190px
   yang dulu tersebar di 15 salinan customRenderAgGrid (rollout 2026-07-17). */
.brtm-grid-host .brtm-cell-main { min-width: 0; flex: 1 1 auto; overflow: hidden; }
.brtm-grid-host .pt-25.brtm-cell-main { max-width: none; }

/* ── HOTFIX BETA 2026-07-18: clipping keras level SEL ──────────────────────
   AG Grid (theme legacy) TIDAK meng-clip di .ag-cell (overflow hanya di
   .ag-cell-value) — root renderer custom kita bukan .ag-cell-value, dan
   pengaman lama max-width:190px sudah dicabut, jadi teks panjang MENEMBUS
   kolom/baris tetangga. Rule di sini menang dari 21 <style> renderer
   non-scoped (specificity .brtm-grid-host .ag-cell …) — perbaikan satu
   titik utk semua modul. Popover tidak ter-clip karena container:'body'.
   :not(.ag-cell-inline-editing) = editor float .brtm-ce-float tetap bebas. */
.brtm-grid-host .ag-cell:not(.ag-cell-inline-editing) { overflow: hidden; }
.brtm-grid-host .ag-cell .brtm-action-cell__left {
  overflow: hidden; min-width: 0; flex: 1 1 auto;
}
/* Tombol aksi (edit/preview) WAJIB rata kanan kolom Subject di SEMUA modul.
   Sebagian besar salinan customRenderAgGrid.vue membungkus isinya dengan <div>
   polos tanpa kelas; karena .brtm-console .ag-cell = display:flex, <div> itulah
   flex-item-nya dan default-nya MENYUSUT selebar isi. Akibatnya
   .brtm-action-cell (width:100% + justify-content:space-between) ikut
   menyempit, dan tombolnya menempel persis di belakang teks — posisinya jadi
   berbeda-beda tiap baris mengikuti panjang subjek. Leads
   (.brtm-subjcell-host) & Contacts (.brtm-action-cell--person) sudah dipaksa
   penuh di blok CONSOLE; rule ini menutup sisa modulnya sekali jalan. */
.brtm-grid-host .ag-cell[col-id="action"] > * {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
}
/* Nama subjek di dalam grid MEMBUNGKUS maks 2 baris (bukan 1 baris ellipsis).
   Dulu rule ini memaksa 1 baris; diubah GLOBAL 2026-07 agar semua listing
   konsisten (Contacts/Org/Tickets/Projects/Meetings/Calls/Tasks/Notes/Issue/
   Survey/Products/Quotation/Leads). Popover hover & unlock lebar kolom ditangani
   per-modul di renderer/listing masing-masing. rowHeight 48 muat 2 baris. */
.brtm-grid-host .ag-cell .brtm-subject-link {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  max-width: 100%; overflow: hidden; white-space: normal;
  line-height: 1.3; word-break: break-word;
}
/* Chip stage: LABEL adalah informasi utama — dilarang kolaps oleh flex-shrink
   (di kolom sempit, meta tanggal-lah yang mengalah/terpotong lebih dulu). */
.brtm-grid-host .ag-cell .brtm-stage-card { flex: 0 0 auto; max-width: 100%; }
.brtm-grid-host .ag-cell .brtm-stage-card .brtm-stage-name {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.brtm-grid-host .ag-cell .brtm-stage-meta { flex: 0 1 auto; }

/* ── DESIGN RULES (docs/ag-grid/DESIGN-RULES.md) — penegak CSS ────────────
   R2 Alignment per tipe data: angka/uang & tanggal RATA KANAN. Kelas ini
   diinjeksikan TERPUSAT oleh host (computedColumnDefs -> designCellClass)
   berdasarkan <module>_fields_input_type — modul tidak perlu (dan tidak
   boleh) menyalinnya manual. .ag-cell console = flex, sel non-console =
   inline-block: keduanya dicakup (justify-content + text-align). */
.brtm-grid-host .ag-cell.brtm-cell--num,
.brtm-grid-host .ag-cell.brtm-cell--date {
  justify-content: flex-end;
  text-align: right;
}
.brtm-grid-host .ag-cell.brtm-cell--num {
  font-variant-numeric: tabular-nums; /* kolom angka rapi lurus antar baris */
}
.brtm-grid-host .ag-header-cell.brtm-header--right .ag-header-cell-label {
  justify-content: flex-end;
}
/* R5 Tipografi peran (token — pakai var, jangan hardcode px baru):
   body sel 13px / meta 11.5px / header 13px weight 650. */
.brtm-grid-host { --brtm-fs-cell: 13px; --brtm-fs-meta: 11.5px; }

/* ── PREMIUM POLISH 4: chrome, states, dan micro-interaction grid ───────────
   Seluruh selector tetap di bawah console + grid host agar listing legacy yang
   belum dimigrasikan tidak berubah. Warna diturunkan dari token tema. */
.brtm-console .brtm-grid-host .ag-theme-alpine {
  --ag-font-family: inherit;
  --ag-font-size: 13px;
  --ag-foreground-color: var(--text-main);
  --ag-secondary-foreground-color: var(--text-muted);
  --ag-header-foreground-color: #435368;
  --ag-header-background-color: #DBE9F7;
  --ag-odd-row-background-color: color-mix(in srgb, var(--background, #fff) 35%, #fff);
  --ag-row-hover-color: color-mix(in srgb, var(--primary-light) 58%, #fff);
  --ag-selected-row-background-color: color-mix(in srgb, var(--primary-light) 82%, #fff);
  --ag-range-selection-border-color: var(--primary);
  --ag-input-focus-border-color: var(--primary);
  --ag-checkbox-checked-color: var(--primary);
  --ag-checkbox-unchecked-color: var(--text-light);
  --ag-icon-size: 14px;
}

.brtm-console .brtm-grid-host .ag-root-wrapper {
  background: #fff;
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--primary) 10%, transparent);
}

.brtm-console .brtm-grid-host .ag-header {
  /* Solid biru medium on-brand — dulu gradient nyaris putih (#F5F9FD→#EEF5FC)
     yang washed-out; sekarang header terbaca jelas sbg band. */
  background: #DBE9F7 !important;
  border-bottom-color: color-mix(in srgb, var(--primary) 22%, var(--border));
  box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 6%, transparent);
  z-index: 2;
}

.brtm-console .brtm-grid-host .ag-header-row,
.brtm-console .brtm-grid-host .ag-header-cell,
.brtm-console .brtm-grid-host .ag-floating-filter {
  background: transparent !important;
}

.brtm-console .brtm-grid-host .ag-header-cell {
  transition: background-color .15s ease, color .15s ease;
}
.brtm-console .brtm-grid-host .ag-header-cell:hover {
  background: color-mix(in srgb, var(--primary) 7%, transparent) !important;
  color: var(--primary);
}
.brtm-console .brtm-grid-host .ag-header-cell::after {
  background-color: color-mix(in srgb, var(--primary) 12%, var(--border)) !important;
  height: 46%;
  top: 27%;
}
.brtm-console .brtm-grid-host .ag-header-cell-label {
  gap: 6px;
  font-weight: 650;
}
.brtm-console .brtm-grid-host .ag-sort-indicator-icon {
  color: var(--primary);
}

.brtm-console .brtm-grid-host .ag-row {
  transition: background-color .14s ease, box-shadow .14s ease;
}
.brtm-console .brtm-grid-host .ag-row-hover {
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--primary) 70%, transparent);
}
.brtm-console .brtm-grid-host .ag-row-selected {
  box-shadow: inset 3px 0 0 var(--primary);
}
.brtm-console .brtm-grid-host .ag-cell {
  display: flex;
  align-items: center;
  color: var(--text-main);
  line-height: 1.35;
  border-right-color: color-mix(in srgb, var(--border) 72%, transparent);
}
.brtm-console .brtm-grid-host .ag-cell:focus,
.brtm-console .brtm-grid-host .ag-cell-focus {
  border-color: var(--primary) !important;
  box-shadow: inset 0 0 0 1px var(--primary);
}

.brtm-console .brtm-grid-host .ag-checkbox-input-wrapper {
  border-radius: 5px;
  transition: transform .12s ease, box-shadow .12s ease;
}
.brtm-console .brtm-grid-host .ag-checkbox-input-wrapper:hover {
  transform: scale(1.08);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent);
}

.brtm-console .brtm-grid-host .ag-body-horizontal-scroll,
.brtm-console .brtm-grid-host .ag-body-vertical-scroll {
  background: color-mix(in srgb, var(--background, #fff) 55%, #fff);
}
.brtm-console .brtm-grid-host .ag-body-viewport::-webkit-scrollbar,
.brtm-console .brtm-grid-host .ag-center-cols-viewport::-webkit-scrollbar,
.brtm-console .brtm-grid-host .ag-body-horizontal-scroll-viewport::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
.brtm-console .brtm-grid-host .ag-body-viewport::-webkit-scrollbar-thumb,
.brtm-console .brtm-grid-host .ag-center-cols-viewport::-webkit-scrollbar-thumb,
.brtm-console .brtm-grid-host .ag-body-horizontal-scroll-viewport::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--text-muted) 34%, transparent);
  border: 3px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
}
.brtm-console .brtm-grid-host .ag-body-viewport::-webkit-scrollbar-thumb:hover,
.brtm-console .brtm-grid-host .ag-center-cols-viewport::-webkit-scrollbar-thumb:hover,
.brtm-console .brtm-grid-host .ag-body-horizontal-scroll-viewport::-webkit-scrollbar-thumb:hover {
  background-color: color-mix(in srgb, var(--primary) 56%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .brtm-console .brtm-grid-host .ag-row,
  .brtm-console .brtm-grid-host .ag-header-cell,
  .brtm-console .brtm-grid-host .ag-checkbox-input-wrapper {
    transition: none;
  }
}

/* ── PREMIUM POLISH 5: final composition ──────────────────────────────────
   Menyatukan toolbar, canvas data, pinned seam, dan pagination menjadi satu
   komposisi. Area kosong tetap terasa disengaja saat jumlah record sedikit. */
.brtm-console .brtm-page-header {
  min-height: 64px;
  padding-top: 12px;
  padding-bottom: 12px;
  gap: 8px;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--primary) 5%, transparent);
  z-index: 5;
}
.brtm-console .brtm-header-filter-group,
.brtm-console .brtm-header-right-group {
  gap: 7px;
}
.brtm-console .brtm-filter-btn,
.brtm-console .brtm-show-per-page-btn,
.brtm-console .brtm-col-settings-btn {
  min-height: 36px;
  border-color: color-mix(in srgb, var(--border) 88%, var(--primary));
  box-shadow: 0 1px 2px color-mix(in srgb, var(--text-main) 5%, transparent);
  transition: border-color .15s ease, background-color .15s ease,
              color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.brtm-console .brtm-filter-btn:hover,
.brtm-console .brtm-show-per-page-btn:hover,
.brtm-console .brtm-col-settings-btn:hover {
  border-color: color-mix(in srgb, var(--primary) 46%, var(--border));
  background: color-mix(in srgb, var(--primary-light) 42%, #fff);
  color: var(--primary);
  box-shadow: 0 3px 10px color-mix(in srgb, var(--primary) 10%, transparent);
  transform: translateY(-1px);
}

.brtm-console .brtm-grid-host .ag-body,
.brtm-console .brtm-grid-host .ag-body-viewport,
.brtm-console .brtm-grid-host .ag-center-cols-viewport,
.brtm-console .brtm-grid-host .ag-center-cols-container {
  background-color: #fff;
  background-image: linear-gradient(
    180deg,
    transparent 0,
    transparent 72px,
    color-mix(in srgb, var(--primary-light) 14%, #fff) 100%
  );
}
.brtm-console .brtm-grid-host .ag-row {
  background-color: color-mix(in srgb, #fff 97%, var(--primary-light));
}
.brtm-console .brtm-grid-host .ag-row-odd {
  background-color: color-mix(in srgb, #fff 98%, var(--background, #fff));
}
.brtm-console .brtm-grid-host .ag-row-hover {
  background-color: color-mix(in srgb, var(--primary-light) 58%, #fff) !important;
}
.brtm-console .brtm-grid-host .ag-row-selected {
  background-color: color-mix(in srgb, var(--primary-light) 82%, #fff) !important;
}

/* Seam lebih natural daripada garis keras; tetap menjaga konteks saat tabel
   di-scroll jauh ke kanan. Pinned v36 dijangkar via col-id, bukan class lama. */
.brtm-console .brtm-grid-host .ag-header-cell[col-id="action"],
.brtm-console .brtm-grid-host .ag-cell[col-id="action"] {
  border-right-color: color-mix(in srgb, var(--primary) 13%, var(--border));
  box-shadow: 5px 0 12px -9px color-mix(in srgb, var(--text-main) 42%, transparent);
}

.brtm-console .brtm-pagination-bar {
  min-height: 54px;
  padding-top: 8px;
  padding-bottom: 8px;
  background: linear-gradient(180deg, #fff, color-mix(in srgb, var(--primary-light) 18%, #fff));
  border-top-color: color-mix(in srgb, var(--primary) 12%, var(--border));
  box-shadow: 0 -5px 16px color-mix(in srgb, var(--text-main) 4%, transparent);
  z-index: 4;
}
.brtm-console .brtm-pagination-info {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
.brtm-console .brtm-page-btn {
  min-width: 104px;
  height: 34px;
  justify-content: center;
  border-radius: 8px;
  border-color: color-mix(in srgb, var(--border) 86%, var(--primary));
  background: #fff;
  font-weight: 600;
  box-shadow: 0 1px 2px color-mix(in srgb, var(--text-main) 5%, transparent);
  transition: color .15s ease, border-color .15s ease,
              background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.brtm-console .brtm-page-btn:not(:disabled):hover {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 22%, transparent);
  transform: translateY(-1px);
}
.brtm-console .brtm-page-btn:disabled {
  background: color-mix(in srgb, var(--background, #fff) 55%, #fff);
  border-color: color-mix(in srgb, var(--border) 74%, transparent);
  color: var(--text-light);
  opacity: .72;
}

.brtm-console .brtm-empty-hero,
.brtm-console .brtm-noresult {
  background:
    radial-gradient(circle at 50% 34%, color-mix(in srgb, var(--primary-light) 70%, #fff), transparent 30%),
    linear-gradient(180deg, #fff, color-mix(in srgb, var(--primary-light) 22%, #fff));
}
.brtm-console .brtm-empty-ill,
.brtm-console .brtm-noresult-ill {
  box-shadow: 0 12px 32px color-mix(in srgb, var(--primary) 15%, transparent),
              inset 0 0 0 1px color-mix(in srgb, var(--primary) 9%, transparent);
}

/* -- RESPONSIF TOOLBAR CONSOLE --------------------------------------------
   Masalah lama: aturan global @media(max-width:1080px) memecah header jadi
   TIGA baris (judul sendirian, filter, lalu grup kanan) - tinggi terbuang
   dan baris judul kosong melompong.
   Aturan di bawah lebih spesifik (.brtm-console ...) sehingga menang cascade:
   judul + aksi utama tetap SATU baris, filter turun jadi satu pita yang
   digeser mendatar (bukan menumpuk ke banyak baris). */
@media (max-width: 1199px) {
  .brtm-console .brtm-page-header {
    padding-top: 10px;
    padding-bottom: 10px;
    row-gap: 8px;
  }
  /* Baris 1: judul kiri, grup kanan menempel tepi kanan */
  .brtm-console .brtm-page-header > .brtm-page-title {
    order: 1;
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .brtm-console .brtm-page-header > .brtm-header-right-group {
    order: 2;
    width: auto;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    /* !important perlu: rule lama .brtm-page-header>div:nth-child(3) memakai !important */
    margin-left: auto !important;
    margin-right: 0 !important;
  }
  /* Baris 2: pita filter - satu baris, digeser mendatar bila sempit */
  .brtm-console .brtm-page-header > .brtm-header-filter-group {
    order: 3;
    width: 100%;
    flex: 1 1 100%;
    min-width: 0;
    margin-left: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    padding-bottom: 2px;
  }
  .brtm-console .brtm-page-header > .brtm-header-filter-group::-webkit-scrollbar {
    height: 4px;
  }
  .brtm-console .brtm-page-header > .brtm-header-filter-group::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--text-main) 18%, transparent);
    border-radius: 4px;
  }
  /* anak pita filter tidak boleh menyusut jadi gepeng */
  .brtm-console .brtm-page-header > .brtm-header-filter-group > * {
    flex: 0 0 auto;
  }
}

/* Layar sempit: label "View N data" disembunyikan (sisakan ikon) supaya
   grup kanan tetap muat sebaris dengan judul. */
@media (max-width: 767px) {
  .brtm-console .brtm-page-header {
    padding-left: 14px;
    padding-right: 14px;
  }
  .brtm-console .brtm-action-bar,
  .brtm-console .brtm-select-all-banner {
    margin-left: 14px;
    margin-right: 14px;
  }
  .brtm-console .brtm-show-per-page-btn span {
    display: none;
  }
  .brtm-console .brtm-page-header > .brtm-header-right-group {
    overflow-x: auto;
    scrollbar-width: none;
  }
  .brtm-console .brtm-page-header > .brtm-header-right-group::-webkit-scrollbar {
    display: none;
  }
}

/* ============================================================
   REDESIGN POPOVER HOVER — "Kartu Kaya" · namespace .pvx-*
   Engine: src/config/popoveractivity.js (3 fungsi return HTML).
   Dirender di dalam Bootstrap .popover-body (data-html:true), jadi
   chrome .popover di-reset HANYA saat membungkus .pvx-pop (scope
   :has → popover lain di app tidak terpengaruh).
   Token diikat lokal ke .pvx-pop (pakai prefix var netral) supaya
   tidak menabrak/tertimpa token global manapun.
   ============================================================ */

/* -- reset chrome Bootstrap khusus kartu ini -- */
.popover:has(.pvx-pop) {
  width: auto;
  max-width: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
}
.popover:has(.pvx-pop) .popover-body {
  padding: 0;
  max-height: none;
  overflow: visible;
  color: inherit;
}
.popover:has(.pvx-pop) .arrow {
  display: none;
}

/* -- kartu dasar -- */
.pvx-pop {
  --pvx-primary: #1b6fbe;
  --pvx-primary-light: #eef4fb;
  --pvx-primary-dark: #155a9e;
  --pvx-ink: #1f2d3d;
  --pvx-ink-2: #516079;
  --pvx-muted: #8a97a8;
  --pvx-line: #e9edf3;
  --pvx-card: #ffffff;
  --pvx-ok: #16a34a;

  width: 288px;
  background: var(--pvx-card);
  border: 1px solid var(--pvx-line);
  border-radius: 14px;
  box-shadow: 0 12px 34px -8px rgba(28, 52, 84, .22), 0 4px 10px -4px rgba(28, 52, 84, .12);
  overflow: hidden;
  position: relative;
  font-size: 13px;
  line-height: 1.45;
  white-space: normal; /* jangan warisi nowrap dari <td> grid */
  text-align: left;
  color: var(--pvx-ink);
}
.pvx-pop-hd { padding: 14px 15px 12px; }
.pvx-pop-bd { padding: 4px 15px 12px; }
.pvx-pop-ft { display: flex; align-items: center; gap: 8px; }
.pvx-div { height: 1px; background: var(--pvx-line); margin: 2px 15px; }

/* identity head (avatar + nama) */
.pvx-idhead { display: flex; gap: 11px; align-items: flex-start; }
.pvx-avatar {
  width: 42px; height: 42px; flex: 0 0 42px; border-radius: 12px;
  display: grid; place-items: center; color: #fff; font-weight: 700;
  font-size: 15px; letter-spacing: .02em;
  background: linear-gradient(135deg, var(--pvx-primary), #3f95d6);
  box-shadow: 0 4px 10px -2px rgba(27, 111, 190, .5);
}
.pvx-id { min-width: 0; flex: 1; padding-top: 1px; }
.pvx-name { font-weight: 700; font-size: 15px; color: var(--pvx-ink); line-height: 1.3; word-break: break-word; }
.pvx-subrow { display: flex; align-items: center; gap: 6px; margin-top: 5px; flex-wrap: wrap; }
.pvx-chip {
  display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 500;
  padding: 2px 8px; border-radius: 999px; background: #f1f4f8; color: var(--pvx-ink-2);
}
.pvx-chip i { font-size: 13px; }

/* info rows (jabatan / telepon / email) */
.pvx-inforow { display: flex; align-items: center; gap: 10px; padding: 7px 0; position: relative; }
.pvx-inforow + .pvx-inforow { border-top: 1px dashed var(--pvx-line); }
.pvx-ico {
  width: 30px; height: 30px; flex: 0 0 30px; border-radius: 9px; display: grid; place-items: center;
  background: #f1f4f8; color: var(--pvx-ink-2); font-size: 16px;
}
.pvx-info-t { flex: 1; min-width: 0; }
.pvx-info-k { font-size: 10.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--pvx-muted); }
.pvx-info-v { font-size: 13px; font-weight: 600; color: var(--pvx-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pvx-copy {
  width: 26px; height: 26px; border-radius: 7px; border: 0; background: transparent; color: var(--pvx-muted);
  cursor: pointer; display: grid; place-items: center; font-size: 15px; opacity: 0; transition: .15s; padding: 0;
}
.pvx-inforow:hover .pvx-copy { opacity: 1; }
.pvx-copy:hover { background: var(--pvx-primary-light); color: var(--pvx-primary); }

/* fallback kontak kosong */
.pvx-empty-note {
  display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--pvx-muted);
  font-style: italic; padding: 10px 0 2px;
}
.pvx-empty-note i { font-size: 15px; }

/* -- varian aktivitas -- */
.pvx-a-hd { display: flex; align-items: flex-start; gap: 10px; }
.pvx-a-ico {
  width: 38px; height: 38px; flex: 0 0 38px; border-radius: 11px; display: grid; place-items: center;
  font-size: 20px; color: #fff;
}
.pvx-a-tt { flex: 1; min-width: 0; padding-top: 1px; }
.pvx-a-subj {
  font-size: 14px; font-weight: 700; color: var(--pvx-ink); line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-word;
}
.pvx-a-detail {
  width: 26px; height: 26px; flex: 0 0 26px; border-radius: 8px; border: 1px solid var(--pvx-line);
  background: #fff; color: var(--pvx-muted); display: grid; place-items: center; font-size: 14px;
  cursor: pointer; transition: .15s; padding: 0;
}
.pvx-a-detail:hover { background: var(--pvx-primary-light); border-color: #cfe0f2; color: var(--pvx-primary); }
.pvx-a-body {
  font-size: 12.5px; color: var(--pvx-ink-2); line-height: 1.5; margin: 9px 0 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-word;
}
.pvx-a-desc { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--pvx-muted); margin-top: 8px; }
.pvx-a-desc i { font-size: 14px; flex: 0 0 auto; }
.pvx-a-amount { font-size: 18px; font-weight: 800; color: var(--pvx-ok); margin: 10px 0 2px; letter-spacing: -.01em; }
.pvx-owner { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pvx-owner-av {
  width: 24px; height: 24px; flex: 0 0 24px; border-radius: 50%; display: grid; place-items: center;
  font-size: 10px; font-weight: 700; color: #fff; background: linear-gradient(135deg, #64748b, #94a3b8);
}
.pvx-owner-t { font-size: 12px; min-width: 0; overflow: hidden; }
.pvx-owner-t b { display: block; font-weight: 600; color: var(--pvx-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pvx-owner-t span { display: block; font-size: 10.5px; color: var(--pvx-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pvx-owner-empty { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pvx-owner-empty-av {
  width: 24px; height: 24px; flex: 0 0 24px; border-radius: 50%; border: 1.5px dashed #c7d0dc;
  display: grid; place-items: center; color: #b7c0cc; font-size: 13px;
}
.pvx-owner-empty-t { font-size: 12px; color: var(--pvx-muted); font-style: italic; }

/* aksen warna kotak ikon per modul */
.pvx-pop .acc-meetings { background: #7c3aed; }
.pvx-pop .acc-calls { background: #0ea5e9; }
.pvx-pop .acc-tasks { background: #f59e0b; }
.pvx-pop .acc-notes { background: #64748b; }
.pvx-pop .acc-deals { background: #16a34a; }
.pvx-pop .acc-tickets { background: #ef4444; }
.pvx-pop .acc-survey { background: #ec4899; }
.pvx-pop .acc-projects { background: #6366f1; }
.pvx-pop .acc-quotation { background: #0f766e; }

/* -- varian pajak -- */
.pvx-tax-hd { display: flex; align-items: flex-start; gap: 11px; }
.pvx-tax-ico {
  width: 38px; height: 38px; flex: 0 0 38px; border-radius: 11px; display: grid; place-items: center;
  font-size: 20px; color: #fff; background: linear-gradient(135deg, #0f766e, #14b8a6);
}
.pvx-tax-pct { font-size: 26px; font-weight: 800; color: var(--pvx-ink); letter-spacing: -.02em; line-height: 1; }
.pvx-tax-pct small { font-size: 14px; font-weight: 700; color: var(--pvx-muted); }
.pvx-tax-wrap {
  display: flex; align-items: center; gap: 12px; margin: 12px 0 4px; padding: 10px 12px;
  background: linear-gradient(120deg, #f0fdfa, #f7fafc); border: 1px solid #d7f0eb; border-radius: 11px;
}
.pvx-tax-note { font-size: 11px; color: var(--pvx-ink-2); line-height: 1.4; }
.pvx-tax-desc { font-size: 12px; color: var(--pvx-ink-2); line-height: 1.5; }

/* ══════════════════════════════════════════════════════════════════════════
   CELL V2 — sel ag-Grid terpadu (22 Jul 2026)
   Dipakai komponen src/config/components/cells/*.vue. GLOBAL secara sadar:
   satu definisi untuk 23 modul (dulu markup + gaya sel disalin per renderer),
   dan sebagian isinya (popover "+N") dirender Bootstrap ke <body> sehingga
   scoped style tak menjangkaunya.
   Spesifikasi visual: dummypreview/aggrid-cells-v2.html
   ══════════════════════════════════════════════════════════════════════════ */
:root {
  --cv-ink: #1d2433; --cv-ink2: #394c62; --cv-ink3: #516079; --cv-muted: #8492a6;
  --cv-line: #e3e9f1; --cv-soft: #f1f4f8; --cv-soft2: #eef1f5;
  --cv-ok: #15803d;  --cv-ok-l: #e9f7ee;
  --cv-warn: #b45309; --cv-warn-l: #fdf3e4;
  --cv-crit: #b91c1c; --cv-crit-l: #fceceb;
  --cv-info: #1358a0; --cv-info-l: #e7f1fa;
  --cv-idle: #57647a; --cv-idle-l: #eef1f5;
  --cv-viol: #6d28d9; --cv-viol-l: #f3effe;
}

/* ── dasar ── */
.cv-empty { color: #b6c0cd; }
.cv-line { display: flex; align-items: center; gap: 5px; min-width: 0; width: 100%; }
.cv-line--wrap { flex-wrap: wrap; row-gap: 3px; }
/* cellChip wraps itself in .cv-line; when a renderer stacks several of them on
   one line, each nested wrapper claims width:100% and pushes the later chips
   past the column edge (Meetings "Related to"). Nested lines size to content. */
.cv-line .cv-line { width: auto; min-width: 0; flex: 0 1 auto; overflow: hidden; }
/* ── relasi induk + organisasi: nama utama, organisasi jadi baris kedua ──
   Dua chip setara bertumpuk terbaca sebagai tembok blok warna; hierarki ini
   menyisakan satu titik warna (ikon) per sel. Muat di baris 48px. */
.cv-rel { display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
  gap: 1px; width: 100%; min-width: 0; }
.cv-rel-name, .cv-rel-org {
  display: flex; align-items: center; gap: 5px; max-width: 100%; min-width: 0;
}
.cv-rel-name { font-size: 12.5px; font-weight: 600; color: var(--cv-ink2); line-height: 1.3; }
.cv-rel-name > span, .cv-rel-org > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-rel-name i { font-size: 13px; color: var(--cv-ink3); }
/* Lebar ikon dikunci sama supaya teks nama & organisasi lurus satu poros. */
.cv-rel-name i, .cv-rel-org i { width: 14px; flex-shrink: 0; text-align: center; }
/* Tanpa garis bawah: di dalam tabel, underline menambah noise horizontal.
   Warna primary sudah cukup menandai bahwa sel ini bisa diklik. */
.cv-rel-name, .cv-rel-org, a.cv-rel-name:hover, a.cv-rel-org:hover { text-decoration: none; }
a.cv-rel-name:hover, a.cv-rel-org:hover { color: var(--primary, #1B6FBE); }
a.cv-rel-name:hover i, a.cv-rel-org:hover i { color: var(--primary, #1B6FBE); }
/* Warna hanya di ikon — cukup untuk membedakan jenis entitas tanpa latar chip. */
.cv-rel-name--lead i    { color: var(--cv-warn); }
.cv-rel-name--deal i    { color: var(--cv-info); }
.cv-rel-name--org i     { color: #7c6bd6; }
.cv-rel-name--contact i { color: #21a179; }
.cv-rel-org { font-size: 11px; font-weight: 500; color: var(--cv-muted); line-height: 1.3; }
.cv-rel-org i { font-size: 12px; flex-shrink: 0; opacity: .8; }
/* The cell wrapper carries an !important pt-25 meant for single-line content;
   on a two-line cell that 4px pushes both lines off-center. */
.brtm-console .brtm-grid-host .ag-cell .d-flex > .pt-25:has(> .cv-rel) { padding-top: 0 !important; }
.cv-text { font-size: 13px; color: var(--cv-ink2); line-height: 1.42; word-break: break-word; }
.cv-text--muted { color: var(--cv-ink3); }
.cv-link { color: var(--primary, #1B6FBE); font-weight: 500; }
.cv-link:hover { text-decoration: underline; }
.cv-clamp-1, .cv-clamp-2 { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.cv-clamp-1 { -webkit-line-clamp: 1; }
.cv-clamp-2 { -webkit-line-clamp: 2; }

/* ── aksi reveal-on-hover: redup 45% -> 100%, BUKAN opacity:0 (layar sentuh
      tak punya hover; keputusan sel subjek Leads 18 Jul) ── */
.cv-acts { display: flex; gap: 4px; margin-left: auto; flex-shrink: 0; opacity: .45; transition: opacity .12s; }
.ag-row:hover .cv-acts, .cv-acts:focus-within, .cv-acts:hover { opacity: 1; }
.cv-ibtn {
  display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px;
  border-radius: 6px; border: 1px solid #dfe6ef; background: #fff; color: #5a6a8a;
  font-size: 13px; flex-shrink: 0; transition: .12s;
}
.cv-ibtn:hover { border-color: var(--primary, #1B6FBE); color: var(--primary, #1B6FBE); background: #f0f6fb; }
.cv-ibtn--wa { color: #128C7E; }
.cv-ibtn--disabled { opacity: .35; cursor: not-allowed; }
.cv-ibtn--disabled:hover { border-color: #dfe6ef; color: #5a6a8a; background: #fff; }

/* ── URL: chip domain (menggantikan lingkaran inline #7367f0) ── */
.cv-url {
  display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 9px;
  border-radius: 7px; background: var(--cv-soft); border: 1px solid var(--cv-line);
  font-size: 11.5px; font-weight: 600; color: var(--primary, #1B6FBE); max-width: 100%;
}
.cv-url i { font-size: 12px; opacity: .75; }
.cv-url span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-url:hover { background: var(--cv-info-l); border-color: #cfe2f5; }

/* ── tanggal 2 baris (menggantikan badge umur di samping) ── */
.cv-date b { display: block; font-size: 12.5px; font-weight: 700; color: var(--cv-ink2); line-height: 1.3;
  font-variant-numeric: tabular-nums; }
.cv-date > span { display: block; font-size: 10.5px; color: var(--cv-muted); line-height: 1.3;
  font-variant-numeric: tabular-nums; }

/* ── uang: rata kanan + tabular supaya digit lurus antar baris ── */
.cv-moneycol { display: block; width: 100%; min-width: 0; }
.cv-money { display: block; text-align: right; font-size: 13px; font-weight: 700; color: var(--cv-ink);
  letter-spacing: -.1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  font-variant-numeric: tabular-nums; }
.cv-money .cur { font-size: 10.5px; font-weight: 700; color: var(--cv-muted); margin-right: 3px; }
.cv-money-was { display: block; text-align: right; font-size: 10.5px; color: var(--cv-muted);
  text-decoration: line-through; margin-top: 1px; font-variant-numeric: tabular-nums; }

/* ── telepon & email: nilai terbaca, tombol di kanan ── */
.cv-phone { font-size: 12.5px; color: var(--cv-ink2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.cv-mail { font-size: 12.5px; color: var(--cv-ink2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── avatar hash (pemilik & subjek orang) ── */
.cv-av {
  width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center;
  justify-content: center; font-size: 10px; font-weight: 800; color: #fff; flex-shrink: 0;
  letter-spacing: .02em; background: #cbd5e1;
}
.cv-av--img { object-fit: cover; }
.cv-owner { display: flex; align-items: center; gap: 8px; min-width: 0; }
.cv-owner-info { min-width: 0; }
.cv-owner-name { display: block; font-size: 12.5px; font-weight: 600; color: var(--cv-ink2); line-height: 1.25;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-owner-sub { display: block; font-size: 10.5px; color: var(--cv-muted); line-height: 1.3; }

/* ── chip relasi: satu bentuk, warna + ikon per jenis entitas ── */
.cv-chip {
  display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 9px 0 7px;
  border-radius: 7px; font-size: 11.5px; font-weight: 600; max-width: 100%; min-width: 0;
  border: 1px solid transparent; background: var(--cv-soft); color: var(--cv-ink3);
}
.cv-chip i { font-size: 13px; flex-shrink: 0; opacity: .9; }
.cv-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-chip:hover { filter: brightness(.97); color: var(--cv-ink3); }
.cv-chip--lead    { background: #fdf3e4; color: var(--cv-warn); border-color: #f6e3c4; }
.cv-chip--deal    { background: var(--cv-info-l); color: var(--cv-info); border-color: #cfe2f5; }
.cv-chip--org     { background: var(--cv-viol-l); color: var(--cv-viol); border-color: #e2d9fb; }
.cv-chip--contact { background: #e6f6f4; color: #0f766e; border-color: #cfeae6; }
.cv-chip--team    { background: var(--cv-soft2); color: #4b5c72; border-color: #e1e6ee; }
.cv-chip--ticket  { background: var(--cv-crit-l); color: var(--cv-crit); border-color: #f7d5d3; }
.cv-chip--project { background: #eaf3ec; color: var(--cv-ok); border-color: #d5e8da; }
.cv-chip--user    { background: var(--cv-soft2); color: #4b5c72; border-color: #e1e6ee; }
.cv-chip--issue   { background: #fdf3e4; color: var(--cv-warn); border-color: #f6e3c4; }
.cv-chip--survey  { background: #fceceb; color: var(--cv-crit); border-color: #f7d5d3; }
.cv-chip--product { background: #e6f6f4; color: #0f766e; border-color: #cfeae6; }
.cv-more {
  display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: 7px;
  background: var(--cv-soft2); color: var(--cv-ink3); font-size: 11px; font-weight: 800; flex-shrink: 0;
}
.cv-more:hover { background: #e2e8f0; color: var(--cv-ink2); }

/* ── tag: warna admin jadi TITIK, teks selalu ink -> kontras selalu aman
      (menggantikan tagTextClass() + ternary kontras di ±60 tempat) ── */
.cv-tag {
  display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 9px 0 8px;
  border-radius: 6px; background: #f4f6f9; border: 1px solid #e6ebf1; font-size: 11px;
  font-weight: 600; color: var(--cv-ink3); max-width: 118px;
}
.cv-tag .d { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; background: #cbd5e1; }
.cv-tag span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Badge di dalam popover daftar tag "+N". WAJIB global: Bootstrap merender
   popover ke <body>, jadi <style scoped> renderer tak pernah menjangkaunya —
   selama ini kelas ini scoped di 17 renderer sehingga badge popover tampil
   TANPA warna sama sekali. */
.color-badge-1abc9c { background-color: #1abc9c; color: #fff; }
.color-badge-2ecc71 { background-color: #2ecc71; color: #fff; }
.color-badge-3498db { background-color: #3498db; color: #fff; }
.color-badge-9b59b6 { background-color: #9b59b6; color: #fff; }
.color-badge-34495e { background-color: #34495e; color: #fff; }
.color-badge-16a085 { background-color: #16a085; color: #fff; }
.color-badge-27ae60 { background-color: #27ae60; color: #fff; }
.color-badge-2980b9 { background-color: #2980b9; color: #fff; }
.color-badge-8e44ad { background-color: #8e44ad; color: #fff; }
.color-badge-2c3e50 { background-color: #2c3e50; color: #fff; }
.color-badge-f1c40f { background-color: #f1c40f; color: #1d2433; }
.color-badge-e67e22 { background-color: #e67e22; color: #fff; }
.color-badge-e74c3c { background-color: #e74c3c; color: #fff; }
.color-badge-95a5a6 { background-color: #95a5a6; color: #fff; }
.color-badge-f39c12 { background-color: #f39c12; color: #fff; }
.color-badge-d35400 { background-color: #d35400; color: #fff; }
.color-badge-c0392b { background-color: #c0392b; color: #fff; }
.color-badge-bdc3c7 { background-color: #bdc3c7; color: #1d2433; }
.color-badge-7f8c8d { background-color: #7f8c8d; color: #fff; }

/* ── dokumen: badge warna per tipe berkas ── */
.cv-doc {
  display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 9px 0 7px;
  border-radius: 7px; font-size: 11px; font-weight: 700; max-width: 130px; border: 1px solid transparent;
}
.cv-doc i { font-size: 14px; flex-shrink: 0; }
.cv-doc span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.cv-doc--pdf { background: var(--cv-crit-l); color: var(--cv-crit); border-color: #f7d5d3; }
.cv-doc--doc { background: var(--cv-info-l); color: var(--cv-info); border-color: #cfe2f5; }
.cv-doc--xls { background: #eaf3ec; color: var(--cv-ok); border-color: #d5e8da; }
.cv-doc--ppt { background: #fdf3e4; color: var(--cv-warn); border-color: #f6e3c4; }
.cv-doc--img { background: var(--cv-viol-l); color: var(--cv-viol); border-color: #e2d9fb; }
.cv-doc--gen { background: var(--cv-soft2); color: #4b5c72; border-color: #e1e6ee; }

/* ── aktivitas: satu peta warna + ikon per jenis ── */
.cv-act { display: flex; align-items: flex-start; gap: 8px; min-width: 0; width: 100%; }
.cv-act-ico { width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center;
  justify-content: center; font-size: 14px; flex-shrink: 0; background: var(--cv-soft2); color: #4b5c72; }
.cv-act-ico--meet { background: var(--cv-info-l); color: var(--cv-info); }
.cv-act-ico--call { background: #e6f6f4; color: #0f766e; }
.cv-act-ico--task { background: var(--cv-warn-l); color: var(--cv-warn); }
.cv-act-ico--note { background: var(--cv-viol-l); color: var(--cv-viol); }
.cv-act-ico--deal { background: #eaf3ec; color: var(--cv-ok); }
.cv-act-ico--surv { background: var(--cv-crit-l); color: var(--cv-crit); }
.cv-act-body { min-width: 0; }
.cv-act-body b { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;
  font-size: 12.5px; font-weight: 600; color: var(--cv-ink2); line-height: 1.32; }
.cv-act-body > span { font-size: 10.5px; color: var(--cv-muted); }
.cv-act:hover .cv-act-body b { color: var(--primary, #1B6FBE); }

/* ── pill status: 6 token semantik untuk SELURUH aplikasi ── */
.cv-pillwrap { display: inline-block; min-width: 0; }
.cv-pill { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 9px;
  border-radius: 99px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.cv-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor;
  flex-shrink: 0; opacity: .85; }
.cv-pill.ico::before { display: none; }
.cv-pill.ico i { font-size: 12px; }
.cv-pill--ok   { background: var(--cv-ok-l);   color: var(--cv-ok); }
.cv-pill--warn { background: var(--cv-warn-l); color: var(--cv-warn); }
.cv-pill--crit { background: var(--cv-crit-l); color: var(--cv-crit); }
.cv-pill--info { background: var(--cv-info-l); color: var(--cv-info); }
.cv-pill--idle { background: var(--cv-idle-l); color: var(--cv-idle); }
.cv-pill--viol { background: var(--cv-viol-l); color: var(--cv-viol); }
.cv-pill-sub { display: block; font-size: 10.5px; color: var(--cv-muted); margin-top: 2px; }

/* Keterangan pendamping SEBARIS. Aturan owner 22 Jul: sel listing tidak boleh
   menumpuk baris kedua (tinggi baris terkunci 48px) — keterangan tambahan
   ditaruh sebaris muted, atau dibuang bila sudah punya kolomnya sendiri. */
.cv-note { font-size: 11px; color: var(--cv-muted); min-width: 0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.cv-note--strong { color: var(--cv-ink2); font-size: 12.5px; }
.cv-numtext { font-size: 12.5px; color: var(--cv-ink2); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ── D8 · tombol aksi di dalam sel (menggantikan .ax-abtn / .dcx-claim-btn /
      .brtm-fill-btn). Tinggi 26px + token warna sama dengan .cv-pill. ── */
.cv-cbtn { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 11px;
  border-radius: 7px; font-size: 11px; font-weight: 700; border: 1px solid transparent;
  cursor: pointer; white-space: nowrap; font-family: inherit; }
.cv-cbtn i { font-size: 13px; }
.cv-cbtn--primary { background: var(--primary, #1B6FBE); color: #fff; }
.cv-cbtn--primary:hover { filter: brightness(.94); }
.cv-cbtn--ok { background: var(--cv-ok-l); color: var(--cv-ok); border-color: #cfe8d8; }
.cv-cbtn--ok:hover { background: #dcf0e4; }
.cv-cbtn--ghost { background: #fff; color: var(--cv-ink3); border-color: #dfe6ef; }
.cv-cbtn--ghost:hover { border-color: var(--cv-crit); color: var(--cv-crit); }
.cv-cbtn--dis { opacity: .4; cursor: not-allowed; filter: none; }
.cv-spin { animation: cv-spin 1s linear infinite; }
@keyframes cv-spin { to { transform: rotate(360deg); } }

/* ── D7 · pemutar rekaman 30px (menggantikan <audio controls> bawaan browser
      yang tampilannya beda-beda antar browser dan menembus baris 48px) ── */
.cv-audio { display: flex; align-items: center; gap: 8px; height: 30px; border-radius: 99px;
  background: var(--cv-soft); border: 1px solid var(--cv-line); padding: 0 8px 0 4px;
  min-width: 170px; max-width: 240px; }
.cv-audio .pl { width: 22px; height: 22px; border-radius: 50%; background: var(--primary, #1B6FBE);
  color: #fff; display: flex; align-items: center; justify-content: center; font-size: 12px;
  flex-shrink: 0; border: none; padding: 0; cursor: pointer; }
.cv-audio .wv { flex: 1; display: flex; align-items: center; gap: 1.5px; height: 16px; min-width: 0; cursor: pointer; }
.cv-audio .wv i { width: 2px; border-radius: 1px; background: #c3cede; flex-shrink: 0; }
.cv-audio .wv i.on { background: var(--primary, #1B6FBE); }
.cv-audio time { font-size: 10.5px; color: var(--cv-muted); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.cv-audio audio { display: none; }

/* ── D10 · gambar: thumb 34px persegi, senada cellDocs (dulu 35×42) ── */
.cv-thumb { width: 34px; height: 34px; border-radius: 8px; background: #e8edf3;
  border: 1px solid #dde4ed; display: flex; align-items: center; justify-content: center;
  color: var(--cv-muted); font-size: 16px; flex-shrink: 0; overflow: hidden; }
.cv-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cv-thumb--broken { background: var(--cv-crit-l); color: var(--cv-crit); border-color: #f7d5d3; }
/* Isi popover pratinjau gambar — dirender Bootstrap ke <body>, jadi WAJIB global. */
.cv-imgpop { display: block; max-width: 220px; max-height: 220px; border-radius: 8px; }
.cv-imgpop-cap { margin-top: 6px; font-size: 11px; color: var(--cv-muted); max-width: 220px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── D1 · tahap pipeline (Opsi B pilihan owner: pill + hitungan, SEBARIS).
      Warna menang/kalah dari flag data, bukan regex atas teks label. ── */
.cv-stpill { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 9px;
  border-radius: 6px; font-size: 11.5px; font-weight: 700; max-width: 100%;
  background: var(--cv-info-l); color: var(--cv-info); }
.cv-stpill::before { content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: currentColor; flex-shrink: 0; opacity: .85; }
.cv-stpill span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-stpill--won { background: var(--cv-ok-l); color: var(--cv-ok); }
.cv-stpill--lost { background: var(--cv-crit-l); color: var(--cv-crit); }
.cv-stct { font-size: 10.5px; font-weight: 700; color: var(--cv-muted);
  font-variant-numeric: tabular-nums; flex-shrink: 0; }

/* ── D2 · chip SLA. Menampilkan SISA waktu, bukan umur. ── */
.cv-sla { display: inline-flex; align-items: center; gap: 4px; height: 21px; padding: 0 8px;
  border-radius: 6px; font-size: 10.5px; font-weight: 700; white-space: nowrap;
  font-variant-numeric: tabular-nums; }
.cv-sla i { font-size: 11px; }
.cv-sla--ok { background: var(--cv-ok-l); color: var(--cv-ok); }
.cv-sla--warn { background: var(--cv-warn-l); color: var(--cv-warn); }
.cv-sla--crit { background: var(--cv-crit-l); color: var(--cv-crit); }
.cv-sla--idle { background: var(--cv-idle-l); color: var(--cv-idle); }

/* ── D5 · skor CSAT & NPS ── */
.cv-score { display: inline-flex; align-items: center; gap: 8px; }
.cv-score b { font-size: 15px; font-weight: 800; color: var(--cv-ink); line-height: 1;
  font-variant-numeric: tabular-nums; }
.cv-stars { display: inline-flex; gap: 1px; color: #f59e0b; font-size: 11px; }
.cv-stars i.off { color: #dfe4ea; }

/* ── D11 · kontak omnichannel ── */
.cv-chat { display: flex; align-items: center; gap: 9px; min-width: 0; }
.cv-chat .av { position: relative; flex-shrink: 0; }
.cv-chat .av .inner { width: 32px; height: 32px; border-radius: 50%; display: flex;
  align-items: center; justify-content: center; font-size: 11px; font-weight: 800; color: #fff;
  background: #cbd5e1; }
.cv-chat .av .ch { position: absolute; right: -3px; bottom: -3px; width: 16px; height: 16px;
  border-radius: 5px; color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 9px; border: 2px solid #fff; background: #64748b; }
.cv-chat .body { min-width: 0; }
.cv-chat .nm { display: block; font-size: 12.5px; color: var(--cv-ink2); font-weight: 600;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-chat .ph { display: block; font-size: 10.5px; color: var(--cv-muted);
  font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-chat .ch--wa { background: #25D366; }
.cv-chat .ch--ig { background: #E1306C; }
.cv-chat .ch--tg { background: #229ED9; }
.cv-chat .ch--fb { background: #1877F2; }
.cv-chat .ch--tw { background: #1DA1F2; }
.cv-chat .ch--line { background: #06C755; }
.cv-chat .ch--mail { background: #6d28d9; }
.cv-chat .ch--lc { background: #1B6FBE; }
.cv-chat .ch--tokopedia { background: #42B549; }
.cv-chat .ch--shopee { background: #EE4D2D; }
.cv-chat .ch--greview { background: #F4B400; }
.cv-chat .ch--tiktok { background: #010101; }
.cv-chat .ch--callcenter { background: #0d9488; }

/* ── kolom pertama: subjek + aksi ── */
.cv-subject { display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0; height: 100%; }
.cv-subject-av { width: 30px; height: 30px; font-size: 10.5px; }
.cv-subject-link {
  flex: 1 1 auto; min-width: 0; font-size: 13px; font-weight: 500; color: var(--primary, #1B6FBE);
  line-height: 1.4; word-break: break-word; text-transform: capitalize;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  text-overflow: ellipsis;
}
.cv-subject-link:hover { text-decoration: underline; }
.cv-subject-link--plain { color: var(--cv-ink2); }
.cv-subject-acts .cv-ibtn { width: 26px; height: 26px; border-radius: 7px; font-size: 14px; }

.cv-subject .cv-pill {
  font-size: 10px;
}

.cv-subject .has-approval {
  max-width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  column-gap: 4px;
}

/* ── sel yang di-host renderer: <section> root adalah flex-item di .ag-cell,
      tanpa ini ia menyusut selebar isi dan tombol aksi menggerombol di kiri ── */
.cv-host { width: 100%; height: 100%; flex: 1 1 auto; min-width: 0; }
.brtm-grid-host .ag-cell .cv-subject-link { text-decoration: none; }

/* ============================================================
   FORWARD CHAT MODAL (.brtm-fwd-*) — Teruskan pesan chat ke room/kontak lain.
   Dipakai oleh src/barantumchat/components/forward_chat_modal.vue
   ============================================================ */
.brtm-fwd-overlay {
  position: fixed; inset: 0; z-index: 6000;
  background: rgba(15, 23, 42, .45);
  display: flex; align-items: center; justify-content: center;
  padding: 20px; animation: brtmFwdFade .15s ease;
}
@keyframes brtmFwdFade { from { opacity: 0; } to { opacity: 1; } }
.brtm-fwd-card {
  width: 440px; max-width: 100%; max-height: 84vh;
  background: #fff; border-radius: 14px;
  box-shadow: 0 18px 54px rgba(15, 23, 42, .28);
  display: flex; flex-direction: column; overflow: hidden;
  font-family: 'Inter', sans-serif;
}
.brtm-fwd-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 15px 18px; border-bottom: 1px solid #eef1f5; flex: none;
  font-size: 15px; font-weight: 650; color: #18233a;
}
.brtm-fwd-x { border: none; background: none; color: #8a96aa; font-size: 15px; cursor: pointer; width: 28px; height: 28px; border-radius: 7px; }
.brtm-fwd-x:hover { background: #f0f4ff; color: #1a2234; }

.brtm-fwd-preview { padding: 11px 18px; background: #f7f9fc; border-bottom: 1px solid #eef1f5; flex: none; }
.brtm-fwd-preview-label { font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #1B6FBE; display: flex; align-items: center; gap: 5px; margin-bottom: 6px; }
.brtm-fwd-preview-body { display: flex; flex-direction: column; gap: 4px; }
.brtm-fwd-preview-line { display: flex; align-items: flex-start; gap: 7px; font-size: 12.5px; color: #34405a; background: #eef4ff; border-radius: 7px; padding: 5px 9px; }
.brtm-fwd-preview-line > i { flex: none; margin-top: 2px; }
.brtm-fwd-preview-thumb { flex: none; width: 36px; height: 36px; border-radius: 6px; object-fit: cover; background: #dbe6f5; }
.brtm-fwd-preview-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; word-break: break-word; }
.brtm-fwd-preview-more { font-size: 11px; color: #8a96aa; }

.brtm-fwd-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 18px 0; flex: none; }
.brtm-fwd-chip { display: inline-flex; align-items: center; gap: 5px; background: #e8f0fb; border: 1px solid #d6e6fa; border-radius: 999px; padding: 2px 6px 2px 3px; font-size: 12px; font-weight: 600; color: #1a2234; }
.brtm-fwd-chip-av { width: 20px; height: 20px; border-radius: 50%; color: #fff; font-size: 8.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.brtm-fwd-chip button { border: none; background: none; color: #8a96aa; cursor: pointer; font-size: 12px; display: flex; }
.brtm-fwd-chip button:hover { color: #dc2626; }

.brtm-fwd-tabs { display: flex; gap: 2px; padding: 12px 14px 0; flex: none; }
.brtm-fwd-tab { flex: 1; appearance: none; border: none; background: none; font-family: inherit; font-size: 12.5px; font-weight: 600; color: #8a96aa; padding: 9px; cursor: pointer; border-bottom: 2px solid transparent; display: flex; align-items: center; justify-content: center; gap: 6px; transition: .12s; }
.brtm-fwd-tab:hover { color: #0f172a; }
.brtm-fwd-tab.brtm-active { color: #1B6FBE; border-bottom-color: #1B6FBE; }

.brtm-fwd-subtabs { display: flex; gap: 6px; padding: 9px 18px 0; flex: none; }
.brtm-fwd-subtab { appearance: none; border: 1px solid #e3e8ef; background: #fff; border-radius: 999px; font-family: inherit; font-size: 11.5px; font-weight: 600; color: #5a6b86; padding: 4px 12px; cursor: pointer; transition: .12s; }
.brtm-fwd-subtab.brtm-active { background: #1B6FBE; border-color: #1B6FBE; color: #fff; }

.brtm-fwd-search { display: flex; align-items: center; gap: 8px; margin: 11px 18px; padding: 0 11px; border: 1.5px solid #e3e8ef; border-radius: 10px; flex: none; }
.brtm-fwd-search i { color: #8a96aa; font-size: 13px; }
.brtm-fwd-search input { flex: 1; border: none; outline: none; padding: 9px 0; font-family: inherit; font-size: 13px; color: #1a2234; background: transparent; }

.brtm-fwd-list { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 2px 8px 6px; min-height: 140px; }
.brtm-fwd-loading { text-align: center; color: #8a96aa; font-size: 12.5px; padding: 30px 0; }
.brtm-fwd-spin { display: inline-block; animation: brtmFwdSpin 1s linear infinite; }
@keyframes brtmFwdSpin { to { transform: rotate(360deg); } }
.brtm-fwd-item { width: 100%; display: flex; align-items: center; gap: 11px; padding: 8px 10px; border: none; background: none; border-radius: 9px; cursor: pointer; text-align: left; transition: .1s; }
.brtm-fwd-item:hover { background: #f3f7fd; }
.brtm-fwd-item.brtm-selected { background: #e8f0fb; }
.brtm-fwd-av { width: 34px; height: 34px; border-radius: 50%; color: #fff; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: none; }
.brtm-fwd-item-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.brtm-fwd-item-name { font-size: 13px; font-weight: 600; color: #18233a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.brtm-fwd-item-sub { font-size: 11.5px; color: #8a96aa; display: flex; align-items: center; gap: 5px; margin-top: 1px; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.brtm-fwd-item-phone { font-size: 11px; color: #a7b0c0; margin-top: 1px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.brtm-fwd-expired { color: #b45309; display: inline-flex; align-items: center; gap: 3px; }
.brtm-fwd-check { width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid #cfd8e3; color: transparent; display: flex; align-items: center; justify-content: center; font-size: 11px; flex: none; transition: .12s; }
.brtm-fwd-item.brtm-selected .brtm-fwd-check { background: #1B6FBE; border-color: #1B6FBE; color: #fff; }
.brtm-fwd-empty { text-align: center; color: #8a96aa; font-size: 12.5px; padding: 34px 16px; }
.brtm-fwd-empty i { display: block; font-size: 24px; color: #c5cdd9; margin-bottom: 8px; }

.brtm-fwd-footer { display: flex; align-items: center; justify-content: space-between; padding: 12px 18px; border-top: 1px solid #eef1f5; flex: none; }
.brtm-fwd-count { font-size: 12px; color: #8a96aa; font-weight: 500; }
.brtm-fwd-actions { display: flex; gap: 8px; }
.brtm-fwd-btn-cancel { border: 1.5px solid #e3e8ef; background: #fff; color: #5a6b86; font-family: inherit; font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 9px; cursor: pointer; }
.brtm-fwd-btn-cancel:hover { background: #f5f7fa; }
.brtm-fwd-btn-send { border: none; background: #1B6FBE; color: #fff; font-family: inherit; font-size: 13px; font-weight: 600; padding: 8px 18px; border-radius: 9px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.brtm-fwd-btn-send:hover { background: #134E8E; }
.brtm-fwd-btn-send:disabled { background: #cbd5e1; cursor: not-allowed; }
/* ═══════════════════════════════════════════════════════════════════════════
   POPOVER STATUS PENGIRIMAN PESAN (.mst-*)
   Dipakai src/barantumchat/components/msg_status_mst.vue — port dari
   adesign/chat-message-status-popover.html.
   Kartunya di-Teleport ke <body> (supaya tidak terpotong scroll container room),
   jadi CSS-nya WAJIB global; <style scoped> tidak akan menjangkaunya.
   ═══════════════════════════════════════════════════════════════════════════ */

/* 1 — Pemicu: SELURUH meta (jam + ikon) jadi target, bukan ikon 10px doang. */
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger {
  display: inline-flex; align-items: center; gap: 4px;
  cursor: pointer; border-radius: 6px; padding: 1px 4px; margin-right: -4px;
  position: relative; transition: background .12s;
}
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger:hover,
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger.is-pinned { background: rgba(15, 23, 42, .07); }
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger:focus-visible {
  outline: 2px solid var(--brand, #2284C6); outline-offset: 1px;
}

/* Warna ikon per status — ikonnya sendiri tidak diubah (bi-check2 / bi-check2-all).
   AWAS SPESIFISITAS: sudah ada rule lama
   `.brtm-chat-page .brtm-cv-bubble.brtm-outgoing .brtm-cv-bubble-meta i:not(.brtm-msg-status)`
   (0,5,1) yang memaksa SEMUA ikon meta jadi var(--primary). Tanpa selektor
   sepanjang ini, gagal/kedaluwarsa/dibaca ikut biru dan bedanya hilang —
   ketahuan lewat klik-test, bukan lewat mata. Baris kedua tiap pasangan =
   cadangan untuk konteks di luar bubble. */
.brtm-chat-page .mst-trigger .mst-ico { font-size: 12.5px; line-height: 1; }
.brtm-chat-page .brtm-cv-bubble .brtm-cv-bubble-meta.mst-trigger[data-status="pending"] .mst-ico,
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger[data-status="pending"] .mst-ico { color: rgba(15, 23, 42, .40); }
.brtm-chat-page .brtm-cv-bubble .brtm-cv-bubble-meta.mst-trigger[data-status="send"] .mst-ico,
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger[data-status="send"] .mst-ico { color: rgba(15, 23, 42, .45); }
.brtm-chat-page .brtm-cv-bubble .brtm-cv-bubble-meta.mst-trigger[data-status="delivered"] .mst-ico,
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger[data-status="delivered"] .mst-ico { color: rgba(15, 23, 42, .45); }
.brtm-chat-page .brtm-cv-bubble .brtm-cv-bubble-meta.mst-trigger[data-status="read"] .mst-ico,
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger[data-status="read"] .mst-ico { color: #2284C6; }
.brtm-chat-page .brtm-cv-bubble .brtm-cv-bubble-meta.mst-trigger[data-status="failed"] .mst-ico,
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger[data-status="failed"] .mst-ico { color: #dc2626; }
.brtm-chat-page .brtm-cv-bubble .brtm-cv-bubble-meta.mst-trigger[data-status="expired"] .mst-ico,
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger[data-status="expired"] .mst-ico { color: #d97706; }
.brtm-chat-page .brtm-cv-bubble .brtm-cv-bubble-meta.mst-trigger[data-status="retrying"] .mst-ico,
.brtm-chat-page .brtm-cv-bubble-meta.mst-trigger[data-status="retrying"] .mst-ico { color: var(--brand, #2284C6); }
@keyframes mstSpin { to { transform: rotate(360deg); } }
.brtm-chat-page .mst-trigger[data-status="retrying"] .mst-ico {
  display: inline-block; animation: mstSpin 1s linear infinite;
}

/* Bubble bertanda gagal / kedaluwarsa */
.brtm-chat-page .brtm-cv-bubble.mst-bubble-failed {
  background: #fef2f2; box-shadow: inset 0 0 0 1px #fecaca, 0 1px 1px rgba(15, 23, 42, .06);
}
.brtm-chat-page .brtm-cv-bubble.mst-bubble-expired {
  background: #fffbeb; box-shadow: inset 0 0 0 1px #fde68a, 0 1px 1px rgba(15, 23, 42, .06);
}

/* 2 — Kartu popover */
.mst-pop {
  position: fixed; z-index: 1200; min-width: 250px; max-width: 310px;
  background: #fff; border: 1px solid var(--br-2, #dde3ec); border-radius: 12px;
  box-shadow: 0 12px 34px rgba(15, 23, 42, .16), 0 2px 6px rgba(15, 23, 42, .06);
  padding: 11px 13px 12px;
  font-family: "Inter", "Segoe UI", system-ui, sans-serif;
  font-size: 12px; color: var(--tx-1, #0f172a); line-height: 1.5;
  text-align: left; white-space: normal;   /* jangan warisi nowrap dari bubble */
  opacity: 0; visibility: hidden; transform: translateY(4px);
  transition: opacity .13s ease, transform .13s ease, visibility .13s;
  /* JANGAN taruh overflow di sini: .mst-pop-tail duduk di bottom:-6px, jadi
     `overflow:auto` menghitungnya sebagai overflow → scrollbar Windows (~17px)
     muncul TERUS walau isinya pendek. Yang di-scroll = .mst-pop-bd di dalam. */
}
.mst-pop.is-open { opacity: 1; visibility: visible; transform: none; }

/* Badan kartu — bagian yang bisa di-scroll kalau panduan error dibuka; header
   tetap diam supaya status selalu terbaca. Scrollbar tipis mengikuti konvensi
   produksi (.brtm-adp-body). Batas tingginya dihitung runtime oleh place(),
   bukan max-height statis — supaya kartu tidak dipotong selagi layar masih muat. */
.mst-pop-bd {
  overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: rgba(0, 0, 0, .12) transparent;
}
.mst-pop-bd::-webkit-scrollbar { width: 4px; }
.mst-pop-bd::-webkit-scrollbar-track { background: transparent; }
.mst-pop-bd::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, .15); border-radius: 99px; }

.mst-pop-tail {
  position: absolute; width: 10px; height: 10px; background: #fff;
  border-right: 1px solid var(--br-2, #dde3ec); border-bottom: 1px solid var(--br-2, #dde3ec);
  transform: rotate(45deg); bottom: -6px; right: 22px;
}
.mst-pop[data-flip="down"] .mst-pop-tail { bottom: auto; top: -6px; transform: rotate(225deg); }

/* Header kartu */
.mst-pop-hd {
  display: flex; align-items: center; gap: 7px; padding-bottom: 9px; margin-bottom: 9px;
  border-bottom: 1px solid var(--br-1, #eef1f5);
}
.mst-pop-hd i { font-size: 14px; flex: none; }
.mst-pop-title { font-size: 12.5px; font-weight: 700; flex: 1; min-width: 0; }
.mst-pop-close {
  border: 0; background: transparent; color: var(--tx-3, #8a96aa); cursor: pointer;
  padding: 2px; border-radius: 5px; line-height: 0; display: none; flex: none;
}
.mst-pop-close:hover { background: var(--bg-hover, #f1f4f8); color: var(--tx-1, #0f172a); }
.mst-pop.is-pinned .mst-pop-close { display: block; }
.mst-pop[data-status="read"] .mst-pop-hd i,      .mst-pop[data-status="read"] .mst-pop-title      { color: #2284C6; }
.mst-pop[data-status="failed"] .mst-pop-hd i,    .mst-pop[data-status="failed"] .mst-pop-title    { color: #dc2626; }
.mst-pop[data-status="expired"] .mst-pop-hd i,   .mst-pop[data-status="expired"] .mst-pop-title   { color: #b45309; }
.mst-pop[data-status="delivered"] .mst-pop-hd i, .mst-pop[data-status="delivered"] .mst-pop-title { color: var(--tx-2, #475569); }
.mst-pop[data-status="send"] .mst-pop-hd i,      .mst-pop[data-status="send"] .mst-pop-title      { color: var(--tx-2, #475569); }
.mst-pop[data-status="pending"] .mst-pop-hd i,   .mst-pop[data-status="pending"] .mst-pop-title   { color: var(--tx-2, #475569); }
.mst-pop[data-status="retrying"] .mst-pop-hd i,  .mst-pop[data-status="retrying"] .mst-pop-title  { color: #2284C6; }

/* 3 — Timeline langkah */
.mst-steps { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.mst-step {
  display: grid; grid-template-columns: 16px 1fr auto; column-gap: 9px;
  position: relative; padding-bottom: 11px;
}
.mst-step:last-child { padding-bottom: 0; }
.mst-step:not(:last-child)::before {
  content: ""; position: absolute; left: 7px; top: 15px; bottom: 1px; width: 2px;
  background: var(--br-2, #dde3ec); border-radius: 2px;
}
.mst-step.is-done:not(:last-child)::before { background: #bcd9ef; }
.mst-step.is-bad:not(:last-child)::before { background: #fecaca; }

.mst-dot {
  width: 16px; height: 16px; border-radius: 50%; display: flex; align-items: center;
  justify-content: center; background: #eef2f7; color: #a8b4c6; font-size: 9px; flex: none;
  z-index: 1; box-shadow: 0 0 0 2px #fff;
}
.mst-step.is-done .mst-dot { background: #e3f0fa; color: #2284C6; }
.mst-step.is-now .mst-dot  { background: #2284C6; color: #fff; }
.mst-step.is-bad .mst-dot  { background: #dc2626; color: #fff; }
.mst-step.is-warn .mst-dot { background: #d97706; color: #fff; }

.mst-step-label { font-size: 12px; font-weight: 650; color: var(--tx-1, #0f172a); line-height: 1.35; }
.mst-step-sub { font-size: 11px; color: var(--tx-3, #8a96aa); font-weight: 450; margin-top: 1px; line-height: 1.45; }
.mst-step-label, .mst-step-sub { display: block; }
.mst-step-time {
  font-size: 11.5px; font-weight: 650; color: var(--tx-2, #475569);
  font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; line-height: 1.35;
}
.mst-step-delta { display: block; font-size: 10px; font-weight: 600; color: var(--tx-3, #8a96aa); margin-top: 1px; }

/* Langkah yang belum terjadi — redup, tetap terlihat supaya alurnya kebaca */
.mst-step.is-todo .mst-step-label { color: var(--tx-3, #8a96aa); font-weight: 550; }
.mst-step.is-todo .mst-step-sub { color: #b3bccd; }
.mst-step.is-todo .mst-step-time { color: #c3ccda; font-weight: 550; }
.mst-step.is-bad .mst-step-label,  .mst-step.is-bad .mst-step-time  { color: #b91c1c; }
.mst-step.is-warn .mst-step-label, .mst-step.is-warn .mst-step-time { color: #b45309; }

/* 4 — Banner penjelasan + aksi */
.mst-note {
  display: flex; gap: 7px; align-items: flex-start; border-radius: 8px; padding: 8px 10px;
  margin-top: 10px; font-size: 11px; line-height: 1.5;
}
.mst-note i { font-size: 12px; flex: none; margin-top: 1px; }
.mst-note--err  { background: #fef2f2; color: #7f1d1d; border: 1px solid #fecaca; }
.mst-note--warn { background: #fffbeb; color: #78350f; border: 1px solid #fde68a; }
.mst-note--info { background: #f1f6fb; color: #334f6b; border: 1px solid #d8e6f3; }

/* 4b — Panduan sebab & solusi (isi kamus error, bisa dibuka-tutup) */
.mst-guide-toggle {
  display: flex; align-items: center; gap: 5px; width: 100%; margin-top: 8px;
  border: 0; background: transparent; padding: 4px 0; cursor: pointer; font-family: inherit;
  font-size: 11px; font-weight: 650; color: var(--brand, #2284C6); text-align: left;
}
.mst-guide-toggle i { font-size: 11px; transition: transform .14s; }
.mst-guide-toggle[aria-expanded="true"] i { transform: rotate(90deg); }
.mst-guide { margin-top: 4px; border-top: 1px solid var(--br-1, #eef1f5); padding-top: 9px; }
.mst-guide-sec + .mst-guide-sec { margin-top: 9px; }
.mst-guide-sec h4 {
  margin: 0 0 4px; font-size: 10px; font-weight: 800; letter-spacing: .05em;
  text-transform: uppercase; color: var(--tx-3, #8a96aa);
}
.mst-guide-sec ul { margin: 0; padding-left: 15px; font-size: 11px; line-height: 1.55; color: var(--tx-2, #475569); }
.mst-guide-sec li + li { margin-top: 3px; }
/* Teks mentah Meta — selalu tampil, boleh diseleksi & disalin */
.mst-guide-raw {
  margin-top: 9px; background: #f4f6fa; border: 1px solid var(--br-1, #eef1f5);
  border-radius: 7px; padding: 7px 9px; display: flex; flex-direction: column; gap: 3px;
}
.mst-guide-raw-k {
  font-size: 9.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase;
  color: var(--tx-3, #8a96aa);
}
.mst-guide-raw-v {
  font-size: 10.5px; line-height: 1.5; color: var(--tx-2, #475569);
  font-family: ui-monospace, "SF Mono", Menlo, monospace; word-break: break-word; user-select: text;
}

.mst-actions { display: flex; gap: 6px; margin-top: 10px; }
.mst-btn {
  flex: 1; border: 1px solid var(--br-2, #dde3ec); background: #fff; border-radius: 8px;
  padding: 7px 10px; font-size: 11.5px; font-weight: 650; color: var(--tx-2, #475569); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  font-family: inherit; transition: background .12s, border-color .12s, color .12s;
}
.mst-btn:hover { background: var(--bg-hover, #f1f4f8); border-color: var(--br-strong, #c5cdd9); }
.mst-btn--primary { background: #2284C6; border-color: #2284C6; color: #fff; }
.mst-btn--primary:hover { background: #1a72b0; border-color: #1a72b0; color: #fff; }
.mst-btn--danger { background: #dc2626; border-color: #dc2626; color: #fff; }
.mst-btn--danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }


/* ═══════════════════════════════════════════════════════════════════════════
   PENERIMA EMAIL DI COMPOSER (.rcp-*)
   Dipakai src/barantumchat/components/chatmails/chat_email.vue — port dari
   adesign/chat-email-recipients-popover.html (varian bar "A2 Chip").

   Menggantikan kartu "Email Recipients" di panel kanan (dulu listing2.vue
   .brtm-pp-mail-*): TO/CC/BCC pindah ke bar tipis di atas kotak Reply, detail
   dibuka sebagai popover. Alasannya panel kanan bisa ditutup — dulu agent bisa
   menekan Kirim tanpa pernah melihat siapa yang di-CC.

   Popover-nya di-Teleport ke <body> (biar tidak terpotong room yang
   overflow:hidden), jadi CSS ini WAJIB global — sama alasannya dengan .mst-*.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · Bar pemicu, duduk di atas .brtm-cmp-card ───────────────────────── */
.rcp-bar {
  display: flex; align-items: center; gap: 8px; width: 100%; margin-bottom: 8px;
  border: 1px solid #DDE3ED; background: #FBFCFE; border-radius: 10px;
  padding: 0 6px 0 10px; height: 38px; cursor: pointer;
  font-family: inherit; font-size: 12.5px; color: #18233A; text-align: left;
  transition: border-color .12s, background .12s, box-shadow .12s;
}
.rcp-bar:hover { border-color: #C7CFDD; background: #F5F7FA; }
.rcp-bar:focus-visible { outline: none; border-color: #1B6FBE; box-shadow: 0 0 0 3px #E7F1FB; }
.rcp-bar.is-open { border-color: #1B6FBE; background: #fff; box-shadow: 0 0 0 3px #E7F1FB; }
.rcp-bar-ic { font-size: 14px; color: #8A9AB0; flex-shrink: 0; line-height: 1; }
/* Hanya bar-body yang boleh meng-clip. Kalau .rcp-bar-chips ikut diberi
   overflow:hidden/min-width:0, scrollWidth di sini tidak pernah melebihi
   clientWidth dan penghitung "berapa chip yang muat" selalu bilang muat semua. */
.rcp-bar-body { flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px; overflow: hidden; }
.rcp-bar-lbl { color: #6B7A99; flex-shrink: 0; }
.rcp-bar-main { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rcp-bar-sub { flex-shrink: 0; }
.rcp-bar-chips { display: flex; align-items: center; gap: 5px; flex: 0 0 auto; }
.rcp-bar-dot { color: #C7CFDD; flex-shrink: 0; }
.rcp-bar-cv { color: #6B7A99; font-size: 12px; flex-shrink: 0; }
.rcp-bar-cv b { color: #18233A; font-weight: 650; }
.rcp-bar-cv.is-zero, .rcp-bar-cv.is-zero b { color: #A9B4C6; font-weight: 500; }
.rcp-bar-cv.is-bcc {
  color: #B45309; background: #FEF6E7; border: 1px solid #F5D9A8;
  border-radius: 20px; padding: 1px 8px; font-weight: 600;
}
.rcp-bar-cv.is-bcc b { color: #B45309; }
.rcp-bar-edit {
  margin-left: auto; flex-shrink: 0; display: inline-flex; align-items: center; gap: 5px;
  color: #6B7A99; font-size: 11.5px; font-weight: 600; padding: 5px 8px; border-radius: 7px;
}
.rcp-bar:hover .rcp-bar-edit, .rcp-bar.is-open .rcp-bar-edit { color: #1B6FBE; background: #E7F1FB; }

/* TO kosong → bar merah; tombol Kirim dimatikan dari komponennya */
.rcp-bar.is-empty { border-color: #F5C2C2; background: #FDECEC; }
.rcp-bar.is-empty .rcp-bar-ic { color: #DC2626; }
.rcp-bar.is-empty .rcp-bar-main { color: #DC2626; font-weight: 650; }
.rcp-bar.is-empty .rcp-bar-sub { color: #9B1C1C; opacity: .8; }

/* chip mini di bar — menampilkan NAMA (alamat penuh ada di title & di popover),
   karena alamat kantor sering 30+ karakter dan 2 chip saja sudah terpotong */
.rcp-mini {
  display: inline-flex; align-items: center; gap: 5px; flex-shrink: 0; max-width: 230px;
  background: #EEF3F9; border: 1px solid #DCE6F2; border-radius: 999px;
  padding: 2px 9px 2px 3px; font-size: 11.5px;
}
.rcp-mini-av {
  width: 18px; height: 18px; border-radius: 50%; color: #fff; font-size: 8.5px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.rcp-mini-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rcp-more {
  flex-shrink: 0; font-size: 11.5px; font-weight: 650; color: #1B6FBE;
  background: #E7F1FB; border-radius: 999px; padding: 2px 9px; white-space: nowrap;
}

/* ── 2 · Popover (Teleport ke body) ─────────────────────────────────────── */
.rcp-pop {
  position: fixed; z-index: 1200; width: 452px; max-width: calc(100vw - 24px);
  background: #fff; border: 1px solid #DDE3ED; border-radius: 14px;
  box-shadow: 0 14px 38px rgba(15, 23, 42, .18), 0 2px 6px rgba(15, 23, 42, .06);
  display: flex; flex-direction: column; max-height: min(64vh, 520px); overflow: hidden;
  opacity: 0; transform: translateY(5px); transition: opacity .13s ease-out, transform .13s ease-out;
  font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
  font-size: 13px; color: #18233A;
}
.rcp-pop.is-open { opacity: 1; transform: none; }
.rcp-pop-arrow {
  position: fixed; z-index: 1201; width: 12px; height: 12px; background: #fff;
  border-left: 1px solid #DDE3ED; border-top: 1px solid #DDE3ED;
}

.rcp-pop-h { display: flex; align-items: center; gap: 8px; padding: 11px 14px; border-bottom: 1px solid #EDF1F6; flex-shrink: 0; }
.rcp-pop-h b { font-size: 13px; font-weight: 650; }
.rcp-pop-sub { font-size: 11px; color: #8A9AB0; }
.rcp-pop-x {
  margin-left: auto; border: 0; background: transparent; color: #6B7A99; cursor: pointer;
  width: 28px; height: 28px; border-radius: 7px; display: inline-flex; align-items: center;
  justify-content: center; font-size: 16px;
}
.rcp-pop-x:hover { background: #F5F7FA; color: #18233A; }
.rcp-pop-b { flex: 1; overflow-y: auto; min-height: 0; }

.rcp-row { display: flex; gap: 10px; padding: 11px 14px; border-bottom: 1px solid #F2F5F9; }
.rcp-row:last-child { border-bottom: none; }
.rcp-row-lbl {
  width: 38px; flex-shrink: 0; padding-top: 7px;
  font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #8A9AB0;
}
.rcp-row-bd { flex: 1; min-width: 0; }
.rcp-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.rcp-chip {
  display: inline-flex; align-items: center; gap: 6px; max-width: 100%;
  background: #F1F5F9; border: 1px solid #E1E8F0; border-radius: 999px;
  padding: 3px 4px 3px 3px; font-size: 11.5px;
}
.rcp-chip-av {
  width: 20px; height: 20px; border-radius: 50%; color: #fff; font-size: 9px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.rcp-chip-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #18233A; }
.rcp-chip-src {
  flex-shrink: 0; font-size: 9.5px; color: #8A9AB0; border: 1px solid #DFE6EF;
  background: #fff; border-radius: 4px; padding: 0 4px; line-height: 15px;
}
.rcp-chip-x {
  border: 0; background: transparent; color: #9AA7BB; cursor: pointer; flex-shrink: 0;
  width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center;
  justify-content: center; font-size: 13px; padding: 0;
}
.rcp-chip-x:hover { background: #E2E8F0; color: #DC2626; }
.rcp-empty { font-size: 11.5px; color: #A9B4C6; padding: 5px 0 1px; }
.rcp-empty.is-required { color: #C2410C; }

.rcp-hint { display: flex; align-items: flex-start; gap: 6px; margin-top: 8px; font-size: 11px; color: #8A9AB0; line-height: 1.55; }
.rcp-hint i { font-size: 12px; flex-shrink: 0; margin-top: 1px; }
.rcp-hint.is-warn {
  color: #B45309; background: #FEF6E7; border: 1px solid #F5D9A8;
  border-radius: 8px; padding: 7px 9px;
}

.rcp-pop-f { display: flex; align-items: center; gap: 8px; padding: 9px 14px; flex-shrink: 0; border-top: 1px solid #EDF1F6; background: #FBFCFE; }
.rcp-pop-f-note { font-size: 11px; color: #8A9AB0; display: flex; align-items: center; gap: 5px; }
.rcp-pop-f-note i { font-size: 12px; color: #5BA85B; }
.rcp-btn-done {
  margin-left: auto; border: 0; background: #1B6FBE; color: #fff; border-radius: 8px;
  padding: 6px 16px; font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit;
}
.rcp-btn-done:hover { background: #155B97; }

/* ── 3 · vue-multiselect di dalam baris popover ─────────────────────────── */
.rcp-ms { margin-top: 6px; }
.rcp-ms .multiselect__tags {
  min-height: 34px; padding: 6px 34px 0 10px; border: 1px solid #DDE3ED; border-radius: 8px; font-size: 12px;
}
.rcp-ms .multiselect__input, .rcp-ms .multiselect__placeholder, .rcp-ms .multiselect__single {
  font-size: 12px; margin-bottom: 6px; padding: 0; line-height: 20px; color: #18233A;
}
.rcp-ms .multiselect__placeholder { color: #A9B4C6; }
.rcp-ms .multiselect--active .multiselect__tags { border-color: #1B6FBE; box-shadow: 0 0 0 3px #E7F1FB; }
.rcp-ms .multiselect__content-wrapper {
  border: 1px solid #DDE3ED; border-radius: 10px; box-shadow: 0 8px 22px rgba(15, 23, 42, .14); margin-top: 4px;
}
.rcp-ms .multiselect__option { padding: 7px 10px; min-height: auto; font-size: 12px; }
.rcp-ms .multiselect__option--highlight,
.rcp-ms .multiselect__option--highlight::after { background: #E7F1FB; color: #18233A; }
.rcp-ms .multiselect-icon { position: absolute; right: 10px; top: 9px; color: #A9B4C6; }
.rcp-opt { display: flex; align-items: center; gap: 8px; min-width: 0; }
.rcp-opt-av {
  width: 24px; height: 24px; border-radius: 50%; background: #4C7CB8; color: #fff;
  font-size: 9.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.rcp-opt-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── 4 · Varian FORWARD (.ffx-*) ────────────────────────────────────────────
   src/barantumchat/components/chatmails/form_forward_chatmails.vue.
   Forward memakai bar + popover .rcp-* yang sama dengan balas; dulu ia punya
   kartu input sendiri (tiga baris teks polos + CC/BCC muncul-hilang sebagai
   kolom) sehingga terasa layar lain padahal isinya sama-sama TO/CC/BCC.
   Yang tersisa khas forward cuma tiga hal di bawah. Ikut global karena
   popover-nya juga di-Teleport ke <body>. */

/* strip "Dari … | Judul …" — setinggi & sewarna .rcp-bar, bukan kartu terpisah */
.ffx-meta {
  display: flex; align-items: center; gap: 8px; width: 100%; margin-bottom: 8px;
  border: 1px solid #DDE3ED; background: #FBFCFE; border-radius: 10px;
  padding: 0 10px; height: 38px; font-size: 12.5px; color: #18233A;
  transition: border-color .12s, background .12s, box-shadow .12s;
}
.ffx-meta:focus-within { border-color: #1B6FBE; background: #fff; box-shadow: 0 0 0 3px #E7F1FB; }
.ffx-meta-lbl {
  flex-shrink: 0; color: #8A9AB0;
  font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
}
.ffx-meta-select {
  flex: 0 1 auto; min-width: 0; max-width: 220px; border: none; background: transparent;
  font-family: inherit; font-size: 12.5px; color: #18233A; cursor: pointer;
  padding: 0 20px 0 0; text-overflow: ellipsis;
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236B7A99' stroke-width='1.5' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 6l3.5 3.5L11.5 6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 2px center;
}
.ffx-meta-select:focus { outline: none; }
.ffx-meta-sep { width: 1px; height: 18px; background: #DDE3ED; flex-shrink: 0; }
.ffx-meta-input {
  flex: 1 1 auto; min-width: 0; border: none; outline: none; background: transparent;
  font-family: inherit; font-size: 12.5px; color: #18233A; padding: 0;
}
.ffx-meta-input::placeholder { color: #A9B4C6; }

/* kolom tambah alamat di dalam baris popover — pengganti vue-multiselect milik
   balas: penerima forward diketik bebas, tidak ada API pencarian di endpoint ini */
.ffx-add {
  width: 100%; margin-top: 6px; border: 1px dashed #DDE3ED; border-radius: 8px;
  padding: 6px 10px; background: #fff;
  font-family: inherit; font-size: 12px; color: #18233A;
}
.ffx-add::placeholder { color: #A9B4C6; }
.ffx-add:focus { outline: none; border-style: solid; border-color: #1B6FBE; box-shadow: 0 0 0 3px #E7F1FB; }

/* alamat salah tulis — backend menolaknya, jadi ditandai sebelum tombol Kirim */
.rcp-chip.ffx-chip-bad { background: #FDECEC; border-color: #F5C2C2; }
.rcp-chip.ffx-chip-bad .rcp-chip-t { color: #B91C1C; }
.rcp-chip.ffx-chip-bad .rcp-chip-av { background: #DC2626 !important; }
