:root{color:#17211f;background:#eef2ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#f8faf7f5,#ecf1eef5),repeating-linear-gradient(90deg,rgba(36,51,47,.05) 0 1px,transparent 1px 84px)}button,input{font:inherit}button{cursor:pointer}.app-shell{width:min(1480px,calc(100% - 32px));margin:0 auto;padding:22px 0 32px}.app-shell.centered{display:grid;min-height:100vh;place-items:center}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.eyebrow{margin:0 0 5px;color:#60716a;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;color:#101816;font-size:31px;line-height:1.08;letter-spacing:0}h2{margin-bottom:0;font-size:19px;line-height:1.18;letter-spacing:0}h3{margin-bottom:10px;font-size:15px;letter-spacing:0}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.view-switcher{display:inline-flex;gap:4px;margin:0 0 14px;border:1px solid #cbd7d2;border-radius:8px;background:#ffffffc2;padding:4px}.view-switcher button{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:0;border-radius:7px;background:transparent;color:#60716a;padding:7px 11px;font-size:13px;font-weight:900}.view-switcher button.selected{background:#17211f;color:#fff}.universe-strip{display:grid;gap:10px;margin:0 0 14px;border:1px solid #cbd7d2;border-radius:8px;background:#ffffffd1;padding:12px}.universe-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.universe-warning-row{display:flex;flex-wrap:wrap;gap:7px}.universe-warning-row span{border-radius:8px;background:#fff7ea;color:#815117;padding:6px 8px;font-size:12px;font-weight:800}.correlation-strip{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,2fr);gap:12px;margin:0 0 14px;border:1px solid #cbd7d2;border-radius:8px;background:#ffffffdb;padding:12px}.correlation-main{min-width:0}.correlation-main strong{display:block;color:#17211f;font-size:20px;overflow-wrap:anywhere}.correlation-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.correlation-hints{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:7px}.correlation-hints span{border-radius:8px;background:#edf7f4;color:#0f5b50;padding:6px 8px;font-size:12px;font-weight:800;overflow-wrap:anywhere}.status-pill,.icon-button,.tag-row span{display:inline-flex;align-items:center;gap:7px;min-height:36px;border:1px solid #cbd7d2;border-radius:8px;background:#ffffffb8;color:#42514c;padding:8px 11px;white-space:nowrap}.status-pill{font-size:13px}.status-pill strong{color:#87928e;font-size:12px}.status-pill.active{border-color:#87beb1;background:#e8f7f2;color:#0f5b50}.status-pill.active strong{color:#0f7567}.icon-button{border:0;background:#1c2b28;color:#fff;font-weight:800}.icon-button.primary{background:#167568}.icon-button:disabled{cursor:wait;opacity:.68}.summary-grid{display:grid;grid-template-columns:1.45fr repeat(4,minmax(170px,1fr));gap:12px;margin-bottom:14px}.summary-card,.panel,.detail-panel,.empty-panel{border:1px solid #cbd7d2;border-radius:8px;background:#ffffffdb;box-shadow:0 10px 28px #1a262314}.summary-card{min-height:152px;padding:16px}.combined-card{background:#17211f;color:#f7fbf8}.strategy-violet{border-top:4px solid #7864d9}.strategy-teal{border-top:4px solid #168a78}.strategy-amber{border-top:4px solid #d38a19}.strategy-rose{border-top:4px solid #c86a64}.card-heading,.panel-title{display:flex;align-items:center;gap:8px;color:#60716a;font-size:13px;font-weight:900}.combined-card .card-heading{color:#b6cbc4}.leader-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-top:18px}.leader-row>div{min-width:0}.leader-row.compact{margin-top:15px}.leader-row h2{margin:0 0 4px;font-size:34px;line-height:1;overflow-wrap:anywhere}.leader-row.compact h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:22px}.leader-row p{margin:0;color:#66756f;font-size:13px;line-height:1.35}.combined-card .leader-row p{color:#cadbd5}.score-badge{flex:0 0 auto;min-width:58px;border-radius:8px;background:#eaf4ef;color:#123c35;padding:9px;text-align:center;font-size:18px}.combined-card .score-badge{background:#16a085;color:#fff}.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;color:#cfe0da;font-size:12px}.score-track{height:8px;margin-top:18px;overflow:hidden;border-radius:999px;background:#dfe7e3}.score-track span{display:block;height:100%;border-radius:inherit;background:#167568}.industry-list-page{display:grid;gap:14px}.industry-list-toolbar{display:grid;gap:12px}.industry-list-controls{display:grid;grid-template-columns:minmax(260px,1fr) minmax(220px,.36fr);gap:10px;align-items:end}.industry-list-controls label:not(.search-box){display:grid;gap:5px;color:#60716a;font-size:12px;font-weight:900}.industry-list-controls select{min-width:0;height:42px;border:1px solid #cbd7d2;border-radius:8px;background:#fff;color:#17211f;padding:0 10px}.flow-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.flow-stat{min-width:0;border:1px solid #d7e0dc;border-radius:8px;background:#fbfdfb;padding:11px}.flow-stat span{display:block;color:#60716a;font-size:12px;font-weight:900}.flow-stat strong{display:block;margin-top:6px;color:#17211f;font-size:18px;overflow-wrap:anywhere}.industry-page-grid{display:grid;grid-template-columns:minmax(320px,.42fr) minmax(0,1fr);gap:14px;align-items:start}.term-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.short-swing-panel{margin-bottom:14px}.short-swing-panel .term-list{grid-template-columns:repeat(3,minmax(0,1fr))}.industry-flow-panel{margin-bottom:14px}.industry-flow-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:14px}.industry-flow-column{min-width:0}.flow-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;color:#60716a;font-size:12px;font-weight:900}.flow-heading strong{color:#167568}.active-industry-list,.beneficiary-list{display:grid;gap:9px}.active-industry-row,.beneficiary-card{min-width:0;border:1px solid #d7e0dc;border-radius:8px;background:#fbfdfb}.active-industry-row{display:grid;grid-template-columns:32px minmax(0,1fr) 62px;gap:10px;padding:11px}.active-industry-row div{min-width:0}.active-industry-row strong,.beneficiary-head strong{overflow-wrap:anywhere}.active-industry-row p,.beneficiary-card p{margin:4px 0 8px;color:#60716a;font-size:12px;line-height:1.4}.beneficiary-card{display:grid;gap:9px;padding:11px;border-left:4px solid #d38a19}.beneficiary-table-list{display:grid;gap:10px}.beneficiary-list-row{display:grid;gap:10px;min-width:0;border:1px solid #d7e0dc;border-left:4px solid #d38a19;border-radius:8px;background:#fbfdfb;padding:12px}.beneficiary-head{display:grid;grid-template-columns:32px minmax(0,1fr) 62px;align-items:start;gap:10px}.beneficiary-head small{display:block;margin-top:2px;color:#60716a;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.beneficiary-meta,.risk-strip,.proxy-chip-row,.source-chip-row{display:flex;flex-wrap:wrap;gap:6px}.beneficiary-meta span,.risk-strip span,.proxy-chip-row span,.source-chip-row span{border-radius:8px;padding:5px 7px;font-size:11px;font-weight:900}.beneficiary-meta span{background:#edf4f1;color:#42514c}.risk-strip span{background:#fff7ea;color:#815117}.proxy-chip-row span{background:#eaf2ff;color:#244b78}.source-chip-row span{background:#eef5ed;color:#3d673b}.stock-pick-list{display:grid;gap:6px;margin-top:10px}.stock-pick-list>strong{color:#60716a;font-size:11px;font-weight:900}.stock-pick-items{display:flex;flex-wrap:wrap;gap:8px}.stock-pick-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;min-width:min(100%,168px);max-width:240px;border:0;border-left:2px solid #167568;background:transparent;padding-left:7px;color:#24312d;font-size:11px;font-family:inherit;line-height:1.25;text-align:left}.stock-pick-item span{display:grid;min-width:0}.stock-pick-item b,.stock-pick-item small{overflow-wrap:anywhere}.stock-pick-item small{color:#60716a}.stock-pick-item em,.stock-pick-item i{align-self:start;color:#167568;font-style:normal;font-weight:900;white-space:nowrap}.stock-pick-item i{grid-column:1 / -1;color:#815117}.stock-pick-item.selectable{cursor:pointer}.stock-pick-item.selectable:hover b,.stock-pick-item.selectable:focus-visible b{color:#167568;text-decoration:underline}.stock-pick-item.selectable:focus-visible{outline:2px solid #167568;outline-offset:3px}.stock-pick-item.muted{border-left-color:#aebdb6;opacity:.8}.news-signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.news-signal-grid span{display:inline-flex;justify-content:space-between;gap:5px;min-width:0;border-radius:8px;background:#edf4f1;color:#42514c;padding:5px 7px;font-size:11px;font-weight:900}.news-signal-grid strong{color:#167568}.beneficiary-card ul{display:grid;gap:5px;margin:0;padding-left:18px;color:#35433f;font-size:12px;line-height:1.35}.beneficiary-list-row p{margin:0;color:#35433f;font-size:13px;line-height:1.45}.beneficiary-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.45fr);gap:12px}.beneficiary-detail-grid h3{margin-bottom:7px}.beneficiary-detail-grid ul{display:grid;gap:6px;margin:0;padding-left:18px;color:#35433f;font-size:12px;line-height:1.4}.empty-panel.compact{min-height:180px}.term-panel{min-width:0}.term-list{display:grid;gap:9px}.term-empty{min-height:112px;border:1px dashed #cbd8d2;border-radius:8px;display:grid;place-items:center;color:#5e6b66;font-weight:800;font-size:.88rem;background:#f8faf8}.term-card{display:grid;grid-template-columns:32px minmax(0,1fr) 58px;gap:9px;width:100%;border:1px solid #d7e0dc;border-radius:8px;background:#fbfdfb;color:#17211f;padding:10px;text-align:left}.term-card:hover{border-color:#167568}.term-main{min-width:0}.term-main strong,.term-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.term-main small{color:#66756f;font-size:12px}.term-tags,.term-score-grid{grid-column:2 / -1;display:flex;flex-wrap:wrap;gap:6px}.term-tags em,.term-score-grid span{border-radius:8px;background:#edf4f1;color:#42514c;padding:5px 7px;font-size:11px;font-style:normal;font-weight:900}.term-tags em.trade-tag{background:#eef3f2;color:#31423d}.term-tags em.signal-buy{background:#e8f7f2;color:#0f7567}.term-tags em.signal-scale_buy{background:#eaf2ff;color:#244b78}.term-tags em.signal-take_profit_half{background:#fff3d6;color:#7a4a0f}.term-tags em.signal-take_profit_full{background:#ffe7d8;color:#843b18}.term-tags em.signal-reduce{background:#fff7ea;color:#815117}.term-tags em.signal-sell{background:#fdeceb;color:#96352f}.term-score-grid span{display:inline-flex;gap:5px}.term-score-grid strong{color:#167568}.backtest-panel{margin-bottom:14px}.backtest-controls{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:12px}.backtest-controls label{display:grid;gap:5px;color:#60716a;font-size:12px;font-weight:900}.backtest-controls select{min-width:150px;height:38px;border:1px solid #cbd7d2;border-radius:8px;background:#fff;color:#17211f;padding:0 10px}.backtest-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.warning-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.warning-strip span{border:1px solid #e7c9a2;border-radius:8px;background:#fff7ea;color:#815117;padding:6px 8px;font-size:12px;font-weight:800}.workspace-grid{display:grid;grid-template-columns:390px minmax(0,1fr);gap:14px}.control-column,.detail-column{display:grid;align-content:start;gap:14px}.panel,.detail-panel{padding:16px}.panel-title{justify-content:space-between;margin-bottom:14px}.panel-title h2{flex:1;font-size:17px}.panel-title span{color:#167568;font-weight:900}.slider-list{display:grid;gap:14px}.slider-row{display:grid;grid-template-columns:minmax(112px,1fr) 150px 46px;align-items:center;gap:10px;color:#42514c;font-size:13px;font-weight:800}.slider-row input{width:100%;accent-color:#167568}.slider-row strong{text-align:right}.ranking-panel{min-height:520px}.search-box{display:flex;align-items:center;gap:8px;min-height:42px;border:1px solid #cbd7d2;border-radius:8px;background:#fff;padding:0 10px}.search-box input{min-width:0;width:100%;border:0;outline:0;color:#17211f}.ranking-list{display:grid;gap:8px;margin-top:12px}.ranking-row{display:grid;grid-template-columns:32px minmax(0,1fr) 58px;align-items:center;gap:10px;width:100%;min-height:58px;border:1px solid transparent;border-radius:8px;background:#f7faf8;color:#1f2c29;padding:8px 10px;text-align:left}.ranking-row.selected{border-color:#167568;background:#e8f7f2}.rank-number{display:inline-grid;width:28px;height:28px;place-items:center;border-radius:8px;background:#e7eeea;color:#5b6964;font-size:12px;font-weight:900}.rank-main{min-width:0}.rank-main strong,.rank-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-main small{color:#66756f;font-size:12px}.rank-score{text-align:right;color:#167568;font-weight:900}.detail-panel{min-height:520px}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.detail-head h2{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin:0;font-size:32px}.detail-head h2 span{color:#66756f;font-size:18px;font-weight:700}.detail-score{min-width:118px;border-radius:8px;background:#17211f;color:#fff;padding:12px;text-align:right}.detail-score span{display:block;color:#bcd2cc;font-size:12px;font-weight:800}.detail-score strong{display:block;margin-top:2px;font-size:29px}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.tag-row span{min-height:30px;background:#f5f8f6;font-size:12px;font-weight:900}.strategy-score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.portfolio-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.trade-signal-panel{display:grid;gap:10px;margin-top:14px;border:1px solid #cbd7d2;border-radius:8px;background:#f8fbf9;padding:13px}.finance-skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.finance-skill-card{display:grid;gap:10px;min-width:0;border:1px solid #d7e0dc;border-radius:8px;background:#fbfdfc;padding:12px}.skill-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.skill-card-head span{color:#60716a;font-size:12px;font-weight:900}.skill-card-head strong{color:#17211f;font-size:17px;text-align:right;overflow-wrap:anywhere}.skill-metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.finance-skill-card .metric-tile{gap:5px}.finance-skill-card .metric-tile span{font-size:11px}.finance-skill-card .metric-tile strong{font-size:14px}.finance-skill-card p{margin:0;color:#42514c;font-size:12px;font-weight:750;line-height:1.45;overflow-wrap:anywhere}.panel-title.compact{margin-bottom:2px}.panel-title.compact h3{flex:1;margin:0;color:#17211f}.trade-signal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.trade-signal-card{min-width:0;border:1px solid #d7e0dc;border-left:4px solid #66756f;border-radius:8px;background:#fff;padding:12px}.trade-signal-card.signal-buy{border-left-color:#167568}.trade-signal-card.signal-scale_buy{border-left-color:#2f6fbd}.trade-signal-card.signal-reduce{border-left-color:#d38a19}.trade-signal-card.signal-take_profit_half{border-left-color:#b87a18}.trade-signal-card.signal-take_profit_full{border-left-color:#c45f24}.trade-signal-card.signal-sell{border-left-color:#c8534b}.trade-signal-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.trade-signal-head span{color:#60716a;font-size:12px;font-weight:900}.trade-signal-head strong{border-radius:8px;background:#edf4f1;color:#17211f;padding:5px 8px;font-size:13px}.signal-buy .trade-signal-head strong{background:#e8f7f2;color:#0f7567}.signal-scale_buy .trade-signal-head strong{background:#eaf2ff;color:#244b78}.signal-reduce .trade-signal-head strong{background:#fff7ea;color:#815117}.signal-take_profit_half .trade-signal-head strong{background:#fff3d6;color:#7a4a0f}.signal-take_profit_full .trade-signal-head strong{background:#ffe7d8;color:#843b18}.signal-sell .trade-signal-head strong{background:#fdeceb;color:#96352f}.trade-signal-card p{margin:9px 0;color:#17211f;font-size:14px;font-weight:900}.trade-score-row,.trade-reference-grid,.signal-caution-row{display:flex;flex-wrap:wrap;gap:7px}.trade-score-row span,.reference-stat{display:inline-flex;align-items:center;gap:5px;border-radius:8px;background:#edf4f1;color:#42514c;padding:5px 7px;font-size:11px;font-weight:900}.trade-score-row strong,.reference-stat strong{color:#167568}.invalidation-rule{margin-top:8px;border-radius:8px;background:#fff7ea;color:#815117;padding:7px 8px;font-size:12px;font-weight:800;line-height:1.35}.remaining-rule{margin-top:8px;border-radius:8px;background:#eaf2ff;color:#244b78;padding:7px 8px;font-size:12px;font-weight:800;line-height:1.35}.signal-list{display:grid;gap:6px;margin:9px 0 0;padding-left:18px;color:#35433f;font-size:12px;line-height:1.4}.signal-caution-row{margin-top:8px}.signal-caution-row span{border-radius:8px;background:#f4ece7;color:#7d4d36;padding:5px 7px;font-size:11px;font-weight:900}.strategy-tile,.metric-tile{min-width:0;border:1px solid #d7e0dc;border-radius:8px;background:#fbfdfb;padding:12px}.strategy-tile span{display:block;overflow-wrap:anywhere;color:#60716a;font-size:12px;font-weight:900}.strategy-tile strong{display:block;margin-top:6px;color:#17211f;font-size:24px}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:14px}.metric-tile{display:grid;gap:6px}.metric-tile svg{color:#167568}.metric-tile span{color:#60716a;font-size:12px;font-weight:900}.metric-tile strong{color:#17211f;font-size:17px;overflow-wrap:anywhere}.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.insight-grid section{min-width:0}.insight-grid ul{display:grid;gap:9px;margin:0;padding-left:18px}.insight-grid li{color:#35433f;line-height:1.45}.matrix-panel{overflow-x:auto}.matrix-table{min-width:690px}.matrix-head,.matrix-row{display:grid;grid-template-columns:88px repeat(4,1fr);gap:10px;align-items:center}.matrix-head{color:#60716a;font-size:12px;font-weight:900}.matrix-row{min-height:34px;border-top:1px solid #e2e9e6}.matrix-row strong{color:#17211f}.matrix-bar{height:10px;overflow:hidden;border-radius:999px;background:#e2e9e6}.matrix-bar span{display:block;height:100%;border-radius:inherit;background:#167568}.empty-panel{display:grid;place-items:center;min-height:260px;padding:28px;text-align:center}.empty-panel svg{color:#c56d2f}.empty-panel p{color:#60716a}.skeleton-line{height:13px;border-radius:999px;background:#dfe7e3}.skeleton-line.short{width:120px}.skeleton-line.title{width:260px;height:32px;margin-top:8px}.skeleton-line.button{width:130px;height:38px}.skeleton-card{display:grid;align-content:start;gap:18px}@media(max-width:1180px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.combined-card{grid-column:1 / -1}.workspace-grid,.term-dashboard,.short-swing-panel .term-list,.industry-flow-grid,.industry-page-grid,.beneficiary-detail-grid{grid-template-columns:1fr}.control-column{grid-template-columns:minmax(280px,.8fr) minmax(340px,1.2fr)}.metric-grid,.backtest-metrics,.portfolio-rule-grid,.correlation-metrics,.universe-stat-grid,.flow-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.correlation-strip{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{width:min(100% - 20px,1480px);padding-top:14px}.topbar,.detail-head{display:grid}.topbar-actions{justify-content:flex-start}.view-switcher{display:flex;width:100%}.view-switcher button{flex:1;justify-content:center}h1{font-size:25px}.summary-grid,.control-column,.term-dashboard,.industry-list-controls,.industry-flow-grid,.strategy-score-grid,.portfolio-rule-grid,.trade-signal-grid,.finance-skill-grid,.skill-metric-row,.correlation-strip,.correlation-metrics,.metric-grid,.backtest-metrics,.universe-stat-grid,.flow-stat-grid,.insight-grid{grid-template-columns:1fr}.slider-row{grid-template-columns:minmax(96px,1fr) minmax(110px,1.2fr) 42px}.leader-row h2,.detail-head h2{font-size:27px}.detail-score{width:100%;text-align:left}}
