:root{--bg: #0a0d13;--panel: #0e1117;--panel-2: #131823;--border: #1b2230;--text: #e6eaf0;--muted: #8b95a6;--buy: #26a65b;--sell: #e0556e;--hold: #c8a24a;--accent: #4f9cf9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:1100px;margin:0 auto;padding:20px 18px 60px}.header{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:20px}.brand{font-size:22px;font-weight:700;letter-spacing:1px}.brand-sub{font-size:13px;font-weight:400;color:var(--muted);margin-left:8px;letter-spacing:0}.as-of{font-size:13px;color:var(--muted)}.banner{padding:10px 14px;border-radius:8px;background:var(--panel-2);margin-bottom:14px;font-size:14px}.banner.error{background:#2a1418;color:#ff9aa9}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:22px}.card{text-align:left;cursor:pointer;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;transition:border-color .15s,transform .05s;font:inherit}.card:hover{border-color:#2c3852}.card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.card:active{transform:translateY(1px)}.card-top{display:flex;justify-content:space-between;align-items:baseline}.card-name{font-weight:600;font-size:15px}.card-symbol{color:var(--muted);font-size:12px;font-variant:small-caps}.decision{font-size:28px;font-weight:800;letter-spacing:1px;margin:8px 0 2px}.decision.buy{color:var(--buy)}.decision.sell{color:var(--sell)}.decision.hold{color:var(--hold)}.decision-caption{font-size:12px;color:var(--muted);margin-bottom:12px}.card-row{display:flex;align-items:center;gap:10px}.card-meta{display:flex;gap:14px;margin-top:10px;font-size:13px;color:var(--muted)}.scorebar{display:flex;align-items:center;gap:8px;flex:1}.scorebar-track{position:relative;flex:1;height:6px;background:var(--panel-2);border-radius:4px;overflow:hidden}.scorebar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px}.scorebar-fill.pos{background:var(--buy)}.scorebar-fill.neg{background:var(--sell)}.scorebar-fill.neu{background:var(--hold)}.scorebar-num{font-size:13px;font-variant-numeric:tabular-nums;min-width:38px;text-align:right}.scorebar-num.pos{color:var(--buy)}.scorebar-num.neg{color:var(--sell)}.scorebar-num.neu{color:var(--hold)}.detail{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}@media (max-width: 820px){.detail{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.panel h2{margin:0 0 12px;font-size:15px;font-weight:600}.muted{color:var(--muted)}.chart{width:100%;height:360px}.chart-empty,.news-empty{color:var(--muted);font-size:14px;padding:30px 0;text-align:center}.legend{display:flex;gap:14px;align-items:center;margin-top:10px;font-size:12px;color:var(--muted)}.dot{width:10px;height:3px;display:inline-block;margin-right:5px;vertical-align:middle;border-radius:2px}.dot.blue{background:#4f9cf9}.dot.purple{background:#c084fc}.dot.grey{background:#9aa4b2}.dot.red{background:var(--sell)}.news-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.news-item{display:flex;gap:10px}.news-headline{color:var(--text);text-decoration:none;font-size:14px;line-height:1.35}.news-headline:hover{color:var(--accent)}.news-meta{color:var(--muted);font-size:12px;margin-top:3px}.sent{font-size:12px;font-variant-numeric:tabular-nums;min-width:42px;height:fit-content;padding:2px 6px;border-radius:6px;background:var(--panel-2)}.sent.pos{color:var(--buy)}.sent.neg{color:var(--sell)}.sent.neu{color:var(--muted)}.rationale p{line-height:1.5;color:#cdd5e0;font-size:14px}.ind-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}.stat{background:var(--panel-2);border-radius:8px;padding:10px 12px}.stat-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:14px;margin-top:4px;font-variant-numeric:tabular-nums}.footer{margin-top:28px;text-align:center;color:var(--muted);font-size:12px}
