  :root{
    --navy:#0C419B; --navy-dark:#062670; --blue:#2566BC; --blue-light:#5B9BD5;
    --teal:#0FAE96; --teal-dark:#0B8873; --gold:#E0A73C;
    --light:#EAF1FA; --grey:#F4F7FB;
    --border:#E3E7ED; --green:#1E8E3E; --red:#C0392B; --amber:#B7791F; --ink:#1A2433;
    --muted:#8792A0;
    --radius:14px;
    --shadow-sm:0 1px 2px rgba(20,30,60,.05), 0 1px 3px rgba(20,30,60,.05);
    --shadow-md:0 6px 18px rgba(20,30,60,.08), 0 2px 6px rgba(20,30,60,.05);
    --shadow-lift:0 12px 28px rgba(20,30,60,.14);
    /* Consolidated Sep 2026: --brand-gradient used to be teal->blue
       (var(--teal),var(--blue)) while a separate hardcoded "mockup gradient"
       (135deg,#4E82E0,#48B4C9) was copy-pasted at ~17 call sites for active
       nav/avatars/calendar/dialer. Retired the teal-forward version — this
       token now IS that blue-teal formula, so every consumer (buttons, card
       top-accent, stat bars, event covers, progress bars, active nav,
       avatars) draws from one place. */
    --blue-accent:#4E82E0; --teal-accent:#48B4C9;
    --brand-gradient:linear-gradient(135deg,var(--blue-accent),var(--teal-accent));
    /* Calendar tab restyle (calendar-preview.html) — event-type tint colors,
       used by calRenderMonthView/Week/Day/List's .cal-chip/.type-pill/
       .type-dot classes. */
    --c-events:#B39DDB; --c-meetings:#90CAF9; --c-tasks:#FFCC80; --c-followups:#A5D6A7;
  }
  *{box-sizing:border-box;}
  html{overflow-x:hidden;}
  body{margin:0;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:linear-gradient(180deg,#F6F9FD 0%,#EFF3F9 260px,#EFF3F9 100%);color:var(--ink);-webkit-font-smoothing:antialiased;}
  /* App shell: fixed-width left sidebar (brand + vertical nav) + a right
     column holding a slim top bar and the scrollable main content — the
     sidebar/nav markup and ids are untouched from the old top-nav version,
     only their layout and skin changed, so every existing click handler
     (switchTab, nav-group-btn accordion toggle, closeNavDropdowns, etc.)
     keeps working exactly as before. */
  .app-shell{display:flex;min-height:100vh;align-items:stretch;}
  /* Collapsible icon rail: 72px at rest (wide enough for the brand mark +
     each button's leading emoji before overflow-x:hidden clips the rest of
     its label), expands to the original 230px on hover or when pinned via
     #sidebarPinBtn. Fixed positioning means the expanded state overlays the
     main content rather than reflowing it — main-wrap's margin only matches
     the resting (collapsed) width. Every existing nav-group-btn/switchTab
     click handler is untouched; this only changes width/overflow. */
  #sidebar{width:72px;flex-shrink:0;background:rgba(255,255,255,.6);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border-right:1px solid rgba(255,255,255,.7);box-shadow:6px 0 40px rgba(30,60,120,.10);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;overflow-y:auto;overflow-x:hidden;z-index:50;border-top:3px solid var(--teal);transition:width .16s ease;}
  #sidebar:hover, #sidebar.sidebar-pinned{width:230px;overflow-x:visible;}
  #sidebarPinBtn{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:6px;background:rgba(21,32,54,.06);
    color:#5B6472;border:none;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;}
  #sidebarPinBtn:hover{background:rgba(21,32,54,.12);}
  #sidebar.sidebar-pinned #sidebarPinBtn{background:rgba(15,174,150,.35);color:#fff;}
  body.staging-mode #sidebar{top:26px;}
  body.staging-mode .app-shell{padding-top:26px;}
  body.staging-mode .auth-overlay{top:26px;}
  .main-wrap{flex:1;min-width:0;margin-left:72px;display:flex;flex-direction:column;}
  header{background:none;color:var(--ink);padding:22px 20px 16px;display:block;box-shadow:none;position:relative;border-bottom:1px solid rgba(21,32,54,.08);}
  header h1{margin:0;font-size:17px;font-weight:700;letter-spacing:.2px;color:var(--navy);}
  header .sub{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.4;}
  #sidebar header h1, #sidebar header .sub{white-space:nowrap;}
  /* NAS Portal rebrand: sidebar mark is the real NAS Portal logo image
     (assets/nas-portal-logo.png) — replaces the earlier plain glowing dot
     placeholder now that a real brand mark exists. */
  .sb-brand-dot{width:22px;height:22px;object-fit:contain;flex-shrink:0;}
  .top-bar{background:#fff;border-bottom:1px solid var(--border);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;position:sticky;top:0;z-index:6;box-shadow:0 2px 10px rgba(20,30,60,.04);}
  .top-bar-welcome{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;color:var(--navy);}
  nav{display:flex;flex-direction:column;gap:1px;padding:14px 12px;flex:1;}
  nav button{background:none;border:none;color:#5B6472;padding:10px 12px;cursor:pointer;font-size:13px;font-weight:600;text-align:left;border-radius:8px;transition:color .15s ease,background .15s ease,box-shadow .15s ease;white-space:nowrap;}
  /* Icon-only at rest: labels fade in only once the rail is hovered or
     pinned wide, instead of showing an abrupt mid-word clip at 72px. Only
     an opacity toggle — the buttons/markup/click-handlers are unchanged. */
  .sb-lbl{opacity:0;transition:opacity .1s ease;}
  #sidebar:hover .sb-lbl, #sidebar.sidebar-pinned .sb-lbl{opacity:1;}
  nav button:hover{color:var(--navy);background:rgba(37,102,188,.08);}
  /* Active-item highlight uses --brand-gradient (blue #4E82E0 -> teal
     #48B4C9) — this WAS a separate hardcoded gradient kept apart from the
     app's old teal-forward --brand-gradient token; consolidated Sep 2026
     so this blue-forward blend is now the one and only brand gradient. */
  nav button.active{color:#fff;background:var(--brand-gradient);box-shadow:0 8px 20px rgba(60,120,220,.32);}
  .nav-group{position:relative;}
  /* Flattened menu: the mockups showed every item at one level, with no
     parent group to click open first. Rather than restructure the real
     nav's markup, the group-header toggle button becomes a plain, non-
     clickable-looking section label and its
     dropdown is forced permanently open/un-indented so its buttons render as
     ordinary flat items below that label. Every nav-group id, every data-tab
     button, and every existing click handler (switchTab, renderAuthUI's
     show/hide-by-id, closeNavDropdowns) is completely unchanged — this is a
     pure CSS restyle, not a markup or JS change. */
  .nav-group-btn{cursor:default;color:#98A4B8;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:14px 12px 4px;background:none;box-shadow:none;}
  .nav-group-btn:hover{color:#98A4B8;background:none;}
  .nav-group-btn.active{color:#98A4B8;}
  .nav-group-btn .caret{display:none;}
  .nav-dropdown{position:static;background:none;min-width:0;box-shadow:none;border-radius:0;padding:0;display:flex !important;z-index:auto;flex-direction:column;gap:1px;}
  .nav-dropdown button{width:100%;text-align:left;border-radius:8px;padding:10px 12px;border-bottom:none !important;font-size:13px;}
  .nav-dropdown button:hover{background:rgba(37,102,188,.08);}
  .nav-dropdown button.active{background:var(--brand-gradient);color:#fff;box-shadow:0 6px 16px rgba(60,120,220,.3);}
  .link-picker-result{cursor:pointer;padding:6px 8px;border-radius:6px;font-size:13px;}
  .link-picker-result:hover{background:var(--grey);}
  main{max-width:1100px;margin:0 auto;padding:22px 24px 60px;width:100%;}
  .card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;}
  .card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--brand-gradient);opacity:.85;}
  .card h3{margin-top:0;font-size:16px;font-weight:600;color:var(--navy);}
  .badge{display:inline-block;padding:2px 9px;border-radius:10px;font-size:11px;font-weight:600;}
  .badge.demo{background:#FCE8B2;color:#7A5B00;}
  .badge.live{background:#D2F1DA;color:var(--green);}
  .banner{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px;}
  .banner.warn{background:#FFF4E0;border:1px solid #F0C36D;color:#7A5B00;}
  .banner.ok{background:#E6F4EA;border:1px solid #8FD3A1;color:#155724;}
  label{display:block;font-size:12px;font-weight:600;color:#5A6472;margin:12px 0 4px;}
  input[type=text],input[type=tel],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{
    width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;background:#fff;transition:border-color .15s ease,box-shadow .15s ease;
  }
  input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,174,150,.14);}
  textarea{min-height:70px;resize:vertical;}
  .row{display:flex;gap:16px;flex-wrap:wrap;}
  .row > div{flex:1;min-width:200px;}

  /* Section grouping inside longer forms (Edit Lead, etc.) — a small
     uppercase label above each logical group of fields, same visual
     language as the Contacts detail panel's "CONTACT INFORMATION" style
     headers, so a dense form reads as clear sections instead of one long
     undifferentiated stack of rows. */
  .el-section-label{font-size:11px;font-weight:700;color:#A0AEC0;text-transform:uppercase;letter-spacing:.05em;margin:20px 0 8px;padding-top:14px;border-top:1px solid #EEF1F5;}
  .el-section-label:first-of-type{margin-top:14px;padding-top:0;border-top:none;}
  .el-optional{font-weight:400;color:#A0AEC0;text-transform:none;letter-spacing:normal;}
  .el-hint{font-size:12px;color:#718096;margin-top:10px;}
  .el-quick-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--grey,#F7F9FB);border-radius:9px;padding:10px 12px;margin:4px 0 14px;}
  .el-quick-actions-label{font-size:12px;color:#718096;margin-right:2px;}

  /* Mobile optimization — applies app-wide but matters most on the public,
     client-facing pages (MyMaxicare Application, quote/SME/Shop Link forms)
     since those are usually opened from a phone via a shared link. */
  @media (max-width:600px){
    /* iOS Safari auto-zooms the whole page when a focused input's font-size
       is under 16px — the 14px used elsewhere causes an annoying zoom/jump
       every time someone taps into a field on an iPhone. */
    input[type=text],input[type=tel],input[type=email],input[type=password],
    input[type=date],input[type=number],select,textarea{font-size:16px;}
    main{padding:14px 12px 40px;}
    .auth-overlay{padding:10px;}
    .auth-card{padding:20px 16px;}
    .auth-face{padding:20px 16px;}
    .mmq-sticky-total{margin:12px -16px -20px !important;padding:10px 16px !important;}
    .row{gap:10px;}
    /* Bigger, easier-to-hit checkboxes for the Application Type / Source of
       Funds / Diagnosed Conditions groups and other checkbox rows. */
    input[type=checkbox],input[type=radio]{width:18px;height:18px;flex-shrink:0;}
    label[style*="display:flex"]{padding:3px 0;}
  }
  /* NOTE: an earlier pass switched these public pages from position:fixed
     to position:absolute, theorizing that Messenger's in-app browser was
     mis-rendering fixed-position overlays. That theory turned out to be
     wrong — live testing traced the actual centering bug to two unrelated
     things (a missing #mymaxicareAppPublicView selector on the decorative
     .quote-bg-circle rule, and .auth-card needing min-width:0 as a flex
     item), both fixed at their source below. The position:absolute switch
     was reverted because it caused a real regression: with height:auto,
     these boxes grow to the full (often very tall) form content instead of
     staying pinned to the viewport, and background-size:300% 300%,cover is
     computed relative to that box — so the background pattern ballooned up
     against thousands of pixels of height and looked zoomed/blurry. Back to
     the original position:fixed;inset:0 (from .auth-overlay), which keeps
     the box exactly viewport-sized and the background scaled correctly,
     with the card's own overflow-y:auto handling long-form scrolling. */
  /* The Dependents grid (up to 17 columns) is unusable as a literal table on
     a phone — collapse it into one stacked card per dependent instead,
     using the classic "data-label as a pseudo-header" table pattern. Needs
     more room than the 600px breakpoint above since even a 7"-ish screen
     can't fit that many columns. */
  @media (max-width:760px){
    .mmc-dep-table thead{display:none;}
    .mmc-dep-table, .mmc-dep-table tbody, .mmc-dep-table tr, .mmc-dep-table td{display:block;width:100%;}
    .mmc-dep-table tr{border:1px solid var(--border);border-radius:10px;padding:8px 12px;margin-bottom:12px;background:#fff;}
    .mmc-dep-table td{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border:none !important;text-align:left;}
    .mmc-dep-table td::before{content:attr(data-label);font-weight:600;font-size:11.5px;color:#5A6472;flex-shrink:0;}
    .mmc-dep-table td input,.mmc-dep-table td select{width:60% !important;max-width:220px;}
    .mmc-dep-table td:last-child{justify-content:flex-end;}
  }
  .btn{display:inline-block;padding:9px 18px;border-radius:9px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:background-color .15s ease,transform .1s ease,box-shadow .15s ease;}
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--brand-gradient);color:#fff;box-shadow:0 3px 10px rgba(15,174,150,.28);}
  .btn-primary:hover{box-shadow:0 5px 16px rgba(15,174,150,.38);transform:translateY(-1px);filter:brightness(1.04);}
  .btn-secondary{background:#fff;color:var(--navy);border:1px solid var(--border);}
  .btn-secondary:hover{background:var(--light);border-color:var(--blue-light);}
  .btn-danger{background:#fdecea;color:var(--red);border:1px solid #f5c6c0;}
  .btn-danger:hover{background:#fbdcd7;}
  .btn:disabled{opacity:.5;cursor:not-allowed;}
  .actions{display:flex;justify-content:space-between;margin-top:22px;gap:10px;}
  .progress-wrap{background:#E9EDF1;border-radius:8px;height:8px;overflow:hidden;margin-bottom:18px;}
  .progress-bar{background:var(--blue);height:100%;transition:width .25s ease;}
  .step-label{font-size:12px;color:#718096;margin-bottom:6px;}
  .choice-group{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;}
  .choice{padding:9px 16px;border:1px solid var(--border);border-radius:20px;cursor:pointer;font-size:13px;background:#fff;transition:background-color .15s ease,color .15s ease,border-color .15s ease;}
  .choice:hover{border-color:var(--blue);}
  .choice.selected{background:var(--navy);color:#fff;border-color:var(--navy);}
  .script-box{background:var(--light);border-left:4px solid var(--blue);padding:12px 14px;border-radius:6px;font-style:italic;font-size:14px;margin:10px 0;}
  .gap-box{background:#FFF9E8;border-left:4px solid var(--amber);padding:12px 14px;border-radius:6px;font-size:14px;margin:10px 0;}
  table{width:100%;border-collapse:collapse;font-size:13px;}
  th,td{padding:10px 10px;border-bottom:1px solid var(--border);text-align:left;}
  th{background:linear-gradient(180deg,#F9FBFD,#F1F4F9);color:#5A6472;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;position:sticky;top:0;border-bottom:2px solid var(--border);}
  tbody tr:nth-child(even){background:#FAFBFE;}
  tr:hover{background:var(--light);cursor:pointer;}
  .stat-grid{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px;}
  .stat{flex:1;min-width:140px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 14px 16px 17px;text-align:center;transition:box-shadow .15s ease,transform .1s ease;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;}
  .stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--brand-gradient);}
  /* Only tiles actually wired to an action get the lift-on-hover affordance —
     most stat tiles are read-only, so hinting they're clickable when they
     aren't would be a step backwards for "links point to the right data." */
  .stat-clickable{cursor:pointer;}
  .stat-clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--teal);}
  .stat .num{font-size:25px;font-weight:700;color:var(--navy);}
  .stat .lbl{font-size:10.5px;color:#8792A0;text-transform:uppercase;letter-spacing:.4px;margin-top:2px;}
  .filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
  .filters input,.filters select{width:auto;min-width:150px;}
  .dispo-pill{padding:3px 8px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap;}
  .dispo-INTERESTED_PITCH{background:#D2F1DA;color:var(--green);}
  .dispo-INTERESTED_CALLBACK{background:#DCEBFF;color:var(--blue);}
  .dispo-APPOINTMENT_SET{background:#EBDDF9;color:#5B2A9E;}
  .dispo-NOT_INTERESTED{background:#F0F0F0;color:#666;}
  .dispo-ALREADY_MAXICARE_GROUP{background:#D7F0F2;color:#0E7C86;}
  .dispo-UNANSWERED{background:#FCE8B2;color:var(--amber);}
  .dispo-NOT_REACHABLE{background:#FCE8B2;color:var(--amber);}
  .dispo-WRONG_NUMBER{background:#F0F0F0;color:#666;}
  .dispo-DO_NOT_CALL{background:#FCEAE8;color:var(--red);}
  .priority-pill{padding:3px 8px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap;}
  .priority-Low{background:#F0F0F0;color:#666;}
  .priority-Medium{background:#DCEBFF;color:var(--blue);}
  .priority-High{background:#FCE8B2;color:var(--amber);}
  .priority-Urgent{background:#FCEAE8;color:var(--red);}
  .modal-bg{position:fixed;inset:0;background:rgba(15,25,45,.55);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto;z-index:200;}
  .modal{background:#fff;border-radius:16px;padding:24px;max-width:640px;width:100%;box-shadow:0 24px 60px rgba(10,20,40,.28);position:relative;overflow:hidden;}
  .modal::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--brand-gradient);}
  .modal h3{margin-top:0;}
  .field-view{display:flex;justify-content:space-between;border-bottom:1px solid #eee;padding:7px 0;font-size:13px;gap:12px;}
  .field-view b{color:#5A6472;min-width:180px;font-weight:600;}
  /* ---------- Contacts redesign (light glass) ----------
     Reuses the mockup's blue-teal gradient (#4E82E0/#48B4C9), matching the
     one already applied to the sidebar's active-nav highlight, so the two
     redesigned surfaces read as one consistent theme. All classes below are
     purely presentational — every id/data-attribute paintContactsList()/
     paintContactDetail() already wire up is unchanged. */
  .contact-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;margin-bottom:8px;cursor:pointer;transition:background .12s ease,box-shadow .12s ease;background:#fff;}
  .contact-row:hover{background:rgba(78,130,224,.08);box-shadow:var(--shadow-sm);}
  .cr-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#5FD6C4,#5C9CE6);color:#fff;font-size:12.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .cr-main{flex:1;min-width:0;}
  .cr-name{font-size:13.5px;font-weight:700;color:var(--ink);}
  .cr-meta{font-size:11px;color:#718096;margin-top:2px;}
  .cr-stats{flex-shrink:0;min-width:112px;text-align:right;font-size:12px;color:#4A5568;}
  .cr-source-link{color:#4E82E0;cursor:pointer;font-weight:600;}
  .cr-source-link:hover{text-decoration:underline;}
  .cr-chev{margin-left:4px;color:#C3CCDC;font-size:16px;flex-shrink:0;}

  /* Floating glass card: paintContactsTab() toggles this class on
     #tab-contacts itself (not a new element) based on whether a Contact is
     selected — #contactsTabRoot's markup/ids/wiring never change, only how
     the tab section is positioned/painted around it. !important beats the
     inline style="display:block" that switchTab() sets on every section. */
  #tab-contacts.contact-detail-modal{display:flex !important;position:fixed;inset:0;z-index:400;align-items:flex-start;justify-content:center;padding:5vh 20px;overflow-y:auto;background:rgba(30,45,80,.22);backdrop-filter:blur(6px);}
  #tab-contacts.contact-detail-modal #contactsTabRoot{width:min(980px,100%);background:rgba(255,255,255,.85);backdrop-filter:blur(26px) saturate(160%);border:1px solid rgba(255,255,255,.65);border-radius:26px;box-shadow:0 50px 110px rgba(20,40,90,.28);padding:28px 28px 20px;max-height:90vh;overflow-y:auto;animation:contactModalIn .2s ease;}
  @keyframes contactModalIn{from{opacity:0;transform:translateY(14px) scale(.985);}to{opacity:1;transform:none;}}
  @media(max-width:760px){#tab-contacts.contact-detail-modal{padding:0;} #tab-contacts.contact-detail-modal #contactsTabRoot{width:100%;max-height:100vh;border-radius:0;}}

  .cc-card{position:relative;overflow:hidden;border-radius:18px;padding:20px 16px 16px;background:linear-gradient(165deg,rgba(255,255,255,.9),rgba(234,242,255,.6));border:1px solid rgba(255,255,255,.8);box-shadow:0 16px 38px rgba(60,100,180,.14);}
  .cc-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
  .cc-avatar{width:42px;height:42px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:#fff;background:linear-gradient(135deg,#5FD6C4,#5C9CE6);box-shadow:0 4px 12px rgba(92,156,230,.35);}
  .cc-row{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid rgba(21,32,54,.07);}
  .cc-row:last-child{border-bottom:none;}
  .cc-ico{width:24px;height:24px;border-radius:7px;background:rgba(21,32,54,.05);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;margin-top:1px;}
  .cc-lbl{font-size:9.5px;color:#98A5C0;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;}
  .cc-val{font-size:12.5px;color:var(--ink);line-height:1.4;}
  .coming-soon-badge{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;padding:2px 8px;border-radius:20px;background:#EEF1F6;color:#8792A0;border:1px dashed #C3CCDC;white-space:nowrap;}

  .action-card{border:1px solid var(--border);border-radius:14px;margin-bottom:14px;box-shadow:var(--shadow-sm);overflow:hidden;background:#fff;}
  .action-head{padding:11px 14px;background:linear-gradient(180deg,#F9FBFD,#F2F5F9);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:10px;}
  .action-head span{font-size:14px;font-weight:600;color:var(--navy);}
  .action-body{padding:14px;}
  .cc-tabs-row{display:flex;gap:6px;margin-bottom:10px;}
  .cc-tab-btn{font-size:11px;font-weight:700;padding:5px 12px;border-radius:20px;background:rgba(21,32,54,.05);color:#8792A0;border:1px solid transparent;cursor:pointer;}
  .cc-tab-btn.active{background:var(--brand-gradient);color:#fff;box-shadow:0 4px 12px rgba(60,120,220,.28);}
  .share-banner-glass{background:rgba(238,243,255,.8);border:1px solid rgba(201,217,251,.8);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:12.5px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
  /* Real toggle-switch look for the actual functional #ctShareToggle
     checkbox (the mockup's switch was a decorative, non-functional span —
     this is the standard checkbox-plus-sibling-span pattern so the input
     stays a real, working checkbox with its existing onchange wiring). */
  .ct-switch{position:relative;display:inline-block;width:32px;height:18px;flex-shrink:0;}
  .ct-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1;}
  .ct-switch-track{position:absolute;inset:0;background:#C3CCDC;border-radius:20px;transition:background .15s ease;}
  .ct-switch-track::before{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s ease;box-shadow:0 1px 3px rgba(0,0,0,.25);}
  .ct-switch input:checked ~ .ct-switch-track{background:var(--brand-gradient);}
  .ct-switch input:checked ~ .ct-switch-track::before{transform:translateX(14px);}
  .btn-ct-primary{background:var(--brand-gradient) !important;border-color:transparent !important;box-shadow:0 4px 14px rgba(72,140,220,.28) !important;color:#fff !important;}
  .action-ico{width:22px;height:22px;border-radius:7px;background:#E7EFFD;color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;flex-shrink:0;margin-right:8px;}

  /* Products catalog — trigger summary inside the action card, full list in
     a slide-out panel. Reuses the exact same `cards` data/health calc/click
     handler as the old plain "Deals" list, just restyled + moved behind a
     trigger so the card list doesn't dominate the page by default. */
  .catalog-trigger{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
  .catalog-chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
  .catalog-overlay{position:fixed;inset:0;z-index:500;display:none;}
  .catalog-overlay.open{display:block;}
  .catalog-backdrop{position:absolute;inset:0;background:rgba(20,30,50,.28);backdrop-filter:blur(4px);}
  .catalog-panel{position:absolute;top:0;right:0;height:100%;width:min(500px,92vw);background:rgba(255,255,255,.9);backdrop-filter:blur(20px);box-shadow:-24px 0 60px rgba(20,30,50,.2);display:flex;flex-direction:column;}
  .catalog-head{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:rgba(255,255,255,.6);}
  .catalog-title{font-size:15px;font-weight:800;color:var(--navy);}
  .catalog-sub{font-size:11.5px;color:#718096;margin-top:3px;}
  .catalog-body{padding:18px 20px;overflow-y:auto;flex:1;}
  .product-card{border-radius:12px;overflow:hidden;border:1px solid var(--border);margin-bottom:14px;background:#fff;cursor:pointer;transition:box-shadow .15s ease,transform .1s ease;}
  .product-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
  .pc-top{padding:12px 14px;display:flex;align-items:center;gap:10px;}
  .pc-ico{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;flex-shrink:0;}
  .pc-top-txt{flex:1;min-width:0;}
  .pc-line-label{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}
  .plan-name{font-size:13.5px;font-weight:700;color:var(--ink);}
  .pc-body{padding:0 14px 14px;}
  .health-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:11px;color:#718096;margin-top:2px;}
  .pc-stats{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:#718096;margin-bottom:8px;}
  .pc-stats b{color:var(--ink);display:block;font-size:12.5px;font-weight:600;}
  .renewal-line{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);color:#718096;}
  .renewal-line b{color:var(--ink);}
  .pc-line-ifg .pc-top{background:linear-gradient(135deg,#EAF1FF,#F8FAFF);} .pc-line-ifg .pc-ico{background:#2566BC;} .pc-line-ifg .pc-line-label{color:#2566BC;}
  .pc-line-prepaid .pc-top{background:linear-gradient(135deg,#E6FBF5,#F5FFFC);} .pc-line-prepaid .pc-ico{background:#0FAE96;} .pc-line-prepaid .pc-line-label{color:#0B8873;}
  .pc-line-sme .pc-top{background:linear-gradient(135deg,#F0EAFB,#FAF8FF);} .pc-line-sme .pc-ico{background:#7C5CBF;} .pc-line-sme .pc-line-label{color:#7C5CBF;}
  .pc-line-corp .pc-top{background:linear-gradient(135deg,#FCF1DE,#FFFAF0);} .pc-line-corp .pc-ico{background:#C08A2E;} .pc-line-corp .pc-line-label{color:#A5761F;}
  .health-pill{font-weight:700;padding:2px 8px 2px 6px;border-radius:6px;display:inline-flex;align-items:center;gap:5px;font-size:11px;}

  /* Name-row badges + ID-card score ring — styled exactly like the approved
     mockup (client-record-preview.html). The three concepts they represent
     (linked Event, Lead Score, full activity Journey) have no backing data
     anywhere in the CRM today (confirmed: no field, no scoring engine, no
     timeline feature) — kept visually as designed, but every label reads
     "Coming soon" rather than showing an invented number or event name. */
  .name-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;}
  .badge-event{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap;background:#FFF3E0;color:#95650F;}
  .score-badge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;padding:4px 10px;border-radius:20px;background:#FDEAEA;color:#C0392B;white-space:nowrap;}
  .journey-btn{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:6px 13px;border-radius:8px;background:linear-gradient(135deg,#2FBFA6,#5DCBD0);color:#fff;white-space:nowrap;}
  /* Contact card → Journey tab (features/ifg-journey.js). Same tokens as
     the rest of the card: grey phase panels, teal/green/amber/red states. */
  .ifj-phase{border:1px solid var(--border);border-radius:10px;background:#fff;margin-bottom:10px;}
  .ifj-phase > summary{cursor:pointer;padding:9px 12px;font-size:13px;color:var(--navy);list-style:revert;}
  .ifj-phase > summary span{font-size:11.5px;color:var(--muted);font-weight:400;}
  .ifj-phase[open] > summary{border-bottom:1px solid var(--border);background:var(--grey);border-radius:10px 10px 0 0;}
  .ifj-tl{list-style:none;margin:0;padding:6px 12px 4px;}
  .ifj-tl li{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:start;padding:8px 0;border-bottom:1px solid #F0F3F7;font-size:13px;}
  .ifj-tl li:last-child{border-bottom:none;}
  .ifj-dot{width:10px;height:10px;border-radius:50%;margin-top:4px;background:#CBD5E0;}
  .ifj-done .ifj-dot{background:var(--green);}
  .ifj-now .ifj-dot{background:var(--blue);box-shadow:0 0 0 3px rgba(37,102,188,.18);}
  .ifj-past .ifj-dot{background:var(--amber);}
  .ifj-todo b{color:#718096;font-weight:600;}
  .ifj-item-main small{display:block;font-size:11.5px;color:#718096;margin-top:2px;}
  .ifj-when{font-size:11.5px;color:#718096;white-space:nowrap;}
  .ifj-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px;}
  .ifj-pill{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px;white-space:nowrap;}
  .ifj-mail-list{display:grid;gap:8px;}
  .ifj-mail{background:var(--grey);border-radius:8px;padding:9px 11px;}
  .ifj-mail-top{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:13px;}
  .ifj-mail-sub{font-size:11.5px;color:#718096;margin-top:2px;}
  .ifj-link{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #F0F3F7;flex-wrap:wrap;}
  .ifj-link-txt{min-width:0;flex:1 1 220px;font-size:13px;}
  .ifj-link-txt span{display:block;font-size:11.5px;color:#718096;}
  .ifj-link-txt code{display:block;font-size:11px;color:#4A5568;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}
  .ifj-link-btns{display:flex;gap:6px;flex-shrink:0;}
  @media (max-width:640px){ .ifj-tl li{grid-template-columns:14px 1fr;} .ifj-when{grid-column:2;} }
  /* Send options on template emails + Activity meter (features/ifg-journey.js). */
  .ifj-sendopts{display:grid;gap:6px;font-size:12.5px;background:var(--grey);border-radius:8px;padding:8px 12px;margin-bottom:10px;}
  .ifj-so-row{display:grid;grid-template-columns:78px 1fr;gap:8px;align-items:center;}
  .ifj-so-row > b{color:#4A5568;font-size:12px;}
  .ifj-so-row input[type=text]{padding:5px 8px;font-size:12.5px;}
  .ifj-so-row textarea{width:100%;box-sizing:border-box;padding:6px 8px;font-size:12.5px;font-family:inherit;resize:vertical;}
  .ifj-so-cc{display:flex;flex-wrap:wrap;gap:4px 12px;}
  .ifj-so-cc label{display:inline-flex;align-items:center;gap:5px;font-weight:400;margin:0;font-size:12.5px;color:var(--ink);}
  .ifj-so-cc label span{color:#A0AEC0;font-size:11px;}
  @media (max-width:520px){.ifj-so-row{grid-template-columns:1fr;gap:2px;}}
  .ifj-lines .pill-tab-btn{font-size:12px;}
  .ifj-line-n{display:inline-block;min-width:16px;padding:0 5px;border-radius:999px;background:rgba(0,0,0,.08);font-size:10.5px;margin-left:3px;}
  .ifj-chips-wrap{display:flex;gap:4px;flex-wrap:wrap;min-height:4px;}
  .ifj-chip{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid #CBD5E0;border-radius:999px;padding:2px 4px 2px 9px;font-size:12px;max-width:100%;}
  .ifj-chip i{font-style:normal;color:#718096;font-size:11px;}
  .ifj-chip button{border:0;background:none;cursor:pointer;color:#718096;font-size:15px;line-height:1;padding:0 4px;border-radius:50%;}
  .ifj-chip button:hover{background:#EDF2F7;color:var(--red);}
  .ifj-activity{border:1px solid var(--border);border-radius:12px;padding:12px;background:#fff;margin-bottom:6px;}
  .ifj-act-top{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;}
  .ifj-act-top b{color:var(--navy);}
  .ifj-act-top span{font-weight:700;font-size:12.5px;}
  .ifj-gauge-wrap{display:flex;justify-content:center;margin:4px 0 2px;}
  .ifj-gauge{width:100%;max-width:240px;height:auto;display:block;}
  .ifj-act-sub{font-size:10.5px;font-weight:700;color:#718096;text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;}
  .ifj-act-hint{text-align:center;font-size:11.5px;color:#4A5568;margin:0 0 10px;}
  .ifj-act-zone{font-weight:700;font-size:12.5px;}
  .cpf-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;}
  .cpf-grid > div > label{font-size:12px;}
  .cpf-grid .cpf-wide{grid-column:1 / -1;}
  .cpf-sec{grid-column:1 / -1;font-size:11px;font-weight:700;color:var(--teal-dark);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 0;}
  .cpf-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;}
  .cpf-person{display:grid;text-align:left;gap:1px;background:var(--grey);border:1px solid transparent;border-radius:8px;padding:7px 10px;cursor:pointer;font:inherit;}
  .cpf-person:hover{border-color:var(--border);}
  .cpf-person b{font-size:13px;color:var(--ink);}
  .cpf-person span{font-size:11px;color:#718096;}
  @media (max-width:560px){.cpf-grid{grid-template-columns:1fr;}}
  .ifj-act-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .ifj-act-grid div{background:var(--grey);border-radius:8px;padding:7px 9px;display:grid;}
  .ifj-act-grid b{font-size:17px;color:var(--ink);font-variant-numeric:tabular-nums;}
  .ifj-act-grid span{font-size:11px;color:#718096;}
  .ifj-act-note{font-size:10.5px;color:#A0AEC0;margin-top:8px;}
  /* Contact card left column: titled sections + the reach/ticket buttons
     under the name (features/ifg-journey.js contactQuickActionsHtml). */
  .cc-section + .cc-section{margin-top:6px;border-top:1px solid rgba(21,32,54,.10);}
  .cc-section-title{font-size:10.5px;font-weight:700;color:var(--teal-dark);text-transform:uppercase;letter-spacing:.06em;margin:12px 0 2px;}
  .cc-quick{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px 56px;}
  .cc-quick .btn{font-size:12px;padding:6px 11px;text-decoration:none;white-space:nowrap;}
  @media (max-width:760px){ .cc-quick{margin-left:0;} }
  /* Contact card: the info column and the tabbed card stack on phones
     (the inline 300px/1fr grid used to push the right column off-screen). */
  @media (max-width:760px){ .cc-detail-grid{grid-template-columns:1fr !important;gap:16px !important;} }
  /* Grid items default to min-width:auto, so a long link or two form
     columns in the right pane could push it past the card edge. */
  .cc-detail-grid > *{min-width:0;}
  .cc-score{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:11px;border-radius:12px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.8);}
  .score-ring{width:44px;height:44px;border-radius:50%;flex-shrink:0;position:relative;background:conic-gradient(#C3CCDC 0% 100%);}
  .score-ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:#fff;}
  .score-ring span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#98A4B8;}
  .cc-score .txt b{display:block;font-size:12px;font-weight:800;color:var(--ink);}
  .cc-score .txt span{font-size:10px;color:#8792A0;}
  .cc-foot{margin-top:14px;padding-top:14px;border-top:1px solid rgba(21,32,54,.08);}
  .cc-foot-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
  .cc-foot-row:last-child{margin-bottom:0;}
  .cc-foot-row .cc-foot-lbl{font-size:9.5px;color:#98A5C0;text-transform:uppercase;letter-spacing:.05em;width:44px;flex-shrink:0;}

  /* ===== Leads (New Prospects / Working Leads) card-row restyle =====
     The underlying table/row/cell structure and all onclick/query wiring
     in renderLeadsTab/renderLeadsQueueTab is UNCHANGED — these rules just
     flex the real table markup into mockup-style rows via CSS, and the JS
     changes add a small avatar/name wrapper + badge markup inside specific
     cells rather than replacing the table with divs. */
  .leads-card-table{border-collapse:collapse;width:100%;}
  .leads-card-table thead{display:none;}
  .leads-card-table, .leads-card-table tbody{display:block;width:100%;}
  .leads-card-table tr{display:flex;align-items:center;gap:10px;width:100%;background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px 14px;margin-bottom:8px;cursor:pointer;transition:box-shadow .15s,transform .15s;box-shadow:0 1px 3px rgba(20,30,60,.05);}
  .leads-card-table tr:hover{box-shadow:0 8px 20px rgba(20,30,60,.10);transform:translateY(-1px);}
  .leads-card-table td{border:none;padding:0;vertical-align:middle;}
  .lr-avatar{width:38px;height:38px;border-radius:50%;background:var(--brand-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;}
  .lr-main{flex:1 1 auto;min-width:0;}
  .lr-name{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .lr-meta{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
  .lr-col-hidden{display:none;}
  .lr-badges{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;}
  .status-pill{display:inline-block;border-radius:20px;padding:3px 10px;font-size:10.5px;font-weight:700;white-space:nowrap;}
  .dispo-pill{display:inline-block;border-radius:20px;padding:3px 10px;font-size:10.5px;font-weight:600;white-space:nowrap;background:#EEF1F7;color:#5B6472;}
  .lr-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}
  .lr-actions .btn{padding:5px 10px;font-size:11px;}
  .leads-mix-strip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
  .leads-mix-chip{border-radius:20px;padding:5px 12px;font-size:11px;font-weight:700;background:#F2F5FA;color:var(--navy);}
  /* In-page tab row shared by #tab-prospects/#tab-leads/#tab-sales-link —
     one "Leads" sidebar entry, 3 tabs inside the page (mockup's .tabs-row). */
  .pill-tabs-row{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;}
  .pill-tab-btn{font-size:12px;font-weight:700;padding:7px 15px;border-radius:20px;background:rgba(21,32,54,.05);color:var(--muted);border:1px solid transparent;cursor:pointer;}
  .pill-tab-btn:hover{background:rgba(78,130,224,.1);color:var(--navy);}
  .pill-tab-btn.active{background:var(--brand-gradient);color:#fff;}

  /* Send Now / Schedule for Later segmented toggle on the Email Blast
     compose card — same "pill in a light-gray track" shape as the pill
     tabs above, sized for two short labels side by side instead. */
  .eb-mode-btn{background:transparent;color:var(--muted);}
  .eb-mode-btn.active{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(0,0,0,.08);}

  /* Sales Link tab — folded under the new Leads menu group, same visual
     language as New Prospects/Working Leads (glass-tinted chips, blue-
     gradient badges/buttons, soft row hover) applied on top of the existing
     table/checkbox/sortable-head structure, which is left untouched since
     bulk-select + column sorting depend on it. */
  #tab-sales-link .stat-grid .stat{background:linear-gradient(135deg,rgba(78,130,224,.08),rgba(72,180,201,.08));border:1px solid rgba(78,130,224,.16);}
  #tab-sales-link #slQuickNumbers > div{background:linear-gradient(135deg,rgba(78,130,224,.08),rgba(72,180,201,.08)) !important;border:1px solid rgba(78,130,224,.16);border-radius:20px !important;}
  #tab-sales-link table tr:hover{background:rgba(78,130,224,.06);}
  #tab-sales-link table{border-radius:14px;overflow:hidden;}
  .sl-product-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:10.5px;font-weight:700;background:linear-gradient(135deg,rgba(78,130,224,.16),rgba(72,180,201,.16));color:var(--navy);}

  /* Calendar tab restyle (calendar-preview.html) — calRenderMonthView/
     calRenderWeekView/calRenderDayView/calRenderListView now emit these
     classes instead of inline styles. Per-item colors still come from
     calResolveColor() as an inline override (custom event types have
     arbitrary colors that can't be hardcoded into a fixed CSS class), but
     the 4 built-in type colors below give the mockup's exact tinted-chip
     look when no custom color is set. */
  /* NOTE (fix, 2026-09-06): the mockup's cal-cell/week-col/agenda-row only
     read as "glass" because they sit on the mockup's own colorful radial-
     gradient page background — translucent white-on-white here (this app's
     .card is solid #fff, by design, same as every other tab) rendered as a
     flat, empty-looking grid with no visible cell boundaries. Switched to
     the same light blue/teal tinted-gradient treatment already proven
     visible against a white .card elsewhere in this theme (see the Sales
     Link .stat tiles below) instead of relying on translucency + a colored
     backdrop that doesn't exist here. */
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;}
  .cal-dow{font-size:10.5px;font-weight:800;color:#98A4B8;text-transform:uppercase;letter-spacing:.04em;text-align:center;padding-bottom:4px;}
  .cal-cell{background:linear-gradient(135deg,rgba(78,130,224,.05),rgba(72,180,201,.05));border:1px solid rgba(78,130,224,.14);border-radius:12px;min-height:96px;padding:6px;box-shadow:0 2px 8px rgba(30,60,120,.05);transition:box-shadow .15s,background .15s;cursor:pointer;}
  .cal-cell:hover{box-shadow:0 10px 24px rgba(30,60,120,.12);background:linear-gradient(135deg,rgba(78,130,224,.11),rgba(72,180,201,.11));}
  .cal-cell.other-month{opacity:.45;}
  .cal-cell.today{background:linear-gradient(135deg,rgba(78,130,224,.2),rgba(72,180,201,.15));border-color:rgba(78,130,224,.4);box-shadow:0 6px 16px rgba(60,120,220,.16);}
  .cal-daynum{font-size:11.5px;font-weight:700;color:var(--ink);margin-bottom:5px;}
  .cal-cell.today .cal-daynum{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--brand-gradient);color:#fff;}
  .cal-chip{display:block;font-size:9.5px;font-weight:700;padding:2px 6px;border-radius:5px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-left:3px solid transparent;}
  .cal-more{font-size:9.5px;color:var(--muted);font-weight:700;}
  .week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;}
  .week-col{background:linear-gradient(135deg,rgba(78,130,224,.04),rgba(72,180,201,.04));border:1px solid rgba(78,130,224,.14);border-radius:12px;overflow:hidden;min-height:220px;box-shadow:0 4px 14px rgba(30,60,120,.06);}
  .week-col.today{background:linear-gradient(135deg,rgba(78,130,224,.16),rgba(72,180,201,.12));border-color:rgba(78,130,224,.38);}
  .week-head{font-size:10.5px;font-weight:800;color:var(--muted);text-transform:uppercase;margin:0;text-align:center;padding:8px;}
  .week-head b{display:block;font-size:15px;color:var(--ink);margin-top:2px;font-weight:700;}
  .week-col.today .week-head, .week-col.today .week-head b{color:var(--navy);}
  .week-col-body{padding:6px;display:flex;flex-direction:column;gap:4px;cursor:pointer;min-height:170px;}
  .day-agenda{display:flex;flex-direction:column;gap:8px;max-width:640px;}
  .agenda-row{display:flex;gap:12px;align-items:flex-start;padding:10px;border-radius:12px;background:linear-gradient(135deg,rgba(78,130,224,.04),rgba(72,180,201,.04));border:1px solid rgba(78,130,224,.14);box-shadow:0 4px 14px rgba(30,60,120,.06);cursor:pointer;border-left:4px solid transparent;transition:box-shadow .15s,background .15s;}
  .agenda-row:hover{box-shadow:0 10px 24px rgba(30,60,120,.12);background:linear-gradient(135deg,rgba(78,130,224,.09),rgba(72,180,201,.09));}
  .agenda-time{font-size:11px;font-weight:800;color:var(--muted);width:64px;flex-shrink:0;padding-top:2px;}
  .agenda-body{flex:1;}
  .agenda-title{font-size:12.5px;font-weight:700;color:var(--ink);}
  .agenda-meta{font-size:10.5px;color:var(--muted);margin-top:2px;}
  .type-pill{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:800;padding:2px 8px;border-radius:20px;margin-top:5px;}
  .type-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
  .list-date-head{font-size:11px;font-weight:800;color:#98A4B8;text-transform:uppercase;letter-spacing:.03em;margin:16px 0 8px;}
  .list-date-head:first-child{margin-top:0;}
  /* Calendar toolbar (cal-toolbar/cal-nav/cal-nav-btn/cal-month-label) and
     the Month/Week/Day/List/Appointments view toggle (tabs-row/tab-btn) —
     straight from calendar-preview.html, not the app's default .btn.
     .tabs-row/.tab-btn is intentionally the same pill pattern as .pill-tabs-
     row/.pill-tab-btn (Leads/Sales Link) but kept as its own class pair
     since the mockup names it separately and toggles via data-cal-view
     rather than data-tab. */
  .cal-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px;}
  .cal-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .cal-nav-btn{width:30px;height:30px;border-radius:50%;background:rgba(21,32,54,.05);border:none;display:inline-flex;align-items:center;justify-content:center;font-size:13px;color:var(--ink);cursor:pointer;flex-shrink:0;transition:background .12s ease;}
  .cal-nav-btn:hover{background:rgba(78,130,224,.12);}
  .cal-month-label{font-size:15px;font-weight:800;color:var(--ink);min-width:150px;text-align:center;}
  .tabs-row{display:flex;gap:6px;flex-wrap:wrap;}
  .tab-btn{font-size:12px;font-weight:700;padding:7px 15px;border-radius:20px;background:rgba(21,32,54,.05);color:var(--muted);border:1px solid transparent;cursor:pointer;transition:background .12s ease,color .12s ease;}
  .tab-btn:hover{background:rgba(78,130,224,.1);color:var(--navy);}
  .tab-btn.active{background:var(--brand-gradient);color:#fff;}
  .cal-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px;font-size:11.5px;}
  .cal-legend label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--ink);font-weight:600;}
  .leg-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0;}

  /* Appointments view (5th tab inside Calendar) — apt-stats/apt-subtabs/
     apt-table, straight from calendar-preview.html. Real functionality
     (filters, Log an Appointment form, ICS download, delete) untouched;
     only the container classes changed — see calRenderAppointmentsPanel(). */
  .apt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:16px;}
  .apt-stat{background:linear-gradient(135deg,rgba(78,130,224,.06),rgba(72,180,201,.06));border:1px solid rgba(78,130,224,.16);border-radius:14px;padding:12px 14px;text-align:center;box-shadow:0 4px 14px rgba(30,60,120,.05);}
  .apt-stat .n{font-size:20px;font-weight:800;color:var(--navy);}
  .apt-stat .l{font-size:10.5px;color:var(--muted);font-weight:700;margin-top:2px;}
  .apt-subtabs{display:flex;gap:6px;margin-bottom:12px;}
  .apt-subtab{font-size:11.5px;font-weight:700;padding:6px 13px;border-radius:20px;background:rgba(21,32,54,.05);color:var(--muted);cursor:pointer;transition:background .12s ease,color .12s ease;}
  .apt-subtab:hover{background:rgba(78,130,224,.1);color:var(--navy);}
  .apt-subtab.active{background:var(--brand-gradient);color:#fff;}
  .apt-panel{display:none;}
  .apt-panel.active{display:block;}
  .apt-table{width:100%;border-collapse:collapse;font-size:12px;}
  .apt-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:#98A4B8;padding:6px 8px;border-bottom:1px solid var(--border);}
  .apt-table td{padding:9px 8px;border-bottom:1px solid rgba(21,32,54,.06);vertical-align:middle;}
  .apt-table tr:last-child td{border-bottom:none;}
  .apt-table tr:hover{background:rgba(78,130,224,.05);cursor:pointer;}
  .apt-type-chip{font-size:10px;font-weight:700;padding:2px 9px;border-radius:20px;background:#EAF1FF;color:#2566BC;}
  #tab-calendar .footnote{font-size:11.5px;color:#98A4B8;margin-top:14px;font-style:italic;}

  /* Nexus University (Learning & Development / Supplemental Training /
     Team Announcements / Agency Meetings) — university-preview.html theme.
     .qr-tab-btn is a generic underline-tab component reused all over the
     app (Prepaid Dashboard, Events detail, Tickets, Tasks, Quick Reference)
     so it's scoped to just #nuSubTabs here, restyled into the mockup's
     rounded .sub-btn pill look instead of changing the shared component. */
  #nuSubTabs, #nuMgrSubTabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:none;margin-bottom:16px;}
  #nuSubTabs.qr-tabs, #nuMgrSubTabs.qr-tabs{border-bottom:none;}
  #nuSubTabs .qr-tab-btn, #nuMgrSubTabs .qr-tab-btn{font-size:11.5px;font-weight:700;padding:6px 13px;border-radius:20px;background:rgba(21,32,54,.05);color:var(--muted);border:none;border-bottom:none;margin-bottom:0;}
  #nuSubTabs .qr-tab-btn:hover, #nuMgrSubTabs .qr-tab-btn:hover{background:rgba(78,130,224,.1);color:var(--navy);border-bottom:none;}
  #nuSubTabs .qr-tab-btn.active, #nuMgrSubTabs .qr-tab-btn.active{background:rgba(78,130,224,.14);color:var(--navy);border-bottom:none;}
  .mgr-tag{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:20px;background:#F3EEFB;color:#6B4FA0;margin-left:7px;vertical-align:middle;}
  /* Per-quiz cards keep the app's shared .card component (rich real content
     — score history, study guide, attempt table — that the mockup's
     simplified illustrative cards don't show) with a light tint added so
     they read as part of the same glass theme as everything else here. */
  #tab-nexus-university .qr-panel .card{background:linear-gradient(135deg,rgba(78,130,224,.045),rgba(72,180,201,.045));border:1px solid rgba(78,130,224,.14);}
  /* Per-quiz deadline chip (universityDeadlines/{quizId}) + the manager-only
     Set/Edit Deadline button next to it — real dates that drive the 48-hour
     reminder + Monday manager-report Cloud Functions, not decorative. */
  .nu-deadline-row{margin-top:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .nu-deadline-label{font-size:11.5px;font-weight:700;color:#2566BC;}
  .nu-deadline-label.overdue{color:var(--red);}
  /* Nexus University family (all 4 tabs + their modals, which render into
     the shared #modalRoot outside this section) use the same blue->teal
     gradient as the pill tabs above, instead of the app's default
     teal-leaning --brand-gradient .btn-primary, for visual consistency
     within this consolidated area. */
  #tab-nexus-university .btn-primary, #tab-announcements .btn-primary,
  #tab-supplemental-training .btn-primary, #tab-agency-meetings .btn-primary,
  #ntModalBg .btn-primary, #nuQuizModalBg .btn-primary, #nuReviewModalBg .btn-primary{
    background:var(--brand-gradient);box-shadow:0 3px 10px rgba(78,130,224,.28);
  }
  #tab-nexus-university .btn-primary:hover, #tab-announcements .btn-primary:hover,
  #tab-supplemental-training .btn-primary:hover, #tab-agency-meetings .btn-primary:hover,
  #ntModalBg .btn-primary:hover, #nuQuizModalBg .btn-primary:hover, #nuReviewModalBg .btn-primary:hover{
    box-shadow:0 5px 16px rgba(78,130,224,.38);
  }

  /* Supplemental Training / Team Announcements / Agency Meetings — one
     shared "post feed" engine (renderPostTab()/POST_KINDS) driving all 3
     tabs; only the feed-item's container/tag/acknowledge-state classes
     changed here, every real field and action (attachments, Canva link,
     acknowledge, View Acknowledgments, Delete) is untouched. */
  .feed-item{background:linear-gradient(135deg,rgba(78,130,224,.04),rgba(72,180,201,.04));border:1px solid rgba(78,130,224,.14);border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:0 4px 14px rgba(30,60,120,.05);}
  .feed-tag{display:inline-block;font-size:9.5px;font-weight:800;text-transform:uppercase;padding:2px 8px;border-radius:20px;background:#EAF1FF;color:#2566BC;vertical-align:middle;}
  .feed-action-badge{display:inline-block;background:var(--amber);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;vertical-align:middle;}
  .ack-done-pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--green);background:#E9F9EE;padding:5px 12px;border-radius:20px;}
  /* Compact "list of titles" row (Sep 2026) — replaces .feed-item as the
     list's own row; the full message/attachments/actions now live in
     openPostDetailModal(), opened on click, so scanning the list doesn't
     mean scrolling past every item's full body. Unread (not-yet-
     acknowledged) rows get the same amber tint .feed-item used to use. */
  .feed-row{background:linear-gradient(135deg,rgba(78,130,224,.04),rgba(72,180,201,.04));border:1px solid rgba(78,130,224,.14);border-radius:12px;padding:12px 16px;margin-bottom:8px;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease;}
  .feed-row:hover{box-shadow:0 4px 14px rgba(30,60,120,.1);transform:translateY(-1px);}
  .feed-row.feed-row-unread{border-color:rgba(224,167,60,.5);background:linear-gradient(135deg,rgba(224,167,60,.1),rgba(224,167,60,.04));}
  .feed-row-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .feed-row-title{font-size:14px;font-weight:700;color:var(--navy);}
  .feed-row-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:4px;}
  .feed-row-meta{font-size:11.5px;color:var(--muted);}
  .feed-row-tap{font-size:11.5px;font-weight:700;color:#2566BC;white-space:nowrap;}
  /* "+ New Post" composer header card — dashed accent border like the
     mockup's .composer-card, wrapping the real button + its description
     (unchanged); manager-only visibility (canManage) is unchanged. */
  #announcementComposerCard, #supplementalTrainingComposerCard, #agencyMeetingsComposerCard{background:rgba(78,130,224,.04);border:1px dashed rgba(78,130,224,.35);}

  /* Lead edit / Add Lead modal — floating glass-card look layered on top of
     the app's shared .modal-bg/.modal, scoped to these two modals only via
     the .lead-modal-glass modifier so no other modal in the app is affected. */
  .modal-bg.lead-modal-glass{background:rgba(15,25,45,.35);backdrop-filter:blur(4px);}
  .modal-bg.lead-modal-glass .modal{background:rgba(255,255,255,.85);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.6);box-shadow:0 24px 60px rgba(20,40,90,.25);}
  .modal-bg.lead-modal-glass .modal::before{background:var(--brand-gradient);}
  .lead-name-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 14px;}
  .call-record-card{background:#F5F8FD;border:1px solid rgba(72,140,220,.18);border-radius:12px;padding:12px 14px;margin:8px 0 4px;}
  .call-record-row{display:flex;justify-content:space-between;font-size:12px;color:var(--ink);padding:3px 0;}
  .call-record-row .crr-lbl{color:var(--muted);}

  /* ===== Soft Phone Dialer (mounted at document.body level, sibling of
     #modalRoot, to avoid the backdrop-filter containing-block trap that
     traps position:fixed descendants inside an ancestor with backdrop-filter
     — same root cause/fix as the Contacts product-catalog overlay.) ===== */
  #dialerFab{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;background:var(--brand-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 10px 26px rgba(37,102,188,.38);cursor:pointer;z-index:500;border:none;}
  #dialerFab:hover{transform:translateY(-2px);}
  #softphonePanel{position:fixed;right:24px;bottom:90px;width:300px;max-height:calc(100vh - 120px);background:rgba(255,255,255,.9);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.6);border-radius:18px;box-shadow:0 24px 60px rgba(20,40,90,.28);z-index:500;display:none;flex-direction:column;overflow:hidden;}
  #softphonePanel.open{display:flex;}
  .sp-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(21,32,54,.08);font-size:13px;font-weight:800;color:var(--navy);}
  .sp-head-title{display:flex;align-items:center;gap:7px;}
  .new-tag{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:20px;background:#FFF3E0;color:#95650F;margin-left:2px;vertical-align:middle;}
  .sp-head-actions{display:flex;gap:10px;align-items:center;}
  .sp-icon-btn{background:none;border:none;cursor:pointer;font-size:18px;color:#5B6472;padding:4px;line-height:1;border-radius:8px;}
  .sp-icon-btn:hover{background:rgba(78,130,224,.12);color:var(--navy);}
  .sp-body{padding:14px;overflow-y:auto;}
  .sp-lead-context{display:none;align-items:center;gap:10px;background:#F2F6FD;border-radius:12px;padding:8px 10px;margin-bottom:10px;}
  .sp-number-row{display:flex;gap:6px;margin-bottom:10px;}
  .sp-number-row input{flex:1;border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px;}
  .sp-confirm-strip{font-size:11px;color:#2566BC;background:#EEF4FE;border-radius:8px;padding:6px 8px;margin-bottom:8px;}
  .sp-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;}
  .sp-key{aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,rgba(78,130,224,.14),rgba(72,180,201,.14));border:1px solid rgba(78,130,224,.2);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--navy);cursor:pointer;user-select:none;transition:transform .08s ease,background .12s ease,color .12s ease,box-shadow .12s ease;}
  .sp-key.pressed{background:var(--brand-gradient);border-color:transparent;color:#fff;transform:scale(0.88);box-shadow:0 4px 14px rgba(60,120,220,.4);}
  .sp-call-row{margin-bottom:8px;}
  .sp-call-btn{display:block;text-align:center;background:var(--brand-gradient);color:#fff;text-decoration:none;border-radius:12px;padding:11px 0;font-size:13px;font-weight:700;}
  .sp-line-indicator{font-size:10.5px;color:var(--muted);text-align:center;margin-bottom:6px;}
  .sp-caption{font-size:10px;color:var(--muted);line-height:1.5;}
  .sp-wait,.sp-incall,.sp-wrapup{display:none;padding:14px;text-align:center;}
  .sp-wait.active,.sp-incall.active,.sp-wrapup.active{display:block;}
  .sp-avatar{width:48px;height:48px;border-radius:50%;background:var(--brand-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;margin:0 auto 8px;}
  .sp-lead-name{font-size:13.5px;font-weight:700;color:var(--ink);}
  .sp-timer{font-size:22px;font-weight:800;color:var(--navy);margin:4px 0 8px;font-variant-numeric:tabular-nums;}
  .sp-wrapup-title{font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:8px;}
  .sp-settings-panel,.sp-call-log-panel{display:none;padding:14px;}
  .sp-settings-panel.open,.sp-call-log-panel.active{display:block;}
  .sim-toggle{display:flex;gap:8px;margin-bottom:8px;}
  .sim-opt{flex:1;border:1px solid var(--border);border-radius:10px;padding:8px;text-align:center;font-size:11px;cursor:pointer;}
  .sim-opt.active{border-color:#4E82E0;background:#EEF4FE;color:#2566BC;font-weight:700;}
  .cl-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid rgba(21,32,54,.06);}
  .cl-ico{font-size:15px;}
  .cl-name{font-size:12px;font-weight:700;color:var(--ink);}
  .cl-meta{font-size:10.5px;color:var(--muted);}
  .cs-link{color:#2566BC;cursor:pointer;text-decoration:underline;}

  /* Quick Reference Guide modal — underlined tab switcher over a simple
     benefit table per product line. */
  .qr-tabs{display:flex;gap:20px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto;}
  .qr-tab-btn{background:none;border:none;padding:8px 2px;font-size:13px;font-weight:600;color:#718096;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;}
  .qr-tab-btn:hover{color:var(--navy);}
  .qr-tab-btn.active{color:var(--blue);border-bottom:2px solid var(--blue);}
  /* My Business Tracker's own sub-tab pills — visually identical to
     .qr-tab-btn, but a separate class on purpose: the Quick Reference
     modal's click-wiring does document.querySelectorAll(".qr-tab-btn")
     (unscoped), so reusing that class here would let it silently hijack
     these buttons' onclick handlers the next time that modal opens. */
  .biz-tab-btn{background:none;border:none;padding:8px 2px;font-size:13px;font-weight:600;color:#718096;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;}
  .biz-tab-btn:hover{color:var(--navy);}
  .biz-tab-btn.active{color:var(--blue);border-bottom:2px solid var(--blue);}
  /* Events tab — Overview/Registrations/Raffle sub-tab switcher inside an
     event's detail view. Same look as .qr-tab-btn, but its own class (like
     .biz-tab-btn above) since .qr-tab-btn's click-wiring is an unscoped
     querySelectorAll and would otherwise hijack these. */
  .ev-tab-btn{background:none;border:none;padding:8px 2px;font-size:13px;font-weight:600;color:#718096;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;}
  .ev-tab-btn:hover{color:var(--navy);}
  .ev-tab-btn.active{color:var(--blue);border-bottom:2px solid var(--blue);}
  .ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}
  .ev-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .15s,box-shadow .15s;}
  .ev-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
  .ev-card .ev-cover{height:56px;background:var(--brand-gradient);position:relative;}
  .ev-card .ev-cover .ev-badge{position:absolute;top:9px;right:9px;}
  .ev-card .ev-body{padding:14px 16px;}
  .ev-card .ev-body h4{margin:0 0 4px;font-size:14.5px;color:var(--navy);}
  .ev-card .ev-meta{font-size:11.5px;color:#718096;margin:2px 0;}
  .ev-card .ev-stats{display:flex;gap:14px;margin-top:10px;font-size:11.5px;color:#4A5568;}
  .ev-badge{display:inline-block;border-radius:20px;padding:3px 11px;font-size:10.5px;font-weight:700;}
  .ev-badge-upcoming{background:#EAF1FA;color:var(--navy);}
  .ev-badge-live{background:#E6F9F4;color:var(--teal-dark);}
  .ev-badge-closed{background:var(--grey);color:#718096;}
  .ev-prize-row{display:flex;gap:10px;align-items:center;background:var(--grey);border-radius:9px;padding:8px 10px;margin-bottom:8px;}
  .ev-prize-row input{flex:1;}
  .ev-prize-row .ev-rank{background:var(--gold);color:#fff;font-size:11px;font-weight:700;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .ev-qr-box{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px;text-align:center;width:220px;}
  .ev-prize-card{border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;transition:box-shadow .3s ease, border-color .3s ease;}
  .ev-prize-card.won{background:#FFFBEB;border-color:var(--gold);}
  .ev-prize-card.justWon{animation:evCardGlow 1.1s ease-in-out 3;}
  .ev-winner-reveal{font-size:15px;font-weight:700;color:var(--teal-dark);}
  .ev-winner-reveal.spinning{color:#718096;font-weight:600;animation:evSpinPulse .18s ease-in-out infinite;}
  .ev-winner-reveal.justWon{
    font-size:19px;
    animation:evWinnerPop .55s cubic-bezier(.34,1.56,.64,1), evWinnerColorCycle 1.6s linear 3;
    background:linear-gradient(90deg,#F5A623,#2ECC71,#3498DB,#9B59B6,#E74C3C,#F5A623);
    background-size:300% 100%;
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  @keyframes evCardGlow{
    0%,100%{ box-shadow:0 0 0 0 rgba(245,166,35,.55); }
    50%{ box-shadow:0 0 0 12px rgba(245,166,35,0); }
  }
  @keyframes evWinnerPop{
    0%{ transform:scale(.4); opacity:0; }
    60%{ transform:scale(1.18); opacity:1; }
    100%{ transform:scale(1); }
  }
  @keyframes evWinnerColorCycle{
    0%{ background-position:0% 50%; }
    100%{ background-position:300% 50%; }
  }
  @keyframes evSpinPulse{
    0%,100%{ transform:scale(1); }
    50%{ transform:scale(1.04); }
  }
  /* Customer Card (IFG Edit Sale) two-tab switcher */
  .ie-tab-btn{background:var(--grey);color:#4A5568;border-color:var(--border);}
  .ie-tab-btn-active{background:#fff;color:var(--blue);border-color:var(--blue);font-weight:600;}
  .qr-panel{display:none;}
  .qr-panel.active{display:block;}
  .qr-table{width:100%;border-collapse:collapse;font-size:13px;}
  .qr-table th{text-align:left;padding:8px 10px;background:#F4F6F9;color:#5A6472;font-weight:600;border-bottom:1px solid var(--border);}
  .qr-table td{padding:8px 10px;border-bottom:1px solid #eee;}
  .qr-table tr:last-child td{border-bottom:none;}
  /* MyMaxicare Calculator — blue-palette variant of .qr-table, scoped so it
     doesn't affect any other Quick Reference table. */
  .mmcalc-table{border:1px solid var(--border);border-radius:8px;overflow:hidden;}
  .mmcalc-table thead th{background:var(--navy);color:#fff;font-weight:700;border-bottom:none;}
  .mmcalc-table tbody tr:nth-child(even):not(.mmcalc-row-member):not(.mmcalc-row-total){background:#F7FAFD;}
  .mmcalc-table .mmcalc-row-coverage td{background:#EAF1FA;color:var(--navy);font-weight:600;}
  .mmcalc-table .mmcalc-row-member td{background:var(--blue);color:#fff;font-weight:700;padding-top:9px;padding-bottom:9px;}
  .mmcalc-table .mmcalc-row-subtotal td{background:#DCE9FA;font-weight:700;border-top:1px solid var(--blue-light);}
  .mmcalc-table .mmcalc-row-total td{background:var(--navy-dark);color:#fff;font-weight:700;font-size:13.5px;}
  .qr-search{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;margin-bottom:14px;}
  .qr-group-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--blue);margin:16px 0 8px;}
  .qr-group-title:first-child{margin-top:0;}
  .qr-product-card{border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:#FAFBFD;}
  .qr-product-header{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;margin-bottom:4px;}
  .qr-product-header span{color:var(--green);font-weight:700;font-size:13px;}
  .qr-product-tagline{font-size:12px;color:#5A6472;margin-bottom:8px;font-style:italic;}
  .qr-benefit-list{margin:0;padding-left:18px;font-size:12.5px;line-height:1.6;color:#333;}
  .qr-benefit-list li{margin-bottom:3px;}
  .qr-preexisting-badge{display:inline-block;background:#E8F5E9;color:#1B5E20;font-weight:700;font-size:11px;padding:3px 8px;border-radius:6px;margin:2px 0 6px;letter-spacing:.2px;}
  .qr-section-label{font-size:12px;font-weight:700;color:var(--blue);margin:10px 0 4px;text-transform:uppercase;letter-spacing:.3px;}
  .qr-section-label:first-of-type{margin-top:8px;}
  .qr-sub-heading{font-size:12.5px;font-weight:600;color:#333;margin:6px 0 2px;}
  .qr-sublist{padding-left:24px;margin-bottom:6px;}
  .qr-order-cta{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border);font-size:12.5px;font-weight:600;color:var(--navy);}
  .qr-order-cta a{color:var(--blue);word-break:break-all;}

  /* ---- Nexus University: self-paced training player -------------------
     Every screen type shares one accent color, set via the --nt-accent CSS
     custom property on the modal wrapper (one value per training module,
     picked from the app's existing palette vars) so all of these rules stay
     generic instead of needing a class per module/color. */
  .nt-kicker{font-size:11.5px;font-weight:700;letter-spacing:.2px;color:var(--nt-accent);margin-bottom:6px;display:flex;align-items:center;gap:6px;}
  .nt-kicker::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--nt-accent);}
  .nt-title{font-family:Cambria,Georgia,"Times New Roman",serif;font-size:24px;font-weight:800;letter-spacing:-.2px;color:var(--navy-dark);margin:0 0 8px;}
  .nt-subtitle{font-size:13px;color:#718096;font-style:italic;margin-bottom:14px;}
  .nt-accent-bar{height:6px;background:var(--nt-accent);margin:-24px -24px 20px -24px;}
  .nt-progress-row{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:#718096;margin-bottom:6px;}
  .nt-progress-wrap{background:#E9EDF1;border-radius:8px;height:7px;overflow:hidden;margin-bottom:16px;}
  .nt-progress-bar{background:var(--nt-accent);height:100%;transition:width .25s ease;}
  .nt-screen{min-height:300px;}
  .nt-objective-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;}
  .nt-icon-circle{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--nt-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;box-shadow:0 2px 6px rgba(10,20,40,.18);}
  .nt-stat-box{background:var(--nt-accent);color:#fff;border-radius:14px;padding:18px;text-align:center;margin-top:10px;box-shadow:0 10px 24px rgba(10,20,40,.22);}
  .nt-stat-box .nt-stat-num{font-family:Cambria,Georgia,serif;font-size:38px;font-weight:800;line-height:1.1;}
  .nt-stat-box .nt-stat-label{font-size:12px;opacity:.92;margin-top:4px;}
  .nt-card{border:none;border-radius:12px;padding:14px;background:#FAFBFD;background:color-mix(in srgb, var(--nt-accent) 7%, white);margin-bottom:10px;box-shadow:0 1px 3px rgba(10,20,40,.06);}
  .nt-pill{display:inline-block;background:var(--nt-accent);color:#fff;font-size:11.5px;font-weight:700;padding:4px 12px;border-radius:14px;}
  .nt-note{background:#F4F6F9;background:color-mix(in srgb, var(--nt-accent) 6%, #F4F6F9);border-left:3px solid var(--nt-accent);border-radius:0 8px 8px 0;padding:10px 12px;font-size:12px;color:#5A6472;margin-top:10px;}
  .nt-section-label{font-family:Cambria,Georgia,serif;font-size:14px;font-weight:700;letter-spacing:0;color:#5A6472;color:color-mix(in srgb, var(--nt-accent) 78%, black);margin:14px 0 6px;}
  /* Grouped card wrapper used by "rules" screens (CI illness groups, enrollment rules, etc.) */
  .nt-rules-block{background:#FAFBFD;background:color-mix(in srgb, var(--nt-accent) 6%, white);border-radius:12px;padding:12px 14px;margin-bottom:10px;}
  .nt-rules-block .nt-section-label{margin-top:0;}
  .nt-rules-item{font-size:13px;line-height:1.45;margin-bottom:6px;color:#333;}
  .nt-rules-item:last-child{margin-bottom:0;}
  /* Tables inside the training player — navy/accent header + banded rows, rounded + clipped wrapper */
  .nt-table-wrap{border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(10,20,40,.08);margin-bottom:8px;}
  .nt-table-wrap .qr-table{font-size:12.5px;}
  .nt-table-wrap .qr-table th{background:var(--nt-accent);color:#fff;font-weight:700;text-transform:uppercase;font-size:10.5px;letter-spacing:.3px;padding:10px 12px;border-bottom:none;}
  .nt-table-wrap .qr-table td{padding:9px 12px;border-bottom:none;}
  .nt-table-wrap .qr-table tr:nth-child(even) td{background:#F4F6F9;background:color-mix(in srgb, var(--nt-accent) 5%, #F4F6F9);}
  /* Flip card — click toggles .nt-flipped on the wrapper */
  .nt-flip{perspective:1200px;min-height:260px;cursor:pointer;}
  .nt-flip-inner{position:relative;width:100%;height:100%;min-height:260px;transition:transform .5s;transform-style:preserve-3d;}
  .nt-flip.nt-flipped .nt-flip-inner{transform:rotateY(180deg);}
  .nt-flip-face{position:absolute;inset:0;backface-visibility:hidden;border:1px solid var(--border);border-radius:12px;padding:18px;background:#fff;overflow-y:auto;}
  .nt-flip-back{transform:rotateY(180deg);background:#FAFBFD;background:color-mix(in srgb, var(--nt-accent) 7%, white);}
  .nt-flip-hint{text-align:center;font-size:11.5px;color:var(--nt-accent);font-weight:600;margin-top:8px;}
  /* Watch-out myth/fact reveal card */
  .nt-watch-card{display:flex;align-items:flex-start;gap:12px;border:none;border-radius:12px;padding:14px;margin-bottom:10px;cursor:pointer;background:#FAFBFD;background:color-mix(in srgb, var(--nt-accent) 6%, white);transition:background .15s;box-shadow:0 1px 3px rgba(10,20,40,.06);}
  .nt-watch-card:hover{background:#F4F6F9;background:color-mix(in srgb, var(--nt-accent) 10%, white);}
  .nt-watch-icon{flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--nt-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;box-shadow:0 2px 6px rgba(10,20,40,.18);}
  .nt-watch-body{flex:1 1 auto;min-width:0;}
  .nt-watch-myth{font-size:12.5px;font-style:italic;color:#333;}
  .nt-watch-reveal{font-size:11.5px;color:var(--nt-accent);font-weight:700;margin-top:6px;}
  .nt-watch-fact{display:none;font-size:12.5px;color:#1E8E3E;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);}
  .nt-watch-card.nt-revealed .nt-watch-fact{display:block;}
  .nt-watch-card.nt-revealed .nt-watch-reveal{display:none;}
  /* Interactive quiz */
  .nt-quiz-q{font-family:Cambria,Georgia,serif;font-size:15.5px;font-weight:700;color:var(--navy-dark);margin-bottom:12px;}
  .nt-quiz-choice{display:block;width:100%;text-align:left;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:13px;margin-bottom:8px;cursor:pointer;transition:background .15s,border-color .15s;}
  .nt-quiz-choice:hover:not(:disabled){border-color:var(--nt-accent);}
  .nt-quiz-choice:disabled{cursor:default;}
  .nt-quiz-choice.nt-correct{background:#E9F7EF;border-color:#1E8E3E;color:#1E8E3E;font-weight:700;}
  .nt-quiz-choice.nt-wrong{background:#FCEDEB;border-color:#C0392B;color:#C0392B;font-weight:700;}
  .nt-quiz-feedback{font-size:12.5px;padding:10px 12px;border-radius:8px;margin-top:6px;}
  .nt-quiz-feedback.nt-fb-right{background:#E9F7EF;color:#1E8E3E;}
  .nt-quiz-feedback.nt-fb-wrong{background:#FCEDEB;color:#C0392B;}
  .nt-score-ring{width:110px;height:110px;border-radius:50%;background:var(--nt-accent);color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;margin:0 auto 16px;box-shadow:0 10px 24px rgba(10,20,40,.22);}
  .nt-score-ring .nt-score-num{font-family:Cambria,Georgia,serif;font-size:26px;font-weight:800;}
  .nt-score-ring .nt-score-den{font-size:11px;opacity:.9;}
  .nt-nav-row{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:14px;border-top:1px solid var(--border);}
  .qr-accordion-item{border:1px solid var(--border);border-radius:8px;margin-bottom:8px;overflow:hidden;}
  .qr-accordion-header{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:#FAFBFD;border:none;cursor:pointer;text-align:left;font-size:13px;}
  .qr-accordion-header:hover{background:var(--light);}
  .qr-accordion-title{font-weight:600;color:var(--navy);}
  .qr-accordion-meta{font-size:11.5px;color:#718096;display:flex;align-items:center;gap:6px;white-space:nowrap;}
  .qr-accordion-chevron{display:inline-block;transition:transform .15s;color:var(--blue);}
  .qr-accordion-item.open .qr-accordion-chevron{transform:rotate(90deg);}
  .qr-accordion-body{display:none;padding:12px 14px;border-top:1px solid var(--border);font-size:12.5px;color:#333;}
  .qr-accordion-item.open .qr-accordion-body{display:block;}
  .qr-subgroup{margin-bottom:12px;}
  .qr-subgroup:last-child{margin-bottom:0;}
  .qr-subgroup b{display:block;margin-bottom:4px;color:var(--navy);font-size:12.5px;}
  .qr-note{font-size:11.5px;color:#718096;font-style:italic;}
  .et-template-card{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:#FAFBFD;}
  .et-template-header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px;}
  .et-template-subject{font-size:12.5px;color:#4A5568;margin-bottom:6px;}
  .et-template-body{font-size:12px;color:#718096;white-space:pre-wrap;max-height:60px;overflow:hidden;margin-bottom:8px;}
  .et-template-meta{font-size:11px;color:#A0AEC0;margin-bottom:8px;}
  /* Index-card style sections used on the IFG client card — each section is
     its own tile with a header (always visible, shows a quick summary) and
     a body that expands/collapses on click, so the card reads at a glance
     without every field open at once. */
  .section-tile{border:1px solid var(--border);border-radius:11px;margin-bottom:10px;overflow:hidden;box-shadow:var(--shadow-sm);}
  .section-tile-header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;background:linear-gradient(180deg,#F9FBFD,#F2F5F9);user-select:none;transition:background .15s ease;}
  .section-tile-header:hover{background:linear-gradient(180deg,#F2F6FA,#E9EFF5);}
  .section-tile.open .section-tile-header{box-shadow:inset 0 -1px 0 var(--border);}
  .section-tile-title{font-size:14px;font-weight:600;color:var(--navy);}
  .section-tile-summary{font-size:12px;color:#718096;margin-top:2px;}
  .section-tile-chevron{font-size:12px;color:#A0AEC0;transition:transform .15s ease;flex-shrink:0;}
  .section-tile.open .section-tile-chevron{transform:rotate(90deg);}
  .section-tile-body{display:none;padding:14px;border-top:1px solid var(--border);}
  .section-tile.open .section-tile-body{display:block;}
  code{background:#EEF2F6;padding:1px 5px;border-radius:4px;font-size:12px;}
  ol.setup li{margin-bottom:10px;font-size:13px;}
  .ref-obj{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid #eee;}
  .ref-obj b{color:var(--navy);}
  textarea#configBox{font-family:monospace;font-size:12px;min-height:130px;}
  .up-next{background:#EAF3FF;border:1px solid #BBD6F5;border-radius:10px;padding:16px;margin-bottom:14px;}
  .up-next h4{margin:0 0 8px;color:var(--navy);font-size:14px;}
  .queue-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #eee;font-size:13px;gap:10px;}
  .queue-item:last-child{border-bottom:none;}
  .status-pill{padding:3px 8px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap;background:#F0F0F0;color:#555;}
  .status-New{background:#DCEBFF;color:var(--blue);}
  .status-InProgress{background:#FCE8B2;color:var(--amber);}
  .status-DoNotCall{background:#FCEAE8;color:var(--red);}
  .status-NotStarted{background:#F0F0F0;color:#555;}
  .status-Completed{background:#D2F1DA;color:var(--green);}
  .status-Cancelled{background:#F0F0F0;color:#999;text-decoration:line-through;}
  .status-Active{background:#DCEBFF;color:var(--blue);}
  .status-Renewed{background:#D2F1DA;color:var(--green);}
  .status-Lapsed{background:#FCE8B2;color:var(--amber);}
  .status-ClosedSale{background:#D2F1DA;color:var(--green);}
  .status-ProposalSubmitted{background:#F0E6FA;color:#5B2A9E;}
  .status-ApplicationSubmitted{background:#FCE8B2;color:var(--amber);}
  /* IFG Sales taxonomy (Aug 2026 redesign) */
  .status-CancelledApplication{background:#F0F0F0;color:#999;text-decoration:line-through;}
  .status-DNR{background:#FCEAE8;color:var(--red);}
  .status-Suspended{background:#FCE8B2;color:var(--amber);}
  .status-ProposalSent{background:#F0E6FA;color:#5B2A9E;}
  .status-WaitingforPayment{background:#FCE8B2;color:var(--amber);}
  .status-LostDuetoPrice, .status-LostDidnotReply, .status-LostTransferredtoPrepaid, .status-LostTransferredtoSME, .status-LostOtherProvider, .status-LostOtherAgent{background:#FCEAE8;color:var(--red);}
  .import-msg{margin-top:10px;font-size:13px;}
  /* Subtle "chip" pop on every pill/badge, whatever its color — added once
     here rather than per-class so the many status/dispo/priority/role/
     section color rules above stay untouched. */
  .status-pill,.badge,.dispo-pill,.priority-pill,.role-badge,.section-badge{box-shadow:0 1px 2px rgba(20,30,60,.08);}
  @keyframes cardPop{
    from{ opacity:0; transform:translateY(16px) scale(.96); }
    to{ opacity:1; transform:translateY(0) scale(1); }
  }
  /* NAS Portal rebrand: replaces the old dark-navy overlay (which also
     dragged in the retired nexus-bg-pattern.jpg image) with the light-glass
     background already proposed/approved in external-pages-theme-preview.html
     — matches the light, teal/blue-tinted look the rest of the CRM (sidebar,
     cards, buttons) already uses, instead of every sign-in/public page being
     the odd one out with the old dark theme. */
  .auth-overlay{position:fixed;inset:0;background:radial-gradient(1100px 560px at 12% -8%, #EAF2FF 0%, #fff 45%), radial-gradient(900px 500px at 100% 30%, #EAFBF6 0%, #fff 55%);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;overflow-y:auto;}
  .auth-overlay{align-items:safe center;}
  .auth-flip-outer{width:100%;max-width:380px;perspective:1400px;animation:cardPop .55s cubic-bezier(.2,.8,.3,1) both;}
  .flip-card{position:relative;width:100%;height:600px;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.4,.1,.2,1);}
  .flip-card.flipped{transform:rotateY(180deg);}
  .auth-face{position:absolute;inset:0;background:#fff;border-radius:16px;padding:34px;border:1px solid rgba(21,32,54,.06);box-shadow:0 26px 60px rgba(30,60,120,.16);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow-y:auto;display:flex;flex-direction:column;}
  .auth-face-back{transform:rotateY(180deg);}
  .auth-card{background:#fff;border-radius:16px;padding:36px;max-width:380px;width:100%;min-width:0;border:1px solid rgba(21,32,54,.06);box-shadow:0 26px 60px rgba(30,60,120,.16);position:relative;z-index:1;}
  .auth-face h2,.auth-card h2{margin:0 0 4px;color:var(--navy);font-size:20px;font-weight:700;}
  .auth-face p.sub,.auth-card p.sub{font-size:13px;color:#718096;margin:0 0 22px;}
  /* NAS Portal rebrand: renders the real NAS Portal logo image
     (assets/nas-portal-logo.png) — replaces both the old nexus-logo.png
     image and the interim plain-gradient "N" monogram badge. */
  .auth-logo{width:44px;height:44px;object-fit:contain;margin-bottom:14px;flex-shrink:0;}
  .auth-credit{margin-top:auto;padding-top:14px;text-align:center;font-size:11px;color:#b7c3d6;}
  .auth-error{background:#FCEAE8;color:var(--red);border-radius:8px;padding:8px 12px;font-size:13px;margin-top:10px;}
  .auth-links{display:flex;justify-content:space-between;margin-top:14px;font-size:12px;}
  .auth-links a{color:var(--blue);cursor:pointer;text-decoration:underline;}
  .role-badge{padding:2px 9px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;}
  .role-manager{background:#E8DEF8;color:#5B2A9E;}
  .role-agent{background:#D2F1DA;color:var(--green);}
  .role-agencyunithead{background:#DCE9FB;color:var(--navy);}
  .user-chip{font-size:12px;color:#cfe0f5;display:flex;align-items:center;gap:8px;}
  .flag-warn{background:#FFF4E0;border:1px solid #F0C36D;border-radius:8px;padding:8px 12px;font-size:12px;color:#7A5B00;margin:4px 0;}
  .pw-field{position:relative;}
  .pw-field input{padding-right:38px;}
  .pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:16px;padding:6px 8px;line-height:1;opacity:.55;}
  .pw-toggle:hover{opacity:1;}
  .remember-row{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:13px;font-weight:normal;color:#4A5568;cursor:pointer;}
  .remember-row input{width:auto;margin:0;}
  .email-suffix-field{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff;}
  .email-suffix-field input{border:none;border-radius:0;flex:1;min-width:0;}
  .email-suffix-field input:focus{box-shadow:none;}
  .email-suffix-field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,102,188,.12);}
  .email-suffix-field .email-suffix{display:flex;align-items:center;padding:0 10px;background:#F4F6F8;color:#718096;font-size:13px;white-space:nowrap;border-left:1px solid var(--border);}
  .nav-badge{display:inline-block;background:var(--red);color:#fff;border-radius:10px;padding:1px 7px;font-size:10px;font-weight:700;margin-left:6px;vertical-align:middle;}
  .copy-field{display:flex;gap:8px;margin-bottom:2px;}
  .copy-field input{flex:1;}
  .copy-field .btn{flex-shrink:0;white-space:nowrap;}
  .section-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;white-space:nowrap;}
  .section-Prepaid{background:#DCEBFF;color:var(--blue);}
  .section-IFG{background:#E8DEF8;color:#5B2A9E;}
  .section-SME{background:#FCE8B2;color:var(--amber);}
  .section-Corp{background:#D2F1DA;color:var(--green);}
  /* Consultant's Dashboard (Sep 2026) — the one deliberate spot in the app
     that uses a purple gradient, matching the public Booking page's theme,
     kept to just this hero band rather than recoloring the whole tab. */
  .mydash-hero{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#6C5CE7,#4C8DFF);border-radius:14px;padding:22px 26px;color:#fff;position:relative;overflow:hidden;}
  .mydash-hero::after{content:"";position:absolute;right:-50px;top:-50px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.10);}
  .mydash-avatar{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.18);border:2px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex-shrink:0;position:relative;z-index:1;}
  .mydash-hero-name{font-size:18px;font-weight:700;position:relative;z-index:1;}
  .mydash-hero-role{font-size:12.5px;opacity:.85;margin-top:2px;position:relative;z-index:1;}
  .mydash-hero-greet{margin-left:auto;text-align:right;font-size:12px;opacity:.85;position:relative;z-index:1;}
  .mydash-hero-greet b{display:block;font-size:13.5px;opacity:1;}
  .mydash-prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
  .mydash-prod-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:14px;}
  .mydash-prod-card.clickable{cursor:pointer;}
  .mydash-prod-card.clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--teal);}
  .mydash-prod-card h4{margin:0 0 8px;font-size:12.5px;font-weight:700;color:var(--navy);display:flex;justify-content:space-between;align-items:center;}
  .mydash-barlist{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
  .mydash-barlist .brow{display:grid;grid-template-columns:112px 1fr 20px;align-items:center;gap:8px;font-size:11.5px;}
  .mydash-barlist .name{color:#718096;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mydash-barlist .track{background:var(--grey);border-radius:6px;height:8px;overflow:hidden;}
  .mydash-barlist .fill{height:100%;background:var(--brand-gradient);border-radius:6px;}
  .mydash-barlist .n{font-weight:700;text-align:right;}
  .mydash-corp-solo{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:12px;}
  .mydash-corp-solo .big{font-size:30px;font-weight:800;color:var(--navy);}
  .mydash-corp-solo .t{font-size:11.5px;color:#718096;margin-top:2px;}
  .mydash-value-callout{display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
  .mydash-value-callout .amt{font-size:28px;font-weight:800;color:var(--navy);}
  .mydash-value-callout .lab{font-size:11.5px;color:#718096;text-transform:uppercase;letter-spacing:.04em;font-weight:600;}
  .mydash-value-callout .split{margin-left:auto;display:flex;gap:24px;}
  .mydash-value-callout .split div{text-align:right;}
  .mydash-value-callout .split .n{font-size:15px;font-weight:700;}
  .mydash-value-callout .split .t{font-size:11px;color:#718096;}
  .mydash-list li{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px;list-style:none;gap:10px;}
  .mydash-list li:last-child{border-bottom:none;}
  .mydash-list .who{font-weight:600;color:var(--ink);}
  .mydash-list .meta{color:#718096;font-size:12px;}
  .mydash-pill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:10px;white-space:nowrap;}
  .mydash-pill.good{background:rgba(30,142,62,.12);color:var(--green);}
  .mydash-pill.warn{background:rgba(224,167,60,.15);color:var(--amber);}
  .mydash-pill.bad{background:rgba(192,57,43,.12);color:var(--red);}
  @media(max-width:980px){.mydash-prod-grid{grid-template-columns:repeat(2,1fr);}}
  .notif-panel{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.16);width:300px;max-height:340px;overflow-y:auto;padding:8px;z-index:60;text-align:left;}
  .notif-item{padding:8px 10px;border-bottom:1px solid #eee;font-size:12px;color:#333;}
  .notif-item:last-child{border-bottom:none;}
  .notif-item.notif-overdue{background:#FCEAE8;color:var(--red);border-radius:8px;margin-bottom:4px;border-bottom:none;}
  .notif-item.notif-birthday{background:#F0E6FA;color:#5B2A9E;border-radius:8px;margin-bottom:4px;border-bottom:none;}
  /* Softer scrollbars (WebKit/Blink only — degrades to default elsewhere) */
  ::-webkit-scrollbar{width:10px;height:10px;}
  ::-webkit-scrollbar-track{background:transparent;}
  ::-webkit-scrollbar-thumb{background:#C7D2E0;border-radius:10px;border:2px solid #F4F7FB;}
  ::-webkit-scrollbar-thumb:hover{background:#AFC0D6;}
  #sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-color:transparent;}
  #sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3);}

  /* ---- Add Product Preview prototype (client-side only, not wired to real Sales) ---- */
  .apv-banner{display:flex;align-items:center;gap:8px;background:#FFF7E6;border:1px solid #F3DFA6;color:#8A6116;font-size:11.5px;font-weight:700;padding:8px 11px;border-radius:9px;margin-bottom:14px;}
  .apv-line-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:16px;}
  .apv-line-btn{border:1.5px solid var(--border);border-radius:11px;padding:12px 10px;text-align:center;cursor:pointer;background:#fff;font-size:12.5px;font-weight:700;color:#5B6472;}
  .apv-line-btn.selected{border-color:var(--teal);background:#F1FCFA;color:var(--teal-dark);}
  .apv-line-btn .apv-line-ico{font-size:20px;display:block;margin-bottom:4px;}
  .apv-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;}
  .apv-field-grid label{font-size:11px;font-weight:600;color:#5B6472;display:block;margin-bottom:4px;}
  .apv-field-grid input,.apv-field-grid select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:12.5px;background:#fff;box-sizing:border-box;}
  .apv-acct-pick{display:flex;gap:8px;margin-bottom:12px;}
  .apv-acct-opt{flex:1;text-align:center;border:1.5px solid var(--border);border-radius:10px;padding:9px 8px;cursor:pointer;font-size:12px;font-weight:700;color:#5B6472;}
  .apv-acct-opt.selected{border-color:var(--teal);background:#F1FCFA;color:var(--teal-dark);}
  .apv-group-row{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#5B6472;margin:4px 0 10px;}
  .apv-member{border:1px solid var(--border);border-radius:10px;padding:11px 12px;margin-bottom:9px;background:#FAFBFD;}
  .apv-member-head{display:flex;align-items:center;gap:9px;margin-bottom:9px;}
  .apv-avatar{width:26px;height:26px;border-radius:50%;background:var(--brand-gradient);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .apv-member-name{font-size:12.5px;font-weight:700;color:var(--ink);flex:1;}
  .apv-member-x{color:#B7C0CD;cursor:pointer;font-size:15px;padding:0 4px;}
  .apv-member-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;}
  .apv-member-fields label{font-size:10px;font-weight:700;color:#8792A0;display:block;margin-bottom:3px;text-transform:uppercase;letter-spacing:.03em;}
  .apv-member-fields select,.apv-member-fields input{width:100%;padding:7px 8px;border:1px solid var(--border);border-radius:7px;font-size:12px;box-sizing:border-box;}
  .apv-rider-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:12px;}
  .apv-rider-row input[type="checkbox"]{width:14px;height:14px;flex-shrink:0;}
  .apv-rider-row input[type="number"]{width:90px;padding:5px 7px;border:1px solid var(--border);border-radius:6px;font-size:11.5px;}
  .apv-rider-row.disabled{opacity:.45;}
  .apv-addon-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px;}
  .apv-addon-row input[type="checkbox"]{width:14px;height:14px;flex-shrink:0;}
  .apv-subtotal{margin-top:6px;padding-top:8px;border-top:1px dashed var(--border);display:flex;justify-content:space-between;font-size:11.5px;font-weight:700;color:var(--navy);}
  .apv-add-member-btn{width:100%;border:1.5px dashed var(--border);border-radius:9px;padding:9px;text-align:center;font-size:12px;font-weight:700;color:var(--blue);background:#fff;cursor:pointer;margin-bottom:10px;}
  .apv-prepaid-item{border:1px solid var(--border);border-radius:8px;padding:9px 10px;margin-bottom:7px;background:#fff;}
  .apv-add-prepaid-btn{width:100%;border:1.5px dashed var(--border);border-radius:8px;padding:7px;text-align:center;font-size:11.5px;font-weight:700;color:var(--teal-dark);background:#F7FEFC;cursor:pointer;margin-bottom:9px;}
  .apv-total-bar{margin-top:6px;padding:12px 14px;background:linear-gradient(135deg,#EAF6F4,#F3FBFA);border:1px solid #BFEBDD;border-radius:10px;display:flex;justify-content:space-between;align-items:center;}
  .apv-total-bar .apv-total-lab{font-size:11.5px;font-weight:700;color:var(--teal-dark);}
  .apv-total-bar .apv-total-amt{font-size:19px;font-weight:800;color:var(--navy);}
  .apv-summary-box{border:1px solid var(--border);border-radius:11px;padding:14px 16px;background:#FAFBFD;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:1.7;white-space:pre-wrap;max-height:340px;overflow-y:auto;}
  /* ---- Messenger inbox (Sep 2026) — #tab-messenger, see
     js/app/features/messenger-inbox.js. Two columns (list + chat) on
     desktop; on phones one column at a time — opening a chat adds
     .thread-open to .msgr-grid, which swaps the list for the chat (with a
     back arrow). ---- */
  .msgr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
  .msgr-sub{font-size:12px;color:var(--muted);margin-top:3px;}
  .msgr-page-chip{display:inline-block;background:var(--light);color:var(--navy);border-radius:12px;padding:2px 9px;font-size:12px;margin-right:4px;}
  .msgr-filters{display:flex;gap:16px;border-bottom:1px solid var(--border);margin:6px 0 0;overflow-x:auto;}
  .msgr-grid{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:0;border:1px solid var(--border);border-top:none;border-radius:0 0 12px 12px;min-height:520px;background:rgba(255,255,255,.55);}
  .msgr-list{border-right:1px solid var(--border);overflow-y:auto;max-height:640px;}
  .msgr-empty{padding:24px 16px;color:var(--muted);font-size:13px;text-align:center;line-height:1.5;}
  .msgr-row{display:flex;gap:10px;width:100%;text-align:left;padding:11px 12px;border:none;border-bottom:1px solid var(--border);background:transparent;cursor:pointer;font:inherit;color:var(--ink);}
  .msgr-row:hover{background:rgba(78,130,224,.06);}
  .msgr-row.active{background:rgba(78,130,224,.12);}
  .msgr-row.unread .msgr-name,.msgr-row.unread .msgr-snippet{font-weight:700;color:var(--ink);}
  .msgr-avatar{flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:var(--brand-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;}
  .msgr-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
  .msgr-row-top{display:flex;justify-content:space-between;gap:8px;}
  .msgr-name{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .msgr-time{font-size:11px;color:var(--muted);white-space:nowrap;}
  .msgr-snippet{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .msgr-row-tags{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:2px;}
  .msgr-tag{font-size:10px;font-weight:700;border-radius:8px;padding:1px 7px;}
  .msgr-tag-ai{background:#E6F4F1;color:var(--teal-dark);}
  .msgr-tag-human{background:var(--light);color:var(--navy);}
  .msgr-tag-needs{background:#FCE8B2;color:var(--amber);}
  .msgr-owner{font-size:10.5px;color:var(--muted);}
  .msgr-dot-count{display:inline-block;min-width:18px;text-align:center;background:var(--red);color:#fff;border-radius:9px;font-size:10px;font-weight:700;padding:1px 5px;}
  .msgr-thread{display:flex;flex-direction:column;min-width:0;max-height:640px;}
  .msgr-thread-head{padding:10px 14px;border-bottom:1px solid var(--border);}
  .msgr-thread-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .msgr-thread-actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;}
  .msgr-back{display:none;border:none;background:none;font-size:20px;cursor:pointer;color:var(--navy);padding:0 4px;}
  .msgr-alert{margin-top:8px;background:#FFF9E8;border-left:4px solid var(--amber);padding:7px 10px;border-radius:6px;font-size:12.5px;}
  .msgr-facts{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:#4A5568;}
  .msgr-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;min-height:260px;}
  .msgr-msg{max-width:78%;display:flex;flex-direction:column;}
  .msgr-msg.in{align-self:flex-start;}
  .msgr-msg.out{align-self:flex-end;align-items:flex-end;}
  .msgr-bubble{padding:8px 12px;border-radius:16px;font-size:13.5px;line-height:1.45;word-wrap:break-word;overflow-wrap:anywhere;}
  .msgr-msg.in .msgr-bubble{background:#F0F2F5;color:var(--ink);border-bottom-left-radius:4px;}
  .msgr-msg.out .msgr-bubble{background:var(--blue);color:#fff;border-bottom-right-radius:4px;}
  .msgr-msg.out.ai .msgr-bubble{background:#E6F4F1;color:var(--ink);border:1px solid #BFE6DE;}
  .msgr-msg-who{font-size:10.5px;color:var(--muted);margin:0 4px 2px;}
  .msgr-msg-time{font-size:10px;color:var(--muted);margin:2px 4px 0;}
  .msgr-img{max-width:220px;max-height:220px;border-radius:10px;display:block;margin-top:4px;}
  .msgr-compose{border-top:1px solid var(--border);padding:10px 14px;}
  .msgr-compose textarea{width:100%;resize:vertical;}
  .msgr-compose-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap;}
  .msgr-keep{display:flex;align-items:center;gap:6px;font-size:12px;color:#4A5568;cursor:pointer;}
  .msgr-keep input{width:auto;margin:0;}
  .msgr-window{font-size:11.5px;margin-bottom:6px;padding:5px 9px;border-radius:6px;}
  .msgr-window-open{background:#E8F5EC;color:var(--green);}
  .msgr-window-tag{background:#FFF9E8;color:var(--amber);}
  .msgr-window-closed{background:#FDECEA;color:var(--red);}
  .msgr-settings{display:grid;gap:12px;margin:6px 0 14px;}
  .msgr-page-card{border:1px solid var(--border);border-radius:12px;padding:14px;background:rgba(255,255,255,.7);}
  .msgr-page-card textarea{width:100%;}
  .msgr-steps{font-size:12.5px;color:#4A5568;margin:8px 0 10px;padding-left:18px;line-height:1.6;}
  .msgr-tag-interest{background:#EDE9FE;color:#6D28D9;}
  .msgr-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:14px 0 6px;padding-top:10px;border-top:1px solid var(--border);}
  .msgr-inline{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
  .msgr-inline input,.msgr-inline select{flex:1;min-width:180px;}
  .msgr-bulk-list{max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;}
  .msgr-bulk-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:8px 10px;border-bottom:1px solid var(--border);cursor:pointer;margin:0;}
  .msgr-bulk-row input{width:auto;margin:0;}
  .msgr-bulk-row.off{opacity:.5;cursor:default;}
  .msgr-flow{margin-top:10px;background:var(--grey);border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.6;color:#4A5568;}
  .msgr-linkrow{margin-bottom:4px;}
  .msgr-linkrow input{font-size:12px;}
  @media (max-width:760px){
    .msgr-grid{grid-template-columns:1fr;min-height:0;}
    .msgr-list{border-right:none;max-height:none;}
    .msgr-thread{display:none;max-height:none;}
    .msgr-grid.thread-open .msgr-list{display:none;}
    .msgr-grid.thread-open .msgr-thread{display:flex;}
    .msgr-messages{max-height:55vh;}
    .msgr-back{display:inline-block;}
    .msgr-msg{max-width:88%;}
    .msgr-thread-actions{margin-left:0;width:100%;}
  }

/* ===== Client Hub (features/client-hub.js), Sep 2026 round 1 ===== */
.hub-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.hub-chip{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap;background:#EEF2F6;color:#4A5568;}
.hub-chip.hub-mm{background:#E8F0FD;color:#0C419B;}
.hub-chip.hub-pp{background:#E5F6F3;color:#0B8873;}
.hub-chip.hub-sme{background:#EFEAFB;color:#6B4FB8;}
.hub-chip.hub-corp{background:#ECEEF1;color:#374151;}
.hub-chip.hub-off{opacity:.55;}
.hub-ltv{border-top:1px solid var(--border);margin:6px 0 12px;padding-top:10px;}
.hub-ltv-t{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#A0AEC0;}
.hub-ltv-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;}
.hub-ltv-row b{display:block;font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums;}
.hub-ltv-row span{font-size:11px;color:#718096;}
.hub-ltv details{margin-top:6px;font-size:12px;}
.hub-ltv summary{cursor:pointer;color:var(--navy);font-weight:600;font-size:11.5px;}
.hub-ltv-tbl{width:100%;margin-top:4px;font-size:11.5px;border-collapse:collapse;}
.hub-ltv-tbl td{padding:3px 0;border-bottom:1px dashed var(--border);}
.hub-ltv-tbl td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;}
.hub-sub-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;}
.hub-sub-h>b{font-size:14px;color:var(--ink);}
.hub-acts{display:flex;gap:6px;flex-wrap:wrap;}
.hub-acts .btn,.hub-pc-acts .btn{font-size:12px;padding:6px 11px;}
.hub-pc{border:1px solid var(--border);border-radius:14px;background:#fff;margin-bottom:10px;overflow:hidden;}
.hub-pc-off{opacity:.7;}
.hub-pc-h{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;}
.hub-pc-h:focus-visible{outline:2px solid var(--blue-accent);outline-offset:-2px;}
.hub-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:11px;color:#fff;flex:none;}
.hub-ic.hub-mm{background:linear-gradient(135deg,#2566BC,#4E82E0);}
.hub-ic.hub-pp{background:linear-gradient(135deg,#0B8873,#48B4C9);}
.hub-ic.hub-sme{background:linear-gradient(135deg,#6B4FB8,#8E7BE0);}
.hub-ic.hub-corp{background:linear-gradient(135deg,#374151,#6B7280);}
.hub-pc-line{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#718096;}
.hub-pc-name{font-weight:700;font-size:14.5px;color:var(--ink);}
.hub-years{font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:10px;background:#F1EAFB;color:#6B46C1;margin-left:4px;vertical-align:middle;}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px 14px;padding:0 14px 12px;font-size:12.5px;}
.hub-grid span{display:block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#A0AEC0;}
.hub-grid b{font-weight:600;word-break:break-word;color:var(--ink);}
.hub-pc-acts{display:flex;gap:6px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--border);background:var(--grey);}
.hub-kv{border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.hub-kv-r{display:grid;grid-template-columns:160px 1fr auto;gap:10px;align-items:center;padding:7px 12px;border-bottom:1px solid var(--border);font-size:13px;}
.hub-kv-r:last-child{border-bottom:0;}
.hub-kv-r span{color:#718096;font-size:12.5px;}
.hub-kv-r b{font-weight:600;word-break:break-word;}
.hub-kv-r .btn{font-size:11px;padding:4px 10px;}
.hub-elite{margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--grey);border:1px solid var(--border);font-size:13px;}
.hub-elite small{display:block;color:#718096;font-size:12px;margin-top:2px;}
.hub-elite.yes{background:#F1EAFB;border-color:transparent;}
.hub-elite.yes b{color:#6B46C1;}
.hub-sec-t{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#718096;margin:16px 0 6px;}
.hub-tbl{width:100%;border-collapse:collapse;font-size:12.5px;min-width:520px;}
.hub-tbl th,.hub-tbl td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);}
.hub-tbl th{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#718096;background:var(--grey);}
.hub-cat-sec{margin-bottom:16px;}
.hub-cat-sec>h4{margin:0 0 8px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:#718096;}
.hub-cat{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:12px;margin-bottom:8px;background:#fff;}
.hub-cat small{display:block;color:#718096;font-size:11.5px;}
.hub-cat .btn{font-size:11.5px;padding:5px 10px;}
.hub-empty{font-size:12.5px;color:#A0AEC0;margin:0;}
.hub-hist{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:10px;}
.hub-hist-h{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:9px 12px;background:var(--grey);font-size:13px;}
.hub-hist-h span{color:#718096;font-size:12px;}
.hub-fbar{margin-bottom:10px;}
.hub-fbar input{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid var(--border);border-radius:10px;font-size:13px;background:#fff;}
.hub-eline{border:1px solid var(--border);border-radius:12px;background:#fff;margin-bottom:10px;overflow:hidden;}
.hub-eline>summary{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;cursor:pointer;list-style:none;}
.hub-eline>summary::-webkit-details-marker{display:none;}
.hub-eline>summary>span::before{content:"▸ ";color:#A0AEC0;}
.hub-eline[open]>summary>span::before{content:"▾ ";}
.hub-eline>summary small{color:#718096;font-size:11.5px;}
.hub-eline-in{padding:0 12px 10px;}
.hub-mgroup{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--teal-dark);margin:10px 0 4px;}
.hub-mail{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
.hub-mail:last-child{border-bottom:0;}
.hub-mail small{display:block;color:#718096;font-size:11.5px;margin-top:2px;}
.hub-mail-r{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.hub-mail-r .btn{font-size:11.5px;padding:5px 10px;white-space:nowrap;}
.hub-st{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:10px;background:#EEF2F6;color:#4A5568;white-space:nowrap;}
.hub-st-sent{background:#E6F4EA;color:#1E8E3E;}
.hub-st-due{background:#E8F0FD;color:#0C419B;}
.hub-st-late{background:#FDECEA;color:#C0392B;}
.hub-st-new{background:#F1EAFB;color:#6B46C1;}
.hub-note{background:var(--grey);border-radius:8px;padding:8px 10px;margin-bottom:8px;}
.hub-note-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:#718096;margin-bottom:4px;}
.hub-note-h .btn{font-size:11px;padding:3px 9px;}
@media (max-width:640px){
  .hub-pc-h{grid-template-columns:auto 1fr;}
  .hub-pc-h .status-pill{grid-column:2;justify-self:start;}
  .hub-kv-r{grid-template-columns:1fr auto;}
  .hub-kv-r span{grid-column:1/-1;}
  .hub-cat{grid-template-columns:auto 1fr;}
  .hub-cat>:last-child{grid-column:2;justify-self:start;}
  .hub-mail{grid-template-columns:1fr;}
  .hub-mail-r{justify-content:flex-start;}
}
/* Client Hub design pass (Sep 2026): header, compact gauge, Up next */
.hub-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);gap:16px;align-items:start;margin-bottom:12px;}
.hub-head-l .name-badges{margin-top:10px;}
.hub-kpi{background:var(--grey);border:1px solid var(--border);border-radius:14px;padding:10px 12px;}
.hub-kpi .hub-ltv{margin:8px 0 0;}
.hub-gauge{display:flex;align-items:center;gap:10px;}
.hub-gauge-svg{width:104px;flex:none;}
.hub-gauge-svg svg{width:100%;height:auto;display:block;}
.hub-gauge-txt{display:flex;flex-direction:column;gap:1px;font-size:12px;}
.hub-gauge-txt b{font-size:14px;color:var(--ink);}
.hub-gauge-txt small{color:#718096;font-size:11.5px;}
.hub-next{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:12px 0;margin:0 0 14px;}
.hub-next-t{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#718096;margin-bottom:8px;}
.hub-next-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.hub-nx{border:1px solid var(--border);border-left:4px solid var(--blue-accent);border-radius:12px;padding:10px 12px;background:#fff;display:flex;flex-direction:column;gap:5px;}
.hub-nx.due{border-left-color:#B7791F;}
.hub-nx.over{border-left-color:#C0392B;}
.hub-nx-when{font-size:11px;font-weight:700;color:#718096;}
.hub-nx.due .hub-nx-when{color:#B7791F;}
.hub-nx.over .hub-nx-when{color:#C0392B;}
.hub-nx-what{font-weight:600;font-size:13px;color:var(--ink);}
.hub-nx-for{font-size:11.5px;color:#718096;}
.hub-nx .btn{font-size:11.5px;padding:5px 10px;}
@media (max-width:900px){ .hub-head{grid-template-columns:1fr;} .hub-next-row{grid-template-columns:1fr;} }

/* ---- Client Hub round 2 (Sep 2026) — features/client-hub-2.js ---- */
.hub-access-req,.hub-dup{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.hub-access-req .btn,.hub-dup .btn{font-size:11.5px;padding:5px 10px;}
.hub-dup{background:#EAF2FA;border-color:#C9DBF3;}
.hub-more{position:relative;display:inline-block;}
.hub-more>summary{list-style:none;cursor:pointer;font-size:12px;padding:6px 11px;}
.hub-more>summary::-webkit-details-marker{display:none;}
.hub-pc:has(.hub-more[open]){overflow:visible;position:relative;z-index:5;}
.hub-more-menu{position:absolute;left:0;top:calc(100% + 4px);z-index:30;min-width:250px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px rgba(15,23,42,.14);padding:6px;display:grid;gap:2px;}
.hub-more-menu button{all:unset;box-sizing:border-box;display:block;width:100%;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--ink);}
.hub-more-menu button:hover,.hub-more-menu button:focus-visible{background:var(--grey);}
.hub-more-menu small{display:block;color:#718096;font-size:11.5px;margin-top:1px;}
.hub-idwarn{padding:8px 14px;font-size:12px;color:#B7791F;background:#FFF8E6;border-top:1px solid #F3E2B3;}
.hub-partners>summary{cursor:pointer;color:var(--navy);font-weight:600;}
.hub-partner-line{margin:6px 0 4px;}
.hub-partner-lh{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#718096;}
.hub-partner-lh span{font-weight:600;letter-spacing:0;text-transform:none;color:#A0AEC0;margin-left:4px;}
.hub-partner{padding:3px 0 3px 8px;border-left:2px solid var(--border);margin:3px 0;}
.hub-partner small{display:block;font-size:11px;color:#718096;}
.hub-pedit{border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:10px;}
.hub-pedit-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;}
.hub-pedit-row{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:6px;margin-bottom:6px;align-items:center;}
.hub-pedit-row input,.hub-pedit-row select{min-width:0;font-size:12.5px;}
.hub-choice{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:12px;margin-bottom:8px;}
.hub-choice small{display:block;color:#718096;font-size:11.5px;word-break:break-all;}
.hub-choice .btn{font-size:12px;padding:6px 11px;white-space:nowrap;}
.hub-tl{list-style:none;margin:0;padding:0;}
.hub-tl li{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:start;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
.hub-tl li:last-child{border-bottom:0;}
.hub-tl-i{font-size:15px;line-height:1.2;text-align:center;}
.hub-tl small{display:block;color:#718096;font-size:11.5px;margin-top:2px;white-space:pre-wrap;}
.hub-tl time{font-size:11.5px;color:#A0AEC0;white-space:nowrap;}
.hub-switch{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;margin:0;cursor:pointer;}
.hub-switch input{width:34px;height:20px;accent-color:var(--teal-dark);}
.hub-gp input,.hub-gp select{font-size:12px;padding:5px 6px;}
.hub-gp td{vertical-align:top;}
.hub-gp small{display:block;margin-top:3px;}
@media (max-width:640px){
  .hub-pedit-row{grid-template-columns:1fr;}
  .hub-more-menu{position:fixed;left:16px;right:16px;top:auto;bottom:16px;min-width:0;}
  .hub-tl li{grid-template-columns:24px 1fr;}
  .hub-tl time{grid-column:2;}
}
/* Dialogs opened from the contact card (Plan details, email previews, the
   template picker, New proposal…) render in #modalRoot / #hubGenOverlay at
   z-index 200 / 190, which sat BEHIND the contact card's own overlay
   (#tab-contacts.contact-detail-modal, 400). While a contact is open they
   go above it; confirm dialogs (450) and the soft phone (500) stay on top. */
body:has(#tab-contacts.contact-detail-modal) #modalRoot > .modal-bg{z-index:420;}
body:has(#tab-contacts.contact-detail-modal) #hubGenOverlay > .modal-bg{z-index:410 !important;}

/* ---------- SME / Corp page + company workspace (group-accounts*.js) ----------
   Built on the portal's own pieces: .card (brand-gradient top accent), .stat
   tiles, .pill-tab-btn, .btn-ct-primary, .hub-tbl. Pills follow the status
   colours used elsewhere (blue active, green ok, amber warning, red lost). */
.ga-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.ga-sub{font-size:12.5px;color:var(--muted);margin-top:3px;}
.ga-hint{font-size:12px;color:var(--muted);}
.ga-msg{font-size:12.5px;margin-top:10px;min-height:1em;}
.ga-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;}
.ga-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.ga-stats .stat{min-width:130px;}
.ga-stats .stat .num{font-size:20px;font-variant-numeric:tabular-nums;}
.ga-stat-ok .num{color:var(--green);}
.ga-stat-warn .num{color:var(--amber);}
.ga-stat-bad .num{color:var(--red);}
.ga-filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 12px;}
.ga-filters input[type=search]{width:100%;max-width:380px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;background:#fff;}
.ga-list{display:flex;flex-direction:column;gap:8px;}
.ga-row{display:grid;grid-template-columns:minmax(220px,2.2fr) repeat(5,minmax(96px,1fr)) auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,border-color .15s ease,transform .1s ease;}
.ga-row:hover,.ga-row:focus-visible{border-color:var(--teal);box-shadow:var(--shadow-md);outline:none;}
.ga-row-name{font-weight:700;font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--navy);}
.ga-row-main small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;}
.ga-row-cell{font-size:12.5px;min-width:0;}
.ga-row-cell > span:first-child{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;}
.ga-row-cell b{font-weight:600;font-variant-numeric:tabular-nums;}
.ga-row-st{display:flex;flex-direction:column;gap:4px;align-items:flex-end;}
.ga-warn{color:var(--amber);}
.ga-ok-t{color:var(--green);}
.ga-bad-t{color:var(--red);}
.ga-pill{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap;box-shadow:0 1px 2px rgba(20,30,60,.08);}
.ga-k-mm{background:#DCEBFF;color:var(--blue);}
.ga-k-sme{background:#D2F1DA;color:var(--green);}
.ga-k-corp{background:#FDF1DC;color:#9C5B00;}
.ga-st-ok{background:#D2F1DA;color:var(--green);}
.ga-st-warn{background:#FCE8B2;color:var(--amber);}
.ga-st-bad{background:#FCEAE8;color:var(--red);}
.ga-st-info{background:#F0E6FA;color:#5B2A9E;}
.ga-st-mute{background:#F0F0F0;color:#666;}
.ga-nb{background:#fff;color:var(--navy);border:1px solid var(--blue);}
.ga-rb{background:#fff;color:var(--teal-dark);border:1px solid var(--teal);}
.ga-chips{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px;}
.ga-link{background:none;border:0;padding:0;color:var(--teal-dark);cursor:pointer;font:inherit;font-weight:700;text-align:left;}
.ga-link:hover{text-decoration:underline;}
.ga-click{cursor:pointer;}
.ga-click:hover td{background:var(--grey);}
.ga-tbl td small{display:block;font-size:11px;color:var(--muted);}
.ga-dep td{background:var(--grey);font-size:12px;}
.ga-nw{white-space:nowrap;}
.ga-mm-tbl small.ga-mm-mail{word-break:break-all;max-width:210px;}
.ga-crumbs{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-bottom:10px;}
.ga-crumbs button{background:none;border:0;padding:0;color:var(--teal-dark);font-weight:700;cursor:pointer;font:inherit;font-weight:700;}
.ga-crumbs b{color:var(--ink);}
.ga-head-card{padding:16px 18px;}
.ga-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.ga-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.ga-title h2{color:var(--navy);}
.ga-facts{display:flex;gap:20px;flex-wrap:wrap;margin-top:10px;}
.ga-facts span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;}
.ga-facts b{font-size:13px;font-variant-numeric:tabular-nums;}
.ga-head-btns{display:flex;gap:6px;flex-wrap:wrap;}
.ga-ws{display:grid;grid-template-columns:228px minmax(0,1fr);gap:14px;align-items:start;}
.ga-side{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:8px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-sm);position:sticky;top:12px;}
.ga-side button{display:flex;justify-content:space-between;align-items:center;gap:6px;background:none;border:0;border-radius:10px;padding:9px 11px;text-align:left;font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;}
.ga-side button:hover{background:var(--grey);}
.ga-side button[aria-current="page"]{background:var(--brand-gradient);color:#fff;}
.ga-side button small{font-size:11px;opacity:.75;}
.ga-main{min-width:0;}
.ga-main > .card{margin-bottom:14px;}
.ga-card-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.ga-card{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#fff;}
.ga-card-t{font-size:11px;font-weight:700;color:var(--teal-dark);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.ga-form{background:var(--grey);margin-top:12px;}
.ga-card-bad{border-color:#F3C1BB;}
.ga-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.ga-grid2 > .card{margin-bottom:14px;}
.ga-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;}
.ga-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;}
.ga-card input:not([type=checkbox]),.ga-card select,.ga-card textarea,.ga-grid3 input,.ga-grid3 select,.ga-grid4 input,.ga-grid4 select{width:100%;box-sizing:border-box;}
.ga-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px;}
.ga-inline{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;}
.ga-inline select{width:auto;}
.ga-banner{border:1px solid #F6E05E;background:#FFFBEA;border-radius:12px;padding:10px 14px;font-size:13px;margin-bottom:12px;}
.ga-banner-bad{border-color:#F3C1BB;background:#FCEAE8;}
.ga-banner-bad b{color:var(--red);}
.ga-banner-info{border-color:#BBD6F5;background:#EAF3FF;}
.ga-att{display:flex;flex-direction:column;gap:7px;font-size:13px;}
.ga-kvrow{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:6px 0;border-bottom:1px solid var(--border);}
.ga-kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:13px;}
.ga-kv > span{color:var(--muted);}
.ga-kv small{display:block;font-size:11.5px;color:var(--muted);font-weight:400;}
.ga-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;}
.ga-person{border:1px solid var(--border);border-radius:11px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;font-size:12.5px;}
.ga-person span{color:var(--muted);}
.ga-role{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--teal-dark) !important;font-weight:700;}
.ga-tl{display:flex;flex-direction:column;border-left:2px solid var(--border);margin-left:6px;}
.ga-tl > div{position:relative;padding:0 0 12px 16px;font-size:13px;}
.ga-tl > div::before{content:"";position:absolute;left:-6px;top:5px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--teal);}
.ga-tl > div.ga-tl-done::before{background:var(--teal);}
.ga-tl small{display:block;color:var(--muted);font-size:11.5px;}
.ga-years{display:flex;overflow-x:auto;padding-bottom:2px;}
.ga-yr{flex:1 0 150px;border:1px solid var(--border);background:#fff;padding:10px 12px;text-align:left;display:flex;flex-direction:column;gap:3px;margin-left:-1px;cursor:pointer;font:inherit;color:var(--ink);}
.ga-yr:first-child{border-radius:11px 0 0 11px;margin-left:0;}
.ga-yr:last-child{border-radius:0 11px 11px 0;}
.ga-yr:only-child{border-radius:11px;}
.ga-yr small{font-size:11.5px;color:var(--muted);}
.ga-yr > span{display:flex;gap:4px;flex-wrap:wrap;}
.ga-yr[aria-pressed="true"]{background:#EAF3FF;border-color:var(--blue);position:relative;z-index:1;}
.ga-yr[aria-pressed="true"] b{color:var(--navy);}
.ga-toggle{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.ga-toggle button{border:0;background:#fff;padding:6px 11px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;color:var(--muted);}
.ga-toggle button[aria-pressed="true"]{background:var(--brand-gradient);color:#fff;}
.ga-chg{display:flex;flex-direction:column;gap:6px;font-size:13px;}
.ga-chg > div{display:flex;gap:8px;align-items:flex-start;}
.ga-tag{font-size:10px;font-weight:800;padding:2px 6px;border-radius:5px;min-width:70px;text-align:center;letter-spacing:.03em;}
.ga-tag-add{background:#DCEBFF;color:var(--blue);}
.ga-tag-rem{background:#FCEAE8;color:var(--red);}
.ga-tag-chg{background:#FCE8B2;color:var(--amber);}
.ga-sched{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;}
.ga-inst{border:1px solid var(--border);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;font-size:12px;background:#fff;}
.ga-inst b{font-size:13px;font-variant-numeric:tabular-nums;}
.ga-inst-paid{background:#E9F7EE;border-color:#BFE5CB;}
.ga-inst-due{background:#FFF6DB;border-color:#F0D48A;}
.ga-inst-late{background:#FCEAE8;border-color:#F3C1BB;}
.ga-inst-nolog{background:var(--grey);border-style:dotted;}
.ga-inst-sub{border-style:dashed;border-color:#8E6BC9;}
.ga-reasons{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 12px;margin:8px 0;}
.ga-reasons label{display:flex;gap:6px;align-items:center;font-weight:400;font-size:13px;}
.ga-btn-bad{background:var(--red);border-color:var(--red);color:#fff;}
.ga-stage{border:1px solid var(--border);border-radius:11px;padding:8px 12px;margin-bottom:8px;}
.ga-stage summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:center;list-style:none;padding:2px 0;}
.ga-stage summary::-webkit-details-marker{display:none;}
.ga-stage summary b::before{content:"▸ ";color:var(--muted);}
.ga-stage[open] summary b::before{content:"▾ ";}
.ga-stage[open] .ga-mails{margin-top:8px;}
.ga-mails{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:8px;}
.ga-mail{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:#fff;}
.ga-mail b{font-size:13px;}
.ga-mail small{display:block;font-size:11px;color:var(--muted);margin-top:2px;}
.ga-new{background:#F7FBFA;}
#gaMailRoot .modal-bg{z-index:440;}
@media (max-width:1100px){ .ga-row{grid-template-columns:1fr 1fr 1fr;} .ga-row-main{grid-column:1 / -1;} .ga-row-st{align-items:flex-start;flex-direction:row;} }
@media (max-width:900px){ .ga-ws{grid-template-columns:1fr;} .ga-side{position:static;flex-direction:row;overflow-x:auto;} .ga-side button{white-space:nowrap;} .ga-grid2{grid-template-columns:1fr;} }
@media (max-width:720px){ .ga-grid3,.ga-grid4{grid-template-columns:1fr;} .ga-row{grid-template-columns:1fr 1fr;} }

/* SME / Corp documents: conforme, masterlist, CIS, CoC, movements */
#gaDocRoot .modal-bg{z-index:440;}
.ga-doc-modal{max-width:900px;width:calc(100% - 32px);max-height:92vh;overflow:auto;box-sizing:border-box;}
.ga-step{position:relative;}
.ga-step-n{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--grey);color:var(--teal-dark);font-size:12px;font-weight:800;margin-right:6px;vertical-align:middle;}
.ga-step-done .ga-step-n{background:var(--teal);color:#fff;}
.ga-kyc{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px;}
.ga-kyc label{display:flex;gap:8px;align-items:flex-start;font-weight:400;margin:0;}
.ga-kyc > span{white-space:nowrap;font-size:12px;}
.ga-mv-list{max-height:44vh;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:6px 10px;margin:8px 0;}
.ga-mv-row{display:flex;gap:8px;align-items:center;padding:5px 0;font-size:13px;font-weight:400;margin:0;border-bottom:1px solid var(--border);}
.ga-mv-dep{padding-left:26px;font-size:12.5px;}
@media (max-width:720px){ .ga-kyc{flex-direction:column;align-items:flex-start;} .ga-kyc > span{white-space:normal;} }
/* Public company details form (?companyinfo=) */
.ci-card{max-width:640px;width:100%;text-align:left;max-height:92vh;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;}
.ci-eyebrow{font-size:11px;font-weight:700;color:var(--teal-dark);text-transform:uppercase;letter-spacing:.06em;}
.ci-top{margin-bottom:10px;}
.ci-sec{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin:0 0 10px;}
.ci-h{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:2px;}
.ci-hint{font-size:12px;color:#718096;margin-bottom:8px;}
.ci-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;}
.ci-grid label{font-size:12px;margin:0 0 3px;display:block;}
.ci-grid input,.ci-sec textarea{width:100%;box-sizing:border-box;}
.ci-wide{grid-column:1 / -1;}
.ci-req{color:var(--red);}
.ci-fmt{font-size:12px;color:#718096;margin-top:8px;}
.ci-fmt b{color:var(--ink);}
.ci-check{display:flex;gap:8px;align-items:center;font-weight:400;font-size:13px;margin:0 0 8px;}
.ci-note{border:1px solid #BBD6F5;background:#EAF3FF;border-radius:10px;padding:10px 12px;font-size:12.5px;margin-bottom:10px;}
.ci-err{border:1px solid #F3C1BB;background:#FCEAE8;border-radius:10px;padding:10px 12px;font-size:13px;margin:6px 0;}
.ci-foot{font-size:12px;color:#718096;text-align:center;margin:12px 0 0;}
.ci-done{width:52px;height:52px;border-radius:50%;background:var(--teal);color:#fff;font-size:28px;line-height:52px;margin:0 auto 10px;}
@media (max-width:560px){ .ci-grid{grid-template-columns:1fr;} .ci-sec{padding:10px 12px;} }
/* Plan set-up (stacked form, positions, riders, year tables) */
.ga-form-rows{display:flex;flex-direction:column;}
.ga-fr{display:grid;grid-template-columns:220px minmax(0,440px);gap:6px 16px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);}
.ga-fr:last-child{border-bottom:0;}
.ga-fr > label,.ga-fr-label{margin:0;font-size:12.5px;font-weight:600;color:#4A5568;}
.ga-fr input:not([type=checkbox]):not([type=radio]),.ga-fr select{width:100%;box-sizing:border-box;}
.ga-fr input[type=checkbox]{width:auto;flex:0 0 auto;}
.ga-fr-top{align-items:start;grid-template-columns:220px minmax(0,1fr);}
.ga-fr-top .ga-fr-label{padding-top:8px;}
.ga-sec-h{margin:18px 0 8px;font-size:14px;color:var(--navy);}
.ga-pos{padding:14px 16px;}
.ga-pos-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:4px;}
.ga-pos-name{font-size:15px;color:var(--navy);}
.ga-btn-sm{font-size:12px !important;padding:5px 10px !important;}
.ga-riders{display:flex;flex-direction:column;gap:6px;}
.ga-rider{border:1px solid var(--border);border-radius:10px;background:#fff;}
.ga-rider > summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:9px 12px;}
.ga-rider > summary::-webkit-details-marker{display:none;}
.ga-rider > summary::before{content:"▸";color:var(--teal-dark);font-size:11px;}
.ga-rider[open] > summary::before{content:"▾";}
.ga-rider > summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:10px;}
.ga-rider-name{font-weight:700;color:var(--ink);}
.ga-rider-meta{font-size:12px;color:#718096;}
.ga-rider-body{padding:0 12px 12px;}
.ga-rider-for{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:12.5px;color:#4A5568;margin-bottom:8px;}
.ga-rider-for label{display:flex;gap:6px;align-items:center;margin:0;font-weight:400;}
.ga-rider-body textarea{width:100%;box-sizing:border-box;}
.ga-rider-add{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.ga-rider-add select,.ga-rider-add input{flex:1;min-width:160px;}
.ga-cov{width:100%;min-width:0 !important;table-layout:fixed;}
.ga-cov th,.ga-cov td{white-space:normal !important;word-break:break-word;}
.ga-cov td:first-child,.ga-cov th:first-child{width:46%;}
.ga-cov-h td{font-weight:700;color:var(--navy);background:var(--grey);}
.ga-ytbl th[scope=row]{font-weight:600;color:#4A5568;white-space:nowrap;text-align:left;}
.ga-ytbl thead th small{display:block;font-weight:500;color:#718096;text-transform:none;letter-spacing:0;}
.ga-ytbl td{min-width:150px;}
.ga-ytbl-h th{background:var(--grey);color:var(--navy);font-weight:700;text-align:left;}
.ga-diff{background:#FFF7E0;font-weight:600;}
.ga-chgtbl td{vertical-align:top;}
@media (max-width:720px){ .ga-fr,.ga-fr-top{grid-template-columns:1fr;gap:4px;} .ga-fr-top .ga-fr-label{padding-top:0;} }

/* ---------- Contact page (Sep 2026 redesign, contact-page.js) ----------
   A full page like the SME / Corp page: header, then the section menu
   (.ga-side) on the left and the section on the right. */
#tab-contacts.contact-page-open #contactsTabRoot{max-width:1240px;margin:0 auto;}
.ctp-head{padding:16px 18px;}
.ctp-head-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.ctp-head-btns{display:flex;gap:6px;flex-wrap:wrap;}
.ctp-head-btns .btn{font-size:12px;padding:6px 12px;}
.ctp-name{margin:0;font-size:22px;color:var(--navy);}
.ctp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,max-content));gap:10px 30px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.ctp-facts > div{min-width:0;}
.ctp-facts > div > span{display:block;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#718096;margin-bottom:3px;}
.ctp-facts b{font-size:13px;}
.ctp-facts small{font-size:12px;color:#718096;}
.ctp-dispo{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px !important;}
.ctp-link{background:none;border:0;padding:0;color:var(--teal-dark);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;}
.ctp-link:hover{text-decoration:underline;}
.ctp-ws{margin-top:14px;}
.ctp-sep{height:1px;background:var(--border);margin:6px 8px;}
.ctp-card-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.ctp-card-h h3{margin:0;}
.ctp-row-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.ctp-plain{background:none;border:0;box-shadow:none;padding:0;}
.ctp-hint{font-size:12.5px;color:#718096;}
.ctp-warn{font-size:12px;color:#B7791F;font-weight:600;}
.ctp-sub{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-dark);margin:14px 0 6px;}
.ctp-tbl{overflow-x:auto;border:1px solid var(--border);border-radius:12px;}
.ctp-tbl table{width:100%;border-collapse:collapse;font-size:13px;min-width:0;}
.ctp-tbl th{background:var(--grey);text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#718096;padding:8px 10px;white-space:nowrap;}
.ctp-tbl td{padding:9px 10px;border-top:1px solid var(--border);vertical-align:top;}
.ctp-tbl td small{display:block;font-size:11.5px;color:#718096;margin-top:2px;}
.ctp-tbl .num{text-align:right;white-space:nowrap;}
.ctp-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700;background:#EEF1F5;color:#4A5568;white-space:nowrap;}
.ctp-pill.ok{background:#E6F4EA;color:#1E7E34;}
.ctp-pill.warn{background:#FFF4E0;color:#9C6212;}
.ctp-pill.bad{background:#FDECEA;color:#B42318;}
.ctp-kv1{display:grid;grid-template-columns:200px minmax(0,1fr);gap:10px;align-items:start;font-size:13px;margin-top:10px;}
.ctp-kv1 > span{color:#718096;font-size:12.5px;}
.ctp-plan-t{display:flex;align-items:center;gap:10px;}
.ctp-plan-t small{font-size:11.5px;color:#718096;}
.ctp-plan-off{opacity:.8;}
.ctp-acts{margin-top:12px;}
.ctp-mrow{border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--grey);}
.ctp-mrow-h{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-dark);margin-bottom:4px;}
.ctp-file{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px 10px;align-items:center;border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:8px;}
.ctp-file small{display:block;font-size:12px;color:#718096;}
.ctp-file-ic{font-size:10px;font-weight:800;background:#FDECEA;color:#B42318;border-radius:6px;padding:6px 6px;}
.ctp-file-acts{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;}
.ctp-file-acts .btn{font-size:12px;padding:5px 11px;text-decoration:none;}
.ctp-meet{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:8px;}
.ctp-meet small{display:block;font-size:12px;color:#718096;}
.ctp-meet .btn{font-size:12px;padding:5px 11px;}
.ctp-sendhead{display:grid;gap:4px;font-size:12.5px;background:var(--grey);border-radius:8px;padding:8px 12px;margin-bottom:10px;}
.ctp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;}
.ctp-stats > div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:var(--shadow-sm);}
.ctp-stats b{display:block;font-size:22px;color:var(--navy);}
.ctp-stats span{font-size:12px;color:#718096;}
.ctp-grid2{margin-bottom:14px;}
.ctp-li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);}
.ctp-li small{display:block;font-size:11.5px;color:#718096;}
.ctp-li:last-child{border-bottom:0;}
.ctp-pager{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;color:#718096;}
.ctp-pager > div{display:flex;gap:6px;}
.ctp-pager .btn{font-size:12px;padding:5px 11px;}
.ctp-pager .btn:disabled{opacity:.45;cursor:default;}
.ctp-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:900;background:var(--navy);color:#fff;font-weight:600;font-size:13px;padding:10px 16px;border-radius:12px;box-shadow:0 10px 30px rgba(12,65,155,.3);max-width:calc(100vw - 32px);}
.ctp-toast[hidden]{display:none;}
.hub-pcc{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#718096;margin-top:-2px;}
.hub-pcc label{display:flex;gap:6px;align-items:center;font-weight:600;color:var(--ink);margin:0;}
.hub-pcc input{width:auto;}
@media (max-width:900px){
  .ctp-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ctp-grid2{grid-template-columns:1fr;}
  .ctp-kv1{grid-template-columns:1fr;gap:2px;}
  .ctp-sep{display:none;}
}
@media (max-width:560px){
  .ctp-name{font-size:19px;}
  .ctp-head-btns{width:100%;}
  .hub-kv-r{grid-template-columns:120px minmax(0,1fr) auto;}
}
.ctp-head .hub-head > *{min-width:0;}
.ctp-head .hub-chip,.ctp-head .badge-event,.ctp-head .score-badge{max-width:100%;white-space:normal;}
.ctp-head .hub-head-l > div:first-child{min-width:0;}
.ctp-head .hub-head-l > div:first-child > div{min-width:0;overflow-wrap:anywhere;}

/* =========================================================
   CONTACT PAGE (.cpx) — ported 1:1 from the approved mock-up
   (contact-page-mock.html v7). Every rule below is the mock's own CSS,
   scoped under .cpx with classes prefixed cx- so nothing leaks into or
   in from the rest of the portal. Change the mock first, then port.
   ========================================================= */
.cpx{
  --navy:#0C419B; --navy-dark:#062670; --blue:#2566BC; --teal:#0FAE96; --teal-dark:#0B8873;
  --grey:#F4F7FB; --border:#E3E7ED; --green:#1E8E3E; --red:#C0392B; --amber:#B7791F; --ink:#1A2433; --muted:#6B7684;
  --bg:#EFF3F9; --card:#FFFFFF; --soft-blue:#EAF1FA;
  --brand:linear-gradient(135deg,#4E82E0,#48B4C9);
  --shadow:0 1px 2px rgba(20,30,60,.05),0 1px 3px rgba(20,30,60,.05);
  --shadow-md:0 6px 18px rgba(20,30,60,.08),0 2px 6px rgba(20,30,60,.05);
  color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;
}
/* Portal element rules the mock doesn't have, reset inside the page. */
.cpx label{margin:0;font-size:inherit;font-weight:inherit;color:inherit;}
.cpx th{position:static;font-weight:700;}
.cpx .cx-btn{display:inline-block;cursor:pointer;line-height:1.5;text-decoration:none;}
.cpx .cx-btn:disabled{opacity:.45;cursor:default;box-shadow:none;}
.cpx a.cx-btn{color:var(--navy);}
.cpx .cx-link{cursor:pointer;text-decoration:none;font-size:inherit;}
.cpx input[type=checkbox]{width:auto;height:auto;}
.cpx *{box-sizing:border-box;}
.cpx button{font:inherit;cursor:pointer;}
.cpx button:focus-visible,.cpx a:focus-visible,.cpx input:focus-visible,.cpx select:focus-visible,.cpx textarea:focus-visible,.cpx summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
.cpx .cx-card{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:16px 18px;position:relative;}
.cpx .cx-card.accent{border-top:3px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--brand) border-box;}
.cpx h2{margin:0;font-size:20px;color:var(--navy);text-wrap:balance;}
.cpx h3{margin:0 0 10px;font-size:15px;color:var(--navy);}
.cpx .cx-hint{font-size:12.5px;color:var(--muted);}
.cpx .cx-crumbs{font-size:12.5px;margin:0 0 10px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.cpx .cx-crumbs button{border:0;background:none;padding:0;color:var(--teal-dark);font-weight:700;}
.cpx .cx-btn{border:1px solid var(--border);background:#fff;color:var(--navy);font-weight:700;font-size:12.5px;padding:7px 12px;border-radius:9px;}
.cpx .cx-btn.primary{border:0;background:var(--brand);color:#fff;box-shadow:0 6px 14px rgba(60,120,220,.25);}
.cpx .cx-btn.danger{color:var(--red);border-color:#F3C1BB;background:#FDF1EF;}
.cpx .cx-btn.sm{font-size:12px;padding:5px 10px;}
.cpx .cx-link{border:0;background:none;padding:0;color:var(--teal-dark);font-weight:700;}
.cpx .cx-pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;}
.cpx .p-ok{background:#E3F5EA;color:var(--green);}
.cpx .p-warn{background:#FFF2D9;color:var(--amber);}
.cpx .p-bad{background:#FCEAE8;color:var(--red);}
.cpx .p-info{background:#E4EEFC;color:var(--blue);}
.cpx .p-mute{background:#EEF1F5;color:#5B6472;}
.cpx .p-brand{background:var(--brand);color:#fff;}
.cpx .p-teal{background:#E0F5F1;color:var(--teal-dark);}
.cpx .cx-code{font-family:ui-monospace,Menlo,monospace;background:#EEF1FB;color:#1E2761;padding:1px 6px;border-radius:5px;font-size:11.5px;}
.cpx .cx-head{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;}
.cpx .cx-head-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.cpx .cx-who{display:flex;gap:12px;align-items:center;}
.cpx .cx-avatar{width:50px;height:50px;border-radius:50%;background:var(--brand);color:#fff;font-weight:800;display:grid;place-items:center;flex:none;}
.cpx .cx-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.cpx .cx-facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.cpx .cx-fact small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.cpx .cx-fact b{font-size:13px;}
.cpx .cx-meter{border:1px solid var(--border);border-radius:12px;background:#F7F9FC;padding:12px 14px;}
.cpx .cx-meter-row{display:flex;gap:10px;align-items:center;}
.cpx .cx-ltv{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);}
.cpx .cx-ltv b{display:block;font-size:17px;}
.cpx .cx-ltv span{font-size:11.5px;color:var(--muted);}
.cpx .cx-page{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;margin-top:16px;align-items:start;}
.cpx .cx-menu{position:sticky;top:64px;padding:8px;}
.cpx .cx-menu button{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:none;padding:9px 12px;border-radius:9px;font-weight:600;color:var(--ink);text-align:left;font-size:13.5px;}
.cpx .cx-menu button:hover{background:#F1F5FB;}
.cpx .cx-menu button[aria-current="true"]{background:var(--brand);color:#fff;}
.cpx .cx-menu button .n{font-size:11px;font-weight:700;background:#EEF1F5;color:#5B6472;border-radius:999px;padding:1px 7px;}
.cpx .cx-menu button[aria-current="true"] .n{background:rgba(255,255,255,.25);color:#fff;}
.cpx .cx-menu .sep{height:1px;background:var(--border);margin:6px 8px;}
.cpx .cx-main{display:flex;flex-direction:column;gap:14px;min-width:0;}
.cpx .cx-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.cpx .cx-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.cpx .cx-stat{background:#fff;border:1px solid var(--border);border-left:4px solid #4E82E0;border-radius:12px;padding:12px 14px;text-align:center;}
.cpx .cx-stat b{display:block;font-size:20px;color:var(--navy);font-variant-numeric:tabular-nums;}
.cpx .cx-stat span{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.cpx .cx-kv{display:grid;grid-template-columns:max-content 1fr;gap:7px 18px;font-size:13.5px;}
.cpx .cx-kv > span{color:var(--muted);}
.cpx .cx-upnext{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;}
.cpx .cx-un{flex:0 0 260px;border:1px solid var(--border);border-left:4px solid var(--red);border-radius:12px;padding:10px 12px;background:#fff;}
.cpx .cx-un.soon{border-left-color:var(--amber);}
.cpx .cx-un.ok{border-left-color:var(--teal);}
.cpx .cx-un small{display:block;font-weight:700;font-size:11.5px;}
.cpx .cx-un b{display:block;margin:2px 0;}
.cpx table{width:100%;border-collapse:collapse;font-size:13px;}
.cpx th,.cpx td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top;}
.cpx th{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--grey);}
.cpx td small{display:block;color:var(--muted);font-size:11.5px;}
.cpx .cx-tbl{overflow-x:auto;}
.cpx .cx-num{text-align:right;font-variant-numeric:tabular-nums;}
.cpx .cx-prod{border:1px solid var(--border);border-radius:12px;padding:14px;}
.cpx .cx-prod-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.cpx .cx-prod-h b{font-size:15px;color:var(--navy);}
.cpx details.cx-rider{border:1px solid var(--border);border-radius:10px;margin-top:6px;}
.cpx details.cx-rider summary{cursor:pointer;padding:8px 12px;font-weight:700;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;}
.cpx details.cx-rider summary span{font-weight:500;color:var(--muted);font-size:12px;}
.cpx details.cx-rider .body{padding:0 12px 10px;}
.cpx .cx-steps{display:flex;flex-direction:column;gap:0;}
.cpx .cx-step{display:grid;grid-template-columns:26px 1fr auto;gap:10px;padding:8px 0;border-bottom:1px dashed var(--border);align-items:start;}
.cpx .cx-dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;background:#CBD5E0;}
.cpx .cx-dot.done{background:var(--green);}
.cpx .cx-dot.now{background:var(--blue);}
.cpx .cx-step small{color:var(--muted);display:block;}
.cpx .cx-seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;flex-wrap:wrap;}
.cpx .cx-seg button{border:0;background:#fff;padding:6px 12px;font-size:12.5px;font-weight:700;color:var(--muted);}
.cpx .cx-seg button[aria-pressed="true"]{background:var(--brand);color:#fff;}
.cpx .cx-tl{display:flex;flex-direction:column;}
.cpx .cx-tl-i{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);}
.cpx .cx-tl-i time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;}
.cpx .cx-tl-i b{display:block;}
.cpx .cx-banner{border:1px solid #BBD6F5;background:#EAF3FF;border-radius:12px;padding:10px 14px;font-size:13px;}
.cpx .cx-banner.warn{border-color:#F6E05E;background:#FFFBEA;}
.cpx .cx-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;}
.cpx .cx-form label{display:block;font-size:12px;font-weight:600;color:#4A5568;margin-bottom:3px;}
.cpx .cx-form input,.cpx .cx-form select,.cpx .cx-form textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff;color:var(--ink);}
.cpx .cx-row-link{cursor:pointer;}
.cpx .cx-row-link:hover td{background:#F7FAFE;}
.cpx .cx-list-name{font-weight:700;color:var(--navy);}
.cpx .cx-empty{padding:14px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);text-align:center;}
@media (max-width:900px){.cpx .cx-head{grid-template-columns:1fr;}
.cpx .cx-page{grid-template-columns:1fr;}
.cpx .cx-menu{position:static;display:flex;overflow-x:auto;gap:4px;}
.cpx .cx-menu button{flex:0 0 auto;width:auto;white-space:nowrap;}
.cpx .cx-menu .sep{display:none;}
.cpx .cx-stats{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:600px){.cpx .cx-grid2,.cpx .cx-form{grid-template-columns:1fr;}
.cpx .cx-tl-i{grid-template-columns:1fr;gap:2px;}
.cpx .cx-kv{grid-template-columns:1fr;gap:1px;}
.cpx .cx-kv > span{margin-top:6px;}}
@media (prefers-reduced-motion:reduce){.cpx *{transition:none !important;}}
.cpx .cx-jrow{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px dashed var(--border);}
.cpx .cx-jrow:last-child{border-bottom:0;}
.cpx .cx-jhead{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:baseline;}
.cpx .cx-jhead small{color:var(--muted);}
.cpx .cx-jitems{display:flex;flex-direction:column;gap:6px;margin-top:6px;}
.cpx .cx-jitem{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;background:#F7F9FC;border:1px solid var(--border);border-radius:10px;padding:7px 10px;font-size:13px;}
.cpx .cx-jitem .ic{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-dark);min-width:52px;}
.cpx .cx-jitem .t{flex:1;min-width:160px;}
.cpx .cx-jitem .acts{display:flex;gap:6px;flex-wrap:wrap;}
.cpx .cx-modal{position:fixed;inset:0;z-index:20;background:rgba(15,25,45,.45);display:flex;align-items:center;justify-content:center;padding:16px;}
.cpx .cx-modal-box{background:#fff;border-radius:16px;width:min(760px,100%);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.25);}
.cpx .cx-modal-h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:14px 16px;border-bottom:1px solid var(--border);}
.cpx .cx-modal-h b{display:block;color:var(--navy);}
.cpx .cx-modal-b{flex:1;min-height:0;overflow:auto;background:#F6F9FD;}
.cpx .cx-modal-b iframe{width:100%;height:62vh;border:0;display:block;background:#F6F9FD;}
.cpx .cx-modal-f{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border);flex-wrap:wrap;}
.cpx .cx-lib{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.cpx .cx-lib-i{border:1px solid var(--border);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:#fff;}
.cpx .cx-lib-i b{font-size:13.5px;}
.cpx .cx-lib-i .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;}
.cpx .cx-newtag{font-size:10px;font-weight:800;letter-spacing:.05em;background:#FFF2D9;color:var(--amber);padding:2px 6px;border-radius:5px;text-transform:uppercase;}
.cpx .cx-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;}
.cpx .cx-cat{border:1px solid var(--border);border-radius:12px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:6px;}
.cpx .cx-cat b{color:var(--navy);}
.cpx .cx-cat .price{font-size:18px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;}
.cpx .cx-how{counter-reset:how;display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;}
.cpx .cx-how li{counter-increment:how;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;}
.cpx .cx-how li::before{content:counter(how);width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;font-weight:800;font-size:12px;display:grid;place-items:center;}
.cpx .cx-docview{height:52vh;display:grid;place-items:center;background:repeating-linear-gradient(45deg,#EEF2F8,#EEF2F8 12px,#F6F8FC 12px,#F6F8FC 24px);color:var(--muted);font-weight:700;text-align:center;padding:20px;}
.cpx .cx-copyline{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
@media (max-width:600px){.cpx .cx-lib{grid-template-columns:1fr;}
.cpx .cx-modal-b iframe{height:58vh;}}
.cpx .cx-pager{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;}
.cpx .cx-pager>div{display:flex;gap:6px;}
.cpx .cx-btn:disabled{opacity:.45;cursor:default;box-shadow:none;}
.cpx .cx-modal-b .cx-form{background:#fff;}
.cpx button.cx-lib-i:hover{border-color:var(--blue);}
.cpx .cx-modal-box.wide{width:min(980px,100%);}
.cpx .cx-pdfhost{padding:12px;display:flex;flex-direction:column;align-items:center;gap:12px;background:#E9EEF5;min-height:200px;}
.cpx .cx-pdfpage{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12);max-width:100%;height:auto;}
.cpx .cx-mrow{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:#F7F9FC;}
.cpx .cx-mrow-h{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-dark);margin-bottom:6px;}
/* Small layout helpers used by the page (same values the mock writes inline). */
.cpx .cx-ch{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.cpx .cx-ch h3{margin:0;}
.cpx .cx-sub{font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:11px;color:var(--muted);margin-bottom:6px;}
.cpx .cx-li{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);}
.cpx .cx-li small{display:block;}
.cpx .cx-note{padding:9px 0;border-bottom:1px solid var(--border);}
.cpx .cx-noteacts{display:flex;gap:6px;margin-top:6px;}
.cpx .cx-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.cpx .cx-inline input[type=text],.cpx .cx-inline input[type=date],.cpx .cx-inline textarea{flex:1;min-width:160px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff;color:var(--ink);margin:0;}
.cpx .cx-msg{font-size:12.5px;margin-top:6px;}
.cpx .cx-msg:empty{display:none;}
.cpx .cx-tl-i small{display:block;}
.cpx .cx-kv .cx-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.cpx .cx-kv b{min-width:0;overflow-wrap:anywhere;}
.cpx .cx-kv b a{color:inherit;}
.cpx .cx-gauge{flex:none;}
.cpx .cx-embed .btn{font-size:12px;padding:6px 12px;}
.cpx .cx-embed .card{box-shadow:none;border-radius:12px;padding:14px;margin-bottom:10px;}
.cpx .cx-embed .card::before{display:none;}
.cpx .cx-jcheck{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--muted);}
.cpx .cx-head-acts{display:flex;gap:8px;flex-wrap:wrap;}
.cpx .cx-menu-wrap{min-width:0;}
.cpx .cx-banners:empty{display:none;}
.cpx .cx-banners{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.cpx .cx-banners>div:empty{display:none;}
@media (max-width:600px){ .cpx .cx-head-top{align-items:flex-start;} .cpx .cx-un{flex-basis:230px;} }
.cpx .cx-modal{z-index:210;}
.cpx .cx-sec{display:flex;flex-direction:column;gap:14px;min-width:0;}
.cpx .cx-sec[hidden]{display:none;}
.cpx .cx-modal-b .cx-form{padding:16px;}
.cpx .cx-modal-b iframe{width:100%;height:62vh;border:0;display:block;background:#F6F9FD;}
/* Phone widths: long names and chips wrap inside the header card. */
.cpx .cx-who>div{min-width:0;overflow-wrap:anywhere;}
.cpx .cx-chips .cx-pill{white-space:normal;max-width:100%;}
@media (max-width:900px){ .cpx .cx-head{grid-template-columns:minmax(0,1fr);} }
/* The portal's global nav{} rule (side bar) must not reach the section menu. */
.cpx nav.cx-menu{display:block;flex-direction:row;flex:none;gap:0;}
@media (max-width:900px){ .cpx nav.cx-menu{display:flex;gap:4px;} }
.cpx nav.cx-menu button{white-space:normal;transition:none;box-shadow:none;}
@media (max-width:900px){ .cpx nav.cx-menu button{white-space:nowrap;} }

/* BANT beside the gauge (mock-up v10: weighted score, score tiles). */
.cpx .cx-head{grid-template-columns:minmax(0,1fr) auto;}
.cpx .cx-meter2{display:grid;grid-template-columns:260px 270px;gap:14px;align-items:start;}
.cpx .cx-bant{border-left:1px solid var(--border);padding-left:14px;min-width:0;}
.cpx .cx-bant-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.cpx .cx-bant-h b{font-size:13px;letter-spacing:.06em;color:var(--navy);}
.cpx .cx-bant-score{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;}
.cpx .cx-bant-score small{font-size:12px;color:var(--muted);font-weight:700;}
.cpx .cx-bant-f{margin-top:6px;font-size:11.5px;}
.cpx .cx-btiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;}
.cpx .cx-btile-w{position:relative;min-width:0;}
.cpx .cx-btile{width:100%;border:1px solid var(--border);border-top:4px solid var(--c);background:#fff;border-radius:10px;padding:6px 4px 5px;display:flex;flex-direction:column;align-items:center;gap:0;cursor:pointer;}
.cpx .cx-btile:disabled{cursor:default;}
.cpx .cx-btile .bt-l{font-size:11px;font-weight:800;color:var(--muted);}
.cpx .cx-btile .bt-n{font-size:22px;font-weight:800;color:var(--c);line-height:1.1;font-variant-numeric:tabular-nums;}
.cpx .cx-btile .bt-w{font-size:10.5px;color:var(--muted);}
.cpx .cx-bpop{position:absolute;z-index:6;top:calc(100% + 4px);left:0;width:250px;max-width:calc(100vw - 48px);background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);padding:4px;display:flex;flex-direction:column;}
.cpx .cx-btile-w:nth-child(n+3) .cx-bpop{left:auto;right:0;}
.cpx .cx-bpop button{display:flex;gap:8px;align-items:center;border:0;background:none;text-align:left;padding:6px 8px;border-radius:7px;font-size:12.5px;cursor:pointer;color:var(--ink);}
.cpx .cx-bpop button:hover,.cpx .cx-bpop button[aria-checked="true"]{background:#EEF4FC;}
.cpx .cx-bpop button b{width:20px;height:20px;border-radius:50%;color:#fff;display:grid;place-items:center;font-size:11px;flex:none;}
@media (max-width:900px){ .cpx .cx-head{grid-template-columns:minmax(0,1fr);} .cpx .cx-meter2{grid-template-columns:1fr;} .cpx .cx-bant{border-left:0;border-top:1px solid var(--border);padding-left:0;padding-top:10px;} }

/* MyMaxicare Group v2 (Oct 2026) · group-mm-ui.js */
.ga-mm-due{background:#EAF1FA;color:#2566BC;}
.ga-mm-sm{font-size:12px;padding:5px 12px;}
/* MyMaxicare Group members table, edit pop-up, preferred contact (Oct 2026) */
.ga-mm-tbl td,.ga-mm-tbl th{vertical-align:middle;padding:6px 7px;}
.ga-nw{white-space:nowrap;}
.ga-mm-tbl small.ga-mm-mail{word-break:break-all;max-width:210px;}
.ga-mm-deps{display:flex;flex-wrap:wrap;gap:4px;min-width:110px;max-width:190px;}
.ga-mm-tbl{font-size:13px;}
.ga-mm-tbl th{white-space:nowrap;}
.ga-mm-rmlink{display:block;margin:4px auto 0;font-size:11.5px;font-weight:500;color:var(--muted);}
.ga-mm-edit-dep:first-child{margin-top:0;}
.ga-mm-deps span{background:#EEF3FA;border-radius:6px;padding:2px 8px;font-size:12px;line-height:1.35;}
.ga-mm-deps i{font-style:normal;color:var(--muted);font-size:11px;}
.ga-pref{color:var(--teal-dark);font-weight:600;}
.ga-mm-pocsearch{margin:8px 0 10px;padding:10px 12px;background:#F4F8FD;border:1px solid #DCE7F5;border-radius:10px;}
.ga-mm-pocsearch label{display:block;font-size:12px;font-weight:600;color:#4A5568;margin-bottom:4px;}
.ga-mm-pocsearch input{width:100%;box-sizing:border-box;}
.ga-mm-files{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:3px;font-size:12px;}
.ga-mm-edit .ga-grid3 label,.ga-mm-edit-dep label{display:block;font-size:12px;font-weight:600;color:#4A5568;margin-bottom:3px;}
.ga-mm-edit .ga-grid3 input,.ga-mm-edit .ga-grid3 select,.ga-mm-edit-dep input,.ga-mm-edit-dep select{width:100%;box-sizing:border-box;}
.ga-mm-edit-dep{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 1.4fr auto;gap:8px;align-items:end;margin-bottom:6px;}
.ga-mm-edit-dep > div{min-width:0;}
@media(max-width:640px){.ga-mm-edit-dep{grid-template-columns:1fr 1fr;}}
.ga-mm-rows{display:flex;flex-direction:column;gap:6px;}
.ga-mm-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;}
.ga-mm-row > span:nth-child(2){flex:1;min-width:180px;font-size:13px;}
.ga-mm-row small{display:block;font-size:11.5px;color:var(--muted);}
.ga-mm-radio{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 10px;}
.ga-mm-radio button{font:inherit;font-size:13px;font-weight:600;min-height:38px;padding:0 14px;border-radius:9px;border:1px solid var(--border);background:#fff;color:var(--ink);cursor:pointer;}
.ga-mm-radio button[aria-checked="true"]{border:2px solid #2566BC;background:#EAF1FA;color:var(--navy);}
.ga-mm-from{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px dashed var(--border);border-radius:10px;}
.ga-mm-from b{display:block;font-size:14px;margin-top:2px;}
.ga-mm-res{margin-top:8px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;}
.ga-mm-res-h{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--muted);margin-bottom:4px;}
.ga-mm-hit{display:flex;align-items:center;gap:10px;padding:7px 2px;border-bottom:1px solid #EEF1F5;font-weight:400;cursor:pointer;flex-wrap:wrap;}
.ga-mm-hit input{width:auto;}
.ga-mm-hit-m{flex:1;min-width:180px;font-size:13px;}
.ga-mm-hit-m small,.ga-mm-hit-p small{display:block;font-size:11.5px;color:var(--muted);}
.ga-mm-hit-p{font-size:12px;color:var(--muted);text-align:right;}
.ga-mm-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);}
.ga-mm-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;padding:10px 12px;margin:0 0 12px;background:var(--grey);border-radius:10px;}
.ga-mm-j{border:1px solid var(--border);border-radius:11px;padding:10px 12px;margin-bottom:10px;}
.ga-mm-j-h{display:flex;gap:10px;align-items:center;margin-bottom:6px;}
.ga-mm-j-h small{display:block;font-size:12px;color:var(--muted);}
.ga-mm-dot{width:10px;height:10px;border-radius:5px;flex:none;}
.ga-mm-step{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #EEF1F5;flex-wrap:wrap;}
.ga-mm-tag{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--teal-dark);background:#E6F6F3;border-radius:6px;padding:2px 6px;}
.ga-mm-step-m{flex:1;min-width:160px;font-size:13px;}
.ga-mm-step-m small{display:block;font-size:11.5px;color:var(--muted);}
.ga-mm-step-b{display:flex;gap:6px;}

/* ===== MyMaxicare plan set-up on the contact card (Oct 2026, mm-plan.js) =====
   From the approved mock-up PlanSetup.dc.html. */
.cpx .cx-card.cx-mm{border:2px solid #4E82E0;display:flex;flex-direction:column;gap:14px;}
.cpx .cx-mm .cx-prod-h{margin-bottom:0;}
.cpx .cx-inline{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.cpx .cx-mm-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;}
.cpx .cx-mm-steps li{display:flex;flex-direction:column;gap:5px;min-width:0;}
.cpx .cx-mm-steps .bar{height:5px;border-radius:999px;background:#E3E7ED;}
.cpx .cx-mm-steps .lbl{font-size:11.5px;font-weight:700;line-height:1.25;color:#8A94A6;}
.cpx .cx-mm-steps .dt{font-size:11px;color:var(--muted);min-height:14px;}
.cpx .cx-mm-steps .done .bar{background:var(--green);} .cpx .cx-mm-steps .done .lbl{color:var(--ink);}
.cpx .cx-mm-steps .now .bar{background:var(--blue);} .cpx .cx-mm-steps .now .lbl{color:var(--navy);}
.cpx .cx-mm-now{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 13px;border-radius:10px;background:#F4F7FB;border:1px solid #DCE5F2;}
.cpx .cx-mm-now.ok{background:#F3F9F5;border-color:#CBE8D3;}
.cpx .cx-mm-now .t{flex:1 1 280px;display:flex;flex-direction:column;gap:2px;}
.cpx .cx-mm-now .t b{font-size:13.5px;} .cpx .cx-mm-now .t span{font-size:12.5px;color:#4A5672;}
.cpx .cx-mm-eta{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;padding:10px 13px;border:1px solid var(--border);border-radius:10px;}
.cpx .cx-mm-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;}
.cpx .cx-mm-tile{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;}
.cpx .cx-mm-tile span{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted);}
.cpx .cx-mm-tile b{font-size:14px;line-height:1.35;} .cpx .cx-mm-tile small{font-size:11.5px;color:var(--muted);}
.cpx .cx-mm-tile.hl{background:#EAF1FA;border-color:#BFD3F2;}
.cpx .cx-mm-sec{display:flex;flex-direction:column;gap:8px;}
.cpx .cx-mm-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;align-items:baseline;}
.cpx .cx-mm-eye{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--teal-dark,#0B8873);text-transform:uppercase;}
.cpx .cx-mm-tbl{border:1px solid var(--border);border-radius:10px;}
.cpx .cx-mm-tbl table{min-width:560px;font-size:12.5px;}
.cpx .cx-mm-tbl th{text-transform:none;letter-spacing:0;font-size:12px;color:#4A5672;background:#F4F7FB;}
.cpx .cx-mm-tbl tr:last-child td{border-bottom:0;}
.cpx .cx-mm-tbl tr.chosen td{background:#F3F9F5;} .cpx .cx-mm-tbl tr.notchosen td{color:#8A94A6;}
.cpx .cx-mm-tbl td.cardno{font-weight:700;font-variant-numeric:tabular-nums;} .cpx .cx-mm-tbl td.muted{color:#8A94A6;}
.cpx .cx-mm-final{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 13px;border:1px dashed #9FB3CF;border-radius:10px;background:#FAFBFD;}
.cpx .cx-mm-final .t{flex:1 1 300px;display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:#4A5672;}
.cpx .cx-mm-final .h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;} .cpx .cx-mm-final .h b{font-size:13.5px;color:var(--ink);}
.cpx .cx-mm-partner{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:#FAFBFD;font-size:12.5px;margin-bottom:4px;}
.cpx .cx-mm-partner > span{flex:1 1 260px;}
.cpx .cx-mm-row{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:5px 0;font-size:13.5px;}
.cpx .cx-mm-row > span{color:#4A5672;}
.cpx .cx-mm-file{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 11px;border:1px solid var(--border);border-radius:10px;font-size:13px;}
.cpx .cx-mm-file .t{flex:1 1 240px;display:flex;flex-direction:column;gap:1px;} .cpx .cx-mm-file small{font-size:11.5px;color:var(--muted);}
.cpx .cx-mm-hist{text-align:left;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#FAFBFD;color:var(--ink);width:100%;}
.cpx .cx-mm-hist small{display:block;font-size:12px;color:var(--muted);} .cpx .cx-mm-hist .lnk{font-size:12.5px;font-weight:700;color:var(--blue);}
.cpx .cx-mm-btns{border-top:1px solid #EEF1F5;padding-top:12px;margin-top:0;}
.cpx .cx-mm-bill{margin-bottom:10px;}
.cpx .cx-mmj .cx-dot{font-size:11px;font-weight:700;}
/* Add a plan */
.cpx .cx-mm-lbl{font-size:13px;font-weight:600;margin:10px 0 6px;}
.cpx .cx-mm-choices{display:flex;gap:8px;flex-wrap:wrap;}
.cpx .cx-mm-choice{min-height:44px;padding:8px 16px;border-radius:10px;border:1px solid #D5DCE6;background:#fff;color:var(--ink);text-align:left;display:flex;flex-direction:column;gap:2px;}
.cpx .cx-mm-choice small{font-size:12px;font-weight:400;}
.cpx .cx-mm-choice.on{border:2px solid var(--blue);background:#EAF1FA;color:var(--navy);}
.cpx .cx-form3{grid-template-columns:repeat(3,minmax(0,1fr));} .cpx .cx-form4{grid-template-columns:repeat(4,minmax(0,1fr));}
.cpx .cx-mm-deps{display:flex;flex-direction:column;gap:8px;margin-top:10px;align-items:flex-start;}
.cpx .cx-mm-dep,.cpx .cx-mm-cardrow{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;align-items:end;width:100%;}
.cpx .cx-mm-cardrow{grid-template-columns:1.4fr 1.4fr 1fr 1fr;}
.cpx .cx-mm-cards{display:flex;flex-direction:column;gap:8px;}
.cpx .cx-mm-dep label,.cpx .cx-mm-cardrow label{display:block;font-size:12px;font-weight:600;color:#4A5568;margin-bottom:3px;}
.cpx .cx-mm-dep input,.cpx .cx-mm-dep select,.cpx .cx-mm-cardrow input,.cpx .cx-mm-cardrow select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff;}
.cpx .cx-mm-riders{display:flex;gap:14px;flex-wrap:wrap;font-size:13.5px;margin-top:10px;}
.cpx .cx-mm-riders label{display:flex;gap:6px;align-items:center;}
.cpx .cx-mm-price{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;background:#F4F7FB;border-radius:10px;margin-top:10px;}
.cpx .cx-mm-price > span{display:flex;flex-direction:column;gap:2px;} .cpx .cx-mm-price small{font-size:12px;color:var(--muted);}
.cpx .cx-mm-price label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;}
.cpx .cx-mm-price input{min-height:36px;padding:0 10px;border:1px solid #D5DCE6;border-radius:8px;width:180px;font:inherit;}
@media (max-width:700px){
  .cpx .cx-mm-steps{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:10px;}
  .cpx .cx-mm-row{grid-template-columns:1fr;gap:1px;}
  .cpx .cx-form3,.cpx .cx-form4{grid-template-columns:1fr 1fr;}
  .cpx .cx-mm-dep,.cpx .cx-mm-cardrow{grid-template-columns:1fr 1fr;}
}

/* ===== Public MyMaxicare pages (Oct 2026, public/mm-client.js) =====
   ?mmapply (short apply form) and ?mmstatus (the client's application page),
   from ClientStatus.dc.html. */
.mmc-page{position:fixed;inset:0;z-index:100;overflow-y:auto;background:#F3F6FB;color:#1A2433;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;}
body.staging-mode .mmc-page{top:26px;}
.mmc-page *{box-sizing:border-box;}
.mmc-page button{font:inherit;cursor:pointer;}
.mmc-page a{color:#2566BC;}
.mmc-page :focus-visible{outline:2px solid #2566BC;outline-offset:2px;}
.mmc-top{background:#0C419B;color:#fff;}
.mmc-top-in{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;}
.mmc-top-in > div:first-child{display:flex;flex-direction:column;gap:2px;}
.mmc-top-in b{font-size:18px;} .mmc-top-in span{font-size:12.5px;color:#C9D9F2;}
.mmc-who{display:flex;gap:10px;align-items:center;flex-wrap:wrap;} .mmc-who span{font-size:13px;}
.mmc-narrow{max-width:520px;margin:0 auto;padding:40px 16px;display:flex;flex-direction:column;gap:16px;}
.mmc-narrow .mmc-card{padding:24px;}
.mmc-main{max-width:1120px;margin:0 auto;padding:22px 24px 48px;display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;}
.mmc-col{flex:1 1 620px;min-width:0;display:flex;flex-direction:column;gap:16px;}
.mmc-side{flex:1 1 300px;max-width:100%;display:flex;flex-direction:column;gap:16px;}
.mmc-card{background:#fff;border:1px solid #E3E7ED;border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 3px rgba(20,30,60,.06);}
.mmc-card h1{margin:0;font-size:22px;color:#0C419B;line-height:1.25;}
.mmc-h2{font-size:16px;color:#0C419B;} .mmc-h2.ok{color:#1E8E3E;}
.mmc-muted{color:#4A5672;font-size:14.5px;} .mmc-muted.sm{font-size:12.5px;color:#6B7684;}
.mmc-note{font-size:12.5px;color:#6B7684;}
.mmc-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0B8873;}
.mmc-eyebrow.navy{color:#0C419B;} .mmc-eyebrow.mute{color:#6B7684;}
.mmc-f{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;}
.mmc-f input,.mmc-f select,.mmc-f textarea{font:inherit;font-weight:400;font-size:15px;min-height:46px;padding:0 12px;border:1px solid #D5DCE6;border-radius:10px;background:#fff;color:#1A2433;width:100%;}
.mmc-f textarea{padding:10px 12px;min-height:80px;}
.mmc-f input[readonly]{background:#F4F7FB;}
.mmc-code{font-size:26px !important;letter-spacing:.4em;min-height:56px !important;font-variant-numeric:tabular-nums;}
.mmc-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 22px;border:0;background:#2566BC;color:#fff !important;font-weight:700;font-size:15px;border-radius:10px;text-decoration:none;}
.mmc-btn:disabled{opacity:.5;cursor:default;}
.mmc-btn.wide{width:100%;}
.mmc-btn.ghost{background:#fff;color:#0C419B !important;border:1px solid #D5DCE6;font-size:14px;}
.mmc-btn.ghost-w{background:transparent;border:1px solid rgba(255,255,255,.4);min-height:38px;padding:0 14px;font-size:13px;}
.mmc-btn.sm{min-height:36px;padding:0 12px;font-size:12.5px;}
.mmc-btn.up{cursor:pointer;} .mmc-btn.up.busy{opacity:.6;}
.mmc-link{border:0;background:none;padding:0;color:#2566BC;font-weight:700;}
.mmc-links{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13.5px;}
.mmc-msg{color:#C0392B;font-size:13.5px;min-height:1px;}
.mmc-toast{background:#0C419B;color:#fff;border-radius:10px;padding:12px 16px;font-size:14px;margin:14px auto 0;max-width:1072px;position:sticky;top:8px;z-index:3;}
.mmc-hrow{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:flex-start;}
.mmc-hrow > div{display:flex;flex-direction:column;gap:4px;}
.mmc-pill{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap;background:#E4EEFC;color:#2566BC;}
.mmc-pill.ok{background:#E3F5EA;color:#1E8E3E;} .mmc-pill.warn{background:#FFF2D9;color:#9A6200;} .mmc-pill.mute{background:#EEF1F5;color:#4A5672;}
.mmc-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;}
.mmc-steps li{display:flex;flex-direction:column;gap:6px;min-width:0;}
.mmc-steps .bar{height:6px;border-radius:999px;background:#E3E7ED;}
.mmc-steps .lbl{font-size:12px;font-weight:700;line-height:1.25;color:#8A94A6;}
.mmc-steps .dt{font-size:11.5px;color:#6B7684;min-height:14px;}
.mmc-steps .done .bar{background:#1E8E3E;} .mmc-steps .done .lbl{color:#1A2433;}
.mmc-steps .now .bar{background:#2566BC;} .mmc-steps .now .lbl{color:#0C419B;}
.mmc-todo{background:#EAF1FA;border:1px solid #BFD3F2;border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:10px;}
.mmc-todo b{font-size:17px;} .mmc-todo > span:not(.mmc-eyebrow){font-size:14px;color:#4A5672;}
.mmc-offer{border:2px solid #2566BC;}
.mmc-kv{border:1px solid #E3E7ED;border-radius:10px;overflow:hidden;}
.mmc-kv > div{display:grid;grid-template-columns:200px 1fr;gap:10px;padding:9px 12px;border-top:1px solid #EEF1F5;font-size:14px;}
.mmc-kv > div:first-child{border-top:0;} .mmc-kv span{color:#4A5672;}
.mmc-actions-l{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.mmc-sec{border:1px solid #E3E7ED;border-radius:12px;overflow:hidden;}
.mmc-sec-h{width:100%;text-align:left;display:flex;gap:12px;align-items:center;padding:12px 14px;border:0;background:#FAFBFD;color:#1A2433;}
.mmc-sec-h .t{flex:1;display:flex;flex-direction:column;gap:1px;} .mmc-sec-h small{font-size:12.5px;color:#6B7684;}
.mmc-dot{flex:0 0 24px;height:24px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:#E3E7ED;color:#4A5672;}
.mmc-dot.done{background:#1E8E3E;color:#fff;}
.mmc-sec-b{padding:14px;display:flex;flex-direction:column;gap:12px;border-top:1px solid #E3E7ED;}
.mmc-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;}
.mmc-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;}
.mmc-req{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 13px;border:1px solid #E3E7ED;border-radius:10px;}
.mmc-req .t{flex:1 1 240px;display:flex;flex-direction:column;gap:1px;} .mmc-req .t b{font-size:14.5px;} .mmc-req small{font-size:12.5px;color:#6B7684;}
.mmc-req .num{font-variant-numeric:tabular-nums;}
.mmc-req .mmc-btn{min-height:42px;padding:0 16px;}
.mmc-info{font-size:12.5px;color:#4A5672;background:#F4F7FB;border-radius:10px;padding:10px 12px;}
.mmc-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;}
.mmc-tile{display:flex;flex-direction:column;gap:3px;padding:11px 13px;border:1px solid #E3E7ED;border-radius:10px;}
.mmc-tile span{font-size:11px;font-weight:700;letter-spacing:.06em;color:#6B7684;} .mmc-tile b{font-size:15px;line-height:1.35;} .mmc-tile small{font-size:12px;color:#6B7684;}
.mmc-tile.hl{background:#EAF1FA;border-color:#BFD3F2;}
.mmc-cardsec{border-color:#CBE8D3;}
.mmc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;}
.mmc-mcard{border-radius:12px;padding:14px 16px;background:linear-gradient(135deg,#0C419B,#2566BC);color:#fff;display:flex;flex-direction:column;gap:6px;min-height:120px;}
.mmc-mcard > span:first-child{font-size:11px;font-weight:700;letter-spacing:.1em;color:#C9D9F2;}
.mmc-mcard b{font-size:17px;letter-spacing:.06em;font-variant-numeric:tabular-nums;}
.mmc-mcard .n{margin-top:auto;display:flex;justify-content:space-between;gap:8px;font-size:13px;} .mmc-mcard .n span:last-child{color:#C9D9F2;}
.mmc-tbl{overflow-x:auto;border:1px solid #E3E7ED;border-radius:10px;}
.mmc-tbl table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:420px;}
.mmc-tbl th{background:#F4F7FB;text-align:left;color:#4A5672;padding:9px 12px;font-weight:700;}
.mmc-tbl td{padding:10px 12px;border-top:1px solid #E3E7ED;vertical-align:top;} .mmc-tbl td small{display:block;font-size:12px;color:#6B7684;}
.mmc-tbl .r{text-align:right;font-variant-numeric:tabular-nums;}
.mmc-upd{display:flex;gap:12px;padding:8px 0;border-top:1px solid #EEF1F5;font-size:14px;} .mmc-upd span:first-child{flex:0 0 64px;color:#6B7684;font-size:13px;}
.mmc-agent{display:flex;gap:12px;align-items:center;} .mmc-agent > span:last-child{display:flex;flex-direction:column;gap:1px;}
.mmc-agent b{font-size:15px;color:#0C419B;} .mmc-agent small{font-size:12.5px;color:#4A5672;} .mmc-agent small.mute{font-size:12px;color:#6B7684;}
.mmc-agent .av{flex:0 0 46px;height:46px;border-radius:23px;background:linear-gradient(135deg,#4E82E0,#48B4C9);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;}
.mmc-doc{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #EEF1F5;}
.mmc-doc > span{display:flex;flex-direction:column;gap:1px;} .mmc-doc b{font-size:13.5px;} .mmc-doc small{font-size:12px;color:#6B7684;}
.mmc-privacy{font-size:13.5px;color:#4A5672;gap:8px;}
/* apply form */
.mmc-form fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.mmc-form legend{font-size:13.5px;font-weight:700;margin-bottom:6px;padding:0;}
.mmc-form .mmc-f{font-size:13px;} .mmc-form .mmc-f input,.mmc-form .mmc-f select{min-height:42px;font-size:14px;}
.mmc-opts{display:flex;flex-direction:column;gap:8px;}
.mmc-opt{text-align:left;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:10px 12px;border-radius:10px;border:1px solid #D5DCE6;background:#fff;color:#1A2433;}
.mmc-opt.on,.mmc-mode.on{border:2px solid #2566BC;background:#EAF1FA;color:#0C419B;}
.mmc-opt .mmc-prem{margin-left:auto;font-variant-numeric:tabular-nums;}
.mmc-modes{display:flex;gap:8px;flex-wrap:wrap;}
.mmc-mode{font-weight:600;min-height:42px;padding:0 16px;border-radius:9px;border:1px solid #D5DCE6;background:#fff;color:#1A2433;}
.mmc-checks{display:flex;flex-direction:column;gap:6px;} .mmc-checks label{display:flex;align-items:center;gap:8px;font-size:14px;}
.mmc-checks input{width:16px;height:16px;}
.mmc-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.mmc-actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:4px;}
.mmc-banner{border:1px dashed #9FB3CF;border-radius:10px;background:#FAFBFD;padding:10px 12px;font-size:13px;color:#0C419B;font-weight:600;}
/* MyMaxicare Application V2 (Oct 2026) */
.mm2-req{color:#C53030;font-weight:700;}
.mm2-opt{color:#718096;font-weight:400;font-size:12px;}
.mm2-lbl{font-size:13px;font-weight:600;color:#1A2433;margin:6px 0 2px;}
.mm2-actions{justify-content:flex-start;}
@media (max-width:560px){.mm2-actions .mmc-btn{width:100%;text-align:center;}}
.mmc-number{border:1px solid #BFD3F2;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;}
.mmc-number span{font-size:11px;font-weight:700;letter-spacing:.08em;color:#0C419B;text-transform:uppercase;} .mmc-number b{font-size:22px;color:#0C419B;}
@media (max-width:640px){
  .mmc-top-in,.mmc-main{padding-left:16px;padding-right:16px;}
  .mmc-steps{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:10px;}
  .mmc-kv > div{grid-template-columns:1fr;gap:2px;}
  .mmc-card{padding:16px;}
}
.mmc-page p{margin:0;}
.mmc-page label{margin:0;}
.mmc-page input,.mmc-page select,.mmc-page textarea{margin:0;box-shadow:none;}
.mmc-apply{max-width:640px;}
.mmc-dlg{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(15,30,60,.12);border:1px solid #E3E7ED;}
.mmc-dlg-h{background:#0C419B;color:#fff;padding:16px 20px;display:flex;flex-direction:column;gap:2px;}
.mmc-dlg-h b{font-size:18px;} .mmc-dlg-h span{font-size:12.5px;color:#C9D9F2;}
.mmc-card.flat{border:0;box-shadow:none;border-radius:0;padding:18px 20px;gap:14px;}

/* =========================================================
   MOBILE APP SHELL (Oct 2026) — features/mobile-shell.js.
   Everything below is scoped to body.nas-m, which the shell only sets at
   phone width (<= 760px) while signed in, so desktop never sees any of it.
   Colors/sizes follow the approved "NAS Portal Mobile App" mock-up.
   ========================================================= */
#nasMBar, #nasMPanel{display:none;}
body.nas-m{
  --m-navy:#0E2A56; --m-blue:#2F6FD6; --m-blue-dk:#1F55AE; --m-muted:#5A6B85;
  --m-line:#E3E9F2; --m-line2:#EEF2F8; --m-bg:#F5F8FC; --m-field:#D5DEEB;
  background:var(--m-bg);
}
/* Desktop chrome off: the bottom bar + Menu replace the sidebar. */
body.nas-m #sidebar{display:none;}
body.nas-m .main-wrap{margin-left:0;}
/* Top bar kept as a compact icon row (search, new call, add, Quick Ref,
   notifications) until Today/Contacts carry their own buttons. */
body.nas-m .top-bar{padding:8px 12px;justify-content:flex-end;}
body.nas-m .top-bar-welcome{display:none;}
body.nas-m main{padding-bottom:110px;}
body.nas-m #dialerFab{right:20px;bottom:calc(102px + env(safe-area-inset-bottom));width:58px;height:58px;}

body.nas-m #nasMBar{
  display:grid;position:fixed;left:0;right:0;bottom:0;z-index:450;
  height:calc(84px + env(safe-area-inset-bottom));box-sizing:border-box;
  padding:8px 4px calc(22px + env(safe-area-inset-bottom));
  background:#fff;border-top:1px solid var(--m-line);
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
}
.nas-m-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  background:none;border:0;padding:0;min-height:44px;font:inherit;font-size:12px;font-weight:600;color:var(--m-muted);cursor:pointer;}
.nas-m-tab.active{color:var(--m-blue);font-weight:700;}

body.nas-m #nasMPanel.open{
  display:block;position:fixed;left:0;right:0;top:0;bottom:calc(84px + env(safe-area-inset-bottom));
  z-index:440;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--m-bg);
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--m-navy);
}
body.nas-m.staging-mode #nasMPanel.open{top:26px;}
.nas-m-wrap{display:flex;flex-direction:column;gap:14px;padding:22px 20px 20px;max-width:560px;margin:0 auto;}
.nas-m-h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--m-navy);}
.nas-m-h2{margin:2px 0 0;font-size:20px;font-weight:800;color:var(--m-navy);}
.nas-m-kicker{display:block;font-size:11px;font-weight:700;color:var(--m-muted);letter-spacing:.02em;}
.nas-m-card{background:#fff;border:1px solid var(--m-line);border-radius:16px;overflow:hidden;}

/* Menu */
.nas-m-profile{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--m-line);border-radius:18px;padding:12px 14px;
  border-bottom:1px solid var(--m-line);color:var(--m-navy);}
.nas-m-avatar{width:46px;height:46px;flex:none;border-radius:23px;background:var(--m-navy);color:#fff;font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:center;}
.nas-m-profile-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.nas-m-profile-name{font-size:16px;font-weight:800;}
.nas-m-profile-sub{font-size:12px;color:var(--m-muted);}
.nas-m-online{font-size:11px;font-weight:700;color:#1E7B3C;background:#E6F6EA;padding:4px 8px;border-radius:7px;}
.nas-m-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.nas-m-tile{height:76px;border-radius:14px;background:#fff;border:1px solid var(--m-line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  font:inherit;color:var(--m-navy);cursor:pointer;padding:0 4px;}
.nas-m-tile-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;}
.nas-m-tile-lbl{font-size:12px;font-weight:600;text-align:center;line-height:1.15;}
.nas-m-signout{height:48px;border-radius:14px;border:1px solid #F1C8C2;background:#fff;color:#B42318;font:inherit;font-size:15px;font-weight:700;
  display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;}

/* Quick Reference */
.nas-m-chips{display:flex;gap:8px;overflow-x:auto;margin:0 -20px;padding:0 20px 2px;scrollbar-width:none;}
.nas-m-chips::-webkit-scrollbar{display:none;}
.nas-m-chip{flex:none;height:38px;padding:0 14px;border-radius:19px;border:1px solid var(--m-field);background:#fff;color:var(--m-navy);font:inherit;font-size:14px;font-weight:600;cursor:pointer;}
.nas-m-chip.on{background:var(--m-navy);border-color:var(--m-navy);color:#fff;}
.nas-m-qr-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.nas-m-qr-title{display:block;font-size:16px;font-weight:800;}
.nas-m-qr-sub{display:block;font-size:12px;color:var(--m-muted);line-height:1.45;}
.nas-m-notice{font-size:13px;color:#8A4B08;background:#FDF1E3;border-radius:12px;padding:10px 12px;}
.nas-m-btn-primary{flex:none;height:40px;padding:0 14px;border-radius:12px;border:0;background:var(--m-blue);color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;}
.nas-m-link-row{display:flex;align-items:center;gap:8px;padding:7px 8px 7px 14px;border-bottom:1px solid var(--m-line2);}
.nas-m-list .nas-m-link-row:last-child, .nas-m-list .nas-m-folder:last-child{border-bottom:0;}
.nas-m-link-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.nas-m-link-title{font-weight:700;font-size:14px;color:var(--m-navy);}
.nas-m-link-url{font-size:11px;color:var(--m-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,Menlo,monospace;}
.nas-m-btn-ghost{flex:none;height:34px;min-width:56px;padding:0 10px;border-radius:9px;border:1px solid var(--m-field);background:#fff;color:var(--m-navy);font:inherit;font-size:12px;font-weight:700;cursor:pointer;}
.nas-m-btn-send{flex:none;width:44px;height:34px;border-radius:9px;border:0;background:#E6F0FC;color:var(--m-blue-dk);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.nas-m-btn-ghost:disabled,.nas-m-btn-send:disabled{opacity:.45;cursor:not-allowed;}
.nas-m-hiring{border-style:dashed;border-color:#C7D2E3;}
.nas-m-hiring .nas-m-link-row{border-bottom:0;padding-top:10px;padding-bottom:10px;}
.nas-m-folder{display:flex;align-items:center;gap:12px;padding:0 14px;min-height:44px;border-bottom:1px solid var(--m-line2);text-decoration:none;color:var(--m-navy);}
.nas-m-folder svg:first-child{color:var(--m-blue);flex:none;}
.nas-m-folder svg:last-child{color:var(--m-muted);flex:none;}
.nas-m-folder span{flex:1;font-size:14px;font-weight:600;}
.nas-m-empty{padding:20px;font-size:14px;color:var(--m-muted);border-style:dashed;}

/* Send sheet */
.nas-m-sheet-bg{position:fixed;inset:0;z-index:600;background:rgba(14,42,86,.45);display:flex;flex-direction:column;justify-content:flex-end;font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--m-navy);}
.nas-m-sheet-scrim{flex:1;border:0;background:transparent;cursor:pointer;}
.nas-m-sheet{background:#fff;border-radius:24px 24px 0 0;padding:10px 20px calc(30px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;}
.nas-m-grab{align-self:center;width:40px;height:5px;border-radius:3px;background:var(--m-field);}
.nas-m-to{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;}
.nas-m-to input{height:50px;box-sizing:border-box;padding:0 14px;border-radius:14px;border:1px solid var(--m-field);font:inherit;font-size:16px;font-weight:600;color:var(--m-navy);}
.nas-m-msg{background:var(--m-bg);border-radius:14px;padding:14px;font-size:14px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere;}
.nas-m-channels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.nas-m-channels button{height:70px;border-radius:14px;border:1px solid var(--m-line);background:#fff;color:var(--m-navy);font:inherit;font-size:12px;font-weight:600;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;}
.nas-m-channels svg{color:var(--m-blue);}
/* Pop-ups (#modalRoot — e.g. the full Quick Reference Guide opened from a
   product chip) sit above the shell's panel and bottom bar on a phone. */
body.nas-m #modalRoot > .modal-bg{z-index:460;}
/* The staging banner stays one line on a phone (it wraps to two otherwise
   and covers the top bar). Staging only — production has no banner. */
body.nas-m #stagingBanner{font-size:11px;padding:5px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ----- Mobile Contacts list + contact card (features/mobile-contacts.js) ----- */
.nas-m-row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.nas-m-round{width:44px;height:44px;flex:none;border-radius:22px;border:0;background:var(--m-blue);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.nas-m-search{display:flex;align-items:center;gap:10px;height:48px;box-sizing:border-box;padding:0 14px;border-radius:14px;background:#fff;border:1px solid var(--m-line);color:var(--m-muted);}
.nas-m-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;font:inherit;font-size:16px;color:var(--m-navy);padding:0;}
.nas-m-ct-row{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border:0;border-bottom:1px solid var(--m-line2);background:#fff;text-align:left;font:inherit;color:var(--m-navy);cursor:pointer;}
.nas-m-list .nas-m-ct-row:last-child{border-bottom:0;}
.nas-m-av{width:42px;height:42px;flex:none;border-radius:21px;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;background:#E6F0FC;color:#1F55AE;}
.nas-m-av.lg{width:56px;height:56px;border-radius:28px;font-size:19px;font-weight:800;}
.nas-m-ct-sub{display:block;font-size:13px;color:var(--m-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nas-m-ct-next{flex:none;font-size:12px;font-weight:600;color:var(--m-muted);text-align:right;}
.nas-m-ct-next.due{color:#B4470C;}
.nas-m-more{height:46px;border-radius:14px;border:1px solid var(--m-field);background:#fff;color:var(--m-navy);font:inherit;font-size:14px;font-weight:700;cursor:pointer;}
body.nas-m .nas-m-ctl{font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--m-navy);padding:6px 0 0;}
body.nas-m #tab-contacts .nas-m-ctl .nas-m-chips{margin:0 -12px;padding:0 12px 2px;}

/* Contact card: hide the desktop header + section menu, show the mock-up's. */
body.nas-m #cpxRoot .cx-crumbs,
body.nas-m #cpxRoot > .cx-card.accent,
body.nas-m #cpxRoot .cx-menu{display:none !important;}
body.nas-m #cpxRoot .cx-page{display:block;}
body.nas-m #cpxRoot{padding-bottom:84px;}
.nas-m-ct{display:none;}
body.nas-m .nas-m-ct{display:flex;flex-direction:column;gap:14px;background:#fff;border:1px solid var(--m-line);border-radius:18px;padding:6px 14px 14px;margin:0 0 14px;
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--m-navy);}
.nas-m-ct-top{display:flex;justify-content:space-between;align-items:center;}
.nas-m-icon-btn{width:44px;height:44px;border:0;background:transparent;color:var(--m-navy);display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0 -10px;}
.nas-m-ct-who{display:flex;align-items:center;gap:14px;}
.nas-m-ct-whotxt{display:flex;flex-direction:column;gap:6px;min-width:0;}
.nas-m-ct-name{margin:0;font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--m-navy);overflow-wrap:anywhere;}
.nas-m-ct-pills{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.nas-m-ct-avail{font-size:12px;font-weight:600;color:var(--m-muted);}
.nas-m-ct-acts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.nas-m-ct-act{height:64px;border-radius:14px;border:1px solid var(--m-line);background:var(--m-bg);color:var(--m-navy);font:inherit;font-size:12px;font-weight:600;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-decoration:none;cursor:pointer;}
.nas-m-ct-act svg{color:var(--m-blue);}
.nas-m-ct-act:disabled{opacity:.45;cursor:not-allowed;}
.nas-m-seg{display:flex;gap:4px;background:var(--m-line2);border-radius:12px;padding:4px;}
.nas-m-seg button{flex:1;height:38px;border:0;border-radius:9px;background:transparent;color:var(--m-muted);font:inherit;font-size:14px;font-weight:700;cursor:pointer;}
.nas-m-seg button.on{background:#fff;color:var(--m-navy);box-shadow:0 1px 3px rgba(14,42,86,.08);}
.nas-m-ct-bar{display:none;}
body.nas-m .nas-m-ct-bar{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:calc(84px + env(safe-area-inset-bottom));z-index:445;
  padding:10px 20px;background:#fff;border-top:1px solid var(--m-line);font-family:'Plus Jakarta Sans',system-ui,sans-serif;}
.nas-m-ct-barbtn{flex:1;height:50px;border-radius:14px;border:1px solid var(--m-field);background:#fff;color:var(--m-navy);font:inherit;font-size:15px;font-weight:700;cursor:pointer;}
.nas-m-ct-barbtn.primary{border:0;background:var(--m-blue);color:#fff;}
.nas-m-ct-barbtn:disabled{opacity:.45;cursor:not-allowed;}

body.nas-m:has(.nas-m-ct-bar) #dialerFab{bottom:calc(170px + env(safe-area-inset-bottom));}
body.nas-m:has(.nas-m-ct-bar) main{padding-bottom:180px;}

/* Generic sheet rows (… menu, link picker). */
.nas-m-sheet-scroll{max-height:80vh;overflow-y:auto;}
.nas-m-sheet-row{display:flex;align-items:center;gap:10px;width:100%;min-height:50px;padding:10px 14px;border:0;border-bottom:1px solid var(--m-line2);background:#fff;
  text-align:left;font:inherit;font-size:15px;font-weight:600;color:var(--m-navy);cursor:pointer;}
.nas-m-list .nas-m-sheet-row:last-child{border-bottom:0;}
.nas-m-sheet-row > span:first-child{flex:1;}
.nas-m-sheet-row svg{color:var(--m-blue);flex:none;}
.nas-m-count{margin-left:auto;font-size:12px;font-weight:700;color:var(--m-muted);background:var(--m-line2);padding:2px 8px;border-radius:9px;}
/* Same weight/size inside the contact page, whose .cpx button rules would
   otherwise win on specificity. */
body.nas-m #cpxRoot .nas-m-ct-act{font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-size:12px;font-weight:600;color:var(--m-navy);}
body.nas-m #cpxRoot .nas-m-ct-barbtn{font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-size:15px;font-weight:700;}
body.nas-m #cpxRoot .nas-m-seg button{font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-size:14px;font-weight:700;}
.nas-m-sheet > *{flex-shrink:0;}
/* Quick Ref: open a link in the browser (Oct 2026). */
.nas-m-btn-open{flex:none;width:38px;height:34px;border-radius:9px;border:1px solid var(--m-field);background:#fff;color:var(--m-navy);display:flex;align-items:center;justify-content:center;text-decoration:none;}
.nas-m-open-row{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:700;color:var(--m-blue);text-decoration:none;}
/* Landscape phone: the panel and bars are shorter; keep the bottom bar slim. */
@media (pointer: coarse) and (max-height: 500px){
  body.nas-m #nasMBar{height:calc(60px + env(safe-area-inset-bottom));padding-top:4px;padding-bottom:calc(6px + env(safe-area-inset-bottom));}
  body.nas-m #nasMBar .nas-m-tab{flex-direction:row;gap:6px;}
  body.nas-m #nasMPanel.open{bottom:calc(60px + env(safe-area-inset-bottom));}
  body.nas-m .nas-m-ct-bar{bottom:calc(60px + env(safe-area-inset-bottom));padding:6px 20px;}
  body.nas-m .nas-m-ct-barbtn{height:42px;}
  body.nas-m #dialerFab{bottom:calc(76px + env(safe-area-inset-bottom));}
  body.nas-m:has(.nas-m-ct-bar) #dialerFab{bottom:calc(136px + env(safe-area-inset-bottom));}
  .nas-m-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .nas-m-wrap{max-width:760px;}
}

/* ----- Quick Reference Notepad: several notes per product line (Oct 2026).
   Desktop guide and phone app Quick Ref share this markup. ----- */
.qrn{display:flex;flex-direction:column;gap:10px;}
.qrn-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.qrn-count{font-size:12px;color:#718096;font-weight:600;}
.qrn-add{padding:7px 14px;font-size:12.5px;}
.qrn-list{display:flex;flex-direction:column;gap:10px;}
.qrn-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;}
.qrn-card.qrn-dirty, .qrn-card.qrn-new{border-color:#E8A415;box-shadow:0 0 0 2px rgba(232,164,21,.12);}
.qrn-title{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:8px;padding:7px 10px;font:inherit;font-size:13px;font-weight:700;color:var(--navy);}
.qrn-text{width:100%;box-sizing:border-box;min-height:110px;resize:vertical;border:1px solid var(--border);border-radius:8px;padding:9px 10px;font:inherit;font-size:13px;line-height:1.5;}
.qrn-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.qrn-status{flex:1;min-width:120px;font-size:11.5px;color:#718096;}
.qrn-actions .btn{padding:6px 12px;font-size:12px;}
.qrn-empty{font-size:12.5px;color:#718096;margin:2px 0 0;}
/* Phone app: bigger touch targets, 16px text (no iPhone zoom on focus). */
body.nas-m .qrn{font-family:'Plus Jakarta Sans',system-ui,sans-serif;}
body.nas-m .qrn-card{border-radius:16px;border-color:var(--m-line);padding:12px 14px;}
body.nas-m .qrn-title, body.nas-m .qrn-text{font-size:16px;border-radius:12px;border-color:var(--m-field);}
body.nas-m .qrn-actions .btn{min-height:40px;padding:0 14px;font-size:13px;border-radius:10px;}
body.nas-m .qrn-add{min-height:40px;border-radius:12px;}
.nas-m-seg-lite{background:#fff;border:1px solid var(--m-line);}
.nas-m-seg-lite button.on{background:var(--m-navy);color:#fff;box-shadow:none;}
body.nas-m .qrn-status{flex:1 1 100%;}
body.nas-m .qrn-actions .btn{flex:1;}
/* Notepad notes fold to their title (Oct 2026). */
.qrn-card{gap:0;}
.qrn-bar{display:flex;align-items:center;gap:8px;}
.qrn-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:40px;padding:0;border:0;background:none;text-align:left;font:inherit;font-size:13.5px;font-weight:700;color:var(--navy);cursor:pointer;}
.qrn-bar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.qrn-chev{flex:none;display:inline-block;color:#718096;transition:transform .15s ease;transform:rotate(90deg);}
.qrn-card.collapsed .qrn-chev{transform:rotate(0deg);}
.qrn-card.collapsed .qrn-body{display:none;}
.qrn-body{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.qrn-bar .qrn-copy-quick{flex:none;padding:6px 12px;font-size:12px;}
.qrn-card.collapsed{padding-top:6px;padding-bottom:6px;}
body.nas-m .qrn-toggle{font-size:15px;min-height:44px;}
body.nas-m .qrn-bar .qrn-copy-quick{min-height:38px;border-radius:10px;}
body.nas-m .qrn-card.collapsed{padding-top:4px;padding-bottom:4px;}
/* Mark paid + proof of payment (Oct 2026) */
.cpx .cx-pay-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.ga-proof{font-size:12px;margin-left:4px;}
/* MyMaxicare client list (Sales › MyMaxicare, Oct 2026) */
.ifg-client-tbl .ifg-client-row{cursor:pointer;}
.ifg-client-tbl .ifg-client-row:hover td,.ifg-client-tbl .ifg-client-row:focus td{background:#F4F7FB;}
.ifg-client-tbl .ifg-client-row:focus{outline:2px solid #2566BC;outline-offset:-2px;}
/* Segment reports (Dashboard › Reports, Oct 2026) */
.sr-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;border-bottom:2px solid var(--border);margin-bottom:14px;}
.sr-tabs{display:flex;gap:14px;overflow-x:auto;}
.sr-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding-bottom:8px;}
.sr-stats{margin:0 0 14px;}
.sr-card{border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:14px;background:#fff;}
.sr-card-h h4{margin:0;font-size:15px;color:var(--navy);}
.sr-card-h p{margin:4px 0 10px;font-size:12px;color:#718096;}
.sr-tbl{width:100%;}
.sr-tbl th.sr-num,.sr-tbl td.sr-num{text-align:right;white-space:nowrap;}
.sr-tbl td small{display:block;font-size:11px;color:#718096;}
.sr-tbl tr.sr-total td{font-weight:700;background:var(--light,#F4F7FB);}
.sr-tbl tr.sr-top td{background:#EEF4FC;}
.sr-tbl tr.sr-row{cursor:pointer;}
.sr-tbl tr.sr-row:hover td,.sr-tbl tr.sr-row:focus td{background:#F4F7FB;}
.sr-tbl tr.sr-row:focus{outline:2px solid #2566BC;outline-offset:-2px;}
.sr-bad{color:var(--red);font-weight:600;}
.sr-pill{display:inline-block;font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;background:#E3F5EA;color:var(--green);margin-left:4px;}
.sr-empty{font-size:13px;color:#718096;margin:4px 0;}
.sr-filters select,.sr-filters input{width:auto;min-width:0;}
.sr-stats .num{font-size:clamp(18px,2.1vw,26px);overflow-wrap:anywhere;}

/* Sales › MyMaxicare buckets (Oct 2026, approved mock-up v5) */
.ifg-cnt{display:inline-block;min-width:20px;padding:0 6px;margin-left:4px;border-radius:99px;background:#EDF2F7;color:#4A5568;font-size:11.5px;font-weight:700;text-align:center;}
.cc-tab-btn.active .ifg-cnt{background:rgba(255,255,255,.25);color:inherit;}
.ifg-cnt.alert{background:#FDE8E8;color:#C53030;}
.ifg-client-tbl td.num,.ifg-client-tbl th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.ifg-id{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;white-space:nowrap;}
.ifg-name-link{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--navy,#0E2A56);cursor:pointer;text-align:left;}
.ifg-name-link:hover{text-decoration:underline;color:var(--blue,#2566BC);}
.ifg-sub{display:block;font-size:11.5px;color:#718096;font-weight:500;margin-top:2px;}
.ifg-ifg{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;font-weight:700;color:#1F5FAE;}
.ifg-actions{white-space:nowrap;}
.ifg-actions > div{display:flex;flex-direction:column;gap:5px;align-items:stretch;}
.ifg-btn{padding:5px 10px !important;font-size:12.5px !important;min-height:0 !important;}
.ifg-mini-link{background:none;border:0;padding:0;margin-top:4px;font-size:11.5px;color:#C53030;cursor:pointer;text-decoration:underline;}
.ifg-age{font-weight:700;font-variant-numeric:tabular-nums;}
.ifg-age.warm{color:#B7791F;} .ifg-age.hot{color:#C53030;}
.ifg-status{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.ifg-status-sel{font-size:12.5px;padding:4px 6px;width:auto;min-width:0;}
.ifg-pill{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap;}
.ifg-pill.p-received{background:#EDF2F7;color:#4A5568;}
.ifg-pill.p-applink{background:#E5EEFB;color:#1F5FAE;}
.ifg-pill.p-payment{background:#FDF1DC;color:#A76300;}
.ifg-pill.p-validation{background:#E6EFFB;color:#1F6FD1;}
.ifg-pill.p-pending{background:#FBE5E7;color:#B4232F;}
.ifg-due-red{color:#C53030;font-weight:700;white-space:nowrap;}
.ifg-due-red .ifg-sub{color:#C53030;font-weight:600;}
tr.ifg-fresh td{background:#EAF1FA;}
.ifg-client-tbl .ifg-client-row{cursor:default;}
