.toast-stack{position:fixed;bottom:1.5rem;right:1.5rem;z-index:1000;display:flex;flex-direction:column;gap:.625rem;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.75rem;min-width:280px;max-width:380px;padding:.75rem .875rem;border-radius:var(--radius-md, 8px);box-shadow:0 4px 16px #0000002e,0 1px 4px #0000001f;color:#fff;pointer-events:all;animation:toast-slide-in .22s cubic-bezier(.34,1.56,.64,1) both;word-break:break-word}.toast--success{background:#2e7d32;border-left:4px solid #1b5e20}.toast--error{background:#c62828;border-left:4px solid #8b1a1a}.toast--info{background:#00838f;border-left:4px solid #006064}.toast__icon{flex-shrink:0;width:1.375rem;height:1.375rem;border-radius:50%;background:#ffffff38;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;line-height:1;margin-top:.05rem}.toast__body{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.toast__label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.85;line-height:1}.toast__message{font-size:.875rem;line-height:1.4;opacity:.97}.toast__dismiss{flex-shrink:0;background:none;border:none;color:#ffffffb3;cursor:pointer;padding:0;font-size:.75rem;line-height:1;margin-top:.1rem;transition:color .15s ease;outline:none}.toast__dismiss:hover{color:#fff}.toast__dismiss:focus-visible{outline:2px solid rgba(255,255,255,.7);border-radius:2px}@keyframes toast-slide-in{0%{opacity:0;transform:translate(calc(100% + 1.5rem))}to{opacity:1;transform:translate(0)}}html.dark .toast--success{background:#1b5e20;border-left-color:#0a3d0f}html.dark .toast--error{background:#8b1a1a;border-left-color:#5c0f0f}html.dark .toast--info{background:#006064;border-left-color:#004044}html.dark .toast{box-shadow:0 4px 20px #00000073,0 1px 6px #0000004d}@media(max-width:480px){.toast-stack{bottom:1rem;right:1rem;left:1rem}.toast{min-width:0;max-width:100%}}html.dark{--color-surface: #23262a;--filter-input-bg: #2d3035;--color-text: #e1e3e5;--color-text-muted: #9aa0a6;--color-text-dark: #f0f1f2;--color-text-secondary: #9aa0a6;--color-text-muted-dark: #9aa0a6;--color-text-body: #c4c8cc;--color-label: #b0b6bc;--color-border: #3d4147;--color-border-medium: #2d3035;--color-border-light: #2d3035;--color-bg-light: #1e2124;--color-teal-bg: #0a2a2e;--color-teal-bg-light: #0d2f33;--color-error: #ff6b6b;--color-error-dark: #ff4444;--color-warning-bg: #2a2000;--color-warning-text: #f0c060;--color-warning-border: #6a5000}:root{--color-primary: #0066cc;--color-success: #4CAF50;--color-danger: #d32f2f;--color-text: #333;--color-text-muted: #999;--color-text-dark: #212529;--color-text-secondary: #666;--color-text-muted-dark: #6c757d;--color-text-body: #495057;--color-label: #555;--color-border: #ccc;--color-positive: #2e7d32;--color-negative: #d32f2f;--color-teal: #17a2b8;--color-teal-dark: #138496;--color-teal-bg: #e7f5f7;--color-teal-bg-light: #f1f8f9;--color-border-medium: #dee2e6;--color-border-light: #e9ecef;--color-bg-light: #f8f9fa;--color-error: #e74c3c;--color-error-dark: #c0392b;--color-chart-positive: #02a7b4;--color-surface: #ffffff;--color-chart-negative: #71001a;--color-warning-bg: #fff3cd;--color-warning-text: #856404;--color-warning-border: #ffc107;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--z-sticky: 10;--z-header: 100;--z-modal: 1000}.vote-btn{background:var(--color-surface);border:2px solid #e0e0e0;border-radius:var(--radius-sm);font-size:.9rem;transition:all .2s;cursor:pointer;flex-shrink:0}.vote-btn.upvote{color:var(--color-teal);border-color:var(--color-teal)}.vote-btn.downvote{color:var(--color-error);border-color:var(--color-error)}.vote-btn:hover:not(:disabled){transform:scale(1.1)}.vote-btn.active.upvote{background:var(--color-teal);color:#fff;border-color:var(--color-teal-dark);font-weight:700}.vote-btn.active.downvote{background:var(--color-error);color:#fff;border-color:var(--color-error-dark);font-weight:700}.vote-btn:disabled{cursor:not-allowed;opacity:.5}.vote-count{font-weight:600;font-size:.9rem;min-width:auto;line-height:1}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.modal-content{background:var(--color-surface);padding:2rem;border-radius:var(--radius-lg);width:90%;max-width:400px;box-shadow:0 10px 40px #0003}.modal-content.large{max-width:600px;max-height:80vh;overflow-y:auto}.modal-content h2{margin-bottom:1.5rem;color:var(--color-text)}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem;justify-content:flex-end}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--color-label)}.form-group input{width:100%;padding:.8rem;border:2px solid var(--color-border-medium);border-radius:6px;font-size:1rem}.form-group input:focus{outline:none;border-color:var(--color-teal)}.error-message{padding:.8rem;background:var(--color-error-bg, #fee);color:#c33;border-radius:6px;margin:1rem 0}.error-boundary-container{padding:2rem;text-align:center;max-width:600px;margin:4rem auto}.error-boundary-container p{color:var(--color-text-secondary);margin-bottom:1rem}.error-boundary-refresh-btn{padding:.75rem 1.5rem;background:var(--color-teal);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem}.error-boundary-details{margin-top:2rem;text-align:left}.error-boundary-details summary{cursor:pointer;color:var(--color-text-secondary)}.error-boundary-details pre{background:var(--color-bg-light);padding:1rem;border-radius:var(--radius-sm);overflow:auto;font-size:.875rem}.loading-spinner-fullpage{display:flex;justify-content:center;align-items:center;height:100vh}.loading-spinner-ring{width:48px;height:48px;border:4px solid var(--color-border, #e0e0e0);border-top:4px solid var(--color-teal);border-radius:50%;animation:loading-spinner-spin 1s linear infinite}@keyframes loading-spinner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:640px){.modal-content{padding:1.5rem;width:95%}.modal-actions{flex-direction:column}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,var(--color-teal) 0%,var(--color-teal-dark) 100%);min-height:100vh}#root{min-height:100vh}button{cursor:pointer;border:none}button:focus:not(:focus-visible){outline:none}button:focus-visible{outline:2px solid var(--color-primary, #2563eb);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.6}::placeholder{color:var(--color-text-secondary);opacity:.7}html.dark body{background:linear-gradient(135deg,#0d1f24,#0a1619)}html.dark .fund-table-container,html.dark .fund-header,html.dark .holdings-section,html.dark .fund-table-header{background:#1a1d21;border-color:#2d3035}html.dark .negative{color:var(--color-error)}html.dark .period-stat.positive,html.dark .risk-metric.positive{background:#0d2f1a;border-color:#1a5c30}html.dark .period-stat.negative,html.dark .risk-metric.negative{background:#2a1010;border-color:#5c1a1a}html.dark .fund-row{border-color:#2d3035}html.dark .fund-row:hover,html.dark .fund-row.selected{background:#22262b}html.dark .modal-content,html.dark .modal-content.large{background:#1a1d21;color:var(--color-text);border:1px solid #2d3035}html.dark .modal-overlay{background:#000000bf}html.dark input,html.dark select,html.dark textarea{background:#22262b;color:var(--color-text);border-color:#3d4147}html.dark input:focus,html.dark select:focus,html.dark textarea:focus{border-color:var(--color-teal)}html.dark .skeleton-cell{background:linear-gradient(90deg,#2a2d31 25%,#22262b,#2a2d31 75%);background-size:800px 100%}html.dark .header{background:#16191df7;border-bottom:1px solid #2d3035}html.dark .mobile-menu{background:#1a1d21;border-color:#2d3035}html.dark .header-filters{background:#22262b;border-color:#3d4147}html.dark .header-filters .tab{color:var(--color-teal)}html.dark .header-filters .tab:hover{background:#2d3035}html.dark .btn-secondary{background:#2d3035;color:var(--color-text)}html.dark .btn-secondary:hover{background:#3d4147}html.dark .vote-btn{background:#22262b;border-color:#3d4147}html.dark .filters-bar{background:#1a1d21;box-shadow:0 2px 8px #0006}html.dark .tab{background:#22262b;color:var(--color-text-secondary)}html.dark .tab:hover{background:#2d3035}html.dark .filter-separator{background:#3d4147}html.dark .stale-data-banner{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning-text)}html.dark .error-message{background:#3a1a1a;color:var(--color-error)}html.dark .fund-detail-page,html.dark .fund-detail-page main{color:var(--color-text)}html.dark .fund-meta-footer{color:var(--color-text-secondary)}html.dark .copy-link-btn{background:#22262b;border-color:#3d4147;color:var(--color-text-secondary)}html.dark .copy-link-btn:hover{background:#2d3035;color:var(--color-text)}html.dark .compare-search-panel{background:#1a1d21;border-color:#2d3035}html.dark .compare-result-item{background:#22262b;border-color:#2d3035;color:var(--color-text)}html.dark .compare-result-item:hover{background:#2d3035}html.dark .compare-active{background:#22262b;border-color:#3d4147;color:var(--color-text)}html.dark .compare-no-results{color:var(--color-text-secondary)}html.dark .creator-page main,html.dark .creator-fund-card{background:#1a1d21;border-color:#2d3035}html.dark .creator-fund-card:hover{background:#22262b}html.dark .pending-fund-card,html.dark .comments-section{background:#1a1d21;border-color:#2d3035}html.dark .comment-item{border-color:#2d3035}html.dark .fund-age-notice{background:#1e2540;border-color:#2d3a60;color:#8ab4f8}html.dark .hero-title{color:#f0f2f4}html.dark .hero-tagline{color:#e1e3e5cc}html.dark .hero-stats{color:#e1e3e580}html.dark .ticker-expand-panel{background:#22262b;border-color:#2d3035}html.dark .theme-toggle{border-color:#3d4147;color:var(--color-text-secondary)}html.dark .theme-toggle:hover{border-color:var(--color-teal);background:#22262b}.tab:active{transform:translateZ(0)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img{content-visibility:auto}
