:root{--bg: #000;--bg-elev: #1c1c1e;--bg-elev-2: #2c2c2e;--text: #fff;--text-secondary: #98989f;--accent: #0a84ff;--good: #30d158;--warn: #ff9f0a;--bad: #ff453a;--border: rgba(255, 255, 255, .08);--safe-top: env(safe-area-inset-top);--safe-bottom: env(safe-area-inset-bottom)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}button{font-family:inherit}input,textarea,select{font-family:inherit;font-size:16px;color:var(--text);background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:12px 14px;width:100%;outline:none}input:focus,textarea:focus{border-color:var(--accent)}.app{display:flex;flex-direction:column;height:100dvh;padding-top:var(--safe-top)}.scroll{flex:1;overflow-y:auto;padding:16px 16px 24px;-webkit-overflow-scrolling:touch}.title{font-size:28px;font-weight:700;margin:4px 0 16px}.subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:16px}.card{background:var(--bg-elev);border-radius:16px;padding:16px;margin-bottom:12px;border:1px solid var(--border)}.card h3{margin:0 0 8px;font-size:16px;font-weight:600}.row{display:flex;justify-content:space-between;padding:6px 0;font-size:15px}.row .label{color:var(--text-secondary)}.row .value{font-weight:600}.btn{display:block;width:100%;padding:14px;background:var(--accent);color:#fff;border:none;border-radius:12px;font-size:17px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn:active{opacity:.7}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--bg-elev-2);color:var(--text)}.segment{display:flex;background:var(--bg-elev);border-radius:10px;padding:3px;margin:8px 0 16px}.segment button{flex:1;padding:8px;background:transparent;border:none;color:var(--text-secondary);font-size:14px;font-weight:600;border-radius:8px}.segment button.active{background:var(--bg-elev-2);color:var(--text)}.tabbar{display:flex;justify-content:space-around;background:#1c1c1eeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);padding:8px 0 calc(8px + var(--safe-bottom))}.tabbar button{flex:1;background:transparent;border:none;color:var(--text-secondary);padding:6px;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}.tabbar button.active{color:var(--accent)}.tabbar .icon{font-size:22px}.verdict{text-align:center;padding:18px;border-radius:16px;margin-bottom:12px;font-size:22px;font-weight:700;letter-spacing:.5px}.verdict.STRONG{background:#30d1582e;color:var(--good)}.verdict.BUY{background:#30d1581f;color:var(--good)}.verdict.MIXED{background:#ff9f0a26;color:var(--warn)}.verdict.AVOID{background:#ff453a26;color:var(--bad)}.chip{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--bg-elev-2);color:var(--text-secondary);font-size:12px;margin:2px 4px 2px 0}.chip.good{background:#30d15826;color:var(--good)}.error{background:#ff453a1f;color:var(--bad);padding:12px;border-radius:12px;margin-bottom:12px;font-size:14px}.spinner{border:3px solid var(--bg-elev-2);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:spin .8s linear infinite;margin:24px auto}@keyframes spin{to{transform:rotate(360deg)}}.bubble{background:var(--bg-elev);border-radius:16px;padding:12px 14px;margin:6px 0;max-width:88%;white-space:pre-wrap;line-height:1.45}.bubble.user{background:var(--accent);color:#fff;align-self:flex-end;margin-left:auto}.chat-list{display:flex;flex-direction:column}.chat-input{display:flex;gap:8px;padding:8px 12px}.chat-input input{flex:1}.chat-input button{background:var(--accent);color:#fff;border:none;border-radius:12px;padding:0 16px;font-weight:600}.verdict-text{white-space:pre-wrap;line-height:1.5;font-size:15px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:flex-end;justify-content:center;z-index:1000}.modal{background:var(--bg);width:100%;max-width:600px;max-height:90dvh;border-radius:20px 20px 0 0;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border)}.modal-close{background:transparent;border:none;color:var(--accent);font-size:16px;font-weight:600;cursor:pointer;padding:8px 4px}.modal-actions{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.modal-actions .btn{flex:0 0 auto;padding:10px 14px;font-size:14px}.modal-body{flex:1;overflow-y:auto;padding:12px 16px;-webkit-overflow-scrolling:touch}.picker-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 4px;background:transparent;border:none;border-bottom:1px solid var(--border);text-align:left;color:var(--text);cursor:pointer}.picker-row:last-child{border-bottom:none}.picker-row.on .picker-check{background:var(--accent);border-color:var(--accent);color:#fff}.picker-check{flex:0 0 24px;width:24px;height:24px;border-radius:6px;border:2px solid var(--text-secondary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.picker-text{flex:1;min-width:0}.picker-name{font-weight:600;font-size:15px}.picker-blurb{color:var(--text-secondary);font-size:13px;margin-top:2px}.chips{display:flex;flex-wrap:wrap}.vote-row{display:flex;align-items:center;gap:10px;margin:8px 0}.vote-label{width:56px;font-size:13px;color:var(--text-secondary);font-weight:600}.vote-track{flex:1;height:12px;background:var(--bg-elev-2);border-radius:999px;overflow:hidden}.vote-fill{height:100%;border-radius:999px;transition:width .3s}.vote-fill.BUY{background:var(--good)}.vote-fill.HOLD{background:var(--warn)}.vote-fill.AVOID{background:var(--bad)}.vote-count{width:24px;text-align:right;font-weight:700}.verdict.BUY{background:#30d1582e;color:var(--good)}.verdict.HOLD{background:#ff9f0a2e;color:var(--warn)}.verdict.AVOID{background:#ff453a2e;color:var(--bad)}.take{border-bottom:1px solid var(--border)}.take:last-child{border-bottom:none}.take-header{display:flex;align-items:center;gap:10px;width:100%;padding:12px 0;background:transparent;border:none;cursor:pointer;color:var(--text);text-align:left}.take-name{flex:1;font-weight:600;font-size:15px}.take-verdict{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.3px}.take-verdict.BUY{background:#30d15826;color:var(--good)}.take-verdict.HOLD{background:#ff9f0a26;color:var(--warn)}.take-verdict.AVOID{background:#ff453a26;color:var(--bad)}.take-caret{color:var(--text-secondary);font-size:14px;width:14px}.take-body{padding:8px 4px 14px;font-size:14px;line-height:1.5;color:var(--text);white-space:pre-wrap}.news-summary-card{border-color:#00c80538;background:linear-gradient(180deg,#00c8051a,#1c1c1ef5)}.news-summary-eyebrow{color:var(--good);font-size:12px;font-weight:800;letter-spacing:0;margin-bottom:8px;text-transform:uppercase}.news-summary-text{color:var(--text);font-size:15px;line-height:1.5}.news-summary-text p{margin:6px 0}.news-summary-text ul{margin:6px 0;padding-left:20px}.news-summary-text li{margin-bottom:4px}.news-summary-text strong{color:var(--text);font-weight:700}.news-summary-text em{font-style:italic;opacity:.92}.news-summary-text code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:#ffffff14;padding:1px 4px;border-radius:4px}.chart-page{--rh-green: #00c805;--rh-red: #ff5000;--chart-muted: rgba(255, 255, 255, .45);padding:14px 0 28px;background:radial-gradient(circle at 50% -18%,rgba(0,200,5,.14),transparent 34%),var(--bg)}.chart-search{display:flex;align-items:center;gap:8px;padding:0 16px 12px}.chart-search>div{flex:1;min-width:0}.chart-search input{height:44px;border-radius:999px;background:#111;border-color:#ffffff14;padding:0 16px;font-weight:600}.chart-search input:focus{border-color:#00c805b3}.chart-search-button{flex:0 0 auto;height:44px;min-width:54px;border:none;border-radius:999px;background:var(--rh-green);color:#020402;font-weight:800;cursor:pointer}.chart-search-button:disabled{opacity:.6;cursor:not-allowed}.stock-panel{min-height:calc(100dvh - 126px - var(--safe-bottom));display:flex;flex-direction:column;padding:10px 0 0}.stock-panel.negative{--rh-green: var(--rh-red)}.stock-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0 20px}.stock-symbol{font-size:32px;line-height:1;font-weight:800}.stock-date{margin-top:8px;color:var(--chart-muted);font-size:13px;font-weight:600}.stock-period{padding:7px 10px;border:1px solid rgba(255,255,255,.09);border-radius:999px;color:#ffffffc7;font-size:12px;font-weight:800}.stock-price{padding:22px 20px 0;font-size:clamp(42px,13vw,64px);line-height:.95;font-weight:800;letter-spacing:0}.stock-change{display:flex;gap:8px;padding:10px 20px 4px;font-size:15px;font-weight:800}.stock-change.positive,.stock-stats-grid strong.positive{color:var(--rh-green)}.stock-change.negative,.stock-stats-grid strong.negative{color:var(--rh-red)}.stock-chart-wrap{width:100%;height:min(46dvh,430px);min-height:300px;margin-top:8px;padding-left:4px}.stock-chart-wrap .recharts-wrapper{outline:none}.stock-chart-wrap .recharts-cartesian-axis-tick-value{font-weight:700}.stock-chart-wrap .recharts-tooltip-label{color:#ffffff9e;font-size:12px;font-weight:700;margin-bottom:4px}.chart-range{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:4px 16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.chart-range button{position:relative;min-height:44px;background:transparent;border:none;color:var(--chart-muted);font-size:13px;font-weight:900;cursor:pointer}.chart-range button.active{color:#fff}.chart-range button.active:after{content:"";position:absolute;left:18%;right:18%;bottom:-1px;height:3px;border-radius:999px 999px 0 0;background:var(--rh-green)}.stock-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0 16px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff14}.stock-stats-grid div{min-height:74px;padding:14px;background:#080808}.stock-stats-grid span{display:block;color:var(--chart-muted);font-size:12px;font-weight:800;text-transform:uppercase}.stock-stats-grid strong{display:block;margin-top:8px;font-size:20px;line-height:1.1}@media (min-width: 760px){.chart-page{display:flex;align-items:center}.chart-search,.stock-panel{width:min(100%,920px);margin:0 auto}.stock-chart-wrap{height:430px}}.bubble-who{font-size:11px;font-weight:700;letter-spacing:.4px;color:var(--text-secondary);text-transform:uppercase;margin-bottom:4px}select{font-family:inherit;font-size:16px;color:var(--text);background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:12px 14px;width:100%;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none}.quota-badge-host{position:absolute;top:calc(var(--safe-top) + 6px);right:10px;z-index:30}.quota-badge{background:#1c1c1ed9;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600;letter-spacing:.2px;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.quota-badge[data-state=low]{color:#ffd60a;border-color:#ffd60a66}.quota-badge[data-state=unlimited]{color:var(--good);border-color:#30d15866}.quota-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.quota-modal{width:100%;max-width:360px;background:var(--bg-elev);border-radius:16px;border:1px solid var(--border);padding:18px;display:flex;flex-direction:column;gap:12px}.quota-modal-title{font-size:18px;font-weight:700}.quota-modal-body{font-size:14px;line-height:1.5;color:var(--text)}.quota-modal-section{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:8px}.quota-modal-input{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;color:var(--text);width:100%}.btn.ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}
