/* Campaigns (Contacts > Campaigns) and the 4-step wizard. Moved out of index.html unchanged
   (split #2). index.html links this sheet exactly where these rules used to sit, so nothing
   moved in the cascade. */
  /* ── CAMPAIGNS (Contacts > Campaigns) ───────────────────────────────────
     Greys only, one blue for what is selected. Base rules sit OUTSIDE any media
     block, so the phone block below only adjusts sizes and never relies on them. */
  #page-contacts .ct-maintabs { display:flex; align-items:center; gap:20px; }
  #page-contacts .ct-maintabs .sched-maintab { font-size:17px; letter-spacing:-0.022em; min-height:0; }
  #page-contacts.ct-camp-mode .topbar-right > :not(.camp-hdr-slot):not(.notif-bell) { display:none !important; }
  #page-contacts:not(.ct-camp-mode) .camp-hdr-slot { display:none !important; }
  #page-contacts.ct-camp-mode #contacts-count { display:none !important; }
  #page-contacts.ct-camp-mode #contacts-controls,
  #page-contacts.ct-camp-mode #contacts-srch-row-mobile,
  #page-contacts.ct-camp-mode #contacts-bulk-bar { display:none !important; }
  #campaigns-view { flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .cm-wrap { width:100%; max-width:none; margin:0; padding:22px 22px 32px; box-sizing:border-box; }
  /* Same shell as Contacts: 22px side gutters, content 22px under the header, full width. */
  .cm-head.cm-head-list { display:none; }
  .cm-wrap > .cm-h:first-child, .cm-col > .cm-h:first-child { margin-top:0; }
  .cm-cols { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; align-items:start; }
  .cm-col { min-width:0; }
  .cm-col-side { position:sticky; top:16px; }
  .cm-col-side .cm-frame { height:max(320px, calc(100vh - 440px)); }
  .cm-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px; }
  .cm-head-t { font-size:16px; font-weight:700; color:var(--text); letter-spacing:-0.01em; min-width:0; overflow-wrap:anywhere; }
  .cm-new { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
  .cm-new svg { width:14px; height:14px; }
  .cm-h { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text2); margin:24px 4px 8px; }
  .cm-group { background:var(--bg); border:1px solid var(--border2); border-radius:12px; overflow:hidden; }
  .cm-group.cm-pad { padding:8px 16px 16px; }
  .cm-row { display:flex; align-items:center; gap:12px; width:100%; min-height:52px; padding:6px 16px; box-sizing:border-box; background:none; border:0; border-top:1px solid var(--border2); text-align:left; font-family:inherit; color:var(--text); cursor:pointer; }
  .cm-row:first-child { border-top:0; }
  .cm-row:hover { background:var(--bg2); }
  .cm-row-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
  .cm-row-t { font-size:13px; font-weight:600; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cm-row-s { font-size:12px; color:var(--text2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cm-chev { width:16px; height:16px; color:var(--text2); flex:0 0 16px; }
  .cm-drip-row { cursor:default; }
  .cm-drip-acts { display:flex; gap:8px; flex-shrink:0; }
  .cm-drip-btn { height:32px; padding:0 12px; font-size:12px; }
  .cm-drip-arm { font-weight:700; border-color:var(--text2); }
  .cm-drip-how { padding:8px 4px 0; font-size:12px; line-height:1.45; }
  @media (max-width:768px) { .cm-drip-row { flex-wrap:wrap; padding:8px 16px; } .cm-drip-acts { width:100%; } .cm-drip-btn { height:44px; flex:1; } }
  .cm-tag { display:inline-block; margin-left:8px; padding:1px 8px; border-radius:6px; background:var(--bg3); color:var(--text2); font-size:11px; font-weight:600; vertical-align:1px; }
  .cm-back { display:inline-flex; align-items:center; gap:4px; background:none; border:0; padding:0 0 12px; font-family:inherit; font-size:13px; font-weight:600; color:var(--text2); cursor:pointer; }
  .cm-back svg { width:16px; height:16px; }
  .cm-state, .cm-empty-card { background:var(--bg); border:1px solid var(--border2); border-radius:12px; padding:24px 16px; text-align:center; margin:0 0 16px; }
  .cm-state-compact { padding:16px; text-align:left; display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
  .cm-state-ic { width:40px; height:40px; border-radius:12px; background:var(--bg3); color:var(--text2); display:flex; align-items:center; justify-content:center; margin:0 auto 12px; }
  .cm-state-compact .cm-state-ic { margin:0; }
  .cm-state-ic svg { width:18px; height:18px; }
  .cm-state-t { font-size:14px; font-weight:700; color:var(--text); margin-bottom:4px; }
  .cm-state-s { font-size:13px; line-height:1.5; color:var(--text2); max-width:460px; margin:0 auto 16px; }
  .cm-state-compact .cm-state-s { margin:0 0 4px; }
  .cm-empty-card .cm-state-s { margin-bottom:0; }
  .cm-note, .cm-tip { display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--bg3); border-radius:12px; padding:12px 16px; font-size:13px; line-height:1.5; color:var(--text); margin:0 0 16px; }
  .cm-tip { display:block; }
  .cm-bnc-v { display:inline-flex; align-items:center; gap:8px; min-width:0; }
  .cm-bnc-v code { font-family:'DM Mono', monospace; font-size:12px; color:var(--text); word-break:break-all; }
  .cm-bnc-steps { margin:0; padding:0 0 0 16px; font-size:13px; line-height:1.5; color:var(--text); }
  .cm-bnc-steps li + li { margin-top:8px; }
  .cm-err span, .cm-err-t { color:var(--text); }
  .cm-err-t { font-size:13px; padding:8px 0; }
  .cm-link { background:none; border:0; padding:0; font-family:inherit; font-size:13px; font-weight:600; color:var(--accent); cursor:pointer; white-space:nowrap; }
  .cm-dim { font-size:12px; line-height:1.5; color:var(--text2); }
  .cm-empty { font-size:13px; color:var(--text2); padding:16px 0; }
  .cm-field { padding:12px 0; border-top:1px solid var(--border2); }
  .cm-field:first-child { border-top:0; }
  .cm-field-l { font-size:13px; font-weight:600; color:var(--text); margin-bottom:8px; }
  .cm-field-l span { font-weight:400; font-size:12px; color:var(--text2); margin-left:8px; }
  .cm-in { width:100%; box-sizing:border-box; height:36px; padding:0 12px; border:1px solid var(--border2); border-radius:8px; background:var(--bg2); color:var(--text); font-family:inherit; font-size:13px; }
  .cm-in:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
  .cm-ta { height:auto; min-height:96px; padding:8px 12px; line-height:1.5; resize:vertical; }
  .cm-chips { display:flex; flex-wrap:wrap; gap:8px; }
  .cm-chip { display:inline-flex; align-items:center; gap:8px; height:32px; padding:0 12px; border-radius:22px; border:1px solid var(--border2); background:var(--bg); color:var(--text); font-family:inherit; font-size:12px; font-weight:600; cursor:pointer; }
  .cm-chip i { font-style:normal; font-weight:500; color:var(--text2); }
  .cm-chip:hover { background:var(--bg2); }
  .cm-chip.on { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }
  .cm-chip.on i { color:var(--accent); }
  .cm-counts { margin-top:8px; padding-top:16px; border-top:1px solid var(--border2); }
  .cm-count-big { font-size:13px; color:var(--text); }
  .cm-count-big b { font-size:24px; font-weight:700; letter-spacing:-0.02em; margin-right:4px; }
  .cm-days { margin-top:8px; font-size:13px; color:var(--text); line-height:1.5; }
  .cm-days b { font-weight:700; }
  .cm-left { margin-top:12px; background:var(--bg2); border-radius:12px; padding:8px 16px; }
  .cm-left-h { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text2); padding:8px 0; }
  .cm-left-r { display:flex; justify-content:space-between; gap:12px; font-size:13px; color:var(--text2); padding:8px 0; border-top:1px solid var(--border2); }
  .cm-left-r:first-of-type { border-top:0; }
  .cm-left-r b { color:var(--text); font-weight:600; }
  .cm-units { display:flex; flex-direction:column; gap:4px; max-height:260px; overflow-y:auto; padding-top:8px; }
  .cm-unit { display:flex; align-items:center; gap:12px; width:100%; min-height:40px; padding:4px 8px; border-radius:8px; border:0; background:none; font-family:inherit; font-size:13px; color:var(--text); text-align:left; cursor:pointer; }
  .cm-unit:hover { background:var(--bg2); }
  .cm-tick { width:18px; height:18px; flex:0 0 18px; border-radius:6px; border:1.5px solid var(--border2); display:flex; align-items:center; justify-content:center; font-size:12px; color:#fff; }
  .cm-unit.on .cm-tick { background:var(--accent); border-color:var(--accent); }
  .cm-unit-t { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cm-unit-r { color:var(--text2); font-size:12px; white-space:nowrap; }
  .cm-frame { width:100%; height:440px; border:1px solid var(--border2); border-radius:12px; background:#fff; margin-top:8px; }
  .cm-prev-act { margin-top:12px; }
  .cm-actions { margin-top:24px; padding:0 0 4px; }
  .cm-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
  .cm-grid2 .cm-field { border-top:1px solid var(--border2); }
  .cm-btnrow { display:flex; flex-wrap:wrap; gap:8px; }
  .cm-confirm { background:var(--bg); border:1px solid var(--border2); border-radius:12px; padding:16px; display:flex; flex-direction:column; gap:8px; }
  .cm-confirm-t { font-size:14px; font-weight:700; color:var(--text); }
  .cm-why, .cm-msg { margin:0 0 8px; }
  .cm-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:16px 0; }
  .cm-stat b small { font-size:13px; font-weight:600; color:var(--text2); letter-spacing:0; }
  .cm-row-n { flex:0 0 auto; font-size:12px; color:var(--text2); white-space:nowrap; }
  .cm-person-tags { flex:0 0 auto; font-size:12px; color:var(--text2); white-space:nowrap; }
  .cm-stat { background:var(--bg); border:1px solid var(--border2); border-radius:12px; padding:12px 16px; display:flex; flex-direction:column; gap:4px; }
  .cm-stat b { font-size:20px; font-weight:700; color:var(--text); letter-spacing:-0.02em; }
  .cm-stat span { font-size:12px; color:var(--text2); line-height:1.4; }
  .cm-detail-act { margin-bottom:8px; }
  .cm-danger { color:var(--text); border-color:var(--text2); }
  .cm-footnote { margin-top:16px; }
  /* Polish pass (matches Tasks / e-Sign / Dashboard): summary tiles, filter strip + search,
     icon tiles on rows, a grey status pill, quiet empty states. Greys only; navy primary. */
  .cm-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 0 16px; }
  .cm-kpi { background:var(--bg); border:1px solid var(--border2); border-radius:12px; padding:12px 16px; display:flex; flex-direction:column; gap:4px; box-shadow:var(--shadow-xs); min-width:0; }
  .cm-kpi b { font-size:22px; font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:var(--text); font-variant-numeric:tabular-nums; }
  .cm-kpi span { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .cm-tools { display:none; }   /* phone only: holds the in-page search pill (desktop search is in the header) */
  /* Filter strip (owner, 2026-10-26, asked twice): the Tasks strip itself, not a look-alike. The markup is
     the Tasks markup (.lp-strip > .tfs-track > .kebab-filter-dd.tfs-item > .kfdd-btn[data-cap]) built by the
     same _buildKebabDropdown, so the .lp-strip rules paint it. Desktop: it sits flush under the navy header
     at the page edge, exactly where the Tasks strip sits (cancel the list's 22px padding). */
  #camp-strip-host { display:none; }
  @media (min-width:769px) {
    #camp-strip-host { display:flex; flex-direction:column; margin:-22px -22px 16px; }   /* a flex parent like #page-tasks, so the strip box is the same 54px */
  }
  /* Desktop: search lives in the page header (with the ⋮), so the in-page search pill is phone-only. */
  .camp-kebab-wrap { position:relative; display:inline-flex; }
  .cm-search { position:relative; flex:0 1 280px; min-width:180px; display:none; }   /* phone-only: desktop search is in the header */
  .cm-search svg { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:14px; height:14px; color:var(--text3); pointer-events:none; }
  .cm-search input { width:100%; box-sizing:border-box; height:36px; padding:0 12px 0 34px; border:1px solid var(--border2); border-radius:999px; background:var(--bg); color:var(--text); font-family:inherit; font-size:13px; -webkit-appearance:none; appearance:none; }
  .cm-search input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
  .cm-search input::-webkit-search-cancel-button { -webkit-appearance:none; appearance:none; }
  .cm-h { display:flex; align-items:center; gap:8px; }
  .cm-h-n { font-size:11px; font-weight:600; letter-spacing:0; color:var(--text3); font-variant-numeric:tabular-nums; }
  .cm-wrap-list .cm-group { box-shadow:var(--shadow-xs); }
  .cm-row { min-height:60px; padding:8px 16px; }
  .cm-row-go { cursor:pointer; transition:background-color .12s ease; }
  /* Row icons wear the Conversations avatar: the same soft blue wash and blue glyph tokens (light and dark). */
  .cm-ic { width:36px; height:36px; flex:0 0 36px; border-radius:8px; background:var(--f-av-bg); color:var(--f-av-fg); display:flex; align-items:center; justify-content:center; }
  .cm-ic svg { width:16px; height:16px; }
  .cm-st { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; min-width:72px; height:22px; padding:0 8px; box-sizing:border-box; border-radius:22px; background:var(--bg3); color:var(--text2); font-size:11px; font-weight:600; white-space:nowrap; }
  .cm-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
  .cm-tip { display:flex; align-items:flex-start; justify-content:flex-start; gap:12px; }
  .cm-tip > svg { width:16px; height:16px; flex:0 0 16px; margin-top:2px; color:var(--text2); }
  .cm-empty-card { padding:40px 16px; }
  .cm-empty-card .cm-state-s { margin-bottom:16px; }
  .cm-empty-card .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; }
  .cm-empty-filter { margin-top:16px; }
  .cm-skel { display:flex; flex-direction:column; gap:8px; }
  .cm-skel i { display:block; height:60px; border-radius:12px; background:var(--bg3); animation:cmSkel 1.2s ease-in-out infinite alternate; }
  @keyframes cmSkel { from { opacity:.55; } to { opacity:1; } }
  @media (prefers-reduced-motion: reduce) { .cm-skel i { animation:none; } }
  .cm-drip-btn { display:inline-flex; align-items:center; justify-content:center; text-align:center; }
  .cm-stat { box-shadow:var(--shadow-xs); }
  .cm-stat span { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
  .cm-stat b { font-variant-numeric:tabular-nums; }
  .cm-btnrow .btn { display:inline-flex; align-items:center; justify-content:center; }
  .cm-wrap:not(.cm-wrap-list) .cm-group { box-shadow:var(--shadow-xs); }
  [data-theme="dark"] :is(.cm-group, .cm-state, .cm-empty-card, .cm-confirm, .cm-stat, .cm-kpi, .cm-search input) { background:var(--bg3); }
  [data-theme="dark"] :is(.cm-st, .cm-skel i) { background:rgba(255,255,255,.08); }
  [data-theme="dark"] .cm-chip { background:var(--bg3); }
  [data-theme="dark"] .cm-chip.on { background:var(--accent-soft); }
  [data-theme="dark"] .cm-row:hover, [data-theme="dark"] .cm-unit:hover { background:rgba(255,255,255,.05); }
  [data-theme="dark"] :is(.cm-note, .cm-tip, .cm-left) { background:rgba(255,255,255,.06); }
  [data-theme="dark"] :is(.cm-tag, .cm-state-ic) { background:rgba(255,255,255,.08); }
  .ct-mseg { display:none; }
  @media (max-width:768px) {
    #page-contacts .ct-maintabs { gap:16px; }
    .ct-mseg { display:block; flex:0 0 auto; padding:8px 12px 0; }
    .ct-mseg .sched-seg-btn { height:36px; min-height:36px !important; }
    #page-contacts .ct-maintabs .sched-maintab { min-height:0 !important; }
    .cm-wrap { padding:12px 12px calc(var(--tabbar-space, 96px) + 32px); }
    .cm-head { margin-bottom:12px; }
    .cm-head.cm-head-list { display:flex; }
    .cm-cols { grid-template-columns:minmax(0,1fr); gap:0; }
    .cm-col-side { position:static; }
    .cm-col-side > .cm-h:first-child { margin-top:24px; }
    .cm-col-side .cm-frame { height:360px; }
    .cm-new { min-height:36px !important; }
    .cm-in, .cm-ta { font-size:16px; height:44px; }
    .cm-ta { height:auto; }
    .cm-chip { height:36px; min-height:36px !important; }
    .cm-unit { min-height:44px; }
    .cm-row { min-height:56px; }
    .cm-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cm-row-n { display:none; }
    .cm-frame { height:360px; }
    .cm-grid2 { grid-template-columns:1fr; }
    .cm-btnrow .btn { flex:1 1 calc(50% - 8px); justify-content:center; min-height:44px; }
    .cm-state-compact { align-items:stretch; }
    .cm-note { flex-direction:column; align-items:flex-start; gap:8px; }
    .cm-head.cm-head-list .cm-head-t { font-size:28px; font-weight:800; letter-spacing:-0.6px; }
    .cm-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
    .cm-kpi b { font-size:20px; }
    .cm-tools { display:flex; flex-direction:column; align-items:stretch; gap:8px; margin:0 0 8px; }
    .cm-search { flex:none; min-width:0; display:block; }
    /* Phone search = the Tasks phone search pill (40px glass pill, 16px text). */
    .cm-search input { height:40px; min-height:40px; border-radius:20px; font-size:16px; padding:0 16px 0 44px; border:none; background:var(--glass-fill) !important; -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur); box-shadow:var(--glass-edge); }
    .cm-search svg { left:16px; width:18px; height:18px; color:var(--text2); z-index:1; }   /* above the glass input, which is its own layer */
    .cm-st { display:none; }
    .cm-ic { width:32px; height:32px; flex-basis:32px; }
    .cm-drip-row .cm-row-s { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.45; }
    .cm-drip-row .cm-row-t { white-space:normal; }
    .cm-drip-acts { padding-left:44px; box-sizing:border-box; }
    .cm-drip-btn { display:inline-flex; align-items:center; justify-content:center; text-align:center; }
    .cm-btnrow .btn { display:inline-flex; align-items:center; }
    .cm-empty-card .btn { min-height:44px; }
  }

  /* ── Campaigns builder: the 4-step wizard (owner, 26 Oct 2026) ──
     Stepper = the listing editor's rail (.le-rail), cards = Dashboard tiles, rows = Inbox rows
     with the light-blue avatar square. Greys only; light blue means "selected".
     BUTTONS (owner rule, 26 Oct): never dark navy. Primary = the Inbox "+" / send blue
     (var(--accent)) with white text; secondary = a light outline in that blue. */
  .cw .cw-btn-1, .cw .cw-btn-2 { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:36px; padding:0 16px; border-radius:8px; font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; transition:background-color .12s ease, box-shadow .12s ease, opacity .12s ease; }
  .cw .cw-btn-1 { background:var(--accent); color:#fff; border:1px solid var(--accent); box-shadow:0 2px 8px rgba(37,99,235,.28); }
  .cw .cw-btn-1:hover:not(:disabled) { background:color-mix(in srgb, var(--accent) 88%, #000); }
  .cw .cw-btn-2 { background:transparent; color:var(--accent); border:1px solid color-mix(in srgb, var(--accent) 45%, transparent); box-shadow:none; }
  .cw .cw-btn-2:hover:not(:disabled) { background:var(--accent-soft); border-color:var(--accent); }
  .cw .cw-btn-1:disabled, .cw .cw-btn-2:disabled { opacity:.45; cursor:default; box-shadow:none; }
  .cw .cw-btn-1 svg, .cw .cw-btn-2 svg { width:14px; height:14px; }
  .cw .cm-head { margin-bottom:8px; }
  .cw-rail { padding:8px 0 16px; max-width:none; margin:0; }
  .cw-rail .le-rail-node { min-height:0; }
  .cw-rail .le-rail-node:not([disabled]):hover .le-rail-label { color:var(--accent); }
  .cw-cols { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
  .cw-side { position:sticky; top:16px; }
  .cw-side .cm-h:first-child { margin-top:0; }
  .cw-side .cm-frame { height:max(360px, calc(100vh - 330px)); }
  .cw-step > .cm-h:first-child { margin-top:0; }
  .cw-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; }
  .cw-nav-r { display:flex; align-items:center; gap:12px; margin-left:auto; }
  .cw-pick { position:relative; padding-top:16px; }
  .cw-search { position:relative; display:block; }
  .cw-search svg { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:14px; height:14px; color:var(--text3); pointer-events:none; }
  .cw-search input { width:100%; box-sizing:border-box; height:40px; padding:0 12px 0 36px; border:1px solid var(--border2); border-radius:8px; background:var(--bg2); color:var(--text); font-family:inherit; font-size:13px; -webkit-appearance:none; appearance:none; }
  .cw-search input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); background:var(--bg); }
  .cw-search input::-webkit-search-cancel-button { -webkit-appearance:none; appearance:none; }
  .cw-hint { margin-top:8px; }
  .cw-dd { margin-top:8px; border:1px solid var(--border2); border-radius:12px; background:var(--bg); box-shadow:var(--shadow-xs); max-height:300px; overflow-y:auto; }
  .cw-dd-row { display:flex; align-items:center; gap:12px; width:100%; min-height:52px; padding:8px 12px; box-sizing:border-box; background:none; border:0; border-top:1px solid var(--border2); font-family:inherit; text-align:left; color:var(--text); cursor:pointer; }
  .cw-dd-row:first-child { border-top:0; }
  .cw-dd-row:hover, .cw-dd-row:focus-visible { background:var(--bg2); outline:none; }
  .cw-dd-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
  .cw-dd-main b { font-size:13px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cw-dd-main span { font-size:12px; color:var(--text2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cw-dd-add { width:16px; height:16px; color:var(--accent); flex:0 0 16px; }
  .cw-dd-none { padding:12px 16px; font-size:13px; color:var(--text2); }
  .cw-home { cursor:default; }
  .cw-home:hover { background:none; }
  .cw-x { width:32px; height:32px; flex:0 0 32px; border-radius:8px; border:0; background:none; color:var(--text2); display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .cw-x:hover { background:var(--bg3); color:var(--text); }
  .cw-x svg { width:16px; height:16px; }
  .cw-empty { margin-top:16px; }
  .cw-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .cw-card { position:relative; display:grid; grid-template-columns:36px 1fr; grid-template-rows:auto auto auto; column-gap:12px; row-gap:4px; align-items:start; text-align:left; padding:16px; border-radius:12px; border:1px solid var(--border2); background:var(--bg); box-shadow:var(--shadow-xs); font-family:inherit; color:var(--text); cursor:pointer; min-width:0; transition:border-color .12s ease, background-color .12s ease; }
  .cw-card .cm-ic { grid-row:1 / span 3; }
  .cw-card-n { font-size:22px; font-weight:700; line-height:1.1; letter-spacing:-0.02em; font-variant-numeric:tabular-nums; }
  .cw-card-t { font-size:13px; font-weight:600; min-width:0; }
  .cw-card-t .cm-tag { margin-left:4px; }
  .cw-card-s { font-size:12px; color:var(--text2); line-height:1.4; }
  .cw-card:hover { border-color:color-mix(in srgb, var(--accent) 35%, var(--border2)); }
  .cw-card.on { border-color:var(--accent); background:var(--accent-soft); box-shadow:0 0 0 1px var(--accent) inset; }
  .cw-custom { margin:12px 0 0; }
  .cw-refine-t { display:flex; align-items:center; gap:8px; width:100%; margin:16px 0 0; padding:12px 16px; box-sizing:border-box; border-radius:12px; border:1px solid var(--border2); background:var(--bg); box-shadow:var(--shadow-xs); font-family:inherit; font-size:13px; font-weight:600; color:var(--text); cursor:pointer; text-align:left; }
  .cw-refine-t svg { width:16px; height:16px; color:var(--text2); flex:0 0 16px; }
  .cw-refine-t .cw-chev { margin-left:auto; }
  .cw-refine-t .cm-dim { font-weight:400; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cw-refine-t[aria-expanded="true"] { border-bottom-left-radius:0; border-bottom-right-radius:0; }
  .cw-refine { border-top:0; border-top-left-radius:0; border-top-right-radius:0; }
  .cw-picked { margin-top:8px; }
  .cw-picked .cm-chip svg { width:12px; height:12px; }
  .cw-countbox { margin-top:16px; }
  .cw-counts { margin-top:0; padding-top:8px; border-top:0; }
  .cw-line { margin-top:4px; font-size:13px; color:var(--text2); line-height:1.6; }
  .cw-who { margin-top:12px; max-height:320px; overflow-y:auto; box-shadow:none; }
  .cw-who .cm-row { min-height:48px; }
  .cw-av { width:32px; height:32px; flex:0 0 32px; border-radius:8px; background:var(--f-av-bg); color:var(--f-av-fg); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; letter-spacing:.02em; }
  .cw-more { padding:8px 16px 12px; }
  .cw-write { display:flex; align-items:center; gap:12px; padding:12px 0; flex-wrap:wrap; }
  .cw-write .cm-dim { flex:1 1 220px; }
  #camp-write-msg, #camp-re-note { padding:0 0 8px; }
  .cw-sum { display:flex; flex-direction:column; }
  .cw-sum-r { display:flex; align-items:center; gap:12px; min-height:44px; border-top:1px solid var(--border2); font-size:13px; }
  .cw-sum-r:first-child { border-top:0; }
  .cw-sum-r > span { flex:0 0 72px; color:var(--text2); }
  .cw-sum-r b { flex:1; min-width:0; font-weight:600; }
  .cw-ellip { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cw-review .cw-counts { border-top:1px solid var(--border2); padding-top:12px; }
  .cw-switch-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 0 0; cursor:pointer; }
  .cw-switch-row > span:first-child { display:flex; flex-direction:column; gap:4px; font-size:13px; }
  .cw-switch-row b { font-weight:600; color:var(--text); }
  .cw-switch-row .toggle-switch { flex:0 0 44px; }
  .cw-off { cursor:default; }
  .cw-prev-h { display:flex; flex-direction:column; gap:4px; padding:8px 0 0; }
  .cw-prev-subj { font-size:14px; font-weight:700; color:var(--text); overflow-wrap:anywhere; }
  .cw-prev-empty { display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; padding:40px 16px; }
  .cw-prev-empty .cm-state-ic { margin:0; }
  .cw .cm-actions { margin-top:16px; }
  /* Selected switch = light blue, not the app-wide black/white pair. */
  .cw .toggle-switch input:checked + .toggle-slider { background:var(--accent); box-shadow:none; }
  .cw .toggle-switch input:checked + .toggle-slider::before { background:#fff; }
  .cw .toggle-switch input:not(:checked) + .toggle-slider { background:var(--bg3); box-shadow:inset 0 0 0 1px var(--border2); }
  [data-theme="dark"] :is(.cw-card, .cw-refine-t, .cw-dd) { background:var(--bg3); }
  [data-theme="dark"] .cw-card.on { background:color-mix(in srgb, var(--accent) 16%, var(--bg3)); }
  [data-theme="dark"] .cw-search input { background:rgba(255,255,255,.04); }
  [data-theme="dark"] .cw-search input:focus { background:rgba(255,255,255,.06); }
  [data-theme="dark"] :is(.cw-dd-row:hover, .cw-x:hover) { background:rgba(255,255,255,.06); }
  [data-theme="dark"] .cw .cw-btn-1 { box-shadow:0 2px 8px rgba(50,100,200,.35); }
  [data-theme="dark"] .cw .toggle-switch input:not(:checked) + .toggle-slider { background:rgba(255,255,255,.12); }
  @media (max-width:768px) {
    .cw-cols { grid-template-columns:minmax(0,1fr); }
    .cw-side { position:static; }
    /* Phone: the preview sits under the step, only on the email and review steps. */
    .cw:not([data-step="3"]):not([data-step="4"]) .cw-side { display:none; }
    .cw-side .cm-frame { height:420px; }
    .cw-rail { padding:4px 0 12px; }
    .cw-rail .le-rail-label { display:block; font-size:11px; white-space:normal; text-align:center; line-height:1.2; }
    .cw .cw-btn-1, .cw .cw-btn-2 { height:44px; min-height:44px !important; }
    .cw .cw-save { height:36px; min-height:36px !important; }
    .cw-nav { margin:16px 0 0; }
    .cw-nav-r { flex:1; justify-content:flex-end; }
    .cw-nav-r .cm-dim { display:none; }
    .cw-nav-r .cw-btn-1 { flex:1; }
    .cw-cards { grid-template-columns:1fr; gap:8px; }
    .cw-card { padding:12px 16px; grid-template-columns:32px 1fr auto; grid-template-rows:auto auto; }
    .cw-card .cm-ic { grid-row:1 / span 2; }
    .cw-card-n { grid-column:3; grid-row:1 / span 2; align-self:center; font-size:20px; }
    .cw-card-t { grid-column:2; grid-row:1; }
    .cw-card-s { grid-column:2; grid-row:2; }
    .cw-search input { height:44px; font-size:16px; }
    .cw-dd-row { min-height:56px; }
    .cw-x { width:44px; height:44px; flex-basis:44px; min-height:44px !important; }
    .cw-refine-t { min-height:48px; }
    .cw-refine-t .cm-dim { display:none; }
    .cw-switch-row .toggle-switch { min-height:0 !important; }
    .cw .cm-btnrow .cw-btn-1, .cw .cm-btnrow .cw-btn-2 { flex:1 1 calc(50% - 8px); }
    .cw-write .cw-btn-2 { width:100%; }
  }
