/* Shared chrome CSS extracted from Canvas Directions v1 — do not edit v1's inline copy via this file */

  *, *::before, *::after { box-sizing: border-box; }
  html, body { margin: 0; height: 100%; }
  body { font-family: var(--font-sans); background: var(--background); color: var(--foreground); overflow: hidden; }
  a { color: var(--green-11); } a:hover { color: var(--green-12); }
  button { font-family: var(--font-sans); cursor: pointer; }
  .mono { font-family: var(--font-mono); }
  .tabular { font-variant-numeric: tabular-nums; }
  #root { height: 100%; }

  /* ═══ App frame ═══ */
  .cvApp { height: 100vh; display: flex; flex-direction: column; background: var(--background); }
  .cvMain { flex: 1; min-height: 0; display: flex; }

  /* ── Top bar ── */
  .cvTop { position: relative; display: flex; align-items: center; gap: 16px; padding: 8px 16px; border-bottom: 1px solid var(--border); flex: none; }
  .cvTopLogo { height: 17px; }
  .cvTopRight { display: flex; align-items: center; gap: 10px; margin-left: auto; }
  .cvRoleToggle { display: flex; gap: 2px; background: var(--muted); border: 1px solid var(--border); border-radius: var(--radius-full); padding: 2px; }
  .cvRoleToggle button { border: 0; background: transparent; font: 500 11px var(--font-sans); color: var(--muted-foreground);
    padding: 4px 11px; border-radius: var(--radius-full); }
  .cvRoleToggle button.on { background: var(--card); color: var(--foreground); box-shadow: var(--shadow-edge); }
  .cvAvatar { width: 26px; height: 26px; border-radius: var(--radius-full); background: var(--green-3); border: 1px solid var(--green-6);
    color: var(--green-11); display: inline-flex; align-items: center; justify-content: center; font: 600 10.5px var(--font-sans); }

  /* ── Universal search ── */
  .cvSearchWrap { position: absolute; left: calc(50% + 104px); top: 50%; transform: translate(-50%, -50%); width: min(540px, 42vw); }
  .cvSearch { display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 11px; background: var(--muted);
    border: 1px solid var(--border); border-radius: var(--radius-input); color: var(--muted-foreground); }
  .cvSearch.isOpen { background: var(--card); border-color: var(--border-strong); box-shadow: var(--shadow-raise); }
  .cvSearch input { flex: 1; border: 0; outline: 0; background: transparent; font: 400 13px var(--font-sans); color: var(--foreground); }
  .cvSearchK { font-size: 10px; border: 1px solid var(--border-strong); border-radius: 4px; padding: 1px 5px; }
  .cvSearchPop { position: absolute; top: 38px; left: 0; right: 0; background: var(--popover); border: 1px solid var(--border-strong);
    border-radius: var(--radius-card); box-shadow: var(--shadow-overlay); padding: 6px; z-index: 60; }
  .cvPopH { font: 600 10.5px var(--font-sans); color: var(--muted-foreground); padding: 7px 9px 3px; }
  .cvPopRow { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; border: 0; background: transparent;
    padding: 8px 9px; border-radius: var(--radius-input); color: var(--foreground); }
  .cvPopRow:hover { background: var(--muted); }
  .cvPopRow svg { color: var(--muted-foreground); }
  .cvPopT { font: 500 12.5px var(--font-sans); white-space: nowrap; }
  .cvPopD { font: 400 11.5px var(--font-sans); color: var(--muted-foreground); margin-left: auto; text-align: right;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .cvPopEscalate { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; margin-top: 4px;
    border: 0; border-top: 1px solid var(--border); background: transparent; padding: 10px 9px 7px; border-radius: 0 0 var(--radius-input) var(--radius-input);
    font: 400 12.5px var(--font-sans); color: var(--foreground); }
  .cvPopEscalate:hover { background: var(--green-2); }
  .cvPopEscalate b { font-weight: 500; color: var(--green-11); }
  .cvPopEscGlyph { width: 18px; height: 18px; flex: none; border-radius: var(--radius-full); background: var(--green-3);
    border: 1px solid var(--green-6); color: var(--green-11); display: inline-flex; align-items: center; justify-content: center; }
  .cvPopNone { font: 400 11.5px var(--font-sans); color: var(--muted-foreground); padding: 8px 9px; }

  /* ── Spine — collapsible rail: 48px icons ⇄ 208px labels ── */
  .cvSpine { width: 100%; min-width: 0; flex: none; border-right: 1px solid var(--border); display: flex; flex-direction: column;
    gap: 3px; padding: 10px 7px; }
  .cvSpineBtn { position: relative; width: 100%; height: 34px; flex: none; border: 0; background: transparent;
    border-radius: var(--radius-input); color: var(--muted-foreground); display: flex; align-items: center;
    justify-content: flex-start; padding: 0 0 0 8.5px;
    transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
  .cvSpineBtn:hover { background: var(--muted); color: var(--foreground); }
  .cvSpineBtn.isOn { background: var(--green-3); color: var(--green-11); }
  .cvSpineBtn.isPressed { background: var(--muted); color: var(--foreground); }
  .cvSpineBtn > svg { flex: none; transition: transform var(--dur-fast) var(--ease-out); }
  .cvSpineBtn:hover > svg { transform: translateY(-1px); }
  .cvSpineBtn:active > svg { transform: scale(0.9); }
  /* active pip — grows from center at the rail edge */
  .cvSpineBtn::before { content: ""; position: absolute; left: -7px; top: 50%; width: 2.5px; height: 0;
    border-radius: 2px; background: var(--green-9); transform: translateY(-50%);
    transition: height var(--dur) var(--ease-out); }
  .cvSpineBtn.isOn::before { height: 16px; }
  /* labels — absolutely positioned so the collapsed rail never reflows */
  .cvSpineLabel { position: absolute; left: 36px; top: 50%; transform: translateY(-50%) translateX(-4px);
    font: 500 12px var(--font-sans); white-space: nowrap; color: inherit; opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), visibility 0s linear var(--dur); }
  .cvSpine.isWide .cvSpineLabel { opacity: 1; visibility: visible; transform: translateY(-50%);
    transition: opacity var(--dur) var(--ease-out) 50ms, transform var(--dur) var(--ease-out) 50ms, visibility 0s; }
  .cvSpineBadge { position: absolute; top: 2px; right: 2px; min-width: 13px; height: 13px; border-radius: var(--radius-full);
    background: var(--support-blue, #4C6EFF); color: oklch(0.98 0.005 268); font: 600 8.5px var(--font-sans);
    display: flex; align-items: center; justify-content: center; padding: 0 3px;
    animation: cvSpinePop 220ms var(--ease-out); transition: top var(--dur) var(--ease-out), right var(--dur) var(--ease-out); }
  .cvSpine.isWide .cvSpineBadge { top: 50%; right: 8px; translate: 0 -50%; }
  @keyframes cvSpinePop { from { scale: 0.4; opacity: 0; } }
  /* tooltips — collapsed rail only; delayed, slide in from the rail */
  .cvSpineTip { position: absolute; left: calc(100% + 12px); top: 50%; z-index: 90;
    transform: translateY(-50%) translateX(-4px); background: var(--neutral-12); color: var(--background);
    font: 500 11px var(--font-sans); white-space: nowrap; padding: 4px 9px; border-radius: var(--radius-input);
    box-shadow: var(--shadow-overlay); opacity: 0; pointer-events: none;
    transition: opacity var(--dur-fast) linear, transform var(--dur-fast) var(--ease-out); }
  .cvSpineTip::before { content: ""; position: absolute; left: -3px; top: 50%; width: 6px; height: 6px;
    background: inherit; transform: translateY(-50%) rotate(45deg); border-radius: 1px; }
  .cvSpineBtn:hover .cvSpineTip, .cvSpineBtn:focus-visible .cvSpineTip {
    opacity: 1; transform: translateY(-50%); transition-delay: 350ms; }
  .cvSpineTip .mono { opacity: 0.65; margin-left: 7px; font-size: 10px; }
  /* footer — settings · user · collapse */
  .cvSpineFoot { margin-top: auto; display: flex; flex-direction: column; gap: 3px;
    padding-top: 7px; border-top: 1px solid var(--border); }
  .cvSpineMenuWrap { position: relative; }
  .cvSpineUserBtn { height: 40px; padding-left: 5px; }
  .cvSpineAvatar { width: 24px; height: 24px; flex: none; border-radius: var(--radius-full); background: var(--green-3);
    border: 1px solid var(--green-6); color: var(--green-11); display: flex; align-items: center; justify-content: center;
    font: 600 9.5px var(--font-sans); transition: transform var(--dur-fast) var(--ease-out); }
  .cvSpineUserBtn:hover .cvSpineAvatar { transform: scale(1.06); }
  .cvSpineUserBtn .cvSpineLabel { left: 37px; display: flex; flex-direction: column; gap: 1px; }
  .cvSpineUserN { font: 500 11.5px var(--font-sans); color: var(--foreground); line-height: 1.15; }
  .cvSpineUserR { font: 400 10px var(--font-sans); color: var(--muted-foreground); line-height: 1.15; }
  /* popover menus — open to the right of the rail */
  .cvSpineMenu { position: absolute; left: calc(100% + 10px); bottom: -2px; width: 208px; z-index: 95;
    background: var(--popover); border: 1px solid var(--border-strong); border-radius: var(--radius-card);
    box-shadow: var(--shadow-overlay); padding: 5px; animation: cvSpineMenuIn var(--dur) var(--ease-out); }
  @keyframes cvSpineMenuIn { from { opacity: 0; transform: translateY(5px) scale(0.98); } }
  @media (prefers-reduced-motion: reduce) { .cvSpineMenu, .cvSpineBadge { animation: none; } }
  .cvSpineMenuH { display: flex; flex-direction: column; gap: 1px; padding: 7px 9px 8px;
    border-bottom: 1px solid var(--border); margin-bottom: 4px; }
  .cvSpineMenuH b { font: 600 12px var(--font-sans); }
  .cvSpineMenuH span { font: 400 10.5px var(--font-sans); color: var(--muted-foreground); }
  .cvSpineMenuRow { display: flex; align-items: center; gap: 9px; width: 100%; border: 0; background: transparent;
    text-align: left; padding: 7px 9px; border-radius: var(--radius-input); font: 400 12px var(--font-sans); color: var(--foreground); }
  .cvSpineMenuRow:hover { background: var(--muted); }
  .cvSpineMenuRow svg { color: var(--muted-foreground); flex: none; }
  .cvSpineMenuD { margin-left: auto; font: 400 10.5px var(--font-sans); color: var(--muted-foreground); }

  /* ── Spine nav: grouped sections + expandable Businesses sub-nav ── */
  .cvSpineSection { display: flex; flex-direction: column; gap: 3px; }
  .cvSpineSection + .cvSpineSection { margin-top: 11px; }
  .cvSpineHdr { font: 600 10px var(--font-sans); text-transform: uppercase; letter-spacing: 0.07em;
    color: var(--muted-foreground); padding: 2px 8px 3px; white-space: nowrap; overflow: hidden;
    opacity: 0; transition: opacity var(--dur) var(--ease-out); }
  .cvSpine.isWide .cvSpineHdr { opacity: 1; }
  .cvSpineChev { position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
    color: var(--muted-foreground); display: flex; transition: transform var(--dur) var(--ease-out); }
  .cvSpineChev svg { display: block; }
  .cvSpineBtn.isExpanded .cvSpineChev { transform: translateY(-50%) rotate(90deg); }
  .cvSpineSub { position: relative; display: flex; flex-direction: column; gap: 1px;
    margin: 1px 0 2px; padding-left: 22px; animation: cvSpineSubIn var(--dur) var(--ease-out); }
  @keyframes cvSpineSubIn { from { opacity: 0; transform: translateY(-3px); } }
  .cvSpineSub::before { content: ""; position: absolute; left: 15px; top: 5px; bottom: 5px; width: 1px; background: var(--border); }
  .cvSpineSubBtn { position: relative; display: flex; align-items: center; gap: 8px; width: 100%; height: 30px;
    border: 0; background: transparent; border-radius: var(--radius-input); padding: 0 8px 0 6px;
    font: 400 11.5px var(--font-sans); color: var(--muted-foreground); text-align: left;
    transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
  .cvSpineSubBtn:hover { background: var(--muted); color: var(--foreground); }
  .cvSpineSubBtn.isOn { background: var(--green-3); color: var(--green-11); font-weight: 500; }
  .cvSpineSubBtn > svg { flex: none; }
  .cvSpineSubT { white-space: nowrap; }
  .cvSpineDot { position: absolute; left: -9px; top: 50%; transform: translateY(-50%); width: 7px; height: 7px;
    border-radius: var(--radius-full); border: 1.5px solid var(--border); background: var(--background);
    transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
  .cvSpineSubBtn:hover .cvSpineDot { border-color: var(--border-strong); }
  .cvSpineSubBtn.isOn .cvSpineDot { border-color: var(--green-9); background: var(--green-9); }
  .cvSpineSubBadge { margin-left: auto; font: 500 10px var(--font-sans); color: var(--muted-foreground);
    background: var(--muted); border: 1px solid var(--border); border-radius: var(--radius-full); padding: 0 6px; line-height: 15px; }
  .cvSpineSubBtn.isOn .cvSpineSubBadge { color: var(--green-11); background: var(--green-2); border-color: var(--green-6); }
  .cvSpineBtn.isSoon { color: var(--muted-foreground); opacity: 0.5; cursor: default; }
  .cvSpineBtn.isSoon:hover { background: transparent; color: var(--muted-foreground); }
  .cvSpineBtn.isSoon:hover > svg { transform: none; }

  /* ── Context panel ── */
  .cvCtx { width: 212px; flex: none; border-right: 1px solid var(--border); padding: 14px 10px; overflow-y: auto; }
  .cvCtxTitleRow { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; padding: 0 8px 10px; }
  .cvCtxTitleRow .cvCtxTitle { padding: 0; }
  .cvCtxCollapse { flex: none; border: 0; background: transparent; color: var(--muted-foreground); cursor: pointer;
    padding: 2px; margin-top: -1px; border-radius: var(--radius-input); display: flex; transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
  .cvCtxCollapse:hover { background: var(--muted); color: var(--foreground); }
  .cvCtxTitle { font: 600 13px var(--font-sans); letter-spacing: -0.01em; padding: 0 8px 10px; }
  .cvCtxH { font: 600 10px var(--font-sans); text-transform: uppercase; letter-spacing: 0.07em;
    color: var(--muted-foreground); padding: 14px 8px 5px; }
  .cvCtxRow { display: flex; flex-direction: column; gap: 1px; width: 100%; text-align: left; border: 0; background: transparent;
    padding: 6px 8px; border-radius: var(--radius-input);
    transition: background var(--dur-fast) var(--ease-out); }
  .cvCtxRow.isOn, button.cvCtxRow:hover { background: var(--muted); }
  .cvCtxRowT { font: 500 12px var(--font-sans); color: var(--foreground); }
  .cvCtxRowD { font: 400 11px var(--font-sans); color: var(--muted-foreground); line-height: 1.4; text-wrap: pretty; }
  /* waiting-on-you — attention card, not link text */
  .cvCtxWait { position: relative; background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow-card, 0 1px 2px rgba(23, 26, 24, 0.04));
    padding: 7px 10px 8px 16px; margin: 0 0 5px; }
  .cvCtxWait::before { content: ""; position: absolute; left: 7px; top: 12px; width: 5px; height: 5px;
    border-radius: var(--radius-full); background: var(--support-blue, #4C6EFF); }
  button.cvCtxWait:hover { background: var(--card); border-color: var(--border-strong);
    box-shadow: var(--shadow-raise); }
  .cvCtxWait .cvCtxRowT { color: var(--foreground); }
  .cvCtxFilter { display: flex; justify-content: space-between; align-items: center; width: 100%; border: 0; background: transparent;
    padding: 6px 8px; border-radius: var(--radius-input); font: 400 12px var(--font-sans); color: var(--foreground); }
  .cvCtxFilter:hover { background: var(--muted); }
  .cvCtxFilter.isOn { background: var(--green-3); color: var(--green-12); font-weight: 500; }
  .cvCtxFilter .tabular { color: var(--muted-foreground); font-size: 11px; }
  .cvCtxFilter.isOn .tabular { color: var(--green-11); }
  .cvCtxEmpty { font: 400 11.5px var(--font-sans); color: var(--muted-foreground); line-height: 1.5; padding: 6px 8px; text-wrap: pretty; }
  .cvCtxSel { display: flex; justify-content: space-between; align-items: center; padding: 6px 8px; font: 500 12px var(--font-sans); }
  .cvCtxSel button { border: 0; background: transparent; color: var(--green-11); font: 500 11.5px var(--font-sans); }

  /* ═══ The canvas — stage · stream · composer ═══ */
  .cvCanvas { flex: 1; min-width: 0; position: relative; display: flex; flex-direction: column; }
  .cvStageZone { flex: 1; min-height: 0; display: flex; flex-direction: column; }
  .cvDock { flex: none; padding: 0 20px 14px; }

  /* geometry: bottom sheet (default) */
  .geo-sheet .cvStreamSheet, .geo-overlay .cvStreamSheet { display: flex; flex-direction: column; min-height: 0; }
  .geo-sheet .cvStreamSheet { flex: none; height: 0; overflow: hidden; border-top: 1px solid transparent;
    transition: height var(--cvDur) cubic-bezier(0.2, 0, 0, 1), border-color var(--cvDur) linear; }
  .geo-sheet.isEngaged .cvStreamSheet { height: 37%; border-top-color: var(--border); }

  /* geometry: right rail */
  .geo-rail { display: grid; grid-template-columns: 1fr 0fr; grid-template-rows: 1fr auto;
    transition: grid-template-columns var(--cvDur) cubic-bezier(0.2, 0, 0, 1); }
  .geo-rail.isEngaged { grid-template-columns: 1fr 0.42fr; }
  .geo-rail .cvStageZone { grid-area: 1 / 1; }
  .geo-rail .cvDock { grid-area: 2 / 1; }
  .geo-rail .cvStreamRail { grid-area: 1 / 2 / 3 / 3; min-width: 0; overflow: hidden; border-left: 1px solid var(--border);
    display: flex; flex-direction: column; opacity: 0; transition: opacity var(--cvDur) linear; }
  .geo-rail.isEngaged .cvStreamRail { opacity: 1; }
  .geo-rail .cvStreamRail > * { min-width: 300px; }

  /* geometry: floating overlay — the page never compresses */
  .geo-overlay .cvStreamSheet.isOverlay { position: absolute; right: 20px; bottom: 96px; width: min(600px, 52%);
    max-height: 56%; z-index: 40; background: color-mix(in oklch, var(--card) 88%, transparent);
    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    border: 1px solid var(--border-strong); border-radius: var(--radius-card); box-shadow: var(--shadow-overlay);
    height: auto; opacity: 0; transform: translateY(10px); pointer-events: none;
    transition: opacity var(--cvDur) linear, transform var(--cvDur) cubic-bezier(0.2, 0, 0, 1); }
  .geo-overlay.isEngaged .cvStreamSheet.isOverlay { opacity: 1; transform: none; pointer-events: auto; }

  .cvStreamH { flex: none; display: flex; align-items: center; justify-content: space-between;
    font: 600 11px var(--font-sans); color: var(--muted-foreground); padding: 10px 20px 4px; }
  .cvStreamClose { border: 0; background: transparent; color: var(--muted-foreground); padding: 2px; border-radius: 4px; }
  .cvStreamClose:hover { background: var(--muted); }
  .cvStreamBody { flex: 1; min-height: 0; overflow-y: auto; padding: 6px 20px 12px; display: flex; flex-direction: column; gap: 10px; }
  .cvStreamBody > * { max-width: 720px; width: 100%; margin: 0 auto; }
  .cvThinking { display: flex; align-items: center; gap: 8px; font: 400 12px var(--font-sans); color: var(--muted-foreground); }
  .cvDots i { font-style: normal; animation: cvBlink 1.2s infinite; }
  .cvDots i:nth-child(2) { animation-delay: 0.2s; } .cvDots i:nth-child(3) { animation-delay: 0.4s; }
  @keyframes cvBlink { 0%, 60%, 100% { opacity: 0.25; } 30% { opacity: 1; } }

  /* ── Ticker (rest) ── */
  .cvTicker { display: flex; align-items: center; gap: 9px; width: 100%; border: 0; background: transparent;
    padding: 7px 4px; font: 400 12px var(--font-sans); color: var(--muted-foreground); text-align: left; border-radius: var(--radius-input); }
  .cvTicker:hover { background: var(--muted); }
  .cvTickerPulse { width: 6px; height: 6px; flex: none; border-radius: var(--radius-full); background: var(--green-9); }
  .cvTickerText { display: flex; align-items: baseline; gap: 8px; min-width: 0; overflow: hidden; }
  .cvTickerVerb { color: var(--foreground); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cvTickerScope { flex: none; } .cvTickerTime { flex: none; font-size: 11px; }
  .cvTicker > svg:last-child { margin-left: auto; }
  .cvJobMini { display: inline-flex; align-items: center; gap: 7px; flex: none; margin-left: auto; padding-left: 10px; }
  .cvJobMiniTitle { font: 500 11.5px var(--font-sans); color: var(--foreground); white-space: nowrap; }

  /* ── Composer + frame chip ── */
  .cvComposer { display: flex; flex-direction: column; gap: 5px; max-width: 760px; margin: 0 auto; width: 100%; }
  .cvFrame { display: inline-flex; align-items: center; gap: 5px; width: fit-content; font: 500 10.5px var(--font-sans);
    color: var(--muted-foreground); background: var(--muted); border: 1px solid var(--border); border-radius: var(--radius-chip);
    padding: 2px 8px; margin-left: 2px; }
  .cvFrame.isActing { color: var(--green-11); background: var(--green-2); border-color: var(--green-5); }
  .cvFrameSep { opacity: 0.5; }
  .cvFrameSel { font-weight: 600; }
  .cvComposerBox { display: flex; flex-direction: column; gap: 0; background: var(--card); border: 1px solid var(--border-strong);
    border-radius: var(--radius-card); box-shadow: var(--shadow-raise); padding: 12px 12px 10px 16px; transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); }
  .cvComposerBox:focus-within { border-color: var(--ring); box-shadow: 0 0 0 3px oklch(0.532 0.126 155.2 / 0.15), var(--shadow-raise); }
  .cvComposerField { position: relative; display: flex; }
  .cvComposerBox textarea { width: 100%; border: 0; outline: 0; background: transparent; font: 400 14.5px var(--font-sans);
    color: var(--foreground); line-height: 1.5; resize: none; min-height: 44px; max-height: 168px; overflow-y: auto; padding: 0 68px 10px 0; }
  .cvComposerBox textarea::placeholder { color: var(--muted-foreground); }
  .cvComposerFocusHint { position: absolute; top: 1px; right: 0; font: 400 11px var(--font-sans); color: var(--muted-foreground); pointer-events: none; white-space: nowrap; }
  .cvComposerFocusHint kbd { font: 500 10.5px var(--font-sans); color: var(--muted-foreground); }
  .cvComposerBox:focus-within .cvComposerFocusHint { opacity: 0; }
  .cvComposerBar { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .cvComposerTools { display: flex; align-items: center; gap: 2px; min-width: 0; }
  .cvComposerModel { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 8px 0 8px; border: 0;
    background: transparent; border-radius: var(--radius-input); color: var(--foreground); font: 500 12.5px var(--font-sans);
    white-space: nowrap; transition: background var(--dur-fast) var(--ease-out); }
  .cvComposerModel svg:first-child { color: var(--green-9); }
  .cvComposerModel svg:last-child { color: var(--muted-foreground); }
  .cvComposerModel:hover { background: var(--muted); }
  .cvComposerMode { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 9px; border: 0;
    background: transparent; border-radius: var(--radius-input); color: var(--muted-foreground); font: 500 12px var(--font-sans);
    white-space: nowrap; transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
  .cvComposerMode:hover { background: var(--muted); color: var(--foreground); }
  .cvComposerRight { display: flex; align-items: center; gap: 3px; flex: none; }
  .cvComposerIcon { width: 32px; height: 32px; flex: none; border: 0; background: transparent; border-radius: var(--radius-input);
    color: var(--muted-foreground); display: flex; align-items: center; justify-content: center;
    transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
  .cvComposerIcon:hover { background: var(--muted); color: var(--foreground); }
  .cvComposerIcon:disabled { opacity: 0.4; cursor: default; }
  .cvComposerSend { width: 34px; height: 34px; flex: none; border: 0; border-radius: var(--radius-input); margin-left: 3px;
    background: var(--primary); color: var(--primary-foreground); display: flex; align-items: center; justify-content: center;
    transition: transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out); }
  .cvComposerSend:hover:not(:disabled) { background: var(--green-10); }
  .cvComposerSend:active { transform: scale(0.94); }
  .cvComposerSend:disabled { background: var(--muted); color: var(--muted-foreground); opacity: 0.7; cursor: default; }

  /* ═══ Stage ═══ */
  .cvStage { flex: 1; min-height: 0; display: flex; flex-direction: column; }
  .cvStageHead { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 24px 12px; }
  .cvStageTitleWrap { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
  .cvStageTitle { font: 600 19px var(--font-sans); letter-spacing: -0.015em; margin: 0; white-space: nowrap; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .cvStageAsOf { font: 400 11px var(--font-sans); color: var(--muted-foreground); white-space: nowrap; }
  .cvProv { position: relative; }
  .cvProv > button { border: 0; background: transparent; font: 400 11px var(--font-sans); color: var(--muted-foreground);
    text-decoration: underline dotted; padding: 0; }
  .cvProvPop { position: absolute; top: 20px; left: 0; z-index: 50; white-space: nowrap; font-size: 10.5px;
    background: var(--popover); border: 1px solid var(--border-strong); border-radius: var(--radius-input);
    box-shadow: var(--shadow-overlay); padding: 7px 10px; color: var(--muted-foreground); }
  .cvStageActs { display: flex; gap: 8px; flex: none; }
  .cvStageBody { flex: 1; min-height: 0; overflow-y: auto; padding: 0 24px 24px; }
  .cvBtnPrimary { display: inline-flex; align-items: center; gap: 6px; border: 0; background: var(--primary); color: var(--primary-foreground);
    font: 500 12px var(--font-sans); padding: 6px 13px; border-radius: var(--radius-input);
    transition: transform var(--dur-fast) var(--ease-out); }
  .cvBtnPrimary:hover { background: var(--primary-hover); } .cvBtnPrimary:active { transform: scale(0.96); }
  .cvBtnQuiet { display: inline-flex; align-items: center; gap: 6px; background: var(--card); border: 1px solid var(--border-strong);
    color: var(--foreground); font: 500 12px var(--font-sans); padding: 5px 12px; border-radius: var(--radius-input); }
  .cvBtnQuiet:hover { background: var(--muted); }

  /* time travel */
  .cvPastBanner { flex: none; display: flex; align-items: center; gap: 9px; margin: 10px 24px 0; padding: 8px 13px;
    background: var(--muted); border: 1px dashed var(--border-strong); border-radius: var(--radius-row);
    font: 400 12px var(--font-sans); color: var(--muted-foreground); }
  .cvPastBanner b { font-weight: 600; color: var(--foreground); }
  .cvPastBanner button { margin-left: auto; border: 0; background: var(--primary); color: var(--primary-foreground);
    font: 500 11.5px var(--font-sans); padding: 4px 11px; border-radius: var(--radius-input); flex: none; }
  .cvStage.isPast .cvStageBody, .cvStage.isPast .cvStageActs { pointer-events: none; filter: saturate(0.55); opacity: 0.85; }

  /* ═══ Stream parts ═══ */
  .cvActor { width: 20px; height: 20px; flex: none; border-radius: var(--radius-full); display: inline-flex;
    align-items: center; justify-content: center; font: 600 8.5px var(--font-sans); margin-top: 1px; }
  .cvActorYou { background: var(--muted); border: 1px solid var(--border-strong); color: var(--muted-foreground); }
  .cvActorAgent { background: var(--green-3); border: 1px solid var(--green-6); color: var(--green-11); }

  .cvUtter { display: flex; justify-content: flex-end; align-items: flex-start; gap: 9px; }
  .cvUtterText { font: 400 13px var(--font-sans); background: var(--muted); border-radius: var(--radius-row); padding: 7px 12px; max-width: 70%; }

  .cvProse { display: flex; gap: 9px; }
  .cvProseBody { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 8px; }
  .cvProseBody p { font: 400 13px var(--font-sans); line-height: 1.55; margin: 2px 0 0; text-wrap: pretty; max-width: 65ch; }
  .cvSugg { display: flex; gap: 6px; flex-wrap: wrap; }
  .cvSugg button { font: 400 12px var(--font-sans); color: var(--foreground); background: var(--card);
    border: 1px solid var(--border-strong); border-radius: var(--radius-full); padding: 4px 12px; white-space: nowrap; }
  .cvSugg button:hover { background: var(--green-2); border-color: var(--green-6); color: var(--green-12); }

  .cvReceipt { display: flex; align-items: flex-start; gap: 9px; padding: 4px 6px; margin: -2px -6px; border-radius: var(--radius-input); }
  .cvReceipt:hover { background: var(--muted); }
  .cvReceipt .cvActor { width: 16px; height: 16px; font-size: 7px; margin-top: 2px; }
  .cvReceiptMain { min-width: 0; flex: 1; }
  .cvReceiptLine { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
  .cvReceiptVerb { font: 500 12.5px var(--font-sans); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cvReceiptScope { font: 400 11.5px var(--font-sans); color: var(--muted-foreground); flex: none; }
  .cvReceiptTime { font: 400 10.5px var(--font-sans); color: var(--muted-foreground); flex: none; margin-left: auto; }
  .cvReceiptMoved { font: 400 11px var(--font-sans); color: var(--muted-foreground); margin-top: 1px; text-wrap: pretty; }
  .cvReceiptActs { display: flex; align-items: center; gap: 4px; flex: none; opacity: 0; transition: opacity var(--dur-fast) linear; }
  .cvReceipt:hover .cvReceiptActs { opacity: 1; }
  .cvReceiptActs button { display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--border-strong);
    background: var(--card); border-radius: var(--radius-chip); font: 500 10.5px var(--font-sans); color: var(--foreground); padding: 2px 7px; }
  .cvReceiptActs button:hover { background: var(--muted); }
  .cvReceiptRecord { font: 400 10.5px var(--font-sans); padding: 2px 3px; }
  .cvReceipt.isPast { background: var(--green-2); outline: 1px dashed var(--green-6); }

  .cvGroup { border: 1px solid var(--border); border-radius: var(--radius-row); }
  .cvGroupHead { display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: transparent;
    padding: 8px 11px; font: 500 12px var(--font-sans); color: var(--muted-foreground); text-align: left; }
  .cvGroupHead:hover { color: var(--foreground); }
  .cvGroupCount { margin-left: auto; font-size: 11px; }
  .cvGroupBody { border-top: 1px solid var(--border); padding: 8px 11px; display: flex; flex-direction: column; gap: 6px; }
  .cvDaySep { display: flex; align-items: center; gap: 10px; color: var(--muted-foreground); font: 600 10.5px var(--font-sans); }
  .cvDaySep::before, .cvDaySep::after { content: ""; flex: 1; height: 1px; background: var(--border); }

  /* job card */
  .cvJob { background: var(--card); border: 1px solid var(--border-strong); border-radius: var(--radius-card); padding: 12px 14px; }
  .cvJob[data-state="needs-you"] { border-color: color-mix(in oklch, var(--support-blue, #4C6EFF) 45%, var(--border-strong)); }
  .cvJobTop { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .cvJobTitle { font: 500 13px var(--font-sans); }
  .cvJobBar { height: 4px; background: var(--muted); border-radius: 2px; margin-top: 10px; overflow: hidden; }
  .cvJobFill { height: 100%; background: var(--green-9); border-radius: 2px; transition: width 300ms var(--ease-out); }
  .cvJobDetail { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px;
    font: 400 11.5px var(--font-sans); color: var(--muted-foreground); }
  .cvJobCancel { border: 0; background: transparent; font: 500 11px var(--font-sans); color: var(--muted-foreground); text-decoration: underline; }
  .cvJobCancel:hover { color: var(--foreground); }
  .cvJobFail { display: inline-flex; align-items: center; gap: 5px; color: var(--destructive, oklch(0.5 0.19 12)); }

  /* approval */
  .cvApproval { background: var(--card); border: 1px solid var(--consent-shared-border); border-radius: var(--radius-card);
    padding: 13px 15px; box-shadow: var(--shadow-edge); }
  .cvApproval.isResolved { border-color: var(--border); }
  .cvApprovalHead { display: flex; align-items: center; gap: 7px; font: 600 12.5px var(--font-sans);
    color: var(--support-blue, #4C6EFF); }
  .cvApproval.isResolved .cvApprovalHead { color: var(--muted-foreground); }
  .cvApprovalScope { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
  .cvApprovalArrow { color: var(--muted-foreground); }
  .cvApprovalBody { font: 400 12.5px var(--font-sans); line-height: 1.5; margin: 10px 0 0; text-wrap: pretty; max-width: 62ch; }
  .cvApprovalEvidence { display: flex; gap: 12px; margin-top: 8px; }
  .cvApprovalEvidence a { font: 400 11.5px var(--font-sans); }
  .cvApprovalActs { display: flex; gap: 8px; margin-top: 12px; }
  .cvApprovalDone { display: flex; align-items: center; gap: 6px; margin-top: 10px; font: 500 11.5px var(--font-sans); color: var(--green-11); }

  /* glanceable */
  .cvGlance { display: flex; gap: 0; border: 1px solid var(--border); border-radius: var(--radius-row); width: fit-content;
    padding: 2px; flex-wrap: wrap; align-items: center; }
  .cvGlanceCell { display: flex; flex-direction: column; padding: 8px 18px; border-right: 1px solid var(--border); }
  .cvGlanceCell:last-of-type { border-right: 0; }
  .cvGlanceN { font: 600 17px var(--font-sans); letter-spacing: -0.01em; }
  .cvGlanceL { font: 400 11px var(--font-sans); color: var(--muted-foreground); }
  .cvGlanceCap { flex-basis: 100%; font: 400 10.5px var(--font-sans); color: var(--muted-foreground); padding: 4px 10px 6px; }

  /* warm path */
  .cvWarm { margin: 4px 0; }
  .cvWarmChip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--green-6); background: var(--green-2);
    color: var(--green-12); font: 500 11.5px var(--font-sans); padding: 3px 10px; border-radius: var(--radius-full); }
  .cvWarmDot { display: inline-block; width: 6px; height: 6px; border-radius: var(--radius-full); background: var(--green-9); margin-left: 6px; }
  .cvWarmChip .cvWarmDot { margin-left: 0; }
  .cvWarmHops { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; padding: 10px 12px;
    border: 1px solid var(--border); border-radius: var(--radius-row); background: var(--card); width: fit-content; }
  .cvWarmHop { display: flex; flex-direction: column; }
  .cvWarmName { font: 500 12.5px var(--font-sans); }
  .cvWarmRole { font: 400 10.5px var(--font-sans); color: var(--muted-foreground); }
  .cvWarmLink { display: flex; align-items: center; font: 600 10.5px var(--font-sans); color: var(--green-11); }
  .cvWarmLink::before, .cvWarmLink::after { content: ""; width: 16px; height: 1px; background: var(--green-6); margin: 0 4px; }
  .cvWarmAsk { border: 1px solid var(--border-strong); background: var(--card); font: 500 11px var(--font-sans);
    padding: 4px 11px; border-radius: var(--radius-input); }
  .cvWarmAsk:hover { background: var(--muted); }

  /* strength cell */
  .cvStrength { position: relative; display: inline-flex; align-items: baseline; gap: 6px; }
  .cvStrengthN { font: 600 13px var(--font-sans); }
  .cvStrengthT { font: 400 10.5px var(--font-sans); color: var(--muted-foreground); }
  .cvStrength[data-trend="warming"] .cvStrengthT { color: var(--green-11); }
  .cvStrengthWhy { display: none; position: absolute; bottom: 20px; right: 0; z-index: 40; width: max-content; max-width: 260px;
    background: var(--popover); border: 1px solid var(--border-strong); border-radius: var(--radius-input);
    box-shadow: var(--shadow-overlay); padding: 7px 10px; font: 400 11px var(--font-sans); color: var(--foreground); text-wrap: pretty; }
  .cvStrength:hover .cvStrengthWhy { display: block; }

  /* ═══ Stage subjects ═══ */
  .cvBucketHead { display: flex; align-items: baseline; gap: 10px; padding: 14px 2px 7px; }
  .cvBucketHead > span:first-child { font: 600 12.5px var(--font-sans); }
  .cvBucketSub { font: 400 11px var(--font-sans); color: var(--muted-foreground); }
  .cvBucketN { margin-left: auto; font: 500 11px var(--font-sans); color: var(--muted-foreground); }
  .cvTable { width: 100%; border-collapse: collapse; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-card); overflow: hidden; }
  .cvTable th { font: 600 10.5px var(--font-sans); color: var(--muted-foreground); text-align: left; padding: 8px 12px;
    border-bottom: 1px solid var(--border); background: var(--muted); }
  .cvTable td { font: 400 12.5px var(--font-sans); padding: 9px 12px; border-bottom: 1px solid var(--border); vertical-align: top; }
  .cvTable tr:last-child td { border-bottom: 0; }
  .cvTable tr.isSel td { background: var(--green-2); }
  .cvThCheck { width: 28px; } .cvThCheck input { accent-color: var(--green-9); }
  .cvThNum { text-align: right; }
  td.cvThNum { text-align: right; }
  .cvBizName { border: 0; background: transparent; padding: 0; font: 500 12.5px var(--font-sans); color: var(--foreground); text-align: left; }
  button.cvBizName:hover { color: var(--green-11); }
  .cvBizDomain { display: block; font: 400 11px var(--font-sans); color: var(--muted-foreground); }
  .cvCellMut { color: var(--muted-foreground); font-size: 11.5px; white-space: nowrap; }
  .cvTableWrap { overflow-x: auto; }
  .cvTable { min-width: 720px; }

  /* shortlist */
  .cvShortIntro { font: 400 12.5px var(--font-sans); color: var(--muted-foreground); padding: 4px 2px 12px; max-width: 65ch;
    text-wrap: pretty; display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
  .cvShortShared { display: inline-flex; align-items: center; gap: 6px; font: 500 11.5px var(--font-sans); color: var(--consent-shared-fg); }
  .cvShortRow { display: flex; align-items: flex-start; gap: 14px; background: var(--card); border: 1px solid var(--border);
    border-radius: var(--radius-row); padding: 11px 14px; margin-bottom: 8px; }
  .cvShortRank { flex: none; font: 600 12px var(--font-sans); color: var(--muted-foreground); width: 18px; padding-top: 2px; }
  .cvShortMain { flex: 1; min-width: 0; }
  .cvShortWhy { font: 400 11.5px var(--font-sans); color: var(--muted-foreground); margin-top: 2px; text-wrap: pretty; }
  .cvShortMeta { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; padding-top: 1px; }
  .cvShortDorm { font: 400 11.5px var(--font-sans); color: var(--consent-org-fg, oklch(0.45 0.1 88)); }
  .cvShortDorm b { font-weight: 600; }
  .cvShortDorm.cvShortLive { color: var(--green-11); }

  /* entity */
  .cvEntityHead { display: flex; justify-content: space-between; gap: 24px; padding: 4px 0 14px; }
  .cvEntityName { font: 600 17px var(--font-sans); letter-spacing: -0.01em; }
  .cvEntityMeta { display: flex; align-items: baseline; gap: 12px; margin-top: 3px; font: 400 12px var(--font-sans); color: var(--muted-foreground); }
  .cvEntityId { font-size: 10.5px; }
  .cvEntityStage { font-weight: 500; color: var(--foreground); }
  .cvEntityOrigin { font: 400 11.5px var(--font-sans); color: var(--muted-foreground); margin-top: 6px; max-width: 60ch; text-wrap: pretty; }
  .cvEntityScore { flex: none; text-align: right; }
  .cvEntityScoreN { font: 600 26px var(--font-sans); letter-spacing: -0.02em; }
  .cvEntityScoreRead { display: block; font: 500 11.5px var(--font-sans); color: var(--green-11); }
  .cvEntityScoreWhy { margin-top: 5px; font: 400 10.5px var(--font-sans); color: var(--muted-foreground); line-height: 1.5; }
  .cvEntityCols { display: grid; grid-template-columns: 1.6fr 1fr; gap: 24px; margin-top: 16px; }
  .cvSectionH { font: 600 11px var(--font-sans); color: var(--muted-foreground); padding-bottom: 8px; }
  .cvFact { border: 1px solid var(--border); border-radius: var(--radius-row); background: var(--card); padding: 11px 13px; margin-bottom: 8px; }
  .cvFactValue { font: 500 13px var(--font-sans); line-height: 1.45; text-wrap: pretty; }
  .cvFact.isLocked { background: var(--muted); border-style: dashed; }
  .cvFactLock { display: flex; align-items: center; gap: 8px; color: var(--muted-foreground); font-weight: 400; }
  .cvFactDesc { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 6px;
    font: 400 11px var(--font-sans); color: var(--muted-foreground); }
  .cvFactConf { font-size: 10px; }
  .cvSignal { font: 400 12px var(--font-sans); line-height: 1.5; padding: 6px 0; border-bottom: 1px solid var(--border); text-wrap: pretty; }
  .cvTimeRow { display: flex; gap: 10px; padding: 5px 0; font: 400 11.5px var(--font-sans); }
  .cvTimeT { flex: none; width: 58px; color: var(--muted-foreground); }
  .cvTimeE { color: var(--foreground); text-wrap: pretty; }

  /* report */
  .cvReport { max-width: 860px; }
  .cvReportBand { padding: 6px 0 18px; border-bottom: 1px solid var(--border); margin-bottom: 18px; }
  .cvReportTitle { font: 600 21px var(--font-sans); letter-spacing: -0.015em; }
  .cvReportSub { font: 400 12px var(--font-sans); color: var(--muted-foreground); margin-top: 3px; }
  .cvReportLens { display: flex; align-items: center; gap: 6px; margin-top: 12px; font: 400 11px var(--font-sans); color: var(--muted-foreground); }
  .cvReportLens button { border: 1px solid var(--border-strong); background: var(--card); font: 500 11px var(--font-sans);
    padding: 3px 10px; border-radius: var(--radius-full); color: var(--muted-foreground); }
  .cvReportLens button.on { background: var(--green-3); border-color: var(--green-6); color: var(--green-12); }
  .cvReportSection { margin-bottom: 22px; }
  .cvIn { animation: cvRise 320ms var(--ease-out) both; }
  @keyframes cvRise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
  @media (prefers-reduced-motion: reduce) { .cvIn { animation: none; } }
  .cvReportMetrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
  .cvReportMetric { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-card); padding: 14px 15px;
    display: flex; flex-direction: column; gap: 2px; }
  .cvReportN { font: 600 24px var(--font-sans); letter-spacing: -0.02em; }
  .cvReportL { font: 500 12px var(--font-sans); }
  .cvReportS { font: 400 10.5px var(--font-sans); color: var(--muted-foreground); }
  .cvReportRow { display: flex; justify-content: space-between; gap: 16px; padding: 9px 2px; border-bottom: 1px solid var(--border); }
  .cvReportRowT { font: 500 12.5px var(--font-sans); }
  .cvReportRowD { font: 400 11.5px var(--font-sans); color: var(--muted-foreground); text-align: right; }
  .cvReportSkel { padding: 12px 0 20px; }
  .cvSkelLine { height: 12px; border-radius: 4px; background: var(--muted); margin-bottom: 9px; animation: cvPulse 1.4s ease-in-out infinite; }
  @keyframes cvPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
  .cvReportBuilding { font: 400 11.5px var(--font-sans); color: var(--muted-foreground); }

  /* opportunities / shared / brief / empty */
  .cvOppCard, .cvSharedCard { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-card); padding: 16px 18px; max-width: 760px; }
  .cvOppTitle { font: 600 15px var(--font-sans); }
  .cvOppMeta { display: flex; gap: 14px; font: 400 12px var(--font-sans); margin-top: 3px; }
  .cvOppMatch { display: flex; align-items: baseline; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--border); }
  .cvOppMatch:last-child { border-bottom: 0; }
  .cvOppWhy { flex: 1; font: 400 11.5px var(--font-sans); color: var(--muted-foreground); text-wrap: pretty; }
  .cvOppS { font: 600 13px var(--font-sans); }
  .cvSharedHead { display: flex; align-items: center; gap: 12px; }
  .cvSharedName { font: 600 15px var(--font-sans); }
  .cvSharedRule { font: 400 12px var(--font-sans); color: var(--muted-foreground); margin-top: 4px; }
  .cvSharedRow { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--border); }
  .cvSharedRow:last-child { border-bottom: 0; }
  .cvSharedRowT { font: 500 12.5px var(--font-sans); }
  .cvSharedEmptyHint { font: 400 11.5px var(--font-sans); color: var(--muted-foreground); padding-top: 10px; max-width: 55ch; text-wrap: pretty; }
  .cvBrief { max-width: 720px; }
  .cvBriefH { font: 600 13px var(--font-sans); color: var(--muted-foreground); padding: 4px 0 10px; }
  .cvBriefRow { display: flex; align-items: center; gap: 16px; background: var(--card); border: 1px solid var(--border);
    border-radius: var(--radius-row); padding: 13px 16px; margin-bottom: 8px; }
  .cvBriefMain { flex: 1; min-width: 0; }
  .cvBriefT { display: block; font: 500 13.5px var(--font-sans); }
  .cvBriefD { display: block; font: 400 11.5px var(--font-sans); color: var(--muted-foreground); margin-top: 2px; text-wrap: pretty; }
  .cvEmpty { max-width: 480px; margin: 8vh auto 0; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; }
  .cvEmptyGlyph { width: 44px; height: 44px; border-radius: var(--radius-full); background: var(--green-2);
    border: 1px solid var(--green-5); color: var(--green-9); display: flex; align-items: center; justify-content: center; }
  .cvEmptyT { font: 600 15px var(--font-sans); }
  .cvEmptyD { font: 400 12.5px var(--font-sans); color: var(--muted-foreground); line-height: 1.55; text-wrap: pretty; }
  .cvEmptySources { display: flex; flex-direction: column; gap: 7px; margin: 14px 0; text-align: left;
    font: 400 12px var(--font-sans); color: var(--muted-foreground); }
  .cvEmptySrc { display: flex; align-items: center; gap: 9px; }
  .cvEmptySrcDot { width: 7px; height: 7px; border-radius: var(--radius-full); background: var(--border-strong); flex: none; }
  .cvEmptySrcDot.isOn { background: var(--green-9); }
  .cvEmptySrcDot.isRun { background: var(--support-blue, #4C6EFF); }
