.header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 10px #0000001a;padding:1rem 0;position:sticky;top:0;z-index:100}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:0 2rem}.logo{display:flex;align-items:center;gap:.75rem;font-size:2rem;font-weight:700;color:#17a2b8;margin:0;text-decoration:none;cursor:pointer;transition:opacity .2s}.logo:hover{opacity:.8}.logo img{height:1.5em;width:auto}.header-actions{display:flex;gap:1rem;align-items:center}.user-email{color:#666;font-size:.9rem}.btn{padding:.6rem 1.5rem;border-radius:6px;font-weight:600;font-size:.95rem;transition:all .3s;text-decoration:none;display:inline-block}.btn-primary{background:#17a2b8;color:#fff}.btn-primary:hover{background:#138496;transform:translateY(-2px)}.btn-secondary{background:#f0f0f0;color:#333}.btn-secondary:hover{background:#e0e0e0}.btn-success{background:#2ecc71;color:#fff}.btn-success:hover{background:#27ae60;transform:translateY(-2px)}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.fund-table{width:100%;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.fund-table thead{background:#f8f9fa}.fund-table th{padding:1rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0}.fund-table td{padding:1rem;border-bottom:1px solid #f0f0f0}.fund-row{cursor:pointer;transition:background .2s}.fund-row:hover{background:#f8f9fa}.fund-description{font-size:.85rem;color:#666;font-weight:400;margin-top:.25rem;font-style:italic}.positive{color:#17a2b8}.negative{color:#8b0000}.vote-cell{display:flex;align-items:center;gap:.5rem}.vote-btn{padding:.3rem .6rem;background:#fff;border:2px solid #e0e0e0;border-radius:4px;font-size:1rem;transition:all .2s;cursor:pointer}.vote-btn.upvote{color:#17a2b8;border-color:#17a2b8}.vote-btn.downvote{color:#e74c3c;border-color:#e74c3c}.vote-btn:hover{transform:scale(1.1)}.vote-btn.active.upvote{background:#17a2b8;color:#fff;border-color:#138496;font-weight:700}.vote-btn.active.downvote{background:#e74c3c;color:#fff;border-color:#c0392b;font-weight:700}.vote-count{font-weight:600;min-width:30px;text-align:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:2rem;border-radius:12px;width:90%;max-width:400px;box-shadow:0 10px 40px #0003}.modal-content.large{max-width:600px}.modal-content h2{margin-bottom:1.5rem;color:#333}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#555}.form-group input{width:100%;padding:.8rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem}.form-group input:focus{outline:none;border-color:#17a2b8}.error-message{padding:.8rem;background:#fee;color:#c33;border-radius:6px;margin:1rem 0}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem;justify-content:flex-end}.success-icon{width:60px;height:60px;border-radius:50%;background:#4caf50;color:#fff;font-size:36px;line-height:60px;margin:0 auto 1rem;text-align:center}.modal-content p{margin:.5rem 0;color:#666;line-height:1.6}.modal-content p strong{color:#333}.password-requirements{margin-top:.75rem;padding:.75rem;background:#f8f9fa;border-radius:6px;border:1px solid #e9ecef}.requirement{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#6c757d;margin:.25rem 0;transition:color .2s ease}.requirement.met{color:#28a745}.requirement .icon{font-weight:700;font-size:1rem;width:18px;display:inline-block}.holdings-editor{display:flex;flex-direction:column;gap:.75rem}.form-group small{font-size:.8rem;color:#999;margin-top:.25rem;display:block}.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;font-family:inherit;resize:vertical;line-height:1.5}.holding-row{display:flex;gap:.5rem;align-items:flex-start}.ticker-input-wrapper{position:relative;flex:1}.holding-row input[type=text],.holding-row input[type=number]{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.holding-row input[type=number]{max-width:120px}.btn-small{padding:.5rem .75rem;font-size:.9rem}.btn-danger{background:#e74c3c;color:#fff;border:none}.btn-danger:hover:not(:disabled){background:#c0392b}.btn-danger:disabled{background:#ccc;cursor:not-allowed}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 4px 8px #0000001a}.autocomplete-item{padding:.5rem;cursor:pointer;transition:background .2s;font-size:.9rem}.autocomplete-item:hover{background:#f0f0f0}.autocomplete-item strong{color:#17a2b8}.total-weight{margin-top:.5rem;padding:.75rem;background:#f8f9fa;border-radius:4px;font-weight:600}.weight-error{color:#e74c3c}.modal-content.large{max-width:600px;max-height:80vh;overflow-y:auto}.rankings-page{min-height:100vh;padding-bottom:2rem}.filters-bar{display:flex;align-items:center;gap:1rem;background:#fff;padding:1rem;border-radius:8px;margin:2rem 0;box-shadow:0 2px 8px #0000001a}.filter-group{display:flex;gap:.5rem}.filter-separator{width:2px;height:40px;background:#e0e0e0;border-radius:1px}.tab{padding:.8rem 1.5rem;background:#f5f5f5;border:none;border-radius:6px;font-weight:600;color:#666;transition:all .2s}.tab:hover{background:#e0e0e0}.tab.active{background:#17a2b8;color:#fff}.loading{text-align:center;padding:4rem;color:#fff;font-size:1.2rem}.fund-chart{background:#fff;padding:2rem;border-radius:8px;margin:2rem 0;box-shadow:0 2px 8px #0000001a}.fund-chart h2{margin-bottom:1.5rem;color:#333}.chart-container{height:400px;position:relative}.vote-section{background:#f0f8fb;padding:2rem;border-radius:8px;border:2px solid #17a2b8;text-align:center;margin:2rem 0}.vote-section h3{color:#1a5f7a;margin-bottom:1rem}.vote-buttons-large{display:flex;align-items:center;justify-content:center;gap:1.5rem}.vote-btn-large{background:#fff;border:3px solid #e0e0e0;border-radius:8px;padding:1rem 2rem;font-size:2rem;transition:all .3s;min-width:80px}.vote-btn-large:hover:not(:disabled){transform:scale(1.1)}.vote-btn-large.active.upvote{background:#2ecc71;color:#fff;border-color:#27ae60}.vote-btn-large.active.downvote{background:#e74c3c;color:#fff;border-color:#c0392b}.vote-count-large{font-size:2.5rem;font-weight:700;color:#1a5f7a;min-width:100px}.vote-count-large.positive{color:#2ecc71}.vote-count-large.negative{color:#e74c3c}.vote-stats{display:flex;justify-content:center;gap:1rem;margin-top:1rem;color:#666}.vote-hint{margin-top:1rem;color:#999;font-style:italic}.comments-section{margin-top:3rem;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.comments-section h2{margin-bottom:1.5rem;color:#333}.comment-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:2px solid #f0f0f0}.comment-form textarea{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;font-family:inherit;resize:vertical;transition:border-color .2s}.comment-form textarea:focus{outline:none;border-color:#17a2b8}.comment-form textarea:disabled{background:#f5f5f5;cursor:not-allowed}.comment-form button{align-self:flex-end}.comments-list{display:flex;flex-direction:column;gap:1.5rem}.no-comments{text-align:center;color:#999;padding:2rem;font-style:italic}.comment{padding:1rem;background:#f8f9fa;border-radius:6px;border-left:3px solid #17a2b8}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.comment-author{font-weight:600;color:#17a2b8;font-size:.9rem}.comment-time{font-size:.8rem;color:#999}.comment-text{color:#333;line-height:1.5;margin:0;white-space:pre-wrap;word-break:break-word}.fund-detail-page{min-height:100vh;padding-bottom:2rem}.back-button{background:#fff;color:#667eea;padding:.8rem 1.5rem;border-radius:6px;border:2px solid #667eea;font-weight:600;margin:2rem 0;transition:all .2s}.back-button:hover{background:#17a2b8;color:#fff}.fund-header{background:#fff;padding:2rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.fund-header h1{margin-bottom:.5rem;color:#333}.fund-meta{color:#666}.performance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin:2rem 0}.metric{background:#fff;padding:1.5rem;border-radius:8px;text-align:center;box-shadow:0 2px 8px #0000001a}.metric .label{display:block;color:#666;font-size:.9rem;margin-bottom:.5rem}.metric .value{display:block;font-size:1.8rem;font-weight:700}.holdings-section{background:#fff;padding:2rem;border-radius:8px;margin:2rem 0;box-shadow:0 2px 8px #0000001a}.holdings-section h2{margin-bottom:1.5rem;color:#333}.due-diligence-section{margin-top:3rem;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.due-diligence-section h2{margin-bottom:1.5rem;color:#17a2b8}.due-diligence-content{line-height:1.8;color:#333;white-space:pre-wrap;word-break:break-word;font-size:1rem}.holdings-table{width:100%;border-collapse:collapse}.holdings-table th,.holdings-table td{padding:1rem;text-align:left;border-bottom:1px solid #f0f0f0}.holdings-table th{background:#f8f9fa;font-weight:600}.error{text-align:center;padding:4rem;color:#fff;font-size:1.5rem}.verify-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#17a2b8,#138496)}.verify-container{background:#fff;padding:3rem;border-radius:12px;box-shadow:0 8px 32px #0000001a;text-align:center;max-width:500px;width:90%}.verify-container h2{margin:1rem 0;color:#333}.verify-container p{color:#666;margin:.5rem 0}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #17a2b8;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.success-icon{width:80px;height:80px;border-radius:50%;background:#4caf50;color:#fff;font-size:48px;line-height:80px;margin:0 auto 1rem}.error-icon{width:80px;height:80px;border-radius:50%;background:#f44336;color:#fff;font-size:48px;line-height:80px;margin:0 auto 1rem}.verify-container .error-message{color:#d32f2f;margin:1rem 0}.verify-container .btn{margin-top:2rem;padding:.75rem 2rem;font-size:1rem}*{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,#17a2b8,#138496);min-height:100vh}#root{min-height:100vh}button{cursor:pointer;border:none;outline:none}button:disabled{cursor:not-allowed;opacity:.6}
