:root{--bg: #0b0e14;--panel: #121722;--edge: #1f2734;--ink: #e8ecf3;--muted: #7d8899;--gain: #2fbf71;--loss: #e5484d;--accent: #f5a623;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif}*{box-sizing:border-box;margin:0}html,body{width:100%;overflow-x:hidden}body{background:var(--bg);color:var(--ink);font-family:var(--sans)}.wrap{width:100%;max-width:1440px;margin:0 auto;padding:32px clamp(16px,4vw,48px) 60px}header h1{font-size:clamp(26px,4vw,34px);letter-spacing:-.5px}header h1 span{color:var(--accent)}.tagline{color:var(--muted);margin-top:4px;font-size:14px}.addbar{display:flex;gap:10px;margin:24px 0 6px}.search{position:relative;flex:1}.addbar input{width:100%;background:var(--panel);border:1px solid var(--edge);color:var(--ink);border-radius:8px;padding:12px 14px;font-family:var(--mono);font-size:14px}.addbar input:focus{outline:2px solid var(--accent);outline-offset:1px}.suggestions{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;list-style:none;margin:0;padding:4px;background:var(--panel);border:1px solid var(--edge);border-radius:10px;box-shadow:0 12px 32px #00000073;max-height:320px;overflow-y:auto}.sug{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;cursor:pointer}.sug.active{background:#f5a6231f}.sug-sym{font-family:var(--mono);font-weight:600;font-size:14px;min-width:74px}.sug-exch{font-family:var(--mono);font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px}.exch-nse{background:#2fbf7126;color:var(--gain)}.exch-bse{background:#f5a62326;color:var(--accent)}.sug-name{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sug-empty{padding:10px;font-size:13px}button.primary{background:var(--accent);color:#14100a;border:0;border-radius:8px;padding:10px 18px;font-weight:600;cursor:pointer;font-size:14px}button.primary:disabled{opacity:.6}button.ghost{background:transparent;border:1px solid var(--edge);color:var(--muted);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px}button.ghost:hover{color:var(--ink);border-color:var(--muted)}button.ghost:focus-visible,button.primary:focus-visible{outline:2px solid var(--accent)}.danger:hover{color:var(--loss);border-color:var(--loss)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-top:20px}.card{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:18px}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sym{font-family:var(--mono);font-weight:600;font-size:16px}.sym em{font-style:normal;color:var(--muted);font-size:12px;margin-left:6px}.badge{font-family:var(--mono);font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px}.badge-buy{background:#2fbf7126;color:var(--gain)}.badge-sell{background:#e5484d26;color:var(--loss)}.badge-hold{background:#f5a62326;color:var(--accent)}.price-row{display:flex;align-items:baseline;gap:12px}.price{font-family:var(--mono);font-size:26px;font-weight:600}.gain{color:var(--gain)}.loss{color:var(--loss)}.muted{color:var(--muted)}.spark{margin:8px 0 4px;display:block}.dir-row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:13px;margin:8px 0}.label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.honesty{margin:10px 0 4px}.honesty-head{display:flex;justify-content:space-between;font-size:12px;font-family:var(--mono);margin-bottom:5px;gap:8px;flex-wrap:wrap}.meter{position:relative;height:8px;background:var(--edge);border-radius:4px;overflow:visible}.meter-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--gain));border-radius:4px}.meter-baseline{position:absolute;top:-3px;width:2px;height:14px;background:var(--ink);opacity:.8}.expand{width:100%;margin-top:10px}.detail{margin-top:12px;border-top:1px solid var(--edge);padding-top:12px}.detail table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12.5px}.detail th{text-align:left;color:var(--muted);font-weight:500;padding:4px 6px}.detail td{padding:4px 6px;border-top:1px solid var(--edge)}.votes{margin-top:12px;display:flex;flex-direction:column;gap:6px}.vote{font-size:12.5px;padding:7px 10px;border-radius:6px;border-left:3px solid var(--muted);background:#7d889912}.vote-bullish{border-left-color:var(--gain)}.vote-bearish{border-left-color:var(--loss)}.vote strong{font-family:var(--mono);margin-right:6px}.card-actions{display:flex;gap:8px;margin-top:12px}.card-error{border-color:#e5484d66}.err-text{color:var(--loss);font-size:13px;margin:8px 0}.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.pulse{animation:none}}.empty{border:1px dashed var(--edge);border-radius:12px;padding:40px;text-align:center;color:var(--muted);margin-top:20px}footer{margin-top:36px;color:var(--muted);font-size:12px;text-align:center}@media(max-width:640px){.wrap{padding:0 14px 48px}.topbar{position:sticky;top:0;z-index:30;margin:0 -14px;padding:14px 14px 10px;background:var(--bg);border-bottom:1px solid var(--edge)}.topbar .tagline{display:none}.addbar{margin:12px 0 0}.grid{grid-template-columns:1fr;gap:14px}.card{padding:16px}.price{font-size:24px}.dir-row{flex-wrap:wrap;gap:4px}.sug-name{display:none}.sug-sym{min-width:64px}.detail table{font-size:11.5px}.detail th,.detail td{padding:4px}}
