.sync-status{position:relative;display:inline-block}.sync-status-indicator{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:12px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);font-size:12px;font-weight:500;transition:all .2s ease}.sync-status-indicator:hover{background:#ffffff26}.sync-status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s infinite}.sync-status-dot.offline{background-color:#ff6b6b}.sync-status-dot.syncing{background-color:#4ecdc4}.sync-status-dot.pending{background-color:#ffa726}.sync-status-dot.synced{background-color:#66bb6a}.sync-status-indicator.clickable{cursor:pointer}.sync-status-indicator.default{cursor:default}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.sync-status-text{color:#fff;white-space:nowrap}.sync-button{background:none;border:none;color:#fff;cursor:pointer;font-size:14px;padding:2px;border-radius:4px;transition:background .2s ease}.sync-button:hover{background:#ffffff1a}.sync-button:active{transform:rotate(180deg);transition:transform .3s ease}.sync-status-details{position:absolute;top:100%;right:0;margin-top:8px;padding:12px;background:#000000e6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:8px;border:1px solid rgba(255,255,255,.1);min-width:200px;z-index:1000;box-shadow:0 8px 32px #0000004d}.sync-detail{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sync-detail:last-child{margin-bottom:0}.sync-detail-label{color:#ffffffb3;font-size:12px}.sync-detail-value{color:#fff;font-size:12px;font-weight:500}@media (max-width: 768px){.sync-status-details{right:auto;left:0;min-width:180px}.sync-status-indicator{font-size:11px;padding:3px 6px}}.app-container{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.header{text-align:center;margin-bottom:24px;color:#fff}.header h1{font-size:28px;font-weight:700;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.3)}.header p{font-size:16px;margin:8px 0 0;opacity:.9}.family-info{margin-top:12px;padding:8px 16px;background:#ffffff1a;border-radius:20px;display:inline-block}.family-name{font-weight:600;margin-right:12px}.family-members{font-size:14px;opacity:.8}.nav-tabs{display:flex;background:#ffffff1a;border-radius:12px;padding:4px;margin-bottom:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow-x:auto}.nav-tab{flex:1;min-width:80px;padding:12px 8px;text-align:center;border-radius:8px;cursor:pointer;transition:all .3s ease;color:#fff;font-weight:500;border:none;background:transparent;font-size:12px}.nav-tab.active{background:#fff3;box-shadow:0 2px 8px #0000001a}.nav-tab:hover{background:#ffffff26}.tab-content{background:#fffffff2;border-radius:16px;padding:24px;box-shadow:0 8px 32px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:400px;animation:fadeIn .3s ease-in-out}.loading{text-align:center;padding:40px;color:#666}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error{background:#fee;color:#c33;padding:20px;border-radius:12px;text-align:center;border:1px solid #fcc}.retry-button{background:#667eea;color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:600;margin-top:16px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:32px}.kpi-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;border-radius:12px;text-align:center;box-shadow:0 4px 16px #0000001a}.kpi-value{font-size:24px;font-weight:700;margin-bottom:4px}.kpi-label{font-size:14px;opacity:.9}.section{margin-bottom:32px}.section h3{margin:0 0 16px;font-size:18px;font-weight:600;color:#333}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h3{margin:0}.add-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:10px 16px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:transform .2s ease}.add-button:hover{transform:translateY(-2px)}.accounts-list{display:flex;flex-direction:column;gap:12px}.account-card{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:16px;display:flex;justify-content:space-between;align-items:center;transition:box-shadow .2s ease}.account-card:hover{box-shadow:0 2px 8px #0000001a}.account-info{flex:1}.account-name{font-weight:600;color:#333;margin-bottom:4px}.account-type{font-size:12px;color:#6c757d}.account-balance{font-size:18px;font-weight:700;color:#667eea}.goals-list{display:flex;flex-direction:column;gap:16px}.goal-card{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:20px;display:flex;justify-content:space-between;align-items:center;transition:box-shadow .2s ease}.goal-card:hover{box-shadow:0 2px 8px #0000001a}.goal-info{flex:1}.goal-name{font-weight:600;color:#333;margin-bottom:4px}.goal-description{font-size:14px;color:#6c757d;margin-bottom:12px}.goal-progress{margin-top:8px}.progress-bar{width:100%;height:8px;background:#e1e5e9;border-radius:4px;overflow:hidden;margin-bottom:4px}.progress-fill{height:100%;background:linear-gradient(90deg,#4ecdc4,#44a08d);transition:width .3s ease;width:0%}.progress-text{font-size:12px;color:#6c757d}.goal-percent{font-size:20px;font-weight:700;color:#667eea;margin-left:16px}.shopping-lists{display:flex;flex-direction:column;gap:16px}.shopping-list-card{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:20px;transition:box-shadow .2s ease}.shopping-list-card:hover{box-shadow:0 2px 8px #0000001a}.list-info{margin-bottom:12px}.list-name{font-weight:600;color:#333;margin-bottom:4px}.list-stats{font-size:14px;color:#6c757d;margin-bottom:4px}.list-total{font-size:16px;font-weight:600;color:#667eea}.list-progress{margin-top:8px}.family-tab{text-align:center}.family-info-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:32px;border-radius:16px;margin-bottom:24px}.family-info-card h3{margin:0 0 16px;font-size:24px}.family-stats{display:flex;justify-content:center;gap:32px}.stat{text-align:center}.stat-value{display:block;font-size:20px;font-weight:700;margin-bottom:4px}.stat-label{font-size:14px;opacity:.8}.family-actions{display:flex;flex-direction:column;gap:12px}.action-button{background:#fff;color:#667eea;border:2px solid #667eea;padding:16px 24px;border-radius:12px;cursor:pointer;font-weight:600;transition:all .2s ease}.action-button:hover{background:#667eea;color:#fff}.no-family{padding:40px 20px}.no-family h3{margin:0 0 16px;font-size:24px;color:#333}.no-family p{color:#6c757d;margin-bottom:32px;line-height:1.6}.family-options{display:flex;flex-direction:column;gap:16px;max-width:300px;margin:0 auto}.option-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:16px 24px;border-radius:12px;cursor:pointer;font-weight:600;font-size:16px;transition:transform .2s ease}.option-button:hover{transform:translateY(-2px)}.create-form{background:#f8f9fa;border:1px solid #e1e5e9;border-radius:12px;padding:24px;margin-bottom:24px}.create-form h4{margin:0 0 20px;color:#333}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group textarea{resize:vertical;min-height:80px}.form-actions{display:flex;gap:12px;justify-content:flex-end}.save-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:600;transition:transform .2s ease}.save-button:hover{transform:translateY(-2px)}.cancel-button{background:#6c757d;color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:600;transition:transform .2s ease}.cancel-button:hover{transform:translateY(-2px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 480px){.app-container{padding:12px}.tab-content{padding:16px}.dashboard-grid{grid-template-columns:1fr}.kpi-card{padding:16px}.kpi-value{font-size:20px}.nav-tabs{overflow-x:auto}.nav-tab{min-width:70px;font-size:11px;padding:10px 6px}.section-header{flex-direction:column;gap:12px;align-items:stretch}.family-stats{flex-direction:column;gap:16px}.form-actions{flex-direction:column}}.payments-tab{padding:20px}.payment-card{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;align-items:center}.payment-info{flex:1}.payment-name{font-weight:600;font-size:16px;color:#2c3e50;margin-bottom:4px}.payment-description{font-size:14px;color:#7f8c8d;margin-bottom:8px}.payment-details{display:flex;gap:16px;margin-bottom:4px}.payment-amount{font-weight:600;color:#e74c3c}.payment-frequency{font-size:14px;color:#7f8c8d}.payment-due{font-size:14px;color:#f39c12}.payment-actions{display:flex;gap:8px}.pay-button{background:#27ae60;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:14px;cursor:pointer;transition:background-color .2s}.pay-button:hover{background:#229954}.landing{--bg: #ffffff;--bgAlt: #f7f9fc;--text: #0f172a;--muted: #64748b;--border: #e2e8f0;--accent: #2aabee;--accentDark: #1a90d0;--shadow: 0 12px 30px rgba(15, 23, 42, .12);min-height:100vh;background:var(--bg);color:var(--text)}.landing *{box-sizing:border-box}.landing__container{max-width:1120px;margin:0 auto;padding:0 20px}.landing a{color:inherit;text-decoration:none}.landing a:hover{text-decoration:underline;text-underline-offset:3px}.landing__nav{position:sticky;top:0;z-index:10;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.landing__navInner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}.landing__brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em}.landing__brandIcon{font-size:18px}.landing__brandText{color:var(--accent)}.landing__links{display:flex;gap:22px;font-size:14px;font-weight:600;color:var(--muted)}.landing__navCta{display:inline-flex;align-items:center;padding:10px 14px;border-radius:10px;background:var(--accent);color:#fff;font-size:14px;font-weight:700;white-space:nowrap}.landing__navCta:hover{background:var(--accentDark);text-decoration:none}@media (max-width: 720px){.landing__links{display:none}}.landing__hero{padding:56px 0 42px;background:radial-gradient(900px 420px at 15% 0%,#2aabee2e,#2aabee00 55%),linear-gradient(180deg,#2aabee0f,#fff 70%)}.landing__heroGrid{display:grid;grid-template-columns:1fr 320px;gap:36px;align-items:center}@media (max-width: 920px){.landing__heroGrid{grid-template-columns:1fr}}.landing__badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:#2aabee1f;color:var(--accentDark);border:1px solid rgba(42,171,238,.2);border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}.landing__h1{font-size:clamp(30px,4.2vw,52px);line-height:1.1;letter-spacing:-.04em;margin:0 0 14px}.landing__accent{color:var(--accent)}.landing__lead{color:var(--muted);font-size:16px;line-height:1.7;margin:0 0 22px;max-width:640px}.landing__heroActions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.landing__btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:12px;font-size:14px;font-weight:800;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}.landing__btnPrimary{background:var(--accent);color:#fff;box-shadow:0 12px 26px #2aabee38}.landing__btnPrimary:hover{background:var(--accentDark);transform:translateY(-1px);text-decoration:none}.landing__btnGhost{background:#fff;border-color:var(--border);color:var(--text)}.landing__btnGhost:hover{transform:translateY(-1px);box-shadow:var(--shadow);text-decoration:none}.landing a.landing__btnCta{background:#fff;cursor:pointer;min-width:240px;padding:14px 22px;color:#0b1220;border:3px solid #0b1220;border-radius:8px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;box-shadow:6px 6px #0b1220;transition:transform .12s ease,box-shadow .12s ease}.landing a.landing__btnCta:hover{color:#0b1220;transform:translate(-2px,-2px);box-shadow:8px 8px #0b1220;text-decoration:none}.landing a.landing__btnCta:active{color:#0b1220;transform:translate(0);box-shadow:4px 4px #0b1220}.landing a.landing__btnCta:focus-visible{outline:3px solid rgba(255,255,255,.9);outline-offset:3px}.landing__bullets{list-style:none;padding:0;margin:0;display:grid;gap:8px;color:var(--muted);font-size:14px}.landing__bullets li{display:flex;align-items:flex-start;gap:10px}.landing__bullets li:before{content:"";width:18px;height:18px;margin-top:2px;border-radius:999px;background:#2aabee24;border:1px solid rgba(42,171,238,.22);flex:0 0 auto}.landing__qrCard{border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:var(--shadow);padding:18px;display:grid;gap:14px;justify-items:center}.landing__qrImg{width:220px;height:220px;object-fit:contain;border-radius:12px;border:1px solid var(--border);background:#fff}.landing__qrText{text-align:center}.landing__qrTitle{font-weight:900;margin-bottom:2px}.landing__qrSub{color:var(--muted);font-size:13px}.landing__section{padding:64px 0}.landing__sectionAlt{background:var(--bgAlt)}.landing__sectionHeader{margin-bottom:26px}.landing__kicker{color:var(--accentDark);font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}.landing__h2{margin:0 0 10px;font-size:clamp(22px,3vw,34px);letter-spacing:-.03em}.landing__sub{margin:0;color:var(--muted);max-width:720px;font-size:15px;line-height:1.7}.landing__steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}@media (max-width: 920px){.landing__steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.landing__steps{grid-template-columns:1fr}}.landing__step{border:1px solid var(--border);border-radius:16px;padding:18px;background:#fff}.landing__stepNum{font-weight:1000;color:#2aabee57;font-size:28px;line-height:1;margin-bottom:10px}.landing__stepTitle{font-weight:900;margin-bottom:6px}.landing__stepText{color:var(--muted);font-size:14px;line-height:1.6}.landing__stepText code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#0f172a0f;padding:2px 6px;border-radius:6px}.landing__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}@media (max-width: 1020px){.landing__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.landing__grid{grid-template-columns:1fr}}.landing__card{border:1px solid var(--border);border-radius:16px;background:#fff;padding:18px;min-height:140px}.landing__icon{font-size:24px;margin-bottom:10px}.landing__card h3{margin:0 0 6px;font-size:15px;font-weight:900}.landing__card p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.6}.landing__shots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}@media (max-width: 1020px){.landing__shots{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.landing__shots{grid-template-columns:1fr}}.landing__shot{margin:0;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#fff}.landing__shot img{width:100%;display:block;aspect-ratio:9 / 16;object-fit:cover;background:var(--bgAlt)}.landing__shot figcaption{padding:10px 12px;font-size:13px;color:var(--muted);border-top:1px solid var(--border);text-align:center;font-weight:700}.landing__note{margin-top:14px;padding:14px 16px;border-radius:14px;border:1px solid rgba(42,171,238,.22);background:#2aabee14;color:var(--muted);font-size:13.5px;line-height:1.6}.landing__faq{display:grid;gap:10px;max-width:820px}.landing__faqItem{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#fff}.landing__faqItem summary{cursor:pointer;padding:14px 16px;font-weight:900}.landing__faqBody{padding:0 16px 14px;color:var(--muted);line-height:1.7;font-size:14px}.landing__about{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:start}@media (max-width: 920px){.landing__about{grid-template-columns:1fr}}.landing__aboutActions{margin-top:16px;display:flex;gap:12px;flex-wrap:wrap}.landing__roadmap{list-style:none;padding:0;margin:0;display:grid;gap:10px}.landing__roadmap li{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid var(--border);color:var(--muted);font-size:14px;line-height:1.6}.landing__dot{width:10px;height:10px;border-radius:999px;border:2px solid rgba(100,116,139,.7);margin-top:6px;flex:0 0 auto}.landing__dotDone{background:#22c55e;border-color:#22c55e}.landing__dotWip{background:var(--accent);border-color:var(--accent)}.landing__cta{padding:56px 0;background:linear-gradient(135deg,var(--accent) 0%,var(--accentDark) 100%);color:#fff}.landing__ctaInner{text-align:center;display:grid;gap:12px;justify-items:center}.landing__ctaInner h2{margin:0;font-size:clamp(22px,3vw,32px);letter-spacing:-.03em}.landing__ctaInner p{margin:0;opacity:.9;max-width:620px;line-height:1.7}.landing__footer{background:#0b1220;color:#ffffffc2;padding:26px 0}.landing__footerInner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.landing__footerBrand{display:inline-flex;align-items:center;gap:10px;font-weight:900;color:#fff}.landing__footerLinks{display:inline-flex;gap:16px;font-weight:800}.landing__footerLinks a:hover{color:#fff;text-decoration:underline}
