:root{--cream:#f7f2e9;--paper:#fffaf3;--ink:#211f1b;--muted:#817a70;--terra:#c96343;--line:#dcd2c5;--green:#2d7a58}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% 5%,#fff9,transparent 32%),var(--cream);color:var(--ink);font-family:Inter,"PingFang SC",system-ui,sans-serif}.lab-header{height:76px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 42px;border-bottom:1px solid var(--line)}.brand{font:600 25px Georgia,serif;color:var(--ink);text-decoration:none}.back{color:var(--muted);text-decoration:none;font-size:13px}.account{justify-self:end;color:var(--muted);font-size:12px}.eyebrow{margin:0;color:var(--terra);font-size:10px;font-weight:800;letter-spacing:.2em}main{max-width:1160px;margin:auto;padding:62px 36px 80px}.intro{text-align:center}.intro h1{margin:13px 0 10px;font:600 clamp(42px,6vw,68px)/1.1 Georgia,"Songti SC",serif}.intro>p:not(.eyebrow){margin:0;color:var(--muted)}.workspace{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start;margin-top:50px}.panel{padding:25px;border:1px solid var(--line);border-radius:20px;background:#fffaf3d9;box-shadow:0 12px 32px #392d2310}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-head small{color:var(--terra);font-weight:800;letter-spacing:.16em}.section-head h2{margin:5px 0 0;font:600 25px Georgia,"Songti SC",serif}.status-dot,.status{padding:7px 10px;border-radius:999px;background:#c9634312;color:var(--terra);font-size:10px;font-weight:800}.status-dot:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--terra)}textarea,input,select{width:100%;border:1px solid var(--line);border-radius:11px;background:#fffdf9;color:var(--ink);font:inherit;outline:none}textarea:focus,input:focus,select:focus{border-color:var(--terra);box-shadow:0 0 0 3px #c9634314}.idea-panel>textarea{min-height:190px;padding:18px;resize:vertical;font-size:16px;line-height:1.7}.examples{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.examples button{padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.examples button:hover{border-color:var(--terra);color:var(--terra)}.parse-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px}.provider{display:flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:#efe7dc}.provider button{padding:8px 10px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer}.provider button.active{background:var(--paper);color:var(--terra)}.provider button:disabled{opacity:.35}.primary{padding:12px 17px;border:0;border-radius:10px;background:var(--terra);color:#fff;font-weight:800;cursor:pointer}.primary:disabled{opacity:.5}.error{min-height:18px;margin:12px 0 0;color:#b0442b;font-size:12px}.draft-panel label{display:block;margin:13px 0 0;color:var(--muted);font-size:11px;font-weight:700}.draft-panel input,.draft-panel select{height:43px;margin-top:6px;padding:0 11px}.draft-panel textarea{min-height:82px;margin-top:6px;padding:11px;resize:vertical;line-height:1.55}.draft-panel .formula{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.notes{margin-top:14px;padding:12px;border-radius:10px;background:#f3ebe1;color:var(--muted);font-size:11px;line-height:1.6}.notes b{color:var(--ink)}.wide{width:100%;margin-top:16px}.hidden{display:none!important}.library{margin-top:58px}.library-head{display:flex;align-items:end;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line)}.library-head h2{margin:6px 0 0;font:600 30px Georgia,"Songti SC",serif}.library-head>span{color:var(--muted);font-size:12px}.factor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.factor-card{position:relative;min-width:0;padding:19px;border:1px solid var(--line);border-radius:16px;background:#fffaf3a8}.factor-card .top{display:flex;align-items:start;justify-content:space-between;gap:10px}.factor-card h3{margin:0;font-size:16px}.factor-card .category{color:var(--terra);font-size:10px;font-weight:800}.factor-card p{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;min-height:57px;color:var(--muted);font-size:12px;line-height:1.6}.factor-card code{display:block;overflow:hidden;padding:9px;border-radius:8px;background:#efe7dc;color:#75412f;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.factor-meta{display:flex;align-items:center;justify-content:space-between;margin-top:14px;color:#a69d91;font-size:10px}.delete-factor{border:0;background:none;color:#a69d91;cursor:pointer}.delete-factor:hover{color:var(--terra)}.empty{grid-column:1/-1;padding:50px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);text-align:center}.loading{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}@media(max-width:800px){.lab-header{height:64px;padding:0 16px}.brand{font-size:20px}.account{display:none}main{padding:40px 16px 60px}.workspace{grid-template-columns:1fr;margin-top:34px}.panel{padding:18px}.factor-grid{grid-template-columns:1fr}.parse-actions{align-items:stretch;flex-direction:column}.provider{width:100%}.provider button{flex:1}.primary{width:100%}.two,.three{grid-template-columns:1fr}.idea-panel>textarea{min-height:160px;font-size:16px}}
.status.verified{background:#2d7a5814;color:var(--green)}.result-block{margin-top:13px;padding:12px;border:1px solid #d8cec1;border-radius:11px;background:#f5eee5}.result-note{color:var(--muted);font-size:10px}.result-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.metric{display:flex;flex-direction:column;gap:3px}.metric b{font:600 17px Georgia,serif}.metric small{color:var(--muted);font-size:9px}.oos{margin-top:10px;padding-top:9px;border-top:1px solid var(--line);color:var(--muted);font-size:9px;line-height:1.5}.oos b{color:var(--ink)}.card-actions{display:flex;align-items:center;gap:9px;margin-top:14px}.factor-date{margin-right:auto;color:#a69d91;font-size:10px}.run-factor{padding:7px 10px;border:0;border-radius:8px;background:var(--terra);color:#fff;font-size:10px;font-weight:800;cursor:pointer}.run-factor:disabled{opacity:.5}.delete-factor{font-size:10px}

.curve-panel{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.curve-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.curve-tabs{display:flex;gap:4px}.curve-tabs button{padding:5px 7px;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--muted);font-size:9px;cursor:pointer}.curve-tabs button.active{border-color:var(--terra);background:var(--paper);color:var(--terra)}.curve-legend{display:flex;gap:9px;color:var(--muted);font-size:9px}.curve-legend span:before{content:"";display:inline-block;width:13px;height:2px;margin:0 4px 2px 0}.curve-legend .blue:before{background:#276bcf}.curve-legend .red:before{background:#d4544d}.equity-chart{display:block;width:100%;height:230px;margin-top:8px}.curve-stats{color:var(--muted);font-size:9px;line-height:1.5;text-align:center}
@media(max-width:800px){.curve-head{align-items:flex-start;flex-direction:column}.curve-tabs{width:100%}.curve-tabs button{flex:1}.equity-chart{height:210px}}

.factor-description{position:relative}.factor-description.expanded p{display:block;min-height:0;-webkit-line-clamp:unset}.description-toggle{display:block;margin:-4px 0 10px;padding:0;border:0;background:transparent;color:var(--terra);font-size:10px;font-weight:700;cursor:pointer}.score-block{display:grid;grid-template-columns:auto 1fr;gap:9px 13px;margin-bottom:13px;padding:12px;border-radius:11px;background:linear-gradient(135deg,#fffaf3,#efe4d6);box-shadow:inset 0 0 0 1px #d9cdbf}.score-main{display:flex;align-items:baseline;gap:3px}.score-main>b{color:var(--terra);font:700 30px/1 Georgia,serif}.score-main>small{color:var(--muted);font-size:9px}.score-grade{margin-left:5px;padding:4px 6px;border-radius:6px;background:#c9634314;color:var(--terra);font-size:10px;font-weight:900}.grade-A,.grade-B{background:#2d7a5814;color:var(--green)}.score-text{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:3px}.score-text>b{font-size:11px}.score-text>small{color:var(--muted);font-size:9px;line-height:1.4}.score-details{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px}.score-details span{padding:4px 6px;border-radius:6px;background:#fffaf3;color:var(--muted);font-size:8px}
.stock-verdict{margin:0 0 12px;padding:14px;border-left:4px solid var(--muted);border-radius:10px;background:#817a700b}.stock-verdict.supported{border-left-color:var(--green);background:#2d7a580b}.stock-verdict.insufficient{border-left-color:#d99b27;background:#d99b270b}.stock-verdict.partial{border-left-color:#d99b27;background:#d99b270b}.stock-verdict.partial .stock-verdict-copy b{color:#a8761c}.stock-verdict-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.stock-verdict-copy{display:flex;min-width:0;flex-direction:column;gap:5px}.stock-verdict-copy b{font:600 21px/1.15 Georgia,"Songti SC",serif}.stock-verdict.supported .stock-verdict-copy b{color:var(--green)}.stock-verdict.insufficient .stock-verdict-copy b{color:#9a6c18}.stock-verdict-copy span{color:var(--muted);font-size:9px;line-height:1.45}.stock-result-rating{flex:0 0 auto;color:var(--muted);font-size:9px;font-weight:900}.stock-comparison{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.stock-comparison-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:10px 11px;border-bottom:1px solid var(--line)}.stock-comparison-row:last-child{border-bottom:0}.stock-comparison-label{flex:0 0 auto;min-width:48px;color:var(--muted);font-size:8px;font-weight:900}.stock-comparison-value{flex:0 0 auto;font:600 14px Georgia,"Songti SC",serif}.stock-comparison-baseline{flex:1 1 auto;min-width:0;color:var(--muted);font-size:9px}.stock-comparison-delta{flex:0 0 auto;margin-left:auto;font-size:9px;white-space:nowrap}.stock-comparison-delta.positive{color:var(--green)}.stock-comparison-delta.negative{color:var(--terra)}.stock-comparison-delta.neutral{color:var(--muted)}.stock-comparison-sample .stock-comparison-value{flex:1 1 150px;font:800 10px/1.5 Inter,"PingFang SC",system-ui,sans-serif}.stock-continuous-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:10px 11px;border-bottom:1px solid var(--line)}.stock-continuous-row:last-child{border-bottom:0}.stock-continuous-row small{flex:1 1 120px;min-width:0;color:var(--muted);font-size:8px;line-height:1.45}.stock-result-footnote{display:block;margin:7px 2px 0;color:var(--muted);font-size:7px}.stock-result-reason{margin:10px 0 0;padding:9px 11px;border-radius:8px;background:#f3ebe1;color:var(--ink);font-size:9px;line-height:1.55}.stock-result-details{margin-top:12px;border-top:1px solid var(--line)}.stock-result-details>summary{padding:11px 2px;color:var(--muted);font-size:9px;font-weight:900;cursor:pointer}.stock-result-details[open]>summary{color:var(--terra)}.stock-full-definition{display:flex;flex-direction:column;gap:7px;margin:0 0 11px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#f5eee5}.stock-full-definition>b{font-size:8px}.stock-full-copy{margin:0;color:var(--muted);font-size:9px;line-height:1.65;white-space:pre-wrap}.stock-full-formula{display:block;overflow-wrap:anywhere;padding:9px;border:1px solid var(--line);border-radius:7px;background:#fffdf9;font:8px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}.stock-score-context{margin:9px 0;color:var(--muted);font-size:8px}.stock-result-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:13px}.stock-primary-action{padding:9px 12px;border:1px solid var(--terra);border-radius:8px;background:var(--terra);color:#fff;font-size:9px;font-weight:900;cursor:pointer}.stock-primary-action.archive-rejected{border-color:var(--muted);background:transparent;color:var(--muted)}.stock-secondary-actions{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.stock-text-action{padding:3px!important;border:0!important;background:transparent!important;color:var(--muted)!important;font-size:8px!important;font-weight:800!important;cursor:pointer}.stock-text-action:hover{color:var(--terra)!important}.stock-action-separator{color:var(--line);font-size:8px}.stock-result-actions .factor-date{margin-left:auto;color:var(--muted);font-size:7px}
@media(max-width:800px){.stock-result-actions{align-items:stretch;flex-direction:column}.stock-primary-action{width:100%}.stock-secondary-actions{justify-content:center}.stock-result-actions .factor-date{margin-left:0;text-align:center}}

.performance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.performance-item{display:flex;min-width:0;flex-direction:column;gap:3px;padding:9px 7px;border:1px solid var(--line);border-radius:8px;background:#fffaf3}.performance-item b{overflow:hidden;color:var(--ink);font:600 16px Georgia,serif;text-overflow:ellipsis}.performance-item small{color:var(--muted);font-size:8px}.curve-stats{padding-top:2px}
@media(max-width:800px){.performance-grid{grid-template-columns:repeat(2,1fr)}.performance-item b{font-size:15px}}

.market-scores{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.market-score{position:relative;display:grid;grid-template-columns:1fr auto;gap:3px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fffaf3}.market-score small{grid-column:1/-1;color:var(--muted);font-size:8px}.market-score b{font:600 15px Georgia,serif}.market-score span{justify-self:end;padding:3px 5px;border-radius:5px;background:#c9634314;color:var(--terra);font-size:8px;font-weight:800}.market-score span.grade-A,.market-score span.grade-B{background:#2d7a5814;color:var(--green)}
@media(max-width:800px){.market-scores{grid-template-columns:1fr 1fr}.market-score:last-child:nth-child(odd){grid-column:1/-1}}

.mode-switch{display:flex;width:max-content;margin:38px auto -18px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#eee5da}.mode-switch button{padding:10px 16px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:12px;font-weight:800;cursor:pointer}.mode-switch button.active{background:var(--paper);color:var(--terra);box-shadow:0 2px 8px #392d2312}.batch-workspace{margin-top:50px}.batch-intro{max-width:780px;margin:-6px 0 18px;color:var(--muted);font-size:12px;line-height:1.7}.batch-workspace>textarea{min-height:260px;padding:18px;resize:vertical;font-size:14px;line-height:1.8}.batch-tools{display:flex;align-items:center;gap:12px;margin-top:15px}.file-button{position:relative;padding:10px 13px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:11px;font-weight:800;cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;opacity:0}.batch-tools>span{margin-right:auto;color:var(--muted);font-size:11px}.batch-tools>span.limit{color:var(--terra);font-weight:800}.batch-provider{flex:none}.batch-status{margin:14px 0 0;color:var(--green);font-size:12px;line-height:1.6}.batch-results{margin-top:24px}.batch-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:16px}.batch-summary>div{display:flex;align-items:baseline;gap:6px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#f5eee5}.batch-summary b{color:var(--terra);font:700 24px Georgia,serif}.batch-summary small{color:var(--muted);font-size:10px}.result-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fffdf9}.batch-table{width:100%;min-width:850px;border-collapse:collapse;font-size:11px}.batch-table th{position:sticky;top:0;padding:11px 10px;background:#efe6da;color:var(--muted);text-align:left;white-space:nowrap}.batch-table td{padding:11px 10px;border-top:1px solid #e7ded2;color:var(--muted)}.batch-table td:nth-child(2){max-width:230px;color:var(--ink);font-weight:700}.batch-table tbody tr:hover{background:#c9634308}.role-badge{display:inline-block;padding:5px 7px;border-radius:999px;background:#817a7014;color:var(--muted);font-size:9px;font-weight:900;white-space:nowrap}.role-badge.core{background:#2d7a5818;color:var(--green)}.role-badge.special{background:#276bcf14;color:#276bcf}.role-badge.aux{background:#c9634314;color:var(--terra)}.role-badge.duplicate,.role-badge.reject{background:#817a7014;color:#817a70}.batch-method{margin:10px 2px 0;color:var(--muted);font-size:10px}.status.screened{background:#276bcf12;color:#276bcf}.screening-mini{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#f5eee5}.screening-mini-head{display:flex;align-items:center;justify-content:space-between}.screening-mini-head>b{color:var(--terra);font:700 21px Georgia,serif}.screening-mini>small{color:var(--muted);font-size:9px;line-height:1.5}.screening-mini .duplicate-note{color:#a45a43}
.strategy-pattern-bridge{display:flex;align-items:flex-start;gap:12px;margin:0 0 18px;padding:12px 14px;border:1px solid #2d7a5833;border-radius:11px;background:#2d7a580c}.strategy-pattern-bridge b{flex:none;color:var(--green);font-size:11px}.strategy-pattern-bridge span{color:var(--muted);font-size:10px;line-height:1.6}.strategy-pattern-bridge.is-empty{border-color:var(--line);background:#f5eee5}.strategy-pattern-bridge.is-empty b{color:var(--muted)}
@media(max-width:800px){.mode-switch{width:100%;margin-top:28px}.mode-switch button{flex:1;padding:10px 7px}.batch-workspace{margin-top:34px}.batch-workspace .section-head{align-items:flex-start;gap:10px}.batch-workspace .section-head .status-dot{white-space:nowrap}.batch-workspace>textarea{min-height:230px;font-size:16px}.batch-tools{align-items:stretch;flex-wrap:wrap}.file-button{display:flex;align-items:center;justify-content:center;min-height:42px}.batch-tools>span{display:flex;align-items:center}.batch-provider{order:3;width:100%}.batch-tools .primary{order:4}.batch-summary{grid-template-columns:1fr 1fr}.batch-summary>div{padding:11px}.result-table-wrap{margin-right:-18px;border-right:0;border-radius:12px 0 0 12px}.batch-table{min-width:780px}}

.auto-controls{display:flex;align-items:end;gap:12px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#f5eee5}.auto-controls label{display:flex;min-width:115px;flex-direction:column;gap:6px;color:var(--muted);font-size:10px;font-weight:800}.auto-controls select{height:42px;padding:0 10px}.auto-controls .primary{margin-left:auto}.auto-results{margin-top:22px}.auto-verdict{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding:16px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,#fffaf3,#efe4d6)}.strategy-grade{display:grid;width:58px;height:58px;flex:none;place-items:center;border-radius:14px;background:#817a7014;color:var(--muted);font:800 29px Georgia,serif}.strategy-grade.grade-A,.strategy-grade.grade-B{background:#2d7a5818;color:var(--green)}.strategy-grade.grade-C{background:#c9634314;color:var(--terra)}.auto-verdict b{font-size:16px}.auto-verdict p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.auto-title{margin:24px 0 11px;font:600 18px Georgia,"Songti SC",serif}.weight-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.weight-row{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.weight-head{display:flex;justify-content:space-between;gap:10px;font-size:11px}.weight-head span{color:var(--terra);font-weight:800}.weight-track{height:6px;margin:8px 0;border-radius:999px;background:#e8ded2}.weight-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--terra),#e49a75)}.weight-row small{color:var(--muted);font-size:9px}.strategy-chart{margin-top:20px;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fffdf9}.auto-performance{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stage-card{padding:11px;border:1px solid var(--line);border-radius:9px;background:#f5eee5}.stage-card>b{font-size:11px}.stage-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.stage-metrics span{display:flex;flex-direction:column}.stage-metrics b{font:600 14px Georgia,serif}.stage-metrics small{color:var(--muted);font-size:8px}.auto-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.correlation-wrap{display:flex;align-items:start;gap:12px;overflow:auto}.correlation-table{border-spacing:3px;font-size:8px;text-align:center}.correlation-table th{min-width:22px;color:var(--muted)}.correlation-table td{width:30px;height:28px;border-radius:5px;color:#fff;font-weight:800}.correlation-labels{min-width:130px;margin:0;padding-left:20px;color:var(--muted);font-size:9px;line-height:1.8}.optimization-steps{display:flex;max-height:300px;flex-direction:column;gap:7px;overflow:auto}.optimization-step{display:grid;grid-template-columns:24px 1fr;gap:3px 8px;padding:9px;border-left:2px solid var(--terra);background:#f5eee5}.optimization-step>b{grid-row:1/3;display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:var(--terra);color:#fff;font-size:9px}.optimization-step span{font-size:10px}.optimization-step small{color:var(--muted);font-size:8px}.factor-role-table td:first-child{color:var(--ink);font-weight:700}
.stage-verdict{display:block;margin-top:8px;padding-top:7px;border-top:1px solid var(--line);color:var(--terra);font-size:8px;font-weight:800}
.robustness-panel{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fffdf9}.robustness-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.robustness-head small{color:var(--terra);font-size:9px;font-weight:800;letter-spacing:.14em}.robustness-head h3{margin:4px 0 0;font:600 18px Georgia,"Songti SC",serif}.reliability-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}.reliability-card{padding:11px;border:1px solid var(--line);border-radius:10px;background:#f5eee5}.reliability-card>small{color:var(--muted);font-size:8px}.reliability-card>div{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:6px}.reliability-card>div b{font:700 19px Georgia,serif}.reliability-card>div span{padding:3px 5px;border-radius:5px;font-size:8px;font-weight:800}.reliability-card.pass>div span{background:#2d7a5816;color:var(--green)}.reliability-card.fail>div span{background:#c9634316;color:var(--terra)}.reliability-card p{margin:6px 0 0;color:var(--muted);font-size:8px;line-height:1.4}.bootstrap-range{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f5eee5}.bootstrap-range>b{font-size:10px}.bootstrap-range>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}.bootstrap-range span{display:flex;flex-direction:column;gap:3px}.bootstrap-range span b{font:600 13px Georgia,serif}.bootstrap-range span small{color:var(--muted);font-size:8px}.stress-table{min-width:580px}.data-reality{margin-top:11px;padding:10px;border-left:3px solid var(--terra);background:#c9634309;color:var(--muted);font-size:10px;line-height:1.6}.data-reality b{color:var(--ink)}
@media(max-width:800px){.reliability-cards{grid-template-columns:1fr 1fr}.bootstrap-range>div{grid-template-columns:1fr}.robustness-panel{margin-right:-18px;border-right:0;border-radius:13px 0 0 13px}.robustness-panel .result-table-wrap{margin-right:0}.robustness-head{padding-right:15px}}
.factory-panel{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fffdf9}.factory-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.factory-head small{color:#276bcf;font-size:9px;font-weight:800;letter-spacing:.14em}.factory-head h3{margin:4px 0 0;font:600 18px Georgia,"Songti SC",serif}.factory-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}.factory-summary>div{display:flex;align-items:baseline;gap:6px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#f5eee5}.factory-summary b{color:#276bcf;font:700 20px Georgia,serif}.factory-summary small{color:var(--muted);font-size:8px}.champion-card{margin-top:13px;padding:16px;border:1px solid #b7c9e7;border-radius:13px;background:linear-gradient(135deg,#f7faff,#eef3fb)}.champion-label{color:#276bcf;font-size:9px;font-weight:900;letter-spacing:.08em}.champion-card h4{margin:7px 0 5px;font:600 20px Georgia,"Songti SC",serif}.champion-card>p{margin:0;color:var(--muted);font-size:10px;line-height:1.6}.champion-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:12px}.champion-metrics span{display:flex;flex-direction:column;gap:3px;padding:8px;border:1px solid #ccd8e9;border-radius:8px;background:#fff}.champion-metrics b{font:600 14px Georgia,serif}.champion-metrics small{color:var(--muted);font-size:7px}.factory-subtitle{margin:17px 0 9px;font-size:12px}.challenger-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.challenger-card{padding:11px;border:1px solid var(--line);border-radius:10px;background:#f5eee5}.challenger-card>div{display:flex;align-items:center;justify-content:space-between}.challenger-card>div span{display:grid;width:20px;height:20px;place-items:center;border-radius:6px;background:#276bcf;color:#fff;font-size:8px;font-weight:800}.challenger-card>div small{color:var(--muted);font-size:8px}.challenger-card>b{display:block;margin-top:8px;font-size:10px}.challenger-card p{min-height:31px;margin:5px 0;color:var(--muted);font-size:8px;line-height:1.5}.challenger-card>small{color:#276bcf;font-size:8px}.factory-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.factory-families{display:grid;grid-template-columns:1fr 1fr;gap:7px}.factory-families>div{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#f5eee5}.factory-families b{color:#276bcf;font:700 16px Georgia,serif}.factory-families small{color:var(--muted);font-size:8px}
@media(max-width:800px){.factory-panel{margin-right:-18px;border-right:0;border-radius:13px 0 0 13px}.factory-head{padding-right:15px}.factory-summary{grid-template-columns:1fr 1fr}.champion-metrics{grid-template-columns:repeat(2,1fr)}.challenger-list,.factory-grid{grid-template-columns:1fr}.challenger-card p{min-height:0}.factory-grid{padding-right:15px}}
@media(max-width:800px){.auto-controls{align-items:stretch;flex-wrap:wrap}.auto-controls label{min-width:calc(50% - 6px)}.auto-controls .primary{width:100%;margin:0}.weight-list,.auto-grid{grid-template-columns:1fr}.auto-performance{grid-template-columns:1fr}.strategy-chart{margin-right:-18px;border-right:0;border-radius:13px 0 0 13px}.strategy-chart .curve-head{padding-right:15px}.correlation-wrap{padding-bottom:6px}.optimization-steps{max-height:none}.factor-role-table{min-width:720px}}

.secondary-button{padding:11px 15px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.secondary-button:hover{border-color:var(--terra);color:var(--terra)}.secondary-button:disabled{opacity:.45;cursor:not-allowed}.primary.searching{background:#817a70}.best-performance{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:10px}.best-metric{display:flex;min-width:0;flex-direction:column;gap:4px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#f5eee5}.best-metric b{font:600 16px Georgia,serif}.best-metric small{color:var(--muted);font-size:8px}.search-table{min-width:680px}.search-table td:first-child{color:var(--terra);font-weight:900}.search-table td:nth-child(2){color:var(--ink);font-weight:700}
@media(max-width:800px){.auto-controls .secondary-button{width:100%}.best-performance{grid-template-columns:repeat(2,1fr)}.search-table{min-width:650px}}

.fair-search-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:18px 2px 9px}.fair-search-head b{font-size:12px}.fair-search-head small{color:var(--muted);font-size:9px}.factor-count-stats{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.count-stat{display:flex;min-width:0;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fffdf9}.count-stat b{color:var(--terra);font-size:11px}.count-stat small,.count-stat span{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.count-stat.pending{grid-column:1/-1;color:var(--muted);font-size:10px;text-align:center}.table-action{padding:6px 9px;border:1px solid var(--terra);border-radius:7px;background:transparent;color:var(--terra);font-size:9px;font-weight:800;cursor:pointer;white-space:nowrap}.table-action:hover{background:#c9634310}.table-action:disabled{border-color:var(--line);color:var(--muted);cursor:default}.favorite-head{display:flex;align-items:end;justify-content:space-between;margin-top:30px;padding-bottom:10px;border-bottom:1px solid var(--line)}.favorite-head small{color:var(--terra);font-size:8px;font-weight:800;letter-spacing:.14em}.favorite-head h3{margin:4px 0 0;font:600 20px Georgia,"Songti SC",serif}.favorite-head>span{color:var(--muted);font-size:10px}.favorite-comparison-note{margin:10px 2px 0;color:var(--muted);font-size:9px;line-height:1.6}.favorite-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:12px}.favorite-empty{grid-column:1/-1;padding:28px;border:1px dashed var(--line);border-radius:11px;color:var(--muted);font-size:10px;text-align:center}.favorite-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fffdf9}.favorite-card[data-acceptance-rank="1"]{border-color:#2d7a5866;box-shadow:0 8px 24px #2d7a580c}.favorite-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.favorite-market,.favorite-validation{padding:4px 7px;border-radius:999px;background:#276bcf12;color:#276bcf;font-size:8px;font-weight:900}.favorite-validation{background:#817a7012;color:var(--muted)}.favorite-validation.grade-A,.favorite-validation.grade-B{background:#2d7a5816;color:var(--green)}.favorite-validation.grade-C,.favorite-validation.grade-D{background:#c9634316;color:var(--terra)}.favorite-card h4{margin:11px 0 5px;font-size:14px}.favorite-card>p{overflow:hidden;margin:0;color:var(--muted);font-size:9px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.favorite-card>p.acceptance-note{margin-top:9px;padding:8px 9px;border-radius:7px;white-space:normal}.acceptance-note.accepted{background:#2d7a580b;color:var(--green)}.acceptance-note.pending{background:#817a700c}.favorite-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:11px}.favorite-metrics span{display:flex;min-width:0;flex-direction:column;gap:3px;padding:7px;border-radius:7px;background:#f5eee5}.favorite-metrics b{overflow:hidden;font:600 13px Georgia,serif;text-overflow:ellipsis;white-space:nowrap}.favorite-metrics small{color:var(--muted);font-size:7px}.favorite-actions{display:flex;align-items:center;gap:7px;margin-top:12px}.favorite-actions .primary,.favorite-actions .secondary-button{width:auto;margin:0;padding:8px 10px;font-size:9px}.delete-favorite{margin-left:auto;border:0;background:transparent;color:var(--muted);font-size:9px;cursor:pointer}.delete-favorite:hover{color:var(--terra)}
.strategy-dialog{width:min(960px,calc(100vw - 30px));max-height:88vh;padding:0;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 24px 80px #30251d42;color:var(--ink)}.strategy-dialog::backdrop{background:#2b211b8f;backdrop-filter:blur(3px)}.dialog-head{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--line);background:var(--paper)}.dialog-head small{color:var(--terra);font-size:8px;font-weight:800;letter-spacing:.15em}.dialog-head h3{margin:4px 0 0;font:600 21px Georgia,"Songti SC",serif}.dialog-head button{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--muted);font-size:22px;cursor:pointer}.dialog-content{padding:20px}.dialog-note{margin:0 0 13px;color:var(--muted);font-size:10px;line-height:1.6}.copy-code{display:block;width:auto;margin:0 0 10px;padding:8px 12px;font-size:9px}.strategy-code{overflow:auto;min-height:400px;max-height:62vh;margin:0;padding:16px;border:1px solid #28231f;border-radius:11px;background:#201d1a;color:#f2e8da;font:10px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre}.validation-summary{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#f5eee5}.validation-summary>b{display:grid;width:48px;height:48px;place-items:center;border-radius:11px;background:#817a7015;color:var(--muted);font:800 25px Georgia,serif}.validation-summary.grade-A>b,.validation-summary.grade-B>b{background:#2d7a5818;color:var(--green)}.validation-summary.grade-C>b,.validation-summary.grade-D>b{background:#c9634318;color:var(--terra)}.validation-summary>div{display:flex;flex-direction:column;gap:4px}.validation-summary strong{font-size:14px}.validation-summary small{color:var(--muted);font-size:9px}.validation-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:13px 0}.validation-check{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fffdf9}.validation-check>b{display:grid;width:25px;height:25px;flex:none;place-items:center;border-radius:50%;background:#c9634314;color:var(--terra)}.validation-check.pass>b{background:#2d7a5816;color:var(--green)}.validation-check>div{display:flex;min-width:0;flex-direction:column;gap:2px}.validation-check strong{font-size:10px}.validation-check small{color:var(--muted);font-size:8px}.validation-section{margin-top:18px}.validation-section h4{margin:0 0 8px;font-size:12px}.validation-table{min-width:560px}.validation-table td:first-child{color:var(--ink);font-weight:700}
@media(max-width:800px){.fair-search-head{align-items:flex-start;flex-direction:column}.factor-count-stats{display:flex;overflow:auto;padding-bottom:4px}.count-stat{min-width:105px}.favorite-grid{grid-template-columns:1fr}.favorite-metrics{grid-template-columns:repeat(2,1fr)}.favorite-actions{align-items:stretch;flex-wrap:wrap}.favorite-actions .primary,.favorite-actions .secondary-button{flex:1}.strategy-dialog{width:calc(100vw - 16px);max-height:94vh}.dialog-head{padding:14px}.dialog-content{padding:14px}.validation-checks{grid-template-columns:1fr}.strategy-code{min-height:360px;font-size:9px}.validation-section .result-table-wrap{margin-right:0}}

.auto-progress{margin-top:12px;padding:13px 15px;border:1px solid var(--line);border-radius:11px;background:#fffdf9}.auto-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px}.auto-progress-head span{color:var(--terra);font-weight:900}.auto-progress-track{height:9px;margin:10px 0 7px;overflow:hidden;border-radius:999px;background:#e6dbce;box-shadow:inset 0 1px 2px #392d2314}.auto-progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--terra),#e89c72);transition:width .2s ease}.auto-progress small{display:block;color:var(--muted);font-size:9px;line-height:1.5}
.best-strategy-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.best-strategy-head .auto-title{margin:0}.best-strategy-head .primary{width:auto;margin:0;padding:10px 14px}.curve-head>b{font-size:11px}.batch-method{line-height:1.7}
@media(max-width:800px){.best-strategy-head{align-items:stretch;flex-direction:column}.best-strategy-head .primary{width:100%}}

.library-note{margin:8px 0 16px;color:var(--muted);font-size:10px;line-height:1.6}.research-records{grid-column:1/-1;margin-top:42px}.library-save{padding:8px 10px;border:1px solid #2d7a58;border-radius:8px;background:#2d7a580d;color:var(--green);font-size:9px;font-weight:800;cursor:pointer}.library-save:disabled{border-color:var(--line);color:var(--muted);cursor:not-allowed}.factor-library{margin-top:34px}.library-toolbar{display:flex;align-items:end;gap:10px;margin:18px 0;padding:13px;border:1px solid var(--line);border-radius:12px;background:#f5eee5}.library-tracking-actions{display:flex;min-width:220px;flex:1;align-items:center;gap:9px}.library-tracking-actions button{flex:none}.tracking-status{color:var(--muted);font-size:8px;line-height:1.4}.tracking-status.failed{color:#b0442b}.library-tabs{display:flex;margin-right:auto;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fffdf9}.library-tabs button{padding:9px 12px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font-size:9px;font-weight:800;cursor:pointer}.library-tabs button:last-child{border-right:0}.library-tabs button.active{background:var(--terra);color:#fff}.library-toolbar label{display:flex;min-width:125px;flex-direction:column;gap:5px;color:var(--muted);font-size:8px;font-weight:800}.library-toolbar select{height:36px;padding:0 8px}.library-factor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.library-factor-card{display:flex;min-width:0;flex-direction:column;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fffdf9}.library-factor-head h3{margin:8px 0 10px;font:600 16px Georgia,"Songti SC",serif}.library-tags{display:flex;gap:5px}.library-tags span{padding:4px 6px;border-radius:999px;background:#817a7012;color:var(--muted);font-size:8px;font-weight:800}.library-tags .system-origin{background:#276bcf12;color:#276bcf}.library-tags .user-origin{background:#2d7a5815;color:var(--green)}.library-rating{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#f5eee5}.library-rating>b{display:grid;width:42px;height:42px;flex:none;place-items:center;border-radius:9px;background:#817a7014;color:var(--muted);font:700 20px Georgia,serif}.library-rating.grade-A>b,.library-rating.grade-B>b{background:#2d7a5818;color:var(--green)}.library-rating.grade-C>b{background:#c9634316;color:var(--terra)}.library-rating>div{display:flex;min-width:0;flex-direction:column;gap:3px}.library-rating strong{font-size:10px}.library-rating small{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:8px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.factor-tracking{display:flex;flex-direction:column;gap:4px;margin-top:9px;padding:9px 10px;border:1px solid #2d7a5830;border-radius:9px;background:#2d7a5808}.factor-tracking-main{min-height:0!important;margin:0!important;color:var(--ink)!important;font-size:8px!important;font-weight:800;line-height:1.55!important;-webkit-line-clamp:unset!important}.factor-tracking small{color:var(--muted);font-size:8px;line-height:1.45}.factor-tracking .factor-tracking-warning{color:#a14d28;font-weight:800}.library-factor-card>p{display:-webkit-box;overflow:hidden;min-height:45px;margin:11px 0 8px;color:var(--muted);font-size:9px;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:3}.library-factor-card>code{overflow:auto;padding:8px;border-radius:7px;background:#28231f;color:#eee2d2;font-size:8px;white-space:nowrap}.library-meta{display:flex;flex-direction:column;gap:4px;margin:9px 0;color:var(--muted);font-size:8px;line-height:1.4}.library-card-actions{display:flex;margin-top:auto;padding-top:4px}.library-card-actions button{width:100%;margin:0;padding:9px;font-size:9px}.delete-library{border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.delete-library:hover{border-color:var(--terra);color:var(--terra)}
.library-tags .review-verdict.passed{background:#2d7a5815;color:var(--green)}.library-tags .review-verdict.advisory{background:#d39a2218;color:#946a0c}.admit-rejected{background:#c78b19}
@media(max-width:900px){.library-factor-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.mode-switch button{font-size:9px}.library-toolbar{align-items:stretch;flex-wrap:wrap}.library-tracking-actions{width:100%;min-width:0;flex-basis:100%;align-items:flex-start;flex-direction:column}.library-tabs{width:100%;margin:0}.library-tabs button{flex:1}.library-toolbar label{min-width:calc(50% - 5px);flex:1}.library-factor-grid{grid-template-columns:1fr}.factor-library{margin-right:-18px;border-right:0;border-radius:13px 0 0 13px}.factor-library>.library-head,.factor-library>.library-note,.factor-library>.library-toolbar,.factor-library>.library-factor-grid{margin-right:18px}}
.stock-target{display:grid;grid-template-columns:minmax(250px,1.5fr) minmax(130px,.65fr) minmax(130px,.65fr);gap:14px;align-items:start;margin:0 0 18px;padding:16px;border:1px solid #ded4c8;border-radius:14px;background:#faf7f2}.stock-target label{display:flex;min-width:0;flex-direction:column;gap:6px;margin:0;color:var(--muted);font-size:11px;font-weight:700}.stock-target select{height:43px;padding:0 11px}.stock-target small,.factor-instrument,.stock-method{color:#7e756c}.factor-instrument{display:block;margin-top:5px;font:600 12px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}.stock-result .result-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.stock-method,.coverage-warning{margin:12px 0 0;font-size:12px;line-height:1.65}.coverage-warning{padding:9px 11px;border-radius:8px;background:#b27a2512;color:#8a5d18}@media(max-width:700px){.stock-target{grid-template-columns:1fr}.stock-result .result-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
.instrument-field{position:relative}.stock-search{position:relative;margin-top:6px}.stock-search>input[type="text"],.stock-search>input:not([type]){height:43px;margin:0;padding:0 38px 0 35px}.stock-search-icon{position:absolute;z-index:2;top:14px;left:13px;width:13px;height:13px;border:2px solid #817a70;border-radius:50%;pointer-events:none}.stock-search-icon:after{content:"";position:absolute;width:6px;height:2px;right:-5px;bottom:-3px;transform:rotate(45deg);border-radius:2px;background:#817a70}.selected-instrument{display:block;min-height:16px;margin-top:5px;font-weight:700}.stock-search-results{position:absolute;z-index:20;top:48px;right:0;left:0;max-height:290px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fffdf9;box-shadow:0 15px 35px #392d2330}.stock-search-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;width:100%;padding:10px 11px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.stock-search-option:hover,.stock-search-option.active{background:#c9634310}.stock-search-option b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.stock-search-option code{color:var(--terra);font-size:10px}.stock-search-option small{grid-column:1/-1;font-size:8px}.stock-search-empty{padding:14px;color:var(--muted);font-size:10px;text-align:center}
.research-toolbar{display:flex;align-items:center;gap:12px;margin:16px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#f5eee5}.research-toolbar label{display:flex;align-items:center;gap:7px;color:var(--ink);font-size:10px;font-weight:800;cursor:pointer}.research-toolbar input,.factor-select{width:16px;height:16px;margin:0;accent-color:var(--terra)}.research-toolbar span{margin-left:auto;color:var(--muted);font-size:10px}.research-toolbar button{padding:7px 10px;border:1px solid #b0442b;border-radius:8px;background:transparent;color:#b0442b;font-size:10px;font-weight:800;cursor:pointer}.research-toolbar button:disabled{border-color:var(--line);color:#aaa29a;cursor:not-allowed}.factor-select-wrap{position:absolute;z-index:2;top:14px;left:14px;display:grid;width:22px;height:22px;place-items:center;border-radius:7px;background:#fffdf9;box-shadow:0 0 0 1px var(--line)}.factor-card.selectable{padding-left:48px}.factor-card.selected{border-color:#c9634380;box-shadow:0 10px 28px #c9634315}@media(max-width:700px){.research-toolbar{align-items:flex-start;flex-wrap:wrap}.research-toolbar span{margin-left:0}.research-toolbar button{margin-left:auto}}

/* Clear, expandable stock-research results and operation progress */
.factor-card .result-block p{display:block;overflow:visible;min-height:0;-webkit-line-clamp:unset}.result-details{display:none}.result-details.expanded{display:block}.result-toggle{margin-top:12px;padding:0;border:0;background:transparent;color:var(--terra);font-size:11px;font-weight:800;cursor:pointer}.plain-conclusion{margin-top:12px;padding:13px 14px;border-left:4px solid var(--terra);border-radius:9px;background:#fffaf3}.plain-conclusion.weak{border-left-color:#b0442b}.plain-conclusion.watch{border-left-color:#b27a25}.plain-conclusion.strong{border-left-color:var(--green)}.plain-conclusion-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.plain-conclusion h4{margin:0;font-size:14px}.plain-conclusion-head span{flex:none;padding:5px 7px;border-radius:999px;background:#817a7014;color:var(--muted);font-size:9px;font-weight:900}.plain-conclusion p{margin:9px 0 0!important;color:var(--ink)!important;font-size:11px!important;line-height:1.7!important}.plain-conclusion .trade-answer{padding-top:9px;border-top:1px solid var(--line);font-weight:700}.stock-method{white-space:normal;overflow-wrap:anywhere}.wait-progress{width:100%;margin:10px 0 4px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#faf7f2}.wait-progress-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.wait-progress-head b{font-size:11px}.wait-progress-head span{color:var(--terra);font-size:10px;font-weight:900}.wait-progress-track{height:7px;margin:8px 0;border-radius:999px;background:#e6ddd2;overflow:hidden}.wait-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--terra),#e5a06c);transition:width .25s ease}.wait-progress.indeterminate .wait-progress-track i{width:34%!important;animation:real-wait 1.1s ease-in-out infinite}.wait-progress small{display:block;color:var(--muted);font-size:9px;line-height:1.45}.wait-progress.failed .wait-progress-track i{background:#b0442b;animation:none}@keyframes real-wait{0%{transform:translateX(-110%)}100%{transform:translateX(300%)}}.card-actions{flex-wrap:wrap}.card-actions .wait-progress{order:10;flex-basis:100%}
@media(max-width:700px){.plain-conclusion-head{align-items:flex-start;flex-direction:column}.score-block{grid-template-columns:1fr}.score-main{flex-wrap:wrap}.score-details{grid-column:auto}.occurrence-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Natural-language factor families and parameter robustness */
.parameter-family{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:11px;background:#f5eee5}.parameter-family-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.parameter-family-head>div{display:flex;flex-direction:column;gap:4px}.parameter-family-head b{font-size:11px}.parameter-family-head small,.parameter-family>p{color:var(--muted);font-size:9px;line-height:1.55}.parameter-family-head>span{flex:none;padding:5px 8px;border-radius:999px;background:#c9634312;color:var(--terra);font-size:8px;font-weight:900}.parameter-space{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.parameter-axis{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,.9fr);align-items:center;gap:10px;margin:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fffdf9}.parameter-axis-label{display:flex;min-width:0;flex-direction:column;gap:3px}.parameter-axis-label b{font-size:10px}.parameter-axis-label small{color:var(--muted);font-size:8px;line-height:1.4}.parameter-axis input{width:100%;padding:9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.parameter-axis input:disabled{background:#eee7de;color:var(--muted)}.parameter-empty{grid-column:1/-1;padding:12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:9px;text-align:center}.parameter-family>p{margin:10px 0 0}.family-tag{display:inline-flex;width:max-content;margin:7px 0 0;padding:5px 7px;border-radius:999px;background:#276bcf10;color:#276bcf;font-size:8px;font-weight:900}.parameter-study{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fffdf9}.parameter-study-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.parameter-study-head small{color:var(--terra);font-size:8px;font-weight:900;letter-spacing:.12em}.parameter-study-head h4{margin:4px 0 0;font-size:13px}.parameter-study-head>span{padding:5px 8px;border-radius:999px;background:#276bcf10;color:#276bcf;font-size:8px;font-weight:900}.selected-definition{margin-top:12px;padding:11px;border-radius:9px;background:#f5eee5}.selected-definition>b{font-size:10px}.selected-definition>small{display:block;margin-top:5px;color:var(--muted);font-size:9px}.definition-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.definition-chips span{padding:5px 7px;border:1px solid var(--line);border-radius:7px;background:#fffdf9;color:var(--ink);font-size:8px}.parameter-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.parameter-metric{display:flex;min-width:0;flex-direction:column;gap:4px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#f5eee5}.parameter-metric b{font:600 14px Georgia,serif}.parameter-metric small{color:var(--muted);font-size:8px}.score-breakdown{display:grid;gap:7px;margin-top:12px}.breakdown-row{display:grid;grid-template-columns:90px 1fr 28px;align-items:center;gap:8px;font-size:8px}.breakdown-row>span{color:var(--muted)}.breakdown-row>b{text-align:right}.breakdown-track{height:6px;overflow:hidden;border-radius:999px;background:#e4d8ca}.breakdown-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--terra),#e5a06c)}.parameter-table{min-width:720px}.parameter-table td:first-child{max-width:360px;white-space:normal}.parameter-table .consistent{color:var(--green);font-weight:800}.parameter-table .reversed{color:#b0442b;font-weight:800}.parameter-policy{margin:10px 0 0!important;color:var(--muted)!important;font-size:9px!important;line-height:1.6!important}
@media(max-width:800px){.parameter-space{grid-template-columns:1fr}.parameter-axis{grid-template-columns:1fr}.parameter-summary{grid-template-columns:1fr 1fr}.breakdown-row{grid-template-columns:78px 1fr 25px}.parameter-study{padding:11px}}
.strategy-convert{width:100%;margin-top:12px;padding:10px;border:1px solid var(--terra);border-radius:9px;background:#c9634308;color:var(--terra);font-size:10px;font-weight:900;cursor:pointer}.strategy-candidates{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.strategy-candidates-head,.strategy-warning{grid-column:1/-1}.strategy-candidates-head{display:flex;align-items:center;justify-content:space-between}.strategy-candidates-head>b{font-size:11px}.strategy-candidates-head>span{padding:4px 6px;border-radius:999px;background:#b27a2512;color:#8a5d18;font-size:8px;font-weight:900}.strategy-candidate{padding:10px;border:1px solid var(--line);border-radius:8px;background:#f5eee5}.strategy-candidate>b{font-size:9px}.strategy-candidate>p{min-height:0!important;margin:7px 0!important;color:var(--ink)!important;font-size:9px!important;line-height:1.55!important}.strategy-candidate>small,.strategy-warning{color:var(--muted);font-size:8px;line-height:1.5}.strategy-warning{margin:2px 0 0!important;min-height:0!important}@media(max-width:700px){.strategy-candidates{grid-template-columns:1fr}}

/* Keep discovery evidence separate from cross-security validation. */
.library-card-actions{gap:7px}.library-card-actions button{flex:1;width:auto}.cross-security-button{border:1px solid var(--terra);border-radius:8px;background:#c9634308;color:var(--terra);font-weight:900;cursor:pointer}.library-scope{padding:8px 9px;border-radius:8px;background:#276bcf0d;color:#47637d!important;font-weight:700}.cross-validation-notice{margin-bottom:14px;padding:12px 13px;border:1px solid #d9b79f;border-radius:10px;background:#c9634309;color:var(--ink);font-size:10px;font-weight:700;line-height:1.65}.cross-validation-notice b{color:var(--terra)}.factor-provenance{display:block;margin-top:6px;color:#47637d;font-size:9px;font-weight:700;line-height:1.5}.draft-panel.validation-locked input:disabled,.draft-panel.validation-locked textarea:disabled,.draft-panel.validation-locked select:disabled{opacity:1;background:#eee8df;color:#736a61;cursor:not-allowed}
.factor-upload{margin:18px 0 12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fffdf9}.factor-upload-head,.factor-upload-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.factor-upload-head>div{display:flex;flex-direction:column;gap:5px}.factor-upload-head b{font-size:14px}.factor-upload-head small,.factor-upload-actions>span{color:var(--muted);font-size:9px}.factor-file-button{position:relative;padding:9px 12px;border:1px solid var(--terra);border-radius:9px;color:var(--terra);font-size:9px;font-weight:900;cursor:pointer}.factor-file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.factor-upload textarea{min-height:125px;margin:14px 0 10px;padding:13px;resize:vertical;font:11px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.user-factor-candidates{display:grid;gap:9px;margin-bottom:16px}.user-factor-candidate{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fffdf9}.candidate-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.candidate-head h3{margin:0;font-size:13px}.candidate-head p{margin:4px 0 0;color:var(--muted);font-size:9px}.candidate-status{padding:5px 8px;border-radius:999px;background:#817a7012;color:var(--muted);font-size:8px;font-weight:900;white-space:nowrap}.candidate-status.passed{background:#2d7a5815;color:var(--green)}.candidate-status.rejected,.candidate-status.failed{background:#c9634314;color:var(--terra)}.candidate-progress{height:5px;margin:11px 0 8px;overflow:hidden;border-radius:999px;background:#eee6db}.candidate-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--terra),#e4a04d);transition:width .3s}.candidate-summary{margin:0;color:var(--muted);font-size:9px;line-height:1.55}.candidate-checks{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.candidate-checks span{padding:5px 7px;border-radius:7px;background:#2d7a580d;color:var(--green);font-size:8px}.candidate-checks span.failed{background:#c963430d;color:var(--terra)}.candidate-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}.candidate-actions button{padding:8px 10px;border-radius:8px;font-size:9px;font-weight:900;cursor:pointer}.confirm-factor{border:0;background:var(--green);color:#fff}.remove-candidate{border:1px solid var(--line);background:transparent;color:var(--muted)}.uploaded-review{margin:8px 0;color:var(--muted);font-size:8px}.uploaded-review summary{cursor:pointer;color:var(--terra);font-weight:800}.library-factor-card.uploaded-factor{border-color:#2d7a5840}
.factor-upload #userFactorMotivation{min-height:62px;margin-top:-4px;font-family:inherit}.factor-motivation{padding-left:9px;border-left:2px solid #c9634350;color:var(--muted);font-size:9px;line-height:1.55}
.uploaded-review-formula{display:block;margin:8px 0;padding:8px;border-radius:7px;background:#817a700d;color:var(--ink);font:8px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere;white-space:pre-wrap}
.candidate-section{margin:18px 0}.candidate-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.candidate-section-head h3{margin:0;font:600 18px Georgia,"Songti SC",serif}.candidate-section-head>span,.candidate-bulk-actions>span{color:var(--muted);font-size:9px}.candidate-bulk-actions{display:flex;align-items:center;gap:7px}.candidate-bulk-actions button{padding:8px 10px;font-size:9px}.finished-candidate-list{display:grid;gap:5px;margin-bottom:18px}.finished-candidate-row{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.finished-candidate-summary{display:grid;grid-template-columns:minmax(150px,.8fr) auto minmax(220px,1.4fr) auto;align-items:center;gap:9px;padding:9px 11px;cursor:pointer;list-style:none}.finished-candidate-summary::-webkit-details-marker{display:none}.finished-candidate-row:hover{border-color:#c9634350;background:#fffaf4}.finished-candidate-name{overflow:hidden;color:var(--ink);font-size:10px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.finished-candidate-name::before{margin-right:6px;color:var(--muted);content:"▸"}.finished-candidate-row[open] .finished-candidate-name::before{content:"▾"}.finished-candidate-conclusion{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.finished-candidate-actions{display:flex;gap:5px;opacity:0;transition:opacity .15s}.finished-candidate-row:hover .finished-candidate-actions,.finished-candidate-row:focus-within .finished-candidate-actions{opacity:1}.finished-candidate-actions button{padding:6px 8px;border-radius:7px;font-size:8px;font-weight:900;white-space:nowrap;cursor:pointer}.finished-candidate-details{padding:10px 12px;border-top:1px solid var(--line);background:#f7f2eb}.rejected-archive{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.rejected-archive>summary{padding:11px 0;color:var(--ink);font:600 18px Georgia,"Songti SC",serif;cursor:pointer}.rejected-archive>.rejected-pattern-grid{margin-top:10px}
.rejected-library-head{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.rejected-pattern-card{border-color:#817a7060;background:#f3f0eb}.rejected-pattern-card>p{min-height:0}.rejected-pattern-card>.delete-library{margin-top:auto;padding:9px}.rejected-empty{grid-column:1/-1}.rejected-warning{margin:8px 0;padding:9px 11px;border-left:3px solid #817a70;border-radius:7px;background:#817a7012;color:#625c54;font-size:9px;line-height:1.55}.archive-rejected{border:1px solid #817a7060;border-radius:8px;background:#817a700d;color:#625c54;font-weight:800;cursor:pointer}.archive-rejected:disabled{cursor:default;opacity:.65}
@media(max-width:800px){.factor-upload-head,.factor-upload-actions{align-items:stretch;flex-direction:column}.factor-file-button,.factor-upload-actions .primary{width:100%;text-align:center}.candidate-head{align-items:flex-start}.candidate-actions{flex-direction:column}.candidate-actions button{width:100%}.candidate-section-head{align-items:flex-start;flex-direction:column}.candidate-bulk-actions{width:100%;flex-wrap:wrap}.candidate-bulk-actions button{flex:1}.finished-candidate-summary{grid-template-columns:minmax(0,1fr) auto}.finished-candidate-conclusion{grid-column:1/-1}.finished-candidate-actions{grid-column:1/-1;opacity:1}.finished-candidate-actions button{flex:1}.finished-candidate-details{padding:9px 10px}}
.factor-cross-check{display:flex;flex-direction:column;gap:4px;margin-top:7px;padding:8px 10px;border:1px solid #7357dc30;border-radius:9px;background:#7357dc08}.library-tracking-actions{flex-wrap:wrap;min-width:360px}@media(max-width:800px){.library-tracking-actions{min-width:0}}
.strategy-workshop{margin-top:26px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fffdf9}.strategy-workshop-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.strategy-workshop-head h3{margin:3px 0 0;font:600 22px Georgia,"Songti SC",serif}.strategy-builder{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f5eee5}.strategy-config-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr;gap:8px}.strategy-config-grid label{display:flex;min-width:0;flex-direction:column;gap:5px;color:var(--muted);font-size:8px;font-weight:800}.strategy-config-grid input,.strategy-config-grid select{height:38px;padding:0 9px}.strategy-selection-rule{display:flex;align-items:center;gap:16px;margin:12px 0 0;padding:9px 11px;border:1px solid var(--line);border-radius:9px}.strategy-selection-rule legend{padding:0 5px;color:var(--muted);font-size:8px;font-weight:900}.strategy-selection-rule label{display:flex;align-items:center;gap:5px;color:var(--ink);font-size:9px;font-weight:800}.strategy-selection-rule input[type=radio]{width:auto}.strategy-selection-rule input[type=number]{width:66px;height:32px;padding:0 7px}.strategy-factor-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:13px 0 7px}.strategy-factor-head b{font-size:10px}.strategy-factor-head small{color:var(--muted);font-size:8px}.strategy-factor-list{display:grid;gap:5px}.strategy-factor-row{display:grid;grid-template-columns:auto minmax(130px,1fr) auto minmax(100px,.8fr) auto 68px;align-items:center;gap:8px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#fffdf9}.strategy-factor-row>input[type=checkbox]{width:auto}.strategy-factor-row>input[type=number]{height:32px;padding:0 7px}.strategy-factor-name{overflow:hidden;font-size:9px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.strategy-factor-badge{padding:4px 6px;border-radius:999px;background:#2d7a5814;color:var(--green);font-size:7px;font-weight:900;white-space:nowrap}.strategy-factor-badge.advisory{background:#c9634314;color:var(--terra)}.strategy-factor-row small,.strategy-weight-label{color:var(--muted);font-size:8px}.strategy-builder-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.strategy-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 8px}.strategy-list-head h4{margin:0;font:600 17px Georgia,"Songti SC",serif}.strategy-list-head>div{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:8px}.strategy-sort{padding:5px 7px;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--muted);font-size:8px;font-weight:800;cursor:pointer}.strategy-sort.active{border-color:var(--terra);color:var(--terra)}.strategy-table-head,.strategy-row-main{display:grid;grid-template-columns:minmax(140px,1.3fr) minmax(145px,1.1fr) 52px repeat(5,minmax(68px,.65fr)) 50px minmax(110px,.8fr);align-items:center;gap:7px}.strategy-table-head{padding:0 10px 7px;color:var(--muted);font-size:7px;font-weight:900}.strategy-list{display:grid;gap:6px}.strategy-row{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.strategy-row-main{padding:9px}.strategy-row-main>span,.strategy-row-main>b{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.strategy-row-main>b{font:700 11px Georgia,serif}.strategy-edit{overflow:hidden;padding:0;border:0;background:transparent;color:var(--ink);font-size:9px;font-weight:900;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.strategy-edit:hover{color:var(--terra)}.strategy-row-actions{display:flex;align-items:center;gap:4px}.strategy-row-actions button{padding:5px 6px;font-size:7px;white-space:nowrap}.strategy-result-details{border-top:1px solid var(--line)}.strategy-result-details>summary{padding:8px 10px;color:var(--muted);font-size:8px;font-weight:900;cursor:pointer}.strategy-result-body{padding:0 10px 11px;color:var(--muted);font-size:8px;line-height:1.6}.strategy-result-body p{margin:7px 0}.strategy-yearly{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.strategy-yearly span{padding:6px 7px;border-radius:7px;background:#f5eee5}.strategy-execution{padding:8px;border-left:3px solid var(--terra);background:#c9634308}.strategy-workshop-disclaimer{margin:14px 0 0;color:var(--muted);font-size:8px;line-height:1.6}.strategy-workshop .tracking-status{display:block}.strategy-workshop .empty{padding:18px}.strategy-row.is-running{border-color:#c9634350}
.factor-advice-tag,.strategy-advice{display:inline-flex;align-items:center;width:max-content;padding:4px 7px;border-radius:999px;font-size:7px;font-weight:900;white-space:nowrap}.factor-advice-tag.recommend,.strategy-advice.recommend{background:#2d7a5814;color:var(--green)}.factor-advice-tag.caution,.strategy-advice.caution{background:#c9634314;color:var(--terra)}.factor-advice-tag.unknown,.strategy-advice.unknown{background:#77736b16;color:var(--muted)}.factor-advice-note{margin:8px 0 0;color:var(--muted);font-size:8px;line-height:1.55}.strategy-advice-teaching{margin:4px 0 10px;color:var(--muted);font-size:8px;line-height:1.6}.strategy-factor-row{grid-template-columns:auto minmax(110px,1fr) auto auto minmax(90px,.7fr) auto 68px}.strategy-human-result{padding:10px 11px;border-left:3px solid var(--green);border-radius:0 8px 8px 0;background:#2d7a580c;color:var(--ink);font-size:10px!important;font-weight:800;line-height:1.65!important}
@media(max-width:1100px){.strategy-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-table-head{display:none}.strategy-row-main{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-row-main>*{min-width:0}.strategy-row-main .strategy-edit,.strategy-row-main .strategy-row-actions{grid-column:1/-1}.strategy-row-actions{justify-content:flex-end}.strategy-factor-row{grid-template-columns:auto minmax(120px,1fr) auto auto minmax(90px,1fr) auto 68px}}
@media(max-width:700px){.strategy-workshop{margin-right:18px;padding:14px}.strategy-workshop-head,.strategy-factor-head,.strategy-list-head{align-items:stretch;flex-direction:column}.strategy-config-grid{grid-template-columns:1fr}.strategy-selection-rule{align-items:flex-start;flex-direction:column}.strategy-factor-row{grid-template-columns:auto minmax(0,1fr) auto}.strategy-factor-row small{grid-column:2/-1}.strategy-weight-label{grid-column:2}.strategy-factor-row>input[type=number]{grid-column:3}.strategy-builder-actions{flex-direction:column}.strategy-builder-actions button{width:100%}.strategy-row-main{grid-template-columns:1fr}.strategy-row-main .strategy-edit,.strategy-row-main .strategy-row-actions{grid-column:auto}.strategy-row-actions{justify-content:flex-start}.strategy-yearly{grid-template-columns:1fr}}
@media(max-width:700px){.strategy-factor-row .strategy-advice{grid-column:2/-1;justify-self:start}}

/* Build a complete, editable X -> Y research hypothesis. */
.hypothesis-builder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}.hypothesis-builder label:last-child{grid-column:1/-1}.hypothesis-preview{display:flex;flex-direction:column;gap:6px;margin-top:14px;padding:14px 15px;border:1px solid #d9b79f;border-radius:11px;background:linear-gradient(135deg,#c963430b,#276bcf08)}.hypothesis-preview small{color:var(--terra);font-size:9px;font-weight:900;letter-spacing:.1em}.hypothesis-preview b{font:600 14px/1.65 Georgia,"Songti SC",serif}.hypothesis-preview span{color:var(--muted);font-size:9px;line-height:1.55}.score-unavailable{background:#f3eee7}.score-unavailable .score-main>b{color:var(--muted)}.score-unavailable .score-grade{background:#817a7012;color:var(--muted)}
@media(max-width:700px){.hypothesis-builder{grid-template-columns:1fr}.hypothesis-builder label:last-child{grid-column:auto}}

/* Market and single-stock strategy research */

/* Pattern-first research flow: keep quantitative machinery available without making it the entry point. */
.step-guide{margin:-5px 0 16px;color:var(--muted);font-size:10px;line-height:1.6}.measurement-details{margin:15px 0;border:1px solid var(--line);border-radius:11px;background:#f5eee5}.measurement-details summary{padding:13px 15px;color:var(--ink);font-size:10px;font-weight:800;cursor:pointer}.measurement-details>p{margin:0;padding:0 15px 12px;color:var(--muted);font-size:9px;line-height:1.6}.measurement-details[open] summary{border-bottom:1px solid var(--line)}.measurement-grid{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:14px 15px 0}.measurement-grid label{margin:0}.measurement-grid textarea{min-height:86px}.measurement-details .parameter-family{margin:14px 15px 15px}.technical-formula{display:none}.factor-description.expanded+.technical-formula{display:block}.strategy-candidate-role{display:inline-flex;margin-bottom:6px;padding:4px 7px;border-radius:999px;background:#276bcf12;color:#276bcf;font-size:8px;font-weight:900}.strategy-candidate-reason{color:var(--muted);font-size:9px;line-height:1.55}
@media(max-width:700px){.measurement-grid{grid-template-columns:1fr}}
.strategy-scope-switch{display:flex;width:max-content;margin:0 0 18px;padding:4px;border:1px solid var(--line);border-radius:11px;background:#eee5da}.strategy-scope-switch button{padding:9px 14px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:11px;font-weight:800;cursor:pointer}.strategy-scope-switch button.active{background:var(--paper);color:var(--terra);box-shadow:0 2px 8px #392d2312}.auto-subhead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.auto-subhead>b{font:600 18px Georgia,"Songti SC",serif}.auto-subhead small{color:var(--muted);font-size:9px}.stock-strategy-form{display:grid;grid-template-columns:1.5fr 1fr 1.35fr .8fr;align-items:end;gap:10px;padding:15px;border:1px solid var(--line);border-radius:13px;background:#f5eee5}.stock-strategy-form label{display:flex;min-width:0;flex-direction:column;gap:6px;color:var(--muted);font-size:10px;font-weight:800}.stock-strategy-form label.wide{margin:0}.stock-strategy-form select{height:43px;padding:0 10px}.stock-strategy-form small{min-height:14px;color:var(--muted);font-size:8px}.stock-strategy-warning{display:flex;align-items:flex-start;gap:12px;margin:11px 0;padding:11px 13px;border-left:3px solid #276bcf;border-radius:8px;background:#276bcf0b}.stock-strategy-warning b{flex:none;color:#276bcf;font-size:10px}.stock-strategy-warning span{color:var(--muted);font-size:9px;line-height:1.55}.stock-strategy-scope{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f5eee5;color:var(--muted);font-size:10px;line-height:1.65}.stock-strategy-scope b{color:var(--ink)}.best-strategy-head>div{display:flex;gap:8px}.validation-summary-inline{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fffdf9}.validation-summary-inline>div{display:flex;align-items:center;gap:10px}.validation-summary-inline .strategy-grade{width:44px;height:44px;font-size:22px}.validation-summary-inline p{margin:8px 0 0;color:var(--muted);font-size:9px;line-height:1.6}
@media(max-width:800px){.strategy-scope-switch{width:100%}.strategy-scope-switch button{flex:1}.auto-subhead{align-items:flex-start;flex-direction:column}.stock-strategy-form{grid-template-columns:1fr}.best-strategy-head{align-items:stretch;flex-direction:column}.best-strategy-head>div{flex-direction:column}.best-strategy-head>div button{width:100%}}

/* Historical occurrences: full development-period timeline plus navigable candlesticks. */
.occurrence-chart-button{border:1px solid #276bcf;border-radius:8px;background:#276bcf0b;color:#276bcf;font-weight:900;cursor:pointer}.occurrence-chart-button:disabled{border-color:var(--line);background:transparent;color:#aaa29a;cursor:not-allowed}.occurrence-loading{display:grid;min-height:360px;place-items:center;color:var(--muted);font-size:11px}.occurrence-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:11px}.occurrence-summary>div{display:flex;min-width:0;flex-direction:column;gap:4px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#f5eee5}.occurrence-summary b{overflow:hidden;font:600 15px Georgia,"Songti SC",serif;text-overflow:ellipsis;white-space:nowrap}.occurrence-summary small{color:var(--muted);font-size:8px}.occurrence-note{margin:0 0 9px;padding:10px 12px;border-left:3px solid var(--terra);border-radius:7px;background:#c9634308;color:var(--muted);font-size:9px;line-height:1.65}.occurrence-marker-legend{display:flex;align-items:center;gap:14px;margin:0 0 10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fffdf9;color:var(--muted);font-size:8px;font-weight:800}.occurrence-marker-legend span{display:flex;align-items:center;gap:6px}.occurrence-marker-legend span::before{display:inline-block;width:9px;height:9px;box-sizing:border-box;content:""}.occurrence-marker-legend .condition-only::before{border:2px solid #c96343;background:#fffdf9;transform:rotate(45deg)}.occurrence-marker-legend .condition-confirmed::before{border:2px solid #276bcf;border-radius:50%;background:#17845e;box-shadow:0 0 0 3px #17845e1f}.occurrence-marker-legend .phase-colors::before{width:14px;border-left:5px solid #c96343;border-right:5px solid #276bcf}.occurrence-overview{display:block;width:100%;height:58px;border:1px solid var(--line);border-radius:9px;cursor:pointer}.occurrence-controls{display:flex;align-items:center;justify-content:center;gap:9px;margin:11px 0}.occurrence-controls b{min-width:220px;color:var(--ink);font-size:10px;text-align:center}.occurrence-controls button{padding:8px 10px;font-size:9px}.occurrence-controls select{margin-left:auto;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fffdf9;color:var(--ink);font-size:9px}.occurrence-candle-chart{display:block;width:100%;height:420px;border:1px solid var(--line);border-radius:11px;background:#fffdf9;cursor:crosshair}.occurrence-detail{min-height:18px;margin-top:9px;color:var(--muted);font:9px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}
.occurrence-frequency-context{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 9px;padding:10px 12px;border:1px solid #276bcf30;border-radius:9px;background:#276bcf08}.occurrence-frequency-context>div{display:flex;min-width:0;flex-direction:column;gap:4px}.occurrence-frequency-context b{color:#276bcf;font-size:10px}.occurrence-frequency-context small{color:var(--muted);font-size:8px;line-height:1.55}.occurrence-frequency-context button{flex:0 0 auto;padding:7px 9px;font-size:8px}
.occurrence-counter{display:flex;min-width:260px;flex-direction:column;gap:3px;text-align:center}.occurrence-controls .occurrence-counter b{min-width:0}.occurrence-viewport-status{color:#b0442b;font-size:8px;font-weight:800}.occurrence-controls .occurrence-raw-trigger{margin-left:auto;border-color:#276bcf;color:#276bcf}.occurrence-group-detail{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}.occurrence-group-detail:empty{display:none}.occurrence-group-detail>b{width:100%;color:var(--muted);font-size:8px}.occurrence-group-detail button{padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:#fffdf9;color:var(--muted);font-size:8px;cursor:pointer}.occurrence-group-detail button.active{border-color:var(--terra);background:#c9634310;color:var(--terra);font-weight:900}
@media(max-width:700px){.occurrence-summary{grid-template-columns:1fr 1fr}.occurrence-frequency-context{align-items:stretch;flex-direction:column}.occurrence-frequency-context button{width:100%}.occurrence-marker-legend{align-items:flex-start;flex-direction:column;gap:7px}.occurrence-controls{align-items:stretch;flex-wrap:wrap}.occurrence-controls b{order:-1;width:100%;min-width:0}.occurrence-controls button{flex:1}.occurrence-controls select{width:100%;margin-left:0}.occurrence-candle-chart{height:360px}}
@media(max-width:700px){.occurrence-controls .occurrence-counter{order:-1;width:100%;min-width:0}.occurrence-controls .occurrence-raw-trigger{flex-basis:100%;margin-left:0}}
.occurrence-lab{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:15px}.occurrence-main{min-width:0}.occurrence-chart-toolbar{display:flex;align-items:center;gap:7px;margin:0 0 9px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#f5eee5}.occurrence-chart-toolbar>span{color:var(--muted);font-size:8px;font-weight:800}.occurrence-chart-toolbar select{max-width:110px;padding:7px;border:1px solid var(--line);border-radius:7px;background:#fffdf9;color:var(--ink);font-size:9px}.occurrence-chart-toolbar button{padding:6px 9px}.occurrence-chart-toolbar input[type=range]{min-width:80px;flex:1;accent-color:var(--terra)}.occurrence-chart-toolbar b{min-width:42px;color:var(--ink);font-size:9px;text-align:center}.occurrence-candle-chart.dragging{cursor:grabbing}.occurrence-parameters{position:sticky;top:86px;align-self:start;max-height:calc(88vh - 115px);overflow:auto;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f5eee5}.occurrence-param-head{display:flex;flex-direction:column;gap:4px;margin-bottom:13px}.occurrence-param-head>b{font:600 17px Georgia,"Songti SC",serif}.occurrence-param-head small{color:var(--muted);font-size:8px;line-height:1.5}.occurrence-param-form{display:flex;flex-direction:column;gap:11px}.occurrence-param-form label{display:flex;flex-direction:column;gap:6px;margin:0;color:var(--muted);font-size:9px;font-weight:800}.occurrence-param-form input,.occurrence-param-form select{width:100%;box-sizing:border-box;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fffdf9;color:var(--ink)}.occurrence-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.occurrence-presets button{padding:6px 2px;border:1px solid var(--line);border-radius:6px;background:#fffdf9;color:var(--muted);font-size:8px;cursor:pointer}.occurrence-presets button:hover{border-color:var(--terra);color:var(--terra)}.occurrence-recalc-status{padding:8px;border-radius:7px;background:#2d7a5810;color:var(--green);font-size:8px}.occurrence-recalc-status.loading{background:#276bcf10;color:#276bcf}.occurrence-recalc-status.failed{background:#c9634312;color:var(--terra)}.occurrence-experiment-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:13px 0}.occurrence-experiment-metrics>div{display:flex;min-width:0;flex-direction:column;gap:2px;padding:8px;border:1px solid var(--line);border-radius:7px;background:#fffdf9}.occurrence-experiment-metrics b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.occurrence-experiment-metrics small{color:var(--muted);font-size:7px}.occurrence-recommendation{display:flex;flex-direction:column;gap:7px;padding:11px;border:1px solid #276bcf30;border-radius:9px;background:#276bcf08}.occurrence-recommendation>b{color:#276bcf;font-size:10px}.occurrence-recommendation p{margin:0;color:var(--ink);font-size:9px;line-height:1.55}.occurrence-recommendation small{color:var(--muted);font-size:8px;line-height:1.5}.occurrence-recommendation button{width:100%;margin-top:3px;padding:8px;font-size:8px}.occurrence-policy{margin:10px 0 0;color:var(--muted);font-size:8px;line-height:1.55}
@media(max-width:850px){.occurrence-lab{grid-template-columns:1fr}.occurrence-parameters{position:static;max-height:none;order:-1}.occurrence-chart-toolbar{flex-wrap:wrap}.occurrence-chart-toolbar input[type=range]{min-width:140px}.occurrence-main{min-width:0}}
.occurrence-experiment-metrics{margin:13px 0 7px}.occurrence-experiment-metrics small{color:var(--ink);font-weight:800}.occurrence-experiment-metrics em{margin-top:2px;color:var(--muted);font-size:6.5px;font-style:normal;line-height:1.45}.occurrence-metric-note{margin:0 0 13px;padding:8px;border-radius:7px;background:#d99b2710;color:var(--muted);font-size:7px;line-height:1.55}
.page-factor main{padding-top:24px}.page-factor .roy-context{margin-bottom:12px;padding:9px 11px}.page-factor .roy-context>div{display:block}.page-factor .intro h1{margin:7px 0 4px;font-size:27px;line-height:1.2}.page-factor .workspace{margin-top:22px}.intro>p.research-positioning{max-width:760px;margin:0 auto;padding:0;background:transparent;font-size:10px;line-height:1.6}
.pattern-testing-history{margin:8px 0 14px;padding:9px 12px;border-left:3px solid #d99b27;background:#d99b270b;color:var(--muted);font-size:9px;line-height:1.55}.locked-test-block{display:flex;flex-direction:column;gap:9px;margin:13px 0;padding:13px;border:1px solid #6747f333;border-radius:10px;background:#6747f308}.locked-test-block>p{margin:0;color:var(--muted);font-size:9px;line-height:1.55}.locked-test-button{align-self:flex-start;padding:8px 12px;border:0;border-radius:8px;background:linear-gradient(120deg,#306cff,#9048ed);color:#fff;font-size:9px;font-weight:800;cursor:pointer}.locked-test-button:disabled{opacity:.55;cursor:wait}.locked-test-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.locked-test-metrics .metric{display:flex;min-width:0;flex-direction:column;gap:3px;padding:8px;border:1px solid var(--line);border-radius:7px;background:#fffdf9}.locked-test-metrics b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.locked-test-metrics small{color:var(--muted);font-size:7px}.locked-test-proof{color:#2d7a58!important;font-weight:800}@media(max-width:700px){.locked-test-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
.support-shortfall{margin-top:8px!important;padding:8px 10px;border-left:3px solid var(--terra);border-radius:7px;background:#c963430b;color:#9b432d!important;font-weight:800}

/* Market observation journal: low-friction capture, deterministic recurrence, explicit promotion. */
.journal-workspace{display:flex;flex-direction:column;gap:24px}.journal-workspace.hidden{display:none}.observation-entry{padding:16px;border:1px solid var(--line);border-radius:13px;background:#f5eee5}.observation-entry textarea{min-height:145px;margin:0;white-space:pre-wrap}.observation-entry-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px}.observation-entry-actions span{color:var(--muted);font-size:9px}.observation-entry-actions button{min-width:120px}.observation-entry .error{margin-bottom:0}.observation-clusters,.observation-timeline{padding-top:20px;border-top:1px solid var(--line)}.journal-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:12px}.journal-section-head h3{margin:0;font:600 22px Georgia,"Songti SC",serif}.journal-section-head p{margin:5px 0 0;color:var(--muted);font-size:9px}.journal-section-head>span{flex:none;color:var(--muted);font-size:9px;font-weight:800}.recurring-clusters,.early-cluster-list,.observation-list{display:flex;flex-direction:column;gap:9px}.observation-cluster{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.observation-cluster.recurring{border-color:#2d7a5850;background:#2d7a5808}.observation-cluster-head{display:flex;min-width:0;align-items:center;gap:8px;grid-column:1/-1}.observation-cluster-head b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.observation-cluster-head span{flex:none;padding:4px 7px;border-radius:999px;background:#817a7012;color:var(--muted);font-size:8px;font-weight:900}.observation-cluster.recurring .observation-cluster-head span{background:#2d7a5815;color:var(--green)}.observation-cluster p{grid-column:1;margin:0;color:var(--muted);font-size:8.5px;line-height:1.55}.observation-cluster>button{align-self:end;grid-column:2;grid-row:2/5;min-width:145px}.early-clusters{margin-top:12px;border:1px solid var(--line);border-radius:10px;background:#f5eee5}.early-clusters>summary{padding:11px 13px;color:var(--muted);font-size:9px;font-weight:800;cursor:pointer}.early-clusters[open]>summary{border-bottom:1px solid var(--line)}.early-cluster-list{padding:10px}.observation-item{position:relative;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.observation-item-head{display:flex;justify-content:flex-end}.observation-item-actions{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:8px}.observation-item-actions button{padding:0;border:0;background:transparent;color:var(--muted);font-size:8px;cursor:pointer}.observation-raw{margin:4px 0 9px;color:var(--ink);font-size:10px;line-height:1.7;white-space:pre-wrap}.observation-summary{margin:0;color:var(--muted);font-size:9px;line-height:1.55}.observation-missing{margin:7px 0 0;color:#9b7a42;font-size:8px}.observation-structuring{margin:7px 0 0;color:#276bcf;font-size:8px;font-weight:800}.observation-structure-failed{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;color:var(--terra);font-size:8px}.observation-structure-failed button{padding:6px 9px}.observation-promoted{display:inline-flex;margin-top:8px;padding:4px 7px;border-radius:999px;background:#2d7a5812;color:var(--green);font-size:8px;font-weight:900}.journal-empty{padding:16px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:9px;text-align:center}.observation-promote-dialog{max-width:650px}.observation-promote-summary{margin:0;color:var(--ink);font-size:10px;line-height:1.7}.observation-confirm{display:flex;align-items:flex-start;gap:9px;margin:16px 0;padding:12px;border:1px solid #d99b2750;border-radius:9px;background:#d99b2709;color:var(--ink);font-size:9px;line-height:1.55}.observation-confirm input{flex:none;margin-top:2px}.observation-promote-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.observation-promote-actions button{min-width:130px}
@media(max-width:800px){.observation-entry-actions,.journal-section-head{align-items:stretch;flex-direction:column}.observation-entry-actions button{width:100%}.observation-cluster{display:flex;flex-direction:column}.observation-cluster>button{width:100%;align-self:stretch}.observation-promote-actions{flex-direction:column}.observation-promote-actions button{width:100%}}
