/* Shared allocation controls and layout for the official portfolio pages. */
html:root body.portfolio-interactive {
 --sector-0:var(--blue); --sector-1:var(--chart-ahlyx); --sector-2:var(--chart-aqmix);
 --sector-3:color-mix(in srgb,var(--blue) 70%,var(--bg));
 --sector-4:color-mix(in srgb,var(--chart-ahlyx) 70%,var(--bg));
 --sector-5:color-mix(in srgb,var(--chart-aqmix) 68%,var(--bg));
 --sector-6:color-mix(in srgb,var(--blue) 76%,var(--chart-ahlyx));
 --sector-7:color-mix(in srgb,var(--chart-ahlyx) 65%,var(--chart-aqmix));
 --sector-8:color-mix(in srgb,var(--blue) 48%,var(--text));
 --sector-9:color-mix(in srgb,var(--chart-ahlyx) 45%,var(--text));
 --sector-10:color-mix(in srgb,var(--blue) 45%,var(--bg)); --sector-11:var(--muted);
}
html:root body.portfolio-interactive [hidden] { display:none!important; }
.portfolio-interactive .holdings-sr { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
html:root body.portfolio-interactive .holdings-switcher { position:relative;flex:0 1 auto;min-width:0; }
html:root body.portfolio-interactive .holdings-switcher summary { display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;padding:14px 0;font:500 14px/1.4 var(--font-ui);color:var(--rp-text); }
.portfolio-interactive .holdings-switcher summary::-webkit-details-marker { display:none; }
.portfolio-interactive .holdings-switcher svg { width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform 180ms ease-in-out; }
.portfolio-interactive .holdings-switcher[open] > summary svg { transform:rotate(180deg); }
html:root body.portfolio-interactive .holdings-switcher-menu { position:absolute;left:0;top:100%;width:280px;max-height:70dvh;overflow:auto;background:var(--rp-bg);border:1px solid var(--rp-line);border-radius:14px;padding:14px;box-shadow:0 14px 40px color-mix(in srgb,var(--rp-bg) 80%,transparent);z-index:2; }
.portfolio-interactive .holdings-switcher-menu p { margin:16px 10px 5px;font:500 11px/1.4 var(--font-ui);color:var(--rp-muted);letter-spacing:.04em;text-transform:uppercase; }
html:root body.portfolio-interactive .holdings-switcher-menu a { display:block;padding:9px 10px;border-radius:8px;color:var(--rp-text);font:400 13px/1.5 var(--font-ui);text-decoration:none; }
html:root body.portfolio-interactive .holdings-switcher-menu a:is(:hover,[aria-current]) { background:var(--rp-soft);color:var(--rp-blue); }
html:root body.portfolio-interactive .holdings-switcher-menu .holdings-collection-link { border-bottom:1px solid var(--rp-line);border-radius:0;padding-bottom:14px; }
html:root body.portfolio-interactive .holdings-collection-link svg { width:1em;height:1em;margin-left:3px;vertical-align:-.12em; }
html:root body.portfolio-interactive .holdings-toolbar { display:grid;gap:14px;margin-bottom:16px;flex-shrink:0; }
.portfolio-interactive .holdings-title,.portfolio-interactive .holdings-meta,.portfolio-interactive .holdings-filter-summary { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.portfolio-interactive .holdings-title strong { font:500 16px/1.4 var(--font-ui);color:var(--rp-text); }
.portfolio-interactive .holdings-count,.portfolio-interactive [data-quote-summary] { font:400 12px/1.5 var(--font-ui);color:var(--rp-muted); }
.portfolio-interactive .holdings-filters { display:grid;grid-template-columns:minmax(120px,1.2fr) minmax(130px,1fr) minmax(110px,.8fr);gap:10px; }
.portfolio-interactive .has-no-groups .holdings-filters { grid-template-columns:minmax(120px,1.5fr) minmax(110px,1fr); }
.portfolio-interactive .holdings-filters label { display:grid;gap:6px;min-width:0;font:400 12px/1.4 var(--font-ui);color:var(--rp-muted); }
html:root body.portfolio-interactive .holdings-filters :is(input,select) { width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--rp-line);border-radius:10px!important;padding:10px 12px;min-height:42px;background:var(--rp-bg);color:var(--rp-text);font:400 13px/1.4 var(--font-ui); }
html:root body.portfolio-interactive .holdings-filters input::placeholder { color:var(--rp-muted);opacity:.75; }
.portfolio-interactive .holdings-filter-summary { background:color-mix(in srgb,var(--rp-blue) 7%,var(--rp-bg));border-radius:9px;padding:9px 12px;font:400 12px/1.5 var(--font-ui);color:var(--rp-blue); }
html:root body.portfolio-interactive .holdings-filter-summary button { color:var(--rp-text);font:500 12px/1.5 var(--font-ui);background:transparent;border:0;cursor:pointer;flex-shrink:0; }
html:root body.portfolio-interactive .profile-original-allocation { display:flex;flex-direction:column;min-width:0;min-height:0; }
html:root body.portfolio-interactive .holdings-scroll-shell { position:relative;min-width:0;min-height:220px;flex:1 1 0;contain:size;background:transparent; }
html:root body.portfolio-interactive .holdings-scroll { height:100%;max-height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--rp-line) transparent;padding:0;box-sizing:border-box; }
.portfolio-interactive .holdings-scroll-shell::after { content:'';position:absolute;inset:auto 0 0;height:44px;background:linear-gradient(transparent,var(--rp-bg));pointer-events:none;opacity:0;transition:opacity 200ms ease-in-out; }
.portfolio-interactive .holdings-scroll-shell.has-more::after { opacity:1; }
html:root body.portfolio-interactive .holdings-scroll :is(#allocation-mosaic,#portfolio-list,#ms-allocation-mosaic) { display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));min-height:0;max-height:none;height:auto;overflow:visible;contain:none;gap:10px; }
html:root body.portfolio-interactive .holdings-scroll :is(.asset-tile,.rp-asset-tile) { gap:14px;padding:16px;border-color:color-mix(in srgb,var(--rp-line) 70%,transparent);transition:background 180ms ease-in-out,border-color 180ms ease-in-out; }
html:root body.portfolio-interactive .holdings-scroll :is(.asset-tile,.rp-asset-tile).is-group-hovered { border-color:var(--sector-color);background:color-mix(in srgb,var(--sector-color) 6%,var(--rp-bg)); }
html:root body.portfolio-interactive .holdings-holding-sector { display:flex;align-items:baseline;gap:6px;min-width:0;margin-top:-7px;font:400 11px/1.5 var(--font-ui);color:var(--rp-muted); }
.portfolio-interactive .holdings-holding-sector::before { content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--sector-color);flex-shrink:0; }
html:root body.portfolio-interactive .profile-ui-holding-quote { gap:5px;padding-top:10px; }
.portfolio-interactive .holdings-empty { padding:32px 18px;font:400 13px/1.6 var(--font-ui);color:var(--rp-muted); }
html:root body.portfolio-interactive :is(#sector-bars,#portfolio-sector-bars,#holdings-bars) > * { cursor:pointer;border-radius:6px;padding:4px 6px;margin:-4px -6px;transition:background 180ms ease-in-out; }
html:root body.portfolio-interactive :is(#sector-bars,#portfolio-sector-bars,#holdings-bars) > :is(.is-group-selected,.is-group-hovered,:hover) { background:color-mix(in srgb,var(--sector-color) 9%,var(--rp-bg)); }
html:root body.portfolio-interactive :is(.sector-track > i,.rp-holding-track > i) { background:var(--sector-color,var(--rp-blue)); }
/* One tooltip treatment across performance, turnover, and drawdown. */
html:root body.portfolio-interactive .profile-chart { margin-top:28px; }
html:root body.portfolio-interactive .profile-chart-surface { position:relative;width:100%;min-height:300px; }
html:root body.portfolio-interactive .profile-chart-surface svg { width:100%;display:block;touch-action:pan-y; }
html:root body.portfolio-interactive .profile-chart-message { position:absolute;inset:40% 10%;text-align:center;color:var(--rp-muted); }
html:root body.portfolio-interactive .profile-chart .ms-chart-grid { stroke:var(--rp-line);opacity:.5; }
html:root body.portfolio-interactive .profile-chart .ms-chart-label { fill:var(--rp-muted);font-size:13px; }
html:root body.portfolio-interactive .profile-chart .ms-chart-path { stroke:var(--series-color);stroke-width:1.5;vector-effect:non-scaling-stroke;fill:none; }
html:root body.portfolio-interactive .profile-chart .ms-chart-path.primary { stroke-width:2; }
html:root body.portfolio-interactive .profile-chart :is(.ms-range-controls,.profile-ui-chart-mode) { display:flex;gap:2px;padding:4px;border:0; }
html:root body.portfolio-interactive .profile-chart :is(.ms-range-controls,.profile-ui-chart-mode) button { min-height:38px;padding:0 15px;border:0;border-radius:9px!important;font:400 14px/1.4 var(--font-ui);background:transparent;color:var(--rp-muted);cursor:pointer; }
html:root body.portfolio-interactive .profile-chart :is(.ms-range-controls,.profile-ui-chart-mode) button[aria-pressed=true] { background:var(--rp-blue)!important;color:var(--rp-bg)!important; }
html:root body.portfolio-interactive .profile-chart .rp-chart-header > div:first-child { display:grid;gap:5px; }
html:root body.portfolio-interactive .profile-chart .rp-chart-header { align-items:center;margin-bottom:16px; }
html:root body.portfolio-interactive .profile-series-controls { display:flex;flex-wrap:wrap;gap:12px 24px; }
html:root body.portfolio-interactive .profile-series-controls button { display:flex;align-items:center;gap:8px;border:0;border-radius:0!important;padding:8px 0;background:transparent!important;color:var(--rp-muted);font:400 14px/1.4 var(--font-ui);cursor:pointer; }
html:root body.portfolio-interactive .profile-series-controls button[aria-pressed=false] { opacity:.4; }
html:root body.portfolio-interactive .profile-series-controls i { width:8px;height:8px;border-radius:50%; }
html:root body.portfolio-interactive :is(.ms-chart-tooltip,.profile-ui-drawdown-tooltip,.holdings-chart-tooltip) { position:absolute;z-index:3;border:1px solid var(--rp-line);border-radius:10px;padding:13px 15px;min-width:180px;max-width:min(300px,calc(100% - 16px));box-sizing:border-box;background:var(--rp-bg);color:var(--rp-text);font:400 12px/1.5 var(--font-ui);pointer-events:none;box-shadow:0 6px 18px color-mix(in srgb,var(--rp-bg) 65%,transparent); }
html:root body.portfolio-interactive :is(.ms-chart-tooltip,.profile-ui-drawdown-tooltip,.holdings-chart-tooltip) > strong { display:block;margin:0 0 9px;font:500 12px/1.5 var(--font-ui); }
html:root body.portfolio-interactive :is(.ms-chart-tooltip,.profile-ui-drawdown-tooltip,.holdings-chart-tooltip) :is(b,span,div) { font-size:12px;font-variant-numeric:tabular-nums; }
.portfolio-interactive .holdings-chart-tooltip > div { display:flex;justify-content:space-between;gap:20px; }
.portfolio-interactive .holdings-chart-inspector { position:relative; }
.portfolio-interactive .holdings-chart-tooltip { top:16px; }
.portfolio-interactive .holdings-inspector-cursor line { stroke:var(--rp-muted);stroke-dasharray:3 5;stroke-width:1; }
.portfolio-interactive .holdings-inspector-cursor circle { fill:var(--rp-blue);stroke:var(--rp-bg);stroke-width:2; }
html:root body.portfolio-interactive .profile-chart .ms-chart-tooltip { transform:none;display:block; }
html:root body.portfolio-interactive :is(button,input,select,summary,[role="button"]):focus-visible { outline:2px solid var(--rp-blue);outline-offset:3px; }
@media(min-width:1280px) {
 html:root body.portfolio-interactive .holdings-scroll :is(#allocation-mosaic,#portfolio-list,#ms-allocation-mosaic) { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(min-width:761px) {
 html:root body.portfolio-interactive .profile-allocation-grid-single .holdings-scroll-shell { height:550px;flex:auto; }
}
@media(max-width:1000px) {
 .portfolio-interactive .holdings-filters { grid-template-columns:1fr 1fr; }
 .portfolio-interactive .holdings-filters label:first-child { grid-column:1/-1; }
 html:root body.portfolio-interactive .profile-ui-section-nav-inner { gap:20px; }
 html:root body.portfolio-interactive .holdings-switcher summary { max-width:200px; }
}
@media(max-width:760px) {
 html:root body.portfolio-interactive .profile-chart :is(.rp-chart-header,.rp-chart-controls) { flex-wrap:wrap; }
 html:root body.portfolio-interactive .profile-chart .ms-range-controls { width:100%;justify-content:space-between; }
 html:root body.portfolio-interactive .holdings-scroll-shell { flex:none;height:auto;max-height:500px;min-height:0;contain:none; }
 html:root body.portfolio-interactive .holdings-scroll { height:auto;max-height:500px; }
 html:root body.portfolio-interactive .holdings-scroll :is(#allocation-mosaic,#portfolio-list,#ms-allocation-mosaic) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 html:root body.portfolio-interactive .holdings-scroll :is(.asset-tile,.rp-asset-tile) { padding:12px; }
 html:root body.portfolio-interactive .profile-ui-section-nav-inner { display:grid;grid-template-columns:1fr auto;gap:0 12px; }
 html:root body.portfolio-interactive .holdings-switcher summary { max-width:none;padding:10px 0;font-size:13px; }
 html:root body.portfolio-interactive .profile-ui-section-links { grid-column:1/-1;grid-row:2; }
 html:root body.portfolio-interactive .profile-ui-section-links a { height:42px; }
 html:root body.portfolio-interactive .profile-ui-nav-compare { display:block!important;grid-row:1;grid-column:2;font-size:12px; }
 .portfolio-interactive .holdings-meta { gap:8px; }
 .portfolio-interactive [data-quote-summary] { font-size:11px; }
 .portfolio-interactive .holdings-switcher-menu { width:min(280px,calc(100vw - 60px)); }
 .portfolio-interactive :is(#profile-allocations,#profile-performance,#allocations,#performance) { scroll-margin-top:110px; }
}
@media(prefers-reduced-motion:reduce) {
 .portfolio-interactive :is(.holdings-switcher svg,.holdings-scroll-shell::after,.asset-tile,.rp-asset-tile) { transition:none!important; }
}
