/* Visual specification: docs/design-review/screens. All colors follow the active palette. */
.workspace-shell[data-bs-theme="light"] { --workspace-background: #f5f9fe; --bs-body-color: #102544; --bs-border-color: #dfe7f2; --workspace-muted: #637697; }
.workspace-sidebar { width: 260px; }
.sidebar-brand { height: 70px; padding: 0 22px; border-bottom: 1px solid #ffffff0d; }
.sidebar-brand a { font-size: 1.3rem; letter-spacing: -.025em; font-weight: 700; }
.sidebar-brand a span { color: inherit; }
.brand-icon { font-size: 1.6rem; }
.sidebar-navigation { min-height: calc(100vh - 70px); display: flex; flex-direction: column; padding: 20px 10px; }
.sidebar-caption:first-child { display: none; }
.sidebar-link { min-height: 46px; padding: 11px 16px; gap: 15px; font-size: .95rem; border-radius: 7px; margin-bottom: 6px; }
.sidebar-link.active { background: linear-gradient(90deg,rgba(var(--theme-rgb),.76),rgba(var(--theme-rgb),.3)); box-shadow: inset 3px 0 0 var(--bs-primary); }
.sidebar-sub-link { font-size: .8rem; min-height: 33px; margin-top: -4px; padding-left: 23px; }
.phase-caption { font-size: .8rem; letter-spacing: 0; font-weight: 400; padding: 21px 12px 5px; margin-top: 16px; }
.sidebar-navigation > .sidebar-caption.mt-4 { margin-top: auto !important; padding-top: 18px; border-top: 1px solid #ffffff22; font-size: .65rem; }
.sidebar-footer { display: none; }
.workspace-topbar { min-height: 70px; padding: 10px 24px; gap: 20px; }
.workspace-search { max-width: 640px; padding: 9px 13px; background: var(--workspace-surface); border-radius: 6px; }
.workspace-search input { font-size: .94rem; }
.workspace-caption { margin-left: auto; font-size: .85rem; }
.workspace-user { font-size: .85rem; }
.user-avatar { width: 38px; height: 38px; font-size: .9rem; background: var(--bs-primary); color: var(--theme-button-text); }
.workspace-content { padding: 26px 24px 30px; }
.workspace-content h1 { font-size: 2rem; line-height: 1.2; font-weight: 700; margin-bottom: 6px; }
.research-heading { align-items: center; margin-bottom: 24px; }
.research-heading p { font-size: 1rem; }
.workspace-content .btn { border-radius: 6px; font-size: .88rem; padding: .65rem 1rem; font-weight: 500; }
.workspace-content .btn-sm { font-size: .76rem; padding: .35rem .55rem; }
.workspace-stats { gap: 14px; margin-bottom: 16px; }
.workspace-stat { padding: 18px; align-items: center; min-height: 96px; gap: 16px; box-shadow: none; }
.stat-icon { width: 48px; height: 48px; font-size: 1.45rem; }
.workspace-stat p { font-size: .9rem; color: var(--bs-body-color); }
.workspace-stat strong { font-size: 1.85rem; font-weight: 700; }
.workspace-stat small { font-size: .68rem; margin-top: 4px; }
.workspace-columns { gap: 16px; margin-bottom: 16px; grid-template-columns: minmax(0,1.7fr) minmax(280px,1fr); }
.equal-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
.strategy-columns { grid-template-columns: minmax(220px,1fr) minmax(0,2fr); }
.strategy-condition { display:grid; grid-template-columns: minmax(100px,1.1fr) minmax(110px,1.2fr) minmax(90px,.8fr) minmax(85px,1fr) auto; gap:.5rem; }
@media(max-width:750px){.strategy-condition {grid-template-columns:1fr 1fr;} }
.workspace-panel { padding: 20px 18px; box-shadow: none; }
.workspace-panel h2 { font-size: 1.16rem; font-weight: 700; }
.workspace-panel p { font-size: .86rem; }
.panel-heading { margin-bottom: 17px; }
.panel-heading p, .panel-heading > a { font-size: .81rem; }
.panel-heading > a { color: var(--bs-primary); }
.context-badge { font-size: .75rem; border-radius: 5px; }
.research-table th { text-transform: none; letter-spacing: 0; font-size: .82rem; }
.research-table td { font-size: .86rem; }
.workspace-content th, .workspace-content td { padding: .85rem .7rem; }
.research-table td strong, .research-table td a { color: var(--bs-primary); }
.research-table tbody tr:last-child td { border-bottom: 0; }
.symbol-list > a { font-size: 1rem; padding: 17px 0; }
.ticker-avatar { width: 42px; height: 42px; border-radius: 50%; font-size: 1rem; }
.symbol-list small { font-size: .8rem; }
.research-tabs { gap: 32px; font-size: .9rem; margin-bottom: 22px; }
.research-tabs button { padding: 12px 16px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--workspace-muted) !important; }
.research-tabs button.active { color: var(--bs-primary) !important; border-bottom: 2px solid var(--bs-primary) !important; }
.research-tabs .tab-planned { font-size: .78rem; }
.symbol-toolbar { align-items: center; }
.watchlist-add { padding: 14px 0; border-top: 1px solid var(--bs-border-color); border-bottom: 1px solid var(--bs-border-color); margin-bottom: 0; }
.watchlist-add .symbol-entry { flex: 1; min-width: 0; }
.watchlist-add input { width: 100%; max-width: none; }
.watchlist-add .btn { min-width: 90px; }
.research-side-stack { gap: 16px; }
.dashboard-chart .chart-empty { min-height: 285px; border-style: solid; }
.dashboard-chart .history-chart { min-height: 0; }
.chart-empty { background: linear-gradient(180deg,rgba(var(--bs-primary-rgb),.025),transparent); }
.notes-columns { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); }
.notes-history { padding: 0; border: 0; background: transparent; }
.history-filters { display: flex; gap: 10px; margin-bottom: 18px; }
.history-filters input { flex: 1; min-width: 0; }
.history-filters select { width: 145px; }
.history-table { border: 1px solid var(--bs-border-color) !important; border-radius: 7px; overflow: hidden; }
.history-table td { background: var(--workspace-surface); }
.history-table .selected-note td { background: rgba(var(--bs-primary-rgb),.09); }
.history-table .note-open { border: 0 !important; padding: 0 !important; text-align: left; font-weight: 650; }
.note-preview { white-space: pre-wrap; overflow-wrap: anywhere; padding: 16px; min-height: 140px; border: 1px solid var(--bs-border-color); border-radius: 6px; background: var(--workspace-background); }
.note-composer textarea { min-height: 170px; }
.note-composer .btn-primary { min-width: 130px; }
.note-meta { display: flex; gap: 24px; border-top: 1px solid var(--bs-border-color); margin-top: 20px; padding-top: 16px; font-size: .8rem; color: var(--workspace-muted); }
.evaluation-flow { background: rgba(var(--bs-primary-rgb),.025); justify-content: space-around; padding: 20px 24px; gap: 20px; }
.evaluation-flow span { flex: 1; font-size: .85rem; color: var(--bs-body-color); gap: 16px; }
.evaluation-flow b { width: 38px; height: 38px; flex-shrink: 0; background: var(--bs-primary); color: var(--theme-button-text); font-size: 1rem; }
.evaluation-flow small { display: block; color: var(--workspace-muted); margin-top: 6px; }
.alert-columns { grid-template-columns: minmax(0,2.1fr) minmax(300px,1fr); }
.alert-main-stack { display: grid; gap: 16px; }
.alert-editor-panel label { font-size: .84rem; font-weight: 600; }
.alert-editor-panel .condition-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.alert-editor-panel .condition-fields .form-control, .alert-editor-panel .condition-fields .form-select { margin-top: 5px; }
.alert-editor-panel .btn-primary { width: 100%; margin-bottom: 8px; }
.status-pill { display: inline-flex; align-items: center; gap: 6px; background: rgba(var(--bs-primary-rgb),.09); color: var(--bs-primary); border-radius: 6px; padding: 4px 9px; font-size: .76rem; white-space: nowrap; }
.status-pill::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.status-pill.success { color: #087f62; background: #ddf7ed; }
.status-pill.muted { color: var(--workspace-muted); background: var(--workspace-background); }
.operations-details summary { cursor: pointer; font-weight: 650; padding: 2px; }
.operations-details[open] summary { margin-bottom: 18px; }
.research-chart-columns { grid-template-columns: minmax(0,2.45fr) minmax(280px,1fr); }
.stock-price-summary { margin: 14px 0 22px; }
.stock-price-summary strong { font-size: 2.2rem; }
.stock-heading { display: inline-flex; align-items: center; gap: 14px; }
.stock-heading .ticker-avatar { width: 58px; height: 58px; font-size: 1.5rem; }
.daily-change { background: rgba(var(--bs-success-rgb),.08); color: var(--bs-success); padding: 14px 18px; border-radius: 7px; text-align: center; }
.daily-change.negative { color: var(--bs-danger); background: rgba(var(--bs-danger-rgb),.08); }
.daily-change strong { font-size: 1.4rem; }
.daily-change small { display: block; font-size: .75rem; margin-top: 4px; }
.context-list { display: grid; grid-template-columns: 1fr 1.2fr; gap: 11px 14px; margin-bottom: 16px; }
.context-list dt, .context-list dd { margin: 0; font-size: .78rem; overflow-wrap: anywhere; }
.context-list dt { font-weight: 400; }
.history-chart { background: var(--workspace-surface); border-color: var(--bs-border-color); }
.history-chart text { fill: var(--workspace-muted); }
.history-chart .grid { stroke: var(--bs-border-color); stroke-width: 1; }
.volume-chart { background: var(--workspace-surface); }
.indicator-snapshot { margin-top: 20px; }
.indicator-snapshot strong { font-size: 1.6rem; }
.indicator-snapshot span, .indicator-snapshot small { font-size: .78rem; }
.provider-grid .provider-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.provider-grid h3 { margin: 0 0 3px; font-size: 1rem; }
.provider-grid .provider-heading p { margin: 0; font-size: .75rem; }
.provider-grid > section { display: flex; flex-direction: column; padding: 20px; }
.provider-grid > section > p { flex: 1; font-size: .85rem; min-height: 62px; }
.provider-grid .btn { width: 100%; margin-top: 8px; }
.capability-table td { font-size: .82rem; }
.workspace-footer { padding: 15px 24px; font-size: .75rem; }
.workspace-content [hidden] { display: none !important; }
.local-login-panel { max-width: 600px; margin: 30px auto; padding: 28px; }
.local-login-panel .btn-primary { width: 100%; }
.login-shortcuts { display: flex; flex-wrap: wrap; gap: 12px 20px; padding-top: 22px; margin-top: 22px; border-top: 1px solid var(--bs-border-color); font-size: .8rem; }
.research-chart-columns .workspace-panel > h2 { display: none; }
.data-source-overview { margin-top: 0; }
.data-overview-columns { grid-template-columns: minmax(0,1fr) minmax(0,1.45fr); }
.workspace-stat small { display: none; }
.dashboard-chart-toolbar { display: flex; gap: 15px; align-items: flex-start; margin-bottom: 18px; }
.dashboard-chart-toolbar .panel-heading { flex: 1; margin-bottom: 0; }
.dashboard-chart-toolbar .panel-heading > a { display: none; }
.dashboard-chart-toolbar .symbol-toolbar { margin: 0; }
.dashboard-chart-toolbar input { width: 85px; padding: 9px 8px; }
.dashboard-chart-toolbar .btn { font-size: .77rem; padding: 9px 10px; }
.chart-options { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 10px; }
.chart-options .chart-legend { margin: 0; }
.workspace-panel .chart-options #chart-window { margin: 0 0 0 10px !important; width: 130px; }
.workspace-panel .chart-options #chart-window.research-history-window { margin: 0 !important; width: min(100%, 20rem); display: block; }
.dashboard-chart .chart-source { margin-bottom: 9px; }
.dashboard-chart .panel-footnote { margin-top: 10px; }
.history-table time { font-size: .74rem; color: var(--workspace-muted); }
.note-date-time { display: block; margin-top: 5px; }
.workspace-content th, .workspace-content td { overflow-wrap: normal; word-break: normal; }
.table-actions .btn { white-space: nowrap; }
.alert-columns .research-table { min-width: 540px; }
.alert-columns .research-table th { white-space: nowrap; }
.alert-columns .research-table td:nth-child(4), .alert-main-stack .table td:last-child { white-space: nowrap; }
.history-table .table-note { max-width: 180px; font-weight: 400; }
.history-table th { white-space: nowrap; }
.bar-inspection { margin-top: 16px; font-size: .8rem; }
.bar-inspection summary { cursor: pointer; color: var(--bs-primary); }
.bar-inspection[open] summary { margin-bottom: 14px; }
.bar-inspection p { font-size: .78rem; color: var(--workspace-muted); }
[data-bs-theme="light"] .history-chart .sma20 { stroke: var(--bs-primary); }
[data-bs-theme="light"] .chart-legend .sma20 { color: var(--bs-primary); }
[data-bs-theme="light"] .history-chart .sma50 { stroke: #ed4256; }
[data-bs-theme="light"] .chart-legend .sma50 { color: #ed4256; }
@media (max-width: 1100px) { .data-overview-columns { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .dashboard-chart-toolbar { flex-direction: column; } .dashboard-chart-toolbar .panel-heading { width: 100%; } .chart-options { align-items: flex-start; } }
[data-bs-theme="dark"] .status-pill.success { background: #123b32; color: #6ee7b7; }
@media (max-width: 1400px) { .workspace-caption { display: none; } .workspace-search { max-width: 560px; } }
@media (max-width: 1100px) { .workspace-sidebar { width: 225px; } .sidebar-brand { padding-inline: 16px; } .sidebar-brand a { font-size: 1.1rem; } .workspace-columns, .alert-columns, .research-chart-columns, .notes-columns { grid-template-columns: 1fr; } .workspace-search { max-width: none; } }
@media (max-width: 700px) { .workspace-sidebar { width: 100%; } .sidebar-navigation { display: none; min-height: 0; } .sidebar-navigation.is-expanded { display: flex; } .workspace-topbar { padding: 12px 18px; gap: 12px; } .workspace-content { padding: 24px 18px; } .workspace-content h1 { font-size: 1.8rem; } .workspace-content .btn { padding: .55rem .75rem; } .workspace-stat { min-height: 115px; align-items: flex-start; gap: 9px; padding: 14px; } .workspace-stat p { font-size: .8rem; } .stat-icon { width: 34px; height: 34px; font-size: 1.15rem; } .workspace-panel { padding: 17px 14px; } .notes-history { padding: 0; } .workspace-search { flex-basis: 100%; } .research-heading { align-items: flex-start; } .equal-columns { grid-template-columns: 1fr; } .evaluation-flow { flex-direction: column; align-items: flex-start; } .history-filters { flex-wrap: wrap; } .history-filters input { flex-basis: 100%; } .research-tabs { gap: 12px; } .research-tabs button { padding-inline: 6px !important; } .daily-change { padding: 10px; } .workspace-footer { padding: 14px 18px; } }
