:root {
    --app-surface: #f7f8fa;
    --app-border: #dfe3e8;
}
body { background: var(--app-surface); }
main { min-height: calc(100vh - 150px); }
.hero-panel { background: linear-gradient(135deg, #eef4ff 0%, #f8fafc 55%, #eefbf5 100%); border: 1px solid var(--app-border); }
.decision-brief { box-shadow: 0 18px 45px rgba(15, 23, 42, .08); }
.signal-card { transition: transform .15s ease, box-shadow .15s ease; }
.signal-card:hover { transform: translateY(-2px); box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.08); }
.filter-panel { position: relative; z-index: 2; }
.tracker-table-wrap { border: 1px solid var(--app-border); border-radius: .75rem; background: #fff; }
.tracker-table { margin-bottom: 0; min-width: 1260px; }
.sticky-table-head { position: static; }
.sticky-table-head th {
    position: sticky;
    top: 55px;
    z-index: 10;
    background: var(--bs-table-bg, #f8f9fa);
    box-shadow: inset 0 -1px 0 var(--app-border);
}
@media (min-width: 992px) and (max-width: 1199.98px) {
    .tracker-table-wrap { overflow-x: auto; }
    .sticky-table-head th { position: static; }
}
.tracker-summary { cursor: pointer; }
.tracker-summary:focus-within { outline: 3px solid rgba(13,110,253,.25); outline-offset: -3px; }
.tracker-detail td { background: #fbfcfd; font-size: .92rem; }
.issuer-cell { max-width: 260px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.group-toggle-button { color: inherit; }
.direction-icon::before { content: "▸"; display: inline-block; transition: transform .15s ease; }
.tracker-summary[aria-expanded="true"] .direction-icon::before { transform: rotate(90deg); }
.mobile-signal-card { border: 1px solid var(--app-border); }
.mobile-signal-card .card-body { padding: 1rem; }
.min-w-0 { min-width: 0; }
.mobile-metrics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.mobile-metrics-grid > div { padding: .75rem; border-radius: .6rem; background: #f8f9fa; min-width: 0; }
.metric-label { display: block; color: #6c757d; font-size: .78rem; margin-bottom: .15rem; }
.range-progress { height: .55rem; }
.history-details summary { cursor: pointer; font-weight: 600; color: #0d6efd; }
.metric-card { border-color: var(--app-border); }
.pricing-featured { box-shadow: 0 .5rem 1.5rem rgba(13,110,253,.12); }
.min-plan-description { min-height: 4.5rem; }
.plan-feature-list li { margin-bottom: .55rem; }
.corporate-review-form { width: min(100%, 280px); flex: 0 0 auto; }
@media (max-width: 575.98px) {
    main.container-xl { padding-left: .75rem; padding-right: .75rem; }
    .hero-panel { padding: 1.25rem !important; }
    .display-5 { font-size: calc(1.55rem + 1.5vw); }
    .mobile-metrics-grid { gap: .5rem; }
    .mobile-metrics-grid > div { padding: .65rem; }
    .filter-panel .btn { min-height: 44px; }
}
.tracker-summary-expandable { cursor: pointer; }
.issuer-cell-wide { min-width: 280px; max-width: 380px; }
.issuer-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.signal-badge-list { display: flex; flex-wrap: wrap; gap: .35rem; }
.signal-badge-list .badge { white-space: normal; text-align: left; }
.tracker-history-limit td { background: #fff8e1; color: #664d03; font-size: .88rem; }
.tracker-group-expanded > td:first-child { border-left: 2px solid var(--bs-primary); }
.tracker-group-expanded > td:last-child { border-right: 2px solid var(--bs-primary); }
.tracker-group-first.tracker-group-expanded > td { border-top: 2px solid var(--bs-primary); }
.tracker-group-last.tracker-group-expanded > td { border-bottom: 2px solid var(--bs-primary); }
