@import"https://fonts.googleapis.com/css2?family=SF+Pro+Display:wght@400;500;600&family=SF+Pro+Text:wght@400;500;600&family=SF+Mono:wght@400;500&display=swap";:root{--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bg-primary: #ffffff;--bg-secondary: #f5f5f7;--bg-tertiary: #fafafa;--text-primary: #1d1d1f;--text-secondary: #86868b;--text-tertiary: #aeaeb2;--positive: #34c759;--negative: #ff3b30;--positive-muted: rgba(52, 199, 89, .12);--negative-muted: rgba(255, 59, 48, .1);--divider: rgba(0, 0, 0, .06);--divider-strong: rgba(0, 0, 0, .1);--shadow-card: 0 1px 3px rgba(0, 0, 0, .04), 0 4px 12px rgba(0, 0, 0, .03);--radius: 12px;--radius-lg: 16px;--ease: cubic-bezier(.25, .1, .25, 1);--duration: .2s}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-size:.9375rem;line-height:1.5;color:var(--text-primary);background:var(--bg-secondary);min-height:100vh;padding:2rem}#root{max-width:1000px;margin:0 auto}::selection{background:#007aff33}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--divider-strong);border-radius:4px}@media(max-width:768px){body{padding:1rem}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.portfolio-container{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:2rem;animation:fadeIn .4s var(--ease)}.portfolio-header{margin-bottom:2rem}.portfolio-header h1{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:.25rem}.portfolio-header .subtitle{font-size:.8125rem;color:var(--text-secondary);font-weight:400}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--divider);border-radius:var(--radius);overflow:hidden;margin-bottom:1.5rem}.card{background:var(--bg-tertiary);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.25rem}.card:first-child{border-radius:var(--radius) 0 0 var(--radius)}.card:last-child{border-radius:0 var(--radius) var(--radius) 0}.card .label{font-size:.6875rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.card .value{font-family:var(--font-display);font-size:1.375rem;font-weight:600;color:var(--text-primary);letter-spacing:-.02em}.card.total-value{background:var(--bg-tertiary)}.card.gain.positive .value{color:var(--positive)}.card.gain.negative .value{color:var(--negative)}.insights-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--divider);border-radius:var(--radius);overflow:hidden;margin-bottom:1.5rem}.insight-card{background:var(--bg-primary);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.125rem}.insight-card .label{font-size:.6875rem;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.02em}.insight-card .value{font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--text-primary)}.insight-card .value.positive{color:var(--positive)}.insight-card .value.negative{color:var(--negative)}.insight-card .subtext{font-size:.75rem;color:var(--text-tertiary);margin-top:.125rem}.holdings-table{border-radius:var(--radius);overflow:hidden;border:1px solid var(--divider);position:relative}.table-scroll-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.holdings-table:after{content:"";position:absolute;top:0;right:0;bottom:0;width:24px;background:linear-gradient(to right,transparent,var(--bg-primary));pointer-events:none;opacity:0;transition:opacity var(--duration) var(--ease)}.holdings-table.show-scroll-hint:after{opacity:1}table{width:100%;min-width:600px;border-collapse:collapse;font-size:.875rem}thead{background:var(--bg-tertiary)}th{text-align:left;padding:.75rem 1rem;font-size:.6875rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--duration) var(--ease)}th.sortable:hover{color:var(--text-primary)}.sort-icon{margin-left:.25rem;opacity:.3;font-size:.625rem}.sort-icon.active{opacity:1;color:var(--text-primary)}td{padding:.875rem 1rem;border-top:1px solid var(--divider)}tbody tr{transition:background var(--duration) var(--ease)}tbody tr:hover{background:var(--bg-tertiary)}.symbol{font-family:var(--font-mono);font-weight:600;font-size:.875rem;color:var(--text-primary)}.name{color:var(--text-secondary);font-size:.8125rem;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.right{text-align:right}td.value{font-family:var(--font-mono);font-weight:500;font-size:.875rem}.positive{color:var(--positive)}.negative{color:var(--negative)}.allocation-cell{display:flex;flex-direction:column;gap:.25rem;align-items:flex-end}.allocation-cell span{font-family:var(--font-mono);font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.allocation-bar{width:60px;height:4px;background:var(--divider);border-radius:2px;overflow:hidden}.allocation-bar .fill{height:100%;background:var(--text-secondary);border-radius:2px;transition:width .3s var(--ease)}.portfolio-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--divider);text-align:center}.last-updated{font-size:.75rem;color:var(--text-tertiary);margin-bottom:.5rem}.disclaimer{font-size:.6875rem;color:var(--text-tertiary);max-width:480px;margin:0 auto;line-height:1.6}.blog-link{display:inline-block;margin-top:.75rem;font-size:.75rem;color:var(--text-tertiary);text-decoration:none;transition:color var(--duration) var(--ease)}.blog-link:hover{color:var(--text-secondary)}.error{background:var(--negative-muted);color:var(--negative);padding:.875rem 1rem;border-radius:var(--radius);margin-bottom:1rem;text-align:center;font-size:.875rem;font-weight:500}@media(max-width:1024px){.insights-grid{grid-template-columns:repeat(2,1fr)}.insight-card:nth-child(2){border-radius:0 var(--radius) 0 0}.insight-card:nth-child(3){border-radius:0 0 0 var(--radius)}}@media(max-width:768px){.portfolio-container{padding:1.25rem;border-radius:var(--radius)}.portfolio-header h1{font-size:1.5rem}.summary-cards{grid-template-columns:1fr}.card{border-radius:0}.card:first-child{border-radius:var(--radius) var(--radius) 0 0}.card:last-child{border-radius:0 0 var(--radius) var(--radius)}.insights-grid{grid-template-columns:1fr 1fr}.card .value{font-size:1.25rem}.holdings-table{margin:0 -1.25rem;width:calc(100% + 2.5rem);border-radius:0;border-left:none;border-right:none}.holdings-table:after{opacity:1}table{font-size:.8125rem;min-width:580px}th,td{padding:.75rem .625rem}th:first-child,td:first-child{padding-left:1.25rem;position:sticky;left:0;background:inherit;z-index:1}th:first-child:after,td:first-child:after{content:"";position:absolute;top:0;right:-8px;bottom:0;width:8px;background:linear-gradient(to right,rgba(0,0,0,.04),transparent);pointer-events:none}thead th:first-child{background:var(--bg-tertiary)}tbody td:first-child{background:var(--bg-primary)}tbody tr:hover td:first-child{background:var(--bg-tertiary)}th:last-child,td:last-child{padding-right:1.25rem}.name,th:nth-child(2){display:none}.allocation-bar{display:none}.allocation-cell{align-items:flex-end}}@media(max-width:480px){.portfolio-container{padding:1rem}.insights-grid{grid-template-columns:1fr}.insight-card{border-radius:0}.holdings-table{margin:0 -1rem;width:calc(100% + 2rem)}table{font-size:.75rem;min-width:520px}th,td{padding:.625rem .5rem}th:first-child,td:first-child{padding-left:1rem}th:last-child,td:last-child{padding-right:1rem}.symbol{font-size:.8125rem}th:nth-child(6),td:nth-child(6){display:none}}@media print{.portfolio-container{box-shadow:none}}
