/* ============================================================
   INTELLIGENCE PAGES v2 (2026-10-21) — Keywords, Content Tree, Post
   Library, De-dupe, Seasonal, AI Bots, AI Readiness, Conexus.
   Same design language as Briefings v2 / Effort History v2:
   full-bleed hero (title · search · actions) · stat chips · white main
   card overlapping the hero · optional insight rail.
   Everything is scoped to .iv2-page; markup comes from intel_ui.js.
   ============================================================ */
.iv2-page {
  --iv-ink: #0B1F17; --iv-ink-2: #2F3B36; --iv-muted: #61706A; --iv-faint: #98A39E;
  --iv-line: #E4E9E6; --iv-line-2: #EEF1EF; --iv-soft: #F1F4F2; --iv-em: #047857; --iv-em-2: #059669;
  --iv-violet: #7C3AED; --iv-radius: 16px;
  --iv-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 12px 32px -22px rgba(16, 24, 40, .28);
  position: relative; color: var(--iv-ink); min-width: 0; gap: 0 !important;
}
.iv2-page svg.lucide { width: 15px; height: 15px; flex: 0 0 auto; }
.iv2-page [hidden] { display: none !important; }
.iv2-page .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ── Hero band ── */
.iv2-page .iv2-hero {
  --gl: max(var(--page-gutter, 24px), env(safe-area-inset-left, 0px));
  --gr: max(var(--page-gutter, 24px), env(safe-area-inset-right, 0px));
  position: relative; isolation: isolate; overflow: hidden; min-width: 0;
  margin: calc(-1 * var(--page-gutter, 24px)) calc(-1 * var(--gr)) 0 calc(-1 * var(--gl));
  padding: 16px var(--gr) 60px var(--gl);
  border-bottom: 1px solid #D9E4DC;
  background:
    radial-gradient(520px 220px at 0% 0%, rgba(11, 143, 90, .17), transparent 68%),
    radial-gradient(420px 200px at 60% -20%, rgba(124, 58, 237, .10), transparent 70%),
    radial-gradient(520px 260px at 95% 0%, rgba(59, 130, 246, .11), transparent 66%),
    linear-gradient(112deg, #E3F3EA 0%, #EEF8F2 50%, #EEF3FB 100%);
}
.iv2-page .iv2-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: radial-gradient(rgba(11, 143, 90, .16) 1px, transparent 1.3px); background-size: 18px 18px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 92%); mask-image: linear-gradient(180deg, #000 0%, transparent 92%); opacity: .55;
}
.iv2-page .iv2-hero::after {
  content: ""; position: absolute; right: -90px; top: -120px; z-index: -1; width: 360px; height: 360px;
  border: 44px solid rgba(11, 143, 90, .05); border-radius: 50%; pointer-events: none;
}
.iv2-page .iv2-hero > *, .iv2-page > .iv2-body { width: 100%; max-width: 1480px; margin-left: auto; margin-right: auto; }
.iv2-page > .iv2-body { position: relative; z-index: 1; margin-top: -44px; display: grid; gap: 14px; min-width: 0; }
.iv2-page .iv2-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px 24px; margin-bottom: 12px; }
.iv2-page .iv2-intro { display: flex; align-items: center; gap: 12px; min-width: 0; }
.iv2-page .iv2-ico { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 13px; background: linear-gradient(135deg, #10b981, #047857); color: #fff; box-shadow: 0 10px 20px -12px rgba(4, 120, 87, .9); }
.iv2-page .iv2-ico svg.lucide { width: 20px; height: 20px; }
.iv2-page .iv2-titles { min-width: 0; }
.iv2-page .iv2-head h1 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; font-size: 28px; letter-spacing: -.025em; line-height: 1.12; }
.iv2-page .iv2-pill { padding: 3px 9px; border-radius: 999px; border: 1px solid rgba(16, 185, 129, .3); background: rgba(255, 255, 255, .72); color: var(--iv-em); font-size: 11px; font-weight: 700; letter-spacing: 0; }
.iv2-page .iv2-head p { margin: 3px 0 0; color: var(--iv-muted); font-size: 13.5px; }
.iv2-page .iv2-acts { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.iv2-page .iv2-acts .btn { display: inline-flex; align-items: center; gap: 6px; height: 38px; min-height: 0; white-space: nowrap; }
.iv2-page .iv2-acts select { height: 38px; min-height: 0; max-width: 260px; border-radius: 10px; border: 1px solid rgba(15, 23, 42, .1); background: rgba(255, 255, 255, .9); font: inherit; font-size: 13px; padding: 0 30px 0 10px; }
.iv2-page .iv2-acts .muted { font-size: 12px; }
.iv2-page .iv2-search { position: relative; display: flex; align-items: center; }
.iv2-page .iv2-search svg { position: absolute; z-index: 1; left: 11px; color: var(--iv-faint); pointer-events: none; }
.iv2-page .iv2-search input { width: 260px; height: 38px; min-height: 0; flex: none; padding: 0 12px 0 34px; border: 1px solid rgba(15, 23, 42, .1); border-radius: 10px; background: rgba(255, 255, 255, .85); font: inherit; font-size: 13px; }
.iv2-page .iv2-search input:focus, .iv2-page .iv2-acts select:focus { outline: none; border-color: var(--iv-em-2); box-shadow: 0 0 0 3px rgba(5, 150, 105, .14); background: #fff; }

/* stat chips */
.iv2-page .iv2-stats { display: flex; flex-wrap: wrap; gap: 8px; min-height: 34px; }
.iv2-page .iv2-stat { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 13px 0 5px; border: 1px solid rgba(15, 23, 42, .07); border-radius: 999px; background: rgba(255, 255, 255, .82); color: var(--iv-muted); font: inherit; font-size: 12.5px; font-weight: 600; white-space: nowrap; box-shadow: 0 1px 2px rgba(16, 24, 40, .04); }
.iv2-page button.iv2-stat { cursor: pointer; }
.iv2-page button.iv2-stat:hover, .iv2-page button.iv2-stat.is-on { background: #fff; color: var(--iv-ink); border-color: #C9DED4; }
.iv2-page .iv2-stat b { color: var(--iv-ink); font-size: 14.5px; font-weight: 750; font-variant-numeric: tabular-nums; }
.iv2-page .iv2-stat-ic { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--iv-soft); color: var(--iv-ink-2); }
.iv2-page .iv2-stat-ic svg.lucide { width: 13px; height: 13px; }
.iv2-page .iv2-stat.is-violet .iv2-stat-ic { background: #EDE9FE; color: #6D28D9; }
.iv2-page .iv2-stat.is-amber .iv2-stat-ic { background: #FFEDD5; color: #C2410C; }
.iv2-page .iv2-stat.is-blue .iv2-stat-ic { background: #DBEAFE; color: #1D4ED8; }
.iv2-page .iv2-stat.is-green .iv2-stat-ic { background: #D1FAE5; color: #047857; }
.iv2-page .iv2-stat.is-rose .iv2-stat-ic { background: #FFE4E8; color: #BE123C; }
.iv2-page .iv2-stat.is-rose b { color: #BE123C; }

/* ── Body: main card (+ rail) ── */
.iv2-page .iv2-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; min-width: 0; }
.iv2-page .iv2-layout.no-rail { grid-template-columns: minmax(0, 1fr); }
.iv2-page .iv2-main { min-width: 0; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); background: #fff; box-shadow: var(--iv-shadow); overflow: hidden; }
.iv2-page .iv2-rail { display: flex; flex-direction: column; gap: 14px; min-width: 0; position: sticky; top: calc(var(--header-height, 56px) + 16px); }
.iv2-page .iv2-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 10px 12px; border-bottom: 1px solid var(--iv-line-2); background: #fff; }
.iv2-page .iv2-bar label { display: inline-flex; align-items: center; gap: 6px; margin: 0; color: var(--iv-muted); font-size: 12px; font-weight: 650; }
.iv2-page .iv2-bar select, .iv2-page .iv2-bar input[type="search"], .iv2-page .iv2-bar input[type="text"] { height: 32px; min-height: 0; padding: 0 10px; border: 1px solid var(--iv-line); border-radius: 9px; background: #FCFDFC; font: inherit; font-size: 12.5px; color: var(--iv-ink); }
.iv2-page .iv2-bar select { padding-right: 28px; }
.iv2-page .iv2-bar select:focus, .iv2-page .iv2-bar input:focus { outline: none; border-color: var(--iv-em-2); box-shadow: 0 0 0 3px rgba(5, 150, 105, .14); background: #fff; }
.iv2-page .iv2-bar .iv2-grow { flex: 1 1 200px; min-width: 160px; }
.iv2-page .iv2-bar .iv2-grow input { width: 100%; }
.iv2-page .iv2-bar input[type="checkbox"] { accent-color: var(--iv-em); width: 15px; height: 15px; margin: 0; }
.iv2-page .iv2-count { margin-left: auto; color: var(--iv-faint); font-size: 12px; font-weight: 600; white-space: nowrap; }
.iv2-page .iv2-seg { display: inline-flex; gap: 2px; padding: 3px; border-radius: 9px; background: var(--iv-soft); }
.iv2-page .iv2-seg button { height: 26px; padding: 0 10px; border: 0; border-radius: 7px; background: none; color: var(--iv-muted); font: inherit; font-size: 12px; font-weight: 650; cursor: pointer; white-space: nowrap; }
.iv2-page .iv2-seg button.is-on { background: #fff; color: var(--iv-ink); box-shadow: 0 1px 2px rgba(16, 24, 40, .12); }
.iv2-page .iv2-mini-btn { height: 30px; min-height: 0; padding: 0 11px; border: 1px solid var(--iv-line); border-radius: 8px; background: #fff; color: var(--iv-ink-2); font: inherit; font-size: 12px; font-weight: 650; cursor: pointer; white-space: nowrap; }
.iv2-page .iv2-mini-btn:hover { background: var(--iv-soft); border-color: #C9DED4; }
.iv2-page .iv2-pad { padding: 14px 16px; }
.iv2-page .iv2-sub { padding: 10px 16px; border-bottom: 1px solid var(--iv-line-2); background: #FAFCFB; color: var(--iv-muted); font-size: 12.5px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.iv2-page .iv2-sub a { color: var(--iv-em); font-weight: 650; }

/* tables inside the main card */
.iv2-page .iv2-main .table-wrap, .iv2-page .iv2-card .table-wrap { margin: 0; border: 0; border-radius: 0; box-shadow: none; background: #fff; overflow-x: auto; }
.iv2-page .iv2-main table, .iv2-page .iv2-card table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13px; }
.iv2-page .iv2-main th, .iv2-page .iv2-card th { position: sticky; top: 0; z-index: 1; padding: 9px 12px; border-bottom: 1px solid var(--iv-line); background: #F7FAF8; color: var(--iv-muted); font-size: 11px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; text-align: left; white-space: nowrap; }
.iv2-page .iv2-main td, .iv2-page .iv2-card td { padding: 10px 12px; border-bottom: 1px solid var(--iv-line-2); vertical-align: middle; color: var(--iv-ink-2); }
.iv2-page .iv2-main tbody tr:last-child td, .iv2-page .iv2-card tbody tr:last-child td { border-bottom: 0; }
.iv2-page .iv2-main tbody tr:hover td, .iv2-page .iv2-card tbody tr:hover td { background: #F8FBF9; }
.iv2-page .iv2-main tr[data-post], .iv2-page .iv2-main tr[data-row] { cursor: pointer; }
.iv2-page .iv2-main td strong { color: var(--iv-ink); }
.iv2-page .iv2-main .badge, .iv2-page .iv2-card .badge { border-radius: 999px; font-size: 10.5px; font-weight: 700; padding: 2px 8px; }
.iv2-page .iv2-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; border-top: 1px solid var(--iv-line-2); background: #FAFCFB; color: var(--iv-muted); font-size: 12.5px; }
.iv2-page .iv2-foot .btn { height: 30px; min-height: 0; padding: 0 12px; font-size: 12px; }

/* secondary cards inside the body (detail views, rails) */
.iv2-page .iv2-card { min-width: 0; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); background: #fff; box-shadow: var(--iv-shadow); overflow: hidden; }
.iv2-page .iv2-card > header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--iv-line-2); }
.iv2-page .iv2-card > header h2, .iv2-page .iv2-card > header h3 { display: inline-flex; align-items: center; gap: 7px; margin: 0; font-size: 14.5px; font-weight: 750; }
.iv2-page .iv2-card > header h2 svg.lucide, .iv2-page .iv2-card > header h3 svg.lucide { color: var(--iv-em); }
.iv2-page .iv2-card > header p { margin: 0; color: var(--iv-muted); font-size: 12px; flex-basis: 100%; }
.iv2-page .iv2-rc { padding: 14px 16px; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); background: #fff; box-shadow: var(--iv-shadow); }
.iv2-page .iv2-rc h2 { display: flex; align-items: center; gap: 7px; margin: 0 0 10px; font-size: 14px; font-weight: 700; }
.iv2-page .iv2-rc h2 svg.lucide { width: 14px; height: 14px; color: var(--iv-em); }
.iv2-page .iv2-rc p { margin: 0; color: var(--iv-muted); font-size: 12.5px; line-height: 1.5; }
.iv2-page .iv2-rlist { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.iv2-page .iv2-rlist li { display: flex; align-items: center; gap: 9px; padding: 6px 2px; border-bottom: 1px solid var(--iv-line-2); font-size: 12.5px; }
.iv2-page .iv2-rlist li:last-child { border-bottom: 0; }
.iv2-page .iv2-rlist .iv2-rname { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--iv-ink-2); }
.iv2-page .iv2-rlist b { font-variant-numeric: tabular-nums; }

/* chips, meters, empty states */
.iv2-page .iv2-chip { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 9px; border-radius: 999px; background: var(--iv-soft); color: var(--iv-ink-2); font-size: 11px; font-weight: 700; white-space: nowrap; }
.iv2-page .iv2-chip.is-green { background: #D1FAE5; color: #047857; }
.iv2-page .iv2-chip.is-blue { background: #DBEAFE; color: #1D4ED8; }
.iv2-page .iv2-chip.is-violet { background: #EDE9FE; color: #6D28D9; }
.iv2-page .iv2-chip.is-amber { background: #FFEDD5; color: #C2410C; }
.iv2-page .iv2-chip.is-rose { background: #FFE4E8; color: #BE123C; }
.iv2-page .iv2-chip.is-slate { background: #F1F5F9; color: #475569; }
.iv2-page .iv2-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.iv2-page .iv2-meter { display: inline-flex; align-items: center; gap: 7px; min-width: 96px; font-variant-numeric: tabular-nums; font-weight: 700; }
.iv2-page .iv2-meter i { position: relative; display: block; width: 56px; height: 6px; border-radius: 999px; background: #E9EEF2; overflow: hidden; }
.iv2-page .iv2-meter i b { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: var(--m, #10b981); }
.iv2-page .iv2-num { font-variant-numeric: tabular-nums; font-weight: 650; }
.iv2-page .iv2-empty { display: grid; place-items: center; gap: 8px; margin: 14px; padding: 34px 16px; border: 1px dashed #DCE3DF; border-radius: 12px; background: #FCFDFC; text-align: center; }
.iv2-page .iv2-empty-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--iv-soft); color: var(--iv-faint); }
.iv2-page .iv2-empty-ic svg.lucide { width: 20px; height: 20px; }
.iv2-page .iv2-empty b { display: block; color: var(--iv-ink); font-size: 13.5px; }
.iv2-page .iv2-empty p { margin: 0; color: var(--iv-muted); font-size: 13px; max-width: 460px; }
.iv2-page .iv2-loading { margin: 0; padding: 22px 16px; color: var(--iv-faint); font-size: 13px; }
.iv2-page .iv2-crumbs { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 12.5px; color: var(--iv-muted); }
.iv2-page .iv2-crumbs a { color: var(--iv-em); font-weight: 650; text-decoration: none; }
.iv2-page .iv2-crumbs a:hover { text-decoration: underline; }
.iv2-page .iv2-crumbs strong { color: var(--iv-ink); }

/* Page background — same palette as the hero, across the whole view */
#view:has(> .iv2-page) {
  background:
    radial-gradient(rgba(11, 143, 90, .08) 1px, transparent 1.3px) 0 0 / 18px 18px,
    radial-gradient(1100px 520px at 0% 0%, rgba(11, 143, 90, .10), transparent 68%),
    radial-gradient(1000px 560px at 100% 0%, rgba(59, 130, 246, .08), transparent 66%),
    linear-gradient(180deg, #F3F8F5 0%, #F6F8FB 100%);
  background-attachment: fixed;
}

@media (max-width: 1199px) {
  .iv2-page .iv2-layout { grid-template-columns: minmax(0, 1fr); }
  .iv2-page .iv2-rail { position: static; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}
@media (max-width: 767px) {
  .iv2-page .iv2-hero { padding: 14px var(--gr) 54px var(--gl); }
  .iv2-page .iv2-head { grid-template-columns: minmax(0, 1fr); }
  .iv2-page .iv2-head h1 { font-size: 23px; }
  .iv2-page .iv2-ico { width: 36px; height: 36px; border-radius: 11px; }
  .iv2-page .iv2-acts { justify-content: flex-start; }
  .iv2-page .iv2-search { flex: 1 0 100%; }
  .iv2-page .iv2-search input { width: 100%; }
  .iv2-page .iv2-acts .btn { flex: 1 1 auto; justify-content: center; }
  .iv2-page .iv2-acts select { flex: 1 1 100%; max-width: none; }
  .iv2-page .iv2-stats { flex-wrap: nowrap; overflow-x: auto; margin: 0 calc(-1 * var(--gr)) 0 calc(-1 * var(--gl)); padding: 0 var(--gr) 2px var(--gl); scrollbar-width: none; }
  .iv2-page .iv2-stats::-webkit-scrollbar { display: none; }
  .iv2-page .iv2-bar { padding: 10px; }
  .iv2-page .iv2-bar > * { flex: 1 1 auto; }
  .iv2-page .iv2-bar select { width: 100%; }
  .iv2-page .iv2-count { flex: 1 0 100%; margin-left: 0; }
  .iv2-page .iv2-rail { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .iv2-page * { transition: none !important; } }

/* ── KPI tiles (Conexus: keeps the original #kpi-* ids) ── */
.iv2-page .iv2-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.iv2-page .iv2-kpi { display: grid; gap: 1px; min-width: 0; padding: 9px 12px; border: 1px solid rgba(15, 23, 42, .07); border-radius: 13px; background: rgba(255, 255, 255, .84); box-shadow: 0 1px 2px rgba(16, 24, 40, .04); }
.iv2-page .iv2-kpi-l { display: inline-flex; align-items: center; gap: 6px; color: var(--iv-muted); font-size: 10.5px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.iv2-page .iv2-kpi-l svg.lucide { width: 13px; height: 13px; }
.iv2-page .iv2-kpi b { font-size: 21px; font-weight: 800; line-height: 1.15; font-variant-numeric: tabular-nums; color: var(--iv-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.iv2-page .iv2-kpi small { color: var(--iv-faint); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.iv2-page .iv2-kpi.is-green .iv2-kpi-l svg { color: #047857; } .iv2-page .iv2-kpi.is-green b { color: #047857; }
.iv2-page .iv2-kpi.is-amber .iv2-kpi-l svg { color: #C2410C; } .iv2-page .iv2-kpi.is-amber b { color: #C2410C; }
.iv2-page .iv2-kpi.is-blue .iv2-kpi-l svg { color: #1D4ED8; } .iv2-page .iv2-kpi.is-blue b { color: #1D4ED8; }
.iv2-page .iv2-kpi.is-violet .iv2-kpi-l svg { color: #6D28D9; } .iv2-page .iv2-kpi.is-violet b { color: #4338CA; font-size: 16px; }
.iv2-page .iv2-kpi.is-rose .iv2-kpi-l svg { color: #BE123C; } .iv2-page .iv2-kpi.is-rose b { color: #BE123C; }
@media (max-width: 1199px) { .iv2-page .iv2-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .iv2-page .iv2-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── Conexus: tabs strip + tab content inside the main card ── */
.cnx-page .cnx-tabs { display: flex; gap: 2px; margin: 0; padding: 8px 10px; border: 0; border-bottom: 1px solid var(--iv-line-2); overflow-x: auto; scrollbar-width: none; background: #fff; }
.cnx-page .cnx-tabs::-webkit-scrollbar { display: none; }
.cnx-page .cnx-tabs .tab { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; height: 32px; margin: 0; padding: 0 12px; border: 0 !important; border-radius: 9px; background: none; color: var(--iv-muted); font-size: 12.5px; font-weight: 650; white-space: nowrap; }
.cnx-page .cnx-tabs .tab svg.lucide { width: 14px; height: 14px; }
.cnx-page .cnx-tabs .tab:hover { background: var(--iv-soft); color: var(--iv-ink); }
.cnx-page .cnx-tabs .tab.active { background: #ECFDF5; color: #047857; box-shadow: inset 0 0 0 1px #A7F3D0; }
.cnx-page .cnx-content { padding: 16px; background: linear-gradient(180deg, #F7FAF8, #F3F6F4); }
.cnx-page .cnx-content .card { border-radius: 14px; border-color: var(--iv-line); box-shadow: 0 1px 2px rgba(16, 24, 40, .04); }
.cnx-page .cnx-content table th { background: #F7FAF8; color: var(--iv-muted); font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }

/* ── Content Tree inside the main card ── */
.ct-page.iv2-page .ct-controls { padding: 10px 12px !important; }
.ct-page.iv2-page .ct-controls label { min-width: 0 !important; }
.ct-page.iv2-page .ct-empty-toggle { margin-left: 0 !important; }
.ct-page.iv2-page .ct-tree { padding: 6px 0 10px; }
.ct-page.iv2-page .ct-row { min-height: 46px; }
.ct-page.iv2-page .ct-group-row { background: linear-gradient(90deg, #F7FAF8, #fff 60%); border-top: 1px solid var(--iv-line-2); }
.ct-page.iv2-page .ct-tree > .ct-li:first-child > .ct-group-row { border-top: 0; }
.ct-page.iv2-page .ct-caret { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; background: #fff; box-shadow: inset 0 0 0 1px var(--iv-line); color: var(--iv-ink-2); }
.ct-page.iv2-page .ct-row:hover { background: #F3FBF7; }
.ct-page.iv2-page .ct-volume span { background: linear-gradient(90deg, #10b981, #3b82f6); opacity: 1; }
.ct-page.iv2-page .ct-write { border-color: #A7F3D0; background: #ECFDF5; color: #047857; font-weight: 700; }
.ct-page.iv2-page .ct-write:hover { background: #10b981; color: #fff; border-color: #10b981; }
#view > .ct-flash { position: fixed; z-index: 950; right: 24px; bottom: 96px; max-width: min(420px, calc(100vw - 32px)); padding: 12px 14px; border-radius: 14px; background: #fff; border: 1px solid #A7F3D0; color: #047857; font-weight: 650; box-shadow: 0 20px 40px -20px rgba(15, 23, 42, .45); }

/* ── Post Library ── */
.pl-lib-page .pl-lib-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; width: 100%; }
.pl-lib-page .pl-lib-filters .iv2-grow input { width: 100%; }
.pl-lib-page .iv2-main th[id^="sort-"] { color: var(--iv-em); }
.pl-lib-page .iv2-main th[id^="sort-"]:hover { background: #ECFDF5; }

/* ── De-dupe / legacy badge tones inside v2 cards ── */
.iv2-page .iv2-main .badge.danger { background: #FFE4E8; color: #BE123C; }
.iv2-page .iv2-main .badge.warning { background: #FFEDD5; color: #C2410C; }
.iv2-page .iv2-main .badge.success { background: #D1FAE5; color: #047857; }
.iv2-page .iv2-main .badge.neutral { background: #F1F5F9; color: #475569; }
.dd-page .iv2-main td a.small { display: inline-block; max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

/* ── AI Bots: 30-day stacked activity bars ── */
.aib-page .aib-chart { display: flex; align-items: flex-end; gap: 3px; height: 140px; padding: 10px; border: 1px solid var(--iv-line-2); border-radius: 12px; background: linear-gradient(180deg, #FCFDFC, #F6F9F7); }
.aib-page .aib-day { flex: 1 1 0; min-width: 3px; height: 100%; display: flex; flex-direction: column-reverse; border-radius: 4px 4px 0 0; overflow: hidden; }
.aib-page .aib-day i { display: block; width: 100%; }
.aib-page .aib-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 10px; font-size: 12px; color: var(--iv-muted); }
.aib-page .aib-legend span { display: inline-flex; align-items: center; gap: 5px; }
.aib-page .aib-legend i { width: 10px; height: 10px; border-radius: 3px; }
.aib-page .aib-legend b { color: var(--iv-ink); font-variant-numeric: tabular-nums; }
.aib-page .aib-legend .aib-ref { margin-left: auto; color: #6D28D9; font-weight: 650; }
.aib-upload, .air-drawer { padding: 20px 22px; border-radius: 16px; background: #fff; box-shadow: 0 24px 64px -32px rgba(16, 24, 40, .4); }
.aib-upload label { display: grid; gap: 4px; font-size: 12.5px; font-weight: 650; }

/* polish */
.iv2-page .iv2-head { grid-template-columns: minmax(min(100%, 360px), 1fr) auto; }
.iv2-page .iv2-acts { max-width: 760px; }
.iv2-page .iv2-bar label { white-space: nowrap; }
.ct-page.iv2-page .ct-actions { margin-left: auto; }
.ct-page.iv2-page .ct-category-row .ct-volume { margin-left: 14px; }
@media (max-width: 767px) { .iv2-page .iv2-head { grid-template-columns: minmax(0, 1fr); } .iv2-page .iv2-acts { max-width: none; } }
@media (max-width: 767px) { .iv2-page .iv2-main table, .iv2-page .iv2-card table { min-width: 720px; } .iv2-page .iv2-main td:first-child { min-width: 180px; } }

/* ============================================================
   KEYWORDS v3 "Opportunity map" (2026-10-22) — scoped .kw-page.
   Hero: intro/search/chips | volume × difficulty zone map.
   Body: [zone pills + filters · ranked rows | rail].
   ============================================================ */
.kw-page .iv2-hero { container: kwhero / inline-size; }
.kw-page .kw-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 500px); gap: 18px 24px; align-items: start; }
.kw-page .kw-hero-l { min-width: 0; }
.kw-page .kw-titles h1 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; font-size: 30px; letter-spacing: -.025em; line-height: 1.1; }
.kw-page .kw-titles p { margin: 3px 0 0; color: var(--iv-muted); font-size: 13.5px; }
.kw-page .kw-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0 12px; }
.kw-page .kw-acts .btn { display: inline-flex; align-items: center; gap: 6px; height: 38px; min-height: 0; white-space: nowrap; }
.kw-page .kw-acts .iv2-search { flex: 1 1 200px; max-width: 300px; min-width: 180px; }
.kw-page .kw-acts .iv2-search input { box-sizing: border-box; width: 100%; }
.kw-page .kw-stats { display: flex; flex-wrap: wrap; gap: 8px; }
.kw-page .kw-stat { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border: 1px solid transparent; border-radius: 999px; background: var(--iv-soft); color: var(--iv-ink-2); font: inherit; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.kw-page .kw-stat b { font-size: 14px; font-weight: 800; font-variant-numeric: tabular-nums; }
.kw-page .kw-stat svg.lucide { width: 14px; height: 14px; }
.kw-page .kw-stat.is-white { border-color: rgba(15, 23, 42, .08); background: #fff; }
.kw-page .kw-stat.is-blue { background: #DBEAFE; color: #1D4ED8; }
.kw-page .kw-stat.is-amber { background: #FFEDD5; color: #C2410C; }
.kw-page .kw-stat.is-violet { background: #EDE9FE; color: #6D28D9; cursor: pointer; }
.kw-page .kw-stat.is-violet:hover { filter: brightness(.97); }

/* opportunity map */
.kw-page .kw-plot { min-width: 0; padding: 14px 16px 10px; border: 1px solid rgba(15, 23, 42, .07); border-radius: 18px; background: rgba(255, 255, 255, .92); box-shadow: 0 18px 40px -26px rgba(4, 47, 36, .55); }
.kw-page .kw-plot-head, .kw-page .kw-plot-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kw-page .kw-plot-lbl { display: inline-flex; align-items: center; gap: 5px; color: var(--iv-em); font-size: 10.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.kw-page .kw-plot-lbl svg.lucide { width: 13px; height: 13px; }
.kw-page .kw-plot-note, .kw-page .kw-plot-foot { color: var(--iv-faint); font-size: 11px; }
.kw-page .kw-plot-foot { margin: 6px 0 0 24px; font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.kw-page .kw-plot-empty { margin-top: 10px; padding: 14px; border: 1px dashed #DCE3DF; border-radius: 12px; color: var(--iv-muted); font-size: 12.5px; }
.kw-page .kw-plot-empty b { display: block; color: var(--iv-ink); font-size: 13.5px; }
.kw-page .kw-quad { position: relative; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; height: 196px; margin: 10px 0 0 24px; border-left: 1px solid #CBD5E1; border-bottom: 1px solid #CBD5E1; }
.kw-page .kw-q { position: relative; display: block; padding: 7px 9px; border: 0; background: none; color: inherit; font: inherit; font-size: 11px; font-weight: 750; text-align: left; cursor: pointer; transition: box-shadow .15s; }
.kw-page .kw-q.is-r { text-align: right; }
.kw-page .kw-q b { display: block; font-size: 18px; line-height: 1.1; }
.kw-page .kw-q small { display: block; color: var(--iv-faint); font-size: 10.5px; font-weight: 600; }
.kw-page .kw-q.is-qw { border-radius: 10px 0 0 0; background: linear-gradient(135deg, #ECFDF5, #D1FAE5); color: #047857; }
.kw-page .kw-q.is-bb { border-radius: 0 10px 0 0; background: #EEF2FF; color: #4338CA; }
.kw-page .kw-q.is-lt { background: #F0F9FF; color: #0369A1; }
.kw-page .kw-q.is-sk { background: #FFF1F2; color: #BE123C; }
.kw-page .kw-q:hover, .kw-page .kw-q.is-on { box-shadow: inset 0 0 0 2px currentColor; }
.kw-page .kw-dots { position: absolute; inset: 0; pointer-events: none; }
.kw-page .kw-dot { position: absolute; width: 9px; height: 9px; margin: 0 0 -4px -4px; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
.kw-page .kw-ax-y { position: absolute; left: -22px; top: 50%; color: var(--iv-faint); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; transform: rotate(-90deg) translateX(-50%); transform-origin: left top; }

/* body */
.kw-page .kw-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 16px; align-items: start; min-width: 0; }
.kw-page .kw-main { container: kwmain / inline-size; }
.kw-page .kw-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 10px 14px; border-bottom: 1px solid var(--iv-line-2); }
.kw-page .kw-zones { display: flex; flex-wrap: wrap; gap: 6px; }
.kw-page .kw-pill { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border: 1px solid var(--iv-line); border-radius: 999px; background: #fff; color: var(--iv-ink-2); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.kw-page .kw-pill i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; }
.kw-page .kw-pill em { color: var(--iv-faint); font-style: normal; font-weight: 700; }
.kw-page .kw-pill.is-on { border-color: #6EE7B7; background: #ECFDF5; color: #047857; }
.kw-page .kw-pill.is-on em { color: #047857; }
.kw-page .kw-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-left: auto; }
.kw-page .kw-filters select { height: 30px; min-height: 0; padding: 0 8px; border: 1px solid var(--iv-line); border-radius: 8px; background: #fff; color: var(--iv-ink-2); font: inherit; font-size: 12px; }
.kw-page .kw-filters .iv2-count { margin: 0 0 0 4px; color: var(--iv-faint); font-size: 12px; font-weight: 600; white-space: nowrap; }
.kw-page .kw-pad { padding: 14px; }
.kw-page .kw-row { display: grid; grid-template-columns: minmax(0, 1.5fr) 120px 150px 96px minmax(0, 1fr) 62px; gap: 14px; align-items: center; padding: 10px 14px; border-top: 1px solid var(--iv-line-2); }
.kw-page .kw-row:hover:not(.kw-head) { background: #F8FBF9; }
.kw-page .kw-head { padding-top: 8px; padding-bottom: 8px; border-top: 0; background: #FAFBFA; color: var(--iv-muted); font-size: 10.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.kw-page .kw-r { text-align: right; }
.kw-page .kw-name { min-width: 0; }
.kw-page .kw-name b { display: block; overflow-wrap: anywhere; font-size: 13.5px; }
.kw-page .kw-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.kw-page .kw-tags .iv2-chip { height: 20px; font-size: 10.5px; }
.kw-page .iv2-chip svg.lucide { width: 11px; height: 11px; }
.kw-page .kw-vol { display: flex; align-items: center; gap: 8px; font-variant-numeric: tabular-nums; }
.kw-page .kw-vol b { min-width: 42px; font-size: 13px; }
.kw-page .kw-vol i { position: relative; flex: 1; height: 6px; overflow: hidden; border-radius: 999px; background: #EEF2F6; }
.kw-page .kw-vol i span { position: absolute; inset: 0 auto 0 0; border-radius: 999px; background: linear-gradient(90deg, #34D399, #059669); }
.kw-page .kw-kdt { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; }
.kw-page .kw-kd { display: inline-grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: conic-gradient(var(--c) calc(var(--v) * 1%), #E9EEF2 0); font-size: 11.5px; font-weight: 800; }
.kw-page .kw-kd span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #fff; }
.kw-page .kw-kd.is-none { background: #F1F5F9; color: var(--iv-faint); }
.kw-page .kw-zone { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.kw-page .kw-zone i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; }
.kw-page .kw-cats { min-width: 0; }

/* rail */
.kw-page .kw-rail { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); background: #fff; box-shadow: var(--iv-shadow); }
.kw-page .kw-rc { padding: 14px 16px; }
.kw-page .kw-rc + .kw-rc { border-top: 1px solid var(--iv-line-2); }
.kw-page .kw-rc h2 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14.5px; font-weight: 750; }
.kw-page .kw-rc h2 svg.lucide { color: var(--iv-em-2); }
.kw-page .kw-rc-sub { margin: 4px 0 6px; color: var(--iv-muted); font-size: 12px; }
.kw-page .kw-rc-empty { margin: 6px 0 0; color: var(--iv-faint); font-size: 12.5px; }
.kw-page .kw-ready, .kw-page .kw-cov, .kw-page .kw-rise { margin: 0; padding: 0; list-style: none; }
.kw-page .kw-ready li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px dashed var(--iv-line-2); font-size: 12.5px; }
.kw-page .kw-ready li:last-child, .kw-page .kw-rise li:last-child { border-bottom: 0; }
.kw-page .kw-ready-t { display: grid; flex: 1; min-width: 0; }
.kw-page .kw-ready-t b, .kw-page .kw-rise b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kw-page .kw-ready-t small { color: var(--iv-faint); font-size: 11px; }
.kw-page .kw-job { display: inline-flex; align-items: center; gap: 3px; height: 26px; min-height: 0; padding: 0 9px; border: 1px solid #A7F3D0; background: #fff; color: var(--iv-em); font-size: 12px; }
.kw-page .kw-job svg.lucide { width: 12px; height: 12px; }
.kw-page .kw-cov li { display: grid; grid-template-columns: minmax(0, 1fr) 90px 30px; gap: 8px; align-items: center; padding: 5px 0; font-size: 12.5px; }
.kw-page .kw-cov li > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kw-page .kw-cov i { position: relative; height: 6px; overflow: hidden; border-radius: 999px; background: #EEF2F6; }
.kw-page .kw-cov i b { position: absolute; inset: 0 auto 0 0; border-radius: 999px; background: #10B981; }
.kw-page .kw-cov i b.is-thin { background: #F59E0B; }
.kw-page .kw-cov em { font-style: normal; font-weight: 800; text-align: right; }
.kw-page .kw-cov li.is-untagged { color: var(--iv-muted); }
.kw-page .kw-cov li.is-untagged i { background: transparent; }
.kw-page .kw-rise li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 0; border-bottom: 1px dashed var(--iv-line-2); font-size: 12.5px; }

/* responsive: hero by its own width, rows by the list card width */
@container kwhero (max-width: 1040px) {
  .kw-page .kw-hero { grid-template-columns: minmax(0, 1fr) minmax(300px, 44%); gap: 14px 18px; }
  .kw-page .kw-stat { gap: 5px; height: 30px; padding: 0 9px; font-size: 11px; }
  .kw-page .kw-stat b { font-size: 13px; }
  .kw-page .kw-stats { gap: 5px; }
  .kw-page .kw-stat svg.lucide { display: none; }
}
@container kwhero (max-width: 900px) {
  .kw-page .kw-hero { grid-template-columns: minmax(0, 1fr) 300px; }
}
@container kwhero (max-width: 780px) {
  .kw-page .kw-hero { grid-template-columns: minmax(0, 1fr); }
  .kw-page .kw-plot { max-width: 560px; }
}
@container kwmain (max-width: 780px) {
  .kw-page .kw-row { grid-template-columns: minmax(0, 1.5fr) 110px 150px minmax(0, 1fr) 62px; }
  .kw-page .kw-row > :nth-child(4) { display: none; }
}
@container kwmain (max-width: 620px) {
  .kw-page .kw-head { display: none; }
  .kw-page .kw-row { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; }
  .kw-page .kw-row > .kw-name { grid-column: 1; }
  .kw-page .kw-row > .kw-r { grid-column: 2; grid-row: 1; }
  .kw-page .kw-row > .kw-vol, .kw-page .kw-row > .kw-kdt, .kw-page .kw-row > .kw-cats { grid-column: 1 / -1; }
  .kw-page .kw-filters { margin-left: 0; }
}
@media (max-width: 1199px) {
  .kw-page .kw-layout { grid-template-columns: minmax(0, 1fr); }
  .kw-page .kw-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  .kw-page .kw-rail .kw-rc + .kw-rc { border-top: 0; border-left: 1px solid var(--iv-line-2); }
}
@media (max-width: 767px) {
  .kw-page .kw-titles h1 { font-size: 24px; }
  .kw-page .kw-acts .iv2-search { flex: 1 0 100%; max-width: none; }
  .kw-page .kw-acts .btn { flex: 1; justify-content: center; }
  .kw-page .kw-stats { flex-wrap: nowrap; overflow-x: auto; margin: 0 calc(-1 * var(--gr)) 0 calc(-1 * var(--gl)); padding: 0 var(--gr) 2px var(--gl); scrollbar-width: none; }
  .kw-page .kw-stats::-webkit-scrollbar { display: none; }
  .kw-page .kw-zones { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
  .kw-page .kw-rail { grid-template-columns: minmax(0, 1fr); }
  .kw-page .kw-rail .kw-rc + .kw-rc { border-left: 0; border-top: 1px solid var(--iv-line-2); }
}

/* ============================================================
   CONTENT TREE v3 "Coverage wheel" (2026-10-22) — scoped .ct3-page.
   Hero: intro · search · website pills · chips | coverage wheel.
   Body: [tabs Tree / Map / Gaps / Websites + view | rail].
   Tree keeps ul.ct-tree > li.ct-li[data-category] > .ct-row (tests).
   ============================================================ */
.ct3-page .iv2-hero { container: cthero / inline-size; }
.ct3-page .ct3-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: 18px 24px; align-items: center; }
.ct3-page .ct3-hero-l { min-width: 0; }
.ct3-page .ct3-titles h1 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; font-size: 30px; letter-spacing: -.025em; line-height: 1.1; }
.ct3-page .ct3-titles p { margin: 3px 0 0; color: var(--iv-muted); font-size: 13.5px; }
.ct3-page .ct3-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0 0; }
.ct3-page .ct3-acts .iv2-search { flex: 1 1 200px; max-width: 300px; min-width: 180px; }
.ct3-page .ct3-acts .iv2-search input { box-sizing: border-box; width: 100%; }
.ct3-page .ct3-edit { display: inline-flex; align-items: center; gap: 6px; height: 38px; min-height: 0; border: 1px solid #A7F3D0; background: #fff; color: var(--iv-em); text-decoration: none; white-space: nowrap; }
.ct3-page .ct3-sites { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.ct3-page .ct3-site { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border: 1px solid rgba(15, 23, 42, .08); border-radius: 999px; background: rgba(255, 255, 255, .82); color: var(--iv-ink-2); font: inherit; font-size: 12px; font-weight: 650; white-space: nowrap; cursor: pointer; }
.ct3-page .ct3-site svg.lucide { width: 13px; height: 13px; }
.ct3-page .ct3-site:hover { background: #fff; }
.ct3-page .ct3-site.is-on { border-color: #0B1F17; background: #0B1F17; color: #fff; }
.ct3-page .ct3-dot { display: inline-block; flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; }
.ct3-page .ct3-stats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ct3-page .ct3-stat { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border: 1px solid transparent; border-radius: 999px; background: var(--iv-soft); color: var(--iv-ink-2); font: inherit; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.ct3-page .ct3-stat b { font-size: 14px; font-weight: 800; font-variant-numeric: tabular-nums; }
.ct3-page .ct3-stat svg.lucide { width: 14px; height: 14px; }
.ct3-page .ct3-stat.is-white { border-color: rgba(15, 23, 42, .08); background: #fff; }
.ct3-page .ct3-stat.is-blue { background: #DBEAFE; color: #1D4ED8; }
.ct3-page .ct3-stat.is-green { background: #D1FAE5; color: #047857; }
.ct3-page .ct3-stat.is-amber { background: #FFEDD5; color: #C2410C; cursor: pointer; }
.ct3-page .ct3-stat.is-rose { background: #FFE4E8; color: #BE123C; }

/* coverage wheel */
.ct3-page .ct3-wheel { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 16px; align-items: center; min-width: 0; padding: 14px 18px; border: 1px solid rgba(15, 23, 42, .07); border-radius: 20px; background: rgba(255, 255, 255, .92); box-shadow: 0 18px 40px -26px rgba(4, 47, 36, .55); }
.ct3-page .ct3-svg { display: block; width: 100%; max-width: 210px; height: auto; }
.ct3-page .ct3-slice { cursor: pointer; transition: opacity .15s; }
.ct3-page .ct3-slice:hover { opacity: .8; }
.ct3-page .ct3-slice.is-sel { stroke: #7C3AED; stroke-width: 3; }
.ct3-page .ct3-svg-pct { fill: #0B1F17; font-size: 26px; font-weight: 800; }
.ct3-page .ct3-svg-sub { fill: #98A39E; font-size: 10.5px; }
.ct3-page .ct3-wheel-side { min-width: 0; }
.ct3-page .ct3-wheel-side > p { margin: 4px 0 10px; color: var(--iv-muted); font-size: 12px; }
.ct3-page .ct3-lbl { display: inline-flex; align-items: center; gap: 5px; color: var(--iv-em); font-size: 10.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.ct3-page .ct3-lbl svg.lucide { width: 13px; height: 13px; }
.ct3-page .ct3-wl { display: grid; gap: 7px; max-height: 132px; margin: 0; padding: 0; overflow-y: auto; list-style: none; font-size: 12.5px; }
.ct3-page .ct3-wl li { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ct3-page .ct3-wl li span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct3-page .ct3-wl i { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 3px; }
.ct3-page .ct3-wl b { margin-left: auto; font-variant-numeric: tabular-nums; }
.ct3-page .ct3-keys { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; color: var(--iv-muted); font-size: 10.5px; }
.ct3-page .ct3-keys span { display: inline-flex; align-items: center; gap: 5px; }
.ct3-page .ct3-keys i { display: inline-block; width: 16px; height: 9px; border-radius: 3px; }
.ct3-page .k-pub { background: #047857; } .ct3-page .k-wip { background: #FCD34D; }
.ct3-page .k-none { border: 1px dashed #FDA4AF; background: repeating-linear-gradient(135deg, #FFE4E6 0 3px, #FFF1F2 3px 6px); }
.ct3-page .ct3-wheel-empty { grid-column: 1 / -1; color: var(--iv-muted); font-size: 12.5px; }
.ct3-page .ct3-wheel-empty b { display: block; color: var(--iv-ink); }

/* layout + tabs */
.ct3-page .ct3-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; min-width: 0; }
.ct3-page .ct3-main { container: ctmain / inline-size; }
.ct3-page .ct3-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 10px 14px; border-bottom: 1px solid var(--iv-line-2); }
.ct3-page .ct3-tablist { display: flex; flex-wrap: wrap; gap: 4px; }
.ct3-page .ct3-tab { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 14px; border: 0; border-radius: 10px; background: none; color: var(--iv-muted); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.ct3-page .ct3-tab:hover { background: var(--iv-soft); color: var(--iv-ink); }
.ct3-page .ct3-tab.is-on { background: #0B1F17; color: #fff; }
.ct3-page .ct3-tab em { padding: 0 6px; border-radius: 999px; background: #E2E8F0; color: #475569; font-size: 10.5px; font-style: normal; font-weight: 800; }
.ct3-page .ct3-tab.is-on em { background: #10B981; color: #fff; }
.ct3-page .ct3-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.ct3-page .ct3-tool { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border: 1px solid var(--iv-line); border-radius: 8px; background: #fff; color: var(--iv-ink-2); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.ct3-page .ct3-tool:hover { background: var(--iv-soft); }
.ct3-page .ct3-tool svg.lucide { width: 13px; height: 13px; }
.ct3-page .ct3-toggle { position: relative; display: inline-flex; align-items: center; gap: 7px; min-width: 0; margin: 0; color: var(--iv-muted); font-size: 12px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.ct3-page .ct3-toggle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ct3-page .ct3-toggle span { position: relative; width: 28px; height: 16px; border-radius: 999px; background: #CBD5E1; transition: background .15s; }
.ct3-page .ct3-toggle span::after { content: ""; position: absolute; left: 2px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff; transition: left .15s; }
.ct3-page .ct3-toggle input:checked + span { background: #10B981; }
.ct3-page .ct3-toggle input:checked + span::after { left: 14px; }
.ct3-page .ct3-toggle input:focus-visible + span { box-shadow: 0 0 0 3px rgba(5, 150, 105, .25); }
.ct3-page .ct3-seg { display: inline-flex; gap: 2px; padding: 3px; border-radius: 10px; background: var(--iv-soft); }
.ct3-page .ct3-seg button { height: 28px; padding: 0 12px; border: 0; border-radius: 8px; background: none; color: var(--iv-muted); font: inherit; font-size: 12.5px; font-weight: 650; cursor: pointer; white-space: nowrap; }
.ct3-page .ct3-seg button.is-on { background: #fff; color: var(--iv-ink); box-shadow: 0 1px 2px rgba(16, 24, 40, .12); }
.ct3-page .ct3-scale { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 5px; color: var(--iv-muted); font-size: 11px; }
.ct3-page .ct3-scale i { display: inline-block; width: 16px; height: 9px; border-radius: 3px; }
.ct3-page .ct3-none { margin: 4px 2px; color: var(--iv-faint); font-size: 12px; }
.ct3-page .ct3-loading { color: var(--iv-faint); }
.ct3-page .iv2-pad { padding: 16px; }

/* shared shades */
.ct3-page .t-h1 { background: #065F46; color: #fff; } .ct3-page .t-h2 { background: #047857; color: #fff; }
.ct3-page .t-h3 { background: #10B981; color: #fff; } .ct3-page .t-h4 { background: #6EE7B7; color: #064E3B; }
.ct3-page .t-th { border: 1px solid #FCD34D; background: #FEF3C7; color: #92400E; }
.ct3-page .t-e { border: 1px dashed #FDA4AF; background: repeating-linear-gradient(135deg, #FFE4E6 0 6px, #FFF1F2 6px 12px); color: #BE123C; }
.ct3-page .ct3-pill { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: 999px; background: var(--iv-soft); color: var(--iv-ink-2); font-size: 10.5px; font-weight: 800; white-space: nowrap; }
.ct3-page .ct3-pill.is-green { background: #D1FAE5; color: #047857; } .ct3-page .ct3-pill.is-amber { background: #FEF3C7; color: #92400E; }
.ct3-page .ct3-pill.is-rose { background: #FFE4E6; color: #BE123C; } .ct3-page .ct3-pill.is-slate { background: #F1F5F9; color: #64748B; }
.ct3-page .t-rose { color: #BE123C; } .ct3-page .t-green { color: #047857; } .ct3-page .t-blue { color: #1D4ED8; }

/* ── Tree view: branching diagram (curved SVG connectors drawn by content_tree.js) ── */
.ct3-page .ct3-canvas { overflow-x: auto; background: radial-gradient(rgba(11, 143, 90, .07) 1px, transparent 1.3px) 0 0 / 16px 16px; }
.ct3-page .ct3-diagram { position: relative; display: flex; align-items: center; width: max-content; min-width: 100%; padding: 22px 24px; box-sizing: border-box; }
.ct3-page .ct3-links { position: absolute; left: 0; top: 0; z-index: 0; overflow: visible; pointer-events: none; }
.ct3-page .ct3-root { position: relative; z-index: 1; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 12px; background: #0B1F17; color: #fff; font-size: 13px; font-weight: 700; white-space: nowrap; box-shadow: 0 8px 18px -10px rgba(11, 31, 23, .6); }
.ct3-page .ct3-root svg.lucide { width: 15px; height: 15px; }
.ct3-page .ct3-root span { padding: 1px 8px; border-radius: 999px; background: #10B981; font-size: 11px; font-weight: 800; }
.ct3-page .ct-tree { --bc: #CBD5E1; }
.ct3-page .ct-tree, .ct3-page .ct-children { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 8px; margin: 0; padding: 0 0 0 44px; list-style: none; border: 0; }
.ct3-page .ct-tree { gap: 14px; padding-left: 52px; }
.ct3-page .ct-li, .ct3-page .ct-no-visible, .ct3-page .ct3-more { position: relative; z-index: 1; display: flex; align-items: center; padding: 0; }
.ct3-page .ct-row { position: relative; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; min-height: 0; padding: 6px 10px; overflow: visible; border: 1px solid var(--iv-line); border-radius: 12px; background: #fff; box-shadow: 0 4px 12px -9px rgba(16, 24, 40, .35); font-size: 12.5px; white-space: nowrap; }
.ct3-page .ct-row:hover { background: #fff; border-color: #CBD8D1; }
.ct3-page .ct-group-row { border: 2px solid var(--bc); font-weight: 700; }
.ct3-page .ct-group-row.is-top { padding: 8px 12px; font-size: 13.5px; }
.ct3-page .ct-group-row.ct-legacy { border-style: dashed; background: #FAFBFA; color: var(--iv-faint); }
.ct3-page .ct-category-row { cursor: pointer; }
.ct3-page .ct-category-row.is-e { border: 1px dashed #FDA4AF; background: #FFF1F2; }
.ct3-page .ct-category-row.is-th { border-color: #FCD34D; background: #FFFBEB; }
.ct3-page .ct-row.is-sel { border-color: #7C3AED; box-shadow: 0 0 0 3px #EDE9FE; }
.ct3-page .ct-caret { display: grid; place-items: center; flex: 0 0 auto; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 6px; background: var(--iv-soft); color: var(--iv-ink-2); cursor: pointer; }
.ct3-page .ct-caret svg.lucide { width: 14px; height: 14px; transition: transform .15s; }
.ct3-page .ct-caret.open svg.lucide { transform: rotate(90deg); }
.ct3-page .ct-dot { display: inline-block; flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--bc); }
.ct3-page .ct-category-row.is-e .ct-dot { border: 1.5px dashed #F43F5E; background: transparent; }
.ct3-page .ct-title { font-weight: 650; }
.ct3-page .ct-row-empty .ct-title { color: inherit; }
.ct3-page .ct-category-row.is-e .ct-title { color: #BE123C; }
.ct3-page .ct-group-meta, .ct3-page .ct-legacy-label { color: var(--iv-faint); font-size: 11px; font-weight: 500; }
.ct3-page .ct3-cov { display: block; width: 44px; height: 5px; overflow: hidden; border-radius: 999px; background: #EEF2F6; }
.ct3-page .ct3-cov b { display: block; height: 100%; border-radius: 999px; background: #10B981; }
.ct3-page .ct-metrics { display: inline-flex; gap: 4px; }
.ct3-page :is(.ct-count, .ct-active, .ct-published, .ct-empty) { padding: 1px 7px; border-radius: 999px; font-size: 10.5px; font-weight: 800; }
.ct3-page .ct-count { background: #D1FAE5; color: #047857; }
.ct3-page .is-th .ct-count { background: #FEF3C7; color: #92400E; } .ct3-page .ct-active { background: #DBEAFE; color: #1D4ED8; }
.ct3-page .ct-published { background: #D1FAE5; color: #047857; } .ct3-page .ct-empty { background: #FFE4E6; color: #BE123C; }
.ct3-page .ct-volume { display: block; width: 54px; height: 5px; margin: 0; overflow: hidden; border-radius: 999px; background: #EEF2F6; }
.ct3-page .ct-volume span { display: block; height: 100%; background: linear-gradient(90deg, #34D399, #059669); opacity: 1; }
.ct3-page .ct-row-empty .ct-volume { display: none; }
.ct3-page .ct-actions { display: inline-flex; margin: 0; }
.ct3-page .ct-write { display: inline-flex; align-items: center; justify-content: center; gap: 4px; height: 24px; min-width: 26px; padding: 0 7px; border: 1px solid #A7F3D0; border-radius: 999px; background: #ECFDF5; color: #047857; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.ct3-page .ct-write:hover { border-color: #059669; background: #059669; color: #fff; }
.ct3-page .ct-write svg.lucide { width: 11px; height: 11px; }
.ct3-page .ct-category-row.is-e .ct-write { border-color: #059669; background: #059669; color: #fff; }
.ct3-page .ct-no-visible { color: var(--iv-faint); font-size: 12px; }
.ct3-page .ct3-more button { padding: 5px 10px; border: 1px dashed var(--iv-line); border-radius: 10px; background: #fff; color: var(--iv-muted); font: inherit; font-size: 12px; cursor: pointer; }
.ct3-page .ct3-more button:hover { border-color: var(--bc); color: var(--iv-ink); }
.ct3-page .ct3-tree-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 10px 16px; border-top: 1px solid var(--iv-line-2); color: var(--iv-muted); font-size: 11.5px; }
.ct3-page .ct3-tree-legend span { display: inline-flex; align-items: center; gap: 6px; }

/* ── Map view ── */
.ct3-page .ct3-map { display: flex; flex-wrap: wrap; gap: 10px; padding: 14px; }
.ct3-page .ct3-blk { flex: 1 1 300px; min-width: 0; padding: 10px; border: 1px solid rgba(15, 23, 42, .06); border-radius: 14px; background: linear-gradient(180deg, color-mix(in srgb, var(--bc) 9%, #fff), #fff 70%); }
.ct3-page .ct3-blk h3 { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 8px; font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.ct3-page .ct3-blk h3 span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; color: var(--bc); }
.ct3-page .ct3-blk h3 i { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 3px; }
.ct3-page .ct3-blk h3 em { flex: 0 0 auto; padding: 2px 8px; border-radius: 999px; font-size: 10.5px; font-style: normal; letter-spacing: .02em; }
.ct3-page .ct3-blk h3 em.is-green { background: #D1FAE5; color: #047857; } .ct3-page .ct3-blk h3 em.is-amber { background: #FFEDD5; color: #C2410C; }
.ct3-page .ct3-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 6px; }
.ct3-page .ct3-tile { display: flex; flex-direction: column; justify-content: space-between; gap: 8px; min-height: 64px; padding: 7px 9px; border: 0; border-radius: 10px; font: inherit; font-size: 12px; font-weight: 700; text-align: left; cursor: pointer; transition: transform .12s; }
.ct3-page .ct3-tile:hover { transform: translateY(-1px); }
.ct3-page .ct3-tile.is-sel { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #7C3AED; }
.ct3-page .ct3-tile-n { display: grid; overflow-wrap: anywhere; }
.ct3-page .ct3-tile-n small { font-size: 10px; font-weight: 600; opacity: .75; }
.ct3-page .ct3-tile > small { font-size: 10.5px; font-weight: 600; opacity: .9; }
.ct3-page .ct3-legacy { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-top: 1px dashed var(--iv-line); background: #FAFBFA; color: var(--iv-muted); font-size: 12.5px; }
.ct3-page .ct3-legacy button { margin-left: auto; padding: 0; border: 0; background: none; color: var(--iv-em); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }

/* ── Gaps view ── */
.ct3-page .ct3-gap-banner { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--iv-line-2); background: linear-gradient(90deg, #FFF1F2, #fff 70%); }
.ct3-page .ct3-gap-banner b { font-size: 15px; }
.ct3-page .ct3-gap-banner p { margin: 2px 0 0; color: var(--iv-muted); font-size: 12.5px; }
.ct3-page .ct3-gap-ic { display: grid; place-items: center; flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; background: #FFE4E6; color: #BE123C; }
.ct3-page .ct3-gap-ic svg.lucide { width: 19px; height: 19px; }
.ct3-page .ct3-gcols { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; padding: 14px; align-items: start; }
.ct3-page .ct3-gcol { min-width: 0; padding: 10px; border: 1px solid var(--iv-line-2); border-radius: 14px; background: #F7FAF8; }
.ct3-page .ct3-gcol h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 13px; }
.ct3-page .ct3-gcol h3 i { width: 9px; height: 9px; border-radius: 3px; }
.ct3-page .ct3-gcol h3 em { margin-left: auto; padding: 0 8px; border-radius: 999px; background: #FFE4E6; color: #BE123C; font-size: 11px; font-style: normal; font-weight: 800; }
.ct3-page .ct3-gcard { margin-bottom: 8px; padding: 10px 12px; border: 1px solid var(--iv-line); border-radius: 12px; background: #fff; cursor: pointer; }
.ct3-page .ct3-gcard:last-child { margin-bottom: 0; }
.ct3-page .ct3-gcard.is-empty { border: 1px dashed #FDA4AF; }
.ct3-page .ct3-gcard.is-sel { border-color: #7C3AED; box-shadow: 0 0 0 3px #EDE9FE; }
.ct3-page .ct3-gcard b { font-size: 13px; overflow-wrap: anywhere; }
.ct3-page .ct3-sub { display: block; color: var(--iv-faint); font-size: 11px; }
.ct3-page .ct3-gcard p { margin: 4px 0 8px; color: var(--iv-muted); font-size: 11.5px; }
.ct3-page .ct3-gfoot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; }
.ct3-page .ct3-gbtn { display: inline-flex; align-items: center; gap: 4px; height: 26px; min-height: 0; padding: 0 10px; font-size: 12px; }
.ct3-page .ct3-gbtn svg.lucide { width: 12px; height: 12px; }

/* ── Websites view ── */
.ct3-page .ct3-wm-wrap { overflow-x: auto; }
.ct3-page .ct3-wm { display: grid; grid-template-columns: minmax(150px, 1.3fr) repeat(var(--n, 3), minmax(88px, 1fr)) 66px; min-width: 100%; width: max-content; max-width: none; }
@supports (width: fit-content) { .ct3-page .ct3-wm { width: 100%; min-width: calc(150px + var(--n, 3) * 88px + 60px); } }
.ct3-page .ct3-wm > div { display: flex; align-items: center; min-width: 0; padding: 7px 12px; border-bottom: 1px solid var(--iv-line-2); font-size: 12.5px; }
.ct3-page .ct3-wm .is-c { justify-content: center; } .ct3-page .ct3-wm .is-r { justify-content: flex-end; }
.ct3-page .ct3-wm-h { gap: 6px; background: #FAFBFA; color: var(--iv-muted); font-size: 10.5px !important; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; overflow-wrap: break-word; text-align: center; }
.ct3-page .ct3-wm-h.is-r { white-space: nowrap; }
.ct3-page .ct3-wm-g { grid-column: 1 / -1; gap: 6px; background: #F7FAF8; font-size: 12px !important; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.ct3-page .ct3-wm-g i { width: 9px; height: 9px; border-radius: 3px; }
.ct3-page .ct3-wm-n { padding-left: 28px !important; cursor: pointer; }
.ct3-page .ct3-wm-n:hover { color: var(--iv-em); }
.ct3-page .ct3-wm-t { font-weight: 800; }
.ct3-page .ct3-wm-empty { grid-column: 1 / -1; color: var(--iv-faint); }
.ct3-page .ct3-cell { display: inline-flex; align-items: center; justify-content: center; min-width: 60px; height: 26px; border-radius: 8px; font-size: 12px; font-weight: 800; }
.ct3-page .ct3-cell.is-0 { border: 1px dashed #FDA4AF; background: #FFF1F2; color: #BE123C; }
.ct3-page .ct3-cell.is-1 { background: #D1FAE5; color: #047857; } .ct3-page .ct3-cell.is-2 { background: #10B981; color: #fff; } .ct3-page .ct3-cell.is-3 { background: #047857; color: #fff; }

/* ── rail ── */
.ct3-page .ct3-rail { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ct3-page .ct3-rc { min-width: 0; padding: 14px 16px; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); background: #fff; box-shadow: var(--iv-shadow); }
.ct3-page .ct3-rc h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 14.5px; font-weight: 750; }
.ct3-page .ct3-rc h2 svg.lucide { color: var(--iv-em-2); }
.ct3-page .ct3-rc-sub { margin: 4px 0 0; color: var(--iv-muted); font-size: 12.5px; }
.ct3-page .ct3-rc-empty { margin: 4px 0 0; color: var(--iv-faint); font-size: 12.5px; }
.ct3-page .ct3-bar-row { display: grid; grid-template-columns: minmax(0, 1fr) 80px 36px; gap: 8px; align-items: center; padding: 5px 0; font-size: 12.5px; }
.ct3-page .ct3-bar-row[data-select] { cursor: pointer; }
.ct3-page .ct3-bar-row > span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct3-page .ct3-bar-row i { display: block; height: 6px; overflow: hidden; border-radius: 999px; background: #EEF2F6; }
.ct3-page .ct3-bar-row i b { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #34D399, #059669); }
.ct3-page .ct3-bar-row i b.is-rose { background: #FDA4AF; }
.ct3-page .ct3-bar-row em { font-style: normal; font-weight: 800; text-align: right; }
.ct3-page .ct3-bar3 { display: flex; height: 8px; margin-top: 10px; overflow: hidden; border-radius: 999px; background: #EEF2F6; }
.ct3-page .ct3-bar3 b { display: block; height: 100%; } .ct3-page .ct3-bar3 b.is-green { background: #10B981; } .ct3-page .ct3-bar3 b.is-blue { background: #3B82F6; }
.ct3-page .ct3-site-h { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ct3-page .ct3-site-h b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct3-page .ct3-site-h .ct3-pill { margin-left: auto; }
.ct3-page .ct3-pick { display: grid; justify-items: center; gap: 8px; padding: 22px 18px; text-align: center; }
.ct3-page .ct3-pick p { margin: 0; color: var(--iv-muted); font-size: 12.5px; }
.ct3-page .ct3-pick b { display: block; color: var(--iv-ink); font-size: 13.5px; }
.ct3-page .ct3-pick-ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--iv-soft); color: var(--iv-em); }
.ct3-page .ct3-sel { position: relative; }
.ct3-page .ct3-sel-path { color: var(--iv-faint); font-size: 11.5px; overflow-wrap: anywhere; }
.ct3-page .ct3-sel-name { display: flex !important; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 4px !important; font-size: 19px !important; overflow-wrap: anywhere; }
.ct3-page .ct3-st3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.ct3-page .ct3-st3 div { padding: 8px 10px; border: 1px solid var(--iv-line-2); border-radius: 12px; background: #F7FAF8; }
.ct3-page .ct3-st3 span { color: var(--iv-muted); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ct3-page .ct3-st3 b { display: block; font-size: 18px; }
.ct3-page .ct3-lbl2 { margin: 14px 0 2px; color: var(--iv-muted); font-size: 10.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.ct3-page .ct3-sel-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.ct3-page .ct3-sel-acts .btn { display: inline-flex; align-items: center; gap: 5px; height: 32px; min-height: 0; padding: 0 12px; font-size: 12.5px; }
.ct3-page .ct3-x { position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; border: 0; border-radius: 8px; background: none; color: var(--iv-faint); font-size: 18px; cursor: pointer; }
.ct3-page .ct3-x:hover { background: var(--iv-soft); color: var(--iv-ink); }
.ct-flash { position: fixed; right: 20px; bottom: 20px; z-index: 60; max-width: min(420px, calc(100vw - 40px)); padding: 12px 16px; border: 1px solid #A7F3D0 !important; border-radius: 12px; background: #ECFDF5 !important; color: #047857 !important; font-weight: 650; box-shadow: 0 18px 40px -20px rgba(4, 47, 36, .5); }

/* responsive */
@container cthero (max-width: 1040px) {
  .ct3-page .ct3-hero { grid-template-columns: minmax(0, 1fr) minmax(320px, 46%); gap: 14px 18px; }
  .ct3-page .ct3-wheel { grid-template-columns: 150px minmax(0, 1fr); gap: 12px; padding: 12px 14px; }
  .ct3-page .ct3-stat { gap: 5px; height: 30px; padding: 0 9px; font-size: 11px; }
  .ct3-page .ct3-stat svg.lucide { display: none; }
  .ct3-page .ct3-stat b { font-size: 13px; }
  .ct3-page .ct3-stats { gap: 5px; }
}
@container cthero (max-width: 780px) {
  .ct3-page .ct3-hero { grid-template-columns: minmax(0, 1fr); }
  .ct3-page .ct3-wheel { max-width: 560px; }
}
@container ctmain (max-width: 640px) {
  .ct3-page .ct3-tools { margin-left: 0; }
  .ct3-page .ct3-diagram { display: block; width: auto; min-width: 0; padding: 14px 12px; }
  .ct3-page .ct3-root { margin-bottom: 10px; }
  .ct3-page .ct-tree, .ct3-page .ct-children { display: flex; padding-left: 26px; gap: 8px; }
  .ct3-page .ct-tree { gap: 10px; }
  .ct3-page .ct-li, .ct3-page .ct-no-visible, .ct3-page .ct3-more { display: block; }
  .ct3-page .ct-children { margin-top: 8px; }
  .ct3-page .ct-row { display: flex; flex-wrap: wrap; width: fit-content; max-width: 100%; white-space: normal; box-sizing: border-box; }
  .ct3-page .ct-title { overflow-wrap: anywhere; }
  .ct3-page .ct-category-row .ct-active { display: none; }
  .ct3-page .ct-category-row .ct-actions { margin-left: auto; }
}
@media (max-width: 1199px) {
  .ct3-page .ct3-layout { grid-template-columns: minmax(0, 1fr); }
  .ct3-page .ct3-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}
@media (max-width: 767px) {
  .ct3-page .ct3-titles h1 { font-size: 24px; }
  .ct3-page .ct3-acts .iv2-search { flex: 1 0 100%; max-width: none; }
  .ct3-page .ct3-edit { flex: 1; justify-content: center; }
  .ct3-page .ct3-sites, .ct3-page .ct3-stats { flex-wrap: nowrap; overflow-x: auto; margin-left: calc(-1 * var(--gl)); margin-right: calc(-1 * var(--gr)); padding: 0 var(--gr) 2px var(--gl); scrollbar-width: none; }
  .ct3-page .ct3-sites::-webkit-scrollbar, .ct3-page .ct3-stats::-webkit-scrollbar { display: none; }
  .ct3-page .ct3-wheel { grid-template-columns: 120px minmax(0, 1fr); }
  .ct3-page .ct3-wheel-side > p, .ct3-page .ct3-keys { display: none; }
  .ct3-page .ct3-tabs { padding: 8px; }
  .ct3-page .ct3-tablist { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
  .ct3-page .ct3-tab { padding: 0 10px; font-size: 12.5px; }
  .ct3-page .ct3-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ct3-page .ct3-rail { grid-template-columns: minmax(0, 1fr); }
}

/* v3.1 (2026-10-22): many websites / categories — compact website picker, compare set, masonry map, scrolling gap lists, sticky rail */
.ct3-page .ct3-site-n { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
.ct3-page .ct3-site-more { position: relative; padding: 0 4px 0 10px; }
.ct3-page .ct3-site-more svg.lucide { width: 13px; height: 13px; flex: 0 0 auto; }
.ct3-page .ct3-site-more select { max-width: 190px; height: 28px; min-height: 0; padding: 0 22px 0 4px; border: 0; background-color: transparent; color: inherit; font: inherit; font-size: 12px; font-weight: 650; cursor: pointer; }
.ct3-page .ct3-site-more select:focus { outline: none; }
.ct3-page .ct3-site-more:focus-within { box-shadow: 0 0 0 3px rgba(5, 150, 105, .18); }
.ct3-page .ct3-cmps { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ct3-page .ct3-cmp { display: inline-flex; align-items: center; gap: 6px; height: 28px; max-width: 220px; padding: 0 4px 0 10px; border: 1px solid var(--iv-line); border-radius: 999px; background: #fff; font-size: 12px; font-weight: 650; }
.ct3-page .ct3-cmp-n { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct3-page .ct3-cmp button { display: grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; background: var(--iv-soft); color: var(--iv-muted); font-size: 14px; line-height: 1; cursor: pointer; }
.ct3-page .ct3-cmp button:hover { background: #FFE4E6; color: #BE123C; }
.ct3-page .ct3-cmp-add { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 4px 0 9px; border: 1px dashed #A7F3D0; border-radius: 999px; background: #ECFDF5; color: var(--iv-em); font-size: 12px; font-weight: 700; }
.ct3-page .ct3-cmp-add svg.lucide { width: 12px; height: 12px; }
.ct3-page .ct3-cmp-add select { max-width: 150px; height: 26px; min-height: 0; padding: 0 18px 0 2px; border: 0; background-color: transparent; color: inherit; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }

/* map: masonry columns so short branches don't leave holes; long branches scroll inside */
.ct3-page .ct3-map { display: block; columns: 360px auto; column-gap: 10px; padding: 14px; }
.ct3-page .ct3-blk { display: inline-block; width: 100%; margin: 0 0 10px; break-inside: avoid; box-sizing: border-box; vertical-align: top; }
.ct3-page .ct3-tiles { max-height: 340px; overflow-y: auto; padding: 2px 2px 2px 0; scrollbar-width: thin; }
.ct3-page .ct3-tile { min-height: 56px; }

/* gaps: compact rows, each branch column scrolls on its own */
.ct3-page .ct3-gcols { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.ct3-page .ct3-gcol { display: flex; flex-direction: column; max-height: 420px; padding: 10px 8px 8px 10px; }
.ct3-page .ct3-gcol h3 span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct3-page .ct3-gcol h3 i { flex: 0 0 auto; }
.ct3-page .ct3-glist { display: grid; gap: 6px; min-height: 0; overflow-y: auto; padding-right: 2px; scrollbar-width: thin; }
.ct3-page .ct3-gcard { display: flex; align-items: center; gap: 8px; margin: 0; padding: 8px 8px 8px 10px; border-left: 3px solid #FDA4AF; }
.ct3-page .ct3-gcard.is-empty { border: 1px dashed #FDA4AF; border-left: 3px solid #F43F5E; }
.ct3-page .ct3-gcard.is-thin { border-left-color: #F59E0B; }
.ct3-page .ct3-gtxt { display: grid; flex: 1; min-width: 0; }
.ct3-page .ct3-gtxt b { overflow: hidden; font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.ct3-page .ct3-gtxt small { overflow: hidden; color: var(--iv-faint); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.ct3-page .ct3-gbtn { flex: 0 0 auto; height: 26px; padding: 0 9px; }

/* websites: selected sites only */
.ct3-page .ct3-wm-wrap { max-height: 70vh; overflow: auto; }
.ct3-page .ct3-wm-h { position: sticky; top: 0; z-index: 1; }

/* rail: sticky and self-scrolling on wide screens */
@media (min-width: 1200px) {
  .ct3-page .ct3-rail { position: sticky; top: calc(var(--header-height, 56px) + 12px); max-height: calc(100vh - var(--header-height, 56px) - 24px); overflow-y: auto; padding: 0 2px 4px; scrollbar-width: thin; }
}
.ct3-page .ct3-gcols { display: block; columns: 250px auto; column-gap: 12px; }
.ct3-page .ct3-gcol { display: flex; width: 100%; margin: 0 0 12px; break-inside: avoid; box-sizing: border-box; }

/* ============================================================
   CONTENT TREE v3.3 — Tree tab: Flow canvas (pan / zoom / navigator / full screen)
   and Outline mode (classic indented list). Scoped .ct3-page.
   ============================================================ */
.ct3-page .ct3-modes button { display: inline-flex; align-items: center; gap: 6px; }
.ct3-page .ct3-modes svg.lucide { width: 13px; height: 13px; }
.ct3-page .ct3-focus { position: relative; display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 6px 0 9px; border: 1px solid var(--iv-line); border-radius: 8px; background: #fff; color: var(--iv-ink-2); }
.ct3-page .ct3-focus svg.lucide { width: 13px; height: 13px; flex: 0 0 auto; color: var(--iv-em); }
.ct3-page .ct3-focus select { max-width: 160px; height: 28px; min-height: 0; padding: 0 2px; border: 0; background: transparent; color: inherit; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.ct3-page .ct3-focus select:focus { outline: none; }
.ct3-page .ct3-fs { border-color: #A7F3D0; color: var(--iv-em); }
.ct3-page .ct3-exit { border-color: #0B1F17; background: #0B1F17; color: #fff; }
.ct3-page .ct3-exit:hover { background: #1F3A2E; }

/* canvas viewport (real scroll container) */
.ct3-page .ct3-cwrap { position: relative; }
.ct3-page .ct3-canvas { position: relative; height: clamp(440px, calc(100vh - 300px), 760px); overflow: auto; outline: none; cursor: grab; scrollbar-width: thin; background: radial-gradient(rgba(11, 143, 90, .09) 1px, transparent 1.3px) 0 0 / 18px 18px, #FBFCFB; }
.ct3-page .ct3-canvas:focus-visible { box-shadow: inset 0 0 0 2px rgba(5, 150, 105, .35); }
.ct3-page .ct3-canvas.is-panning { cursor: grabbing; user-select: none; }
.ct3-page .ct3-canvas.is-panning * { cursor: grabbing !important; }
.ct3-page .ct3-sizer { position: relative; min-width: 100%; }
.ct3-page .ct3-stage { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform; }
.ct3-page .ct3-canvas:not(.is-outline) .ct3-diagram { min-width: 0; padding: 36px 220px 120px 36px; }
.ct3-page .ct-children.is-entering > li { animation: ct3-enter .2s ease-out both; }
.ct3-page .ct-children.is-entering > li:nth-child(2) { animation-delay: .02s; }
.ct3-page .ct-children.is-entering > li:nth-child(3) { animation-delay: .04s; }
.ct3-page .ct-children.is-entering > li:nth-child(n+4) { animation-delay: .06s; }
@keyframes ct3-enter { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ct3-page .ct-children.is-entering > li { animation: none; } }
.ct3-page .ct3-o { display: none; }

/* floating controls */
.ct3-page .ct3-zoom { position: absolute; left: 14px; bottom: 14px; z-index: 3; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--iv-line); border-radius: 12px; background: #fff; box-shadow: 0 10px 24px -14px rgba(16, 24, 40, .4); }
.ct3-page .ct3-zoom button { display: grid; place-items: center; width: 36px; height: 32px; padding: 0; border: 0; border-bottom: 1px solid var(--iv-line-2); background: #fff; color: var(--iv-ink-2); font: inherit; font-size: 10.5px; font-weight: 800; cursor: pointer; }
.ct3-page .ct3-zoom button:last-child { border-bottom: 0; }
.ct3-page .ct3-zoom button:hover { background: var(--iv-soft); color: var(--iv-em); }
.ct3-page .ct3-zoom svg.lucide { width: 15px; height: 15px; }
.ct3-page .ct3-mini { position: absolute; right: 14px; bottom: 14px; z-index: 3; width: 210px; overflow: hidden; border: 1px solid var(--iv-line); border-radius: 12px; background: rgba(255, 255, 255, .96); box-shadow: 0 12px 30px -16px rgba(16, 24, 40, .45); }
.ct3-page .ct3-mini-h { display: flex; align-items: center; justify-content: space-between; padding: 4px 6px 4px 9px; border-bottom: 1px solid var(--iv-line-2); color: var(--iv-muted); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ct3-page .ct3-mini-h button { display: grid; place-items: center; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 6px; background: none; color: var(--iv-muted); cursor: pointer; }
.ct3-page .ct3-mini-h button:hover { background: var(--iv-soft); }
.ct3-page .ct3-mini-h svg.lucide { width: 12px; height: 12px; }
.ct3-page .ct3-mini-b { position: relative; height: 110px; cursor: crosshair; touch-action: none; }
.ct3-page .ct3-mini-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.ct3-page .ct3-mini-vp { position: absolute; border: 2px solid #7C3AED; border-radius: 4px; background: rgba(124, 58, 237, .08); pointer-events: none; }
.ct3-page .ct3-hint { position: absolute; left: 62px; bottom: 16px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid var(--iv-line); border-radius: 999px; background: rgba(255, 255, 255, .94); color: var(--iv-muted); font-size: 11px; pointer-events: none; }
.ct3-page .ct3-hint svg.lucide { width: 12px; height: 12px; }
.ct3-page .ct3-drawer { position: absolute; right: 14px; top: 14px; z-index: 4; width: 310px; max-height: calc(100% - 170px); overflow-y: auto; border-radius: 16px; box-shadow: 0 22px 50px -24px rgba(16, 24, 40, .5); }
.ct3-page .ct3-drawer .ct3-rc { border-radius: 16px; }

/* full screen (below the app header) */
body.ct3-noscroll { overflow: hidden; }
.ct3-page .ct3-main.ct3-is-full { position: fixed; top: var(--fs-top, 56px); left: var(--fs-left, 0px); right: 0; bottom: 0; z-index: 80; display: flex; flex-direction: column; border: 0; border-radius: 0; box-shadow: none; }
.ct3-page .ct3-is-full .ct3-tablist { display: none; }
.ct3-page .ct3-is-full .ct3-tabs::before { content: "Content Tree"; color: var(--iv-ink); font-size: 14px; font-weight: 800; white-space: nowrap; }
.ct3-page .ct3-is-full .ct3-tools { margin-left: auto; }
.ct3-page .ct3-is-full .ct3-view { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
.ct3-page .ct3-is-full .ct3-cwrap { flex: 1 1 auto; min-height: 0; }
.ct3-page .ct3-is-full .ct3-canvas { height: 100%; }
.ct3-page .ct3-is-full .ct3-tree-legend { display: none; }
.ct3-page .ct3-find { position: relative; display: inline-flex; align-items: center; }
.ct3-page .ct3-find svg.lucide { position: absolute; left: 9px; width: 13px; height: 13px; color: var(--iv-faint); pointer-events: none; }
.ct3-page .ct3-find input { width: 190px; height: 30px; min-height: 0; padding: 0 10px 0 28px; border: 1px solid var(--iv-line); border-radius: 8px; background: #fff; font: inherit; font-size: 12px; }
.ct3-page .ct3-find input:focus { outline: none; border-color: var(--iv-em-2); box-shadow: 0 0 0 3px rgba(5, 150, 105, .14); }
.ct3-page .ct3-find input.is-miss { border-color: #F43F5E; box-shadow: 0 0 0 3px rgba(244, 63, 94, .15); }

/* ── Outline mode: the classic indented tree ── */
.ct3-page .ct3-canvas.is-outline { height: auto; max-height: none; overflow: visible; cursor: default; background: #fff; }
.ct3-page .ct3-canvas.is-outline .ct3-stage { position: static; transform: none !important; }
.ct3-page .ct3-canvas.is-outline .ct3-sizer { width: auto !important; height: auto !important; }
.ct3-page .ct3-canvas.is-outline .ct3-diagram { display: block; width: auto; min-width: 0; padding: 4px 0 8px; background: none; }
.ct3-page .ct3-canvas.is-outline .ct3-links, .ct3-page .ct3-canvas.is-outline .ct3-root { display: none; }
.ct3-page .ct3-canvas.is-outline :is(.ct-tree, .ct-children) { display: block; gap: 0; margin: 0; padding: 0; }
.ct3-page .ct3-canvas.is-outline .ct-li, .ct3-page .ct3-canvas.is-outline .ct-no-visible, .ct3-page .ct3-canvas.is-outline .ct3-more { display: block; padding: 0; }
.ct3-page .ct3-canvas.is-outline .ct-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto 140px 190px; align-items: center; gap: 10px; width: 100%; min-height: 46px; padding: 8px 16px 8px calc(16px + var(--d, 0) * 26px); border: 0; border-bottom: 1px solid var(--iv-line-2); border-radius: 0; background: #fff; box-shadow: none; white-space: nowrap; box-sizing: border-box; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-row { --d: 1; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-children .ct-row { --d: 2; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-children .ct-children .ct-row { --d: 3; }
.ct3-page .ct3-canvas.is-outline .ct-row:hover { background: #F6FBF8; }
.ct3-page .ct3-canvas.is-outline .ct-group-row { border-left: 3px solid var(--bc); background: linear-gradient(90deg, #F7FAF8, #fff 60%); font-size: 13.5px; }
.ct3-page .ct3-canvas.is-outline .ct-group-row .ct3-cov { order: 4; justify-self: stretch; width: auto; height: 7px; }
.ct3-page .ct3-canvas.is-outline .ct-group-row .ct3-pill { order: 3; }
.ct3-page .ct3-canvas.is-outline .ct-group-row .ct-legacy-label { order: 3; }
.ct3-page .ct3-canvas.is-outline .ct-group-row .ct3-o-meta { order: 5; display: inline; justify-self: end; color: var(--iv-faint); font-size: 11.5px; font-weight: 500; white-space: nowrap; text-align: right; }
.ct3-page .ct3-canvas.is-outline .ct-category-row { grid-template-columns: auto minmax(0, 1fr) auto 140px 190px; cursor: pointer; }
.ct3-page .ct3-canvas.is-outline .ct-category-row.is-e { border: 0; border-bottom: 1px solid var(--iv-line-2); background: #FFF8F8; }
.ct3-page .ct3-canvas.is-outline .ct-category-row.is-th { border: 0; border-bottom: 1px solid var(--iv-line-2); background: #FFFDF5; }
.ct3-page .ct3-canvas.is-outline .ct-row.is-sel { box-shadow: inset 3px 0 0 #7C3AED; background: #F5F3FF; }
.ct3-page .ct3-canvas.is-outline .ct3-o-vol { display: block; height: 7px; overflow: hidden; border-radius: 999px; background: #EEF2F6; }
.ct3-page .ct3-canvas.is-outline .ct3-o-vol span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #10B981, #3B82F6); }
.ct3-page .ct3-canvas.is-outline .ct-actions { justify-self: end; }
.ct3-page .ct3-canvas.is-outline .ct-write { height: 26px; padding: 0 10px; }
.ct3-page .ct3-canvas.is-outline .ct3-more button { width: 100%; margin: 0; padding: 7px 16px 7px 58px; border: 0; border-bottom: 1px solid var(--iv-line-2); border-radius: 0; background: #FCFDFC; text-align: left; }
.ct3-page .ct3-canvas.is-outline .ct-no-visible { padding: 8px 16px 8px 58px; border-bottom: 1px solid var(--iv-line-2); }
.ct3-page .ct3-canvas.is-outline .ct-legacy { background: #FAFBFA; border-left-color: #CBD5E1; }
@container ctmain (max-width: 760px) {
  .ct3-page .ct3-canvas.is-outline .ct-row { grid-template-columns: auto minmax(0, 1fr) auto; row-gap: 4px; white-space: normal; }
  .ct3-page .ct3-canvas.is-outline .ct3-o-vol, .ct3-page .ct3-canvas.is-outline .ct-group-row .ct3-cov, .ct3-page .ct3-canvas.is-outline .ct3-o-meta { display: none; }
  .ct3-page .ct3-canvas.is-outline .ct-metrics { grid-column: 2 / -1; }
  .ct3-page .ct3-canvas.is-outline .ct-actions { grid-column: 3; grid-row: 1; }
}
@media (max-width: 767px) {
  .ct3-page .ct3-hint { display: none; }
  .ct3-page .ct3-mini { width: 150px; }
  .ct3-page .ct3-mini-b { height: 80px; }
  .ct3-page .ct3-canvas { height: 62vh; }
  .ct3-page .ct3-tools .ct3-tool span { display: none; }
  .ct3-page .ct3-drawer { left: 10px; right: 10px; width: auto; top: auto; bottom: 110px; max-height: 50%; }
  .ct3-page .ct3-find input { width: 140px; }
}
.ct3-page .ct3-main:not(.ct3-is-full) .ct3-tools #ct-expand-all span, .ct3-page .ct3-main:not(.ct3-is-full) .ct3-tools #ct-collapse-all span { display: none; }
.ct3-page .ct3-main:not(.ct3-is-full) .ct3-tools #ct-expand-all, .ct3-page .ct3-main:not(.ct3-is-full) .ct3-tools #ct-collapse-all { width: 30px; padding: 0; justify-content: center; }
.ct3-page .ct3-focus select { max-width: 130px; }

/* ── v3.4 (2026-10-22): compact header, custom dropdowns, full-screen outline scroll ── */
.ct3-page .ct3-is-full .ct3-canvas.is-outline { height: 100%; max-height: none; overflow: auto; }
.ct3-page .ct3-acts { flex-wrap: nowrap; }
.ct3-page .ct3-acts .iv2-search { flex: 1 1 200px; max-width: 280px; }
.ct3-page .ct3-titles p { font-size: 13px; }
.ct3-page .ct3-stats { margin-top: 12px; }
.ct3-page .ct3-hero { align-items: center; }
.ct3-page .ct3-wheel { grid-template-columns: 170px minmax(0, 1fr); padding: 12px 16px; }
.ct3-page .ct3-svg { max-width: 170px; }
.ct3-page .ct3-wl { max-height: 110px; }
.ct3-page .ct3-wheel-side > p { display: none; }

.ct3-page .ct3-dd { position: relative; flex: 0 1 auto; min-width: 0; }
.ct3-page .ct3-dd-btn { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; height: 38px; padding: 0 10px 0 12px; border: 1px solid rgba(15, 23, 42, .1); border-radius: 10px; background: rgba(255, 255, 255, .9); color: var(--iv-ink-2); font: inherit; font-size: 13px; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.ct3-page .ct3-dd-btn:hover { border-color: #A7F3D0; background: #fff; }
.ct3-page .ct3-dd.is-open .ct3-dd-btn, .ct3-page .ct3-dd-btn:focus-visible { outline: none; border-color: var(--iv-em-2); box-shadow: 0 0 0 3px rgba(5, 150, 105, .14); background: #fff; }
.ct3-page .ct3-dd-btn > svg.lucide { flex: 0 0 auto; width: 15px; height: 15px; color: var(--iv-em); }
.ct3-page .ct3-dd-k { color: var(--iv-faint); font-size: 12px; font-weight: 600; white-space: nowrap; }
.ct3-page .ct3-dd-v { display: inline-flex; align-items: center; gap: 6px; min-width: 0; overflow: hidden; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.ct3-page .ct3-dd-btn .ct3-dd-c { width: 14px; height: 14px; color: var(--iv-faint); transition: transform .15s; }
.ct3-page .ct3-dd.is-open .ct3-dd-c { transform: rotate(180deg); }
.ct3-page .ct3-dd-site .ct3-dd-btn { max-width: 300px; }
.ct3-page .ct3-dd-sm .ct3-dd-btn { height: 30px; padding: 0 8px 0 10px; border-color: var(--iv-line); border-radius: 8px; background: #fff; font-size: 12px; }
.ct3-page .ct3-dd-sm .ct3-dd-btn > svg.lucide { width: 13px; height: 13px; }
.ct3-page .ct3-dd-sm .ct3-dd-k { display: none; }
.ct3-page .ct3-dd-sm .ct3-dd-v { max-width: 150px; font-weight: 650; }
.ct3-page .ct3-dd-add .ct3-dd-btn { border-style: dashed; border-color: #A7F3D0; background: #ECFDF5; color: var(--iv-em); }
.ct3-page .ct3-dd-add .ct3-dd-k { display: inline; color: var(--iv-em); }
.ct3-page .ct3-dd-add .ct3-dd-v { display: none; }
body .ct3-dd-pop { position: fixed; left: 0; top: 0; z-index: 320; display: flex; flex-direction: column; width: max(100%, 260px); max-width: min(340px, 90vw); max-height: 340px; overflow: hidden; padding: 6px; border: 1px solid var(--iv-line); border-radius: 14px; background: #fff; box-shadow: 0 22px 48px -20px rgba(16, 24, 40, .4), 0 2px 6px rgba(16, 24, 40, .06); animation: ct3-dd-in .14s ease-out; }
body .ct3-dd-pop[hidden] { display: none; }
body .ct3-dd-pop.is-right { left: auto; right: 0; }
@keyframes ct3-dd-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.ct3-dd-pop .ct3-dd-s { position: relative; flex: 0 0 auto; margin-bottom: 6px; }
.ct3-dd-pop .ct3-dd-s svg.lucide { position: absolute; left: 10px; top: 50%; width: 14px; height: 14px; color: var(--iv-faint); transform: translateY(-50%); pointer-events: none; }
.ct3-dd-pop .ct3-dd-s input { box-sizing: border-box; width: 100%; height: 34px; min-height: 0; padding: 0 10px 0 32px; border: 1px solid var(--iv-line); border-radius: 9px; background: #F8FAF9; font: inherit; font-size: 12.5px; }
.ct3-dd-pop .ct3-dd-s input:focus { outline: none; border-color: var(--iv-em-2); background: #fff; }
.ct3-dd-pop .ct3-dd-list { display: grid; gap: 1px; min-height: 0; overflow-y: auto; }
.ct3-dd-pop .ct3-dd-o { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 34px; padding: 6px 10px; border: 0; border-radius: 8px; background: none; color: var(--iv-ink-2); font: inherit; font-size: 12.5px; text-align: left; cursor: pointer; }
.ct3-dd-pop .ct3-dd-o[hidden] { display: none; }
.ct3-dd-pop .ct3-dd-o:hover, .ct3-dd-pop .ct3-dd-o:focus-visible { outline: none; background: var(--iv-soft); color: var(--iv-ink); }
.ct3-dd-pop .ct3-dd-o.is-on { background: #ECFDF5; color: var(--iv-em); font-weight: 700; }
.ct3-dd-pop .ct3-dd-ol { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct3-dd-pop .ct3-dd-o small { padding: 0 7px; border-radius: 999px; background: var(--iv-soft); color: var(--iv-muted); font-size: 10.5px; font-weight: 700; }
.ct3-dd-pop .ct3-dd-o svg.lucide { width: 14px; height: 14px; color: var(--iv-em); }
.ct3-dd-pop .ct3-dd-none { margin: 8px 10px; color: var(--iv-faint); font-size: 12px; }
@media (max-width: 767px) {
  .ct3-page .ct3-acts { flex-wrap: wrap; }
  .ct3-page .ct3-dd-site { flex: 1 1 100%; }
  .ct3-page .ct3-dd-site .ct3-dd-btn { width: 100%; max-width: none; }
  .ct3-page .ct3-dd-site .ct3-dd-v { flex: 1; }
}
body .ct3-dd-pop { --iv-ink: #0B1F17; --iv-ink-2: #2F3B36; --iv-muted: #61706A; --iv-faint: #98A39E; --iv-line: #E4E9E6; --iv-soft: #F1F4F2; --iv-em: #047857; --iv-em-2: #059669; font-family: inherit; color: var(--iv-ink-2); }
body .ct3-dd-pop .ct3-dot { display: inline-block; flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; }
body .ct3-dd-pop svg.lucide { flex: 0 0 auto; }

/* ── v3.5 (2026-10-22): Outline tree with connector lines (Flow mode disabled for now) ── */
.ct3-page .ct3-canvas.is-outline .ct-row { padding-left: calc(16px + var(--d, 0) * 32px); }
.ct3-page .ct3-canvas.is-outline .ct-children { position: relative; }
.ct3-page .ct3-canvas.is-outline .ct-children > li { --ld: 1; position: relative; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-children > li { --ld: 2; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-children .ct-children > li { --ld: 3; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-children .ct-children .ct-children > li { --ld: 4; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-children .ct-children .ct-children .ct-row { --d: 4; }
/* vertical guide (parent caret column) + elbow into each child */
.ct3-page .ct3-canvas.is-outline .ct-children > li::before,
.ct3-page .ct3-canvas.is-outline .ct-children > li::after {
  content: ""; position: absolute; z-index: 2; pointer-events: none;
  left: calc(30px + (var(--ld) - 1) * 32px);
  opacity: .75;
}
.ct3-page .ct3-canvas.is-outline .ct-children > li::before { top: 0; bottom: 0; border-left: 2px solid var(--bc, #CBD5E1); }
.ct3-page .ct3-canvas.is-outline .ct-children > li:last-child::before { bottom: auto; height: 23px; }
.ct3-page .ct3-canvas.is-outline .ct-children > li::after { top: 22px; width: 13px; height: 10px; border-bottom: 2px solid var(--bc, #CBD5E1); border-left: 2px solid var(--bc, #CBD5E1); border-bottom-left-radius: 8px; transform: translateY(-9px); }
.ct3-page .ct3-canvas.is-outline .ct-children > li:not(:last-child)::after { border-left: 0; border-radius: 0; }
.ct3-page .ct3-canvas.is-outline .ct-children > li:last-child::before { height: 14px; }
.ct3-page .ct3-canvas.is-outline .ct-children > li:has(> .ct-row-empty)::after,
.ct3-page .ct3-canvas.is-outline .ct-children > li.ct3-more::after,
.ct3-page .ct3-canvas.is-outline .ct-children > li.ct-no-visible::after { border-bottom-style: dashed; }
/* short stem from the parent's caret down to the first child */
.ct3-page .ct3-canvas.is-outline .ct-children::before { content: ""; position: absolute; z-index: 2; left: calc(30px + (var(--ld, 1) - 1) * 32px); top: -12px; height: 12px; border-left: 2px solid var(--bc, #CBD5E1); opacity: .7; pointer-events: none; }
.ct3-page .ct3-canvas.is-outline .ct-children { --ld: 1; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-children { --ld: 2; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-children .ct-children { --ld: 3; }
.ct3-page .ct3-canvas.is-outline .ct-children .ct-children .ct-children .ct-children { --ld: 4; }
.ct3-page .ct3-canvas.is-outline .ct3-more button,
.ct3-page .ct3-canvas.is-outline .ct-no-visible { padding-left: calc(16px + var(--ld, 1) * 32px); }
.ct3-page .ct3-canvas.is-outline li.ct-no-visible { padding-left: calc(16px + var(--ld, 1) * 32px); }
.ct3-page .ct3-canvas.is-outline .ct3-more::after { top: 18px; }
.ct3-page .ct3-canvas.is-outline .ct3-more:last-child::before { height: 10px; }
/* flow-only controls stay hidden while Flow is disabled */
.ct3-page .ct3-modes, .ct3-page .ct3-zoom, .ct3-page .ct3-mini, .ct3-page .ct3-hint { display: none !important; }
@container ctmain (max-width: 760px) {
  .ct3-page .ct3-canvas.is-outline .ct-group-row { grid-template-columns: auto minmax(0, 1fr) auto; }
  .ct3-page .ct3-canvas.is-outline .ct-group-row .ct3-o-meta,
  .ct3-page .ct3-canvas.is-outline .ct-group-row .ct3-cov { display: none; }
  .ct3-page .ct3-canvas.is-outline .ct-title { min-width: 0; overflow-wrap: anywhere; }
  .ct3-page .ct3-canvas.is-outline .ct-row { padding-left: calc(12px + var(--d, 0) * 24px); }
  .ct3-page .ct3-canvas.is-outline .ct-children > li::before,
  .ct3-page .ct3-canvas.is-outline .ct-children > li::after,
  .ct3-page .ct3-canvas.is-outline .ct-children::before { left: calc(24px + (var(--ld, 1) - 1) * 24px); }
  .ct3-page .ct3-canvas.is-outline .ct-children > li::after { width: 9px; }
  .ct3-page .ct3-canvas.is-outline .ct3-more button,
  .ct3-page .ct3-canvas.is-outline li.ct-no-visible { padding-left: calc(12px + var(--ld, 1) * 24px); }
}

/* ── Conexus v2 (2026-10-22): ILRE Internal Link Health, repair queue, drawers, discovery ── */
.cnx-page .cnx-pill { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 8px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; background: var(--iv-soft); color: var(--iv-ink-2); }
.cnx-page .cnx-pill.is-ok { background: #ECFDF5; color: #047857; }
.cnx-page .cnx-pill.is-bad { background: #FFF1F2; color: #BE123C; }
.cnx-page .cnx-pill.is-warn { background: #FFF7ED; color: #C2410C; }
.cnx-page .cnx-pill.is-iso, .cnx-page .cnx-pill.is-violet { background: #F5F3FF; color: #6D28D9; }
.cnx-page .cnx-pill.is-info { background: #EFF6FF; color: #1D4ED8; }
.cnx-page .cnx-pill.is-muted { background: #F1F4F2; color: var(--iv-muted); }

.cnx-page .cnx-ilre { padding: 0; overflow: hidden; }
.cnx-page .cnx-ilre-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--iv-line-2); }
.cnx-page .cnx-ilre-title { display: flex; align-items: flex-start; gap: 10px; min-width: 0; flex: 1 1 320px; }
.cnx-page .cnx-ilre-title h3 { margin: 0; font-size: 15px; }
.cnx-page .cnx-ilre-title p { margin: 2px 0 0; font-size: 12px; }
.cnx-page .cnx-ilre-ico { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 10px; background: #F5F3FF; color: #6D28D9; }
.cnx-page .cnx-ilre-ico.is-green { background: #ECFDF5; color: #047857; }
.cnx-page .cnx-ilre-ctrls { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cnx-page .cnx-select { height: 32px; min-width: 0; max-width: 260px; font-size: 12px; }
.cnx-page .cnx-scanbar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 16px; border-bottom: 1px solid var(--iv-line-2); background: #FAFBFA; font-size: 12px; }
.cnx-page .cnx-scanbar.is-running, .cnx-page .cnx-scanbar.is-queued { background: #EFF6FF; }
.cnx-page .cnx-scanbar.is-running svg.lucide, .cnx-page .cnx-scanbar.is-queued svg.lucide { animation: cnx-spin 1.2s linear infinite; color: #1D4ED8; }
.cnx-page .cnx-scanbar.is-partial { background: #FFFBEB; }
.cnx-page .cnx-scanbar.is-failed { background: #FFF1F2; }
.cnx-page .cnx-scanbar.is-completed svg.lucide { color: #047857; }
.cnx-page .cnx-scan-err { flex-basis: 100%; font-size: 11.5px; }
.cnx-page .cnx-scan-err summary { cursor: pointer; color: var(--iv-muted); }
@keyframes cnx-spin { to { transform: rotate(360deg); } }

.cnx-page .cnx-tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 12px 16px; }
.cnx-page .cnx-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; padding: 10px 12px; border: 1px solid var(--iv-line); border-radius: 12px; background: #fff; cursor: pointer; text-align: left; transition: border-color .15s, box-shadow .15s; }
.cnx-page .cnx-tile span { display: inline-flex; align-items: center; gap: 6px; color: var(--iv-muted); font-size: 10.5px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.cnx-page .cnx-tile b { font-size: 22px; line-height: 1.1; color: var(--iv-ink); }
.cnx-page .cnx-tile:hover { border-color: #CBD5D0; }
.cnx-page .cnx-tile.is-active { border-color: #A7F3D0; box-shadow: 0 0 0 2px #ECFDF5; }
.cnx-page .cnx-tile.is-green b, .cnx-page .cnx-tile.is-green svg { color: #047857; }
.cnx-page .cnx-tile.is-rose b, .cnx-page .cnx-tile.is-rose svg { color: #BE123C; }
.cnx-page .cnx-tile.is-amber b, .cnx-page .cnx-tile.is-amber svg { color: #C2410C; }
.cnx-page .cnx-tile.is-violet b, .cnx-page .cnx-tile.is-violet svg { color: #6D28D9; }
@media (max-width: 900px) { .cnx-page .cnx-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .cnx-page .cnx-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.cnx-page .cnx-listbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 16px 10px; }
.cnx-page .cnx-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.cnx-page .cnx-chip { height: 28px; padding: 0 10px; border: 1px solid var(--iv-line); border-radius: 999px; background: #fff; color: var(--iv-ink-2); font-size: 12px; font-weight: 650; cursor: pointer; }
.cnx-page .cnx-chip:hover { background: var(--iv-soft); }
.cnx-page .cnx-chip.is-on { border-color: #A7F3D0; background: #ECFDF5; color: #047857; }
.cnx-page .cnx-search { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border: 1px solid var(--iv-line); border-radius: 9px; background: #fff; color: var(--iv-faint); }
.cnx-page .cnx-search input { width: 200px; max-width: 46vw; border: 0; outline: 0; background: none; font-size: 12.5px; color: var(--iv-ink); }
.cnx-page .cnx-list .table-wrap { max-height: 520px; overflow: auto; border-top: 1px solid var(--iv-line-2); }
.cnx-page .cnx-table td { vertical-align: top; }
.cnx-page .cnx-page-cell { display: flex; flex-direction: column; gap: 2px; min-width: 0; max-width: 520px; }
.cnx-page .cnx-page-cell a { font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cnx-page .cnx-note { display: inline-block; margin-top: 3px; padding: 2px 6px; border-radius: 6px; background: #F8FAF9; color: var(--iv-muted); font-size: 11px; }
.cnx-page .cnx-note.is-violet { background: #F5F3FF; color: #6D28D9; }
.cnx-page .cnx-sub { font-size: 11px; }
.cnx-page .cnx-io { display: inline-flex; align-items: center; gap: 6px; font-variant-numeric: tabular-nums; }
.cnx-page .cnx-io svg.lucide { width: 12px; height: 12px; color: var(--iv-faint); }
.cnx-page .cnx-actions { text-align: right; white-space: nowrap; }
.cnx-page .cnx-foot { padding: 8px 16px; margin: 0; font-size: 11.5px; }
.cnx-page .cnx-empty { display: flex; align-items: flex-start; gap: 12px; margin: 12px 16px 16px; padding: 16px; border: 1px dashed #D5DED9; border-radius: 12px; background: #FAFBFA; }
.cnx-page .cnx-empty > svg.lucide { width: 22px; height: 22px; color: var(--iv-em); }
.cnx-page .cnx-empty p { margin: 2px 0 0; font-size: 12.5px; color: var(--iv-muted); }
.cnx-page .cnx-empty.is-small { margin: 8px 16px 16px; padding: 12px; }
.cnx-page .cnx-audit { margin: 0; padding: 10px 16px 14px; border-top: 1px solid var(--iv-line-2); }
.cnx-page .cnx-audit summary { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-size: 12.5px; font-weight: 700; color: var(--iv-ink-2); }
.cnx-page .cnx-feed { margin: 8px 0 0; padding: 0 0 0 18px; font-size: 12px; }
.cnx-page .cnx-feed li { margin: 0 0 8px; }

/* Repair rows */
.cnx-page .cnx-prop-list { display: flex; flex-direction: column; gap: 6px; padding: 0 16px 16px; }
.cnx-page .cnx-prop { display: flex; flex-direction: column; gap: 4px; width: 100%; padding: 10px 12px; border: 1px solid var(--iv-line); border-radius: 12px; background: #fff; text-align: left; cursor: pointer; font-size: 12.5px; }
.cnx-page .cnx-prop:hover { border-color: #A7F3D0; box-shadow: 0 1px 0 #ECFDF5; }
.cnx-page .cnx-prop-top { display: flex; flex-wrap: wrap; gap: 4px; }
.cnx-page .cnx-prop-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.cnx-page .cnx-prop-line svg.lucide { width: 13px; height: 13px; color: var(--iv-faint); }

/* Drawer */
.cnx-page .cnx-drawer-backdrop { position: fixed; inset: 0; z-index: 9998; display: flex; justify-content: flex-end; background: rgba(11, 31, 23, .38); backdrop-filter: blur(2px); }
.cnx-page .cnx-drawer { display: flex; flex-direction: column; width: min(600px, 100vw); height: 100%; background: #fff; box-shadow: -18px 0 40px -20px rgba(16, 24, 40, .45); animation: cnx-slide .18s ease-out; }
@keyframes cnx-slide { from { transform: translateX(24px); opacity: .6; } to { transform: none; opacity: 1; } }
.cnx-page .cnx-drawer-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 16px 18px 12px; border-bottom: 1px solid var(--iv-line-2); }
.cnx-page .cnx-drawer-head h3 { margin: 0; font-size: 16px; line-height: 1.3; }
.cnx-page .cnx-drawer-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; font-size: 12px; min-width: 0; word-break: break-all; }
.cnx-page .cnx-drawer-body { flex: 1 1 auto; overflow-y: auto; padding: 14px 18px 24px; scrollbar-width: thin; }
.cnx-page .cnx-drawer-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 6px; }
.cnx-page .cnx-h { margin: 18px 0 8px; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--iv-muted); }
.cnx-page .cnx-sub-h { display: block; margin: 10px 0 6px; font-size: 11px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; color: var(--iv-faint); }
.cnx-page .cnx-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cnx-page .cnx-facts div { padding: 8px 10px; border: 1px solid var(--iv-line-2); border-radius: 10px; background: #FAFBFA; }
.cnx-page .cnx-facts span { display: block; color: var(--iv-muted); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.cnx-page .cnx-facts b { font-size: 15px; }
.cnx-page .cnx-banner { display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 0; padding: 9px 12px; border-radius: 10px; font-size: 12.5px; background: #F1F4F2; color: var(--iv-ink-2); }
.cnx-page .cnx-banner.is-ok { background: #ECFDF5; color: #065F46; }
.cnx-page .cnx-banner.is-warn { background: #FFF7ED; color: #9A3412; }
.cnx-page .cnx-banner.is-bad { background: #FFF1F2; color: #9F1239; }
.cnx-page .cnx-banner-card { padding: var(--space-3); }
.cnx-page .cnx-banner-card.is-warn { border-left: 4px solid #F59E0B; }
.cnx-page .cnx-banner-card.is-bad { border-left: 4px solid #E11D48; }
.cnx-page .cnx-node-pair { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; }
.cnx-page .cnx-node-pair > svg.lucide { color: var(--iv-faint); }
.cnx-page .cnx-node-card { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding: 10px 12px; border: 1px solid var(--iv-line); border-radius: 12px; font-size: 12.5px; }
.cnx-page .cnx-node-card a { font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cnx-page .cnx-why { display: flex; gap: 8px; margin-top: 12px; padding: 10px 12px; border-radius: 12px; background: #FFFBEB; font-size: 12.5px; }
.cnx-page .cnx-why > svg.lucide { color: #B45309; }
.cnx-page .cnx-diff { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; margin-top: 10px; }
.cnx-page .cnx-diff-col { padding: 10px 12px; border: 1px solid var(--iv-line); border-radius: 12px; background: #FFFDFD; font-size: 12.5px; line-height: 1.55; }
.cnx-page .cnx-diff-col.is-after { background: #F7FDF9; border-color: #BBF7D0; }
.cnx-page .cnx-diff-col p { margin: 4px 0 0; }
.cnx-page .cnx-diff-h { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--iv-muted); }
.cnx-page .cnx-diff mark { padding: 0 2px; border-radius: 4px; background: #FEF3C7; color: inherit; }
.cnx-page .cnx-diff mark.is-link { background: #D1FAE5; color: #047857; text-decoration: underline; text-underline-offset: 2px; }
.cnx-page .cnx-diff-foot { display: flex; align-items: flex-start; gap: 4px; margin-top: 6px; font-size: 11px; color: var(--iv-muted); }
.cnx-page .cnx-diff-foot a { min-width: 0; word-break: break-all; }
.cnx-page .cnx-nowrap { white-space: nowrap; }
.cnx-page .cnx-sugg { margin: 0 0 12px; padding: 10px; border: 1px solid var(--iv-line-2); border-radius: 12px; }
.cnx-page .cnx-sugg-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; }
.cnx-page .cnx-sugg .btn { margin-top: 8px; }
.cnx-page .cnx-manual { display: flex; flex-direction: column; gap: 6px; }
.cnx-page .cnx-manual .btn { align-self: flex-start; }
.cnx-page .cnx-triage { display: flex; flex-wrap: wrap; gap: 6px; }
.cnx-page .cnx-edges { margin: 0; padding: 0; list-style: none; font-size: 12px; }
.cnx-page .cnx-edges li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 5px 0; border-bottom: 1px solid var(--iv-line-2); }
@media (max-width: 640px) {
  .cnx-page .cnx-diff, .cnx-page .cnx-node-pair { grid-template-columns: minmax(0, 1fr); }
  .cnx-page .cnx-node-pair > svg.lucide { transform: rotate(90deg); justify-self: center; }
  .cnx-page .cnx-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Discovery: manual competitors, authority, settings modal */
.cnx-page .cnx-comp-add { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--iv-line); }
.cnx-page .cnx-comp-list { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.cnx-page .cnx-ascore-na { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.cnx-page .cnx-ascore-na .btn { padding: 2px 6px; }
.cnx-page .cnx-modal-backdrop { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(11, 31, 23, .45); }
.cnx-page .cnx-modal { width: 520px; max-width: 100%; padding: var(--space-4); }
.cnx-page .cnx-modal h3 { display: flex; align-items: center; gap: 8px; }
/* Conexus markup uses btn-secondary / btn-sm / btn-xs; map them onto the design-system button so
   secondary actions stop rendering as solid primary buttons. Scoped to Conexus only. */
.cnx-page .btn.btn-secondary { background: #fff; color: var(--iv-em); border-color: #CFE3D8; box-shadow: none; }
.cnx-page .btn.btn-secondary:hover:not(:disabled) { background: #F2FAF5; border-color: #A7D7BC; box-shadow: none; transform: none; }
.cnx-page .btn.btn-sm { height: 32px; padding: 0 12px; font-size: 12.5px; gap: 6px; }
.cnx-page .btn.btn-xs { height: 26px; padding: 0 9px; font-size: 11.5px; gap: 4px; border-radius: 8px; }
.cnx-page .btn svg.lucide { width: 14px; height: 14px; }
.cnx-page .btn.btn-xs svg.lucide { width: 12px; height: 12px; }
.cnx-page .select-prospect-status { min-width: 124px; }
.cnx-page .cnx-content { min-width: 0; }
.cnx-page .cnx-content .stack > * { min-width: 0; max-width: 100%; }
.cnx-page .cnx-ilre-ctrls > * { max-width: 100%; }
@media (max-width: 640px) {
  .cnx-page .cnx-ilre-ctrls { width: 100%; }
  .cnx-page .cnx-ilre-ctrls .cnx-select { flex: 1 1 100%; max-width: none; }
  .cnx-page .cnx-search, .cnx-page .cnx-search input { width: 100%; max-width: none; }
  .cnx-page .cnx-listbar .cnx-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
}
.cnx-page .cnx-chip { white-space: nowrap; flex: 0 0 auto; }

/* ── Post Library v3 (2026-10-27) · scoped .pl3-page ─────────────────────────────────── */
.pl3-page .pl3-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: 18px 24px; align-items: start; }
.pl3-page .pl3-hero-l { min-width: 0; }
.pl3-page .pl3-acts { display: flex; align-items: center; gap: 8px; margin-top: 14px; min-width: 0; }
.pl3-page .pl3-search { flex: 1 1 200px; min-width: 160px; margin: 0; }
.pl3-page .pl3-acts .btn { display: inline-flex; align-items: center; gap: 6px; height: 38px; white-space: nowrap; flex: 0 0 auto; }
.pl3-page .pl3-acts .btn svg.lucide { width: 15px; height: 15px; }
.pl3-page .pl3-site { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 10px; margin: 0; border: 1px solid rgba(15, 23, 42, .1); border-radius: 10px; background: rgba(255, 255, 255, .92); flex: 0 1 230px; min-width: 150px; color: var(--iv-ink-2); }
.pl3-page .pl3-site svg.lucide { width: 15px; height: 15px; flex: 0 0 auto; color: var(--iv-muted); }
.pl3-page .pl3-site small { color: var(--iv-faint); font-size: 11.5px; }
.pl3-page .pl3-site select { flex: 1; min-width: 0; height: 34px; min-height: 0; border: 0; background-color: transparent; font: inherit; font-size: 13px; font-weight: 700; color: var(--iv-ink); padding: 0 18px 0 2px; cursor: pointer; }
.pl3-page .pl3-site select:focus { outline: none; }
.pl3-page .pl3-site:focus-within { box-shadow: 0 0 0 3px rgba(5, 150, 105, .16); border-color: var(--iv-em-2); }
.pl3-page .pl3-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; background: #94A3B8; }
.pl3-page .pl3-dot.is-ok { background: #10B981; box-shadow: 0 0 0 3px #D1FAE5; }
.pl3-page .pl3-dot.is-bad { background: #E11D48; box-shadow: 0 0 0 3px #FFE4E6; }
.pl3-page .pl3-dot.is-idle { background: #F59E0B; box-shadow: 0 0 0 3px #FEF3C7; }

.pl3-page .pl3-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.pl3-page .pl3-chips.is-in { margin-top: 16px; }
.pl3-page .pl3-chip { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border: 1px solid var(--iv-line); border-radius: 999px; background: rgba(255, 255, 255, .9); color: var(--iv-ink-2); font: inherit; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.pl3-page button.pl3-chip { cursor: pointer; }
.pl3-page button.pl3-chip:hover { border-color: #C9DED4; background: #fff; }
.pl3-page .pl3-chip.is-on { box-shadow: 0 0 0 2px var(--iv-ink); }
.pl3-page .pl3-chip svg.lucide { width: 14px; height: 14px; }
.pl3-page .pl3-chip b { color: var(--iv-ink); font-size: 14px; font-weight: 800; font-variant-numeric: tabular-nums; }
.pl3-page .pl3-chip.is-green { background: #ECFDF5; border-color: #A7F3D0; } .pl3-page .pl3-chip.is-green b, .pl3-page .pl3-chip.is-green svg { color: #047857; }
.pl3-page .pl3-chip.is-amber { background: #FFFBEB; border-color: #FDE68A; } .pl3-page .pl3-chip.is-amber b, .pl3-page .pl3-chip.is-amber svg { color: #B45309; }
.pl3-page .pl3-chip.is-rose { background: #FFF1F2; border-color: #FECDD3; } .pl3-page .pl3-chip.is-rose b, .pl3-page .pl3-chip.is-rose svg { color: #BE123C; }

.pl3-page .pl3-hcard { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px; align-items: center; padding: 16px; border: 1px solid #fff; border-radius: 18px; background: rgba(255, 255, 255, .94); box-shadow: 0 18px 40px -26px rgba(16, 24, 40, .45); }
.pl3-page .pl3-hcard.is-empty { display: flex; gap: 10px; color: var(--iv-muted); font-size: 13px; padding: 22px; }
.pl3-page .pl3-hcard.is-empty svg.lucide { color: var(--iv-em); }
.pl3-page .pl3-donut { width: 140px; height: 140px; }
.pl3-page .pl3-lbl { display: inline-flex; align-items: center; gap: 6px; color: var(--iv-em); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pl3-page .pl3-lbl svg.lucide { width: 14px; height: 14px; }
.pl3-page .pl3-lbl.is-rose { color: #BE123C; }
.pl3-page .pl3-leg { display: grid; gap: 2px; margin-top: 8px; }
.pl3-page .pl3-leg button { display: grid; grid-template-columns: 10px 1fr auto; gap: 8px; align-items: center; padding: 3px 4px; border: 0; border-radius: 6px; background: none; font: inherit; font-size: 12.5px; color: var(--iv-ink-2); text-align: left; cursor: pointer; }
.pl3-page .pl3-leg button:hover { background: var(--iv-soft); }
.pl3-page .pl3-leg i { width: 10px; height: 10px; border-radius: 3px; }
.pl3-page .pl3-leg b { font-variant-numeric: tabular-nums; color: var(--iv-ink); }
.pl3-page .pl3-meta { display: grid; gap: 5px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--iv-line-2); font-size: 12px; color: var(--iv-muted); }
.pl3-page .pl3-meta > * { display: inline-flex; align-items: center; gap: 6px; }
.pl3-page .pl3-meta button { padding: 0; border: 0; background: none; font: inherit; color: #BE123C; font-weight: 650; cursor: pointer; text-align: left; }
.pl3-page .pl3-meta svg.lucide { width: 13px; height: 13px; flex: 0 0 auto; }

/* body layout */
.pl3-page .pl3-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
.pl3-page .pl3-layout.is-full { grid-template-columns: minmax(0, 1fr); }
.pl3-page .pl3-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--iv-line-2); }
.pl3-page .pl3-tablist { display: flex; gap: 4px; flex-wrap: wrap; flex: 1; }
.pl3-page .pl3-tab { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 12px; border: 0; border-radius: 10px; background: none; color: var(--iv-muted); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.pl3-page .pl3-tab svg.lucide { width: 15px; height: 15px; }
.pl3-page .pl3-tab:hover { background: var(--iv-soft); color: var(--iv-ink); }
.pl3-page .pl3-tab.is-on { background: #0B1F17; color: #fff; }
.pl3-page .pl3-tab em { padding: 0 7px; border-radius: 999px; background: #E2E8F0; color: #475569; font-size: 10.5px; font-style: normal; font-weight: 800; }
.pl3-page .pl3-tab.is-on em { background: rgba(255, 255, 255, .18); color: #fff; }
.pl3-page .pl3-mini { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 4px 0 10px; margin: 0; border: 1px solid var(--iv-line); border-radius: 9px; background: #fff; color: var(--iv-ink-2); font: inherit; font-size: 12.5px; font-weight: 650; white-space: nowrap; }
.pl3-page .pl3-mini svg.lucide { width: 14px; height: 14px; color: var(--iv-muted); }
.pl3-page .pl3-mini small { color: var(--iv-faint); font-weight: 500; font-size: 11.5px; }
.pl3-page .pl3-mini select { height: 28px; min-height: 0; border: 0; padding: 0 18px 0 0; background-color: transparent; font: inherit; font-weight: 700; color: var(--iv-ink); cursor: pointer; max-width: 170px; }
.pl3-page .pl3-mini select:focus { outline: none; }
.pl3-page .pl3-mini:focus-within { border-color: var(--iv-em-2); box-shadow: 0 0 0 3px rgba(5, 150, 105, .14); }
.pl3-page button.pl3-mini { padding: 0 10px; cursor: pointer; }
.pl3-page .pl3-toggle.is-on { border-color: #FECDD3; background: #FFF1F2; color: #BE123C; }
.pl3-page .pl3-toggle.is-on svg.lucide { color: #BE123C; }
.pl3-page .pl3-clear { display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0 8px; border: 0; background: none; color: var(--iv-muted); font: inherit; font-size: 12px; font-weight: 650; cursor: pointer; }
.pl3-page .pl3-clear svg.lucide { width: 13px; height: 13px; }
.pl3-page .pl3-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--iv-line-2); }
.pl3-page .pl3-note { margin: 0; padding: 10px 14px; color: var(--iv-muted); font-size: 12.5px; border-bottom: 1px solid var(--iv-line-2); }
.pl3-page .pl3-note.is-flush { padding: 4px 0 10px; border: 0; }

/* rows */
.pl3-page .pl3-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) 128px 160px 86px 16px; gap: 12px; align-items: center; padding: 11px 14px; border-bottom: 1px solid var(--iv-line-2); cursor: pointer; }
.pl3-page .pl3-row:hover { background: #F8FBF9; }
.pl3-page .pl3-row:focus-visible { outline: 2px solid var(--iv-em-2); outline-offset: -2px; }
.pl3-page .pl3-row.is-sel { background: #F2FBF6; box-shadow: inset 3px 0 0 var(--iv-em); }
.pl3-page .pl3-row > svg.lucide { width: 16px; height: 16px; color: var(--iv-faint); }
.pl3-page .pl3-row.is-head { padding: 8px 14px; background: #FAFBFA; cursor: default; color: var(--iv-faint); font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pl3-page .pl3-row.is-head:hover { background: #FAFBFA; }
.pl3-page .pl3-sorth { padding: 0; border: 0; background: none; font: inherit; color: var(--iv-em); text-align: left; cursor: pointer; letter-spacing: inherit; text-transform: inherit; }
.pl3-page .pl3-t { min-width: 0; }
.pl3-page .pl3-t b { display: block; overflow: hidden; color: var(--iv-ink); font-size: 13.5px; text-overflow: ellipsis; white-space: nowrap; }
.pl3-page .pl3-t a { display: block; overflow: hidden; color: var(--iv-faint); font-size: 11.5px; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.pl3-page .pl3-cats { display: flex; gap: 4px; margin-top: 4px; overflow: hidden; }
.pl3-page .pl3-cat { max-width: 100%; overflow: hidden; padding: 1px 8px; border-radius: 999px; background: #F1F5F3; color: var(--iv-ink-2); font-size: 10.5px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; flex: 0 1 auto; }
.pl3-page .pl3-cat.is-none { background: #FFF7ED; color: #B45309; }
.pl3-page .pl3-age { font-size: 12px; color: var(--iv-ink-2); }
.pl3-page .pl3-age small { display: block; color: var(--iv-faint); font-size: 11px; }
.pl3-page .pl3-agebar { display: block; height: 4px; margin-top: 5px; overflow: hidden; border-radius: 2px; background: #EEF1EF; }
.pl3-page .pl3-agebar i { display: block; height: 100%; border-radius: 2px; }
.pl3-page .pl3-where { min-width: 0; font-size: 12px; }
.pl3-page .pl3-where b { display: block; margin-top: 5px; color: var(--iv-ink); font-size: 12px; }
.pl3-page .pl3-where small { display: block; color: var(--iv-muted); font-size: 11px; line-height: 1.35; }
.pl3-page .pl3-where small.muted, .pl3-page .pl3-who small.muted { color: var(--iv-faint); margin-top: 5px; }
.pl3-page .is-rose { color: #BE123C !important; }
.pl3-page .pl3-st { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 999px; background: #F1F5F9; color: #475569; font-size: 11.5px; font-weight: 700; }
.pl3-page .pl3-st svg.lucide { width: 13px; height: 13px; }
.pl3-page .pl3-st.is-pub { background: #ECFDF5; color: #047857; }
.pl3-page .pl3-st.is-draft { background: #FFFBEB; color: #B45309; }
.pl3-page .pl3-st.is-pend { background: #EFF6FF; color: #1D4ED8; }
.pl3-page .pl3-iss { display: inline-block; padding: 2px 8px; border-radius: 999px; background: #FFF1F2; color: #BE123C; font-size: 11px; font-weight: 750; white-space: nowrap; }
.pl3-page .pl3-iss.is-ok { background: #ECFDF5; color: #047857; }
.pl3-page .pl3-iss.is-z { background: #F1F4F2; color: var(--iv-faint); }
.pl3-page .pl3-ring { --v: 0; --c: #10B981; position: relative; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: conic-gradient(var(--c) calc(var(--v) * 1%), #E9EEEB 0); font-size: 11.5px; font-weight: 800; flex: 0 0 auto; }
.pl3-page .pl3-ring > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #fff; }
.pl3-page .pl3-ring.is-na { background: repeating-conic-gradient(#E5E7EB 0 6deg, #fff 6deg 12deg); color: var(--iv-faint); }
.pl3-page .pl3-ring.is-big { width: 84px; height: 84px; font-size: 24px; }
.pl3-page .pl3-ring.is-big > span { width: 66px; height: 66px; }
.pl3-page .pl3-foot { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; color: var(--iv-muted); font-size: 12px; }
.pl3-page .pl3-pager { display: flex; align-items: center; gap: 6px; }
.pl3-page .pl3-pg { display: grid; place-items: center; width: 32px; height: 30px; border: 1px solid #CFE3D8; border-radius: 9px; background: #fff; color: var(--iv-em); cursor: pointer; }
.pl3-page .pl3-pg:disabled { opacity: .4; cursor: default; }
.pl3-page .pl3-pg svg.lucide { width: 15px; height: 15px; }
.pl3-page .pl3-none { display: grid; justify-items: center; gap: 4px; padding: 40px 16px; color: var(--iv-muted); font-size: 12.5px; text-align: center; }
.pl3-page .pl3-none svg.lucide { width: 22px; height: 22px; color: var(--iv-faint); }
.pl3-page .pl3-none b { color: var(--iv-ink); font-size: 14px; }

/* detail rail */
.pl3-page .pl3-rail { position: sticky; top: 12px; min-width: 0; }
.pl3-page .pl3-pane { padding: 16px; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); background: #fff; box-shadow: var(--iv-shadow); }
.pl3-page .pl3-pane-empty { display: grid; justify-items: center; gap: 4px; padding: 34px 18px; color: var(--iv-muted); font-size: 12.5px; text-align: center; }
.pl3-page .pl3-pane-empty svg.lucide { width: 22px; height: 22px; color: var(--iv-em); }
.pl3-page .pl3-pane-empty b { color: var(--iv-ink); font-size: 14px; }
.pl3-page .pl3-pane-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pl3-page .pl3-crumb { overflow: hidden; color: var(--iv-faint); font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.pl3-page .pl3-x, .pl3-modal .pl3-x { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 8px; background: none; color: var(--iv-muted, #61706A); cursor: pointer; flex: 0 0 auto; }
.pl3-page .pl3-x:hover, .pl3-modal .pl3-x:hover { background: var(--iv-soft, #F1F4F2); }
.pl3-page .pl3-x svg.lucide, .pl3-modal .pl3-x svg.lucide { width: 16px; height: 16px; }
.pl3-page .pl3-pane h3 { margin: 2px 0 8px; color: var(--iv-ink); font-size: 17px; line-height: 1.3; }
.pl3-page .pl3-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.pl3-page .pl3-lnk { display: inline-flex; align-items: center; gap: 4px; color: var(--iv-em); font-size: 12px; font-weight: 700; text-decoration: none; }
.pl3-page .pl3-lnk svg.lucide { width: 13px; height: 13px; }
.pl3-page .pl3-score { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px; align-items: center; margin: 14px 0; padding: 12px; border: 1px solid var(--iv-line-2); border-radius: 14px; background: #FAFBFA; }
.pl3-page .pl3-kv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.pl3-page .pl3-kv div { color: var(--iv-muted); font-size: 11px; }
.pl3-page .pl3-kv b { display: block; color: var(--iv-ink); font-size: 15px; }
.pl3-page .pl3-score small { display: flex; gap: 4px; margin-top: 6px; color: var(--iv-faint); font-size: 11px; }
.pl3-page .pl3-score small svg.lucide { width: 12px; height: 12px; flex: 0 0 auto; }
.pl3-page .pl3-sec, .pl3-modal .pl3-sec { display: flex; justify-content: space-between; margin: 14px 0 6px; color: #98A39E; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pl3-page .pl3-issue { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; margin-bottom: 6px; padding: 8px 10px; border: 1px solid var(--iv-line-2); border-radius: 10px; font-size: 12.5px; }
.pl3-page .pl3-issue b { font-size: 11px; letter-spacing: .03em; color: var(--iv-ink); }
.pl3-page .pl3-issue p { margin: 1px 0 0; color: var(--iv-ink-2); overflow-wrap: anywhere; }
.pl3-page .pl3-sev, .pl3-modal .pl3-sev { align-self: start; padding: 1px 7px; border-radius: 6px; background: #E0F2FE; color: #0369A1; font-size: 10px; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.pl3-page .pl3-sev.is-critical, .pl3-modal .pl3-sev.is-critical { background: #FFE4E6; color: #BE123C; }
.pl3-page .pl3-sev.is-important { background: #FEF3C7; color: #B45309; }
.pl3-page .pl3-fix { margin-bottom: 6px; overflow: hidden; border: 1px solid var(--iv-line-2); border-radius: 10px; font-size: 12.5px; }
.pl3-page .pl3-fix div { padding: 7px 10px; overflow-wrap: anywhere; }
.pl3-page .pl3-fix .is-o { background: #FFF5F6; color: #BE123C; text-decoration: line-through; }
.pl3-page .pl3-fix .is-n { background: #F0FDF6; color: #047857; }
.pl3-page .pl3-quiet { display: flex; gap: 6px; align-items: center; margin: 0; color: var(--iv-muted); font-size: 12.5px; }
.pl3-page .pl3-quiet svg.lucide { width: 14px; height: 14px; color: var(--iv-em); }
.pl3-page .pl3-act { display: grid; gap: 8px; margin-top: 14px; }
.pl3-page .pl3-wr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.pl3-page .pl3-wsel { display: flex; align-items: center; gap: 6px; height: 34px; padding: 0 8px; margin: 0; border: 1px solid var(--iv-line); border-radius: 9px; min-width: 0; }
.pl3-page .pl3-wsel svg.lucide { width: 14px; height: 14px; color: var(--iv-muted); flex: 0 0 auto; }
.pl3-page .pl3-wsel select { flex: 1; min-width: 0; height: 30px; min-height: 0; border: 0; background-color: transparent; font: inherit; font-size: 12.5px; font-weight: 700; padding: 0 16px 0 0; }
.pl3-page .pl3-wsel select:focus { outline: none; }
.pl3-page .btn.pl3-sm, .pl3-modal .btn.pl3-sm { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 34px; padding: 0 12px; font-size: 12.5px; white-space: nowrap; }
.pl3-page .btn.pl3-sm svg.lucide { width: 14px; height: 14px; }
.pl3-page .btn.is-ai { background: #7C3AED; border-color: #7C3AED; color: #fff; }
.pl3-page .btn.is-ai:hover { background: #6D28D9; }
.pl3-page .pl3-hint { margin: 0; color: var(--iv-faint); font-size: 11px; line-height: 1.4; }

/* needs work lanes */
.pl3-page .pl3-lanes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 14px; }
.pl3-page .pl3-lane { display: grid; align-content: start; gap: 8px; min-width: 0; padding: 10px; border: 1px solid var(--iv-line-2); border-radius: 14px; background: #FAFBFA; }
.pl3-page .pl3-lane header { display: flex; align-items: center; gap: 6px; padding: 2px 4px 4px; font-size: 13px; }
.pl3-page .pl3-lane header svg.lucide { width: 15px; height: 15px; }
.pl3-page .pl3-lane header em { margin-left: auto; padding: 0 8px; border-radius: 999px; font-size: 11px; font-style: normal; font-weight: 800; }
.pl3-page .pl3-lane.is-rose header { color: #BE123C; } .pl3-page .pl3-lane.is-rose header em { background: #FFE4E6; }
.pl3-page .pl3-lane.is-amber header { color: #B45309; } .pl3-page .pl3-lane.is-amber header em { background: #FEF3C7; }
.pl3-page .pl3-lane.is-blue header { color: #1D4ED8; } .pl3-page .pl3-lane.is-blue header em { background: #DBEAFE; }
.pl3-page .pl3-lane.is-grey header { color: var(--iv-muted); } .pl3-page .pl3-lane.is-grey header em { background: #E5E7EB; }
.pl3-page .pl3-tcard { display: grid; gap: 10px; padding: 10px; border: 1px solid var(--iv-line); border-radius: 12px; background: #fff; cursor: pointer; }
.pl3-page .pl3-tcard:hover { border-color: #C9DED4; box-shadow: 0 6px 16px -12px rgba(16, 24, 40, .35); }
.pl3-page .pl3-tc-h { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; align-items: start; }
.pl3-page .pl3-tc-h b { display: -webkit-box; overflow: hidden; color: var(--iv-ink); font-size: 13px; line-height: 1.3; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pl3-page .pl3-tc-h small { display: block; margin-top: 3px; color: var(--iv-muted); font-size: 11.5px; }
.pl3-page .pl3-tc-a { display: flex; align-items: center; gap: 6px; }
.pl3-page .pl3-tc-a span { margin-left: auto; color: var(--iv-faint); font-size: 11px; white-space: nowrap; }
.pl3-page .btn.pl3-xs { display: inline-flex; align-items: center; gap: 4px; height: 26px; min-height: 0; padding: 0 9px; border-radius: 8px; font-size: 11.5px; }
.pl3-page .btn.pl3-xs svg.lucide { width: 12px; height: 12px; }
.pl3-page .pl3-lane-empty { display: flex; align-items: center; gap: 6px; margin: 0; padding: 14px 6px; color: var(--iv-faint); font-size: 12px; }
.pl3-page .pl3-lane-empty svg.lucide { width: 14px; height: 14px; color: var(--iv-em); }
.pl3-page .pl3-more { padding: 4px; border: 0; background: none; color: var(--iv-em); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }

/* freshness */
.pl3-page .pl3-split { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.pl3-page .pl3-heat { padding: 16px; min-width: 0; }
.pl3-page .pl3-hm { display: grid; grid-template-columns: 46px repeat(12, minmax(0, 1fr)); gap: 4px; align-items: center; color: var(--iv-muted); font-size: 11px; }
.pl3-page .pl3-hm-m { text-align: center; }
.pl3-page .pl3-hm-y { font-weight: 700; color: var(--iv-ink-2); }
.pl3-page .pl3-hm i { display: grid; place-items: center; height: 34px; border-radius: 7px; background: #F3F5F4; color: var(--iv-ink); font-size: 11px; font-style: normal; font-weight: 750; }
.pl3-page .pl3-hm i.is-future { background: repeating-linear-gradient(45deg, #F7F8F7 0 4px, #fff 4px 8px); }
.pl3-page .pl3-old { display: grid; align-content: start; gap: 0; padding: 16px; border-left: 1px solid var(--iv-line-2); min-width: 0; }
.pl3-page .pl3-orow { display: grid; grid-template-columns: minmax(0, 1fr) 110px 44px; gap: 10px; align-items: center; padding: 9px 0; border: 0; border-bottom: 1px solid var(--iv-line-2); background: none; font: inherit; font-size: 12.5px; text-align: left; cursor: pointer; }
.pl3-page .pl3-orow:hover b { color: var(--iv-em); }
.pl3-page .pl3-orow b { overflow: hidden; color: var(--iv-ink); text-overflow: ellipsis; white-space: nowrap; }
.pl3-page .pl3-orow .pl3-agebar { margin: 0; }
.pl3-page .pl3-orow small { color: var(--iv-faint); text-align: right; }
.pl3-page .pl3-old .btn { justify-self: start; margin-top: 12px; }
.pl3-page .pl3-lbl + .pl3-orow { margin-top: 6px; }

/* in pipeline */
.pl3-page .pl3-prow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px) 190px auto; gap: 14px; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--iv-line-2); }
.pl3-page .pl3-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px; }
.pl3-page .pl3-steps span { display: grid; gap: 5px; color: var(--iv-faint); font-size: 11px; }
.pl3-page .pl3-steps i { height: 5px; border-radius: 3px; background: #E5E9E7; }
.pl3-page .pl3-steps .is-done i { background: #10B981; }
.pl3-page .pl3-steps .is-now i { background: #3B82F6; }
.pl3-page .pl3-steps .is-now { color: #1D4ED8; font-weight: 700; }
.pl3-page .pl3-who { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 12px; }
.pl3-page .pl3-who b { display: block; color: var(--iv-ink); }
.pl3-page .pl3-who small { display: block; color: var(--iv-muted); font-size: 11px; }
.pl3-page .pl3-av, .pl3-modal .pl3-av { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #7C3AED; color: #fff; font-size: 10.5px; font-weight: 800; flex: 0 0 auto; }

/* empty */
.pl3-page .pl3-empty { padding: 28px 32px 32px; }
.pl3-page .pl3-empty h2 { margin: 6px 0 2px; color: var(--iv-ink); font-size: 20px; }
.pl3-page .pl3-steps3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.pl3-page .pl3-steps3 > div { padding: 18px; border: 1px dashed #CFE3D8; border-radius: 16px; background: #FAFDFB; }
.pl3-page .pl3-steps3 > div.is-later { opacity: .6; }
.pl3-page .pl3-steps3 i { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #ECFDF5; color: var(--iv-em); font-style: normal; font-weight: 800; }
.pl3-page .pl3-steps3 h4 { margin: 10px 0 4px; color: var(--iv-ink); }
.pl3-page .pl3-steps3 p { margin: 0 0 12px; color: var(--iv-muted); font-size: 12.5px; }
.pl3-page .pl3-pill { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border: 1px solid var(--iv-line); border-radius: 999px; color: var(--iv-muted); font-size: 12px; font-weight: 650; }
.pl3-page .pl3-pill.is-ok { border-color: #A7F3D0; background: #ECFDF5; color: #047857; }
.pl3-page .pl3-pill svg.lucide { width: 13px; height: 13px; }

/* send-to-writer dialog (appended to #view, not inside the page) */
.pl3-modal { align-items: center; }
.pl3-modal .pl3-dlg { width: min(620px, calc(100vw - 32px)); max-height: calc(100vh - 48px); display: flex; flex-direction: column; overflow: hidden; border-radius: 18px; background: #fff; box-shadow: 0 30px 60px -20px rgba(15, 23, 42, .45); color: #0B1F17; }
.pl3-modal header { display: flex; gap: 12px; justify-content: space-between; padding: 18px 20px 14px; border-bottom: 1px solid #EEF1EF; }
.pl3-modal header h3 { margin: 4px 0 2px; font-size: 18px; }
.pl3-modal header p { margin: 0; color: #61706A; font-size: 12.5px; }
.pl3-modal .pl3-lbl { display: inline-flex; align-items: center; gap: 6px; color: #047857; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pl3-modal .pl3-lbl svg.lucide { width: 14px; height: 14px; }
.pl3-modal .pl3-dlg-b { padding: 4px 20px 16px; overflow: auto; }
.pl3-modal .pl3-wlist { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pl3-modal .pl3-wcard { display: flex; align-items: center; gap: 10px; padding: 10px; border: 1px solid #E4E9E6; border-radius: 12px; background: #fff; font: inherit; text-align: left; cursor: pointer; min-width: 0; }
.pl3-modal .pl3-wcard > span:last-child { min-width: 0; }
.pl3-modal .pl3-wcard b { display: block; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.pl3-modal .pl3-wcard small { display: block; color: #61706A; font-size: 11.5px; }
.pl3-modal .pl3-wcard.is-on { border-color: #047857; background: #F2FBF6; box-shadow: 0 0 0 3px #D1FAE5; }
.pl3-modal .pl3-keep { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pl3-modal .pl3-keep div { padding: 10px; border-radius: 12px; background: #F7FAF8; color: #61706A; font-size: 12px; min-width: 0; }
.pl3-modal .pl3-keep b { display: block; margin-top: 2px; overflow: hidden; color: #0B1F17; font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.pl3-modal .pl3-brief { padding: 10px 12px; border: 1px solid #EEF1EF; border-radius: 12px; font-size: 12.5px; line-height: 1.5; }
.pl3-modal .pl3-brief .pl3-sev { margin-right: 6px; }
.pl3-modal footer { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 20px; border-top: 1px solid #EEF1EF; background: #FAFBFA; }
.pl3-modal footer .btn { display: inline-flex; align-items: center; gap: 6px; }
.pl3-modal footer .btn svg.lucide { width: 15px; height: 15px; }

@media (max-width: 1280px) {
  .pl3-page .pl3-hero { grid-template-columns: minmax(0, 1fr) minmax(300px, 40%); }
  .pl3-page .pl3-acts { flex-wrap: wrap; }
  .pl3-page .pl3-lanes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pl3-page .pl3-prow { grid-template-columns: minmax(0, 1fr) minmax(220px, 300px) auto; }
  .pl3-page .pl3-prow .pl3-who { display: none; }
}
@media (max-width: 1100px) {
  .pl3-page .pl3-hero { grid-template-columns: minmax(0, 1fr); }
  .pl3-page .pl3-layout { grid-template-columns: minmax(0, 1fr); }
  .pl3-page .pl3-rail { position: static; }
  .pl3-page .pl3-split { grid-template-columns: minmax(0, 1fr); }
  .pl3-page .pl3-old { border-left: 0; border-top: 1px solid var(--iv-line-2); }
}
@media (max-width: 760px) {
  .pl3-page .pl3-search { flex-basis: 100%; }
  .pl3-page .pl3-site { flex: 1 1 100%; }
  .pl3-page .pl3-acts .btn { flex: 1 1 0; justify-content: center; }
  .pl3-page .pl3-chips:not(.is-in) { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(-1 * var(--gr, 16px)); padding-right: var(--gr, 16px); }
  .pl3-page .pl3-chips::-webkit-scrollbar { display: none; }
  .pl3-page .pl3-hcard { grid-template-columns: 110px minmax(0, 1fr); }
  .pl3-page .pl3-donut { width: 110px; height: 110px; }
  .pl3-page .pl3-tablist { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .pl3-page .pl3-bar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .pl3-page .pl3-row { grid-template-columns: 40px minmax(0, 1fr) 16px; }
  .pl3-page .pl3-row > .pl3-age, .pl3-page .pl3-row > .pl3-where, .pl3-page .pl3-row > div:nth-child(5) { display: none; }
  .pl3-page .pl3-row.is-head { display: none; }
  .pl3-page .pl3-lanes { grid-template-columns: minmax(0, 1fr); }
  .pl3-page .pl3-prow { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .pl3-page .pl3-prow .btn { justify-self: start; }
  .pl3-page .pl3-hm { grid-template-columns: 34px repeat(12, minmax(0, 1fr)); gap: 2px; }
  .pl3-page .pl3-hm i { height: 26px; font-size: 9.5px; border-radius: 5px; }
  .pl3-page .pl3-steps3 { grid-template-columns: minmax(0, 1fr); }
  .pl3-page .pl3-empty { padding: 20px 16px; }
  .pl3-modal .pl3-wlist, .pl3-modal .pl3-keep { grid-template-columns: minmax(0, 1fr); }
}
.pl3-page .pl3-mini select, .pl3-page .pl3-site select, .pl3-page .pl3-wsel select { width: auto; padding-right: 24px; background-position: calc(100% - 12px) 50%, calc(100% - 7px) 50%; }
.pl3-page .pl3-site select { flex: 1 1 auto; min-width: 0; }
.pl3-page .pl3-mini select { max-width: 160px; }
.pl3-page .pl3-wsel select { flex: 1 1 auto; }
.pl3-page .pl3-tablist { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; min-width: 0; }
.pl3-page .pl3-tablist::-webkit-scrollbar { display: none; }
.pl3-page .pl3-tabs { flex-wrap: nowrap; }
.pl3-page .pl3-sort { flex: 0 0 auto; }
.pl3-page .pl3-search input { width: 100%; }
@media (max-width: 760px) {
  .pl3-page .pl3-tabs { flex-wrap: wrap; }
  .pl3-page .pl3-tablist { flex: 1 1 100%; }
  .pl3-page .pl3-sort { flex: 1 1 100%; }
  .pl3-page .pl3-sort select { flex: 1 1 auto; max-width: none; }
}

/* ── De-dupe v3 (2026-10-27) · scoped .dd3-page / .dd3-modal ───────────────────────────── */
.dd3-page { --dd-v: #6D28D9; --dd-v2: #8B5CF6; --dd-vs: #EDE9FE; }
.dd3-page .iv2-hero { background: radial-gradient(520px 220px at 0% 0%, rgba(11, 143, 90, .17), transparent 68%), radial-gradient(460px 220px at 70% -10%, rgba(124, 58, 237, .13), transparent 70%), linear-gradient(112deg, #E3F3EA, #EEF8F2 50%, #F1EEFB); }
.dd3-page .dd3-hrow { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 14px 20px; }
.dd3-page .dd3-hrow .iv2-intro { flex: 1 1 380px; min-width: 0; }
.dd3-page .dd3-ico { background: linear-gradient(135deg, #7C3AED, #047857) !important; box-shadow: 0 8px 18px -8px rgba(76, 29, 149, .6) !important; }
.dd3-page .dd3-scanbox { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 6px; border: 1px solid #fff; border-radius: 14px; background: rgba(255, 255, 255, .88); box-shadow: 0 14px 30px -22px rgba(16, 24, 40, .5); max-width: 100%; }
.dd3-page .dd3-site { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 8px 0 10px; margin: 0; border: 1px solid var(--iv-line); border-radius: 10px; background: #fff; color: var(--iv-ink-2); min-width: 0; }
.dd3-page .dd3-site svg.lucide { width: 15px; height: 15px; color: var(--iv-muted); flex: 0 0 auto; }
.dd3-page .dd3-site small { color: var(--iv-faint); font-size: 11.5px; }
.dd3-page .dd3-site select { width: auto; max-width: 220px; height: 32px; min-height: 0; padding: 0 24px 0 2px; border: 0; background-color: transparent; background-position: calc(100% - 12px) 50%, calc(100% - 7px) 50%; font: inherit; font-size: 13px; font-weight: 700; color: var(--iv-ink); cursor: pointer; }
.dd3-page .dd3-site select:focus { outline: none; }
.dd3-page .dd3-site:focus-within { border-color: var(--iv-em-2); box-shadow: 0 0 0 3px rgba(5, 150, 105, .14); }
.dd3-page .dd3-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; background: #94A3B8; }
.dd3-page .dd3-dot.is-ok { background: #10B981; box-shadow: 0 0 0 3px #D1FAE5; }
.dd3-page .dd3-dot.is-bad { background: #E11D48; box-shadow: 0 0 0 3px #FFE4E6; }
.dd3-page .dd3-dot.is-idle { background: #F59E0B; box-shadow: 0 0 0 3px #FEF3C7; }
.dd3-page .dd3-sens { display: inline-flex; gap: 2px; padding: 3px; border-radius: 10px; background: var(--iv-soft); }
.dd3-page .dd3-sens button { height: 30px; padding: 0 10px; border: 0; border-radius: 8px; background: none; color: var(--iv-muted); font: inherit; font-size: 12px; font-weight: 650; white-space: nowrap; cursor: pointer; }
.dd3-page .dd3-sens button em { margin-left: 3px; color: var(--iv-faint); font-style: normal; font-weight: 500; }
.dd3-page .dd3-sens button.is-on { background: #fff; color: var(--dd-v); box-shadow: 0 1px 2px rgba(0, 0, 0, .1); }
.dd3-page .dd3-scan, .dd3-page .dd3-sm, .dd3-modal .btn { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.dd3-page .dd3-scan { height: 36px; }
.dd3-page .btn svg.lucide, .dd3-modal .btn svg.lucide { width: 15px; height: 15px; }
.dd3-page .btn.dd3-sm { height: 30px; min-height: 0; padding: 0 10px; border-radius: 9px; font-size: 12px; }
.dd3-page .btn.dd3-sm svg.lucide { width: 13px; height: 13px; }
.dd3-page .btn.is-v, .dd3-modal .btn.is-v { background: var(--dd-v, #6D28D9); border-color: var(--dd-v, #6D28D9); color: #fff; }
.dd3-page .btn.is-v:hover, .dd3-modal .btn.is-v:hover { background: #5B21B6; }
.dd3-page .btn.is-warn { color: #B45309; border-color: #FCD9A8; }
.dd3-modal .btn.is-warnfill { background: #B45309; border-color: #B45309; color: #fff; }
.dd3-modal .btn:disabled { opacity: .5; cursor: not-allowed; }
.dd3-page .dd3-last { display: inline-flex; align-items: center; gap: 5px; padding: 0 6px; color: var(--iv-muted); font-size: 11.5px; white-space: nowrap; }
.dd3-page .dd3-last svg.lucide { width: 13px; height: 13px; }

.dd3-page .dd3-lbl, .dd3-modal .dd3-lbl { display: inline-flex; align-items: center; gap: 6px; color: var(--iv-em, #047857); font-size: 10.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.dd3-page .dd3-lbl svg.lucide, .dd3-modal .dd3-lbl svg.lucide { width: 14px; height: 14px; }
.dd3-page .dd3-lbl.is-v, .dd3-modal .dd3-lbl.is-v { color: #6D28D9; }
.dd3-modal .dd3-lbl.is-a { color: #B45309; }
.dd3-modal .dd3-lbl.is-r { color: #BE123C; }

.dd3-page .dd3-signal { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 14px; margin-top: 16px; }
.dd3-page .dd3-spec { padding: 14px 16px; border: 1px solid #fff; border-radius: 16px; background: rgba(255, 255, 255, .9); box-shadow: 0 14px 30px -24px rgba(16, 24, 40, .45); min-width: 0; }
.dd3-page .dd3-sbar { display: flex; height: 16px; margin: 12px 0 8px; overflow: hidden; border-radius: 999px; background: #EEF1EF; }
.dd3-page .dd3-sbar i { display: block; height: 100%; }
.dd3-page .dd3-scale { display: flex; justify-content: space-between; color: var(--iv-faint); font-size: 10.5px; }
.dd3-page .dd3-slegend { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.dd3-page .dd3-slegend div { color: var(--iv-muted); font-size: 11.5px; }
.dd3-page .dd3-slegend b { display: block; color: var(--iv-ink); font-size: 17px; }
.dd3-page .dd3-slegend span { display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 2px; }
.dd3-page .dd3-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.dd3-page .dd3-tile { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #fff; border-radius: 14px; background: rgba(255, 255, 255, .9); box-shadow: 0 10px 24px -22px rgba(16, 24, 40, .5); min-width: 0; }
.dd3-page .dd3-tile-ic { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; flex: 0 0 auto; }
.dd3-page .dd3-tile-ic svg.lucide { width: 16px; height: 16px; }
.dd3-page .dd3-tile b { display: block; font-size: 20px; line-height: 1.1; color: var(--iv-ink); font-variant-numeric: tabular-nums; }
.dd3-page .dd3-tile small { color: var(--iv-muted); font-size: 11.5px; }
.dd3-page .dd3-tile.is-violet .dd3-tile-ic { background: #EDE9FE; color: #6D28D9; }
.dd3-page .dd3-tile.is-rose .dd3-tile-ic { background: #FFE4E6; color: #BE123C; }
.dd3-page .dd3-tile.is-amber .dd3-tile-ic { background: #FEF3C7; color: #B45309; }
.dd3-page .dd3-tile.is-blue .dd3-tile-ic { background: #DBEAFE; color: #1D4ED8; }

/* body */
.dd3-page .dd3-body { display: grid; gap: 16px; }
.dd3-page .dd3-sp { flex: 1; }
.dd3-page .dd3-stage-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 12px 16px; border-bottom: 1px solid var(--iv-line-2); }
.dd3-page .dd3-stage-h h2 { margin: 0; font-size: 15px; color: var(--iv-ink); }
.dd3-page .dd3-verdict { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border: 1px solid; border-radius: 999px; font-size: 11.5px; font-weight: 750; }
.dd3-page .dd3-verdict svg.lucide { width: 13px; height: 13px; }
.dd3-page .dd3-verdict.is-v { background: #F5F3FF; border-color: #DDD6FE; color: #5B21B6; }
.dd3-page .dd3-verdict.is-r { background: #FFF1F2; border-color: #FECDD3; color: #BE123C; }
.dd3-page .dd3-verdict.is-a { background: #FFFBEB; border-color: #FDE68A; color: #B45309; }
.dd3-page .dd3-verdict.is-g { background: #F1F5F9; border-color: #E2E8F0; color: #475569; }
.dd3-page .dd3-nav { display: flex; align-items: center; gap: 6px; color: var(--iv-muted); font-size: 12px; }
.dd3-page .dd3-kbd { padding: 1px 6px; border: 1px solid var(--iv-line); border-bottom-width: 2px; border-radius: 5px; background: #fff; color: var(--iv-ink-2); font: 600 10.5px ui-monospace, monospace; }
.dd3-page .dd3-vs { display: grid; grid-template-columns: minmax(0, 1fr) 230px minmax(0, 1fr); align-items: stretch; padding: 18px 16px 8px; }
.dd3-page .dd3-pc { min-width: 0; padding: 14px 16px; border: 1.5px solid; border-radius: 16px; }
.dd3-page .dd3-pc.is-a { border-color: #A7F3D0; background: linear-gradient(180deg, #F2FBF6, #fff 60%); }
.dd3-page .dd3-pc.is-b { border-color: #FCD9A8; background: linear-gradient(180deg, #FFF8EE, #fff 60%); }
.dd3-page .dd3-role { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 999px; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.dd3-page .dd3-role svg.lucide { width: 13px; height: 13px; }
.dd3-page .dd3-pc.is-a .dd3-role { background: #D1FAE5; color: #047857; }
.dd3-page .dd3-pc.is-b .dd3-role { background: #FEF3C7; color: #B45309; }
.dd3-page .dd3-pc h3 { margin: 10px 0 4px; color: var(--iv-ink); font-size: 16px; line-height: 1.3; overflow-wrap: anywhere; }
.dd3-page .dd3-pc a { display: flex; align-items: center; gap: 5px; overflow: hidden; color: var(--iv-muted); font-size: 12px; text-decoration: none; white-space: nowrap; }
.dd3-page .dd3-pc a span { overflow: hidden; text-overflow: ellipsis; }
.dd3-page .dd3-pc a:hover { color: var(--iv-em); }
.dd3-page .dd3-pc a svg.lucide { width: 13px; height: 13px; }
.dd3-page .dd3-nourl { color: var(--iv-faint); font-size: 12px; }
.dd3-page .dd3-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.dd3-page .dd3-facts div { padding: 8px 10px; border: 1px solid var(--iv-line-2); border-radius: 10px; background: #fff; color: var(--iv-muted); font-size: 11px; min-width: 0; }
.dd3-page .dd3-facts b { display: block; color: var(--iv-ink); font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dd3-page .dd3-facts b.is-ok { color: #047857; }
.dd3-page .dd3-facts b.is-warn { color: #B45309; }
.dd3-page .dd3-snip { min-height: 54px; margin-top: 10px; padding: 10px 12px; border: 1px dashed var(--iv-line); border-radius: 10px; background: #fff; color: var(--iv-ink-2); font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.dd3-page .dd3-snip mark { padding: 0 2px; border-radius: 3px; background: #EDE9FE; color: #5B21B6; }
.dd3-page .dd3-skel { display: block; height: 10px; margin: 4px 0 8px; border-radius: 5px; background: linear-gradient(90deg, #F1F4F2, #E6ECE9, #F1F4F2); background-size: 200% 100%; animation: dd3-sh 1.2s infinite linear; }
.dd3-page .dd3-skel.is-short { width: 60%; }
@keyframes dd3-sh { to { background-position: -200% 0; } }
.dd3-page .dd3-muted { color: var(--iv-faint); }
.dd3-page .dd3-mid { display: grid; justify-items: center; align-content: center; gap: 8px; padding: 0 6px; text-align: center; }
.dd3-page .dd3-venn { --ov: 46px; position: relative; width: calc(200px - var(--ov)); height: 120px; }
.dd3-page .dd3-venn i { position: absolute; top: 10px; width: 100px; height: 100px; border-radius: 50%; }
.dd3-page .dd3-venn i.is-a { left: 0; background: rgba(16, 185, 129, .22); border: 2px solid #10B981; }
.dd3-page .dd3-venn i.is-b { right: 0; background: rgba(245, 158, 11, .2); border: 2px solid #F59E0B; }
.dd3-page .dd3-venn b { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: #5B21B6; font-size: 24px; font-weight: 850; text-shadow: 0 0 8px #fff, 0 0 2px #fff; }
.dd3-page .dd3-mid small { color: var(--iv-muted); font-size: 12px; }
.dd3-page .dd3-mid .dd3-shared { color: #5B21B6; font-weight: 650; font-size: 11.5px; }
.dd3-page .dd3-sig { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; }
.dd3-page .dd3-sig span { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; background: #EDE9FE; color: #5B21B6; font-size: 11px; font-weight: 700; }
.dd3-page .dd3-sig span svg.lucide { width: 12px; height: 12px; }
.dd3-page .dd3-sig span.is-off { background: #F1F4F2; color: var(--iv-faint); text-decoration: line-through; }
.dd3-page .dd3-decide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 12px 16px 16px; }
.dd3-page .dd3-dt { position: relative; display: grid; align-content: start; gap: 6px; padding: 12px 14px; border: 1px solid var(--iv-line); border-radius: 14px; background: #fff; }
.dd3-page .dd3-dt h4 { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 13.5px; color: var(--iv-ink-2); }
.dd3-page .dd3-dt h4 svg.lucide { width: 15px; height: 15px; }
.dd3-page .dd3-dt p { margin: 0; color: var(--iv-muted); font-size: 12px; }
.dd3-page .dd3-wp { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; color: var(--iv-em); }
.dd3-page .dd3-wp svg.lucide { width: 12px; height: 12px; }
.dd3-page .dd3-dt .btn { justify-self: start; margin-top: 4px; }
.dd3-page .dd3-dt.is-c { border-color: #C4B5FD; background: linear-gradient(180deg, #F7F4FF, #fff); }
.dd3-page .dd3-dt.is-c h4, .dd3-page .dd3-dt.is-c .dd3-wp { color: #5B21B6; }
.dd3-page .dd3-dt.is-d { border-color: #FCD9A8; }
.dd3-page .dd3-dt.is-d h4, .dd3-page .dd3-dt.is-d .dd3-wp { color: #B45309; }
.dd3-page .dd3-rec { position: absolute; top: -9px; right: 12px; padding: 2px 8px; border-radius: 999px; background: #5B21B6; color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.dd3-page .dd3-rec.is-g { background: #047857; }

/* all clear */
.dd3-page .dd3-clear { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 28px; align-items: center; padding: 32px 36px; }
.dd3-page .dd3-shield { display: grid; place-items: center; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, #ECFDF5 55%, #D1FAE5 56%, #D1FAE5 70%, #ECFDF5 71%); color: var(--iv-em); }
.dd3-page .dd3-shield svg.lucide { width: 64px; height: 64px; }
.dd3-page .dd3-clear h2 { margin: 4px 0 6px; color: var(--iv-ink); font-size: 22px; }
.dd3-page .dd3-clear p { margin: 0; color: var(--iv-muted); }
.dd3-page .dd3-hist, .dd3-modal .dd3-hist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.dd3-modal .dd3-hist.is-flush { margin: 0; }
.dd3-page .dd3-hist div, .dd3-modal .dd3-hist div { padding: 12px; border-radius: 12px; background: #F7FAF8; color: #61706A; font-size: 12px; }
.dd3-page .dd3-hist b, .dd3-modal .dd3-hist b { display: block; color: #0B1F17; font-size: 20px; }
.dd3-modal .dd3-hist b.is-ok { color: #047857; }
.dd3-page .dd3-row { display: flex; flex-wrap: wrap; gap: 8px; }
.dd3-page .dd3-row .btn { display: inline-flex; align-items: center; gap: 6px; }

/* queue */
.dd3-page .dd3-qh { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--iv-line-2); }
.dd3-page .dd3-qtabs { display: flex; gap: 4px; margin-left: 6px; }
.dd3-page .dd3-qtabs button { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border: 0; border-radius: 10px; background: none; color: var(--iv-muted); font: inherit; font-size: 13px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.dd3-page .dd3-qtabs button:hover { background: var(--iv-soft); color: var(--iv-ink); }
.dd3-page .dd3-qtabs button.is-on { background: #0B1F17; color: #fff; }
.dd3-page .dd3-qtabs em { padding: 0 7px; border-radius: 999px; background: #E2E8F0; color: #475569; font-size: 10.5px; font-style: normal; font-weight: 800; }
.dd3-page .dd3-qtabs button.is-on em { background: #8B5CF6; color: #fff; }
.dd3-page .dd3-mini { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 4px 0 10px; margin: 0; border: 1px solid var(--iv-line); border-radius: 9px; background: #fff; color: var(--iv-ink-2); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.dd3-page .dd3-mini svg.lucide { width: 14px; height: 14px; color: var(--iv-muted); }
.dd3-page .dd3-mini small { color: var(--iv-faint); font-weight: 500; font-size: 11.5px; }
.dd3-page .dd3-mini select { width: auto; height: 28px; min-height: 0; padding: 0 24px 0 0; border: 0; background-color: transparent; background-position: calc(100% - 12px) 50%, calc(100% - 7px) 50%; font: inherit; font-weight: 700; color: var(--iv-ink); cursor: pointer; }
.dd3-page .dd3-mini select:focus { outline: none; }
.dd3-page .dd3-mini:focus-within { border-color: var(--iv-em-2); box-shadow: 0 0 0 3px rgba(5, 150, 105, .14); }
.dd3-page .dd3-sorted { display: inline-flex; align-items: center; gap: 5px; color: var(--iv-faint); font-size: 12px; white-space: nowrap; }
.dd3-page .dd3-sorted svg.lucide { width: 13px; height: 13px; }
.dd3-page .dd3-queue td { vertical-align: middle; }
.dd3-page .dd3-queue tr[data-pair-row] { cursor: pointer; }
.dd3-page .dd3-queue tr.is-sel td { background: #F7F4FF !important; }
.dd3-page .dd3-queue tr.is-sel td:first-child { box-shadow: inset 3px 0 0 #7C3AED; }
.dd3-page .dd3-pt b { display: block; max-width: 320px; overflow: hidden; color: var(--iv-ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.dd3-page .dd3-pt small { display: block; max-width: 320px; overflow: hidden; color: var(--iv-faint); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.dd3-page .dd3-meter { display: flex; align-items: center; gap: 8px; min-width: 120px; }
.dd3-page .dd3-meter span { flex: 1; height: 6px; overflow: hidden; border-radius: 3px; background: #EEF1EF; }
.dd3-page .dd3-meter i { display: block; height: 100%; border-radius: 3px; }
.dd3-page .dd3-meter b { width: 36px; font-size: 12.5px; text-align: right; }
.dd3-page .dd3-chip { display: inline-flex; align-items: center; gap: 4px; margin: 1px 0; padding: 2px 8px; border-radius: 999px; background: #EDE9FE; color: #5B21B6; font-size: 11px; font-weight: 700; white-space: nowrap; }
.dd3-page .dd3-chip svg.lucide { width: 12px; height: 12px; }
.dd3-page .dd3-chip.is-t { background: #FEF3C7; color: #B45309; }
.dd3-page .dd3-chip.is-m { background: #DBEAFE; color: #1D4ED8; }
.dd3-page .dd3-st { padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.dd3-page .dd3-st.is-o { background: #FFF7ED; color: #C2410C; }
.dd3-page .dd3-st.is-r { background: #ECFDF5; color: #047857; }
.dd3-page .dd3-st.is-d { background: #F1F5F9; color: #475569; }
.dd3-page .dd3-when { color: var(--iv-muted); font-size: 12px; white-space: nowrap; }
.dd3-page .dd3-none { padding: 28px 16px !important; color: var(--iv-muted); text-align: center; }
.dd3-page .dd3-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 14px; color: var(--iv-muted); font-size: 12px; }
.dd3-page .dd3-pager { display: flex; align-items: center; gap: 6px; }

/* dialogs (appended to #dedupe-modal-container, outside .dd3-page) */
.dd3-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 16px; background: rgba(11, 31, 23, .45); backdrop-filter: blur(2px); }
.dd3-modal .dd3-dlg { display: flex; flex-direction: column; width: min(600px, 100%); max-height: calc(100vh - 32px); overflow: hidden; border-radius: 18px; background: #fff; color: #0B1F17; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .4); }
.dd3-modal header { position: relative; padding: 18px 48px 12px 20px; border-bottom: 1px solid #EEF1EF; }
.dd3-modal header h3 { margin: 4px 0 2px; font-size: 18px; }
.dd3-modal header p { margin: 0; color: #61706A; font-size: 12.5px; }
.dd3-modal .dd3-x { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 8px; background: none; color: #61706A; cursor: pointer; }
.dd3-modal .dd3-x:hover { background: #F1F4F2; }
.dd3-modal .dd3-x svg.lucide { width: 16px; height: 16px; }
.dd3-modal .dd3-dlg-b { display: grid; gap: 12px; padding: 16px 20px; overflow: auto; }
.dd3-modal footer { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 20px; border-top: 1px solid #EEF1EF; background: #FAFBFA; }
.dd3-modal .dd3-flow { display: grid; grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr); align-items: center; gap: 6px; }
.dd3-modal .dd3-flow > span { display: grid; place-items: center; color: #7C3AED; }
.dd3-modal .dd3-flow > div { min-width: 0; padding: 10px 12px; border: 1px solid #E4E9E6; border-radius: 12px; font-size: 12px; }
.dd3-modal .dd3-flow > div.is-a { border-color: #A7F3D0; background: #F2FBF6; }
.dd3-modal .dd3-flow b { display: block; font-size: 13px; overflow-wrap: anywhere; }
.dd3-modal .dd3-flow small { display: block; color: #61706A; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dd3-modal .dd3-code { padding: 10px 12px; overflow: auto; border-radius: 10px; background: #0B1F17; color: #D1FAE5; font: 12px/1.5 ui-monospace, Menlo, monospace; overflow-wrap: anywhere; }
.dd3-modal .dd3-code em { color: #C4B5FD; font-style: normal; }
.dd3-modal .dd3-code span { color: #98A39E; }
.dd3-modal .dd3-warn { display: flex; gap: 8px; padding: 10px 12px; border: 1px solid #FDE68A; border-radius: 10px; background: #FFFBEB; color: #92400E; font-size: 12px; }
.dd3-modal .dd3-warn svg.lucide { width: 15px; height: 15px; flex: 0 0 auto; margin-top: 1px; }
.dd3-modal .dd3-check { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 10px 12px; border-radius: 10px; background: #F7FAF8; font-size: 12.5px; font-weight: 500; cursor: pointer; }
.dd3-modal .dd3-check.is-r { background: #FFF1F2; }
.dd3-modal .dd3-check input { width: 16px; height: 16px; margin: 1px 0 0; accent-color: #047857; flex: 0 0 auto; }
.dd3-modal .dd3-ulist { max-height: 220px; overflow: auto; border: 1px solid #EEF1EF; border-radius: 12px; }
.dd3-modal .dd3-ulist div { padding: 8px 12px; border-bottom: 1px solid #EEF1EF; font-size: 12px; }
.dd3-modal .dd3-ulist small { display: block; color: #BE123C; font: 11px ui-monospace, monospace; overflow-wrap: anywhere; }
.dd3-modal .dd3-muted { color: #98A39E; }

@media (max-width: 1280px) {
  .dd3-page .dd3-signal { grid-template-columns: minmax(0, 1fr); }
  .dd3-page .dd3-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .dd3-page .dd3-vs { grid-template-columns: minmax(0, 1fr) 190px minmax(0, 1fr); }
}
@media (max-width: 1000px) {
  .dd3-page .dd3-vs { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .dd3-page .dd3-mid { order: -1; grid-template-columns: auto minmax(0, 1fr); justify-items: start; text-align: left; gap: 4px 12px; }
  .dd3-page .dd3-venn { grid-row: 1 / 4; transform: scale(.7); transform-origin: left center; margin-right: -40px; }
  .dd3-page .dd3-sig { justify-content: flex-start; }
  .dd3-page .dd3-decide { grid-template-columns: minmax(0, 1fr); }
  .dd3-page .dd3-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .dd3-page .dd3-scanbox { width: 100%; }
  .dd3-page .dd3-site { flex: 1 1 100%; }
  .dd3-page .dd3-site select { flex: 1 1 auto; width: 100%; min-width: 0; max-width: none; }
  .dd3-page .dd3-queue th:nth-child(6), .dd3-page .dd3-queue td:nth-child(6) { padding-left: 4px; }
  .dd3-page .dd3-pt b, .dd3-page .dd3-pt small { max-width: 105px; }
  .dd3-page .dd3-sens { flex: 1 1 100%; }
  .dd3-page .dd3-sens button { flex: 1; padding: 0 4px; }
  .dd3-page .dd3-scan { flex: 1 1 auto; justify-content: center; }
  .dd3-page .dd3-slegend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dd3-page .dd3-stage-h .dd3-verdict { order: 5; flex: 1 1 100%; justify-content: center; }
  .dd3-page .dd3-stage-h .dd3-sp, .dd3-page .dd3-kbd, .dd3-page .dd3-nav > span:first-child { display: none; }
  .dd3-page .dd3-nav { margin-left: auto; }
  .dd3-page .dd3-vs { padding: 12px; }
  .dd3-page .dd3-snip { display: none; }
  .dd3-page .dd3-decide { padding: 12px; }
  .dd3-page .dd3-clear { grid-template-columns: minmax(0, 1fr); padding: 20px 16px; justify-items: start; }
  .dd3-page .dd3-shield { width: 110px; height: 110px; }
  .dd3-page .dd3-shield svg.lucide { width: 40px; height: 40px; }
  .dd3-page .dd3-hist { grid-template-columns: minmax(0, 1fr); }
  .dd3-page .dd3-qtabs { flex: 1 1 100%; margin: 0; overflow-x: auto; scrollbar-width: none; }
  .dd3-page .dd3-sorted { display: none; }
  .dd3-page .dd3-queue th:nth-child(2), .dd3-page .dd3-queue td:nth-child(2), .dd3-page .dd3-queue th:nth-child(4), .dd3-page .dd3-queue td:nth-child(4), .dd3-page .dd3-queue th:nth-child(5), .dd3-page .dd3-queue td:nth-child(5) { display: none; }
  .dd3-page .dd3-pt b, .dd3-page .dd3-pt small { max-width: 150px; }
  .dd3-page .dd3-meter { min-width: 64px; }
  .dd3-page .dd3-queue table { min-width: 0 !important; table-layout: auto; }
  .dd3-page .dd3-queue th, .dd3-page .dd3-queue td { padding-left: 10px; padding-right: 10px; }
  .dd3-modal .dd3-flow { grid-template-columns: minmax(0, 1fr); }
  .dd3-modal .dd3-flow > span { transform: rotate(90deg); }
  .dd3-modal .dd3-hist { grid-template-columns: minmax(0, 1fr); }
}

/* ── Seasonal v3 (2026-10-29) · scoped .ss3-page ─────────────────────────────────────────
   Amber identity: 60-day exam ribbon in the hero, Campaign Watch grouped by urgency, opened
   campaign with readiness checklist + work-back timeline, Seasonal jobs and Templates tabs. */
.ss3-page { --ss-amber: #D97706; --ss-amber-2: #F59E0B; --ss-amber-soft: #FFFBEB; --ss-amber-line: #FDE68A; }
.ss3-page .ss3-hero {
  background:
    radial-gradient(520px 240px at 0% 0%, rgba(245, 158, 11, .20), transparent 68%),
    radial-gradient(420px 200px at 55% -20%, rgba(11, 143, 90, .12), transparent 70%),
    radial-gradient(520px 260px at 95% 0%, rgba(59, 130, 246, .10), transparent 66%),
    linear-gradient(112deg, #FDF3DF 0%, #F4F8EE 50%, #EEF3FB 100%);
}
.ss3-page .ss3-hero::before { background-image: radial-gradient(rgba(217, 119, 6, .18) 1px, transparent 1.3px); }
.ss3-page .ss3-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: 18px 24px; align-items: start; }
.ss3-page .ss3-ico { background: linear-gradient(135deg, #FBBF24, #D97706); box-shadow: 0 10px 20px -12px rgba(217, 119, 6, .9); }
.ss3-page .ss3-pill { color: #B45309; border-color: rgba(245, 158, 11, .4); }
.ss3-page .ss3-acts { display: flex; gap: 8px; margin-top: 14px; }
.ss3-page .ss3-acts .btn { display: inline-flex; align-items: center; gap: 6px; height: 38px; }
.ss3-page .ss3-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ss3-page .iv2-stat.is-red .iv2-stat-ic { background: #FFE4E6; color: #BE123C; }
.ss3-page .iv2-stat.is-green .iv2-stat-ic { background: #DCFCE7; color: #047857; }
.ss3-page .ss3-ribbon { background: #fff; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); box-shadow: var(--iv-shadow); padding: 14px 18px 12px; min-width: 0; }
.ss3-page .ss3-lbl { display: flex; align-items: center; gap: 6px; color: #B45309; font-size: 10.5px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.ss3-page .ss3-track { position: relative; height: 104px; margin: 6px 6px 0; }
.ss3-page .ss3-track.is-empty { height: 70px; }
.ss3-page .ss3-track.is-empty p { position: absolute; top: 58px; left: 0; margin: 0; font-size: 12px; }
.ss3-page .ss3-line { position: absolute; left: 0; right: 0; top: 50px; height: 4px; border-radius: 99px; background: linear-gradient(90deg, #FDE68A, #E4E9E6); }
.ss3-page .ss3-today { position: absolute; top: 42px; left: 0; transform: translateX(-30%); z-index: 2; font-size: 10.5px; font-weight: 800; color: #fff; background: var(--iv-ink); border-radius: 6px; padding: 2px 6px; }
.ss3-page .ss3-wk { position: absolute; top: 88px; transform: translateX(-50%); font-size: 10.5px; font-weight: 600; color: var(--iv-faint); white-space: nowrap; }
.ss3-page .ss3-wk::before { content: ""; position: absolute; left: 50%; top: -34px; width: 1px; height: 6px; background: #D1D9D5; }
.ss3-page .ss3-pin { position: absolute; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; padding: 0; border: 0; background: none; cursor: pointer; font: inherit; color: #98A39E; }
.ss3-page .ss3-pin.is-up { top: 20px; }
.ss3-page .ss3-pin.is-down { top: 44px; flex-direction: column-reverse; }
.ss3-page .ss3-pin.is-ready { color: #047857; } .ss3-page .ss3-pin.is-partial { color: var(--ss-amber); } .ss3-page .ss3-pin.is-none { color: #BE123C; }
.ss3-page .ss3-nm { font-size: 10.5px; font-weight: 700; color: var(--iv-ink); white-space: nowrap; background: rgba(255, 255, 255, .92); border-radius: 6px; padding: 1px 5px; margin-bottom: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
.ss3-page .ss3-pin.is-down .ss3-nm { margin: 4px 0 0; }
.ss3-page .ss3-dot { width: 16px; height: 16px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 1.5px currentColor; background: currentColor; }
.ss3-page .ss3-dot.is-tent { background: #fff; }
.ss3-page .ss3-pin:hover .ss3-nm, .ss3-page .ss3-pin:focus-visible .ss3-nm { background: var(--iv-ink); color: #fff; }
.ss3-page .ss3-pin:focus-visible { outline: none; }
.ss3-page .ss3-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 11.5px; color: var(--iv-muted); }
.ss3-page .ss3-legend span { display: inline-flex; align-items: center; gap: 5px; }
.ss3-page .ss3-legend i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.ss3-page .ss3-legend .is-ready { background: #047857; } .ss3-page .ss3-legend .is-partial { background: var(--ss-amber); } .ss3-page .ss3-legend .is-none { background: #BE123C; }
.ss3-page .ss3-legend .is-tent { background: #fff; box-shadow: 0 0 0 1.5px var(--iv-muted); }

.ss3-page .ss3-tabs { display: flex; gap: 4px; padding: 8px; background: #fff; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); box-shadow: var(--iv-shadow); overflow-x: auto; }
.ss3-page .ss3-tab { display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px; border: 0; border-radius: 10px; background: none; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--iv-ink-2); cursor: pointer; white-space: nowrap; }
.ss3-page .ss3-tab:hover { background: var(--iv-soft); }
.ss3-page .ss3-tab.is-on { background: var(--iv-ink); color: #fff; }
.ss3-page .ss3-n { font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: var(--iv-soft); color: var(--iv-muted); }
.ss3-page .ss3-n:empty { display: none; }
.ss3-page .ss3-tab.is-on .ss3-n { background: rgba(255, 255, 255, .18); color: #fff; }

.ss3-page .ss3-wrap { display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 1fr); gap: 14px; align-items: start; }
.ss3-page .ss3-watch { padding: 0 0 8px; overflow: hidden; }
.ss3-page .ss3-watch-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px 6px; }
.ss3-page .ss3-watch-h h2, .ss3-page .ss3-panel-h h2 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; }
.ss3-page .ss3-find { display: flex; align-items: center; gap: 6px; height: 32px; width: 150px; padding: 0 9px; border: 1px solid var(--iv-line); border-radius: 9px; color: var(--iv-faint); }
.ss3-page .ss3-find input { border: 0; outline: none; min-width: 0; width: 100%; font: inherit; font-size: 12.5px; background: none; padding: 0; height: auto; min-height: 0; }
.ss3-page .ss3-grp { display: flex; align-items: center; gap: 8px; padding: 12px 16px 4px; font-size: 10.5px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; color: var(--iv-muted); }
.ss3-page .ss3-grp.is-soon { color: #BE123C; }
.ss3-page .sessional-watch { display: block; margin: 0; }
.ss3-page .sessional-watch-row { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; width: calc(100% - 20px); margin: 4px 10px; padding: 10px 12px; border: 1px solid transparent; border-radius: 12px; background: none; font: inherit; text-align: left; color: inherit; cursor: pointer; }
.ss3-page .sessional-watch-row:hover { background: var(--iv-soft); }
.ss3-page .sessional-watch-row.is-open { background: var(--ss-amber-soft); border-color: var(--ss-amber-line); box-shadow: inset 3px 0 0 var(--ss-amber-2); }
.ss3-page .sessional-when { display: grid; place-content: center; width: 56px; height: 56px; border-radius: 14px; background: var(--iv-soft); text-align: center; line-height: 1; }
.ss3-page .sessional-when b { display: block; font-size: 20px; font-weight: 800; }
.ss3-page .sessional-when span { font-size: 10px; font-weight: 700; color: var(--iv-muted); }
.ss3-page .sessional-when.is-hot { background: linear-gradient(135deg, #FEE2E2, #FECACA); } .ss3-page .sessional-when.is-hot b { color: #BE123C; }
.ss3-page .sessional-when.is-warm { background: #FEF3C7; } .ss3-page .sessional-when.is-warm b { color: #B45309; }
.ss3-page .ss3-wt { min-width: 0; display: grid; gap: 3px; }
.ss3-page .ss3-wt strong { font-size: 13.5px; }
.ss3-page .ss3-wm { font-size: 11.5px; color: var(--iv-muted); }
.ss3-page .sessional-bar { position: relative; display: block; height: 6px; margin-top: 4px; border-radius: 999px; background: #EEF1EF; overflow: hidden; }
.ss3-page .sessional-bar i { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: var(--ss-amber-2); }
.ss3-page .sessional-bar.is-ready i { background: #10B981; }
.ss3-page .ss3-noplan { justify-self: start; margin-top: 2px; padding: 1px 8px; border-radius: 999px; background: #FDE8EA; color: #BE123C; font-size: 11px; font-weight: 700; }
.ss3-page .sessional-progress { display: grid; text-align: right; }
.ss3-page .sessional-progress strong { font-size: 12.5px; font-weight: 800; }
.ss3-page .sessional-progress span { font-size: 10.5px; font-weight: 600; color: var(--iv-faint); }
.ss3-page .ss3-pick { padding: 20px; }

.ss3-page .ss3-det { padding: 18px; gap: 14px; }
.ss3-page .ss3-det-top { display: flex; gap: 16px; align-items: center; }
.ss3-page .ss3-big { flex: 0 0 auto; display: grid; place-content: center; width: 86px; height: 86px; border-radius: 20px; background: linear-gradient(135deg, #F59E0B, #D97706); color: #fff; text-align: center; line-height: 1; box-shadow: 0 14px 24px -14px rgba(217, 119, 6, .9); }
.ss3-page .ss3-big.is-hot { background: linear-gradient(135deg, #FB7185, #BE123C); box-shadow: 0 14px 24px -14px rgba(190, 18, 60, .9); }
.ss3-page .ss3-big b { font-size: 34px; } .ss3-page .ss3-big span { font-size: 10px; font-weight: 700; opacity: .9; margin-top: 4px; }
.ss3-page .ss3-det-t { flex: 1; min-width: 0; }
.ss3-page .ss3-path { font-size: 10.5px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; color: var(--iv-muted); }
.ss3-page .ss3-det h2 { margin: 2px 0 0; font-size: 22px; letter-spacing: -.02em; }
.ss3-page .ss3-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.ss3-page .ss3-tags .badge { display: inline-flex; align-items: center; gap: 4px; }
.ss3-page .ss3-det-a { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.ss3-page .ss3-det-a .btn, .ss3-page .ss3-wb-a .btn, .ss3-page .ss3-panel-h .btn { display: inline-flex; align-items: center; gap: 6px; }
.ss3-page .ss3-amber { background: var(--ss-amber); border-color: var(--ss-amber); color: #fff; }
.ss3-page .ss3-amber:hover { background: #B45309; border-color: #B45309; }
.ss3-page .ss3-amber:disabled { background: #FDE7C2; border-color: #FDE7C2; color: #92400E; }
.ss3-page .ss3-checks { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.ss3-page .ss3-ck { display: grid; gap: 4px; padding: 10px; border: 1px solid var(--iv-line); border-radius: 12px; }
.ss3-page .ss3-ck-h { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; }
.ss3-page .ss3-ck small { font-size: 11.5px; color: var(--iv-muted); overflow-wrap: anywhere; }
.ss3-page .ss3-ck.is-ok { background: #F0FAF4; border-color: #CDEBD9; } .ss3-page .ss3-ck.is-ok .ss3-ck-h { color: #047857; }
.ss3-page .ss3-ck.is-warn { background: var(--ss-amber-soft); border-color: var(--ss-amber-line); } .ss3-page .ss3-ck.is-warn .ss3-ck-h { color: #B45309; }
.ss3-page .ss3-ck.is-bad { background: #FFF1F2; border-color: #FECDD3; } .ss3-page .ss3-ck.is-bad .ss3-ck-h { color: #BE123C; }

.ss3-page .ss3-wb { border: 1px solid var(--iv-line); border-radius: 14px; padding: 14px 16px; }
.ss3-page .ss3-wb-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.ss3-page .ss3-wb-h h3 { margin: 0; font-size: 14px; } .ss3-page .ss3-wb-h p { margin: 2px 0 0; font-size: 12px; }
.ss3-page .ss3-wb-a { display: flex; gap: 8px; flex-wrap: wrap; }
.ss3-page .ss3-wb-empty { margin: 4px 0 0; }
.ss3-page .ss3-wbt { position: relative; height: 150px; margin: 0 26px 0 6px; }
.ss3-page .ss3-ax { position: absolute; left: 0; right: 0; bottom: 26px; height: 2px; background: var(--iv-line); }
.ss3-page .ss3-tk { position: absolute; bottom: 4px; transform: translateX(-50%); font-size: 10.5px; font-weight: 700; color: var(--iv-faint); white-space: nowrap; }
.ss3-page .ss3-tk::before { content: ""; position: absolute; left: 50%; top: -12px; width: 1px; height: 8px; background: #C9D3CE; }
.ss3-page .ss3-ev { position: absolute; right: 0; bottom: 4px; transform: translateX(50%); display: grid; justify-items: center; gap: 2px; }
.ss3-page .ss3-ev i { width: 20px; height: 20px; border-radius: 50%; background: var(--ss-amber-2); box-shadow: 0 0 0 5px rgba(245, 158, 11, .2); }
.ss3-page .ss3-ev span { font-size: 10.5px; font-weight: 800; color: #B45309; }
.ss3-page .ss3-now { position: absolute; top: 110px; bottom: 22px; border-left: 2px dashed var(--iv-ink); }
.ss3-page .ss3-now span { position: absolute; bottom: -2px; left: 4px; font-size: 10px; font-weight: 800; background: var(--iv-ink); color: #fff; border-radius: 5px; padding: 1px 5px; white-space: nowrap; }
.ss3-page .ss3-bp { position: absolute; transform: translateX(-50%); width: 160px; max-width: 34%; padding: 7px 9px; border: 1px solid var(--iv-line); border-radius: 10px; background: #fff; box-shadow: 0 4px 12px -8px rgba(0, 0, 0, .25); font-size: 11.5px; }
.ss3-page .ss3-bp.row-0 { top: 4px; } .ss3-page .ss3-bp.row-1 { top: 56px; }
.ss3-page .ss3-bp b { display: block; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ss3-page .ss3-bp span { color: var(--iv-muted); } .ss3-page .ss3-bp a { color: #047857; font-weight: 700; }
.ss3-page .ss3-bp.is-done { background: #F0FAF4; border-color: #A7E3C4; }
.ss3-page .ss3-bp.is-late { background: #FFF1F2; border-color: #FECDD3; }
.ss3-page .ss3-bp::after { content: ""; position: absolute; left: 50%; bottom: -9px; width: 2px; height: 8px; background: #C9D3CE; }
.ss3-page .ss3-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; margin: 0; padding: 0; }

.ss3-page .ss3-ctx { display: grid; grid-template-columns: .8fr 1.5fr 1.1fr; gap: 12px; }
.ss3-page .ss3-ctx section { padding: 12px 14px; border: 1px solid var(--iv-line); border-radius: 14px; background: #fff; min-width: 0; }
.ss3-page .ss3-ctx h3 { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; font-size: 10.5px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; color: var(--iv-muted); }
.ss3-page .ss3-cat { display: inline-flex; align-items: center; gap: 6px; margin: 0 6px 6px 0; padding: 5px 10px; border-radius: 10px; background: #F0FAF4; border: 1px solid #CDEBD9; color: #047857; font-size: 12px; font-weight: 700; }
.ss3-page .ss3-cat.is-sub { background: #fff; color: var(--iv-ink-2); border-color: var(--iv-line); }
.ss3-page .ss3-kw { display: grid; grid-template-columns: minmax(0, 1fr) 44px 46px; gap: 8px; align-items: center; padding: 5px 0; border-bottom: 1px solid var(--iv-line-2); font-size: 12.5px; }
.ss3-page .ss3-kw > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ss3-page .ss3-kd { height: 5px; border-radius: 99px; background: #EEF1EF; overflow: hidden; }
.ss3-page .ss3-kd i { display: block; height: 100%; background: #10B981; }
.ss3-page .ss3-kd.is-mid i { background: var(--ss-amber-2); } .ss3-page .ss3-kd.is-hard i { background: #E11D48; }
.ss3-page .ss3-post { display: flex; gap: 8px; align-items: flex-start; padding: 6px 0; border-bottom: 1px solid var(--iv-line-2); font-size: 12.5px; }
.ss3-page .ss3-post:last-child { border-bottom: 0; }
.ss3-page .ss3-post b { display: block; }
.ss3-page .ss3-post a { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--iv-muted); }

.ss3-page .ss3-panel { padding: 0 0 8px; }
.ss3-page .ss3-panel-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 14px 16px; }
.ss3-page .ss3-panel-h p { margin: 4px 0 0; font-size: 12.5px; max-width: 760px; }
.ss3-page code { font-family: ui-monospace, monospace; font-size: 11.5px; background: var(--ss-amber-soft); color: #92400E; border-radius: 4px; padding: 0 4px; }
.ss3-page .ss3-jobs { padding: 0 16px; }
.ss3-page .ss3-job { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--iv-line-2); }
.ss3-page .ss3-job:last-child { border-bottom: 0; }
.ss3-page .ss3-job-t { font-weight: 700; font-size: 13.5px; color: var(--iv-ink); }
.ss3-page .ss3-job .muted { font-size: 11.5px; margin-top: 2px; }
.ss3-page .ss3-job-g .badge { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.ss3-page .ss3-ph { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ss3-page .ss3-ph span { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border: 1px dashed var(--ss-amber-2); border-radius: 8px; background: var(--ss-amber-soft); color: #92400E; font-family: ui-monospace, monospace; font-size: 11.5px; font-weight: 700; }
.ss3-page .ss3-fill { display: flex; gap: 6px; margin-top: 8px; max-width: 640px; }
.ss3-page .ss3-fill select, .ss3-page .ss3-fill input, .ss3-page .ss3-fill .btn { height: 36px; min-height: 0; }
.ss3-page .ss3-fill select { max-width: 180px; }
.ss3-page .ss3-job-t, .ss3-page .ss3-post a, .ss3-page .ss3-tags a { text-decoration: none; }
.ss3-page .ss3-fill input { flex: 1; min-width: 0; }
.ss3-page .ss3-tpls { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; padding: 0 16px 8px; }
.ss3-page .ss3-tpl { padding: 12px; border: 1px solid var(--iv-line); border-radius: 12px; min-width: 0; }
.ss3-page .ss3-tpl-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ss3-page .ss3-tpl pre { margin: 8px 0 0; padding: 8px; border-radius: 8px; background: #FAFBFA; font-family: ui-monospace, monospace; font-size: 11.5px; color: var(--iv-ink-2); white-space: pre-wrap; overflow-wrap: anywhere; max-height: 180px; overflow: auto; }
.ss3-page .ss3-tpl pre em { font-style: normal; background: #FEF3C7; color: #92400E; border-radius: 4px; padding: 0 3px; }

@media (max-width: 1180px) {
  .ss3-page .ss3-head { grid-template-columns: 1fr; }
  .ss3-page .ss3-wrap { grid-template-columns: 1fr; }
  .ss3-page .ss3-checks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .ss3-page .ss3-ribbon { padding: 12px; }
  .ss3-page .ss3-nm { display: none; }
  .ss3-page .ss3-det-top { flex-wrap: wrap; }
  .ss3-page .ss3-det-t { flex: 1 1 calc(100% - 110px); }
  .ss3-page .ss3-det-a { justify-content: flex-start; }
  .ss3-page .ss3-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ss3-page .ss3-ctx { grid-template-columns: 1fr; }
  .ss3-page .ss3-wbt { display: none; }
  .ss3-page .ss3-sr { position: static !important; width: auto; height: auto; clip: auto; white-space: normal; padding-left: 18px; display: grid; gap: 6px; font-size: 12.5px; }
  .ss3-page .ss3-job { grid-template-columns: 1fr; }
  .ss3-page .ss3-fill { flex-wrap: wrap; }
  .ss3-page .ss3-fill select { max-width: none; flex: 1 1 100%; }
  .ss3-page .ss3-find { width: 120px; }
}


/* ── Conexus v3 (2026-10-29) · scoped .cx3-page ─────────────────────────────────────────
   Violet "link journey" identity: hero with KPI chips + journey funnel, numbered journey tabs,
   Overview rail, Prospects split view, link-idea cards, Gmail-style composer, deal board.
   Builds on .iv2-page / .cnx-page (Link Health + repair queue styles above are untouched). */
.cx3-page { --cx-violet: #7C3AED; --cx-violet-2: #8B5CF6; --cx-violet-soft: #F5F3FF; --cx-violet-line: #DDD6FE; }
.cx3-page .cx3-hero {
  background:
    radial-gradient(520px 240px at 0% 0%, rgba(124, 58, 237, .18), transparent 68%),
    radial-gradient(420px 200px at 55% -20%, rgba(59, 130, 246, .12), transparent 70%),
    radial-gradient(520px 260px at 95% 0%, rgba(16, 185, 129, .10), transparent 66%),
    linear-gradient(112deg, #F5F3FF 0%, #EEF2FF 50%, #F0FDF4 100%);
}
.cx3-page .cx3-hero::before { background-image: radial-gradient(rgba(124, 58, 237, .18) 1px, transparent 1.3px); }
.cx3-page .cx3-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: 18px 24px; align-items: start; }
.cx3-page .cx3-ico { background: linear-gradient(135deg, #A78BFA, #7C3AED); box-shadow: 0 10px 20px -12px rgba(124, 58, 237, .9); }
.cx3-page .cx3-hpill { color: #6D28D9; border-color: rgba(139, 92, 246, .4); }
.cx3-page .cx3-acts { display: flex; gap: 8px; margin-top: 14px; }
.cx3-page .cx3-acts .btn { display: inline-flex; align-items: center; gap: 6px; height: 38px; }
.cx3-page .cx3-violet { background: #7C3AED !important; color: #fff !important; border-color: #7C3AED !important; }
.cx3-page .cx3-violet:hover { background: #6D28D9 !important; border-color: #6D28D9 !important; }
.cx3-page .cx3-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.cx3-page .cx3-chips .iv2-stat { background: #fff; border: 1px solid var(--iv-line); border-radius: 99px; padding: 4px 10px; font-size: 11.5px; display: inline-flex; align-items: center; gap: 6px; }
.cx3-page .cx3-chips .iv2-stat-ic { width: 18px; height: 18px; border-radius: 99px; display: inline-grid; place-items: center; font-size: 10px; }
.cx3-page .cx3-chips .iv2-stat-ic svg { width: 11px; height: 11px; }
.cx3-page .cx3-journey { background: #fff; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); box-shadow: var(--iv-shadow); padding: 14px 18px 12px; min-width: 0; }
.cx3-page .cx3-lbl { display: flex; align-items: center; gap: 6px; color: #6D28D9; font-size: 10.5px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.cx3-page .cx3-jrow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 8px; align-items: end; height: 110px; }
.cx3-page .cx3-jst { display: flex; flex-direction: column; align-items: center; text-align: center; font-size: 11px; }
.cx3-page .cx3-jst em { font-style: normal; font-size: 10px; color: #6D28D9; font-weight: 700; margin-bottom: 2px; }
.cx3-page .cx3-jcol { width: 100%; max-width: 36px; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, #A78BFA, #7C3AED); }
.cx3-page .cx3-jst.is-deal .cx3-jcol { background: linear-gradient(180deg, #FBBF24, #D97706); }
.cx3-page .cx3-jst.is-live .cx3-jcol { background: linear-gradient(180deg, #34D399, #059669); }
.cx3-page .cx3-jst b { font-size: 13px; font-weight: 800; margin-top: 4px; }
.cx3-page .cx3-jst span { font-size: 10.5px; color: var(--iv-muted); }
.cx3-page .cx3-jfoot { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--iv-line); font-size: 11px; color: var(--iv-muted); }
.cx3-page .cx3-jfoot b { color: var(--iv-ink); }
.cx3-page .cx3-jfoot .is-bad { color: #BE123C; }

.cx3-page .cx3-tabs { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.cx3-page .cx3-step { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 99px; background: #EDE9FE; color: #6D28D9; font-size: 10px; font-weight: 800; margin-right: 4px; }
.cx3-page .cx3-tabs .tab.active .cx3-step { background: #7C3AED; color: #fff; }
.cx3-page .cx3-sep { display: flex; align-items: center; color: #C4B5FD; font-size: 12px; padding: 0 2px; }
.cx3-page .cx3-sep svg { width: 14px; height: 14px; }
.cx3-page .cx3-n { font-size: 11px; opacity: .7; margin-left: 2px; }
.cx3-page .cx3-content { margin-top: 16px; }

.cx3-page .cx3-ov { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; }
.cx3-page .cx3-ov-rail { display: grid; gap: 14px; }
.cx3-page .cx3-card { padding: 14px 16px; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); background: #fff; box-shadow: var(--iv-shadow); }
.cx3-page .cx3-card-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.cx3-page .cx3-card-h h3 { margin: 0; font-size: 13px; font-weight: 700; display: flex; align-items: center; gap: 6px; }
.cx3-page .cx3-fp { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 10px; }
.cx3-page .cx3-pill { border: 1px solid var(--iv-line); border-radius: 99px; background: #F8FAF9; padding: 3px 10px; font-size: 11px; font-weight: 600; cursor: pointer; color: var(--iv-ink); }
.cx3-page .cx3-pill.active { background: #7C3AED; color: #fff; border-color: #7C3AED; }
.cx3-page .cx3-pill.is-bad { color: #BE123C; }
.cx3-page .cx3-pill.is-bad.active { background: #BE123C; color: #fff; border-color: #BE123C; }
.cx3-page .cx3-tl { display: grid; gap: 8px; }
.cx3-page .cx3-mini { display: grid; gap: 6px; font-size: 12px; }
.cx3-page .cx3-msg { padding: 6px 8px; background: #FAFBFA; border-radius: 6px; }
.cx3-page .cx3-integrity.is-warn { border-color: #FDE68A; }

.cx3-page .cx3-split { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
.cx3-page .cx3-split-main { display: grid; gap: 12px; }
.cx3-page .cx3-comp { padding: 10px 14px; background: #FAF5FF; border: 1px solid #E9D5FF; border-radius: 10px; }
.cx3-page .cx3-comp-l { font-size: 12px; font-weight: 700; color: #6D28D9; margin-bottom: 6px; }
.cx3-page .cx3-filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.cx3-page .cx3-search { display: flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--iv-line); border-radius: 8px; background: #fff; flex: 1; min-width: 200px; }
.cx3-page .cx3-search input { border: 0; outline: none; width: 100%; font-size: 12.5px; }
.cx3-page .cx3-search svg { width: 14px; height: 14px; color: var(--iv-muted); }
.cx3-page .cx3-bulk { display: flex; align-items: center; gap: 8px; padding: 8px 12px; background: #EDE9FE; border-radius: 8px; font-size: 12px; }
.cx3-page .cx3-table table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.cx3-page .cx3-table th, .cx3-page .cx3-table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--iv-line); }
.cx3-page .cx3-table tr.is-sel { background: #F5F3FF; }
.cx3-page .cx3-site { display: flex; align-items: center; gap: 8px; }
.cx3-page .cx3-fav { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; color: #fff; font-size: 10px; font-weight: 800; flex-shrink: 0; }
.cx3-page .cx3-rail { position: sticky; top: 16px; background: #fff; border: 1px solid var(--iv-line); border-radius: var(--iv-radius); box-shadow: var(--iv-shadow); overflow: hidden; }
.cx3-page .cx3-rail-empty { padding: 36px 20px; text-align: center; display: grid; place-items: center; gap: 8px; }
.cx3-page .cx3-rail-empty span { width: 44px; height: 44px; border-radius: 99px; background: #EDE9FE; color: #7C3AED; display: grid; place-items: center; }
.cx3-page .cx3-rail-in { display: grid; gap: 12px; padding: 16px; }
.cx3-page .cx3-rail-t { display: flex; align-items: center; gap: 8px; }
.cx3-page .cx3-rail-t h2 { margin: 0; font-size: 16px; }
.cx3-page .cx3-rail-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.cx3-page .cx3-stat3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 8px; background: #FAFBFA; border-radius: 8px; text-align: center; }
.cx3-page .cx3-stat3 b { font-size: 13px; display: block; margin-top: 2px; }
.cx3-page .cx3-contact-box { display: flex; align-items: center; gap: 6px; font-size: 12px; padding: 6px 10px; background: #F8FAF9; border-radius: 6px; }
.cx3-page .cx3-thread { display: grid; gap: 6px; max-height: 180px; overflow-y: auto; font-size: 12px; }
.cx3-page .cx3-rail-acts { display: flex; gap: 6px; flex-wrap: wrap; padding-top: 8px; border-top: 1px solid var(--iv-line); }

.cx3-page .cx3-opps-wrap { display: grid; gap: 14px; }
.cx3-page .cx3-opps-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.cx3-page .cx3-opp { padding: 12px 14px; border: 1px solid var(--iv-line); border-radius: 12px; background: #fff; display: flex; flex-direction: column; gap: 8px; }
.cx3-page .cx3-opp-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.cx3-page .cx3-opp-a { display: flex; justify-content: flex-end; gap: 6px; margin-top: auto; }

.cx3-page .cx3-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; align-items: start; overflow-x: auto; }
.cx3-page .cx3-col { background: #F8FAF9; border: 1px solid var(--iv-line); border-radius: 12px; padding: 10px; display: grid; gap: 8px; min-height: 200px; }
.cx3-page .cx3-col-h { display: flex; justify-content: space-between; align-items: center; padding-bottom: 6px; border-bottom: 2px solid #E4E9E6; font-size: 12px; font-weight: 700; }
.cx3-page .cx3-col-b { display: grid; gap: 8px; }
.cx3-page .cx3-deal { padding: 10px; background: #fff; border: 1px solid var(--iv-line); border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,.04); display: grid; gap: 4px; font-size: 12px; }
.cx3-page .cx3-deal-t { font-weight: 700; font-size: 12.5px; }
.cx3-page .cx3-price { font-weight: 700; color: #047857; }

.cx3-page .cx3-mail { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.cx3-page .cx3-mbox { display: grid; gap: 12px; }
.cx3-page .cx3-angles { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.cx3-page .cx3-angle { padding: 8px 10px; border: 1px solid var(--iv-line); border-radius: 8px; background: #fff; cursor: pointer; text-align: left; font-size: 11.5px; }
.cx3-page .cx3-angle.is-on { border-color: #7C3AED; background: #EDE9FE; font-weight: 700; color: #6D28D9; }
.cx3-page .cx3-tpls { display: grid; gap: 6px; max-height: 380px; overflow-y: auto; }
.cx3-page .cx3-tpl { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--iv-line); border-radius: 8px; background: #fff; cursor: pointer; text-align: left; font-size: 12px; width: 100%; }
.cx3-page .cx3-tpl:hover { background: #F5F3FF; border-color: #C4B5FD; }
.cx3-page .cx3-tag { font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 4px; text-transform: uppercase; }
.cx3-page .cx3-tag.is-amber { background: #FEF3C7; color: #92400E; }
.cx3-page .cx3-tag.is-blue { background: #DBEAFE; color: #1E40AF; }
.cx3-page .cx3-tag.is-green { background: #DCFCE7; color: #065F46; }
.cx3-page .cx3-tag.is-violet { background: #EDE9FE; color: #5B21B6; }

@media (max-width: 1180px) {
  .cx3-page .cx3-head { grid-template-columns: 1fr; }
  .cx3-page .cx3-split { grid-template-columns: 1fr; }
  .cx3-page .cx3-ov { grid-template-columns: 1fr; }
  .cx3-page .cx3-mail { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .cx3-page .cx3-jrow { grid-template-columns: repeat(3, 1fr); height: auto; }
}
