  :root {
    /* Claude.ai colour palette */
    --bg:       #f7f5f2;   /* warm off-white parchment */
    --surface:  #ffffff;
    --surface2: #f3f1ee;   /* warm light grey */
    --surface3: #ebe9e5;
    --border:   #ddd9d3;   /* warm grey border */
    --accent:   #cc785c;   /* Claude's warm terracotta orange */
    --accent2:  #c96a2e;   /* deeper amber */
    --accent3:  #2d7d52;   /* muted green */
    --text:     #1a1915;   /* warm near-black */
    --muted:    #8c8984;   /* warm grey */
    --danger:   #c0392b;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  body { font-family:'Geist',sans-serif; background:var(--bg); color:var(--text); min-height:100vh; padding:36px 40px; font-size:14px; -webkit-font-smoothing:antialiased; }
  @media (max-width: 768px) {
    /* ── Core layout ── */
    body { padding:12px 10px 80px; font-size:13px; }
    header { gap:8px; margin-bottom:14px; flex-wrap:wrap; align-items:center; }
    header h1 { font-size:1.2rem; }
    header .date { display:none; }
    .backup-bar { gap:4px; }
    .btn-backup { padding:5px 9px; font-size:0.62rem; }
    #auth-header-area { flex-shrink:0; margin-left:auto; }
    .signout-btn { font-size:0.65rem; padding:5px 10px; border-radius:8px; min-height:32px; }
    .user-pill { font-size:0.62rem; padding:3px 8px; max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

    /* ── Panel & tabs ── */
    .panel { border-radius:10px; }
    .panel-tab-row-wrap { position:sticky; top:0; z-index:50; background:var(--surface2); }
    .panel-tab-row { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
    .panel-tab-row::-webkit-scrollbar { display:none; }
    .tab-row-break { display:none; }
    .tab-btn { padding:10px 12px; font-size:0.7rem; gap:4px; flex-shrink:0; white-space:nowrap; min-height:44px; }
    .tab-count { font-size:0.58rem; padding:1px 5px; }
    .tab-divider { margin:8px 0; }

    /* ── Search/sort bar ── */
    .ss-bar { flex-wrap:wrap; gap:6px; padding:8px 10px; }
    .ss-input { font-size:0.8rem; min-height:38px; }
    .ss-sort-label { display:none; }
    .ss-sort-group { gap:4px; }
    .ss-sort-btn { padding:5px 8px; font-size:0.65rem; min-height:32px; }
    .collapse-all-btn { font-size:0.65rem; padding:4px 8px; }

    /* ── Customer / vendor blocks ── */
    .cust-header { padding:12px 12px; gap:8px; min-height:52px; }
    .customer-avatar { width:32px; height:32px; font-size:0.68rem; flex-shrink:0; }
    .cust-label { font-size:0.85rem; }
    .bd-pills { display:none; }
    .mini-count { font-size:0.65rem; }

    /* ── Tables → horizontal scroll ── */
    .task-table-wrap, .ag-table-wrap, .kz-dept-body { overflow-x:auto; -webkit-overflow-scrolling:touch; }
    table { min-width:520px; font-size:0.76rem; }
    table th { padding:6px 8px; font-size:0.6rem; }
    table td { padding:7px 8px; }

    /* ── Buttons ── */
    .add-btn { font-size:0.72rem; padding:7px 12px; min-height:38px; }
    .delete-btn, .dup-btn, .ff-row-btn, .log-inline-btn { width:26px; height:26px; font-size:0.8rem; }
    .row-actions-td { width:70px !important; }

    /* ── Modal ── */
    .modal { padding:18px 16px; border-radius:14px; max-height:85vh; }
    .modal h3 { font-size:0.9rem; margin-bottom:14px; }
    .field-wrap { margin-bottom:10px; }
    .field-label { font-size:0.6rem; }
    .modal input, .modal select { padding:8px 11px; font-size:0.82rem; }
    .modal-actions { gap:8px; }
    .btn-primary, .btn-secondary, .btn-danger { padding:10px; font-size:0.8rem; }

    /* ── Summary ── */
    .summary-kpi-row { grid-template-columns:repeat(2,1fr) !important; gap:8px !important; padding:12px !important; }
    .kpi-card { padding:12px !important; }
    .kpi-num { font-size:1.5rem !important; }
    .kpi-label { font-size:0.62rem !important; }
    .kpi-sub { font-size:0.6rem !important; }
    .summary-health-grid { grid-template-columns:repeat(2,1fr) !important; padding:10px !important; gap:6px !important; }
    .health-card { padding:8px 10px !important; }

    /* ── Firefighting ── */
    .ff-item { padding:10px 12px; gap:8px; }
    .ff-title { font-size:0.82rem; }
    .ff-notes { font-size:0.7rem; }

    /* ── Calendar ── */
    .cal-grid { padding:0 3px 8px; }
    .cal-cell { min-height:55px; padding:3px 2px; margin:1px; }
    .cal-dow { font-size:0.55rem; padding:8px 2px 4px; }
    .cal-toolbar { padding:10px 12px; }
    .cal-month-label { font-size:0.88rem; }

    /* ── New Products / Multi Cavity ── */
    .np-search-wrap { padding:8px 12px; }
    .np-row-header { padding:10px 12px; gap:8px; }
    .np-summary-bar { padding:10px 12px 4px; gap:8px; }

    /* ── Kaizen ── */
    .kz-toolbar { flex-wrap:wrap; gap:6px; padding:10px 12px; }
    .kz-table { min-width:700px; }

    /* ── Alerts ── */
    .alerts-summary { padding:10px 12px 0; gap:8px; }
    .alert-stat { padding:8px 12px; }
    .alert-stat-num { font-size:1.1rem; }

    /* ── Reminders ── */
    .rem-card { min-height:80px !important; }

    /* ── Panel footer ── */
    .panel-footer { padding:10px 12px; }

    /* ── Login screen ── */
    .auth-logo-img { width:200px !important; }
    .auth-box-body { padding:22px 20px 20px !important; gap:14px !important; }
  }
  body::before {
    content:''; position:fixed; top:-200px; left:-200px; width:600px; height:600px;
    background:radial-gradient(circle,rgba(204,120,92,0.05) 0%,transparent 70%); pointer-events:none;
  }

  /* HEADER */
  header { display:flex; align-items:center; gap:16px; margin-bottom:32px; flex-wrap:wrap; }
  header h1 { font-size:1.85rem; font-weight:700; letter-spacing:-0.025em; color:var(--text); }
  header .date { font-family:'Geist Mono',monospace; font-size:0.7rem; color:var(--muted); letter-spacing:0.04em; flex:1; }
  #save-indicator { font-family:'Geist Mono',monospace; font-size:0.68rem; color:var(--accent3); opacity:0; transition:opacity 0.4s; display:flex; align-items:center; gap:5px; }
  #save-indicator.show { opacity:1; }
  #save-indicator::before { content:'●'; font-size:0.5rem; }
  .backup-bar { display:flex; gap:8px; align-items:center; }
  .btn-backup { display:inline-flex; align-items:center; gap:6px; padding:6px 13px; border-radius:8px; font-family:'Geist',sans-serif; font-size:0.72rem; font-weight:700; cursor:pointer; border:1.5px solid var(--border); transition:all 0.18s; letter-spacing:0.03em; white-space:nowrap; }
  .btn-export { background:transparent; color:var(--accent3); border-color:rgba(45,125,82,0.3); }
  .btn-export:hover { background:rgba(45,125,82,0.08); border-color:var(--accent3); }
  .btn-import { background:transparent; color:var(--accent2); border-color:rgba(247,163,79,0.3); }
  .btn-import:hover { background:rgba(247,163,79,0.08); border-color:var(--accent2); }

  /* TAB BAR — two wrapping rows */
  .tab-bar { display:flex; gap:0; margin-bottom:0; }
  .tab-btn {
    display:flex; align-items:center; gap:8px;
    padding:11px 18px; cursor:pointer; user-select:none;
    font-family:'Geist',sans-serif; font-size:0.8rem; font-weight:700;
    letter-spacing:0.03em;
    border:none; background:transparent; color:var(--muted);
    border-bottom:2px solid transparent; transition:all 0.15s;
    position:relative; white-space:nowrap; flex-shrink:0;
  }
  .tab-btn:hover { color:var(--text); background:rgba(0,0,0,0.03); }
  .tab-btn.active { color:var(--text); border-bottom-color:var(--accent); background:rgba(204,120,92,0.04); font-weight:700; }
  .tab-btn.active.tab-action      { border-bottom-color:var(--accent2);  background:rgba(201,106,46,0.04); }
  .tab-btn.active.tab-assigned    { border-bottom-color:var(--accent3);  background:rgba(45,125,82,0.04); }
  .tab-btn.active.tab-assignedby  { border-bottom-color:#b48cff;         background:rgba(180,140,255,0.04); }
  .tab-btn.active.tab-payments    { border-bottom-color:#b48cff;         background:rgba(180,140,255,0.04); }
  .tab-btn.active.tab-alerts      { border-bottom-color:var(--danger);   background:rgba(192,57,43,0.04); }
  .tab-btn.active.tab-newproducts { border-bottom-color:#6aa8d4;         background:rgba(106,168,212,0.04); }
  .tab-btn.active.tab-multicavity { border-bottom-color:#e07aaa;         background:rgba(224,122,170,0.04); }
  .tab-btn.active.tab-calendar    { border-bottom-color:var(--accent2);  background:rgba(201,106,46,0.04); }
  .tab-btn.active.tab-reminders   { border-bottom-color:#d4a843;         background:rgba(212,168,67,0.04); }
  .tab-btn.active.tab-lifecycle   { border-bottom-color:#b48cff;         background:rgba(180,140,255,0.04); }
  .tab-btn.active.tab-firefighting{ border-bottom-color:#f7614f;         background:rgba(247,97,79,0.04); }
  .tab-btn.active.tab-kaizen      { border-bottom-color:#52c490;         background:rgba(82,196,144,0.04); }
  .tab-btn.active.tab-summary     { border-bottom-color:#6aa8d4;         background:rgba(106,168,212,0.04); }
  .tab-btn.active.tab-gmail      { border-bottom-color:#cc785c;         background:rgba(204,120,92,0.04); }
  .tab-btn.active.tab-vendors     { border-bottom-color:#6aa8d4;         background:rgba(106,168,212,0.04); }

  .tab-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
  .tab-count { font-family:'Geist Mono',monospace; font-size:0.62rem; background:var(--surface3); padding:1px 7px; border-radius:20px; }
  .tab-divider { width:1px; background:var(--border); align-self:stretch; margin:6px 0; flex-shrink:0; }

  /* MAIN PANEL */
  .panel { background:var(--surface); border:1px solid var(--border); border-radius:12px; overflow:hidden; animation:fadeIn 0.35s ease backwards; box-shadow:0 1px 4px rgba(26,25,21,0.06), 0 4px 16px rgba(26,25,21,0.04); }

  /* Two-row wrapping tab bar */
  .panel-tab-row-wrap {
    border-bottom:2px solid var(--border); background:var(--surface2);
  }
  .panel-tab-row {
    display:flex; flex-wrap:wrap; align-items:stretch;
  }
  /* Row divider — a full-width rule between the two rows */
  .tab-row-break {
    width:100%; height:1px; background:var(--border); flex-shrink:0;
    margin:0;
  }
  .tab-view { display:none; }
  .tab-view.active { display:block; }

  /* Persistent Gmail + vertical work nav */
  .dashboard-shell {
    display:grid;
    grid-template-columns:minmax(210px, 235px) 90px minmax(0, 1fr);
    align-items:start;
    gap:12px;
  }
  .gmail-sidebar-shell,
  .work-nav-shell,
  .dashboard-main {
    min-width:0;
    align-self:start;
  }
  .dashboard-main .panel { margin-top:0; min-width:0; display:block; width:100%; }
  .gmail-sidebar-shell, .work-nav-shell { background:var(--surface); border:1px solid var(--border); border-radius:12px; overflow:hidden; box-shadow:0 1px 4px rgba(26,25,21,0.06), 0 4px 16px rgba(26,25,21,0.04); }
  .gmail-sidebar-shell { position:sticky; top:18px; height:calc(100vh - 36px); min-height:640px; }
  #gmail-sidebar-inner { height:100%; overflow:hidden; }
  .work-nav-shell { position:sticky; top:18px; width:90px; padding:8px 0; max-height:calc(100vh - 36px); overflow:auto; }
  .work-nav-title { display:none; }
  .work-nav-list { display:flex; flex-direction:column; }
  .work-nav-list .tab-btn { width:100%; justify-content:flex-start; border-bottom:none; border-left:2px solid transparent; border-radius:0; padding:9px 7px; font-size:0.64rem; line-height:1.05; min-width:0; overflow:hidden; }
  .work-nav-list .tab-btn:hover { background:rgba(0,0,0,0.03); }
  .work-nav-list .tab-btn.active { border-left-color:var(--accent); border-bottom-color:transparent; background:rgba(204,120,92,0.05); }
  .work-nav-list .tab-btn.active.tab-action      { border-left-color:var(--accent2); background:rgba(201,106,46,0.05); }
  .work-nav-list .tab-btn.active.tab-assigned    { border-left-color:var(--accent3); background:rgba(45,125,82,0.05); }
  .work-nav-list .tab-btn.active.tab-assignedby  { border-left-color:#b48cff; background:rgba(180,140,255,0.05); }
  .work-nav-list .tab-btn.active.tab-alerts      { border-left-color:var(--danger); background:rgba(192,57,43,0.05); }
  .work-nav-list .tab-btn.active.tab-summary     { border-left-color:#6aa8d4; background:rgba(106,168,212,0.05); }
  .work-nav-list .tab-btn.active.tab-firefighting{ border-left-color:#f7614f; background:rgba(247,97,79,0.05); }
  .work-nav-list .tab-divider { width:auto; height:1px; margin:0 10px; }
  .work-nav-list .tab-dot { width:6px; height:6px; }
  .work-nav-list .tab-count { font-size:0.53rem; padding:2px 4px; }
  .work-nav-section { padding:7px 8px 4px; font-size:0.52rem; font-weight:800; color:var(--muted); letter-spacing:0.08em; text-transform:uppercase; }
  .planning-stack .tab-btn { font-size:0.61rem; padding-top:8px; padding-bottom:8px; }
  .planning-stack .tab-btn .tab-count { margin-left:6px; }
  .panel-tab-row-wrap { display:none !important; }
  .work-nav-list .tab-btn.active.tab-newproducts { border-left-color:#6aa8d4; background:rgba(106,168,212,0.05); }
  .work-nav-list .tab-btn.active.tab-multicavity { border-left-color:#e07aaa; background:rgba(224,122,170,0.05); }
  .work-nav-list .tab-btn.active.tab-lifecycle { border-left-color:#b48cff; background:rgba(180,140,255,0.05); }
  .work-nav-list .tab-btn.active.tab-kaizen { border-left-color:#52c490; background:rgba(82,196,144,0.05); }
  .work-nav-list .tab-btn.active.tab-calendar { border-left-color:#f7a34f; background:rgba(247,163,79,0.05); }
  .work-nav-list .tab-btn.active.tab-reminders { border-left-color:#d4a843; background:rgba(212,168,67,0.05); }
  .work-nav-list .tab-btn.active.tab-payments { border-left-color:#b48cff; background:rgba(180,140,255,0.05); }
  .work-nav-list .tab-count { margin-left:auto; }
  .tab-btn.tab-gmail { display:none !important; }
  #view-gmail { display:none !important; }
  .panel-primary-hidden { display:none !important; }
  @media (max-width: 1200px) {
    .dashboard-shell { display:block; }
    .gmail-sidebar-shell, .work-nav-shell { position:relative; top:auto; width:auto; }
    .gmail-sidebar-shell { height:70vh; min-height:520px; }
    .work-nav-shell { padding:0; }
    .work-nav-list { flex-direction:row; flex-wrap:wrap; }
    .work-nav-list .tab-btn { width:auto; border-left:none; border-bottom:2px solid transparent; }
    .work-nav-list .tab-btn.active { border-left:none; border-bottom-color:var(--accent); }
  }


  /* ── FIREFIGHT ROW BUTTON ── */
  .ff-row-btn {
    display:inline-flex; align-items:center; justify-content:center;
    width:22px; height:22px; border-radius:5px; border:none; position:relative;
    background:transparent; cursor:pointer; font-size:0.78rem;
    transition:all 0.15s; flex-shrink:0; opacity:0; line-height:1;
  }
  tr:hover .ff-row-btn { opacity:0.6; }
  .ff-row-btn:hover { background:rgba(247,97,79,0.15); opacity:1 !important; }
  .ff-row-btn.ff-row-active { opacity:1 !important; }
  .ff-row-btn.ff-row-active .ff-row-dot { display:block; }
  .ff-row-dot { display:none; position:absolute; width:6px; height:6px; background:var(--danger); border-radius:50%; top:1px; right:1px; }

  /* ── FIREFIGHTING TAB ── */
  .tab-btn.active.tab-firefighting { border-bottom-color:#f7614f; }
  .ff-item {
    display:flex; align-items:flex-start; gap:12px;
    padding:14px 20px; border-bottom:1px solid var(--border);
    transition:background 0.15s;
  }
  .ff-item:last-child { border-bottom:none; }
  .ff-item:hover { background:rgba(0,0,0,0.018); }
  .ff-item.ff-done { background:var(--surface2); }
  .ff-check {
    width:20px; height:20px; border-radius:5px; border:2px solid var(--border);
    cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:all 0.18s; flex-shrink:0; margin-top:2px;
  }
  .ff-item.ff-done .ff-check { background:var(--accent3); border-color:var(--accent3); }
  .ff-item.ff-done .ff-check::after { content:'✓'; font-size:0.7rem; color:#fff; font-weight:800; }
  .ff-check:hover:not(.checked) { border-color:var(--accent3); background:rgba(45,125,82,0.1); }
  .ff-content { flex:1; min-width:0; }
  .ff-title { font-size:0.88rem; font-weight:700; line-height:1.35; color:var(--text); }
  .ff-item.ff-done .ff-title { text-decoration:line-through; color:var(--muted); font-weight:500; }
  .ff-notes { font-size:0.74rem; color:var(--muted); margin-top:3px; line-height:1.5; }
  .ff-meta { display:flex; align-items:center; gap:8px; margin-top:6px; flex-wrap:wrap; }
  .ff-pri-badge {
    display:inline-flex; align-items:center; gap:3px;
    font-size:0.62rem; font-weight:800; letter-spacing:0.03em;
    padding:2px 8px; border-radius:20px;
  }
  .ff-pri-critical { background:rgba(247,97,79,0.12); color:var(--danger); border:1px solid rgba(247,97,79,0.25); }
  .ff-pri-high     { background:rgba(247,163,79,0.12); color:var(--accent2); border:1px solid rgba(247,163,79,0.25); }
  .ff-pri-medium   { background:rgba(212,168,67,0.12); color:#a07a00; border:1px solid rgba(212,168,67,0.25); }
  .ff-time { font-family:'Geist Mono',monospace; font-size:0.6rem; color:var(--muted); }
  .ff-del-btn {
    opacity:0; background:transparent; border:none; cursor:pointer;
    color:var(--muted); font-size:0.75rem; padding:3px 5px; border-radius:5px;
    transition:all 0.13s; flex-shrink:0; margin-top:2px;
  }
  .ff-item:hover .ff-del-btn { opacity:1; }
  .ff-del-btn:hover { background:rgba(247,97,79,0.12); color:var(--danger); }
  .ff-empty { padding:48px 24px; text-align:center; color:var(--muted); font-size:0.84rem; line-height:1.8; }
  .ff-summary-bar {
    display:flex; gap:10px; padding:12px 20px 0; flex-wrap:wrap; align-items:center;
    border-bottom:1px solid var(--border); background:var(--surface2);
  }
  .ff-stat {
    display:flex; align-items:center; gap:7px;
    background:var(--surface); border:1px solid var(--border);
    border-radius:10px; padding:8px 14px;
  }
  .ff-stat-num { font-family:'Geist Mono',monospace; font-size:1.2rem; font-weight:800; line-height:1; }
  .ff-stat-label { font-size:0.68rem; color:var(--muted); font-weight:600; line-height:1.3; }
  .ff-stat.critical { background:rgba(247,97,79,0.07); border-color:rgba(247,97,79,0.2); }
  .ff-stat.critical .ff-stat-num { color:var(--danger); }
  .ff-stat.done-stat { background:rgba(45,125,82,0.07); border-color:rgba(45,125,82,0.2); }
  .ff-stat.done-stat .ff-stat-num { color:var(--accent3); }
  .tab-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
  .tab-count { font-family:'Geist Mono',monospace; font-size:0.58rem; background:var(--surface2); padding:1px 5px; border-radius:20px; }
  .tab-divider { width:1px; background:var(--border); align-self:stretch; margin:6px 0; }


  /* CUSTOMER BLOCKS */
  .customer-block { border-bottom:1px solid var(--border); }
  .customer-block:last-child { border-bottom:none; }
  .cust-header { display:flex; align-items:center; gap:10px; padding:9px 20px; cursor:pointer; user-select:none; transition:background 0.15s; }
  .cust-header:hover { background:rgba(0,0,0,0.02); }
  .customer-avatar { width:26px; height:26px; border-radius:7px; display:flex; align-items:center; justify-content:center; font-size:0.6rem; font-weight:700; flex-shrink:0; }
  .cust-label { font-size:0.9rem; font-weight:700; flex:1; }
  .mini-count { font-family:'Geist Mono',monospace; font-size:0.65rem; color:var(--muted); background:var(--surface2); padding:2px 7px; border-radius:20px; margin-right:4px; }
  .chevron { font-size:0.65rem; color:var(--muted); transition:transform 0.2s; }
  .customer-block.open .chevron { transform:rotate(90deg); }
  .task-table-wrap { display:none; padding:0 16px 16px; overflow-x:auto; }
  .customer-block.open .task-table-wrap { display:block; }

  /* ACTION GROUPS */
  .action-group { border-bottom:1px solid var(--border); }
  .action-group:last-child { border-bottom:none; }
  .ag-header { display:flex; align-items:center; gap:10px; padding:9px 20px; cursor:pointer; user-select:none; transition:background 0.15s; }
  .ag-header:hover { background:rgba(0,0,0,0.02); }
  .ag-icon { width:26px; height:26px; border-radius:7px; display:flex; align-items:center; justify-content:center; font-size:0.65rem; font-weight:800; flex-shrink:0; }
  .ag-label { font-size:0.9rem; font-weight:700; flex:1; }
  .action-group.open .chevron { transform:rotate(90deg); }
  .ag-table-wrap { display:none; padding:0 16px 16px; overflow-x:auto; }
  .action-group.open .ag-table-wrap { display:block; }

  /* TABLES */
  table { width:100%; border-collapse:collapse; font-size:0.82rem; min-width:680px; }
  thead tr { border-bottom:1px solid var(--border); }
  th { font-size:0.65rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; color:var(--muted); padding:7px 12px; text-align:left; white-space:nowrap; }
  td { padding:6px 12px; vertical-align:middle; border-bottom:1px solid rgba(37,42,56,0.5); }
  tr:last-child td { border-bottom:none; }
  tr:hover td { background:rgba(0,0,0,0.02); }
  .sl-num { font-family:'Geist Mono',monospace; font-size:0.68rem; color:var(--muted); }
  .part-ref { font-family:'Geist Mono',monospace; font-size:0.74rem; color:var(--accent); font-weight:500; }
  .task-title-cell { font-weight:500; line-height:1.3; font-size:0.82rem; }
  .cust-tag { display:inline-flex; align-items:center; gap:3px; font-size:0.63rem; font-weight:700; padding:1px 6px; border-radius:20px; background:rgba(204,120,92,0.1); color:var(--accent); white-space:nowrap; }
  .person-avatar { width:18px; height:18px; border-radius:4px; display:inline-flex; align-items:center; justify-content:center; font-size:0.52rem; font-weight:700; flex-shrink:0; }
  .assigned-tag { display:inline-flex; align-items:center; gap:4px; font-size:0.74rem; font-weight:500; color:var(--accent3); }
  .assigned-empty { color:var(--muted); font-size:0.68rem; font-style:italic; }

  /* BADGES */
  .action-badge { display:inline-block; font-size:0.58rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; padding:2px 7px; border-radius:20px; }
  .ab-Implementation { background:rgba(204,120,92,0.15); color:var(--accent); }
  .ab-Review         { background:rgba(247,163,79,0.15); color:var(--accent2); }
  .ab-Testing        { background:rgba(247,97,79,0.15); color:var(--danger); }
  .ab-Design         { background:rgba(45,125,82,0.15); color:var(--accent3); }
  .ab-Approval       { background:rgba(180,140,255,0.15); color:#b48cff; }
  .ab-Rework         { background:rgba(247,97,79,0.12); color:var(--danger); }
  .ab-Release        { background:rgba(45,125,82,0.2); color:var(--accent3); }
  .ab-NewProduct     { background:rgba(247,163,79,0.18); color:var(--accent2); }
  .ab-MultiCavity    { background:rgba(224,122,170,0.16); color:#c0407a; }
  .ab-other          { background:rgba(107,114,128,0.2); color:var(--muted); }
  .status-badge { display:inline-flex; align-items:center; gap:4px; font-size:0.68rem; font-weight:600; }
  .status-dot { width:5px; height:5px; border-radius:50%; flex-shrink:0; }
  .s-inprogress .status-dot { background:var(--accent); }   .s-inprogress { color:var(--accent); }
  .s-pending    .status-dot { background:var(--muted); }    .s-pending    { color:var(--muted); }
  .s-done       .status-dot { background:var(--accent3); }  .s-done       { color:var(--accent3); }
  .s-blocked    .status-dot { background:var(--danger); }   .s-blocked    { color:var(--danger); }
  .s-review     .status-dot { background:var(--accent2); }  .s-review     { color:var(--accent2); }
  .due-date { font-family:'Geist Mono',monospace; font-size:0.68rem; color:var(--muted); }
  .due-date.overdue { color:var(--danger); font-weight:700; }
  .due-date.soon    { color:var(--accent2); font-weight:600; }
  tr.row-done .task-title-cell { text-decoration:line-through; color:var(--muted); }
  tr.row-done .part-ref { opacity:0.5; }
  .task-check { width:13px; height:13px; border-radius:3px; border:1.5px solid var(--border); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all 0.15s; flex-shrink:0; }
  tr.row-done .task-check { background:var(--accent3); border-color:var(--accent3); }
  tr.row-done .task-check::after { content:'✓'; font-size:7px; color:#ffffff; font-weight:700; }
  .add-btn { display:inline-flex; align-items:center; gap:7px; padding:7px 12px; background:transparent; border:1.5px dashed var(--border); border-radius:8px; color:var(--muted); font-family:'Geist',sans-serif; font-size:0.75rem; font-weight:600; cursor:pointer; transition:all 0.2s; }
  .add-btn:hover { border-color:var(--accent); color:var(--accent); background:rgba(204,120,92,0.05); }
  /* Navigation links — clickable cross-tab badges */
  .nav-link { cursor:pointer; transition:opacity 0.15s, box-shadow 0.15s; position:relative; display:inline-flex !important; align-items:center; }
  .nav-link:hover { opacity:0.75; box-shadow:0 0 0 2px rgba(204,120,92,0.35); border-radius:20px; }
  .nav-link[data-navtype="assigned"]:hover,
  .nav-link[data-navtype="assignedby"]:hover { box-shadow:0 0 0 2px rgba(45,125,82,0.35); }
  .nav-link[data-navtype="customer"]:hover { box-shadow:0 0 0 2px rgba(204,120,92,0.35); }
  .nav-link[data-navtype="action"]:hover { box-shadow:0 0 0 2px rgba(247,163,79,0.45); }
  /* small arrow indicator on hover */
  .nav-link:hover::after { content:' ↗'; font-size:0.6em; opacity:0.55; margin-left:2px; }
  .panel-footer { padding:12px 20px; border-top:1px solid var(--border); }
  .empty-msg { padding:32px 16px; text-align:center; color:var(--muted); font-size:0.8rem; line-height:1.7; }
  @keyframes navHighlight {
    0%   { background: rgba(204,120,92,0.18); }
    100% { background: transparent; }
  }
  .nav-highlight { animation: navHighlight 1.4s ease-out forwards; }

  /* MODAL */
  .modal-overlay { display:none; position:fixed; inset:0; background:rgba(30,33,48,0.5); backdrop-filter:blur(4px); z-index:1200; align-items:center; justify-content:center; }
  .modal-overlay.open { display:flex; }
  .modal { background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:28px; width:460px; max-width:92vw; max-height:90vh; overflow-y:auto; }
  .modal h3 { font-size:1rem; font-weight:700; margin-bottom:20px; }
  .field-wrap { margin-bottom:14px; }
  .field-label { font-size:0.65rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; color:var(--muted); margin-bottom:5px; }
  .modal input, .modal select { width:100%; background:var(--surface2); border:1px solid var(--border); border-radius:10px; padding:9px 13px; color:var(--text); font-family:'Geist',sans-serif; font-size:0.85rem; outline:none; transition:border-color 0.15s; appearance:none; -webkit-appearance:none; }
  .modal input[type="date"] { color-scheme:light; }
  .modal input:focus, .modal select:focus { border-color:var(--accent); }
  .modal select option { background:var(--surface2); color:var(--text); }
  .combo-wrap { position:relative; }
  .combo-dropdown { display:none; position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--surface); border:1px solid var(--border); border-radius:10px; z-index:300; max-height:180px; overflow-y:auto; }
  .combo-dropdown.show { display:block; }
  .combo-option { padding:9px 13px; cursor:pointer; font-size:0.82rem; transition:background 0.1s; }
  .combo-option:hover { background:var(--surface3); }
  .combo-option.new-entry { color:var(--accent3); font-style:italic; }
  .modal-actions { display:flex; gap:10px; margin-top:6px; }
  .btn-primary { flex:1; padding:10px; background:var(--accent); color:#fff; border:none; border-radius:10px; font-family:'Geist',sans-serif; font-weight:700; font-size:0.85rem; cursor:pointer; transition:opacity 0.15s; }
  .btn-primary:hover { opacity:0.85; }
  .btn-secondary { padding:10px 16px; background:var(--surface2); color:var(--muted); border:none; border-radius:10px; font-family:'Geist',sans-serif; font-weight:600; font-size:0.85rem; cursor:pointer; }
  #confirm-modal .modal { max-width:380px; }
  #confirm-modal p { font-size:0.85rem; color:var(--muted); line-height:1.6; margin-bottom:20px; }
  #confirm-modal strong { color:var(--text); }
  .btn-danger { flex:1; padding:10px; background:var(--danger); color:#fff; border:none; border-radius:10px; font-family:'Geist',sans-serif; font-weight:700; font-size:0.85rem; cursor:pointer; transition:opacity 0.15s; }
  .btn-danger:hover { opacity:0.85; }

  @keyframes fadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

  /* INLINE EDITING */
  .editable-cell { cursor:pointer; position:relative; border-radius:6px; transition:background 0.15s; }
  .editable-cell:hover { background:rgba(204,120,92,0.08); }
  .editable-cell:hover::after { content:'✎'; position:absolute; right:4px; top:50%; transform:translateY(-50%); font-size:0.6rem; color:var(--accent); opacity:0.7; }
  .inline-edit-wrap { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  .inline-input { background:var(--surface2); border:1.5px solid var(--accent); border-radius:8px; padding:5px 9px; color:var(--text); font-family:'Geist',sans-serif; font-size:0.82rem; outline:none; min-width:110px; }
  .inline-select { background:var(--surface2); border:1.5px solid var(--accent); border-radius:8px; padding:5px 9px; color:var(--text); font-family:'Geist',sans-serif; font-size:0.82rem; outline:none; appearance:none; -webkit-appearance:none; cursor:pointer; min-width:110px; }
  .inline-date { background:var(--surface2); border:1.5px solid var(--accent); border-radius:8px; padding:5px 9px; color:var(--text); font-family:'Geist Mono',monospace; font-size:0.75rem; outline:none; color-scheme:light; min-width:130px; }
  .inline-save-btn { background:var(--accent); color:#fff; border:none; border-radius:6px; padding:4px 9px; font-family:'Geist',sans-serif; font-weight:700; font-size:0.7rem; cursor:pointer; transition:opacity 0.15s; white-space:nowrap; }
  .inline-save-btn:hover { opacity:0.82; }
  .inline-cancel-btn { background:var(--surface3); color:var(--muted); border:none; border-radius:6px; padding:4px 8px; font-family:'Geist',sans-serif; font-weight:600; font-size:0.7rem; cursor:pointer; }
  .inline-combo-wrap { position:relative; }
  .inline-combo-drop { display:none; position:absolute; top:calc(100% + 3px); left:0; background:var(--surface); border:1px solid var(--border); border-radius:8px; z-index:400; max-height:160px; overflow-y:auto; min-width:150px; }
  .inline-combo-drop.show { display:block; }
  .inline-combo-opt { padding:8px 12px; cursor:pointer; font-size:0.8rem; transition:background 0.1s; }
  .inline-combo-opt:hover { background:var(--surface3); }
  .inline-combo-opt.new-entry { color:var(--accent3); font-style:italic; }

  /* DELETE BUTTON */
  .delete-btn {
    display:inline-flex; align-items:center; justify-content:center;
    width:22px; height:22px; border-radius:5px; border:none;
    background:transparent; color:var(--muted); cursor:pointer;
    font-size:0.75rem; transition:all 0.15s; flex-shrink:0; opacity:0;
  }
  tr:hover .delete-btn { opacity:1; }
  .delete-btn:hover { background:rgba(247,97,79,0.15); color:var(--danger); }

  /* DUPLICATE BUTTON */
  .dup-btn {
    display:inline-flex; align-items:center; justify-content:center;
    width:22px; height:22px; border-radius:5px; border:none;
    background:transparent; color:var(--muted); cursor:pointer;
    font-size:0.72rem; transition:all 0.15s; flex-shrink:0; opacity:0;
  }
  tr:hover .dup-btn { opacity:1; }
  .dup-btn:hover { background:rgba(204,120,92,0.15); color:var(--accent); }
  .dup-btn:active { transform:scale(0.88); }
  .row-actions-td { width:58px; padding:6px 4px !important; }
  .row-actions-td-inner { display:flex; align-items:center; gap:2px; }

  /* TASK TITLE inline edit */
  .title-editable { cursor:pointer; border-radius:4px; padding:1px 3px; transition:background 0.15s; display:inline-block; }
  .title-editable:hover { background:rgba(204,120,92,0.08); }
  .inline-title-input { background:var(--surface2); border:1.5px solid var(--accent); border-radius:8px; padding:5px 9px; color:var(--text); font-family:'Geist',sans-serif; font-size:0.82rem; font-weight:600; outline:none; width:100%; min-width:160px; }

  /* DELETE CONFIRM */
  .del-confirm { display:inline-flex; align-items:center; gap:6px; background:rgba(247,97,79,0.1); border:1px solid rgba(247,97,79,0.25); border-radius:8px; padding:4px 8px; }
  .del-confirm span { font-size:0.72rem; color:var(--danger); font-weight:600; white-space:nowrap; }
  .del-yes { background:var(--danger); color:#fff; border:none; border-radius:5px; padding:3px 8px; font-size:0.68rem; font-weight:700; cursor:pointer; font-family:'Geist',sans-serif; }
  .del-no  { background:var(--surface3); color:var(--muted); border:none; border-radius:5px; padding:3px 7px; font-size:0.68rem; font-weight:600; cursor:pointer; font-family:'Geist',sans-serif; }

  /* DELETE CUSTOMER */
  .del-cust-btn { display:none; align-items:center; justify-content:center; width:24px; height:24px; border-radius:6px; border:none; background:transparent; color:var(--muted); cursor:pointer; font-size:0.8rem; transition:all 0.15s; margin-right:4px; }
  .cust-header:hover .del-cust-btn { display:inline-flex; }

  /* ── INLINE RENAME ── */
  .rename-input {
    font-family:'Geist',sans-serif; font-size:0.92rem; font-weight:700;
    color:var(--text); background:var(--surface);
    border:2px solid var(--accent); border-radius:8px;
    padding:2px 10px; outline:none; min-width:120px; max-width:220px;
    box-shadow:0 0 0 3px rgba(204,120,92,0.15);
  }
  .ag-rename-input {
    font-family:'Geist',sans-serif; font-size:0.88rem; font-weight:700;
    color:var(--text); background:var(--surface);
    border:2px solid var(--accent); border-radius:8px;
    padding:2px 10px; outline:none; min-width:110px; max-width:200px;
    box-shadow:0 0 0 3px rgba(204,120,92,0.15);
  }
  .rename-hint {
    font-size:0.65rem; color:var(--muted); margin-left:4px; flex-shrink:0;
    opacity:0; transition:opacity 0.15s; white-space:nowrap;
    cursor:pointer; padding:2px 6px; border-radius:5px;
    border:1px solid transparent;
  }
  .cust-header:hover .rename-hint,
  .ag-header:hover .rename-hint { opacity:1; }
  .rename-hint:hover { color:var(--accent); border-color:rgba(204,120,92,0.3); background:rgba(204,120,92,0.06); opacity:1; }
  .del-cust-btn:hover { background:rgba(247,97,79,0.15); color:var(--danger); }

  /* ALERTS TAB */
  .alerts-summary { display:flex; gap:12px; padding:16px 20px 0; flex-wrap:wrap; }
  .alert-stat { display:flex; align-items:center; gap:8px; background:rgba(217,69,53,0.07); border:1px solid rgba(217,69,53,0.18); border-radius:10px; padding:10px 16px; }
  .alert-stat-num { font-family:'Geist Mono',monospace; font-size:1.4rem; font-weight:700; color:var(--danger); line-height:1; }
  .alert-stat-label { font-size:0.72rem; color:var(--muted); font-weight:600; line-height:1.3; }
  .alert-stat.warn { background:rgba(212,129,58,0.07); border-color:rgba(212,129,58,0.2); }
  .alert-stat.warn .alert-stat-num { color:var(--accent2); }
  .alerts-section-title { font-size:0.65rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--muted); padding:18px 20px 6px; }
  tr.row-overdue td { background:rgba(217,69,53,0.04); }
  tr.row-overdue:hover td { background:rgba(217,69,53,0.08); }
  tr.row-overdue .task-title-cell { color:var(--danger); font-weight:700; }
  .overdue-badge { display:inline-flex; align-items:center; gap:4px; font-size:0.65rem; font-weight:700; background:rgba(217,69,53,0.12); color:var(--danger); border:1px solid rgba(217,69,53,0.25); border-radius:20px; padding:2px 8px; white-space:nowrap; }
  .days-overdue { font-family:'Geist Mono',monospace; font-size:0.72rem; color:var(--danger); font-weight:700; }
  .tab-alerts-pulse { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--danger); animation:pulse-dot 1.4s ease-in-out infinite; flex-shrink:0; }
  @keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.4;transform:scale(0.7)} }

  /* NEW PRODUCTS TAB */

  /* PRODUCT LIST (table-style rows, not card grid) */
  .np-list { padding:0; }
  .np-row {
    border-bottom:1px solid var(--border); transition:background 0.15s;
  }
  .np-row:last-child { border-bottom:none; }
  .np-row-header {
    display:flex; align-items:center; gap:12px; padding:12px 20px;
    cursor:pointer; user-select:none;
  }
  .np-row-header:hover { background:rgba(0,0,0,0.02); }
  .np-avatar {
    width:30px; height:30px; border-radius:8px; flex-shrink:0;
    background:linear-gradient(135deg,rgba(106,168,212,0.25),rgba(180,140,255,0.25));
    display:flex; align-items:center; justify-content:center;
    font-size:0.65rem; font-weight:800; color:#4a7fa0;
  }
  .np-row-info { min-width:180px; max-width:240px; flex-shrink:0; }
  .np-row-title { font-size:0.72rem; font-weight:500; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:230px; display:block; margin-top:2px; }
  .np-row-ref { font-family:'Geist Mono',monospace; font-size:0.95rem; font-weight:700; color:var(--accent); display:block; }
  .np-row-ref-input {
    font-family:'Geist Mono',monospace; font-size:0.95rem; font-weight:700; color:var(--accent);
    background:rgba(204,120,92,0.07); border:1.5px solid var(--accent);
    border-radius:6px; padding:2px 7px; outline:none; width:160px; display:block;
    transition:background 0.15s, box-shadow 0.15s;
  }
  .np-row-ref-input:focus { background:rgba(204,120,92,0.13); box-shadow:0 0 0 2px rgba(204,120,92,0.18); }
  .np-row-ref-placeholder { font-family:'Geist Mono',monospace; font-size:0.82rem; font-weight:500; color:var(--muted); display:block; cursor:text; font-style:italic; transition:color 0.15s; }
  .np-row-ref-placeholder:hover { color:var(--accent); }
  .np-row-cust { font-size:0.68rem; color:var(--muted); display:block; margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:230px; }
  /* Search bar */
  .np-search-wrap { padding:12px 20px 8px; display:flex; align-items:center; gap:10px; }
  .np-search-wrap-inner { position:relative; display:flex; align-items:center; flex:1; max-width:340px; }
  .np-search-input {
    width:100%; font-family:'Geist',sans-serif; font-size:0.82rem;
    background:var(--surface2); border:1.5px solid var(--border); border-radius:9px;
    padding:8px 30px 8px 34px; color:var(--text); outline:none;
    transition:border-color 0.18s, box-shadow 0.18s;
  }
  .np-search-input:focus { border-color:var(--accent); box-shadow:0 0 0 2px rgba(204,120,92,0.12); }
  .np-search-icon { position:absolute; left:11px; font-size:0.82rem; color:var(--muted); pointer-events:none; }
  .np-search-clear { position:absolute; right:10px; background:none; border:none; cursor:pointer; color:var(--muted); font-size:0.85rem; padding:0; display:none; line-height:1; }
  .np-search-clear.show { display:block; }
  .np-no-results { padding:32px 20px; text-align:center; color:var(--muted); font-size:0.82rem; }

  /* HORIZONTAL PROGRESS */
  .np-progress-inline { flex:1; display:flex; align-items:center; gap:10px; min-width:0; }
  .np-stage-label { font-size:0.7rem; font-weight:700; color:#6aa8d4; letter-spacing:0.03em; white-space:nowrap; min-width:120px; }
  .np-progress-track {
    flex:1; height:7px; background:var(--surface3); border-radius:99px; overflow:hidden;
    border:1px solid var(--border);
  }
  .np-progress-fill {
    height:100%; border-radius:99px;
    background:linear-gradient(90deg, #cc785c, #e8a87c, #b48cff);
    transition:width 0.6s cubic-bezier(0.34,1.56,0.64,1);
  }
  .np-progress-fill.complete { background:linear-gradient(90deg,#52c490,#2d7d52); }
  .np-pct { font-family:'Geist Mono',monospace; font-size:0.72rem; font-weight:700; color:var(--text); white-space:nowrap; min-width:34px; text-align:right; }

  .np-row-chevron { font-size:0.6rem; color:var(--muted); transition:transform 0.2s; flex-shrink:0; }
  .np-row.open .np-row-chevron { transform:rotate(90deg); }

  /* STAGE STEPS (expanded) */
  .np-stages-wrap { display:none; padding:8px 20px 14px 62px; }
  .np-row.open .np-stages-wrap { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:4px 8px; }
  .np-stage-step {
    display:flex; align-items:center; gap:8px; padding:6px 10px;
    border-radius:8px; cursor:pointer; transition:background 0.13s;
  }
  .np-stage-step:hover { background:rgba(106,168,212,0.09); }
  .np-stage-indicator {
    width:19px; height:19px; border-radius:50%; flex-shrink:0;
    border:2px solid var(--border); display:flex; align-items:center;
    justify-content:center; font-size:0.58rem; transition:all 0.2s;
    background:var(--surface);
  }
  .np-stage-indicator.done-stage { background:#2d7d52; border-color:#2d7d52; color:#fff; font-weight:700; }
  .np-stage-indicator.active-stage { background:var(--accent); border-color:var(--accent); color:#fff; font-weight:700; }
  .np-stage-name { font-size:0.78rem; font-weight:600; }
  .np-stage-name.done-stage { text-decoration:line-through; color:var(--muted); font-weight:400; }
  .np-stage-name.active-stage { color:#6aa8d4; }

  /* ── MULTI CAVITY overrides ── */
  .mc-stage-label { font-size:0.7rem; font-weight:700; color:#e07aaa; letter-spacing:0.03em; white-space:nowrap; min-width:120px; }
  .mc-stage-name.active-stage { color:#e07aaa; }
  .mc-stage-step:hover { background:rgba(224,122,170,0.09); }
  .mc-stage-indicator.active-stage { background:#e07aaa; border-color:#e07aaa; color:#fff; font-weight:700; }
  .mc-tab-count { background:rgba(224,122,170,0.12); color:#e07aaa; }
  .mc-footer { padding:14px 20px 18px; border-top:1px solid var(--border); text-align:center; }
  .mc-empty-msg { padding:48px 24px; text-align:center; color:var(--muted); font-size:0.85rem; line-height:1.7; }

  .np-empty-msg { padding:40px 20px; text-align:center; color:var(--muted); font-size:0.8rem; line-height:1.7; }
  .np-footer { padding:12px 20px; border-top:1px solid var(--border); }

  .np-summary-bar { display:flex; gap:12px; padding:16px 20px 4px; flex-wrap:wrap; }

  /* ── NP / MC customer groups ── */
  .np-cust-group { border-bottom:1px solid var(--border); }
  .np-cust-group:last-child { border-bottom:none; }
  .np-cust-group-header {
    display:flex; align-items:center; gap:12px;
    padding:12px 20px; cursor:pointer; user-select:none;
    background:var(--surface2); transition:background 0.13s;
  }
  .np-cust-group-header:hover { background:rgba(0,0,0,0.03); }
  .np-cust-group-avatar {
    width:30px; height:30px; border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    font-size:0.68rem; font-weight:800; flex-shrink:0;
  }
  .np-cust-group-name { font-size:0.85rem; font-weight:700; color:var(--text); flex:1; }
  .np-name-link {
    cursor:pointer; color:var(--text);
    border-bottom:1.5px solid transparent; transition:border-color 0.15s, color 0.15s;
    padding-bottom:1px;
  }
  .np-name-link:hover { color:var(--accent); border-bottom-color:var(--accent); }
  .np-cust-group-meta { font-size:0.65rem; color:var(--muted); font-weight:600; white-space:nowrap; }
  .np-cust-group-chevron { font-size:0.6rem; color:var(--muted); transition:transform 0.2s; flex-shrink:0; }
  .np-cust-group.open .np-cust-group-chevron { transform:rotate(90deg); }
  .np-cust-group-body { display:none; }
  .np-cust-group.open .np-cust-group-body { display:block; }
  .np-stat { display:flex; align-items:center; gap:8px; background:rgba(106,168,212,0.07); border:1px solid rgba(106,168,212,0.2); border-radius:10px; padding:10px 16px; }
  .np-stat-num { font-family:'Geist Mono',monospace; font-size:1.4rem; font-weight:700; color:#6aa8d4; line-height:1; }
  .np-stat-label { font-size:0.72rem; color:var(--muted); font-weight:600; line-height:1.3; }
  .np-stat.complete { background:rgba(45,125,82,0.07); border-color:rgba(45,125,82,0.2); }
  .np-stat.complete .np-stat-num { color:var(--accent3); }

  .np-source-note { font-size:0.68rem; color:var(--muted); font-style:italic; padding:8px 20px 12px; }

  /* ── CALENDAR TAB ── */

  /* ── CALENDAR FILTER BAR ── */
  .cal-filter-bar {
    display:flex; align-items:center; gap:8px; padding:10px 20px 12px;
    border-bottom:1px solid var(--border); flex-wrap:wrap;
  }
  .cal-filter-label {
    font-size:0.65rem; font-weight:700; letter-spacing:0.04em;
    text-transform:uppercase; color:var(--muted); white-space:nowrap;
  }
  .cal-filter-select {
    background:var(--surface2); border:1.5px solid var(--border);
    border-radius:8px; padding:5px 10px; color:var(--text);
    font-family:'Geist',sans-serif; font-size:0.78rem; font-weight:600;
    outline:none; cursor:pointer; transition:border-color 0.15s;
    appearance:none; -webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238c8984'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 8px center;
    padding-right:24px; max-width:180px;
  }
  .cal-filter-select:focus { border-color:var(--accent); }
  .cal-filter-select.active { border-color:var(--accent); background-color:rgba(204,120,92,0.07); color:var(--accent); }
  .cal-filter-divider { width:1px; height:18px; background:var(--border); flex-shrink:0; }
  .cal-filter-clear {
    font-size:0.7rem; font-weight:700; color:var(--muted); background:none;
    border:1.5px solid var(--border); border-radius:7px; padding:4px 10px;
    cursor:pointer; transition:all 0.15s; white-space:nowrap;
  }
  .cal-filter-clear:hover { border-color:var(--danger); color:var(--danger); }
  .cal-rem-toggle {
    display:inline-flex; align-items:center; gap:6px;
    font-size:0.72rem; font-weight:700; color:var(--muted);
    background:var(--surface2); border:1.5px solid var(--border);
    border-radius:8px; padding:5px 11px; cursor:pointer; transition:all 0.15s;
    white-space:nowrap; margin-left:auto;
  }
  .cal-rem-toggle:hover { border-color:#d4a843; color:#d4a843; }
  .cal-rem-toggle.on { background:rgba(212,168,67,0.1); border-color:#d4a843; color:#d4a843; }
  .cal-rem-toggle-dot { width:7px; height:7px; border-radius:50%; background:#d4a843; flex-shrink:0; }

  .cal-toolbar {
    display:flex; align-items:center; gap:10px; padding:16px 20px 12px;
    border-bottom:1px solid var(--border);
  }
  .cal-month-label {
    font-size:1rem; font-weight:800; letter-spacing:-0.02em; flex:1; text-align:center;
  }
  .cal-nav-btn {
    width:32px; height:32px; border-radius:8px; border:1.5px solid var(--border);
    background:var(--surface2); color:var(--text); font-size:1.2rem; cursor:pointer;
    display:flex; align-items:center; justify-content:center; transition:all 0.15s;
    line-height:1;
  }
  .cal-nav-btn:hover { border-color:var(--accent); color:var(--accent); background:rgba(204,120,92,0.06); }
  .cal-today-btn {
    padding:5px 14px; border-radius:8px; border:1.5px solid var(--border);
    background:var(--surface2); color:var(--muted); font-family:'Geist',sans-serif;
    font-size:0.72rem; font-weight:700; cursor:pointer; letter-spacing:0.04em;
    transition:all 0.15s;
  }
  .cal-today-btn:hover { border-color:var(--accent); color:var(--accent); }

  .cal-grid {
    display:grid; grid-template-columns:repeat(7,1fr);
    padding:0 12px 12px;
  }
  .cal-dow {
    text-align:center; font-size:0.62rem; font-weight:700; letter-spacing:0.04em;
    text-transform:uppercase; color:var(--muted); padding:10px 4px 6px;
  }
  .cal-cell {
    min-height:96px; border-radius:10px; padding:6px 5px 5px;
    margin:2px; cursor:default; transition:background 0.13s;
    position:relative; display:flex; flex-direction:column; gap:3px;
  }
  .cal-cell.has-tasks { cursor:default; }
  .cal-cell:hover { background:rgba(0,0,0,0.025); }
  .cal-add-btn {
    position:absolute; top:4px; right:4px;
    width:18px; height:18px; border-radius:5px;
    background:var(--accent); color:#fff;
    font-size:0.9rem; line-height:1; font-weight:400;
    border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    opacity:0; transition:opacity 0.15s; z-index:2; padding:0;
  }
  .cal-cell:not(.other-month):hover .cal-add-btn { opacity:1; }
  .cal-day-num {
    font-family:'Geist Mono',monospace; font-size:0.72rem; font-weight:600;
    color:var(--muted); line-height:1; padding:0 2px; flex-shrink:0;
  }
  .cal-cell.today .cal-day-num {
    background:var(--accent); color:#fff; border-radius:50%;
    width:20px; height:20px; display:flex; align-items:center; justify-content:center;
    font-size:0.65rem;
  }
  .cal-cell.other-month { opacity:0.35; }
  .cal-cell.today { background:rgba(204,120,92,0.04); }

  .cal-task-chip {
    display:flex; align-items:flex-start; gap:5px;
    font-size:0.65rem; font-weight:600; padding:4px 6px;
    border-radius:6px; line-height:1.35; cursor:pointer;
    transition:opacity 0.13s; overflow:hidden;
  }
  .cal-task-chip:hover { opacity:0.8; }
  .cal-chip-dot { width:5px; height:5px; border-radius:50%; flex-shrink:0; margin-top:3px; }
  .cal-chip-body { display:flex; flex-direction:column; gap:1px; min-width:0; }
  .cal-chip-customer {
    font-size:0.58rem; font-weight:700; letter-spacing:0.03em;
    text-transform:uppercase; opacity:0.7;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .cal-chip-ref {
    font-family:'Geist Mono',monospace; font-size:0.6rem; font-weight:700;
    opacity:0.85; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .cal-chip-title {
    font-size:0.64rem; font-weight:600;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }

  .chip-inprogress { background:rgba(204,120,92,0.12); color:var(--accent); }
  .chip-pending    { background:rgba(138,146,166,0.12); color:var(--muted); }
  .chip-done       { background:rgba(45,125,82,0.12); color:var(--accent3); }
  .chip-blocked    { background:rgba(217,69,53,0.12); color:var(--danger); }
  .chip-review     { background:rgba(212,129,58,0.12); color:var(--accent2); }
  .chip-overdue    { background:rgba(217,69,53,0.15); color:var(--danger); border:1px solid rgba(217,69,53,0.2); }

  .cal-more { font-size:0.6rem; color:var(--muted); padding:1px 4px; cursor:pointer; }
  .cal-more:hover { color:var(--accent); }

  /* ── MONTHLY REMINDERS PANEL ── */
  /* ── REMINDERS TAB ── */
  .rem-tab-toolbar {
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
    padding:16px 24px; border-bottom:1px solid var(--border); background:var(--surface2);
  }
  .rem-progress-wrap {
    padding:16px 24px 8px; border-bottom:1px solid var(--border);
    background:var(--surface);
  }
  .rem-progress-bar-bg {
    height:8px; border-radius:8px; background:var(--surface2); overflow:hidden; margin-top:8px;
  }
  .rem-progress-bar-fill {
    height:100%; border-radius:8px; background:var(--accent3);
    transition:width 0.5s cubic-bezier(.4,0,.2,1);
  }
  .rem-done-banner {
    margin:16px 24px 0; padding:14px 20px; border-radius:14px;
    background:rgba(45,125,82,0.08); border:1px solid rgba(45,125,82,0.25);
    font-size:0.88rem; color:var(--accent3); font-weight:700; text-align:center;
    letter-spacing:0.01em;
  }
  /* card grid */
  .rem-grid {
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap:12px; padding:20px 24px;
  }
  .rem-card {
    border-radius:14px; border:1.5px solid var(--border);
    background:var(--surface); padding:0;
    transition:box-shadow 0.18s, border-color 0.18s;
    overflow:hidden; display:flex; flex-direction:column;
  }
  .rem-card:hover { box-shadow:0 4px 18px rgba(0,0,0,0.07); }
  .rem-card.rem-card-done {
    background:var(--surface2); border-color:transparent;
    box-shadow:none;
  }
  .rem-card-top {
    height:6px; width:100%; flex-shrink:0;
  }
  .rem-card-body {
    display:flex; align-items:center; gap:10px;
    padding:12px 14px; flex:1;
  }
  .rem-card-day {
    font-family:'Geist Mono',monospace; font-size:1.2rem; font-weight:900;
    line-height:1; flex-shrink:0; min-width:28px; text-align:center;
  }
  .rem-card-info { flex:1; min-width:0; }
  .rem-card-label {
    font-size:0.75rem; font-weight:800; color:var(--text);
    white-space:normal; word-break:break-word; line-height:1.35;
  }
  .rem-card-label.done-label {
    text-decoration:line-through; color:var(--muted); font-weight:600;
  }
  .rem-card-sub { font-size:0.62rem; color:var(--muted); margin-top:2px; }
  /* big tap-friendly check button */
  .rem-card-check {
    width:32px; height:32px; border-radius:50%; flex-shrink:0;
    border:2.5px solid var(--border); background:transparent;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:all 0.2s; font-size:0.9rem;
  }
  .rem-card-check:hover:not(.checked) {
    border-color:var(--accent3); background:rgba(45,125,82,0.12);
    transform:scale(1.08);
  }
  .rem-card-check.checked {
    background:var(--accent3); border-color:var(--accent3); color:#0a1628;
    font-size:1rem;
  }
  /* edit/delete hover row */
  .rem-card-footer {
    display:flex; gap:4px; padding:0 12px 10px;
    opacity:0; transition:opacity 0.15s; justify-content:flex-end;
  }
  .rem-card:hover .rem-card-footer { opacity:1; }
  .rem-card.rem-card-done .rem-card-footer { opacity:0; }
  .rem-card:hover.rem-card-done .rem-card-footer { opacity:0.6; }
  .rem-foot-btn {
    background:none; border:none; cursor:pointer; padding:3px 8px;
    border-radius:7px; font-size:0.7rem; color:var(--muted); transition:all 0.15s;
  }
  .rem-foot-btn:hover { background:var(--surface2); color:var(--text); }
  /* chip on calendar cell */
  .cal-rem-chip {
    display:flex; align-items:center; gap:3px;
    font-size:0.6rem; font-weight:700; padding:1px 5px;
    border-radius:3px; line-height:1.4; white-space:nowrap;
    overflow:hidden; text-overflow:ellipsis; color:#fff;
    margin-top:1px; max-width:100%;
  }

  .cal-legend {
    display:flex; align-items:center; gap:6px; flex-wrap:wrap;
    padding:10px 20px 14px; font-size:0.68rem; color:var(--muted); font-weight:600;
    border-top:1px solid var(--border);
  }
  .cal-legend-dot { width:7px; height:7px; border-radius:50%; display:inline-block; }

  /* ── SEARCH & SORT TOOLBAR ── */
  .ss-bar {
    display:flex; align-items:center; gap:8px; padding:10px 16px;
    border-bottom:1px solid var(--border); flex-wrap:wrap; background:var(--surface2);
  }
  .ss-search-wrap { position:relative; flex:1; min-width:160px; max-width:320px; }
  .ss-search-icon { position:absolute; left:9px; top:50%; transform:translateY(-50%); opacity:0.4; pointer-events:none; font-size:0.8rem; }
  .ss-input {
    width:100%; background:var(--surface); border:1.5px solid var(--border);
    border-radius:9px; padding:6px 28px 6px 28px; color:var(--text);
    font-family:'Geist',sans-serif; font-size:0.8rem; outline:none; transition:border-color 0.15s;
  }
  .ss-input:focus { border-color:var(--accent); }
  .ss-input::placeholder { color:var(--muted); }
  .ss-clear {
    position:absolute; right:8px; top:50%; transform:translateY(-50%);
    background:none; border:none; color:var(--muted); cursor:pointer; font-size:0.75rem; display:none;
  }
  .ss-clear.show { display:block; }
  .ss-divider { width:1px; height:22px; background:var(--border); flex-shrink:0; }
  .ss-sort-group { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
  .ss-sort-label { font-size:0.62rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
  .ss-sort-btn {
    padding:4px 10px; border-radius:7px; border:1.5px solid var(--border);
    background:var(--surface); color:var(--muted); font-family:'Geist',sans-serif;
    font-size:0.7rem; font-weight:700; cursor:pointer; transition:all 0.15s;
    white-space:nowrap; display:inline-flex; align-items:center; gap:3px;
  }
  .ss-sort-btn:hover { border-color:var(--accent); color:var(--accent); }
  .ss-sort-btn.active-asc, .ss-sort-btn.active-desc { background:var(--accent); border-color:var(--accent); color:#fff; }
  .ss-result-count { font-size:0.68rem; color:var(--muted); white-space:nowrap; }
  .collapse-all-btn {
    display:inline-flex; align-items:center; gap:5px;
    font-size:0.68rem; font-weight:700; color:var(--muted);
    background:transparent; border:1px solid var(--border);
    border-radius:7px; padding:4px 10px; cursor:pointer;
    font-family:'Geist',sans-serif; white-space:nowrap;
    transition:all 0.15s; flex-shrink:0; margin-left:auto;
  }
  .collapse-all-btn:hover { border-color:var(--accent); color:var(--accent); background:rgba(204,120,92,0.05); }
  .collapse-all-btn.all-expanded { color:var(--accent3); border-color:rgba(45,125,82,0.3); }

  /* ── BREAKDOWN PILLS ── */
  .bd-pills { display:flex; flex-wrap:wrap; gap:5px; align-items:center; flex:1; min-width:0; }
  .bd-pill {
    display:inline-flex; align-items:center; gap:4px;
    font-size:0.65rem; font-weight:700; padding:2px 8px 2px 6px;
    border-radius:20px; white-space:nowrap; border:1px solid transparent; line-height:1.5;
  }
  .bd-count {
    font-family:'Geist Mono',monospace; font-size:0.7rem;
    font-weight:800; background:rgba(0,0,0,0.08); border-radius:10px;
    padding:0px 5px; min-width:16px; text-align:center;
  }
  .bd-Implementation { background:rgba(204,120,92,0.1);  color:var(--accent);  border-color:rgba(204,120,92,0.2); }
  .bd-Review         { background:rgba(247,163,79,0.1);  color:var(--accent2); border-color:rgba(247,163,79,0.2); }
  .bd-Testing        { background:rgba(247,97,79,0.1);   color:var(--danger);  border-color:rgba(247,97,79,0.2); }
  .bd-Design         { background:rgba(45,125,82,0.1);  color:var(--accent3); border-color:rgba(45,125,82,0.2); }
  .bd-Approval       { background:rgba(180,140,255,0.1); color:#b48cff;        border-color:rgba(180,140,255,0.2); }
  .bd-Rework         { background:rgba(247,97,79,0.08);  color:var(--danger);  border-color:rgba(247,97,79,0.15); }
  .bd-Release        { background:rgba(45,125,82,0.15); color:var(--accent3); border-color:rgba(45,125,82,0.25); }
  .bd-NewProduct     { background:rgba(247,163,79,0.12); color:var(--accent2); border-color:rgba(247,163,79,0.22); }
  .bd-other          { background:rgba(107,114,128,0.1); color:var(--muted);   border-color:rgba(107,114,128,0.2); }
  .bd-cust           { background:rgba(204,120,92,0.08); color:var(--accent);  border-color:rgba(204,120,92,0.15); }
  .bd-person         { background:rgba(45,125,82,0.08); color:var(--accent3); border-color:rgba(45,125,82,0.15); }

  /* ── PRODUCT LIFECYCLE TAB ── */

  .lc-table { width:100%; border-collapse:collapse; font-size:0.82rem; }
  .lc-table thead tr { border-bottom:2px solid var(--border); }
  .lc-table th { font-size:0.62rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; color:var(--muted); padding:10px 16px; text-align:left; white-space:nowrap; }
  .lc-table td { padding:12px 16px; vertical-align:middle; border-bottom:1px solid var(--border); }
  .lc-table tr:last-child td { border-bottom:none; }
  .lc-table tr:hover td { background:rgba(0,0,0,0.015); }

  .lc-prod-name { font-weight:500; font-size:0.72rem; color:var(--muted); margin-top:2px; }
  .lc-prod-ref  { font-family:'Geist Mono',monospace; font-size:0.95rem; color:var(--accent); font-weight:700; }
  .lc-prod-cust { font-size:0.7rem; color:var(--muted); margin-top:2px; }

  .lc-status-badge {
    display:inline-flex; align-items:center; gap:5px;
    font-size:0.7rem; font-weight:700; padding:3px 10px;
    border-radius:20px; white-space:nowrap; cursor:pointer;
    transition:opacity 0.15s;
  }
  .lc-status-badge:hover { opacity:0.75; }
  .lcs-Active   { background:rgba(45,125,82,0.15); color:var(--accent3); border:1px solid rgba(45,125,82,0.3); }
  .lcs-Slow     { background:rgba(247,163,79,0.15); color:var(--accent2); border:1px solid rgba(247,163,79,0.3); }
  .lcs-Dropped  { background:rgba(247,97,79,0.15);  color:var(--danger);  border:1px solid rgba(247,97,79,0.3); }
  .lcs-Trial    { background:rgba(180,140,255,0.15);color:#b48cff;        border:1px solid rgba(180,140,255,0.3); }
  .lcs-Pending  { background:rgba(107,114,128,0.12);color:var(--muted);   border:1px solid rgba(107,114,128,0.2); }

  .lc-completed-on { font-family:'Geist Mono',monospace; font-size:0.7rem; color:var(--muted); }
  .lc-last-order   { font-family:'Geist Mono',monospace; font-size:0.7rem; }
  .lc-last-order.recent  { color:var(--accent3); }
  .lc-last-order.old     { color:var(--accent2); }
  .lc-last-order.very-old{ color:var(--danger); }
  .lc-last-order.none    { color:var(--muted); font-style:italic; }

  .lc-notes { font-size:0.72rem; color:var(--muted); max-width:260px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .lc-notes.has-notes { color:var(--text); }

  .lc-log-btn {
    display:inline-flex; align-items:center; gap:4px;
    padding:4px 10px; border-radius:7px; border:1.5px solid var(--border);
    background:transparent; color:var(--muted); cursor:pointer; font-family:'Geist',sans-serif;
    font-size:0.7rem; font-weight:700; transition:all 0.15s;
  }
  .lc-log-btn:hover { border-color:#b48cff; color:#b48cff; background:rgba(180,140,255,0.06); }

  .lc-summary-bar { display:flex; gap:10px; padding:14px 20px 4px; flex-wrap:wrap; }

  /* ── Lifecycle customer groups ── */
  .lc-group { border-bottom:1px solid var(--border); }
  .lc-group:last-child { border-bottom:none; }
  .lc-group-header {
    display:flex; align-items:center; gap:12px;
    padding:13px 20px; cursor:pointer; user-select:none;
    transition:background 0.13s;
  }
  .lc-group-header:hover { background:rgba(0,0,0,0.02); }
  .lc-group-avatar {
    width:32px; height:32px; border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    font-size:0.72rem; font-weight:800; flex-shrink:0;
  }
  .lc-group-name { font-size:0.88rem; font-weight:700; color:var(--text); flex:1; }
  .lc-group-count { font-size:0.68rem; color:var(--muted); font-weight:600; }
  .lc-group-chevron { font-size:0.6rem; color:var(--muted); transition:transform 0.2s; }
  .lc-group.open .lc-group-chevron { transform:rotate(90deg); }
  .lc-group-body { display:none; }
  .lc-group.open .lc-group-body { display:block; }
  .lc-stat { display:flex; align-items:center; gap:8px; border-radius:10px; padding:8px 14px; font-size:0.72rem; font-weight:700; }
  .lc-stat-num { font-family:'Geist Mono',monospace; font-size:1.1rem; font-weight:800; line-height:1; margin-right:2px; }
  .lc-stat.s-active  { background:rgba(45,125,82,0.08);  color:var(--accent3); border:1px solid rgba(45,125,82,0.2); }
  .lc-stat.s-slow    { background:rgba(247,163,79,0.08);  color:var(--accent2); border:1px solid rgba(247,163,79,0.2); }
  .lc-stat.s-dropped { background:rgba(247,97,79,0.08);   color:var(--danger);  border:1px solid rgba(247,97,79,0.2); }
  .lc-stat.s-trial   { background:rgba(180,140,255,0.08); color:#b48cff;        border:1px solid rgba(180,140,255,0.2); }
  .lc-stat.s-pending { background:rgba(107,114,128,0.08); color:var(--muted);   border:1px solid rgba(107,114,128,0.18); }

  .lc-status-opt {
    padding:6px 14px; border-radius:8px; border:1.5px solid var(--border);
    background:var(--surface2); color:var(--muted); font-family:'Geist',sans-serif;
    font-size:0.78rem; font-weight:700; cursor:pointer; transition:all 0.15s;
  }
  .lc-status-opt:hover { border-color:#b48cff; color:#b48cff; }
  .lc-status-opt.selected { background:#b48cff; border-color:#b48cff; color:#fff; }

  /* ── COMBO OPTION WITH DELETE ── */
  .combo-option-row { display:flex; align-items:center; gap:0; }
  .combo-option-row .combo-option-label { flex:1; padding:9px 13px; cursor:pointer; font-size:0.82rem; transition:background 0.1s; }
  .combo-option-row:hover .combo-option-label { background:var(--surface3); }
  .combo-option-del {
    padding:5px 10px; cursor:pointer; color:var(--muted); font-size:0.75rem;
    border:none; background:transparent; transition:color 0.13s, background 0.13s;
    border-radius:0 10px 10px 0; line-height:1; display:flex; align-items:center;
    flex-shrink:0; opacity:0;
  }
  .combo-option-row:hover .combo-option-del { opacity:1; }
  .combo-option-del:hover { color:var(--danger); background:rgba(247,97,79,0.1); }

  /* ── SUMMARY DASHBOARD ── */
  .summary-wrap { padding:28px 28px 32px; display:flex; flex-direction:column; gap:28px; }
  .summary-greeting { font-size:1.15rem; font-weight:700; color:var(--text); }
  .summary-greeting span { color:var(--accent); }
  .summary-kpi-row { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px; }
  .kpi-card {
    background:var(--surface2); border:1.5px solid var(--border); border-radius:14px;
    padding:16px 18px; display:flex; flex-direction:column; gap:6px;
    transition:box-shadow 0.18s, border-color 0.18s; cursor:default;
  }
  .kpi-card:hover { box-shadow:0 4px 18px rgba(0,0,0,0.07); }
  .kpi-card.clickable { cursor:pointer; }
  .kpi-card.clickable:hover { border-color:var(--accent); }
  .kpi-num { font-family:'Geist Mono',monospace; font-size:2rem; font-weight:900; line-height:1; }
  .kpi-label { font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--muted); }
  .kpi-sub { font-size:0.68rem; color:var(--muted); margin-top:2px; }
  .kpi-danger .kpi-num { color:var(--danger); }
  .kpi-warn   .kpi-num { color:var(--accent2); }
  .kpi-green  .kpi-num { color:var(--accent3); }
  .kpi-blue   .kpi-num { color:#6aa8d4; }
  .kpi-purple .kpi-num { color:#b48cff; }

  .summary-section-title {
    font-size:0.7rem; font-weight:800; letter-spacing:0.06em; text-transform:uppercase;
    color:var(--muted); margin-bottom:12px; display:flex; align-items:center; gap:8px;
  }
  .summary-section-title::after { content:''; flex:1; height:1px; background:var(--border); }

  /* Customer health grid */
  .summary-health-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px; }
  .health-card {
    border:1.5px solid var(--border); border-radius:12px; padding:12px 14px;
    display:flex; align-items:center; gap:10px; background:var(--surface);
    cursor:pointer; transition:box-shadow 0.15s, border-color 0.15s;
  }
  .health-card:hover { box-shadow:0 3px 12px rgba(0,0,0,0.07); border-color:var(--accent); }
  .health-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
  .health-green  .health-dot { background:var(--accent3); }
  .health-amber  .health-dot { background:var(--accent2); }
  .health-red    .health-dot { background:var(--danger); }
  .health-name { font-size:0.82rem; font-weight:700; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .health-meta { font-size:0.65rem; color:var(--muted); white-space:nowrap; }

  /* Overdue summary list */
  .summary-overdue-list { display:flex; flex-direction:column; gap:6px; }
  .overdue-row {
    display:flex; align-items:center; gap:10px; padding:9px 12px;
    background:rgba(192,57,43,0.05); border:1px solid rgba(192,57,43,0.15);
    border-radius:10px; cursor:pointer; transition:background 0.13s;
  }
  .overdue-row:hover { background:rgba(192,57,43,0.09); }
  .overdue-row-ref { font-family:'Geist Mono',monospace; font-size:0.72rem; font-weight:700; color:var(--accent); flex-shrink:0; min-width:72px; }
  .overdue-row-title { font-size:0.8rem; font-weight:600; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .overdue-row-days { font-family:'Geist Mono',monospace; font-size:0.68rem; font-weight:700; color:var(--danger); flex-shrink:0; }
  .overdue-row-cust { font-size:0.65rem; color:var(--muted); flex-shrink:0; }

  /* Action breakdown bars */
  .summary-action-bars { display:flex; flex-direction:column; gap:7px; }
  .action-bar-row { display:flex; align-items:center; gap:10px; }
  .action-bar-label { font-size:0.72rem; font-weight:600; min-width:110px; color:var(--text); }
  .action-bar-track { flex:1; height:8px; background:var(--surface2); border-radius:8px; overflow:hidden; }
  .action-bar-fill { height:100%; border-radius:8px; background:var(--accent); transition:width 0.4s; }
  .action-bar-count { font-family:'Geist Mono',monospace; font-size:0.65rem; color:var(--muted); min-width:24px; text-align:right; }

  /* ── CONTACT DETAILS ── */
  .cust-inline-contacts { display:flex; gap:5px; flex-wrap:wrap; align-items:center; flex-shrink:0; }
  .contact-chip {
    display:inline-flex; align-items:center; gap:4px;
    font-size:0.63rem; color:var(--muted); background:var(--surface2);
    border:1px solid var(--border); border-radius:6px; padding:2px 7px;
    cursor:pointer; transition:all 0.15s; white-space:nowrap;
  }
  .contact-chip:hover { border-color:var(--accent); color:var(--accent); background:rgba(204,120,92,0.06); }
  .contact-chip-icon { font-size:0.6rem; }
  .contact-chip.add-contact { border-style:dashed; }
  .contact-edit-row { display:flex; gap:6px; align-items:center; padding:6px 20px 8px 20px; flex-wrap:wrap; background:var(--surface2); border-top:1px solid var(--border); }
  .contact-edit-inp { background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:5px 9px; font-family:'Geist',sans-serif; font-size:0.75rem; color:var(--text); outline:none; width:160px; }
  .contact-edit-inp:focus { border-color:var(--accent); }
  .contact-edit-save { padding:5px 12px; background:var(--accent); color:#fff; border:none; border-radius:8px; font-size:0.72rem; font-weight:700; cursor:pointer; }
  .contact-edit-cancel { padding:5px 10px; background:var(--surface2); color:var(--muted); border:none; border-radius:8px; font-size:0.72rem; font-weight:600; cursor:pointer; }

  /* ── ACTIVITY LOG — modern timeline ── */
  .activity-log-wrap {
    padding:10px 16px 12px;
    border-top:1px solid var(--border);
    background:linear-gradient(180deg, var(--surface2) 0%, var(--surface) 100%);
  }
  .activity-log-header {
    display:flex; align-items:center; margin-bottom:12px;
  }
  .activity-log-label {
    display:flex; align-items:center; gap:7px;
    font-size:0.65rem; font-weight:800; letter-spacing:0.07em;
    text-transform:uppercase; color:var(--muted);
  }
  .activity-log-label-dot {
    width:6px; height:6px; border-radius:50%; background:var(--accent); flex-shrink:0;
  }
  .activity-log-count {
    font-family:'Geist Mono',monospace; font-size:0.6rem;
    background:rgba(204,120,92,0.12); color:var(--accent);
    padding:1px 7px; border-radius:20px; font-weight:700;
  }
  .activity-hide-btn {
    font-size:0.62rem; color:var(--muted); background:transparent; border:1px solid var(--border);
    cursor:pointer; font-family:'Geist',sans-serif; font-weight:700; padding:2px 8px;
    border-radius:6px; transition:all 0.13s; text-transform:none; letter-spacing:0;
    margin-left:2px;
  }
  .activity-hide-btn:hover { background:var(--surface3); color:var(--text); border-color:var(--muted); }
  .activity-add-form {
    display:flex; gap:7px; align-items:center; margin-bottom:14px;
  }
  .activity-input {
    flex:1; background:var(--surface); border:1.5px solid var(--border);
    border-radius:10px; padding:8px 12px; font-family:'Geist',sans-serif;
    font-size:0.78rem; color:var(--text); outline:none; transition:border-color 0.15s;
    box-shadow:0 1px 3px rgba(0,0,0,0.04);
  }
  .activity-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(204,120,92,0.1); }
  .activity-input::placeholder { color:var(--muted); }
  .activity-submit-btn {
    padding:8px 16px; background:var(--accent); color:#fff; border:none;
    border-radius:10px; font-size:0.72rem; font-weight:700; cursor:pointer;
    flex-shrink:0; transition:all 0.15s; letter-spacing:0.02em;
    box-shadow:0 1px 4px rgba(204,120,92,0.3);
  }
  .activity-submit-btn:hover { background:var(--accent2); box-shadow:0 2px 8px rgba(204,120,92,0.4); }
  .activity-timeline {
    display:flex; flex-direction:column; gap:0;
    max-height:220px; overflow-y:auto; padding-right:4px;
  }
  .activity-timeline::-webkit-scrollbar { width:3px; }
  .activity-timeline::-webkit-scrollbar-track { background:transparent; }
  .activity-timeline::-webkit-scrollbar-thumb { background:var(--border); border-radius:3px; }
  .activity-item { display:flex; gap:0; position:relative; }
  .activity-item-left {
    display:flex; flex-direction:column; align-items:center;
    width:28px; flex-shrink:0; padding-top:4px;
  }
  .activity-item-node {
    width:8px; height:8px; border-radius:50%;
    background:var(--surface); border:2px solid var(--accent);
    flex-shrink:0; z-index:1; transition:background 0.13s;
  }
  .activity-item:hover .activity-item-node { background:var(--accent); }
  .activity-item-line {
    width:1.5px; flex:1; background:var(--border); margin-top:3px; min-height:12px;
  }
  .activity-item:last-child .activity-item-line { display:none; }
  .activity-item-right { flex:1; min-width:0; padding:0 0 12px 6px; }
  .activity-item-bubble {
    background:var(--surface); border:1px solid var(--border); border-radius:10px;
    padding:8px 32px 8px 10px; transition:border-color 0.13s, box-shadow 0.13s;
    position:relative;
  }
  .activity-item:hover .activity-item-bubble {
    border-color:rgba(204,120,92,0.25); box-shadow:0 2px 8px rgba(0,0,0,0.05);
  }
  .activity-item-text {
    font-size:0.78rem; color:var(--text); line-height:1.5;
    word-break:break-word; margin-bottom:4px;
  }
  .activity-item-meta {
    display:flex; align-items:center; gap:5px;
    font-size:0.6rem; color:var(--muted); font-family:'Geist Mono',monospace;
  }
  .activity-item-del {
    position:absolute; top:6px; right:7px; width:18px; height:18px;
    border-radius:5px; border:none; background:transparent; color:var(--muted);
    cursor:pointer; font-size:0.6rem; display:flex; align-items:center;
    justify-content:center; opacity:0; transition:all 0.13s;
  }
  .activity-item:hover .activity-item-del { opacity:1; }
  .activity-item-del:hover { background:rgba(192,57,43,0.1); color:var(--danger); }
  .activity-empty {
    text-align:center; padding:14px 0 6px;
    color:var(--muted); font-size:0.74rem; font-style:italic;
  }
  .activity-toggle-btn {
    font-size:0.68rem; color:var(--muted); cursor:pointer; background:transparent;
    border:1px dashed var(--border); font-family:'Geist',sans-serif; font-weight:600;
    padding:4px 12px; border-radius:8px; transition:all 0.13s;
    display:inline-flex; align-items:center; gap:5px;
  }
  .activity-toggle-btn:hover { border-color:var(--accent); color:var(--accent); background:rgba(204,120,92,0.05); }

  /* Inline log icon button in the actions column */
  .log-inline-btn {
    display:inline-flex; align-items:center; gap:2px; position:relative;
    background:transparent; border:none; cursor:pointer; font-size:0.75rem;
    color:var(--muted); padding:2px 3px; border-radius:5px; transition:all 0.13s;
    line-height:1;
  }
  .log-inline-btn:hover { color:var(--accent); background:rgba(204,120,92,0.08); }
  .log-inline-btn.has-log { color:var(--accent); }
  .log-count-dot {
    font-family:'Geist Mono',monospace; font-size:0.55rem; font-weight:800;
    background:var(--accent); color:#fff; border-radius:20px;
    padding:0px 4px; line-height:1.5; min-width:14px; text-align:center;
  }
  /* ── PROSPECTS ── */
  .cust-view-toggle {
    display:flex; align-items:center; gap:0;
    background:var(--surface2); border:1.5px solid var(--border);
    border-radius:10px; overflow:hidden; flex-shrink:0;
  }
  .cust-view-btn {
    padding:6px 16px; font-family:'Geist',sans-serif; font-size:0.72rem;
    font-weight:700; letter-spacing:0.03em; border:none; background:transparent;
    color:var(--muted); cursor:pointer; transition:all 0.15s; white-space:nowrap;
  }
  .cust-view-btn.active { background:var(--surface); color:var(--text); box-shadow:0 1px 4px rgba(0,0,0,0.08); }
  .cust-view-btn.prospect-btn.active { color:#52a882; background:rgba(82,168,130,0.1); }

  /* prospect blocks */
  .prospect-block { border-bottom:1px solid var(--border); }
  .prospect-block:last-child { border-bottom:none; }
  .prospect-header {
    display:flex; align-items:center; gap:12px; padding:13px 20px;
    cursor:pointer; user-select:none; transition:background 0.15s;
  }
  .prospect-header:hover { background:rgba(0,0,0,0.02); }
  .prospect-block.open .chevron { transform:rotate(90deg); }
  .prospect-body { display:none; padding:0 20px 16px 62px; }
  .prospect-block.open .prospect-body { display:block; }

  /* pipeline stage strip */
  .pipeline-strip {
    display:flex; align-items:center; gap:0; margin-bottom:14px;
    background:var(--surface2); border-radius:10px; overflow:hidden;
    border:1px solid var(--border);
  }
  .pipeline-stage {
    flex:1; text-align:center; padding:7px 4px; font-size:0.62rem;
    font-weight:700; letter-spacing:0.03em; text-transform:uppercase;
    color:var(--muted); cursor:pointer; transition:all 0.15s;
    border-right:1px solid var(--border); white-space:nowrap;
    overflow:hidden; text-overflow:ellipsis;
  }
  .pipeline-stage:last-child { border-right:none; }
  .pipeline-stage:hover { background:rgba(0,0,0,0.03); color:var(--text); }
  .pipeline-stage.active {
    color:#fff; font-weight:800;
  }
  .ps-contact   .pipeline-stage.active { background:#6aa8d4; }
  .ps-requirement .pipeline-stage.active { background:#d4a843; }
  .ps-quoted    .pipeline-stage.active { background:var(--accent2); }
  .ps-sample    .pipeline-stage.active { background:#b48cff; }
  .ps-negotiation .pipeline-stage.active { background:var(--accent); }
  .ps-won       .pipeline-stage.active { background:var(--accent3); }
  .ps-lost      .pipeline-stage.active { background:var(--danger); }

  /* prospect detail grid */
  .prospect-detail-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; margin-bottom:14px;
  }
  .prospect-field { display:flex; flex-direction:column; gap:3px; }
  .prospect-field-label {
    font-size:0.6rem; font-weight:700; letter-spacing:0.05em;
    text-transform:uppercase; color:var(--muted);
  }
  .prospect-field-value {
    font-size:0.8rem; color:var(--text); font-weight:500;
    cursor:pointer; padding:4px 8px; border-radius:7px;
    border:1px solid transparent; transition:all 0.13s; min-height:28px;
  }
  .prospect-field-value:hover { background:var(--surface2); border-color:var(--border); }
  .prospect-field-value.empty { color:var(--muted); font-style:italic; font-size:0.74rem; }
  .prospect-inline-input {
    font-size:0.8rem; color:var(--text); padding:4px 8px; border-radius:7px;
    border:1.5px solid var(--accent); background:var(--surface2);
    font-family:'Geist',sans-serif; outline:none; width:100%;
  }

  /* prospect notes */
  .prospect-notes-area {
    width:100%; background:var(--surface2); border:1px solid var(--border);
    border-radius:8px; padding:8px 10px; font-family:'Geist',sans-serif;
    font-size:0.78rem; color:var(--text); resize:vertical; outline:none;
    transition:border-color 0.15s; min-height:60px;
  }
  .prospect-notes-area:focus { border-color:var(--accent); }

  /* probability badge */
  .prob-badge {
    display:inline-flex; align-items:center; gap:5px;
    font-size:0.65rem; font-weight:700; padding:3px 10px; border-radius:20px;
    cursor:pointer; transition:opacity 0.15s; letter-spacing:0.03em;
  }
  .prob-high   { background:rgba(45,125,82,0.15);  color:var(--accent3); }
  .prob-medium { background:rgba(247,163,79,0.15); color:var(--accent2); }
  .prob-low    { background:rgba(192,57,43,0.12);  color:var(--danger); }

  /* won / lost action buttons */
  .prospect-actions { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
  .btn-won {
    padding:7px 16px; background:rgba(45,125,82,0.12); color:var(--accent3);
    border:1.5px solid rgba(45,125,82,0.3); border-radius:9px; font-family:'Geist',sans-serif;
    font-size:0.72rem; font-weight:700; cursor:pointer; transition:all 0.15s;
  }
  .btn-won:hover { background:var(--accent3); color:#fff; border-color:var(--accent3); }
  .btn-lost {
    padding:7px 16px; background:rgba(192,57,43,0.08); color:var(--danger);
    border:1.5px solid rgba(192,57,43,0.2); border-radius:9px; font-family:'Geist',sans-serif;
    font-size:0.72rem; font-weight:700; cursor:pointer; transition:all 0.15s;
  }
  .btn-lost:hover { background:var(--danger); color:#fff; border-color:var(--danger); }
  .btn-delete-prospect {
    margin-left:auto; padding:7px 12px; background:transparent; color:var(--muted);
    border:1.5px solid var(--border); border-radius:9px; font-family:'Geist',sans-serif;
    font-size:0.72rem; font-weight:600; cursor:pointer; transition:all 0.15s;
  }
  .btn-delete-prospect:hover { color:var(--danger); border-color:rgba(192,57,43,0.3); }

  /* prospects empty */
  .prospect-count-badge {
    display:inline-flex; align-items:center; gap:4px;
    font-family:'Geist Mono',monospace; font-size:0.62rem;
    background:rgba(82,168,130,0.12); color:#52a882;
    padding:1px 8px; border-radius:20px;
  }

  /* won-conversion toast */
  .convert-toast {
    position:fixed; bottom:32px; left:50%; transform:translateX(-50%) translateY(80px);
    background:var(--accent3); color:#fff; padding:12px 24px; border-radius:12px;
    font-size:0.82rem; font-weight:700; box-shadow:0 4px 24px rgba(0,0,0,0.18);
    transition:transform 0.35s cubic-bezier(.34,1.56,.64,1), opacity 0.35s;
    opacity:0; z-index:999; white-space:nowrap;
  }
  .convert-toast.show { transform:translateX(-50%) translateY(0); opacity:1; }
  /* ── KAIZEN TAB ── */
  .kz-toolbar {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:12px 20px; border-bottom:1px solid var(--border);
    background:var(--surface2); flex-wrap:wrap;
  }
  .kz-summary-bar { display:flex; gap:10px; padding:14px 20px 4px; flex-wrap:wrap; }
  .kz-stat {
    display:flex; align-items:center; gap:8px;
    background:var(--surface); border:1px solid var(--border);
    border-radius:10px; padding:9px 16px;
  }
  .kz-stat-num { font-family:'Geist Mono',monospace; font-size:1.3rem; font-weight:800; line-height:1; }
  .kz-stat-label { font-size:0.68rem; color:var(--muted); font-weight:600; line-height:1.3; }
  .kz-stat.open-stat   { background:rgba(247,163,79,0.07); border-color:rgba(247,163,79,0.2); }
  .kz-stat.open-stat .kz-stat-num   { color:var(--accent2); }
  .kz-stat.prog-stat   { background:rgba(204,120,92,0.07); border-color:rgba(204,120,92,0.2); }
  .kz-stat.prog-stat .kz-stat-num   { color:var(--accent); }
  .kz-stat.done-stat   { background:rgba(82,196,144,0.07); border-color:rgba(82,196,144,0.2); }
  .kz-stat.done-stat .kz-stat-num   { color:#52c490; }
  .kz-stat.ver-stat    { background:rgba(180,140,255,0.07); border-color:rgba(180,140,255,0.2); }
  .kz-stat.ver-stat .kz-stat-num    { color:#b48cff; }

  /* Dept groups */
  .kz-dept-group { border-bottom:1px solid var(--border); }
  .kz-dept-group:last-child { border-bottom:none; }
  .kz-dept-header {
    display:flex; align-items:center; gap:10px; padding:10px 20px;
    cursor:pointer; user-select:none; transition:background 0.15s;
  }
  .kz-dept-header:hover { background:rgba(0,0,0,0.02); }
  .kz-dept-icon {
    width:28px; height:28px; border-radius:8px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-size:0.7rem; font-weight:800;
  }
  .kz-dept-name { font-size:0.9rem; font-weight:700; flex:1; }
  .kz-dept-group.open .chevron { transform:rotate(90deg); }
  .kz-dept-body { display:none; padding:0 16px 12px; overflow-x:auto; }
  .kz-dept-group.open .kz-dept-body { display:block; }

  /* Kaizen table */
  .kz-table { width:100%; border-collapse:collapse; font-size:0.82rem; min-width:980px; }
  .kz-table thead tr { border-bottom:1px solid var(--border); }
  .kz-table th { font-size:0.63rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; color:var(--muted); padding:7px 12px; text-align:left; white-space:nowrap; }
  .kz-table td { padding:7px 12px; vertical-align:middle; border-bottom:1px solid rgba(37,42,56,0.05); }
  .kz-table tr:last-child td { border-bottom:none; }
  .kz-table tr:hover td { background:rgba(0,0,0,0.018); }
  .kz-row-done .kz-title { text-decoration:line-through; color:var(--muted); }

  /* Status badges */
  .kzs-Open        { background:rgba(247,163,79,0.12);  color:var(--accent2); border:1px solid rgba(247,163,79,0.25); }
  .kzs-InProgress  { background:rgba(204,120,92,0.12);  color:var(--accent);  border:1px solid rgba(204,120,92,0.25); }
  .kzs-Done        { background:rgba(82,196,144,0.12);  color:#52c490;        border:1px solid rgba(82,196,144,0.25); }
  .kzs-Verified    { background:rgba(180,140,255,0.12); color:#b48cff;        border:1px solid rgba(180,140,255,0.25); }
  .kz-status-badge {
    display:inline-flex; align-items:center; gap:4px;
    font-size:0.65rem; font-weight:700; padding:2px 9px;
    border-radius:20px; white-space:nowrap; cursor:pointer;
    transition:opacity 0.15s; letter-spacing:0.02em;
  }
  .kz-status-badge:hover { opacity:0.75; }
  .kz-date { font-family:'Geist Mono',monospace; font-size:0.68rem; color:var(--muted); }
  .kz-date.overdue { color:var(--danger); font-weight:700; }
  .kz-notes-cell { font-size:0.75rem; color:var(--muted); max-width:260px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .kz-notes-cell.has-notes { color:var(--text); }

  /* Dept pill in dept manager */
  .kz-dept-pill {
    display:flex; align-items:center; gap:8px;
    background:var(--surface2); border:1px solid var(--border);
    border-radius:9px; padding:7px 12px;
  }
  .kz-dept-pill-name { flex:1; font-size:0.82rem; font-weight:600; color:var(--text); }
  .kz-dept-del {
    background:none; border:none; cursor:pointer; font-size:0.75rem;
    color:var(--muted); padding:2px 6px; border-radius:5px; transition:all 0.13s;
  }
  .kz-dept-del:hover { background:rgba(247,97,79,0.12); color:var(--danger); }
  .kz-empty { padding:48px 24px; text-align:center; color:var(--muted); font-size:0.84rem; line-height:1.8; }

  /* ── AUTH / WIZARD OVERLAYS ── */
  /* ── FULL-SCREEN DARK LOGIN ── */
  .auth-overlay {
    display:none; position:fixed; inset:0; z-index:9999;
    background:linear-gradient(135deg, #1a1210 0%, #1e1614 40%, #231a18 100%);
    align-items:center; justify-content:center; padding:20px; overflow-y:auto;
  }
  .auth-overlay.open { display:flex; }
  body.auth-locked {
    background:linear-gradient(135deg, #1a1210 0%, #1e1614 40%, #231a18 100%);
    overflow:hidden;
  }
  body.auth-locked > header,
  body.auth-locked > .panel {
    visibility:hidden;
    pointer-events:none;
  }
  body.auth-locked #login-overlay {
    display:flex;
  }
  .auth-box {
    width:100%; max-width:400px;
    animation:fadeIn 0.35s ease;
    display:flex; flex-direction:column; align-items:center; gap:0;
  }
  .auth-logo-area {
    width:100%; display:flex; align-items:center; justify-content:center;
    padding:0 0 36px 0;
  }
  .auth-logo-img {
    width:280px; max-width:80vw; height:auto;
    filter: brightness(0) invert(1) opacity(0.92);
  }
  .auth-box-hdr { display:none; }
  .auth-box-close { display:none; }
  .auth-box-body {
    width:100%; background:rgba(255,255,255,0.05);
    border:1px solid rgba(255,255,255,0.1);
    border-radius:16px; padding:28px 28px 24px;
    display:flex; flex-direction:column; gap:16px;
    backdrop-filter:blur(10px);
  }
  .auth-field { display:flex; flex-direction:column; gap:6px; }
  .auth-field label { font-size:0.65rem; font-weight:700; color:rgba(255,255,255,0.5); letter-spacing:0.06em; text-transform:uppercase; }
  .auth-field input {
    background:rgba(255,255,255,0.08); border:1.5px solid rgba(255,255,255,0.15);
    border-radius:10px; padding:12px 14px; font-family:"Geist",sans-serif;
    font-size:0.9rem; color:#fff; outline:none; transition:all 0.15s;
  }
  .auth-field input::placeholder { color:rgba(255,255,255,0.3); }
  .auth-field input:focus { border-color:#cc785c; box-shadow:0 0 0 3px rgba(204,120,92,0.2); background:rgba(255,255,255,0.1); }
  .auth-btn-primary {
    padding:13px; background:#cc785c; color:#fff; border:none; border-radius:10px;
    font-family:"Geist",sans-serif; font-size:0.9rem; font-weight:700;
    cursor:pointer; transition:all 0.2s; display:flex; align-items:center;
    justify-content:center; gap:8px; letter-spacing:0.03em;
    box-shadow:0 4px 16px rgba(204,120,92,0.35);
  }
  .auth-btn-primary:hover { background:#b8694f; box-shadow:0 4px 20px rgba(204,120,92,0.5); }
  .auth-btn-primary:disabled { opacity:0.45; cursor:not-allowed; }
  .auth-divider { display:none; }
  .auth-btn-google { display:none; }
  .auth-msg { font-size:0.78rem; text-align:center; min-height:1px; border-radius:8px; }
  .auth-msg.error { color:#ff8a7a; background:rgba(192,57,43,0.2); padding:8px 12px; border:1px solid rgba(192,57,43,0.3); }
  .auth-msg.success { color:#6de8a0; background:rgba(45,125,82,0.2); padding:8px 12px; }
  .auth-toggle { display:none; }
  .auth-toggle span { color:var(--accent); cursor:pointer; font-weight:700; }
  .auth-toggle span:hover { text-decoration:underline; }
  /* wizard */
  .wizard-box { background:var(--surface); border:1px solid var(--border); border-radius:18px; width:100%; max-width:560px; box-shadow:0 8px 48px rgba(26,25,21,0.18); overflow:hidden; animation:fadeIn 0.25s ease; max-height:88vh; display:flex; flex-direction:column; }
  .wizard-hdr { padding:20px 24px 14px; border-bottom:1px solid var(--border); background:linear-gradient(135deg,rgba(106,168,212,0.08),rgba(180,140,255,0.05)); flex-shrink:0; display:flex; align-items:flex-start; gap:10px; }
  .wizard-hdr-text { flex:1; }
  .wizard-hdr h3 { font-size:1rem; font-weight:800; color:var(--text); }
  .wizard-hdr p { font-size:0.75rem; color:var(--muted); margin-top:3px; line-height:1.5; }
  .wizard-steps { overflow-y:auto; flex:1; }
  .wstep { border-bottom:1px solid var(--border); }
  .wstep:last-child { border-bottom:none; }
  .wstep-hdr { display:flex; align-items:center; gap:11px; padding:12px 20px; cursor:pointer; user-select:none; transition:background 0.13s; }
  .wstep-hdr:hover { background:rgba(0,0,0,0.02); }
  .wstep-num { width:23px; height:23px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:0.65rem; font-weight:800; background:rgba(106,168,212,0.14); color:#2a6090; border:1.5px solid rgba(106,168,212,0.3); transition:all 0.2s; }
  .wstep.done .wstep-num { background:rgba(45,125,82,0.14); color:var(--accent3); border-color:rgba(45,125,82,0.3); }
  .wstep-title { font-size:0.82rem; font-weight:700; color:var(--text); flex:1; }
  .wstep.done .wstep-title { color:var(--muted); text-decoration:line-through; }
  .wstep-chev { font-size:0.58rem; color:var(--muted); transition:transform 0.18s; }
  .wstep.open .wstep-chev { transform:rotate(90deg); }
  .wstep-body { display:none; padding:2px 20px 16px 54px; }
  .wstep.open .wstep-body { display:block; }
  .wstep-body p { font-size:0.77rem; color:var(--muted); line-height:1.75; margin-bottom:8px; }
  .wstep-body a { color:#2a6090; font-weight:600; }
  .wstep-body strong { color:var(--text); }
  .wcode { background:var(--surface2); border:1px solid var(--border); border-radius:9px; padding:10px 40px 10px 13px; font-family:"Geist Mono",monospace; font-size:0.69rem; color:var(--text); white-space:pre; overflow-x:auto; margin:7px 0; line-height:1.65; position:relative; }
  .wcopy { position:absolute; top:6px; right:7px; background:var(--surface3); border:1px solid var(--border); border-radius:6px; padding:2px 8px; font-size:0.6rem; font-weight:700; cursor:pointer; color:var(--muted); font-family:"Geist",sans-serif; transition:all 0.13s; }
  .wcopy:hover { background:var(--accent); color:#fff; border-color:var(--accent); }
  .wdone-btn { display:inline-flex; align-items:center; gap:5px; margin-top:7px; padding:5px 14px; background:rgba(45,125,82,0.1); color:var(--accent3); border:1.5px solid rgba(45,125,82,0.3); border-radius:8px; font-family:"Geist",sans-serif; font-size:0.72rem; font-weight:700; cursor:pointer; transition:all 0.13s; }
  .wdone-btn:hover { background:var(--accent3); color:#fff; border-color:var(--accent3); }
  .winput { width:100%; background:var(--surface2); border:1.5px solid var(--border); border-radius:9px; padding:8px 12px; font-family:"Geist Mono",monospace; font-size:0.77rem; color:var(--text); outline:none; margin:3px 0 7px; transition:border-color 0.15s; }
  .winput:focus { border-color:#6aa8d4; }
  .winput-lbl { font-size:0.64rem; font-weight:700; color:var(--muted); letter-spacing:0.05em; text-transform:uppercase; display:block; margin-top:5px; }
  .wapply-btn { padding:7px 16px; background:#6aa8d4; color:#fff; border:none; border-radius:8px; font-family:"Geist",sans-serif; font-size:0.75rem; font-weight:700; cursor:pointer; transition:opacity 0.13s; margin-top:4px; }
  .wapply-btn:hover { opacity:0.85; }
  .wconfig-out { display:none; margin-top:10px; }
  .wconfig-lbl { font-size:0.72rem; font-weight:700; color:var(--accent3); margin-bottom:5px; }
  /* go-live button */
  .btn-golive { display:inline-flex; align-items:center; gap:6px; padding:6px 13px; border-radius:8px; font-family:"Geist",sans-serif; font-size:0.72rem; font-weight:700; cursor:pointer; border:1.5px solid rgba(106,168,212,0.4); background:rgba(106,168,212,0.08); color:#2a6090; transition:all 0.15s; white-space:nowrap; }
  .btn-golive:hover { background:rgba(106,168,212,0.18); border-color:#6aa8d4; }
  .btn-golive.connected { border-color:rgba(45,125,82,0.35); background:rgba(45,125,82,0.08); color:var(--accent3); }
  .user-pill { display:inline-flex; align-items:center; gap:7px; font-size:0.7rem; color:var(--muted); background:var(--surface2); border:1px solid var(--border); border-radius:20px; padding:4px 12px; }
  .owner-tag { font-size:0.58rem; font-weight:800; background:rgba(204,120,92,0.12); color:var(--accent); border:1px solid rgba(204,120,92,0.25); border-radius:20px; padding:1px 6px; }
  .signout-btn { font-size:0.68rem; color:var(--muted); background:transparent; border:1px solid var(--border); border-radius:6px; padding:3px 9px; cursor:pointer; font-family:"Geist",sans-serif; font-weight:600; transition:all 0.13s; }
  .signout-btn:hover { color:var(--danger); border-color:rgba(192,57,43,0.3); }



  /* V139 workflow layout refinements */
  .tab-stack-pair { display:flex; flex-direction:column; gap:8px; min-width:170px; align-self:stretch; justify-content:center; }
  .tab-stack-pair .tab-btn { width:100%; justify-content:flex-start; }
  .tab-stack-pair + .tab-divider,
  .tab-stack-pair > .tab-divider { display:none !important; }
  .tab-btn.compact-stack { min-height:40px; }
  .cust-header-actions { margin-left:auto; display:flex; align-items:center; gap:8px; }
  .cust-header .header-add-task-btn { white-space:nowrap; padding:7px 12px; font-size:0.72rem; border-radius:10px; background:rgba(82,196,144,0.08); border:1px solid rgba(82,196,144,0.24); color:#2d7d52; font-weight:700; }
  .cust-header .header-add-task-btn:hover { background:rgba(82,196,144,0.16); border-color:rgba(82,196,144,0.38); }
  .customer-block.ux-focus .cust-header { box-shadow:inset 0 0 0 1px rgba(106,168,212,0.22); background:linear-gradient(90deg, rgba(106,168,212,0.10), rgba(106,168,212,0.03)); }
  .task-table-wrap table tbody tr.quick-add-row { display:none; }
  @media (max-width: 1200px) {
    .tab-stack-pair { min-width:unset; width:100%; flex-direction:row; }
    .tab-stack-pair .tab-btn { flex:1; }
  }


/* Gmail sidebar styles moved from injected <style> for strict CSP. */
#gt-gear-popover{display:none;position:absolute;top:36px;right:8px;z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;box-shadow:0 4px 18px rgba(0,0,0,0.12);width:250px;box-sizing:border-box;}
#gt-gear-popover.open{display:block;}
.gt-row{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.1s;}
.gt-row:hover{background:var(--surface2);}
.gt-row.selected{background:rgba(204,120,92,0.1);border-left:3px solid var(--accent);padding-left:9px;}
.gt-row.selected .gt-row-sender{color:var(--accent2);font-weight:700;}
.gt-unread-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;}
.gt-unread-dot.read{background:transparent;}
.gt-row-main{flex:1;min-width:0;}
.gt-row-sender{font-size:0.74rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gt-row-sender.read{font-weight:400;color:var(--muted);}
.gt-row-subject{font-size:0.68rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
.gt-row-time{font-size:0.61rem;color:var(--muted);flex-shrink:0;font-family:"Geist Mono",monospace;}
.gt-sec-hdr{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--surface2);border-bottom:1px solid var(--border);cursor:pointer;user-select:none;flex-shrink:0;transition:background 0.1s;}
.gt-sec-hdr:hover{background:var(--surface3,rgba(0,0,0,0.04));}
.gt-sec-title{font-size:0.7rem;font-weight:700;color:var(--text);flex:1;letter-spacing:0.01em;}
.gt-sec-chev{font-size:0.65rem;color:var(--text);opacity:0.4;transition:transform 0.15s,opacity 0.15s;}
.gt-sec-chev.open{transform:rotate(90deg);opacity:0.7;}
.gt-sec-body{overflow:hidden;transition:max-height 0.2s ease;}
.gt-sec-body.collapsed{max-height:0!important;}
.gt-status-pill{display:inline-flex;align-items:center;gap:4px;font-size:0.6rem;padding:2px 7px;border-radius:20px;background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;}
.gt-status-pill .sdot{width:5px;height:5px;border-radius:50%;background:var(--muted);flex-shrink:0;}
.gt-status-pill.ok .sdot{background:var(--accent3);}
.gt-status-pill.warn .sdot{background:var(--accent2);}
.gt-status-pill.err .sdot{background:var(--danger);}
