*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0f0f1a;--bg-secondary:#1a1a2e;--bg-tertiary:#16213e;--text-primary:#e0e0e0;--text-secondary:#888;--accent-green:#26a69a;--accent-red:#ef5350;--border-color:#2a2a4a;--header-height:56px}body{background:var(--bg-primary);color:var(--text-primary);height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}button{touch-action:manipulation}.app{flex-direction:column;height:100dvh;display:flex}.header{height:var(--header-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:10;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.header-left{align-items:center;gap:20px;display:flex}.logo{color:var(--accent-green);white-space:nowrap;font-size:18px;font-weight:700}.index-buttons{gap:8px;display:flex}.index-btn{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:6px;flex-direction:column;padding:6px 14px;transition:all .2s;display:flex}.index-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-green)}.index-btn.active{border-color:var(--accent-green);background:#26a69a26}.index-name{font-size:12px;font-weight:600}.index-value{font-size:11px;font-weight:500}.index-value.positive{color:var(--accent-green)}.index-value.negative{color:var(--accent-red)}.index-change{opacity:.8;margin-left:6px;font-size:10px}.auth-btn{border:1px solid var(--accent-green);color:var(--accent-green);cursor:pointer;background:0 0;border-radius:6px;padding:8px 20px;font-size:13px;font-weight:600;transition:all .2s}.auth-btn:hover{background:var(--accent-green);color:#000}.main-content{flex:1;display:flex;overflow:hidden}.left-panel{background:var(--bg-secondary);border-right:1px solid var(--border-color);flex-direction:column;width:25%;min-width:280px;display:flex;overflow-y:auto}.right-panel{background:var(--bg-primary);flex-direction:column;flex:1;display:flex}.empty-state{height:100%;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex}.empty-state p{margin-top:8px;font-size:14px}.empty-state span{opacity:.6;margin-top:4px;font-size:12px}.chart-placeholder{flex-direction:column;align-items:center;gap:12px;display:flex}.panel-header{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);z-index:5;justify-content:space-between;align-items:center;padding:10px 14px;display:flex;position:sticky;top:0}.panel-title{align-items:center;gap:8px;display:flex}.panel-title h3{font-size:13px;font-weight:600}.underlying-value{color:var(--text-secondary);font-size:11px}.panel-meta{color:var(--text-secondary);align-items:center;gap:6px;font-size:10px;display:flex}.loading-dot{color:var(--accent-green);animation:1s infinite pulse}.error-dot{color:var(--accent-red)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.last-update{font-variant-numeric:tabular-nums}.error-banner{text-align:center;background:#ef53501a;border-bottom:1px solid #ef53504d;flex-direction:column;align-items:center;gap:8px;padding:20px;display:flex}.error-banner p{color:var(--accent-red);font-size:13px}.error-banner span{color:var(--text-secondary);font-size:11px}.error-banner button{border:1px solid var(--accent-red);color:var(--accent-red);cursor:pointer;background:0 0;border-radius:4px;padding:6px 16px;font-size:12px}.error-banner button:hover{background:var(--accent-red);color:#fff}.option-section{padding:0}.section-title{text-transform:uppercase;letter-spacing:.5px;justify-content:space-between;align-items:center;padding:8px 14px;font-size:11px;font-weight:700;display:flex}.atm-info{opacity:.7;font-size:10px;font-weight:500}.call-title{color:var(--accent-green);background:#26a69a14}.put-title{color:var(--accent-red);background:#ef535014}.option-header-row{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);grid-template-columns:1fr 1fr 1fr;padding:6px 14px;font-size:10px;display:grid}.option-row{cursor:pointer;border-bottom:1px solid #2a2a4a80;grid-template-columns:1fr 1fr 1fr;padding:8px 14px;transition:background .15s;display:grid}.option-row:hover{background:var(--bg-tertiary)}.option-row.selected{border-left:3px solid var(--accent-green);background:#26a69a1f}.option-row.atm-row{background:#ffffff08}.option-strike-col{align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.strike-num{font-variant-numeric:tabular-nums}.atm-badge{background:var(--accent-green);color:#000;border-radius:2px;padding:1px 4px;font-size:8px;font-weight:700}.option-ltp-col{flex-direction:column;align-items:flex-end;display:flex}.ltp{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.change{font-size:10px;font-weight:500}.change.positive{color:var(--accent-green)}.change.negative{color:var(--accent-red)}.option-signal-col{justify-content:flex-end;align-items:center;display:flex}.signal-badge{letter-spacing:.5px;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:700}.signal-buy{color:var(--accent-green);border:1px solid var(--accent-green);background:#26a69a26}.signal-sell{color:var(--accent-red);border:1px solid var(--accent-red);background:#ef535026}.signal-neutral{color:var(--text-secondary);font-size:11px}.chart-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.chart-option-info{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.chart-option-info h3{font-size:15px;font-weight:700}.chart-price-info{align-items:center;gap:8px;display:flex}.chart-ltp{color:var(--text-secondary);font-size:13px}.chart-ltp strong{color:var(--text-primary)}.chart-change{font-size:12px;font-weight:600}.chart-change.positive{color:var(--accent-green)}.chart-change.negative{color:var(--accent-red)}.chart-stats{align-items:center;gap:16px;display:flex}.stat{flex-direction:column;align-items:center;gap:2px;display:flex}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:9px}.stat-value{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.chart-timeframe{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:4px;padding:4px 10px;font-size:11px;font-weight:600}.chart-container{flex:1;min-height:0}.chart-status-bar{color:var(--text-secondary);border-bottom:1px solid var(--border-color);background:var(--bg-secondary);align-items:center;gap:6px;padding:6px 12px;font-size:11px;display:flex}.chart-status-bar.open{color:var(--accent-green)}.chart-status-bar.closed{color:#888}.chart-status-bar svg{flex-shrink:0}.status-dot{background:var(--accent-green);border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite pulse}.trade-section{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);white-space:nowrap;align-items:center;gap:10px;padding:6px 12px;display:flex;position:relative}.trade-left{align-items:center;gap:8px;min-width:0;display:flex}.trade-divider{background:var(--border-color);flex-shrink:0;width:1px;height:20px}.trade-right{align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.trade-input{border:1px solid var(--border-color);background:var(--bg-primary);width:56px;color:var(--text-primary);border-radius:4px;padding:3px 6px;font-size:13px}.trade-unit,.trade-stat{color:var(--text-secondary);font-size:11px}.trade-stat strong{color:var(--text-primary);font-size:12px}.trade-buy{background:var(--accent-green);color:#fff;cursor:pointer;border:none;border-radius:5px;flex-shrink:0;padding:4px 14px;font-size:13px;font-weight:600}.trade-buy:disabled{opacity:.5;cursor:not-allowed}.trade-position-title{text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.trade-pl{font-size:13px;font-weight:700}.trade-pl.positive{color:var(--accent-green)}.trade-pl.negative{color:var(--accent-red)}.trade-square{background:var(--accent-red);color:#fff;cursor:pointer;border:none;border-radius:5px;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:600}.trade-square:disabled{opacity:.5;cursor:not-allowed}.trade-empty{color:var(--text-secondary);font-size:11px}.trade-toast{z-index:20;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;animation:.15s ease-out toast-in;position:absolute;top:calc(100% + 6px);right:12px;box-shadow:0 4px 16px #0006}.trade-toast.success{background:var(--accent-green);color:#fff}.trade-toast.error{background:var(--accent-red);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){:root{--header-height:50px}.header-left{gap:8px}.logo{font-size:14px}.index-btn{padding:4px 8px}.index-name{font-size:10px}.index-value{font-size:9px}.index-change{display:none}.auth-btn{padding:6px 12px;font-size:12px}.main-content{flex-direction:column}.left-panel{border-right:none;border-bottom:1px solid var(--border-color);width:100%;min-width:0;max-height:45vh}.right-panel{flex:1}.option-row{padding:6px 10px}.option-strike-col,.ltp{font-size:12px}.chart-header{padding:8px 12px}.chart-option-info h3{font-size:13px}.chart-stats{gap:10px}.stat-label{font-size:8px}.stat-value{font-size:11px}}@media (width<=480px){.header{padding:0 10px}.header-left{gap:6px;min-width:0}.logo{font-size:13px}.index-buttons{gap:4px;min-width:0}.index-btn{padding:4px 8px}.index-value{display:none}.user-chip{gap:6px;padding:6px 10px}.user-name{text-overflow:ellipsis;white-space:nowrap;max-width:110px;overflow:hidden}.user-role{display:none}.user-dropdown{min-width:160px}.user-dropdown button{padding:12px;font-size:14px}.admin-panel{max-height:calc(100dvh - 32px);padding:20px 16px;overflow-y:auto}.left-panel{max-height:40vh}.panel-header{padding:8px 10px}.option-header-row,.option-row{grid-template-columns:1fr 1fr 1fr;padding:5px 10px}.chart-stats{gap:8px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3a3a5a}.header-right{align-items:center;gap:10px;display:flex;position:relative}.user-menu{position:relative}.user-chip{border:1px solid var(--border-color);background:var(--bg-tertiary);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 12px;transition:border-color .2s;display:flex}.user-chip:hover{border-color:var(--accent-green)}.user-name{color:var(--text-primary);font-size:12px;font-weight:600}.user-role{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.user-role.admin-role{color:var(--accent-green)}.menu-caret{color:var(--text-secondary);font-size:10px}.user-dropdown{background:var(--bg-secondary);border:1px solid var(--border-color);z-index:100;border-radius:8px;flex-direction:column;min-width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #00000080}.user-dropdown:before{content:"";background:0 0;height:8px;position:absolute;top:-8px;left:0;right:0}.user-dropdown button{color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:9px 12px;font-size:13px;transition:background .15s}.user-dropdown button:hover{background:var(--bg-tertiary)}.user-dropdown .dropdown-logout{color:var(--accent-red)}.user-dropdown .dropdown-logout:hover{background:#ef53501a}.dropdown-separator{background:var(--border-color);height:1px;margin:4px 0}.login-screen{background:radial-gradient(ellipse at top, #1a1a2e 0%, var(--bg-primary) 60%);justify-content:center;align-items:center;height:100dvh;padding:20px;display:flex}.login-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:360px;padding:32px 28px;box-shadow:0 8px 32px #0006}.login-logo{color:var(--accent-green);text-align:center;font-size:26px;font-weight:700}.login-subtitle{color:var(--text-secondary);text-align:center;margin:8px 0 24px;font-size:12px}.login-form{flex-direction:column;gap:16px;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-field span{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.login-field input{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .2s}.login-field input:focus{border-color:var(--accent-green)}.login-error{color:var(--accent-red);text-align:center;font-size:12px}.login-hint{color:var(--text-secondary);text-align:center;font-size:11px;line-height:1.5}.login-hint code{color:var(--accent-green);font-weight:600}.login-btn{background:var(--accent-green);color:#000;cursor:pointer;border:none;border-radius:6px;padding:11px;font-size:14px;font-weight:700;transition:filter .2s}.login-btn:hover{filter:brightness(1.1)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.admin-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.admin-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:440px;padding:24px;box-shadow:0 8px 32px #00000080}.admin-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.admin-header h3{font-size:16px;font-weight:700}.admin-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1}.admin-close:hover{color:var(--text-primary)}.admin-note{color:var(--text-secondary);margin-bottom:16px;font-size:12px;line-height:1.5}.admin-form{flex-direction:column;gap:14px;display:flex}.toggle-row{justify-content:space-between;align-items:center;display:flex}.admin-success{color:var(--accent-green);text-align:center;font-size:12px}.admin-loading{text-align:center;color:var(--text-secondary);padding:20px;font-size:13px}.login-switch{text-align:center;color:var(--text-secondary);margin-top:16px;font-size:12px}.login-switch button{color:var(--accent-green);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.login-switch button:hover{text-decoration:underline}.header{height:auto;min-height:var(--header-height);flex-wrap:wrap}.nav-bar{border-top:1px solid var(--border-color);gap:4px;width:100%;padding:6px 0 0;display:flex}.nav-item{position:relative}.nav-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:6px 14px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.nav-btn:hover,.nav-btn.active{background:var(--bg-tertiary);color:var(--text-primary)}.nav-caret{margin-left:2px;font-size:8px}.nav-dropdown{background:var(--bg-secondary);border:1px solid var(--border-color);z-index:20;border-radius:6px;min-width:160px;padding:4px 0;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #0000004d}.nav-dropdown-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:12px;transition:background .15s;display:block}.nav-dropdown-item:hover,.nav-dropdown-item.active{background:var(--bg-tertiary);color:var(--accent-green)}.page-container{background:var(--bg-primary);flex:1;padding:24px;overflow-y:auto}.page-header{align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-header h2{font-size:20px;font-weight:600}.back-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:6px 12px;font-size:12px;transition:all .2s}.back-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.total-count{color:var(--text-secondary);font-size:12px}.table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border-color);padding:12px 16px}.data-table th{background:var(--bg-tertiary);text-transform:uppercase;color:var(--text-secondary);font-size:11px;font-weight:600}.data-table td{font-size:13px}.data-table tbody tr:hover{background:var(--bg-tertiary)}.empty-row{text-align:center;color:var(--text-secondary);padding:24px!important}.role-badge{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.role-badge.admin{color:var(--accent-green);background:#26a69a26}.role-badge.user{color:var(--text-secondary);background:#88888826}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:20px;display:flex}.page-btn{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:4px;padding:6px 14px;font-size:12px;transition:all .2s}.page-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent-green)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-info{color:var(--text-secondary);font-size:12px}.loading-state,.error-state{text-align:center;color:var(--text-secondary);padding:24px;font-size:13px}.error-state{color:var(--accent-red)}.config-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:20px}.config-desc{color:var(--text-secondary);margin-bottom:16px;font-size:12px}.menu-config-list{flex-direction:column;gap:4px;display:flex}.menu-config-group{flex-direction:column;display:flex}.menu-config-item{background:var(--bg-tertiary);border-radius:6px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.menu-config-item.child{background:#ffffff08;margin-top:4px;margin-left:24px;padding:10px 16px}.menu-config-info{align-items:center;gap:8px;display:flex}.menu-config-label{font-size:13px;font-weight:500}.menu-config-controls{align-items:center;gap:8px;display:flex}.toggle-label{color:var(--text-secondary);-webkit-user-select:none;user-select:none;font-size:11px}.admin-badge{color:var(--accent-green);background:#26a69a26;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600}.add-child-btn{color:var(--accent-green);cursor:pointer;text-align:left;opacity:.7;background:0 0;border:none;padding:6px 16px;font-size:12px;transition:opacity .15s}.add-child-btn:hover{opacity:1}.add-child-btn.top-level{margin-top:12px;font-size:13px}.toggle-switch{width:36px;height:20px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background:var(--border-color);border-radius:20px;transition:all .3s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--text-primary);border-radius:50%;width:14px;height:14px;transition:all .3s;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background:var(--accent-green)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.config-message{border-radius:6px;margin-top:16px;padding:10px 14px;font-size:12px}.config-message.success{color:var(--accent-green);background:#26a69a26}.config-message.error{color:var(--accent-red);background:#ef535026}.config-actions{margin-top:20px}.save-btn{background:var(--accent-green);color:#000;cursor:pointer;border:none;border-radius:6px;padding:8px 20px;font-size:13px;font-weight:600;transition:opacity .2s}.save-btn:hover:not(:disabled){opacity:.9}.save-btn:disabled{opacity:.5;cursor:not-allowed}.actions-cell{gap:6px;display:flex}.action-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:12px;transition:background .15s,color .15s}.action-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.action-btn:disabled{opacity:.35;cursor:not-allowed}.action-btn.edit{border-color:var(--accent-blue,#4a9eff);color:var(--accent-blue,#4a9eff)}.action-btn.edit:hover:not(:disabled){background:var(--accent-blue,#4a9eff);color:#fff}.action-btn.delete{border-color:var(--accent-red,#ff4a4a);color:var(--accent-red,#ff4a4a)}.action-btn.delete:hover:not(:disabled){background:var(--accent-red,#ff4a4a);color:#fff}
