:root {
  --bg: #0e1112;
  --panel: #15191a;
  --panel-2: #1b2021;
  --line: #2a3030;
  --muted: #768080;
  --text: #e5e9e4;
  --lime: #d6f461;
  --cyan: #76d7d6;
  --red: #f17d78;
  --warm: #f3bb7e;
  --mono: 'DM Mono', monospace;
  --sans: 'Space Grotesk', sans-serif;
  --watch-panel-width: 240px;
  --details-panel-width: 250px;
  --bottom-panel-height: 154px;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--sans); font-size: 12px; overflow: hidden; height: 100vh; display: flex; flex-direction: column; }
button { color: inherit; font: inherit; cursor: pointer; }
.app-shell { flex: 1 1 auto; min-height: 0; min-width: 1040px; display: grid; grid-template-rows: 58px 1fr 6px var(--bottom-panel-height); background: radial-gradient(circle at 44% 24%, #192020 0, #0e1112 36%); }
.topbar { display: flex; align-items: center; padding: 0 22px; border-bottom: 1px solid var(--line); background: rgba(14,17,18,.92); gap: 30px; }
.brand-lockup { display: flex; align-items: center; gap: 9px; font-weight: 700; letter-spacing: -.4px; font-size: 15px; min-width: 188px; }
.brand-mark { display: grid; place-items: center; width: 25px; height: 25px; background: var(--lime); color: #192011; font-size: 14px; font-weight: 700; }
.brand-tag { color: var(--muted); font: 10px var(--mono); letter-spacing: 1px; margin-left: 2px; }
.symbol-picker { display: flex; align-items: center; gap: 10px; height: 34px; padding: 0 12px; border: 1px solid var(--line); background: #171c1d; min-width: 256px; border-radius: 3px; }
.ticker-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 3px #d6f46122; }
.symbol-picker strong { font: 600 13px var(--mono); }
.symbol-name { color: var(--muted); font-size: 11px; flex: 1; }
.chevron { font-size: 15px; color: var(--muted); }
.top-actions { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.icon-button, .small-icon, .collapse-button { background: transparent; border: 0; color: #a5afac; font-size: 20px; position: relative; }
.icon-button:hover, .small-icon:hover { color: var(--lime); }
.notification-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--red); position: absolute; top: 2px; right: 0; }
.avatar { width: 28px; height: 28px; border: 1px solid #56605c; border-radius: 50%; background: #29342e; color: var(--lime); font: 10px var(--mono); }
.workspace { display: grid; grid-template-columns: var(--watch-panel-width) 6px minmax(400px, 1fr) 6px var(--details-panel-width); min-height: 0; }
.panel-border { border-right: 1px solid var(--line); }
.watch-panel, .details-panel { background: rgba(20,24,25,.78); padding: 22px 14px 12px; }
.watch-panel, .details-panel { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.details-panel { border-right: 0; border-left: 1px solid var(--line); padding-left: 18px; padding-right: 18px; }
.panel-resizer { background: transparent; position: relative; }
.panel-resizer:before { content: ''; position: absolute; inset: 0; margin: auto; background: var(--line); }
.panel-resizer-v { cursor: col-resize; }
.panel-resizer-v:before { width: 1px; height: 100%; }
.panel-resizer-v:hover:before, .panel-resizer-v.dragging:before { background: var(--lime); width: 2px; }
.panel-resizer-h { cursor: row-resize; }
.panel-resizer-h:before { height: 1px; width: 100%; }
.panel-resizer-h:hover:before, .panel-resizer-h.dragging:before { background: var(--lime); height: 2px; }
.watch-collapsed .panel-resizer[data-resize="watch"],
.details-collapsed .panel-resizer[data-resize="details"] { pointer-events: none; }
.watch-collapsed .watch-panel > *:not(.panel-heading) { display: none; }
.details-collapsed .details-panel > *:not(.panel-heading) { display: none; }
.panel-collapse-toggle { transition: transform .15s ease; }
.watch-collapsed .panel-collapse-toggle.watch-toggle,
.details-collapsed .panel-collapse-toggle.details-toggle { transform: rotate(180deg); }
.panel-heading { display: flex; justify-content: space-between; align-items: start; padding: 0 7px 17px; }
.eyebrow { display: block; color: var(--muted); text-transform: uppercase; letter-spacing: 1.4px; font: 10px var(--mono); margin-bottom: 7px; }
h1, h2 { font-size: 15px; margin: 0; font-weight: 600; }
.small-icon { font-size: 19px; line-height: 16px; }
.watch-tabs { display: flex; gap: 18px; padding: 0 7px 13px; border-bottom: 1px solid var(--line); }
.watch-tab { border: 0; padding: 0 0 8px; background: transparent; color: var(--muted); font-size: 11px; }
.watch-tab.active { color: var(--text); border-bottom: 1px solid var(--lime); }
.watch-tab span { color: var(--lime); font: 10px var(--mono); margin-left: 4px; }
.watch-list-select-row { display: flex; align-items: center; gap: 6px; padding: 0 7px 10px; }
.watch-list-select { flex: 1 1 auto; min-width: 0; background: #1c2222; border: 1px solid var(--line); color: var(--text); font-size: 11px; padding: 6px 7px; border-radius: 4px; }
.watch-list-select-row .small-icon { flex: 0 0 auto; }
.watch-list-manage[hidden] { display: none; }
.watch-list-manage { padding: 0 7px 10px; }
.watch-list-form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.watch-list-form input[type="text"] { flex: 1 1 120px; min-width: 0; background: #1c2222; border: 1px solid var(--line); color: var(--text); font-size: 11px; padding: 6px 7px; border-radius: 4px; }
.watch-list-form button { border: 1px solid var(--line); background: transparent; color: var(--text); font-size: 10px; padding: 6px 9px; border-radius: 4px; cursor: pointer; }
.watch-list-form button:hover { border-color: var(--lime); color: var(--lime); }
.watch-list-form button.watch-list-danger:hover { border-color: var(--red); color: var(--red); }
.watch-list-error { display: block; width: 100%; color: var(--red); font-size: 10px; }
.watch-list-empty { padding: 20px 7px; color: var(--muted); font-size: 11px; text-align: center; }
.watch-list { padding-top: 5px; flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.watch-row { position: relative; width: 100%; height: 59px; display: grid; grid-template-columns: 1fr 46px 62px; align-items: center; gap: 5px; border: 0; border-bottom: 1px solid #232829; background: transparent; padding: 0 30px 0 7px; text-align: left; }
.watch-row-actions { position: absolute; top: 0; bottom: 0; right: 0; width: 26px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 5px 0; }
.watch-row-remove { visibility: hidden; display: flex; width: 15px; height: 15px; border-radius: 50%; align-items: center; justify-content: center; background: #1c2222; border: 1px solid var(--line); color: var(--muted); font: 11px var(--mono); line-height: 1; cursor: pointer; }
.watch-row:hover .watch-row-remove { visibility: visible; }
.watch-row-remove:hover { color: var(--red); border-color: var(--red); }
.watch-row:hover, .watch-row.active { background: #202727; }
.watch-row { cursor: grab; }
.watch-row.dragging { opacity: 0.4; cursor: grabbing; }
.watch-row.drag-over-above { border-top: 2px solid var(--lime); }
.watch-row.drag-over-below { border-bottom: 2px solid var(--lime); }
.watch-row.active { box-shadow: inset 2px 0 var(--lime); }
.watch-row strong, .watch-row small, .quote b, .quote em { display: block; }
.watch-row strong { font: 500 12px var(--mono); }
.watch-row small { color: var(--muted); font-size: 9px; margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sparkline { display: block; width: 50px; height: 26px; color: var(--cyan); opacity: .95; }
.sparkline svg { display: block; width: 100%; height: 100%; overflow: visible; }
.sparkline.red { color: var(--red); }
.quote { text-align: right; font: 10px var(--mono); }
.quote b { color: #c6cfca; font-weight: 400; }
.quote em { font-style: normal; color: var(--cyan); margin-top: 4px; }
.negative { color: var(--red) !important; }
.add-watch { width: 100%; border: 0; background: transparent; color: var(--muted); text-align: left; padding: 16px 7px; font-size: 11px; }
.add-watch:hover { color: var(--lime); }
.watch-footer { border-top: 1px solid var(--line); padding: 13px 7px 0; color: var(--muted); font-size: 10px; display: flex; gap: 6px; align-items: center; }
.status-light, .tiny-dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; background: var(--lime); }
.footer-time { margin-left: auto; font: 9px var(--mono); }
.chart-panel { min-width: 0; min-height: 0; overflow: hidden; display: flex; flex-direction: column; background: #121617; }
.chart-tabs { display: flex; align-items: center; gap: 2px; padding: 6px 10px 0; border-bottom: 1px solid var(--line); overflow-x: auto; flex: none; }
.chart-tab { display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-bottom: 0; background: #171c1d; color: var(--muted); font: 11px var(--mono); padding: 7px 8px 7px 12px; border-radius: 4px 4px 0 0; white-space: nowrap; cursor: pointer; }
.chart-tab.dragging { opacity: 0.4; cursor: grabbing; }
.chart-tab.drag-over-before { box-shadow: inset 2px 0 var(--lime); }
.chart-tab.drag-over-after { box-shadow: inset -2px 0 var(--lime); }
.chart-tab.active { color: var(--text); background: #121617; border-color: var(--line); position: relative; top: 1px; }
.chart-tab-close { border: 0; background: transparent; color: var(--muted); font-size: 13px; line-height: 1; padding: 2px; border-radius: 3px; }
.chart-tab-close:hover { color: var(--red); background: #2a1f1f; }
.chart-tab-add { border: 0; background: transparent; color: var(--muted); font-size: 15px; padding: 6px 10px; }
.chart-tab-add:hover { color: var(--lime); }
.chart-header { height: 80px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid var(--line); }
.chart-header { position: relative; }
.chart-section-button { display: inline-flex; align-items: center; gap: 4px; border: 1px solid #3a4743; border-radius: 3px; background: #171c1d; color: var(--muted); padding: 4px 7px; font: 10px var(--mono); }
.chart-section-button span { color: var(--text); font-size: 13px; }
.chart-section-button:hover, .chart-section-button[aria-expanded="true"] { border-color: var(--lime); color: var(--lime); background: #273021; }
.chart-section-menu { display: none; position: absolute; z-index: 10; top: 59px; left: 48px; width: 140px; padding: 6px; background: #1a2020; border: 1px solid #3a4743; box-shadow: 0 15px 35px #0009; }
.chart-section-menu.open { display: grid; }
.chart-section-menu button { border: 0; background: transparent; color: var(--muted); padding: 8px; text-align: left; font-size: 10px; }
.chart-section-menu button:hover { background: #25302b; color: var(--lime); }
.instrument-title, .instrument-name, .chart-stats { display: flex; align-items: center; }
.instrument-title { gap: 11px; }
.instrument-icon { display: grid; place-items: center; width: 29px; height: 29px; background: #1c5d50; color: var(--lime); font: 500 15px var(--mono); }
.instrument-name { gap: 8px; }
.instrument-name strong { font: 600 16px var(--mono); letter-spacing: .4px; }
.instrument-title p { color: var(--muted); margin: 5px 0 0; font-size: 10px; }
.exchange-pill, .live-pill { padding: 3px 5px; font: 9px var(--mono); border: 1px solid #3c4542; color: var(--muted); }
.live-pill { border: 0; color: var(--lime); padding: 3px 0; }
.live-pill i { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); margin-right: 4px; }
.chart-stats { gap: 23px; text-align: right; }
.chart-stats span, .chart-stats strong { display: block; }
.chart-stats span { color: var(--muted); font-size: 9px; margin-bottom: 5px; }
.chart-stats strong { font: 11px var(--mono); }
.positive { color: var(--cyan) !important; }
.chart-toolbar { height: 42px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid var(--line); }
.timeframes, .chart-tools { display: flex; align-items: center; gap: 3px; }
.timeframes button, .tool { border: 0; background: transparent; color: var(--muted); padding: 5px 8px; font-size: 10px; }
.timeframes button:hover, .timeframes button.selected, .tool:hover, .tool.selected { color: var(--lime); background: #273021; }
.tool { display: flex; gap: 5px; align-items: center; font-size: 16px; }
.tool span { font-size: 10px; }
.chart-area { --indicator-height: 0px; position: relative; flex: 1; min-height: 280px; margin: 10px 13px 0 0; }
.chart-area { cursor: crosshair; }
.chart-area.panning, .chart-area.panning * { cursor: grabbing; user-select: none; }
#priceChart { touch-action: none; }
#priceChart { width: calc(100% - 47px); height: calc(100% - 28px - var(--indicator-height)); position: absolute; left: 41px; top: 0; }
.indicator-panel { position: absolute; left: 41px; right: 45px; bottom: 28px; height: var(--indicator-height); border-top: 1px solid #435047; overflow: hidden; background: #11161a; }
#indicatorChart { display: block; width: 100%; height: 100%; }
.indicator-controls { position: absolute; inset: 0; pointer-events: none; }
.indicator-panel-controls { position: absolute; left: 0; right: 0; display: flex; align-items: flex-start; justify-content: space-between; padding: 5px 7px; border-top: 1px solid #273039; opacity: 0; transition: opacity .12s ease; pointer-events: none; }
.indicator-panel:hover .indicator-panel-controls { opacity: 1; pointer-events: auto; }
.indicator-panel-controls > span { color: #aeb8b8; font: 9px var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.indicator-panel-label { display: inline-flex; align-items: center; gap: 5px; }
.indicator-settings-button { opacity: 0; border: 0; background: transparent; color: #899493; padding: 0; font: 12px var(--mono); cursor: pointer; }
.indicator-panel-label:hover .indicator-settings-button, .indicator-settings-button:hover { opacity: 1; color: var(--lime); }
.indicator-panel-controls > div { display: flex; gap: 2px; }
.indicator-panel-controls button { width: 21px; height: 18px; padding: 0; border: 1px solid #3c474d; background: #171d22dd; color: #9ba6a5; font: 12px var(--mono); line-height: 16px; }
.indicator-panel-controls button:hover { border-color: var(--lime); color: var(--lime); background: #273021; }
.y-axis { position: absolute; right: 2px; top: 4px; bottom: 30px; width: 45px; display: flex; flex-direction: column; justify-content: space-between; color: #78817e; font: 9px var(--mono); text-align: right; }
.price-tag { position: absolute; right: 0; top: 40%; background: var(--lime); color: #182016; font: 10px var(--mono); padding: 5px 5px; }
.chart-event-markers { position: absolute; left: 41px; width: calc(100% - 47px); bottom: 5px; height: 18px; pointer-events: none; z-index: 3; }
.chart-event-marker-group { position: absolute; bottom: 0; transform: translateX(-50%); display: flex; gap: 2px; pointer-events: auto; }
.chart-event-marker { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid; background: #10181799; color: inherit; font: 700 9px var(--mono); display: grid; place-items: center; line-height: 1; padding: 0; }
.chart-event-marker.earnings { border-color: #0ba899; color: #0ba899; }
.chart-event-marker.earnings:hover { background: #0ba89933; }
.chart-event-marker.dividend { border-color: #2f7cff; color: #2f7cff; background: #2f7cff22; }
.chart-event-marker.dividend:hover { background: #2f7cff44; }
.chart-event-popup { display: none; position: absolute; z-index: 6; width: 240px; padding: 14px; background: #111717f2; border: 1px solid #3a4743; box-shadow: 0 15px 35px #0009; font: 11px var(--mono); color: var(--text); }
.chart-event-popup.visible { display: block; }
.chart-event-popup-heading { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; font: 600 12px var(--sans); }
.chart-event-popup-icon { width: 20px; height: 20px; border-radius: 5px; display: grid; place-items: center; font: 700 10px var(--mono); }
.chart-event-popup-icon.earnings { background: #0ba89933; color: #0ba899; }
.chart-event-popup-icon.dividend { background: #2f7cff33; color: #2f7cff; }
.chart-event-popup-row { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; }
.chart-event-popup-row span { color: var(--muted); font-size: 10px; }
.chart-event-popup-row b { font-weight: 400; font-size: 10px; text-align: right; }
.chart-event-popup-row.positive b { color: var(--cyan); }
.chart-event-popup-label { color: var(--muted); text-transform: uppercase; letter-spacing: 1px; font-size: 9px; margin: 10px 0 2px; }
.chart-event-popup-action { width: 100%; margin-top: 12px; border: 1px solid var(--line); background: transparent; color: var(--text); padding: 8px; font: 10px var(--mono); }
.chart-event-popup-action:hover { border-color: var(--lime); color: var(--lime); }
.x-axis { position: absolute; left: 45px; right: 45px; bottom: 4px; display: flex; justify-content: space-between; color: var(--muted); font: 9px var(--mono); }
.volume-strip { height: 62px; position: relative; border-top: 1px solid #202727; margin: 0 13px 0 41px; }
.volume-label { position: absolute; top: 7px; left: 0; color: var(--muted); font: 9px var(--mono); z-index: 2; }
.volume-label span { color: var(--cyan); margin-left: 5px; }
.volume-bars { height: 100%; display: flex; align-items: end; gap: 3px; padding: 3px 3px 0 47px; opacity: .55; }
.volume-bars span { flex: 1; background: #557c77; min-width: 2px; }
.volume-bars span:nth-child(3n) { background: #ba8c60; }
.chart-status { display: flex; align-items: center; gap: 18px; padding: 0 22px; height: 29px; border-top: 1px solid var(--line); color: var(--muted); font: 9px var(--mono); }
.tiny-dot { margin-right: 5px; }.status-right { margin-left: auto; }.status-right b { display: inline-block; width: 18px; height: 9px; border-radius: 7px; background: var(--lime); vertical-align: middle; margin-left: 4px; position: relative; }.status-right b:after { content: ''; position: absolute; right: 2px; top: 2px; width: 5px; height: 5px; background: #263020; border-radius: 50%; }.status-right button { border: 0; background: transparent; color: var(--muted); }
.detail-price { border-bottom: 1px solid var(--line); padding: 10px 7px 17px; }.detail-price strong { font: 500 27px var(--mono); display: block; letter-spacing: -1px; }.detail-price span { display: block; margin-top: 5px; font: 11px var(--mono); }
.range-card { padding: 19px 7px 18px; border-bottom: 1px solid var(--line); }.range-head, .range-labels { display: flex; justify-content: space-between; align-items: center; }.range-head span, .range-labels { color: var(--muted); font-size: 10px; }.range-head strong { font: 9px var(--mono); color: #a5b0a8; }.range-track { height: 3px; margin: 14px 2px 8px; background: #303735; position: relative; }.range-track span { position: absolute; inset: 0 7% 0 0; background: linear-gradient(90deg, var(--cyan), var(--lime)); }.range-track i { position: absolute; top: -4px; right: 7%; width: 11px; height: 11px; background: var(--lime); border: 2px solid #19211a; border-radius: 50%; }.range-labels { font: 8px var(--mono); }
.stats-grid { display: grid; grid-template-columns: 1fr 1fr; padding: 16px 7px; gap: 14px 12px; border-bottom: 1px solid var(--line); }.stats-grid span, .stats-grid b { display: block; }.stats-grid span { color: var(--muted); font-size: 9px; margin-bottom: 5px; }.stats-grid b { font: 10px var(--mono); font-weight: 400; }
.analyst-block { padding: 17px 7px; }.section-label, .target-row { display: flex; justify-content: space-between; align-items: center; }.section-label span, .target-row span { color: var(--muted); font-size: 10px; }.section-label strong { color: var(--lime); font: 10px var(--mono); }.rating-meter { display: flex; gap: 3px; margin: 14px 0 5px; }.rating-meter span, .rating-meter i { display: block; height: 6px; flex: 1; background: #455047; transform: skew(-25deg); }.rating-meter span { background: var(--lime); }.rating-meter i:nth-child(3) { background: #a8c76a; }.rating-labels { display: flex; justify-content: space-between; color: var(--muted); font: 8px var(--mono); }.target-row { margin-top: 18px; }.target-row strong { font: 11px var(--mono); }.target-row em { font: normal 10px var(--mono); color: var(--cyan); }.trade-button { display: flex; justify-content: space-between; align-items: center; width: 100%; background: var(--lime); color: #172015; border: 0; padding: 12px 13px; font-size: 11px; font-weight: 600; margin-top: 2px; }.trade-button b { font-size: 17px; font-weight: 400; }
.bottom-panel { background: #151a1b; border-top: 1px solid var(--line); }.bottom-tabs { height: 42px; display: flex; align-items: center; gap: 23px; padding: 0 22px; border-bottom: 1px solid var(--line); }.bottom-tab { height: 100%; background: transparent; border: 0; color: var(--muted); font-size: 10px; position: relative; }.bottom-tab.active { color: var(--text); }.bottom-tab.active:after { content: ''; position: absolute; height: 2px; background: var(--lime); bottom: 0; left: 0; right: 0; }.paper-dot { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); margin-left: 5px; }.bottom-content { display: flex; align-items: center; gap: 15px; height: 111px; padding: 0 22px; }.screener-title { width: 185px; }.screener-title strong { font-size: 14px; display: block; }.screener-controls, .screener-window-controls { display: flex; gap: 4px; margin-top: 6px; }.screener-window-controls[hidden] { display: none; }.screener-mode-btn, .screener-window-btn { border: 1px solid var(--line); background: transparent; color: var(--muted); font: 8px var(--mono); padding: 3px 6px; cursor: pointer; }.screener-mode-btn.active, .screener-window-btn.active { color: var(--lime); border-color: var(--lime); }.mover { border-left: 1px solid var(--line); padding: 0 20px; min-width: 180px; }.mover span, .mover b, .mover small { display: block; }.mover span { font: 11px var(--mono); }.mover b { font: 12px var(--mono); margin-top: 6px; }.mover small { color: var(--muted); font-size: 9px; margin-top: 6px; }.mover.positive b { color: var(--cyan); }.mover.negative b { color: var(--red); }.collapse-button { margin-left: auto; }
@media (max-width: 1150px) { .workspace { grid-template-columns: var(--watch-panel-width) 6px minmax(320px, 1fr) 6px var(--details-panel-width); }.details-panel { padding-left: 13px; padding-right: 13px; }.chart-stats { gap: 10px; } }
.chart-toolbar { position: relative; }
.chart-view-menu { display: none; position: absolute; z-index: 7; top: 38px; left: 20px; width: 170px; padding: 10px; background: #1a2020; border: 1px solid #3a4743; box-shadow: 0 15px 35px #0009; }
.chart-view-menu.open { display: block; }
.chart-view-menu > button { display: flex; align-items: center; gap: 9px; width: 100%; border: 0; background: transparent; color: var(--muted); padding: 8px 5px; text-align: left; font-size: 10px; }
.chart-view-menu > button:hover { background: #25302b; color: var(--lime); }
.chart-view-menu > button span { width: 15px; color: var(--warm); font: 14px var(--mono); text-align: center; }
.indicator-menu, .draw-menu { display: none; position: absolute; z-index: 5; top: 38px; right: 92px; width: 274px; padding: 14px; background: #1a2020; border: 1px solid #3a4743; box-shadow: 0 15px 35px #0009; }
.draw-menu { right: 235px; width: 210px; }
.indicator-menu.open, .draw-menu.open { display: block; }
.menu-title { display: flex; justify-content: space-between; align-items: center; font-size: 12px; font-weight: 600; }
.menu-title button { border: 0; background: transparent; color: var(--muted); font-size: 18px; padding: 0; }
.menu-title button:hover { color: var(--lime); }
.indicator-menu p { color: var(--muted); font-size: 9px; margin: 5px 0 12px; }
.indicator-menu label, .draw-menu label { display: flex; align-items: center; gap: 7px; padding: 8px 4px; border-top: 1px solid #293130; font-size: 10px; }
.indicator-menu label:hover, .draw-menu label:hover { background: #25302b; }
.indicator-menu input, .draw-menu input { accent-color: var(--lime); }
.indicator-menu label span { flex: 1; }.indicator-menu label em { color: var(--muted); font: 8px var(--mono); font-style: normal; }
.draw-menu label span { flex: 1; }
.draw-menu #clearDrawingsButton { width: 100%; margin-top: 10px; border: 1px solid var(--line); background: transparent; color: var(--muted); font: 9px var(--mono); padding: 7px; cursor: pointer; }
.draw-menu #clearDrawingsButton:hover { color: var(--red); border-color: var(--red); }
.replay-bar { display: flex; align-items: center; gap: 10px; padding: 6px 14px; background: #151a1b; border-bottom: 1px solid var(--line); color: var(--muted); font: 10px var(--mono); }
.replay-bar[hidden] { display: none; }
.replay-bar button { border: 1px solid var(--line); background: transparent; color: var(--text); padding: 4px 9px; cursor: pointer; }
.replay-bar button:hover { color: var(--lime); border-color: var(--lime); }
.replay-bar select { border: 1px solid var(--line); background: #101515; color: var(--text); padding: 4px; font: 9px var(--mono); }
#replayExit { margin-left: auto; }
.multi-chart-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; height: calc(100vh - 140px); padding: 18px 0; }
.multi-chart-cell { display: flex; flex-direction: column; border: 1px solid var(--line); background: #101515; padding: 10px; }
.multi-chart-cell select { border: 1px solid #303838; background: #151a1b; color: var(--text); padding: 6px; font: 10px var(--mono); margin-bottom: 8px; }
.multi-chart-cell canvas { flex: 1; width: 100%; min-height: 0; }
.multi-chart-meta { display: flex; justify-content: space-between; color: var(--muted); font: 10px var(--mono); margin-top: 8px; }
.multi-chart-meta strong { color: var(--text); font-weight: 400; }
.active-indicators { min-height: 26px; display: flex; align-items: center; gap: 6px; padding: 5px 22px 2px; }
.indicator-hint { color: #5c6864; font: 9px var(--mono); }
.indicator-chip { color: var(--lime); border: 1px solid #546239; background: #252e20; padding: 4px 20px 4px 6px; font: 9px var(--mono); position: relative; display: inline-flex; align-items: center; gap: 6px; }
.indicator-chip[draggable="true"] { cursor: grab; }
.indicator-chip.dragging { opacity: .45; }
.indicator-chip.drag-target { border-color: var(--cyan); background: #203733; }
.strategy-chip { color: var(--warm); border-color: #73573a; background: #34291f; cursor: pointer; }
.chip-close { position: absolute; top: -6px; right: -6px; width: 15px; height: 15px; border-radius: 50%; border: 1px solid currentColor; background: #14181a; color: inherit; font: 10px var(--mono); line-height: 1; padding: 0; display: grid; place-items: center; opacity: .85; }
.chip-close:hover { color: var(--red) !important; border-color: var(--red); opacity: 1; }
.strategy-summary { display: none; border-left: 1px solid var(--line); padding: 0 20px; min-width: 165px; }.strategy-summary.visible { display: block; }.strategy-summary .eyebrow { margin-bottom: 5px; }.strategy-summary strong, .strategy-summary small { display: block; }.strategy-summary strong { color: var(--warm); font: 11px var(--mono); }.strategy-summary small { color: var(--muted); font: 9px var(--mono); margin-top: 5px; }.strategy-badge { color: var(--warm); border: 1px solid #73573a; padding: 2px 4px; font: 8px var(--mono); margin-left: 4px; }
.backtest-metrics { display: none; border-left: 1px solid var(--line); padding: 0 20px; min-width: 170px; }.strategy-summary.visible ~ .backtest-metrics { display: block; }.backtest-metrics span, .backtest-metrics strong, .backtest-metrics small { display: block; }.backtest-metrics span, .backtest-metrics small { color: var(--muted); font-size: 9px; }.backtest-metrics strong { color: var(--cyan); font: 12px var(--mono); margin: 5px 0; }
.strategy-report { display: none; position: fixed; inset: 0; z-index: 25; overflow: auto; background: #090b0c; color: var(--text); padding: 18px 24px 34px; }
.strategy-report.open { display: block; }
.strategy-report-header, .strategy-report-toolbar { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.strategy-report-header { padding-bottom: 15px; }
.strategy-report-header h2 { font-size: 18px; }
.strategy-report-header > button { border: 0; background: transparent; color: var(--muted); font-size: 26px; }
.strategy-report-toolbar { justify-content: flex-start; gap: 24px; min-height: 42px; color: var(--muted); font: 10px var(--mono); }
.strategy-report-toolbar button { margin-left: auto; border: 1px solid #3a4743; background: transparent; color: var(--text); padding: 6px 12px; }
.strategy-report-controls { display: flex; align-items: center; gap: 8px; }
.strategy-report-toolbar .strategy-report-controls button { margin-left: 0; }
.strategy-report-controls > button, .strategy-report-controls select { border: 1px solid #303838; background: #151a1b; color: var(--muted); padding: 5px 7px; font: 10px var(--mono); }
.strategy-report-controls > button.active, .strategy-report-controls > button:hover { color: var(--lime); border-color: #66733e; background: #252e20; }
.strategy-report-controls label { display: flex; align-items: center; gap: 4px; color: var(--muted); font: 9px var(--mono); }
.strategy-report-controls select { color: var(--text); }
.strategy-report-controls .report-toggle { margin-left: 4px; }
.strategy-report-controls input { accent-color: var(--lime); }
.strategy-report-controls input[type="number"] { width: 58px; border: 1px solid #303838; background: #151a1b; color: var(--text); padding: 4px 6px; font: 10px var(--mono); }
.strategy-custom-range { display: flex; align-items: center; gap: 5px; color: var(--muted); font: 9px var(--mono); }
.strategy-custom-range input { border: 1px solid #303838; background: #151a1b; color: var(--text); padding: 4px 6px; font: 9px var(--mono); }
.strategy-select-label { display: flex; align-items: center; gap: 4px; }
.strategy-select-label select { border: 1px solid #303838; background: #151a1b; color: var(--text); padding: 5px 7px; font: 10px var(--mono); }
.technicals-report { display: none; position: fixed; inset: 0; z-index: 26; overflow: auto; background: #070909; color: var(--text); padding: 20px 34px 40px; }
.technicals-report.open { display: block; }
.forecast-report { display: none; position: fixed; inset: 0; z-index: 27; overflow: auto; background: #050607; color: var(--text); padding: 18px 32px 42px; }
.forecast-report.open { display: block; }
.financials-report { display: none; position: fixed; inset: 0; z-index: 27; overflow: auto; background: #050607; color: var(--text); padding: 18px 32px 42px; }
.seasonal-report { display: none; position: fixed; inset: 0; z-index: 28; overflow: auto; background: #050607; color: var(--text); padding: 18px 32px 42px; }
.seasonal-report.open { display: block; }
.seasonal-table { width: 100%; border-collapse: collapse; font: 10px var(--mono); }
.seasonal-table th, .seasonal-table td { border-bottom: 1px solid #202727; padding: 7px 6px; text-align: right; }
.seasonal-table th:first-child, .seasonal-table td:first-child { text-align: left; color: var(--muted); }
.seasonal-table th { color: var(--muted); font-weight: 400; }
.seasonal-bar-chart-frame { position: relative; height: 220px; }
.seasonal-bar-chart-frame canvas { display: block; width: 100%; height: 100%; }
.seasonal-bar-tooltip { display: none; position: absolute; z-index: 3; width: 190px; padding: 10px; background: #111717ee; border: 1px solid #53645c; box-shadow: 0 8px 20px #0009; font: 10px var(--mono); pointer-events: none; }
.seasonal-bar-tooltip.visible { display: block; }
.seasonal-bar-tooltip div { display: flex; justify-content: space-between; padding: 2px 0; }
.seasonal-bar-tooltip span { color: var(--muted); }
.seasonal-years-wrap { display: flex; gap: 14px; }
.seasonal-years-chart-frame { flex: 1; min-width: 0; }
.seasonal-years-legend { display: flex; flex-direction: column; gap: 2px; width: 140px; flex: 0 0 140px; overflow-y: auto; max-height: 220px; }
.seasonal-years-legend-item { display: flex; align-items: center; gap: 6px; border: none; background: transparent; color: var(--text); font: 10px var(--mono); padding: 3px 4px; cursor: pointer; text-align: left; }
.seasonal-years-legend-item:hover { background: #161a1b; }
.seasonal-years-legend-item.hidden i { background: #2a3230 !important; border-color: #3a4644 !important; }
.seasonal-years-legend-item.hidden span, .seasonal-years-legend-item.hidden b { color: #4b5452 !important; text-decoration: line-through; }
.seasonal-years-legend-item i { width: 8px; height: 8px; border-radius: 2px; flex: 0 0 8px; }
.seasonal-years-legend-item span { flex: 1; color: var(--muted); }
.seasonal-years-legend-item b { font-weight: 400; }
.seasonal-heatmap-controls { display: flex; gap: 3px; margin-bottom: 12px; }
.seasonal-heatmap-controls button { border: 1px solid var(--line); background: transparent; color: var(--muted); font: 9px var(--mono); padding: 6px 10px; }
.seasonal-heatmap-controls button.active { color: var(--lime); border-color: var(--lime); }
.seasonal-heatmap-wrap { overflow-x: auto; }
.seasonal-heatmap { border-collapse: collapse; font: 9px var(--mono); }
.seasonal-heatmap th, .seasonal-heatmap td { padding: 6px 8px; text-align: center; min-width: 56px; }
.seasonal-heatmap th { color: var(--muted); font-weight: 400; }
.seasonal-heatmap td:first-child, .seasonal-heatmap th:first-child { text-align: left; color: var(--muted); min-width: 46px; }
.seasonal-tendency-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.seasonal-unavailable { padding: 30px; text-align: center; color: var(--muted); border: 1px dashed var(--line); font-size: 11px; }
.financials-report.open { display: block; }
.financials-section { padding: 22px 0; border-bottom: 1px solid var(--line); }
.financials-section h3 { margin: 0 0 4px; font-size: 15px; }
.financials-section-note { color: var(--muted); font: 10px var(--mono); margin: 0 0 14px; }
.backtest-period { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding: 12px 0; }
.backtest-period span { display: block; color: var(--muted); font-size: 10px; }
.backtest-period strong { display: block; margin-top: 6px; font: 13px var(--mono); }
.backtest-explainer { border: 1px solid #2a3533; background: #0d1312; padding: 14px 18px; }
.backtest-explainer h3 { margin-top: 0; }
.backtest-explainer p, .backtest-explainer li { color: #b5c0bb; font-size: 11px; line-height: 1.6; }
.backtest-explainer p { margin: 8px 0; }
.backtest-explainer ul { margin: 8px 0 0 18px; padding: 0; }
.backtest-explainer strong { color: var(--text); }
.backtest-stat-note { display: block; margin-top: 6px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.backtest-caption { color: #9aa6a1; font-size: 10px; line-height: 1.6; margin: 4px 0 10px; }
.backtest-caption strong.positive, .backtest-caption strong.negative { font-weight: 600; }
.prediction-compare-control { display: flex; flex-direction: column; gap: 6px; max-width: 420px; }
.prediction-compare-control > span { color: var(--muted); font-size: 10px; }
.prediction-model-checkboxes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px 14px; border: 1px solid #262e2d; padding: 8px 10px; }
.prediction-model-checkboxes label { display: flex; align-items: center; gap: 6px; font: 10px var(--mono); color: var(--text); padding: 2px 0; }
.prediction-model-checkboxes label i { width: 8px; height: 8px; border-radius: 2px; flex: 0 0 8px; }
.prediction-model-checkboxes input { accent-color: var(--lime); }
.prediction-select-all { grid-column: 1 / -1; border-bottom: 1px solid #262e2d; padding-bottom: 6px; margin-bottom: 2px; color: var(--muted); }
.prediction-horizon-input { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; }
.prediction-horizon-input input { width: 60px; border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 4px 6px; font: 12px var(--mono); }
.financials-keyfacts-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 16px; }
.financials-keyfacts-grid div { display: grid; gap: 6px; }
.financials-keyfacts-grid span { color: var(--muted); font: 10px var(--mono); }
.financials-keyfacts-grid strong { font: 15px var(--mono); font-weight: 400; }
.financials-keyfacts-grid strong em { margin-left: 4px; color: var(--muted); font: 9px var(--mono); font-style: normal; }
.financials-keyfacts-grid a { color: inherit; text-decoration: underline; }
.financials-about-text { color: var(--text); font: 11px var(--mono); line-height: 1.6; max-width: 900px; margin: 10px 0 6px; }
.financials-show-more { border: 0; background: transparent; color: var(--cyan); font: 11px var(--mono); padding: 0; }
.financials-grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 4px; }
.financials-card { min-width: 0; }
.financials-card h3 { font-size: 13px; margin: 0 0 12px; }
.financials-unavailable { display: flex; align-items: center; justify-content: center; text-align: center; color: var(--muted); font: 10px var(--mono); line-height: 1.6; padding: 20px; border: 1px dashed #2c3634; border-radius: 6px; min-height: 140px; }
.financials-donut-row { display: flex; align-items: center; gap: 22px; }
.financials-donut-frame { position: relative; width: 130px; height: 130px; flex: 0 0 130px; }
.financials-donut-frame canvas { display: block; width: 100%; height: 100%; }
.financials-donut-label { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font: 13px var(--mono); pointer-events: none; }
.financials-donut-legend { display: grid; gap: 12px; font: 10px var(--mono); }
.financials-donut-legend span { display: flex; align-items: center; gap: 7px; color: var(--muted); }
.financials-donut-legend b { color: var(--text); font-weight: 400; margin-left: auto; padding-left: 14px; }
.financials-donut-legend i { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 8px; }
.financials-donut-legend.inline { display: flex; gap: 16px; margin-top: 10px; }
.financials-donut-legend.inline span { gap: 5px; }
.financials-valuation-ratios { display: grid; gap: 10px; font: 11px var(--mono); }
.financials-valuation-ratios div { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); }
.financials-valuation-ratios b { color: var(--text); font-weight: 400; }
.financials-bars-row { display: flex; align-items: stretch; gap: 20px; }
.financials-bars-row canvas { flex: 1; min-width: 0; display: block; width: 100%; height: 150px; }
.financials-bars-legend { display: grid; gap: 10px; font: 10px var(--mono); min-width: 150px; }
.financials-bars-legend span { display: flex; align-items: center; gap: 7px; color: var(--muted); }
.financials-bars-legend b { color: var(--text); font-weight: 400; margin-left: auto; padding-left: 14px; }
.financials-bars-legend i { width: 8px; height: 8px; border-radius: 2px; flex: 0 0 8px; }
.financials-bars-legend.inline { display: flex; gap: 16px; margin-top: 10px; }
.financials-chart-frame { display: flex; align-items: stretch; }
.financials-chart-plot { position: relative; flex: 1; min-width: 0; }
.financials-chart-plot canvas { display: block; width: 100%; height: 190px; }
.financials-chart-y-axis { position: relative; flex: 0 0 54px; width: 54px; pointer-events: none; }
.financials-chart-y-axis span { position: absolute; left: 6px; transform: translateY(-50%); color: var(--muted); font: 8px var(--mono); white-space: nowrap; }
.financials-bar-x-axis { position: relative; width: calc(100% - 54px); height: 18px; margin-top: 2px; }
.financials-bar-x-axis span { position: absolute; top: 0; transform: translateX(-50%); color: var(--muted); font: 9px var(--mono); white-space: nowrap; }
.financials-help { display: inline-flex; align-items: center; justify-content: center; width: 13px; height: 13px; border-radius: 50%; border: 1px solid #4a5654; color: var(--muted); font-size: 8px; vertical-align: middle; cursor: help; }
.financials-dot-legend { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
.financials-dot-legend.actual { background: #2fd6a8; }
.financials-dot-legend.estimate { background: transparent; border: 2px solid #2fd6a8; }
.financials-page[hidden] { display: none; }
.financials-statement-chart-frame .financials-chart-plot canvas { height: 150px; }
.financials-statement-controls { display: flex; justify-content: space-between; align-items: center; margin: 18px 0 12px; flex-wrap: wrap; gap: 12px; }
.financials-statement-type-tabs { padding: 0; border-bottom: 0; }
.financials-statement-table-wrap { overflow-x: auto; }
.financials-statement-table { width: 100%; border-collapse: collapse; font: 10px var(--mono); white-space: nowrap; }
.financials-statement-table th, .financials-statement-table td { padding: 9px 14px; text-align: right; border-bottom: 1px solid #1c2423; }
.financials-statement-table thead th { color: var(--muted); font-weight: 400; text-align: right; }
.financials-statement-table thead th.financials-statement-metrics-head, .financials-statement-table td:first-child { text-align: left; }
.financials-statement-table thead th small { display: block; color: #545c5a; font-weight: 400; margin-top: 2px; }
.financials-statement-table tbody td:first-child { color: var(--text); position: sticky; left: 0; background: #050607; }
.financials-statement-table tr { border-left: 3px solid transparent; }
.financials-statement-table tr.financials-row-blue { background: #0f1a2e; border-left-color: #2f7cff; }
.financials-statement-table tr.financials-row-blue td:first-child { background: #0f1a2e; }
.financials-statement-table tr.financials-row-cyan { background: #0c1f21; border-left-color: #2fd6c8; }
.financials-statement-table tr.financials-row-cyan td:first-child { background: #0c1f21; }
.financials-statement-table tr.financials-row-orange { background: #241a0c; border-left-color: #f0a136; }
.financials-statement-table tr.financials-row-orange td:first-child { background: #241a0c; }
.financials-statement-table tr.financials-row-purple { background: #1c1428; border-left-color: #a76bf0; }
.financials-statement-table tr.financials-row-purple td:first-child { background: #1c1428; }
.financials-statement-table tr.financials-row-gold { background: #23200c; border-left-color: #f0d43a; }
.financials-statement-table tr.financials-row-gold td:first-child { background: #23200c; }
.financials-row-chevron { display: inline-block; color: var(--muted); margin-right: 6px; font-style: normal; transition: transform 0.12s; }
.financials-row-indent td:first-child { color: var(--muted); padding-left: 22px; }
.financials-row-toggle { display: inline-flex; align-items: center; border: 0; background: transparent; color: inherit; font: inherit; padding: 0; cursor: pointer; text-align: left; }
.financials-row-toggle:hover { color: var(--text); }
.financials-row-toggle.expanded .financials-row-chevron { transform: rotate(90deg); }
.financials-row-child td:first-child { padding-left: 40px; }
.financials-yoy-up { color: var(--cyan); }
.financials-yoy-down { color: var(--red); }
.financials-statement-group-header td { padding: 20px 14px 8px; border-bottom: 0; color: var(--text); font-size: 13px; font-weight: 600; }
.financials-statement-group-header:first-child td { padding-top: 8px; }
.financials-subheading { margin: 26px 0 14px; font-size: 15px; }
@media (max-width: 900px) { .financials-keyfacts-grid { grid-template-columns: repeat(2, 1fr); } .financials-grid-2col { grid-template-columns: 1fr; } .financials-donut-row, .financials-bars-row { flex-direction: column; align-items: flex-start; } }
.forecast-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); padding-bottom: 13px; }
.forecast-title { display: flex; align-items: center; gap: 8px; }
.forecast-title h2 { font: 13px var(--mono); font-weight: 600; margin: 0; }
.forecast-title h2 i { color: var(--muted); font-style: normal; margin: 0 2px; }
.forecast-symbol-icon { width: 20px; height: 20px; border-radius: 5px; display: flex; align-items: center; justify-content: center; font: 10px var(--mono); font-weight: 600; }
.forecast-header button { display: flex; align-items: center; gap: 6px; border: 0; background: transparent; color: var(--muted); padding: 7px; font: 10px var(--mono); }
.forecast-header button i { font-style: normal; }
.forecast-tabs { display: flex; gap: 7px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.forecast-tabs button { border: 1px solid #303838; border-radius: 14px; background: #151a1b; color: var(--muted); padding: 6px 11px; font: 10px var(--mono); }
.forecast-tabs button.active { background: #d8dde0; color: #101415; }
.forecast-price { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 10px 32px; padding: 18px 0 9px; }
.forecast-price-main { display: flex; flex-direction: column; gap: 5px; }
.forecast-price-label { color: var(--muted); font: 10px var(--mono); }
.forecast-price-value { display: flex; align-items: baseline; gap: 6px; }
.forecast-price-value strong { font: 26px var(--mono); font-weight: 600; }
.forecast-price-value em { color: var(--muted); font: 11px var(--mono); font-style: normal; }
.forecast-price-delta { font: 12px var(--mono); }
.forecast-price-delta b { font-weight: 400; }
.forecast-price-delta.positive { color: var(--cyan); }
.forecast-price-delta.negative { color: var(--red); }
.forecast-price-note { max-width: 440px; color: var(--muted); font: 9px var(--mono); line-height: 1.5; text-align: right; }
.forecast-main-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(240px, 1fr); gap: 26px; border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.forecast-price-section { min-width: 0; position: relative; }
.forecast-chart-frame { position: relative; display: flex; align-items: stretch; }
.forecast-chart-plot { position: relative; flex: 1; min-width: 0; }
.forecast-chart-plot canvas { display: block; width: 100%; height: 250px; }
.forecast-chart-tags { position: absolute; inset: 0; pointer-events: none; }
.forecast-price-y-axis { position: relative; flex: 0 0 58px; width: 58px; pointer-events: none; }
.forecast-price-y-axis span { position: absolute; left: 6px; transform: translateY(-50%); color: var(--muted); font: 8px var(--mono); white-space: nowrap; }
.forecast-chart-y-axis { position: absolute; inset: 0; pointer-events: none; }
.forecast-chart-y-axis span { position: absolute; right: 4px; transform: translateY(-50%); color: var(--muted); font: 8px var(--mono); background: #10181799; padding: 1px 4px; border-radius: 2px; }
.forecast-chart-tag { position: absolute; right: 4px; transform: translateY(-50%); padding: 2px 6px; font: 8px var(--mono); color: var(--text); background: #101817; white-space: nowrap; }
.forecast-chart-tag b { font-weight: 400; }
.forecast-chart-tag.max { background: #0ba89933; color: var(--cyan); }
.forecast-chart-tag.avg { background: #101817; color: var(--cyan); }
.forecast-chart-tag.current { background: #2f7cff33; color: #7fb0ff; }
.forecast-chart-tag.min { background: #ed3b5233; color: var(--red); }
.forecast-price-hover-dot { position: absolute; width: 6px; height: 6px; margin: -3px; border-radius: 50%; background: #2f7cff; box-shadow: 0 0 0 3px #2f7cff33; pointer-events: none; opacity: 0; }
.forecast-price-hover-dot.visible { opacity: 1; }
.forecast-price-tooltip { position: absolute; top: 6px; padding: 6px 8px; background: #1a2221; border: 1px solid #2c3634; border-radius: 6px; font: 9px var(--mono); color: var(--text); box-shadow: 0 4px 10px #00000066; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity 0.1s; z-index: 2; white-space: nowrap; }
.forecast-price-tooltip.visible { opacity: 1; visibility: visible; }
.forecast-price-tooltip b { display: block; margin-top: 2px; }
.forecast-chart-range-labels { position: relative; width: calc(100% - 58px); height: 16px; color: var(--muted); font: 8px var(--mono); letter-spacing: 0.04em; }
.forecast-chart-range-labels span { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; }
.forecast-chart-x-axis { position: relative; width: calc(100% - 58px); height: 30px; margin-top: 2px; }
.forecast-chart-x-axis span { position: absolute; top: 0; transform: translateX(-50%); text-align: center; color: var(--muted); font: 8px var(--mono); white-space: nowrap; }
.forecast-chart-x-axis span b { display: block; font-weight: 400; margin-top: 2px; }
.forecast-chart-legend { display: flex; gap: 18px; color: var(--muted); font: 9px var(--mono); margin-top: 6px; }
.forecast-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.forecast-line { display: inline-block; width: 18px; border-top: 2px solid #2f7cff; }.forecast-line.estimate { border-top-style: dashed; border-color: #0ba899; }.forecast-range { width: 18px; height: 7px; background: #0ba89933; }
.forecast-rating { border-left: 1px solid var(--line); padding-left: 22px; }
.forecast-rating h3 { margin: 3px 0 5px; font-size: 14px; }.forecast-rating > small { display: block; color: var(--muted); font: 9px var(--mono); line-height: 1.5; }
.forecast-rating .forecast-gauge { margin: 18px auto 30px; }
.forecast-rating .forecast-gauge .gauge-fill { background-image: linear-gradient(90deg, #f0a136 0%, #d6f461 48%, #0ba899 100%); }
.forecast-rating .forecast-gauge b { color: var(--cyan); font: 13px var(--mono); }
.forecast-rating-bars { display: grid; gap: 7px; margin-top: 20px; }.forecast-rating-bars div { display: grid; grid-template-columns: 72px 1fr 22px; align-items: center; gap: 7px; font: 9px var(--mono); }.forecast-rating-bars span { color: var(--muted); }.forecast-rating-bars i { height: 4px; background: linear-gradient(90deg, var(--bar-color) var(--bar), #29302f var(--bar)); }.forecast-rating-bars b { text-align: right; font-weight: 400; }
.forecast-financials { display: grid; grid-template-columns: 1fr; gap: 24px; padding-top: 20px; }.forecast-financial-card { min-width: 0; }.forecast-section-heading { display: flex; justify-content: space-between; align-items: center; }.forecast-section-heading h3 { margin: 0; font-size: 14px; }.forecast-period-controls { display: inline-flex; border: 1px solid #3a4743; border-radius: 12px; overflow: hidden; }.forecast-period { border: 0; background: transparent; color: var(--muted); padding: 4px 8px; font: 9px var(--mono); }.forecast-period.active { background: #d8dde0; color: #101415; }
.forecast-chart-wrap { position: relative; margin-top: 9px; }
.forecast-chart-wrap canvas { display: block; width: 100%; height: 150px; }
.forecast-bar-x-axis { position: relative; height: 16px; margin-top: 2px; }
.forecast-bar-x-axis span { position: absolute; top: 0; transform: translateX(-50%); color: var(--muted); font: 8px var(--mono); white-space: nowrap; }
.forecast-zone-label { position: absolute; top: 62%; text-align: center; color: #5b6462; font: 9px var(--mono); letter-spacing: 0.12em; pointer-events: none; }
.forecast-bar-tooltip { position: absolute; top: 6px; padding: 6px 8px; background: #1a2221; border: 1px solid #2c3634; border-radius: 6px; font: 9px var(--mono); color: var(--text); box-shadow: 0 4px 10px #00000066; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity 0.1s; z-index: 2; }
.forecast-bar-tooltip.visible { opacity: 1; visibility: visible; }
.forecast-bar-tooltip .row { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.forecast-bar-tooltip .row + .row { margin-top: 3px; }
.forecast-bar-tooltip .row i { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.forecast-bar-tooltip .row b { font-weight: 400; margin-left: auto; padding-left: 8px; }
.forecast-bar-legend { display: flex; gap: 14px; margin-top: 7px; color: var(--muted); font: 9px var(--mono); }
.forecast-bar-legend span { display: inline-flex; align-items: center; gap: 5px; }
.forecast-bar-legend .dot { width: 7px; height: 7px; border-radius: 2px; background: #5b6462; }
.forecast-bar-legend .dot.reported { background: #2f7cff; }
.forecast-financial-card table { width: 100%; border-collapse: collapse; font: 9px var(--mono); margin-top: 9px; }.forecast-financial-card th, .forecast-financial-card td { border-bottom: 1px solid #202727; padding: 6px 4px; text-align: right; }.forecast-financial-card th:first-child, .forecast-financial-card td:first-child { text-align: left; color: var(--muted); }
.forecast-financial-card th small { display: block; color: var(--muted); font-weight: 400; margin-top: 2px; }
.forecast-surprise td:not(:first-child) { color: var(--cyan); }
.forecast-unavailable { padding: 40px; text-align: center; color: var(--muted); font: 12px var(--mono); }
@media (max-width: 800px) { .forecast-report { padding: 15px; }.forecast-main-grid, .forecast-financials { grid-template-columns: 1fr; }.forecast-rating { border-left: 0; border-top: 1px solid var(--line); padding: 18px 0 0; }.forecast-chart-plot canvas { height: 210px; }.forecast-price { align-items: flex-start; }.forecast-price-note { text-align: left; max-width: none; } }
.technicals-header { display: flex; justify-content: space-between; align-items: start; border-bottom: 1px solid var(--line); padding-bottom: 15px; }
.technicals-header h2 { font-size: 20px; }
.technicals-range-label { display: block; color: var(--muted); font: 10px var(--mono); margin-top: 7px; }
.technicals-header button { border: 0; background: transparent; color: var(--muted); padding: 8px; }
.technicals-timeframes { display: flex; gap: 4px; align-items: center; height: 46px; color: var(--muted); font: 10px var(--mono); border-bottom: 1px solid var(--line); }
.technicals-timeframes button { border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); padding: 15px 9px; font: inherit; cursor: pointer; }
.technicals-timeframes button:hover, .technicals-timeframes button.selected { color: var(--text); border-bottom-color: var(--lime); }
.technical-range-control { display: flex; align-items: center; gap: 6px; margin-right: 8px; color: var(--muted); font: 9px var(--mono); }
.technical-range-control select { border: 1px solid #3a4743; background: #151a1b; color: var(--text); padding: 5px 7px; font: inherit; }
.technicals-summary { display: grid; grid-template-columns: 1fr 180px 1fr; gap: 35px; align-items: center; padding: 30px 0; text-align: center; }
.technicals-summary h3, .technicals-tables h3, .technicals-pivots h3 { margin: 0 0 12px; font-size: 14px; text-align: center; }
.technicals-summary strong, .technicals-summary span { display: block; font: 11px var(--mono); }
.technicals-summary strong { color: var(--lime); font-size: 16px; margin: 8px 0; }
.technicals-summary span { color: var(--muted); }
.technical-gauge { width: 180px; height: 90px; margin: 0 auto 30px; position: relative; }
.technical-gauge::before,
.technical-gauge .gauge-fill {
  content: "";
  position: absolute; inset: 0;
  background-size: 180px 180px;
  background-position: 0 0;
  background-repeat: no-repeat;
  -webkit-mask-size: 180px 180px;
  -webkit-mask-position: 0 0;
  -webkit-mask-repeat: no-repeat;
  mask-size: 180px 180px;
  mask-position: 0 0;
  mask-repeat: no-repeat;
}
.technical-gauge::before {
  background-image: conic-gradient(#3a4342 0deg 360deg);
  -webkit-mask-image: radial-gradient(circle, transparent 81px, #000 81px, #000 90px, transparent 90px);
  mask-image: radial-gradient(circle, transparent 81px, #000 81px, #000 90px, transparent 90px);
}
.technical-gauge .gauge-fill {
  background-image: linear-gradient(90deg, #ed3b52 0%, #a33c8c 48%, #386dff 100%);
  -webkit-mask-image: radial-gradient(circle, transparent 81px, #000 81px, #000 90px, transparent 90px), conic-gradient(from 270deg, #000 0deg var(--gauge-angle), transparent var(--gauge-angle) 360deg);
  -webkit-mask-composite: source-in;
  mask-image: radial-gradient(circle, transparent 81px, #000 81px, #000 90px, transparent 90px), conic-gradient(from 270deg, #000 0deg var(--gauge-angle), transparent var(--gauge-angle) 360deg);
  mask-composite: intersect;
}
.technical-gauge i { position: absolute; z-index: 2; left: 50%; bottom: 0; width: 2px; height: 72px; background: #dfe4e2; transform-origin: bottom; transform: translateX(-50%) rotate(var(--gauge-rotation)); }
.technical-gauge i::after { content: ""; position: absolute; left: 50%; bottom: -4px; width: 8px; height: 8px; border-radius: 50%; background: #dfe4e2; transform: translateX(-50%); }
.technical-gauge b { position: absolute; z-index: 3; left: 0; right: 0; top: 100%; margin-top: 8px; color: var(--text); font: 13px var(--mono); text-align: center; }
.gauge-label { position: absolute !important; z-index: 3; display: block !important; color: #6f7678; font: 9px var(--mono); white-space: nowrap; }
.gauge-strong-sell { left: -66px !important; width: 60px !important; text-align: right !important; top: 64px !important; }
.gauge-sell { left: -6px !important; top: 4px !important; }
.gauge-neutral { left: 50% !important; top: -18px !important; transform: translateX(-50%); }
.gauge-buy { right: -6px !important; top: 4px !important; }
.gauge-strong-buy { right: -66px !important; width: 60px !important; text-align: left !important; top: 64px !important; }
.gauge-sell, .gauge-buy { color: #73797b; }
.technical-meter { min-width: 0; }
.technical-meter h3 { text-align: center; }
.technical-meter .technical-gauge { margin-top: 18px; }
.technical-meter-counts { display: flex; justify-content: space-between; }
.technical-meter-counts { margin: 0 auto; max-width: 190px; text-align: center; }
.technical-meter-counts span { display: grid; gap: 4px; }
.technical-meter-counts small { color: var(--text); font: 11px var(--mono); }
.technical-meter-counts b { color: var(--text); font: 15px var(--mono); font-weight: 400; }
.technical-meter-summary .technical-gauge { margin-top: 18px; }
.technicals-tables { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; margin-bottom: 35px; }
.technicals-tables h3 span, .technicals-pivots h3 span { color: var(--muted); float: right; }
.technicals-report table { width: 100%; border-collapse: collapse; font: 10px var(--mono); }
.technicals-report th, .technicals-report td { border-bottom: 1px solid #222828; padding: 8px 6px; text-align: center; }
.technicals-report th { color: var(--muted); font-weight: 400; }
.technicals-report .buy { color: var(--cyan); }.technicals-report .sell { color: var(--red); }.technicals-report .neutral { color: var(--muted); }
.technicals-pivots { padding-bottom: 30px; }
@media (max-width: 800px) { .technicals-report { padding: 16px; }.technicals-summary, .technicals-tables { grid-template-columns: 1fr; }.technicals-timeframes { overflow-x: auto; gap: 16px; } }
.strategy-report.table-view .strategy-equity-chart, .strategy-report.table-view .strategy-histogram { display: none; }
.strategy-report-section { padding: 18px 0; border-bottom: 1px solid #232829; }
.strategy-report-section h3 { margin: 0 0 16px; font-size: 15px; }
.strategy-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 18px; }
.strategy-stat-grid.compact { grid-template-columns: repeat(3, 1fr); margin: 20px 0 0; }
.strategy-stat-grid span, .strategy-stat-grid strong { display: block; }
.strategy-stat-grid span { color: var(--muted); font-size: 10px; }
.strategy-stat-grid strong { color: var(--text); font: 13px var(--mono); margin-top: 7px; }
.strategy-chart-frame { position: relative; }
.strategy-equity-chart { width: 100%; height: 190px; display: block; background: #0d1112; border-top: 1px solid #222a2a; }
.strategy-report-tabs { display: flex; gap: 7px; }
.strategy-report-tabs button { border: 0; border-radius: 12px; background: #252b2c; color: var(--muted); padding: 6px 10px; font-size: 10px; }
.strategy-report-tabs button.active { color: var(--text); background: #3b4444; }
.signal-bars { display: grid; grid-template-columns: 90px 1fr 70px; gap: 12px; align-items: center; margin-top: 21px; color: var(--muted); font: 10px var(--mono); }
.signal-bars i { height: 7px; background: linear-gradient(90deg, #a72d3e var(--win), #0ba899 var(--win)); }
.signal-bars b { color: var(--red); font: 10px var(--mono); text-align: right; }
.strategy-analysis-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(230px, .8fr); gap: 35px; }
.strategy-histogram { display: block; width: 100%; height: 145px; background: #0d1112; }
.strategy-donut { width: 140px; height: 140px; border-radius: 50%; background: conic-gradient(#0ba899 0 var(--wins), #ed3b52 var(--wins) 100%); display: grid; place-items: center; margin: 4px auto 12px; }
.strategy-donut span { width: 82px; height: 82px; border-radius: 50%; background: #090b0c; display: grid; place-items: center; color: var(--text); font: 18px var(--mono); }
.strategy-donut small { display: block; color: var(--muted); font: 8px var(--mono); }
.strategy-legend { display: flex; justify-content: center; gap: 14px; color: var(--muted); font: 9px var(--mono); }
.screener-strategy-actions { display: flex; gap: 8px; margin-bottom: 10px; }
.screener-strategy-actions button { border: 1px solid var(--line); background: transparent; color: var(--muted); font: 9px var(--mono); padding: 4px 8px; cursor: pointer; }
.screener-strategy-actions button:hover { color: var(--lime); border-color: var(--lime); }
.screener-strategy-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 4px 12px; }
.screener-strategy-grid label { display: flex; align-items: center; gap: 6px; font: 10px var(--mono); padding: 4px 0; }
.screener-strategy-grid input { accent-color: var(--lime); }
.screener-table-action { border: 1px solid var(--line); background: transparent; color: var(--muted); font: 9px var(--mono); padding: 4px 8px; cursor: pointer; }
.screener-table-action:hover { color: var(--lime); border-color: var(--lime); }
.screener-results-table th:nth-child(2), .screener-results-table td:nth-child(2) { text-align: left; }
@media (max-width: 700px) { .strategy-report { padding: 14px; }.strategy-stat-grid { grid-template-columns: 1fr 1fr; }.strategy-analysis-grid { grid-template-columns: 1fr; } }
.news-panel { display: none; }.news-panel.visible { display: block; padding: 5px 7px; }.news-panel article { padding: 13px 0; border-bottom: 1px solid #232829; }.news-panel article span, .news-panel article strong, .news-panel article small { display: block; }.news-panel article span { color: var(--lime); font: 8px var(--mono); }.news-panel article strong { font-size: 10px; line-height: 1.35; margin: 6px 0; }.news-panel article small { color: var(--muted); line-height: 1.4; font-size: 9px; }.hidden { display: none !important; }
.news-summary-row { margin-top: 6px; display: flex; align-items: center; gap: 6px; }
.news-summarize-btn { background: none; border: 1px solid #2c3234; color: var(--cyan); font: 8px var(--mono); padding: 3px 7px; border-radius: 3px; cursor: pointer; }
.news-summarize-btn:hover { border-color: var(--cyan); }
.news-summarize-btn:disabled { opacity: 0.5; cursor: default; }
.news-summary-status { color: var(--muted); font-size: 8px; }
.news-summary-body { margin-top: 6px; font-size: 9px; line-height: 1.5; color: var(--muted); }
.news-summary-body p { margin: 0 0 6px; color: #d7dadb; }
.news-summary-body b { display: block; color: var(--lime); font-size: 8px; text-transform: uppercase; margin: 6px 0 3px; }
.news-summary-body ul { margin: 0; padding-left: 14px; }
.news-summary-body li { margin-bottom: 5px; }
.news-summary-body blockquote { margin: 2px 0 0; padding-left: 6px; border-left: 2px solid #2c3234; color: #8b9294; font-style: italic; }
.news-quote-unverified { color: var(--red); font-style: normal; }
.news-summary-disclaimer { display: block; margin-top: 8px; color: #6b7274; }
.modal-layer { display: none; position: fixed; inset: 0; z-index: 20; align-items: flex-start; justify-content: center; padding-top: 105px; background: #050707aa; }.modal-layer.open { display: flex; }.modal-card { width: 390px; max-width: calc(100vw - 32px); background: #1a2020; border: 1px solid #3a4743; box-shadow: 0 20px 60px #000b; padding: 20px; }.modal-heading { display: flex; justify-content: space-between; align-items: start; margin-bottom: 15px; }.modal-heading h2 { font-size: 16px; }.modal-close { background: transparent; border: 0; color: var(--muted); font-size: 21px; line-height: 1; }.modal-close:hover { color: var(--lime); }.modal-search { width: 100%; border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 11px; font: 11px var(--mono); outline: 0; }.modal-search:focus { border-color: var(--lime); }.search-results { max-height: 310px; overflow-y: auto; margin-top: 8px; }.search-result { width: 100%; display: flex; align-items: center; justify-content: space-between; text-align: left; background: transparent; border: 0; border-bottom: 1px solid #293130; padding: 11px 5px; }.search-result:hover { background: #25302b; }.search-result strong, .search-result small { display: block; }.search-result strong { font: 11px var(--mono); }.search-result small { color: var(--muted); margin-top: 4px; font-size: 9px; }.search-result em { color: var(--cyan); font: 10px var(--mono); font-style: normal; }.search-result-manual { border-top: 1px dashed #3a4743; }.search-result-manual small { color: var(--lime); }.alert-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.alert-form label { color: var(--muted); font-size: 9px; }.alert-form input, .alert-form select { display: block; width: 100%; margin-top: 6px; border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 10px; font: 11px var(--mono); }.modal-action { grid-column: 1 / -1; border: 0; background: var(--lime); color: #182016; padding: 11px; font-weight: 600; }.saved-alerts { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 13px; color: var(--muted); font-size: 10px; }.saved-alert { display: flex; align-items: center; gap: 9px; }.saved-alert strong, .saved-alert b { font: 10px var(--mono); }.saved-alert span { flex: 1; }.saved-alert b { color: var(--lime); }
.saved-alert.triggered span { color: var(--lime); }.alert-history { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }.alert-history-heading { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 10px; margin-bottom: 8px; }.alert-history-heading button { border: 0; background: transparent; color: var(--muted); font: 9px var(--mono); cursor: pointer; }.alert-history-heading button:hover { color: var(--lime); }.alert-history-item { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 9px; padding: 4px 0; border-top: 1px solid #232829; }.alert-history-item:first-child { border-top: none; }.alert-history-item b { color: var(--text); font-weight: 400; }.setting-row { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--line); padding: 14px 0; font-size: 11px; }.setting-row input { accent-color: var(--lime); }.settings-caption { color: var(--muted); font-size: 9px; line-height: 1.5; margin-top: 7px; }.details-note { display: none; margin: 0 7px; padding: 10px; border: 1px solid #3f5635; color: var(--lime); font-size: 9px; line-height: 1.4; }.details-note.visible { display: block; }
.chart-area.locked { opacity: .78; }.chart-area.locked:after { content: 'CHART LOCKED'; position: absolute; top: 12px; left: 54px; color: var(--lime); font: 9px var(--mono); background: #192016dd; padding: 5px; }.status-right button.locked { color: var(--lime); }.bottom-collapsed .app-shell { grid-template-rows: 58px 1fr 6px 43px; }.bottom-collapsed .bottom-content { display: none; }.bottom-collapsed .bottom-panel { overflow: hidden; }.bottom-collapsed .collapse-button { transform: rotate(180deg); }.collapse-button { transition: transform .15s ease; }.chart-fullscreen .topbar, .chart-fullscreen .watch-panel, .chart-fullscreen .details-panel, .chart-fullscreen .bottom-panel, .chart-fullscreen .panel-resizer { display: none; }.chart-fullscreen .app-shell { grid-template-rows: 1fr; min-width: 0; }.chart-fullscreen .workspace { grid-template-columns: 1fr; }.chart-fullscreen .chart-panel { min-height: 100vh; }.compact .watch-row { height: 47px; }.compact .watch-panel, .compact .details-panel { padding-top: 14px; }
.editor-card { width: 560px; }.editor-card textarea { width: 100%; min-height: 230px; resize: vertical; border: 1px solid #3b4744; background: #101515; color: var(--lime); padding: 14px; font: 11px/1.65 var(--mono); outline: 0; }.editor-card textarea:focus { border-color: var(--lime); }.editor-actions { display: flex; align-items: center; justify-content: space-between; margin-top: 13px; }.editor-actions span { color: var(--muted); font: 9px var(--mono); }.editor-actions span.error { color: var(--red); }.editor-actions .modal-action { width: auto; padding: 9px 14px; }.editor-name-label { display: block; color: var(--muted); font-size: 9px; margin-bottom: 8px; }.editor-name-label input { display: block; width: 100%; margin-top: 6px; border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 9px; font: 11px var(--mono); }.saved-studies { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 13px; }.saved-study { display: flex; align-items: center; gap: 8px; padding: 7px 0; font-size: 10px; }.saved-study label { flex: 1; display: flex; align-items: center; gap: 7px; color: var(--text); }.saved-study input { accent-color: var(--lime); }.saved-study button { border: 1px solid var(--line); background: transparent; color: var(--muted); padding: 4px 9px; font: 9px var(--mono); }.saved-study button:hover { color: var(--lime); border-color: var(--lime); }.portfolio-value { border: 1px solid #3e5141; background: #202a21; padding: 16px; }.portfolio-value span, .portfolio-value strong, .portfolio-value em { display: block; }.portfolio-value span { color: var(--muted); font-size: 9px; }.portfolio-value strong { font: 22px var(--mono); margin: 8px 0; }.portfolio-value em { color: var(--cyan); font: normal 10px var(--mono); }.portfolio-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); margin-top: 14px; }.portfolio-grid div { background: #1a2020; padding: 13px; }.portfolio-grid span, .portfolio-grid b { display: block; }.portfolio-grid span { color: var(--muted); font-size: 9px; margin-bottom: 5px; }.portfolio-grid b { font: 10px var(--mono); }.portfolio-grid .portfolio-holding-row { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 10px; }.portfolio-grid .portfolio-holding-row span { margin-bottom: 0; color: var(--text); font: 500 10px var(--mono); }.portfolio-sell-button { flex: none; border: 1px solid var(--line); background: transparent; color: var(--muted); padding: 5px 10px; font: 9px var(--mono); }.portfolio-sell-button:hover { color: var(--red); border-color: var(--red); }.paper-trade-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }.paper-trade-symbol { width: 100%; color: var(--muted); font: 10px var(--mono); }.paper-trade-controls input { width: 70px; border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 8px; font: 11px var(--mono); }.paper-trade-controls button { border: 1px solid var(--line); background: transparent; color: var(--text); padding: 8px 14px; font: 10px var(--mono); }.paper-trade-controls button[data-paper-side="buy"] { border-color: #3f7a5f; color: var(--cyan); }.paper-trade-controls button[data-paper-side="buy"]:hover { background: #16302680; }.paper-trade-controls button[data-paper-side="sell"] { border-color: #7a3f3f; color: var(--red); }.paper-trade-controls button[data-paper-side="sell"]:hover { background: #30161680; }.paper-trade-controls small { width: 100%; color: var(--muted); font-size: 9px; }.paper-trade-controls small.error { color: var(--red); }.profile-row { display: flex; align-items: center; gap: 12px; padding: 15px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.large-avatar { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; }.profile-row strong, .profile-row small { display: block; }.profile-row strong { font-size: 12px; }.profile-row small { color: var(--muted); font-size: 9px; margin-top: 4px; }.profile-action { width: 100%; background: transparent; color: var(--muted); border: 1px solid var(--line); padding: 10px; margin-top: 14px; }.profile-action:hover { color: var(--lime); border-color: var(--lime); }
.chart-crosshair-x, .chart-crosshair-y { display: none; position: absolute; pointer-events: none; z-index: 2; }.chart-crosshair-x.visible, .chart-crosshair-y.visible { display: block; }.chart-crosshair-x { top: 0; bottom: 28px; width: 1px; background: #9fac9b66; border-left: 1px dashed #9fac9b66; }.chart-crosshair-y { left: 41px; right: 45px; height: 1px; background: #9fac9b66; border-top: 1px dashed #9fac9b66; }.chart-tooltip { display: none; position: absolute; z-index: 4; width: 184px; padding: 11px; background: #111717ee; border: 1px solid #53645c; box-shadow: 0 8px 20px #0009; pointer-events: none; }.chart-tooltip.visible { display: block; }.chart-tooltip > strong, .chart-tooltip > span, .chart-tooltip > small { display: block; }.chart-tooltip > strong { color: var(--text); font: 10px var(--mono); }.chart-tooltip > span { color: var(--muted); font: 9px var(--mono); margin: 4px 0 10px; }.chart-tooltip div { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; border-top: 1px solid var(--line); padding-top: 9px; }.chart-tooltip label { color: var(--muted); font: 9px var(--mono); }.chart-tooltip label b { color: var(--text); font-weight: 400; margin-left: 3px; }.chart-tooltip small { color: var(--muted); font: 9px var(--mono); margin-top: 10px; }.chart-tooltip small b { color: var(--cyan); font-weight: 400; }
.chart-tooltip { transform: translateZ(0); }
.red-dot { background: var(--red); }
.strategy-menu { display: none; position: absolute; z-index: 6; top: 38px; right: 205px; width: 245px; padding: 14px; background: #1a2020; border: 1px solid #3a4743; box-shadow: 0 15px 35px #0009; }.strategy-menu.open { display: block; }.strategy-menu p { color: var(--muted); font-size: 9px; margin: 5px 0 12px; }.strategy-menu label { display: flex; align-items: center; gap: 7px; padding: 8px 4px; border-top: 1px solid #293130; font-size: 10px; }.strategy-menu label:hover { background: #25302b; }.strategy-menu input { accent-color: var(--lime); }.strategy-menu label span { flex: 1; }.strategy-menu label em { color: var(--muted); font: 8px var(--mono); font-style: normal; }
.pattern-menu { display: none; position: absolute; z-index: 6; top: 38px; right: 130px; width: 270px; max-height: calc(100vh - 70px); overflow-y: auto; padding: 14px; background: #1a2020; border: 1px solid #3a4743; box-shadow: 0 15px 35px #0009; }.pattern-menu.open { display: block; }.pattern-menu p { color: var(--muted); font-size: 9px; margin: 5px 0 12px; line-height: 1.5; }.pattern-menu label { display: flex; align-items: center; gap: 7px; padding: 8px 4px; border-top: 1px solid #293130; font-size: 10px; }.pattern-menu label:hover { background: #25302b; }.pattern-menu input { accent-color: var(--lime); }.pattern-menu label span { flex: 1; }
.indicator-menu.dragging, .strategy-menu.dragging, .pattern-menu.dragging { z-index: 50; opacity: 0.92; box-shadow: 0 20px 45px #000c; }
.indicator-menu.docked, .strategy-menu.docked, .pattern-menu.docked { border-color: var(--lime); }
.prediction-menu { display: none; position: absolute; z-index: 6; top: 38px; right: 50px; width: 250px; padding: 14px; background: #1a2020; border: 1px solid #3a4743; box-shadow: 0 15px 35px #0009; }.prediction-menu.open { display: block; }.prediction-menu p { color: var(--muted); font-size: 9px; margin: 5px 0 12px; line-height: 1.5; }.prediction-menu label { display: flex; align-items: center; gap: 7px; padding: 8px 4px; border-top: 1px solid #293130; font-size: 10px; }.prediction-menu label:hover { background: #25302b; }.prediction-menu input { accent-color: var(--lime); }.prediction-menu label span { flex: 1; }.prediction-menu .prediction-horizon { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 4px 4px; border-top: 1px solid #293130; margin-top: 4px; font-size: 10px; color: var(--muted); }.prediction-menu .prediction-horizon select { background: #101515; color: var(--text); border: 1px solid #3b4744; padding: 4px 6px; font: inherit; }
.rsi-settings-modal { display: none; position: fixed; inset: 0; z-index: 30; align-items: flex-start; justify-content: flex-start; padding: 74px 0 0 18px; background: #05070788; }
.rsi-settings-modal.open { display: flex; }
.rsi-settings-card { width: 340px; max-height: calc(100vh - 92px); overflow: auto; background: #202020; color: #d6d6d6; box-shadow: 0 20px 55px #000b; }
.rsi-settings-heading { display: flex; align-items: center; justify-content: space-between; padding: 14px 7px 10px; }
.rsi-settings-heading h2 { margin: 0; font-size: 19px; font-weight: 500; }
.rsi-settings-heading button { border: 0; background: transparent; color: #c5c5c5; font-size: 27px; line-height: 1; }
.rsi-settings-tabs { display: flex; gap: 24px; padding: 0 7px; border-bottom: 1px solid #505050; }
.rsi-settings-tabs button { border: 0; border-bottom: 3px solid transparent; background: transparent; color: #bcbcbc; padding: 7px 0 8px; font-size: 14px; }
.rsi-settings-tabs button.active { border-bottom-color: #f1f1f1; color: #f1f1f1; }
.rsi-settings-content { display: grid; gap: 11px; padding: 17px 7px 20px; }
.rsi-settings-content label { display: grid; grid-template-columns: 90px 100px; align-items: center; gap: 0; font-size: 14px; }
.rsi-settings-content input[type="number"], .rsi-settings-content select { width: 100px; border: 1px solid #5b5b5b; border-radius: 6px; background: #202020; color: #ddd; padding: 8px; font-size: 14px; }
.rsi-settings-content select { appearance: auto; }
.rsi-settings-label { margin-top: 17px; color: #8f8f8f; font-size: 11px; letter-spacing: .04em; }
.rsi-check { display: flex !important; grid-template-columns: none !important; gap: 8px !important; }
.rsi-check input { width: 18px; height: 18px; accent-color: #f1f1f1; }
.rsi-check i { color: #8f8f8f; font-style: normal; font-size: 11px; }
.rsi-settings-help { color: #999; font-size: 12px; line-height: 1.4; margin: 0; }
.rsi-settings-actions { display: grid; grid-template-columns: auto 1fr auto auto; gap: 10px; align-items: center; border-top: 1px solid #515151; padding: 15px 7px; }
.rsi-settings-actions button { border: 1px solid #686868; border-radius: 6px; background: transparent; color: #ddd; padding: 7px 13px; font-size: 14px; }
.rsi-settings-actions button:hover { border-color: #fff; }
.rsi-settings-actions .confirm { background: #f1f1f1; color: #202020; }
.auth-gate { display: none; position: fixed; inset: 0; z-index: 100; align-items: center; justify-content: center; background: #050707; }
.auth-gate.open { display: flex; }
.auth-gate .modal-card { width: 340px; }
.auth-tabs { display: flex; gap: 4px; margin-bottom: 16px; }
.auth-tabs button { flex: 1; border: 1px solid var(--line); background: transparent; color: var(--muted); padding: 8px; font: 10px var(--mono); cursor: pointer; }
.auth-tabs button.active { color: var(--lime); border-color: var(--lime); }
.auth-gate .alert-form { grid-template-columns: 1fr; }
.auth-error { margin-top: 12px; color: var(--red); font: 10px var(--mono); }
.auth-error[hidden] { display: none; }

.ibkr-settings .setting-row input[type="text"], .ibkr-settings .setting-row input[type="number"] { width: 150px; border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 7px 8px; font: 11px var(--mono); }
.ibkr-test-button { border: 1px solid #3a4743; background: #151a1b; color: var(--text); padding: 6px 10px; font: 10px var(--mono); cursor: pointer; }
.ibkr-test-button:hover { border-color: var(--lime); color: var(--lime); }
.ibkr-ok { color: var(--lime); }
.ibkr-error { color: #ff7a7a; }
.ibkr-settings[hidden] { display: none; }

.timeframes { position: relative; }
.timeframes select { border: 1px solid #303838; background: #151a1b; color: var(--text); padding: 4px 6px; font: 10px var(--mono); margin-right: 6px; }
.range-group { display: flex; align-items: center; gap: 2px; }
.range-group button { border: 0; background: transparent; color: var(--muted); padding: 5px 8px; font-size: 10px; }
.range-group button:hover, .range-group button.selected { color: var(--lime); background: #273021; }
.range-note { color: #d9a441; font: 9px var(--mono); margin-left: 8px; max-width: 260px; }
.range-note[hidden], .custom-range-popover[hidden] { display: none; }
.custom-range-popover { position: absolute; z-index: 30; top: 34px; left: 0; display: flex; flex-direction: column; gap: 8px; padding: 12px; background: #1a2020; border: 1px solid #3a4743; box-shadow: 0 15px 35px #0009; }
.custom-range-popover label { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--muted); font: 10px var(--mono); }
.custom-range-popover input { border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 5px 6px; font: 10px var(--mono); color-scheme: dark; }
.custom-range-actions { display: flex; gap: 6px; }
.custom-range-actions button { flex: 1; border: 1px solid #3a4743; background: #151a1b; color: var(--text); padding: 5px 8px; font: 10px var(--mono); cursor: pointer; }
.custom-range-actions button:first-child { background: var(--lime); color: #182016; border-color: var(--lime); }
.custom-range-error { color: #ff7a7a; font: 9px var(--mono); }

.watch-row-warehouse, .warehouse-all-button { display: inline-flex; align-items: center; justify-content: center; color: #c9d3d1; opacity: .65; cursor: pointer; }
.warehouse-all-button { vertical-align: middle; }
.watch-row-warehouse { width: 20px; height: 20px; }
.watch-row-warehouse svg, .warehouse-all-button svg { width: 100%; height: 100%; display: block; }
.warehouse-all-button svg { width: 16px; height: 16px; }
.watch-row:hover .watch-row-warehouse, .warehouse-all-button:hover { opacity: 1; }
.watch-row-warehouse:hover, .warehouse-all-button:hover { color: var(--lime); }
.watch-row-warehouse.queued { opacity: .4; }
.watch-row-warehouse.busy { color: var(--lime); opacity: 1; animation: warehouse-pulse 1s ease-in-out infinite; }
@keyframes warehouse-pulse { 50% { opacity: .35; } }
.warehouse-card { width: 430px; }
.warehouse-body p { margin: 0 0 10px; font-size: 12px; line-height: 1.5; }
.warehouse-note { color: var(--muted); font-size: 11px; }
.warehouse-errors { margin: 0 0 10px; padding-left: 16px; max-height: 160px; overflow-y: auto; font: 10px var(--mono); color: var(--red); }
.warehouse-progress { height: 4px; background: #101515; margin: 4px 0 14px; }
.warehouse-progress i { display: block; height: 100%; width: 0; background: var(--lime); transition: width .3s ease; }
.warehouse-actions { display: flex; justify-content: flex-end; gap: 10px; }
.warehouse-actions .modal-action { grid-column: auto; padding: 9px 16px; }
.warehouse-secondary { border: 1px solid #3b4744; background: transparent; color: var(--text); padding: 9px 16px; }
.warehouse-secondary:hover { border-color: var(--lime); color: var(--lime); }

.db-status-report .forecast-header > span { display: flex; gap: 6px; }
.db-filter { max-width: 280px; margin: 0 0 12px; }
.db-table-wrap { overflow-x: auto; }
.db-table th, .db-table td { white-space: nowrap; vertical-align: top; }
.db-table td b { display: block; font-weight: 500; color: var(--text); }
.db-table small { display: block; color: var(--muted); font-size: 9px; margin-top: 2px; }
.db-table td:first-child strong { color: var(--text); font-weight: 500; }
.db-table .db-empty { color: #4a5453; }
.db-table tr.db-unwatched td:first-child strong { color: var(--muted); }
.db-badge { display: inline-block; padding: 3px 8px; border-radius: 3px; font: 9px var(--mono); border: 1px solid transparent; }
.db-none { color: #6d7676; border-color: #2c3434; }
.db-low { color: var(--red); border-color: #5a2e2e; }
.db-basic { color: #f0a136; border-color: #5a4622; }
.db-good { color: var(--cyan); border-color: #24555a; }
.db-excellent { color: var(--lime); border-color: #4b5f22; }
.db-source { display: inline-block; margin-left: 6px; padding: 1px 5px; border: 1px solid #4b5f22; border-radius: 3px; color: var(--lime); font: 8px var(--mono); vertical-align: middle; }

.discover-button { display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; color: #c9d3d1; opacity: .65; cursor: pointer; }
.discover-button svg { width: 16px; height: 16px; display: block; }
.discover-button:hover { opacity: 1; color: var(--lime); }
.discover-link { width: 100%; margin-top: 10px; padding: 9px; border: 1px dashed #3a4743; background: transparent; color: var(--lime); font: 10px var(--mono); text-align: center; cursor: pointer; }
.discover-link:hover { border-color: var(--lime); }
.discover-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px; align-items: end; }
.discover-controls label { color: var(--muted); font-size: 9px; }
.discover-controls select, .discover-controls input { display: block; width: 100%; margin-top: 6px; border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 9px; font: 11px var(--mono); }
.discover-run { grid-column: auto; padding: 10px 16px; }
.discover-table th:first-child, .discover-table td:first-child { min-width: 190px; }
.discover-sortable { cursor: pointer; user-select: none; white-space: nowrap; }
.discover-sortable:hover { color: var(--lime); }
.discover-sorted { color: var(--lime); }
.discover-add { border: 1px solid #3a4743; background: #151a1b; color: var(--text); padding: 5px 9px; font: 10px var(--mono); cursor: pointer; white-space: nowrap; }
.discover-add:hover:not(:disabled) { border-color: var(--lime); color: var(--lime); }
.discover-add:disabled { color: var(--muted); cursor: default; }

.db-header-actions, .dividends-report .forecast-header > span { display: flex; gap: 6px; }
.financials-section .div-heading { margin: 24px 0 10px; font-size: 13px; font-weight: 500; color: var(--text); }
.div-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.div-chip { border: 1px solid #2d3735; background: #121818; padding: 6px 10px; font: 10px var(--mono); color: var(--muted); }
.div-chip b { color: var(--lime); font-weight: 500; }
.div-table th.div-sortable { cursor: pointer; }
.div-table th.div-sortable:hover { color: var(--lime); }
.div-table .div-yield { color: var(--lime); }
.div-table .div-amber { color: #f0a136; }
.div-badge { display: inline-block; padding: 3px 7px; border-radius: 3px; font: 9px var(--mono); border: 1px solid transparent; white-space: nowrap; }
.div-good { color: var(--lime); border-color: #4b5f22; }
.div-caution { color: #f0a136; border-color: #5a4622; }
.div-warn { color: var(--red); border-color: #5a2e2e; }

.prediction-horizon-input input[type="date"] { width: auto; }
.prediction-latest-button { border: 1px solid #3a4743; background: #151a1b; color: var(--text); padding: 4px 8px; font: 10px var(--mono); cursor: pointer; }
.prediction-latest-button:hover:not(:disabled) { border-color: var(--lime); color: var(--lime); }
.prediction-latest-button:disabled { color: var(--muted); cursor: default; }
.prediction-start-note { display: block; margin-top: 5px; color: var(--muted); font: 9px var(--mono); }

.watch-tab[hidden] { display: none; }
.portfolio-panel { display: none; }
.portfolio-panel.visible { display: block; padding: 8px 7px 14px; overflow-y: auto; }
.pf-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
.pf-summary > div { border: 1px solid #232829; background: #111617; padding: 8px; min-width: 0; }
.pf-summary span { display: block; color: var(--muted); font: 9px var(--mono); margin-bottom: 4px; }
.pf-summary b { display: block; font: 500 12px var(--mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-heading { display: flex; align-items: center; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #232829; color: var(--muted); font: 10px var(--mono); }
.pf-heading b { color: var(--lime); font-weight: 500; margin-left: 4px; }
.pf-heading button, .pf-error button { border: 1px solid #3a4743; background: #151a1b; color: var(--text); padding: 3px 8px; font: 9px var(--mono); cursor: pointer; }
.pf-heading button:hover, .pf-error button:hover { border-color: var(--lime); color: var(--lime); }
.pf-row { padding: 9px 0; border-bottom: 1px solid #232829; }
.pf-row.pf-linked { cursor: pointer; }
.pf-row.pf-linked:hover { background: #1a2020; }
.pf-line { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.pf-line strong { font: 500 12px var(--mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-line b { margin-left: auto; font: 500 12px var(--mono); white-space: nowrap; }
.pf-qty { color: var(--muted); font: 10px var(--mono); white-space: nowrap; }
.pf-sub { justify-content: space-between; margin-top: 4px; color: var(--muted); font: 10px var(--mono); }
.pf-tag { color: var(--cyan); font: 8px var(--mono); font-style: normal; border: 1px solid #24555a; padding: 1px 4px; }
.pf-empty, .pf-error { padding: 22px 6px; color: var(--muted); font: 11px var(--mono); text-align: center; }
.pf-error p { margin: 0 0 12px; line-height: 1.5; color: var(--red); text-align: left; }
.pf-foot { padding-top: 10px; color: #566160; font: 9px var(--mono); line-height: 1.5; }

.decision-center .forecast-header { position: sticky; top: 0; background: #050607; z-index: 2; }
.dc-disclaimer { margin: 12px 0 0; padding: 9px 12px; border: 1px solid #5a4622; border-left: 3px solid #f0a136; background: #17130a; color: #c9b58a; font: 10px/1.55 var(--mono); }
.dc-disclaimer b { color: #f0a136; font-weight: 500; }
.dc-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 14px 0 4px; border-bottom: 1px solid var(--line); }
.dc-tabs button { border: 0; background: transparent; color: var(--muted); padding: 9px 13px; font: 11px var(--mono); cursor: pointer; border-bottom: 2px solid transparent; }
.dc-tabs button:hover { color: var(--text); }
.dc-tabs button.active { color: var(--lime); border-bottom-color: var(--lime); }
.dc-body { padding-bottom: 60px; }
.dc-section { padding: 20px 0; border-bottom: 1px solid var(--line); }
.dc-section h3 { margin: 0 0 6px; font-size: 15px; font-weight: 500; }
.dc-sub { margin: 20px 0 8px; font: 500 12px var(--mono); color: var(--text); }
.dc-note { color: var(--muted); font: 10px/1.6 var(--mono); margin: 4px 0 12px; }
.dc-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin: 10px 0 14px; }
.dc-toolbar label, .dc-form label { color: var(--muted); font: 9px var(--mono); display: flex; flex-direction: column; gap: 5px; }
.dc-toolbar label.dc-check, .dc-form label.dc-check, label.dc-check { display: inline-flex; flex-direction: row; align-items: center; gap: 7px; }
.dc-toolbar button, .dc-actions button, .dc-form-actions button, .dc-table button, .dc-predlog button, .dc-notice button, .dc-callout button { border: 1px solid #3a4743; background: #151a1b; color: var(--text); padding: 7px 11px; font: 10px var(--mono); cursor: pointer; }
.dc-toolbar button:hover, .dc-actions button:hover, .dc-form-actions button:hover:not(.modal-action), .dc-table button:hover, .dc-predlog button:hover, .dc-notice button:hover { border-color: var(--lime); color: var(--lime); }
.dc-toolbar button:disabled, .dc-predlog button:disabled { color: var(--muted); cursor: default; }
.dc-input, .dc-toolbar select, .dc-form input, .dc-form select, .dc-form textarea { border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 8px 9px; font: 11px var(--mono); min-width: 110px; }
.dc-wl-picker { font: 9px var(--mono); color: var(--muted); }
.dc-wl-picker summary { cursor: pointer; padding: 8px 9px; border: 1px solid #3b4744; background: #101515; color: var(--text); }
.dc-wl-picker-body { display: flex; flex-direction: column; gap: 6px; padding: 8px 4px; }
.dc-wl-save-form { display: inline-flex; gap: 6px; align-items: center; margin-left: 8px; }
.dc-form textarea { width: 100%; resize: vertical; }
.dc-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 12px 0; padding: 14px; border: 1px solid #232829; background: #0b0f0f; }
.dc-form .dc-wide { grid-column: 1 / -1; }
.dc-form-actions { grid-column: 1 / -1; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.dc-form-actions .modal-action { grid-column: auto; padding: 9px 16px; }
.dc-tiles { margin-top: 12px; }
.dc-tiles small, .dc-table small { display: block; color: var(--muted); font: 9px var(--mono); margin-top: 3px; white-space: normal; }
.dc-tiles strong { font-weight: 500; }
.dc-table th, .dc-table td { vertical-align: top; }
.dc-table .dc-left, .dc-table th.dc-left { text-align: left; }
.dc-table .dc-small { font-size: 9.5px; line-height: 1.5; white-space: normal; min-width: 150px; max-width: 320px; }
.dc-table .dc-nowrap { white-space: nowrap; }
.dc-table td:first-child strong { color: var(--text); font-weight: 500; }
.dc-row { cursor: pointer; }
.dc-row:hover td { background: #141a1a; }
.dc-highlight td { background: #141d14; }
.dc-thesis-row td { border-bottom: 1px solid #202727; padding-top: 0; color: var(--muted); text-align: left; }
.dc-thesis-row small { max-width: 900px; white-space: normal; }
.dc-inline-row td { text-align: left; }
.dc-detail-row > td { background: #0b0f0f; padding: 14px; text-align: left; }
.dc-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 24px; }
.dc-score { font: 500 14px var(--mono); margin-right: 6px; color: var(--text); }
.dc-bar { display: inline-block; vertical-align: middle; width: 56px; height: 5px; background: #1c2423; margin-left: 4px; }
.dc-bar i { display: block; height: 100%; }
.dc-mini { display: inline-flex; align-items: flex-end; gap: 3px; height: 24px; }
.dc-mini i { display: block; width: 6px; }
.dc-mini i.dc-mini-empty { height: 3px; background: #242c2b; }
.dc-badge { display: inline-block; padding: 3px 7px; border-radius: 3px; font: 9px var(--mono); border: 1px solid #2c3434; color: var(--muted); white-space: nowrap; }
.dc-badge.dc-good { color: var(--lime); border-color: #4b5f22; }
.dc-badge.dc-caution { color: #f0a136; border-color: #5a4622; }
.dc-badge.dc-warn { color: var(--red); border-color: #5a2e2e; }
.dc-callout { margin: 12px 0; padding: 12px 14px; border: 1px solid #2d3735; background: #0f1414; font: 11px/1.65 var(--mono); }
.dc-callout a { color: var(--lime); }
.dc-caution-box { border-color: #5a4622; background: #14100a; color: #c9b58a; }
.dc-caution-box ul { margin: 6px 0 0; padding-left: 16px; font-size: 10px; line-height: 1.6; }
.dc-notice { border-color: #4b5f22; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.dc-list { margin: 6px 0 12px; padding: 0; list-style: none; font: 11px/1.6 var(--mono); }
.dc-list li { padding: 7px 10px; margin-bottom: 5px; border-left: 3px solid #2d3735; background: #0f1414; }
.dc-list li.dc-action { border-left-color: var(--red); }
.dc-list li.dc-watch { border-left-color: #f0a136; }
.dc-list li.dc-info { border-left-color: var(--lime); }
.dc-list li.dc-good { border-left-color: var(--lime); }
.dc-list li.dc-warn { border-left-color: var(--red); }
.dc-list li.dc-caution { border-left-color: #f0a136; }
.dc-table td.dc-strong { color: var(--lime); font-weight: 700; }
.dc-list li b { color: var(--lime); font-weight: 500; }
.dc-years { display: flex; align-items: flex-end; gap: 4px; height: 92px; padding-top: 8px; border-bottom: 1px solid #2d3735; }
.dc-year { flex: 1; max-width: 34px; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; font: 8px var(--mono); color: var(--muted); }
.dc-year i { display: block; width: 100%; }
.dc-year i.up { background: var(--lime); opacity: .85; }
.dc-year i.down { background: var(--red); opacity: .85; }
.dc-predlog { margin: 12px 0; padding: 10px 12px; border: 1px dashed #3a4743; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.dc-predlog a { color: var(--lime); font: 10px var(--mono); }
.dc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.decision-center .db-table-wrap { margin-top: 6px; }
#decisionButton { font-size: 17px; }
.pf-account { width: 100%; margin: 0 0 10px; border: 1px solid #3b4744; background: #101515; color: var(--text); padding: 6px 8px; font: 10px var(--mono); }
.dc-form label.dc-check { grid-column: 1 / -1; flex-direction: row; }

.db-tabs { display: flex; gap: 6px; padding: 6px 20px 0; }
.db-tabs button { border: 1px solid #3a4743; background: #151a1b; color: var(--muted); padding: 7px 14px; font: 11px var(--mono); cursor: pointer; }
.db-tabs button.active { color: var(--lime); border-color: var(--lime); }
.db-tables .db-desc { text-align: left; max-width: 520px; line-height: 1.5; }
.db-tables .db-desc small { display: block; color: var(--muted); margin-top: 3px; }
.db-tables td.db-name, .db-table td.db-name { text-align: left; white-space: nowrap; }
.alert-form label[hidden] { display: none; }
.profile-password-form { grid-template-columns: 1fr; margin-top: 14px; }
.profile-password-form[hidden] { display: none; }
.auth-error.ok { color: var(--lime); }
