:root{--sidebar-width:240px;--font-sans:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Courier New",monospace;--bg-primary:#0e1525;--bg-secondary:#151c2f;--bg-elevated:#1c2438;--bg-hover:#232c44;--border-color:#ffffff0f;--border-strong:#ffffff1f;--text-primary:#e7ecf3;--text-secondary:#9aa3b2;--text-muted:#6b7384;--accent:#4f7aff;--accent-hover:#6589ff;--accent-soft:#4f7aff24;--green:#2ecc71;--green-soft:#2ecc7124;--red:#ff5c70;--red-soft:#ff5c7024;--yellow:#f0b440;--yellow-soft:#f0b44024;--text-xs:0.75rem;--text-sm:0.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #0000004d}*{box-sizing:border-box}#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0e1525;background:var(--bg-primary);color:#e7ecf3;color:var(--text-primary);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:.875rem;font-size:var(--text-sm);line-height:1.5;margin:0}a{color:#4f7aff;color:var(--accent);text-decoration:none}a:hover{color:#6589ff;color:var(--accent-hover)}button{font-family:inherit}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Courier New,monospace;font-family:var(--font-mono)}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-thumb{background:#ffffff1f;background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-track{background:#0000}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:#fff;border-radius:20px;box-shadow:0 20px 40px #0003;max-width:400px;padding:2.5rem;width:100%}.login-header{margin-bottom:1.75rem;text-align:center}.login-icon{font-size:60px;line-height:1;margin-bottom:.5rem}.login-icon.icon-2fa{color:#6366f1}.login-header h3{color:#1f2937;font-size:1.5rem;font-weight:600;margin:.75rem 0 .25rem}.login-header p{color:#6b7280;font-size:.95rem;margin:0}.login-form{gap:1.25rem}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:#374151;font-size:.875rem;font-weight:500}.input-group{align-items:stretch;display:flex}.input-icon{align-items:center;background:#0000;border:2px solid #e0e0e0;border-radius:10px 0 0 10px;border-right:none;display:inline-flex;font-size:1.1rem;height:44px;justify-content:center;width:42px}.input-group input{border:2px solid #e0e0e0;border-left:none;border-radius:0 10px 10px 0;flex:1 1;font-size:.95rem;padding:.75rem;transition:border-color .2s,box-shadow .2s}.input-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1f;outline:none}.input-group input:disabled{background-color:#f3f4f6;cursor:not-allowed}.error-message{background-color:#fee2e2;border-radius:8px;color:#dc2626;font-size:.875rem;margin-bottom:1rem;padding:.75rem;text-align:center}.login-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem;transition:transform .2s,box-shadow .2s;width:100%}.login-button:hover:not(:disabled){box-shadow:0 10px 20px #667eea4d;transform:translateY(-2px)}.login-button:disabled{background:#9ca3af;cursor:not-allowed}.login-button-secondary{background:#e2e8f0;color:#475569;margin-top:1.25rem}.login-button-secondary:hover:not(:disabled){background:#cbd5e1;box-shadow:0 10px 20px #0000000d}.login-waiting{align-items:center;color:#64748b;display:flex;flex-direction:column;font-size:.95rem;gap:1rem;margin:1.5rem 0}.spinner{animation:spin .8s linear infinite;border:4px solid #e0e7ff;border-radius:50%;border-top-color:#667eea;height:3rem;width:3rem}@keyframes spin{to{transform:rotate(1turn)}}.login-divider{border:none;border-top:1px solid #e5e7eb;margin:1.5rem 0 1rem}.login-secure{align-items:center;color:#6b7280;display:flex;font-size:.8125rem;gap:.5rem;justify-content:center}@media (max-width:480px){.login-card{border-radius:14px;padding:1.75rem 1.25rem}.login-icon{font-size:48px}.login-header h3{font-size:1.25rem}.input-icon{height:42px;width:38px}.input-group input{font-size:16px;padding:.65rem .75rem}}.layout{background:var(--bg-primary)}.layout,.layout-loading{display:flex;height:100vh}.layout-loading{align-items:center;justify-content:center}.layout-main{display:flex;flex:1 1;flex-direction:column;min-width:0}.page-content{flex:1 1;overflow-y:auto;padding:1.5rem 2rem}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;width:var(--sidebar-width)}.sidebar-brand{border-bottom:1px solid var(--border-color);gap:.75rem;padding:1.1rem 1.25rem}.brand-logo,.sidebar-brand{align-items:center;display:flex}.brand-logo{background:var(--accent-soft);border-radius:10px;color:var(--accent);font-size:1.25rem;height:38px;justify-content:center;width:38px}.brand-title{color:var(--text-primary);font-size:var(--text-md);font-weight:700}.brand-sub{color:var(--text-muted);font-size:var(--text-xs)}.sidebar-balance{border-bottom:1px solid var(--border-color);padding:1rem 1.25rem}.balance-label{align-items:center;color:var(--text-muted);display:flex;font-size:var(--text-xs);justify-content:space-between;letter-spacing:.05em;text-transform:uppercase}.balance-eye{align-items:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:inline-flex;justify-content:center;margin-left:.5rem;padding:0;transition:color .15s}.balance-eye:hover,.balance-value{color:var(--text-primary)}.balance-value{font-size:var(--text-2xl);font-weight:700;margin-top:.25rem}.balance-split{color:var(--text-secondary);display:flex;font-size:var(--text-xs);justify-content:space-between;margin-top:.5rem}.sidebar-nav{flex:1 1;overflow-y:auto;padding:.75rem .5rem}.nav-item{align-items:center;border-radius:var(--radius-md);color:var(--text-secondary);display:flex;font-size:var(--text-sm);font-weight:500;gap:.75rem;margin-bottom:2px;padding:.65rem .8rem;transition:background-color .1s,color .1s}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item--active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-icon{font-size:1.1rem;text-align:center;width:1.25rem}.sidebar-footer{border-top:1px solid var(--border-color);padding:.75rem}.logout-btn{background:#0000;border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm);padding:.6rem;transition:all .15s;width:100%}.logout-btn:hover{background:var(--red-soft);border-color:#0000;color:var(--red)}.topbar{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;gap:1rem;padding:.85rem 2rem}.mobile-menu-btn{background:#0000;border:none;color:var(--text-primary);cursor:pointer;display:none;font-size:1.4rem}.page-title{font-size:var(--text-lg);font-weight:700;margin:0}.topbar-right{gap:.75rem;margin-left:auto}.topbar-right,.user-chip{align-items:center;display:flex}.user-chip{background:var(--bg-elevated);border-radius:var(--radius-md);gap:.5rem;padding:.4rem .7rem}.user-avatar{align-items:center;background:linear-gradient(135deg,var(--accent),#6589ff);border-radius:50%;color:#fff;display:flex;font-size:.75rem;font-weight:700;height:26px;justify-content:center;width:26px}.user-name{color:var(--text-primary);font-size:var(--text-sm)}.sidebar-backdrop{display:none}@media (max-width:768px){.sidebar{height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .2s ease;z-index:50}.sidebar--open{transform:translateX(0)}.sidebar-backdrop{background:#00000080;display:block;inset:0;position:fixed;z-index:40}.mobile-menu-btn{display:block}.page-content{padding:1rem}.topbar{padding:.75rem 1rem}}.card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem}.card-title{color:var(--text-primary);font-size:var(--text-md);font-weight:600;margin:0 0 .75rem}.card-subtitle{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.grid{grid-gap:1rem;display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat-card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem 1.1rem}.stat-label{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase}.stat-value{color:var(--text-primary);font-size:var(--text-2xl);font-weight:700;margin-top:.35rem}.stat-value.positive{color:var(--green)}.stat-value.negative{color:var(--red)}.stat-sub{color:var(--text-secondary);font-size:var(--text-xs);margin-top:.25rem}.table-wrap{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow-x:auto}.data-table{border-collapse:collapse;font-size:var(--text-sm);width:100%}.data-table thead{background:var(--bg-elevated)}.data-table td,.data-table th{border-bottom:1px solid var(--border-color);padding:.6rem .85rem;text-align:left;white-space:nowrap}.data-table th{color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table td.num,.data-table th.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.badge{border-radius:999px;display:inline-block;font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;padding:.15rem .55rem;text-transform:uppercase}.badge-bull,.badge-long{background:var(--green-soft);color:var(--green)}.badge-bear,.badge-short{background:var(--red-soft);color:var(--red)}.badge-open{background:var(--accent-soft);color:var(--accent)}.badge-closed{background:var(--bg-hover);color:var(--text-secondary)}.badge-warning{background:var(--yellow-soft);color:var(--yellow)}.btn{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:600;padding:.55rem 1rem;transition:background .15s,border-color .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text-primary)}.btn-ghost:hover{background:var(--bg-hover)}.btn-danger{background:var(--red-soft);color:var(--red)}.btn-danger:hover{background:var(--red);color:#fff}.empty{font-size:var(--text-sm);padding:3rem 1rem;text-align:center}.empty,.muted{color:var(--text-muted)}.flex-row{align-items:center}.flex-row,.flex-wrap{display:flex;gap:.5rem}.flex-wrap{flex-wrap:wrap}.spacer{flex:1 1}.value-positive{color:var(--green)}.value-negative{color:var(--red)}input,select,textarea{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);outline:none;padding:.55rem .75rem}input:focus,select:focus,textarea:focus{border-color:var(--accent)}label{color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.dashboard-page{display:flex;flex-direction:column;gap:1.25rem}.dashboard-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.ticker-strip{gap:1rem;padding:.6rem 1rem}.ticker-status,.ticker-strip{align-items:center;display:flex}.ticker-status{border:1px solid var(--border-color);border-radius:999px;font-size:var(--text-xs);font-weight:700;gap:.4rem;letter-spacing:.06em;padding:.25rem .55rem}.ticker-status.on{background:var(--green-soft);color:var(--green)}.ticker-status.off{background:var(--red-soft);color:var(--red)}.ticker-dot{background:currentColor;border-radius:50%;box-shadow:0 0 6px currentColor;height:7px;width:7px}.ticker-status.on .ticker-dot{animation:pulse 1.4s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.ticker-symbols{display:flex;flex:1 1;flex-wrap:wrap;gap:.4rem}.ticker-item{align-items:flex-start;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;gap:2px;min-width:88px;padding:.35rem .75rem;transition:border-color .1s,background .1s}.ticker-item:hover{border-color:var(--border-strong)}.ticker-item--active{background:var(--accent-soft);border-color:var(--accent)}.ticker-symbol{color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em}.ticker-item--active .ticker-symbol{color:var(--accent)}.ticker-item--observe{opacity:.78}.ticker-tag{background:var(--bg-hover);border-radius:4px;color:var(--text-muted);font-size:.62rem;font-weight:500;letter-spacing:0;margin-left:.3rem;padding:1px 5px;text-transform:uppercase}.ticker-price{font-feature-settings:"tnum";color:var(--text-primary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:700}.chart-card{display:flex;flex-direction:column;min-height:460px}.chart-header{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-bottom:.75rem}.chart-header-left{align-items:baseline;display:flex;gap:.75rem}.chart-price{font-feature-settings:"tnum";color:var(--text-primary);font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:700}.timeframe-switcher{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;gap:2px;padding:2px}.tf-pill{background:#0000;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:var(--text-xs);font-weight:600;min-width:36px;padding:.3rem .6rem;transition:background .1s,color .1s}.tf-pill:hover{color:var(--text-primary)}.tf-pill--active{background:var(--accent);color:#fff}.tf-pill--active:hover{color:#fff}.chart-area-wrap{flex:1 1;min-height:400px;position:relative}.chart-area,.chart-loading{inset:0;position:absolute}.chart-loading{align-items:center;background:#0e152566;display:flex;justify-content:center;z-index:1}.dashboard-right{display:flex;flex-direction:column;gap:1rem;min-width:0}.positions-card .card-title{align-items:center;display:flex;justify-content:space-between}.positions-count{background:var(--accent-soft);border-radius:999px;color:var(--accent);font-size:var(--text-xs);font-weight:700;padding:2px 8px}.positions-list{gap:.5rem}.position-row,.positions-list{display:flex;flex-direction:column}.position-row{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--text-sm);gap:.3rem;padding:.55rem .7rem}.position-head{align-items:center;display:flex;gap:.45rem}.position-meta,.position-tpsl{color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:var(--text-xs);gap:.75rem}.position-meta b{color:var(--text-primary);font-weight:600}.position-tpsl span{font-weight:600}.signals-list{display:flex;flex-direction:column;gap:.4rem}.signal-row{grid-gap:.75rem;align-items:center;background:var(--bg-elevated);border-radius:var(--radius-md);display:grid;font-size:var(--text-sm);gap:.75rem;grid-template-columns:1fr auto auto;padding:.55rem .6rem}.signal-symbol{align-items:center;display:flex;gap:.5rem;min-width:0}.signal-price{font-feature-settings:"tnum";color:var(--text-secondary);font-variant-numeric:tabular-nums}.signal-conf{color:var(--accent);font-weight:700}@media (max-width:1080px){.dashboard-grid{grid-template-columns:1fr}}.settings-page{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:220px 1fr}.settings-tabs{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:.25rem;height:-webkit-fit-content;height:fit-content;padding:.5rem;position:-webkit-sticky;position:sticky;top:1rem}.settings-tab{background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm);font-weight:500;padding:.6rem .75rem;text-align:left;transition:all .1s}.settings-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-tab--active{background:var(--accent-soft);color:var(--accent);font-weight:600}.settings-panel{min-width:0}.settings-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.symbol-checks{display:flex;flex-wrap:wrap;gap:.4rem}.symbol-check{align-items:center;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:var(--text-sm);gap:.45rem;padding:.4rem .75rem;transition:border-color .1s,background .1s;-webkit-user-select:none;user-select:none}.symbol-check:hover{border-color:var(--border-strong)}.symbol-check--on{background:var(--accent-soft);border-color:var(--accent)}.symbol-check input[type=checkbox]{accent-color:var(--accent);cursor:pointer;margin:0}.symbol-check-label{color:var(--text-primary);font-weight:600;letter-spacing:.02em}.symbol-check--on .symbol-check-label{color:var(--accent)}.symbol-check .ticker-tag{background:var(--bg-hover);border-radius:4px;color:var(--text-muted);font-size:.62rem;font-weight:500;padding:1px 5px;text-transform:uppercase}.form-row{display:flex;flex-direction:column;gap:.4rem}.toggle-row{align-items:center;flex-direction:row;justify-content:space-between}.toggle{cursor:pointer;display:inline-block;height:24px;position:relative;width:44px}.toggle input{display:none}.toggle-slider{background:var(--bg-hover);border-radius:999px;inset:0;position:absolute;transition:background .15s}.toggle-slider:before{background:#fff;border-radius:50%;content:"";height:18px;left:3px;position:absolute;top:3px;transition:transform .15s;width:18px}.toggle input:checked+.toggle-slider{background:var(--accent)}.toggle input:checked+.toggle-slider:before{transform:translateX(20px)}@media (max-width:768px){.settings-page{grid-template-columns:1fr}.settings-tabs{flex-direction:row;overflow-x:auto;position:static}}.clients-page{padding:0}.clients-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.clients-header h2{font-size:1.25rem;margin:0}.clients-loading{color:#888;padding:40px;text-align:center}.clients-table-wrap{overflow-x:auto}.clients-table{border-collapse:collapse;font-size:.875rem;width:100%}.clients-table th{background:#1a1a2e;color:#8b8b9e;font-weight:500;text-align:left}.clients-table td,.clients-table th{padding:10px 12px;white-space:nowrap}.clients-table td{border-bottom:1px solid #1e1e3a}.clients-table tr:hover{background:#ffffff08}.row-expired{opacity:.5}.client-name{font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis}.date-cell{color:#8b8b9e;font-size:.8rem}.badge{border-radius:4px;font-size:.8rem;padding:2px 8px}.badge-ok{background:#22c55e26;color:#22c55e}.badge-expired{background:#ef444426;color:#ef4444}.chat-btn{background:none;border:1px solid #3b3b5c;border-radius:6px;cursor:pointer;font-size:1rem;padding:4px 10px;transition:background .15s}.chat-btn:hover{background:#6366f133}.chat-modal-backdrop{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.chat-modal{background:#16162a;border-radius:12px;max-width:480px;padding:24px;width:90%}.chat-modal-header{font-weight:600;margin-bottom:12px}.chat-textarea{background:#1a1a2e;border:1px solid #3b3b5c;border-radius:8px;color:#e2e2ef;font-size:.9rem;padding:10px;resize:vertical;width:100%}.chat-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.btn-cancel{background:#2a2a4a;color:#8b8b9e}.btn-cancel,.btn-send{border:none;border-radius:6px;cursor:pointer;padding:8px 16px}.btn-send{background:#6366f1;color:#fff}.btn-send:disabled{cursor:not-allowed;opacity:.5}.actions-cell{display:flex;gap:6px}.edit-btn{background:none;border:1px solid #3b3b5c;border-radius:6px;cursor:pointer;font-size:1rem;padding:4px 10px;transition:background .15s}.edit-btn:hover{background:#6366f133}.edit-modal{max-width:540px}.edit-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.edit-grid label{color:#8b8b9e;display:flex;flex-direction:column;font-size:.8rem;gap:4px}.edit-grid input,.edit-grid select{background:#1a1a2e;border:1px solid #3b3b5c;border-radius:8px;color:#e2e2ef;font-size:.9rem;padding:8px 10px}.edit-grid .edit-checkbox{align-items:center;color:#e2e2ef;flex-direction:row;font-size:.9rem;gap:8px;grid-column:1/-1}.edit-grid .edit-checkbox input{width:auto}