/* ============================================================================
 * Future Island Intelligence Suite — v1.5.0-rc.17
 * SaaS App design system (rc.17) + social sections & minimal app shell (rc.18).
 * ----------------------------------------------------------------------------
 * Palette: NAVY (brand / primary / route), GREEN (success / live / signal),
 * BLACK (ink / text), WHITE (surfaces). A clean, flat, accessible SaaS surface
 * with an app bar, a centered work canvas, elevated cards and full
 * responsiveness across mobile / tablet / desktop. Loaded LAST; scoped to
 * .ves-wrap.fi-shell so it re-skins the whole Signal Room.
 * ========================================================================== */

/* ---- Design tokens (navy / green / black / white) ---- */
.ves-wrap.fi-shell {
    /* navy */
    --fi-navy-900: #0B2138;
    --fi-navy-800: #0F2D4D;
    --fi-navy-700: #143A63;
    --fi-primary: #1E5BA8;
    --fi-primary-hover: #184B8C;
    --fi-primary-050: #EAF1FA;
    --fi-primary-100: #D6E4F5;
    /* green */
    --fi-green: #1E9E63;
    --fi-green-hover: #178052;
    --fi-green-050: #E7F6EE;
    /* ink / black */
    --fi-ink: #0E1B2A;
    --fi-ink-2: #41506A;
    --fi-muted: #6E7C90;
    /* white / surfaces */
    --fi-white: #FFFFFF;
    --fi-canvas: #EEF3F8;
    --fi-surface: #FFFFFF;
    --fi-surface-2: #F5F8FC;
    /* lines + neutrals */
    --fi-line: #E1E8F0;
    --fi-line-2: #CFDAE6;
    --fi-slate: #5A6B85;
    --fi-slate-050: #EEF2F7;
    /* functional danger (minimal, errors only) */
    --fi-danger: #B42318;
    --fi-danger-050: #FBEAE8;
    /* elevation */
    --fi-shadow-sm: 0 1px 2px rgba(11, 33, 56, .06), 0 1px 3px rgba(11, 33, 56, .08);
    --fi-shadow-md: 0 6px 18px rgba(11, 33, 56, .08);
    --fi-shadow-lg: 0 18px 48px rgba(11, 33, 56, .12);
    --fi-radius: 12px;
    --fi-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, "Helvetica Neue", Arial, sans-serif;

    /* Re-point the legacy conversation tokens to the SaaS palette so every
       existing component re-skins automatically. */
    --fc-ink: var(--fi-ink);
    --fc-paper: var(--fi-surface);
    --fc-paper-2: var(--fi-surface-2);
    --fc-bg: var(--fi-canvas);
    --fc-blue: var(--fi-primary);
    --fc-blue-soft: var(--fi-primary-050);
    --fc-sand: var(--fi-line-2);
    --fc-lime: var(--fi-green);
    --fc-orange: var(--fi-slate);
    --fc-line: var(--fi-line);
    --fc-line-soft: var(--fi-line);
}

/* ---- App canvas + base ---- */
.ves-wrap.fi-shell .ves-page[data-page="social"] {
    background: var(--fi-canvas);
    font-family: var(--fi-font);
    -webkit-font-smoothing: antialiased;
}
.ves-wrap.fi-shell .ves-page[data-page="social"] .ves-page-inner {
    max-width: 1040px; margin: 0 auto; padding: 18px 16px 22px; width: 100%; box-sizing: border-box;
}
.ves-wrap.fi-shell .fiis-convo,
.ves-wrap.fi-shell .fiis-msg-bubble,
.ves-wrap.fi-shell .fiis-composer-input { font-family: var(--fi-font); }

/* ---- App shell ---- */
.ves-wrap.fi-shell .fiis-convo {
    height: min(82vh, 920px);
    background: var(--fi-surface);
    border: 1px solid var(--fi-line);
    border-radius: 16px;
    box-shadow: var(--fi-shadow-lg);
    overflow: hidden;
}

