:root{--bg: #0a120e;--bg-card: #112018;--bg-card-hover: #182b21;--border: #1f3a2c;--text: #e6f5ec;--text-dim: #6fa385;--text-muted: #4a7a60;--accent: #22c55e;--accent-dim: #143a28;--green: #22c55e;--green-dim: rgba(34, 197, 94, .12);--red: #ef4444;--red-dim: rgba(239, 68, 68, .12);--yellow: #f59e0b;--radius: 12px;--shadow: 0 8px 32px rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.app{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem}.header-brand{display:flex;align-items:center;gap:.75rem}.header-logo{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,#22c55e,#16a34a);display:flex;align-items:center;justify-content:center}.header-logo svg{width:24px;height:24px;stroke:#fff}.header-title{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}.header-subtitle{font-size:.8rem;color:var(--text-dim);margin-top:1px}.btn-refresh{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.1rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-family:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-refresh:hover{background:var(--bg-card-hover);border-color:var(--accent)}.btn-refresh svg{width:16px;height:16px;stroke:var(--text-dim)}.btn-refresh:active svg{transform:rotate(180deg);transition:transform .4s}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2.5rem}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:border-color .2s}.summary-card:hover{border-color:var(--text-muted)}.summary-label{font-size:.78rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-weight:600;margin-bottom:.6rem}.summary-value{font-size:1.9rem;font-weight:700;letter-spacing:-.02em}.summary-sub{font-size:.85rem;margin-top:.3rem}.positive{color:var(--green)}.negative{color:var(--red)}.form-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:2rem}.form-title{font-size:1rem;font-weight:600;margin-bottom:1.2rem;display:flex;align-items:center;gap:.5rem}.form-title svg{width:20px;height:20px;stroke:var(--accent)}.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:.75rem;align-items:end}.form-field{display:flex;flex-direction:column;gap:.3rem}.form-label{font-size:.75rem;color:var(--text-dim);font-weight:500}.form-input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.65rem .85rem;color:var(--text);font-family:inherit;font-size:.9rem;transition:border-color .2s;outline:none}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text-muted)}.btn-add{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.4rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;white-space:nowrap}.btn-add:hover{opacity:.88}.btn-add:active{transform:scale(.97)}.btn-add svg{width:18px;height:18px;stroke:#fff}.holdings-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.holdings-header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.5rem;border-bottom:1px solid var(--border)}.holdings-title{font-size:1rem;font-weight:600}.holdings-count{font-size:.8rem;color:var(--text-dim);background:var(--bg);padding:.2rem .6rem;border-radius:6px}.holdings-table{width:100%;border-collapse:collapse}.holdings-table th{text-align:left;padding:.8rem 1.5rem;font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-weight:600;border-bottom:1px solid var(--border)}.holdings-table th:last-child,.holdings-table td:last-child{text-align:right}.holdings-table td{padding:1rem 1.5rem;border-bottom:1px solid var(--border);font-size:.9rem}.holdings-table tr:last-child td{border-bottom:none}.holdings-table tbody tr{transition:background .15s}.holdings-table tbody tr:hover{background:var(--bg-card-hover)}.coin-cell{display:flex;align-items:center;gap:.75rem}.coin-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:#fff;flex-shrink:0}.coin-info{display:flex;flex-direction:column}.coin-symbol{font-weight:600;font-size:.92rem}.coin-name{font-size:.78rem;color:var(--text-dim)}.num{font-variant-numeric:tabular-nums;font-weight:500}.pnl-cell{display:inline-flex;align-items:center;gap:.3rem;font-weight:600}.pnl-cell svg{width:14px;height:14px}.no-price{color:var(--text-muted);font-style:italic;font-size:.85rem}.actions-cell{display:flex;justify-content:flex-end;gap:.4rem}.btn-icon{width:32px;height:32px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.btn-icon:hover{border-color:var(--accent);color:var(--text)}.btn-icon.btn-delete:hover{border-color:var(--red);color:var(--red)}.btn-icon svg{width:16px;height:16px}.empty-state{text-align:center;padding:3rem 1.5rem}.empty-state svg{width:48px;height:48px;stroke:var(--text-muted);margin-bottom:1rem}.empty-state-text{color:var(--text-dim);font-size:.95rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:2rem;width:420px;max-width:90vw;box-shadow:var(--shadow);animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-title{font-size:1.1rem;font-weight:600;margin-bottom:1.5rem}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.btn-secondary{padding:.6rem 1.2rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:inherit;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-secondary:hover{border-color:var(--text-muted)}.loading{text-align:center;padding:3rem;color:var(--text-dim)}.spinner{display:inline-block;width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.app{padding:1.5rem 1rem 3rem}.summary{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.form-grid .form-field:last-of-type{grid-column:span 2}.btn-add{grid-column:span 2;justify-content:center}.holdings-table{font-size:.82rem}.holdings-table th,.holdings-table td{padding:.7rem .9rem}.holdings-table th:nth-child(3),.holdings-table td:nth-child(3),.holdings-table th:nth-child(4),.holdings-table td:nth-child(4){display:none}}@media (max-width: 480px){.header-title{font-size:1.1rem}.summary-value{font-size:1.5rem}.form-grid{grid-template-columns:1fr}.form-grid .form-field:last-of-type{grid-column:span 1}.btn-add{grid-column:span 1}}
