html,body,#root{height:100%}body{margin:0}:root{--bg:#fff;--fg:#1a1a1a;--muted:#6b7280;--border:#e5e7eb;--row-hover:#f9fafb;--pos:#16a34a;--neg:#dc2626;--accent:#2563eb;--accent-bg:#eff6ff}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.layout{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{color:#cbd5e1;background:#0f172a;flex-direction:column;gap:8px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0}.brand{color:#fff;border-bottom:1px solid #1e293b;align-items:center;gap:8px;margin-bottom:8px;padding:6px 10px 18px;font-weight:600;display:flex}.brand-mark{font-size:18px}.brand-name{letter-spacing:.02em;font-size:15px}.nav{flex-direction:column;gap:2px;display:flex}.nav-link{color:#cbd5e1;border-radius:6px;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:all .12s;display:flex}.nav-link:hover{color:#fff;background:#1e293b}.nav-link.active{background:var(--accent);color:#fff}.nav-icon{text-align:center;width:18px;font-size:14px}.sidebar-footer{border-top:1px solid #1e293b;flex-direction:column;gap:6px;margin-top:auto;padding:12px 4px 0;display:flex}.sidebar-footer .tv-pill,.sidebar-footer .auth-ok,.sidebar-footer .auth-link{font-size:11px}.ip-pill{color:#cbd5e1;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:6px;justify-content:space-between;align-items:center;padding:5px 10px;font-family:ui-monospace,Menlo,monospace;font-size:10px;text-decoration:none;transition:all .12s;display:flex}.ip-pill:hover{color:#fff;background:#334155}.ip-pill .ip-label{text-transform:uppercase;letter-spacing:.06em;opacity:.6;font-size:9px}.ip-pill .ip-value{font-variant-numeric:tabular-nums;font-weight:500}.main{min-width:0;padding:24px 28px 80px}.index-strip{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.index-chip{border:1px solid var(--border);font:inherit;cursor:pointer;background:#fff;border-radius:8px;align-items:baseline;gap:8px;padding:8px 14px;transition:transform .14s,box-shadow .14s;display:flex;box-shadow:0 1px 2px #0000000a}.index-chip:hover{transform:translateY(-1px);box-shadow:0 5px 14px #0f172a1a}.index-chip:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.index-name{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:700}.index-ltp{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.index-chg{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;font-weight:600}.index-chip.pos{background:#f0fdf4;border-color:#86efac}.index-chip.neg{background:#fef2f2;border-color:#fca5a5}.index-chip.pos .index-ltp,.index-chip.pos .index-chg{color:#16a34a}.index-chip.neg .index-ltp,.index-chip.neg .index-chg{color:#dc2626}.index-chart-overlay{z-index:140}.index-chart-modal{border-radius:14px;max-width:880px;padding:22px 24px 26px;overflow:hidden}.index-modal-kicker{color:#64748b;letter-spacing:.12em;margin-bottom:3px;font-size:10px;font-weight:800}.index-modal-quote{align-items:baseline;gap:10px;margin-top:6px;display:flex}.index-modal-quote>b{font-variant-numeric:tabular-nums;font-size:23px}.index-modal-quote>span{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.index-range-tabs{background:#f1f5f9;border-radius:9px;gap:4px;margin:22px 0 12px;padding:4px;display:inline-flex}.index-range-tabs button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:7px;min-width:48px;padding:6px 11px;font-size:12px;font-weight:700}.index-range-tabs button:hover{color:#0f172a}.index-range-tabs button.active{color:#fff;background:#2563eb;box-shadow:0 1px 3px #2563eb47}.index-chart-stage{height:390px;min-height:280px}.index-chart-state{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;display:flex}.index-chart-state .loading-spinner{display:block}.index-chart-state.error{text-align:center;color:#b91c1c;padding:20px}.index-chart-state.error small{color:#64748b;overflow-wrap:anywhere;max-width:620px}.index-chart-tooltip{background:#fffffff5;border:1px solid #cbd5e1;border-radius:8px;gap:3px;padding:9px 11px;font-size:12px;display:grid;box-shadow:0 8px 20px #0f172a1f}.index-chart-tooltip small{color:#64748b}@media (width<=640px){.index-chart-modal{padding:18px 14px 20px}.index-chart-stage{height:310px}.index-range-tabs{display:flex}.index-range-tabs button{min-width:42px;padding-inline:8px}}.page{max-width:1200px}.page-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.page-head h1{margin:0;font-size:22px;font-weight:600}.page-actions{align-items:center;gap:8px;display:flex}.header-right{align-items:center;gap:10px;display:flex}.tv-pill{border-radius:12px;align-items:center;gap:6px;padding:4px 10px;font-family:monospace;font-size:11px;font-weight:500;display:inline-flex}.tv-pill .dot{border-radius:50%;width:7px;height:7px;display:inline-block}.tv-pill.ok{color:#047857;background:#ecfdf5}.tv-pill.ok .dot{background:#16a34a}.tv-pill.warn{color:#92400e;background:#fffbeb}.tv-pill.warn .dot{background:#f59e0b}.tv-pill.bad{color:#b91c1c;background:#fef2f2}.tv-pill.bad .dot{background:#dc2626}a.tv-pill{text-decoration:none}.login-screen{background:var(--bg,#0b1220);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--card,#fff);border:1px solid var(--border,#e5e7eb);border-radius:12px;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:28px;display:flex;box-shadow:0 10px 40px #00000026}.login-brand{align-items:center;gap:6px;font-size:18px;font-weight:700;display:flex}.login-card h2{margin:4px 0 0;font-size:20px}.login-sub{color:var(--muted,#6b7280);margin:0 0 6px;font-size:13px}.login-card input[type=password]{border:1px solid var(--border,#d1d5db);border-radius:8px;padding:10px 12px;font-size:14px}.login-card input[type=password]:focus{border-color:var(--accent,#2563eb);outline:none}.login-card .btn-primary{padding:10px;font-size:14px}.login-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:8px 10px;font-size:13px}.app-logout{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:12px;padding:4px 10px;font-size:11px}.app-logout:hover{background:var(--row-hover);color:var(--neg)}a.tv-pill a{text-decoration:underline}.orders-broker-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.orders-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.orders-search{flex:1;min-width:320px}.orders-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 14px;display:flex}.otab{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 16px;font-size:14px;font-weight:600}.otab:hover{color:var(--text)}.otab.active{color:var(--accent);border-bottom-color:var(--accent)}.orders-tabs-right{margin-left:auto}.list-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.filter-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.chip:hover{background:var(--row-hover)}.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.broker-badge{color:#fff;background:var(--bc,#888);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;display:inline-block}.side-badge{border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.side-badge.buy{color:#166534;background:#dcfce7}.side-badge.sell{color:#991b1b;background:#fee2e2}.status-badge{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.status-badge.done{color:#166534;background:#dcfce7}.status-badge.bad{color:#991b1b;background:#fee2e2}.status-badge.wait{color:#92400e;background:#fef3c7}.status-badge.neutral{color:#475569;background:#eef2f7}.summary-tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px;display:grid}.summary-tile{border:1px solid var(--border);background:var(--card,#fff);border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.st-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.st-value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.st-value.pos{color:var(--pos)}.st-value.neg{color:var(--neg)}.broker-errors{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.broker-error-chip{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:999px;padding:3px 10px;font-size:11px}.orders-table td,.holdings-table td{vertical-align:middle}.protect-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:4px 9px;font-size:11px;font-weight:700}.protect-btn:hover{color:#92400e;background:#fef3c7;border-color:#fde68a}.mode-toggle{width:100%;display:flex}.mode-toggle .seg{flex:1}.cond-box{border:1px solid var(--border);background:#6d5efc0d;border-radius:8px;flex-direction:column;gap:10px;padding:12px;display:flex}.cond-title{color:var(--muted);font-size:12px;font-weight:700}.cond-unit{color:var(--muted);white-space:nowrap;font-size:12px}.cond-now{font-variant-numeric:tabular-nums}.cond-sub{margin:-4px 0 0 24px;font-size:11px}.cond-divider{border-top:1px dashed var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-top:4px;padding-top:8px;font-size:11px;font-weight:700}.cond-collapse{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex}.cond-collapse:hover{color:var(--fg)}.cond-collapse .cx{width:.9em;font-size:10px;display:inline-block}.seg-toggle.sm .seg.candle-green.active{background:#16a34a;border-color:#16a34a}.seg-toggle.sm .seg.candle-red.active{background:#dc2626;border-color:#dc2626}.seg-toggle.sm .seg{padding:4px 10px;font-size:11px}.review-warn.arm{color:#4f46e5;background:#6d5efc1a;border-color:#c7d2fe}.auto-table td{vertical-align:middle}.auto-table .cond-cell{color:var(--muted);max-width:180px;font-size:12px}.auto-table .cond-now-cell{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}.auto-table .tiny{font-size:10px}.auto-table .err-detail{color:#b91c1c;white-space:normal;word-break:break-word;max-width:260px;font-size:10px;line-height:1.3}.auto-table .row-bad td{background:#dc26260d}.cond-tick{margin-left:3px;font-weight:800}.cond-tick.yes{color:#16a34a}.cond-tick.no{color:#cbd5e1}.status-badge.neutral{text-transform:capitalize}@media (prefers-color-scheme:dark){.cond-box{background:#6d5efc1f}.review-warn.arm{color:#c7d2fe;background:#6d5efc2e;border-color:#4338ca}.cond-tick.no{color:#475569}.side-badge.buy,.status-badge.done{color:#86efac;background:#14321f}.side-badge.sell,.status-badge.bad{color:#fca5a5;background:#3b1717}.status-badge.wait{color:#fcd34d;background:#3b2f14}.status-badge.neutral{color:#cbd5e1;background:#1e293b}.summary-tile{background:#0f172a}.broker-error-chip{color:#fca5a5;background:#3b1717;border-color:#7f1d1d}}.dhan-token-box{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dhan-token-form{border:1px solid var(--border);background:var(--card,#fff);border-radius:8px;flex-direction:column;flex-basis:100%;gap:8px;max-width:520px;padding:12px;display:flex}.dhan-token-form textarea{border:1px solid var(--border);resize:vertical;border-radius:6px;width:100%;padding:8px 10px;font-family:monospace;font-size:12px}.dhan-token-form .btn-primary{align-self:flex-start}@media (prefers-color-scheme:dark){.dhan-token-form{background:#0f172a}}.btn-sm{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;padding:4px 10px;font-size:12px}.btn-sm:hover:not(:disabled){background:var(--row-hover)}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.bootstrap-card{border:1px solid var(--border);background:#fafafa;border-radius:8px;margin-bottom:16px;padding:16px;font-size:13px}.bootstrap-card p{color:var(--muted);margin:0 0 8px}.bootstrap-card textarea{border:1px solid var(--border);resize:vertical;border-radius:4px;width:100%;padding:8px;font-family:monospace;font-size:11px}.bootstrap-card .row{gap:8px;margin-top:8px;display:flex}.bootstrap-card button{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;padding:6px 14px;font-size:13px}.bootstrap-card button:first-child{background:var(--accent);color:#fff;border-color:var(--accent)}.bootstrap-card button:disabled{opacity:.5;cursor:not-allowed}.auth-ok{color:#1d4ed8;background:#eff6ff;border-radius:10px;padding:4px 10px;font-size:12px;font-weight:500}.auth-link{color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:4px 10px;font-size:12px;text-decoration:none}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.tabs{gap:4px;display:flex}.tab{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .12s}.tab:hover{background:var(--row-hover);color:var(--fg)}.tab.active{background:var(--accent);color:#fff}.filters{align-items:center;gap:8px;display:flex}.filters select{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;padding:6px 12px;font-size:13px}.search-input{border:1px solid var(--border);background:#fff;border-radius:6px;min-width:160px;padding:6px 12px;font-size:13px}.search-input:focus{border-color:var(--accent);outline:none}.filter-wrap{display:inline-block;position:relative}.filter-btn{align-items:center;gap:6px;display:inline-flex}.filter-btn.has-active{border-color:var(--accent);color:var(--accent)}.filter-count{background:var(--accent);color:#fff;border-radius:9px;padding:0 6px;font-size:11px;font-weight:700;line-height:16px}.filter-panel{z-index:30;border:1px solid var(--border);background:#fff;border-radius:8px;width:320px;padding:12px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000026}.market-watch-filter-panel{width:50vw;max-width:calc(100vw - 32px);font-size:15px}.market-watch-filter-panel .filter-title,.market-watch-filter-panel .breakout-filter legend{font-size:15px}.market-watch-filter-panel .filter-check,.market-watch-filter-panel .filter-radio,.market-watch-filter-panel .timeframe-row,.market-watch-filter-panel .tiny-range-row,.market-watch-filter-panel .filter-section select,.market-watch-filter-panel .tiny-range-row select,.market-watch-filter-panel .filter-range input{font-size:14px}.history-date-input{box-sizing:border-box;border:1px solid var(--border);width:100%;font:inherit;border-radius:6px;padding:7px 8px}.history-date-input:focus{border-color:var(--accent);outline:none}.market-watch-filter-panel .filter-section small{color:var(--muted);margin-top:5px;display:block}.market-watch-filter-panel .breakout-filter small{font-size:13px}.filter-section{border-bottom:1px solid var(--border);padding:6px 0}.filter-section:last-of-type{border-bottom:none}.filter-title{color:var(--fg);margin-bottom:6px;font-size:12px;font-weight:700}.filter-check{cursor:pointer;align-items:center;gap:8px;padding:3px 0;font-size:13px;display:flex}.filter-range{align-items:center;gap:6px;display:flex}.filter-range input{border:1px solid var(--border);border-radius:6px;width:70px;padding:5px 8px;font-size:13px}.filter-range input:focus{border-color:var(--accent);outline:none}.filter-section select{border:1px solid var(--border);background:#fff;border-radius:6px;width:100%;padding:6px 8px;font-size:13px}.filter-actions{justify-content:space-between;gap:8px;margin-top:10px;display:flex}.refresh{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500}.refresh:hover:not(:disabled){background:var(--row-hover)}.refresh:disabled{opacity:.6;cursor:not-allowed}.error,.warn{border-radius:6px;margin-bottom:12px;padding:10px 14px;font-size:13px}.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a}table.movers{border-collapse:collapse;width:100%;font-size:13px}table.movers th,table.movers td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}table.movers th{color:var(--muted);text-transform:uppercase;letter-spacing:.02em;background:#fafafa;font-size:12px;font-weight:500}table.movers td.num,table.movers th.num{text-align:right;font-variant-numeric:tabular-nums}table.movers td.dim{color:var(--muted);width:36px}table.movers td.sym{font-weight:500}.pullback-badge{color:#166534;white-space:nowrap;cursor:help;background:#dcfce7;border:1px solid #86efac;border-radius:4px;margin-left:6px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.tiny-badge{color:#0e7490;white-space:nowrap;cursor:help;background:#cffafe;border:1px solid #67e8f9;border-radius:4px;margin-left:6px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.filter-check.strong{font-weight:700}.tiny-range-row{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin:4px 0 2px 22px;font-size:12px;display:flex}.tiny-range-row select{border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:12px}.wl-tabbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;padding-bottom:10px;display:flex}.wl-tab{border:1px solid var(--border);cursor:pointer;color:var(--muted);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.wl-tab:hover{background:var(--row-hover);color:var(--fg)}.wl-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.wl-tab-count{background:#00000014;border-radius:9px;padding:0 6px;font-size:11px;font-weight:700;line-height:16px}.wl-tab.active .wl-tab-count{background:#ffffff40}.wl-tab-add{border:1px dashed var(--border);cursor:pointer;color:var(--accent);background:0 0;border-radius:999px;padding:6px 12px;font-size:13px}.wl-tab-add:hover{background:var(--accent-bg)}.wl-tab-edit{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:13px}.wl-tab-edit:hover{background:var(--row-hover)}.wl-move-select{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:4px;max-width:74px;padding:2px 4px;font-size:11px}table.movers th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}table.movers th.sortable:hover{color:var(--fg);background:#f0f2f5}table.movers th.sorted{color:var(--fg)}.sort-ind{font-size:10px}table.movers .seg,.exch{color:var(--muted);margin-left:4px;font-size:11px;font-weight:400}.atr-pct{color:var(--muted);font-size:11px;font-weight:400}table.movers td.pos{color:var(--pos)}table.movers td.neg{color:var(--neg)}.line-dist{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.line-dist.pos{color:var(--pos)}.line-dist.neg{color:var(--neg)}.line-dist.touched{color:#b45309}.streak-badge{letter-spacing:.02em;vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.streak-badge.gainer.streak-2{color:#166534;background:#dcfce7}.streak-badge.gainer.streak-3{color:#14532d;background:#bbf7d0}.streak-badge.gainer.streak-4{color:#9a3412;background:#fed7aa}.streak-badge.gainer.streak-5{color:#991b1b;background:#fecaca}.streak-badge.loser.streak-2{color:#991b1b;background:#fee2e2}.streak-badge.loser.streak-3{color:#7f1d1d;background:#fecaca}.streak-badge.loser.streak-4{color:#1e40af;background:#dbeafe}.streak-badge.loser.streak-5{color:#312e81;background:#c7d2fe}.breakout-badge{white-space:nowrap;cursor:help;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.breakout-badge.up{color:#166534;background:#dcfce7}.breakout-badge.down{color:#991b1b;background:#fee2e2}.breakout-badge.within{color:#6b7280;background:#f3f4f6}.breakout-volume-badge{text-align:center;white-space:nowrap;cursor:help;border-radius:4px;min-width:48px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-block}.breakout-volume-badge.normal{color:#4b5563;background:#f3f4f6}.breakout-volume-badge.elevated{color:#92400e;background:#fef3c7}.breakout-volume-badge.strong{color:#166534;background:#dcfce7}.cap-badge{white-space:nowrap;cursor:help;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.cap-badge.cap-large{color:#1e40af;background:#dbeafe}.cap-badge.cap-mid{color:#166534;background:#dcfce7}.cap-badge.cap-small{color:#92400e;background:#fef3c7}.cap-badge.cap-micro{color:#991b1b;background:#fee2e2}.wl-search{align-items:center;display:inline-flex;position:relative}.wl-search input{border:1px solid var(--border);border-radius:6px;min-width:180px;padding:6px 26px 6px 10px;font-size:13px}.wl-search input:focus{border-color:var(--accent);outline:none}.wl-search-clear{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:16px;line-height:1;position:absolute;right:6px}.wl-cap-filter{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;display:flex}.wl-cap-label{color:var(--muted);font-size:12px;font-weight:600}.cap-chip{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600}.cap-chip:hover{border-color:var(--accent)}.cap-chip.active.cap-large{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.cap-chip.active.cap-mid{color:#166534;background:#dcfce7;border-color:#86efac}.cap-chip.active.cap-small{color:#92400e;background:#fef3c7;border-color:#fcd34d}.cap-chip.active.cap-micro{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.cap-chip.cap-clear{color:var(--muted)}table.movers th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.movers th.sortable:hover,table.movers th.sort-active{color:var(--accent)}table.movers tbody tr:hover{background:var(--row-hover)}.meta{color:var(--muted);text-align:right;margin-top:12px;font-size:12px}.pagination{justify-content:flex-end;align-items:center;gap:12px;margin-top:14px;display:flex}.pagination .page-info{color:var(--muted);text-align:center;min-width:110px;font-size:13px}.page-size{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}table.movers tr.clickable{cursor:pointer}.modal-overlay{z-index:100;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;width:100%;max-width:760px;max-height:88vh;padding:20px 22px 24px;overflow-y:auto;box-shadow:0 20px 50px #00000040}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modal-head h2{margin:0;font-size:20px}.modal-sub{color:var(--muted);align-items:center;gap:8px;margin-top:4px;font-size:13px;display:flex}.modal-close{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:24px;line-height:1}.modal-close:hover{color:var(--fg)}.stock-chart-panel{background:#f8fafc;border:1px solid #dbe3ee;border-radius:10px;margin-top:16px;overflow:hidden}.stock-chart-panel.open{background:#fff}.stock-chart-toggle{color:#0f172a;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:12px 14px;display:flex}.stock-chart-toggle:hover{background:#eff6ff}.stock-chart-toggle>span:first-child{align-items:baseline;gap:9px;display:flex}.stock-chart-toggle b{font-size:13px}.stock-chart-toggle small{color:#64748b;font-size:11px}.stock-chart-toggle-action{color:#2563eb;align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.stock-chart-toggle-action i{background:#dbeafe;border-radius:50%;place-items:center;width:22px;height:22px;font-size:17px;font-style:normal;line-height:1;display:inline-grid}.stock-chart-content{border-top:1px solid #eef2f7;padding:0 14px 14px}.stock-chart-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.stock-chart-toolbar .index-range-tabs{margin:12px 0}.stock-chart-change{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.stock-chart-stage{height:330px;min-height:260px}.stock-chart-lazy-loading{text-align:center;color:#64748b;border-top:1px solid #eef2f7;padding:36px}@media (width<=640px){.stock-chart-toolbar{flex-direction:column;align-items:flex-start}.stock-chart-toolbar .index-range-tabs{width:100%;overflow-x:auto}.stock-chart-change{margin-top:-8px}.stock-chart-stage{height:280px}.stock-chart-toggle>span:first-child{flex-direction:column;align-items:flex-start;gap:2px}}.modal-cards{grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 8px;display:grid}.modal-card{border:1px solid var(--border);border-radius:8px;padding:12px 14px}.modal-card-title{color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:600}.modal-card .kv{justify-content:space-between;padding:2px 0;font-size:14px;display:flex}.modal-card .kv span{color:var(--muted)}.modal-section-title{margin:16px 0 8px;font-size:13px;font-weight:600}.month-chips{flex-wrap:wrap;gap:8px;display:flex}.month-chip{border:1px solid var(--border);border-left:3px solid var(--muted);background:#fafafa;border-radius:8px;flex-direction:column;gap:2px;min-width:84px;padding:8px 10px;display:flex}.month-chip.pos{background:#f0fdf4;border-left-color:#16a34a}.month-chip.neg{background:#fef2f2;border-left-color:#dc2626}.month-chip-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:600}.month-chip b{font-size:15px;font-weight:700}.month-chip.pos b{color:#16a34a}.month-chip.neg b{color:#dc2626}.month-chip-days{color:var(--muted);font-size:10px}.hist-hint{color:var(--muted);margin:0 0 6px;font-size:11px}.hist-scroll{overflow-x:auto}.hist-row.clickable{cursor:pointer}.hist-row.clickable:hover{background:#f5f7fa}.hist-row.open{background:#eef2ff}.fc-tag{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:600}.fc-tag.dir-up{color:#16a34a}.fc-tag.dir-down{color:#dc2626}.hist-detail-row>td{background:#fafafa;padding:0!important}.predict-card.compact{margin:6px 8px 10px}table.movers.compact th,table.movers.compact td{padding:6px 10px;font-size:13px}.modal.modal-narrow{width:45%;min-width:360px;max-width:640px}.form-grid{flex-direction:column;gap:12px;margin:16px 0;display:flex}.form-row{gap:12px;display:flex}.form-row .form-field{flex:1}.form-field{flex-direction:column;gap:5px;display:flex}.form-field>span{color:var(--muted);font-size:12px;font-weight:600}.form-field .hint{color:var(--accent);font-style:normal;font-weight:500}.form-field input.readonly-field{color:var(--fg);cursor:default;background:#f3f4f6;font-weight:600}.form-field input{border:1px solid var(--border);border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.form-field input:focus{border-color:var(--accent);outline:none}.form-field select{border:1px solid var(--border);background:#fff;border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.form-field select:focus{border-color:var(--accent);outline:none}.form-field textarea{border:1px solid var(--border);resize:vertical;border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:14px}.form-field textarea:focus{border-color:var(--accent);outline:none}.trade-btn.switch{color:#6d28d9;background:#f5f3ff;border-color:#ddd6fe;width:auto;padding:0 8px;font-size:11px}.trade-btn.switch:hover{color:#fff;background:#7c3aed;border-color:#7c3aed}.comments-cell{white-space:nowrap;text-overflow:ellipsis;max-width:220px;color:var(--muted);overflow:hidden}td.sym.clickable{cursor:pointer}td.sym.clickable:hover{color:var(--accent)}.lot-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:2px;padding:0;font-size:11px;display:block}.lots-row>td{background:#f1f5f9;padding:0!important}.lots-card{border:1px solid var(--border);background:#fff;border-radius:10px;margin:10px 14px 14px 8px;overflow:hidden;box-shadow:0 1px 3px #0000000f}.lots-card-title{color:var(--muted);letter-spacing:.02em;text-transform:uppercase;border-bottom:1px solid var(--border);background:#f8fafc;padding:9px 14px;font-size:12px;font-weight:700}table.lots-table{border-collapse:collapse;width:100%;font-size:13px}table.lots-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);padding:8px 14px;font-size:11px;font-weight:600}table.lots-table th.num,table.lots-table td.num{text-align:right}table.lots-table td{border-bottom:1px solid #f1f5f9;padding:8px 14px}table.lots-table tbody tr:hover{background:#f8fafc}table.lots-table tfoot td{border-top:2px solid var(--border);background:#f8fafc;padding:9px 14px;font-weight:700}.lots-table .lots-action{text-align:center;width:36px}.lot-tag{color:#4338ca;background:#eef2ff;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.lot-remove{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:16px;line-height:1}.lot-remove:hover{color:var(--neg)}.plat-badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.plat-badge.plat-zerodha{color:#b91c1c;background:#fef2f2}.plat-badge.plat-upstox{color:#1d4ed8;background:#eff6ff}.plat-badge.plat-dhan{color:#15803d;background:#f0fdf4}.plat-badge.plat-mixed{color:#6b7280;background:#f3f4f6}.gl-pct{opacity:.85;font-size:11px;font-weight:500}.grand-total{color:var(--muted);margin-left:auto;font-size:14px}.grand-total b{color:var(--fg);font-size:16px}.seg-toggle{border:1px solid var(--border);border-radius:6px;width:fit-content;display:inline-flex;overflow:hidden}.seg-toggle button{cursor:pointer;color:var(--muted);background:#fff;border:none;padding:7px 18px;font-size:13px;font-weight:600}.seg-toggle button.active{background:var(--accent);color:#fff}.form-actions{justify-content:flex-end;gap:8px;display:flex}.btn-primary{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600}.btn-primary:hover{filter:brightness(.95)}.stock-search{position:relative}.stock-search input{border:1px solid var(--border);border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.stock-search input:focus{border-color:var(--accent);outline:none}.stock-search-dropdown{z-index:10;border:1px solid var(--border);background:#fff;border-radius:6px;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.ss-item{cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.ss-item:hover{background:var(--row-hover)}.ss-item .ss-ltp{color:var(--muted);margin-left:auto}.board{grid-template-columns:repeat(3,1fr);align-items:start;gap:16px;display:grid}.board-col{border:1px solid var(--border);background:#f8fafc;border-radius:10px;min-height:200px;padding:12px;transition:background .12s,box-shadow .12s}.board-col.drag-over{box-shadow:0 0 0 2px var(--accent) inset}.board-col.col-plan{background:#eff6ff;border-color:#bfdbfe}.board-col.col-buy{background:#ecfdf5;border-color:#a7f3d0}.board-col.col-sell{background:#fff7ed;border-color:#fed7aa}.board-col-head{justify-content:space-between;align-items:center;display:flex}.board-col-title{font-size:15px;font-weight:700}.col-plan .board-col-title{color:#1d4ed8}.col-buy .board-col-title{color:#047857}.col-sell .board-col-title{color:#c2410c}.board-col-count{color:#fff;text-align:center;border-radius:10px;min-width:22px;padding:1px 7px;font-size:12px;font-weight:700}.col-plan .board-col-count{background:#3b82f6}.col-buy .board-col-count{background:#10b981}.col-sell .board-col-count{background:#f97316}.board-col-hint{color:var(--muted);margin:2px 0 10px;font-size:11px}.board-cards{flex-direction:column;gap:10px;min-height:60px;display:flex}.board-empty{border:1px dashed var(--border);text-align:center;color:var(--muted);border-radius:8px;padding:18px 10px;font-size:12px}.board-card{border:1px solid var(--border);border-left:4px solid var(--muted);cursor:grab;background:#fff;border-radius:8px;padding:10px;box-shadow:0 1px 2px #0000000d}.board-card:active{cursor:grabbing}.board-card.dragging{opacity:.5}.board-card.drop-above{box-shadow:0 -3px 0 0 var(--accent)}.col-plan .board-card{border-left-color:#3b82f6}.col-buy .board-card{border-left-color:#10b981}.col-sell .board-card{border-left-color:#f97316}.board-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.board-card-sym{font-size:14px;font-weight:700}.board-card-right{align-items:center;gap:8px;display:flex}.board-card-ltp{color:var(--muted);font-size:12px}.board-card-x{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.board-card-x:hover{color:var(--neg)}.board-card-note{border:1px solid var(--border);resize:vertical;background:#fcfcfc;border-radius:6px;width:100%;margin-top:8px;padding:6px 8px;font-family:inherit;font-size:12px}.board-card-note:focus{border-color:var(--accent);background:#fff;outline:none}.wl-picker{margin-bottom:10px;position:relative}.wl-picker input{border:1px solid var(--border);background:#fff;border-radius:6px;width:100%;padding:7px 10px;font-size:13px}.wl-picker input:focus{border-color:var(--accent);outline:none}.wl-dropdown{z-index:20;border:1px solid var(--border);background:#fff;border-radius:6px;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}@media (width<=900px){.board{grid-template-columns:1fr}}.predict-card{border:1px solid var(--border);border-left:4px solid var(--muted);background:#fafafa;border-radius:8px;margin:16px 0 4px;padding:12px 14px}.predict-card.dir-up{background:#f0fdf4;border-left-color:#16a34a}.predict-card.dir-down{background:#fef2f2;border-left-color:#dc2626}.predict-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.predict-title{color:var(--fg);font-size:13px;font-weight:700}.predict-badge{color:#374151;background:#e5e7eb;border-radius:5px;padding:3px 10px;font-size:12px;font-weight:700}.predict-badge.dir-up{color:#fff;background:#16a34a}.predict-badge.dir-down{color:#fff;background:#dc2626}.predict-prob{margin-top:8px;font-size:14px}.predict-prob b{font-size:18px}.predict-conf{color:var(--muted);font-size:12px}.predict-pattern{margin-top:8px;font-size:13px}.predict-signals{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex}.predict-signals li{grid-template-columns:64px 64px 1fr;align-items:center;gap:8px;font-size:12px;display:grid}.predict-signals .sig-name{letter-spacing:1px;font-weight:700}.predict-signals .sig-prob{font-weight:600}.predict-signals .sig-detail{color:var(--muted)}.predict-backtest{color:#374151;background:#f3f4f6;border-radius:6px;margin-top:10px;padding:6px 10px;font-size:12px}.predict-note{color:var(--muted);margin-top:10px;font-size:11px;font-style:italic}.tech-card{border:1px solid var(--border);background:#fafafa;border-radius:8px;margin:16px 0 4px;padding:12px 14px}.tech-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.tech-title{color:var(--fg);font-size:13px;font-weight:700}.tech-trend{color:var(--muted);font-size:12px;font-weight:600}.tech-grid{grid-template-columns:1fr 1fr;gap:6px 18px;display:grid}.tech-kv{justify-content:space-between;gap:8px;font-size:13px;display:flex}.tech-kv>span{color:var(--muted)}.tech-kv .hint{color:var(--muted);font-style:normal;font-weight:400}.pivots{border-top:1px dashed var(--border);margin-top:12px;padding-top:10px}.pivots-title{margin-bottom:6px;font-size:12px;font-weight:600}.pivots-title .hint{color:var(--muted);font-style:normal;font-weight:400}.pivot-rows{flex-direction:column;gap:2px;display:flex}.pivot-row{font-variant-numeric:tabular-nums;border-radius:4px;justify-content:space-between;padding:3px 10px;font-size:13px;display:flex}.pivot-row.lvl-r{color:#991b1b;background:#fef2f2}.pivot-row.lvl-p{color:#3730a3;background:#eef2ff;font-weight:600}.pivot-row.lvl-s{color:#166534;background:#f0fdf4}.pivot-name{font-weight:600}.pivot-here{color:var(--accent);padding:1px 10px;font-size:11px;font-weight:700}.first-seen{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.hist-details{gap:10px;padding:10px;display:grid}.hist-pivots{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:10px}.hist-pivot-close{color:var(--muted);text-align:right;margin-top:7px;font-size:12px}.cal-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:4px 0 12px;display:flex}.cal-title{margin:0;font-size:18px;font-weight:700}.cal-month-tot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.cal-month-tot b{color:var(--fg)}.cal-band-chips{gap:4px;display:inline-flex}.cal-layout{align-items:flex-start;gap:16px;display:flex}.calendar{flex:1;min-width:0;position:relative}.cal-grid{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px;display:grid}.cal-weekdays{margin-bottom:6px}.cal-wd{color:var(--muted);text-transform:uppercase;text-align:center;padding:2px 0;font-size:11px;font-weight:700}.cal-cell{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;gap:4px;min-height:92px;padding:6px 8px;transition:border-color .12s,box-shadow .12s;display:flex}.cal-cell:hover{border-color:var(--accent)}.cal-cell.empty{cursor:default;background:0 0;border:none}.cal-cell.weekend{background:#fafafa}.cal-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-cell.selected{box-shadow:0 0 0 2px var(--accent)}.cal-date{color:var(--muted);font-size:13px;font-weight:600}.cal-cell.today .cal-date{color:var(--accent)}.cal-cell-body{flex-direction:column;gap:3px;display:flex}.cal-budget{color:#166534;font-size:13px;font-weight:700}.cal-bands{flex-wrap:wrap;gap:3px;display:flex}.band-dot{border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700;line-height:1.5}.band-large{color:#1e40af;background:#dbeafe}.band-mid{color:#166534;background:#dcfce7}.band-small{color:#92400e;background:#fef3c7}.band-micro{color:#991b1b;background:#fee2e2}.cal-cos{color:var(--muted);font-size:10px}.cal-loading{color:var(--muted);font-size:11px;position:absolute;top:6px;right:8px}.day-panel{border:1px solid var(--border);background:#fff;border-radius:10px;flex-shrink:0;width:320px;padding:14px;position:sticky;top:16px}.day-panel-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:12px;display:flex}.day-panel-date{font-size:14px;font-weight:700}.day-panel-sub{color:var(--muted);margin-top:2px;font-size:12px}.day-panel-sub b{color:#166534}.view-all-btn{border:1px solid var(--border);cursor:pointer;color:var(--accent);background:#fff;border-radius:5px;margin-left:8px;padding:1px 8px;font-size:11px}.view-all-btn:hover{border-color:var(--accent)}.day-band-summary{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px;display:grid}.band-tile{text-align:center;border-radius:8px;flex-direction:column;gap:2px;padding:8px 4px;display:flex}.band-tile.band-large{background:#dbeafe}.band-tile.band-mid{background:#dcfce7}.band-tile.band-small{background:#fef3c7}.band-tile.band-micro{background:#fee2e2}.band-tile-n{font-size:18px;font-weight:800}.band-tile-l{text-transform:uppercase;color:#555;font-size:10px;font-weight:600}.day-add{border-top:1px dashed var(--border);margin-bottom:6px;padding-top:12px}.day-add-row{align-items:center;gap:6px;margin-top:8px;display:flex}.day-add-row input{border:1px solid var(--border);border-radius:6px;flex:1;min-width:0;padding:7px 10px}.day-add-hint{margin-top:8px;font-size:11px}.day-x{color:var(--muted);font-size:12px}.day-list{flex-direction:column;gap:6px;max-height:40vh;margin-top:10px;display:flex;overflow-y:auto}.day-item{border:1px solid var(--border);border-radius:7px;padding:7px 9px}.day-item-top{align-items:center;gap:6px;font-size:13px;display:flex}.day-item-top b{min-width:0}.day-item-amt-lbl{color:#166534;font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.day-item-del{color:#dc2626;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.day-item-inputs{align-items:center;gap:6px;margin-top:6px;display:flex}.day-item-inputs .qp{border:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums;border-radius:6px;width:100%;padding:5px 7px;font-size:12px}.day-total{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;justify-content:space-between;align-items:center;margin-top:12px;padding:10px 12px;font-size:13px;display:flex}.day-total b{color:#166534;font-variant-numeric:tabular-nums;font-size:16px}.day-total-sub{color:var(--muted);text-align:right;margin-top:3px;font-size:11px}.day-item-ltp{font-variant-numeric:tabular-nums;margin-top:4px;font-size:11px;font-weight:600}.day-item-ltp .dim{font-weight:400}.sell-section{border-top:1px dashed var(--border);margin-top:12px;padding-top:10px}.sell-toggle{cursor:pointer;width:100%;color:var(--fg);background:0 0;border:none;justify-content:space-between;align-items:center;padding:2px 0;font-size:13px;font-weight:700;display:flex}.sell-sum{color:#dc2626;font-weight:700}.sell-body{flex-direction:column;gap:8px;margin-top:8px;display:flex}.sell-row{border:1px solid var(--border);background:#fff7f7;border-radius:7px;padding:7px 9px}.sell-row-top{justify-content:space-between;align-items:center;font-size:13px;display:flex}.sell-amt{color:#dc2626;font-variant-numeric:tabular-nums;font-weight:700}.sell-row-nums{align-items:baseline;gap:8px;display:flex}.sell-pl{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.sell-pl.pos{color:#16a34a}.sell-pl.neg{color:#dc2626}.day-realized{border:1px solid var(--border);background:#f8fafc;border-radius:8px;justify-content:space-between;align-items:center;margin-top:6px;padding:8px 12px;font-size:13px;display:flex}.day-realized b{font-variant-numeric:tabular-nums;font-size:15px}.day-realized b.pos{color:#16a34a}.day-realized b.neg{color:#dc2626}.pos-txt{color:#16a34a}.neg-txt{color:#dc2626}.day-note{border-top:1px dashed var(--border);margin-top:14px;padding-top:12px}.day-note-title{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:700}.day-note textarea{border:1px solid var(--border);width:100%;font:inherit;resize:vertical;border-radius:7px;padding:8px 10px;font-size:13px}.day-note textarea:focus{border-color:var(--accent);outline:none}.day-note-hint{color:var(--muted);margin-top:4px;font-size:10px}.cal-note-dot{margin-left:4px;font-size:10px}.cal-date{align-items:center;display:flex}@media (width<=900px){.cal-layout{flex-direction:column}.day-panel{width:100%;position:static}}.notes-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.note-card{background:#fffdf5;border:1px solid #f1e9c9;border-radius:10px;flex-direction:column;padding:12px;display:flex;box-shadow:0 1px 3px #0000000f}.note-head{align-items:center;gap:8px;display:flex}.note-title{color:var(--fg);background:0 0;border:none;flex:1;font-size:15px;font-weight:700}.note-title:focus{outline:none}.note-del{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.note-del:hover{color:var(--neg)}.note-body{resize:vertical;color:var(--fg);background:0 0;border:none;margin-top:8px;font-family:inherit;font-size:13px;line-height:1.5}.note-body:focus{outline:none}.note-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.note-swatches{gap:5px;display:flex}.swatch{cursor:pointer;border:1px solid;border-radius:50%;width:16px;height:16px;padding:0}.swatch.active{box-shadow:0 0 0 2px var(--accent)}.note-meta{color:var(--muted);font-size:11px}.empty{text-align:center;color:var(--muted);padding:40px}.empty-hint{max-width:520px;color:var(--muted);margin:10px auto 0;font-size:12px;line-height:1.5}.historical-loading{min-height:240px;color:var(--fg);text-align:left;justify-content:center;align-items:center;gap:14px;display:flex}.historical-loading .empty-hint{max-width:460px;margin:5px 0 0}.loading-spinner{border:3px solid #dbeafe;border-top-color:var(--accent);border-radius:50%;flex:0 0 28px;width:28px;height:28px;animation:.75s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation-duration:1.8s}}.actions-th{text-align:center;width:120px}.actions{text-align:center;white-space:nowrap}.trade-btn.wish{color:#b45309;background:#fffbeb;border-color:#fde68a;font-size:14px;line-height:1}.trade-btn.wish:hover{background:#fef3c7;border-color:#f59e0b}.trade-btn.wish.active{color:#fff;background:#f59e0b;border-color:#f59e0b}.trade-btn{cursor:pointer;border:1px solid #0000;border-radius:4px;width:28px;height:28px;margin:0 2px;font-size:12px;font-weight:600;transition:all .12s}.trade-btn.buy{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.trade-btn.sell{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.trade-btn.gtt{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe;width:auto;padding:0 8px;font-size:11px}.trade-btn.buy:hover{color:#fff;background:#16a34a;border-color:#16a34a}.trade-btn.sell:hover{color:#fff;background:#dc2626;border-color:#dc2626}.trade-btn.gtt:hover{color:#fff;background:#2563eb;border-color:#2563eb}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat{border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px 14px}.stat label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;display:block}.stat>div{font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.stat .dim{color:var(--muted);font-size:12px;font-weight:400}.stat.pos-bg{background:#f0fdf4;border-color:#bbf7d0}.stat.pos-bg>div{color:var(--pos)}.stat.neg-bg{background:#fef2f2;border-color:#fecaca}.stat.neg-bg>div{color:var(--neg)}.status-pill{letter-spacing:.02em;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.status-active{color:#1d4ed8;background:#eff6ff}.status-done{color:#047857;background:#ecfdf5}.status-cancelled{color:#6b7280;background:#f3f4f6}.drawer-backdrop{z-index:40;background:#0f172a59;animation:.15s fadein;position:fixed;inset:0}@keyframes fadein{0%{opacity:0}to{opacity:1}}.drawer{z-index:41;background:#fff;flex-direction:column;width:520px;max-width:92vw;animation:.18s cubic-bezier(.16,1,.3,1) slidein;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-8px 0 24px #0f172a1f}@keyframes slidein{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:18px 20px 14px;display:flex}.drawer.buy-side .drawer-head{background:linear-gradient(#ecfdf5 0%,#fff 100%)}.drawer.sell-side .drawer-head{background:linear-gradient(#fef2f2 0%,#fff 100%)}.drawer-side{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.drawer.buy-side .drawer-side{color:#047857}.drawer.sell-side .drawer-side{color:#b91c1c}.drawer-sym{margin:4px 0 2px;font-size:20px;font-weight:600}.drawer-ltp{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.drawer-close{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 4px;font-size:26px;line-height:1}.drawer-close:hover{color:var(--fg)}.drawer-body{flex-direction:column;gap:14px;padding:16px 20px;display:flex}.broker-label{gap:6px}.broker-toggle{width:100%}.broker-toggle .seg{flex:1}.broker-toggle .seg:disabled{opacity:.45;cursor:not-allowed}.broker-connect{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.broker-connect.warn{color:#92400e;background:#fef3c7;border-color:#fde68a}.broker-connect a{white-space:nowrap;text-decoration:none}.broker-note{color:var(--muted);font-style:italic}.broker-note.warn{color:#b45309;font-style:normal;font-weight:600}@media (prefers-color-scheme:dark){.broker-connect{color:#93c5fd;background:#1e293b;border-color:#334155}.broker-connect.warn{color:#fcd34d;background:#3b2f14;border-color:#57430f}}.drawer-body label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.drawer-body input[type=number]{border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:6px;padding:8px 10px;font-size:14px}.drawer-body input[type=number]:focus{border-color:var(--accent);outline:none}.seg-toggle{border:1px solid var(--border);border-radius:6px;gap:0;display:flex;overflow:hidden}.seg{cursor:pointer;color:var(--muted);border:none;border-right:1px solid var(--border);background:#fff;flex:1;padding:8px 10px;font-size:12px;font-weight:500}.seg:last-child{border-right:none}.seg:hover:not(.active){background:var(--row-hover)}.seg.active{background:var(--accent);color:#fff}.seg.buy.active{background:#16a34a}.seg.sell.active{background:#dc2626}.check-row{grid-template-columns:1fr 1fr;align-items:center;gap:8px;display:grid}.chk{cursor:pointer;align-items:center;color:var(--fg)!important;flex-direction:row!important;gap:6px!important;font-size:13px!important}.check-row input[type=number]{width:100%}.protect-row{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.protect-row .chk{white-space:nowrap;flex:none}.protect-row .cond-unit,.protect-row input[type=number]{flex:none}.protect-row input.protect-pct{width:66px}.protect-row input.protect-val{width:92px}.protect-row .protect-suffix{flex:auto;min-width:0}.field-group{flex-direction:column;gap:8px;display:flex}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}.seg-toggle.small .seg{padding:6px 12px;font-size:11px}.trail-row{grid-template-columns:100px 1fr;gap:8px;display:grid}.nested{border-left:2px solid var(--border);flex-direction:column;gap:8px;margin-left:8px;padding-left:12px;display:flex}.dual-input{grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;display:grid}.dual-cell{border:1px solid var(--border);background:#fff;border-radius:6px;align-items:center;display:flex;position:relative;overflow:hidden}.dual-cell:focus-within{border-color:var(--accent)}.dual-cell .adornment{color:var(--muted);border-right:1px solid var(--border);background:#f8fafc;align-items:center;height:100%;padding:0 8px;font-size:12px;display:flex}.dual-cell:last-child .adornment{border-right:none;border-left:1px solid var(--border);order:2}.dual-cell input[type=number]{font-variant-numeric:tabular-nums;flex:1;width:100%;font-size:13px;border:none!important;padding:8px!important}.dual-cell input[type=number]:focus{outline:none}.dual-swap{color:var(--muted);-webkit-user-select:none;user-select:none;font-size:14px}.amo-row{background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:8px 10px;flex-direction:column!important;align-items:flex-start!important;gap:2px!important;display:flex!important}.amo-row .hint{color:#92400e;margin-left:22px;font-size:10px}.est{border:1px solid var(--border);color:var(--muted);background:#f8fafc;border-radius:6px;padding:8px 12px;font-size:13px}.est b{color:var(--fg);font-variant-numeric:tabular-nums}.drawer-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:8px 12px;font-size:12px}.drawer-actions{gap:8px;margin-top:8px;display:flex}.btn-primary,.btn-secondary{cursor:pointer;border:1px solid var(--border);border-radius:6px;flex:1;padding:10px 16px;font-size:14px;font-weight:600}.btn-secondary{color:var(--fg);background:#fff}.btn-secondary:hover:not(:disabled){background:var(--row-hover)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary.buy{background:#16a34a;border-color:#16a34a}.btn-primary.sell{background:#dc2626;border-color:#dc2626}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.review-warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:10px 12px;font-size:13px}.review-card{border:1px solid var(--border);background:#fafafa;border-radius:6px;padding:12px}.review-card h4{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px;font-size:12px}.review-card pre{white-space:pre-wrap;word-break:break-all;margin:0;font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:1.5}.success{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:6px;padding:10px 12px;font-size:13px;font-weight:500}.breakout-filter{border:1px solid var(--border);border-radius:7px;margin:10px 0 4px;padding:10px 12px 12px}.breakout-filter legend{color:var(--fg);padding:0 6px;font-size:12px;font-weight:700}.breakout-options{grid-template-columns:1fr 1fr;gap:5px 10px;display:grid}.filter-radio{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.filter-radio.inline{display:inline-flex}.timeframe-row{border-top:1px solid var(--border);align-items:center;gap:12px;margin-top:10px;padding-top:8px;font-size:12px;display:flex}.timeframe-row>span{margin-right:auto;font-weight:600}.breakout-filter small{color:var(--muted);margin-top:8px;font-size:11px;display:block}.scan-progress{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;margin:12px 0;padding:10px 14px}.scan-progress-copy{color:#1e3a8a;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:13px;display:flex}.scan-progress progress{accent-color:#2563eb;width:100%;height:10px;display:block}.market-watch-filter-panel{color:#1e293b;background:#f8fafc;border-color:#dbe3ee;border-radius:14px;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);grid-template-areas:"date change""market breakout""setup previous""streak streak""actions actions";gap:12px;width:min(860px,100vw - 250px);max-width:none;max-height:min(76vh,720px);padding:16px;display:grid;left:50%;right:auto;overflow-y:auto;transform:translate(-50%);box-shadow:0 18px 50px #0f172a2e}.filter-wrap:has(.market-watch-filter-panel):after{content:"";z-index:31;pointer-events:none;background:#f8fafc;border-top:1px solid #dbe3ee;border-left:1px solid #dbe3ee;width:14px;height:14px;position:absolute;top:calc(100% + 1px);left:50%;transform:translate(-50%)rotate(45deg)}.market-watch-filter-panel.without-date{grid-template-areas:"change change""market breakout""setup previous""streak streak""actions actions"}.market-watch-filter-panel .date-filter{grid-area:date}.market-watch-filter-panel .change-filter{grid-area:change}.market-watch-filter-panel .market-cap-filter{grid-area:market}.market-watch-filter-panel .breakout-filter-card{grid-area:breakout}.market-watch-filter-panel .setup-filter,.market-watch-filter-panel .vwap-ema-filter{grid-area:setup}.market-watch-filter-panel .previous-negative-filter{grid-area:previous}.market-watch-filter-panel .streak-filter{grid-area:streak}.market-watch-filter-panel .filter-actions{grid-area:actions}.market-watch-filter-panel .filter-section,.market-watch-filter-panel .breakout-filter-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;min-width:0;margin:0;padding:13px 14px}.market-watch-filter-panel .filter-title,.market-watch-filter-panel .breakout-filter-card legend{color:#0f172a;letter-spacing:.01em;margin:0 0 9px;padding:0;font-size:13px;font-weight:700}.market-watch-filter-panel .breakout-filter-card legend{padding:0 3px}.market-watch-filter-panel .filter-check,.market-watch-filter-panel .filter-radio{border-radius:6px;min-height:25px;padding:3px 5px;font-size:13px;line-height:1.25}.market-watch-filter-panel .filter-check:hover,.market-watch-filter-panel .filter-radio:hover{background:#eff6ff}.market-watch-filter-panel input[type=checkbox],.market-watch-filter-panel input[type=radio]{accent-color:#2563eb}.market-watch-filter-panel .history-date-input,.market-watch-filter-panel .filter-range input,.market-watch-filter-panel .filter-section select,.market-watch-filter-panel .tiny-range-row select{background:#fff;border-color:#cbd5e1;border-radius:8px;min-height:36px}.market-watch-filter-panel .filter-range{gap:10px}.market-watch-filter-panel .filter-range input{flex:1;width:100%}.market-watch-filter-panel .market-cap-filter,.market-watch-filter-panel .previous-negative-filter{grid-template-columns:1fr 1fr;align-content:start;column-gap:8px;display:grid}.market-watch-filter-panel .market-cap-filter .filter-title,.market-watch-filter-panel .previous-negative-filter .filter-title{grid-column:1/-1}.market-watch-filter-panel .setup-filter{align-self:stretch}.market-watch-filter-panel .tiny-range-row{border-top:1px solid #eef2f7;margin-top:7px;padding-top:8px}.market-watch-filter-panel .tiny-range-row span{color:#64748b;max-width:125px}.market-watch-filter-panel .breakout-options{gap:3px 8px}.market-watch-filter-panel .timeframe-row{border-color:#eef2f7;margin-top:7px;padding-top:7px}.market-watch-filter-panel .streak-filter{grid-template-columns:minmax(180px,.55fr) minmax(220px,1fr);align-items:center;gap:14px;display:grid}.market-watch-filter-panel .streak-filter .filter-title{margin:0}.market-watch-filter-panel .filter-actions{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;border-top:1px solid #dbe3ee;margin:0 -16px -16px;padding:12px 16px;position:sticky;bottom:-16px}.market-watch-filter-panel .filter-actions .btn-primary{border-radius:8px;min-width:100px}@media (width<=760px){.market-watch-filter-panel,.market-watch-filter-panel.without-date{grid-template-columns:1fr;grid-template-areas:"date""change""market""breakout""setup""previous""streak""actions";width:auto;max-height:none;position:fixed;inset:88px 12px 12px;transform:none}.market-watch-filter-panel.without-date{grid-template-areas:"change""market""breakout""setup""previous""streak""actions"}.filter-wrap:has(.market-watch-filter-panel):after{display:none}.market-watch-filter-panel .streak-filter{grid-template-columns:1fr;gap:5px}}.mover-tabs{border-bottom:1px solid var(--border,#e5e7eb);flex-wrap:wrap;gap:6px;padding-bottom:8px;display:flex}.mover-tab{color:var(--text-dim,#6b7280);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600}.mover-tab:hover{background:var(--hover,#f3f4f6)}.mover-tab.active{background:var(--accent-soft,#e0f2f1);color:var(--accent,#0f766e);border-color:var(--accent,#0f766e)}.table-scroll{margin-top:10px;overflow-x:auto}.movers th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.movers th.sortable:hover,.movers th.sorted{color:var(--accent,#0f766e)}.movers .mover-rank{width:36px;min-width:36px;color:var(--text-dim,#6b7280);text-align:right;font-variant-numeric:tabular-nums;padding-left:8px;padding-right:8px}
