/* ════════════════════════════════════════════════════════════════════════════
   ATLAS V6 — Enterprise Polish Layer  (css/v6-enterprise.css)
   ────────────────────────────────────────────────────────────────────────────
   Added 2026-06-28 for the $100M enterprise-SaaS uplift (Linear / Ramp / Attio
   calm). Loaded AFTER every v6-* sheet and IMMEDIATELY BEFORE v6-lock.css (which
   must stay LAST). This is an ISOLATED, additive polish layer — it does not edit
   any existing sheet, so the whole uplift reverts by removing one <link> + this
   file. Pairs with js/v6-enterprise.js (greeting · live chips · notif bell).

   Design lock (atlas-dashboard.md): dark command rail over a light/cream work
   surface, ONE gold accent (--gold #c18a25). Single theme — no dark variant, no
   toggle. No personalized strings here (data binds via JS from JARVIS_CONFIG).
   No layout change that breaks the 1920×1080 no-scroll outer frame.
   ════════════════════════════════════════════════════════════════════════════ */

/* ── 1. SKELETON SHIMMER ─────────────────────────────────────────────────────
   Replaces spinners with a calm left-to-right shimmer while data loads. Add the
   .v6-skeleton class to any placeholder; remove it when real data paints. */
@keyframes v6-skeleton-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.v6-skeleton,
.v6-skeleton * {
  color: transparent !important;
  text-shadow: none !important;
}
.v6-skeleton {
  background-image: linear-gradient(90deg, #ece7dc 25%, #f6f2e9 37%, #ece7dc 63%);
  background-size: 200% 100%;
  animation: v6-skeleton-shimmer 1.4s ease-in-out infinite;
  border-radius: 6px;
  pointer-events: none;
  user-select: none;
}
.v6-skel-line { display: block; height: 12px; margin: 8px 0; border-radius: 5px; }
.v6-skel-line.w-60 { width: 60%; }
.v6-skel-line.w-80 { width: 80%; }
.v6-skel-line.w-40 { width: 40%; }
@media (prefers-reduced-motion: reduce) {
  .v6-skeleton { animation: none; background-position: 0 0; }
}

/* ── 2. CARD + PANEL ELEVATION ───────────────────────────────────────────────
   A crisp near-shadow + soft warm ambient shadow (Stripe/Linear depth) replaces
   the single flat drop. Static content panels get the refined resting shadow and
   a gentle hover bump (no lift — big regions shouldn't jiggle). Genuine "cards"
   (KPI tiles, deal cards, generic .v6-card) get the translateY(-1px) hover lift.
   Dark control panels (Ask Atlas / Operating Graph / Trust Rail) keep their own
   look — never lifted. */
.v6-panel,
.v6-card,
.v6-kpi-tile {
  box-shadow: 0 1px 2px rgba(29, 24, 14, .06), 0 4px 14px rgba(29, 24, 14, .05);
  transition: transform .15s ease, box-shadow .18s ease, border-color .18s ease;
}
.v6-panel:not(.dark):hover {
  box-shadow: 0 2px 4px rgba(29, 24, 14, .07), 0 10px 28px rgba(29, 24, 14, .09);
  border-color: #cdc4b3;
}
.v6-card:hover,
.v6-kpi-tile:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 6px rgba(29, 24, 14, .08), 0 12px 30px rgba(29, 24, 14, .10);
  border-color: #cdc4b3;
}
/* Dark control panels keep their deep, fixed elevation. */
.v6-panel.dark { box-shadow: 0 14px 34px rgba(16, 23, 34, .20); }
.v6-panel.dark:hover { transform: none; }

/* ── 3. ASK ATLAS — PRIMARY CTA IDLE PULSE ───────────────────────────────────
   The single primary action in the command bar gently breathes a gold ring at
   rest so the eye is drawn to it; the pulse stops on hover/focus and for users
   who prefer reduced motion. */
@keyframes v6-ask-pulse {
  0%, 100% { box-shadow: 0 10px 24px rgba(29, 24, 14, .07), 0 0 0 0 rgba(193, 138, 37, .42); }
  55%      { box-shadow: 0 10px 24px rgba(29, 24, 14, .10), 0 0 0 7px rgba(193, 138, 37, 0); }
}
.v6-ask-atlas-btn {
  animation: v6-ask-pulse 3s ease-in-out infinite;
  will-change: box-shadow, transform;
}
.v6-ask-atlas-btn svg { margin-right: 7px; }
.v6-ask-atlas-btn:hover,
.v6-ask-atlas-btn:focus-visible { animation: none; }
@media (prefers-reduced-motion: reduce) { .v6-ask-atlas-btn { animation: none; } }

