:root{--bg: #0b0e16;--panel: #121826;--panel-2: #0f1420;--border: #222b3d;--text: #e6eaf2;--muted: #8c97ab;--accent: #3b82f6;--good: #26a69a;--bad: #ef5350;--warn: #e2a236;--nav-h: 48px}*{box-sizing:border-box}body,html,#root{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-size:14px}.app{display:flex;flex-direction:column;height:100vh}.top-nav{flex-shrink:0;height:var(--nav-h);background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:24px}.top-nav-logo{font-size:18px;font-weight:800;letter-spacing:-.5px;color:#fff;margin-right:8px}.top-nav-links{display:flex;gap:4px}.top-nav-link{background:transparent;color:var(--muted);padding:6px 14px;border-radius:8px;font-weight:500;font-size:14px;transition:color .15s,background .15s}.top-nav-link:hover{background:#ffffff0f;color:var(--text)}.top-nav-link.active{color:var(--text);background:#3b82f626}.top-nav-link.active:after{content:"";display:block;height:2px;background:var(--accent);border-radius:999px;margin-top:2px}.top-nav-user{margin-left:auto;display:flex;align-items:center;gap:12px}.top-nav-user-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lang-switch{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 8px;font:inherit;font-size:13px;cursor:pointer}.login-card .lang-switch{display:block;width:auto;margin:16px auto 0}.top-nav-logout{background:var(--panel-2);border:1px solid var(--border)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:min(460px,100%);background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:16px}.login-brand{margin-bottom:4px}.login-card h1{margin:0;font-size:28px}.login-copy,.login-hint{margin:0;line-height:1.6;color:var(--muted)}.login-error{padding:0;text-align:left}.login-button{width:100%;padding:12px 16px}.app-body{flex:1;min-height:0;display:flex;overflow:hidden}.page-layout{display:flex;flex:1;min-width:0;overflow:hidden}.sidebar{width:280px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px;gap:12px;overflow-y:auto}.brand{display:flex;align-items:baseline;gap:8px}.logo{font-size:22px;font-weight:800;letter-spacing:-.5px;color:#fff}.tag{font-size:12px;color:var(--muted)}.add-form{display:flex;gap:6px}.add-form input{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px}.add-error{color:var(--bad);font-size:12px}button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 12px;cursor:pointer;font-weight:600}button:hover{filter:brightness(1.1)}button:disabled{opacity:.6;cursor:default}.watchlist{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.watchlist li{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:10px;cursor:pointer}.watchlist li.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.watchlist li.empty{color:var(--muted);text-align:center;cursor:default}.wl-top{display:flex;justify-content:space-between;align-items:center}.wl-sym{font-weight:700}.wl-remove{background:transparent;color:var(--muted);padding:0 6px;font-size:16px}.wl-remove:hover{color:var(--bad)}.wl-info{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:13px}.wl-price{font-weight:600}.refresh-all{background:var(--panel-2);border:1px solid var(--border)}.main{flex:1;overflow-y:auto;padding:22px 26px}.detail-state{color:var(--muted);padding:40px;text-align:center}.detail-state.error{color:var(--bad)}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.detail-head h2{margin:0 0 6px;font-size:20px}.ticker{color:var(--muted);font-size:13px;font-weight:500;margin-left:6px}.price-row{display:flex;align-items:baseline;gap:12px}.price{font-size:24px;font-weight:800}.detail-actions{display:flex;align-items:center;gap:12px}.as-of{color:var(--muted);font-size:12px}.related-stocks{margin-bottom:16px}.related-stocks-below-chart{margin-top:16px}.related-stocks-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.related-stock-item{background:var(--panel-2);border:1px solid var(--border);color:var(--text);width:100%;display:grid;grid-template-columns:56px minmax(72px,1fr) 64px auto;align-items:center;gap:8px;padding:9px 10px;text-align:left;border-radius:10px;cursor:pointer;transition:border-color .15s ease,transform .15s ease}.related-stock-item:hover{border-color:var(--accent)}.related-stock-symbol{font-size:15px;font-weight:700;white-space:nowrap}.related-stock-price{font-weight:600;white-space:nowrap}.related-stock-item .good,.related-stock-item .bad,.related-stock-item .badge{white-space:nowrap}@media (max-width: 720px){.related-stocks-list{grid-template-columns:1fr}.related-stock-item{grid-template-columns:repeat(2,minmax(0,1fr))}}.chart-wrapper{display:flex;flex-direction:column;gap:0;flex:1;min-width:0}.chart-main-row{display:grid;grid-template-columns:minmax(0,1fr) 148px;gap:12px;min-height:420px}.chart-price{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;overflow:hidden}.chart-chip{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;min-width:0}.chip-header{padding:10px 12px;font-size:12px;font-weight:600;color:var(--text);border-bottom:1px solid var(--border);background:var(--panel);flex-shrink:0}.chip-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;padding:20px;text-align:center}.chip-svg{flex:1;width:100%;min-height:0}.chip-legend{padding:10px 12px;border-top:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;gap:6px;font-size:11px;flex-shrink:0}.chip-stat{display:flex;justify-content:space-between;align-items:center}.chip-label{color:var(--muted)}.chip-value{font-weight:600;font-family:monospace}.chart{width:100%;height:380px;background:var(--panel-2);border:1px solid var(--border);border-radius:12px}.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-head h3{margin:0;font-size:15px}.val-label{font-size:15px;font-weight:600;margin-bottom:14px;line-height:1.5}.badge{font-size:12px;padding:2px 8px;border-radius:999px;font-weight:700}.badge-good{background:#2ec27e26;color:var(--good)}.badge-bad{background:#e2363626;color:var(--bad)}.badge-neutral{background:#e2a23626;color:var(--warn)}.badge-muted{background:#8c97ab26;color:var(--muted)}@media (max-width: 820px){.chart-main-row{grid-template-columns:minmax(0,1fr);min-height:0}.chart-chip{min-height:220px}}.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:12px}.kv-grid label{display:block;color:var(--muted);font-size:12px;margin-bottom:2px}.kv-grid b{font-size:14px}.good{color:var(--good)}.bad{color:var(--bad)}.muted{color:var(--muted)}.range-wrap{margin:14px 0}.mini-label{color:var(--muted);font-size:12px}.range-bar{position:relative;height:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;margin:22px 0 6px}.range-bar.slim{margin-top:18px}.range-fill{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,var(--good),var(--warn));border-radius:999px;opacity:.5}.range-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:2px;height:18px;background:var(--text)}.range-marker span{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:11px;white-space:nowrap}.range-marker.price{background:#fff}.range-marker.fair{background:var(--accent)}.range-marker.fair span{color:var(--accent)}.range-ends{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.signal-summary{color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:0 0 12px;font-size:13px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600}.resistance{color:var(--warn)}.support{color:var(--accent)}.strength{color:var(--accent);letter-spacing:1px}.nearest{display:flex;gap:24px;margin-bottom:12px}.nearest label{display:block;color:var(--muted);font-size:12px}.nearest b{font-size:16px}.methods{margin-top:12px}.methods summary{cursor:pointer;color:var(--muted);font-size:13px}.pivots{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:12px;color:var(--muted)}.pivots .pp{color:var(--text);font-weight:700}.screener-page{display:flex;flex:1;min-width:0;overflow:hidden}.screener-sidebar{width:320px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px;gap:12px;overflow-y:auto}.screener-sidebar .brand{padding-bottom:8px;border-bottom:1px solid var(--border)}.strategies-list{flex:1;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.strategy-group{display:flex;flex-direction:column;gap:6px}.strategy-group-header{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:4px 0}.strategy-item{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:12px;cursor:pointer;transition:border-color .15s,transform .15s;position:relative}.strategy-item:hover{border-color:var(--accent);transform:translate(2px)}.strategy-item.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.strategy-item.pinned{border-left:3px solid var(--good)}.strategy-main{display:flex;align-items:center;gap:6px;margin-bottom:4px}.pin-indicator{font-size:12px}.strategy-name{font-weight:600;font-size:14px}.strategy-desc{font-size:12px;color:var(--muted);line-height:1.4;margin-bottom:8px}.move-top-btn{position:absolute;top:8px;right:8px;background:var(--panel);border:1px solid var(--border);color:var(--muted);padding:4px 8px;font-size:11px;border-radius:6px;opacity:0;transition:opacity .15s,background .15s}.strategy-item:hover .move-top-btn{opacity:1}.move-top-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.screener-main{flex:1;overflow-y:auto;padding:22px 26px}.screener-results{max-width:800px}.results-header{margin-bottom:20px}.results-header h2{margin:0 0 8px;font-size:20px}.results-meta{color:var(--muted);font-size:13px;display:flex;gap:16px;align-items:center}.matches-list{display:flex;flex-direction:column;gap:12px}.match-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;transition:border-color .15s,transform .15s}.match-card:hover{border-color:var(--accent);transform:translate(4px)}.match-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.match-symbol{display:flex;align-items:baseline;gap:8px}.match-symbol b{font-size:18px}.match-price{display:flex;align-items:baseline;gap:12px}.match-details{display:flex;flex-wrap:wrap;gap:8px}.match-tag{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;color:var(--text)}.match-tag.muted{color:var(--muted);border-color:transparent;background:transparent;padding-left:0}.loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.options-page{flex:1;min-width:0;overflow-y:auto;padding:22px 26px;display:flex;flex-direction:column;gap:16px}.options-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.options-head h2{margin:0 0 6px;font-size:22px}.options-head-actions{display:flex;align-items:center;gap:12px}.options-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.options-summary-card{display:flex;flex-direction:column;gap:8px}.options-summary-card strong{font-size:24px}.options-summary-label{color:var(--muted);font-size:12px}.options-note-card p{margin:0;color:var(--muted);line-height:1.6}.options-error-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.options-alert-section{display:flex;flex-direction:column;gap:14px}.options-alert-section-head{align-items:flex-start}.options-alert-list{display:flex;flex-direction:column;gap:12px}.options-alert-card{border:1px solid var(--border);border-radius:12px;background:var(--panel-2);padding:16px;display:flex;flex-direction:column;gap:12px}.options-alert-card.high{border-color:#ef535059}.options-alert-card.medium{border-color:#e2a23659}.options-alert-top{display:flex;justify-content:space-between;gap:12px}.options-alert-symbol-row{display:flex;align-items:baseline;gap:8px}.options-alert-symbol{font-size:20px;font-weight:700}.options-alert-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}.options-alert-summary{margin:0;line-height:1.6}.options-alert-tags{display:flex;flex-wrap:wrap;gap:8px}.options-section-empty{color:var(--muted);background:var(--panel-2);border:1px dashed var(--border);border-radius:10px;padding:16px;text-align:center}.options-metrics-section{display:flex;flex-direction:column;gap:14px}.options-metrics-table-wrap{overflow-x:auto}.options-metrics-table{width:100%;border-collapse:collapse}.options-metrics-table th,.options-metrics-table td{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.options-metrics-table th{color:var(--muted);font-weight:500;font-size:12px}.options-metrics-symbol-cell{display:flex;flex-direction:column;gap:2px}.options-empty-state{padding:16px}.options-inline-error{padding:12px 0 0}@media (max-width: 980px){.options-summary-grid{grid-template-columns:1fr}.options-head,.options-head-actions,.options-alert-top{flex-direction:column;align-items:flex-start}}.match-open{background:transparent;color:inherit;padding:0;font:inherit;text-align:left;cursor:pointer}.match-open:hover b{color:var(--accent)}.match-actions{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px}.match-action{background:var(--panel-2);border:1px solid var(--border);padding:4px 10px;font-size:12px}.match-watched{color:var(--muted)}.backtest-panel{margin-bottom:20px}.backtest-table-wrap{overflow-x:auto}.backtest-note{margin:12px 0 0;font-size:12px;line-height:1.6}.backtest-pending{margin-bottom:20px;font-size:13px}.add-form{position:relative}.symbol-search{flex:1;min-width:0}.symbol-search input{width:100%;box-sizing:border-box}.symbol-suggestions{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;max-height:320px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #00000073}.symbol-suggestions li{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer}.symbol-suggestions li.highlighted{background:#3b82f62e}.suggestion-symbol{font-weight:700}.suggestion-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.suggestion-meta{grid-column:1 / -1;font-size:11px;color:var(--muted)}.symbol-suggestions li.suggestion-empty{display:block;cursor:default;color:var(--muted);font-size:12px}.options-panel-note{margin:10px 0 0;font-size:12px;line-height:1.6}.options-panel-alerts{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px;line-height:1.5}.options-panel-alerts li{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.match-new{margin:0 auto 0 10px}.screener-changes{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;font-size:13px}.screener-dropped{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.screener-results.busy .backtest-panel,.screener-results.busy .matches-list,.screener-results.busy .screener-changes{opacity:.5}.screener-threshold{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;font-size:13px}.screener-threshold label{display:flex;align-items:center;gap:6px;color:var(--muted)}.screener-threshold input{width:72px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:5px 8px;font:inherit}.screener-threshold button{padding:5px 12px;font-size:12px}.threshold-reset{background:transparent;border:1px solid var(--border);color:var(--muted)}.threshold-note{margin:0 0 12px;padding:8px 10px;border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:6px;font-size:12px}.backtest-years h4,.backtest-curve-title{margin:0;font-size:13px;font-weight:600;color:var(--text)}.backtest-years{margin-top:16px}.backtest-years h4{margin-bottom:6px}.backtest-curve{margin:20px 0 0}.backtest-curve figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-bottom:4px}.backtest-legend{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.backtest-legend .legend-key:not(:first-child){margin-left:10px}.legend-key{display:inline-block;width:16px;height:0;vertical-align:middle;border-top:2px solid var(--accent)}.legend-key.baseline{border-top:2px dashed var(--muted)}.backtest-curve-plot{position:relative;max-width:640px}.backtest-curve svg{display:block;width:100%;height:auto;touch-action:pan-y}.backtest-curve svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.backtest-curve .grid{stroke:var(--border);stroke-width:1}.backtest-curve .zero{stroke:var(--muted);stroke-opacity:.6;stroke-width:1}.backtest-curve .axis{fill:var(--muted);font-size:11px}.backtest-curve .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.backtest-curve .line.strategy{stroke:var(--accent)}.backtest-curve .line.baseline{stroke:var(--muted);stroke-dasharray:5 4}.backtest-curve .crosshair{stroke:var(--muted);stroke-width:1}.backtest-curve .dot{stroke:var(--panel);stroke-width:2}.backtest-curve .dot.strategy{fill:var(--accent)}.backtest-curve .dot.baseline{fill:var(--muted)}.backtest-tooltip{position:absolute;top:8px;pointer-events:none;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.7;color:var(--muted);white-space:nowrap}.backtest-tooltip b{color:var(--text)}.backtest-tooltip-day{color:var(--text);font-weight:600}.watchlist-overview{margin-bottom:20px}.overview-empty{margin:0;font-size:13px}.overview-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.overview-list li{display:flex;align-items:baseline;gap:12px}.overview-symbol{flex:0 0 64px;background:transparent;color:var(--text);padding:0;font:inherit;font-weight:700;text-align:left;cursor:pointer}.overview-symbol:hover{color:var(--accent)}.overview-items{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12px}.val-facts{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px;line-height:1.6}.val-note{margin:8px 0 0;font-size:12px;line-height:1.6}.method-note{margin-top:2px;font-size:11px;font-weight:400;line-height:1.5;white-space:normal}.val-relative .badge{margin:0 2px}.ideas-page{flex:1;overflow-y:auto;padding:28px clamp(16px,4vw,48px) 48px}.ideas-page>*{max-width:1320px;margin-left:auto;margin-right:auto}.ideas-head h1{margin:0;font-size:30px;letter-spacing:-.5px}.ideas-head p{margin:6px 0 0;font-size:14px}.ideas-market{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:22px}.ideas-tile{display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px;font-size:12px;line-height:1.5}.ideas-tile-label{color:var(--muted);font-weight:600}.ideas-tile strong{font-size:22px;letter-spacing:-.3px}.ideas-read{margin-top:14px;margin-bottom:0;padding:12px 16px;border-left:3px solid var(--accent);background:#3b82f612;border-radius:0 10px 10px 0;font-size:14px;line-height:1.65}.ideas-tabs{display:flex;gap:8px;margin-top:26px;padding-bottom:4px;overflow-x:auto}.ideas-tab{flex:0 0 auto;display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:8px;text-align:left;background:var(--panel);color:var(--muted);border:1px solid var(--border);border-radius:12px;padding:10px 14px;font:inherit;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.ideas-tab:hover{color:var(--text);border-color:var(--muted)}.ideas-tab.active{color:var(--text);border-color:var(--accent);background:#3b82f624}.ideas-tab-name{font-size:14px;font-weight:700}.ideas-tab-count{justify-self:end;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.ideas-tab-horizon{grid-column:1 / -1;font-size:11px;color:var(--muted)}.ideas-playbook{margin-top:16px}.ideas-playbook .card-head{flex-wrap:wrap;gap:6px 16px}.ideas-playbook .card-head h3{font-size:17px}.ideas-playbook-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px 24px;margin:0}.ideas-playbook-notes dt{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.ideas-playbook-notes dd{margin:0;font-size:13px;line-height:1.65}.ideas-record{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--border);font-size:12px}.ideas-top-intro{margin-top:16px;margin-bottom:0;font-size:13px}.ideas-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin-top:18px;font-size:13px;color:var(--muted)}.ideas-filters label{display:flex;align-items:center;gap:8px}.ideas-filters select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 8px;font:inherit}.ideas-filter-check{cursor:pointer}.ideas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;margin-top:16px}.ideas-disclaimer{margin-top:32px;font-size:12px;line-height:1.6}.idea-card{display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;transition:border-color .15s}.idea-card:hover{border-color:#3b82f699}.idea-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.idea-symbol{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;background:transparent;color:var(--text);padding:0;font:inherit;text-align:left;cursor:pointer}.idea-symbol b{font-size:22px;letter-spacing:-.3px}.idea-symbol:hover b{color:var(--accent)}.idea-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted)}.idea-price{display:flex;flex-direction:column;align-items:flex-end;font-size:12px;white-space:nowrap}.idea-price .price{font-size:18px;font-weight:700}.idea-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.badge-playbook{background:#3b82f629;color:#8fb8ff}.idea-sector{font-size:12px;color:var(--muted)}.idea-score{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.idea-score b{min-width:22px;text-align:right;color:var(--text);font-variant-numeric:tabular-nums}.idea-score-track{flex:1;height:6px;border-radius:999px;background:var(--panel-2);overflow:hidden}.idea-score-fill{height:100%;border-radius:999px;background:var(--accent)}.idea-facts h4{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}.idea-facts ul+h4{margin-top:12px}.idea-reasons,.idea-risks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:13px;line-height:1.5}.idea-reasons li,.idea-risks li{position:relative;padding-left:18px}.idea-reasons li:before{content:"✓";position:absolute;left:0;color:var(--good);font-weight:700}.idea-risks li{color:var(--muted)}.idea-risks li:before{content:"!";position:absolute;left:4px;color:var(--warn);font-weight:800}.idea-plan{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px 14px;margin:0;padding:12px;border-radius:10px;background:var(--panel-2)}.idea-plan dt{font-size:11px;color:var(--muted);margin-bottom:2px}.idea-plan dd{margin:0;font-size:13px}.idea-plan dd b{font-size:15px}.idea-plan small{display:block;font-size:11px;color:var(--muted)}.idea-no-target{font-size:12px;line-height:1.5}.idea-chips{display:flex;flex-wrap:wrap;gap:6px}.idea-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border);font-size:12px}.idea-since{line-height:1.5}.idea-actions{display:flex;align-items:center;gap:8px}.stock-ideas{margin-bottom:20px;border-color:#3b82f673}.stock-idea+.stock-idea{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.stock-idea-head{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.stock-idea .idea-risks{margin-top:6px}@media (max-width: 480px){.ideas-grid{grid-template-columns:1fr}}.ideas-tabs{flex-wrap:wrap;gap:12px 22px;overflow-x:visible}.ideas-tab-group{display:flex;flex-direction:column;gap:6px;max-width:none;margin:0}.ideas-tab-group-label{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}.ideas-tab-row{display:flex;flex-wrap:wrap;gap:8px}.ideas-tab.empty:not(.active){opacity:.55}.idea-earnings{font-size:12px;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px}.idea-earnings.soon{color:var(--warn);border-color:#e2a23680}.link-button{background:transparent;color:var(--accent);padding:0;font:inherit;font-size:inherit;cursor:pointer}.link-button:hover{text-decoration:underline}.page-head h1,.options-head h2,.results-header h2,.detail-head h2{margin:0;font-size:28px;line-height:1.2;letter-spacing:-.5px}.page-head p{margin:6px 0 0;font-size:14px}.portfolios-page{flex:1;overflow-y:auto;padding:28px clamp(16px,4vw,48px) 48px}.portfolios-page>*{max-width:1320px;margin-left:auto;margin-right:auto}.portfolios-page>.card,.portfolios-page>.ideas-market{margin-top:18px}.portfolio-back{display:block;width:100%;margin-bottom:10px;font-size:13px;text-align:left}.portfolio-rules summary{cursor:pointer;font-weight:700;font-size:14px}.portfolio-rules ul{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:13px;line-height:1.6}.portfolio-rules li{display:grid;grid-template-columns:92px 1fr;align-items:baseline;gap:10px}.portfolio-rules p{margin:14px 0 0;font-size:12px;line-height:1.6}.portfolios-sort{margin-top:18px;font-size:13px;color:var(--muted)}.portfolios-sort select,.portfolio-trades select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 8px;margin-left:8px;font:inherit}.portfolios-table-wrap{overflow-x:auto}.portfolios-page>.portfolios-table-wrap{margin-top:12px;padding:4px 16px}.portfolios-page table{width:100%;font-variant-numeric:tabular-nums}.portfolios-table tbody tr{cursor:pointer}.portfolios-table tbody tr:hover{background:#3b82f612}.portfolios-page td{padding-top:10px;padding-bottom:10px;vertical-align:middle}.portfolio-name{background:transparent;color:var(--text);padding:0;font:inherit;font-weight:700;text-align:left;cursor:pointer}.portfolio-name:hover{color:var(--accent)}.portfolio-kind{font-size:11px;font-weight:400}.sparkline{display:block;width:120px;height:28px}.sparkline polyline{fill:none;stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke}.sparkline .zero{stroke:var(--muted);stroke-opacity:.5;stroke-width:1;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.equity-curve{margin:0}.equity-curve figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-bottom:4px}.equity-curve-plot{position:relative}.equity-curve svg{display:block;width:100%;height:auto;touch-action:pan-y}.equity-curve svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.equity-curve .grid{stroke:var(--border);stroke-width:1}.equity-curve .zero{stroke:var(--muted);stroke-opacity:.6;stroke-width:1}.equity-curve .axis{fill:var(--muted);font-size:8px}.equity-curve .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.equity-curve .line.strategy{stroke:var(--accent)}.equity-curve .line.baseline{stroke:var(--muted);stroke-dasharray:5 4}.equity-curve .crosshair{stroke:var(--muted);stroke-width:1}.equity-curve .dot{stroke:var(--panel);stroke-width:2}.equity-curve .dot.strategy{fill:var(--accent)}.equity-curve .dot.baseline{fill:var(--muted)}.weight-cell{display:flex;align-items:center;gap:8px}.weight-bar{width:70px;height:6px;border-radius:999px;background:var(--panel-2);overflow:hidden}.weight-bar div{height:100%;border-radius:999px;background:var(--accent)}.position-note{font-size:11px;color:var(--muted)}.trade-badge{display:inline-block;min-width:52px;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:700;text-align:center;white-space:nowrap}.trade-open{background:#3b82f62e;color:#8fb8ff}.trade-add{background:#3b82f652;color:#cfe0ff}.trade-trim{background:#2ec27e29;color:var(--good)}.trade-reduce{background:#e2a23629;color:var(--warn)}.trade-close{background:#e2363629;color:var(--bad)}.trade-log,.trade-log ul{list-style:none;margin:0;padding:0}.trade-log>li{display:grid;grid-template-columns:96px 1fr;gap:4px 14px;padding:10px 0;border-top:1px solid var(--border)}.trade-log>li:first-child{border-top:0;padding-top:0}.trade-log time{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;padding-top:3px}.trade-log ul{display:flex;flex-direction:column;gap:8px}.trade-log ul li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:13px}.trade-detail{font-variant-numeric:tabular-nums}.trade-reason{font-size:12px}.trade-pnl{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}.portfolio-trades .link-button{margin-top:12px;font-size:13px}.card{border-radius:14px;padding:18px}.main,.screener-main{padding:28px clamp(16px,3vw,40px) 48px}.sidebar,.screener-sidebar{padding:20px 16px;gap:14px}.sidebar .brand .logo,.screener-sidebar .brand .logo{font-size:20px}.watchlist li,.strategy-item{background:var(--panel-2);border-radius:12px;transition:border-color .15s,background .15s}.watchlist li:hover:not(.empty):not(.active),.strategy-item:hover{border-color:var(--muted);transform:none}.watchlist li.active,.strategy-item.active{border-color:var(--accent);background:#3b82f624;box-shadow:none}.detail{max-width:1320px;margin:0 auto}.detail-head{margin-bottom:20px}.detail-head .ticker{font-size:15px;letter-spacing:0}.detail-head .price{font-size:26px}.panels{gap:18px;margin-top:18px}.watchlist-overview,.stock-ideas{max-width:1320px;margin-left:auto;margin-right:auto}.screener-results{max-width:1100px}.results-header h2{margin-bottom:8px}.match-card{border-radius:14px;padding:18px}.match-card:hover{border-color:#3b82f699;transform:none}.options-page{padding:28px clamp(16px,4vw,48px) 48px}.options-page>*{width:100%;max-width:1320px;margin-left:auto;margin-right:auto}.options-head h2+.muted{margin-top:6px;font-size:14px}.options-summary-card{gap:4px;padding:14px 16px;font-size:12px}.options-summary-card strong{font-size:22px;letter-spacing:-.3px}.options-summary-label{font-size:12px;font-weight:600;color:var(--muted)}.options-alert-card{border-radius:12px}.ideas-tab.risky.active{border-color:var(--warn);background:#e2a2361f}.option-how{margin:0;font-size:13px;line-height:1.7}.option-warning{margin:12px 0 0;padding:10px 12px;border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:8px;font-size:13px;line-height:1.6}.option-warning.strong{border-color:#e2363680;border-left-color:var(--bad);background:#e2363612;font-weight:600}.option-card{display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px}.option-card.option-weekly{border-color:#e2a23666}.option-contract{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;font-size:14px}.option-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 14px;margin:0;padding:12px;border-radius:10px;background:var(--panel-2)}.option-fields dt{font-size:11px;color:var(--muted);margin-bottom:2px}.option-fields dd{margin:0;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.option-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:12px}.option-watch,.option-results{margin-top:16px}.option-watch ul,.option-results ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:8px 24px;font-size:13px}.option-watch li,.option-results li{display:flex;align-items:baseline;gap:10px}.option-watch li b{flex:0 0 52px}.option-results li b{margin-left:auto;font-variant-numeric:tabular-nums}.idea-options h4{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}.idea-options ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px;line-height:1.5;color:var(--muted)}.legend-key.baseline.alt{border-top-style:dotted}.equity-curve .line.baseline.alt{stroke-dasharray:1.5 4}.portfolios-views{display:inline-flex;gap:4px;padding:4px;margin-bottom:16px;border-radius:10px;background:var(--panel-2)}.portfolios-view{padding:6px 14px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.portfolios-view.active{background:var(--accent);color:#fff}.legend-key.baseline.solid{border-top-style:solid}.equity-curve .line.baseline.solid{stroke-dasharray:none;stroke-width:1}.backtest-legend>span{display:inline-flex;align-items:center;gap:6px;margin-left:10px}.portfolio-fills{margin:14px 0 0;font-size:13px;font-weight:600}.portfolio-pending ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px}.portfolio-pending li{display:flex;align-items:baseline;gap:8px}.portfolio-pending p{margin:0;font-size:13px}.link-button:disabled{color:var(--muted);cursor:default;text-decoration:none}.option-entry{margin:0;font-size:12px;line-height:1.5}.option-entry.pending{color:var(--muted)}
