:root{--bg:#0a0b0f;--bg-card:#12131a;--bg-input:#181923;--border:#1e2030;--border-focus:#0f8;--text:#8b8fa3;--text-h:#e2e4ed;--text-dim:#4a4e69;--accent:#0f8;--accent-dim:#00ff881f;--error:#f46;--error-dim:#ff44661a;--radius:6px;--mono:"IBM Plex Mono", "JetBrains Mono", "Fira Code", ui-monospace, monospace;--sans:"IBM Plex Sans", "Source Sans 3", system-ui, sans-serif;font:16px/150% var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);margin:0}#root{min-height:100svh}h1,h2{font-family:var(--sans);color:var(--text-h);font-weight:600}h1{letter-spacing:-.5px;font-size:1.75rem}h2{letter-spacing:-.25px;font-size:1.25rem}p{color:var(--text);line-height:1.6}.login-page{background:radial-gradient(ellipse 80% 50% at 50% -20%, #00ff880f, transparent), var(--bg);justify-content:center;align-items:center;min-height:100svh;padding:1.5rem;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;width:100%;max-width:400px;padding:2.5rem 2rem}.login-header{text-align:center;margin-bottom:2rem}.login-header p{color:var(--text-dim);margin-top:.5rem;font-size:.875rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.form-field{flex-direction:column;gap:.375rem;display:flex}.form-field label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:.75rem}.form-field input{font-family:var(--sans);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-h);outline:none;padding:.625rem .75rem;font-size:.9375rem;transition:border-color .2s,box-shadow .2s}.form-field input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-dim)}.form-field input::placeholder{color:var(--text-dim)}.form-error{font-family:var(--mono);color:var(--error);background:var(--error-dim);border-radius:var(--radius);border-left:3px solid var(--error);padding:.5rem .75rem;font-size:.8125rem}.btn-primary{font-family:var(--mono);letter-spacing:.04em;background:var(--accent);color:var(--bg);border-radius:var(--radius);cursor:pointer;text-transform:uppercase;border:none;margin-top:.25rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:600;transition:opacity .2s,transform .1s}.btn-primary:hover{opacity:.9}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.login-toggle{text-align:center;color:var(--text-dim);margin-top:1.5rem;font-size:.8125rem}.login-toggle button{color:var(--accent);cursor:pointer;font-size:.8125rem;font-family:var(--mono);text-underline-offset:2px;background:0 0;border:none;text-decoration:underline}.loading-screen{min-height:100svh;font-family:var(--mono);color:var(--text-dim);justify-content:center;align-items:center;display:flex}.admin-layout{grid-template-columns:auto 1fr;height:100svh;display:grid;overflow:hidden}.admin-sidebar{background:var(--bg-card);border-right:1px solid var(--border);flex-direction:column;width:240px;transition:width .2s;display:flex;overflow:hidden}.admin-sidebar.collapsed{width:64px}.admin-sidebar-brand{border-bottom:1px solid var(--border);white-space:nowrap;align-items:center;gap:.625rem;min-height:56px;padding:1rem 1.25rem;display:flex;overflow:hidden}.admin-sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:.5rem 0;display:flex}.admin-nav-item{color:var(--text);font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;align-items:center;gap:.75rem;padding:.625rem 1.25rem;font-size:.8125rem;text-decoration:none;transition:color .15s,background .15s;display:flex;overflow:hidden}.admin-nav-item:hover{color:var(--accent);background:var(--accent-dim)}.admin-nav-item.active{color:var(--accent);background:var(--accent-dim);border-right:2px solid var(--accent)}.admin-nav-icon{text-align:center;flex-shrink:0;width:20px;font-size:1rem}.admin-nav-label{text-overflow:ellipsis;overflow:hidden}.admin-main{flex-direction:column;display:flex;overflow:hidden}.admin-header{border-bottom:1px solid var(--border);background:var(--bg-card);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.admin-header-left{align-items:center;gap:1rem;display:flex}.admin-sidebar-toggle{font-family:var(--mono);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;background:0 0;padding:.375rem .5rem;font-size:.625rem;line-height:1;transition:border-color .15s,color .15s}.admin-sidebar-toggle:hover{border-color:var(--accent);color:var(--accent)}.dashboard-brand{align-items:center;gap:.625rem;display:flex}.brand-mark{color:var(--accent);font-size:1.25rem}.brand-name{font-family:var(--mono);color:var(--text-h);letter-spacing:.02em;font-size:.9375rem;font-weight:600}.dashboard-user{align-items:center;gap:1rem;display:flex}.user-name{font-family:var(--mono);color:var(--text);font-size:.8125rem}.btn-logout{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;background:0 0;padding:.375rem .875rem;font-size:.75rem;transition:border-color .2s,color .2s}.btn-logout:hover{border-color:var(--error);color:var(--error)}.admin-content{flex:1;padding:2.5rem;overflow:auto}.admin-footer{border-top:1px solid var(--border);font-family:var(--mono);color:var(--text-dim);letter-spacing:.04em;flex-shrink:0;padding:.75rem 2rem;font-size:.6875rem}.dashboard-welcome{margin-bottom:2rem}.dashboard-welcome h2{margin-bottom:.25rem}.dashboard-welcome p{color:var(--text-dim);font-size:.9375rem}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.dash-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem}.dash-card-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:.5rem;font-size:.6875rem}.dash-card-value{font-family:var(--mono);color:var(--text-h);font-size:1.125rem;font-weight:600}.dash-card-value.status-active{color:var(--accent)}.dash-card-value.neutral{color:var(--text)}.trading-page{flex-direction:column;gap:1.75rem;display:flex}.trading-header h1{margin-bottom:.25rem}.trading-subtitle{font-family:var(--mono);color:var(--text-dim);letter-spacing:.06em;font-size:.8125rem}.trading-controls{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:1.25rem;padding:1.25rem 1.5rem;display:flex}.trading-control-group{flex-direction:column;gap:.375rem;min-width:160px;display:flex}.trading-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:.6875rem}.trading-select{font-family:var(--mono);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-h);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%234a4e69'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;outline:none;padding:.5rem 2rem .5rem .75rem;font-size:.875rem}.trading-select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-dim)}.trading-select:disabled{opacity:.4;cursor:not-allowed}.trading-input{font-family:var(--mono);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-h);outline:none;width:100px;padding:.5rem .75rem;font-size:.875rem}.trading-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-dim)}.trading-input:disabled{opacity:.4;cursor:not-allowed}.trading-actions{min-width:auto;margin-left:auto}.btn-trading{font-family:var(--mono);letter-spacing:.04em;border-radius:var(--radius);cursor:pointer;text-transform:uppercase;white-space:nowrap;border:none;padding:.625rem 1.375rem;font-size:.8125rem;font-weight:600;transition:opacity .2s,transform .1s,box-shadow .2s}.btn-trading:active{transform:translateY(1px)}.btn-trading:disabled{opacity:.4;cursor:not-allowed}.btn-start{background:var(--accent);color:var(--bg);box-shadow:0 0 16px #0f83}.btn-start:hover:not(:disabled){box-shadow:0 0 24px #00ff8859}.btn-stop{background:var(--error);color:#fff;box-shadow:0 0 16px #f463}.btn-stop:hover:not(:disabled){box-shadow:0 0 24px #ff446659}.trading-error{font-family:var(--mono);color:var(--error);background:var(--error-dim);border-radius:var(--radius);border-left:3px solid var(--error);padding:.625rem 1rem;font-size:.8125rem}.trading-status-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.trading-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.trading-card-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);margin-bottom:.375rem;font-size:.625rem}.trading-card-value{font-family:var(--mono);color:var(--text-h);font-size:1rem;font-weight:600}.status-running{color:var(--accent)!important}.status-stopped{color:var(--text-dim)!important}.status-paper{color:#f59e0b!important}.badge-paper{color:#f59e0b;background:#f59e0b26;border:1px solid #f59e0b4d}.badge-live{background:var(--accent-dim);color:var(--accent);border:1px solid #00ff8840}.pnl-positive{color:#0f8!important}.pnl-negative{color:#f46!important}.trading-positions h2{margin-bottom:.75rem}.trading-table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.trading-table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:.8125rem}.trading-table th{text-align:left;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);background:var(--bg-card);border-bottom:1px solid var(--border);white-space:nowrap;padding:.625rem 1rem;font-size:.625rem}.trading-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:.625rem 1rem}.trading-table tr:last-child td{border-bottom:none}.row-ce{background:#00ff8808}.row-pe{background:#ff446608}.badge{letter-spacing:.06em;border-radius:3px;padding:.125rem .5rem;font-size:.6875rem;font-weight:700;display:inline-block}.badge-ce{background:var(--accent-dim);color:var(--accent);border:1px solid #00ff8840}.badge-pe{background:var(--error-dim);color:var(--error);border:1px solid #ff446640}.mono{font-family:var(--mono)}.dim{color:var(--text-dim)}.trading-logs h2{margin-bottom:.75rem}.trading-log-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;max-height:320px;display:flex;overflow-y:auto}.trading-log-entry{border-bottom:1px solid var(--border);font-family:var(--mono);align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.75rem;display:flex}.trading-log-entry:last-child{border-bottom:none}.log-time{color:var(--text-dim);flex-shrink:0;font-size:.6875rem}.log-badge{letter-spacing:.08em;border-radius:2px;flex-shrink:0;padding:.0625rem .375rem;font-size:.5625rem;font-weight:700}.log-badge-info{color:#08f;background:#0088ff1a}.log-badge-order{background:var(--accent-dim);color:var(--accent)}.log-badge-error{background:var(--error-dim);color:var(--error)}.log-msg{color:var(--text)}.trading-profile h2{margin-bottom:.75rem}.trading-tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:.5rem;display:flex}.trading-tab{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.75rem 1.5rem;font-size:.8125rem;font-weight:600;transition:color .2s,border-color .2s;position:relative}.trading-tab:hover{color:var(--text)}.trading-tab-active{color:var(--accent);border-bottom-color:var(--accent)}.tab-badge{background:var(--accent);min-width:18px;height:18px;color:var(--bg);vertical-align:middle;border-radius:9px;justify-content:center;align-items:center;margin-left:6px;padding:0 5px;font-size:.625rem;font-weight:700;display:inline-flex}.strategy-launcher{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.launcher-grid{flex-direction:column;gap:1.25rem;display:flex}.launcher-heading{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);margin-bottom:.75rem;font-size:.6875rem}.strategy-picker{flex-wrap:wrap;gap:.5rem;display:flex}.strategy-pick{font-family:var(--mono);letter-spacing:.03em;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;padding:.5rem 1rem;font-size:.75rem;font-weight:600;transition:all .2s}.strategy-pick:hover{border-color:var(--border-focus);color:var(--text)}.strategy-pick-active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.launcher-controls{background:0 0;border:none;padding:0}.launcher-actions{justify-content:flex-end;display:flex}.strategy-cards{flex-direction:column;gap:.75rem;display:flex}.strategy-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s;overflow:hidden}.strategy-card-running{border-left:3px solid var(--accent)}.strategy-card-stopped{border-left:3px solid var(--text-dim)}.strategy-card-header{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.strategy-card-header:hover{background:#ffffff05}.strategy-card-identity{align-items:center;gap:.625rem;display:flex}.strategy-card-metrics{flex:1;justify-content:center;gap:1.5rem;display:flex}.metric{flex-direction:column;align-items:center;gap:.125rem;display:flex}.metric-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:.5625rem}.metric-value{font-family:var(--mono);color:var(--text-h);font-size:.9375rem;font-weight:600}.strategy-card-expand{color:var(--text-dim);flex-shrink:0;font-size:.875rem}.strategy-card-body{border-top:1px solid var(--border);padding:0 1.25rem 1.25rem}.strategy-card-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.config-id{font-size:.6875rem}.pulse-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.5s ease-in-out infinite pulse-glow;display:inline-block}@keyframes pulse-glow{0%,to{opacity:1;box-shadow:0 0 4px var(--accent)}50%{opacity:.4;box-shadow:0 0 8px var(--accent)}}.empty-state{color:var(--text-dim);font-family:var(--mono);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.empty-icon{opacity:.3;font-size:2rem}.badge-strategy{color:#08f;background:#0088ff1a;border:1px solid #0088ff40}.badge-buy{background:var(--accent-dim);color:var(--accent);border:1px solid #00ff8840}.badge-sell{background:var(--error-dim);color:var(--error);border:1px solid #ff446640}.pnl-dashboard{flex-direction:column;gap:1.25rem;display:flex}.pnl-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.pnl-header h2{margin:0}.pnl-summary-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;display:grid}.pnl-summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:1rem 1.25rem}.pnl-total{border:1px solid var(--accent);background:var(--accent-dim)}.pnl-summary-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:.375rem;font-size:.5625rem}.pnl-summary-value{font-family:var(--mono);font-size:1.25rem;font-weight:700}.pnl-summary-count{font-family:var(--mono);color:var(--text-dim);margin-top:.25rem;font-size:.6875rem}.pnl-table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.toggle-switch{cursor:pointer;width:40px;height:22px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{background:var(--bg-input);border:1px solid var(--border);border-radius:11px;transition:background .2s,border-color .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--text-dim);border-radius:50%;width:16px;height:16px;transition:transform .2s,background .2s;position:absolute;bottom:2px;left:2px}.toggle-switch input:checked+.toggle-slider{background:var(--accent-dim);border-color:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{background:var(--accent);transform:translate(18px)}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;min-width:360px;max-width:480px;padding:1.5rem 2rem}.modal-card h2{margin:0;font-size:1.125rem}