/* ── 4. NOTIFICATION BELL (top command bar) ──────────────────────────────────
   A real, visible bell in the top-right actions. Forwards to the existing
   #btn-notifications handler (js/v6-enterprise.js); badge mirrors #notif-badge. */
.v6-notif-bell {
  position: relative;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  border: 1px solid #d7d0c3;
  background: #fffdf8;
  color: #3a4250;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: transform .12s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}
.v6-notif-bell svg { width: 19px; height: 19px; stroke: currentColor; fill: none; stroke-width: 1.8; pointer-events: none; }
.v6-notif-bell:hover { background: #f4f1ea; transform: translateY(-1px); box-shadow: 0 6px 14px rgba(29, 24, 14, .10); border-color: #c9bfae; }
.v6-notif-bell:active { transform: translateY(0); }
.v6-notif-bell:focus-visible { outline: 2px solid #c18a25; outline-offset: 2px; }
.v6-notif-bell .v6-notif-badge {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: #ca3f6b;
  color: #fff;
  font: 800 11px/18px var(--font-ui, Inter, system-ui, sans-serif);
  text-align: center;
  box-shadow: 0 0 0 2px #fffdf8;
  pointer-events: none;
}
.v6-notif-bell[data-has-unread="true"] svg { color: #1d1810; }

/* ── 5. LIVE CONTEXT BADGES (status strip) ───────────────────────────────────
   Replaces the static "Tenant scoped / Audit ready / Sources named" chips with
   information pills: org badge (gold dot) · hot-leads count · tasks-due count.
   Numbers are real (js/v6-enterprise.js) and show an em-dash until data resolves
   (data-integrity.md). Chips read as information, not actions. */
.v6-status-chip { font-weight: 700; }
.v6-status-chip .v6-chip-num {
  font-weight: 850;
  font-variant-numeric: tabular-nums;
  color: #101722;
}
.v6-status-chip .v6-chip-num.is-pending { color: #8a95a3; }
.v6-status-chip.v6-chip-org { font-weight: 800; }
.v6-status-chip.v6-chip-org #v6-chip-org-name { letter-spacing: .01em; }
.v6-status-chip.v6-chip-leads .v6-status-dot { background: #c18a25; box-shadow: 0 0 0 3px rgba(193, 138, 37, .13); }
.v6-status-chip.v6-chip-tasks .v6-status-dot { background: #2f66c3; box-shadow: 0 0 0 3px rgba(47, 102, 195, .13); }
/* subtle entrance when a count first resolves */
@keyframes v6-chip-pop { from { transform: scale(.96); } to { transform: scale(1); } }
.v6-status-chip.v6-chip-resolved { animation: v6-chip-pop .18s ease; }

/* ── 6. RAIL (left nav) REFINEMENT ───────────────────────────────────────────
   Active item: faint gold wash + 3px gold left border (more on-brand than the
   flat white wash). Hover: clean cream overlay + thin gold edge, no heavy gold
   outline. Group headings a touch more subdued + wider tracking. */
.sidebar-nav .v6-nav-heading,
.v6-nav-heading {
  color: #8a99a8;
  font-weight: 700;
  letter-spacing: .12em;
  font-size: 10.5px;
}
.sidebar-nav .v6-nav-item:hover,
.v6-nav-item:hover {
  background: rgba(255, 255, 255, .085) !important;
  outline: none !important;
  box-shadow: inset 2px 0 0 rgba(193, 138, 37, .4) !important;
}
.sidebar-nav .v6-nav-item.active,
[data-theme] .sidebar-nav .v6-nav-item.active,
.v6-nav-item.active {
  background: rgba(193, 138, 37, .13) !important;
  box-shadow: inset 3px 0 0 #c18a25 !important;
}
.sidebar-nav .v6-nav-item.active .v6-nav-label { color: #fbf6ec !important; }
.sidebar-nav .v6-nav-item.active .v6-nav-icon { border-color: rgba(193, 138, 37, .45); }
.sidebar-nav .v6-nav-item { transition: background .14s ease, box-shadow .14s ease; }

/* ── 7. TODAY GREETING ───────────────────────────────────────────────────────
   The Today eyebrow becomes a personalized, ET-anchored greeting (painted by
   js/v6-enterprise.js, bound to JARVIS_CONFIG — never hardcoded). The first
   name gets the single gold accent. Zero added height vs the old eyebrow. */
.v6-today-head .eyebrow .v6-greet-name { color: var(--gold, #c18a25); }

/* ── 8. DECISION QUEUE — PRIORITY ACCENT ─────────────────────────────────────
   A coloured left edge by priority once the renderer tags rows. Gold = urgent,
   blue = assigned, default = none. Additive — empty/normal rows are unchanged. */
.v6-decision-item {
  border-left: 3px solid transparent;
  padding-left: 12px;
  margin-left: -12px;
  border-radius: 0 6px 6px 0;
  transition: background .14s ease;
}
.v6-decision-item.priority-urgent { border-left-color: var(--gold, #c18a25); background: rgba(193, 138, 37, .05); }
.v6-decision-item.priority-assigned { border-left-color: #2f66c3; }
.v6-decision-item:hover { background: rgba(29, 24, 14, .03); }

/* ── 9. EMPTY STATES ─────────────────────────────────────────────────────────
   Center the message under a calm glyph instead of a bare left-aligned line.
   Keeps the existing (honest) message text from the HTML; styles the container. */
.v6-empty {
  text-align: center;
  padding: 20px 14px;
  color: #8a8270;
  font-size: 13px;
  line-height: 1.55;
  max-width: 340px;
  margin: 0 auto;
}
.v6-empty::before {
  content: "";
  display: block;
  width: 34px;
  height: 34px;
  margin: 0 auto 10px;
  border-radius: 9px;
  background:
    rgba(193, 138, 37, .10)
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23c18a25' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M22 12h-6l-2 3h-4l-2-3H2'/><path d='M5.5 5.5h13L22 12v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-6z'/></svg>")
    center / 18px no-repeat;
}
.v6-panel.dark .v6-empty { color: #9fb0bf; }
.v6-panel.dark .v6-empty::before { background-color: rgba(255, 255, 255, .08); }

/* ── 10. TYPOGRAPHY CONSISTENCY ──────────────────────────────────────────────
   Section eyebrows: 11px uppercase, .08em tracking, calm muted-gold (a gold-
   family tone that stays enterprise-quiet, not garish). Metadata/timestamps:
   12px, subdued. Card titles 16–18px. (H1/H2 already 30–34/32px in v6-today.) */
.v6-today-head .eyebrow,
.v6-ask-eyebrow,
.v6-ops-eyebrow,
.v5-eyebrow,
.v7-eyebrow,
.ntf-eyebrow {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.v6-decision-meta,
.v6-approval-src,
.v6-trust-meta {
  font-size: 12px;
}
/* never render UI metadata below 12px on the executive surface */
.v6-panel-body small,
.v6-card small { font-size: 12px; }

/* ── 11. PIPELINE — COLUMN COUNTS + LEAD SCORE BADGES ────────────────────────
   The pipeline renderer (js/pipeline.js) already emits per-column counts as
   .kb-col-count and per-group totals as .kb-group-count (real tasks.length —
   data-integrity safe). They render as flat dim text today; upgrade them to
   proper enterprise count pills. Lead cards get a colour-graded score badge
   (.v6-score-badge, green 80+/amber 50–79/red <50) available to the CRM renderer. */
.kb-col-count,
.kb-group-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 20px;
  padding: 0 7px;
  margin-left: 8px;
  border-radius: 999px;
  background: #ebe7de;
  color: #6a6253 !important;
  font: 800 11px/20px var(--font-mono, monospace) !important;
  font-variant-numeric: tabular-nums;
}
.kb-group-count { background: rgba(193, 138, 37, .14); color: #7a4a0a !important; }
.v6-score-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 22px;
  padding: 0 7px;
  border-radius: 6px;
  font: 800 12px/1 var(--font-mono, monospace);
  font-variant-numeric: tabular-nums;
  border: 1px solid transparent;
}
.v6-score-badge.s-hot  { background: #dff2e7; color: #17623a; border-color: #b7dfca; }
.v6-score-badge.s-warm { background: #fbecd0; color: #7a4a0a; border-color: #e7c98a; }
.v6-score-badge.s-cold { background: #fde1ea; color: #9c1844; border-color: #f5b8cc; }

/* ── 12. GLOBAL SEARCH — slightly richer focus affordance ─────────────────────
   The command spine reads as the primary entry. A touch more presence on hover
   so it invites the click that opens the ⌘K palette. */
.v6-global-search:hover { border-color: #c9bfae; background: #f5f2ec; }
.v6-global-search { cursor: text; }

/* ── 13. WILL-CHANGE hints for the few animated chrome elements ───────────────*/
.v6-notif-bell, .v6-status-chip.v6-chip-resolved, .v6-card, .v6-kpi-tile { will-change: transform; }


/* ════════════════════════════════════════════════════════════════════════════
   LAUNCH-MORNING POLISH  (2026-06-29, account B)
   Today home page $100M enterprise uplift — synthesised from a 6-agent design
   pass + ui-ux-pro-max (Swiss minimalism) + the V6 north-star coherence rubric.
   Surfaces: top command bar · left rail · voice dock / bottom bar · Morning
   Brief · Decision-Queue/Signals icons. CSS-only winning layer (loads after all
   v6-* + bundle sheets, immediately before v6-lock.css). Locked V6 tokens only:
   ONE gold accent (--gold #c18a25), zero cyan, >=12px type, >=4.5:1 contrast,
   solid #fffdf8 cards (no washed rgba white over cream), calm transform/opacity
   hover gated for reduced-motion. Voice ids, data-binds, motion wiring, and the
   1920x1080 no-scroll frame are untouched.
   ════════════════════════════════════════════════════════════════════════════ */

/* ===== TOPBAR (launch-morning polish 2026-06-29) =====
   Unifies header#statusbar controls into one calm Linear/Ramp/Attio set. */
.v6-global-search,
.v6-notif-bell,
.v7-new-btn,
.v6-ask-atlas-btn {
  height: 40px;
  border-radius: var(--radius, 8px);
  transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.v6-global-search {
  border: 1px solid var(--line, #d7d0c3);
  background: var(--surface-3, #f0eee8);
  color: #54606f;
}
.v6-global-search input { font-size: 15px; color: var(--ink, #101722); }
.v6-global-search input::placeholder { color: #677384; }      /* was #8a95a3 (FAIL) */
.v6-global-search:hover { border-color: var(--line-strong, #c4b9a8); background: #fbf9f4; }
.v6-global-search:focus-within {
  border-color: var(--gold, #c18a25);
  background: var(--surface, #fffdf8);
  box-shadow: 0 0 0 3px rgba(193,138,37,.15);
}
.v6-search-hint {
  color: #5f6b7a;                                              /* was #9fb0bf (FAIL) */
  background: var(--surface, #fffdf8);
  border: 1px solid var(--line, #d7d0c3);
  padding: 2px 7px;
  border-radius: 5px;
}
.v6-notif-bell {
  width: 40px;
  border: 1px solid var(--line, #d7d0c3);
  background: var(--surface, #fffdf8);
  color: #3a4250;
}
.v6-notif-bell svg { width: 18px; height: 18px; stroke-width: 1.8; }
.v7-new-btn {
  padding: 0 14px;
  border: 1px solid var(--line, #d7d0c3);
  background: var(--surface, #fffdf8);
  color: var(--ink, #101722);
  font-size: 14px;
  font-weight: 600;
  gap: 8px;
}
.v7-new-btn svg { width: 17px; height: 17px; }
.v6-notif-bell:hover,
.v7-new-btn:hover {
  background: #f4f1ea;
  border-color: var(--line-strong, #c4b9a8);
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(29,24,14,.08);
}
.v6-notif-bell:active,
.v7-new-btn:active { transform: translateY(0); box-shadow: 0 1px 2px rgba(29,24,14,.06); }
.v7-new-btn[aria-expanded="true"] {                           /* was saturated #fbecd0 fill */
  background: var(--surface-2, #ebe7de);
  border-color: var(--gold, #c18a25);
}
.v6-ask-atlas-btn {
  padding: 0 18px;
  background: var(--gold, #c18a25);
  border: 1px solid #b07d1c;
  color: #1f1503;
  font-size: 14px;
  font-weight: 700;
  gap: 8px;
  box-shadow: 0 1px 2px rgba(29,24,14,.10), 0 1px 3px rgba(29,24,14,.12);
  animation: none;                                            /* kills the section-3 idle pulse */
}
.v6-ask-atlas-btn svg { margin: 0; }
.v6-ask-atlas-btn:hover {
  background: #b07d1c;
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(29,24,14,.16);
}
.v6-ask-atlas-btn:active { transform: translateY(0); box-shadow: 0 1px 2px rgba(29,24,14,.10); }
.v6-ask-atlas-btn:focus-visible { outline: 2px solid var(--gold, #c18a25); outline-offset: 2px; }
.v6-status-chip {
  height: 38px;
  font-weight: 600;
  font-size: 13px;
  background: var(--surface, #fffdf8);
  border: 1px solid var(--line, #d7d0c3);
  box-shadow: 0 1px 2px rgba(29,24,14,.04);                   /* was white inner shadow */
}
.v6-status-chip.v6-chip-org { font-weight: 700; }
.v6-status-chip .v6-chip-num { font-variant-numeric: tabular-nums; color: var(--ink, #101722); }
.v6-status-chip .v6-chip-num.is-pending { color: #54606f; }   /* was #8a95a3 (FAIL); em-dash preserved */
.v6-role-chip {
  height: 38px;
  padding: 0 13px;
  border-radius: var(--radius, 8px);
  border: 1px solid var(--line, #d7d0c3);
  background: var(--surface-2, #ebe7de);
  color: #54606f;
  font-weight: 600;
  font-size: 11.5px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
@media (prefers-reduced-motion: reduce) {
  .v6-global-search, .v6-notif-bell, .v7-new-btn, .v6-ask-atlas-btn,
  .v6-status-chip, .v6-role-chip { transition: none; }
  .v6-notif-bell:hover, .v7-new-btn:hover, .v6-ask-atlas-btn:hover { transform: none; }
}
/* ===== END TOPBAR polish ===== */


/* ===== LEFTNAV (launch-morning polish 2026-06-29) =====
   $100M enterprise calm for the dark command rail. CSS-only. */
.sidebar-nav .v6-nav-item .v6-nav-sub,
.v6-nav-sub { display: none !important; } /* single-line labels (was display:block) */

.sidebar-nav .v6-nav-item .v6-nav-icon,
.v6-nav-icon {
  width: 24px; height: 24px;
  border: 0;                     /* borderless line icons (was 1px chip border) */
  border-radius: 0;
  background: transparent;
  color: #9fb0bf;
}
.sidebar-nav .v6-nav-item .v6-nav-icon .ri-svg,
.sidebar-nav .v6-nav-item .v6-nav-icon svg,
.v6-nav-icon svg {
  width: 18px !important; height: 18px !important;   /* was 14px !important */
  color: #9fb0bf !important;                          /* was #b8c8d8 !important */
}
.sidebar-nav .v6-nav-item:hover .v6-nav-icon .ri-svg,
.sidebar-nav .v6-nav-item:hover .v6-nav-icon svg { color: #edf4fb !important; }
.sidebar-nav .v6-nav-item.active .v6-nav-icon .ri-svg,
.sidebar-nav .v6-nav-item.active .v6-nav-icon svg { color: #d7a13a !important; }
.sidebar-nav .v6-nav-item.active .v6-nav-icon { border-color: transparent !important; }

.sidebar-nav .v6-nav-item .v6-nav-state:not(#nav-notif-count),
.v6-nav-state:not(#nav-notif-count) { display: none !important; } /* hide cryptic 4.1/2.9 decimals */
#nav-notif-count:not([hidden]) {
  display: inline-grid; place-items: center;
  min-width: 20px; height: 18px; padding: 0 6px;
  border-radius: 999px;
  background: rgba(193,138,37,.18);
  color: #d7a13a;
  font: 700 12px var(--font-mono, "Cascadia Mono", monospace);
}

.sidebar-nav .v6-nav-item,
.v6-nav-item {
  min-height: 34px;            /* was 42px */
  padding: 6px 10px;
  margin: 1px 0;
}
.v6-nav-group { margin: 0 0 12px; }   /* was 20px */
.v6-brand { margin-bottom: 16px; }    /* was 22px */
.v6-side-card { margin: 0 0 8px; padding: 12px; }

.sidebar-nav .v6-nav-heading,
.v6-nav-heading {
  font-size: 12px;             /* was 10.5px — clears the executive floor */
  letter-spacing: .1em;
  margin: 0 6px 6px;
  color: #8a99a8;
}
.sidebar-nav .v6-nav-item:focus-visible,
.v6-nav-item:focus-visible {
  outline: 2px solid var(--gold, #c18a25) !important;
  outline-offset: 2px;
}
/* ===== END LEFTNAV polish ===== */


/* ===== VOICEDOCK (launch-morning polish 2026-06-29) =====
   Skin/size only. Every voice id preserved. Eradicates V5 cyan; lifts micro-fonts. */
.qb-voice-section.vd-host { --accent-rgb: 193, 138, 37; }  /* orb idle-glow cyan -> gold */

.qb-voice-section.vd-host .qbvc-title { display: none !important; }  /* drop redundant caption */
.vd-orb.orb-wrap::before { content: none; }                          /* drop 8px ATLAS micro-label */

.vd-status-bar {
  font-family: var(--font-ui, "Aptos", system-ui, sans-serif);
  font-size: 12px;
  letter-spacing: .12em;
  font-weight: 700;
  color: #54606f;
  min-height: 14px;
  padding-bottom: 2px;
}
.vd-status-bar::after { color: #54606f; }
.vd-host:has(.orb-wrap.listening) .vd-status-bar::after,
.vd-host:has(.orb-wrap.thinking)  .vd-status-bar::after,
.vd-host:has(.orb-wrap.speaking)  .vd-status-bar::after { color: #9a6a12; }

.vd-mic.mic-indicator {
  font-family: var(--font-ui, "Aptos", system-ui, sans-serif);
  font-size: 12px;
  letter-spacing: .08em;
  font-weight: 600;
  color: #54606f;
  opacity: 1;
}
.vd-mic .mic-pulse { background: var(--gold, #c18a25); box-shadow: none; }

.vd-livetag.tag.live {
  font-size: 11px;
  letter-spacing: .08em;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 999px;
  color: #54606f;
  background: var(--surface-2, #ebe7de);
  border: 1px solid var(--line, #d7d0c3);
}

.vd-gear.hero-settings-btn {
  width: 36px; height: 36px; flex: 0 0 36px;
  border-radius: 8px;
  color: #54606f;
  opacity: .8;
  transition: opacity 160ms ease, background 160ms ease;
}
.vd-gear.hero-settings-btn:hover { opacity: 1; background: var(--surface-2, #ebe7de); transform: none; }
.vd-gear.hero-settings-btn:focus-visible { outline: 2px solid var(--gold, #c18a25); outline-offset: 2px; }

.qb-sync-panel {
  border-left: 1px solid var(--line, #d7d0c3) !important; /* overrides jarvis.css cyan border !important */
  gap: 3px !important;
  padding-left: 12px !important;
}
.qbs-lab {
  font-size: 12px !important;        /* was 7px !important */
  letter-spacing: .1em !important;
  color: #54606f !important;
}
.qbs-stat {
  font-size: 12px !important;        /* was 8px !important */
  font-weight: 600 !important;
  letter-spacing: .04em !important;
  color: #54606f !important;
  text-shadow: none !important;      /* kills green glow */
}
.qbs-dot {
  background: var(--good, #2e8b57) !important;
  box-shadow: none !important;
  animation: none !important;        /* calm — kills blink */
}

.vd-tx.dock-transcript { color: var(--ink, #101722); }
.vd-tx.dock-transcript-reply { border-left: 2px solid var(--gold, #c18a25); }

.vd-popover.voice-settings-popover {
  background: var(--surface, #fffdf8);
  border: 1px solid var(--line, #d7d0c3);
  border-radius: var(--radius, 8px);
  box-shadow: 0 10px 24px rgba(29,24,14,.07);
}
.vsp-header { font-size: 12px; letter-spacing: .1em; font-weight: 700; color: #54606f; }
.vsp-footer { font-size: 12px; color: #54606f; }

@media (prefers-reduced-motion: reduce) {
  .vd-orb .orb { animation: none !important; }
  .qbs-dot { animation: none !important; }
}
/* ===== /VOICEDOCK ===== */


/* ===== BOTTOM BAR — retire the V5 cyber HUD (2026-06-29) =====
   The #hint-bar shipped a V5 cyber grab-bag on desktop: 8 non-functional
   "mockup carbon copy" quick-action buttons (.qb-actions-row — no handlers,
   duplicating the top-bar "+ New" menu + rail), a cyan holographic sphere
   (.qb-holo-orb-wrap, aria-hidden decoration), and decorative flow arrows
   (.qb-flow-arrows). The V6 north star is "bottom = the voice dock + Press
   SPACE to talk." Retire the cyber decoration so only the premium voice dock
   and the calm Synced·live status remain. (Mobile already hid these <=768px.) */
#hint-bar .qb-actions-row,
#hint-bar .qb-holo-orb-wrap,
#hint-bar .qb-flow-arrows { display: none !important; }
/* Voice dock leads; the system status sits to the right of the bar. */
#hint-bar .qb-voice-section.vd-host { margin-right: auto; }
/* ===== /BOTTOM BAR cyber retire ===== */


/* ===== MORNING BRIEF (launch-morning polish 2026-06-29) =====
   Solid enterprise cards (no washed rgba white over cream), readable contrast,
   calm neutral numeral badge (retires the decorative teal fill). */
.v6-brief-text{
  color:#54606f;
  font-size:14px;
  line-height:1.55;
  max-width:62ch;
  margin:0 0 14px;
}
.v6-brief-item{
  background:var(--surface,#fffdf8);
  border:1px solid var(--line,#d7d0c3);
  border-radius:var(--radius,8px);
  box-shadow:0 1px 2px rgba(29,24,14,.05), 0 1px 3px rgba(29,24,14,.08);
  transition:box-shadow .18s ease;
}
@media (hover:hover){
  .v6-brief-item:hover{
    box-shadow:0 2px 4px rgba(29,24,14,.06), 0 4px 10px rgba(29,24,14,.10);
  }
}
@media (prefers-reduced-motion:reduce){
  .v6-brief-item{ transition:none; }
}
.v6-brief-item .num{
  width:28px; height:28px;
  border-radius:7px;
  background:#1d2530;
  color:#f6f3ec;
  font-family:var(--font-mono,"Cascadia Mono",ui-monospace,monospace);
  font-weight:800;
  font-size:13px;
  letter-spacing:.01em;
}
.v6-bi-label{
  color:#54606f;
  font-size:12px;
  letter-spacing:.05em;
}
.v6-bi-val{
  color:var(--ink,#101722);
  font-size:14px;
  line-height:1.4;
  font-weight:700;
}
/* ===== /MORNING BRIEF ===== */


/* ===== TODAY · DECISION QUEUE + SIGNALS ICON CHIP (launch-morning polish 2026-06-29) =====
   One coherent Lucide-style monochrome line-icon family replaces the old emoji
   glyphs in .v6-decision-icon. (Icon SVGs injected by iconFor() in index.html.) */
.v6-decision-icon {
  box-sizing: border-box;
  width: 28px; height: 28px;
  border-radius: 7px;
  display: grid; place-items: center;
  flex: none;
  background: #f4efe4;                 /* calm warm neutral — retires loud #fbecd0 */
  border: 1px solid var(--line, #d7d0c3);
  color: #54606f;                      /* readable ink, 5.58:1 on the chip */
  font-size: 0; line-height: 0;        /* kill any residual glyph metrics */
  box-shadow: 0 1px 2px rgba(29, 24, 14, .05);
}
.v6-decision-icon svg {
  width: 16px; height: 16px;
  display: block;
  color: inherit;
}
.v6-decision-item[data-risk="high"] .v6-decision-icon {
  background: var(--surface, #fffdf8);
  border-color: #e6c68f;
  color: var(--gold, #c18a25);
}
.v6-ask .v6-decision-icon,
[class*="dark"] .v6-decision-icon {
  background: rgba(255, 255, 255, .06);
  border-color: rgba(255, 255, 255, .14);
  color: #eff6fb;
}
@media (prefers-reduced-motion: reduce) {
  .v6-decision-icon { transition: none; }
}
/* ===== /DECISION QUEUE ICON CHIP ===== */


/* NOTE: Ask-Atlas button + role chip are owned by css/v7-tools.css (injected at
   runtime, last in the cascade, !important) — fixed there at source on 2026-06-29
   (flat solid gold CTA + readable outline role chip). No override needed here. */
