:root{
    --ink:#3D0C0C;
    --chart-maroon:#3D0C0C;      /* brand maroon for bars on light cards */
    --chart-maroon-soft:#F3E7E3;
    --ink-soft:#5C1717;
    --ink-sidebar:#2B0808;
    --bg:#FAF6EF;
    --card:#FFFFFF;
    --border:#E7DFD3;
    --teal:#C9A84C;
    --teal-soft:#FBF3DE;
    --amber:#E2A83D;
    --amber-soft:#FBF0DA;
    --green:#2E9E5B;
    --green-soft:#E5F5EC;
    --red:#C94F3D;
    --red-soft:#FBEAE7;
    --slate:#5E6470;
    --slate-light:#76695F;   /* hint text: 4.9:1 on the cream ground, 5.3:1 on white */
    --charcoal:#545454;
    --gray-fill:#C7C7C6;
    --text:#3A3A3A;
    /* status pill text, ≥4.5:1 on each pill's tint */
    --pill-pending:#7A5A12;
    --pill-qualified:#1E7A45;
    --pill-disqualified:#A8392A;
  }
  *{box-sizing:border-box;}
  body{margin:0;background:var(--bg);font-family:'Open Sans',sans-serif;color:var(--text);}
  .mono{font-family:'IBM Plex Mono',monospace;}
  .app{display:flex;min-height:100vh;}

  /* ---------- Dark mode (scoped to the app AND the login screen) ---------- */
  #appScreen.dark-mode{
    --bg:#1A1414;
    --chart-maroon:#C77B6E;      /* lifted so it reads on the dark cards */
    --chart-maroon-soft:#3A2420;
    --card:#241C1C;
    --border:#3A2C2C;
    --text:#F0EAE2;
    --slate:#B8A99C;
    --slate-light:#A3928A;
    --teal-soft:#3A2E14;
    --amber-soft:#332A16;
    --green-soft:#132A1E;
    --red-soft:#32201D;
    --pill-pending:#E8B24A;
    --pill-qualified:#4CC27E;
    --pill-disqualified:#EE8B77;
    background:var(--bg);
    color:var(--text);
    min-height:100vh;
  }
  /* The lead drawer and the submit/confirm modals are siblings of #appScreen
     at the body level (see index.html), not its descendants — without this,
     dark mode never reached them and they stayed stuck in light mode. */
  body.dark-mode{
    --bg:#1A1414;
    --chart-maroon:#C77B6E;      /* lifted so it reads on the dark cards */
    --chart-maroon-soft:#3A2420;
    --card:#241C1C;
    --border:#3A2C2C;
    --text:#F0EAE2;
    --slate:#B8A99C;
    --slate-light:#A3928A;
    --teal-soft:#3A2E14;
    --amber-soft:#332A16;
    --green-soft:#132A1E;
    --red-soft:#32201D;
    --pill-pending:#E8B24A;
    --pill-qualified:#4CC27E;
    --pill-disqualified:#EE8B77;
    color:var(--text);
  }
  /* Form controls never had a themed background at all (light mode just
     relied on the browser's default white) — dark mode exposed that gap. */
  body.dark-mode input:not([type="checkbox"]):not([type="radio"]),
  body.dark-mode textarea,
  body.dark-mode select{
    background:#1A1414;
    border-color:#3A2C2C;
    color:#F0EAE2;
  }
  #loginScreen.dark-mode{ background:#1A1414; }
  #loginScreen.dark-mode .login-tagline,
  #loginScreen.dark-mode .login-card h2{ color:#F0EAE2; }
  #loginScreen.dark-mode .login-card .lc-sub,
  #loginScreen.dark-mode .login-field label,
  #loginScreen.dark-mode .login-remember-row label{ color:#B8A99C; }
  #loginScreen.dark-mode .login-field input{ background:#241C1C; border-color:#3A2C2C; color:#F0EAE2; }
  #loginScreen.dark-mode .pw-toggle{ color:#B8A99C; }
  #loginScreen.dark-mode .pw-toggle:hover,
  #loginScreen.dark-mode .pw-toggle[aria-pressed="true"]{ color:#F0EAE2; background:#3A2C2C; }
  #loginScreen.dark-mode .login-arc{ border-color:#2E2424; }
  #loginScreen.dark-mode .login-arc.two{ border-color:#282020; }
  #loginScreen.dark-mode .login-social a{ border-color:#3A2C2C; color:#B8A99C; }
  #loginScreen.dark-mode .login-foot{ color:#8C7A6E; }

  .login-mode-toggle{position:absolute;top:24px;right:28px;z-index:5;width:38px;height:38px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;border:1px solid var(--border);color:var(--slate);cursor:pointer;
    transition:border-color 0.2s, color 0.2s;}
  .login-mode-toggle:hover{border-color:var(--teal);color:var(--teal);}
  .login-mode-toggle svg{width:18px;height:18px;}
  #loginScreen.dark-mode .login-mode-toggle{border-color:#3A2C2C;color:#F0EAE2;}

  .dark-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px;font-size:12.5px;color:var(--slate-light);}

  @keyframes welcomeFade{
    0%{opacity:0;transform:translateX(30px) scale(0.9);}
    10%{opacity:1;transform:translateX(0) scale(1.03);}
    16%{transform:translateX(0) scale(1);}
    88%{opacity:1;transform:translateX(0) scale(1);}
    100%{opacity:0;transform:translateX(24px) scale(0.96);}
  }
  @keyframes welcomeShimmer{
    0%{background-position:-120% 0;}
    100%{background-position:220% 0;}
  }
  #welcomeToast{
    position:fixed;top:20px;right:20px;z-index:200;
    background:linear-gradient(135deg,var(--ink) 0%,#240707 100%);
    border:1px solid rgba(201,168,76,0.35);
    border-radius:14px;padding:14px 20px;
    box-shadow:0 12px 32px rgba(0,0,0,0.35);
    pointer-events:none;display:none;overflow:hidden;
  }
  #welcomeToast::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,0.16) 45%,rgba(255,255,255,0.16) 50%,transparent 65%);
    background-size:200% 100%;
  }
  #welcomeToast.show{display:block;animation:welcomeFade 3.5s cubic-bezier(0.34,1.56,0.64,1) both;}
  #welcomeToast.show::after{animation:welcomeShimmer 1.6s ease-out 0.15s both;}
  #welcomeToast .wt-title{font-family:'Montserrat',sans-serif;font-size:15.5px;font-weight:600;color:#fff;line-height:1.3;}
  #welcomeToast .wt-sub{font-size:12px;color:#ffffff;margin-top:1px;}

  /* ---------- Action toasts (success/error confirmations) ---------- */
  @keyframes toastSlide{ from{opacity:0;transform:translateY(-12px);} to{opacity:1;transform:translateY(0);} }
  #toastStack{position:fixed;top:20px;right:20px;z-index:300;display:flex;flex-direction:column;gap:8px;max-width:340px;}
  .toast{padding:12px 16px;border-radius:10px;font-size:13.5px;font-weight:500;box-shadow:0 8px 24px rgba(0,0,0,0.15);
    animation:toastSlide 0.25s ease both;display:flex;align-items:center;gap:8px;}
  .toast.success{background:var(--green);color:#fff;}
  .toast.error{background:var(--red);color:#fff;}

  /* ---------- Sticky table headers — opt-in via .table-scroll wrapper, for genuinely long tables ---------- */
  .table-scroll{max-height:480px;overflow-y:auto;border-radius:8px;}
  .table-scroll table{margin:0;}
  .table-scroll th{position:sticky;top:0;background:var(--card);z-index:2;box-shadow:0 1px 0 var(--border);}
  .dark-toggle-switch{position:relative;width:36px;height:20px;background:rgba(255,255,255,0.15);border-radius:20px;cursor:pointer;flex-shrink:0;transition:background 0.2s;}
  .dark-toggle-switch.on{background:var(--teal);}
  .dark-toggle-switch::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform 0.2s;}
  .dark-toggle-switch.on::after{transform:translateX(16px);}

  /* ---------- Sidebar ---------- */
  /* The sidebar is dark maroon, so its quiet text needs a light grey of its own. */
  .sidebar{--slate-light:#B8A99C;width:250px;background:var(--ink-sidebar);color:#fff;display:flex;flex-direction:column;flex-shrink:0;}
  .brand{padding:22px 20px 14px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:18px;letter-spacing:0.2px;border-bottom:1px solid rgba(255,255,255,0.08);}
  .brand span{color:var(--teal);}

  /* ID badge / role switcher — signature element */
  .badge-zone{padding:18px 16px;border-bottom:1px solid rgba(255,255,255,0.08);}
  .badge-label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--slate-light);margin-bottom:8px;}
  .badge{background:var(--ink-soft);border:1px solid rgba(255,255,255,0.1);border-radius:10px;padding:12px;position:relative;overflow:hidden;}
  .badge::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--role-color, var(--teal));}
  .badge-name{font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;padding-left:8px;}
  .badge-role{font-size:11px;color:var(--slate-light);padding-left:8px;margin-top:2px;}
  select#roleSwitch{width:100%;margin-top:12px;background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,0.15);border-radius:6px;padding:8px;font-family:'Open Sans',sans-serif;font-size:12.5px;}
  select#impersonateSelect{width:100%;background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,0.15);border-radius:6px;padding:8px;font-family:'Open Sans',sans-serif;font-size:12.5px;}

  .nav{padding:10px 12px;flex:1;overflow-y:auto;}
  .nav-category{margin-bottom:6px;}
  .nav-category-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px 6px;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:#9C8482;cursor:pointer;user-select:none;}
  .nav-category-head:hover{color:#C7A8A8;}
  .nav-category-chevron{transition:transform 0.15s ease;font-size:9px;display:inline-block;}
  .nav-category.collapsed .nav-category-chevron{transform:rotate(-90deg);}
  .nav-category.collapsed .nav-category-items{display:none;}
  .nav-item{width:100%;padding:9px 12px;border:none;background:none;border-radius:8px;font:inherit;font-size:13.5px;text-align:left;color:#D9CFCB;margin-bottom:2px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background-color 0.15s ease, color 0.15s ease;}
  .nav-item:hover{background:rgba(255,255,255,0.05);color:#fff;}
  .nav-item.active{background:rgba(201,168,76,0.16);color:#fff;font-weight:600;}
  .nav-item:focus-visible, .preview-btn:focus-visible, .mobile-menu-btn:focus-visible, .dark-toggle-switch:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
  .nav-item-icon{width:17px;height:17px;flex-shrink:0;color:#B39C98;}
  .nav-item:hover .nav-item-icon{color:#E8DCD8;}
  .nav-item.active .nav-item-icon{color:var(--teal);}
  .nav-foot{padding:16px;font-size:11px;color:var(--slate-light);border-top:1px solid rgba(255,255,255,0.08);}
  .main-search-bar{display:flex;gap:8px;padding:14px 24px;background:var(--card);border-bottom:1px solid var(--border);}
  .main-search-bar input{flex:1;min-width:0;max-width:420px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;color:var(--text);}
  .main-search-bar input::placeholder{color:var(--slate-light);}
  .main-search-bar input:focus{outline:none;border-color:var(--teal);}
  .main-search-bar button{background:var(--teal);border:none;border-radius:8px;padding:0 14px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);}
  .main-search-bar button:hover{opacity:0.9;}
  .main-search-bar svg{width:15px;height:15px;}

  /* ---------- Main ---------- */
  .main{flex:1;padding:28px 34px;overflow-x:hidden;}
  .topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px;}
  .title{font-family:'Montserrat',sans-serif;font-size:22px;font-weight:600;}
  .subtitle{color:var(--slate);font-size:13px;margin-top:3px;}
  .tag{display:inline-block;font-size:10.5px;letter-spacing:0.6px;text-transform:uppercase;padding:3px 8px;border-radius:20px;font-weight:600;}
  .tag-teal{background:var(--teal-soft);color:var(--ink);}
  #appScreen.dark-mode .tag-teal, body.dark-mode .tag-teal{color:var(--teal);}

  .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:24px;}
  .stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;position:relative;transition:box-shadow 0.15s, border-color 0.15s, transform 0.15s;}
  .stat-card:hover{box-shadow:0 4px 14px rgba(0,0,0,0.06);transform:translateY(-1px);}
  @keyframes statCardIn{0%{opacity:0;transform:translateY(6px) scale(0.97);}100%{opacity:1;transform:translateY(0) scale(1);}}
  .stat-card-animated{animation:statCardIn 0.35s ease both;}
  .stat-card[onclick]:hover{box-shadow:0 4px 14px rgba(0,0,0,0.08);border-color:#D8DCE3;}
  .stat-caret{position:absolute;top:14px;right:14px;color:var(--slate-light);font-size:13px;}
  .stat-num{font-family:'Montserrat',sans-serif;font-size:26px;font-weight:700;}
  .stat-label{font-size:12px;color:var(--slate);margin-top:2px;}

  .panel{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px;}
  .panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
  .panel-title{font-family:'Montserrat',sans-serif;font-weight:600;font-size:15px;}

  .filters{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;}
  .filter-btn{border:1px solid var(--border);background:#fff;padding:6px 12px;border-radius:20px;font-size:12.5px;cursor:pointer;color:var(--slate);}
  .filter-btn.active{background:var(--ink);color:#fff;border-color:var(--ink);}

  table{width:100%;border-collapse:collapse;font-size:13px;}
  .table-scroll{max-height:520px;overflow-y:auto;border-radius:10px;}

  /* ---------- Kanban board — Client's leads, drag between folders ---------- */
  .kanban-board{display:flex;gap:14px;overflow-x:auto;padding-bottom:14px;padding-right:20px;scrollbar-width:thin;}
  .kanban-board::-webkit-scrollbar{height:10px;}
  .kanban-board::-webkit-scrollbar-track{background:var(--bg);border-radius:20px;}
  .kanban-board::-webkit-scrollbar-thumb{background:var(--slate-light);border-radius:20px;}
  .kanban-board::-webkit-scrollbar-thumb:hover{background:var(--slate);}
  .kanban-column{background:var(--bg);border:1px solid var(--border);border-radius:12px;min-width:208px;max-width:208px;
    flex-shrink:0;display:flex;flex-direction:column;max-height:calc(100vh - 260px);transition:background 0.15s, border-color 0.15s;}
  .kanban-column.drag-over{background:var(--teal-soft);border-color:var(--teal);}
  .kanban-col-head{font-size:12.5px;font-weight:700;padding:12px 14px;border-bottom:1px solid var(--border);
    display:flex;justify-content:space-between;align-items:center;flex-shrink:0;}
  .kanban-count{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:1px 8px;font-size:11px;color:var(--slate);}
  .kanban-col-body{padding:10px;overflow-y:auto;flex:1;}
  .kanban-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;
    cursor:grab;transition:box-shadow 0.15s, opacity 0.15s;}
  .kanban-card:hover{box-shadow:0 4px 12px rgba(0,0,0,0.08);}
  .kanban-card.dragging{opacity:0.4;}
  .kanban-empty{font-size:12px;color:var(--slate-light);text-align:center;padding:16px 8px;border:1px dashed var(--border);border-radius:8px;}
  th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:0.5px;color:var(--slate-light);padding:8px 10px;border-bottom:1px solid var(--border);
    position:sticky;top:0;background:var(--card);z-index:2;}
  td{padding:10px 10px;border-bottom:1px solid var(--border);vertical-align:middle;}
  tbody tr{transition:background-color 0.15s ease;}
  tbody tr:hover{background-color:var(--teal-soft);}
  tr:last-child td{border-bottom:none;}
  .status-pill{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600;display:inline-block;}

  /* ---------- Toast notifications ---------- */
  @keyframes toastIn{ from{opacity:0;transform:translateX(20px);} to{opacity:1;transform:translateX(0);} }
  #toastStack{position:fixed;top:20px;right:20px;z-index:300;display:flex;flex-direction:column;gap:8px;max-width:340px;}
  .toast{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--teal);border-radius:8px;padding:12px 14px;
    box-shadow:0 8px 24px rgba(0,0,0,0.12);font-size:13px;color:var(--text,var(--ink));animation:toastIn 0.25s ease both;}
  .toast.error{border-left-color:var(--red);}
  .toast.success{border-left-color:var(--green);}

  /* ---------- Confirm modal ---------- */
  #confirmOverlay{position:fixed;inset:0;background:rgba(20,25,35,0.45);display:flex;align-items:center;justify-content:center;z-index:250;
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.2s ease;}
  #confirmOverlay.open{opacity:1;visibility:visible;pointer-events:auto;}
  .confirm-card{background:var(--card);border-radius:14px;padding:24px 26px;max-width:380px;width:90%;box-shadow:0 20px 50px rgba(0,0,0,0.2);
    transform:scale(0.96);transition:transform 0.2s cubic-bezier(0.22,1,0.36,1);}
  #confirmOverlay.open .confirm-card{transform:scale(1);}
  .confirm-card h3{font-family:'Montserrat',sans-serif;font-size:17px;margin:0 0 8px;}
  .confirm-card p{font-size:13.5px;color:var(--slate);margin:0 0 18px;line-height:1.5;}
  .confirm-actions{display:flex;gap:10px;justify-content:flex-end;}

  /* ---------- Pagination ---------- */
  .pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;font-size:12.5px;color:var(--slate);}
  .pagination-controls{display:flex;gap:6px;align-items:center;}
  .page-btn{border:1px solid var(--border);background:#fff;padding:5px 10px;border-radius:6px;cursor:pointer;font-size:12px;}
  .page-btn:disabled{opacity:0.4;cursor:not-allowed;}
  .page-size-select{border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:12px;}
  .st-pending{background:var(--amber-soft);color:var(--pill-pending);}
  .st-qualified{background:var(--green-soft);color:var(--pill-qualified);}
  .st-disqualified{background:var(--red-soft);color:var(--pill-disqualified);}
  .st-duplicate{background:#FFF6CC;color:#6E5806;}
  .st-callback{background:#E1EEFC;color:#1D5FA8;}

  .qa-select{font-size:12px;border:1px solid var(--border);border-radius:6px;padding:5px 6px;font-family:'Open Sans',sans-serif;}
  .qa-select.st-qualified{background:var(--green-soft);color:var(--pill-qualified);border-color:var(--green);font-weight:600;}
  .qa-select.st-disqualified{background:var(--red-soft);color:var(--pill-disqualified);border-color:var(--red);font-weight:600;}
  .qa-select.st-duplicate{background:#FFF6CC;color:#6E5806;border-color:#D4B106;font-weight:600;}
  .qa-select.st-callback{background:#E1EEFC;color:#1D5FA8;border-color:#1D5FA8;font-weight:600;}
  .btn{background:var(--teal);color:var(--ink);border:none;padding:8px 14px;border-radius:7px;font-size:12.5px;font-weight:600;cursor:pointer;}
  .btn:hover{opacity:0.9;}
  .btn-ghost{background:none;border:1px solid var(--border);color:var(--text);}
  .btn-danger{background:none;border:1px solid var(--red);color:var(--red);}
  .btn-danger:hover{background:var(--red-soft);opacity:1;}
  .btn-danger-solid{background:var(--red);color:#fff;}
  .btn-danger-solid:disabled{opacity:0.45;cursor:not-allowed;}
  .btn-danger:focus-visible,.btn-danger-solid:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
  .danger-zone{border-color:var(--red);}
  .danger-zone-copy{font-size:13px;color:var(--slate);line-height:1.5;max-width:68ch;}
  .danger-zone-list{margin:0 0 16px;padding-left:18px;font-size:13px;line-height:1.7;color:var(--text,var(--ink));}

  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .form-grid label{font-size:12px;color:var(--slate);display:block;margin-bottom:4px;}
  .form-grid input, .form-grid textarea{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:7px;font-size:13px;font-family:'Open Sans',sans-serif;}
  .form-grid .full{grid-column:1/-1;}

  .drawer-overlay{position:fixed;inset:0;background:rgba(20,25,35,0.35);display:flex;align-items:stretch;justify-content:flex-end;z-index:50;
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.25s ease;}
  .drawer-overlay.open{opacity:1;visibility:visible;pointer-events:auto;}
  .drawer{width:520px;max-width:92vw;background:var(--card);height:100%;padding:24px;overflow-y:auto;box-shadow:-8px 0 30px rgba(0,0,0,0.12);
    transform:translateX(30px);transition:transform 0.3s cubic-bezier(0.22,1,0.36,1);}
  .drawer-overlay.open .drawer{transform:translateX(0);}
  .drawer .table-scroll-wrap{overflow-x:auto;}
  .drawer .table-scroll-wrap table{min-width:640px;}
  .drawer h3{font-family:'Montserrat',sans-serif;margin:0 0 4px;}
  .drawer .field{margin-bottom:14px;}
  .drawer .field label{font-size:11px;color:var(--slate-light);text-transform:uppercase;letter-spacing:0.5px;}
  .drawer .field div{font-size:14px;margin-top:2px;}
  .drawer textarea{width:100%;min-height:70px;border:1px solid var(--border);border-radius:8px;padding:8px;font-family:'Open Sans',sans-serif;}
  .close-x{float:right;cursor:pointer;color:var(--slate);font-size:18px;}

  .empty{color:var(--slate-light);font-size:13px;padding:20px 0;text-align:center;}
  .banner{background:var(--amber-soft);border:1px solid #EAD9AE;color:#8A6A24;border-radius:10px;padding:12px 16px;font-size:13.5px;}
  .note{font-size:11px;color:var(--slate-light);margin-top:10px;}

  /* ---------- Submit Lead modal ---------- */
  .modal-overlay{position:fixed;inset:0;background:rgba(20,25,35,0.45);display:flex;align-items:flex-start;justify-content:center;z-index:60;overflow-y:auto;padding:40px 20px;
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.2s ease;}
  .modal-overlay.open{opacity:1;visibility:visible;pointer-events:auto;}
  .modal-card{background:var(--card);border-radius:14px;width:100%;max-width:680px;padding:28px 30px;box-shadow:0 20px 50px rgba(0,0,0,0.2);
    transform:scale(0.96) translateY(8px);transition:transform 0.25s cubic-bezier(0.22,1,0.36,1);}
  .modal-overlay.open .modal-card{transform:scale(1) translateY(0);}
  .modal-card h3{font-family:'Montserrat',sans-serif;font-size:19px;margin:0;}
  .repair-grid{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:6px;}
  .repair-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;}
  .repair-item input{margin:0;}

  /* ---------- Login screen ---------- */
  @keyframes fadeInUp{ from{opacity:0;transform:translateY(16px);} to{opacity:1;transform:translateY(0);} }
  @keyframes arcPulse{ 0%,100%{opacity:0.55;transform:translate(-50%,-50%) scale(1);} 50%{opacity:1;transform:translate(-50%,-50%) scale(1.035);} }
  @keyframes logoBuild{
    0%{opacity:0;transform:scale(0.4) rotate(-18deg);}
    55%{opacity:1;transform:scale(1.1) rotate(4deg);}
    75%{transform:scale(0.96) rotate(-2deg);}
    100%{opacity:1;transform:scale(1) rotate(0deg);}
  }
  @keyframes ringExpand{
    0%{opacity:0.9;transform:translate(-50%,-50%) scale(0.3);}
    70%{opacity:0.25;}
    100%{opacity:0;transform:translate(-50%,-50%) scale(1.6);}
  }

  #loginScreen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#fff;z-index:100;overflow:hidden;}
  .login-arc{position:absolute;left:50%;top:50%;width:900px;height:900px;transform:translate(-50%,-50%);
    border:1px solid #EEE6D9;border-radius:50%;animation:arcPulse 7s ease-in-out infinite;}
  .login-arc.two{width:700px;height:700px;border-color:#F3ECE1;animation:arcPulse 7s ease-in-out infinite 1.2s;}
  .login-ring{position:absolute;left:50%;top:170px;width:120px;height:120px;border:2px solid var(--teal);border-radius:50%;
    animation:ringExpand 1.4s ease-out both;pointer-events:none;}

  .login-center{position:relative;z-index:2;width:100%;max-width:400px;padding:40px;text-align:center;}
  .login-logo-wrap{display:flex;justify-content:center;margin-bottom:10px;}
  .login-logo-anim{height:88px;width:auto;display:block;animation:logoBuild 0.9s cubic-bezier(.34,1.56,.64,1) both;}
  .login-brand-name{font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--slate);margin-bottom:28px;animation:fadeInUp 0.6s ease both;animation-delay:0.35s;}
  .login-tagline{font-family:'Montserrat',sans-serif;font-size:22px;font-weight:600;line-height:1.3;margin-bottom:16px;color:var(--ink);animation:fadeInUp 0.6s ease both;animation-delay:0.4s;transition:opacity 0.4s ease, transform 0.4s ease;min-height:58px;}
  .login-tagline.swap{opacity:0;transform:translateY(6px);}
  .login-pipeline{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:28px;animation:fadeInUp 0.6s ease both;animation-delay:0.55s;}
  .login-pipeline .node{display:flex;flex-direction:column;align-items:center;gap:6px;width:74px;}
  .login-pipeline .node-icon{width:34px;height:34px;border-radius:50%;background:var(--teal-soft);display:flex;align-items:center;justify-content:center;font-size:15px;border:1.5px solid var(--teal);}
  .login-pipeline .node-label{font-size:11px;font-weight:600;color:var(--slate);white-space:nowrap;}
  .login-pipeline .track{position:relative;width:38px;height:2px;background:var(--border);margin:0 -2px 22px;overflow:visible;}
  .login-pipeline .track::after{
    content:'';position:absolute;top:-2px;left:0;width:6px;height:6px;border-radius:50%;background:var(--teal);
    animation:pipelineFlow 2.4s linear infinite;
  }
  .login-pipeline .track:nth-child(4)::after{animation-delay:0.6s;}
  .login-pipeline .track:nth-child(6)::after{animation-delay:1.2s;}
  @keyframes pipelineFlow{
    0%{left:0;opacity:0;}
    10%{opacity:1;}
    90%{opacity:1;}
    100%{left:calc(100% - 6px);opacity:0;}
  }

  .login-card{width:100%;animation:fadeInUp 0.6s ease both;animation-delay:0.5s;}
  .login-card h2{font-family:'Montserrat',sans-serif;font-size:22px;margin:0 0 6px;color:var(--ink);}
  .login-card .lc-sub{color:var(--slate);font-size:13.5px;margin-bottom:26px;}
  .login-field{margin-bottom:16px;text-align:left;}
  .login-field label{font-size:12.5px;color:var(--ink);font-weight:500;display:block;margin-bottom:6px;}
  .login-field input, .login-field select{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:'Open Sans',sans-serif;background:#fff;}
  .login-field input:focus, .login-field select:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal);}
  /* Show/hide password: an eye inside the field's right edge, 40px to tap. */
  .pw-wrap{position:relative;}
  .login-field .pw-wrap input{padding-right:46px;}
  .pw-toggle{position:absolute;top:50%;right:3px;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;
    border:0;border-radius:6px;background:transparent;color:var(--slate-light);cursor:pointer;transition:color .15s ease-out, background-color .15s ease-out;}
  .pw-toggle:hover{color:var(--ink);background:var(--teal-soft);}
  .pw-toggle:focus-visible{outline:2px solid var(--teal);outline-offset:-2px;color:var(--ink);}
  .pw-toggle svg{width:19px;height:19px;}
  .pw-toggle .pw-eye-off, .pw-toggle[aria-pressed="true"] .pw-eye{display:none;}
  .pw-toggle[aria-pressed="true"] .pw-eye-off{display:block;}
  .pw-toggle[aria-pressed="true"]{color:var(--ink);}
  .login-remember-row{display:flex;align-items:center;gap:7px;margin:-6px 0 18px;}
  .login-remember-row input[type="checkbox"]{width:15px;height:15px;accent-color:var(--teal);cursor:pointer;margin:0;}
  .login-remember-row label{font-size:12.5px;color:var(--ink);cursor:pointer;user-select:none;}
  .login-btn{width:100%;background:var(--ink);color:#fff;border:none;padding:12px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;margin-top:6px;transition:background 0.2s, transform 0.15s;}
  .login-btn:hover{transform:translateY(-1px);}
  .login-btn:active{transform:translateY(0);}
  .login-btn:hover{background:var(--charcoal);}
  .login-foot{margin-top:22px;font-size:12px;color:var(--slate-light);text-align:center;}
  .login-social{display:flex;justify-content:center;gap:14px;margin-top:26px;}
  .login-social a{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);color:var(--slate);transition:border-color 0.2s, color 0.2s;}
  .login-social a:hover{border-color:var(--charcoal);color:var(--charcoal);}
  .login-social svg{width:16px;height:16px;}

  .sidebar-logo{display:flex;align-items:center;gap:9px;padding:20px 20px 14px;border-bottom:1px solid rgba(255,255,255,0.08);}
  .notif-bell-wrap{position:relative;margin-left:auto;}
  .notif-bell{position:relative;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    color:#fff;cursor:pointer;background:rgba(255,255,255,0.06);}
  .notif-bell:hover{background:rgba(255,255,255,0.12);}
  .notif-bell svg{width:16px;height:16px;}
  .notif-dot{position:absolute;top:2px;right:2px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--red);
    color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;}
  /* The panel sits inside the dark sidebar but is a white card: restore the page's grey. */
  .notif-panel{--slate-light:#76695F;position:absolute;top:40px;left:0;width:320px;max-height:380px;overflow-y:auto;background:var(--card);
    border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,0.25);z-index:120;display:none;}
  .notif-panel.open{display:block;}
  .notif-panel-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);}
  .notif-panel-head span{font-weight:600;font-size:13px;color:var(--text);}
  .notif-panel-head button{background:none;border:none;color:var(--teal);font-size:12px;cursor:pointer;}
  .notif-item{padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;}
  .notif-item:last-child{border-bottom:none;}
  .notif-item.unread{background:var(--teal-soft);}
  .notif-item-msg{font-size:12.5px;color:var(--text);line-height:1.4;}
  .notif-item-meta{font-size:10.5px;color:var(--slate-light);margin-top:4px;}
  .notif-empty{padding:24px 14px;text-align:center;font-size:12.5px;color:var(--slate-light);}
  .sidebar-logo .logo-chip{background:#fff;border-radius:8px;padding:4px 6px;display:flex;align-items:center;}
  .sidebar-logo .logo-chip img{height:20px;width:auto;display:block;}
  .sidebar-logo-name{font-family:'Montserrat',sans-serif;font-weight:600;font-size:15px;color:#fff;}

  .mobile-nav-toggle{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:4px;margin-left:8px;}
  .mobile-nav-toggle svg{width:20px;height:20px;display:block;}
  .mobile-nav-scrim{display:none;position:fixed;inset:0;background:rgba(20,10,10,0.45);z-index:39;opacity:0;transition:opacity 0.2s ease;}
  .mobile-nav-scrim.show{display:block;opacity:1;}

  .logout-btn{background:none;border:none;color:var(--slate-light);font-size:11.5px;cursor:pointer;padding:0;text-decoration:underline;}
  @media print {
    body > *:not(#invoiceOverlay) { display: none !important; }
    #invoiceOverlay { position: static !important; background: none !important; padding: 0 !important; display: block !important; }
    #invoiceSheet { box-shadow: none !important; max-width: 100% !important; border-radius: 0 !important; }
    .invoice-no-print { display: none !important; }
  }

  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{
      animation-duration:0.001ms !important;
      animation-iteration-count:1 !important;
      transition-duration:0.001ms !important;
      scroll-behavior:auto !important;
    }
  }

  .panel.reveal{ opacity:0; transform:translateY(10px); transition:opacity 0.4s ease, transform 0.4s ease; }
  .panel.reveal.reveal-in{ opacity:1; transform:translateY(0); }

  /* ---------- Campaign form builder ---------- */
  .modal-card.modal-wide{max-width:1120px;}
  .fb-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;align-items:start;}
  .fb-editor{display:flex;flex-direction:column;gap:18px;min-width:0;}
  .fb-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;}
  .fb-section-title{font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;color:var(--text);}
  .fb-hint{font-size:12px;color:var(--slate);}
  .fb-link{background:none;border:none;padding:0;font:inherit;font-size:12px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
  #appScreen.dark-mode .fb-link, body.dark-mode .fb-link{color:var(--teal);}
  .fb-link:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}

  .fb-library{border:1px solid var(--border);border-radius:10px;padding:14px 16px;background:var(--card);}
  .fb-group + .fb-group{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
  .fb-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--slate);}
  .fb-group-head .fb-link, .fb-group-head .fb-hint{text-transform:none;letter-spacing:0;}
  .fb-chips{display:flex;flex-wrap:wrap;gap:6px;}
  .fb-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text);font:inherit;font-size:12.5px;cursor:pointer;transition:background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;}
  .fb-chip svg{color:var(--slate);flex-shrink:0;}
  .fb-chip:hover{border-color:var(--teal);}
  .fb-chip.is-on{background:var(--teal-soft);border-color:var(--teal);color:var(--ink);font-weight:600;}
  #appScreen.dark-mode .fb-chip.is-on, body.dark-mode .fb-chip.is-on{color:var(--text);}
  .fb-chip.is-on svg{color:var(--ink);}
  body.dark-mode .fb-chip.is-on svg{color:var(--teal);}
  .fb-chip:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}

  .fb-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--card);overflow:hidden;}
  .fb-row{border-top:1px solid var(--border);}
  .fb-row:first-child{border-top:none;}
  .fb-row.is-drop-before{box-shadow:inset 0 2px 0 var(--teal);}
  .fb-row.is-drop-after{box-shadow:inset 0 -2px 0 var(--teal);}
  .fb-row-head{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;min-height:44px;}
  .fb-grip{display:inline-flex;color:var(--slate-light);cursor:grab;padding:4px 2px;}
  .fb-grip:active{cursor:grabbing;}
  .fb-num{font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;color:var(--slate);min-width:18px;text-align:right;font-variant-numeric:tabular-nums;}
  .fb-row-toggle{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px;background:none;border:none;padding:6px 4px;font:inherit;text-align:left;color:var(--text);cursor:pointer;border-radius:6px;}
  .fb-row-toggle:hover .fb-row-label{text-decoration:underline;text-underline-offset:2px;}
  .fb-row-toggle:focus-visible{outline:2px solid var(--teal);outline-offset:1px;}
  .fb-row-label{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
  .fb-row-type{font-size:12px;color:var(--slate);white-space:nowrap;flex-shrink:0;}
  .fb-chevron{margin-left:auto;color:var(--slate);display:inline-flex;transition:transform 0.15s ease;flex-shrink:0;}
  .fb-row.is-open .fb-chevron{transform:rotate(90deg);}
  .fb-row.is-open{background:var(--bg);}
  .fb-req{flex-shrink:0;font-size:12px;}
  .fb-actions{display:flex;gap:4px;flex-shrink:0;}
  .fb-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);cursor:pointer;}
  .fb-icon:hover:not(:disabled){border-color:var(--slate);}
  .fb-icon:disabled{opacity:0.35;cursor:default;}
  .fb-icon-remove:hover{color:var(--red);border-color:var(--red);}
  .fb-icon:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
  .fb-row-body{display:grid;gap:10px;padding:4px 14px 14px 52px;}
  .fb-add-own{margin-top:10px;}
  .fb-sub{display:grid;gap:5px;font-size:12px;font-weight:600;color:var(--slate);}
  .fb-sub input,.fb-sub textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:7px;font-size:13px;font-family:'Open Sans',sans-serif;color:var(--text);background:var(--card);}
  .fb-fixed-choices{font-size:12px;color:var(--slate);}
  .fb-check{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text);cursor:pointer;}
  .fb-check input,.fb-start-option input{accent-color:var(--teal);}
  .fb-empty{font-size:13px;color:var(--slate);padding:18px 4px;}
  .fb-preview{position:sticky;top:0;border:1px dashed var(--border);border-radius:10px;padding:16px;background:var(--bg,transparent);}
  .fb-preview-title{font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;margin-bottom:12px;}
  .fb-preview-body{pointer-events:none;}
  .fb-yesno{display:flex;gap:8px;}
  .fb-yesno span{flex:1;text-align:center;padding:8px;border:1px solid var(--border);border-radius:7px;font-size:13px;}
  .fb-warning{font-size:12.5px;line-height:1.5;color:var(--red);background:var(--red-soft);border-radius:8px;padding:9px 12px;margin-bottom:12px;}
  .fb-start{display:grid;gap:10px;margin-bottom:18px;}
  .fb-start-option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;}
  .fb-start-option:has(input:checked){border-color:var(--teal);}
  @media (max-width: 860px){ .fb-layout{grid-template-columns:1fr;} .fb-preview{position:static;} }

  /* ---------- Agent lead form (campaign forms) ---------- */
  .lf-field{display:flex;flex-direction:column;min-width:0;}
  @media (max-width: 600px){ .lf-field{grid-column:1/-1;} }
  .lf-help{margin-top:4px;}
  .lf-field :is(input,textarea)::placeholder{color:var(--slate-light);opacity:1;} /* hints must not read as answers */
  .lf-error{font-size:11.5px;line-height:1.4;color:var(--red);margin-top:4px;}
  .lf-error:empty{display:none;}
  /* #submitModalContent outranks the dark-mode input border rule. */
  #submitModalContent .lf-field.lf-invalid :is(input,select,textarea){border-color:var(--red);}
  .lf-field.lf-invalid .lf-yesno label{border-color:var(--red);}
  .lf-yesno{display:flex;gap:8px;}
  .lf-yesno label{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;border:1px solid var(--border);border-radius:7px;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;}
  .lf-yesno label:has(input:checked){border-color:var(--teal);background:var(--teal-soft);}
  .lf-yesno input[type="radio"]{width:auto;padding:0;margin:0;accent-color:var(--teal);} /* undo .form-grid input's full width */
  .lf-switch{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12.5px;color:var(--text);background:var(--teal-soft);border-radius:8px;padding:10px 12px;margin-top:8px;}

  /* ---------- Lead answers (campaign forms) ---------- */
  .lv-answers{margin:0;display:grid;gap:10px;}
  .lv-answer{display:grid;gap:2px;}
  .lv-answer dt{font-size:11.5px;font-weight:600;color:var(--slate);}
  .lv-answer dd{margin:0;font-size:13.5px;color:var(--text);overflow-wrap:anywhere;}
  .lv-long{white-space:pre-wrap;}
  .lv-removed dd{color:var(--slate);}
  .lv-tag{font-weight:500;font-size:10.5px;color:var(--slate-light);margin-left:4px;}
  .lv-summary{margin-top:8px;line-height:1.6;}
  .lv-more{margin-top:8px;}
  .lv-more summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--slate);}
  .lv-more[open] summary{margin-bottom:8px;}

  /* ---------- Campaign team ---------- */
  .team-groups{display:grid;gap:14px;}
  .team-group h4{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;margin:0 0 6px;display:flex;align-items:center;gap:8px;}
  .team-count{font-family:'Open Sans',sans-serif;font-size:11px;font-weight:600;color:var(--slate);background:var(--teal-soft);border-radius:10px;padding:1px 8px;font-variant-numeric:tabular-nums;}
  .team-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:10px;}
  .team-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;}
  .team-list li + li{border-top:1px solid var(--border);}
  .team-person{min-width:0;}
  .team-name{font-size:13.5px;color:var(--text);overflow-wrap:anywhere;}
  .team-person .note{margin-top:2px;overflow-wrap:anywhere;}
  .team-inactive{font-size:11px;color:var(--red);margin-left:4px;}
  .team-empty{margin-top:0;}
  .team-add{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);}
  .team-add-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
  .team-add-head label{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;}
  .team-picks{display:grid;gap:2px;max-height:240px;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:6px;}
  .team-pick{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:7px 8px;border-radius:7px;cursor:pointer;}
  .team-pick:hover{background:var(--teal-soft);}
  .team-pick input{accent-color:var(--teal);grid-row:span 2;}
  .team-pick .note{margin-top:0;grid-column:2;}
  .team-pick > span:not(.note){font-size:13.5px;color:var(--text);}

  /* ---------- Home (home.js) ---------- */
  .btn-primary{display:inline-flex;align-items:center;gap:7px;background:var(--ink);color:#fff;padding:10px 16px;font-size:13px;}
  .btn-primary:hover{background:var(--ink-soft);}
  .btn:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
  .btn-icon{width:16px;height:16px;flex-shrink:0;}
  .home-head{align-items:center;gap:16px;}
  .home-head h1{margin:0;}
  .home-section-title{font-family:'Montserrat',sans-serif;font-weight:600;font-size:15px;margin:0 0 6px;}

  .home-todo{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px 20px 8px;margin-bottom:20px;}
  .todo-list{list-style:none;margin:0;padding:0;}
  .todo{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--border);}
  .todo:first-child{border-top:none;}
  .todo-count{font-family:'Montserrat',sans-serif;font-weight:700;font-size:24px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;}
  #appScreen.dark-mode .todo-count{color:#E9C9C1;}
  .todo-text{display:flex;flex-direction:column;gap:3px;min-width:0;}
  .todo-text strong{font-size:14px;font-weight:600;color:var(--text);}
  .todo-text span{font-size:12.5px;color:var(--slate);}
  .todo-action{white-space:nowrap;}
  .home-clear{display:flex;align-items:center;gap:14px;padding:18px 20px;}
  .home-clear .home-section-title{margin:0 0 2px;}
  .home-clear-icon{width:28px;height:28px;color:var(--green);flex-shrink:0;}

  .home-campaigns table{width:100%;border-collapse:collapse;}
  .home-campaigns th{text-align:left;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--slate);padding:0 12px 10px;border-bottom:1px solid var(--border);}
  .home-campaigns td{padding:14px 12px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:13.5px;}
  .home-campaigns tbody tr:last-child td{border-bottom:none;}
  .home-campaigns th.num, .home-campaigns td.num{text-align:right;font-variant-numeric:tabular-nums;}
  .home-campaigns td.num{font-family:'Montserrat',sans-serif;font-weight:600;font-size:15px;}
  .camp-name{font-weight:600;color:var(--text);}
  .camp-inactive td{opacity:0.62;}
  .mix-cell{min-width:220px;}
  .mix{display:flex;height:8px;border-radius:4px;overflow:hidden;gap:2px;background:var(--border);}
  .mix-seg{display:block;min-width:4px;}
  .mix-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:7px;font-size:11.5px;color:var(--slate);}
  .mix-key{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
  .mix-dot{width:8px;height:8px;border-radius:2px;display:inline-block;}
  .mix-pending{background:var(--amber);}
  .mix-qualifiedNotPushed{background:#9CCFB0;}
  .mix-pushed{background:var(--green);}
  .mix-callback{background:#5B8FD0;}
  .mix-disqualified{background:var(--red);}
  .mix-duplicate{background:#A79C93;}
  .month{font-variant-numeric:tabular-nums;}
  .month .num{font-family:'Montserrat',sans-serif;font-weight:600;font-size:15px;}
  .meter{height:4px;border-radius:2px;background:var(--border);margin-top:6px;max-width:120px;overflow:hidden;}
  .meter span{display:block;height:100%;background:var(--teal);border-radius:2px;}

  .home-skeleton div{height:96px;border-radius:12px;margin-bottom:20px;background:linear-gradient(90deg, var(--card) 0%, var(--border) 50%, var(--card) 100%);background-size:200% 100%;animation:homeShimmer 1.2s ease-in-out infinite;}
  .home-skeleton div + div{height:220px;}
  @keyframes homeShimmer{0%{background-position:100% 0;}100%{background-position:-100% 0;}}

  /* ---------- Preview as (home.js) ---------- */
  .preview-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:12px;padding:8px 10px;background:none;border:1px solid rgba(255,255,255,0.18);border-radius:7px;color:#EADFDB;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:background-color 0.15s ease, border-color 0.15s ease;}
  .preview-btn:hover{background:rgba(255,255,255,0.06);border-color:var(--teal);}
  .preview-banner{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:10px 24px;background:var(--ink);color:#F5F0EA;font-size:13px;}
  .preview-banner > span{display:flex;align-items:center;gap:8px;}
  .preview-banner .btn{background:var(--teal);color:var(--ink);white-space:nowrap;}
  .preview-search{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:13.5px;margin-bottom:12px;background:var(--card);color:var(--text);}
  .preview-search:focus{outline:none;border-color:var(--teal);}
  .preview-list{display:flex;flex-direction:column;gap:6px;max-height:min(60vh, 460px);overflow-y:auto;}
  .preview-person{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color 0.15s ease, background-color 0.15s ease;}
  .preview-person:hover, .preview-person:focus-visible{border-color:var(--teal);background:var(--teal-soft);outline:none;}
  .preview-person > span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0;}
  .preview-person .note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .preview-person.is-loading{opacity:0.6;cursor:progress;}
  .preview-role{background:var(--chart-maroon-soft);color:var(--ink);flex-shrink:0;}
  #appScreen.dark-mode .preview-role, body.dark-mode .preview-role{color:#E9C9C1;}

  .mobile-menu-btn{display:none;flex-shrink:0;background:none;border:1px solid var(--border);border-radius:8px;padding:0 10px;color:var(--ink);cursor:pointer;}
  .mobile-menu-btn svg{width:18px;height:18px;display:block;}
  .main-search-bar .mobile-menu-btn{display:none;background:none;color:var(--ink);}
  #appScreen.dark-mode .main-search-bar .mobile-menu-btn{color:var(--text);}

  /* .note's slate-light is too faint for the facts Home and the picker carry. */
  .home .note, .home-clear .note, .preview-person .note, .home-campaigns th{color:var(--slate);}
  .home-campaigns td .note{margin-top:3px;font-size:12px;}
  .home .panel-head .note{margin-top:0;font-size:12px;}
  .preview-note{color:var(--slate);font-size:12.5px;}
  .month .note{margin-top:0;}
  .show-more-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:14px;}
  .show-more-row .note{margin-top:0;color:var(--slate);font-size:12px;}
  .fb-library > summary{cursor:pointer;list-style:none;margin-bottom:0;}
  .fb-library > summary::-webkit-details-marker{display:none;}
  .fb-library > summary .fb-section-title::before{content:'';display:inline-block;width:6px;height:6px;margin:0 9px 2px 1px;border-right:1.6px solid var(--slate);border-bottom:1.6px solid var(--slate);transform:rotate(-45deg);transition:transform 0.15s ease;}
  .fb-library[open] > summary .fb-section-title::before{transform:rotate(45deg);}
  .fb-library[open] > summary{margin-bottom:10px;}
  .fb-library > summary:focus-visible{outline:2px solid var(--teal);outline-offset:4px;border-radius:4px;}
  .fb-section-title .fb-hint{font-family:'Open Sans',sans-serif;font-weight:400;margin-left:6px;}
  #appScreen.dark-mode .notif-panel{--slate-light:#A3928A;}
  .notif-more{display:block;width:100%;padding:10px 14px;border:none;border-top:1px solid var(--border);background:none;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;text-align:center;}
  .notif-more:hover{background:var(--teal-soft);}
  #appScreen.dark-mode .notif-more{color:var(--text);}
  .lf-datetime{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;max-width:520px;}
  @media (max-width: 480px){ .lf-datetime{grid-template-columns:1fr;} }

  /* ---------- Callbacks on Home (home.js) ---------- */
  .cb-group + .cb-group{margin-top:16px;}
  .cb-group-title{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--slate);}
  .cb-count{font-variant-numeric:tabular-nums;background:var(--border);color:var(--text);border-radius:999px;padding:1px 8px;font-size:11px;letter-spacing:0;}
  .cb-overdue .cb-group-title{color:var(--red);}
  .cb-overdue .cb-count{background:var(--red-soft);color:var(--red);}
  .cb-list{list-style:none;margin:0;padding:0;}
  .cb-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:6px 16px;align-items:center;padding:11px 0;border-top:1px solid var(--border);}
  .cb-row:first-child{border-top:none;}
  .cb-when{font-size:13px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;}
  .cb-overdue .cb-when{color:var(--red);}
  .cb-lead{display:flex;flex-direction:column;gap:2px;min-width:0;}
  .cb-lead strong{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .cb-lead .note{margin-top:0;font-size:12px;color:var(--slate);}
  .cb-phone{font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:2px;white-space:nowrap;}
  #appScreen.dark-mode .cb-phone{color:var(--teal);}
  .home-callbacks .panel-head .note{margin-top:0;}

  /* ---------- Lead Dashboard (lead-dashboard.js) ---------- */
  .ld-periods{margin:-6px 0 18px;}
  .ld-table{width:100%;border-collapse:collapse;}
  .ld-table th{padding:0 10px 10px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;}
  .ld-table th.num, .ld-table td.num{text-align:right;}
  .ld-sort{background:none;border:none;padding:0;font:inherit;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--slate);cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
  .ld-sort:hover{color:var(--text);}
  .ld-sort:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:3px;}
  .ld-table th[aria-sort="ascending"] .ld-sort, .ld-table th[aria-sort="descending"] .ld-sort{color:var(--ink);}
  #appScreen.dark-mode .ld-table th[aria-sort="ascending"] .ld-sort, #appScreen.dark-mode .ld-table th[aria-sort="descending"] .ld-sort{color:var(--text);}
  .ld-table td{padding:11px 10px;border-bottom:1px solid var(--border);font-size:13.5px;font-variant-numeric:tabular-nums;}
  .ld-table tbody tr:hover td{background:var(--bg);}
  .ld-name{font-weight:600;color:var(--text);}
  .ld-code{font-size:12.5px;color:var(--slate);white-space:nowrap;}
  .ld-total{font-family:'Montserrat',sans-serif;font-weight:700;}
  .ld-zero{color:var(--slate-light);}
  .ld-inactive td{opacity:0.65;}
  .ld-tag{background:var(--border);color:var(--slate);margin-left:6px;}
  .ld-foot td{border-bottom:none;border-top:2px solid var(--border);font-weight:700;background:var(--bg);}
  .ld-dot{width:8px;height:8px;border-radius:2px;display:inline-block;}
  .ld-qualified{background:var(--green);} .ld-disqualified{background:var(--red);} .ld-duplicate{background:#A79C93;}
  .ld-pending{background:var(--amber);} .ld-callback{background:#5B8FD0;}

  /* ---------- New campaign set-up (script.js) ---------- */
  .setup-steps{display:flex;gap:6px;list-style:none;margin:0 0 20px;padding:0;counter-reset:none;}
  .setup-steps li{flex:1;display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:9px;background:var(--bg);color:var(--slate);font-size:12.5px;font-weight:600;border:1px solid var(--border);}
  .setup-steps li.current{background:var(--teal-soft);border-color:var(--teal);color:var(--ink);}
  #appScreen.dark-mode .setup-steps li.current, body.dark-mode .setup-steps li.current{color:var(--text);}
  .setup-steps li.done{color:var(--text);}
  .setup-step-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--card);border:1px solid var(--border);font-size:11.5px;font-weight:700;flex-shrink:0;}
  .setup-steps li.current .setup-step-num{background:var(--ink);border-color:var(--ink);color:#fff;}
  .setup-steps li.done .setup-step-num{background:var(--green);border-color:var(--green);color:#fff;}
  .setup-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--border);}
  .setup-section-title{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:600;margin:0 0 4px;color:var(--text);}
  .setup-section-note{margin:0 0 14px;color:var(--slate);font-size:12.5px;}
  .setup-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:22px;}
  .setup-actions .note{margin:0 auto 0 0;}
  .setup-team-group{border:1px solid var(--border);border-radius:10px;padding:10px 14px 6px;margin:0 0 12px;}
  .setup-team-group legend{padding:0 6px;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--slate);}
  .setup-picked{text-transform:none;letter-spacing:0;color:var(--ink);background:var(--teal-soft);border-radius:999px;padding:1px 8px;margin-left:4px;}
  #appScreen.dark-mode .setup-picked, body.dark-mode .setup-picked{color:var(--text);}
  .setup-person{display:flex;align-items:center;gap:10px;padding:8px 4px;border-top:1px solid var(--border);cursor:pointer;}
  .setup-person:first-of-type{border-top:none;}
  .setup-person input{accent-color:var(--teal);width:16px;height:16px;flex-shrink:0;}
  .setup-person > span{display:flex;flex-direction:column;gap:1px;min-width:0;}
  .setup-person strong{font-size:13.5px;}
  .setup-person .note{margin:0;font-size:12px;color:var(--slate);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .setup-person.is-taken{cursor:not-allowed;opacity:0.6;}
  .setup-team-summary{margin-top:4px;color:var(--slate);font-size:12.5px;}
  .setup-close{background:none;border:none;font:inherit;font-size:22px;line-height:1;cursor:pointer;color:var(--slate);padding:2px 6px;border-radius:6px;}
  .setup-close:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
