*{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}@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}.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}
