code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-card:#fff;--text-primary:#2c3e50;--text-secondary:#6c757d;--text-muted:#95a5a6;--border-color:#e9ecef;--shadow:0 2px 10px #0000001a;--shadow-hover:0 4px 20px #00000026;--success-color:#28a745;--danger-color:#dc3545;--warning-color:#ffc107;--info-color:#17a2b8;--primary-color:#007bff;--chart-bg:#fff;--table-stripe:#f8f9fa}.app.dark{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-card:#333;--text-primary:#fff;--text-secondary:#b0b0b0;--text-muted:#888;--border-color:#404040;--shadow:0 2px 10px #0000004d;--shadow-hover:0 4px 20px #0006;--success-color:#4ade80;--danger-color:#f87171;--warning-color:#fbbf24;--info-color:#60a5fa;--primary-color:#3b82f6;--chart-bg:#2d2d2d;--table-stripe:#404040}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;transition:background-color .3s ease,color .3s ease}.app,body{background-color:#fff;background-color:var(--bg-primary);color:#2c3e50;color:var(--text-primary)}.app{min-height:100vh}.header{background-color:#fff;background-color:var(--bg-card);border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);box-shadow:0 2px 10px #0000001a;box-shadow:var(--shadow);padding:1rem 0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 1rem}.header-title{font-size:1.5rem;font-weight:600;margin:0}.header-title,.theme-toggle{color:#2c3e50;color:var(--text-primary)}.theme-toggle{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:background-color .2s ease}.theme-toggle:hover{background-color:#f8f9fa;background-color:var(--bg-secondary)}.main-content{margin:0 auto;max-width:1200px;padding:2rem 1rem}.card{background-color:#fff;background-color:var(--bg-card);border:1px solid #e9ecef;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 2px 10px #0000001a;box-shadow:var(--shadow);padding:1.5rem;transition:box-shadow .3s ease,transform .2s ease}.card:hover{box-shadow:0 4px 20px #00000026;box-shadow:var(--shadow-hover);transform:translateY(-2px)}.card h2{align-items:center;color:#2c3e50;color:var(--text-primary);display:flex;font-size:1.25rem;font-weight:600;gap:.5rem;margin:0 0 1rem}.card h3{color:#6c757d;color:var(--text-secondary);font-size:1rem;font-weight:500;margin:0 0 .5rem}.portfolio-overview{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.overview-card{text-align:center}.overview-card .value{color:#2c3e50;color:var(--text-primary);font-size:2rem;font-weight:700;margin:.5rem 0}.overview-card .label{color:#95a5a6;color:var(--text-muted);font-size:.875rem;letter-spacing:.5px;text-transform:uppercase}.overview-card .change{font-size:.875rem;font-weight:500;margin-top:.5rem}.overview-card .positive{color:#28a745;color:var(--success-color)}.overview-card .negative{color:#dc3545;color:var(--danger-color)}.charts-section{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.charts-section,.holdings-table{margin-bottom:2rem}.holdings-table table{border-collapse:collapse;margin-top:1rem;width:100%}.holdings-table thead{background-color:#f8f9fa;background-color:var(--bg-secondary)}.holdings-table th{border-bottom:2px solid #e9ecef;border-bottom:2px solid var(--border-color);color:#2c3e50;color:var(--text-primary);font-weight:600;padding:1rem;text-align:left}.holdings-table td{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color);color:#6c757d;color:var(--text-secondary);padding:1rem}.holdings-table tbody tr:hover{background-color:#f8f9fa;background-color:var(--bg-secondary)}.holdings-table .symbol{color:#2c3e50;color:var(--text-primary);font-weight:600}.holdings-table .name{color:#6c757d;color:var(--text-secondary)}.holdings-table .market-cap,.holdings-table .sector{color:#95a5a6;color:var(--text-muted);font-size:.875rem}.holdings-table .positive{color:#28a745;color:var(--success-color);font-weight:500}.holdings-table .negative{color:#dc3545;color:var(--danger-color);font-weight:500}.table-controls{flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem}.search-box,.table-controls{align-items:center;display:flex}.search-box{background-color:#fff;background-color:var(--bg-card);border:1px solid #e9ecef;border:1px solid var(--border-color);border-radius:8px;flex:1 1;gap:.5rem;max-width:300px;padding:.5rem 1rem}.search-box input{background:none;border:none;color:#2c3e50;color:var(--text-primary);outline:none;width:100%}.search-box input::placeholder{color:#95a5a6;color:var(--text-muted)}.sort-controls{align-items:center;display:flex;gap:1rem}.sort-controls select{background-color:#fff;background-color:var(--bg-card);border:1px solid #e9ecef;border:1px solid var(--border-color);border-radius:6px;color:#2c3e50;color:var(--text-primary);outline:none;padding:.5rem}.performance-chart{margin-bottom:2rem}.performance-insights{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:1rem}.insight-card{background-color:#f8f9fa;background-color:var(--bg-secondary);border-radius:8px;padding:1rem;text-align:center}.insight-card .value{font-size:1.5rem;font-weight:600;margin-bottom:.25rem}.insight-card .label{color:#95a5a6;color:var(--text-muted);font-size:.875rem}.top-performers{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.performer-card{text-align:center}.performer-card .symbol{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.performer-card .name{color:#6c757d;color:var(--text-secondary);margin-bottom:1rem}.performer-card .performance{font-size:2rem;font-weight:700;margin-bottom:.5rem}.performer-card .best{color:#28a745;color:var(--success-color)}.performer-card .worst{color:#dc3545;color:var(--danger-color)}.insights-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:1rem}.insight-item{background-color:#f8f9fa;background-color:var(--bg-secondary);border-radius:8px;padding:1rem;text-align:center}.insight-item .value{font-size:1.25rem;font-weight:600;margin-bottom:.25rem}.insight-item .label{color:#95a5a6;color:var(--text-muted);font-size:.875rem}.error-container,.loading-container{align-items:center;display:flex;justify-content:center;min-height:50vh}.error-container{flex-direction:column;text-align:center}.error-container h2{color:#dc3545;color:var(--danger-color);margin-bottom:1rem}.error-container p{color:#6c757d;color:var(--text-secondary);margin-bottom:1.5rem}.retry-button{background-color:#007bff;background-color:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .2s ease}.retry-button:hover{background-color:#17a2b8;background-color:var(--info-color)}@media (max-width:1024px){.charts-section{grid-template-columns:1fr}.portfolio-overview{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (max-width:768px){.header-content{flex-direction:column;gap:1rem}.header-title{font-size:1.25rem}.main-content{padding:1rem}.portfolio-overview{grid-template-columns:1fr}.table-controls{align-items:stretch;flex-direction:column}.search-box{max-width:none}.holdings-table{overflow-x:auto}.holdings-table table{min-width:600px}.top-performers{grid-template-columns:1fr}}@media (max-width:480px){.card{padding:1rem}.overview-card .value{font-size:1.5rem}.holdings-table td,.holdings-table th{font-size:.875rem;padding:.75rem .5rem}.insights-grid,.performance-insights{grid-template-columns:1fr}}@media (max-width:360px){.header-title{font-size:1rem}.card h2{font-size:1.125rem}.overview-card .value{font-size:1.25rem}}@media (orientation:landscape) and (max-height:600px){.header{padding:.5rem 0}.main-content{padding:1rem}.portfolio-overview{gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.card{border-width:.5px}}@media print{.header,.table-controls,.theme-toggle{display:none}.card{border:1px solid #000;box-shadow:none;break-inside:avoid;page-break-inside:avoid}.app{background:#fff;color:#000}}
/*# sourceMappingURL=main.ee3a5fe3.css.map*/