:root{--color-bg-primary:#0f0f23;--color-bg-secondary:#1a1a35;--color-bg-card:#252547;--color-text-primary:#fff;--color-text-secondary:#a0a0c0;--color-text-muted:#606080;--color-accent:#6366f1;--color-accent-hover:#818cf8;--color-success:#22c55e;--color-danger:#ef4444;--color-warning:#f59e0b;--color-border:#3a3a5c;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--font-family-base:"Segoe UI", system-ui, -apple-system, sans-serif;--font-family-mono:"Consolas", "Monaco", monospace;--font-size-xs:12px;--font-size-sm:13px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:22px;--font-size-xxl:28px;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s ease;--shadow-sm:0 1px 2px #0003;--shadow-md:0 4px 6px #0000004d;--shadow-lg:0 10px 15px #0006}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family-base);background-color:var(--color-bg-primary);color:var(--color-text-primary);min-height:100vh;line-height:1.5}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}
.text--muted{color:var(--color-text-muted);font-style:italic}.text--secondary{color:var(--color-text-secondary)}.text--success{color:var(--color-success)}.text--danger{color:var(--color-danger)}.text--warning{color:var(--color-warning)}.text--mono{font-family:var(--font-family-mono)}
.app{flex-direction:column;min-height:100vh;display:flex}.app__main{flex:1;overflow-y:auto}.app__content{max-width:1400px;padding:var(--space-lg);gap:var(--space-lg);flex-direction:column;margin:0 auto;display:flex}
.header{padding:var(--space-md) var(--space-lg);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.header__logo{align-items:center;gap:var(--space-sm);display:flex}.header__logo-icon{font-size:var(--font-size-xxl)}.header__logo-text{font-size:var(--font-size-xl);background:linear-gradient(135deg, var(--color-accent), #a855f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.header__version{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-left:var(--space-xs);font-weight:400}.header__controls{align-items:center;gap:var(--space-lg);display:flex}.header__status{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--color-bg-card);border-radius:var(--radius-md);display:flex}.header__status-dot{border-radius:50%;width:10px;height:10px;animation:2s infinite pulse}.header__status-dot--disconnected{background-color:var(--color-danger)}.header__status-dot--idle{background-color:var(--color-warning,#f59e0b)}.header__status-dot--connected{background-color:var(--color-success)}.header__status-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}
.card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--color-border)}.card--gradient{background:linear-gradient(135deg, var(--color-bg-card), #2d2d5a)}.card__title{font-size:var(--font-size-md);color:var(--color-text-secondary);margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.btn{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-md);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;gap:var(--space-xs);border:none;font-weight:600;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--small{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm)}.btn--primary{background-color:var(--color-accent);color:#fff}.btn--primary:hover:not(:disabled){background-color:var(--color-accent-hover)}.btn--success{background-color:var(--color-success);color:#fff}.btn--success:hover:not(:disabled){filter:brightness(1.1)}.btn--danger{background-color:var(--color-danger);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(1.1)}
.session-stats{padding:var(--space-sm) var(--space-md);flex:none}.session-stats__grid{gap:var(--space-sm);text-align:center;grid-template-columns:repeat(3,1fr);display:grid}@media (min-width:640px){.session-stats__grid{grid-template-columns:repeat(6,1fr)}}.session-stats__item{padding:var(--space-sm);border-radius:var(--radius-sm);background:#0003;flex-direction:column;gap:.15rem;display:flex}.session-stats__label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.session-stats__value{font-size:var(--font-size-lg);color:var(--color-text-primary);font-weight:700;font-family:var(--font-family-mono)}.session-stats__value--positive{color:var(--color-success)}.session-stats__value--negative{color:var(--color-danger)}.session-stats__value--warning{color:var(--color-warning)}.session-stats__value--muted{color:var(--color-text-secondary)}
.signal-panel{background:linear-gradient(135deg, var(--color-bg-card), #2d2d5a)}.signal-panel__grid{gap:var(--space-lg);margin-bottom:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.signal-panel__item{text-align:center}.signal-panel__label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-xs);text-transform:uppercase;display:block}.signal-panel__value{font-size:24px;font-weight:700}.signal-panel__value--up{color:var(--color-success)}.signal-panel__value--down{color:var(--color-danger)}.signal-panel__value--buy{color:var(--color-success)}.signal-panel__value--sell{color:var(--color-danger)}.signal-panel__value--hold{color:var(--color-text-muted)}.signal-panel__circuit{justify-content:center;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:#0003;display:flex}.signal-panel__circuit-dot{border-radius:50%;width:12px;height:12px;animation:2s infinite pulse}.signal-panel__circuit-dot--green{background-color:var(--color-success);box-shadow:0 0 12px #22c55e66}.signal-panel__circuit-dot--yellow{background-color:var(--color-warning);box-shadow:0 0 12px #f59e0b66}.signal-panel__circuit-dot--red{background-color:var(--color-danger);box-shadow:0 0 12px #ef444466}.signal-panel__circuit-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.signal-panel__strength-bar{background-color:var(--color-bg-secondary);height:8px;margin-top:var(--space-sm);border-radius:4px;overflow:hidden}.signal-panel__strength-fill{background:linear-gradient(90deg, var(--color-accent), var(--color-success));height:100%;transition:width var(--transition-slow);border-radius:4px}
.trade-log{flex:none}.trade-log__title-row{justify-content:space-between;align-items:center;display:flex}.trade-log__list{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.trade-log__item{padding:var(--space-md);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);flex-shrink:0}.trade-log__header{margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.trade-log__type{border-radius:var(--radius-xs);font-weight:600;font-size:var(--font-size-sm);white-space:nowrap;padding:2px 8px}.trade-log__type--buy{color:var(--color-success);background-color:#4caf5033}.trade-log__type--sell{color:var(--color-danger);background-color:#f4433633}.trade-log__ticket{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.trade-log__details{gap:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.trade-log__profit{font-weight:700;font-size:var(--font-size-md);margin:var(--space-xs) 0}.trade-log__profit--positive{color:var(--color-success)}.trade-log__profit--negative{color:var(--color-danger)}.trade-log__meta{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-xs)}.trade-log__empty{color:var(--color-text-muted);padding:var(--space-md) 0;font-style:italic}
.ai-insights{background:linear-gradient(135deg, var(--color-bg-card), #1a2535);border:1px solid #6366f133;flex:none}.ai-insights__metrics{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.ai-insights__metric{text-align:center;padding:var(--space-sm);border-radius:var(--radius-sm);background:#0003}.ai-insights__metric-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;margin-bottom:2px;display:block}.ai-insights__metric-value{font-size:var(--font-size-lg);color:var(--color-text-primary);font-weight:700;font-family:var(--font-family-mono)}.ai-insights__metric-value--positive{color:var(--color-success)}.ai-insights__metric-value--negative{color:var(--color-danger)}.ai-insights__best-worst{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.ai-insights__bw-item{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);justify-content:space-between;align-items:center;display:flex}.ai-insights__bw-item--best{background:#22c55e1a;border:1px solid #22c55e33}.ai-insights__bw-item--worst{background:#ef44441a;border:1px solid #ef444433}.ai-insights__bw-label{color:var(--color-text-secondary)}.ai-insights__bw-value{font-weight:600;font-family:var(--font-family-mono);color:var(--color-text-primary)}.ai-insights__section{margin-bottom:var(--space-md)}.ai-insights__section:last-child{margin-bottom:0}.ai-insights__section-title{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm);font-weight:600}.ai-insights__features{gap:var(--space-xs);flex-direction:column;display:flex}.ai-insights__feature-row{align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);display:flex}.ai-insights__feature-name{width:90px;color:var(--color-text-secondary);font-family:var(--font-family-mono);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ai-insights__feature-bar-bg{background:#ffffff0d;border-radius:7px;flex:1;height:14px;overflow:hidden}.ai-insights__feature-bar-fill{background:linear-gradient(90deg, var(--color-accent), var(--color-accent-hover));height:100%;transition:width var(--transition-slow);border-radius:7px;min-width:2px}.ai-insights__feature-pct{text-align:right;width:40px;color:var(--color-text-primary);font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:600}.ai-insights__data-sources{gap:var(--space-sm);grid-template-columns:repeat(3,1fr);display:grid}.ai-insights__source{text-align:center;padding:var(--space-sm);border-radius:var(--radius-sm);background:#0003}.ai-insights__source-label{color:var(--color-text-muted);text-transform:uppercase;margin-bottom:2px;font-size:10px;display:block}.ai-insights__source-count{font-size:var(--font-size-lg);font-weight:700;font-family:var(--font-family-mono);color:var(--color-text-primary)}.ai-insights__source--accent .ai-insights__source-count{color:var(--color-accent)}.ai-insights__source--warning .ai-insights__source-count{color:var(--color-warning)}.ai-insights__source--muted .ai-insights__source-count{color:var(--color-text-secondary)}
.pnl-chart__empty{height:280px;color:var(--color-text-muted);justify-content:center;align-items:center;font-style:italic;display:flex}
.status-bar{padding:var(--space-sm) var(--space-md);background-color:var(--color-bg-card);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-muted);flex:none;justify-content:space-between;display:flex}.status-bar__time{font-family:var(--font-family-mono)}

