html,body,#root{width:100%;height:100%;min-height:100vh}body{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--color-bg: #0f172a;--color-bg-secondary: #1e293b;--color-bg-tertiary: #334155;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-border: #334155;--color-success: #22c55e;--color-warning: #f59e0b;--color-error: #ef4444;--radius: 8px;--radius-lg: 12px;--shadow: 0 4px 6px -1px rgb(0 0 0 / .2);--transition: .15s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6}.app-layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);padding:1.5rem 1rem;position:fixed;height:100vh;display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:700;color:var(--color-text);text-decoration:none;padding:.5rem;margin-bottom:2rem}.logo svg{color:var(--color-primary)}.nav-links{list-style:none;display:flex;flex-direction:column;gap:.25rem}.nav-links a{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius);color:var(--color-text-muted);text-decoration:none;transition:all var(--transition)}.nav-links a:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.nav-links a.active{background:var(--color-primary);color:#fff}.main-content{flex:1;margin-left:240px;padding:2rem;max-width:calc(100vw - 240px)}.page{max-width:1200px;margin:0 auto}.page-header{margin-bottom:2rem}.page-header h1{font-size:2rem;font-weight:700;margin-bottom:.5rem}.page-subtitle{color:var(--color-text-muted)}.search-bar{position:relative;margin-bottom:1.5rem}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted)}.search-input{width:100%;padding:.875rem 1rem .875rem 3rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-secondary);color:var(--color-text);font-size:1rem;transition:border-color var(--transition)}.search-input:focus{outline:none;border-color:var(--color-primary)}.search-input::placeholder{color:var(--color-text-muted)}.clear-button{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center}.clear-button:hover{color:var(--color-text)}.results-info{color:var(--color-text-muted);font-size:.875rem;margin-bottom:1rem}.fund-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.fund-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);text-decoration:none;color:var(--color-text);transition:all var(--transition)}.fund-card:hover{border-color:var(--color-primary);background:var(--color-bg-tertiary)}.fund-card-icon{color:var(--color-text-muted)}.fund-card-icon.has-data{color:var(--color-success)}.fund-card-content{flex:1;min-width:0}.fund-card-name{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;margin-bottom:.25rem}.fund-card-name>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.has-positions-badge{display:inline-flex;align-items:center;justify-content:center;color:var(--color-success);flex-shrink:0}.fund-card-meta{display:flex;gap:.75rem;font-size:.75rem;color:var(--color-text-muted)}.fund-card-positions{color:var(--color-success);font-weight:500}.fund-card-arrow{color:var(--color-text-muted)}.pagination{display:flex;justify-content:center;align-items:center;gap:.25rem;margin-top:2rem}.pagination-btn{display:flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;padding:0 .75rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.875rem;cursor:pointer;transition:all var(--transition)}.pagination-btn:hover:not(:disabled){border-color:var(--color-primary)}.pagination-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-ellipsis{padding:0 .5rem;color:var(--color-text-muted)}.loading-container{display:flex;justify-content:center;padding:3rem}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.spinner-sm .spinner{width:24px;height:24px;border-width:2px}.spinner-lg .spinner{width:56px;height:56px;border-width:4px}.error-message{background:#ef44441a;border:1px solid var(--color-error);color:var(--color-error);padding:1rem 1.25rem;border-radius:var(--radius);margin-bottom:1.5rem}.empty-state{text-align:center;padding:3rem;color:var(--color-text-muted)}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-text-muted);text-decoration:none;margin-bottom:1.5rem;transition:color var(--transition)}.back-link:hover{color:var(--color-primary)}.fund-detail-header{margin-bottom:2rem}.fund-detail-header h1{font-size:1.75rem;margin-bottom:.75rem}.fund-meta{display:flex;gap:.5rem}.tag{display:inline-block;padding:.25rem .75rem;background:var(--color-bg-tertiary);border-radius:9999px;font-size:.75rem;color:var(--color-text-muted)}.fund-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius)}.stat-icon{color:var(--color-primary)}.stat-label{font-size:.75rem;color:var(--color-text-muted);margin-bottom:.25rem}.stat-value{font-size:1.125rem;font-weight:600}.constituents-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{font-size:1.25rem}.date-select{padding:.5rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.875rem;cursor:pointer}.date-select:focus{outline:none;border-color:var(--color-primary)}.constituent-search{margin-bottom:1rem}.constituents-table-container{overflow-x:auto}.constituents-table{width:100%;border-collapse:collapse}.constituents-table th,.constituents-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.constituents-table th{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-bg)}.constituents-table tbody tr:hover{background:var(--color-bg)}.text-right{text-align:right}.asset-link{color:var(--color-primary);text-decoration:none}.asset-link:hover{text-decoration:underline}.asset-type-badge{display:inline-block;padding:.125rem .5rem;background:var(--color-bg-tertiary);border-radius:4px;font-size:.75rem;color:var(--color-text-muted)}.identifiers{display:flex;flex-wrap:wrap;gap:.5rem}.identifier{font-size:.75rem;color:var(--color-text-muted);background:var(--color-bg);padding:.125rem .5rem;border-radius:4px}.more-identifiers{font-size:.75rem;color:var(--color-primary)}.asset-detail-header{margin-bottom:2rem}.asset-detail-header h1{font-size:1.75rem;margin-bottom:.75rem;word-break:break-word}.asset-meta{display:flex;gap:.5rem;flex-wrap:wrap}.type-tag{background:var(--color-primary);color:#fff}.identifiers-section,.holding-funds-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.identifiers-section h2,.holding-funds-section h2{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;margin-bottom:1rem}.identifiers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.identifier-card{display:flex;flex-direction:column;padding:.75rem 1rem;background:var(--color-bg);border-radius:var(--radius)}.identifier-type{font-size:.75rem;color:var(--color-text-muted);margin-bottom:.25rem}.identifier-value{font-weight:600;font-family:monospace}.identifier-dates{font-size:.75rem;color:var(--color-text-muted);margin-top:.25rem}.section-info{color:var(--color-text-muted);margin-bottom:1rem}.no-data{color:var(--color-text-muted);font-style:italic}.fund-list.compact .fund-card{padding:.75rem 1rem}.fund-list.compact .fund-card-name{font-size:.875rem}.type-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.type-filter{padding:.5rem 1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:9999px;color:var(--color-text-muted);font-size:.75rem;cursor:pointer;transition:all var(--transition)}.type-filter:hover{border-color:var(--color-primary)}.type-filter.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.asset-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.asset-card{display:flex;align-items:center;padding:1rem 1.25rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);text-decoration:none;color:var(--color-text);transition:all var(--transition)}.asset-card:hover{border-color:var(--color-primary);background:var(--color-bg-tertiary)}.asset-card-content{flex:1;min-width:0}.asset-card-name{font-size:1rem;font-weight:600;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-card-meta{display:flex;gap:.75rem;align-items:center}.asset-source{font-size:.75rem;color:var(--color-text-muted)}.asset-card-arrow{color:var(--color-text-muted)}.asset-identifiers{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.asset-identifier{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:var(--color-bg-tertiary);border-radius:var(--radius);font-size:.7rem;font-family:var(--font-mono)}.asset-identifier.matched{background:var(--color-primary);color:#fff}.asset-identifier .id-type{color:var(--color-text-muted);font-weight:500}.asset-identifier.matched .id-type{color:#fffc}.asset-identifier .id-value{color:var(--color-text)}.asset-identifier.matched .id-value{color:#fff}.more-identifiers{font-size:.7rem;color:var(--color-text-muted);padding:.125rem .375rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--color-bg)}.login-container{width:100%;max-width:400px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem}.login-header{text-align:center;margin-bottom:2rem}.login-header svg{color:var(--color-primary);margin-bottom:1rem}.login-header h1{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.login-header p{color:var(--color-text-muted);font-size:.875rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-error{background:#ef44441a;border:1px solid var(--color-error);color:var(--color-error);padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem}.form-group label{font-size:.875rem;font-weight:500;color:var(--color-text-muted)}.form-group input{padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font-size:1rem;transition:border-color var(--transition)}.form-group input:focus{outline:none;border-color:var(--color-primary)}.form-group input::placeholder{color:var(--color-text-muted)}.login-button{padding:.875rem 1.5rem;background:var(--color-primary);border:none;border-radius:var(--radius);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:background var(--transition)}.login-button:hover:not(:disabled){background:var(--color-primary-hover)}.login-button:disabled{opacity:.6;cursor:not-allowed}.sidebar-footer{margin-top:auto;padding-top:1rem;border-top:1px solid var(--color-border)}.user-info{display:flex;align-items:center;gap:.5rem;padding:.5rem;font-size:.875rem;color:var(--color-text-muted);margin-bottom:.5rem}.logout-button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:none;border-radius:var(--radius);background:transparent;color:var(--color-text-muted);font-size:.875rem;cursor:pointer;transition:all var(--transition)}.logout-button:hover{background:var(--color-bg-tertiary);color:var(--color-error)}.settings-section{margin-bottom:.75rem}.settings-toggle{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:none;border-radius:var(--radius);background:transparent;color:var(--color-text-muted);font-size:.875rem;cursor:pointer;transition:all var(--transition)}.settings-toggle:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.settings-toggle span:first-of-type{flex:1;text-align:left}.settings-panel{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;margin-top:.5rem;display:flex;flex-direction:column;gap:.75rem}.settings-field{display:flex;flex-direction:column;gap:.375rem}.settings-field label{font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.settings-field select,.settings-field input{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-secondary);color:var(--color-text);font-size:.85rem;width:100%}.settings-field select:focus,.settings-field input:focus{outline:none;border-color:var(--color-primary)}.api-key-input{position:relative;display:flex;align-items:center}.api-key-input input{padding-right:2.5rem}.toggle-visibility{position:absolute;right:.5rem;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center}.toggle-visibility:hover{color:var(--color-text)}.settings-status{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--color-success)}.settings-status .status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-success)}.settings-status.saved{color:var(--color-success)}.settings-status.error{color:#ef4444}.api-key-actions{display:flex;gap:.5rem;margin-top:.5rem}.save-key-btn,.delete-key-btn{display:flex;align-items:center;gap:.25rem;padding:.35rem .75rem;border:none;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s}.save-key-btn{background:var(--color-primary);color:#fff}.save-key-btn:hover:not(:disabled){background:var(--color-primary-dark, #2563eb)}.save-key-btn:disabled{opacity:.5;cursor:not-allowed}.delete-key-btn{background:transparent;border:1px solid #ef4444;color:#ef4444}.delete-key-btn:hover:not(:disabled){background:#ef4444;color:#fff}.delete-key-btn:disabled{opacity:.5;cursor:not-allowed}.spin{animation:spin 1s linear infinite}.raw-browser-page .page-header h1{display:flex;align-items:center}.raw-browser-controls{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.5rem}.raw-browser-controls .raw-search{flex:1;margin-bottom:0}.package-selector{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.package-selector label{display:flex;align-items:center;gap:.5rem;color:var(--color-text-muted);font-size:.875rem}.package-selector select{padding:.875rem 1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.875rem;cursor:pointer;min-width:180px}.package-selector select:focus{outline:none;border-color:var(--color-primary)}.packages-summary{margin-bottom:1rem}.packages-count{color:var(--color-text-muted);font-size:.875rem}.data-table{width:100%;border-collapse:collapse;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.data-table th{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-bg)}.data-table tbody tr:hover{background:var(--color-bg)}.data-table tbody tr:last-child td{border-bottom:none}.series-list{margin-bottom:2rem;overflow-x:auto}.series-name-cell{max-width:300px}.series-link{color:var(--color-primary);text-decoration:none;font-weight:500}.series-link:hover{text-decoration:underline}.series-id-cell code{font-size:.75rem;background:var(--color-bg);padding:.125rem .5rem;border-radius:4px}.registrant-cell{max-width:250px}.cik-label{font-size:.75rem;color:var(--color-text-muted)}.date-cell{white-space:nowrap;font-size:.875rem}.action-cell{text-align:right}.view-link{display:inline-flex;align-items:center;gap:.25rem;color:var(--color-primary);text-decoration:none;font-size:.875rem}.view-link:hover{text-decoration:underline}.lei-badge{display:inline-block;margin-left:.5rem;padding:.125rem .375rem;background:var(--color-bg-tertiary);border-radius:4px;font-size:.625rem;color:var(--color-text-muted);vertical-align:middle}.raw-series-detail-page .series-detail-header{margin-bottom:2rem}.series-detail-header h1{font-size:1.75rem;margin-bottom:.75rem}.series-meta{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.series-id-badge{font-size:.75rem;background:var(--color-bg-tertiary);padding:.25rem .5rem;border-radius:4px}.package-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--color-primary);border-radius:4px;font-size:.75rem;color:#fff}.series-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-sub{font-size:.75rem;color:var(--color-text-muted);margin-top:.25rem}.accession-info{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);font-size:.875rem;color:var(--color-text-muted);margin-bottom:1.5rem}.accession-info code{background:var(--color-bg);padding:.125rem .5rem;border-radius:4px}.holdings-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem}.holdings-section .section-header{margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.export-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s,opacity .2s}.export-button:hover:not(:disabled){background:var(--color-primary-dark, #2563eb)}.export-button:disabled{opacity:.6;cursor:not-allowed}.holding-search{margin-bottom:1rem}.holdings-table-container{overflow-x:auto;margin-bottom:1rem}.holdings-table{min-width:1000px}.issuer-name-cell{max-width:250px}.lei-indicator{display:inline-block;margin-left:.5rem;padding:.0625rem .25rem;background:var(--color-bg);border-radius:4px;font-size:.625rem;color:var(--color-text-muted);vertical-align:middle}.issuer-title-cell{max-width:200px;font-size:.875rem;color:var(--color-text-muted)}.cusip-cell code{font-size:.75rem;background:var(--color-bg);padding:.125rem .375rem;border-radius:4px}.identifiers-cell{max-width:200px}.identifier-list{display:flex;flex-direction:column;gap:.25rem}.identifier-tag{display:flex;flex-wrap:wrap;gap:.25rem;font-size:.75rem}.id-isin{color:var(--color-text-muted)}.id-ticker{color:var(--color-primary);font-weight:500}.id-other{color:var(--color-text-muted)}.asset-cat-badge{display:inline-block;padding:.125rem .5rem;background:var(--color-bg);border-radius:4px;font-size:.75rem;color:var(--color-text-muted)}.balance-cell{white-space:nowrap}.unit-label{display:block;font-size:.625rem;color:var(--color-text-muted);text-transform:uppercase}.value-cell{white-space:nowrap}.currency-label{display:block;font-size:.625rem;color:var(--color-text-muted)}.weight-cell{white-space:nowrap;font-weight:500}@media(max-width:768px){.sidebar{width:60px;padding:1rem .5rem}.logo span,.nav-links span,.user-info span,.logout-button span{display:none}.user-info,.logout-button,.logo{justify-content:center}.nav-links a{justify-content:center;padding:.75rem}.main-content{margin-left:60px;padding:1rem;max-width:calc(100vw - 60px)}.fund-stats{grid-template-columns:1fr}.raw-browser-controls{flex-direction:column}.package-selector{width:100%}.package-selector select{flex:1}.series-stats{grid-template-columns:1fr}}.clickable-row{cursor:pointer;transition:background-color .15s}.clickable-row:hover{background-color:var(--color-bg-hover, rgba(59, 130, 246, .08))}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-header h3{margin:0;font-size:1.125rem;font-weight:600}.modal-close{background:none;border:none;cursor:pointer;padding:.25rem;color:var(--color-text-muted);border-radius:var(--radius-sm);transition:background-color .15s,color .15s}.modal-close:hover{background:var(--color-bg-secondary);color:var(--color-text)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.holding-detail-modal{max-width:900px}.holding-detail-section{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.holding-detail-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.holding-detail-section h4{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.025em}.holding-header-section h4{font-size:1.125rem;color:var(--color-text);text-transform:none;letter-spacing:normal}.holding-header-section .holding-title{margin:.25rem 0 0;color:var(--color-text-muted);font-size:.9375rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin:0}.detail-list-item{background:var(--color-bg-secondary);padding:.75rem;border-radius:var(--radius-md);margin-bottom:.5rem}.detail-list-item:last-child{margin-bottom:0}.detail-item{display:flex;flex-direction:column;gap:.125rem}.detail-item dt{font-size:.6875rem;font-weight:500;color:var(--color-text-muted);text-transform:capitalize}.detail-item dd{margin:0;font-size:.875rem;color:var(--color-text);word-break:break-word}.explanatory-notes{margin:0;font-size:.875rem;color:var(--color-text);background:var(--color-bg-secondary);padding:.75rem;border-radius:var(--radius-md);white-space:pre-wrap}.ncen-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.ncen-stats-grid .stat-card{padding:1rem}.ncen-stats-grid .stat-card svg{color:var(--color-primary)}.view-mode-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.25rem;background:var(--color-bg-secondary);border-radius:var(--radius);width:fit-content}.tab-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:transparent;border:none;border-radius:calc(var(--radius) - 2px);color:var(--color-text-muted);font-size:.875rem;cursor:pointer;transition:all var(--transition)}.tab-button:hover{color:var(--color-text);background:var(--color-bg-tertiary)}.filter-controls{display:flex;gap:1rem;flex-wrap:wrap}.fund-type-selector{display:flex;align-items:center;gap:.5rem}.fund-type-selector label{color:var(--color-text-muted);font-size:.875rem}.fund-type-selector select{padding:.875rem 1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.875rem;cursor:pointer;min-width:140px}.fund-type-badges{display:flex;flex-wrap:wrap;gap:.25rem}.fund-type-badge{display:inline-block;padding:.125rem .5rem;background:var(--color-bg-tertiary);border-radius:4px;font-size:.625rem;color:var(--color-text-muted)}.fund-type-badge.large{padding:.25rem .75rem;font-size:.75rem;background:var(--color-primary);color:#fff}.type-cell{min-width:100px}.location-cell{max-width:200px;font-size:.875rem}.count-cell{text-align:center}.value-cell{text-align:right;font-family:SF Mono,Monaco,monospace;font-size:.875rem}.raw-detail-page .detail-header{margin-bottom:2rem}.detail-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.detail-title-row h1{font-size:1.75rem;flex:1;word-break:break-word}.detail-meta{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:.75rem}.detail-meta .meta-item{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--color-text-muted)}.detail-meta .meta-item code{background:var(--color-bg-tertiary);padding:.125rem .5rem;border-radius:4px;font-size:.75rem}.fund-types{display:flex;flex-wrap:wrap;gap:.5rem}.company-type-badge{display:inline-block;padding:.25rem .75rem;background:var(--color-bg-tertiary);border-radius:4px;font-size:.875rem;color:var(--color-text)}.export-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--color-primary);border:none;border-radius:var(--radius);color:#fff;font-size:.875rem;cursor:pointer;transition:background var(--transition);white-space:nowrap}.export-button:hover{background:var(--color-primary-hover)}.detail-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.detail-section h2{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;margin-bottom:1rem;color:var(--color-text)}.detail-section h3{font-size:1rem;margin-top:1.5rem;margin-bottom:.75rem;color:var(--color-text-muted)}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-item.wide{grid-column:span 2}.info-item label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase}.info-item span{font-size:.875rem;color:var(--color-text)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.metric-card{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:var(--color-bg);border-radius:var(--radius)}.metric-value{font-size:1.25rem;font-weight:600;color:var(--color-text)}.metric-label{font-size:.75rem;color:var(--color-text-muted)}.data-table.compact th,.data-table.compact td{padding:.5rem .75rem;font-size:.8125rem}.lei-cell{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;color:var(--color-text-muted)}.table-footer{margin-top:.75rem;padding:.75rem;background:var(--color-bg);border-radius:var(--radius);font-size:.75rem;color:var(--color-text-muted);text-align:center}.websites-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.websites-list a{color:var(--color-primary);text-decoration:none}.websites-list a:hover{text-decoration:underline}@media(max-width:768px){.view-mode-tabs{width:100%}.tab-button{flex:1;justify-content:center}.ncen-stats-grid{grid-template-columns:repeat(2,1fr)}.filter-controls{flex-direction:column}.info-grid{grid-template-columns:1fr}.info-item.wide{grid-column:span 1}.metrics-grid{grid-template-columns:repeat(2,1fr)}.detail-title-row{flex-direction:column}.export-button{width:100%;justify-content:center}}.nav-section-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:1rem 1rem .5rem;margin-top:.5rem;opacity:.7}.dashboard-home{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 4rem);padding:2rem}.dashboard-home.has-messages{align-items:stretch;padding:1rem}.dashboard-home-content{width:100%;max-width:800px;display:flex;flex-direction:column;align-items:center}.dashboard-home.has-messages .dashboard-home-content{max-width:100%;height:100%;flex:1}.dashboard-welcome{text-align:center;margin-bottom:2rem}.dashboard-welcome h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(135deg,var(--color-primary) 0%,#8b5cf6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-welcome p{color:var(--color-text-muted);font-size:1.1rem}.chat-container{width:100%;display:flex;flex-direction:column;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.chat-container.centered{height:450px;margin-bottom:2rem}.chat-container.centered.expanded{height:calc(100vh - 6rem);max-height:none;margin-bottom:0;flex:1}.chat-container.sidebar{flex:1;min-height:0}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-muted);text-align:center;gap:1rem}.chat-empty svg{opacity:.5}.chat-empty p{font-size:.95rem}.chat-empty.small{gap:.75rem}.chat-empty.small p{font-size:.85rem}.chat-message{display:flex;gap:.75rem;max-width:90%}.expanded .chat-message{max-width:95%}.chat-message.user{align-self:flex-end;flex-direction:row-reverse}.chat-message.assistant{align-self:flex-start}.message-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-message.user .message-avatar{background:var(--color-primary);color:#fff}.chat-message.assistant .message-avatar{background:var(--color-bg-tertiary);color:var(--color-text-muted)}.chat-message.error .message-avatar{background:#ef444433;color:#ef4444}.chat-message.error .message-content{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.message-content{background:var(--color-bg-tertiary);padding:.75rem 1rem;border-radius:var(--radius)}.chat-message.user .message-content{background:var(--color-primary);color:#fff}.message-content p{font-size:.9rem;line-height:1.5;margin:0}.message-content.typing{display:flex;gap:4px;padding:1rem}.message-content.typing span{width:8px;height:8px;background:var(--color-text-muted);border-radius:50%;animation:typing 1.4s infinite ease-in-out}.message-content.typing span:nth-child(2){animation-delay:.2s}.message-content.typing span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.message-content-wrapper{display:flex;flex-direction:column;gap:.5rem;max-width:100%}.tool-calls-display{margin-top:.25rem}.tool-calls-toggle{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:1rem;color:#60a5fa;font-size:.75rem;cursor:pointer;transition:all .2s}.tool-calls-toggle:hover{background:#3b82f633;border-color:#3b82f64d}.tool-calls-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.tool-call-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem;font-size:.8rem}.tool-call-header{display:flex;align-items:center;gap:.5rem;color:#60a5fa;margin-bottom:.25rem}.tool-name{text-transform:capitalize;font-weight:500}.tool-call-input code{display:block;font-family:monospace;font-size:.7rem;color:var(--color-text-muted);white-space:pre-wrap;word-break:break-all}.message-charts{margin-top:1rem;display:flex;flex-direction:column;gap:1rem}.dynamic-chart-container{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;overflow:hidden}.dynamic-chart-title{margin:0 0 .75rem;font-size:.9rem;font-weight:600;color:var(--color-text);text-align:center}.dynamic-chart-container .chart-summary{margin-top:.5rem;text-align:center;font-size:.75rem;color:var(--color-text-muted)}.dynamic-chart-error{padding:1rem;color:var(--color-error);text-align:center}.activity-indicator{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.75rem;color:var(--color-text-muted)}.activity-indicator .spin{animation:spin 1s linear infinite}.chat-suggestions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;justify-content:center}.chat-suggestions button{padding:.5rem 1rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:1rem;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all .2s}.chat-suggestions button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-text)}.cursor-blink{animation:blink 1s infinite;color:var(--color-primary);font-weight:700}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.chat-message.streaming .message-content{border-left:2px solid var(--color-primary)}.typing-indicator-container{display:flex;flex-direction:column;gap:.5rem;padding:.5rem 1rem}.active-tools{display:flex;flex-wrap:wrap;gap:.5rem}.active-tool{display:flex;align-items:center;gap:.35rem;padding:.25rem .5rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:.5rem;font-size:.7rem;color:#60a5fa}.active-tool.calling{border-color:#3b82f666}.active-tool.done{background:#22c55e1a;border-color:#22c55e33;color:#4ade80}.markdown-content{line-height:1.6}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin:.75em 0 .5em;font-weight:600;color:var(--color-text)}.markdown-content h1{font-size:1.4em}.markdown-content h2{font-size:1.25em}.markdown-content h3{font-size:1.1em}.markdown-content h4{font-size:1em}.markdown-content p{margin:.5em 0}.markdown-content ul,.markdown-content ol{margin:.5em 0;padding-left:1.5em}.markdown-content li{margin:.25em 0}.markdown-content code{background:var(--color-bg-tertiary);padding:.15em .4em;border-radius:4px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.9em;color:#e879f9}.markdown-content pre{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:6px;padding:.75em 1em;overflow-x:auto;margin:.75em 0}.markdown-content pre code{background:none;padding:0;color:var(--color-text)}.markdown-content table{width:100%;border-collapse:collapse;margin:.75em 0;font-size:.9em}.markdown-content th,.markdown-content td{border:1px solid var(--color-border);padding:.5em .75em;text-align:left}.markdown-content th{background:var(--color-bg-tertiary);font-weight:600}.markdown-content tr:nth-child(2n){background:#ffffff05}.markdown-content blockquote{border-left:3px solid var(--color-primary);margin:.75em 0;padding:.5em 1em;background:#3b82f60d;color:var(--color-text-muted)}.markdown-content a{color:var(--color-primary);text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content hr{border:none;border-top:1px solid var(--color-border);margin:1em 0}.markdown-content strong{font-weight:600;color:var(--color-text)}.markdown-content em{font-style:italic}.chat-input-container{display:flex;gap:.75rem;padding:1rem;border-top:1px solid var(--color-border);background:var(--color-bg)}.chat-input-container textarea{flex:1;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-secondary);color:var(--color-text);font-size:.9rem;font-family:inherit;resize:none;min-height:44px;max-height:120px}.chat-input-container textarea:focus{outline:none;border-color:var(--color-primary)}.chat-input-container textarea::placeholder{color:var(--color-text-muted)}.send-button{width:44px;height:44px;border:none;border-radius:var(--radius);background:var(--color-primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}.send-button:hover:not(:disabled){background:var(--color-primary-hover)}.send-button:disabled{opacity:.5;cursor:not-allowed}.mode-buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.mode-button{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 2rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);cursor:pointer;transition:all var(--transition);min-width:140px}.mode-button:hover{border-color:var(--color-primary);background:var(--color-bg-tertiary);transform:translateY(-2px)}.mode-button svg{color:var(--color-primary)}.mode-button span{font-size:.9rem;font-weight:500}.dashboard-workspace{display:flex;height:calc(100vh - 4rem);margin:-2rem}.workspace-sidebar{width:350px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);display:flex;flex-direction:column}.workspace-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.workspace-header h2{font-size:1.1rem;font-weight:600;margin:0}.back-button{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:.9rem;padding:.25rem .5rem;border-radius:var(--radius);transition:all var(--transition)}.back-button:hover{color:var(--color-text);background:var(--color-bg-tertiary)}.workspace-main{flex:1;padding:1.5rem;overflow:auto;display:flex;flex-direction:column}.chart-area{flex:1;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.chart-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.chart-header h3{font-size:1rem;font-weight:600;margin:0}.chart-controls select{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font-size:.85rem}.bubble-chart{flex:1;padding:1rem;display:flex;align-items:center;justify-content:center}.bubble-chart-svg{width:100%;height:100%;max-height:500px}.bubble-chart-svg .axis-label{font-size:3px;fill:var(--color-text-muted)}.bubble-chart-svg .bubble-circle{fill-opacity:.7;stroke-width:.3;transition:all .2s ease;cursor:pointer}.bubble-chart-svg .bubble-circle:hover{fill-opacity:1}.bubble-chart-svg .bubble.etf .bubble-circle{fill:#3b82f6;stroke:#2563eb}.bubble-chart-svg .bubble.mutual .bubble-circle{fill:#22c55e;stroke:#16a34a}.bubble-chart-svg .bubble.index .bubble-circle{fill:#f59e0b;stroke:#d97706}.bubble-chart-svg .bubble-label{font-size:2px;fill:#fff;font-weight:600;pointer-events:none}.chart-legend{display:flex;gap:1.5rem;padding:1rem 1.25rem;border-top:1px solid var(--color-border);justify-content:center}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-text-muted)}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-dot.etf{background:#3b82f6}.legend-dot.mutual{background:#22c55e}.legend-dot.index{background:#f59e0b}.coming-soon-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted)}.coming-soon-placeholder h2{font-size:1.5rem;margin-bottom:.5rem}.coming-soon-placeholder p{font-size:.95rem}@media(max-width:900px){.dashboard-workspace{flex-direction:column}.workspace-sidebar{width:100%;height:300px;border-right:none;border-bottom:1px solid var(--color-border)}.mode-buttons{gap:.75rem}.mode-button{padding:1rem 1.5rem;min-width:120px}}.app-layout-v2{display:flex;flex-direction:column;min-height:100vh}.app-body{display:flex;flex:1;overflow:hidden}.app-layout-v2 .main-content{flex:1;padding:1.5rem;overflow-y:auto;margin-left:0;max-width:none}.top-menu{display:flex;align-items:center;height:56px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);padding:0 1rem;gap:.5rem}.top-menu-logo{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;color:var(--color-text);text-decoration:none;padding:.5rem 1rem;margin-right:1rem}.top-menu-logo svg{color:var(--color-primary)}.top-menu-nav{display:flex;align-items:center;gap:.25rem;flex:1}.top-menu-item{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;border-radius:var(--radius);color:var(--color-text-muted);text-decoration:none;font-size:.875rem;font-weight:500;transition:all var(--transition);background:transparent;border:none;cursor:pointer}.top-menu-item:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.top-menu-item.active{background:var(--color-primary);color:#fff}.top-menu-item.logout{color:var(--color-text-muted)}.top-menu-item.logout:hover{background:#ef44441a;color:#ef4444}.top-menu-dropdown{position:relative}.dropdown-trigger{display:flex;align-items:center;gap:.35rem}.dropdown-menu{position:absolute;top:100%;left:0;margin-top:.25rem;min-width:180px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:100;padding:.5rem}.dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;border-radius:calc(var(--radius) - 2px);color:var(--color-text-muted);font-size:.875rem;background:transparent;border:none;cursor:pointer;transition:all var(--transition);text-align:left}.dropdown-item:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.top-menu-right{display:flex;align-items:center;gap:.5rem;margin-left:auto}.top-menu-user{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;color:var(--color-text-muted);font-size:.875rem}.side-menu{width:200px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);padding:1rem .75rem;flex-shrink:0}.side-menu-nav{display:flex;flex-direction:column}.side-menu-list{list-style:none;display:flex;flex-direction:column;gap:.25rem}.side-menu-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius);color:var(--color-text-muted);text-decoration:none;font-size:.875rem;transition:all var(--transition)}.side-menu-item:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.side-menu-item.active{background:var(--color-primary);color:#fff}.settings-page{display:flex;flex-direction:column;gap:1.5rem}.settings-header{display:flex;align-items:center;gap:.75rem}.settings-header svg{color:var(--color-primary)}.settings-header h1{font-size:1.5rem;margin:0}.settings-message{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem}.settings-message.success{background:#22c55e1a;border:1px solid var(--color-success);color:var(--color-success)}.settings-message.error{background:#ef44441a;border:1px solid var(--color-error);color:var(--color-error)}.settings-message button{margin-left:auto;background:none;border:none;color:inherit;cursor:pointer;opacity:.7}.settings-message button:hover{opacity:1}.settings-tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.5rem}.settings-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:none;border:none;border-radius:var(--radius);color:var(--color-text-muted);font-size:.875rem;cursor:pointer;transition:all var(--transition)}.settings-tab:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.settings-tab.active{background:var(--color-primary);color:#fff}.settings-content{flex:1}.settings-section{display:flex;flex-direction:column;gap:1.5rem}.settings-section h2{font-size:1.125rem;margin:0}.settings-description{color:var(--color-text-muted);font-size:.875rem;margin:0}.section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.settings-form{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1rem;max-width:500px}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.8125rem;color:var(--color-text-muted);display:flex;align-items:center;gap:.5rem}.form-group select,.form-group input{padding:.75rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.875rem}.form-group select:focus,.form-group input:focus{outline:none;border-color:var(--color-primary)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.input-with-button{display:flex;gap:.5rem}.input-with-button input{flex:1}.icon-button{display:flex;align-items:center;justify-content:center;padding:.75rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition)}.icon-button:hover{background:var(--color-bg-secondary);color:var(--color-text)}.key-status{font-size:.75rem;padding:.125rem .5rem;border-radius:10px}.key-status.configured{background:#22c55e26;color:var(--color-success)}.form-actions{display:flex;gap:.75rem;margin-top:.5rem}.btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-danger{background:#ef444426;color:var(--color-error)}.btn-danger:hover:not(:disabled){background:#ef444440}.user-form-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem}.user-form-card h3{font-size:1rem;margin:0 0 1rem}.user-form{display:flex;flex-direction:column;gap:1rem}.users-table-container{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.loading-state{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem;color:var(--color-text-muted)}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.users-table th{background:var(--color-bg-tertiary);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.users-table tr:last-child td{border-bottom:none}.users-table tr.disabled{opacity:.6}.username-cell{display:flex;align-items:center;gap:.5rem}.you-badge{font-size:.625rem;padding:.125rem .375rem;background:var(--color-primary);color:#fff;border-radius:10px;text-transform:uppercase;font-weight:600}.role-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;padding:.25rem .5rem;border-radius:10px;text-transform:capitalize}.role-badge.admin{background:#8b5cf626;color:#a78bfa}.role-badge.user{background:#3b82f626;color:var(--color-primary)}.status-badge{font-size:.75rem;padding:.25rem .5rem;border-radius:10px}.status-badge.active{background:#22c55e26;color:var(--color-success)}.status-badge.disabled{background:#ef444426;color:var(--color-error)}.actions-cell{display:flex;gap:.25rem}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:var(--radius);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition)}.icon-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.icon-btn.danger:hover{background:#ef444426;color:var(--color-error)}@media(max-width:768px){.form-row{grid-template-columns:1fr}.users-table{font-size:.8125rem}.users-table th,.users-table td{padding:.5rem .75rem}}.dataforge-page{display:flex;flex-direction:column;gap:0;height:calc(100vh - 56px);padding:1rem 1.5rem;overflow:hidden}.dataforge-page h1{font-size:1.5rem;margin:0}.dataforge-page p{color:var(--color-text-muted)}.dataforge-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.dataforge-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;gap:.75rem}.dataforge-card h3{font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.dataforge-card h3 svg{color:var(--color-primary)}.dataforge-card p{font-size:.875rem;color:var(--color-text-muted);margin:0}.dataforge-card .coming-soon{font-size:.75rem;color:var(--color-warning);background:#f59e0b1a;padding:.25rem .5rem;border-radius:4px;width:fit-content}.dataforge-header{text-align:center;padding:1rem 0}.dataforge-title{display:flex;align-items:center;justify-content:center;gap:.75rem}.dataforge-title svg{color:var(--color-primary)}.dataforge-header p{color:var(--color-text-muted);margin-top:.5rem}.dataforge-tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.5rem;margin-bottom:.75rem;flex-shrink:0}.dataforge-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.dataforge-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius);color:var(--color-text-muted);text-decoration:none;transition:all var(--transition)}.dataforge-tab:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.dataforge-tab.active{background:var(--color-primary);color:#fff}.dataforge-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex:1;min-height:0;overflow:auto}.dataforge-placeholder svg{color:var(--color-text-muted);margin-bottom:1rem;opacity:.5}.dataforge-placeholder h2{margin-bottom:.5rem}.dataforge-placeholder>p{color:var(--color-text-muted);margin-bottom:2rem}.placeholder-features{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:2rem;max-width:600px}.feature-item{text-align:center}.feature-item h3{font-size:1rem;margin-bottom:.25rem;color:var(--color-primary)}.feature-item p{font-size:.875rem;color:var(--color-text-muted)}.coming-soon-badge{font-size:.75rem;color:var(--color-warning);background:#f59e0b1a;padding:.5rem 1rem;border-radius:20px;border:1px solid var(--color-warning)}.dashboard-overview{display:flex;flex-direction:column;gap:2rem}.dashboard-header{text-align:center;padding:2rem 0}.dashboard-header h1{font-size:2rem;margin-bottom:.5rem}.dashboard-header p{color:var(--color-text-muted);font-size:1.125rem}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.stat-card svg{color:var(--color-primary)}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:1.5rem;font-weight:700}.stat-label{font-size:.875rem;color:var(--color-text-muted)}.dashboard-section{display:flex;flex-direction:column;gap:1rem}.dashboard-section h2{font-size:1.25rem;font-weight:600}.quick-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.quick-action-card{display:flex;align-items:flex-start;gap:1rem;padding:1.5rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-decoration:none;color:var(--color-text);transition:all var(--transition)}.quick-action-card:hover{border-color:var(--color-primary);background:var(--color-bg-tertiary);transform:translateY(-2px)}.quick-action-card svg{color:var(--color-primary);flex-shrink:0}.quick-action-info h3{font-size:1rem;font-weight:600;margin-bottom:.25rem}.quick-action-info p{font-size:.875rem;color:var(--color-text-muted);margin:0}.activity-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.activity-placeholder svg{color:var(--color-text-muted);opacity:.5;margin-bottom:1rem}.activity-placeholder p{color:var(--color-text-muted)}.chat-page{display:flex;flex-direction:column;height:calc(100vh - 56px - 3rem);margin:-1.5rem}.chat-page-content{display:flex;flex-direction:column;height:100%;padding:1.5rem}.chat-page-welcome{text-align:center;padding:2rem 0}.chat-page-welcome h1{font-size:2rem;margin-bottom:.5rem;color:var(--color-text)}.chat-page-welcome p{color:var(--color-text-muted);font-size:1.125rem}.chat-page .chat-container.full-page{flex:1;display:flex;flex-direction:column;max-width:900px;margin:0 auto;width:100%}.chat-page .chat-container.full-page.expanded{max-width:100%}.chat-page .chat-container{flex:1;border-radius:0;border:none;height:100%}.chat-page .chat-messages{flex:1;overflow-y:auto}@media(max-width:768px){.top-menu{padding:0 .5rem}.top-menu-logo span,.top-menu-item span,.top-menu-user span{display:none}.side-menu{width:60px;padding:1rem .5rem}.side-menu-item span{display:none}.side-menu-item{justify-content:center;padding:.75rem}}.visualization-page{display:flex;gap:0;flex:1;min-height:0;margin:0 -1.5rem -1rem;background:var(--color-bg);overflow:hidden}.viz-sidebar{width:380px;min-width:280px;max-width:600px;background:var(--color-bg);display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;flex-shrink:0;padding:1rem 0}.viz-sidebar.resizable{transition:none}.viz-sidebar.right{order:3}.resize-handle{width:8px;background:transparent;cursor:col-resize;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:10;transition:background var(--transition);order:2}.resize-handle:hover,.resize-handle.active{background:var(--color-border)}.resize-handle svg{color:var(--color-text-muted);opacity:0;transition:opacity var(--transition)}.resize-handle:hover svg,.resize-handle.active svg{opacity:1}.viz-chat-sidebar{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;background:var(--color-bg-secondary);border-radius:var(--radius-lg);margin:0 1rem;border:1px solid var(--color-border)}.viz-chat-sidebar .chat-header{display:flex;align-items:center;gap:.75rem;padding:1rem;border-bottom:1px solid var(--color-border);background:var(--color-bg-tertiary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-shrink:0}.viz-chat-sidebar .header-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--color-primary),#8b5cf6);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:#fff}.viz-chat-sidebar .header-text h3{font-size:1rem;font-weight:600;margin:0}.viz-chat-sidebar .header-text p{font-size:.75rem;color:var(--color-text-muted);margin:0}.viz-chat-sidebar .chat-messages{flex:1;min-height:0;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.viz-chat-sidebar .chat-welcome{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1rem;gap:1rem}.viz-chat-sidebar .welcome-icon{width:64px;height:64px;background:var(--color-bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-primary)}.viz-chat-sidebar .chat-welcome p{color:var(--color-text-muted);font-size:.875rem;line-height:1.5}.viz-chat-sidebar .example-prompts{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-top:.5rem}.viz-chat-sidebar .example-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.viz-chat-sidebar .example-prompt{background:var(--color-bg-tertiary);border:1px solid var(--color-border);padding:.5rem .75rem;border-radius:var(--radius);font-size:.8rem;color:var(--color-text);cursor:pointer;transition:all var(--transition);text-align:left}.viz-chat-sidebar .example-prompt:hover{background:var(--color-bg);border-color:var(--color-primary)}.viz-chat-sidebar .chat-message{display:flex;gap:.75rem;align-items:flex-start}.viz-chat-sidebar .chat-message .message-icon{width:28px;height:28px;background:var(--color-bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.viz-chat-sidebar .chat-message.user .message-icon{background:var(--color-primary);color:#fff}.viz-chat-sidebar .chat-message.assistant .message-icon{background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff}.viz-chat-sidebar .chat-message .message-content{flex:1;background:var(--color-bg-tertiary);padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem;line-height:1.5}.viz-chat-sidebar .chat-message.user .message-content{background:var(--color-primary)}.viz-chat-sidebar .chat-message.loading .message-content{display:flex;align-items:center;gap:.5rem;color:var(--color-text-muted)}.viz-chat-sidebar .config-change-indicator{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border);font-size:.75rem;color:var(--color-success)}.viz-chat-sidebar .chat-error{background:#ef44441a;border:1px solid var(--color-error);color:var(--color-error);padding:.75rem;margin:0 1rem;border-radius:var(--radius);font-size:.8rem}.viz-chat-sidebar .chat-input-container{display:flex;gap:.5rem;padding:1rem;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.viz-chat-sidebar .chat-input-container textarea{flex:1;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem;color:var(--color-text);font-size:.875rem;font-family:inherit;resize:none;min-height:44px;max-height:100px}.viz-chat-sidebar .chat-input-container textarea:focus{outline:none;border-color:var(--color-primary)}.viz-chat-sidebar .chat-input-container textarea::placeholder{color:var(--color-text-muted)}.viz-chat-sidebar .send-btn{background:var(--color-primary);border:none;border-radius:var(--radius);padding:.75rem;color:#fff;cursor:pointer;transition:background var(--transition);display:flex;align-items:center;justify-content:center}.viz-chat-sidebar .send-btn:hover:not(:disabled){background:var(--color-primary-hover)}.viz-chat-sidebar .send-btn:disabled{opacity:.5;cursor:not-allowed}.viz-chat-sidebar .chat-footer{padding:.5rem 1rem;text-align:center;border-top:1px solid var(--color-border)}.viz-chat-sidebar .chat-footer p{font-size:.7rem;color:var(--color-text-muted)}.viz-main{flex:1;display:flex;flex-direction:column;padding:1rem;overflow:hidden;min-width:0;min-height:0}.viz-header{display:none;margin-bottom:.75rem}.viz-header h2{font-size:1.25rem;font-weight:600;margin:0}.viz-header p{color:var(--color-text-muted);font-size:.8rem;margin:.25rem 0 0}.chart-config-panel{background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:1rem;flex-shrink:0}.chart-config-panel .panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid transparent}.chart-config-panel .panel-header:hover{background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.chart-config-panel .header-title{display:flex;align-items:center;gap:.5rem;font-weight:500}.chart-config-panel .header-actions{display:flex;align-items:center;gap:.5rem}.chart-config-panel .reset-btn{background:none;border:none;padding:.25rem;color:var(--color-text-muted);cursor:pointer;border-radius:4px}.chart-config-panel .reset-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.chart-config-panel .panel-content{padding:1rem;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:1.5rem}.chart-config-panel .config-section{min-width:200px}.chart-config-panel .config-section h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:.75rem}.chart-config-panel .config-row{margin-bottom:.75rem}.chart-config-panel .config-row label{display:block;font-size:.8rem;color:var(--color-text-muted);margin-bottom:.25rem}.chart-config-panel .config-row select,.chart-config-panel .config-row input{width:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem .75rem;color:var(--color-text);font-size:.85rem}.chart-config-panel .config-row select:focus,.chart-config-panel .config-row input:focus{outline:none;border-color:var(--color-primary)}.chart-config-panel .fund-type-chips{display:flex;flex-wrap:wrap;gap:.5rem}.chart-config-panel .fund-type-chip{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;padding:.35rem .75rem;font-size:.75rem;color:var(--color-text);cursor:pointer;transition:all var(--transition)}.chart-config-panel .fund-type-chip:hover{border-color:var(--color-primary)}.chart-config-panel .fund-type-chip.selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.chart-config-panel .fund-type-chip .count{opacity:.7;margin-left:.25rem}.chart-config-panel .range-inputs{display:flex;align-items:center;gap:.5rem}.chart-config-panel .range-inputs input{width:120px}.chart-config-panel .range-inputs span{color:var(--color-text-muted);font-size:.8rem}.chart-area{flex:1;background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border);display:flex;flex-direction:column;min-height:0;overflow:hidden}.bubble-chart-container{flex:1;display:flex;flex-direction:column;position:relative}.bubble-chart-container .js-plotly-plot{flex:1}.bubble-chart-loading,.bubble-chart-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--color-text-muted)}.bubble-chart-empty .hint{font-size:.8rem;opacity:.7}.chart-stats{padding:.5rem 1rem;background:var(--color-bg-tertiary);font-size:.75rem;color:var(--color-text-muted);text-align:center;border-top:1px solid var(--color-border)}.viz-detail-sidebar{width:320px;min-width:320px;max-width:320px;background:var(--color-bg-secondary);height:100%;overflow:hidden}.viz-detail-sidebar.left{border-right:1px solid var(--color-border);order:-1}.viz-detail-sidebar.right{border-left:1px solid var(--color-border)}.fund-detail-panel{height:100%;display:flex;flex-direction:column}.fund-detail-panel .panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);background:var(--color-bg-tertiary)}.fund-detail-panel .panel-header h3{font-size:1rem;font-weight:600;margin:0}.fund-detail-panel .close-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;border-radius:4px}.fund-detail-panel .close-btn:hover{background:var(--color-bg);color:var(--color-text)}.fund-detail-panel .panel-content{flex:1;padding:1.25rem;overflow-y:auto}.fund-detail-panel .panel-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--color-text-muted)}.fund-detail-panel .detail-section{margin-bottom:1.5rem}.fund-detail-panel .fund-name{font-size:1.1rem;font-weight:600;margin:0 0 .5rem;line-height:1.3}.fund-detail-panel .fund-meta{display:flex;flex-direction:column;gap:.5rem}.fund-detail-panel .series-id{font-size:.75rem;color:var(--color-text-muted);font-family:monospace}.fund-detail-panel .fund-type-tags{display:flex;flex-wrap:wrap;gap:.35rem}.fund-detail-panel .type-tag{background:var(--color-primary);color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:500}.fund-detail-panel .section-header{display:flex;align-items:center;gap:.5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:.5rem}.fund-detail-panel .registrant-name{font-weight:500;margin:0 0 .25rem}.fund-detail-panel .cik{font-size:.8rem;color:var(--color-text-muted);font-family:monospace}.fund-detail-panel .metrics-grid{display:grid;grid-template-columns:1fr;gap:.5rem}.fund-detail-panel .metric-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.fund-detail-panel .metric-label{font-size:.8rem;color:var(--color-text-muted)}.fund-detail-panel .metric-value{font-weight:500;font-size:.875rem}.fund-detail-panel .lending-status{display:flex;flex-wrap:wrap;gap:.5rem}.fund-detail-panel .status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.7rem;font-weight:500}.fund-detail-panel .status-badge.active{background:#22c55e33;color:var(--color-success)}.fund-detail-panel .status-badge.inactive{background:var(--color-bg-tertiary);color:var(--color-text-muted)}.fund-detail-panel .detail-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.fund-detail-panel .action-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--color-primary);color:#fff;padding:.5rem 1rem;border-radius:var(--radius);text-decoration:none;font-size:.85rem;font-weight:500;transition:background var(--transition)}.fund-detail-panel .action-btn:hover{background:var(--color-primary-hover)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite}@media(max-width:1400px){.viz-sidebar{width:260px;min-width:260px;max-width:260px}.viz-detail-sidebar{width:280px;min-width:280px;max-width:280px}.chart-config-panel .panel-content{gap:1rem}.chart-config-panel .config-section{min-width:150px}}@media(max-width:1200px){.viz-sidebar:not(.resizable){width:280px;min-width:280px;max-width:280px}.viz-detail-sidebar{width:260px;min-width:260px;max-width:260px}}@media(max-width:1024px){.visualization-page{flex-direction:column;height:auto;min-height:calc(100vh - 56px - 3rem)}.viz-sidebar{width:100%!important;min-width:100%!important;max-width:100%!important;height:350px;order:2;padding:1rem}.resize-handle{display:none}.viz-chat-sidebar{margin:0}.viz-main{min-height:500px;order:1}.viz-detail-sidebar{width:100%;min-width:100%;max-width:100%;height:auto;max-height:400px;order:0}.viz-detail-sidebar.left,.viz-detail-sidebar.right{border-left:none;border-right:none;border-bottom:1px solid var(--color-border)}}.fund-selector{width:100%}.selected-funds{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.fund-chip{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem .35rem .75rem;border-radius:20px;border:1px solid;font-size:.8rem;background:var(--color-bg)}.fund-color-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.fund-chip-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fund-chip-remove{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:.15rem;cursor:pointer;color:var(--color-text-muted);border-radius:50%;transition:all var(--transition)}.fund-chip-remove:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.fund-search-container{position:relative;flex:1;min-width:200px}.fund-search-input-wrapper{position:relative;display:flex;align-items:center}.fund-search-input-wrapper .search-icon{position:absolute;left:.75rem;color:var(--color-text-muted)}.fund-search-input-wrapper .add-icon{position:absolute;right:.75rem;color:var(--color-text-muted)}.fund-search-input{width:100%;padding:.5rem 2.25rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.85rem;transition:border-color var(--transition)}.fund-search-input:focus{outline:none;border-color:var(--color-primary)}.fund-search-input::placeholder{color:var(--color-text-muted)}.fund-search-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);max-height:300px;overflow-y:auto;z-index:50}.fund-search-result{width:100%;display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;background:none;border:none;color:var(--color-text);text-align:left;cursor:pointer;transition:background var(--transition)}.fund-search-result:hover{background:var(--color-bg-tertiary)}.fund-search-result .result-icon{color:var(--color-text-muted);margin-top:.15rem;flex-shrink:0}.fund-search-result .result-content{flex:1;min-width:0}.fund-search-result .result-name{font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fund-search-result .result-meta{font-size:.75rem;color:var(--color-text-muted);margin-top:.15rem;display:flex;flex-wrap:wrap;gap:.25rem}.fund-search-result .result-meta .separator{color:var(--color-border)}.fund-search-empty{padding:1rem;text-align:center;color:var(--color-text-muted);font-size:.85rem}.fund-search-error{padding:1rem;text-align:center;color:var(--color-error);font-size:.85rem;background:#ef44441a}.fund-limit-message{margin-top:.5rem;font-size:.75rem;color:var(--color-text-muted)}.viz-mode-selector{display:flex;gap:.25rem;padding:.25rem;background:var(--color-bg-tertiary);border-radius:var(--radius);margin-bottom:1rem}.viz-mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:none;border:none;border-radius:calc(var(--radius) - 2px);color:var(--color-text-muted);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.viz-mode-btn:hover{color:var(--color-text)}.viz-mode-btn.active{background:var(--color-primary);color:#fff}.portfolio-config-panel{background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:1rem;flex-shrink:0}.portfolio-config-panel .panel-section{padding:1rem;border-bottom:1px solid var(--color-border)}.portfolio-config-panel .panel-section:last-child{border-bottom:none}.portfolio-config-panel .section-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:.75rem}.portfolio-config-panel .chart-options{display:flex;flex-wrap:wrap;gap:1rem}.portfolio-config-panel .config-field{min-width:150px;flex:1}.portfolio-config-panel .config-field label{display:block;font-size:.8rem;color:var(--color-text-muted);margin-bottom:.25rem}.portfolio-config-panel .config-field select{width:100%;padding:.5rem .75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.85rem}.portfolio-config-panel .config-field select:focus{outline:none;border-color:var(--color-primary)}.portfolio-config-panel .chart-type-selector{min-width:180px}.chart-type-buttons{display:flex;gap:.5rem}.chart-type-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all var(--transition)}.chart-type-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.chart-type-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.chart-type-btn svg{flex-shrink:0}.emma-panel{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin:2rem 0}.emma-panel.loading,.emma-panel.not-municipal{display:flex;align-items:center;gap:.75rem;color:var(--color-text-muted);font-size:.9rem}.emma-panel .spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.emma-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.emma-header h2{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:600}.emma-actions{display:flex;gap:.5rem;flex-wrap:wrap}.emma-warning{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#f59e0b1a;border:1px solid var(--color-warning);border-radius:var(--radius);margin-bottom:1.5rem;color:var(--color-warning);font-size:.9rem;flex-wrap:wrap}.emma-warning .btn{margin-left:auto}.emma-loading,.emma-empty{text-align:center;padding:2rem;color:var(--color-text-muted)}.emma-empty .btn,.tnc-display{margin-top:1rem}.tnc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.tnc-field{padding:.75rem;background:var(--color-bg-tertiary);border-radius:var(--radius)}.tnc-field label{display:flex;align-items:center;gap:.35rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:.35rem}.tnc-field .value{font-size:.95rem;font-weight:500;color:var(--color-text)}.tnc-field .value.tag{display:inline-block;padding:.2rem .5rem;background:var(--color-primary);border-radius:4px;font-size:.8rem}.tnc-field .value.highlight{color:var(--color-success);font-size:1.1rem}.tnc-ratings{margin-top:1.5rem;padding:1rem;background:var(--color-bg-tertiary);border-radius:var(--radius)}.tnc-ratings>label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:.75rem}.ratings-list{display:flex;gap:.75rem;flex-wrap:wrap}.rating-badge{display:flex;align-items:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.rating-badge .agency{padding:.35rem .6rem;font-size:.7rem;font-weight:600;background:var(--color-bg-tertiary);color:var(--color-text-muted)}.rating-badge .rating{padding:.35rem .6rem;font-size:.85rem;font-weight:600;color:var(--color-success)}.tnc-enhancement{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.emma-trades-section{margin-top:1.5rem;border-top:1px solid var(--color-border);padding-top:1rem}.trades-toggle{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;width:100%;background:var(--color-bg-tertiary);border:none;border-radius:var(--radius);color:var(--color-text);font-size:.95rem;font-weight:500;cursor:pointer;transition:background var(--transition)}.trades-toggle:hover{background:var(--color-border)}.trades-toggle svg:last-child{margin-left:auto}.trades-content{margin-top:1rem}.trades-table{width:100%;border-collapse:collapse;font-size:.85rem}.trades-table th,.trades-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--color-border)}.trades-table th{font-weight:600;color:var(--color-text-muted);text-transform:uppercase;font-size:.7rem;letter-spacing:.5px}.trades-table tbody tr:hover{background:var(--color-bg-tertiary)}.no-trades{text-align:center;padding:1.5rem;color:var(--color-text-muted)}.manual-entry-form{margin-top:1.5rem;padding:1.5rem;background:var(--color-bg-tertiary);border-radius:var(--radius)}.manual-entry-form h3{font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.manual-entry-form .form-help{color:var(--color-text-muted);font-size:.9rem;margin-bottom:1.5rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.form-field{display:flex;flex-direction:column;gap:.35rem}.form-field label{font-size:.8rem;font-weight:500;color:var(--color-text-muted)}.form-field input,.form-field select{padding:.6rem .75rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.9rem}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--color-primary)}.form-field select{cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:.75rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border:none;border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition);text-decoration:none}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text)}.btn-secondary:hover{background:var(--color-border)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-outline:hover{background:var(--color-bg-tertiary);border-color:var(--color-primary)}.session-status-banner{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem;border-radius:var(--radius);margin-bottom:1.5rem}.session-status-banner.session-progress{background:#3b82f61a;border:1px solid var(--color-primary)}.session-status-banner.session-success{background:#22c55e1a;border:1px solid var(--color-success)}.session-status-banner.session-error{background:#ef44441a;border:1px solid var(--color-error)}.session-status-content{display:flex;align-items:flex-start;gap:.75rem;flex:1}.session-status-content>svg{flex-shrink:0;margin-top:.1rem}.session-progress .session-status-content>svg{color:var(--color-primary)}.session-success .session-status-content>svg{color:var(--color-success)}.session-error .session-status-content>svg{color:var(--color-error)}.session-status-text{display:flex;flex-direction:column;gap:.25rem}.session-status-text strong{font-size:.9rem}.session-status-text p{font-size:.85rem;color:var(--color-text-muted);margin:0}.session-hint{font-style:italic}.session-dismiss{padding:.35rem .75rem;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all var(--transition)}.session-dismiss:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.session-docs-summary{font-size:.8rem;color:var(--color-success);font-weight:500}.emma-documents-section{margin-top:1rem;border-top:1px solid var(--color-border);padding-top:1rem}.documents-content{margin-top:1rem}.documents-list{display:flex;flex-direction:column;gap:.75rem}.document-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--color-bg-tertiary);border-radius:var(--radius)}.document-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-bg-secondary);border-radius:var(--radius);color:var(--color-primary)}.document-info{flex:1;min-width:0}.document-info h4{font-size:.9rem;font-weight:500;margin-bottom:.35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:var(--color-text-muted)}.doc-type-badge{padding:.15rem .5rem;background:var(--color-primary);color:#fff;border-radius:4px;font-weight:500}.doc-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--color-primary);color:#fff;border-radius:10px;font-size:.75rem;font-weight:600;margin-left:.5rem}.no-documents{text-align:center;padding:1.5rem;color:var(--color-text-muted);font-size:.9rem}.emma-empty-actions{display:flex;gap:.75rem;justify-content:center;margin-top:1rem}.municipal-browser-page{display:flex;flex-direction:column;gap:1.5rem}.municipal-browser-page .header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.viz-link-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-primary);color:#fff;border-radius:var(--radius);font-size:.875rem;font-weight:500;text-decoration:none;transition:all var(--transition)}.viz-link-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.municipal-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.stat-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius)}.stat-card svg{color:var(--color-primary);flex-shrink:0}.stat-content{display:flex;flex-direction:column}.stat-value{font-size:1.25rem;font-weight:600;color:var(--color-text)}.stat-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.025em}.view-mode-tabs{display:flex;gap:.5rem;padding:.25rem;background:var(--color-bg-secondary);border-radius:var(--radius);width:fit-content}.tab-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:none;border-radius:calc(var(--radius) - 2px);color:var(--color-text-muted);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.tab-button:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.tab-button.active{background:var(--color-primary);color:#fff}.municipal-browser-controls{display:flex;flex-direction:column;gap:1rem}.municipal-search{max-width:500px}.filter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--color-text-muted);white-space:nowrap}.filter-group select{padding:.375rem .75rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.8rem;min-width:120px;max-width:200px}.filter-group select:focus{outline:none;border-color:var(--color-primary)}.export-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.875rem;cursor:pointer;transition:all var(--transition)}.export-button:hover{background:var(--color-bg-tertiary);border-color:var(--color-primary)}.municipal-content{display:flex;flex-direction:column;gap:1rem}.results-summary{font-size:.875rem;color:var(--color-text-muted)}.municipal-table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius)}.municipal-table{width:100%;border-collapse:collapse;font-size:.8rem}.municipal-table th{padding:.75rem 1rem;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);text-align:left;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.municipal-table td{padding:.65rem 1rem;border-bottom:1px solid var(--color-border);color:var(--color-text)}.municipal-table tbody tr:last-child td{border-bottom:none}.municipal-table tbody tr:hover{background:var(--color-bg-tertiary)}.cdiac-cell a,.issuer-cell a{color:var(--color-primary);text-decoration:none}.cdiac-cell a:hover,.issuer-cell a:hover{text-decoration:underline}.amount-cell{font-family:var(--font-mono);font-size:.75rem;text-align:right;white-space:nowrap}.count-cell{font-family:var(--font-mono);text-align:center}.cusip-cell code{font-family:var(--font-mono);font-size:.7rem;padding:.15rem .35rem;background:var(--color-bg-tertiary);border-radius:3px}.no-cusip{color:var(--color-text-muted)}.rating-cell{font-weight:500}.detail-link{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--color-text-muted);border-radius:var(--radius);transition:all var(--transition)}.detail-link:hover{background:var(--color-primary);color:#fff}.municipal-detail-page{display:flex;flex-direction:column;gap:1.5rem}.municipal-detail-page .header-content{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.bond-badges{display:flex;gap:.5rem}.badge{padding:.25rem .5rem;font-size:.7rem;font-weight:600;border-radius:4px;text-transform:uppercase}.badge.sold{background:var(--color-success);color:#fff}.badge.pending,.badge.withdrawn{background:var(--color-warning);color:#fff}.badge.cusip{background:var(--color-bg-tertiary);color:var(--color-text);font-family:var(--font-mono);font-size:.7rem;text-transform:none}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem}.detail-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.detail-section h2{display:flex;align-items:center;gap:.5rem;font-size:1rem;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border);color:var(--color-text)}.detail-section h2 svg{color:var(--color-primary)}.detail-fields{display:flex;flex-direction:column;gap:.75rem}.detail-fields .field{display:flex;flex-direction:column;gap:.25rem}.detail-fields .field label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.025em}.detail-fields .field span{font-size:.9rem;color:var(--color-text)}.detail-fields .field span.amount{font-size:1.1rem;font-weight:600;color:var(--color-primary)}.detail-fields .field span.identifier{font-family:var(--font-mono);font-size:.85rem}.ratings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.rating-field{text-align:center}.rating-field .rating{font-size:1.1rem;font-weight:700;color:var(--color-text)}.cusip-list{display:flex;flex-wrap:wrap;gap:.35rem}.cusip-tag{font-family:var(--font-mono);font-size:.7rem;padding:.2rem .4rem;background:var(--color-bg-tertiary);border-radius:3px}.more-count{font-size:.75rem;color:var(--color-text-muted);padding:.2rem .4rem}.asset-list{display:flex;flex-wrap:wrap;gap:.35rem}.asset-link{font-family:var(--font-mono);font-size:.7rem;padding:.2rem .5rem;background:var(--color-primary);color:#fff;border-radius:3px;text-decoration:none;transition:all var(--transition)}.asset-link:hover{background:var(--color-primary-hover)}.external-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--color-primary);font-size:.875rem;text-decoration:none}.external-link:hover{text-decoration:underline}.municipal-viz-page{display:flex;flex-direction:column;gap:1.5rem}.viz-controls{display:flex;align-items:center;gap:1rem}.metric-toggle{display:flex;align-items:center;gap:.5rem;padding:.25rem;background:var(--color-bg-secondary);border-radius:var(--radius)}.toggle-label{font-size:.875rem;color:var(--color-text-muted);padding-left:.5rem}.toggle-btn{display:flex;align-items:center;gap:.35rem;padding:.5rem .75rem;background:transparent;border:none;border-radius:calc(var(--radius) - 2px);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all var(--transition)}.toggle-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.toggle-btn.active{background:var(--color-primary);color:#fff}.viz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.viz-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.viz-section h2{display:flex;align-items:center;font-size:1rem;margin:0 0 1rem;color:var(--color-text)}.viz-section-wide,.viz-section-tall{grid-column:1 / -1}.chart-wrapper{width:100%;min-height:300px}.municipal-chart-container{width:100%;height:100%}.municipal-chart-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--color-text-muted)}.municipal-chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--color-text-muted);text-align:center}@media(max-width:900px){.viz-grid,.detail-grid,.ratings-grid{grid-template-columns:1fr}.municipal-browser-page .header-row{flex-direction:column;align-items:flex-start}}
