@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap";:root{--brand-50: #eef5f4;--brand-100: #dce9e7;--brand-200: #b7d3cf;--brand-300: #8ebcb6;--brand-400: #5fa296;--brand-500: #0f766e;--brand-600: #0d5f5a;--brand-700: #0b4e4a;--brand-800: #073833;--brand-900: #052825;--accent-50: #fff3e8;--accent-200: #ffd7b3;--accent-400: #ffb366;--accent-500: #ff8a1f;--accent-600: #f97316;--gray-50: #f6f8fc;--gray-100: #eef2f7;--gray-200: #e3e8ef;--gray-300: #cfd5e1;--gray-400: #9ea7b8;--gray-500: #6b7380;--gray-600: #4c5465;--gray-700: #2e3545;--gray-800: #1a2133;--gray-900: #0c1224;--surface: #ffffff;--surface-muted: #f7f9fb;--surface-ghost: #f8fafb;--text-primary: #0c1224;--text-muted: #4c5465;--radius-sm: 10px;--radius: 14px;--radius-lg: 18px;--radius-xl: 22px;--radius-pill: 999px;--shadow-soft: 0 8px 24px rgba(12, 18, 36, .06);--shadow-strong: 0 12px 28px rgba(12, 18, 36, .08);--shadow-border: 0 1px 0 rgba(12, 18, 36, .04);--header-height: 76px;--content-max: 1180px;--transition: .18s ease}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-primary);background:#f6f7fb;min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--brand-600)}img{max-width:100%;display:block}::selection{background:var(--brand-100);color:var(--brand-800)}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:20;height:var(--header-height);display:flex;align-items:center;background:#fff;border-bottom:1px solid rgba(12,18,36,.07);box-shadow:0 4px 14px #0c12240d;padding:0 24px}.app-header__left{display:flex;align-items:center;gap:12px}.app-header__logo{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:-.3px;color:var(--brand-700);padding:10px 14px;border-radius:var(--radius-pill);background:var(--surface-muted)}.app-header__logo-text{color:var(--gray-800)}.app-nav{display:flex;gap:8px;margin-left:20px}.app-nav__link{padding:10px 14px;border-radius:var(--radius-pill);color:var(--text-muted);background:transparent;border:1px solid transparent;transition:all var(--transition);font-weight:600}.app-nav__link:hover{color:var(--text-primary);background:var(--gray-100)}.app-nav__link.active{color:var(--brand-700);background:linear-gradient(135deg,#12a79524,#ff8a1f29);border-color:#0c12240f}.app-header__actions{display:flex;align-items:center;gap:10px;margin-left:auto}.desktop-only{display:inline-flex}.mobile-menu-btn,.mobile-icon-btn{display:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-pill);border:1px solid rgba(12,18,36,.1);background:var(--surface-muted)}.mobile-menu-btn:hover,.mobile-icon-btn:hover{background:var(--gray-100)}.app-header__avatar-link{display:inline-flex;padding:4px;border-radius:var(--radius-pill);transition:all var(--transition)}.app-header__avatar-link:hover{background:var(--gray-100)}.app-main{flex:1;width:100%;max-width:var(--content-max);margin:32px auto 40px;padding:0 24px 32px}.page{background:#fff;border:1px solid rgba(12,18,36,.06);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:28px;animation:rise .35s ease}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:24px}.page-header.compact{align-items:center}.page-header__title,.page-title h1,.page-title h2,.page-title h3,.page-title h4{margin:0;font-size:28px;letter-spacing:-.5px}.page-header__subtitle,.page-subtitle{margin:6px 0 0;color:var(--text-muted)}.page-title h1,.page-title h2{margin:0}.page-title{display:flex;flex-direction:column;gap:4px}.section-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-title,.page-title h2,.page-title h3{margin:0;font-size:20px}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--brand-700);font-weight:600;margin-bottom:6px}.back-link:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:var(--radius-pill);border:1px solid transparent;font-weight:600;font-size:14px;cursor:pointer;transition:all var(--transition);background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-border)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary,.btn--primary{background:var(--brand-600);color:#fff;box-shadow:none}.btn-primary:hover,.btn--primary:hover{box-shadow:0 6px 16px #0f766e29}.btn-secondary{background:var(--gray-900);color:#fff;border-color:transparent}.btn-success,.btn--success{background:#15803d;color:#fff;box-shadow:none}.btn-danger,.btn-danger-ghost{background:#b91c1c;color:#fff;box-shadow:none}.btn-ghost,.btn--ghost{background:transparent;color:var(--text-primary);border-color:#0c12241f}.btn-ghost:hover,.btn--ghost:hover{border-color:#0c122433;background:var(--surface-muted)}.btn-danger-ghost{background:#b91c1c14;color:#b91c1c;border:1px solid rgba(185,28,28,.18)}.btn-success.btn-ghost,.btn-success.btn--ghost{color:#0f5132;background:#15803d14;border-color:#15803d2e}.btn-sm,.btn--sm{padding:8px 12px;font-size:13px}.btn-lg,.btn--lg{padding:14px 22px;font-size:15px}.btn-full{width:100%}.btn-icon,.btn--icon{width:40px;height:40px;padding:0;border-radius:var(--radius-pill)}.btn-spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.text-muted{color:var(--text-muted)}.text-sm{font-size:13px}.text-success{color:#15803d}.text-danger{color:#b91c1c}.mt-3{margin-top:12px}.mb-6{margin-bottom:24px}.gap-2{gap:8px}.inline{display:inline-block}.flex{display:flex}.items-center{align-items:center}.full{width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.card,.card__body,.card__header,.card__footer,.card__title,.card-header,.card-body,.card-footer{box-sizing:border-box}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid rgba(12,18,36,.06);box-shadow:var(--shadow-soft);overflow:hidden;transition:transform var(--transition),box-shadow var(--transition)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.card-header,.card__header{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(90deg,rgba(12,18,36,.02),transparent);border-bottom:1px solid rgba(12,18,36,.05)}.card-body,.card__body{padding:20px}.card-footer,.card__footer{padding:16px 20px;background:var(--surface-muted);border-top:1px solid rgba(12,18,36,.04)}.card__title{font-size:16px;font-weight:700;margin:0}.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius);border:1px solid transparent;font-weight:500}.alert-icon{font-size:18px}.alert-error{background:#fef2f2;border-color:#fecdd3;color:#991b1b}.alert-warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.alert-success{background:#ecfdf3;border-color:#bbf7d0;color:#166534}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:700;background:var(--gray-100);color:var(--gray-700)}.badge-success,.badge--paid{background:#ecfdf3;color:#15803d}.badge-warning,.badge--pending{background:#fff7ed;color:#b45309}.badge-danger,.badge--overdue{background:#fef2f2;color:#b91c1c}.badge-info,.badge--partial,.badge--info{background:#eff6ff;color:#1d4ed8}.status-badge{padding:6px 10px;border-radius:var(--radius-pill);background:var(--gray-100);color:var(--gray-700);font-weight:600;font-size:13px}.status-badge.pending{background:#fff7ed;color:#b45309}.status-badge.paid{background:#ecfdf3;color:#15803d}.status-badge.overdue{background:#fef2f2;color:#b91c1c}.status-badge.partial{background:#eff6ff;color:#1d4ed8}.form-group{margin-bottom:16px;display:flex;flex-direction:column}.form-label,.form-group label{font-weight:600;font-size:14px;color:var(--gray-700);margin-bottom:6px}.form-input,.form-select,.form-textarea,.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--gray-200);background:var(--surface);color:var(--text-primary);font-size:15px;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}.form-textarea,textarea.form-input{min-height:110px;resize:vertical;font-family:inherit}.form-input:focus,.form-select:focus,.form-textarea:focus,.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px #12a79526;background:#fff}.form-input.sm{padding:9px 12px;font-size:14px}.form-hint{color:var(--text-muted);font-size:13px;margin-top:4px}.has-error .form-input,.input-error{border-color:#f87171;background:#fff1f2}.label{color:var(--text-muted);font-size:13px}.required-mark{color:#ef4444}.error-text{color:#b91c1c;font-size:12px;margin-top:6px}.error-message{background:#fef2f2;color:#b91c1c;padding:12px 14px;border-radius:var(--radius);border:1px solid #fecdd3}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.form-actions,.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.form-container{background:var(--surface);padding:26px;border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);border:1px solid rgba(12,18,36,.05)}.form-card{background:var(--surface);padding:22px;border-radius:var(--radius-xl);border:1px solid rgba(12,18,36,.05);box-shadow:var(--shadow-soft)}.bill-form{max-width:860px}.form-section{margin-bottom:24px;padding-bottom:18px;border-bottom:1px dashed var(--gray-200)}.form-section:last-child{border-bottom:none;margin-bottom:0}.form-section-title{margin:0 0 12px;font-size:16px;font-weight:700}.input-with-prefix,.input-with-suffix{display:flex;align-items:center}.input-prefix,.input-suffix{background:var(--gray-100);border:1px solid var(--gray-200);padding:10px 12px;font-weight:600;color:var(--gray-700)}.input-prefix{border-radius:var(--radius) 0 0 var(--radius);border-right:none}.input-suffix{border-radius:0 var(--radius) var(--radius) 0;border-left:none}.input-with-prefix .form-input,.input-with-suffix .form-input{border-radius:0 var(--radius) var(--radius) 0}.input-with-suffix .form-input{border-radius:var(--radius) 0 0 var(--radius)}.checkbox-wrapper{position:relative;display:inline-flex;align-items:center;gap:8px}.checkbox-wrapper input{width:18px;height:18px}.checkbox-wrapper .checkmark{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:6px;border:1px solid var(--gray-300)}.checkbox-wrapper input:checked+.checkmark{border-color:var(--brand-600);box-shadow:0 0 0 3px #12a79533}.toggle{position:relative;display:inline-block;width:48px;height:26px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--gray-300);border-radius:26px;transition:.3s}.toggle-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;border-radius:50%;background:#fff;transition:.3s}.toggle input:checked+.toggle-slider{background:var(--brand-500)}.toggle input:checked+.toggle-slider:before{transform:translate(22px)}.form-toggle-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.toggle-info{display:flex;flex-direction:column;gap:4px}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.category-option{background:var(--surface-muted);border:1px solid var(--gray-200);border-radius:var(--radius);padding:14px 10px;text-align:center;cursor:pointer;transition:all var(--transition)}.category-option:hover{border-color:var(--brand-300);background:var(--brand-50)}.category-option.selected{border-color:var(--brand-600);background:linear-gradient(135deg,#12a7951f,#ff8a1f14);color:var(--brand-800)}.category-icon{font-size:22px;display:block;margin-bottom:6px}.category-label{font-size:13px;color:var(--text-muted)}.split-type-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:14px}.split-type-btn{padding:12px;border-radius:var(--radius);border:1px solid var(--gray-200);background:var(--surface);font-weight:600;cursor:pointer;transition:all var(--transition)}.split-type-btn:hover{border-color:var(--brand-400)}.split-type-btn.active{border-color:var(--brand-600);background:var(--brand-50);color:var(--brand-800)}.splits-list{display:flex;flex-direction:column;gap:10px}.split-item{display:grid;grid-template-columns:1.6fr 1fr .8fr;gap:12px;align-items:center;background:var(--surface-muted);border:1px solid var(--gray-200);border-radius:var(--radius);padding:12px}.split-item.excluded{opacity:.6}.split-member{display:flex;align-items:center;gap:10px}.member-name{font-weight:600}.split-value{width:140px}.split-preview{text-align:right;font-weight:700;color:var(--brand-700)}.preview-section{background:var(--surface-muted);border-radius:var(--radius);padding:14px;border:1px dashed var(--gray-300)}.preview-card{background:var(--surface);padding:14px;border-radius:var(--radius);box-shadow:var(--shadow-border)}.preview-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gray-200);padding-bottom:10px;margin-bottom:10px}.preview-title{font-weight:700}.preview-amount{font-weight:700;color:var(--brand-700)}.preview-splits{display:flex;flex-direction:column;gap:8px}.preview-split{display:flex;justify-content:space-between;color:var(--text-muted)}.reuse-list{display:grid;gap:10px}.reuse-item{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--radius);border:1px solid var(--gray-200);background:var(--surface);transition:all var(--transition)}.reuse-item:hover{border-color:var(--brand-400);background:var(--brand-50)}.reuse-icon{font-size:24px}.reuse-title{font-weight:700}.reuse-amount{color:var(--text-muted);font-weight:600}.reuse-info{display:flex;flex-direction:column;gap:2px}.reuse-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.reuse-card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:12px;display:flex;justify-content:space-between;align-items:center;background:var(--surface-muted)}.reuse-actions{display:flex;align-items:center;gap:10px}.loading-container,.page-loading{padding:40px;text-align:center;color:var(--text-muted)}.spinner,.loading-spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--brand-600);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}.spinner--lg{width:48px;height:48px;border-width:4px}.loading-page{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted)}.loading-page__text{color:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c122459;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:18px;z-index:40}.modal{background:var(--surface);border-radius:var(--radius-xl);width:100%;max-width:540px;box-shadow:var(--shadow-strong);border:1px solid rgba(12,18,36,.06);overflow:hidden;animation:rise .25s ease}.modal-header,.modal__header{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid rgba(12,18,36,.05)}.modal-body,.modal__body{padding:18px 20px;max-height:70vh;overflow-y:auto}.modal-footer,.modal__footer{padding:14px 20px;background:var(--surface-muted);border-top:1px solid rgba(12,18,36,.05)}.modal-close,.modal__close{background:transparent;border:none;font-size:20px;color:var(--text-muted);cursor:pointer}.modal-close:hover{color:var(--text-primary)}.modal-hint{color:var(--text-muted);font-size:14px;margin-bottom:10px}.toast-container{position:fixed;top:calc(var(--header-height) + 12px);right:16px;display:flex;flex-direction:column;gap:10px;z-index:60}.toast{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid rgba(12,18,36,.05);border-left:6px solid var(--brand-500);border-radius:var(--radius-lg);padding:14px 16px;min-width:320px;box-shadow:var(--shadow-soft)}.toast-icon{font-size:18px}.toast-message{color:var(--text-muted);font-size:14px}.toast-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:18px}.toast-success{border-left-color:#16a34a}.toast-error{border-left-color:#dc2626}.toast-warning{border-left-color:#d97706}.toast-info{border-left-color:var(--brand-500)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px;background:#f6f7fb}.auth-container{width:100%;max-width:1100px;display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:stretch}.auth-card{background:var(--surface);border-radius:var(--radius-xl);padding:32px;box-shadow:var(--shadow-strong);border:1px solid rgba(255,255,255,.08)}.auth-header{text-align:center;margin-bottom:22px}.auth-logo{font-size:40px;margin-bottom:10px}.auth-title{margin:0;font-size:26px;letter-spacing:-.4px}.auth-subtitle{color:var(--text-muted);margin-top:6px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-footer{margin-top:18px;text-align:center;color:var(--text-muted)}.auth-link{color:var(--brand-700);font-weight:700}.auth-features{background:#fff;border-radius:var(--radius-xl);padding:28px;border:1px solid rgba(12,18,36,.06);color:var(--text-primary);box-shadow:var(--shadow-soft)}.auth-features h3{margin-top:0;color:var(--brand-800)}.feature-list{display:flex;flex-direction:column;gap:14px;margin-top:12px}.feature-item{display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:center}.feature-icon{font-size:26px;background:var(--surface-muted);padding:10px;border-radius:var(--radius);text-align:center;color:var(--brand-700)}.feature-item p{margin:2px 0 0;color:var(--text-muted)}.tabs{display:flex;flex-direction:column;gap:0}.tabs__header{display:flex;overflow-x:auto;gap:6px;padding:6px;background:var(--surface);border-radius:var(--radius-pill);box-shadow:var(--shadow-border);margin-bottom:16px}.tabs__button{padding:10px 16px;border-radius:var(--radius-pill);border:1px solid transparent;background:transparent;color:var(--text-muted);font-weight:600;cursor:pointer;transition:all var(--transition)}.tabs__button--active{color:var(--brand-800);background:linear-gradient(135deg,#12a79529,#ff8a1f1f);border-color:#0c12240f}.tabs__content{animation:fadeIn var(--transition) ease}.tab-content{margin-top:10px}.tab-panel{background:var(--surface);border:1px solid rgba(12,18,36,.05);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-soft)}.tabs-container{margin-bottom:12px}.month-nav{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--gray-200);border-radius:var(--radius-pill);background:var(--surface)}.month-nav__btn{border:1px solid var(--gray-200);border-radius:var(--radius-pill);background:var(--surface-muted);padding:6px 8px;cursor:pointer}.month-nav__label{font-weight:700;text-transform:capitalize}.tab{padding:10px 16px;border-radius:var(--radius-pill);border:1px solid transparent;background:transparent;color:var(--text-muted);font-weight:700;cursor:pointer;transition:all var(--transition)}.tab.active{background:var(--brand-50);color:var(--brand-800);border-color:#0c12240f}@keyframes fadeIn{0%{opacity:.8;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.avatar{display:inline-flex;align-items:center;justify-content:center;background:var(--brand-50);color:var(--brand-700);font-weight:700;border-radius:var(--radius-pill);overflow:hidden}.avatar--xs{width:26px;height:26px;font-size:11px}.avatar--sm{width:36px;height:36px;font-size:13px}.avatar--md{width:44px;height:44px;font-size:14px}.avatar--lg{width:66px;height:66px;font-size:18px}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-group{display:inline-flex}.avatar-group .avatar{border:2px solid #fff;margin-left:-10px;box-shadow:var(--shadow-border)}.avatar-group .avatar:first-child{margin-left:0}.empty-state{background:var(--surface-muted);border:1px dashed var(--gray-300);border-radius:var(--radius-lg);padding:32px 20px;text-align:center;color:var(--text-muted)}.empty-state.small{padding:18px}.empty-state.inline{display:inline-flex}.empty-state__icon{font-size:38px;margin-bottom:10px}.empty-state__title{font-size:18px;font-weight:700;color:var(--text-primary);margin:0 0 6px}.empty-state__description{margin:0;color:var(--text-muted)}.empty-icon{font-size:32px;margin-bottom:6px}.error-container{text-align:center;padding:24px;background:var(--surface);border-radius:var(--radius-xl);border:1px solid #fecdd3;box-shadow:var(--shadow-soft)}.error-icon{font-size:36px;margin-bottom:8px}.bills-list{display:flex;flex-direction:column;gap:10px}.bill-card{display:grid;grid-template-columns:60px 1fr auto;gap:12px;align-items:center;background:var(--surface);border:1px solid rgba(12,18,36,.05);border-radius:var(--radius-lg);padding:14px 16px;box-shadow:var(--shadow-soft);transition:transform var(--transition),box-shadow var(--transition)}.bill-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.bill-card__icon{width:60px;height:60px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;font-size:26px;background:var(--surface-muted)}.bill-card__content{min-width:0}.bill-card__title{font-weight:700;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bill-card__meta{display:flex;gap:8px;align-items:center;color:var(--text-muted);font-size:13px}.bill-card__amount{text-align:right}.bill-card__value{font-weight:800;font-size:18px}.bill-card__due{color:var(--text-muted);font-size:13px}.bill-card__due--overdue{color:#b91c1c}.bills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.bill-filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.bill-filter{padding:8px 14px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--gray-200);color:var(--text-muted);cursor:pointer;font-weight:600}.bill-filter.active{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.invite-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid rgba(12,18,36,.08);border-radius:var(--radius-lg);background:var(--surface)}.invite-card__content{flex:1}.invite-card__title{text-transform:uppercase;letter-spacing:.5px;font-size:12px;color:var(--text-muted);margin:0 0 4px}.invite-card__household{font-weight:700;margin:0}.invite-card__actions{display:flex;gap:8px}.grid-households{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.household-card-large{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-xl);overflow:hidden;border:1px solid rgba(12,18,36,.05);box-shadow:var(--shadow-soft);transition:transform var(--transition),box-shadow var(--transition)}.household-card-large:hover{transform:translateY(-4px);box-shadow:var(--shadow-strong)}.household-card-large__header{height:110px;background:var(--brand-600)}.household-card-large__body{padding:16px}.household-card-large__title{margin:0 0 6px;font-size:18px}.household-card-large__description{color:var(--text-muted);margin:0}.households-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.household-card{background:var(--surface);border:1px solid rgba(12,18,36,.05);border-radius:var(--radius-lg);padding:18px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-soft);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}.household-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong);border-color:var(--brand-200)}.household-card.add-card{border:2px dashed var(--gray-300);background:var(--surface-muted);align-items:center;justify-content:center;text-align:center;min-height:200px;cursor:pointer}.household-card.add-card:hover{border-color:var(--brand-400);background:var(--brand-50)}.add-icon{font-size:36px;color:var(--gray-400)}.household-card-header{display:flex;align-items:flex-start;gap:10px}.household-info h3,.household-name{margin:0;font-size:18px}.household-description{margin:4px 0 0;color:var(--text-muted)}.household-card-body{flex:1;display:flex;flex-direction:column;gap:10px}.household-members{display:flex;align-items:center;gap:8px}.member-label,.member-count{color:var(--text-muted);font-size:13px}.household-stats{display:flex;gap:14px}.stat-item{display:flex;flex-direction:column;gap:2px}.stat-value{font-weight:700}.stat-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.household-card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed var(--gray-200);padding-top:12px}.household-date{color:var(--text-muted);font-size:12px}.view-link{color:var(--brand-700);font-weight:700}.household-detail-header{margin-bottom:18px}.household-hero{display:grid;grid-template-columns:auto 1fr auto;gap:18px;background:var(--surface);border:1px solid rgba(12,18,36,.06);border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-soft)}.household-hero-icon{font-size:46px}.household-hero-info h1{margin:0}.household-hero-description{margin:6px 0;color:var(--text-muted)}.household-meta{display:flex;gap:12px;color:var(--text-muted);font-size:13px}.owner-badge{background:#fff7ed;color:#b45309;padding:4px 8px;border-radius:var(--radius);font-weight:700}.household-actions{display:flex;gap:8px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:18px 0 12px}.stat-card{background:var(--surface);border:1px solid rgba(12,18,36,.06);border-radius:var(--radius-lg);padding:14px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow-soft)}.stat-card.warning{border-color:#facc15;background:#fefce8}.stat-card.danger{border-color:#fca5a5;background:#fef2f2}.stat-card-icon{font-size:22px}.stat-card-value{font-weight:800;font-size:20px}.stat-card-label{color:var(--text-muted);font-size:13px}.stat-card-content{display:flex;flex-direction:column;gap:4px}.balance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.settlements-section{margin-top:16px}.settlements-list{display:flex;flex-direction:column;gap:8px}.settlement-item{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--radius)}.arrow{text-align:center;color:var(--text-muted)}.from,.to,.amount{font-weight:700}.amount{color:var(--brand-700)}.feed{display:flex;flex-direction:column;gap:12px}.post{background:var(--surface);border-radius:var(--radius-lg);border:1px solid rgba(12,18,36,.05);box-shadow:var(--shadow-soft)}.post__header{display:flex;align-items:center;gap:12px;padding:14px 16px 10px}.post__author-name{font-weight:700}.post__time{color:var(--text-muted);font-size:13px}.post__content{padding:0 16px 16px;color:var(--text-primary);white-space:pre-line}.post__bill-link{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;margin-top:10px;border-radius:var(--radius);background:var(--surface-muted);color:var(--brand-800);font-weight:600}.post__bill-link-icon{color:var(--brand-700)}.post__actions{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--gray-200)}.post__action-btn{flex:1;padding:10px;border-radius:var(--radius-pill);border:1px solid var(--gray-200);background:var(--surface);color:var(--text-muted);font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;justify-content:center}.post__action-btn:hover{background:var(--brand-50);color:var(--brand-800);border-color:var(--brand-200)}.comments{border-top:1px solid var(--gray-200);padding:12px 16px 16px}.comments__list{display:flex;flex-direction:column;gap:10px}.comment{display:flex;gap:10px}.comment__body{background:var(--surface-muted);padding:10px 12px;border-radius:var(--radius-lg)}.comment__author{font-weight:700;font-size:13px}.comment__content{color:var(--text-primary);font-size:14px}.comment__time{color:var(--text-muted);font-size:12px}.comment-empty{text-align:center;color:var(--text-muted);padding:10px;border:1px dashed var(--gray-300);border-radius:var(--radius);background:var(--surface-muted)}.comment-form{display:flex;gap:10px;margin-top:10px}.comment-form__input{flex:1;padding:10px 12px;border-radius:var(--radius-pill);border:1px solid var(--gray-200);background:var(--surface-muted)}.post-composer{background:var(--surface);border-radius:var(--radius-lg);padding:14px 16px;box-shadow:var(--shadow-soft);border:1px solid rgba(12,18,36,.05);margin-bottom:12px}.post-composer__header{display:flex;align-items:center;gap:10px}.post-composer__input{flex:1;padding:12px 14px;border-radius:var(--radius-pill);border:1px dashed var(--gray-300);background:var(--surface-muted);color:var(--text-muted);cursor:pointer}.post-composer__expanded{margin-top:12px}.post-composer__textarea{width:100%;border:none;background:transparent;padding:8px 0;font-size:15px;min-height:110px;resize:none;outline:none}.post-composer__footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--gray-200);padding-top:12px;margin-top:10px}.post-composer__options{display:flex;gap:8px}.post__attachment{margin-top:8px;padding:10px 12px;background:var(--surface-muted);border-radius:var(--radius)}.feed-list{display:flex;flex-direction:column;gap:12px}.bill-detail-header{margin-bottom:16px}.bill-hero{display:grid;grid-template-columns:auto 1fr auto;gap:16px;padding:18px;background:var(--surface);border:1px solid rgba(12,18,36,.06);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft)}.bill-hero-icon{font-size:46px}.bill-hero-info{display:flex;flex-direction:column;gap:6px}.bill-hero-title{display:flex;align-items:center;gap:10px;margin:0 0 6px}.bill-category{color:var(--text-muted);font-size:14px}.bill-description{color:var(--text-muted);margin:8px 0 0}.bill-actions{display:flex;gap:8px}.bill-detail-content{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:start}.bill-amount-card{background:#fff;border-radius:var(--radius-xl);padding:18px;box-shadow:var(--shadow-soft);border:1px solid rgba(12,18,36,.08)}.amount-main{text-align:center;margin-bottom:12px}.amount-label{color:var(--text-muted);font-size:13px}.amount-value{font-size:34px;font-weight:800;margin-top:4px}.due-date-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid rgba(12,18,36,.08);color:var(--text-primary);margin:0 auto 12px}.due-icon{font-size:16px}.due-text{font-weight:600}.due-date-badge.overdue{background:#fef2f2;color:#b91c1c;border-color:#fecdd3}.due-date-badge.near{background:#fff7ed;color:#b45309;border-color:#fed7aa}.payment-progress{background:#ffffffa6;border-radius:var(--radius);padding:12px;border:1px solid rgba(12,18,36,.06)}.progress-info{display:flex;justify-content:space-between;color:var(--text-muted);font-size:13px;margin-bottom:6px}.progress-bar{height:8px;background:var(--gray-200);border-radius:var(--radius-pill);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));transition:width .3s ease}.progress-fill.complete{background:linear-gradient(135deg,#22c55e,#16a34a)}.progress-remaining{text-align:center;color:#b45309;margin-top:8px;font-size:12px}.bill-section{background:var(--surface);border:1px solid rgba(12,18,36,.05);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-soft)}.splits-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.split-card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:12px;background:var(--surface-muted)}.split-card.paid{border-color:#bbf7d0;background:#ecfdf3}.split-card.me{border-color:var(--brand-300)}.split-card-header{display:flex;align-items:center;gap:10px}.split-user-info{flex:1}.split-user-name{font-weight:700;display:flex;align-items:center;gap:8px}.me-badge{background:var(--brand-50);color:var(--brand-800);padding:2px 6px;border-radius:var(--radius);font-size:11px;border:1px solid var(--brand-200)}.split-percentage{color:var(--text-muted);font-size:12px}.split-status{font-weight:700}.split-status.paid{color:#15803d}.split-status.pending{color:#b45309}.split-card-body{padding-top:10px;border-top:1px dashed var(--gray-300)}.split-amounts{display:flex;gap:10px}.split-amount{display:flex;flex-direction:column;gap:2px;font-size:13px}.split-amount .value{font-weight:700}.split-amount.paid .value{color:#15803d}.split-amount.remaining .value{color:#b91c1c}.split-progress{height:5px;background:var(--gray-200);border-radius:var(--radius-pill);overflow:hidden}.split-progress-fill{height:100%;background:linear-gradient(135deg,#22c55e,#16a34a)}.split-card-actions{margin-top:10px}.payments-timeline{display:flex;flex-direction:column;gap:10px}.payment-item{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:12px;background:var(--surface-muted);border:1px solid var(--gray-200);border-radius:var(--radius)}.payment-icon{font-size:24px}.payment-content{display:flex;flex-direction:column;gap:6px}.payment-header{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.payment-amount{font-weight:800;color:#15803d}.payment-date{color:var(--text-muted);font-size:12px}.payment-details{display:flex;gap:10px;color:var(--text-muted);font-size:13px}.payment-user{font-weight:700;color:var(--text-primary)}.payment-notes{margin:4px 0 0;color:var(--text-muted)}.bill-meta-card{display:flex;gap:18px;background:var(--surface);border:1px dashed var(--gray-300);border-radius:var(--radius);padding:14px;color:var(--text-muted)}.meta-item{display:flex;flex-direction:column;gap:2px}.meta-label{font-size:12px;text-transform:uppercase;letter-spacing:.4px}.meta-value{font-weight:700;color:var(--text-primary)}.payment-method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px}.payment-method-btn{background:var(--surface-muted);border:1px solid var(--gray-200);border-radius:var(--radius);padding:10px 8px;cursor:pointer;transition:all var(--transition);text-align:center}.payment-method-btn:hover{border-color:var(--brand-300)}.payment-method-btn.selected{border-color:var(--brand-600);background:var(--brand-50)}.method-icon{font-size:18px;display:block}.method-label{font-size:12px;color:var(--text-muted);text-transform:uppercase}.balance-card{background:#0f766e;color:#fff;border-radius:var(--radius-xl);padding:18px;box-shadow:var(--shadow-strong)}.balance-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;opacity:.9}.balance-card__title{font-weight:700}.balance-card__period{font-size:13px}.balance-card__amount{font-size:32px;font-weight:800;margin-bottom:4px}.balance-card__subtitle{opacity:.8}.balance-card__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.25)}.balance-card__stat-label{font-size:12px;opacity:.8}.balance-card__stat-value{font-weight:700;font-size:18px}.members-list{display:flex;flex-direction:column;gap:8px}.member-item{display:flex;align-items:center;gap:10px;padding:12px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--gray-200)}.member-item__name{font-weight:700}.member-item__email{color:var(--text-muted);font-size:13px}.member-item__info{flex:1}.members-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.member-card{background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:14px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-soft)}.member-card.owner{border-color:#facc15;background:#fefce8}.member-card.pending{opacity:.7}.member-card-info{flex:1}.member-email{color:var(--text-muted);font-size:13px}.member-role{display:inline-block;padding:4px 8px;border-radius:var(--radius-pill);background:var(--gray-100);font-size:12px;font-weight:700}.member-role.owner{background:#fef3c7;color:#b45309}.profile-header{background:var(--surface);border-radius:var(--radius-xl);padding:18px;box-shadow:var(--shadow-soft);border:1px solid rgba(12,18,36,.05);margin-bottom:16px}.profile-hero{display:flex;gap:16px;align-items:center;margin-bottom:12px}.profile-avatar-large .avatar{width:86px;height:86px;font-size:28px}.profile-info h1{margin:0}.profile-email{color:var(--text-muted);margin:4px 0}.profile-since{color:var(--text-muted);font-size:13px}.profile-stats{display:flex;gap:18px;border-top:1px solid var(--gray-200);padding-top:12px}.profile-stats .stat-item{text-align:center}.profile-stats .stat-value{font-weight:800;font-size:22px;color:var(--text-primary)}.profile-stats .stat-item.positive .stat-value{color:#15803d}.profile-stats .stat-item.negative .stat-value{color:#b91c1c}.settings-card{background:var(--surface);border-radius:var(--radius-xl);padding:18px;box-shadow:var(--shadow-soft);border:1px solid rgba(12,18,36,.05);margin-bottom:16px}.settings-card.danger{border-color:#fecdd3}.settings-card-header h2{margin:0}.settings-card-header p{color:var(--text-muted);margin:4px 0 0}.settings-form{max-width:460px}.danger-actions{display:flex;gap:10px}.notifications-list{display:flex;flex-direction:column;gap:10px}.notification-icon{font-size:18px}.notification-content{display:flex;flex-direction:column;gap:2px}.notification-message{color:var(--text-primary)}.notification-time{color:var(--text-muted);font-size:12px}.notification-unread-dot{width:8px;height:8px;background:var(--brand-500);border-radius:50%}.tab-badge{background:#ef4444;color:#fff;font-size:11px;padding:2px 6px;border-radius:var(--radius-pill);margin-left:6px}.notification-bell{position:relative}.notification-bell__badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;min-width:18px;height:18px;border-radius:var(--radius-pill);font-size:11px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.notifications-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:360px;max-height:520px;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-strong);border:1px solid rgba(12,18,36,.06);overflow:hidden}.notifications-dropdown__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--gray-200)}.notifications-dropdown__title{font-weight:700}.notifications-dropdown__list{max-height:460px;overflow-y:auto}.notification-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:12px 14px;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background var(--transition)}.notification-item:hover{background:var(--gray-50)}.notification-item.unread{background:var(--brand-50)}.notification-item__icon{width:40px;height:40px;border-radius:var(--radius-pill);background:var(--surface-muted);display:inline-flex;align-items:center;justify-content:center;font-size:18px}.notification-item__text{color:var(--text-primary)}.notification-item__time{color:var(--text-muted);font-size:12px}.notification-item__unread-indicator{width:8px;height:8px;border-radius:50%;background:var(--brand-600);align-self:center}.notification-item__content{display:flex;flex-direction:column;gap:2px}.modal--notification{max-width:520px}.notification-detail{display:flex;flex-direction:column;gap:12px}.notification-detail__time{color:var(--text-muted);font-size:12px;letter-spacing:.4px}.notification-detail__message{background:var(--surface-muted);border-left:4px solid var(--brand-500);padding:12px;border-radius:var(--radius)}.btn-ghost.btn-sm,.btn--ghost.btn--sm{padding:8px 12px}.btn-ghost.btn-lg,.btn--ghost.btn--lg{padding:14px 18px}.mobile-drawer{position:fixed;top:0;left:0;width:280px;height:100vh;background:#fff;border-right:1px solid rgba(12,18,36,.08);box-shadow:8px 0 24px #0c122414;padding:18px;transform:translate(-100%);transition:transform var(--transition);z-index:30}.mobile-drawer.open{transform:translate(0)}.mobile-drawer__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c122452;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20}.mobile-drawer__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.mobile-drawer__user{display:flex;align-items:center;gap:10px}.mobile-drawer__name{font-weight:700}.mobile-drawer__email{color:var(--text-muted);font-size:13px}.mobile-drawer__links{display:flex;flex-direction:column;gap:8px;margin:14px 0}.mobile-drawer__link{display:inline-flex;align-items:center;gap:10px;padding:12px;border-radius:var(--radius);border:1px solid rgba(12,18,36,.08);background:var(--surface-muted);font-weight:700}.mobile-drawer__link.active{border-color:var(--brand-500);color:var(--brand-700);background:var(--brand-50)}.mobile-drawer__actions{display:flex;flex-direction:column;gap:10px}.mobile-bottom-bar{position:fixed;inset:auto 0 0 0;height:68px;background:#fff;border-top:1px solid rgba(12,18,36,.08);box-shadow:0 -8px 24px #0c122414;display:none;align-items:center;justify-content:space-around;padding:8px 14px;z-index:25}.mobile-bottom-bar__item{flex:1;display:inline-flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-muted);font-size:12px;font-weight:700}.mobile-bottom-bar__item.active{color:var(--brand-700)}.mobile-bottom-bar__fab{position:absolute;left:50%;top:-18px;transform:translate(-50%);width:54px;height:54px;border-radius:50%;border:none;background:var(--brand-600);color:#fff;box-shadow:var(--shadow-strong);display:inline-flex;align-items:center;justify-content:center}@media (max-width: 1024px){.app-main{margin-top:20px}.app-nav{display:none}.mobile-menu-btn,.mobile-icon-btn{display:inline-flex}.desktop-only{display:none!important}.mobile-bottom-bar{display:flex}.app-main{padding-bottom:96px}.auth-container{grid-template-columns:1fr}.auth-features{order:-1}.bill-detail-content,.household-hero,.bill-hero{grid-template-columns:1fr}}@media (max-width: 768px){.page{padding:18px}.page-header{flex-direction:column;align-items:flex-start}.form-row,.split-item{grid-template-columns:1fr}.app-header{padding:0 16px}.app-main{padding:0 16px 100px}.auth-page{padding:18px}.notifications-dropdown{width:calc(100vw - 24px);right:12px}}
