#portfolio {
  --pf-blue: #1959d7;
  --pf-muted: var(--muted, #626e84);
  --pf-panel: var(--panel, #fff);
  --pf-line: var(--line, #e0e7f2);
  font-size: 18px;
  min-width: 0;
  max-width: 1420px;
  margin: 0 auto;
}
body.dark #portfolio { --pf-blue: #9abaff; }
#portfolio :where(h1,h2,p,ul) { margin: 0; }
#portfolio h1 { font-size: clamp(29px,3.7vw,48px); line-height: 1.15; letter-spacing: -.035em; }
#portfolio h2 { font-size: 22px; line-height: 1.4; }
.pf-hero {
  background: var(--pf-panel); border: 1px solid var(--pf-line);
  padding: clamp(16px,2.5vw,28px); border-radius: 22px;
}
.pf-hero-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.pf-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; }
#portfolio .pf-hero h1 { font-size: clamp(27px,3.2vw,40px); }
.pf-preview-head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin: 14px 0 10px; }
.pf-preview-title { display: flex; align-items: center; gap: 8px; }
#portfolio .pf-preview-head h2 { font-size: 17px; }
.pf-preview-head span,.pf-preview-empty { color: var(--pf-muted); font-size: 15px; }
.pf-preview-modes { display: flex; gap: 3px; padding: 3px; border: 1px solid var(--pf-line); border-radius: 10px; }
.pf-preview-modes button { padding: 5px 9px; border: 0; border-radius: 7px; color: var(--pf-muted); font-size: 14px; font-weight: 700; }
.pf-preview-modes button[aria-pressed=true] { background: var(--soft,#edf3ff); color: var(--pf-blue); }
.pf-preview-all { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; }
.pf-preview-all .pf-preview-stock { width: 96px; min-height: 68px; padding: 5px; }
.pf-preview-all .pf-security { flex-direction: column; gap: 4px; text-align: center; }
.pf-preview-all .pf-logo { height: 38px; flex: 0 0 auto; }
.pf-preview-all .pf-logo-brand { width: 84px; }
.pf-preview-all .pf-security small { display: none; }
.pf-preview-carousel {
  display: grid; grid-template-columns: 40px minmax(0,1fr) 40px; align-items: center; gap: 8px;
  max-width: 580px; margin: 0 auto;
}
.pf-preview-list {
  display: flex; overflow-x: auto; list-style: none; padding: 0;
  scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
}
.pf-preview-list > li { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.pf-preview-stock,.pf-preview-arrow {
  color: inherit; background: var(--pf-panel); border: 1px solid var(--pf-line); border-radius: 10px;
}
.pf-preview-stock { display: grid; place-items: center; width: 100%; height: 100%; min-height: 64px; padding: 7px; }
.pf-preview-stock .pf-security { width: min(100%,280px); }
.pf-preview-stock .pf-logo-brand { border: 0; }
.pf-preview-arrow { width: 40px; height: 40px; padding: 0; font-size: 27px; line-height: 1; color: var(--pf-blue); }
.pf-preview-arrow:disabled { opacity: .4; }
.pf-preview-stock:focus-visible { outline-offset: -3px; }
.pf-preview-stock:hover,.pf-preview-arrow:not(:disabled):hover { border-color: var(--pf-blue); }
.pf-preview-empty { text-align: center; }
#portfolio .pf-primary { background: #165be3; border-color: #165be3; color: #fff; font-weight: 700; white-space: nowrap; }
#portfolio .pf-primary:not(:disabled):hover { background: var(--brand-navy,#07143f); }
.pf-status { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 13px 0; font-size: 15px; color: var(--pf-muted); }
.pf-status button { padding: 5px 10px; font-size: 14px; }
.pf-metrics, .pf-grid { display: grid; gap: 15px; margin-bottom: 15px; }
.pf-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.pf-grid { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); }
.pf-card { background: var(--pf-panel); border: 1px solid var(--pf-line); border-radius: 17px; padding: clamp(15px,2.3vw,24px); min-width: 0; }
.pf-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.pf-chip { display: inline-block; border-radius: 999px; color: var(--pf-blue); background: var(--soft,#edf3ff); padding: 6px 10px; font-size: 13px; font-weight: 700; text-align: center; }
.pf-metric { display: grid; gap: 4px; }
.pf-metric span,.pf-metric small,.pf-security small,.pf-plan-list small,.pf-news-list small,.pf-recovery small { color: var(--pf-muted); }
.pf-metric span { font-size: 15px; }
.pf-metric strong { font-size: clamp(19px,2.9vw,32px); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.pf-metric small { font-size: 14px; }
.pf-loss { color: #b62948; }
.pf-gain { color: #087b63; }
body.dark .pf-loss { color: #ff9db2; }
body.dark .pf-gain { color: #6bdfc5; }
.pf-allocation { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 15px; align-items: center; }
.pf-donut { width: min(100%,225px); aspect-ratio: 1; background: var(--pf-plot); display: grid; place-items: center; border-radius: 50%; margin: auto; }
.pf-donut > div { width: 73%; aspect-ratio: 1; display: grid; align-content: center; justify-items: center; text-align: center; overflow-wrap: anywhere; border-radius: 50%; background: var(--pf-panel); }
.pf-donut small { color: var(--pf-muted); font-size: 13px; }
.pf-donut b { font-size: clamp(14px,1.55vw,23px); }
.pf-donut-interactive{position:relative;background:none}
.pf-donut-interactive svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:rotate(calc(-90deg + var(--pf-dial-rotation,0deg)));transition:transform .18s ease-out}
.pf-donut-interactive{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;transition:transform .15s ease,filter .15s ease}
.pf-dial-active .pf-donut-interactive{cursor:grabbing;transform:scale(1.04);filter:drop-shadow(0 3px 7px #1959d733)}
.pf-dial-active .pf-donut-interactive svg{transition:none}
.pf-dial-active .pf-donut-toggle{cursor:grabbing!important}
.pf-dial-mark{position:absolute;z-index:1;top:-8px;left:calc(50% - 5px);width:10px;height:7px;background:var(--pf-muted);clip-path:polygon(0 0,100% 0,50% 100%);opacity:.65;pointer-events:none}
.pf-dial-active .pf-dial-mark{opacity:1}
.pf-dial-hint{margin-top:8px!important}
@media(prefers-reduced-motion:reduce){.pf-donut-interactive,.pf-donut-interactive svg{transition:none}.pf-dial-active .pf-donut-interactive{transform:none}}
.pf-donut-interactive>div{position:relative;background:transparent;align-content:stretch}
#portfolio .pf-donut-toggle{display:grid;align-content:center;justify-items:center;width:100%;height:100%;padding:4px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
#portfolio .pf-donut-toggle:hover{background:transparent}
#portfolio .pf-donut-toggle:focus-visible{outline:2px solid var(--pf-blue);outline-offset:2px}
.pf-donut-toggle .pf-donut-owner{max-width:100%;margin:0}
.pf-donut-toggle .pf-donut-owner>img,.pf-donut-toggle .pf-owner-placeholder{width:48px;height:48px}
.pf-donut-company{display:flex;justify-content:center;margin-bottom:4px;max-width:80%}
.pf-donut-company .pf-logo{width:34px;height:34px;flex:0 0 34px}
.pf-donut-company .pf-logo-brand{width:76px;flex-basis:76px}
.pf-donut-company .pf-logo img{max-width:100%;max-height:100%}
.pf-donut-owner{display:grid;justify-items:center;gap:3px;max-width:90%;margin-bottom:4px}
.pf-donut-owner>img,.pf-owner-placeholder{width:38px;height:38px;object-fit:cover;border-radius:50%}
.pf-owner-placeholder{display:grid;place-items:center;background:var(--soft,#edf3ff);color:var(--pf-muted);font-size:11px;border:1px dashed var(--pf-line)}
.pf-donut-owner>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}
.pf-donut-owner.is-compact{display:flex;gap:5px;align-items:center;margin-bottom:3px}
.pf-donut-owner.is-compact>img,.pf-donut-owner.is-compact>.pf-owner-placeholder{width:22px;height:22px;flex:0 0 22px;font-size:9px}
.pf-donut-owner.is-compact>span:last-child{font-size:11px}
.pf-donut-interactive:has(.pf-donut-owner.is-compact) .pf-donut-company .pf-logo{height:27px;width:27px;flex-basis:27px}
.pf-donut-interactive:has(.pf-donut-owner.is-compact) .pf-donut-company .pf-logo-brand{width:65px;flex-basis:65px}
.pf-appearance-dialog{max-width:540px;max-height:90dvh;overflow:auto;background:var(--pf-panel,var(--panel));color:inherit}
.pf-appearance-dialog .pf-field{margin:16px 0}
.pf-owner-upload{display:flex;align-items:center;gap:16px;margin:20px 0}
[data-pf-photo-preview]>img,[data-pf-photo-preview]>.pf-owner-placeholder{width:64px;height:64px;border-radius:50%;object-fit:cover}
.pf-owner-upload>div{min-width:0;flex:1}
.pf-owner-upload input{max-width:100%;font-size:13px}
.pf-color-fields{border:1px solid var(--pf-line,var(--line));border-radius:12px;padding:14px;margin:18px 0}
[data-pf-color-fields]{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 16px}
[data-pf-color-fields]>label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px;background:var(--soft);border-radius:8px;font-size:14px}
[data-pf-color-fields] input[type=color]{width:44px;height:34px;padding:3px;cursor:pointer}
[data-pf-appearance-error]{font-size:14px;color:var(--pf-muted,var(--muted));min-height:24px}
.pf-donut-segment{stroke-width:32;transition:opacity .18s ease,stroke-width .18s ease}
.pf-donut-segment.is-muted{opacity:.2}
.pf-donut-segment.is-selected{stroke-width:40}
.pf-legend li:has(.pf-allocation-stock){display:block;padding:2px 0}
#portfolio .pf-allocation-stock{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;padding:8px;border:1px solid transparent;border-radius:10px;background:transparent;text-align:left;color:inherit}
#portfolio .pf-allocation-stock:hover{background:var(--soft,#edf3ff)}
#portfolio .pf-allocation-stock[aria-pressed=true]{background:color-mix(in srgb,var(--pf-swatch) 14%,var(--pf-panel));border-color:var(--pf-swatch)}
.pf-allocation-dot{width:7px;height:7px;border-radius:50%;background:var(--pf-swatch)}
.pf-allocation-stock .pf-logo{width:72px;height:44px;flex:0 0 72px}
.pf-allocation-stock .pf-logo-brand img{padding:5px 3px}
@media(prefers-reduced-motion:reduce){.pf-donut-segment{transition:none}}
.pf-legend,.pf-plan-list,.pf-news-list { list-style: none; padding: 0; }
.pf-legend li { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 6px; padding: 7px 0; }
.pf-legend li > span:first-child { width: 7px; height: 7px; border-radius: 50%; background: var(--pf-swatch); }
.pf-legend li > b { font-size: 14px; font-variant-numeric: tabular-nums; }
.pf-security { display: flex; align-items: center; gap: 8px; text-align: left; min-width: 0; }
.pf-security > span:last-child { min-width: 0; }
.pf-security b,.pf-security small,.pf-plan-list small,.pf-news-list small,.pf-recovery small { display: block; }
.pf-security b { font-size: 15px; }
.pf-security small { font-size: 13px; font-weight: 400; overflow-wrap: anywhere; }
.pf-logo { display: grid; place-items: center; width: 72px; height: 44px; flex: 0 0 72px; overflow: hidden; border-radius: 8px; background: #fff; color: #1959d7; font-size: 12px; font-weight: 800; }
.pf-logo > * { grid-area: 1/1; }
.pf-logo img { width: 34px; height: 34px; object-fit: contain; background: #fff; border-radius: 0; }
.pf-logo-brand { width: 72px; height: 44px; flex-basis: 72px; grid-template: minmax(0,1fr) / minmax(0,1fr); }
.pf-logo-brand img { box-sizing: border-box; width: 100%; height: 100%; padding: 5px 6px; }
.pf-logo-dark img { background: #111827; }
.pf-logo-dark { background: #111827; }
.pf-logo img[hidden] { display: none; }
.pf-field { display: grid; gap: 6px; font-size: 15px; font-weight: 650; margin: 13px 0; }
.pf-field :is(input,select) { min-height: 44px; }
.pf-recovery { display: grid; gap: 2px; border: 1px solid var(--pf-line); background: var(--soft,#edf3ff); border-radius: 11px; padding: 10px 12px; font-size: 15px; }
.pf-recovery strong { font-size: 25px; color: var(--pf-blue); }
.pf-plan-result { font-size: 15px; padding: 9px 0; }
.pf-plan-list { max-height: 230px; overflow: auto; }
.pf-plan-list li { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--pf-line); padding: 8px 0; }
.pf-plan-list li > span:last-child { text-align: right; }
.pf-plan-list li:has(.pf-plan-stock){display:block;padding:2px 0;border-bottom:0}
#portfolio .pf-plan-stock{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:9px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:inherit;text-align:left}
.pf-plan-stock>span:last-child{text-align:right;white-space:nowrap}
.pf-company{align-self:start;min-width:0}
.pf-company-tag,.pf-company-selection{font-size:12px;color:var(--pf-muted);white-space:nowrap}
.pf-company-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:15px 0 10px;padding-left:12px;border-left:3px solid var(--pf-company-accent,var(--pf-line))}
.pf-company-header .pf-security b{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 10px;font-size:19px}
.pf-company-quote{color:var(--pf-blue);font-size:19px;white-space:nowrap}
.pf-company-selection{text-align:right;line-height:1.6}
.pf-company-selection small{display:block;font-size:11px;color:var(--pf-muted)}
.pf-company-header .pf-security small{font-size:13px}
.pf-company-dates{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--pf-muted);margin-bottom:14px}
.pf-company-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.pf-company-metric{border:1px solid var(--pf-line);border-radius:12px;padding:12px;min-width:0}
.pf-company-metric>span,.pf-company-metric small{display:block;font-size:12px;color:var(--pf-muted);line-height:1.5}
.pf-company-metric strong{display:block;font-size:24px;margin:4px 0;font-variant-numeric:tabular-nums}
.pf-company-period{margin:10px 0 16px!important;font-size:12px}
.pf-company-framework{display:grid;gap:12px}
.pf-company-framework section{padding-left:12px;border-left:3px solid var(--pf-line)}
#portfolio .pf-company-framework h3{font-size:15px;margin:0 0 4px}
.pf-company-framework h3 small{font-size:12px;font-weight:400;color:var(--pf-muted);margin-left:5px}
.pf-company-framework p,.pf-company-sources p{font-size:13px;line-height:1.65;color:var(--pf-muted)}
.pf-company-sources{margin-top:18px;padding-top:12px;border-top:1px solid var(--pf-line);font-size:13px}
.pf-company-sources summary{cursor:pointer;color:var(--pf-blue);min-height:30px}
.pf-company-sources p{margin:9px 0!important}
.pf-company-links{display:flex;flex-wrap:wrap;gap:7px 12px;font-size:12px}
.pf-company-empty,.pf-company-state{padding:30px 0;color:var(--pf-muted);font-size:15px;line-height:1.8}
.pf-company-empty h3{font-size:19px;color:var(--text-heading);margin:0 0 8px}
.pf-company-empty p+p{margin-top:15px!important}
#portfolio .pf-plan-stock:hover{background:var(--soft,#edf3ff)}
#portfolio .pf-plan-stock[aria-pressed=true]{border-color:var(--pf-swatch);background:color-mix(in srgb,var(--pf-swatch) 14%,var(--pf-panel))}
.pf-holdings,.pf-news { margin-bottom: 15px; }
.pf-table { overflow-x: auto; margin-top: 12px; }
.pf-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.pf-table :is(th,td) { border-bottom: 1px solid var(--pf-line); padding: 9px 8px; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pf-table :is(th,td):first-child { text-align: left; }
.pf-table button { padding: 5px 9px; font-size: 14px; }
.pf-news-list li { padding: 10px 0; border-top: 1px solid var(--pf-line); overflow-wrap: anywhere; }
.pf-news a,.pf-foot a { color: var(--pf-blue); }
.pf-news select { max-width: 390px; }
.pf-foot { font-size: 14px; line-height: 1.7; }
.pf-empty { border: 1px dashed var(--pf-line); color: var(--pf-muted); border-radius: 11px; padding: 24px 15px; text-align: center; margin-top: 12px !important; }
.pf-dialog { max-height: 88dvh; overflow: auto; }
.pf-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.pf-fields legend { padding: 0; font-size: 16px; font-weight: 700; }
.pf-form-stock { padding: 10px; border: 1px solid var(--pf-line); border-radius: 10px; }
#portfolio .pf-form-note { margin: 12px 0 16px; color: var(--pf-muted); font-size: 15px; }
.pf-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px; }
.pf-form-extra { border: 1px solid var(--pf-line); border-radius: 10px; padding: 10px 12px; }
.pf-form-extra summary { cursor: pointer; font-size: 15px; font-weight: 650; }
.pf-form-extra .pf-field { margin-bottom: 0; }
.pf-field small,.pf-form-extra summary small { color: var(--pf-muted); font-weight: 400; }
.pf-dialog [data-pf-remove] { margin-right: auto; }
.pf-results { display: grid; gap: 5px; max-height: 38dvh; overflow: auto; padding: 3px; }
.pf-results button { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 10px; text-align: left; }
.pf-results button[aria-pressed=true] { background: var(--soft); border-color: var(--pf-blue); }
.pf-pick-mark { flex: 0 0 24px; color: var(--pf-blue); text-align: center; font-size: 21px; font-weight: 700; }
.pf-pick-mark::before { content: '+'; }
.pf-results button[aria-pressed=true] .pf-pick-mark::before { content: '✓'; }
.pf-picks { display: flex; gap: 5px; flex-wrap: wrap; max-height: 88px; overflow: auto; padding: 4px; }
.pf-picks:empty { display: none; }
.pf-picks button { font-size: 14px; padding: 5px 8px; background: var(--soft); color: var(--pf-blue); }
.pf-valuation-note { margin: 0 0 8px !important; }
.pf-table [data-pf-edit] { color: var(--pf-blue); }
.pf-dialog-actions { display: flex; justify-content: end; gap: 10px; margin-top: 14px; }
@media (max-width: 1060px) { .pf-grid { grid-template-columns: 1fr; } }
@media (max-width: 500px) {
  .pf-hero-head { flex-wrap: wrap; }
  .pf-metrics { grid-template-columns: 1fr 1fr; gap: 8px; }
  .pf-metric:first-child { grid-column: 1/-1; }
  .pf-card-head { flex-wrap: wrap; }
  .pf-allocation { grid-template-columns: 1fr; }
  .pf-donut { max-width: 180px; }
  .pf-donut b { font-size: 20px; }
  .pf-form-grid { grid-template-columns: 1fr; }
}

/* Stock research */
.sr-launch { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; color: var(--pf-blue); font-weight: 700; }
.sr-launch span,.sr-pro { border-radius: 5px; padding: 3px 6px; color: var(--pf-blue); background: var(--soft,#edf3ff); font-size: 10px; font-weight: 800; letter-spacing: .04em; }
.sr-dialog { width: min(820px,calc(100% - 24px)); max-height: 92dvh; overflow: auto; background: var(--pf-panel); color: inherit; font-size: 17px; }
.sr-dialog :is(input,button) { font-size: inherit; }
.sr-pro { font-size: 12px; }
.sr-header,.sr-report-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
#portfolio .sr-header h2 { font-size: clamp(24px,calc(3vw + 2px),32px); margin-top: 4px; }
.sr-search { margin: 16px 0; }
.sr-search label { display: block; margin-bottom: 5px; color: var(--pf-muted); font-size: 15px; font-weight: 650; }
.sr-search > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.sr-search input { min-width: 0; }
#portfolio .sr-demo { margin: 10px 0; padding: 6px 9px; border-radius: 7px; background: var(--soft,#edf3ff); color: var(--pf-blue); font-size: 14px; }
.sr-report { border-top: 1px solid var(--pf-line); padding-top: 14px; display: grid; gap: 12px; font-size: 15px; }
.sr-report h3,.sr-report h4,.sr-report dl,.sr-report figure { margin: 0; }
.sr-report h3 { font-size: 22px; line-height: 1.3; }
.sr-report h3 span { font-size: 16px; font-weight: 550; }
.sr-report-head p,.sr-muted,.sr-readout,.sr-metrics span,.sr-report small,.sr-chart figcaption { color: var(--pf-muted); }
.sr-trend { border-radius: 999px; padding: 6px 10px; background: var(--soft,#edf3ff); font-weight: 750; white-space: nowrap; }
.sr-trend-up { color: #087660; background: #e1f6ef; }
.sr-trend-down { color: #a02c45; background: #ffeaee; }
.sr-metrics,.sr-two { display: grid; gap: 8px; }
.sr-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
.sr-two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.sr-metrics > div,.sr-two section,.sr-check { border: 1px solid var(--pf-line); border-radius: 10px; padding: 10px; min-width: 0; }
.sr-metrics strong,.sr-metrics span,.sr-news li small { display: block; }
.sr-metrics strong { font-size: clamp(18px,calc(2.2vw + 2px),23px); overflow-wrap: anywhere; }
.sr-metrics span,.sr-muted,.sr-chart figcaption,.sr-report small { font-size: 13px; }
.sr-chart { padding: 9px; background: var(--soft,#edf3ff); border-radius: 10px; }
.sr-chart svg { display: block; width: 100%; height: 78px; stroke: var(--pf-blue); stroke-width: 2px; }
.sr-chart figcaption { margin-top: 4px; }
.sr-report h4 { margin-bottom: 6px; font-size: 16px; }
#portfolio .sr-highlight { margin-bottom: 5px; font-weight: 700; }
.sr-highlight span { margin-left: 4px; }
.sr-report dl div { display: flex; justify-content: space-between; gap: 4px; }
.sr-report dd { margin: 0; text-align: right; }
.sr-volume-bar { display: flex; height: 6px; overflow: hidden; border-radius: 9px; margin: 10px 0 6px; }
.sr-volume-bar span:nth-child(1) { background: #0c9b80; }
.sr-volume-bar span:nth-child(2) { background: #d8516b; }
.sr-volume-bar span:nth-child(3) { background: #8996a8; }
.sr-volume-rows + p,.sr-check details,.sr-news nav,.sr-news nav + p { margin-top: 6px !important; }
.sr-check summary { cursor: pointer; color: var(--pf-blue); }
.sr-news ul,.sr-matches { list-style: none; padding: 0; }
.sr-news li { padding: 5px 0; border-top: 1px solid var(--pf-line); }
.sr-news a,.sr-state a { color: var(--pf-blue); overflow-wrap: anywhere; }
.sr-news nav { display: flex; gap: 7px 13px; flex-wrap: wrap; }
.sr-matches li { margin-top: 5px; }
.sr-matches button { width: 100%; text-align: left; }
.sr-state { font-size: 15px; color: var(--pf-muted); }
.sr-top50 { color: var(--pf-blue); margin-bottom: 12px; }
.sr-ranked { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 8px; }
.sr-ranked button { overflow-wrap: anywhere; }
.sr-ranked button span { display: inline-block; min-width: 2ch; color: var(--pf-muted); }
.sr-market-links { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-top: 10px; }
.sr-market-links a { color: var(--pf-blue); }
.sr-market-links button { color: var(--pf-blue); }
.sr-market-frame { display: block; width: 100%; height: clamp(300px,52dvh,490px); margin-top: 10px; border: 0; }
@media (max-width: 560px) {
  .sr-ranked { grid-template-columns: 1fr; }
  .sr-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sr-two { grid-template-columns: 1fr; }
}
.pf-pricing { margin-top: 14px; border: 1px solid var(--pf-line); border-radius: 14px; padding: 16px; }
.pf-pricing .pf-card-head { flex-wrap: wrap; margin-bottom: 12px; }
.pf-pricing h3 { font-size: 18px; margin: 0; }
.pf-provider-quote { background: var(--soft,#edf3ff); border-radius: 10px; padding: 14px; display: grid; gap: 6px; }
.pf-provider-quote>span,.pf-provider-quote>small { font-size: 14px; color: var(--pf-muted); line-height: 1.6; }
.pf-provider-quote strong { font-size: 32px; color: var(--pf-blue); font-variant-numeric: tabular-nums; }
#portfolio .pf-price-status { font-size: 15px; line-height: 1.7; margin: 10px 0; overflow-wrap: anywhere; }
.pf-price-status:empty { display: none; }
.pf-pricing .pf-field { margin-top: 12px; }
.pf-pricing select { width: 100%; min-width: 0; min-height: 46px; padding: 10px; font: inherit; color: inherit; background: var(--pf-panel); border: 1px solid var(--pf-line); border-radius: 10px; }
#portfolio .pf-price-used { font-weight: 700; margin: 14px 0 8px; }
#portfolio .pf-price-disclosure { color: var(--pf-muted); font-size: 14px; line-height: 1.7; margin-bottom: 8px; }
.pf-pricing a { color: var(--pf-blue); font-size: 15px; }
.pf-price-inactive { opacity: .65; }
.pf-price-origin { display: block; white-space: normal; max-width: 180px; color: var(--pf-muted); font-size: 13px; line-height: 1.5; margin-top: 4px; }
.pf-status>div { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 6px; margin-right: auto; order: -1; }
/* Match Review's blue Next button and keep the start action on the left. */
#portfolio [data-pf-clear]{box-sizing:border-box;min-width:240px;max-width:100%;min-height:48px;padding:10px 20px;border:0;border-radius:12px;background:#0754ed;color:#fff;font-size:17px;font-weight:700}
#portfolio [data-pf-clear]:not(:disabled):hover{background:var(--brand-navy,#07143f);color:#fff}
#portfolio [data-pf-clear]:focus-visible{outline:3px solid #18345c;outline-offset:3px}
@media(max-width:560px) { .pf-pricing { padding: 12px; } .pf-pricing .pf-card-head button { width: 100%; } .pf-status { flex-wrap: wrap; } }
.pf-inline-value { display: inline-block; min-width: 48px; padding: 6px; border: 1px dashed transparent; border-radius: 7px; cursor: text; }
.pf-inline-value:hover { border-color: var(--pf-blue); background: var(--soft,#edf3ff); }
.pf-inline-value:focus-visible { outline: 2px solid var(--pf-blue); outline-offset: 2px; }
.pf-inline-editor { min-width: 170px; max-width: 230px; display: grid; gap: 7px; text-align: left; white-space: normal; }
.pf-inline-editor input { width: 100%; min-width: 0; box-sizing: border-box; min-height: 42px; font: inherit; color: inherit; background: var(--pf-panel); border: 1px solid var(--pf-blue); border-radius: 7px; padding: 8px; }
.pf-inline-editor small { font-size: 13px; line-height: 1.5; color: var(--pf-muted); }
.pf-inline-actions { display: flex; gap: 5px; }
#portfolio .pf-inline-actions button { min-height: 34px; padding: 5px 8px; font-size: 14px; }
.pf-inline-editor [data-inline-error]:empty { display: none; }
#portfolio .pf-inline-hint { color: var(--pf-muted); font-size: 14px; line-height: 1.7; margin-bottom: 10px; }
#portfolio .pf-reorder-handle { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 54px; padding: 3px; border: 1px solid transparent; background: transparent; color: inherit; text-align: left; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.pf-reorder-handle img { pointer-events: none; -webkit-user-drag: none; }
.pf-reorder-grip {display:grid;place-items:center;color:var(--pf-muted);width:18px;flex:0 0 18px}
.pf-reorder-grip svg{width:18px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#portfolio .pf-reorder-handle:hover { border-color: var(--pf-line); background: var(--soft,#edf3ff); }
#portfolio .pf-reorder-handle:focus-visible { outline: 2px solid var(--pf-blue); outline-offset: 2px; }
.pf-row-dragging>th,.pf-row-dragging>td { background: var(--soft,#edf3ff); box-shadow: inset 0 2px var(--pf-blue), inset 0 -2px var(--pf-blue); }
#portfolio .pf-row-dragging .pf-reorder-handle { cursor: grabbing; }
.pf-allocation-value { display: grid; gap: 3px; text-align: right; white-space: nowrap; }
.pf-allocation-value small { color: var(--pf-muted); font-size: 13px; }
.pf-balance { margin-bottom: 15px; }
#portfolio .pf-balance-subtitle { color: var(--pf-muted); font-size: 15px; line-height: 1.7; margin-top: 5px; }
.pf-balance-verdict { display: grid; gap: 6px; background: var(--soft,#edf3ff); border-left: 4px solid var(--pf-blue); border-radius: 10px; padding: 16px; }
.pf-balance-verdict strong { font-size: 21px; }
.pf-balance-verdict small { color: var(--pf-muted); line-height: 1.7; }
.pf-balance-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.pf-balance-metrics>div { display: grid; gap: 8px; border: 1px solid var(--pf-line); border-radius: 10px; padding: 14px; }
.pf-balance-metrics span { font-size: 14px; color: var(--pf-muted); }
.pf-balance-metrics b { font-size: 27px; }
.pf-balance-findings { padding-left: 22px; line-height: 1.8; margin: 14px 0!important; }
.pf-balance .pf-table { margin: 16px 0; }
.pf-sector-table td:nth-child(2) { white-space: normal; min-width: 170px; max-width: 320px; }
.pf-balance-plan { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin: 15px 0; }
.pf-balance-plan section { padding: 16px; border: 1px solid var(--pf-line); border-radius: 12px; }
.pf-balance-plan h4 { margin: 0 0 12px; }
.pf-balance-trades { list-style: none; padding: 0; }
.pf-balance-trades li { display: flex; justify-content: space-between; gap: 10px; border-top: 1px solid var(--pf-line); padding: 12px 0; }
.pf-balance-trades li>span { display: grid; gap: 5px; }
.pf-balance-trades small { color: var(--pf-muted); font-size: 14px; line-height: 1.5; }
#portfolio .pf-balance-notice { font-size: 15px; color: var(--pf-muted); line-height: 1.8; margin: 12px 0; }
.pf-balance-settings,.pf-balance-method { margin-top: 18px; border-top: 1px solid var(--pf-line); padding-top: 14px; }
.pf-balance summary { cursor: pointer; min-height: 44px; align-content: center; font-weight: 700; }
.pf-balance h3 { font-size: 19px; margin: 22px 0 9px; }
.pf-balance-settings p,.pf-balance-method p { font-size: 15px; line-height: 1.8; margin: 10px 0!important; color: var(--pf-muted); }
.pf-balance-limits,.pf-balance-targets,.pf-balance-classifications { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 14px 0; }
.pf-balance-classifications { grid-template-columns: repeat(2,minmax(0,1fr)); }
.pf-balance select { width: 100%; max-width: 100%; box-sizing: border-box; min-height: 44px; background: var(--pf-panel); color: inherit; border: 1px solid var(--pf-line); border-radius: 9px; padding: 9px; font: inherit; }
.pf-balance a { color: var(--pf-blue); }
@media(max-width:700px) { .pf-balance-plan { grid-template-columns: 1fr; } .pf-balance-limits,.pf-balance-targets { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .pf-balance-metrics,.pf-balance-classifications { grid-template-columns: 1fr; } .pf-balance-metrics>div { grid-template-columns: 1fr auto; align-items: center; } .pf-balance-targets,.pf-balance-limits { grid-template-columns: 1fr; } }

/* Keep small inherited labels readable within the portfolio only. */
#portfolio .tiny { font-size: 14px; line-height: 1.7; }
#portfolio > .actions { flex-wrap: wrap; }

/* Separate click targets from the drag handle. */
#portfolio .pf-security-reorder{display:flex;align-items:center;gap:6px}
#portfolio .pf-reorder-arrows{display:flex;flex-direction:column;flex:0 0 32px;gap:2px}
#portfolio .pf-reorder-step{display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;height:30px;min-height:30px;padding:4px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--pf-muted);cursor:pointer}
#portfolio .pf-reorder-step svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
#portfolio .pf-reorder-step:hover:not(:disabled){background:var(--soft);border-color:var(--pf-blue);color:var(--pf-blue)}
#portfolio .pf-reorder-step:focus-visible{outline:2px solid var(--pf-blue);outline-offset:2px}
#portfolio .pf-reorder-step:disabled{opacity:.25;cursor:default}
#portfolio [data-pf-row]:hover>th,#portfolio [data-pf-row]:hover>td,#portfolio [data-pf-row]:focus-within>th,#portfolio [data-pf-row]:focus-within>td{background:var(--soft,#edf3ff)}
#portfolio .pf-security-reorder>.pf-reorder-handle{min-width:0;flex:1}

#portfolio .pf-stock-logo-open{display:flex;align-items:center;justify-content:center;flex:0 0 78px;padding:3px;min-width:78px;min-height:50px;border:1px solid transparent;border-radius:10px;background:transparent;cursor:pointer}
#portfolio .pf-stock-logo-open:hover{background:var(--soft);border-color:var(--pf-blue)}
#portfolio .pf-stock-logo-open:focus-visible{outline:2px solid var(--pf-blue);outline-offset:2px}
#portfolio .pf-holding-detail-dialog{width:min(460px,calc(100vw - 28px));max-width:460px;max-height:88dvh;overflow:auto;padding:24px;background:var(--pf-panel);color:inherit;border:1px solid var(--pf-line);border-radius:18px}
#portfolio .pf-holding-detail-dialog::backdrop{background:#07142799;backdrop-filter:blur(3px)}
#portfolio .pf-holding-detail-dialog .pf-card-head{gap:16px;margin-bottom:20px}
#portfolio .pf-holding-detail-dialog .pf-card-head h2{margin:0;color:inherit}
#portfolio .pf-holding-detail-dialog .pf-card-head button{min-width:44px;flex:0 0 44px}
#portfolio .pf-holding-detail-dialog .pf-security b{font-size:22px}
#portfolio .pf-holding-price-note{font-size:13px;color:var(--pf-muted);line-height:1.6;margin:14px 0}
#portfolio .pf-holding-detail-list{display:grid;grid-template-columns:minmax(0,1fr);margin:0}
#portfolio .pf-holding-detail-list>div{padding:13px 0;border-top:1px solid var(--pf-line)}
#portfolio .pf-holding-detail-list dt{font-size:13px;color:var(--pf-muted);margin-bottom:5px}
#portfolio .pf-holding-detail-list dd{font-size:21px;font-weight:650;margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
