/* FinOS v3.0.1 governed runtime additions.
 * The v2.19.4 visible shell and card geometry remain authoritative.
 */
:root {
    --finos-fresh: #34d399;
    --finos-stale: #fbbf24;
    --finos-danger: #f87171;
    --finos-info: #60a5fa;
}

[hidden] { display: none !important; }

/* TradingView keeps the historical bare 126px quote-card box. Recovery
 * controls are overlays and therefore never add a row or alter card height. */
.finos-tv-host { position: relative; }
.finos-tv-host > .tradingview-widget-container,
.finos-tv-host > .tradingview-widget-container > .tradingview-widget-container__widget {
    width: 100%;
    height: 100%;
}
.tv-grid-item.finos-tv-host { height: 126px; min-height: 126px; }
.tv-grid-item.finos-tv-host > .tradingview-widget-container { height: 100%; }
#gold-mini-tv-container.finos-tv-host,
#gold-mini-tv-container.finos-tv-host > .tradingview-widget-container { height: 220px; }
#tv_gold_chart.finos-tv-host,
#tv_gold_chart.finos-tv-host > .tradingview-widget-container { height: 100%; }

.finos-tv-fallback {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    color: var(--text-muted);
    background: rgba(15, 23, 42, .94);
    text-align: center;
    font-size: 11px;
    line-height: 1.5;
}
.finos-tv-host[data-tv-state="loading"] .finos-tv-fallback,
.finos-tv-host[data-tv-state="unavailable"] .finos-tv-fallback,
.finos-tv-host[data-tv-state="disabled"] .finos-tv-fallback { display: flex; }
.finos-tv-host[data-tv-state="unavailable"] .finos-tv-fallback { color: var(--finos-stale); }
.finos-tv-link { color: var(--accent-blue); font-size: 11px; text-decoration: none; }
.finos-tv-link:hover { text-decoration: underline; }
.finos-tv-retry { min-height: 28px; padding: 4px 9px; font-size: 11px; }
body.light-theme .finos-tv-fallback { background: rgba(248, 250, 252, .96); }

/* Status and governed content helpers. They do not override historical shell,
 * navigation, market-card, grid, logo, sidebar or top-bar selectors. */
.finos-muted { color: var(--text-muted); font-size: 12px; line-height: 1.5; }
.finos-panel-heading,
.finos-inline-actions,
.finos-source-chip,
.finos-doc-row,
.finos-settings-header,
.finos-settings-source-row {
    display: flex;
    align-items: center;
}
.finos-panel-heading,
.finos-settings-header,
.finos-settings-source-row {
    justify-content: space-between;
    gap: 16px;
}
.finos-inline-actions { gap: 8px; flex-wrap: wrap; }

