:root{--bg-top:#0f172a;--bg-bottom:#1e293b;--text-primary:#f8fafc;--text-secondary:#94a3b8;--glass-bg:#1e293b99;--glass-border:#ffffff1a;--accent:#38bdf8}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg, var(--bg-top), var(--bg-bottom));color:var(--text-primary);-webkit-font-smoothing:antialiased;justify-content:center;align-items:center;min-height:100vh;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.app-container{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);flex-direction:column;width:100%;max-width:480px;min-height:100vh;animation:.8s ease-out fadeIn;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}@media (width>=480px){.app-container{border-radius:24px;height:90vh;min-height:800px;margin:20px}}.loading-wrapper{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;height:100%;display:flex}.spinner{border:4px solid var(--glass-border);border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}.loading-text{color:var(--text-secondary);font-size:1.1rem;animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.tabs-container{background:#0003;border-radius:100px;margin:1.5rem;padding:.5rem;display:flex;position:relative}.tab{color:var(--text-secondary);cursor:pointer;z-index:1;background:0 0;border:none;border-radius:100px;flex:1;padding:.75rem 1rem;font-size:.9rem;font-weight:600;transition:all .3s}.tab.active{color:var(--text-primary);background:#ffffff1a;box-shadow:0 4px 6px #0000001a}.tab:hover:not(.active){color:var(--text-primary)}.tab-content{flex-direction:column;flex:1;padding:0 1.5rem 1.5rem;animation:.4s ease-out fadeIn;display:flex;overflow-y:auto}.current-temp-wrapper{flex-direction:column;justify-content:center;align-items:center;margin:2rem 0;display:flex}.city-name{letter-spacing:-.02em;margin-bottom:.5rem;font-size:2rem;font-weight:700}.temperature{-webkit-text-fill-color:transparent;background:linear-gradient(#fff,#cbd5e1);-webkit-background-clip:text;background-clip:text;margin:1rem 0;font-size:5rem;font-weight:800;line-height:1}.weather-desc{color:var(--accent);text-transform:capitalize;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:500;display:flex}.metrics-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:2rem;display:grid}.metric-card{border:1px solid var(--glass-border);background:#ffffff08;border-radius:16px;flex-direction:column;gap:.5rem;padding:1.25rem;transition:transform .2s,background .2s;display:flex}.metric-card:hover{background:#ffffff0d;transform:translateY(-2px)}.metric-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.metric-value{font-size:1.5rem;font-weight:700}.hourly-list{flex-direction:column;gap:.75rem;display:flex}.hourly-item{border:1px solid var(--glass-border);background:#ffffff05;border-radius:16px;justify-content:space-between;align-items:center;padding:1rem 1.25rem;transition:background .2s;display:flex}.hourly-item:hover{background:#ffffff0d}.hourly-time{min-width:60px;font-weight:600}.hourly-icon{color:var(--accent)}.hourly-temp{text-align:right;min-width:40px;font-size:1.1rem;font-weight:700}.daily-list{flex-direction:column;gap:1rem;display:flex}.daily-item{border:1px solid var(--glass-border);background:#ffffff05;border-radius:20px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.daily-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding-bottom:.75rem;display:flex}.daily-day{font-size:1.1rem;font-weight:600}.daily-desc{color:var(--accent);text-transform:capitalize;font-size:.9rem}.daily-temps{justify-content:space-between;display:flex}.daily-temp-block{flex-direction:column;align-items:center;gap:.25rem;display:flex}.daily-temp-label{color:var(--text-secondary);text-transform:uppercase;font-size:.75rem}.daily-temp-value{font-weight:600}.temp-minmax{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.temp-max-val{color:var(--text-primary);font-weight:600}.error-container{color:#ef4444;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;height:100%;padding:2rem;display:flex}.details-grid{border-top:1px solid #ffffff1a;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.75rem;margin-top:1rem;padding-top:1rem;animation:.3s ease-out fadeIn;display:grid}.detail-item{flex-direction:column;gap:.25rem;display:flex}.detail-label{color:var(--text-secondary);text-transform:uppercase;font-size:.7rem}.detail-value{color:var(--text-primary);font-size:.85rem;font-weight:600}.summary-text{color:var(--text-secondary);margin-top:.75rem;font-size:.9rem;font-style:italic;animation:.3s ease-out fadeIn}.main-nav{border-bottom:1px solid var(--glass-border);gap:1rem;padding:1rem 1.5rem;display:flex}.nav-btn{color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border:1px solid #0000;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.75rem;font-weight:600;transition:all .2s;display:flex}.nav-btn.active{color:var(--text-primary);border-color:var(--glass-border);background:#ffffff1a;box-shadow:0 4px 12px #0000001a}.finance-container{flex-direction:column;flex:1;animation:.4s ease-out fadeIn;display:flex;overflow:hidden}.finance-tabs{gap:.5rem;padding:1rem 1.5rem .5rem;display:flex}.finance-tab{border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border-radius:12px;flex:1;padding:.75rem;font-weight:600;transition:all .2s}.finance-tab.active.expense-tab{color:#fca5a5;background:#ef444426;border-color:#ef44444d}.finance-tab.active.income-tab{color:#86efac;background:#22c55e26;border-color:#22c55e4d}.finance-content{flex-direction:column;flex:1;gap:1.5rem;padding:1rem 1.5rem;display:flex;overflow-y:auto}.transaction-form{border:1px solid var(--glass-border);background:#ffffff08;border-radius:16px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.form-group input{width:100%;color:var(--text-primary);background:#0003;border:1px solid #ffffff1a;border-radius:8px;padding:.75rem 1rem;font-family:inherit;font-size:.95rem}.form-group input:focus{border-color:var(--accent);outline:none}.form-error{color:#ef4444;text-align:center;background:#ef44441a;border-radius:8px;padding:.5rem;font-size:.85rem}.form-success{color:#22c55e;text-align:center;background:#22c55e1a;border-radius:8px;padding:.5rem;font-size:.85rem}.spinner-icon{animation:1s linear infinite spin}.form-row{gap:1rem;display:flex}.submit-btn{cursor:pointer;color:#fff;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem;font-weight:600;transition:opacity .2s;display:flex}.submit-btn:hover{opacity:.9}.submit-btn.expenses{background:#ef4444}.submit-btn.income{background:#22c55e}.transaction-list{flex-direction:column;gap:.75rem;display:flex}.transaction-item{border:1px solid var(--glass-border);background:#ffffff05;border-radius:12px;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.txn-name{font-size:1.05rem;font-weight:600}.txn-category{color:var(--text-secondary);margin-top:.25rem;font-size:.8rem}.txn-amount{font-size:1.15rem;font-weight:700}.txn-amount.expenses{color:#fca5a5}.txn-amount.income{color:#86efac}.empty-state{text-align:center;color:var(--text-secondary);padding:2rem 0;font-style:italic}.empty-state.error{color:#ef4444;background:#ef44440d;border:1px solid #ef444433;border-radius:12px;padding:1.5rem}.transaction-list-loading{color:var(--text-secondary);flex-direction:column;align-items:center;gap:.75rem;padding:2rem 0;display:flex}