/* ---- App bar (header) ---- */
.ves-wrap.fi-shell .fiis-convo-head {
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    padding: 12px 18px;
    background: var(--fi-surface);
    border-bottom: 1px solid var(--fi-line);
    position: sticky; top: 0; z-index: 5;
}
.ves-wrap.fi-shell .fiis-convo-brand { display: flex; align-items: center; gap: 11px; min-width: 0; }
.ves-wrap.fi-shell .fiis-convo-mark {
    width: 38px; height: 38px; border-radius: 10px;
    background: var(--fi-navy-800); color: #fff;
    display: flex; align-items: center; justify-content: center; font-weight: 800; letter-spacing: .02em; flex: 0 0 auto;
}
.ves-wrap.fi-shell .fiis-convo-id strong { display: block; font-size: 15px; font-weight: 800; color: var(--fi-ink); line-height: 1.1; }
.ves-wrap.fi-shell .fiis-convo-id .fiis-convo-sub {
    display: flex; align-items: center; gap: 7px; margin-top: 2px;
    font-family: var(--fc-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .07em; color: var(--fi-muted);
}
.ves-wrap.fi-shell .fiis-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--fi-green); }

/* App nav */
.ves-wrap.fi-shell .fiis-appnav { display: flex; align-items: center; gap: 4px; padding: 3px; background: var(--fi-surface-2); border: 1px solid var(--fi-line); border-radius: 999px; }
.ves-wrap.fi-shell .fiis-navbtn {
    border: 0; background: transparent; color: var(--fi-ink-2); cursor: pointer;
    font-size: 13px; font-weight: 600; padding: 7px 14px; border-radius: 999px; line-height: 1;
    transition: background .15s ease, color .15s ease;
}
.ves-wrap.fi-shell .fiis-navbtn:hover { color: var(--fi-ink); }
.ves-wrap.fi-shell .fiis-navbtn.is-active { background: var(--fi-white); color: var(--fi-primary); box-shadow: var(--fi-shadow-sm); }