.finos-status-badge {
    display: inline-flex;
    align-items: center;
    width: max-content;
    max-width: 100%;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, .24);
    color: var(--text-muted);
    background: rgba(148, 163, 184, .09);
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.status-fresh { color: var(--finos-fresh); border-color: rgba(52, 211, 153, .35); background: rgba(52, 211, 153, .10); }
.status-stale,
.status-not-run { color: var(--finos-stale); border-color: rgba(251, 191, 36, .35); background: rgba(251, 191, 36, .10); }
.status-degraded { color: #fb923c; border-color: rgba(251, 146, 60, .35); background: rgba(251, 146, 60, .10); }
.status-unavailable,
.status-blocked,
.status-failed,
.status-cancelled,
.status-timed-out { color: var(--finos-danger); border-color: rgba(248, 113, 113, .35); background: rgba(248, 113, 113, .10); }
.status-skipped-with-reason { color: #94a3b8; }
.status-queued { color: var(--finos-info); border-color: rgba(96, 165, 250, .35); background: rgba(96, 165, 250, .10); }

.finos-empty-state {
    width: 100%;
    min-height: 96px;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 24px;
    color: var(--text-muted);
    border: 1px dashed var(--panel-border);
    border-radius: 10px;
    line-height: 1.7;
}
.finos-table-empty { padding: 24px !important; color: var(--text-muted); text-align: center; }
.finos-world-map-state {
    position: absolute;
    inset: 50% auto auto 50%;
    width: min(420px, calc(100% - 32px));
    transform: translate(-50%, -50%);
    z-index: 3;
    background: rgba(9, 11, 18, .86);
}
.finos-news-item.is-not-fresh { opacity: .72; }
.finos-news-summary { margin: 8px 0 0; color: var(--text-muted); font-size: 13px; line-height: 1.55; }
.finos-compact-news { padding: 10px 0; border-bottom: 1px solid var(--panel-border); font-size: 13px; line-height: 1.55; }
.news-filter-option { display: flex; align-items: center; gap: 8px; }
.news-filter-option .finos-status-badge { margin-left: auto; }

/* DocumentLibrary is a standalone research workspace. */
.finos-document-library-host { padding-top: 8px; }
.finos-two-panel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.finos-subpanel { padding: 18px; }
.finos-subpanel h3 { margin: 0 0 12px; }
.finos-doc-row { gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--panel-border); }
.finos-doc-main { min-width: 0; display: flex; flex-direction: column; gap: 3px; flex: 1; overflow-wrap: anywhere; }
.finos-doc-actions { display: flex; align-items: center; gap: 7px; }
.finos-callout { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--panel-border); border-radius: 9px; color: var(--text-muted); line-height: 1.55; }
.finos-document-preview { max-height: 440px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--text-muted); font: 12px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; }

/* The settings entry occupies the requested lower-sidebar utility slot without
 * changing the historical sidebar width, logo box, or header controls. */
.sidebar-utility { display: none; }
@media (min-width: 1101px) {
    .sidebar:not(.collapsed) .sidebar-utility {
        display: block;
        margin-top: auto;
        padding: 12px 0 14px;
    }
    .sidebar:not(.collapsed) .system-status { margin-top: 0; }
}
.sidebar-settings-entry {
    width: 100%;
    min-height: 40px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    border: 1px solid transparent;
    border-radius: 10px;
    color: var(--text-muted);
    background: transparent;
    font: inherit;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.sidebar-settings-entry:hover,
.sidebar-settings-entry:focus-visible {
    color: var(--accent-blue);
    background: rgba(59, 130, 246, .10);
    border-color: rgba(59, 130, 246, .24);
    outline: none;
}
.sidebar-settings-entry i { width: 20px; text-align: center; }

/* Standalone research workspace and Agent ledger. */
.finos-research-hero { padding-bottom: 4px; }
.finos-research-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}
.finos-research-status-card {
    min-width: 0;
    display: grid;
    gap: 7px;
    padding: 14px;
    border: 1px solid var(--panel-border);
    border-radius: 12px;
    background: rgba(255, 255, 255, .025);
}
.finos-research-status-card strong { font-size: 16px; color: var(--text-main); }
.finos-capability-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.finos-capability-card {
    min-width: 0;
    min-height: 156px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 16px;
    border: 1px solid var(--panel-border);
    border-radius: 13px;
    color: var(--text-main);
    background: var(--panel-bg);
    text-align: left;
    cursor: pointer;
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.finos-capability-card:hover,
.finos-capability-card:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(59, 130, 246, .46);
    background: rgba(59, 130, 246, .07);
    outline: none;
}
.finos-capability-card .finos-muted { flex: 1; }
.finos-capability-card small { color: var(--accent-blue); }
.finos-capability-icon {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: var(--accent-blue);
    background: rgba(59, 130, 246, .13);
}
.finos-research-launcher { padding: 20px; }
.finos-research-launcher h3 { margin: 0 0 6px; }
.finos-research-form {
    display: grid;
    grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.8fr) auto;
    align-items: end;
    gap: 12px;
}
.finos-research-subject { min-width: 0; }
.finos-job-status { margin-top: 14px; padding: 12px 14px; border-radius: 10px; color: var(--text-muted); background: rgba(59, 130, 246, .07); border: 1px solid rgba(59, 130, 246, .18); }
.finos-job-ledger { display: grid; gap: 10px; margin-top: 14px; }
.finos-job-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 14px;
    border: 1px solid var(--panel-border);
    border-radius: 11px;
    background: rgba(255, 255, 255, .02);
}
.finos-job-actions { display: flex; align-items: center; gap: 8px; }

