:root{--bg-dark: #080808;--bg-card: #161616;--bg-card-hover: #1e1e1e;--border: #252525;--border-light: #333;--text: #d4d4d4;--text-dim: #777;--text-bright: #f0f0f0;--alive: #00ff41;--alive-dim: #00cc33;--alive-glow: rgba(0, 255, 65, .15);--danger: #ff0040;--danger-dim: #cc0033;--danger-glow: rgba(255, 0, 64, .15);--warning: #ff8c00;--warning-dim: #cc7000;--buy: #00bfff;--sell: #ff6b6b;--hold: #888;--wait: #555;--research: #a78bfa;--seed: #00ff41;--font: "IBM Plex Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-dark);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}.nav{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--bg-card);position:sticky;top:0;z-index:100}.nav-brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;letter-spacing:4px;color:var(--text-bright)}.nav-links{display:flex;gap:4px}.nav-link{background:none;border:1px solid transparent;color:var(--text-dim);font-family:var(--font);font-size:13px;padding:6px 14px;cursor:pointer;border-radius:4px;transition:all .15s}.nav-link:hover{color:var(--text);background:var(--bg-card-hover)}.nav-link.active{color:var(--alive);border-color:var(--border);background:var(--bg-dark)}.pulse{width:10px;height:10px;border-radius:50%;display:inline-block}.pulse.alive{background:var(--alive);box-shadow:0 0 8px var(--alive),0 0 16px var(--alive-glow);animation:pulse-alive 2s ease-in-out infinite}.pulse.dead{background:var(--danger);box-shadow:0 0 8px var(--danger),0 0 16px var(--danger-glow)}.pulse.offline{background:var(--text-dim)}@keyframes pulse-alive{0%,to{opacity:1}50%{opacity:.4}}.page{flex:1;padding:24px;max-width:1400px;margin:0 auto;width:100%}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-full{grid-column:1 / -1}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:20px}.card-title{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);margin-bottom:16px}.status-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stat{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:16px 20px}.stat-label{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);margin-bottom:4px}.stat-value{font-size:24px;font-weight:700;color:var(--text-bright)}.stat-value.green{color:var(--alive)}.stat-value.amber{color:var(--warning)}.stat-value.red{color:var(--danger)}.stat-sub{font-size:11px;color:var(--text-dim);margin-top:2px}.chart-container{position:relative;width:100%;height:280px}.chart-container canvas{width:100%;height:100%}.cycle-log-card{max-height:500px;display:flex;flex-direction:column;overflow:hidden}.cycle-list-wrapper{flex:1;min-height:0;overflow-y:auto}.cycle-list{list-style:none}.cycle-item{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.cycle-item:last-child{border-bottom:none}.action-badge{display:inline-block;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:2px 8px;border-radius:3px;min-width:60px;text-align:center;flex-shrink:0}.action-badge.buy{background:#00bfff26;color:var(--buy)}.action-badge.sell{background:#ff6b6b26;color:var(--sell)}.action-badge.hold{background:#88888826;color:var(--hold)}.action-badge.wait{background:#55555526;color:var(--wait)}.action-badge.research{background:#a78bfa26;color:var(--research)}.action-badge.bet{background:#ffc80026;color:var(--warning)}.action-badge.sell_prediction{background:#ff6b6b26;color:var(--sell)}.action-badge.research_markets{background:#a78bfa26;color:var(--research)}.action-badge.death{background:#ff004026;color:var(--danger)}.cycle-meta{font-size:12px;color:var(--text-dim)}.cycle-reasoning{font-size:12px;color:var(--text);margin-top:4px;line-height:1.4}.log-list{list-style:none}.cost-table{width:100%;border-collapse:collapse;font-size:13px}.cost-table th{text-align:left;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);padding:6px 8px;border-bottom:1px solid var(--border)}.cost-table td{padding:6px 8px;border-bottom:1px solid var(--border)}.cost-table tr:last-child td{border-bottom:none}.cost-table .num{text-align:right;font-variant-numeric:tabular-nums}.position-item{padding:10px 0;border-bottom:1px solid var(--border)}.position-item:last-child{border-bottom:none}.position-header{display:flex;justify-content:space-between;align-items:center}.position-asset{font-weight:600;color:var(--text-bright)}.pnl-positive{color:var(--alive)}.pnl-negative{color:var(--danger)}.position-detail{font-size:12px;color:var(--text-dim);margin-top:2px}.event-list{list-style:none;max-height:400px;overflow-y:auto}.event-item{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.event-item:last-child{border-bottom:none}.event-type{font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:1px;min-width:70px;flex-shrink:0}.event-type.start{color:var(--alive)}.event-type.stop{color:var(--warning)}.event-type.death{color:var(--danger)}.event-type.pause{color:var(--warning)}.event-type.resume{color:var(--alive)}.event-type.resurrect{color:var(--buy)}.event-type.error{color:var(--danger)}.event-detail{color:var(--text-dim)}.event-ts{color:var(--text-dim);font-size:12px;margin-left:auto;flex-shrink:0}.memory-item{padding:10px 0;border-bottom:1px solid var(--border)}.memory-item:last-child{border-bottom:none}.memory-category{display:inline-block;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:1px 6px;border-radius:3px;margin-right:8px}.memory-category.strategy{background:#00bfff26;color:var(--buy)}.memory-category.observation{background:#a78bfa26;color:var(--research)}.memory-category.lesson{background:#ff8c0026;color:var(--warning)}.memory-category.rule{background:#ff004026;color:var(--danger)}.memory-content{font-size:13px;color:var(--text);margin-top:4px}.memory-meta{font-size:11px;color:var(--text-dim);margin-top:2px}.prediction-side{display:inline-block;font-size:11px;font-weight:700;letter-spacing:1px;padding:1px 6px;border-radius:3px}.prediction-side.yes{background:#00ff4126;color:var(--alive)}.prediction-side.no{background:#ff004026;color:var(--danger)}.prediction-question{color:var(--text);font-size:13px}.prediction-resolution{display:inline-block;font-size:10px;font-weight:600;letter-spacing:1px;padding:1px 5px;border-radius:3px}.prediction-resolution.won{background:#00ff4126;color:var(--alive)}.prediction-resolution.lost{background:#ff004026;color:var(--danger)}.prediction-resolution.sold{background:#88888826;color:var(--hold)}.dead-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#ff004008;pointer-events:none;z-index:50;border:2px solid var(--danger)}.empty{text-align:center;color:var(--text-dim);padding:40px 20px;font-size:13px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.pipeline-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.pipeline-stats{display:flex;gap:16px;font-size:12px;color:var(--text-dim)}.pipeline-stats span{padding:2px 8px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px}.tweet-list{max-height:400px;overflow-y:auto}.tweet-item{padding:8px 0;border-bottom:1px solid var(--border)}.tweet-item:last-child{border-bottom:none}.tweet-author{font-size:12px;font-weight:600;color:var(--buy)}.tweet-rt-by{font-weight:400;color:var(--text-dim)}.tweet-text{font-size:12px;color:var(--text);margin-top:2px;line-height:1.4}.tweet-meta{display:flex;gap:12px;font-size:11px;color:var(--text-dim);margin-top:4px}.market-list{max-height:400px;overflow-y:auto}.market-item{padding:8px 0;border-bottom:1px solid var(--border)}.market-item:last-child{border-bottom:none}.market-question{font-size:12px;color:var(--text)}.market-odds{font-size:11px;color:var(--text-dim);margin-top:2px}.edge-bar-container{margin:8px 0}.edge-bar-track{position:relative;height:8px;background:var(--bg-dark);border-radius:4px;border:1px solid var(--border)}.edge-bar-fill{position:absolute;top:0;height:100%;border-radius:4px}.edge-bar-marker{position:absolute;top:-3px;width:3px;height:14px;border-radius:2px;transform:translate(-50%)}.edge-bar-marker.vault{background:var(--warning)}.edge-bar-marker.market{background:var(--text-dim)}.edge-bar-labels{display:flex;justify-content:space-between;font-size:10px;margin-top:4px}.estimate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}.estimate-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:16px}.estimate-card.bet{border-color:var(--warning);border-width:1px;box-shadow:0 0 8px #ff8c001a}.estimate-card.exit{border-color:var(--sell)}.estimate-question{font-size:13px;color:var(--text-bright);margin-bottom:8px;line-height:1.3}.estimate-details{display:flex;gap:16px;margin-top:8px}.estimate-row{display:flex;flex-direction:column;font-size:11px;color:var(--text-dim)}.estimate-value{font-size:13px;font-weight:600;color:var(--text-bright);margin-top:2px}.estimate-reasoning{font-size:11px;color:var(--text-dim);margin-top:8px;padding-top:8px;border-top:1px solid var(--border);line-height:1.4}.decision-row{display:flex;align-items:center;gap:16px}.decision-cost,.decision-balance{font-size:12px;color:var(--text-dim)}.decision-reasoning{font-size:12px;color:var(--text);margin-top:8px;line-height:1.4}@media(max-width:800px){.grid{grid-template-columns:1fr}.nav{padding:10px 16px}.page{padding:16px}.status-bar{grid-template-columns:1fr 1fr}.stat-value{font-size:20px}}.digest-card{padding:16px}.digest-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.digest-label{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--alive);background:var(--alive-glow);padding:2px 8px;border-radius:4px}.digest-card:not(:first-child) .digest-label{color:var(--text-dim);background:var(--bg-card-hover)}.digest-meta{font-size:11px;color:var(--text-dim)}.digest-text{font-size:12px;line-height:1.6;color:var(--text);white-space:pre-wrap}.notes-link{color:var(--alive);font-size:12px;font-weight:600;letter-spacing:1px;text-decoration:none;text-transform:uppercase;opacity:.7;transition:opacity .2s}.notes-link:hover{opacity:1;text-decoration:underline}
