*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary:#0f0f1a;--bg-secondary:#1a1a2e;--bg-card:#252540;--text-primary:#fff;--text-secondary:#a0a0b0;--accent:#6c5ce7;--up-color:#ff6b6b;--down-color:#51cf66;--border-radius:16px;--shadow:0 8px 32px rgba(0,0,0,.3)}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);min-height:100vh;color:var(--text-primary)}.container{max-width:800px;margin:0 auto;padding:40px 20px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px;flex-wrap:wrap;gap:20px}.header-main{text-align:left}.header-main h1{font-size:2.5rem;background:linear-gradient(135deg,#a29bfe,#6c5ce7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}.header-main p{color:var(--text-secondary);font-size:1rem}.source-selector{display:flex;align-items:center;gap:10px;background:var(--bg-card);padding:12px 16px;border-radius:12px}.source-selector label{color:var(--text-secondary);font-size:.85rem}.source-selector select{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--accent);padding:8px 12px;border-radius:8px;font-size:.9rem;cursor:pointer;outline:none}.source-selector select:hover{border-color:#a29bfe}.source-selector select:disabled{opacity:.6;cursor:not-allowed}.current-source{font-size:.75rem;color:var(--down-color);background:rgba(81,207,102,.1);padding:4px 8px;border-radius:6px}.add-fund-form{display:flex;gap:12px;margin-bottom:30px;background:var(--bg-card);padding:20px;border-radius:var(--border-radius);box-shadow:var(--shadow)}.add-fund-form input{flex:1 1;padding:14px 20px;border:2px solid transparent;border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem;outline:none;transition:all .3s ease}.add-fund-form input:focus{border-color:var(--accent);background:var(--bg-primary)}.add-fund-form input::placeholder{color:var(--text-secondary)}.add-fund-form button{padding:14px 28px;background:linear-gradient(135deg,#a29bfe,#6c5ce7);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.add-fund-form button:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(108,92,231,.4)}.add-fund-form button:disabled{opacity:.6;cursor:not-allowed;transform:none}.fund-list{display:flex;flex-direction:column;gap:16px}.fund-card{background:var(--bg-card);border-radius:var(--border-radius);padding:24px;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;transition:all .3s ease;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fund-card:hover{transform:translateX(5px);box-shadow:0 12px 40px rgba(0,0,0,.4)}.fund-info{flex:1 1}.fund-name{font-size:1.2rem;font-weight:600;margin-bottom:4px}.fund-code{color:var(--text-secondary);font-size:.9rem}.fund-values{text-align:center;padding:0 30px}.fund-nav{font-size:.85rem;color:var(--text-secondary);margin-bottom:4px}.fund-nav .date-label{font-size:.75rem;opacity:.7}.fund-estimate{font-size:1.1rem;font-weight:600}.fund-scale{font-size:.8rem;color:var(--text-secondary);margin-top:4px}.fund-change{text-align:right;min-width:100px}.change-value{font-size:1.8rem;font-weight:700}.change-value.up{color:var(--up-color)}.change-value.down{color:var(--down-color)}.update-time{font-size:.75rem;margin-top:4px}.delete-btn,.update-time{color:var(--text-secondary)}.delete-btn{background:transparent;border:none;font-size:1.2rem;cursor:pointer;padding:10px 12px;margin-left:16px;border-radius:8px;transition:all .2s ease;opacity:.6}.fund-card:hover .delete-btn{opacity:1}.delete-btn:hover{color:var(--up-color);background:hsla(0,100%,71%,.2);transform:scale(1.1)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state .icon{font-size:4rem;margin-bottom:20px}.empty-state h3{font-size:1.3rem;margin-bottom:10px;color:var(--text-primary)}.loading{text-align:center;padding:20px;color:var(--text-secondary)}.loading-spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--bg-secondary);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.error-message{background:hsla(0,100%,71%,.1);border:1px solid var(--up-color);color:var(--up-color);padding:12px 20px;border-radius:12px;margin-bottom:20px;text-align:center}.summary-card{background:linear-gradient(135deg,var(--bg-card),var(--bg-secondary));border-radius:var(--border-radius);padding:24px;margin-bottom:30px;display:flex;justify-content:space-around;text-align:center;box-shadow:var(--shadow)}.summary-item h4{color:var(--text-secondary);font-size:.85rem;margin-bottom:8px}.summary-item .value{font-size:1.5rem;font-weight:700}.summary-item .value.up{color:var(--up-color)}.summary-item .value.down{color:var(--down-color)}.refresh-btn{background:transparent;border:2px solid var(--accent);color:var(--accent);padding:10px 20px;border-radius:10px;font-size:.9rem;cursor:pointer;transition:all .3s ease;margin-left:auto;display:flex;align-items:center;gap:8px}.refresh-btn:hover{background:var(--accent);color:#fff}.refresh-btn.spinning .icon{animation:spin 1s linear infinite}.action-bar{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.fund-count{color:var(--text-secondary);font-size:.9rem}.sort-selector{display:flex;align-items:center;gap:8px;margin-left:auto}.sort-selector label{color:var(--text-secondary);font-size:.85rem}.sort-selector select{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--accent);padding:8px 12px;border-radius:8px;font-size:.85rem;cursor:pointer;outline:none}.sort-selector select:hover{border-color:#a29bfe}.period-selector{display:flex;gap:4px;background:var(--bg-card);padding:4px;border-radius:10px}.period-btn{background:transparent;border:none;color:var(--text-secondary);padding:8px 14px;border-radius:8px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.period-btn:hover{color:var(--text-primary)}.period-btn.active{background:var(--accent);color:#fff}.fund-card-wrapper{margin-bottom:16px}.fund-actions{display:flex;gap:8px;align-items:center}.chart-btn{background:transparent;border:none;font-size:1.2rem;cursor:pointer;padding:8px;border-radius:8px;transition:all .2s ease;opacity:.7}.chart-btn:hover{opacity:1;background:rgba(108,92,231,.2)}.chart-container{background:var(--bg-secondary);border-radius:0 0 var(--border-radius) var(--border-radius);padding:16px;margin-top:-8px;animation:expandDown .3s ease}@keyframes expandDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:300px}}.period-change{font-size:.9rem;font-weight:600;margin-top:4px}.period-change.up{color:var(--up-color)}.period-change.down{color:var(--down-color)}.change-label{font-size:.65rem;color:var(--text-secondary);margin-left:4px;font-weight:400}@media (max-width:600px){.header h1{font-size:1.8rem}.add-fund-form{flex-direction:column}.fund-card{flex-wrap:wrap;gap:16px}.fund-values{padding:0}.fund-change,.fund-values{text-align:left}.delete-btn{opacity:1}.summary-card{flex-direction:column;gap:20px}}