:root{--bg: #0d1520;--panel: rgba(22, 30, 44, .95);--panel2: rgba(28, 38, 56, .98);--line: rgba(120, 140, 175, .18);--text: #e6edf7;--muted: #8896ab;--green: #28c884;--red: #ff5a6a;--accent: #5aa9ff;--gold: #e6b85a;--violet: #b98cff;--orange: #ff9240;color-scheme:dark}[data-theme=light]{--bg: #f0f3f7;--panel: #ffffff;--panel2: #f4f6fa;--line: rgba(0, 0, 0, .09);--text: #0d1a2d;--muted: #6b7a8d;--green: #0f9e5e;--red: #d42c3c;--accent: #1a6fd4;--gold: #a06800;--violet: #6b38c0;--orange: #b85a00;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:13.5px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}.app{max-width:1400px;margin:0 auto;padding:0 24px 28px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:860px){.columns{grid-template-columns:1fr}}.col-head{display:flex;align-items:baseline;justify-content:space-between;margin:4px 2px 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}.col-head h2{margin:0;font-size:13px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);font-weight:600}.col-head .count{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-top:16px}header h1{flex:1;font-size:22px;margin:0;letter-spacing:.3px;color:var(--accent)}.header-right{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:10px}h1{font-size:22px;margin:0;letter-spacing:.3px;color:var(--accent)}.sub{color:var(--muted);font-size:12px}.theme-toggle{background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:5px 8px;transition:color .15s,background .15s;flex-shrink:0}.theme-toggle:hover{color:var(--text);background:var(--panel2)}.tab-nav{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px}.tab-btn{background:transparent;border:none;color:var(--muted);font:inherit;font-size:13px;font-weight:500;padding:6px 16px;border-radius:7px;cursor:pointer;transition:color .15s,background .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.add{display:flex;gap:8px;background:var(--panel);padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:16px}.add input,.add select,.add button{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit}.add input{flex:1;min-width:0}.add button{background:var(--accent);color:#0a1220;border:0;font-weight:600;cursor:pointer}.add button:hover{filter:brightness(1.1)}ul.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.row{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:opacity .15s,transform .15s,border-color .15s}.row.dragging{opacity:.4}.row.drop-above{border-top:2px solid var(--accent)}.row.drop-below{border-bottom:2px solid var(--accent)}.row .head{display:grid;grid-template-columns:18px 56px 1fr auto auto auto auto;gap:10px;align-items:center;padding:14px 16px 14px 10px;cursor:pointer}.row .head:hover{background:var(--panel2)}.drag-handle{color:var(--muted);cursor:grab;-webkit-user-select:none;user-select:none;font-size:16px;line-height:1;text-align:center;opacity:.5;transition:opacity .15s}.row:hover .drag-handle{opacity:1}.drag-handle:active{cursor:grabbing}.remove-x{background:transparent;border:0;color:var(--muted);font-size:16px;line-height:1;width:22px;height:22px;border-radius:50%;cursor:pointer;opacity:0;transition:opacity .15s,background .15s,color .15s;padding:0}.row:hover .remove-x{opacity:1}.remove-x:hover{background:#ff5a6a26;color:var(--red)}.badge{font-size:10px;font-weight:700;letter-spacing:.5px;padding:3px 6px;border-radius:4px;display:inline-block}.badge.stock{background:#1a2f52;color:#8fb8ff}.badge.crypto{background:#402a1a;color:#ffb98f}.consensus{font-size:10px;font-weight:700;letter-spacing:.4px;padding:3px 8px;border-radius:20px;white-space:nowrap;border:1px solid transparent}.consensus.strong-buy{background:#28c88426;color:#28c884;border-color:#28c8844d}.consensus.buy{background:#28c88417;color:#5ee0a8;border-color:#28c88433}.consensus.hold{background:#e6b85a1f;color:#e6b85a;border-color:#e6b85a47}.consensus.sell{background:#ff5a6a1a;color:#ff7a88;border-color:#ff5a6a40}.consensus.strong-sell{background:#ff5a6a2e;color:#ff5a6a;border-color:#ff5a6a59}.sym{font-weight:700;font-size:16px}.name{color:var(--muted);font-size:12px}.price{font-variant-numeric:tabular-nums;font-weight:600;font-size:16px;text-align:right}.chg{font-variant-numeric:tabular-nums;font-size:12px;margin-top:2px}.up{color:var(--green)}.down{color:var(--red)}.holdings-total{font-variant-numeric:tabular-nums;font-size:11px;color:var(--muted);margin-top:2px}.details{border-top:1px solid var(--line);padding:14px 16px;background:var(--panel2)}.holdings-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}.holdings-label{font-size:12px;color:var(--muted);white-space:nowrap}.holdings-input{width:110px;padding:5px 8px;font-size:13px;background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--text);font-variant-numeric:tabular-nums}.holdings-input:focus{outline:none;border-color:var(--accent, #4fc3f7)}.holdings-value{font-size:13px;font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.btn{background:transparent;border:1px solid var(--line);color:var(--text);padding:7px 10px;border-radius:8px;font:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:#3a4e72}.btn.gold{border-color:#6a5320;color:var(--gold)}.btn.gold.active-analysis{background:#e6b85a1f;border-color:var(--gold)}.btn.violet{border-color:#5a3f87;color:var(--violet)}.btn.violet.active-analysis{background:#b98cff1f;border-color:var(--violet)}.btn.teal{border-color:#1f6b5a;color:#4dd6b3}.btn.teal.active-analysis{background:#4dd6b31f;border-color:#4dd6b3}.btn.orange{border-color:#7a4518;color:var(--orange)}.btn.orange.active-analysis{background:#ff92401f;border-color:var(--orange)}.btn.danger{border-color:#5a2a30;color:var(--red);margin-left:auto}.news{display:flex;flex-direction:column;gap:8px}.news a{display:block;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.news a:hover{border-color:#3a4e72}.news .t{color:var(--text);font-weight:500;margin-bottom:2px}.news .s{color:var(--muted);font-size:11px}.chart-wrap{margin-bottom:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.chart-head{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line)}.chart-head .ranges{display:flex;gap:4px;margin-left:auto}.chart-head .r{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:3px 8px;font:inherit;font-size:11px;cursor:pointer}.chart-head .r.active{background:var(--accent);color:#0a1220;border-color:var(--accent);font-weight:600}.chart-box{height:260px;width:100%;position:relative}.chart-box .loading,.chart-box .err{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}.chart-box .err{color:var(--red)}.analysis{margin-top:12px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:10px;max-height:520px;overflow:auto}.analysis h1,.analysis h2,.analysis h3{margin:14px 0 6px;line-height:1.3}.analysis h1{font-size:18px;border-bottom:1px solid var(--line);padding-bottom:6px}.analysis h2{font-size:15px;color:var(--accent)}.analysis h3{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.analysis p{margin:6px 0}.analysis ul,.analysis ol{margin:6px 0;padding-left:22px}.analysis li{margin:3px 0}.analysis table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12px}.analysis th,.analysis td{border:1px solid var(--line);padding:6px 8px;text-align:left}.analysis th{background:var(--panel2)}.analysis code{background:var(--panel2);padding:1px 5px;border-radius:3px;font-size:12px}.analysis hr{border:0;border-top:1px solid var(--line);margin:12px 0}.analysis strong{color:#fff}.market-bar{display:flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 14px;margin-bottom:12px;font-size:12px;font-variant-numeric:tabular-nums;overflow-x:auto}.market-item{display:flex;align-items:center;gap:6px;padding:0 10px;white-space:nowrap}.market-item+.market-item{border-left:1px solid var(--line)}.market-portfolio{margin-left:auto;padding-left:16px}.market-label{color:var(--muted)}.market-price{font-weight:600}.market-chg{font-size:11px}.apikey{display:flex;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:12px}.apikey input{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:6px 8px;color:var(--text);font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.apikey button{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:6px 10px;cursor:pointer;font:inherit}.apikey .ok{color:var(--green)}.apikey .warn{color:var(--gold)}.apikey-model{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.apikey-model-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:600}.apikey-model-select{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font:inherit;font-size:11.5px;cursor:pointer;max-width:260px}.apikey-model-select:focus{outline:none;border-color:var(--accent)}.no-analysis-prompt{display:flex;align-items:center;gap:10px;padding:11px 14px;margin-bottom:12px;background:#5aa9ff0f;border:1px dashed rgba(90,169,255,.3);border-radius:8px;color:var(--muted);font-size:12px;line-height:1.5}.no-analysis-prompt code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#5aa9ff1f;color:var(--accent);padding:1px 5px;border-radius:4px}.no-analysis-prompt strong{color:var(--text)}.no-analysis-icon{font-size:18px;flex-shrink:0}.empty{color:var(--muted);padding:32px;text-align:center;border:1px dashed var(--line);border-radius:12px}.err{color:var(--red);font-size:12px;margin-top:6px}.refreshed{color:var(--muted);font-size:11px}.spinner{display:inline-block;width:10px;height:10px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.briefing-list{display:flex;flex-direction:column;gap:12px}.briefing-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.briefing-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.briefing-symbol{font-size:15px;font-weight:700;color:var(--accent)}.briefing-item{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:12px}.briefing-item-header{display:flex;align-items:baseline;gap:8px;flex:1}.briefing-asset-section{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.briefing-asset-header{display:flex;align-items:center;gap:10px;padding:12px 16px;flex-wrap:wrap}.briefing-asset-header--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.briefing-asset-header--clickable:hover{background:#788caf0f}.briefing-chevron{font-size:16px;font-weight:300;color:var(--muted);transition:transform .18s ease;display:inline-block;transform:rotate(0);flex-shrink:0;width:14px}.briefing-chevron--open{transform:rotate(90deg)}.briefing-asset-actions{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}.briefing-cards-stack{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}.briefing-cards-stack .briefing-card{border-radius:0;border:none;border-bottom:1px solid var(--line);background:var(--panel2)}.briefing-cards-stack .briefing-card:last-child{border-bottom:none}.briefing-summary-prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel);border:1px solid rgba(90,169,255,.25);border-radius:12px;padding:14px 16px}.briefing-summary-title{font-weight:600;font-size:14px;margin-bottom:2px}.apikey-prompt{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.apikey-prompt-inner{max-width:480px}.apikey-input{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:7px 10px;color:var(--text);font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;min-width:0;width:260px}.apikey-input:focus{outline:none;border-color:var(--accent)}.signal-feed{display:flex;flex-direction:column;gap:16px}.signal-keys-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:720px){.signal-keys-row{grid-template-columns:1fr}}.signal-key-group{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.signal-key-label{font-size:12px;font-weight:600;color:var(--text)}.signal-key-saved{display:flex;align-items:center;gap:8px;font-size:12px}.signal-key-input-row{display:flex;gap:6px}.signal-key-input-row .apikey-input{flex:1}.signal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.filter-pills{display:flex;gap:6px}.filter-pill{background:var(--panel);border:1px solid var(--line);color:var(--muted);padding:6px 14px;border-radius:20px;font:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:color .15s,background .15s,border-color .15s}.filter-pill:hover{color:var(--text)}.filter-pill.active{background:#5aa9ff1f;border-color:#5aa9ff66;color:var(--accent)}.signal-list{display:flex;flex-direction:column;gap:8px}.signal-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px}.signal-card:hover{border-color:#3a4e72}.signal-card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.party-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.party-d{background:#4682ff26;color:#6fa0ff}.party-r{background:#ff464626;color:#ff7070}.party-i{background:#b4b4b41f;color:#aaa}.whale-badge{font-size:16px}.signal-member{font-weight:600;font-size:13px}.signal-chamber{font-size:10px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);padding:2px 6px;border:1px solid var(--line);border-radius:4px}.signal-direction{font-size:11px;font-weight:700;letter-spacing:.5px;padding:2px 8px;border-radius:4px}.signal-direction-buy{background:#28c8841f;color:var(--green)}.signal-direction-sell{background:#ff5a6a1f;color:var(--red)}.signal-symbol{font-weight:700;font-size:14px}.signal-amount{color:var(--muted);font-size:12px}.tx-hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--accent);text-decoration:none}.tx-hash:hover{text-decoration:underline}.signal-card--mega{border-color:#ff505080;background:linear-gradient(135deg,rgba(255,60,60,.07) 0%,var(--panel) 60%);box-shadow:0 0 0 1px #ff505040,0 2px 12px #ff3c3c1f;position:relative;overflow:hidden}.signal-mega-bar{position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#f44,#f80);border-radius:3px 0 0 3px}.signal-alarm{font-size:15px;flex-shrink:0;animation:alarm-pulse 1.8s ease-in-out infinite}@keyframes alarm-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.88)}}.signal-symbol--mega{color:var(--text);font-weight:700}.signal-amount--mega{color:#ff6b35;font-weight:700;font-size:13px}.chain-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0}.chain-badge-btc{background:#f7931a22;color:#f7931a;border:1px solid #f7931a44}.chain-badge-eth{background:#5aa9ff26;color:var(--accent);border:1px solid rgba(90,169,255,.3)}.chain-badge-stable{background:#28c88426;color:var(--green);border:1px solid rgba(40,200,132,.3);font-size:12px}.whale-card{display:flex;flex-direction:column;gap:5px;padding:10px 14px}.whale-card-amount-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.whale-amount{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.02em}.whale-amount--mega{font-size:17px;color:#ff6b35}.whale-usd{font-size:13px;color:var(--muted);font-weight:500}.whale-usd--mega{color:#ff8c42;font-weight:600}.whale-time{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}.whale-card-flow{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap}.whale-flow-label{color:var(--muted)}.whale-flow-arrow{color:var(--muted);font-size:11px}.whale-entity{font-weight:600;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:1px 7px;font-size:11.5px;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.whale-entity--from{color:var(--muted)}.whale-entity--to{color:var(--accent)}.lag-warning{margin-top:6px;font-size:11px;color:var(--orange);display:flex;align-items:center;gap:4px}.signal-coming-soon{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--panel2);border:1px dashed var(--line);border-radius:8px;font-size:12px;color:var(--muted);margin-bottom:16px}.filter-pill:disabled{opacity:.4;cursor:not-allowed}.signal-chains{display:flex;flex-direction:column;gap:28px}.signal-chain-section{display:flex;flex-direction:column}.signal-chain-empty{padding:14px 16px;background:var(--panel2);border:1px dashed var(--line);border-radius:8px;font-size:12px;color:var(--muted)}.knowledge-tab{display:flex;flex-direction:column;gap:32px;padding-bottom:40px}.knowledge-analysis{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px 32px}.knowledge-title{font-size:17px;font-weight:700;color:var(--text);margin:0 0 10px}.knowledge-intro{font-size:13.5px;line-height:1.65;color:var(--muted);margin:0 0 28px;max-width:780px}.knowledge-sections{display:flex;flex-direction:column;gap:22px}.knowledge-section{border-left:3px solid var(--line);padding-left:18px}.knowledge-section--takeaway{border-left-color:var(--accent);background:#5aa9ff0d;border-radius:0 8px 8px 0;padding:14px 18px}.knowledge-section-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.knowledge-section--takeaway .knowledge-section-label{color:var(--accent)}.knowledge-section-heading{font-size:14px;font-weight:600;color:var(--text);margin:0 0 6px}.knowledge-section p{font-size:13px;line-height:1.65;color:var(--muted);margin:0;max-width:820px}.knowledge-diagram-wrapper{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.knowledge-diagram-label{padding:12px 20px;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);background:var(--panel2)}.knowledge-diagram-scroll{padding:24px;overflow-x:auto;background:#fff}:root:not([data-theme=light]) .knowledge-diagram-scroll{background:transparent}:root:not([data-theme=light]) .knowledge-diagram-scroll svg{filter:invert(.9) hue-rotate(180deg) saturate(.9)}
