:root{--color-primary-light:#a3e635;--color-primary:#84cc16;--color-primary-dark:#65a30d;--color-primary-darker:#4d7c0f;--gradient-primary:linear-gradient(135deg, #a3e635 0%, #65a30d 100%);--gradient-hero:linear-gradient(145deg, #4d7c0f 0%, #052e16 100%);--gradient-card:linear-gradient(135deg, #a3e635 0%, #84cc16 50%, #65a30d 100%);--color-accent:#fde047;--color-accent-dark:#eab308;--color-dark:#052e16;--color-dark-soft:#14532d;--bg-base:#f5f5f4;--bg-card:#fff;--bg-card-green:#f0fdf4;--bg-input:#f3f4f6;--text-primary:#111827;--text-secondary:#6b7280;--text-inverse:#fff;--text-success:#16a34a;--text-danger:#dc2626;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-sm:12px;--radius-md:20px;--radius-lg:24px;--radius-xl:28px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001a;--shadow-green:0 8px 24px #65a30d40;--transition:all .2s ease;--nav-height:72px}:root[data-palette=pink]{--color-primary-light:#fbcfe8;--color-primary:#f9a8d4;--color-primary-dark:#ec4899;--color-primary-darker:#db2777;--gradient-primary:linear-gradient(135deg, #fbcfe8 0%, #f472b6 100%);--gradient-hero:linear-gradient(145deg, #ec4899 0%, #9d174d 100%);--gradient-card:linear-gradient(135deg, #fbcfe8 0%, #f9a8d4 50%, #f472b6 100%);--color-dark:#831843;--color-dark-soft:#9d174d;--bg-base:#fdf7fa;--bg-card-green:#fdf2f8;--shadow-green:0 8px 24px #ec489938}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent;font-size:16px}body{background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;overflow-x:hidden}#root{min-height:100dvh}.app{flex-direction:column;max-width:430px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.app-content{padding-bottom:var(--nav-height);flex:1;overflow-y:auto}::-webkit-scrollbar{width:0;display:none}.page{animation:.3s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%) 0 0/200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.text-center{text-align:center}.w-full{width:100%}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--bg-card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:430px;padding:var(--space-sm) var(--space-lg) var(--space-xl);max-height:92vh;overflow-y:auto}.modal-handle{width:40px;height:4px;margin:var(--space-sm) auto var(--space-md);background:#d1d5db;border-radius:2px}.modal-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.modal-header h2{font-size:1.2rem;font-weight:700}.modal-close{background:var(--bg-input);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.modal-form{gap:var(--space-lg);flex-direction:column;display:flex}.input-group{gap:var(--space-sm);flex-direction:column;display:flex}.input-group label{color:var(--text-primary);font-size:.85rem;font-weight:600}.optional-hint{color:var(--text-secondary);font-weight:400}.amount-input-wrap{background:var(--bg-input);border-radius:var(--radius-sm);padding:0 var(--space-md);align-items:center;display:flex}.amount-prefix{color:var(--text-secondary);margin-right:var(--space-sm);font-size:1.4rem;font-weight:700}.amount-input{min-width:0;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:14px 0;font-family:inherit;font-size:1.4rem;font-weight:700}.text-input{background:var(--bg-input);border-radius:var(--radius-sm);padding:14px var(--space-md);color:var(--text-primary);border:none;outline:none;width:100%;font-family:inherit;font-size:.95rem}.text-input:focus,.amount-input-wrap:focus-within{box-shadow:0 0 0 2px var(--color-primary-light)}.cat-chips{gap:var(--space-sm);flex-wrap:wrap;display:flex}.cat-chip{border-radius:var(--radius-full);cursor:pointer;color:var(--text-secondary);background:0 0;border:1.5px solid #e5e7eb;padding:8px 16px;font-family:inherit;font-size:.82rem;font-weight:500}.cat-chip--active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-dark);font-weight:600}.submit-btn{border-radius:var(--radius-md);background:var(--gradient-primary);width:100%;color:var(--color-dark);cursor:pointer;box-shadow:var(--shadow-green);border:none;padding:16px;font-family:inherit;font-size:1rem;font-weight:700}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.form-error{color:var(--text-danger);font-size:.8rem;font-weight:500}.form-hint{color:var(--text-secondary);font-size:.8rem}.user-switcher{background:var(--bg-input);border-radius:var(--radius-full);gap:2px;padding:3px;display:inline-flex}.us-pill{border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:6px 14px;font-family:inherit;font-size:.82rem;font-weight:600}.us-pill--active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.page-header-row{justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.who-overlay{z-index:300;background:var(--bg-base);padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.who-card{text-align:center;width:100%;max-width:360px}.who-logo{margin-bottom:var(--space-md);font-size:3rem}.who-card h2{margin-bottom:var(--space-xs);font-size:1.4rem;font-weight:800}.who-card p{color:var(--text-secondary);margin-bottom:var(--space-lg);font-size:.9rem}.who-list{gap:var(--space-md);flex-direction:column;display:flex}.dash-switcher{justify-content:flex-end;display:flex}.st-select{background:var(--bg-input);border-radius:var(--radius-sm);color:var(--text-primary);border:none;margin-left:auto;padding:8px 12px;font-family:inherit;font-size:.88rem;font-weight:600}.sv{padding:var(--space-md);padding-bottom:var(--space-2xl)}.sv-header{margin-bottom:var(--space-md)}.sv-header h2{font-size:1.3rem;font-weight:800}.sv-header-actions{align-items:center;gap:var(--space-sm);display:flex}.sv-edit-btn{background:var(--bg-input);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.sv-edit-btn--on{background:var(--color-primary-light);color:var(--color-dark)}.sv-total{margin-bottom:var(--space-lg)}.sv-total-label{text-transform:uppercase;letter-spacing:.06em;opacity:.75;font-size:.75rem}.sv-total-amount{margin:var(--space-xs) 0 var(--space-md);font-size:2rem;font-weight:800}.sv-locs{gap:var(--space-sm);flex-wrap:wrap;display:flex}.sv-loc{border-radius:var(--radius-sm);min-width:120px;padding:var(--space-sm) var(--space-md);background:#ffffff1a;flex-direction:column;flex:1;font-size:.75rem;display:flex}.sv-loc strong{font-size:1rem}.sv-total-foot{justify-content:space-between;gap:var(--space-xs);margin-top:var(--space-md);opacity:.85;flex-wrap:wrap;font-size:.8rem;display:flex}.sv-list{gap:var(--space-md);flex-direction:column;display:flex}.sv-card{padding:var(--space-md) var(--space-lg)}.sv-card--closed{opacity:.75;margin-top:var(--space-sm)}.sv-card-top{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);display:flex}.sv-card-main{flex:1;min-width:0}.fill-icon{flex-shrink:0;position:relative}.fill-icon svg{position:absolute;inset:0}.fill-icon-empty{color:var(--color-primary-light)}.fill-icon-full{color:var(--color-primary-dark);transition:clip-path .6s}.fill-icon--full .fill-icon-full{color:var(--text-success)}.sv-ms--detail{align-items:center;gap:var(--space-xs);flex-direction:column;display:flex}.sv-ms--detail .sv-ms-row{width:100%}.sv-card-name{font-size:1rem;font-weight:700}.sv-card-sub{color:var(--text-secondary);margin-top:2px;font-size:.78rem}.sv-card-right{align-items:center;gap:var(--space-xs);display:flex}.sv-card-balance{white-space:nowrap;font-size:1.05rem;font-weight:800}.sv-card-pencil{color:var(--text-secondary)}.sv-ms{margin-top:var(--space-sm)}.sv-bar{background:var(--bg-input);border-radius:var(--radius-full);height:8px;overflow:hidden}.sv-bar-fill{background:var(--gradient-primary);border-radius:var(--radius-full);height:100%}.sv-ms-row{color:var(--text-secondary);justify-content:space-between;margin-top:6px;font-size:.75rem;display:flex}.sv-badge{color:var(--text-success);font-weight:700}.sv-empty{align-items:center;gap:var(--space-sm);color:var(--text-secondary);padding:var(--space-xl) 0;flex-direction:column;display:flex}.sv-empty-btn{max-width:220px;margin-top:var(--space-sm)}.sv-closed{margin-top:var(--space-lg)}.sv-closed-toggle{width:100%;color:var(--text-secondary);padding:var(--space-sm) 0;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;font-family:inherit;font-size:.9rem;font-weight:700;display:flex}.sv-form-row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.sv-pick-list{gap:var(--space-sm);flex-direction:column;display:flex}.sv-pick{padding:14px var(--space-md);border-radius:var(--radius-sm);background:var(--bg-input);cursor:pointer;color:var(--text-primary);border:none;justify-content:space-between;align-items:center;font-family:inherit;font-size:.9rem;display:flex}.sv-pick-right{align-items:center;gap:4px;font-weight:700;display:flex}.sv-detail-head{margin-bottom:var(--space-md)}.sv-detail-balance{font-size:1.8rem;font-weight:800}.sv-actions{gap:var(--space-sm);margin-bottom:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}.sv-action{border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;color:var(--text-primary);border:1.5px solid #e5e7eb;padding:10px 4px;font-family:inherit;font-size:.8rem;font-weight:600}.sv-action:disabled{opacity:.4;cursor:not-allowed}.sv-history-title{margin-bottom:var(--space-sm);font-size:.9rem;font-weight:700}.sv-hist{justify-content:space-between;align-items:center;gap:var(--space-sm);border-bottom:1px solid #f3f4f6;padding:10px 0;display:flex}.sv-hist-label{font-size:.88rem;font-weight:600}.sv-hist-sub{color:var(--text-secondary);font-size:.75rem}.sv-hist-right{align-items:center;gap:var(--space-xs);display:flex}.sv-hist-amt{white-space:nowrap;font-size:.9rem;font-weight:700}.sv-hist-amt--in{color:var(--text-success)}.sv-hist-amt--out{color:var(--text-danger)}.sv-hist-del{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px}.sv-delete{margin-top:var(--space-lg);justify-content:center;align-items:center;gap:var(--space-xs);border-radius:var(--radius-sm);width:100%;color:var(--text-danger);cursor:pointer;background:#fef2f2;border:none;padding:12px;font-family:inherit;font-weight:600;display:flex}.sv-warning{color:#92400e;border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);background:#fef3c7;font-size:.82rem}
