:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f7f5ef;--surface:#fff;--surface-muted:#f3f0e8;--surface-strong:#f9f6ee;--text-primary:#111;--text-secondary:#6b6257;--text-muted:#90877b;--border:#e5ddcf;--border-strong:#d8cbae;--gold-primary:#c9a227;--gold-soft:#e8d8a8;--gold-muted:#c9a22724;--black-gold-gradient:linear-gradient(135deg, #111 0%, #2b2414 45%, #c9a227 100%);--danger:#b42318;--success:#16794c;--warning:#b7791f;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-soft:0 18px 45px #251f1214;--shadow-card:0 8px 24px #251f120f;--shadow-hover:0 16px 34px #251f121a}*{box-sizing:border-box}html{background:var(--background);min-width:360px}body{background:radial-gradient(circle at top left, #e8d8a847, transparent 32rem), var(--background);min-height:100vh;color:var(--text-primary);text-rendering:optimizelegibility;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}button,a,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.02em;margin-bottom:0;font-size:18px;font-weight:700;line-height:1.3}h2{letter-spacing:-.01em;margin-bottom:4px;font-size:15px;font-weight:700;line-height:1.3}h3{margin-bottom:4px;font-size:14px;font-weight:650}.app-shell{grid-template-columns:200px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffb8;flex-direction:column;height:100vh;padding:14px 10px;display:flex;position:sticky;top:0}.brand-panel{align-items:center;gap:8px;padding:6px 6px 12px;display:flex}.brand-panel strong,.brand-panel span{display:block}.brand-panel strong{letter-spacing:-.01em;font-size:13px}.brand-panel span{color:var(--text-secondary);margin-top:2px;font-size:11px}.brand-mark{border-radius:var(--radius-sm);color:#f5df98;background:var(--black-gold-gradient);letter-spacing:.04em;width:48px;height:30px;box-shadow:var(--shadow-card);justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.nav-list{flex-direction:column;gap:2px;margin-top:8px;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);border:1px solid #0000;align-items:center;gap:8px;padding:7px 10px;font-size:13px;text-decoration:none;transition:border-color .18s,background .18s,color .18s,transform .18s;display:flex}.nav-item:hover,.nav-item.active{color:var(--text-primary);background:linear-gradient(90deg,#c9a22729,#ffffffb8);border-color:#c9a22738}.nav-item:hover{transform:translate(2px)}.sidebar-card{border-radius:var(--radius-md);background:linear-gradient(#ffffffdb,#e8d8a838);border:1px solid #c9a22742;margin-top:auto;padding:12px}.sidebar-card strong,.sidebar-card span{display:block}.sidebar-card strong{margin-bottom:4px;font-size:13px}.sidebar-card span{color:var(--text-secondary);font-size:11px;line-height:1.5}.main-content{min-width:0;padding:14px 20px 28px}.topbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;display:flex}.topbar-page-name{color:var(--text-primary);letter-spacing:-.01em;font-size:15px;font-weight:700}.page-toolbar{justify-content:space-between;align-items:center;gap:10px;min-height:34px;margin-bottom:10px;display:flex}.page-toolbar-left{align-items:center;gap:8px;display:flex}.topbar-actions,.hero-actions,.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.eyebrow{color:var(--text-secondary);letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:700}.eyebrow.gold{color:var(--gold-primary)}.status-pill,.ui-badge{white-space:nowrap;justify-content:center;align-items:center;gap:8px;display:inline-flex}.status-pill{color:#3a2f11;background:#e8d8a852;border:1px solid #c9a22766;border-radius:999px;padding:6px 10px;font-size:12px}.status-pill.success{color:var(--success);background:#16794c14;border-color:#16794c38}.icon-button{border:1px solid var(--border);width:32px;height:32px;color:var(--text-primary);cursor:pointer;background:#ffffffb8;border-radius:999px;justify-content:center;align-items:center;transition:border-color .18s,box-shadow .18s,transform .18s;display:inline-flex}.icon-button:hover{border-color:var(--border-strong);box-shadow:var(--shadow-card);transform:translateY(-1px)}.hero-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(circle at top right, #e8d8a88c, transparent 42%), var(--surface);box-shadow:var(--shadow-soft);justify-content:space-between;align-items:center;gap:20px;margin-top:16px;padding:clamp(16px,2vw,22px);display:flex}.hero-card p{max-width:780px;color:var(--text-secondary);margin-bottom:0;line-height:1.8}.metric-grid,.module-grid,.content-grid{gap:10px;margin-top:10px;display:grid}.metric-grid,.module-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.content-grid.two-columns{grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr)}.ui-card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:#ffffffe0;transition:border-color .18s,box-shadow .18s,transform .18s}.ui-card:hover{box-shadow:var(--shadow-hover);border-color:#c9a22757}.metric-card{padding:12px}.metric-card span{color:var(--text-secondary);font-size:12px}.metric-value{letter-spacing:-.02em;margin:4px 0 2px;font-size:18px;display:block}.metric-value.gold{color:#8a6a0b}.metric-card p,.module-card p,.ui-card-header p{color:var(--text-secondary);margin-bottom:0;line-height:1.65}.module-card,.wide-card,.control-card{padding:14px}.icon-box{border-radius:var(--radius-md);color:#2b2414;background:#e8d8a857;border:1px solid #c9a2276b;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:12px;display:inline-flex}.ui-card-header{justify-content:space-between;align-items:center;gap:8px;min-height:28px;margin-bottom:8px;display:flex}.ui-card-header-left{align-items:center;gap:8px;min-width:0;display:flex}.ui-card-header-left p{color:var(--text-secondary);margin:0;font-size:12px}.card-label{color:var(--text-secondary);letter-spacing:.02em;white-space:nowrap;font-size:12px;font-weight:700}.ui-card-header h2{margin-bottom:0}.ui-card-action{flex:none}.ui-button{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:6px 12px;font-size:13px;font-weight:650;transition:border-color .18s,background .18s,box-shadow .18s,color .18s,transform .18s;display:inline-flex}.ui-button:hover{transform:translateY(-1px)}.ui-button.primary{color:#f5df98;background:var(--black-gold-gradient);box-shadow:var(--shadow-card);border-color:#c9a2278c}.ui-button.secondary{color:var(--text-primary);background:#fff;border-color:#c9a22761}.ui-button.secondary:hover,.ui-button.ghost:hover{background:#e8d8a82e;border-color:#c9a22785}.ui-button.ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.ui-button:disabled{cursor:not-allowed;opacity:.62;transform:none}.ui-badge{border:1px solid var(--border);min-height:22px;color:var(--text-secondary);background:var(--surface-muted);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.ui-badge.gold{color:#2b2414;background:linear-gradient(#f5df98e0,#e8d8a87a);border-color:#c9a2278f}.ui-badge.success{color:var(--success);background:#16794c14;border-color:#16794c3d}.ui-badge.warning{color:var(--warning);background:#b7791f1a;border-color:#b7791f47}.form-stack{gap:12px;display:grid}.ui-field{color:var(--text-primary);gap:4px;font-size:13px;font-weight:650;display:grid}.ui-field.ui-field-inline{grid-template-columns:auto 1fr;align-items:center;gap:8px}.ui-field.ui-field-inline small{grid-column:2}.ui-field small{color:var(--text-muted);font-weight:500;line-height:1.5}.ui-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:34px;color:var(--text-primary);background:#fff;outline:none;padding:6px 10px;font-size:13px;transition:border-color .18s,box-shadow .18s}.ui-input::placeholder{color:var(--text-muted)}.ui-input:focus{border-color:var(--gold-primary);box-shadow:0 0 0 3px #c9a22729}.ui-table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:auto}.ui-table{border-collapse:collapse;width:100%;min-width:620px}.ui-table th,.ui-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:8px 10px}.ui-table th{color:var(--text-secondary);background:var(--surface-strong);font-size:12px;font-weight:700}.ui-table td{color:var(--text-primary);font-size:13px}.ui-table tbody tr{transition:background .16s}.ui-table tbody tr:hover{background:#e8d8a82e}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table-empty{color:var(--text-muted);text-align:center}.page-section{margin-top:10px;scroll-margin-top:12px}.filter-bar{border-radius:var(--radius-md);background:linear-gradient(#ffffffe6,#e8d8a829);border:1px solid #c9a22733;grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) minmax(180px,auto);align-items:center;gap:8px;margin-bottom:10px;padding:10px;display:grid}.filter-actions{flex-wrap:wrap;align-items:center;gap:10px;min-height:34px;display:flex}.stock-cell{gap:3px;display:grid}.stock-cell strong{color:var(--text-primary);letter-spacing:.02em}.stock-cell span,.muted-text{color:var(--text-muted);font-size:12px}.stock-link{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;gap:3px;padding:0;text-decoration:none;display:grid}.stock-link strong{color:#8a6a0b;text-underline-offset:4px;-webkit-text-decoration:underline #c9a22770;text-decoration:underline #c9a22770}.stock-link:hover strong,.stock-link:focus-visible strong{color:var(--gold-primary)}.stock-link:focus-visible{outline-offset:3px;border-radius:var(--radius-sm);outline:2px solid #c9a2276b}.detail-search-bar{border-radius:var(--radius-md);background:#e8d8a824;border:1px solid #c9a22738;grid-template-columns:minmax(160px,240px) auto auto;align-items:end;gap:10px;margin-bottom:12px;padding:10px;display:grid}.stock-hero{border-radius:var(--radius-lg);background:linear-gradient(135deg,#fff 0%,#e8d8a838 100%);border:1px solid #c9a2273d;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;padding:14px;display:flex}.stock-hero .stock-hero-name{letter-spacing:-.02em;margin:2px 0 4px;font-size:17px;font-weight:700;display:block}.stock-hero p{color:var(--text-secondary);margin:0;line-height:1.7}.stock-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.detail-metrics{margin-bottom:10px}.detail-info-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:12px;display:grid}.detail-info-card{border-radius:var(--radius-md);background:#e8d8a80f;border:1px solid #c9a22729;padding:10px}.detail-info-title{color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:650}.detail-info-list{gap:6px;display:grid}.detail-info-item{justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.detail-info-item span{color:var(--text-muted)}.detail-info-item strong{color:var(--text-primary);text-align:right;font-weight:650}.detail-info-item.up strong{color:#c02f2f}.detail-info-item.down strong{color:#227a55}.detail-info-item.neutral strong{color:var(--text-secondary)}.enhance-cards-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-bottom:14px;display:grid}.enhance-card{border-radius:var(--radius-md);background:#e8d8a80a;border:1px solid #c9a2272e;padding:10px 12px}.enhance-card-title{color:var(--gold-primary);letter-spacing:.3px;margin-bottom:8px;font-size:12px;font-weight:700}.enhance-card-body{gap:5px;display:grid}.enhance-item{justify-content:space-between;align-items:center;gap:8px;font-size:12px;line-height:1.4;display:flex}.enhance-item span{color:var(--text-muted);white-space:nowrap}.enhance-item strong{color:var(--text-primary);text-align:right;word-break:break-all;font-weight:650}.enhance-item strong.up{color:#c02f2f}.enhance-item strong.down{color:#227a55}.sector-heats-body{flex-direction:column;gap:10px;display:flex}.sector-heat-block{gap:5px;display:grid}.sector-heat-block+.sector-heat-block{border-top:1px dashed #c9a22733;padding-top:8px}.sector-heat-name{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:650}.kline-panel{border-radius:var(--radius-lg);background:#fff;border:1px solid #c9a22738;margin-bottom:14px;padding:12px}.kline-chart-wrapper{position:relative}.kline-chart{width:100%;min-height:460px}.kline-goodcase-badge-layer{z-index:2;pointer-events:none;position:absolute;inset:0}.kline-goodcase-badge{color:#ffffffeb;border:1px solid #ffffff94;border-radius:50%;justify-content:center;align-items:center;width:11px;height:11px;font-size:7px;font-weight:700;line-height:1;display:inline-flex;position:absolute;box-shadow:0 1px 4px #362b101a}.kline-selection-popover{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;border:1px solid #c9a22747;border-radius:12px;width:min(520px,100% - 24px);padding:10px;position:absolute;box-shadow:0 12px 30px #362b1024}.kline-selection-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.kline-selection-title{align-items:baseline;gap:6px;display:flex}.kline-selection-title span{color:var(--text-muted);font-size:12px}.kline-selection-title strong{color:var(--text-primary);font-size:14px}.kline-selection-close{border:1px solid var(--border);width:24px;height:24px;color:var(--text-muted);background:var(--surface);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.kline-selection-close:hover{color:var(--text-primary);border-color:#c9a22766}.kline-selection-body{gap:8px;max-height:min(560px,100vh - 180px);padding-right:2px;display:grid;overflow-y:auto}.kline-selection-empty{color:var(--text-secondary);margin:0;font-size:12px}.chart-empty{border-radius:var(--radius-lg);min-height:220px;color:var(--text-muted);background:#e8d8a81f;border:1px dashed #c9a2275c;place-items:center;display:grid}.chart-legend{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:0;font-size:12px;display:flex}.legend-item{color:var(--text-secondary);padding-left:24px;font-weight:700;position:relative}.legend-item:before{content:"";background:var(--accent-gold);border-radius:999px;width:18px;height:3px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.gold-line:before{background:#f6c453}.black-line:before{background:#111}.brown-line:before{background:#8b6f16}.volume-bar:before{background:#c02f2f94;border-radius:2px;height:8px}.detail-panels{align-items:start;margin-top:12px}.factor-details.compact{min-width:260px}.buy-form{border-radius:var(--radius-md);background:#e8d8a824;border:1px solid #c9a22733;grid-template-columns:repeat(3,minmax(100px,1fr)) auto;align-items:end;gap:8px;margin-bottom:10px;padding:10px;display:grid}.compact-empty{margin-top:10px}.score-badge{border:1px solid var(--border-strong);min-width:56px;color:var(--text-primary);background:var(--surface-strong);border-radius:999px;justify-content:center;align-items:center;padding:4px 8px;font-size:12px;font-weight:750;display:inline-flex}.score-badge.high{color:#f5df98;background:#111;border-color:#c9a227a3;box-shadow:0 10px 24px #11111124}.factor-details{min-width:300px}.factor-details summary{cursor:pointer;color:#8a6a0b;font-weight:700}.factor-details p{color:var(--text-secondary);white-space:normal;margin:12px 0 0;line-height:1.6}.factor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.factor-chip{border-radius:var(--radius-md);white-space:normal;background:#e8d8a829;border:1px solid #c9a2273d;gap:5px;padding:10px;display:grid}.factor-chip span{color:var(--text-secondary);font-size:12px}.factor-chip strong{color:var(--text-primary)}.factor-chip small{color:var(--text-muted);line-height:1.45}.error-text{color:var(--warning);margin:0 0 14px;font-weight:650}.dashboard-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.market-temperature-card{background:linear-gradient(135deg,#fffffff0,#e8d8a82e);border-color:#c9a22747;margin-top:10px;padding:14px;overflow:hidden}.market-temperature-body{grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);align-items:stretch;gap:12px;display:grid}.market-temperature-main{border-radius:var(--radius-md);background:#ffffffad;border:1px solid #c9a22733;align-items:center;gap:12px;min-width:0;padding:10px;display:flex}.temperature-gauge{background:linear-gradient(#ffffffdb,#e8d8a83d);border:1px solid #c9a22757;border-radius:999px;flex-shrink:0;width:58px;height:108px;padding:5px;position:relative;box-shadow:inset 0 0 0 5px #ffffffb8}.temperature-gauge-fill{height:var(--temperature,0%);background:linear-gradient(180deg, #c02f2f 0%, var(--gold-primary) 52%, #227a55 100%);border-radius:999px;max-height:calc(100% - 14px);transition:height .24s;position:absolute;bottom:7px;left:7px;right:7px}.temperature-copy{gap:3px;min-width:0;display:grid}.temperature-copy span,.temperature-copy small,.market-temperature-stats span{color:var(--text-secondary);font-size:12px}.temperature-copy strong{color:var(--text-primary);letter-spacing:-.02em;font-size:18px;font-weight:750}.market-temperature-hot .temperature-copy strong{color:#b42318}.market-temperature-warm .temperature-copy strong{color:#8a6a0b}.market-temperature-cool .temperature-copy strong,.market-temperature-cold .temperature-copy strong{color:#227a55}.market-temperature-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.market-temperature-stats div{border-radius:var(--radius-md);background:#ffffffb8;border:1px solid #c9a2272e;gap:4px;min-width:0;padding:10px;display:grid}.market-temperature-stats strong{color:var(--text-primary);word-break:break-word;font-size:15px;font-weight:750}.market-temperature-stats strong.up{color:#c02f2f}.market-temperature-stats strong.down{color:#227a55}.sector-heat-rank-card{background:#fffffff0;border-color:#c9a22738;margin-top:10px;padding:14px}.sector-heat-rank-list{gap:8px;display:grid}.sector-heat-row{border-radius:var(--radius-md);background:linear-gradient(135deg,#e8d8a81f,#ffffffc2);border:1px solid #c9a22729;grid-template-columns:34px minmax(120px,1.1fr) minmax(190px,1.45fr) minmax(92px,.75fr) minmax(130px,1fr) minmax(120px,.95fr);align-items:center;gap:8px;padding:9px 10px;display:grid}.sector-rank-index{width:26px;height:26px;color:var(--gold-primary);background:#c9a22724;border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:750;display:inline-flex}.sector-rank-name,.sector-rank-leader,.sector-rank-flow{gap:3px;min-width:0;display:grid}.sector-rank-name strong,.sector-rank-leader strong,.sector-rank-flow strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:720;overflow:hidden}.sector-rank-name span,.sector-rank-leader span,.sector-rank-flow span,.sector-rank-flow small,.sector-rank-meta span{color:var(--text-secondary);font-size:12px}.sector-rank-metrics,.sector-rank-meta{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.sector-rank-metrics span,.sector-rank-meta span{white-space:nowrap;background:#f5f2e8e0;border-radius:999px;align-items:center;min-height:24px;padding:3px 7px;font-size:12px;font-weight:650;display:inline-flex}.sector-rank-metrics span.up,.sector-rank-flow strong.up{color:#c02f2f}.sector-rank-metrics span.down,.sector-rank-flow strong.down{color:#227a55}.alert-card{background:linear-gradient(#ffffffeb,#b7791f14);border-color:#b7791f47;margin-top:14px;padding:16px}.alert-card p{color:var(--warning);margin-bottom:0}.performance-panel{grid-template-columns:180px minmax(0,1fr);align-items:center;gap:16px;display:grid}.ring-chart{background:conic-gradient(var(--gold-primary) var(--progress,0deg), #e8d8a83d 0deg);width:160px;height:160px;box-shadow:inset 0 0 0 1px #c9a22733, var(--shadow-card);border-radius:999px;place-items:center;display:grid}.ring-chart>div{background:var(--surface);text-align:center;border-radius:999px;place-items:center;width:116px;height:116px;display:grid}.ring-chart strong{letter-spacing:-.03em;font-size:20px}.ring-chart span,.performance-list span,.summary-list span,.score-bar-item span{color:var(--text-secondary);font-size:12px}.performance-list,.summary-list{gap:6px;display:grid}.performance-list div,.summary-list div{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-strong);justify-content:space-between;align-items:center;gap:10px;padding:7px 12px;display:flex}.performance-list strong,.summary-list strong{text-align:right}.score-chart{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px;min-height:180px;display:grid}.score-bar-item{justify-items:center;gap:6px;min-width:0;display:grid}.score-bar-track{background:linear-gradient(#e8d8a829,#ffffffd1);border:1px solid #c9a22738;border-radius:999px;align-items:flex-end;width:100%;height:150px;padding:8px;display:flex}.score-bar-fill{background:var(--black-gold-gradient);border-radius:999px;width:100%;min-height:4px;box-shadow:0 8px 16px #c9a2272e}.score-bar-item strong{font-size:22px}.ai-panel-card{background:linear-gradient(#fffffff0,#e8d8a82e)}.score-filter-bar{grid-template-columns:minmax(200px,1.5fr) repeat(4,minmax(150px,1fr)) minmax(180px,auto)}.watchlist-filter-bar{grid-template-columns:repeat(4,minmax(160px,1fr)) minmax(180px,auto)}.tab-toolbar{align-items:center;gap:8px;margin-bottom:10px;display:flex}.trade-metrics{margin-bottom:10px}.trade-panels,.trade-history-card{margin-top:14px}.risk-text{max-width:280px;color:var(--text-secondary);white-space:normal;line-height:1.55;display:inline-block}.return-text{font-weight:750}.return-text.positive{color:var(--success)}.return-text.negative{color:var(--danger)}.trade-performance-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.trade-performance-grid div{border-radius:var(--radius-md);background:var(--surface-strong);border:1px solid #c9a22738;gap:4px;padding:10px;display:grid}.trade-performance-grid span{color:var(--text-secondary);font-size:12px}.trade-performance-grid strong{letter-spacing:-.02em;font-size:18px}.trade-action-row{justify-content:flex-end;margin-top:10px;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#11111152;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.trade-modal{border-radius:var(--radius-xl);background:#fff;border:1px solid #c9a2276b;width:min(620px,100%);max-height:min(680px,100vh - 32px);padding:18px;overflow:auto;box-shadow:0 24px 80px #1111112e}.trade-modal-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.trade-modal-header h3{margin-bottom:4px;font-size:18px}.trade-modal-header p{color:var(--text-secondary);margin-bottom:0;line-height:1.65}.modal-close{color:var(--text-secondary);cursor:pointer;background:#e8d8a829;border:1px solid #c9a22747;border-radius:999px;padding:5px 10px;font-size:12px}.trade-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.trade-field-wide,.trade-form-actions{grid-column:1/-1}.ui-textarea{resize:vertical;min-height:72px}.trade-form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding-top:4px;display:flex}.validation-review-card{gap:14px;display:grid}.validation-filter-bar{grid-template-columns:repeat(4,minmax(170px,1fr)) minmax(180px,auto);margin-bottom:0}.validation-metrics{margin:0}.analysis-grid{gap:12px;display:grid}.analysis-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.inner-card{box-shadow:none;background:linear-gradient(#fff 0%,#faf7eedb 100%);border-color:#c9a22733}.inner-card:hover{box-shadow:none;border-color:#c9a22759}.loss-text{color:#a0442f;font-weight:800}@media (width<=1180px){.app-shell{grid-template-columns:180px minmax(0,1fr)}.metric-grid,.module-grid,.content-grid.two-columns,.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.market-temperature-body{grid-template-columns:1fr}.market-temperature-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sector-heat-row{grid-template-columns:30px minmax(0,1fr) minmax(0,1fr)}.sector-rank-metrics,.sector-rank-meta,.sector-rank-leader,.sector-rank-flow{grid-column:2/-1}.analysis-grid.two-columns{grid-template-columns:1fr}.filter-bar,.score-filter-bar,.watchlist-filter-bar,.validation-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-search-bar,.buy-form,.trade-form{grid-template-columns:1fr 1fr}.stock-hero{flex-direction:column}}@media (width<=860px){.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--border);height:auto;padding:16px;position:static}.brand-panel{padding-bottom:12px}.nav-list{flex-direction:row;padding-bottom:4px;overflow-x:auto}.nav-item{flex:none}.sidebar-card{display:none}.main-content{padding:22px 16px 36px}.topbar,.hero-card,.ui-card-header{flex-direction:column;align-items:stretch}.metric-grid,.module-grid,.content-grid.two-columns,.dashboard-metrics,.market-temperature-stats{grid-template-columns:1fr}.sector-heat-row{grid-template-columns:30px minmax(0,1fr)}.sector-rank-name,.sector-rank-metrics,.sector-rank-meta,.sector-rank-leader,.sector-rank-flow{grid-column:2/-1}.analysis-grid.two-columns{grid-template-columns:1fr}.performance-panel{grid-template-columns:1fr;justify-items:center}.filter-bar,.score-filter-bar,.watchlist-filter-bar,.validation-filter-bar,.factor-grid,.trade-performance-grid,.detail-search-bar,.buy-form,.trade-form{grid-template-columns:1fr}}.nav-item{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0}.page-loader{place-items:center;min-height:320px;display:grid}.page-loader-spinner{border:3px solid #c9a22738;border-top-color:var(--gold-primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:28px;right:28px}.toast-item{border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:all;background:#fffffff5;align-items:center;gap:10px;min-width:260px;max-width:420px;padding:14px 16px;font-size:14px;animation:.22s toast-in;display:flex;box-shadow:0 8px 32px #1111111f}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-item span{flex:1;line-height:1.5}.toast-success{color:var(--success);background:#16794c0f;border-color:#16794c47}.toast-error{color:var(--danger);background:#b423180f;border-color:#b4231847}.toast-warning{color:var(--warning);background:#b7791f0f;border-color:#b7791f47}.toast-info{color:var(--text-primary);background:#c9a2270f;border-color:#c9a22747}.toast-close{width:22px;height:22px;color:inherit;cursor:pointer;opacity:.6;background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s;display:inline-flex}.toast-close:hover{opacity:1}.tab-bar{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-muted);flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:14px;padding:4px;display:flex}.tab-btn{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:650;transition:border-color .18s,background .18s,color .18s;display:inline-flex}.tab-btn:hover{color:var(--text-primary);background:#ffffffb8}.tab-btn.active{color:var(--text-primary);box-shadow:var(--shadow-card);background:#fff;border-color:#c9a2275c}.tab-count{color:#8a6a0b;background:#c9a2272e;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:750;display:inline-flex}.tab-btn.active .tab-count{background:var(--gold-primary);color:#fff}.tab-content{min-height:120px}.date-tab-bar{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);scrollbar-width:thin;scrollbar-color:#c9a2274d transparent;flex-wrap:nowrap;gap:3px;margin-bottom:10px;padding:3px 4px;display:flex;overflow-x:auto}.date-tab-bar::-webkit-scrollbar{height:4px}.date-tab-bar::-webkit-scrollbar-thumb{background:#c9a2274d;border-radius:2px}.date-tab-btn{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;flex-shrink:0;align-items:center;gap:3px;padding:5px 9px;font-size:12px;font-weight:600;transition:border-color .15s,background .15s,color .15s;display:inline-flex;position:relative}.date-tab-btn:hover{color:var(--text-primary);background:#ffffffb8}.date-tab-btn.active{color:var(--text-primary);box-shadow:var(--shadow-card);background:#fff;border-color:#c9a22766;font-weight:700}.date-tab-btn.today{color:var(--gold-primary)}.date-tab-btn.today.active{border-color:var(--gold-primary)}.today-dot{background:var(--gold-primary);border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.limit-up-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.limit-up-toolbar .toolbar-field{min-width:160px}.limit-up-toolbar .ui-button{align-self:flex-end;min-height:34px}.limit-up-sort-hint{color:var(--text-secondary);font-size:12px}.limit-up-kline-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:stretch;gap:12px;display:grid}@media (width>=1180px){.limit-up-kline-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.limit-up-kline-card{border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-card);background:#fff;flex-direction:column;gap:8px;padding:10px;display:flex}.limit-up-kline-card-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.limit-up-stock-title{flex-direction:column;gap:3px;min-width:0;display:flex}.limit-up-stock-title .stock-link{color:var(--text-primary);align-items:baseline;gap:6px;text-decoration:none;display:inline-flex}.limit-up-stock-title .stock-link strong{font-size:14px;font-weight:750}.limit-up-stock-title .stock-link span,.limit-up-stock-industry{color:var(--text-secondary);font-size:12px}.limit-up-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.limit-up-detail-button.ui-button{min-height:28px;padding:5px 8px;font-size:12px}.limit-up-kline-card-metrics{color:var(--text-secondary);grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;font-size:12px;display:grid}.limit-up-kline-card-metrics span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.limit-up-kline-card-metrics strong{color:var(--text-primary);font-weight:650}.limit-up-kline-chart-box{border-radius:var(--radius-md);background:#fff;border:1px solid #c9a22729;min-height:260px;position:relative;overflow:hidden}.limit-up-kline-chart-box .kline-chart-wrapper{min-height:260px}.limit-up-kline-chart-box .kline-chart{height:260px;min-height:260px}.limit-up-kline-chart-box .kline-selection-popover{display:none}.limit-up-kline-card-footer{min-height:18px;color:var(--text-secondary);font-size:12px}.drawer-backdrop{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#11111138;position:fixed;inset:0}.factor-drawer{z-index:50;border-left:1px solid var(--border);background:#fff;flex-direction:column;width:min(480px,92vw);animation:.24s drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 40px #1111111a}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 24px 18px;display:flex}.drawer-header h3{margin-bottom:4px;font-size:20px}.drawer-subtitle{color:var(--text-secondary);margin:0;font-size:13px}.drawer-close{border:1px solid var(--border);background:var(--surface-muted);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,background .15s;display:inline-flex}.drawer-close:hover{border-color:var(--border-strong);background:var(--surface-strong);color:var(--text-primary)}.drawer-body{flex-direction:column;flex:1;gap:18px;padding:20px 24px;display:flex;overflow-y:auto}.drawer-explanation,.drawer-suggestion{border-radius:var(--radius-md);background:#e8d8a81f;border:1px solid #c9a22738;padding:14px 16px}.drawer-explanation p,.drawer-suggestion p{color:var(--text-secondary);margin:8px 0 0;font-size:14px;line-height:1.7}.date-field-with-shortcuts{flex-direction:column;gap:6px;display:flex}.date-shortcuts{flex-wrap:wrap;gap:6px;display:flex}.date-shortcut-btn{color:#8a6a0b;cursor:pointer;white-space:nowrap;background:#e8d8a838;border:1px solid #c9a22752;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:650;transition:border-color .15s,background .15s}.date-shortcut-btn:hover{border-color:var(--gold-primary);background:#c9a2272e}.row-clickable{cursor:pointer}.row-clickable:hover{background:#c9a2271a!important}.row-clickable:focus-visible{outline:2px solid var(--gold-primary);outline-offset:-2px}.page-subtitle{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.compact-icon-box{margin-bottom:0}.data-update-metrics{margin-bottom:10px}.data-update-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.data-update-card{overflow:hidden}.data-update-card.full-span{grid-column:1/-1}.data-update-task-card{margin-top:10px}.data-update-quick-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.data-update-inline-form,.data-update-form-grid{align-items:start;gap:10px;display:grid}.data-update-inline-form{grid-template-columns:minmax(160px,220px) auto;align-items:center}.data-update-form-grid{grid-template-columns:repeat(auto-fill,minmax(180px,240px));max-width:1080px}.score-update-form{grid-template-columns:repeat(auto-fill,minmax(160px,220px));max-width:1080px}.data-update-check-field{min-height:34px;color:var(--text-primary);grid-template-columns:auto 1fr;align-items:center;gap:4px 8px;font-size:12px;font-weight:650;display:grid}.data-update-check-field input{width:16px;height:16px;accent-color:var(--gold-primary)}.data-update-check-field small{color:var(--text-secondary);grid-column:2;font-size:11px;font-weight:500}.data-update-form-actions{align-items:center;min-height:34px;padding-bottom:0;display:flex}.data-update-tool-actions{flex-wrap:wrap;grid-column:1/-1;gap:8px}.data-integrity-summary{border:1px solid var(--border-subtle);background:#c9a2270f;border-radius:12px;gap:8px;margin-top:12px;padding:10px;display:grid}.data-integrity-summary-grid,.data-integrity-issue-list{flex-wrap:wrap;gap:8px;display:flex}.data-integrity-summary span,.data-integrity-summary small{color:var(--text-secondary);font-size:12px}.data-integrity-summary strong{color:var(--text-primary);font-weight:700}.data-integrity-issue-list span{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:999px;padding:4px 8px}.data-update-progress-cell{gap:4px;min-width:120px;display:grid}.data-update-progress-cell small{color:var(--text-secondary);font-size:11px}.data-update-progress-bar{background:#c9a2271f;border-radius:999px;width:100%;height:7px;overflow:hidden}.data-update-progress-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--gold-primary), #6f8f4e);height:100%;transition:width .2s;display:block}.kline-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.kline-toolbar-left{align-items:center;gap:10px;display:flex}.kline-toolbar-right{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.kline-hover-inline{color:var(--text-secondary);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;font-size:12px;display:flex}.kline-hover-inline-wrap{flex-direction:column;justify-content:center;align-items:flex-end;gap:3px;min-height:38px;display:flex}.kline-hover-placeholder{color:var(--text-muted);font-size:11px}.kline-hover-placeholder:after{content:"，点击K线可打开操作窗口"}.kline-hover-inline .hover-item b{color:var(--text-muted);margin-right:2px;font-weight:500}.kline-hover-inline .hover-item.up{color:#c02f2f}.kline-hover-inline .hover-item.down{color:#227a55}.kline-hover-inline .hover-item.score{color:#c9a227;font-weight:600}.kline-range-tabs{gap:4px;display:flex}.kline-range-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:650;transition:border-color .15s,background .15s,color .15s}.kline-range-btn:hover{color:var(--text-primary);border-color:#c9a22766}.kline-range-btn.active{border-color:var(--gold-primary);color:#8a6a0b;background:#c9a22724}.goodcase-form{background:#c9a2270f;border:1px solid #c9a2272e;border-radius:10px;grid-template-columns:minmax(160px,220px) auto minmax(240px,1fr) auto;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;display:grid}.kline-action-panel{gap:8px;display:grid}.kline-action-lines{border-top:1px dashed #c9a2272e;border-bottom:1px dashed #c9a2272e;gap:4px;padding:6px 0;display:grid}.kline-action-line{color:var(--text-primary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;font-weight:650;line-height:1.5;display:flex}.kline-action-line span{white-space:nowrap}.kline-action-line b{color:var(--text-muted);margin-right:2px;font-size:11px;font-weight:500}.kline-action-line .up{color:#c02f2f}.kline-action-line .down{color:#227a55}.kline-action-line .score{color:#8a6a0b}.kline-score-details{background:#c9a2270d;border:1px solid #c9a2272e;border-radius:10px;gap:6px;padding:8px;display:grid}.kline-score-details.missing{color:var(--text-secondary);background:var(--surface-muted);border-color:var(--border-light)}.kline-score-details-title,.kline-score-card-summary,.kline-score-card-meta,.kline-score-factor-head,.kline-score-item-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.kline-score-details-title span,.kline-score-card-summary span,.kline-score-card-meta,.kline-score-factor span,.kline-score-factor small,.kline-score-item span,.kline-score-item small,.kline-score-item em,.kline-score-details p{color:var(--text-secondary);font-size:12px}.kline-score-details-title strong,.kline-score-card-summary strong,.kline-score-factor strong,.kline-score-item strong{color:var(--text-primary);font-size:13px}.kline-score-card{border-top:1px dashed #c9a2272e;gap:6px;padding-top:6px;display:grid}.kline-score-card-summary{cursor:pointer;list-style:none}.kline-score-card-summary::-webkit-details-marker{display:none}.kline-score-card-summary:before{content:"▸";color:var(--text-muted);font-size:11px;transition:transform .16s}.kline-score-card[open] .kline-score-card-summary:before{transform:rotate(90deg)}.kline-score-card-meta{flex-wrap:wrap;justify-content:flex-start}.kline-score-factor-list,.kline-score-factor{gap:6px;display:grid}.kline-score-factor{background:var(--surface);border:1px solid #1f293714;border-radius:8px;padding:7px 8px}.kline-score-item-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;display:grid}.kline-score-item{background:#c9a2270f;border:1px solid #c9a2271f;border-radius:7px;gap:2px;padding:6px 7px;display:grid}.kline-score-item em{font-style:normal}.kline-score-factor.missing strong,.kline-score-no-items{color:var(--text-muted)}.kline-popover-goodcase-form{grid-template-columns:1fr;align-items:stretch;margin-bottom:0;padding:8px}.goodcase-form-meta{align-items:baseline;gap:6px;min-width:0;display:flex}.goodcase-form-meta span,.goodcase-form-meta small{color:var(--text-secondary);font-size:12px}.goodcase-form-meta strong{color:var(--text-primary);font-size:13px}.goodcase-label-group{gap:4px;display:flex}.goodcase-label-btn{border:1px solid var(--border);color:var(--text-secondary);background:var(--surface);cursor:pointer;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:650;transition:all .15s}.goodcase-label-btn.good.active{color:#1f6f4e;background:#227a551f;border-color:#227a556b}.goodcase-label-btn.neutral.active{color:#8a6a0b;background:#c9a22724;border-color:#c9a2277a}.goodcase-label-btn.bad.active{color:#a32929;background:#c02f2f1f;border-color:#c02f2f6b}.goodcase-hints{gap:4px;margin-top:8px;display:grid}.goodcase-hints p{color:var(--text-secondary);margin:0;font-size:12px}.detail-tab-panel{margin-top:14px}.collapsible-card{border-radius:var(--radius-md);padding:12px;overflow:hidden}.collapsible-header{cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.collapsible-header .ui-card-header{flex:1;margin-bottom:0}.collapsible-icon{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);background:var(--surface-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,background .15s;display:inline-flex}.collapsible-header:hover .collapsible-icon{color:var(--text-primary);background:#e8d8a838;border-color:#c9a22766}.collapsible-body{border-top:1px solid #c9a22726;margin-top:10px;padding-top:10px}.collapsible-body .ui-table-wrap{border:none;border-radius:0}.performance-tab-content{padding:8px 0}.performance-tab-content .trade-performance-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=860px){.toast-container{bottom:16px;left:16px;right:16px}.toast-item{min-width:unset;max-width:100%}.factor-drawer{width:100vw}.tab-bar{gap:2px}.tab-btn{padding:8px 12px;font-size:13px}.data-update-action-grid,.data-update-form-grid,.data-update-inline-form{grid-template-columns:1fr}.data-update-form-actions{min-height:unset}.kline-toolbar{flex-direction:column;align-items:flex-start}.kline-toolbar-right{align-items:flex-start;width:100%}.goodcase-form{grid-template-columns:1fr;align-items:stretch}.goodcase-form-meta,.goodcase-label-group{flex-wrap:wrap}.performance-tab-content .trade-performance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.login-page{background:linear-gradient(135deg,#f8f4ea 0%,#fff 52%,#f2efe7 100%);place-items:center;min-height:100vh;padding:32px 18px;display:grid}.login-card{border-color:#c9a22747;width:min(100%,460px);padding:28px;box-shadow:0 24px 70px #11111124}.login-form{gap:18px;display:grid}.login-submit{justify-content:center;width:100%;margin-top:4px}.login-error{border-radius:var(--radius-sm);color:#b91c1c;background:#fee2e29e;border:1px solid #dc26263d;margin:0;padding:10px 12px;font-size:13px}.topbar-actions{align-items:center;gap:10px;display:inline-flex}.topbar-user{border:1px solid var(--border);color:var(--muted-foreground);background:#ffffffb8;border-radius:999px;padding:7px 10px;font-size:13px}
