@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";:root{--bg-primary:#fafafa;--bg-secondary:#fff;--bg-tertiary:#f5f5f5;--text-primary:#1a1a1a;--text-secondary:#666;--text-tertiary:#999;--accent:#4f46e5;--accent-hover:#4338ca;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--border:#e5e5e5;--btn-bg:#f3f4f6;--shadow:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--radius:12px;--radius-sm:8px;--radius-lg:16px}[data-theme=dark]{--bg-primary:#121212;--bg-secondary:#1e1e1e;--bg-tertiary:#2a2a2a;--text-primary:#f5f5f5;--text-secondary:#a3a3a3;--text-tertiary:#737373;--accent:#818cf8;--accent-hover:#6366f1;--success:#34d399;--warning:#fbbf24;--danger:#f87171;--border:#404040;--btn-bg:#2d2d2d;--shadow:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5}.app{background:var(--bg-primary);flex-direction:column;max-width:480px;height:100%;margin:0 auto;display:flex;position:relative}.main-content{flex:1;padding:16px 16px 80px;overflow-y:auto}.tab-bar{background:var(--bg-secondary);border-top:1px solid var(--border);width:100%;max-width:480px;padding:8px 0;padding-bottom:max(8px, env(safe-area-inset-bottom));z-index:100;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-item{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 4px;font-size:.7rem;font-weight:500;transition:color .2s,transform .2s;display:flex;position:relative}.tab-item:active{transform:scale(.95)}.tab-item.active{color:var(--accent)}.tab-item .tab-badge-left{background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:600;display:flex;position:absolute;top:0;right:50%;transform:translate(0)}.tab-item .tab-badge-right{background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:600;display:flex;position:absolute;top:0;right:50%;transform:translate(22px)}.tab-item .tab-badge{background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:600;display:flex;position:absolute;top:0;right:50%;transform:translate(14px)}.tab-icon{font-size:1.25rem}h1{margin-bottom:16px;font-size:1.75rem;font-weight:600}h2{margin-bottom:12px;font-size:1.25rem;font-weight:600}h3{margin-bottom:8px;font-size:1rem;font-weight:600}.card{background:var(--bg-secondary);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:16px}.card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;height:44px;padding:0 20px;font-size:1rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{color:var(--text-primary);border:1px solid var(--border);background:0 0}.btn-secondary:hover{background:var(--bg-tertiary)}.btn-danger{background:var(--danger);color:#fff}.btn-icon{border-radius:50%;width:44px;height:44px;padding:0}.input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);width:100%;height:48px;color:var(--text-primary);padding:0 16px;font-family:inherit;font-size:1rem;transition:border-color .2s}.input:focus{border-color:var(--accent);outline:none}.input::placeholder{color:var(--text-tertiary)}.label{color:var(--text-secondary);margin-bottom:6px;font-size:.875rem;font-weight:500;display:block}.form-group{margin-bottom:16px}.expense-item{background:var(--bg-tertiary);border-radius:var(--radius-sm);align-items:center;gap:12px;margin-bottom:8px;padding:12px;transition:transform .2s;display:flex}.expense-item:active{transform:scale(.98)}.expense-icon{border-radius:var(--radius-sm);background:var(--bg-secondary);justify-content:center;align-items:center;width:40px;height:40px;font-size:1.25rem;display:flex}.expense-info{flex:1}.expense-description{font-weight:500}.expense-category{color:var(--text-tertiary);font-size:.75rem}.expense-amount{font-size:1.125rem;font-weight:600}.expense-date{color:var(--text-tertiary);font-size:.75rem}.shopping-item{background:var(--bg-tertiary);border-radius:var(--radius-sm);align-items:center;gap:12px;margin-bottom:8px;padding:12px;transition:all .2s;display:flex}.shopping-item.completed{opacity:.6}.shopping-item.completed .shopping-name{text-decoration:line-through}.checkbox{border:2px solid var(--border);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex}.checkbox.checked{background:var(--success);border-color:var(--success);color:#fff}.shopping-name{flex:1;font-weight:500}.shopping-quantity{color:var(--text-tertiary);font-size:.875rem}.fab{background:var(--accent);color:#fff;cursor:pointer;width:56px;height:56px;box-shadow:var(--shadow-md);z-index:50;border:none;border-radius:50%;justify-content:center;align-items:center;max-width:480px;font-size:1.5rem;transition:transform .2s,background .2s;display:flex;position:fixed;bottom:80px;right:16px}.fab:active{transform:scale(.95)}.modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-md);padding:24px}.modal-title{margin-bottom:16px;font-size:1.25rem;font-weight:600}.modal-actions{gap:12px;margin-top:20px;display:flex}.modal-actions .btn{flex:1}.qr-code{flex-direction:column;align-items:center;gap:16px;padding:24px;display:flex}.qr-code-image{border-radius:var(--radius);background:#fff;padding:16px}.family-code{letter-spacing:.1em;color:var(--accent);font-size:1.5rem;font-weight:700}.category-item{background:var(--bg-tertiary);border-radius:var(--radius-sm);align-items:center;gap:12px;margin-bottom:8px;padding:12px;display:flex}.category-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:36px;height:36px;font-size:1.25rem;display:flex}.category-name{flex:1;font-weight:500}.theme-options{gap:8px;display:flex}.theme-option{text-align:center;border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;flex:1;padding:12px;font-size:.875rem;transition:all .2s}.theme-option.active{background:var(--accent);border-color:var(--accent);color:#fff}.empty-state{text-align:center;color:var(--text-tertiary);padding:32px 16px}.empty-icon{margin-bottom:12px;font-size:3rem}.select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);width:100%;height:48px;color:var(--text-primary);cursor:pointer;padding:0 16px;font-family:inherit;font-size:1rem}.select:focus{border-color:var(--accent);outline:none}.stat-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat-card{background:var(--bg-tertiary);border-radius:var(--radius-sm);text-align:center;padding:16px}.stat-value{color:var(--accent);font-size:1.5rem;font-weight:700}.stat-label{color:var(--text-secondary);font-size:.875rem}.delete-btn{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:4px}.settings-section{margin-bottom:24px}.settings-row{background:var(--bg-tertiary);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;display:flex}.login-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-title{margin-bottom:8px;font-size:2rem;font-weight:700}.login-subtitle{color:var(--text-secondary);margin-bottom:32px}.login-form{width:100%;max-width:320px}.loading-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title{color:var(--text-secondary);font-size:1rem;font-weight:600}.section-action{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:.875rem}.invite-card{text-align:center;padding:24px}.invite-text{color:var(--text-secondary);margin-bottom:16px}.color-picker{flex-wrap:wrap;gap:8px;display:flex}.color-option{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;transition:transform .2s}.color-option.selected{border-color:var(--text-primary);transform:scale(1.1)}.icon-picker{flex-wrap:wrap;gap:8px;max-height:150px;display:flex;overflow-y:auto}.icon-option{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.25rem;display:flex}.icon-option.selected{background:var(--accent);border-color:var(--accent)}.amount-input{text-align:center;height:64px;font-size:2rem;font-weight:700}.swipe-actions{background:var(--bg-secondary);display:flex}.swipe-btn{cursor:pointer;border:none;justify-content:center;align-items:center;height:100%;min-height:28px;padding:0 10px;font-size:14px;font-weight:500;display:flex}.swipe-edit{background:var(--accent);color:#fff;border-radius:6px}.swipe-delete{background:var(--danger);color:#fff;background:var(--danger);border-radius:6px}.wishlist-item{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 16px;display:flex}.wishlist-name{color:var(--text-primary);flex:1;text-decoration:none}.wishlist-name:hover{color:var(--accent)}.wishlist-price{color:var(--text-secondary);font-size:.875rem;display:block}