.ves-wrap.fi-shell .fiis-convo-head-actions { margin-left: auto; display: flex; gap: 8px; }
.ves-wrap.fi-shell .fiis-convo-ghost {
    border: 1px solid var(--fi-line-2); background: var(--fi-white); color: var(--fi-ink-2);
    border-radius: 9px; padding: 8px 13px; font-size: 13px; font-weight: 600; cursor: pointer; line-height: 1;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.ves-wrap.fi-shell .fiis-convo-ghost:hover { border-color: var(--fi-primary); color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-convo-ghost.is-primary { background: var(--fi-primary); border-color: var(--fi-primary); color: #fff; }
.ves-wrap.fi-shell .fiis-convo-ghost.is-primary:hover { background: var(--fi-primary-hover); border-color: var(--fi-primary-hover); color: #fff; }

/* ---- Thread + messages ---- */
.ves-wrap.fi-shell .fiis-convo-thread {
    flex: 1; overflow-y: auto; padding: 22px 18px 18px; gap: 16px;
    background: var(--fi-surface-2);
    scroll-behavior: smooth;
}
.ves-wrap.fi-shell .fiis-msg { max-width: 86%; }
.ves-wrap.fi-shell .fiis-msg-avatar { border-radius: 9px; }
.ves-wrap.fi-shell .fiis-msg.is-assistant .fiis-msg-avatar { background: var(--fi-navy-800); color: #fff; }
.ves-wrap.fi-shell .fiis-msg.is-user .fiis-msg-avatar { background: var(--fi-primary); color: #fff; }
.ves-wrap.fi-shell .fiis-msg-bubble {
    background: var(--fi-white); border: 1px solid var(--fi-line); border-radius: 14px;
    box-shadow: var(--fi-shadow-sm); font-size: 14.5px; line-height: 1.55; color: var(--fi-ink);
}
.ves-wrap.fi-shell .fiis-msg.is-user .fiis-msg-bubble { background: var(--fi-primary); border-color: var(--fi-primary); color: #fff; }
.ves-wrap.fi-shell .fiis-msg-bubble .fiis-em { color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-msg.is-user .fiis-msg-bubble .fiis-em { color: #CFE3FF; }
.ves-wrap.fi-shell .fiis-msg-meta { color: var(--fi-muted); }

/* ---- Composer (app input bar) ---- */
.ves-wrap.fi-shell .fiis-composer {
    background: var(--fi-white); border-top: 1px solid var(--fi-line);
    padding: 12px 16px 14px; position: relative; z-index: 4;
}
.ves-wrap.fi-shell .fiis-composer-row {
    display: flex; align-items: flex-end; gap: 8px;
    background: var(--fi-surface-2); border: 1px solid var(--fi-line-2); border-radius: 14px; padding: 6px 6px 6px 12px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.ves-wrap.fi-shell .fiis-composer-row:focus-within { border-color: var(--fi-primary); box-shadow: 0 0 0 3px var(--fi-primary-050); }
.ves-wrap.fi-shell .fiis-composer-input {
    flex: 1; border: 0; background: transparent; resize: none; outline: none;
    font-size: 15px; line-height: 1.45; color: var(--fi-ink); padding: 8px 0; min-height: 24px; max-height: 140px;
}
.ves-wrap.fi-shell .fiis-composer-input::placeholder { color: var(--fi-muted); }
.ves-wrap.fi-shell .fiis-send {
    flex: 0 0 auto; width: 40px; height: 40px; border-radius: 11px; border: 0; cursor: pointer;
    background: var(--fi-primary); color: #fff; font-size: 18px; line-height: 1;
    display: flex; align-items: center; justify-content: center; transition: background .15s ease, transform .08s ease;
}
.ves-wrap.fi-shell .fiis-send:hover { background: var(--fi-primary-hover); }
.ves-wrap.fi-shell .fiis-send:active { transform: scale(.94); }
.ves-wrap.fi-shell .fiis-send[disabled] { background: var(--fi-line-2); cursor: default; }
.ves-wrap.fi-shell .fiis-mic { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 11px; border: 1px solid var(--fi-line-2); background: var(--fi-white); cursor: pointer; }
.ves-wrap.fi-shell .fiis-mic.is-listening { border-color: var(--fi-green); background: var(--fi-green-050); }
.ves-wrap.fi-shell .fiis-composer-hint { font-size: 11.5px; color: var(--fi-muted); margin-top: 8px; }

/* ---- Mode chips + chips ---- */
.ves-wrap.fi-shell .fiis-composer-modes { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 9px; }
.ves-wrap.fi-shell .fiis-chip {
    border: 1px solid var(--fi-line-2); background: var(--fi-white); color: var(--fi-ink-2);
    border-radius: 999px; padding: 6px 12px; font-size: 12.5px; font-weight: 600; cursor: pointer; line-height: 1;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.ves-wrap.fi-shell .fiis-chip:hover { border-color: var(--fi-primary); color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-chip.is-active { background: var(--fi-primary); border-color: var(--fi-primary); color: #fff; }

/* ---- Plan tags ---- */
.ves-wrap.fi-shell .fiis-tag.is-provider { background: var(--fi-primary-050); color: var(--fi-primary); border-color: var(--fi-primary-100); }
.ves-wrap.fi-shell .fiis-tag.is-blocked { background: var(--fi-slate-050); color: var(--fi-slate); border-color: var(--fi-line-2); text-decoration: line-through; text-decoration-color: var(--fi-line-2); }

/* ---- Count pills ---- */
.ves-wrap.fi-shell .fiis-count { background: var(--fi-surface-2); border: 1px solid var(--fi-line); border-radius: 10px; }
.ves-wrap.fi-shell .fiis-count.is-useful b { color: var(--fi-green); }
.ves-wrap.fi-shell .fiis-count.is-discarded b { color: var(--fi-slate); }

/* ---- Analysis cards ---- */
.ves-wrap.fi-shell .fiis-card { background: var(--fi-white); border: 1px solid var(--fi-line); box-shadow: var(--fi-shadow-sm); border-radius: var(--fi-radius); }
.ves-wrap.fi-shell .fiis-card--executive { border-left-color: var(--fi-navy-800); }
.ves-wrap.fi-shell .fiis-card--evidence  { border-left-color: var(--fi-green); }
.ves-wrap.fi-shell .fiis-card--metrics   { border-left-color: var(--fi-line-2); }
.ves-wrap.fi-shell .fiis-card--inference { border-left-color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-card--hypothesis,
.ves-wrap.fi-shell .fiis-card--cannot    { border-left-color: var(--fi-slate); }
.ves-wrap.fi-shell .fiis-card--brief     { border-left-color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-card-badge { background: var(--fi-slate-050); color: var(--fi-slate); }
.ves-wrap.fi-shell .fiis-card-badge.is-limited { background: var(--fi-slate); color: #fff; }
.ves-wrap.fi-shell .fiis-card-kind { color: var(--fi-muted); }

/* ---- Batch + card action buttons ---- */
.ves-wrap.fi-shell .fiis-act {
    border: 1px solid var(--fi-line-2); background: var(--fi-white); color: var(--fi-ink); border-radius: 10px;
    font-family: var(--fi-font); font-weight: 600; font-size: 12.5px; padding: 8px 14px; cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.ves-wrap.fi-shell .fiis-act:hover { border-color: var(--fi-primary); color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-act.is-primary { background: var(--fi-primary); border-color: var(--fi-primary); color: #fff; }
.ves-wrap.fi-shell .fiis-act.is-primary:hover { background: var(--fi-primary-hover); border-color: var(--fi-primary-hover); color: #fff; }
.ves-wrap.fi-shell .fiis-card-act { border: 1px solid var(--fi-line); background: var(--fi-surface-2); color: var(--fi-ink-2); border-radius: 8px; }
.ves-wrap.fi-shell .fiis-card-act:hover { border-color: var(--fi-primary); color: var(--fi-primary); }

/* ---- Example evidence cards ---- */
.ves-wrap.fi-shell .fiis-example { background: var(--fi-white); border: 1px solid var(--fi-line); box-shadow: var(--fi-shadow-sm); border-radius: var(--fi-radius); }
.ves-wrap.fi-shell .fiis-example-badge.is-direct, .ves-wrap.fi-shell .fiis-evidence-tag.is-direct { background: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-example-badge.is-adjacent, .ves-wrap.fi-shell .fiis-evidence-tag.is-adjacent { background: var(--fi-green); }
.ves-wrap.fi-shell .fiis-example-badge.is-weak, .ves-wrap.fi-shell .fiis-evidence-tag.is-weak { background: var(--fi-slate); }
.ves-wrap.fi-shell .fiis-mini { border: 1px solid var(--fi-line-2); background: var(--fi-white); color: var(--fi-ink-2); border-radius: 8px; font-weight: 600; }
.ves-wrap.fi-shell .fiis-mini:hover { border-color: var(--fi-primary); color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-mini.is-primary { background: var(--fi-primary); border-color: var(--fi-primary); color: #fff; }

/* ---- Saved records ---- */
.ves-wrap.fi-shell .fiis-record { background: var(--fi-white); border: 1px solid var(--fi-line); box-shadow: var(--fi-shadow-sm); }
.ves-wrap.fi-shell .fiis-record--insight { border-left-color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-record--brief   { border-left-color: var(--fi-navy-800); }
.ves-wrap.fi-shell .fiis-record--memory  { border-left-color: var(--fi-green); }

/* ---- Brief block ---- */
.ves-wrap.fi-shell .fiis-brief { border: 1px solid var(--fi-line); border-left: 3px solid var(--fi-primary); background: var(--fi-surface-2); box-shadow: var(--fi-shadow-sm); }

/* ---- Scroll-to-latest ---- */
.ves-wrap.fi-shell .fiis-scrolldown { background: var(--fi-primary); color: #fff; box-shadow: var(--fi-shadow-md); border: 0; }

/* ---- Accessibility: visible focus ring everywhere ---- */
.ves-wrap.fi-shell .fiis-convo :focus-visible {
    outline: 2px solid var(--fi-primary); outline-offset: 2px; border-radius: 8px;
}

/* ============================================================================
 * Responsive — mobile-first refinements
 * ========================================================================== */
/* Tablet and below: the app bar wraps cleanly, nav becomes full-width row. */
@media (max-width: 860px) {
    .ves-wrap.fi-shell .ves-page[data-page="social"] .ves-page-inner { padding: 10px 10px 14px; }
    .ves-wrap.fi-shell .fiis-convo { height: min(88vh, 920px); border-radius: 14px; }
    .ves-wrap.fi-shell .fiis-convo-head { gap: 10px 12px; padding: 10px 12px; }
    .ves-wrap.fi-shell .fiis-appnav { order: 3; width: 100%; justify-content: center; }
    .ves-wrap.fi-shell .fiis-convo-head-actions { margin-left: auto; }
    .ves-wrap.fi-shell .fiis-msg { max-width: 94%; }
}
/* Phones: stack the bar, full-bleed app, larger touch targets. */
@media (max-width: 560px) {
    .ves-wrap.fi-shell .ves-page[data-page="social"] .ves-page-inner { padding: 0; }
    .ves-wrap.fi-shell .fiis-convo { height: calc(100vh - 8px); height: 100dvh; border-radius: 0; border-left: 0; border-right: 0; }
    .ves-wrap.fi-shell .fiis-convo-head { padding: 9px 12px; }
    .ves-wrap.fi-shell .fiis-convo-id strong { font-size: 14px; }
    .ves-wrap.fi-shell .fiis-convo-head-actions .fiis-convo-ghost:not(.is-primary) { display: none; } /* keep the primary action only */
    .ves-wrap.fi-shell .fiis-convo-thread { padding: 16px 12px 14px; }
    .ves-wrap.fi-shell .fiis-msg { max-width: 100%; }
    .ves-wrap.fi-shell .fiis-navbtn { padding: 8px 14px; font-size: 13px; }
    .ves-wrap.fi-shell .fiis-send, .ves-wrap.fi-shell .fiis-mic { width: 44px; height: 44px; }
    .ves-wrap.fi-shell .fiis-batch-actions .fiis-act { flex: 1 1 calc(50% - 8px); text-align: center; }
}
/* Desktop: a touch more breathing room. */
@media (min-width: 1100px) {
    .ves-wrap.fi-shell .ves-page[data-page="social"] .ves-page-inner { padding: 24px 16px 28px; }
}
/* Honor reduced-motion. */
@media (prefers-reduced-motion: reduce) {
    .ves-wrap.fi-shell .fiis-send, .ves-wrap.fi-shell .fiis-chip, .ves-wrap.fi-shell .fiis-act, .ves-wrap.fi-shell .fiis-navbtn { transition: none; }
}

/* ============================================================================
 * v1.5.0-rc.18 — Social-network sections + minimal app chrome + full-height app
 *   The host page fixes this section and hides the site header/footer, so the
 *   Signal Room fills the viewport like a native app. Flat surfaces only.
 * ========================================================================== */
/* Full-height app feel (the work canvas fills the available viewport). */
.ves-wrap.fi-shell .ves-page[data-page="social"] .ves-page-inner { padding: 12px 14px; }
.ves-wrap.fi-shell .fiis-convo { height: calc(100dvh - 24px); max-height: 1180px; }

/* Live dot: a small status mark only (no "en vivo" overclaim text). */
.ves-wrap.fi-shell .fiis-convo-sub { gap: 6px; }

/* Minimal chrome: flatter assistant bubbles (less boxed), keep user bubble solid. */
.ves-wrap.fi-shell .fiis-msg.is-assistant .fiis-msg-bubble {
    box-shadow: none; background: var(--fi-white); border-color: var(--fi-line);
}
.ves-wrap.fi-shell .fiis-composer-hint { font-size: 11px; color: var(--fi-muted); margin-top: 7px; }
.ves-wrap.fi-shell .fiis-composer-modes { margin-bottom: 8px; }

/* Social-network sections (re-introduced). A flat, minimal platform picker. */
.ves-wrap.fi-shell .fiis-platforms {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px;
}
@media (min-width: 560px) { .ves-wrap.fi-shell .fiis-platforms { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ves-wrap.fi-shell .fiis-platform {
    border: 1px solid var(--fi-line-2); background: var(--fi-white); color: var(--fi-ink);
    border-radius: 10px; padding: 12px 10px; font-size: 13px; font-weight: 600; cursor: pointer; text-align: center;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.ves-wrap.fi-shell .fiis-platform:hover { border-color: var(--fi-primary); color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-platform.is-active { background: var(--fi-primary); border-color: var(--fi-primary); color: #fff; }

/* The active-network label in the app bar reads as product data (mono). */
.ves-wrap.fi-shell [data-fiis-platlabel] { font-family: var(--fc-mono); color: var(--fi-ink-2); }

/* Optional full-bleed mode for hosts that fully fix the section + hide chrome:
   add class "fiis-app-fullbleed" to the page wrapper. */
.ves-wrap.fi-shell.fiis-app-fullbleed .ves-page[data-page="social"] .ves-page-inner { padding: 0; max-width: none; }
.ves-wrap.fi-shell.fiis-app-fullbleed .fiis-convo { height: 100dvh; max-height: none; border-radius: 0; border-left: 0; border-right: 0; }

@media (max-width: 560px) {
    .ves-wrap.fi-shell .ves-page[data-page="social"] .ves-page-inner { padding: 0; }
    .ves-wrap.fi-shell .fiis-convo { height: 100dvh; }
    .ves-wrap.fi-shell .fiis-platforms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================================
 * v1.5.0-rc.19 — Analytics panel (real metrics from the dataset)
 * ========================================================================== */
.ves-wrap.fi-shell .fiis-metrics {
    display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 10px;
}
@media (min-width: 560px) { .ves-wrap.fi-shell .fiis-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .ves-wrap.fi-shell .fiis-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ves-wrap.fi-shell .fiis-metric {
    border: 1px solid var(--fi-line); border-left: 3px solid var(--fi-primary);
    border-radius: 10px; background: var(--fi-white); padding: 9px 11px; min-width: 0;
}
.ves-wrap.fi-shell .fiis-metric-k { display: block; font-family: var(--fc-mono); font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase; color: var(--fi-muted); }
.ves-wrap.fi-shell .fiis-metric-v { display: block; font-size: 14px; font-weight: 700; color: var(--fi-ink); margin-top: 3px; }
.ves-wrap.fi-shell .fiis-metric-notes { margin-top: 8px; }
.ves-wrap.fi-shell .fiis-metric-notes > summary { cursor: pointer; font-family: var(--fc-mono); font-size: 10.5px; color: var(--fi-primary); }
.ves-wrap.fi-shell .fiis-metric-notes ul { margin: 6px 0 0; padding-left: 16px; font-size: 12.5px; line-height: 1.5; color: var(--fi-ink-2); }
.ves-wrap.fi-shell .fiis-metric-notes li.is-limit { color: var(--fi-slate); margin-top: 4px; }

/* ============================================================================
 * v1.5.0-rc.20 — Reasoning chain + workspace context (personalization memory)
 * ========================================================================== */
.ves-wrap.fi-shell .fiis-reasoning { margin-top: 10px; }
.ves-wrap.fi-shell .fiis-reasoning-tag {
    display: inline-block; font-family: var(--fc-mono); font-size: 9px; letter-spacing: .05em; text-transform: uppercase;
    color: #fff; background: var(--fi-green); border-radius: 999px; padding: 2px 8px; margin-bottom: 8px;
}
.ves-wrap.fi-shell .fiis-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ves-wrap.fi-shell .fiis-step { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--fi-line); border-left: 3px solid var(--fi-primary); border-radius: 10px; background: var(--fi-white); padding: 9px 11px; }
.ves-wrap.fi-shell .fiis-step--hypothesis, .ves-wrap.fi-shell .fiis-step--review { border-left-color: var(--fi-slate); }
.ves-wrap.fi-shell .fiis-step--recommendation { border-left-color: var(--fi-green); }
.ves-wrap.fi-shell .fiis-step-n { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: var(--fi-primary-050); color: var(--fi-primary); font-family: var(--fc-mono); font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.ves-wrap.fi-shell .fiis-step-body { min-width: 0; }
.ves-wrap.fi-shell .fiis-step-label { display: block; font-family: var(--fc-mono); font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase; color: var(--fi-muted); }
.ves-wrap.fi-shell .fiis-step-text { display: block; font-size: 13px; line-height: 1.5; color: var(--fi-ink); margin-top: 2px; }

.ves-wrap.fi-shell .fiis-context-form { display: grid; gap: 8px; margin-top: 10px; }
.ves-wrap.fi-shell .fiis-ctx-row { display: grid; gap: 4px; }
.ves-wrap.fi-shell .fiis-ctx-row span { font-family: var(--fc-mono); font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase; color: var(--fi-muted); }
.ves-wrap.fi-shell .fiis-ctx-row input { border: 1px solid var(--fi-line-2); border-radius: 9px; padding: 9px 11px; font-size: 14px; color: var(--fi-ink); background: var(--fi-white); }
.ves-wrap.fi-shell .fiis-ctx-row input:focus { outline: 2px solid var(--fi-primary); outline-offset: 1px; }
.ves-wrap.fi-shell .fiis-context-form .fiis-act { justify-self: start; margin-top: 2px; }
.ves-wrap.fi-shell .fiis-ctx-note { font-size: 11.5px; color: var(--fi-muted); }

/* ============================================================================
 * v1.5.0-rc.22 — Trend panel (vs the user's own previous reading)
 * ========================================================================== */
.ves-wrap.fi-shell .fiis-trend {
    border: 1px solid var(--fi-line); border-left: 3px solid var(--fi-slate);
    border-radius: 10px; background: var(--fi-white); padding: 10px 12px; margin-top: 10px;
}
.ves-wrap.fi-shell .fiis-trend--up { border-left-color: var(--fi-green); }
.ves-wrap.fi-shell .fiis-trend--down { border-left-color: var(--fi-danger); }
.ves-wrap.fi-shell .fiis-trend-head { display: flex; align-items: center; gap: 8px; }
.ves-wrap.fi-shell .fiis-trend-arrow { font-size: 14px; font-weight: 700; color: var(--fi-slate); }
.ves-wrap.fi-shell .fiis-trend--up .fiis-trend-arrow { color: var(--fi-green); }
.ves-wrap.fi-shell .fiis-trend--down .fiis-trend-arrow { color: var(--fi-danger); }
.ves-wrap.fi-shell .fiis-trend-er { font-weight: 700; font-size: 13.5px; color: var(--fi-ink); }
.ves-wrap.fi-shell .fiis-trend-text { font-size: 13px; line-height: 1.5; color: var(--fi-ink-2); margin-top: 4px; }
.ves-wrap.fi-shell .fiis-trend-meta { font-family: var(--fc-mono); font-size: 10.5px; color: var(--fi-muted); margin-top: 4px; }
.ves-wrap.fi-shell .fiis-trend-caveat { font-size: 11px; color: var(--fi-muted); margin-top: 5px; font-style: italic; }

/* ============================================================================
 * v1.5.0-rc.23 — Output panel (the "Output" step: grounded content angles)
 * ========================================================================== */
.ves-wrap.fi-shell .fiis-output {
    border: 1px solid var(--fi-line); border-left: 3px solid var(--fi-green);
    border-radius: 10px; background: var(--fi-white); padding: 11px 13px; margin-top: 10px;
}
.ves-wrap.fi-shell .fiis-output-tagged {
    display: inline-block; font-family: var(--fc-mono); font-size: 9.5px; letter-spacing: .06em;
    text-transform: uppercase; color: var(--fi-green); background: var(--fi-green-050);
    border-radius: 999px; padding: 2px 9px; margin-bottom: 8px;
}
.ves-wrap.fi-shell .fiis-angles { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ves-wrap.fi-shell .fiis-angle {
    border: 1px solid var(--fi-line); border-radius: 9px; background: var(--fi-surface-2); padding: 9px 11px;
}
.ves-wrap.fi-shell .fiis-angle-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ves-wrap.fi-shell .fiis-angle-title { font-weight: 700; font-size: 13.5px; color: var(--fi-ink); }
.ves-wrap.fi-shell .fiis-conf {
    font-family: var(--fc-mono); font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase;
    border-radius: 999px; padding: 2px 8px; white-space: nowrap;
}
.ves-wrap.fi-shell .fiis-conf--medium { color: var(--fi-primary); background: var(--fi-primary-050); }
.ves-wrap.fi-shell .fiis-conf--low { color: var(--fi-slate); background: var(--fi-slate-050); }
.ves-wrap.fi-shell .fiis-angle-text { font-size: 13px; line-height: 1.5; color: var(--fi-ink-2); margin-top: 5px; }
.ves-wrap.fi-shell .fiis-angle-ev { font-family: var(--fc-mono); font-size: 10.5px; color: var(--fi-muted); margin-top: 5px; }
.ves-wrap.fi-shell .fiis-output-block { margin-top: 11px; }
.ves-wrap.fi-shell .fiis-output-k {
    display: block; font-family: var(--fc-mono); font-size: 9.5px; letter-spacing: .06em;
    text-transform: uppercase; color: var(--fi-muted); margin-bottom: 5px;
}
.ves-wrap.fi-shell .fiis-hooks { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.ves-wrap.fi-shell .fiis-hooks li {
    font-size: 13px; line-height: 1.45; color: var(--fi-ink-2);
    border-left: 2px solid var(--fi-line-2); padding-left: 9px;
}
.ves-wrap.fi-shell .fiis-output-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ves-wrap.fi-shell .fiis-tag {
    font-size: 11.5px; color: var(--fi-ink-2); background: var(--fi-surface-2);
    border: 1px solid var(--fi-line); border-radius: 999px; padding: 3px 10px;
}
.ves-wrap.fi-shell .fiis-output-text { font-size: 13px; line-height: 1.5; color: var(--fi-ink-2); }
.ves-wrap.fi-shell .fiis-output-cav { margin-top: 10px; }
.ves-wrap.fi-shell .fiis-output-cav summary { font-size: 11.5px; color: var(--fi-muted); cursor: pointer; }
.ves-wrap.fi-shell .fiis-output-cav ul { margin: 6px 0 0; padding-left: 18px; }
.ves-wrap.fi-shell .fiis-output-cav li { font-size: 11.5px; color: var(--fi-muted); line-height: 1.5; }
