:root{--bg: #0c0c12;--bg-elevated: #16161f;--bg-elevated-2: #1e1e2a;--bg-elevated-3: #262633;--border: #262634;--border-soft: #1e1e29;--text: #f5f5f7;--text-muted: #9898a8;--text-faint: #6b6b7a;--accent: #7c6cf6;--accent-2: #a78bfa;--accent-soft: rgba(124, 108, 246, .16);--success: #22c55e;--success-soft: rgba(34, 197, 94, .14);--danger: #f2555a;--danger-soft: rgba(242, 85, 90, .14);--warning: #f5a524;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--shadow-lift: 0 8px 24px rgba(0, 0, 0, .35);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:dark}:root[data-theme=light]{--bg: #f4f4f8;--bg-elevated: #ffffff;--bg-elevated-2: #f0f0f6;--bg-elevated-3: #e6e6f0;--border: #e4e4ee;--border-soft: #ececf4;--text: #17171f;--text-muted: #6b6b7a;--text-faint: #9a9aab;--accent: #6d5ef2;--accent-2: #8b5cf6;--accent-soft: rgba(109, 94, 242, .1);--success: #16a34a;--success-soft: rgba(22, 163, 74, .1);--danger: #e0393f;--danger-soft: rgba(224, 57, 63, .1);--shadow-lift: 0 8px 24px rgba(23, 23, 31, .1);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#root{min-height:100vh}h1,h2,h3,h4{margin:0;letter-spacing:-.01em}p{margin:0}a{color:inherit}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:.95rem;color:var(--text);background:var(--bg-elevated-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .85rem;outline:none;transition:border-color .15s ease,background .15s ease;width:100%}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus,select:focus,textarea:focus{border-color:var(--accent);background:var(--bg-elevated-3)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2398 98a8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.25rem}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--bg-elevated-3);border-radius:8px}::-webkit-scrollbar-track{background:transparent}.app-shell{min-height:100vh;display:flex;flex-direction:column}.full-screen-center{min-height:100vh;display:flex;align-items:center;justify-content:center}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + .9rem) 1.25rem .9rem;background:#0c0c12d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border-soft)}.topbar-brand{display:flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.15rem;letter-spacing:-.02em}.brand-mark{width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,var(--accent),var(--accent-2))}.topbar-links{display:none}.topbar-link{display:flex;align-items:center;gap:.4rem;color:var(--text-faint);text-decoration:none;font-size:.85rem;font-weight:600;padding:.4rem .7rem;border-radius:var(--radius-sm);transition:color .15s ease,background .15s ease}.topbar-link:hover{background:var(--bg-elevated-2);color:var(--text)}.topbar-link.active{color:var(--accent-2);background:var(--accent-soft)}.badge-inline{position:static;margin-left:.1rem}.topbar-user{position:relative;display:flex;align-items:center;gap:.35rem}.user-chip{display:flex;align-items:center;gap:.25rem;background:transparent;border:none;padding:.2rem;border-radius:999px;cursor:pointer}.chevron{color:var(--text-muted);transition:transform .15s ease}.chevron.open{transform:rotate(180deg)}.user-menu{position:absolute;right:0;top:calc(100% + .5rem);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lift);padding:.75rem;min-width:200px;display:flex;flex-direction:column;gap:.35rem}.user-menu-name{font-weight:700;font-size:.92rem}.user-menu-email{font-size:.78rem;margin-bottom:.35rem}.user-menu-item{display:flex;align-items:center;gap:.5rem;background:var(--bg-elevated-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .7rem;color:var(--text);cursor:pointer;font-size:.85rem;font-weight:600}.user-menu-item:hover{background:var(--danger-soft);color:var(--danger);border-color:transparent}.app-content{flex:1;padding-bottom:calc(84px + var(--safe-bottom))}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:space-around;padding:.4rem .5rem calc(.4rem + var(--safe-bottom));background:#0c0c12e6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border-soft)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;color:var(--text-faint);text-decoration:none;padding:.3rem .6rem;border-radius:var(--radius-sm);min-width:56px;transition:color .15s ease}.bottom-nav-item.active{color:var(--accent-2)}.bottom-nav-icon{position:relative;display:flex}.bottom-nav-label{font-size:.68rem;font-weight:600}.badge{position:absolute;top:-6px;right:-10px;background:var(--danger);color:#fff;font-size:.62rem;font-weight:700;line-height:1;padding:2px 5px;border-radius:999px;min-width:16px;text-align:center}.install-banner{display:flex;align-items:center;gap:.6rem;margin:.75rem 1.25rem 0;padding:.7rem .9rem;background:var(--accent-soft);border:1px solid rgba(124,108,246,.3);border-radius:var(--radius-md);font-size:.85rem}.install-banner span{flex:1}.page{max-width:640px;margin:0 auto;padding:1.25rem 1.25rem 1.5rem;text-align:left;display:flex;flex-direction:column;gap:1.25rem}.page-header{display:flex;align-items:baseline;justify-content:space-between}.page-header h2{font-size:1.4rem;font-weight:800}.section-title{font-size:.95rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.6rem}.card{background:linear-gradient(180deg,var(--bg-elevated),var(--bg-elevated) 60%,var(--bg-elevated-2));border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:1.15rem;display:flex;flex-direction:column;gap:.7rem;box-shadow:var(--shadow-lift);transition:transform .15s ease,box-shadow .15s ease}@media (min-width: 720px){.card:hover{transform:translateY(-2px)}}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.85rem}.stat{gap:.3rem}.stat-label{display:flex;align-items:center;gap:.4rem;color:var(--text-muted);font-size:.8rem;font-weight:600}.stat-value{font-size:1.6rem;font-weight:800;letter-spacing:-.02em}.stat.accent .stat-value{color:var(--accent-2)}.stat-value.positive{color:var(--success)}.stat-value.negative{color:var(--danger)}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.list-item{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-md)}.list-item-main{flex:1;min-width:0}.list-item-title{font-weight:700;font-size:.95rem;display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.list-item.resolved{opacity:.55}.amount{font-weight:800;letter-spacing:-.01em}.amount.positive{color:var(--success)}.amount.negative{color:var(--danger)}.muted{color:var(--text-muted);font-size:.82rem}.category-pill{display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;padding:.15rem .55rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-2);white-space:nowrap}.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-size:.78rem;font-weight:700;color:var(--text-muted)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.form-card{display:flex;flex-direction:column;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:none;border-radius:var(--radius-sm);padding:.7rem 1.1rem;font-weight:700;font-size:.9rem;cursor:pointer;transition:transform .1s ease,filter .15s ease}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff}.btn-primary:hover{filter:brightness(1.08)}.btn-ghost{background:var(--bg-elevated-2);color:var(--text);border:1px solid var(--border)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-sm{padding:.45rem .75rem;font-size:.8rem}.btn-block{width:100%}.icon-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:.3rem;border-radius:var(--radius-sm);display:inline-flex}.icon-btn:hover{background:var(--bg-elevated-2);color:var(--text)}.questions{display:flex;flex-direction:column;gap:.5rem}.question{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;background:var(--bg-elevated-2);border-radius:var(--radius-sm);padding:.55rem .7rem;font-size:.85rem}.question.resolved{opacity:.5}.question-text strong{font-weight:700}.actions-row{display:flex;gap:.5rem}.actions-row input{flex:1}.avatar{border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-fallback{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.avatar-stack{display:flex}.avatar-stack .avatar{border:2px solid var(--bg);margin-left:-8px}.avatar-stack .avatar:first-child{margin-left:0}.empty-state{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;color:var(--text-faint);padding:2.5rem 1rem}.empty-title{font-weight:700;color:var(--text-muted)}.spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2rem}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fab{position:fixed;right:1.25rem;bottom:calc(96px + var(--safe-bottom));width:56px;height:56px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px #7c6cf666;cursor:pointer;z-index:15;transition:transform .15s ease}.fab:active{transform:scale(.94)}@media (min-width: 720px){.fab{bottom:2rem}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;z-index:50}.modal-sheet{width:100%;max-width:480px;max-height:90vh;overflow-y:auto;background:var(--bg-elevated);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:1.25rem;padding-bottom:calc(1.5rem + var(--safe-bottom));box-shadow:var(--shadow-lift)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}@media (min-width: 720px){.modal-overlay{align-items:center}.modal-sheet{border-radius:var(--radius-lg)}}.btn-ghost-active{border-color:var(--accent);color:var(--accent-2)}.filter-summary{padding:0 .25rem}.theme-toggle{color:var(--text-muted)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(circle at 20% 15%,rgba(124,108,246,.25),transparent 45%),radial-gradient(circle at 85% 85%,rgba(167,139,250,.18),transparent 45%),var(--bg)}.login-card{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:1.1rem;text-align:center;padding:2.5rem 2rem;background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift)}.login-logo{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1.6rem}.login-card h1{font-size:1.5rem;font-weight:800}.google-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.75rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;color:#1f1f1f;font-weight:700;font-size:.92rem;cursor:pointer}.google-btn:active{transform:scale(.98)}.error{color:var(--danger);font-size:.85rem}@media (min-width: 720px){.app-content{padding-bottom:2rem}.bottom-nav{display:none}.topbar-links{display:flex;gap:.25rem}.topbar{padding-left:max(1.25rem,calc((100vw - 720px)/2));padding-right:max(1.25rem,calc((100vw - 720px)/2))}}
