/* Content-sized research workspace; the seven application typography tokens only. */
.factor-research{min-width:0;font-size:var(--text-md);color:var(--text);line-height:var(--leading-body);}
.factor-research h2{font-size:var(--text-xl);margin:0;line-height:var(--leading-heading);}
.factor-research h3{font-size:var(--text-lg);margin:0;line-height:var(--leading-heading);}
.factor-research h4{font-size:var(--text-sm);margin:0;line-height:var(--leading-heading);}
.factor-research p{margin:6px 0 0;line-height:var(--leading-body);}
.factor-research button,.factor-research input,.factor-research select,.factor-research textarea{font-family:inherit;font-size:var(--text-sm);}
.factor-research small,.factor-research caption{font-size:var(--text-xs);}
.factor-research code,.factor-research pre{font-family:var(--mono);font-size:var(--text-sm);}
.fr-heading,.fr-section-heading,.fr-result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;}
.fr-heading{margin-bottom:16px;}
.fr-heading p,.fr-result-heading p{color:var(--muted);font-size:var(--text-sm);}
.fr-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.fr-workspace{display:grid;grid-template-columns:minmax(200px,250px) minmax(0,1fr);align-items:start;gap:16px;}
.fr-workspace:has(>.fr-result .fr-table-scroll),.fr-workspace:has(>.fr-result .fr-metrics){align-items:start;}
.fr-history,.fr-result,.fr-config{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;}
.fr-history{padding:20px;}
.fr-disclosure>summary{display:flex;align-items:center;gap:8px;min-height:32px;padding:4px 0;list-style:none;cursor:pointer;font-size:var(--text-md);font-weight:500;line-height:var(--leading-heading);}
.fr-disclosure>summary::-webkit-details-marker{display:none;}
.fr-disclosure>summary::marker{content:"";}
.fr-disclosure>summary>.fr-disclosure-label{min-width:0;overflow-wrap:anywhere;}
.fr-disclosure>summary>.fr-disclosure-count{font-size:var(--text-xs);font-weight:400;color:var(--subtle);font-variant-numeric:tabular-nums;}
.fr-disclosure>summary>svg{width:16px;height:16px;flex:none;color:var(--subtle);transition:transform .16s;}
.fr-disclosure[open]>summary>svg{transform:rotate(90deg);}
.fr-history-list{display:grid;gap:8px;margin-top:12px;max-height:620px;overflow-y:auto;overscroll-behavior:contain;}
.fr-history-job{text-align:left;display:grid;gap:4px;width:100%;border:1px solid var(--line);background:var(--panel-alt);color:var(--text);padding:12px;border-radius:7px;overflow-wrap:anywhere;}
.fr-history-job strong{font-size:var(--text-sm);font-weight:500;line-height:var(--leading-heading);}
.fr-history-job span,.fr-history-job small{font-size:var(--text-xs);color:var(--muted);}
.fr-history-meta{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;}
.factor-research .fr-status{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:5px;padding:2px 6px;font-size:var(--text-xs);line-height:var(--leading-help);}
.fr-history-job.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel));}
.fr-result{padding:20px;}
.fr-config{padding:20px;margin-bottom:16px;}
.fr-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--form-gap);margin:16px 0;}
.fr-field{display:grid;align-content:start;gap:var(--label-gap);font-size:var(--text-sm);color:var(--muted);line-height:var(--leading-help);}
.fr-field input,.fr-field select,.fr-result-filters input,.fr-result-filters select,.fr-row-controls input,.fr-row-controls select{width:100%;min-width:0;min-height:var(--control-height);border:1px solid var(--line);border-radius:6px;background-color:var(--panel-alt);color:var(--text);padding:8px 12px;height:var(--control-height);box-sizing:border-box;line-height:1.5;}

