.landing-page{min-height:100vh}.landing-hero{background:var(--gradient-primary);padding:60px 20px;display:flex;flex-direction:column;align-items:center;gap:40px}@media (min-width: 768px){.landing-hero{flex-direction:row;justify-content:center;padding:80px 40px;gap:80px}}.landing-content{text-align:center;max-width:500px}@media (min-width: 768px){.landing-content{text-align:left}}.landing-title{color:#fff;font-size:36px;font-weight:800;line-height:1.2;margin-bottom:16px}@media (min-width: 768px){.landing-title{font-size:48px}}.landing-subtitle{color:#ffffffe6;font-size:18px;margin-bottom:32px;line-height:1.6}.landing-buttons{display:flex;gap:16px;justify-content:center}@media (min-width: 768px){.landing-buttons{justify-content:flex-start}}.landing-buttons .btn-primary{background:#fff;color:var(--coral)}.landing-buttons .btn-secondary{background:transparent;color:#fff;border-color:#fff}.landing-buttons .btn-secondary:hover{background:#ffffff1a}.phone-frame{width:280px;background:#1a1a1a;border-radius:40px;padding:12px;box-shadow:var(--shadow-lg)}.phone-screen{background:var(--cream);border-radius:32px;overflow:hidden;padding:16px}.mock-header{background:var(--gradient-primary);margin:-16px -16px 16px;padding:16px;display:flex;justify-content:space-between;color:#fff;font-weight:700}.mock-points{background:var(--sunshine);color:var(--text-dark);padding:4px 12px;border-radius:20px;font-size:13px}.mock-post{background:#fff;border-radius:16px;padding:12px;display:flex;gap:10px;margin-bottom:12px}.mock-avatar{width:40px;height:40px;background:var(--gradient-primary);border-radius:50%}.mock-content{flex:1}.mock-name{font-weight:700;font-size:14px;margin-bottom:4px}.mock-text{font-size:13px;color:var(--text-body)}.mock-reactions{display:flex;gap:12px;font-size:14px;padding:0 12px}.landing-features{padding:60px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;max-width:1000px;margin:0 auto}.feature-card{text-align:center;padding:32px 24px;background:#fff;border-radius:var(--radius-card);box-shadow:var(--shadow-sm)}.feature-icon{font-size:48px;display:block;margin-bottom:16px}.feature-card h3{font-size:20px;margin-bottom:8px}.feature-card p{color:var(--text-muted);font-size:15px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--gradient-primary)}.auth-container{background:#fff;border-radius:var(--radius-card);padding:40px;width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{font-size:28px;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-block;margin-bottom:16px}.auth-header h1{font-size:24px;margin-bottom:8px}.auth-header p{color:var(--text-muted)}.auth-form{margin-bottom:24px}.auth-error{background:#ffebee;color:#c62828;padding:12px 16px;border-radius:var(--radius-input);margin-bottom:16px;font-size:14px}.auth-submit{width:100%;margin-top:8px}.auth-divider{display:flex;align-items:center;margin:24px 0;gap:16px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#eee}.auth-divider span{color:var(--text-muted);font-size:14px}.auth-toggle{width:100%}.auth-footer{text-align:center;color:var(--text-muted)}.form-hint{font-size:13px;color:var(--text-muted);margin-top:6px}.join-type-toggle{display:flex;background:var(--cream);border-radius:var(--radius-button);padding:4px;margin-bottom:16px}.toggle-btn{flex:1;padding:10px 16px;background:none;border:none;border-radius:var(--radius-button);font-size:14px;font-weight:600;color:var(--text-muted);transition:all .2s}.toggle-btn.active{background:#fff;color:var(--coral);box-shadow:var(--shadow-sm)}.otp-input{text-align:center;font-size:28px;font-weight:700;letter-spacing:8px;font-family:monospace}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;justify-content:space-around;padding:8px 0 12px;box-shadow:0 -2px 16px #00000014;z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--text-muted);padding:8px 16px;border-radius:12px;transition:all .2s}.nav-item:hover{text-decoration:none;color:var(--coral)}.nav-item.active{color:var(--coral)}.nav-icon{font-size:24px;margin-bottom:2px}.nav-label{font-size:12px;font-weight:600}.post-card{margin-bottom:16px}.post-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.post-meta{display:flex;flex-direction:column}.post-author{font-weight:700;color:var(--text-dark)}.post-time{font-size:13px;color:var(--text-muted)}.post-content{margin-bottom:12px}.post-message{font-size:16px;line-height:1.5;margin-bottom:12px}.post-image{width:100%;border-radius:12px;max-height:400px;object-fit:cover}.post-reactions{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}.reaction-btn{background:var(--blush);border:none;padding:6px 12px;border-radius:20px;font-size:16px;display:flex;align-items:center;gap:4px;cursor:pointer;transition:all .2s}.reaction-btn:hover{background:#ffe8e8}.reaction-btn.active{background:var(--coral);color:#fff}.reaction-count{font-size:13px;font-weight:600}.comments-toggle{background:none;border:none;color:var(--text-muted);font-size:14px;padding:8px 0;cursor:pointer}.comments-toggle:hover{color:var(--coral)}.comments-section{border-top:1px solid #eee;padding-top:12px;margin-top:8px}.comment{display:flex;gap:10px;margin-bottom:12px}.comment-content{flex:1;background:var(--cream);padding:8px 12px;border-radius:12px}.comment-author{font-weight:600;font-size:13px;color:var(--text-dark)}.comment-text{font-size:14px;margin-top:2px}.comment-form{display:flex;gap:8px;margin-top:12px}.comment-form input{flex:1;padding:10px 14px;font-size:14px}.comment-form button{background:var(--gradient-primary);color:#fff;padding:10px 20px;border-radius:var(--radius-button);font-weight:600;font-size:14px}.comment-form button:disabled{opacity:.5;cursor:not-allowed}.feed-page{background:var(--cream)}.feed-header{background:var(--gradient-primary);padding:20px}.feed-header-content{display:flex;justify-content:space-between;align-items:center}.feed-header h1{color:#fff;font-size:22px}.header-points{display:flex;align-items:center;gap:12px}.header-points .streak-badge{color:var(--sunshine);font-size:14px}.empty-state{text-align:center;padding:60px 20px}.empty-icon{font-size:64px;display:block;margin-bottom:16px}.empty-state h2{margin-bottom:8px}.empty-state p{color:var(--text-muted);margin-bottom:24px}.fab{position:fixed;bottom:90px;right:20px;width:60px;height:60px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);z-index:50;transition:transform .2s}.fab:hover{transform:scale(1.1);text-decoration:none}.fab span{color:#fff;font-size:32px;font-weight:300;line-height:1}.new-post-page{min-height:100vh;background:#fff}.new-post-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--text-muted);text-decoration:none;border-radius:50%;transition:background .2s}.close-btn:hover{background:var(--cream);text-decoration:none}.new-post-header h1{font-size:18px}.post-btn{background:var(--gradient-primary);color:#fff;padding:8px 20px;border-radius:var(--radius-button);font-weight:700;font-size:14px}.post-btn:disabled{opacity:.5;cursor:not-allowed}.new-post-content{padding:20px}.post-author-preview{display:flex;align-items:center;gap:12px;margin-bottom:16px}.author-name{font-weight:700;color:var(--text-dark)}.post-textarea{width:100%;min-height:150px;border:none;resize:none;font-size:18px;line-height:1.5;padding:0}.post-textarea:focus{outline:none;border:none}.image-preview{position:relative;margin:20px 0}.image-preview img{width:100%;border-radius:16px;max-height:400px;object-fit:cover}.remove-image{position:absolute;top:8px;right:8px;width:32px;height:32px;background:#0009;color:#fff;border:none;border-radius:50%;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.post-actions{border-top:1px solid #eee;padding-top:16px;margin-top:16px}.photo-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;background:var(--cream);border-radius:var(--radius-button);cursor:pointer;font-weight:600;color:var(--text-dark);transition:background .2s}.photo-btn:hover{background:var(--blush)}.action-icon{font-size:20px}.challenge-card{display:flex;align-items:center;gap:12px;margin-bottom:12px;transition:all .3s}.challenge-card.completed{opacity:.7;background:var(--cream)}.challenge-checkbox{position:relative}.challenge-checkbox input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.challenge-checkbox label{display:block;width:28px;height:28px;cursor:pointer}.challenge-checkbox .checkmark{display:block;width:28px;height:28px;border:3px solid #ddd;border-radius:50%;transition:all .2s}.challenge-checkbox input:checked~label .checkmark{background:var(--gradient-primary);border-color:var(--coral)}.challenge-checkbox input:checked~label .checkmark:after{content:"✓";display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;font-size:14px;height:100%}.challenge-icon{font-size:32px;width:50px;height:50px;background:var(--blush);border-radius:12px;display:flex;align-items:center;justify-content:center}.challenge-info{flex:1}.challenge-title{font-size:16px;font-weight:700;margin-bottom:2px}.challenge-description{font-size:13px;color:var(--text-muted)}.challenge-points{flex-shrink:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:var(--radius-card);padding:32px;max-width:400px;width:100%;position:relative;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:12px;right:12px;background:none;border:none;font-size:28px;color:var(--text-muted);cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.modal-close:hover{background:var(--cream);color:var(--text-dark)}.challenges-page .page-header{padding-bottom:24px}.progress-info{margin-top:16px}.progress-bar{height:8px;background:#ffffff4d;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:var(--sunshine);border-radius:4px;transition:width .5s ease}.progress-text{font-size:14px;color:#ffffffe6}.completion-modal{text-align:center;padding:20px 0}.completion-emoji{font-size:64px;display:block;margin-bottom:16px;animation:bounce .5s ease}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.completion-modal h2{font-size:32px;margin-bottom:8px}.completion-points{font-size:24px;font-weight:800;color:var(--coral);margin-bottom:8px}.completion-message{color:var(--text-muted);margin-bottom:24px}.completion-actions{display:flex;flex-direction:column;gap:12px}.completion-actions button{width:100%}.leaderboard-page .page-header{padding-bottom:16px}.view-toggle{display:flex;background:#fff3;border-radius:var(--radius-button);padding:4px;margin-top:16px}.view-toggle .toggle-btn{flex:1;padding:10px 16px;background:none;border:none;border-radius:var(--radius-button);font-size:14px;font-weight:600;color:#fffc;transition:all .2s}.view-toggle .toggle-btn.active{background:#fff;color:var(--coral)}.leaderboard-list{display:flex;flex-direction:column;gap:12px}.leaderboard-item{display:flex;align-items:center;gap:12px;background:#fff;padding:16px;border-radius:var(--radius-card);box-shadow:var(--shadow-sm);transition:transform .2s}.leaderboard-item.current-user{background:var(--blush);border:2px solid var(--coral)}.rank{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;color:var(--text-muted)}.leaderboard-item:first-child .rank{font-size:24px}.member-info{flex:1}.member-name{font-weight:700;color:var(--text-dark);display:flex;align-items:center;gap:8px}.you-tag{font-size:12px;color:var(--coral);font-weight:600}.member-points{flex-shrink:0}.profile-page{background:var(--cream)}.profile-header{background:var(--gradient-primary);padding:40px 20px 30px;text-align:center}.profile-avatar-container{margin-bottom:16px}.profile-avatar-container .avatar{border:4px solid white;box-shadow:var(--shadow-md)}.profile-name-row{display:flex;align-items:center;justify-content:center;gap:12px}.profile-name-row h1{color:#fff;font-size:24px}.edit-btn{background:#fff3;color:#fff;padding:6px 16px;border-radius:var(--radius-button);font-size:13px;font-weight:600}.edit-name{max-width:280px;margin:0 auto}.edit-name input{text-align:center;font-size:18px;font-weight:700;margin-bottom:12px}.edit-actions{display:flex;gap:8px;justify-content:center}.edit-actions button{padding:8px 20px;border-radius:var(--radius-button);font-weight:600;font-size:14px;background:#fff;color:var(--coral)}.edit-actions button.cancel{background:#fff3;color:#fff}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.stat-card{background:#fff;border-radius:var(--radius-card);padding:16px;text-align:center;box-shadow:var(--shadow-sm)}.stat-value{display:block;font-size:28px;font-weight:800;color:var(--coral);margin-bottom:4px}.streak-fire{font-size:20px}.stat-label{font-size:12px;color:var(--text-muted);font-weight:600}.profile-section{margin-bottom:24px}.profile-section h2{font-size:14px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding-left:4px}.family-info{margin-bottom:12px}.family-name{font-weight:700;font-size:18px;color:var(--text-dark)}.invite-code-row{display:flex;align-items:center;gap:12px;background:var(--cream);padding:12px;border-radius:var(--radius-input)}.invite-label{font-size:14px;color:var(--text-muted)}.invite-code{font-weight:700;font-family:monospace;font-size:16px;color:var(--text-dark);flex:1}.copy-btn{background:var(--gradient-primary);color:#fff;padding:8px 16px;border-radius:var(--radius-button);font-size:13px;font-weight:600}.logout-btn{width:100%;padding:14px;background:none;border:2px solid #e53935;color:#e53935;border-radius:var(--radius-button);font-weight:700;font-size:16px;transition:all .2s}.logout-btn:hover{background:#ffebee}:root{--coral: #FF6B6B;--tangerine: #FF8E53;--sunshine: #FFE66D;--cream: #FFF9F5;--blush: #FFF5F5;--text-dark: #333333;--text-body: #555555;--text-muted: #999999;--white: #FFFFFF;--gradient-primary: linear-gradient(135deg, #FF6B6B 0%, #FF8E53 100%);--gradient-sunset: linear-gradient(135deg, #FF6B6B 0%, #FFE66D 100%);--radius-card: 20px;--radius-button: 30px;--radius-input: 14px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Nunito,sans-serif;background-color:var(--cream);color:var(--text-body);line-height:1.5;min-height:100vh}h1,h2,h3,h4,h5,h6{color:var(--text-dark);font-weight:700}a{color:var(--coral);text-decoration:none}a:hover{text-decoration:underline}button{font-family:Nunito,sans-serif;cursor:pointer;border:none;outline:none}input,textarea{font-family:Nunito,sans-serif;border:2px solid #eee;border-radius:var(--radius-input);padding:14px 18px;font-size:16px;width:100%;transition:border-color .2s}input:focus,textarea:focus{outline:none;border-color:var(--coral)}.btn-primary{background:var(--gradient-primary);color:#fff;padding:14px 32px;border-radius:var(--radius-button);font-size:16px;font-weight:700;box-shadow:var(--shadow-md);transition:transform .2s,box-shadow .2s}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:var(--white);color:var(--coral);padding:14px 32px;border-radius:var(--radius-button);font-size:16px;font-weight:700;border:2px solid var(--coral);transition:background .2s}.btn-secondary:hover{background:var(--blush)}.card{background:var(--white);border-radius:var(--radius-card);padding:20px;box-shadow:var(--shadow-sm)}.avatar{border-radius:50%;object-fit:cover}.avatar-sm{width:36px;height:36px}.avatar-md{width:48px;height:48px}.avatar-lg{width:80px;height:80px}.avatar-xl{width:120px;height:120px}.page{min-height:100vh;padding-bottom:80px}.page-header{background:var(--gradient-primary);color:#fff;padding:20px;text-align:center}.page-header h1{color:#fff;font-size:24px}.page-content{padding:20px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:var(--text-dark)}.form-error{color:#e53935;font-size:14px;margin-top:4px}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.points-badge{background:var(--sunshine);color:var(--text-dark);padding:4px 12px;border-radius:20px;font-weight:700;font-size:14px}.streak-badge{display:inline-flex;align-items:center;gap:4px;color:var(--coral);font-weight:700}.spinner{width:40px;height:40px;border:4px solid var(--blush);border-top-color:var(--coral);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{display:flex;justify-content:center;align-items:center;min-height:200px}@keyframes confetti-fall{0%{transform:translateY(-100%) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.confetti{position:fixed;width:10px;height:10px;top:0;animation:confetti-fall 3s ease-out forwards}
