.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;max-width:400px}[dir=rtl] .toast-container{left:20px;right:auto}.toast{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000026;border-left:4px solid;animation:slideIn .3s ease-out;min-width:320px}[dir=rtl] .toast{border-left:none;border-right:4px solid}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInRTL{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}[dir=rtl] .toast{animation:slideInRTL .3s ease-out}.toast-success{border-left-color:#4caf50}[dir=rtl] .toast-success{border-right-color:#4caf50}.toast-success .toast-icon{color:#4caf50;background:#e8f5e9}.toast-error{border-left-color:#f44336}[dir=rtl] .toast-error{border-right-color:#f44336}.toast-error .toast-icon{color:#f44336;background:#ffebee}.toast-warning{border-left-color:#ff9800}[dir=rtl] .toast-warning{border-right-color:#ff9800}.toast-warning .toast-icon{color:#ff9800;background:#fff3e0}.toast-info{border-left-color:#2196f3}[dir=rtl] .toast-info{border-right-color:#2196f3}.toast-info .toast-icon{color:#2196f3;background:#e3f2fd}.toast-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0}.toast-message{flex:1;color:#333;font-size:.95rem;line-height:1.4}.toast-close{background:none;border:none;color:#666;font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background-color .2s,color .2s;flex-shrink:0}.toast-close:hover{background:#f0f0f0;color:#333}@media(max-width:600px){.toast-container{top:10px;right:10px;left:10px;max-width:none}[dir=rtl] .toast-container{right:10px;left:10px}.toast{min-width:auto;width:100%}}.loading-spinner-overlay{position:fixed;inset:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;z-index:9999}.loading-spinner-content{display:flex;flex-direction:column;align-items:center;gap:16px}.spinner{display:inline-block;position:relative}.spinner-circle{border-radius:50%;border-style:solid;border-color:#4caf50 transparent #4caf50 transparent;animation:spin 1.2s linear infinite}.loading-spinner-content.small .spinner-circle{width:24px;height:24px;border-width:3px}.loading-spinner-content.medium .spinner-circle{width:40px;height:40px;border-width:4px}.loading-spinner-content.large .spinner-circle{width:64px;height:64px;border-width:6px}.loading-message{margin:0;color:#666;font-size:1rem;text-align:center}.loading-spinner-content.small .loading-message{font-size:.875rem}.loading-spinner-content.large .loading-message{font-size:1.125rem}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.error-container{background:#fff;border-radius:16px;padding:48px 40px;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center}.error-icon{font-size:4rem;margin-bottom:24px;animation:shake .5s ease-in-out}.error-container h1{font-size:2rem;color:#333;margin:0 0 16px}.error-message{font-size:1.1rem;color:#666;margin:0 0 32px;line-height:1.6}.error-details{margin:24px 0;text-align:left;background:#f8f9fa;border-radius:8px;padding:16px;border:1px solid #e0e0e0}.error-details summary{cursor:pointer;font-weight:600;color:#555;padding:8px;user-select:none}.error-details summary:hover{color:#333}.error-stack{margin:16px 0 0;padding:16px;background:#fff;border-radius:6px;border:1px solid #e0e0e0;overflow-x:auto;font-size:.85rem;color:#d32f2f;white-space:pre-wrap;word-break:break-word}.error-actions{display:flex;gap:12px;justify-content:center;margin-bottom:24px}.error-actions button{padding:12px 24px;font-size:1rem;border-radius:8px;border:none;cursor:pointer;font-weight:500;transition:transform .2s,box-shadow .2s}.error-actions .btn-primary{background:#4caf50;color:#fff}.error-actions .btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4caf5066}.error-actions .btn-secondary{background:#f0f0f0;color:#333}.error-actions .btn-secondary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.error-support{font-size:.9rem;color:#888;margin:0}.error-support a{color:#667eea;text-decoration:none;font-weight:500}.error-support a:hover{text-decoration:underline}[dir=rtl] .error-details{text-align:right}@media(max-width:600px){.error-container{padding:32px 24px}.error-container h1{font-size:1.5rem}.error-message{font-size:1rem}.error-actions{flex-direction:column}.error-actions button{width:100%}}:root{--primary-color: #6366f1;--primary-dark: #4f46e5;--secondary-color: #64748b;--success-color: #10b981;--danger-color: #ef4444;--warning-color: #f59e0b;--background: #f8fafc;--surface: #ffffff;--text-primary: #1e293b;--text-secondary: #64748b;--border: #e2e8f0;--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--text-primary);line-height:1.6}.loading{display:flex;justify-content:center;align-items:center;min-height:100vh;font-size:1.2rem;color:var(--text-secondary)}.btn-primary,.btn-secondary,.btn-success,.btn-danger,.btn-disabled{padding:.625rem 1.25rem;border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover:not(:disabled){background-color:#475569}.btn-success{background-color:var(--success-color);color:#fff}.btn-success:hover:not(:disabled){background-color:#059669}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-disabled{background-color:var(--border);color:var(--text-secondary);cursor:not-allowed}button:disabled{opacity:.6;cursor:not-allowed}input,textarea,select{width:100%;padding:.625rem;border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;font-family:inherit;transition:border-color .2s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #6366f11a}label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:var(--text-primary)}.error-message{padding:.75rem 1rem;background-color:#fee2e2;color:#991b1b;border-radius:.5rem;margin-bottom:1rem;font-size:.875rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary);font-size:.875rem}.password-input-wrapper{width:100%;margin-bottom:16px}.password-label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#333}[dir=rtl] .password-label{text-align:right}.password-input-container{position:relative;width:100%}.password-input{width:100%;padding:12px 48px 12px 16px;font-size:16px;border:2px solid #e0e0e0;border-radius:8px;outline:none;transition:all .2s ease;background-color:#fff}[dir=rtl] .password-input{padding:12px 16px 12px 48px}.password-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.password-input.error{border-color:#ef4444}.password-input.error:focus{box-shadow:0 0 0 3px #ef44441a}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;color:#666;transition:color .2s ease;border-radius:4px}[dir=rtl] .password-toggle{right:auto;left:12px}.password-toggle:hover{color:#6366f1;background-color:#6366f10d}.password-toggle:focus{outline:2px solid #6366f1;outline-offset:2px}.password-error{display:block;margin-top:6px;font-size:13px;color:#ef4444}[dir=rtl] .password-error{text-align:right}@keyframes slideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.password-error{animation:slideIn .2s ease}@media(max-width:600px){.password-input{padding:10px 44px 10px 14px;font-size:16px}[dir=rtl] .password-input{padding:10px 14px 10px 44px}.password-toggle{right:10px}[dir=rtl] .password-toggle{left:10px}}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);position:relative;overflow:hidden}.auth-container:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:.4;pointer-events:none}.auth-card{background-color:#fff;padding:2.5rem;border-radius:1.5rem;box-shadow:0 20px 60px #0000004d;width:100%;max-width:440px;position:relative;z-index:1}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-out}.auth-header{margin-bottom:2rem}.auth-card h1{font-size:2rem;font-weight:700;text-align:center;margin-bottom:.5rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-card h2{font-size:1.5rem;font-weight:600;text-align:center;margin-bottom:.5rem;color:#1f2937}.auth-description{text-align:center;color:#6b7280;font-size:.875rem;margin-bottom:1.5rem;line-height:1.5}.auth-card form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.auth-link{text-align:center;margin-top:1rem;font-size:.875rem;color:var(--text-secondary)}.auth-link a{color:var(--primary-color);text-decoration:none;font-weight:600}.auth-link a:hover{text-decoration:underline}.auth-divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:var(--text-secondary);font-size:.875rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border)}.auth-divider span{padding:0 1rem}.btn-google{width:100%;padding:.75rem 1.25rem;background-color:#fff;border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.75rem;color:var(--text-primary)}.btn-google:hover:not(:disabled){background-color:var(--background);box-shadow:var(--shadow)}.btn-google:disabled{opacity:.6;cursor:not-allowed}.info-message{padding:.75rem 1rem;background-color:#dbeafe;color:#1e40af;border-radius:.5rem;margin-bottom:1rem;font-size:.875rem;text-align:center}.error-message{padding:.75rem 1rem;background-color:#fee2e2;color:#991b1b;border-radius:.75rem;margin-bottom:1rem;font-size:.875rem;display:flex;align-items:center;gap:.5rem;animation:slideDown .3s ease-out}.success-message{padding:.75rem 1rem;background-color:#d1fae5;color:#065f46;border-radius:.75rem;margin-bottom:1rem;font-size:.875rem;display:flex;align-items:center;gap:.5rem;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.form-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#374151;cursor:pointer;user-select:none}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#6366f1}.checkbox-label span{font-weight:500}.link-button{background:none;border:none;color:#6366f1;font-size:.875rem;font-weight:600;cursor:pointer;padding:0;transition:color .2s}.link-button:hover{color:#4f46e5;text-decoration:underline}.btn-text{width:100%;padding:.75rem;background:none;border:none;color:#6366f1;font-size:.875rem;font-weight:600;cursor:pointer;transition:color .2s;margin-top:.5rem}.btn-text:hover{color:#4f46e5}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-primary{display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.btn-primary:active:not(:disabled){transform:translateY(0)}[dir=rtl] .form-options,[dir=rtl] .checkbox-label,[dir=rtl] .error-message,[dir=rtl] .success-message{flex-direction:row-reverse}@media(max-width:600px){.auth-container{padding:.5rem}.auth-card{padding:2rem 1.5rem;border-radius:1.25rem}.auth-card h1{font-size:1.75rem}.auth-card h2{font-size:1.25rem}.form-options{flex-direction:column;align-items:flex-start;gap:.75rem}[dir=rtl] .form-options{align-items:flex-end}}.signup-hero{text-align:center;margin-bottom:2rem}.hero-icon{font-size:4rem;color:#667eea;margin-bottom:1rem;animation:bounceIn .8s ease}.signup-hero h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.hero-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;user-select:none}.checkbox-label input[type=checkbox]{width:auto;cursor:pointer}.checkbox-label span{font-size:.9375rem;color:var(--text-primary)}.invite-code-group{background:linear-gradient(135deg,#667eea0d,#764ba20d);border:2px solid rgba(102,126,234,.2);border-radius:.75rem;padding:1.25rem;margin-bottom:1.5rem;animation:slideInDown .4s ease}.invite-code-group label{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.code-badge{display:inline-flex;align-items:center;gap:.25rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600}.code-from-url{border-color:#10b981!important;background:linear-gradient(135deg,#10b9810d,#0596690d)!important}.help-text{display:block;margin-top:.5rem;font-size:.875rem;color:var(--text-secondary);text-align:center}.success-message{background:linear-gradient(135deg,#10b9811a,#0596691a);border:2px solid rgba(16,185,129,.3);color:#10b981;padding:1rem;border-radius:.75rem;margin-bottom:1.5rem;font-size:.9375rem;font-weight:600;text-align:center;animation:slideInDown .4s ease}@media(max-width:768px){.hero-icon{font-size:3rem}.signup-hero h1{font-size:1.5rem}.invite-code-group{padding:1rem}}.password-strength-indicator{margin-top:8px;margin-bottom:16px}.strength-bar-container{width:100%;height:4px;background-color:#e0e0e0;border-radius:2px;overflow:hidden;margin-bottom:4px}.strength-bar{height:100%;transition:width .3s ease,background-color .3s ease;border-radius:2px}.strength-label{font-size:.875rem;font-weight:600;margin-bottom:8px}.strength-feedback{list-style:none;padding:0;margin:0}.strength-feedback li{font-size:.75rem;color:#f44336;margin-bottom:4px;padding-left:16px;position:relative}.strength-feedback li:before{content:"•";position:absolute;left:0;color:#f44336}[dir=rtl] .strength-feedback li{padding-left:0;padding-right:16px}[dir=rtl] .strength-feedback li:before{left:auto;right:0}.welcome-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;gap:2rem;position:relative}.welcome-illustration{width:100%;max-width:400px;height:300px;display:flex;align-items:center;justify-content:center}.welcome-illustration img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 30px rgba(0,0,0,.2))}.welcome-card{background:#fff;border-radius:20px;padding:40px;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center;position:relative;z-index:1}.welcome-title{font-size:2.5rem!important;margin-bottom:10px;color:#333}.welcome-card h1{font-size:2.5rem;margin-bottom:10px;color:#333}.subtitle{font-size:1.2rem;color:#666;margin-bottom:40px}.action-buttons{display:flex;flex-direction:column;gap:20px}.action-btn{display:flex;flex-direction:row;align-items:center;gap:1.5rem;padding:30px 20px;border:2px solid #e0e0e0;border-radius:15px;background:#fff;cursor:pointer;transition:all .3s ease;text-align:right}[dir=ltr] .action-btn{text-align:left}.btn-content{display:flex;flex-direction:column;gap:.5rem;flex:1}.action-btn:hover{transform:translateY(-5px);box-shadow:0 10px 30px #00000026;border-color:#667eea}.action-btn.create-family:hover{background:linear-gradient(135deg,#667eea15,#764ba215)}.action-btn.join-family:hover{background:linear-gradient(135deg,#f093fb15,#f5576c15)}.btn-icon{font-size:3rem;margin-bottom:15px}.btn-text{font-size:1.5rem;font-weight:600;color:#333;margin-bottom:8px}.btn-description{font-size:.9rem;color:#999}@media(max-width:600px){.welcome-card{padding:30px 20px}.welcome-card h1{font-size:2rem}.btn-text{font-size:1.3rem}}.context-hint{background:linear-gradient(135deg,#667eea1a,#764ba21a);border:2px solid rgba(102,126,234,.3);border-radius:1rem;padding:1.25rem;margin-bottom:1.5rem;text-align:center}.context-hint p{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .5rem}.code-preview{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:#fff;border:2px solid #667eea;border-radius:.5rem;font-size:1rem;margin-top:.75rem}.code-preview strong{font-family:Courier New,monospace;font-size:1.25rem;letter-spacing:.2em;color:#667eea}.btn-badge{position:absolute;top:-10px;right:-10px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:.375rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;box-shadow:0 4px 12px #10b98166;animation:pulse 2s infinite}.primary-action{border-color:#667eea!important;box-shadow:0 8px 24px #667eea4d!important;transform:scale(1.05)}.primary-action:hover{transform:scale(1.08)!important}.example-hint{text-align:center;margin-top:1.5rem;padding:1rem;background:var(--background);border-radius:.75rem}.example-hint p{font-size:.875rem;color:var(--text-secondary);margin:0}.example-hint code{font-family:Courier New,monospace;font-size:1rem;font-weight:700;letter-spacing:.15em;color:#667eea;background:#667eea1a;padding:.25rem .625rem;border-radius:.375rem}@media(max-width:768px){.context-hint{padding:1rem}.code-preview{flex-direction:column;gap:.375rem;padding:.75rem 1rem}.code-preview strong{font-size:1.125rem}.btn-badge{font-size:.6875rem;padding:.3125rem .625rem}.primary-action{transform:scale(1.02)}.primary-action:hover{transform:scale(1.04)!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-out forwards}.fade-in-up{animation:fadeInUp .6s ease-out forwards}.fade-in-down{animation:fadeInDown .6s ease-out forwards}.fade-out{animation:fadeOut .4s ease-out forwards}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.slide-in-right{animation:slideInRight .5s cubic-bezier(.68,-.55,.265,1.55) forwards}.slide-in-left,[dir=rtl] .slide-in-right{animation:slideInLeft .5s cubic-bezier(.68,-.55,.265,1.55) forwards}[dir=rtl] .slide-in-left{animation:slideInRight .5s cubic-bezier(.68,-.55,.265,1.55) forwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.scale-in{animation:scaleIn .4s cubic-bezier(.68,-.55,.265,1.55) forwards}.scale-out{animation:scaleOut .3s ease-out forwards}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}.bounce{animation:bounce 1s ease infinite}.bounce-in{animation:bounceIn .6s ease-out forwards}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.shake{animation:shake .5s ease-in-out}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg) scale(.5)}to{opacity:1;transform:rotate(0) scale(1)}}.rotate{animation:rotate 2s linear infinite}.rotate-in{animation:rotateIn .6s ease-out forwards}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.shimmer{background:linear-gradient(to right,#f6f7f8,#edeef1 20%,#f6f7f8 40% 100%);background-size:1000px 100%;animation:shimmer 2s linear infinite}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.confetti{position:absolute;width:10px;height:10px;animation:confetti-fall 3s linear infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.float{animation:float 3s ease-in-out infinite}@keyframes glow{0%,to{box-shadow:0 0 5px #4caf5080}50%{box-shadow:0 0 20px #4caf50cc,0 0 30px #4caf5099}}.glow{animation:glow 2s ease-in-out infinite}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink{50%{border-color:transparent}}.typing{overflow:hidden;border-right:2px solid #4caf50;white-space:nowrap;animation:typing 3.5s steps(40,end),blink .75s step-end infinite}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.slide-up{animation:slideUp .4s cubic-bezier(.68,-.55,.265,1.55) forwards}@keyframes heartbeat{0%,to{transform:scale(1)}10%,30%{transform:scale(1.1)}20%,40%{transform:scale(1)}}.heartbeat{animation:heartbeat 1.5s ease-in-out infinite}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.animate-fast{animation-duration:.3s!important}.animate-normal{animation-duration:.5s!important}.animate-slow{animation-duration:1s!important}.animate-slower{animation-duration:2s!important}.animate-once{animation-iteration-count:1;animation-fill-mode:forwards}.animate-infinite{animation-iteration-count:infinite}.animate-paused{animation-play-state:paused!important}.animate-running{animation-play-state:running!important}.smooth-transition{transition:all .3s ease}.smooth-transition-slow{transition:all .6s ease}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 25px #00000026}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 15px #4caf5099}.illustration-enter{animation:scaleIn .8s cubic-bezier(.68,-.55,.265,1.55) forwards}.illustration-float{animation:float 4s ease-in-out infinite}.illustration-pulse{animation:pulse 3s ease-in-out infinite}@keyframes celebrate{0%{transform:scale(.5) rotate(0);opacity:0}50%{transform:scale(1.2) rotate(180deg);opacity:1}to{transform:scale(1) rotate(360deg);opacity:1}}.celebrate{animation:celebrate .8s cubic-bezier(.68,-.55,.265,1.55) forwards}.stagger-children>*{opacity:0;animation:fadeInUp .6s ease-out forwards}.stagger-children>*:nth-child(1){animation-delay:.1s}.stagger-children>*:nth-child(2){animation-delay:.2s}.stagger-children>*:nth-child(3){animation-delay:.3s}.stagger-children>*:nth-child(4){animation-delay:.4s}.stagger-children>*:nth-child(5){animation-delay:.5s}.stagger-children>*:nth-child(6){animation-delay:.6s}.create-family-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.create-family-card{background:#fff;border-radius:20px;padding:40px;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d}.create-family-card h1{font-size:2rem;margin-bottom:10px;color:#333;text-align:center}.form-group input,.form-group select{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea}.form-group input:disabled,.form-group select:disabled{background:#f5f5f5;cursor:not-allowed}.submit-btn{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .3s,box-shadow .3s;margin-bottom:12px}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea66}.back-btn{width:100%;padding:12px;background:#fff;color:#667eea;border:2px solid #667eea;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.back-btn:hover:not(:disabled){background:#667eea;color:#fff}@media(max-width:600px){.create-family-card{padding:30px 20px}.create-family-card h1{font-size:1.7rem}}.join-family-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#f093fb,#f5576c);padding:20px}.join-family-card{background:#fff;border-radius:20px;padding:40px;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d}.join-family-card h1{font-size:2rem;margin-bottom:10px;color:#333;text-align:center}.subtitle{font-size:1rem;color:#666;margin-bottom:30px;text-align:center}.error-message{background:#fee;color:#c33;padding:12px;border-radius:8px;margin-bottom:20px;font-size:.9rem}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500}.form-group input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#f093fb}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.form-group small{display:block;margin-top:8px;color:#999;font-size:.85rem}.submit-btn{width:100%;padding:14px;background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .3s,box-shadow .3s;margin-bottom:12px}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #f093fb66}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.back-btn{width:100%;padding:12px;background:#fff;color:#f093fb;border:2px solid #f093fb;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.back-btn:hover:not(:disabled){background:#f093fb;color:#fff}.back-btn:disabled{opacity:.6;cursor:not-allowed}.code-autofilled-message{background:linear-gradient(135deg,#10b9811a,#0596691a);border:2px solid rgba(16,185,129,.3);color:#10b981;padding:.75rem 1rem;border-radius:.5rem;margin-bottom:.75rem;font-size:.9375rem;font-weight:600;text-align:center;animation:slideInDown .4s ease}.code-autofilled{border-color:#10b981!important;background:linear-gradient(135deg,#10b9810d,#0596690d)!important;animation:pulse .6s ease}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@media(max-width:600px){.join-family-card{padding:30px 20px}.join-family-card h1{font-size:1.7rem}.code-autofilled-message{font-size:.875rem;padding:.625rem .875rem}}.join-with-code-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2)}.join-card{background:#fff;border-radius:1.5rem;padding:3rem 2.5rem;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d;animation:slideInUp .5s ease}.join-header{text-align:center;margin-bottom:2rem}.join-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:2.5rem;animation:bounceIn .6s ease}.join-header h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.join-subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.invite-preview{background:var(--background);border-radius:1rem;padding:1.5rem;text-align:center;margin-bottom:2rem;border:2px solid rgba(102,126,234,.2)}.invite-preview.success{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea4d}.check-icon{font-size:3rem;color:#10b981;margin-bottom:1rem}.invite-preview h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.invite-preview p{font-size:.9375rem;color:var(--text-secondary);margin:0 0 1rem}.family-name{font-size:1.5rem!important;font-weight:700!important;color:var(--text-primary)!important;margin:1rem 0!important}.invite-code-display{display:inline-block;padding:.75rem 1.5rem;background:#fff;border:2px solid #667eea;border-radius:.5rem;font-size:1.5rem;font-weight:700;letter-spacing:.2em;color:#667eea;margin:1rem 0;font-family:Courier New,monospace}.role-badge{display:inline-block;padding:.5rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:9999px;font-size:.875rem;font-weight:600;margin-top:1rem!important}.invite-error{background:#ef44441a;border:2px solid rgba(239,68,68,.3);border-radius:1rem;padding:1.5rem;text-align:center;margin-bottom:2rem}.invite-error p{color:#ef4444;font-weight:600;margin:0 0 1rem}.join-actions{display:flex;flex-direction:column;gap:1rem}.btn-large{padding:1rem 2rem;font-size:1.125rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.join-hint{text-align:center;font-size:.9375rem;color:var(--text-secondary);margin:0}.link-button{background:none;border:none;color:#667eea;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}.link-button:hover{color:#764ba2}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.join-with-code-page{padding:1rem}.join-card{padding:2rem 1.5rem}.join-icon{width:70px;height:70px;font-size:2rem}.join-header h1{font-size:1.5rem}.family-name{font-size:1.25rem!important}.invite-code-display{font-size:1.25rem;padding:.625rem 1.25rem}}.claim-account-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem 1rem}.claim-card{background:#fff;border-radius:20px;padding:3rem;max-width:550px;width:100%;box-shadow:0 20px 60px #0000004d}.claim-header{text-align:center;margin-bottom:2rem}.claim-header.error .header-icon{color:#ef4444}.header-icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;margin-bottom:1.5rem}.header-icon{font-size:3rem;color:#fff}.claim-header h1{font-size:2rem;margin-bottom:.5rem;color:#333}.claim-subtitle{font-size:1.1rem;color:#666}.child-info-preview{background:linear-gradient(135deg,#667eea1a,#764ba21a);border:2px solid rgba(102,126,234,.3);border-radius:1rem;padding:1.5rem;margin-bottom:2rem;position:relative}.child-info-preview .check-icon{position:absolute;top:1rem;right:1rem;font-size:1.5rem;color:#10b981}.info-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.info-row:last-child{margin-bottom:0}.info-label{font-size:.95rem;color:#666;font-weight:500}.info-value{font-size:1rem;color:#333;font-weight:600}.claim-form{display:flex;flex-direction:column;gap:1.5rem}.form-section{text-align:center;padding-bottom:.5rem;border-bottom:2px solid #e5e7eb;margin-bottom:.5rem}.form-section h3{font-size:1.3rem;color:#333;margin-bottom:.25rem}.form-hint{font-size:.9rem;color:#666}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;color:#333}.form-group label svg{font-size:1.1rem;color:#667eea}.form-group input{padding:.875rem 1rem;border:2px solid #e5e7eb;border-radius:.75rem;font-size:1rem;transition:all .3s ease}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background-color:#f3f4f6;cursor:not-allowed}.error-message{padding:1rem;background-color:#fee;border:1px solid #fcc;border-radius:.5rem;color:#c33;font-size:.9rem;text-align:center}.btn-primary.btn-large{padding:1rem 2rem;font-size:1.1rem;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:.75rem;cursor:pointer;transition:all .3s ease;margin-top:.5rem}.btn-primary.btn-large:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #667eea66}.btn-primary.btn-large:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-footer{text-align:center;margin-top:.5rem}.security-note{font-size:.85rem;color:#999;margin:0;line-height:1.5}.btn-secondary{padding:.75rem 1.5rem;background-color:#f3f4f6;color:#333;border:2px solid #e5e7eb;border-radius:.75rem;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s ease;width:100%;margin-top:1rem}.btn-secondary:hover{background-color:#e5e7eb;transform:translateY(-2px)}.loading{text-align:center;padding:3rem;font-size:1.2rem;color:#667eea}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .5s ease-out}[dir=rtl] .child-info-preview .check-icon{right:auto;left:1rem}[dir=rtl] .form-group label{flex-direction:row-reverse}@media(max-width:768px){.claim-card{padding:2rem 1.5rem}.claim-header h1{font-size:1.75rem}.header-icon-wrapper{width:70px;height:70px}.header-icon{font-size:2.5rem}.child-info-preview{padding:1.25rem}.form-section h3{font-size:1.1rem}.btn-primary.btn-large{padding:.875rem 1.5rem;font-size:1rem}}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:10001;background:linear-gradient(135deg,#f44336,#d32f2f);color:#fff;padding:12px 20px;display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 2px 8px #0003;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.offline-icon{font-size:1.5rem;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.offline-content{display:flex;flex-direction:column;gap:4px}.offline-content strong{font-size:1rem;font-weight:600}.offline-content span{font-size:.85rem;opacity:.9}[dir=rtl] .offline-banner{flex-direction:row-reverse}@media(max-width:600px){.offline-banner{padding:10px 16px}.offline-icon{font-size:1.25rem}.offline-content strong{font-size:.9rem}.offline-content span{font-size:.8rem}}.admin-layout{display:flex;min-height:100vh;background-color:#f9fafb}.admin-sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;background:linear-gradient(180deg,#7c3aed,#6366f1);color:#fff;display:flex;flex-direction:column;transition:all .3s ease;z-index:1000;box-shadow:4px 0 12px #0000001a}.admin-sidebar.closed{width:72px}.sidebar-header{padding:1.5rem 1rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;gap:1rem}.sidebar-title{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.admin-badge{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:#fff3;padding:.25rem .75rem;border-radius:9999px;width:fit-content}.app-name{font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-toggle{background:#ffffff1a;border:none;color:#fff;padding:.5rem;border-radius:.5rem;cursor:pointer;transition:all .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sidebar-toggle:hover{background:#fff3}.sidebar-nav{flex:1;padding:1rem .5rem;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;color:#ffffffe6;text-decoration:none;border-radius:.75rem;transition:all .2s;font-weight:500;font-size:.9375rem;position:relative}.admin-sidebar.closed .nav-item{justify-content:center;padding:.875rem}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#ffffff26;color:#fff;font-weight:600}.nav-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.nav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-arrow{flex-shrink:0;margin-left:auto}.admin-sidebar.closed .nav-label,.admin-sidebar.closed .nav-arrow{display:none}.sidebar-footer{padding:1rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:.75rem}.user-info{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#ffffff1a;border-radius:.75rem}.user-info.collapsed{justify-content:center;padding:.75rem .5rem}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#fbbf24,#f59e0b);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;color:#fff;flex-shrink:0}.user-details{flex:1;min-width:0}.user-name{font-weight:600;font-size:.9375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info.collapsed .user-details{display:none}.btn-signout{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;border-radius:.75rem;cursor:pointer;transition:all .2s;font-weight:500;font-size:.9375rem}.admin-sidebar.closed .btn-signout{padding:.75rem}.admin-sidebar.closed .btn-signout span{display:none}.btn-signout:hover{background:#ef444433;border-color:#ef444480;color:#fef2f2}.admin-main{flex:1;margin-left:280px;transition:margin-left .3s ease;display:flex;flex-direction:column;min-height:100vh}.admin-sidebar.closed+.admin-main{margin-left:72px}.admin-breadcrumbs{display:flex;align-items:center;gap:.5rem;padding:1.5rem 2rem;background:#fff;border-bottom:1px solid #e5e7eb;font-size:.875rem}.breadcrumb-link{color:#6366f1;text-decoration:none;font-weight:500;transition:color .2s}.breadcrumb-link:hover{color:#4f46e5;text-decoration:underline}.breadcrumb-separator{color:#9ca3af}.breadcrumb-current{color:#6b7280;font-weight:600}.admin-content{flex:1;padding:2rem}.sidebar-overlay{display:none}[dir=rtl] .admin-sidebar{left:auto;right:0;box-shadow:-4px 0 12px #0000001a}[dir=rtl] .admin-main{margin-left:0;margin-right:280px}[dir=rtl] .admin-sidebar.closed+.admin-main{margin-left:0;margin-right:72px}[dir=rtl] .nav-item{flex-direction:row-reverse}[dir=rtl] .nav-arrow{margin-left:0;margin-right:auto;transform:scaleX(-1)}[dir=rtl] .user-info,[dir=rtl] .btn-signout,[dir=rtl] .admin-breadcrumbs{flex-direction:row-reverse}@media(max-width:1024px){.admin-sidebar{transform:translate(-100%)}.admin-sidebar.open{transform:translate(0)}[dir=rtl] .admin-sidebar{transform:translate(100%)}[dir=rtl] .admin-sidebar.open{transform:translate(0)}.admin-main{margin-left:0}[dir=rtl] .admin-main{margin-right:0}.sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:999}}@media(max-width:768px){.admin-content{padding:1.5rem 1rem}.admin-breadcrumbs{padding:1rem 1.5rem;font-size:.8125rem}}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#ffffff4d}[dir=rtl]{direction:rtl;text-align:right}[dir=rtl] body{font-family:Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans Arabic,Droid Arabic Naskh,Tahoma,sans-serif}[dir=rtl] .dashboard-header,[dir=rtl] .tabs{flex-direction:row-reverse}[dir=rtl] .form-actions{justify-content:flex-start}[dir=rtl] .task-header{flex-direction:row-reverse}[dir=rtl] .task-header>div{flex-direction:row-reverse}[dir=rtl] .task-meta,[dir=rtl] .task-actions,[dir=rtl] .reward-cost,[dir=rtl] .redemption-card,[dir=rtl] .redemption-actions{flex-direction:row-reverse}[dir=rtl] .auth-container,[dir=rtl] .auth-link{text-align:right}[dir=rtl] .modal-header,[dir=rtl] .language-toggle,[dir=rtl] .avatar-picker,[dir=rtl] .section-header,[dir=rtl] .modal-actions,[dir=rtl] .emoji-picker{flex-direction:row-reverse}[dir=rtl] input,[dir=rtl] textarea,[dir=rtl] select{text-align:right;direction:rtl}[dir=rtl] .stat-number,[dir=rtl] .points,[dir=rtl] .points-cost,[dir=rtl] .points-display strong,[dir=rtl] code{direction:ltr;unicode-bidi:embed}[dir=rtl] button{flex-direction:row-reverse}[dir=rtl] .checklist-item{flex-direction:row-reverse;text-align:right}[dir=rtl] .child-card{text-align:center}[dir=rtl] .stat-icon,[dir=rtl] .task-emoji,[dir=rtl] .reward-icon,[dir=rtl] .redemption-icon{transform:scaleX(1)}@media(max-width:768px){[dir=rtl] .dashboard-header{align-items:stretch}[dir=rtl] .redemption-actions{flex-direction:column-reverse}}
