.login-screen{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr;background:var(--bg-app)}@media (max-width: 900px){.login-screen{grid-template-columns:1fr}.login-brand{display:none}}.login-brand{position:relative;padding:56px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 15% 10%,rgba(0,208,156,.14),transparent 45%),var(--bg-surface);border-right:1px solid var(--border);overflow:hidden}.login-brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(to top,transparent 0,transparent 39px,rgba(255,255,255,.025) 40px);pointer-events:none}.brand-mark{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:-.01em;z-index:1}.brand-mark .dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.brand-copy{z-index:1;max-width:460px}.brand-copy h1{font-size:34px;line-height:1.2;margin-bottom:14px}.brand-copy p{color:var(--text-secondary);font-size:15px;line-height:1.6}.brand-steps{z-index:1;display:flex;flex-direction:column;gap:18px;margin-top:36px}.brand-step{display:flex;gap:14px;align-items:flex-start}.brand-step-index{flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:12px;color:var(--text-secondary)}.brand-step-text h4{font-size:14px;margin-bottom:2px}.brand-step-text p{font-size:13px;color:var(--text-tertiary);line-height:1.5}.brand-footnote{z-index:1;font-size:12px;color:var(--text-tertiary);border-top:1px solid var(--border);padding-top:16px;line-height:1.6}.login-form-panel{display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-card{width:100%;max-width:400px}.login-card h2{font-size:22px;margin-bottom:6px}.login-card .subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:28px}.field{margin-bottom:18px}.field label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:7px}.field .hint{font-size:12px;color:var(--text-tertiary);margin-top:6px;line-height:1.5}.field input,.field select{width:100%;background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-md);padding:11px 13px;font-size:14px;font-family:var(--font-mono);transition:border-color .15s ease,background .15s ease}.field input::placeholder{color:var(--text-tertiary);font-family:var(--font-body)}.field input:hover,.field select:hover{border-color:var(--border-strong)}.field input:focus,.field select:focus{border-color:var(--accent);background:var(--bg-elevated)}.link-button{background:none;border:none;padding:0;color:var(--accent);font-size:12px;font-family:var(--font-body);cursor:pointer;text-decoration:underline}.link-button:hover{color:var(--accent-dim)}.login-button{width:100%;background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-md);padding:13px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .1s ease,background .15s ease,opacity .15s ease;margin-top:6px}.login-button:hover:not(:disabled){background:var(--accent-dim)}.login-button:active:not(:disabled){transform:scale(.99)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-alert{display:flex;gap:10px;align-items:flex-start;background:var(--negative-soft);border:1px solid rgba(255,92,92,.35);color:#ffb3b3;border-radius:var(--radius-md);padding:12px 14px;font-size:13px;line-height:1.5;margin-bottom:18px}.login-checking{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:14px;gap:10px}.dashboard{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100%}.mobile-nav-toggle,.sidebar-backdrop{display:none}@media (max-width: 800px){.dashboard{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(78vw,280px);z-index:200;transform:translate(-100%);transition:transform .2s ease;box-shadow:var(--shadow-elevated)}.sidebar.mobile-open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0406098c;z-index:190}.mobile-nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);font-size:16px;cursor:pointer;margin-right:12px;flex-shrink:0}.mobile-nav-toggle:hover{border-color:var(--border-strong)}.topbar h1{font-size:16px}}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:22px 14px}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:6px 10px 26px;font-weight:700;font-size:15px}.sidebar-brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.sidebar-nav,.sidebar-section{display:flex;flex-direction:column;gap:2px}.sidebar-separator{height:1px;background:var(--border);margin:14px 10px 12px}.sidebar-section-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--section-color, var(--text-tertiary));padding:4px 12px 8px}.nav-section-core{--section-color: var(--accent);--section-color-soft: var(--accent-soft);--section-color-border: rgba(0, 208, 156, .25)}.nav-section-strategies{--section-color: #4dabf7;--section-color-soft: rgba(77, 171, 247, .12);--section-color-border: rgba(77, 171, 247, .25)}.nav-section-system{--section-color: #f5a623;--section-color-soft: rgba(245, 166, 35, .12);--section-color-border: rgba(245, 166, 35, .25)}.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;background:transparent;text-align:left;width:100%}.sidebar-link:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-link.active{background:var(--section-color-soft, var(--accent-soft));color:var(--section-color, var(--accent));border-color:var(--section-color-border, rgba(0, 208, 156, .25))}.sidebar-link .icon{font-size:15px;width:18px;text-align:center}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--border)}.logout-button{width:100%;background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:10px 12px;border-radius:var(--radius-md);font-size:13px;cursor:pointer}.logout-button:hover{border-color:var(--negative);color:#ffb3b3}.main-column{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--border)}.topbar h1{font-size:19px}.topbar .user-chip{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-secondary)}.topbar .avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;font-family:var(--font-mono)}.ticker-strip{display:flex;align-items:center;gap:22px;padding:10px 28px;background:var(--bg-surface);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:13px;overflow-x:auto}.ticker-item{display:flex;align-items:center;gap:8px;white-space:nowrap}.ticker-item .label{color:var(--text-tertiary);font-family:var(--font-body);font-size:12px}.ticker-item .value{color:var(--text-primary);font-weight:600}.ticker-item .value.up{color:var(--positive)}.ticker-item .value.down{color:var(--negative)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--positive);box-shadow:0 0 #00d09c99;animation:pulse 1.8s infinite}.live-dot.stale{background:var(--text-tertiary);animation:none}@keyframes pulse{0%{box-shadow:0 0 #00d09c8c}70%{box-shadow:0 0 0 7px #00d09c00}to{box-shadow:0 0 #00d09c00}}.tab-content{flex:1;padding:28px;overflow-y:auto}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:14px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:32px}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:border-color .15s ease}.stat-card:hover{border-color:var(--border-strong)}.stat-card .stat-label{font-size:12px;color:var(--text-tertiary);margin-bottom:10px;display:flex;align-items:center;gap:8px}.stat-card .stat-value{font-size:22px;font-weight:600;font-family:var(--font-mono)}.stat-card .stat-sub{margin-top:6px;font-size:13px;color:var(--text-secondary)}.stat-card.accent{background:linear-gradient(160deg,var(--accent-soft),var(--bg-surface) 60%);border-color:#00d09c4d}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill{padding:6px 12px;border-radius:999px;background:var(--bg-elevated);border:1px solid var(--border);font-size:12px;font-family:var(--font-mono);color:var(--text-secondary)}.info-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px}.placeholder-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:80px 20px;color:var(--text-tertiary);border:1px dashed var(--border-strong);border-radius:var(--radius-lg)}.placeholder-panel .icon{font-size:26px}.state-message{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:14px;padding:40px 0}.error-box{background:var(--negative-soft);border:1px solid rgba(255,92,92,.35);color:#ffb3b3;border-radius:var(--radius-md);padding:14px 16px;font-size:13px;margin-bottom:20px}.success-box{background:var(--accent-soft);border:1px solid rgba(0,208,156,.3);color:var(--positive);border-radius:var(--radius-md);padding:14px 16px;font-size:13px;margin-bottom:20px}.warning-box{background:#f5a6231f;border:1px solid rgba(245,166,35,.35);color:var(--warning);border-radius:var(--radius-md);padding:14px 16px;font-size:13px;margin-bottom:20px;line-height:1.6}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.refresh-button{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);padding:7px 12px;border-radius:var(--radius-md);font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.refresh-button:hover{color:var(--text-primary);border-color:var(--border-strong)}.tab-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.tab-header .row-count{font-size:13px;color:var(--text-tertiary)}.table-wrap{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.data-table th{text-align:left;padding:12px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600;border-bottom:1px solid var(--border);background:var(--bg-elevated);position:sticky;top:0}.data-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text-primary);font-family:var(--font-mono)}.data-table td.up{color:var(--positive)}.data-table td.down{color:var(--negative)}.data-table td.text-col{font-family:var(--font-body)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table .symbol-cell{font-family:var(--font-body);font-weight:600;color:var(--text-primary)}.data-table .symbol-exchange{font-family:var(--font-body);font-size:11px;color:var(--text-tertiary);margin-left:6px;font-weight:400}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;font-family:var(--font-body);letter-spacing:.02em}.badge-buy{background:var(--accent-soft);color:var(--positive)}.badge-sell{background:var(--negative-soft);color:var(--negative)}.badge-status-complete{background:var(--accent-soft);color:var(--positive)}.badge-status-rejected,.badge-status-cancelled{background:var(--negative-soft);color:var(--negative)}.badge-status-pending,.badge-status-open,.badge-status-trigger{background:#f5a62324;color:var(--warning)}.badge-status-default{background:var(--bg-elevated);color:var(--text-secondary)}.badge-carried-over{background:#4dabf724;color:#4dabf7}.text-carried-over{color:#4dabf7}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:60px 20px;color:var(--text-tertiary);text-align:center}.empty-state .icon{font-size:24px}.scan-form{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:24px}.scan-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:16px}.scan-form .field{margin-bottom:0;min-width:0}.scan-button{width:auto;padding:11px 22px}.scan-notes{margin-top:16px;font-size:12px;color:var(--text-tertiary);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px}.scan-notes summary{cursor:pointer;color:var(--text-secondary)}.scan-notes p{margin-top:8px;line-height:1.6;word-break:break-word}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#040609a6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal-card{width:100%;max-width:440px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);overflow:hidden}.modal-card-wide{max-width:min(1100px,96vw);max-height:88vh;display:flex;flex-direction:column}.modal-card-wide .modal-body{overflow:auto;flex:1 1 auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:16px}.modal-close{background:transparent;border:none;color:var(--text-tertiary);font-size:14px;cursor:pointer;padding:4px}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:20px 22px}.modal-footer{display:flex;gap:10px;padding:16px 22px;border-top:1px solid var(--border)}.modal-footer .login-button{margin-top:0}.modal-footer .logout-button{width:auto;padding:11px 16px}.login-button.danger{background:var(--negative);color:#2a0a0a}.login-button.danger:hover:not(:disabled){background:#ff7a7a}.review-symbol-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.quote-line{display:flex;align-items:center;justify-content:space-between;font-size:14px;padding:10px 0;border-bottom:1px solid var(--border);margin-bottom:16px}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.review-grid select{width:100%;background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-md);padding:11px 13px;font-size:14px}.review-grid select:focus{border-color:var(--accent)}.estimate-row{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:14px;border-top:1px solid var(--border);font-size:14px}.order-success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:10px 0 4px}.order-success .icon{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--positive);display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:6px}.straddle-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.straddle-badges{display:flex;flex-wrap:wrap;gap:8px}.straddle-badges .pill strong{color:var(--text-primary);font-weight:600;margin-left:4px}.straddle-actions{display:flex;gap:8px}.indicator-toggles{display:flex;gap:10px;margin-bottom:14px}.toggle-chip{display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;background:var(--bg-elevated);border:1px solid var(--border);font-size:12px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-chip input{accent-color:var(--accent);cursor:pointer}.chart-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;margin-bottom:18px}.signal-row{display:flex;align-items:center;margin-bottom:8px}.signal-current{display:flex;align-items:center;gap:10px}.locked-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px}.locked-result-grid .stat-label{font-size:12px;color:var(--text-tertiary);margin-bottom:6px}.locked-result-grid .mono{font-size:15px;font-weight:600}.master-switch-card{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;margin-bottom:24px}.master-switch-card.is-armed{border-color:#00d09c59}.master-switch-card.is-armed-live{border-color:#ff5c5c66;background:linear-gradient(160deg,var(--negative-soft),var(--bg-surface) 65%)}.master-switch-status{display:flex;align-items:center;gap:14px}.master-switch-status .badge{font-size:13px;padding:6px 14px}.mode-toggle{display:inline-flex;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;max-width:100%}.mode-toggle button{background:var(--bg-elevated);border:none;color:var(--text-secondary);padding:9px 16px;font-size:12px;font-weight:600;cursor:pointer}.mode-toggle button+button{border-left:1px solid var(--border)}.mode-toggle button.active{background:var(--accent-soft);color:var(--accent)}.mode-toggle button.active.live{background:#ff5c5c29;color:var(--negative)}.settings-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:16px}.settings-form-grid .field{margin-bottom:0}.position-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px}.position-grid .stat-label{font-size:12px;color:var(--text-tertiary);margin-bottom:6px}.position-grid .mono{font-size:15px;font-weight:600}.strategy-checklist{display:flex;flex-direction:column;gap:10px}.strategy-check-row{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);cursor:pointer}.strategy-check-row input{margin-top:3px;accent-color:var(--accent);cursor:pointer}.strategy-check-label{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:3px}:root{--bg-app: #0b0f14;--bg-surface: #10151b;--bg-elevated: #1a2129;--bg-hover: #212a33;--bg-input: #161d24;--border: #232c36;--border-strong: #333e4a;--text-primary: #e8ecf1;--text-secondary: #8b96a5;--text-tertiary: #5b6572;--accent: #00d09c;--accent-dim: #00a67d;--accent-soft: rgba(0, 208, 156, .12);--accent-text: #04120d;--positive: #00d09c;--negative: #ff5c5c;--negative-soft: rgba(255, 92, 92, .12);--warning: #f5a623;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Consolas, monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-elevated: 0 8px 30px rgba(0, 0, 0, .45);--shadow-soft: 0 2px 10px rgba(0, 0, 0, .25);--sidebar-width: 240px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg-app);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0}a{color:inherit}button,input{font-family:inherit}::selection{background:var(--accent-soft);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.mono{font-family:var(--font-mono)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.up{color:var(--positive)}.down{color:var(--negative)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
