:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#111827;background:#f3f4f6;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.shell{max-width:1120px;margin:auto;padding:28px 18px 64px}header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.header-actions .file-label{text-decoration:none}h1{font-size:clamp(2rem,6vw,3.6rem);margin:.1rem 0}h2{margin:0 0 16px;font-size:1.15rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:700;margin:0}.muted{color:#6b7280}.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:18px;box-shadow:0 4px 16px rgba(17,24,39,.05)}.controls{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:12px;align-items:center}.full{grid-column:1/-1;margin:0}.file-label,button,select{border:0;border-radius:10px;padding:12px 15px;font:inherit;font-weight:650}.file-label,button{background:#111827;color:#fff;cursor:pointer;text-align:center}.secondary,select{background:#eef0f3;color:#111827}input[type=file]{min-width:0}.status{font-size:.83rem;padding:8px 11px;border-radius:99px;background:#fef3c7;color:#92400e}.status.ok{background:#dcfce7;color:#166534}.status.bad{background:#fee2e2;color:#991b1b}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:14px 0}.metric span{display:block;color:#6b7280;font-size:.82rem;margin-bottom:8px}.metric strong{font-size:1.45rem}.grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin:14px 0}.chart-wrap{max-width:520px;margin:auto}.chart-wrap canvas{width:100%;height:auto}.legend{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:8px}.legend-item{display:flex;align-items:center;gap:6px;font-size:.85rem}.swatch{width:10px;height:10px;border-radius:50%}.bars{display:grid;gap:14px}.bar-label{display:flex;justify-content:space-between;font-size:.88rem;margin-bottom:5px}.bar-track{height:12px;background:#edf0f4;border-radius:99px;overflow:hidden}.bar-fill{height:100%;background:#374151;border-radius:99px}.hidden{display:none!important}.error{margin-top:14px;background:#fff1f2;border-color:#fecdd3;color:#9f1239}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid #e5e7eb;white-space:nowrap}th{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.diagnostics{margin-top:14px}.diagnostics summary{cursor:pointer;font-weight:650}.diagnostics pre{white-space:pre-wrap;word-break:break-word;font-size:.78rem;background:#f8fafc;padding:12px;border-radius:10px;max-height:300px;overflow:auto}.pill{padding:4px 8px;border-radius:99px;font-size:.75rem;background:#e5e7eb}.pill.ok{background:#dcfce7;color:#166534}.pill.bad{background:#fee2e2;color:#991b1b}@media(max-width:800px){header{display:block}.header-actions{margin-top:12px}.status{display:inline-block;margin-top:8px}.controls{grid-template-columns:1fr 1fr}.controls input,.controls select,.controls .full{grid-column:1/-1}.summary{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}}@media(max-width:480px){.shell{padding:20px 12px 48px}.controls{grid-template-columns:1fr}.controls>*{grid-column:1!important}.summary{grid-template-columns:1fr}.card{border-radius:13px;padding:14px}}

.diagnostics-toolbar{display:flex;align-items:center;gap:.75rem;margin:.8rem 0}.diagnostics-toolbar button{width:auto}.diagnostics pre{max-height:420px;overflow:auto;white-space:pre-wrap;word-break:break-word}

/* iPad/Safari diagnostics scrolling */
.diagnostics{overflow:hidden}.diagnostics pre{display:block;max-height:50vh;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;white-space:pre;word-break:normal}.diagnostics-toolbar{position:sticky;top:0;background:#fff;z-index:1;padding-bottom:.35rem}

.performance-widget{margin:14px 0}.widget-intro{margin:-8px 0 0}.performance-controls{display:grid;grid-template-columns:2fr minmax(150px,1fr) minmax(150px,1fr) auto;gap:14px;align-items:end;margin-top:18px}.field{display:grid;gap:7px;font-size:.82rem;font-weight:650;color:#4b5563}.field input[type=date],.field select{width:100%;background:#eef0f3;color:#111827;border:0;border-radius:10px;padding:12px 15px;font:inherit}.presets{display:flex;gap:12px;flex-wrap:wrap;border:0;padding:0;margin:0}.presets legend{width:100%;margin-bottom:7px}.presets label{font-weight:500;color:#111827}.assumption{padding-top:2px}.performance-summary{margin-bottom:18px}.inset{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:16px}.performance-summary strong.positive{color:#166534}.performance-summary strong.negative{color:#991b1b}.performance-chart-wrap{overflow-x:auto}.performance-chart-wrap canvas{display:block;width:100%;height:auto;min-width:640px}#performanceChartCaption{margin:0 0 10px}@media(max-width:900px){.performance-controls{grid-template-columns:1fr 1fr}.performance-controls .presets{grid-column:1/-1}}@media(max-width:600px){.performance-controls{grid-template-columns:1fr}.performance-controls>*{grid-column:1}.presets{display:grid;grid-template-columns:1fr 1fr}.performance-summary{grid-template-columns:1fr 1fr}}@media(max-width:480px){.performance-summary{grid-template-columns:1fr}}

/* Grouped holdings */
#holdingsSection{padding-top:14px}
#holdingsSection .section-head{margin-bottom:4px}
#holdingsSection .section-head h2{margin:0}
#holdingsSection .table-scroll{margin-top:0}
.holding-account-cell{display:inline-flex;align-items:center;gap:.25rem;min-height:1.5rem}
.holding-toggle{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;margin:0;padding:0;border-radius:50%;background:transparent;color:#6b7280;vertical-align:middle;transition:background-color .15s ease,color .15s ease}
.holding-toggle:hover{background:#eef0f3;color:#111827}
.holding-toggle:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}
.holding-toggle span{display:block;font-size:1.15rem;font-weight:500;line-height:1;transform:rotate(0deg);transition:transform .15s ease}
.holding-toggle[aria-expanded="true"] span{transform:rotate(90deg)}
.holding-parent{font-weight:650;background:#fafafa}
.holding-child{background:#f8fafc;color:#4b5563}
.holding-child td{padding-top:8px;padding-bottom:8px}
.holding-child-account{padding-left:2.15rem;font-weight:500}
