:root {
  color-scheme: dark;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #07111f;
  color: #f6f8fc;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: radial-gradient(circle at top right, #133259, transparent 35rem), #07111f; }
button, input, select, textarea { font: inherit; }
button { border: 0; border-radius: .7rem; background: #4be19a; color: #042b1b; cursor: pointer; font-weight: 750; padding: .78rem 1rem; }
button:focus-visible, input:focus-visible { outline: 3px solid #86efc0; outline-offset: 2px; }

.app-shell { max-width: 1120px; margin: auto; padding: max(1.25rem, env(safe-area-inset-top)) 1rem 3rem; }
.topbar, .view-heading, .section-label { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.topbar { margin-bottom: 1rem; }
.topbar h1 { margin: .15rem 0; font-size: clamp(2rem, 6vw, 3.2rem); letter-spacing: -.04em; }
h2, h3, p { margin-top: 0; }
h2, h3 { margin-bottom: .55rem; }
.eyebrow, .muted, .notice { color: #a4b5ce; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.muted, .notice { letter-spacing: normal; }
.notice { line-height: 1.55; }
.connection { color: #9af2c5; text-align: right; }

.login-card, .card, .summary-card { background: rgba(17, 34, 58, .92); border: 1px solid #294261; border-radius: 1rem; padding: 1.1rem; margin: 1rem 0; box-shadow: 0 14px 35px rgba(0, 0, 0, .14); }
.broker-auth-banner { align-items: center; border-color: #8c6d28; display: flex; justify-content: space-between; gap: 1rem; }
.broker-auth-banner[hidden] { display: none; }
.broker-auth-banner p:last-child { margin-bottom: 0; }
.broker-auth-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .55rem; }
.button-link { border-radius: .7rem; display: inline-block; font-weight: 750; padding: .78rem 1rem; text-decoration: none; }
.tabbar { display: flex; gap: .45rem; overflow: auto; padding: .3rem 0 .95rem; position: sticky; top: 0; background: rgba(7, 17, 31, .92); backdrop-filter: blur(12px); z-index: 2; }
.nav-item, .segment, .text-button { border: 0; background: #1b304c; color: #dbe8fa; border-radius: .65rem; padding: .65rem .8rem; white-space: nowrap; font-weight: 700; cursor: pointer; }
.nav-item.active, .segment.active { background: #4be19a; color: #042b1b; }
.text-button { background: transparent; color: #8ff2c0; padding: .25rem; }
.secondary { background: #29415f; color: #f8fbff; }
.view { display: none; }
.view.active { display: block; }

.hero { overflow: hidden; position: relative; }
.hero::after { content: ""; position: absolute; width: 18rem; height: 18rem; right: -8rem; bottom: -14rem; border-radius: 50%; background: #1f6b54; opacity: .25; }
.hero h2 { font-size: clamp(2.15rem, 7vw, 3.65rem); letter-spacing: -.04em; position: relative; z-index: 1; }
.metrics, .grid-two, .summary-grid { display: grid; gap: .8rem; }
.metrics { grid-template-columns: repeat(3, 1fr); margin: 1.25rem 0 0; position: relative; z-index: 1; }
.metrics-wide { grid-template-columns: repeat(4, 1fr); }
.metrics > div { border-left: 2px solid #375778; padding-left: .7rem; }
.grid-two { grid-template-columns: repeat(2, 1fr); }
.summary-grid { grid-template-columns: repeat(4, 1fr); margin: 1rem 0; }
.summary-card { margin: 0; min-height: 6.7rem; display: flex; flex-direction: column; justify-content: space-between; }
dt, .summary-label { color: #a4b5ce; font-size: .78rem; }
dd { margin: .28rem 0 0; font-weight: 800; font-size: 1.03rem; }
small { display: block; margin-top: .25rem; color: #a4b5ce; }
.positive { color: #70ecad !important; }
.negative { color: #ffaaa9 !important; }
.neutral { color: #f8fafc !important; }

.compact-list, .alert-list, .holdings-table { display: grid; gap: .65rem; margin: .8rem 0; padding: 0; list-style: none; }
.list-row, .holding-row, .candidate-card { background: #0b192c; border: 1px solid #294261; border-radius: .82rem; padding: .85rem; }
.list-row { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.row-title { font-weight: 800; }
.row-meta { color: #a4b5ce; font-size: .82rem; margin-top: .2rem; }
.dashboard-value { text-align: right; }
.section-label { margin-top: 1.35rem; align-items: end; }

.holding-row { display: grid; grid-template-columns: minmax(11rem, 1.4fr) repeat(4, 1fr); gap: .8rem; align-items: stretch; }
.holding-main { display: flex; flex-direction: column; justify-content: space-between; gap: .5rem; }
.holding-badges { display: flex; flex-wrap: wrap; gap: .35rem; }
.holding-symbol { font-size: 1.05rem; }
.holding-stat { border-left: 1px solid #294261; padding-left: .75rem; }
.holding-stat span { color: #a4b5ce; display: block; font-size: .74rem; margin-bottom: .28rem; }
.holding-stat strong { display: block; }
.holding-subtext { color: #a4b5ce; font-size: .78rem; margin-top: .25rem; }
.holding-research { grid-column: 1 / -1; border-top: 1px solid #294261; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .7rem; }
.holding-research span { color: #a4b5ce; display: block; font-size: .74rem; margin-bottom: .2rem; }
.holding-research strong { display: block; }
.holding-research p { color: #a4b5ce; font-size: .78rem; line-height: 1.4; margin: .2rem 0 0; }

.inline-form { display: flex; gap: .6rem; margin: 1rem 0; }
.inline-form input, .inline-form select, input, select, textarea { min-width: 0; flex: 1; background: #0a172a; border: 1px solid #516b8b; border-radius: .7rem; color: inherit; padding: .78rem; }
textarea { display: block; resize: vertical; width: 100%; margin: .7rem 0; }
.stock-result { text-align: left; width: 100%; background: #0b192c; color: #f6f8fc; border: 1px solid #294261; }
.stock-result span { color: #8ff2c0; }
.badge { display: inline-block; border-radius: 999px; padding: .28rem .56rem; font-size: .7rem; font-weight: 850; letter-spacing: .05em; }
.badge.insufficient { background: #563e1f; color: #fde68a; }
.badge.valid { background: #124b35; color: #a9f7d0; }
.analysis-card { border-top: 3px solid #4be19a; }
.analysis-header, .candidate-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.analysis-price { text-align: right; }
.analysis-price strong { display: block; font-size: 1.35rem; }
.analysis-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .65rem; margin: 1rem 0; }
.analysis-grid div { background: #0b192c; border-radius: .7rem; padding: .7rem; }
.analysis-grid span { color: #a4b5ce; display: block; font-size: .72rem; margin-bottom: .25rem; }
.analysis-grid .badge { margin-bottom: .4rem; }
.research-explanation { background: #0b192c; border: 1px solid #294261; border-radius: .75rem; margin: 1rem 0; padding: .85rem; }
.research-explanation p:last-child { margin-bottom: 0; }
.factor-section { border-top: 1px solid #294261; margin-top: 1rem; padding-top: 1rem; }
.factor-section h4 { color: #c9d7ea; font-size: .86rem; margin: 1.1rem 0 .45rem; }
.factor-grid, .factor-list { display: grid; gap: .6rem; }
.factor-grid { grid-template-columns: repeat(3, 1fr); }
.factor-grid article, .factor-list div { background: #0b192c; border: 1px solid #294261; border-radius: .7rem; padding: .7rem; }
.factor-grid span, .factor-list span { color: #a4b5ce; display: block; font-size: .72rem; margin-bottom: .25rem; }
.factor-grid strong, .factor-list strong { display: block; }
.factor-grid p { color: #a4b5ce; font-size: .78rem; line-height: 1.42; margin: .32rem 0 0; }
.factor-list { grid-template-columns: repeat(3, 1fr); }
.fact-list { display: grid; gap: .55rem; margin: .8rem 0; }
.fact-row { display: flex; justify-content: space-between; gap: .8rem; border-bottom: 1px solid #294261; padding: .55rem 0; }
.fact-row:last-child { border-bottom: 0; }
.candidate-card { display: grid; gap: .75rem; }
.screening-filters { display: grid; grid-template-columns: repeat(5, minmax(8rem, 1fr)); gap: .65rem; margin: 1rem 0; align-items: end; }
.screening-filters label { color: #a4b5ce; display: grid; font-size: .76rem; gap: .3rem; }
.screening-filters button { min-height: 2.9rem; }
.screening-stock-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0; }
.screening-card { align-content: start; }
.screening-score-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .45rem; }
.screening-score-grid div { background: #10223a; border-radius: .6rem; padding: .55rem; }
.screening-score-grid span { color: #a4b5ce; display: block; font-size: .7rem; margin-bottom: .2rem; }
.screening-flags, .screening-positives { font-size: .8rem; line-height: 1.45; margin: 0; }
.screening-flags { color: #ffb5b4; }
.screening-positives { color: #9af2c5; }
.screening-card-footer { align-items: center; border-top: 1px solid #294261; display: flex; justify-content: space-between; gap: .75rem; padding-top: .65rem; }
.alert-setup { border-top: 1px solid #294261; margin-top: 1rem; padding-top: 1rem; }
.inline-actions { display: flex; flex-wrap: wrap; gap: .45rem; }
.inline-actions button { padding: .55rem .7rem; }
.candidate-meta { display: flex; gap: .55rem; flex-wrap: wrap; color: #a4b5ce; font-size: .8rem; }
.evidence { color: #b8c7da; font-size: .82rem; margin: 0; }
.segment-control { display: flex; gap: .5rem; margin: 1rem 0; overflow: auto; }
.empty-state { text-align: center; padding: 1.4rem; color: #b0c0d4; }
.research-empty { max-width: 44rem; margin: auto; }
.empty-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.settings-list { display: grid; gap: .8rem; }
.settings-list div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #294261; padding-bottom: .55rem; }
.danger, .error { color: #ffaaa9; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 800px) {
  .metrics-wide, .summary-grid { grid-template-columns: repeat(2, 1fr); }
  .holding-row { grid-template-columns: repeat(2, 1fr); }
  .holding-main { grid-column: span 2; }
  .holding-stat { border-left: 0; border-top: 1px solid #294261; padding: .55rem 0 0; }
  .holding-research { align-items: flex-start; flex-direction: column; }
  .screening-filters { grid-template-columns: repeat(2, 1fr); }
  .screening-stock-list { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
  .grid-two, .metrics { grid-template-columns: 1fr; }
  .topbar, .view-heading { flex-direction: column; }
  .connection { text-align: left; }
  .app-shell { padding-inline: .85rem; }
  .inline-form { flex-direction: column; }
  .analysis-grid { grid-template-columns: 1fr; }
  .factor-grid, .factor-list { grid-template-columns: 1fr; }
  .broker-auth-banner { align-items: stretch; flex-direction: column; }
  .broker-auth-actions { align-items: stretch; flex-direction: column; }
  .broker-auth-actions > * { text-align: center; width: 100%; }
  .screening-filters { grid-template-columns: 1fr; }
}