.factor-research fieldset{border:1px solid var(--line);border-radius:8px;padding:12px;margin:16px 0;min-width:0;}
.factor-research legend{float:none;width:auto;padding:0 6px;font-size:var(--text-sm);color:var(--muted);}
.fr-factor-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--form-gap);max-height:300px;overflow-y:auto;}
.fr-factor-choice{display:flex;align-items:flex-start;gap:8px;min-width:0;font-size:var(--text-sm);}
.fr-factor-choice{flex-direction:column;border:1px solid var(--line);border-radius:6px;padding:10px;}
.fr-factor-choice>label{display:flex;align-items:flex-start;gap:8px;min-width:0;}
.fr-factor-choice>select{border:1px solid var(--line);border-radius:5px;background-color:var(--panel-alt);color:var(--muted);padding:8px 12px;max-width:100%;height:var(--control-height);min-height:var(--control-height);box-sizing:border-box;line-height:1.5;}
.fr-factor-choice input,.fr-checkbox input{margin-top:3px;accent-color:var(--accent);}
.fr-factor-choice strong{font-size:var(--text-sm);font-weight:500;}
.fr-factor-choice code{display:block;color:var(--subtle);overflow-wrap:anywhere;margin-top:4px;}
.fr-horizons{display:flex;flex-wrap:wrap;gap:16px;}
.fr-checkbox{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-sm);color:var(--muted);}
.fr-config form>.fr-checkbox{align-items:flex-start;max-width:calc(100% - 20px);margin:4px 20px 4px 0;vertical-align:top;line-height:var(--leading-help);overflow-wrap:anywhere;}
.fr-config form>.fr-checkbox:last-of-type{max-width:100%;margin-inline-end:0;}
.fr-config form>.fr-checkbox>input{flex:none;}
.fr-config form>.fr-actions{margin-top:16px;}
.fr-config form[data-factor-research-form]>.fr-actions>.button{height:var(--control-height-primary);min-height:var(--control-height-primary);padding-block:0;line-height:1.5;}
.fr-stock-row>.button,.fr-result-filters>.button,.fr-row-controls>.button{height:var(--control-height);min-height:var(--control-height);padding-block:0;line-height:1.5;}
.factor-research .fr-method-note,.factor-research .fr-hint{font-size:var(--text-sm);line-height:var(--leading-help);color:var(--muted);}
.fr-method-note{padding:10px 12px;border-left:2px solid var(--accent);background:var(--panel-alt);margin:12px 0!important;}
.factor-research .fr-error{font-size:var(--text-sm);color:#dfaaa2;line-height:var(--leading-help);}
.fr-error:empty{display:none;}
.fr-preflight,.fr-confirm{padding:12px;border:1px solid var(--line);border-radius:7px;margin:16px 0;font-size:var(--text-sm);}
.fr-confirm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.fr-preflight p{color:var(--muted);line-height:var(--leading-help);}
.fr-scope,.fr-preprocessing{border-top:1px solid var(--line);padding:12px 0;margin:0;font-size:var(--text-sm);}
.fr-scope>summary,.fr-preprocessing>summary{cursor:pointer;font-weight:500;}
.fr-stock-filters{display:grid;gap:var(--form-gap);margin:12px 0;}
.fr-stock-row{display:grid;grid-template-columns:minmax(150px,1.5fr) minmax(80px,1fr) minmax(80px,1fr) auto;gap:var(--form-gap);align-items:end;}
.fr-stock-row label{display:grid;gap:var(--label-gap);color:var(--muted);font-size:var(--text-xs);line-height:var(--leading-help);}
.fr-stock-row select,.fr-stock-row input{width:100%;min-width:0;border:1px solid var(--line);border-radius:5px;background-color:var(--panel-alt);color:var(--text);padding:8px 12px;height:var(--control-height);min-height:var(--control-height);box-sizing:border-box;line-height:1.5;}
.fr-correlation-map td{min-width:70px;text-align:center;}
.fr-progress{padding:10px 0;color:var(--muted);font-size:var(--text-sm);}
.fr-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;padding:16px 0;margin:0;border-bottom:1px solid var(--line);}
.fr-methods>div{min-width:0;}
.fr-methods dt{font-size:var(--text-xs);font-weight:400;color:var(--subtle);}
.fr-methods dd{font-size:var(--text-sm);margin:4px 0 0;overflow-wrap:anywhere;}
.fr-snapshots{padding:12px 0;color:var(--muted);font-size:var(--text-sm);}
.fr-snapshots summary{cursor:pointer;}
.fr-snapshots code{display:block;margin-top:4px;overflow-wrap:anywhere;}
.fr-snapshots pre{margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--subtle);}
.fr-result-filters,.fr-row-controls{display:flex;align-items:flex-end;gap:var(--form-gap);flex-wrap:wrap;margin:12px 0;}
.fr-result-filters label,.fr-row-controls label{display:grid;gap:var(--label-gap);min-width:130px;font-size:var(--text-xs);color:var(--muted);line-height:var(--leading-help);}
.fr-tabs{display:flex;gap:5px;overflow-x:auto;border-bottom:1px solid var(--line);margin-top:16px;padding-bottom:8px;}
.fr-tabs button{white-space:nowrap;border:0;border-radius:5px;background:transparent;color:var(--muted);padding:8px 10px;font-size:var(--text-sm);}
.fr-tabs button[aria-selected=true]{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel));}
.fr-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin-top:16px;}
.fr-metric{border:1px solid var(--line);border-radius:7px;padding:14px;min-width:0;}
.fr-metric h4{font-weight:400;color:var(--muted);}
.fr-metric>strong{display:block;font-size:var(--text-2xl);font-weight:500;margin-top:8px;font-variant-numeric:tabular-nums;}
.fr-metric p,.fr-metric small{font-size:var(--text-xs);color:var(--subtle);overflow-wrap:anywhere;line-height:var(--leading-help);}
.fr-empty{padding:20px 0;color:var(--muted);font-size:var(--text-sm);}
.fr-workspace.is-empty{align-items:stretch;}
.fr-workspace.is-empty>.fr-history,.fr-workspace.is-empty>.fr-result{display:flex;flex-direction:column;justify-content:center;min-height:112px;padding:16px;}
.fr-workspace.is-empty .fr-empty{padding:0;margin:0;}
.fr-chart{width:100%;height:250px;margin:12px 0;}
.fr-chart[hidden]{display:none;}
.fr-table-scroll{max-width:100%;overflow-x:auto;margin-top:12px;}
.factor-research table{width:100%;border-collapse:collapse;font-size:var(--text-sm);}
.factor-research caption{text-align:left;caption-side:top;color:var(--muted);padding:8px 0;}
.factor-research th{font-size:var(--text-xs);font-weight:500;color:var(--muted);}
.factor-research th,.factor-research td{padding:10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;}
.factor-research td{font-size:var(--text-sm);font-variant-numeric:tabular-nums;}
.factor-research th small,.factor-research td small{display:block;font-size:var(--text-xs);color:var(--subtle);white-space:normal;}
.fr-pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;font-size:var(--text-xs);color:var(--muted);}
.factor-research :focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
@media(max-width:1100px){.fr-workspace{grid-template-columns:minmax(180px,210px) minmax(0,1fr);}.fr-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:760px){.fr-workspace{grid-template-columns:minmax(0,1fr);align-items:start;}.fr-history-list{max-height:230px;}.fr-form-grid,.fr-factor-picker,.fr-methods{grid-template-columns:minmax(0,1fr);}.fr-result,.fr-config,.fr-history{padding:16px;}.fr-config form>.fr-checkbox{display:flex;max-width:100%;margin:0 0 12px;}.fr-result-filters label,.fr-row-controls label{flex:1;}.fr-heading{gap:12px;}.fr-chart{height:220px;}.fr-stock-row{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(prefers-reduced-motion:reduce){.fr-disclosure>summary>svg{transition:none;}}
.factor-research .fr-timing{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0;color:var(--muted);font-size:var(--text-xs);line-height:var(--leading-help)}.factor-research .fr-timing>div{display:flex;gap:6px}.factor-research .fr-timing dt,.factor-research .fr-timing dd{margin:0;font-size:var(--text-xs)}.factor-research .fr-timing dd{color:var(--text)}
