/* ============================================
   StockOracle AI NEXUS - Ultimate Style System
   ============================================ */

/* Theme Variables */
:root, [data-theme="nexus"] {
    --bg-primary: #0a0a1a;
    --bg-secondary: #0f0f2a;
    --bg-card: rgba(15, 15, 42, 0.8);
    --bg-card-hover: rgba(20, 20, 55, 0.9);
    --glass-bg: rgba(15, 15, 42, 0.6);
    --glass-border: rgba(99, 102, 241, 0.15);
    --text-primary: #e2e8f0;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;
    --accent-1: #6366f1;
    --accent-2: #06b6d4;
    --accent-3: #8b5cf6;
    --green: #10b981;
    --red: #f43f5e;
    --yellow: #f59e0b;
    --orange: #f97316;
    --pink: #ec4899;
    --particle-color: 99,102,241;
    --glow-1: rgba(99,102,241,0.3);
    --glow-2: rgba(6,182,212,0.3);
    --gradient-1: linear-gradient(135deg, #6366f1, #06b6d4);
    --gradient-2: linear-gradient(135deg, #8b5cf6, #ec4899);
    --gradient-3: linear-gradient(135deg, #f43f5e, #f59e0b);
    --scan-color: rgba(99,102,241,0.03);
}
[data-theme="matrix"] {
    --bg-primary: #000a00;
    --bg-secondary: #001200;
    --bg-card: rgba(0, 18, 0, 0.8);
    --bg-card-hover: rgba(0, 30, 0, 0.9);
    --glass-bg: rgba(0, 18, 0, 0.6);
    --glass-border: rgba(0, 255, 65, 0.15);
    --text-primary: #00ff41;
    --text-secondary: #00cc33;
    --text-muted: #008f11;
    --accent-1: #00ff41;
    --accent-2: #00e639;
    --accent-3: #39ff14;
    --green: #00ff41;
    --particle-color: 0,255,65;
    --glow-1: rgba(0,255,65,0.3);
    --glow-2: rgba(57,255,20,0.3);
    --gradient-1: linear-gradient(135deg, #00ff41, #39ff14);
    --scan-color: rgba(0,255,65,0.03);
}
[data-theme="aurora"] {
    --bg-primary: #0a0520;
    --bg-secondary: #10082e;
    --bg-card: rgba(16, 8, 46, 0.8);
    --glass-border: rgba(168, 85, 247, 0.15);
    --accent-1: #a855f7;
    --accent-2: #38bdf8;
    --accent-3: #e879f9;
    --particle-color: 168,85,247;
    --glow-1: rgba(168,85,247,0.3);
    --glow-2: rgba(56,189,248,0.3);
    --gradient-1: linear-gradient(135deg, #a855f7, #38bdf8);
    --scan-color: rgba(168,85,247,0.03);
}
[data-theme="sunset"] {
    --bg-primary: #1a0a0a;
    --bg-secondary: #2a0f0f;
    --bg-card: rgba(42, 15, 15, 0.8);
    --glass-border: rgba(244, 63, 94, 0.15);
    --accent-1: #f43f5e;
    --accent-2: #f59e0b;
    --accent-3: #f97316;
    --particle-color: 244,63,94;
    --glow-1: rgba(244,63,94,0.3);
    --glow-2: rgba(245,158,11,0.3);
    --gradient-1: linear-gradient(135deg, #f43f5e, #f59e0b);
    --scan-color: rgba(244,63,94,0.03);
}
[data-theme="ocean"] {
    --bg-primary: #0a1628;
    --bg-secondary: #0f1f3a;
    --bg-card: rgba(15, 31, 58, 0.8);
    --glass-border: rgba(6, 182, 212, 0.15);
    --accent-1: #06b6d4;
    --accent-2: #3b82f6;
    --accent-3: #22d3ee;
    --particle-color: 6,182,212;
    --glow-1: rgba(6,182,212,0.3);
    --glow-2: rgba(59,130,246,0.3);
    --gradient-1: linear-gradient(135deg, #06b6d4, #3b82f6);
    --scan-color: rgba(6,182,212,0.03);
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 14px; }
body { font-family: 'Inter', sans-serif; background: var(--bg-primary); color: var(--text-primary); overflow-x: hidden; min-height: 100vh; }
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--accent-1); border-radius: 3px; }
::selection { background: var(--accent-1); color: white; }

/* Background Effects */
#particleCanvas { position: fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.bg-grid { position:fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none;
    background-image: linear-gradient(var(--glass-border) 1px, transparent 1px), linear-gradient(90deg, var(--glass-border) 1px, transparent 1px);
    background-size: 60px 60px; opacity:0.3; }
.scan-line { position:fixed; top:0; left:0; width:100%; height:2px; z-index:1; pointer-events:none;
    background: var(--scan-color); animation: scanLine 8s linear infinite; }
@keyframes scanLine { 0% { top: -2px; } 100% { top: 100vh; } }

/* Loading Screen */
.loading-screen { position:fixed; top:0; left:0; width:100%; height:100%; z-index:10000; background:var(--bg-primary);
    display:flex; align-items:center; justify-content:center; transition: opacity 0.8s, visibility 0.8s; }
.loading-screen.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.loading-core { text-align:center; max-width:600px; padding:40px; }
.loading-title { font-family:'Orbitron',sans-serif; font-size:2.4rem; font-weight:900; background:var(--gradient-1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:8px; }
.loading-title span { color:var(--accent-2); -webkit-text-fill-color:var(--accent-2); }
.loading-subtitle { color:var(--text-secondary); font-size:0.9rem; margin-bottom:30px; letter-spacing:2px; }
.loading-bar { width:100%; height:4px; background:rgba(255,255,255,0.05); border-radius:2px; overflow:hidden; margin-bottom:16px; }
.loading-bar-fill { height:100%; width:0%; background:var(--gradient-1); border-radius:2px; transition:width 0.3s; }
.loading-status { color:var(--accent-2); font-family:'JetBrains Mono',monospace; font-size:0.8rem; margin-bottom:20px; }
.hex-grid { display:grid; grid-template-columns:repeat(3,40px); gap:4px; justify-content:center; margin-bottom:24px; }
.hex { width:40px; height:40px; background:var(--glass-bg); border:1px solid var(--glass-border); border-radius:8px;
    animation: hexPulse 2s ease-in-out infinite; }
.hex:nth-child(odd) { animation-delay:0.3s; }
.center-hex { background:var(--accent-1); border-color:var(--accent-1); box-shadow:0 0 20px var(--glow-1); }
@keyframes hexPulse { 0%,100% { opacity:0.3; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } }
.model-init-grid { display:flex; flex-wrap:wrap; gap:4px; justify-content:center; max-width:400px; margin:0 auto; }
.model-init-dot { width:6px; height:6px; border-radius:50%; background:var(--text-muted); transition:background 0.3s; }
.model-init-dot.active { background:var(--accent-1); box-shadow:0 0 6px var(--glow-1); }

/* Ticker Bar */
.ticker-bar { position:relative; z-index:10; height:32px; background:rgba(0,0,0,0.4); border-bottom:1px solid var(--glass-border);
    overflow:hidden; display:flex; align-items:center; backdrop-filter:blur(10px); }
.ticker-track { display:flex; gap:32px; white-space:nowrap; animation: tickerScroll 60s linear infinite; padding:0 20px; }
@keyframes tickerScroll { 0% { transform:translateX(0); } 100% { transform:translateX(-50%); } }
.ticker-item { display:inline-flex; align-items:center; gap:6px; font-size:0.75rem; font-family:'JetBrains Mono',monospace; }
.ticker-item .t-code { color:var(--text-secondary); }
.ticker-item .t-price { color:var(--text-primary); font-weight:600; }
.ticker-item .t-change { font-weight:600; }
.ticker-item .t-change.up { color:var(--green); }
.ticker-item .t-change.down { color:var(--red); }

/* Header */
.app-header { position:relative; z-index:100; display:flex; align-items:center; justify-content:space-between;
    padding:10px 20px; background:var(--glass-bg); border-bottom:1px solid var(--glass-border);
    backdrop-filter:blur(20px); gap:16px; }
.header-left { display:flex; align-items:center; }
.logo { display:flex; align-items:center; gap:12px; }
.logo-icon { width:44px; height:44px; position:relative; }
.logo-icon svg { width:100%; height:100%; }
.pulse-glow::after { content:''; position:absolute; inset:-4px; border-radius:50%; background:var(--glow-1); filter:blur(8px); animation:pulseGlow 3s ease-in-out infinite; z-index:-1; }
@keyframes pulseGlow { 0%,100% { opacity:0.3; transform:scale(1); } 50% { opacity:0.7; transform:scale(1.15); } }
.logo-text h1 { font-family:'Orbitron',sans-serif; font-size:1.3rem; font-weight:800; display:flex; align-items:baseline; gap:6px; }
.logo-ai { font-size:0.7rem; background:var(--gradient-1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; font-weight:900; }
.logo-version { font-size:0.55rem; background:var(--gradient-2); padding:2px 6px; border-radius:4px; -webkit-text-fill-color:white; font-weight:700; }
.logo-sub { font-size:0.65rem; color:var(--text-muted); display:block; letter-spacing:1px; }
.header-center { flex:1; max-width:500px; margin:0 auto; }
.search-container { position:relative; }
.search-input { width:100%; padding:8px 36px; background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px;
    color:var(--text-primary); font-size:0.85rem; outline:none; transition:all 0.3s; }
.search-input:focus { border-color:var(--accent-1); box-shadow:0 0 20px var(--glow-1); }
.search-icon { position:absolute; left:10px; top:50%; transform:translateY(-50%); width:16px; height:16px; color:var(--text-muted); }
.search-kbd { position:absolute; right:10px; top:50%; transform:translateY(-50%); font-size:0.65rem; padding:2px 6px; background:var(--bg-primary);
    border:1px solid var(--glass-border); border-radius:4px; color:var(--text-muted); font-family:'JetBrains Mono'; }
.search-dropdown { position:absolute; top:100%; left:0; right:0; background:var(--bg-secondary); border:1px solid var(--glass-border);
    border-radius:10px; margin-top:4px; max-height:400px; overflow-y:auto; display:none; z-index:1000; box-shadow:0 20px 60px rgba(0,0,0,0.5); }
.search-dropdown.show { display:block; }
.search-result { padding:10px 16px; cursor:pointer; display:flex; align-items:center; justify-content:space-between; transition:background 0.2s; border-bottom:1px solid var(--glass-border); }
.search-result:hover { background:var(--bg-card-hover); }
.search-result .sr-left { display:flex; align-items:center; gap:10px; }
.search-result .sr-code { font-family:'JetBrains Mono'; font-weight:600; color:var(--accent-1); }
.search-result .sr-name { color:var(--text-primary); font-size:0.85rem; }
.search-result .sr-sector { font-size:0.7rem; color:var(--text-muted); padding:2px 8px; background:var(--bg-primary); border-radius:12px; }
.header-right { display:flex; align-items:center; gap:12px; }
.realtime-indicator { display:flex; align-items:center; gap:6px; font-size:0.75rem; padding:4px 10px; background:rgba(16,185,129,0.1); border:1px solid rgba(16,185,129,0.3); border-radius:20px; }
.rt-dot { width:8px; height:8px; border-radius:50%; background:var(--green); animation:blink 1s ease-in-out infinite; }
@keyframes blink { 0%,100% { opacity:1; } 50% { opacity:0.3; } }
.rt-label { color:var(--green); font-weight:700; font-family:'JetBrains Mono'; }
.rt-speed { color:var(--text-muted); font-family:'JetBrains Mono'; }
.ai-model-count { display:flex; flex-direction:column; align-items:center; padding:4px 10px; background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:8px; }
.model-count-number { font-family:'Orbitron'; font-weight:800; font-size:1rem; background:var(--gradient-1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.model-count-label { font-size:0.55rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:1px; }
.theme-switcher { display:flex; gap:3px; background:var(--bg-secondary); padding:3px; border-radius:8px; border:1px solid var(--glass-border); }
.theme-btn { background:none; border:none; font-size:0.9rem; padding:4px 6px; border-radius:5px; cursor:pointer; transition:all 0.2s; opacity:0.5; }
.theme-btn.active, .theme-btn:hover { opacity:1; background:var(--bg-card); }
.market-status { display:flex; align-items:center; gap:6px; font-size:0.75rem; color:var(--text-secondary); }
.market-dot { width:8px; height:8px; border-radius:50%; background:var(--red); }
.market-status.open .market-dot { background:var(--green); animation:blink 1s ease-in-out infinite; }
.header-time { font-family:'JetBrains Mono'; font-size:0.75rem; color:var(--text-muted); }

/* App Layout */
.app-layout { display:flex; position:relative; z-index:5; min-height:calc(100vh - 100px); }

/* Sidebar */
.sidebar { width:260px; min-width:260px; background:var(--glass-bg); border-right:1px solid var(--glass-border);
    backdrop-filter:blur(20px); overflow-y:auto; padding:12px; display:flex; flex-direction:column; gap:8px; }
.sidebar-section { background:var(--bg-card); border:1px solid var(--glass-border); border-radius:12px; padding:12px; }
.sidebar-title { font-size:0.8rem; font-weight:700; color:var(--text-secondary); margin-bottom:10px; display:flex; align-items:center; justify-content:space-between; }
.stock-total { font-size:0.65rem; color:var(--accent-2); font-weight:600; }
.watchlist-filter { margin-bottom:8px; }
.mini-select { width:100%; padding:5px 8px; background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:6px;
    color:var(--text-primary); font-size:0.75rem; outline:none; }
.watchlist { max-height:280px; overflow-y:auto; display:flex; flex-direction:column; gap:2px; }
.watch-item { display:flex; align-items:center; justify-content:space-between; padding:8px 10px; border-radius:8px; cursor:pointer;
    transition:all 0.2s; font-size:0.78rem; border:1px solid transparent; }
.watch-item:hover { background:var(--bg-card-hover); border-color:var(--glass-border); }
.watch-item.active { background:var(--bg-card-hover); border-color:var(--accent-1); box-shadow:0 0 10px var(--glow-1); }
.watch-item .wi-left { display:flex; flex-direction:column; gap:1px; }
.watch-item .wi-code { font-family:'JetBrains Mono'; font-weight:600; color:var(--accent-1); font-size:0.75rem; }
.watch-item .wi-name { color:var(--text-primary); font-size:0.72rem; }
.watch-item .wi-right { text-align:right; }
.watch-item .wi-price { font-weight:600; font-family:'JetBrains Mono'; font-size:0.78rem; }
.watch-item .wi-change { font-size:0.68rem; font-weight:600; }
.watch-item .wi-change.up { color:var(--green); }
.watch-item .wi-change.down { color:var(--red); }

/* Indicator/Period/Model Buttons */
.indicator-toggles, .period-selector { display:flex; flex-wrap:wrap; gap:4px; }
.indicator-btn, .period-btn { padding:5px 10px; font-size:0.7rem; background:var(--bg-secondary); border:1px solid var(--glass-border);
    border-radius:6px; color:var(--text-secondary); cursor:pointer; transition:all 0.2s; display:flex; align-items:center; gap:4px; }
.indicator-btn:hover, .period-btn:hover { border-color:var(--accent-1); color:var(--text-primary); }
.indicator-btn.active, .period-btn.active { background:var(--accent-1); border-color:var(--accent-1); color:white; }
.indicator-dot { width:8px; height:8px; border-radius:50%; }

/* Model Families */
.model-families { display:flex; flex-direction:column; gap:4px; }
.model-family { padding:8px 10px; border-radius:8px; cursor:pointer; transition:all 0.2s; border:1px solid transparent; }
.model-family:hover { background:var(--bg-card-hover); border-color:var(--glass-border); }
.model-family.active { background:rgba(99,102,241,0.1); border-color:var(--accent-1); }
.family-header { display:flex; align-items:center; gap:6px; font-size:0.75rem; color:var(--text-secondary); }
.family-icon { font-size:0.9rem; }
.family-count { margin-left:auto; font-family:'JetBrains Mono'; font-size:0.65rem; background:var(--bg-secondary); padding:2px 6px; border-radius:10px; color:var(--accent-2); }
.model-total { text-align:center; font-size:0.7rem; color:var(--text-muted); margin-top:8px; padding-top:8px; border-top:1px solid var(--glass-border); }
.model-total strong { color:var(--accent-1); font-family:'Orbitron'; }

/* Alert Section */
.alert-input-row { display:flex; gap:6px; }
.alert-input, .alert-select { flex:1; padding:6px 10px; background:var(--bg-secondary); border:1px solid var(--glass-border);
    border-radius:6px; color:var(--text-primary); font-size:0.8rem; outline:none; }
.alert-input:focus, .alert-select:focus { border-color:var(--accent-1); }
.alert-add-btn { width:100%; padding:7px; margin-top:6px; background:var(--bg-secondary); border:1px dashed var(--glass-border);
    border-radius:6px; color:var(--accent-1); font-size:0.78rem; cursor:pointer; transition:all 0.2s; }
.alert-add-btn:hover { background:rgba(99,102,241,0.1); border-style:solid; }
.alert-list { margin-top:6px; display:flex; flex-direction:column; gap:3px; }
.alert-item { display:flex; align-items:center; justify-content:space-between; padding:5px 8px; font-size:0.72rem;
    background:var(--bg-secondary); border-radius:6px; }
.alert-remove { background:none; border:none; color:var(--red); cursor:pointer; font-size:0.8rem; }

/* Main Content */
.main-content { flex:1; padding:16px; overflow-y:auto; display:flex; flex-direction:column; gap:16px; }

/* Glass Card */
.glass-card { background:var(--bg-card); border:1px solid var(--glass-border); border-radius:16px;
    backdrop-filter:blur(20px); overflow:hidden; }

/* Stock Info Bar */
.stock-info-bar { background:var(--bg-card); border:1px solid var(--glass-border); border-radius:14px; padding:16px 20px;
    display:flex; align-items:center; gap:20px; flex-wrap:wrap; position:relative; }
.stock-primary { display:flex; align-items:baseline; gap:10px; }
.stock-code { font-family:'Orbitron'; font-weight:800; font-size:1.5rem; background:var(--gradient-1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.stock-name { font-size:1.1rem; font-weight:600; }
.stock-exchange { font-size:0.7rem; color:var(--text-muted); padding:3px 8px; background:var(--bg-secondary); border-radius:12px; }
.stock-price-info { display:flex; align-items:baseline; gap:10px; }
.stock-price { font-family:'JetBrains Mono'; font-size:1.8rem; font-weight:800; }
.stock-change { display:flex; align-items:baseline; gap:4px; font-family:'JetBrains Mono'; font-weight:700; font-size:0.95rem; }
.stock-change.up { color:var(--green); }
.stock-change.down { color:var(--red); }
.stock-meta { display:flex; gap:16px; margin-left:auto; }
.meta-item { display:flex; flex-direction:column; align-items:center; gap:2px; }
.meta-label { font-size:0.6rem; color:var(--text-muted); text-transform:uppercase; }
.meta-value { font-family:'JetBrains Mono'; font-size:0.8rem; font-weight:600; }
.realtime-pulse { position:absolute; right:16px; top:50%; transform:translateY(-50%); display:flex; align-items:center; gap:6px; font-size:0.7rem; color:var(--green); }
.pulse-ring { width:10px; height:10px; border-radius:50%; background:var(--green); position:relative; }
.pulse-ring::after { content:''; position:absolute; inset:-4px; border-radius:50%; border:2px solid var(--green); animation:pulseRing 1.5s ease-out infinite; }
@keyframes pulseRing { 0% { transform:scale(1); opacity:0.6; } 100% { transform:scale(2); opacity:0; } }

/* Tab Navigation */
.tab-nav { display:flex; gap:4px; background:var(--bg-card); border:1px solid var(--glass-border); border-radius:12px; padding:4px; overflow-x:auto; }
.tab-btn { padding:8px 14px; font-size:0.78rem; background:none; border:none; color:var(--text-secondary); cursor:pointer;
    border-radius:8px; transition:all 0.2s; white-space:nowrap; font-weight:500; }
.tab-btn:hover { color:var(--text-primary); background:var(--bg-secondary); }
.tab-btn.active { background:var(--accent-1); color:white; font-weight:600; box-shadow:0 0 15px var(--glow-1); }
.tab-content { display:none; }
.tab-content.active { display:block; animation:fadeIn 0.3s ease; }
@keyframes fadeIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

/* Chart */
.chart-container { padding:20px; }
.chart-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; flex-wrap:wrap; gap:10px; }
.chart-title-area { display:flex; align-items:center; gap:14px; }
.chart-title-area h2 { font-size:1.1rem; font-weight:700; }
.chart-type-toggle { display:flex; gap:3px; background:var(--bg-secondary); padding:3px; border-radius:8px; }
.chart-type-btn { padding:5px 12px; font-size:0.72rem; background:none; border:none; color:var(--text-secondary);
    cursor:pointer; border-radius:5px; transition:all 0.2s; }
.chart-type-btn.active { background:var(--accent-1); color:white; }
.chart-actions { display:flex; gap:8px; }
.action-btn { padding:8px 16px; background:var(--gradient-1); border:none; border-radius:8px; color:white; font-size:0.8rem;
    font-weight:600; cursor:pointer; display:flex; align-items:center; gap:6px; transition:all 0.3s; }
.action-btn:hover { transform:translateY(-2px); box-shadow:0 8px 25px var(--glow-1); }
.action-btn svg { width:14px; height:14px; }
.secondary-btn { background:var(--bg-secondary); border:1px solid var(--glass-border); }
.secondary-btn:hover { border-color:var(--accent-1); }
.pulse-btn { animation:btnPulse 3s ease-in-out infinite; }
@keyframes btnPulse { 0%,100% { box-shadow:0 0 5px var(--glow-1); } 50% { box-shadow:0 0 25px var(--glow-1); } }
.chart-wrapper { height:400px; position:relative; }
.chart-wrapper canvas { width:100%!important; height:100%!important; }

/* Sub Charts */
.sub-charts-row { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.sub-chart { padding:14px; }
.sub-chart-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.sub-chart-header h3 { font-size:0.85rem; font-weight:600; }
.sub-chart-value { font-family:'JetBrains Mono'; font-size:0.85rem; font-weight:700; color:var(--accent-2); }
.sub-chart-wrapper { height:120px; }
.sub-chart-wrapper canvas { width:100%!important; height:100%!important; }

/* Prediction Panel */
.prediction-panel { padding:20px; }
.prediction-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.prediction-header h2 { font-size:1.1rem; font-weight:700; display:flex; align-items:center; gap:8px; }
.prediction-live { font-size:0.6rem; background:var(--green); color:white; padding:2px 8px; border-radius:10px; animation:blink 1.5s infinite; font-family:'JetBrains Mono'; }
.prediction-model-badge { font-size:0.72rem; padding:4px 12px; background:var(--bg-secondary); border:1px solid var(--glass-border);
    border-radius:20px; color:var(--accent-2); font-family:'JetBrains Mono'; }
.prediction-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.pred-card { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:12px; padding:16px; text-align:center; }
.pred-card-label { font-size:0.72rem; color:var(--text-muted); margin-bottom:10px; text-transform:uppercase; letter-spacing:1px; }
.signal-display { display:flex; align-items:center; justify-content:center; gap:8px; font-size:1.3rem; font-weight:800; margin-bottom:10px; }
.signal-icon { font-size:1.5rem; }
.signal-strength { margin-top:6px; }
.strength-bar { height:6px; background:rgba(255,255,255,0.05); border-radius:3px; overflow:hidden; }
.strength-fill { height:100%; border-radius:3px; transition:width 0.8s, background 0.8s; }
.strength-label { font-size:0.7rem; color:var(--text-muted); margin-top:4px; display:inline-block; }
.confidence-ring { position:relative; width:100px; height:100px; margin:0 auto; }
.confidence-ring svg { width:100%; height:100%; }
.confidence-value { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-family:'Orbitron'; font-size:1.2rem; font-weight:800; }
.price-target { margin-bottom:10px; }
.target-price { font-family:'JetBrains Mono'; font-size:1.5rem; font-weight:800; display:block; }
.target-change { font-size:0.8rem; font-weight:600; }
.target-change.up { color:var(--green); }
.target-change.down { color:var(--red); }
.price-range { margin-top:8px; }
.range-label, .range-values { display:flex; justify-content:space-between; font-size:0.65rem; color:var(--text-muted); }
.range-bar { height:6px; background:rgba(255,255,255,0.05); border-radius:3px; margin:4px 0; position:relative; overflow:hidden; }
.range-fill { height:100%; background:var(--gradient-1); border-radius:3px; }
.range-marker { position:absolute; top:-2px; width:4px; height:10px; background:white; border-radius:2px; transition:left 0.5s; }
.range-values span { font-family:'JetBrains Mono'; font-size:0.72rem; color:var(--text-secondary); }
.risk-metrics { display:grid; grid-template-columns:1fr 1fr; gap:6px; text-align:left; }
.risk-item { display:flex; justify-content:space-between; padding:4px 0; border-bottom:1px solid var(--glass-border); }
.risk-label { font-size:0.7rem; color:var(--text-muted); }
.risk-value { font-family:'JetBrains Mono'; font-size:0.75rem; font-weight:600; }

/* AI Analysis Tab */
.ai-analysis-layout { display:flex; flex-direction:column; gap:16px; }
.ai-dashboard { padding:20px; }
.ai-dashboard h2 { font-size:1.1rem; margin-bottom:16px; }
.ai-summary-cards { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-bottom:16px; }
.ai-sum-card { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px; padding:12px; text-align:center; }
.ai-sum-label { font-size:0.65rem; color:var(--text-muted); margin-bottom:6px; text-transform:uppercase; letter-spacing:0.5px; }
.ai-sum-value { font-family:'Orbitron'; font-size:1.3rem; font-weight:800; color:var(--accent-1); }
.ai-sum-value.green { color:var(--green); }
.ai-sum-value.yellow { color:var(--yellow); }
.ai-sum-value.red { color:var(--red); }
.ai-sum-value.cyan { color:var(--accent-2); }
.ai-consensus-bar { margin-top:8px; }
.consensus-label { font-size:0.75rem; color:var(--text-secondary); margin-bottom:6px; }
.consensus-track { display:flex; height:28px; border-radius:8px; overflow:hidden; gap:2px; }
.consensus-buy { background:var(--green); transition:width 0.5s; border-radius:8px 0 0 8px; }
.consensus-neutral { background:var(--yellow); transition:width 0.5s; }
.consensus-sell { background:var(--red); transition:width 0.5s; border-radius:0 8px 8px 0; }
.consensus-labels { display:flex; justify-content:space-between; margin-top:6px; font-size:0.72rem; }
.cl-buy { color:var(--green); }
.cl-neutral { color:var(--yellow); }
.cl-sell { color:var(--red); }

/* Model Results Grid */
.model-results-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; max-height:500px; overflow-y:auto; padding:16px; }
.model-result-card { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px; padding:10px;
    transition:all 0.2s; cursor:default; }
.model-result-card:hover { border-color:var(--accent-1); transform:translateY(-2px); }
.mrc-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.mrc-name { font-size:0.72rem; font-weight:600; color:var(--text-primary); }
.mrc-family { font-size:0.6rem; color:var(--text-muted); padding:1px 6px; background:var(--bg-primary); border-radius:8px; }
.mrc-prediction { font-family:'JetBrains Mono'; font-size:0.95rem; font-weight:700; margin:4px 0; }
.mrc-signal { font-size:0.7rem; font-weight:600; display:flex; align-items:center; gap:4px; }
.mrc-signal.buy { color:var(--green); }
.mrc-signal.sell { color:var(--red); }
.mrc-signal.neutral { color:var(--yellow); }
.mrc-confidence { margin-top:4px; }
.mrc-conf-bar { height:3px; background:rgba(255,255,255,0.05); border-radius:2px; overflow:hidden; }
.mrc-conf-fill { height:100%; background:var(--gradient-1); border-radius:2px; }

/* Prediction Distribution Chart */
.prediction-dist-wrapper { height:300px; padding:16px; }
.prediction-dist-wrapper canvas { width:100%!important; height:100%!important; }

/* Iterative AI */
.iterative-ai-panel { padding:16px; }
.iter-controls { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:12px; }
.iter-controls label { font-size:0.8rem; color:var(--text-secondary); display:flex; align-items:center; gap:6px; }
.iter-progress { margin-bottom:12px; font-family:'JetBrains Mono'; font-size:0.75rem; color:var(--accent-2); }
.iter-chart-wrapper { height:250px; }
.iter-chart-wrapper canvas { width:100%!important; height:100%!important; }

/* Heatmap */
.heatmap-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:6px; }
.heatmap-cell { border-radius:8px; padding:12px 10px; text-align:center; cursor:pointer; transition:all 0.2s; border:1px solid transparent; }
.heatmap-cell:hover { transform:scale(1.05); border-color:rgba(255,255,255,0.2); z-index:2; }
.hm-code { font-family:'JetBrains Mono'; font-weight:700; font-size:0.8rem; }
.hm-name { font-size:0.65rem; opacity:0.8; margin:2px 0; }
.hm-change { font-family:'JetBrains Mono'; font-weight:800; font-size:1rem; }

/* Correlation Matrix */
.correlation-matrix { overflow-x:auto; }
.corr-table { border-collapse:collapse; font-size:0.7rem; width:100%; }
.corr-table th, .corr-table td { padding:6px 8px; text-align:center; border:1px solid var(--glass-border); min-width:60px; }
.corr-table th { background:var(--bg-secondary); font-family:'JetBrains Mono'; font-weight:600; position:sticky; top:0; }
.corr-cell { font-family:'JetBrains Mono'; font-weight:600; transition:all 0.2s; cursor:default; }

/* Portfolio */
.portfolio-layout { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.portfolio-stocks { display:flex; flex-direction:column; gap:6px; max-height:400px; overflow-y:auto; }
.pf-stock-item { display:flex; align-items:center; justify-content:space-between; padding:8px 12px; background:var(--bg-secondary);
    border:1px solid var(--glass-border); border-radius:8px; }
.pf-stock-info { display:flex; align-items:center; gap:8px; }
.pf-stock-check { width:16px; height:16px; accent-color:var(--accent-1); }
.pf-stock-name { font-size:0.78rem; }
.pf-stock-weight { font-family:'JetBrains Mono'; font-size:0.8rem; color:var(--accent-2); }
.portfolio-chart-wrapper { height:300px; }
.portfolio-chart-wrapper canvas { width:100%!important; height:100%!important; }
.portfolio-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
.pf-stat { background:var(--bg-secondary); border-radius:8px; padding:10px; text-align:center; }
.pf-stat-label { font-size:0.65rem; color:var(--text-muted); }
.pf-stat-value { font-family:'JetBrains Mono'; font-size:1rem; font-weight:700; margin-top:4px; }

/* Backtest */
.backtest-config { display:flex; flex-direction:column; gap:8px; }
.backtest-row { display:flex; align-items:center; gap:10px; }
.backtest-row label { font-size:0.8rem; color:var(--text-secondary); min-width:80px; }
.backtest-results { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.bt-result { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px; padding:12px; text-align:center; }
.bt-result-label { font-size:0.65rem; color:var(--text-muted); margin-bottom:4px; }
.bt-result-value { font-family:'JetBrains Mono'; font-size:1.1rem; font-weight:700; }
.backtest-chart-wrapper { height:300px; }
.backtest-chart-wrapper canvas { width:100%!important; height:100%!important; }

/* Sentiment / News */
.news-layout { display:flex; gap:16px; }
.sentiment-gauge { text-align:center; margin-bottom:16px; }
.gauge-arc { position:relative; display:inline-block; }
.gauge-arc svg { width:200px; height:120px; }
.gauge-value { position:absolute; bottom:10px; left:50%; transform:translateX(-50%); font-family:'Orbitron'; font-size:2rem; font-weight:800; }
.gauge-label { font-size:0.85rem; color:var(--text-secondary); margin-top:4px; }
.news-feed { display:flex; flex-direction:column; gap:8px; max-height:500px; overflow-y:auto; }
.news-item { padding:12px; background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px; cursor:pointer; transition:all 0.2s; }
.news-item:hover { border-color:var(--accent-1); }
.news-title { font-size:0.85rem; font-weight:600; margin-bottom:4px; }
.news-meta { display:flex; align-items:center; gap:8px; font-size:0.7rem; color:var(--text-muted); }
.news-sentiment { padding:2px 8px; border-radius:10px; font-weight:600; font-size:0.68rem; }
.news-sentiment.positive { background:rgba(16,185,129,0.15); color:var(--green); }
.news-sentiment.negative { background:rgba(244,63,94,0.15); color:var(--red); }
.news-sentiment.neutral { background:rgba(245,158,11,0.15); color:var(--yellow); }

/* AI Chat */
.ai-chat { display:flex; flex-direction:column; height:500px; }
.ai-messages { flex:1; overflow-y:auto; display:flex; flex-direction:column; gap:8px; padding:10px; }
.ai-msg { max-width:90%; padding:10px 14px; border-radius:12px; font-size:0.8rem; line-height:1.5; animation:fadeIn 0.3s; }
.ai-msg.bot { background:var(--bg-secondary); border:1px solid var(--glass-border); align-self:flex-start; border-bottom-left-radius:4px; }
.ai-msg.user { background:var(--accent-1); color:white; align-self:flex-end; border-bottom-right-radius:4px; }
.ai-input-row { display:flex; gap:6px; padding:10px; border-top:1px solid var(--glass-border); }
.ai-input { flex:1; padding:8px 12px; background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:8px;
    color:var(--text-primary); font-size:0.8rem; outline:none; }
.ai-input:focus { border-color:var(--accent-1); }
.ai-send-btn { padding:8px 14px; background:var(--gradient-1); border:none; border-radius:8px; color:white; font-size:1rem; cursor:pointer; transition:all 0.2s; }
.ai-send-btn:hover { transform:scale(1.05); }

/* Screener */
.screener-filters { display:flex; gap:8px; flex-wrap:wrap; }
.screener-table-wrap { overflow:auto; max-height:600px; }
.screener-table { width:100%; border-collapse:collapse; font-size:0.78rem; }
.screener-table th { padding:10px 12px; background:var(--bg-secondary); text-align:left; font-weight:600; color:var(--text-secondary);
    position:sticky; top:0; z-index:2; border-bottom:2px solid var(--accent-1); }
.screener-table td { padding:8px 12px; border-bottom:1px solid var(--glass-border); }
.screener-table tr:hover { background:var(--bg-card-hover); }
.screener-table .signal-badge { padding:3px 10px; border-radius:12px; font-weight:600; font-size:0.7rem; }
.signal-badge.strong-buy { background:rgba(16,185,129,0.2); color:var(--green); }
.signal-badge.buy { background:rgba(16,185,129,0.1); color:var(--green); }
.signal-badge.sell { background:rgba(244,63,94,0.1); color:var(--red); }
.signal-badge.strong-sell { background:rgba(244,63,94,0.2); color:var(--red); }
.signal-badge.neutral { background:rgba(245,158,11,0.1); color:var(--yellow); }
.screener-btn { padding:4px 10px; background:var(--accent-1); border:none; border-radius:6px; color:white; font-size:0.7rem; cursor:pointer; }

/* Advanced Analysis */
.advanced-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.advanced-grid h2 { font-size:1rem; margin-bottom:12px; }
.mtf-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.mtf-card { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px; padding:12px; text-align:center; }
.mtf-period { font-size:0.7rem; color:var(--text-muted); margin-bottom:4px; }
.mtf-signal { font-size:1.1rem; font-weight:800; }
.mtf-signal.buy { color:var(--green); }
.mtf-signal.sell { color:var(--red); }
.mtf-signal.neutral { color:var(--yellow); }
.fib-levels { display:flex; flex-direction:column; gap:4px; }
.fib-level { display:flex; justify-content:space-between; padding:8px 12px; background:var(--bg-secondary); border-radius:6px;
    font-family:'JetBrains Mono'; font-size:0.78rem; }
.fib-ratio { color:var(--accent-2); font-weight:600; }
.fib-price { color:var(--text-primary); font-weight:700; }
.wave-chart-wrapper, .volume-profile-wrapper { height:250px; }
.wave-chart-wrapper canvas, .volume-profile-wrapper canvas { width:100%!important; height:100%!important; }

/* Toast Notifications */
.toast-container { position:fixed; top:80px; right:20px; z-index:9999; display:flex; flex-direction:column; gap:8px; }
.toast { padding:12px 20px; background:var(--bg-card); border:1px solid var(--glass-border); border-radius:12px;
    backdrop-filter:blur(20px); display:flex; align-items:center; gap:10px; animation:toastIn 0.3s ease; min-width:300px;
    box-shadow:0 10px 40px rgba(0,0,0,0.4); }
.toast.success { border-color:var(--green); }
.toast.error { border-color:var(--red); }
.toast.info { border-color:var(--accent-2); }
.toast-icon { font-size:1.2rem; }
.toast-msg { flex:1; font-size:0.8rem; }
.toast-close { background:none; border:none; color:var(--text-muted); cursor:pointer; font-size:1rem; }
@keyframes toastIn { from { transform:translateX(100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
.toast.removing { animation:toastOut 0.3s ease forwards; }
@keyframes toastOut { to { transform:translateX(100%); opacity:0; } }

/* Modal */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:9998; display:none; align-items:center; justify-content:center;
    backdrop-filter:blur(5px); }
.modal-overlay.show { display:flex; }
.modal-content { padding:24px; max-width:600px; width:90%; max-height:80vh; overflow-y:auto; }
.modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.modal-header h2 { font-size:1.1rem; }
.modal-close { background:none; border:none; color:var(--text-muted); font-size:1.2rem; cursor:pointer; padding:4px 8px; border-radius:6px; }
.modal-close:hover { background:var(--bg-secondary); color:var(--text-primary); }
.shortcuts-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.shortcut-item { display:flex; align-items:center; gap:10px; padding:8px 12px; background:var(--bg-secondary); border-radius:8px; }
.shortcut-item kbd { font-family:'JetBrains Mono'; font-size:0.72rem; padding:3px 8px; background:var(--bg-primary); border:1px solid var(--glass-border);
    border-radius:4px; color:var(--accent-1); }
.shortcut-item span { font-size:0.8rem; color:var(--text-secondary); }
.compare-stocks { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.compare-stock-item { padding:8px 12px; background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:8px; text-align:center;
    cursor:pointer; transition:all 0.2s; font-size:0.78rem; }
.compare-stock-item:hover, .compare-stock-item.active { border-color:var(--accent-1); background:rgba(99,102,241,0.1); }
.compare-chart-wrapper { height:300px; }
.compare-chart-wrapper canvas { width:100%!important; height:100%!important; }

/* Responsive */
@media (max-width:1400px) {
    .prediction-grid { grid-template-columns:repeat(2,1fr); }
    .ai-summary-cards { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:1024px) {
    .sidebar { display:none; }
    .sub-charts-row { grid-template-columns:1fr; }
    .portfolio-layout, .advanced-grid { grid-template-columns:1fr; }
    .news-layout { flex-direction:column; }
    .news-layout > div:last-child { width:100%!important; }
    .stock-meta { display:none; }
    .realtime-pulse { display:none; }
}
@media (max-width:768px) {
    .header-right .theme-switcher, .header-right .ai-model-count { display:none; }
    .search-kbd { display:none; }
    .prediction-grid { grid-template-columns:1fr; }
    .tab-nav { overflow-x:auto; }
    .backtest-results { grid-template-columns:repeat(2,1fr); }
}

/* Paper Trading */
.paper-dashboard { display:grid; grid-template-columns:2fr 1fr; gap:16px; align-items:start; }
.paper-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.paper-stat { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px; padding:12px; text-align:center; }
.ps-label { font-size:0.65rem; color:var(--text-muted); display:block; margin-bottom:4px; text-transform:uppercase; letter-spacing:0.5px; }
.ps-value { font-family:'Orbitron'; font-size:1rem; font-weight:700; color:var(--accent-1); display:block; }
.paper-trade-form { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px; padding:16px; }
.ptf-row { display:flex; gap:8px; align-items:center; }
.paper-positions h3 { font-size:0.85rem; color:var(--text-secondary); margin-bottom:8px; }
.position-item { display:flex; align-items:center; justify-content:space-between; padding:10px 14px;
    background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:8px; margin-bottom:4px; }
.position-item .pos-code { font-family:'JetBrains Mono'; font-weight:700; color:var(--accent-1); }
.position-item .pos-pl { font-family:'JetBrains Mono'; font-weight:700; }
.position-item .pos-pl.up { color:var(--green); }
.position-item .pos-pl.down { color:var(--red); }

/* Extra neon glow effects */
.glass-card { transition:border-color 0.3s, box-shadow 0.3s; }
.glass-card:hover { border-color:var(--accent-1); box-shadow:0 0 30px rgba(99,102,241,0.08); }
.model-result-card { position:relative; overflow:hidden; }
.model-result-card::after { content:''; position:absolute; top:-50%; left:-50%; width:200%; height:200%;
    background:conic-gradient(from 0deg, transparent, var(--glow-1), transparent 60%);
    opacity:0; transition:opacity 0.4s; animation:none; pointer-events:none; }
.model-result-card:hover::after { opacity:0.15; animation:cardGlow 3s linear infinite; }
@keyframes cardGlow { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }

/* Sound indicator */
.sound-indicator { position:fixed; bottom:20px; right:20px; z-index:9000; background:var(--bg-card);
    border:1px solid var(--glass-border); border-radius:12px; padding:8px 12px; font-size:0.75rem;
    color:var(--accent-2); backdrop-filter:blur(10px); display:flex; align-items:center; gap:6px; cursor:pointer; }
.sound-bars { display:flex; gap:2px; align-items:flex-end; height:16px; }
.sound-bar { width:3px; background:var(--accent-1); border-radius:1px; animation:soundBar 0.8s ease-in-out infinite; }
.sound-bar:nth-child(1) { height:6px; animation-delay:0s; }
.sound-bar:nth-child(2) { height:12px; animation-delay:0.15s; }
.sound-bar:nth-child(3) { height:8px; animation-delay:0.3s; }
.sound-bar:nth-child(4) { height:14px; animation-delay:0.45s; }
@keyframes soundBar { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(0.4); } }

/* Count-up animation */
@keyframes countUp { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.count-up { animation:countUp 0.6s ease-out; }

/* Shimmer loading effect */
.shimmer { background:linear-gradient(90deg, var(--bg-secondary) 25%, var(--bg-card-hover) 50%, var(--bg-secondary) 75%);
    background-size:200% 100%; animation:shimmer 1.5s infinite; }
@keyframes shimmer { 0% { background-position:200% 0; } 100% { background-position:-200% 0; } }

/* AI prediction halo */
.prediction-halo { box-shadow:0 0 40px var(--glow-1), 0 0 80px var(--glow-2), inset 0 0 20px rgba(99,102,241,0.05); }

/* Matrix Rain Canvas */
#matrixRainCanvas { position:fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; opacity:0; transition:opacity 0.5s; }
[data-theme="matrix"] #matrixRainCanvas { opacity:0.15; }

/* Neural Network Visualization */
.neural-viz { position:relative; width:100%; height:350px; background:var(--bg-secondary); border-radius:12px; overflow:hidden; }
.neural-viz canvas { width:100%!important; height:100%!important; }
.neural-node { position:absolute; width:12px; height:12px; border-radius:50%; background:var(--accent-1);
    box-shadow:0 0 12px var(--glow-1); animation:neuralPulse 2s ease-in-out infinite; }
@keyframes neuralPulse { 0%,100% { transform:scale(1); opacity:0.8; } 50% { transform:scale(1.4); opacity:1; } }

/* Hologram Card */
.holo-card { background:linear-gradient(135deg, var(--bg-card), var(--bg-card-hover));
    border:1px solid var(--glass-border); border-radius:16px; position:relative; overflow:hidden; }
.holo-card::before { content:''; position:absolute; top:-50%; left:-50%; width:200%; height:200%;
    background:conic-gradient(from var(--holo-angle, 0deg), transparent, var(--glow-1), transparent, var(--glow-2), transparent);
    opacity:0.05; animation:holoRotate 6s linear infinite; }
@keyframes holoRotate { 0% { transform:rotate(0); } 100% { transform:rotate(360deg); } }

/* Cyber Grid Animation */
.cyber-grid { position:fixed; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:0; }
.cyber-grid::after { content:''; position:absolute; inset:0;
    background:repeating-linear-gradient(0deg, transparent, transparent 59px, var(--glass-border) 60px),
               repeating-linear-gradient(90deg, transparent, transparent 59px, var(--glass-border) 60px);
    opacity:0.15; animation:gridPulse 4s ease-in-out infinite; }
@keyframes gridPulse { 0%,100% { opacity:0.08; } 50% { opacity:0.18; } }

/* Data Stream Animation */
.data-stream { overflow:hidden; position:relative; }
.data-stream::after { content:'01001011 11010010 00110101'; position:absolute; top:0; left:0;
    font-family:'JetBrains Mono'; font-size:0.5rem; color:var(--accent-1); opacity:0.06;
    white-space:nowrap; animation:dataFlow 15s linear infinite; }
@keyframes dataFlow { 0% { transform:translateX(0); } 100% { transform:translateX(-50%); } }

/* Status Badge Animations */
.badge-live { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:12px;
    font-size:0.65rem; font-weight:700; font-family:'JetBrains Mono'; animation:badgePulse 2s infinite; }
.badge-live.green { background:rgba(16,185,129,0.15); color:var(--green); }
.badge-live.red { background:rgba(244,63,94,0.15); color:var(--red); }
.badge-live.cyan { background:rgba(6,182,212,0.15); color:var(--accent-2); }
@keyframes badgePulse { 0%,100% { box-shadow:0 0 0 0 rgba(16,185,129,0.4); } 50% { box-shadow:0 0 0 6px rgba(16,185,129,0); } }

/* Mega Dashboard Stats */
.mega-stats { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; padding:16px; }
.mega-stat { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:12px;
    padding:14px; text-align:center; position:relative; overflow:hidden; transition:all 0.3s; }
.mega-stat:hover { transform:translateY(-3px); border-color:var(--accent-1); box-shadow:0 8px 30px var(--glow-1); }
.mega-stat-icon { font-size:1.5rem; margin-bottom:4px; }
.mega-stat-value { font-family:'Orbitron'; font-size:1.4rem; font-weight:800; color:var(--accent-1); }
.mega-stat-label { font-size:0.6rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:1px; margin-top:4px; }
.mega-stat-sub { font-size:0.7rem; color:var(--text-secondary); margin-top:2px; }

/* Elliott Wave Labels */
.wave-label { position:absolute; font-family:'Orbitron'; font-weight:800; font-size:0.7rem;
    color:var(--accent-2); text-shadow:0 0 8px var(--glow-2); pointer-events:none; }

/* Regime Badge */
.regime-badge { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:20px;
    font-weight:700; font-size:0.85rem; border:2px solid; }
.regime-badge.bull { border-color:var(--green); color:var(--green); background:rgba(16,185,129,0.1); }
.regime-badge.bear { border-color:var(--red); color:var(--red); background:rgba(244,63,94,0.1); }
.regime-badge.range { border-color:var(--yellow); color:var(--yellow); background:rgba(245,158,11,0.1); }
.regime-badge.volatile { border-color:var(--orange); color:var(--orange); background:rgba(249,115,22,0.1); }

/* Performance Sparkline */
.sparkline-row { display:flex; align-items:center; gap:8px; padding:4px 0; }
.sparkline-label { font-size:0.72rem; color:var(--text-secondary); min-width:60px; }
.sparkline-bar { flex:1; height:4px; background:rgba(255,255,255,0.05); border-radius:2px; overflow:hidden; }
.sparkline-fill { height:100%; border-radius:2px; transition:width 1s ease; }

/* Floating Action Button */
.fab { position:fixed; bottom:20px; left:20px; z-index:9000; display:flex; flex-direction:column; gap:8px; }
.fab-btn { width:44px; height:44px; border-radius:50%; border:none; background:var(--gradient-1);
    color:white; font-size:1.1rem; cursor:pointer; box-shadow:0 4px 20px var(--glow-1);
    transition:all 0.3s; display:flex; align-items:center; justify-content:center; }
.fab-btn:hover { transform:scale(1.15); box-shadow:0 8px 30px var(--glow-1); }
.fab-btn.secondary { background:var(--bg-card); border:1px solid var(--glass-border); }

/* Extra Tab Icons */
.tab-btn { position:relative; }
.tab-btn::after { content:''; position:absolute; bottom:-2px; left:50%; transform:translateX(-50%); width:0; height:2px;
    background:var(--gradient-1); transition:width 0.3s; border-radius:1px; }
.tab-btn.active::after { width:60%; }

/* ============================================================
   OMEGA ULTIMATE EVOLUTION STYLES
   ============================================================ */

/* Aurora Canvas */
#auroraCanvas { position:fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; opacity:0.6; }

/* Cyber Lines */
.cyber-lines { position:fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; overflow:hidden; }
.cyber-lines::before, .cyber-lines::after { content:''; position:absolute; width:1px; height:100vh;
    background:linear-gradient(180deg, transparent, var(--accent-1), transparent);
    animation:cyberLine 8s ease-in-out infinite; opacity:0.06; }
.cyber-lines::before { left:20%; animation-delay:0s; }
.cyber-lines::after { left:80%; animation-delay:4s; }
@keyframes cyberLine { 0%,100% { transform:translateY(-100%); opacity:0; } 50% { opacity:0.08; } 100% { transform:translateY(100%); } }

/* OMEGA Badge */
.omega-badge { font-size:0.8rem; background:linear-gradient(135deg, #f59e0b, #f43f5e, #8b5cf6, #06b6d4);
    background-size:300% 300%; animation:omegaGradient 4s ease infinite;
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; font-weight:900; }
.logo-omega { font-family:'Orbitron'; font-size:0.9rem; background:linear-gradient(135deg, #f59e0b, #f43f5e, #8b5cf6);
    background-size:200% 200%; animation:omegaGradient 3s ease infinite;
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; font-weight:900; margin-left:4px; }
@keyframes omegaGradient { 0% { background-position:0% 50%; } 50% { background-position:100% 50%; } 100% { background-position:0% 50%; } }

/* ECG Container */
.ecg-container { width:140px; height:36px; background:rgba(0,0,0,0.3); border:1px solid var(--glass-border);
    border-radius:8px; overflow:hidden; position:relative; }
.ecg-container canvas { width:100%; height:100%; }

/* Quantum Prediction Bar */
.quantum-prediction-bar { padding:14px 20px; margin-bottom:8px; }
.qp-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.qp-header h3 { font-size:0.9rem; font-weight:700; }
.qp-badge { font-family:'JetBrains Mono'; font-size:0.6rem; padding:3px 10px; border-radius:12px;
    background:linear-gradient(135deg, rgba(99,102,241,0.2), rgba(6,182,212,0.2));
    border:1px solid rgba(6,182,212,0.3); color:var(--accent-2); animation:badgePulse 2s infinite; letter-spacing:1px; }
.qp-canvas-wrap { height:80px; position:relative; overflow:hidden; border-radius:8px;
    background:rgba(0,0,0,0.2); }
.qp-canvas-wrap canvas { width:100%!important; height:100%!important; }

/* OMEGA Tab */
.omega-header-banner { text-align:center; padding:30px 20px; margin-bottom:20px;
    background:linear-gradient(135deg, rgba(99,102,241,0.1), rgba(6,182,212,0.05), rgba(139,92,246,0.1));
    border:1px solid var(--glass-border); border-radius:20px; position:relative; overflow:hidden; }
.omega-header-banner::before { content:''; position:absolute; inset:0;
    background:linear-gradient(135deg, transparent, rgba(99,102,241,0.05) 30%, rgba(6,182,212,0.05) 60%, transparent);
    animation:omegaShimmer 5s ease infinite; }
@keyframes omegaShimmer { 0% { transform:translateX(-100%); } 100% { transform:translateX(100%); } }
.omega-header-banner h1 { font-family:'Orbitron'; font-size:2rem; font-weight:900;
    background:linear-gradient(135deg, #6366f1, #06b6d4, #8b5cf6, #ec4899);
    background-size:300% 300%; animation:omegaGradient 4s ease infinite;
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:8px; }
.omega-header-banner p { color:var(--text-secondary); font-size:0.85rem; letter-spacing:2px; }

.omega-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
.omega-card { padding:20px; }
.omega-card h2 { font-size:1rem; font-weight:700; margin-bottom:4px; }
.omega-desc { font-size:0.72rem; color:var(--text-muted); margin-bottom:14px; }
.omega-wide { grid-column:span 2; }

/* AI Consensus Wheel */
.consensus-wheel-wrap { display:flex; justify-content:center; padding:10px; }
.consensus-wheel-wrap canvas { max-width:260px; max-height:260px; }

/* Brain Heatmap */
.brain-heatmap-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(110px, 1fr)); gap:6px; }
.brain-cell { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px;
    padding:10px 8px; text-align:center; position:relative; overflow:hidden; transition:all 0.3s; cursor:default; }
.brain-cell::after { content:''; position:absolute; bottom:0; left:0; width:100%; height:var(--cell-activity, 0%);
    background:hsla(var(--cell-hue, 140), var(--cell-sat, 70%), var(--cell-light, 40%), 0.08);
    transition:height 1s ease; pointer-events:none; }
.brain-cell:hover { transform:translateY(-2px); border-color:hsl(var(--cell-hue, 140), var(--cell-sat, 70%), var(--cell-light, 50%));
    box-shadow:0 4px 20px hsla(var(--cell-hue, 140), var(--cell-sat, 70%), var(--cell-light, 40%), 0.2); }
.brain-cell-icon { font-size:1.3rem; margin-bottom:4px; }
.brain-cell-name { font-size:0.68rem; font-weight:600; color:var(--text-primary); margin-bottom:2px; }
.brain-cell-models { font-size:0.58rem; color:var(--text-muted); margin-bottom:6px; }
.brain-cell-bar { height:3px; background:rgba(255,255,255,0.05); border-radius:2px; overflow:hidden; margin-bottom:4px; }
.brain-cell-fill { height:100%; border-radius:2px; transition:width 1s ease; }
.brain-cell-accuracy { font-family:'JetBrains Mono'; font-size:0.6rem; color:var(--accent-2); }

/* Global Market Clock */
.market-clock-grid { display:flex; flex-direction:column; gap:6px; }
.market-clock-item { display:flex; align-items:center; gap:10px; padding:10px 14px;
    background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px;
    transition:all 0.3s; position:relative; overflow:hidden; }
.market-clock-item.open { border-color:rgba(255,255,255,0.1); }
.market-clock-item.open::before { content:''; position:absolute; inset:0; opacity:0.03;
    background:linear-gradient(90deg, transparent, var(--accent-1), transparent);
    animation:clockShimmer 3s ease infinite; }
@keyframes clockShimmer { 0%,100% { opacity:0.02; } 50% { opacity:0.06; } }
.mc-status-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.market-clock-item.open .mc-status-dot { animation:blink 1.5s ease-in-out infinite; }
.mc-info { flex:1; }
.mc-name { font-size:0.8rem; font-weight:600; }
.mc-code { font-family:'JetBrains Mono'; font-size:0.6rem; color:var(--text-muted); }
.mc-time { font-family:'JetBrains Mono'; font-size:0.95rem; font-weight:700; min-width:55px; text-align:right; }
.mc-badge { font-family:'JetBrains Mono'; font-size:0.55rem; padding:3px 8px; border-radius:8px;
    font-weight:700; letter-spacing:1px; border:1px solid var(--glass-border); }
.mc-badge.open { animation:badgePulse 2s infinite; }
.mc-badge.closed { color:var(--text-muted); }
.mc-progress { position:absolute; bottom:0; left:0; width:100%; height:2px; background:rgba(255,255,255,0.03); }
.mc-progress-fill { height:100%; border-radius:1px; transition:width 0.5s; }

/* Prediction Accuracy Tracker */
.tracker-header { display:flex; gap:12px; margin-bottom:14px; }
.tracker-stat { display:flex; flex-direction:column; align-items:center; flex:1;
    background:var(--bg-secondary); border-radius:8px; padding:8px; }
.tracker-label { font-size:0.6rem; color:var(--text-muted); margin-bottom:4px; }
.tracker-value { font-family:'Orbitron'; font-size:1rem; font-weight:700; }
.tracker-bars { display:flex; gap:3px; align-items:flex-end; height:80px; }
.tracker-bar-item { flex:1; display:flex; flex-direction:column; justify-content:flex-end; height:100%;
    background:rgba(255,255,255,0.02); border-radius:3px 3px 0 0; overflow:hidden; cursor:default; transition:opacity 0.2s; }
.tracker-bar-item:hover { opacity:0.8; }
.tracker-bar-fill { border-radius:3px 3px 0 0; transition:height 1s ease; min-height:2px; }

/* Model Battle Arena */
.battle-round { text-align:center; font-family:'Orbitron'; font-size:0.8rem; color:var(--accent-2);
    margin-bottom:10px; padding:6px; background:var(--bg-secondary); border-radius:8px; letter-spacing:2px; }
.battle-list { display:flex; flex-direction:column; gap:4px; }
.battle-entry { display:flex; align-items:center; gap:8px; padding:8px 12px;
    background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:8px;
    font-size:0.75rem; transition:all 0.3s; }
.battle-entry.champion { border-color:var(--accent-1); box-shadow:0 0 15px var(--glow-1);
    background:linear-gradient(135deg, rgba(99,102,241,0.08), rgba(6,182,212,0.05)); }
.battle-rank { font-size:1rem; min-width:28px; text-align:center; }
.battle-name { font-weight:600; min-width:120px; font-size:0.72rem; }
.battle-family { font-size:0.6rem; color:var(--text-muted); min-width:60px; }
.battle-score { font-family:'Orbitron'; font-weight:700; color:var(--accent-1); min-width:50px; text-align:right; }
.battle-accuracy { font-family:'JetBrains Mono'; font-size:0.7rem; color:var(--accent-2); min-width:40px; text-align:right; }
.battle-pred { font-weight:600; font-size:0.7rem; min-width:30px; text-align:right; }
.battle-pred.buy { color:var(--green); }
.battle-pred.sell { color:var(--red); }

/* Enhanced Holographic Card Effects */
.glass-card, .mega-stat, .pred-card { position:relative; }
.glass-card::before { content:''; position:absolute; inset:0; border-radius:inherit;
    background:radial-gradient(circle at calc(var(--holo-x, 0.5) * 100%) calc(var(--holo-y, 0.5) * 100%),
        rgba(99,102,241,0.08) 0%, transparent 60%);
    opacity:0; transition:opacity 0.4s; pointer-events:none; z-index:0; }
.glass-card:hover::before { opacity:1; }

/* Enhanced Card Shimmer on Hover */
.mega-stat::before { content:''; position:absolute; top:0; left:-100%; width:60%; height:100%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.03), transparent);
    transition:left 0.6s ease; pointer-events:none; }
.mega-stat:hover::before { left:150%; }

/* Neon Border Glow Enhancement */
.glass-card:hover { border-color:var(--accent-1);
    box-shadow:0 0 20px rgba(99,102,241,0.06), 0 0 40px rgba(99,102,241,0.03), inset 0 0 20px rgba(99,102,241,0.02); }

/* Enhanced Tab with Glow */
.tab-btn.active { box-shadow:0 0 15px var(--glow-1), 0 2px 8px rgba(0,0,0,0.3); }
.tab-btn[data-tab="omega"] { background:linear-gradient(135deg, rgba(99,102,241,0.1), rgba(139,92,246,0.1));
    border:1px solid rgba(139,92,246,0.2); }
.tab-btn[data-tab="omega"].active { background:linear-gradient(135deg, #6366f1, #8b5cf6);
    border-color:transparent; box-shadow:0 0 20px rgba(139,92,246,0.4); }

/* Responsive for OMEGA */
@media (max-width:1024px) {
    .omega-grid { grid-template-columns:1fr; }
    .omega-wide { grid-column:span 1; }
    .ecg-container { display:none; }
}

/* Enhanced Signal Card Glow */
.signal-card { transition:all 0.5s; }
.signal-card.buy-signal { border-color:var(--green); box-shadow:0 0 25px rgba(16,185,129,0.15); }
.signal-card.sell-signal { border-color:var(--red); box-shadow:0 0 25px rgba(244,63,94,0.15); }

/* Floating Particles Enhancement */
@keyframes float { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-15px) rotate(3deg); } }
.mega-stat { animation:float 6s ease-in-out infinite; }
.mega-stat:nth-child(2) { animation-delay:1s; }
.mega-stat:nth-child(3) { animation-delay:2s; }
.mega-stat:nth-child(4) { animation-delay:0.5s; }
.mega-stat:nth-child(5) { animation-delay:1.5s; }
.mega-stat:nth-child(6) { animation-delay:2.5s; }

/* Premium Text Glow */
.stock-code { text-shadow:0 0 20px var(--glow-1); }
.stock-price { text-shadow:0 0 10px rgba(255,255,255,0.1); }

/* Breath animation for prediction panel */
.prediction-panel { animation:breathe 4s ease-in-out infinite; }
@keyframes breathe { 0%,100% { box-shadow:0 0 0 rgba(99,102,241,0); } 50% { box-shadow:0 0 30px rgba(99,102,241,0.05); } }

/* ============================================================
   PHASE 2: ULTIMATE EVOLUTION STYLES
   ============================================================ */

/* Risk Radar */
.risk-radar-wrap { display:flex; justify-content:center; padding:10px; }
.risk-radar-wrap canvas { max-width:280px; max-height:280px; }

/* AI Leaderboard */
.leaderboard-grid { display:flex; flex-direction:column; gap:4px; }
.lb-entry { display:flex; align-items:center; gap:8px; padding:7px 10px;
    background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:8px;
    font-size:0.72rem; transition:all 0.4s; }
.lb-entry.top3 { border-color:rgba(99,102,241,0.15);
    background:linear-gradient(135deg, rgba(99,102,241,0.04), transparent); }
.lb-entry:first-child { border-color:rgba(245,158,11,0.3);
    box-shadow:0 0 15px rgba(245,158,11,0.08);
    background:linear-gradient(135deg, rgba(245,158,11,0.06), transparent); }
.lb-rank { font-size:0.9rem; min-width:26px; text-align:center; }
.lb-name { font-weight:600; min-width:110px; font-size:0.7rem; }
.lb-bar-wrap { flex:1; height:6px; background:rgba(255,255,255,0.03); border-radius:3px; overflow:hidden; min-width:60px; }
.lb-bar { height:100%; border-radius:3px; transition:width 1s ease; }
.lb-acc { font-family:'JetBrains Mono'; font-size:0.7rem; font-weight:700; min-width:45px; text-align:right; }
.lb-trend { font-size:0.6rem; min-width:14px; text-align:center; }
.lb-trend.up { color:var(--green); }
.lb-trend.down { color:var(--red); }
.lb-streak { font-size:0.65rem; min-width:30px; text-align:right; }

/* Smart Summary */
.smart-summary { padding:4px 0; }
.ss-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.ss-stock { font-weight:700; font-size:1rem; }
.ss-mood { font-weight:700; font-size:0.85rem; }
.ss-price { font-family:'Orbitron'; font-size:1.8rem; font-weight:700; margin-bottom:14px; }
.ss-metrics { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; margin-bottom:14px; }
.ss-metric { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px;
    padding:10px; text-align:center; }
.ss-ml { display:block; font-size:0.6rem; color:var(--text-muted); margin-bottom:4px; }
.ss-mv { font-family:'JetBrains Mono'; font-size:0.85rem; font-weight:700; }
.ss-insights { display:flex; flex-direction:column; gap:6px; }
.ss-insight { padding:8px 12px; background:var(--bg-secondary); border:1px solid var(--glass-border);
    border-radius:8px; font-size:0.78rem; border-left:3px solid var(--accent-1); }

/* Market Mood Wave */
.mood-wave-wrap { height:120px; position:relative; overflow:hidden; border-radius:8px;
    background:rgba(0,0,0,0.15); }
.mood-wave-wrap canvas { width:100%!important; height:100%!important; }

/* Live Sparklines */
.sparklines-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:5px; }
.spark-item { display:flex; align-items:center; gap:6px; padding:6px 8px;
    background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:8px;
    transition:all 0.3s; }
.spark-item:hover { border-color:var(--accent-1); transform:translateY(-1px); }
.spark-info { display:flex; flex-direction:column; min-width:50px; }
.spark-code { font-family:'JetBrains Mono'; font-size:0.6rem; font-weight:600; color:var(--accent-2); }
.spark-name { font-size:0.55rem; color:var(--text-muted); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; max-width:50px; }
.spark-svg { flex:1; height:28px; min-width:50px; }
.spark-price { font-family:'JetBrains Mono'; font-size:0.65rem; font-weight:700; min-width:45px; text-align:right; }

/* Enhanced OMEGA Card Entrance Animation */
.omega-card { opacity:0; animation:fadeSlideUp 0.6s ease forwards; }
.omega-card:nth-child(1) { animation-delay:0.1s; }
.omega-card:nth-child(2) { animation-delay:0.2s; }
.omega-card:nth-child(3) { animation-delay:0.3s; }
.omega-card:nth-child(4) { animation-delay:0.4s; }
.omega-card:nth-child(5) { animation-delay:0.5s; }
.omega-card:nth-child(6) { animation-delay:0.6s; }
.omega-card:nth-child(7) { animation-delay:0.7s; }
.omega-card:nth-child(8) { animation-delay:0.8s; }
.omega-card:nth-child(9) { animation-delay:0.9s; }
.omega-card:nth-child(10) { animation-delay:1.0s; }
@keyframes fadeSlideUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }

/* Signal card dynamic glow */
.signal-card.buy-signal { animation:buyPulse 2s ease-in-out infinite; }
.signal-card.sell-signal { animation:sellPulse 2s ease-in-out infinite; }
@keyframes buyPulse { 0%,100% { box-shadow:0 0 15px rgba(16,185,129,0.1); }
    50% { box-shadow:0 0 35px rgba(16,185,129,0.25); } }
@keyframes sellPulse { 0%,100% { box-shadow:0 0 15px rgba(244,63,94,0.1); }
    50% { box-shadow:0 0 35px rgba(244,63,94,0.25); } }

/* ============================================================
   TRANSCENDENCE - 超越スタイルシステム
   ============================================================ */

/* TRANSCENDENCE Tab */
.tab-btn[data-tab="transcend"] { background:linear-gradient(135deg, rgba(139,92,246,0.12), rgba(236,72,153,0.08));
    border:1px solid rgba(139,92,246,0.25); }
.tab-btn[data-tab="transcend"].active { background:linear-gradient(135deg, #8b5cf6, #ec4899, #6366f1);
    background-size:200% 200%; animation:omegaGradient 3s ease infinite;
    border-color:transparent; box-shadow:0 0 25px rgba(139,92,246,0.5), 0 0 50px rgba(236,72,153,0.2); }

/* TRANSCENDENCE Header Banner */
.transcend-header-banner { text-align:center; padding:36px 24px; margin-bottom:24px;
    background:linear-gradient(135deg, rgba(139,92,246,0.12), rgba(236,72,153,0.06), rgba(99,102,241,0.1), rgba(6,182,212,0.06));
    border:1px solid rgba(139,92,246,0.2); border-radius:24px; position:relative; overflow:hidden; }
.transcend-header-banner::before { content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse at 30% 50%, rgba(139,92,246,0.08), transparent 60%),
               radial-gradient(ellipse at 70% 50%, rgba(236,72,153,0.06), transparent 60%);
    animation:transcendShimmer 8s ease infinite alternate; }
@keyframes transcendShimmer { 0% { opacity:0.5; } 100% { opacity:1; } }
.transcend-header-banner h1 { font-family:'Orbitron'; font-size:2.2rem; font-weight:900;
    background:linear-gradient(135deg, #8b5cf6, #ec4899, #6366f1, #06b6d4, #8b5cf6);
    background-size:400% 400%; animation:omegaGradient 5s ease infinite;
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:10px; }
.transcend-header-banner p { color:var(--text-secondary); font-size:0.85rem; letter-spacing:3px; }
.transcend-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
@media (max-width:1024px) { .transcend-grid { grid-template-columns:1fr; } .transcend-grid .omega-wide { grid-column:span 1; } }

/* Canvas Wraps */
.galaxy-wrap, .synapse-wrap, .dna-wrap, .dimmap-wrap, .pl-wrap { height:350px; position:relative;
    background:rgba(0,0,0,0.2); border-radius:12px; overflow:hidden; }
.galaxy-wrap canvas, .synapse-wrap canvas, .dna-wrap canvas, .dimmap-wrap canvas, .pl-wrap canvas {
    width:100%!important; height:100%!important; }
.dna-wrap, .pl-wrap { height:260px; }
.dimmap-wrap { height:320px; display:flex; justify-content:center; align-items:center; }

/* Vote Timeline */
.vote-timeline { display:flex; gap:3px; align-items:flex-end; height:140px; overflow-x:auto; padding:8px 0; }
.vote-bar-group { display:flex; flex-direction:column; align-items:center; gap:3px; min-width:22px; }
.vote-time { font-size:0.5rem; color:var(--text-muted); font-family:'JetBrains Mono'; writing-mode:vertical-rl; transform:rotate(180deg); height:20px; }
.vote-stack { display:flex; flex-direction:column; width:18px; height:90px; border-radius:3px; overflow:hidden; gap:1px; }
.vote-seg { transition:height 0.5s; }
.vote-seg.buy { background:var(--green); }
.vote-seg.neutral { background:var(--yellow); }
.vote-seg.sell { background:var(--red); }
.vote-conf { font-size:0.5rem; font-family:'JetBrains Mono'; font-weight:600; }

/* Emotion Spectrum */
.spectrum-grid { display:grid; grid-template-columns:80px repeat(7, 1fr); gap:2px; font-size:0.6rem; }
.spectrum-corner { background:transparent; }
.spectrum-header { background:var(--bg-secondary); padding:4px; text-align:center; font-weight:600;
    color:var(--text-muted); border-radius:4px; font-size:0.55rem; }
.spectrum-family { background:var(--bg-secondary); padding:4px 6px; font-weight:600;
    color:var(--text-secondary); border-radius:4px; display:flex; align-items:center; font-size:0.58rem; }
.spectrum-cell { border-radius:4px; display:flex; align-items:center; justify-content:center;
    font-family:'JetBrains Mono'; font-weight:600; font-size:0.55rem; color:rgba(255,255,255,0.7);
    transition:all 0.3s; cursor:default; min-height:24px; }
.spectrum-cell:hover { transform:scale(1.1); z-index:2; box-shadow:0 0 10px rgba(255,255,255,0.1); }
.spectrum-cell span { opacity:0; transition:opacity 0.2s; }
.spectrum-cell:hover span { opacity:1; }

/* Confidence Bands */
.conf-bands-list { display:flex; flex-direction:column; gap:8px; }
.conf-band-row { display:flex; align-items:center; gap:10px; padding:8px 12px;
    background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px; }
.cb-model { font-weight:600; font-size:0.78rem; min-width:100px; }
.cb-bar { flex:1; height:12px; background:rgba(255,255,255,0.03); border-radius:6px;
    position:relative; overflow:hidden; min-width:150px; }
.cb-range { position:absolute; top:0; height:100%; background:linear-gradient(90deg, rgba(99,102,241,0.2), rgba(6,182,212,0.2));
    border-radius:6px; }
.cb-pred { position:absolute; top:-1px; width:3px; height:14px; background:white;
    border-radius:2px; transform:translateX(-50%); box-shadow:0 0 6px rgba(255,255,255,0.4); }
.cb-zero { position:absolute; top:0; left:50%; width:1px; height:100%; background:rgba(255,255,255,0.15); }
.cb-value { font-family:'JetBrains Mono'; font-weight:700; font-size:0.8rem; min-width:60px; text-align:right; }
.cb-conf { font-family:'JetBrains Mono'; font-size:0.7rem; color:var(--accent-2); min-width:35px; text-align:right; }

/* Strategy Builder */
.strategy-builder { display:flex; flex-direction:column; gap:14px; }
.sb-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:6px; }
.sb-card { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px;
    padding:10px; text-align:center; cursor:pointer; transition:all 0.3s; }
.sb-card:hover { border-color:var(--accent-1); transform:translateY(-2px); }
.sb-card.active { border-color:var(--accent-1); background:rgba(99,102,241,0.08);
    box-shadow:0 0 15px rgba(99,102,241,0.1); }
.sb-type { font-size:0.55rem; color:var(--text-muted); margin-bottom:4px; text-transform:uppercase; letter-spacing:1px; }
.sb-name { font-size:0.78rem; font-weight:600; margin-bottom:4px; }
.sb-toggle { font-size:1rem; }
.sb-results { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; }
.sb-stat { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:10px;
    padding:12px; text-align:center; }
.sb-stat span { font-size:0.6rem; color:var(--text-muted); display:block; margin-bottom:4px; }
.sb-stat strong { font-family:'Orbitron'; font-size:1rem; font-weight:700; }

/* Time Machine */
.tm-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:10px; }
.tm-card { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:12px;
    padding:14px; text-align:center; transition:all 0.3s; }
.tm-card:hover { border-color:var(--accent-1); transform:translateY(-3px);
    box-shadow:0 8px 30px rgba(99,102,241,0.1); }
.tm-icon { font-size:2rem; margin-bottom:6px; }
.tm-name { font-size:0.78rem; font-weight:700; margin-bottom:4px; }
.tm-date { font-family:'JetBrains Mono'; font-size:0.65rem; color:var(--text-muted); margin-bottom:6px; }
.tm-drop { font-family:'Orbitron'; font-size:1.3rem; font-weight:800; margin-bottom:4px; }
.tm-recovery { font-size:0.65rem; color:var(--text-secondary); margin-bottom:8px; }
.tm-sim-btn { padding:5px 14px; background:var(--gradient-1); border:none; border-radius:6px;
    color:white; font-size:0.7rem; font-weight:600; cursor:pointer; transition:all 0.2s; }
.tm-sim-btn:hover { transform:scale(1.05); box-shadow:0 4px 15px var(--glow-1); }

/* AI Report */
.ai-report { background:var(--bg-secondary); border:1px solid var(--glass-border); border-radius:16px;
    padding:24px; position:relative; overflow:hidden; }
.ai-report::before { content:''; position:absolute; top:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg, #6366f1, #8b5cf6, #ec4899, #06b6d4); }
.report-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px;
    padding-bottom:12px; border-bottom:1px solid var(--glass-border); }
.report-logo { font-family:'Orbitron'; font-size:0.8rem; font-weight:700;
    background:var(--gradient-1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.report-date { font-family:'JetBrains Mono'; font-size:0.7rem; color:var(--text-muted); }
.report-title { font-family:'Orbitron'; font-size:1.2rem; font-weight:800; margin-bottom:16px;
    background:linear-gradient(135deg, var(--text-primary), var(--accent-2));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.report-signal { text-align:center; padding:16px; margin-bottom:20px;
    border:2px solid var(--glass-border); border-radius:12px;
    background:rgba(0,0,0,0.2); }
.rs-label { font-size:0.7rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:2px; margin-bottom:6px; }
.rs-value { font-family:'Orbitron'; font-size:1.8rem; font-weight:900; margin-bottom:4px; }
.rs-conf { font-family:'JetBrains Mono'; font-size:0.75rem; color:var(--text-secondary); }
.report-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; margin-bottom:20px; }
.report-section { background:rgba(0,0,0,0.15); border:1px solid var(--glass-border); border-radius:10px; padding:14px; }
.report-section h4 { font-size:0.8rem; margin-bottom:10px; color:var(--accent-2); }
.report-row { display:flex; justify-content:space-between; padding:4px 0; font-size:0.75rem;
    border-bottom:1px solid rgba(255,255,255,0.03); }
.report-row span:first-child { color:var(--text-muted); }
.report-row span:last-child { font-family:'JetBrains Mono'; font-weight:600; }
.report-footer { font-size:0.65rem; color:var(--text-muted); text-align:center;
    padding-top:14px; border-top:1px solid var(--glass-border); font-style:italic; }
@media (max-width:768px) { .report-grid { grid-template-columns:1fr; } .sb-results { grid-template-columns:repeat(2, 1fr); } }