/* Multi-lens portfolio analysis uses analytical views, not fictional votes. */
.finos-lens-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.finos-lens-card { padding: 16px; border: 1px solid var(--panel-border); border-radius: 12px; background: rgba(255,255,255,.025); }
.finos-lens-card h4 { margin: 0 0 8px; color: var(--accent-blue); }
.finos-lens-card p { margin: 0; color: var(--text-muted); font-size: 12px; line-height: 1.6; }
.finos-lens-card strong { display: block; margin-bottom: 8px; color: var(--accent-blue); }
.finos-lens-card span { display: block; color: var(--text-muted); font-size: 12px; line-height: 1.6; }

/* Unified settings is an opt-in overlay. No selector below changes the closed
 * dashboard's dimensions or layout. */
.finos-settings-backdrop,
.finos-confirm-backdrop {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    padding: min(5vh, 42px) 18px;
    background: rgba(3, 7, 18, .74);
    backdrop-filter: blur(10px);
}
.finos-confirm-backdrop { z-index: 10020; }
.finos-settings-backdrop.is-open,
.finos-confirm-backdrop.is-open { display: grid; place-items: center; }
.finos-settings-dialog { width: min(1060px, 100%); max-height: 90vh; overflow: hidden; background: linear-gradient(155deg, #10131b, #080b12); box-shadow: 0 28px 80px rgba(0,0,0,.58), 0 0 0 1px rgba(59,130,246,.08); }
.finos-settings-header { min-height: 80px; padding: 18px 20px; border-bottom: 1px solid var(--panel-border); }
.finos-settings-header h2 { margin: 0 0 4px; }
.finos-settings-header p { margin: 0; color: var(--text-muted); font-size: 12px; }
.finos-settings-kicker { display: block; margin-bottom: 3px; color: var(--accent-blue); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.finos-icon-button { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--panel-border); border-radius: 9px; color: var(--text-muted); background: rgba(255,255,255,.03); cursor: pointer; }
.finos-icon-button:hover,
.finos-icon-button:focus-visible { color: var(--text-main); border-color: rgba(59,130,246,.4); outline: none; }
.finos-settings-body { display: grid; grid-template-columns: 210px minmax(0, 1fr); min-height: 560px; max-height: calc(90vh - 82px); }
.finos-settings-tabs { padding: 14px; border-right: 1px solid var(--panel-border); display: flex; flex-direction: column; gap: 6px; }
.finos-settings-tabs button { display: flex; align-items: center; gap: 10px; min-height: 42px; border: 1px solid transparent; border-radius: 9px; padding: 10px 12px; color: var(--text-muted); background: transparent; text-align: left; cursor: pointer; }
.finos-settings-tabs button i { width: 18px; text-align: center; }
.finos-settings-tabs button:hover,
.finos-settings-tabs button.active { color: var(--text-main); border-color: rgba(59,130,246,.18); background: rgba(59, 130, 246, .12); }
.finos-settings-panels { padding: 22px; overflow: auto; }
.finos-settings-panels h3 { margin-top: 0; }
.finos-settings-section-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.finos-settings-section-head h3 { margin: 0 0 4px; }
.finos-settings-section-head p { margin: 0; color: var(--text-muted); font-size: 12px; line-height: 1.55; }
.finos-settings-card { padding: 16px; border: 1px solid var(--panel-border); border-radius: 12px; background: rgba(255,255,255,.025); }
.finos-field { display: grid; gap: 7px; margin: 14px 0; color: var(--text-muted); font-size: 13px; }
.finos-field input,
.finos-field select { width: 100%; min-height: 40px; border: 1px solid var(--panel-border); border-radius: 8px; background: #111722; color: var(--text-main); padding: 9px 10px; }
.finos-field input:focus,
.finos-field select:focus { border-color: rgba(59,130,246,.6); box-shadow: 0 0 0 3px rgba(59,130,246,.12); outline: none; }
.finos-checkbox { display: flex; align-items: center; }
.finos-checkbox input { width: auto; }
.finos-switch-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--panel-border); color: var(--text-main); }
.finos-switch-row span { display: grid; gap: 3px; }
.finos-switch-row small { color: var(--text-muted); }
.finos-switch-row input { width: 18px; height: 18px; accent-color: var(--accent-blue); }
.finos-settings-source-row { padding: 11px 0; border-bottom: 1px solid var(--panel-border); }
.finos-settings-source-row:last-child { border-bottom: 0; }
.finos-source-side { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; max-width: 42%; text-align: right; }
.finos-compact-list { display: grid; gap: 6px; font-size: 12px; color: var(--text-muted); }
.finos-provider-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.finos-provider-card { padding: 14px; border: 1px solid var(--panel-border); border-radius: 12px; background: rgba(255,255,255,.025); }
.finos-credential-form .finos-field { margin-bottom: 10px; }
.finos-privacy-callout { color: #bfdbfe; border-color: rgba(59,130,246,.25); background: rgba(59,130,246,.08); }
.finos-privacy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.finos-privacy-grid h4 { margin: 0 0 8px; }
.finos-privacy-grid p { margin: 0 0 14px; color: var(--text-muted); font-size: 12px; line-height: 1.65; }
.finos-privacy-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.finos-confirm-dialog { width: min(520px, 100%); padding: 22px; background: linear-gradient(155deg, #111722, #090d15); box-shadow: 0 30px 90px rgba(0,0,0,.66); }
.finos-confirm-dialog h3 { margin: 5px 0 8px; }
.finos-confirm-dialog p,
.finos-confirm-dialog li { color: var(--text-muted); font-size: 12px; line-height: 1.65; }
.finos-confirm-dialog ul { margin: 12px 0 18px; padding-left: 20px; }
.finos-confirm-actions { display: flex; justify-content: flex-end; gap: 8px; }
.finos-confirm-actions .is-danger { border-color: rgba(248,113,113,.5); background: #b91c1c; }

body.light-theme .finos-settings-dialog,
body.light-theme .finos-confirm-dialog { background: linear-gradient(155deg, #ffffff, #f4f7fb); }
body.light-theme .finos-settings-card,
body.light-theme .finos-provider-card,
body.light-theme .finos-research-status-card,
body.light-theme .finos-job-row { background: rgba(37,99,235,.025); }
body.light-theme .finos-field input,
body.light-theme .finos-field select { background: #ffffff; }

.asset-status-pill.is-fresh .status-dot { background: var(--finos-fresh); box-shadow: 0 0 8px var(--finos-fresh); }
.asset-status-pill.is-stale .status-dot { background: var(--finos-stale); }

@media (max-width: 900px) {
    .finos-two-panel-grid,
    .finos-provider-list,
    .finos-privacy-grid,
    .finos-settings-body { grid-template-columns: 1fr; }
    .finos-settings-tabs { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--panel-border); }
    .finos-settings-body { min-height: 0; }
    .finos-capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .finos-research-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .finos-lens-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .finos-research-form { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .finos-panel-heading,
    .finos-settings-header,
    .finos-settings-section-head,
    .finos-job-row,
    .finos-settings-source-row { align-items: flex-start; flex-direction: column; }
    .finos-source-side { align-items: flex-start; max-width: 100%; text-align: left; }
    .finos-capability-grid,
    .finos-research-status-grid,
    .finos-lens-grid,
    .finos-privacy-actions { grid-template-columns: 1fr; }
    .finos-settings-backdrop,
    .finos-confirm-backdrop { padding: 8px; }
}
