/* Shared analysis-tool controls. Scoped to the three edited tools. */
.tool-controls{display:flex;gap:1rem;align-items:end;flex-wrap:wrap}.tool-controls label,.fund-pickers label{display:flex;flex-direction:column;gap:.45rem;color:var(--ink-soft);font-size:.85rem;font-weight:600;min-width:150px}.tool-controls input,.tool-controls select,.fund-pickers select{font:inherit;font-size:.95rem;color:var(--ink);background:#101d29;border:1px solid #526170;border-radius:8px;min-height:44px;padding:.6rem .75rem;width:100%}.tool-controls .company-search{flex:1;min-width:210px}.tool-context{color:var(--ink-soft);font-size:.85rem;line-height:1.6;margin:.8rem 0 0}.methodology>summary{cursor:pointer;font-family:var(--display);font-weight:600;font-size:1rem;min-height:30px}.methodology>section.card{padding:1rem 0;border:0;background:transparent;box-shadow:none}.tool-result-heading,.tool-paging{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.market-chips{margin:1rem 0}.company-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:1rem 0}.company-tile{display:flex;align-items:center;gap:.7rem;width:100%;min-height:76px;text-align:left;padding:.8rem;border:1px solid #536374;border-radius:10px;background:#101d29;color:var(--ink);cursor:pointer;font:inherit}.company-tile:hover,.company-tile.selected{border-color:var(--lime);background:#182d38}.company-order{color:var(--muted);font-size:.8rem}.company-name{flex:1;font-size:.9rem;font-weight:600;overflow-wrap:anywhere}.company-name small,.company-count small{display:block;color:var(--ink-soft);font-size:.72rem;font-weight:400;margin-top:.25rem}.company-count{text-align:right;min-width:65px}.company-count b{font-family:var(--mono);font-size:1.25rem}.trade-card{margin:1rem 0;padding:1rem;border:1px solid #536374;border-radius:10px;background:#101d29}.trade-card header{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.trade-card time{font-size:.8rem;color:var(--ink-soft);margin-left:auto}.trade-card p{font-size:.9rem;color:var(--ink-soft);margin:.65rem 0}.trade-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0}.trade-card dt{color:var(--ink-soft);font-size:.75rem}.trade-card dd{font-family:var(--mono);font-size:.9rem;margin:.3rem 0;overflow-wrap:anywhere}.trade-card>a{font-size:.85rem}.trade-card>small{display:block;color:var(--ink-soft);font-size:.75rem;margin-top:.4rem}.trade-kind{font-size:.8rem;font-weight:700;padding:.35rem .55rem;border-radius:6px;border:1px solid #69788b}.trade-kind.buy{background:#123f37;color:#a8f0c7;border-color:#508b78}.trade-kind.sell{background:#4a2634;color:#ffd2db;border-color:#b36e7c}.trade-kind.other{background:#28323f;color:#dce7f1}.trade-source{margin-top:.7rem}.trade-source summary{cursor:pointer;font-size:.85rem}.insider-tool .tblwrap,.funds-tool .tblwrap,.tool-rot .tblwrap{display:block;overflow-x:auto}.insider-tool [hidden],.funds-tool [hidden],.tool-rot [hidden]{display:none!important}#insider-trades{scroll-margin-top:1rem}.fund-jobs{display:flex;flex-wrap:wrap;gap:.7rem;margin:1rem 0}.fund-jobs a{border:1px solid #536374;border-radius:8px;padding:.7rem 1rem;background:#101d29;color:var(--ink);font-size:.9rem}.fund-cost-list{display:flex;flex-direction:column;margin-top:1rem}.fund-cost{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1.4rem;border-top:1px solid #536374;padding:1.2rem 0}.fund-cost:first-child{border-top:0}.fund-cost h3{font-size:1.05rem;margin:0}.fund-cost p{margin:.45rem 0;font-size:.9rem;color:var(--ink-soft)}.fund-cost .annual-cost{font-family:var(--mono);font-size:1.5rem;white-space:nowrap}.fund-cost .annual-cost small{display:block;font-family:Inter,sans-serif;font-size:.75rem;font-weight:400;color:var(--ink-soft);text-align:right;margin-top:.25rem}.fund-cost .fund-document{font-size:.85rem}.fund-cost details{grid-column:1/-1;font-size:.85rem;color:var(--ink-soft)}.fund-cost summary{cursor:pointer}.fund-pickers{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.overlap-answer{padding:1.2rem;border:1px solid #536374;border-radius:10px;background:#101d29;margin:1rem 0}.overlap-answer .overlap-number{font-family:var(--mono);font-size:clamp(2rem,6vw,3rem);line-height:1.2;margin:0 0 .6rem;color:var(--ink)}.overlap-answer h3{font-size:1.15rem}.overlap-answer p{line-height:1.6}.tool-wrap button:focus-visible,.tool-wrap select:focus-visible,.tool-wrap input:focus-visible,.tool-wrap summary:focus-visible,.fund-jobs a:focus-visible{outline:3px solid var(--lime);outline-offset:3px}@media(max-width:720px){.company-grid{grid-template-columns:1fr}.tool-controls label{flex:1;min-width:130px}.tool-controls .company-search{flex-basis:100%;min-width:0}.trade-card dl{grid-template-columns:1fr 1fr}.trade-card time{margin-left:0;flex-basis:100%}.fund-pickers{grid-template-columns:1fr}.fund-cost{gap:.4rem .75rem}.fund-cost .annual-cost{font-size:1.2rem}.tool-rot .bar{grid-template-columns:minmax(0,1fr) auto;gap:.4rem}.tool-rot .bar>span:first-child{grid-column:1/-1}.tool-rot .bar .track{min-width:0}.tool-rot .bar .v{min-width:72px}}

/* Pension transparency; scoped so Insider handler and Rotation keep their layout. */
.pension-tool .pension-eyebrow{margin:0 0 .5rem;color:var(--lime);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.pension-tool .pension-controls{margin:1.4rem 0}.pension-tool .pension-select-label{flex:1.25;min-width:240px}.pension-tool .pension-amount-label{flex:1;min-width:210px}.pension-tool #pension-company,.pension-tool #pension-amount{min-height:52px;font-size:1.05rem}.pension-tool #pension-amount{font-family:var(--mono);font-size:1.1rem}
.pension-tool .pension-error{color:#ffd2db;margin:.6rem 0 0}.pension-tool .pension-cost-card{border-color:#778d52;background:linear-gradient(135deg,#152731,#0e1925)}.pension-tool .pension-cost-card h2{margin:.2rem 0 1rem}
.pension-tool .pension-price{margin:.8rem 0 1rem}.pension-tool .pension-price strong{display:block;font:600 clamp(2.1rem,7vw,4rem)/1.15 var(--display);letter-spacing:-.035em;color:var(--lime);overflow-wrap:anywhere}.pension-tool .pension-price span{display:block;color:var(--ink-soft);margin:.5rem 0;font-size:1rem}.pension-tool .pension-product{font-weight:600}.pension-tool .pension-no-price{font:600 clamp(1.3rem,4vw,2rem)/1.3 var(--display)}
.pension-tool .pension-source,.pension-tool .pension-cost-note,.pension-tool .pension-scope-note{font-size:.87rem;line-height:1.65;color:var(--ink-soft)}.pension-tool .pension-source a,.pension-tool .pension-metric a{text-underline-offset:3px}.pension-tool .pension-cost-note{max-width:70ch}.pension-tool .pension-scope-warning{border-left:3px solid var(--lime);padding:.85rem 1rem;margin:1.2rem 0 1.5rem;background:#14222c;color:var(--ink-soft);font-size:.92rem;line-height:1.7}.pension-tool .pension-scope-warning strong{display:block;color:var(--ink)}.pension-tool .pension-readout{border-left:3px solid var(--lime);padding:1rem 1.15rem;margin:0 0 1.5rem;background:#14222c;color:var(--ink-soft);font-size:.95rem;line-height:1.7}.pension-tool .pension-readout>strong{display:block;color:var(--ink);font-size:1.15rem;margin-bottom:.55rem}.pension-tool .pension-readout p{margin:.55rem 0 0}.pension-tool .pension-readout-total{color:var(--ink);font-size:1.05rem}.pension-tool .pension-readout-total strong{font-family:var(--mono);color:var(--lime);font-size:1.25rem}.pension-tool .pension-cost-card .pension-amount-label{display:flex;flex-direction:column;gap:.45rem;max-width:22rem;margin:.2rem 0 1rem;color:var(--ink-soft);font-size:.85rem;font-weight:600}.pension-tool .pension-cost-card #pension-amount{min-height:52px;font:600 1.1rem/1.2 var(--mono);color:var(--ink);background:#101d29;border:1px solid #526170;border-radius:8px;padding:.6rem .75rem;width:100%}.pension-tool .pension-result-scope{font-weight:600;color:var(--ink);font-size:.95rem}.pension-tool .pension-bars-label{color:var(--ink-soft);font-size:.8rem;margin:1.2rem 0 .3rem}
.pension-tool .pension-holdings-list{list-style:none;padding:0;margin:0}.pension-tool .pension-holdings-list li{padding:1rem 0;border-bottom:1px solid #384b5a}.pension-tool .pension-holdings-list li:last-child{border-bottom:0}.pension-tool .pension-position-head{display:flex;align-items:center;gap:1rem;justify-content:space-between}.pension-tool .pension-position-name{font-size:.95rem;font-weight:600;overflow-wrap:anywhere;min-width:0}.pension-tool .pension-metric{text-align:right;flex-shrink:0;max-width:65%}.pension-tool .pension-metric strong{font:600 1.02rem/1.5 var(--mono);display:block;overflow-wrap:anywhere}.pension-tool .pension-metric strong a{color:var(--ink)}.pension-tool .pension-metric small{display:block;font-size:.75rem;line-height:1.55;color:var(--ink-soft)}.pension-tool .pension-bar{margin-top:.65rem;height:7px;background:#243642;border-radius:10px;overflow:hidden}.pension-tool .pension-bar span{display:block;height:100%;background:var(--lime);border-radius:10px}
.pension-tool .pension-watched-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1.2rem 0}.pension-tool .pension-watched-card{padding:1rem;background:#111f2b;border:1px solid #536374;border-radius:10px;min-width:0}.pension-tool .pension-watched-card h3{font-size:1.05rem;margin:0 0 .55rem}.pension-tool .pension-match{font-size:.73rem;color:#b9edca}.pension-tool .pension-watched-position{margin-top:.65rem}.pension-tool .pension-source-name{font-size:.75rem;overflow-wrap:anywhere;color:var(--ink-soft)}.pension-tool .pension-watched-card .pension-metric{text-align:left;max-width:100%;margin-top:.3rem}.pension-tool .pension-missing,.pension-tool .pension-card-note{font-size:.82rem;line-height:1.6;color:var(--ink-soft);margin:.6rem 0 0}.pension-tool .pension-unsplit{padding:1rem;margin-top:1rem;border-left:2px solid #7aa2c8;background:#11232e;font-size:.88rem}.pension-tool .pension-unsplit .pension-metric{text-align:left;max-width:100%}.pension-tool .pension-empty{padding:1rem;background:#132330;border-radius:8px;color:var(--ink-soft)}
.pension-tool .pension-coverage-list{padding:0;list-style:none}.pension-tool .pension-coverage-list li{padding:.6rem 0;border-bottom:1px solid #384b5a}.pension-tool .pension-coverage-list strong,.pension-tool .pension-coverage-list span{display:block;font-size:.85rem}.pension-tool .pension-coverage-list span{color:var(--ink-soft);margin-top:.2rem}.pension-tool .methodology>summary,.pension-tool .pension-indexfunds>summary{min-height:44px;cursor:pointer;display:flex;align-items:center;font-size:1rem;font-weight:600}.pension-tool .pension-indexfunds>summary::before{content:'▸';margin-right:.6rem;color:var(--lime)}.pension-tool .pension-indexfunds[open]>summary::before{content:'▾'}.pension-tool .pension-indexfunds{margin-top:2rem}.pension-tool .pension-indexfunds>section.card{padding-left:0;padding-right:0}
@media(max-width:600px){.pension-tool .pension-controls .tool-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.pension-tool .pension-select-label,.pension-tool .pension-amount-label{min-width:0}.pension-tool .pension-watched-grid{grid-template-columns:1fr}.pension-tool .pension-position-head{display:block}.pension-tool .pension-position-head .pension-metric{margin-top:.4rem;max-width:100%;text-align:left}.pension-tool .pension-metric strong{font-size:.95rem}.pension-tool .pension-price strong{font-size:clamp(2rem,9vw,3.4rem)}}

/* Pension what-if: disclosed holdings only, never a personal pension projection. */
.pension-stress .stress-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}
.pension-stress label{display:grid;gap:.65rem;font-weight:700;min-width:0}
.pension-stress select{max-width:100%;width:100%;padding:.7rem;background:#101b24;color:var(--text,#f1f5f9);border:1px solid #52606a;border-radius:10px}
.pension-stress input[type=range]{width:100%;accent-color:#c8f76b;min-height:32px;cursor:pointer}
.pension-stress output{color:#c8f76b;font-size:1.35rem;font-variant-numeric:tabular-nums}
.pension-stress #stress-slider-help{grid-column:1/-1;margin-top:0}
.stress-presets{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.stress-chip{font:inherit;color:inherit;background:transparent;border:1px solid #65784f;border-radius:999px;padding:.65rem .85rem;cursor:pointer;text-align:left}
.stress-chip[aria-pressed=true]{background:#c8f76b;color:#14200c;border-color:#c8f76b}
.stress-chip:focus-visible,.pension-stress input:focus-visible,.pension-stress select:focus-visible{outline:3px solid #c8f76b;outline-offset:3px}
.stress-answer{padding:1rem;border-left:3px solid #c8f76b;background:rgba(200,247,107,.07);border-radius:0 10px 10px 0}
.stress-answer strong{font-size:1.15em;color:#c8f76b}
.stress-scheme{margin:1rem 0 1.25rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.14)}
.stress-scheme-answer strong{font-size:1.3em}
.stress-scheme-steps,.stress-scheme-caveats{padding-left:1.25rem}
.stress-scheme-steps li,.stress-scheme-caveats li{margin:.4rem 0;overflow-wrap:anywhere}
.stress-scheme-hint{padding:.75rem 1rem;border:1px dashed #65784f;border-radius:10px}
.stress-coverage{border-top:1px solid rgba(255,255,255,.14);padding-top:1rem}
.stress-method li{margin:.65rem 0;overflow-wrap:anywhere}
@media(max-width:640px){.pension-stress .stress-controls{grid-template-columns:1fr}.stress-chip{width:100%;border-radius:12px}}
.pension-tool [hidden]{display:none!important}
/* Official lifecycle/mix and comparison tables are separate from the shared equity list. */
.mix-controls{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}
.mix-controls label,.pension-history>label{display:grid;gap:.5rem;font-size:.9rem;font-weight:600;min-width:0}
.mix-controls label:last-child{grid-column:1/-1}
.mix-controls input,.mix-controls select,.pension-history select{width:100%;min-height:48px;font:inherit;padding:.7rem;border:1px solid #526170;border-radius:9px;background:#101d29;color:var(--ink,#f1f5f9)}
.mix-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1rem 0}
.mix-assets>div{display:flex;justify-content:space-between;gap:1rem;padding:.85rem;border:1px solid #3d505e;border-radius:9px;background:#101d29;min-width:0}
.mix-assets dt{font-size:.85rem;overflow-wrap:anywhere}.mix-assets dd{margin:0;font:600 .95rem var(--mono,monospace);white-space:nowrap}
.mix-assets>.mix-alternative{border-color:#77934d;background:rgba(200,247,107,.06)}
.mix-source-row{font-size:.75rem;white-space:pre-wrap;overflow-wrap:anywhere;max-height:20rem;overflow:auto;background:#101d29;padding:.8rem;border-radius:8px}
.mix-coverage{margin-top:1.2rem}.mix-coverage summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.mix-table-scroll{overflow-x:auto;max-width:100%}.mix-table-scroll table{width:100%;border-collapse:collapse;font-size:.9rem;margin:1rem 0}.mix-table-scroll caption{text-align:left;color:var(--ink-soft);font-size:.8rem;margin-bottom:.6rem}.mix-table-scroll td,.mix-table-scroll th{text-align:right;padding:.65rem;border-bottom:1px solid #3d505e;font-variant-numeric:tabular-nums;white-space:nowrap}.mix-table-scroll th:first-child{text-align:left}
@media(max-width:640px){.mix-controls,.mix-assets{grid-template-columns:1fr}.mix-assets>div{flex-wrap:wrap}.mix-controls label:last-child{grid-column:auto}}
/* Rotation sector context + sector lookup on Pension (same visual language as stress/mix). */
.sector-lookup-list{padding-left:1.4rem;margin:1rem 0}.sector-lookup-list li{margin:.55rem 0;overflow-wrap:anywhere}.sector-lookup-list li span{display:block;color:var(--ink-soft);font-size:.88rem;font-variant-numeric:tabular-nums}
.pension-sector-lookup select{width:100%;min-height:48px;font:inherit;padding:.7rem;border:1px solid #526170;border-radius:9px;background:#101d29;color:var(--ink,#f1f5f9)}
.pension-sector-lookup select:focus-visible{outline:3px solid #c8f76b;outline-offset:3px}

.mix-company-jumps{display:flex;flex-wrap:wrap;gap:.6rem;margin:.4rem 0 0}
.mix-company-jumps .chip{cursor:pointer}
