@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{margin:0;padding:0;box-sizing:border-box}.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}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-primary, #3b82f6);color:#fff;padding:8px 16px;z-index:10000;text-decoration:none;font-weight:600;border-radius:0 0 4px}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--color-primary, #3b82f6);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--color-primary-50: #eef2ff;--color-primary-100: #e0e7ff;--color-primary-200: #c7d2fe;--color-primary-300: #a5b4fc;--color-primary-400: #818cf8;--color-primary-500: #6366f1;--color-primary-600: #4f46e5;--color-primary-700: #4338ca;--color-primary-800: #3730a3;--color-primary-900: #312e81;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-200: #bbf7d0;--color-success-300: #86efac;--color-success-400: #4ade80;--color-success-500: #22c55e;--color-success-600: #16a34a;--color-success-700: #15803d;--color-success-800: #166534;--color-success-900: #14532d;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-200: #fecaca;--color-error-300: #fca5a5;--color-error-400: #f87171;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-error-700: #b91c1c;--color-error-800: #991b1b;--color-error-900: #7f1d1d;--color-warning-50: #fefce8;--color-warning-100: #fef9c3;--color-warning-200: #fef08a;--color-warning-300: #fde047;--color-warning-400: #facc15;--color-warning-500: #eab308;--color-warning-600: #ca8a04;--color-warning-700: #a16207;--color-warning-800: #854d0e;--color-warning-900: #713f12;--color-info-50: #eff6ff;--color-info-100: #dbeafe;--color-info-200: #bfdbfe;--color-info-300: #93c5fd;--color-info-400: #60a5fa;--color-info-500: #3b82f6;--color-info-600: #2563eb;--color-info-700: #1d4ed8;--color-info-800: #1e40af;--color-info-900: #1e3a8a;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--bg-primary: #ffffff;--bg-secondary: var(--color-gray-50);--bg-tertiary: var(--color-gray-100);--bg-inverse: var(--color-gray-900);--text-primary: var(--color-gray-800);--text-secondary: var(--color-gray-500);--text-muted: var(--color-gray-400);--text-inverse: #ffffff;--border-light: var(--color-gray-200);--border-color: var(--color-gray-200);--border-dark: var(--color-gray-400);--card-bg: #ffffff;--card-border: var(--color-gray-200);--card-shadow: 0 1px 3px rgba(0, 0, 0, .1);--input-bg: #ffffff;--input-border: var(--color-gray-300);--input-focus-border: var(--color-primary-600);--input-placeholder: var(--color-gray-400);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 2px 6px rgba(0, 0, 0, .06);--shadow-md: 0 2px 4px rgba(0, 0, 0, .04), 0 4px 8px rgba(0, 0, 0, .06), 0 8px 16px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .04), 0 8px 16px rgba(0, 0, 0, .06), 0 16px 32px rgba(0, 0, 0, .08);--shadow-xl: 0 8px 16px rgba(0, 0, 0, .06), 0 16px 32px rgba(0, 0, 0, .08), 0 32px 64px rgba(0, 0, 0, .1);--shadow: rgba(0, 0, 0, .08);--shadow-colored-primary: 0 4px 14px rgba(99, 102, 241, .25), 0 8px 24px rgba(99, 102, 241, .15);--shadow-colored-success: 0 4px 14px rgba(34, 197, 94, .25), 0 8px 24px rgba(34, 197, 94, .15);--shadow-colored-error: 0 4px 14px rgba(239, 68, 68, .25), 0 8px 24px rgba(239, 68, 68, .15);--theme-primary: var(--color-primary-600);--theme-primary-hover: var(--color-primary-700);--theme-primary-light: var(--color-primary-100);--theme-secondary: var(--color-primary-400);--theme-accent: var(--color-primary-500);--theme-background: var(--color-gray-50);--theme-text: var(--color-gray-800);--status-success: var(--color-success-600);--status-success-light: var(--color-success-50);--status-success-bg: var(--color-success-100);--status-error: var(--color-error-500);--status-error-light: var(--color-error-50);--status-error-bg: var(--color-error-100);--status-warning: var(--color-warning-500);--status-warning-light: var(--color-warning-50);--status-warning-bg: var(--color-warning-100);--status-pending: var(--color-warning-100);--status-info: var(--color-info-500);--status-info-light: var(--color-info-50);--hover-bg: var(--color-gray-100);--active-bg: var(--color-gray-200);--focus-ring: 0 0 0 3px rgba(79, 70, 229, .3);--gradient-primary: linear-gradient(135deg, var(--color-primary-500) 0%, var(--color-primary-700) 100%);--gradient-brand: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);--gradient-brand-alt: linear-gradient(135deg, #4c1d95 0%, #5b21b6 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #059669 100%);--gradient-gold: linear-gradient(135deg, #fbbf24 0%, #f59e0b 50%, #d97706 100%);--gradient-start: #667eea;--gradient-end: #764ba2;--gradient-hero: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);--gradient-surface: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .2);--glass-blur: blur(16px);--spacing-0: 0;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.25rem;--spacing-2xl: 1.5rem;--spacing-3xl: 2rem;--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--font-family-heading: "Space Grotesk Variable", "Space Grotesk", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-base: "DM Sans Variable", "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-medium: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .3s cubic-bezier(.34, 1.56, .64, 1);--transition-smooth: .3s cubic-bezier(.4, 0, .2, 1);--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-notification: 800;--shimmer: rgba(255, 255, 255, .3);--overlay-bg: rgba(0, 0, 0, .5);--badge-bg: var(--color-error-500);--progress-bg: var(--color-gray-200)}body.dark-mode{--bg-primary: #0f0f13;--bg-secondary: #18181d;--bg-tertiary: var(--color-gray-700);--bg-inverse: #ffffff;--text-primary: var(--color-gray-50);--text-secondary: var(--color-gray-300);--text-muted: var(--color-gray-400);--text-inverse: var(--color-gray-900);--border-light: var(--color-gray-700);--border-color: var(--color-gray-600);--border-dark: var(--color-gray-500);--card-bg: #1c1c24;--card-border: var(--color-gray-700);--card-shadow: 0 1px 3px rgba(0, 0, 0, .3);--input-bg: var(--color-gray-800);--input-border: var(--color-gray-600);--input-focus-border: var(--color-primary-400);--input-placeholder: var(--color-gray-500);--shadow: rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2), 0 2px 6px rgba(0, 0, 0, .15);--shadow-md: 0 2px 4px rgba(0, 0, 0, .15), 0 4px 8px rgba(0, 0, 0, .2), 0 8px 16px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .15), 0 8px 16px rgba(0, 0, 0, .2), 0 16px 32px rgba(0, 0, 0, .15);--shadow-colored-primary: 0 4px 14px rgba(129, 140, 248, .3), 0 8px 24px rgba(129, 140, 248, .2);--shadow-colored-success: 0 4px 14px rgba(74, 222, 128, .3), 0 8px 24px rgba(74, 222, 128, .2);--shadow-colored-error: 0 4px 14px rgba(248, 113, 113, .3), 0 8px 24px rgba(248, 113, 113, .2);--theme-primary: var(--color-primary-400);--theme-primary-hover: var(--color-primary-300);--theme-primary-light: var(--color-primary-900);--theme-background: var(--color-gray-900);--theme-text: var(--color-gray-50);--hover-bg: var(--color-gray-700);--active-bg: var(--color-gray-600);--focus-ring: 0 0 0 3px rgba(129, 140, 248, .4);--status-success: var(--color-success-400);--status-success-light: rgba(16, 185, 129, .2);--status-success-bg: rgba(16, 185, 129, .15);--status-error: var(--color-error-400);--status-error-light: rgba(239, 68, 68, .2);--status-error-bg: rgba(239, 68, 68, .15);--status-warning: var(--color-warning-400);--status-warning-light: rgba(245, 158, 11, .2);--status-warning-bg: rgba(245, 158, 11, .15);--status-pending: rgba(245, 158, 11, .2);--status-info: var(--color-info-400);--status-info-light: rgba(59, 130, 246, .2);--gradient-brand: linear-gradient(135deg, #7c3aed 0%, #a855f7 50%, #c084fc 100%);--gradient-start: #7c3aed;--gradient-end: #a855f7;--glass-bg: rgba(20, 20, 28, .8);--glass-border: rgba(255, 255, 255, .08);--shimmer: rgba(255, 255, 255, .1);--overlay-bg: rgba(0, 0, 0, .8);--badge-bg: var(--color-primary-500);--progress-bg: var(--color-gray-700)}body{font-family:var(--font-family-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-secondary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:0 20px}.btn{padding:var(--spacing-md) var(--spacing-2xl);font-size:16px;font-weight:600;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);text-decoration:none;display:inline-block;text-align:center}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--color-primary-500) 0%,var(--color-primary-700) 100%);background-size:200% auto;color:#fff;transition:all var(--transition-medium)}.btn-primary:hover{background-position:right center;transform:translateY(-2px);box-shadow:var(--shadow-colored-primary)}.btn-primary:active{transform:translateY(0) scale(.97);box-shadow:0 2px 6px #4f46e54d}.btn-secondary{background:var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background:var(--color-gray-300)}.btn-success{background:linear-gradient(135deg,var(--color-success-500) 0%,var(--color-success-700) 100%);background-size:200% auto;color:#fff;transition:all var(--transition-medium)}.btn-success:hover{background-position:right center;transform:translateY(-2px);box-shadow:var(--shadow-colored-success)}.btn-success:active{transform:translateY(0) scale(.97);box-shadow:0 2px 6px #10b9814d}.btn-danger{background:linear-gradient(135deg,var(--color-error-400) 0%,var(--color-error-600) 100%);background-size:200% auto;color:#fff;transition:all var(--transition-medium)}.btn-danger:hover{background-position:right center;transform:translateY(-2px);box-shadow:var(--shadow-colored-error)}.btn-danger:active{transform:translateY(0) scale(.97);box-shadow:0 2px 6px #ef44444d}.btn-large{padding:18px var(--spacing-3xl);font-size:18px;min-height:60px;border-radius:var(--radius-xl)}.card{background:var(--card-bg);border-radius:var(--radius-xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-sm);border:1px solid var(--card-border);transition:all var(--transition-medium)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.app-controls{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);display:flex;align-items:center;gap:.75rem;z-index:1000}.dark-mode-toggle{width:56px;height:56px;border-radius:50%;background:var(--card-bg);border:2px solid var(--border-color);box-shadow:0 4px 12px var(--shadow);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:24px;transition:all var(--transition-medium)}.dark-mode-toggle:hover{transform:scale(1.1) rotate(20deg);box-shadow:0 6px 20px var(--shadow)}.dark-mode-toggle:active{transform:scale(.95)}.input{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:16px;border:2px solid var(--border-color);border-radius:var(--radius-lg);outline:none;transition:border-color var(--transition-base),box-shadow var(--transition-base);background:var(--card-bg);color:var(--text-primary);box-shadow:var(--shadow-xs)}.input:focus{border-color:var(--color-primary-500);box-shadow:var(--focus-ring),var(--shadow-sm)}.label{display:block;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.form-group{margin-bottom:var(--spacing-xl)}.error{color:var(--color-error-500);font-size:14px;margin-top:var(--spacing-sm)}.success{color:var(--color-success-600);font-size:14px;margin-top:var(--spacing-sm)}.spinner{border:3px solid var(--color-gray-100);border-top:3px solid var(--color-primary-600);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:40px auto}body.dark-mode .status-pending{background:#854d0e!important;color:#fef3c7!important;border:1px solid #ca8a04!important}body.dark-mode .status-completed,body.dark-mode .status-approved{background:#065f46!important;color:#d1fae5!important;border:1px solid #10b981!important}body.dark-mode .status-rejected,body.dark-mode .status-error{background:#991b1b!important;color:#fee2e2!important;border:1px solid #ef4444!important}body.dark-mode .task-card,body.dark-mode .reward-card,body.dark-mode .goal-card,body.dark-mode .kid-card,body.dark-mode .approval-card{border:1px solid var(--border-color)!important}body.dark-mode .empty-state{color:var(--text-secondary)!important}body.dark-mode .modal-overlay{background:#000c!important}body.dark-mode .kid-avatar{border:3px solid var(--border-color)!important}body.dark-mode .error-box{background:#991b1b!important;color:#fee2e2!important;border-color:#ef4444!important}body.dark-mode .success{color:#86efac!important}body.dark-mode .error{color:#fca5a5!important}body.dark-mode .spinner{border-color:var(--border-color)!important;border-top-color:#818cf8!important}h1,h2,h3,h4,h5,h6,.landing-hero-title,.landing-section-title,.landing-cta-title,.auth-title,.screen-title,.popup-title,.landing-pricing-name{font-family:var(--font-family-heading)}.App:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}body.dark-mode ::-webkit-scrollbar-track{background:var(--color-gray-900)}body.dark-mode ::-webkit-scrollbar-thumb{background:var(--color-gray-600)}body.dark-mode ::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}::selection{background:#6366f140;color:var(--text-primary)}body.dark-mode ::selection{background:#8b5cf64d;color:#f4f4f5}.glow-text{background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-divider{height:1px;width:100%;max-width:800px;margin:0 auto;background:linear-gradient(90deg,transparent,rgba(99,102,241,.3),rgba(118,75,162,.3),rgba(240,147,251,.3),transparent)}.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2,#f093fb);z-index:10000;transform-origin:left;pointer-events:none}body.dark-mode{--color-primary: #60a5fa;--color-primary-dark: #3b82f6;--color-primary-light: #93c5fd;--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-hover: #475569;--card-bg: #1e293b;--card-bg-elevated: #334155;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-tertiary: #64748b;--text-disabled: #475569;--border-color: #334155;--border-color-light: #475569;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--color-success: #22c55e;--color-success-bg: rgba(34, 197, 94, .15);--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .15);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .15);--color-info: #3b82f6;--color-info-bg: rgba(59, 130, 246, .15)}body.dark-mode .calendar-view{background:var(--card-bg);border-color:var(--border-color)}body.dark-mode .calendar-day-headers{background:var(--bg-tertiary)}body.dark-mode .day-header{color:var(--text-secondary)}body.dark-mode .calendar-day{border-color:var(--border-color)}body.dark-mode .calendar-day.other-month{background:var(--bg-primary)}body.dark-mode .calendar-day.today{background:#3b82f61a}body.dark-mode .calendar-day.today .day-number{background:var(--color-primary)}body.dark-mode .calendar-day:hover{background:var(--bg-tertiary)}body.dark-mode .day-number{color:var(--text-primary)}body.dark-mode .calendar-legend{border-color:var(--border-color)}body.dark-mode .global-search .search-input{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}body.dark-mode .global-search .search-input::placeholder{color:var(--text-tertiary)}body.dark-mode .search-results{background:var(--card-bg);border-color:var(--border-color);box-shadow:var(--shadow-lg)}body.dark-mode .result-section{border-color:var(--border-color)}body.dark-mode .result-item:hover,body.dark-mode .result-item.selected{background:var(--bg-tertiary)}body.dark-mode .result-title{color:var(--text-primary)}body.dark-mode .skeleton{--skeleton-base: #334155;--skeleton-highlight: #475569}body.dark-mode .skeleton-card,body.dark-mode .template-selector{background:var(--card-bg);border-color:var(--border-color)}body.dark-mode .template-selector-header{border-color:var(--border-color)}body.dark-mode .template-selector-header h2{color:var(--text-primary)}body.dark-mode .template-search{border-color:var(--border-color)}body.dark-mode .template-search-input{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}body.dark-mode .category-card{background:var(--bg-tertiary);border-color:transparent}body.dark-mode .category-card:hover{background:var(--bg-hover);border-color:var(--color-primary)}body.dark-mode .category-name{color:var(--text-primary)}body.dark-mode .template-card{background:var(--bg-tertiary);border-color:var(--border-color)}body.dark-mode .template-card:hover{border-color:var(--color-primary)}body.dark-mode .template-title{color:var(--text-primary)}body.dark-mode .template-selector-footer{background:var(--bg-primary);border-color:var(--border-color)}body.dark-mode .notification-prompt{background:var(--card-bg);border-color:var(--border-color)}body.dark-mode .prompt-title{color:var(--text-primary)}body.dark-mode .prompt-description{color:var(--text-secondary)}body.dark-mode .language-selector-btn{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}body.dark-mode .language-selector-btn:hover{background:var(--bg-hover)}body.dark-mode .language-dropdown{background:var(--card-bg);border-color:var(--border-color)}body.dark-mode .language-option{color:var(--text-primary)}body.dark-mode .language-option:hover{background:var(--bg-tertiary)}body.dark-mode .language-option.active{background:#3b82f633}body.dark-mode .offline-banner.offline{background:linear-gradient(135deg,#b91c1c,#991b1b)}body.dark-mode .offline-banner.reconnected{background:linear-gradient(135deg,#15803d,#166534)}body.dark-mode .swipeable-card{background:var(--card-bg)}body.dark-mode .deleted-tasks-header h3{color:var(--text-primary)}body.dark-mode .deleted-task-card{background:var(--card-bg);border-color:var(--border-color)}body.dark-mode .deleted-task-card:hover{border-color:var(--color-primary)}body.dark-mode .deleted-task-title{color:var(--text-primary)}body.dark-mode .deleted-tasks-footer{border-color:var(--border-color)}body.dark-mode .empty-state p{color:var(--text-primary)}body.dark-mode .modal-content{background:var(--card-bg);border-color:var(--border-color)}body.dark-mode .modal-header{border-color:var(--border-color)}body.dark-mode .modal-header h2{color:var(--text-primary)}body.dark-mode .input,body.dark-mode .select,body.dark-mode textarea{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}body.dark-mode .input:focus,body.dark-mode .select:focus,body.dark-mode textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #60a5fa33}body.dark-mode .input::placeholder{color:var(--text-tertiary)}body.dark-mode .label{color:var(--text-secondary)}body.dark-mode .btn-secondary{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}body.dark-mode .btn-secondary:hover{background:var(--bg-hover)}body.dark-mode .dashboard-header{background:var(--bg-secondary);border-color:var(--border-color)}body.dark-mode .header-subtitle,body.dark-mode .nav-btn{color:var(--text-secondary)}body.dark-mode .nav-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}body.dark-mode .nav-btn.active{background:var(--color-primary);color:#fff}body.dark-mode .card,body.dark-mode .task-card,body.dark-mode .kid-card,body.dark-mode .reward-card,body.dark-mode .goal-card{background:var(--card-bg);border-color:var(--border-color)}body.dark-mode .card:hover,body.dark-mode .task-card:hover{border-color:var(--color-primary)}body.dark-mode .task-type-badge{background:var(--bg-tertiary);color:var(--text-secondary)}body.dark-mode .task-type-badge.recurring{background:#60a5fa33;color:var(--color-primary)}body.dark-mode .nav-badge{background:var(--color-error)}body.dark-mode .settings-section{background:var(--card-bg);border-color:var(--border-color)}body.dark-mode .section-title{color:var(--text-primary)}body.dark-mode ::-webkit-scrollbar{width:8px;height:8px}body.dark-mode ::-webkit-scrollbar-track{background:var(--bg-secondary)}body.dark-mode ::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:4px}body.dark-mode ::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes popIn{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInFromLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInFromTop{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes celebrate{0%{transform:scale(1)}25%{transform:scale(1.2) rotate(-5deg)}50%{transform:scale(1.2) rotate(5deg)}75%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@keyframes glow{0%,to{box-shadow:0 0 5px #3b82f680}50%{box-shadow:0 0 20px #3b82f6cc}}@keyframes heroCardFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes shimmerGradient{0%{background-position:-200% center}to{background-position:200% center}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes scaleSpring{0%{opacity:0;transform:scale(.8)}60%{opacity:1;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@keyframes brandGlow{0%,to{box-shadow:0 0 8px #6366f133,0 0 16px #6366f11a}50%{box-shadow:0 0 16px #6366f166,0 0 32px #6366f133}}@keyframes drawLine{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-fade-in-up{animation:fadeInUp .4s ease-out forwards}.animate-fade-in-down{animation:fadeInDown .4s ease-out forwards}.animate-scale-in{animation:scaleIn .3s ease-out forwards}.animate-pop-in{animation:popIn .4s ease-out forwards}.animate-bounce{animation:bounce .6s ease-out}.animate-shake{animation:shake .5s ease-out}.animate-pulse{animation:pulse 1.5s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.animate-slide-in-right{animation:slideInFromRight .3s ease-out forwards}.animate-slide-in-left{animation:slideInFromLeft .3s ease-out forwards}.animate-slide-in-bottom{animation:slideInFromBottom .3s ease-out forwards}.animate-celebrate{animation:celebrate .6s ease-out}.animate-glow{animation:glow 2s ease-in-out infinite}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.stagger-7{animation-delay:.35s}.stagger-8{animation-delay:.4s}.transition-fast{transition:all .15s ease}.transition-normal{transition:all .25s ease}.transition-slow{transition:all .4s ease}.transition-colors{transition:color .2s ease,background-color .2s ease,border-color .2s ease}.transition-transform{transition:transform .2s ease}.transition-opacity{transition:opacity .2s ease}.transition-shadow{transition:box-shadow .2s ease}.hover-lift{transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 4px 8px #0000000a,0 8px 16px #0000000f,0 16px 32px #00000014}.hover-scale{transition:transform .3s cubic-bezier(.4,0,.2,1)}.hover-scale:hover{transform:scale(1.03)}.hover-glow:hover{box-shadow:0 0 15px #3b82f666}.hover-bright:hover{filter:brightness(1.1)}.hover-glow-brand{transition:box-shadow .3s cubic-bezier(.4,0,.2,1)}.hover-glow-brand:hover{box-shadow:0 4px 14px #6366f14d,0 8px 24px #6366f126}.animate-float{animation:heroCardFloat 6s ease-in-out infinite}.animate-gradient-shift{background-size:200% 200%;animation:gradientShift 8s ease infinite}.animate-spring-in{animation:scaleSpring .5s cubic-bezier(.34,1.56,.64,1) forwards}.animate-brand-glow{animation:brandGlow 3s ease-in-out infinite}.modal-overlay{animation:fadeIn .2s ease-out}.modal-content{animation:scaleIn .3s ease-out}.task-card,.reward-card,.goal-card,.kid-card{animation:fadeInUp .4s ease-out;animation-fill-mode:both}.task-grid .task-card:nth-child(1){animation-delay:0s}.task-grid .task-card:nth-child(2){animation-delay:.05s}.task-grid .task-card:nth-child(3){animation-delay:.1s}.task-grid .task-card:nth-child(4){animation-delay:.15s}.task-grid .task-card:nth-child(5){animation-delay:.2s}.task-grid .task-card:nth-child(6){animation-delay:.25s}.btn{transition:all .3s cubic-bezier(.4,0,.2,1)}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:active:not(:disabled){transform:translateY(0) scale(.97);transition:transform .1s ease}.nav-btn{transition:all .2s ease;position:relative}.nav-btn:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--color-primary, #3b82f6);transition:all .2s ease;transform:translate(-50%)}.nav-btn.active:after,.nav-btn:hover:after{width:80%}.nav-badge{animation:pulse 2s ease-in-out infinite}.input,.select,textarea{transition:border-color .2s ease,box-shadow .2s ease}.dropdown-menu,.language-dropdown,.search-results{animation:fadeInDown .2s ease-out}.toast,.notification{animation:slideInFromRight .3s ease-out}@keyframes checkmark{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.success-checkmark path{stroke-dasharray:100;animation:checkmark .5s ease-out forwards}@keyframes loadingDots{0%,20%{opacity:0}50%{opacity:1}to{opacity:0}}.loading-dots span:nth-child(1){animation:loadingDots 1.4s infinite 0s}.loading-dots span:nth-child(2){animation:loadingDots 1.4s infinite .2s}.loading-dots span:nth-child(3){animation:loadingDots 1.4s infinite .4s}.calendar-day{transition:background-color .15s ease,transform .15s ease}.calendar-day:hover{transform:scale(1.02)}.page-enter{opacity:0;transform:translateY(10px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s ease,transform .3s ease}.page-exit{opacity:1}.page-exit-active{opacity:0;transition:opacity .2s ease}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hover-lift:hover,.hover-scale:hover{transform:none}}@media (max-width: 768px){.dashboard-nav{position:fixed;bottom:0;left:0;right:0;background:var(--card-bg, #ffffff);border-top:1px solid var(--border-color, #e5e7eb);padding:.5rem;z-index:100;display:flex;justify-content:space-around;box-shadow:0 -2px 10px #0000001a}.dashboard-nav .nav-btn{flex-direction:column;font-size:.65rem;padding:.5rem .25rem;min-width:50px;gap:.25rem}.dashboard-nav .nav-btn:before{font-size:1.25rem}.dashboard-nav .nav-btn[class*=tasks]:before{content:"📋"}.dashboard-nav .nav-btn[class*=approvals]:before{content:"✅"}.dashboard-nav .nav-btn[class*=kids]:before{content:"👧"}.dashboard-nav .nav-btn[class*=goals]:before{content:"🎯"}.dashboard-nav .nav-btn[class*=rewards]:before{content:"🎁"}.dashboard-nav .nav-btn[class*=calendar]:before{content:"📅"}.dashboard-nav .nav-btn[class*=settings]:before{content:"⚙️"}.dashboard-main{padding-bottom:80px}}@media (max-width: 768px){.dashboard-header{padding:1rem}.dashboard-header .header-content{flex-direction:column;align-items:stretch;gap:1rem}.dashboard-header .header-left h1{font-size:1.25rem}.dashboard-header .header-center{max-width:100%;margin:0}.dashboard-header .header-right{justify-content:space-between}@media (max-width: 480px){.header-subtitle{display:none}}}@media (max-width: 768px){.app-controls{bottom:auto;top:.75rem;right:.75rem}.app-controls .dark-mode-toggle{width:44px;height:44px;font-size:20px}.app-controls .language-selector-btn{padding:.375rem .5rem}.App:has(.dashboard-nav) .app-controls{top:auto;bottom:80px}}@media (max-width: 768px){.task-card,.reward-card,.goal-card,.kid-card{padding:1rem}.task-grid,.reward-grid,.goal-grid{grid-template-columns:1fr;gap:.75rem}.card-actions{flex-direction:column;gap:.5rem}.card-actions .btn{width:100%;justify-content:center}}@media (max-width: 768px){.form-row{flex-direction:column;gap:1rem}.form-group{width:100%}.input,.select,textarea{font-size:16px;padding:.875rem 1rem}.btn{padding:.875rem 1.5rem;font-size:1rem}.modal-actions{flex-direction:column;gap:.75rem}.modal-actions .btn{width:100%}}@media (max-width: 768px){.modal-overlay{padding:0;align-items:flex-end}.modal-content{max-width:100%;max-height:90vh;border-radius:1rem 1rem 0 0;margin:0}.modal-header{padding:1rem;position:sticky;top:0;background:var(--card-bg, #ffffff);z-index:10}.modal-body{padding:1rem;overflow-y:auto}}@media (max-width: 768px){.calendar-view{padding:1rem}.calendar-header{flex-direction:column;gap:1rem}.calendar-nav,.calendar-actions{width:100%;justify-content:space-between}.calendar-day{min-height:60px;padding:.25rem}.day-number{font-size:.75rem}.day-items{display:none}.calendar-day.has-items:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:6px;height:6px;background:var(--color-primary, #3b82f6);border-radius:50%}}@media (max-width: 768px){.global-search{max-width:100%}.search-shortcut{display:none}.search-results{position:fixed;top:70px;left:1rem;right:1rem;max-height:calc(100vh - 150px)}}@media (max-width: 768px){.settings-section{padding:1rem;margin-bottom:1rem}.section-title{font-size:1rem}.settings-grid{grid-template-columns:1fr}.deleted-tasks-header{flex-direction:column;align-items:flex-start}.deleted-task-card{flex-direction:column}.deleted-task-actions,.deleted-task-actions .btn{width:100%}}@media (max-width: 768px){.template-selector{max-height:95vh;border-radius:1rem 1rem 0 0}.category-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.category-card{padding:1rem}.category-icon{font-size:1.5rem}.category-name{font-size:.75rem}}@media (max-width: 768px){.table-responsive{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{min-width:600px}.mobile-card-table{display:block}.mobile-card-table thead{display:none}.mobile-card-table tr{display:block;margin-bottom:1rem;background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:1rem}.mobile-card-table td{display:flex;justify-content:space-between;padding:.5rem 0;border:none;border-bottom:1px solid var(--border-color, #e5e7eb)}.mobile-card-table td:last-child{border-bottom:none}.mobile-card-table td:before{content:attr(data-label);font-weight:600;color:var(--text-secondary, #6b7280)}}@media (max-width: 768px){.notification-prompt-overlay{bottom:70px;right:1rem;left:1rem}.notification-prompt{max-width:100%}.offline-banner{bottom:70px}}@media (hover: none) and (pointer: coarse){.btn,.nav-btn,.input,.select{min-height:44px}.hover-lift:hover,.hover-scale:hover{transform:none}.btn:active,.nav-btn:active,.card:active{opacity:.8;transform:scale(.98)}.swipeable-card-container:after{content:"← Swipe →";position:absolute;bottom:100%;left:50%;transform:translate(-50%);font-size:.65rem;color:var(--text-tertiary, #9ca3af);padding:.25rem;opacity:0;transition:opacity .2s}.swipeable-card-container:first-child:after{opacity:1;animation:fadeOut 2s 3s forwards}}@media (max-width: 768px) and (orientation: landscape){.modal-content{max-height:95vh}.dashboard-nav{width:auto;right:auto;left:0;top:0;bottom:0;flex-direction:column;padding:1rem .5rem;border-top:none;border-right:1px solid var(--border-color, #e5e7eb)}.dashboard-main{padding-bottom:0;padding-left:70px}}@media (max-width: 375px){.dashboard-header .header-left h1{font-size:1.1rem}.dashboard-nav .nav-btn{font-size:.6rem;padding:.375rem .125rem;min-width:40px}.btn{padding:.75rem 1rem;font-size:.875rem}.modal-content{max-height:95vh}}@supports (padding-bottom: env(safe-area-inset-bottom)){.dashboard-nav{padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}.modal-content{padding-bottom:env(safe-area-inset-bottom)}.offline-banner,.notification-prompt-overlay{bottom:calc(70px + env(safe-area-inset-bottom))}}.skeleton{background:linear-gradient(90deg,var(--skeleton-base, #e5e7eb) 25%,var(--skeleton-highlight, #f3f4f6) 50%,var(--skeleton-base, #e5e7eb) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}body.dark-mode .skeleton{--skeleton-base: #374151;--skeleton-highlight: #4b5563}.skeleton-card{background:var(--card-background, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:1.25rem}body.dark-mode .skeleton-card{--card-background: #1f2937;--border-color: #374151}.skeleton-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.skeleton-card-meta{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.skeleton-card-actions{display:flex;gap:.5rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}.skeleton-task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.skeleton-kid-card{min-width:280px}.skeleton-kid-header{display:flex;align-items:center;margin-bottom:1rem}.skeleton-kid-stats{margin-top:1rem}.skeleton-kids-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.skeleton-approval-item{margin-bottom:1rem}.skeleton-approval-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.skeleton-approval-actions{display:flex;gap:.75rem;margin-top:1rem}.skeleton-approvals-list{display:flex;flex-direction:column;gap:1rem}.skeleton-dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;margin-bottom:1rem}.skeleton-stats-card{min-width:150px}.skeleton-table-row{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border-color, #e5e7eb)}.skeleton-page{padding:1rem 0}.skeleton-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.skeleton-text{width:100%}@media (max-width: 768px){.skeleton-task-grid,.skeleton-kids-grid{grid-template-columns:1fr}.skeleton-dashboard-header{flex-direction:column;align-items:flex-start;gap:1rem}}.global-search{position:relative;width:100%;max-width:400px}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;font-size:1rem;pointer-events:none;opacity:.6}.search-input{width:100%;padding:.625rem 3rem .625rem 2.5rem;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:.875rem;background:var(--input-bg, #ffffff);color:var(--text-primary, #1f2937);transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.search-input::placeholder{color:var(--text-secondary, #9ca3af)}.search-shortcut{position:absolute;right:12px;padding:2px 6px;font-size:.7rem;font-weight:500;background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:4px;color:var(--text-secondary, #9ca3af)}.search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;box-shadow:0 10px 40px #00000026;max-height:400px;overflow-y:auto;z-index:1000}.no-results{padding:1.5rem;text-align:center;color:var(--text-secondary, #6b7280);font-size:.875rem}.result-section{padding:.5rem 0}.result-section:not(:last-child){border-bottom:1px solid var(--border-color, #e5e7eb)}.result-section-header{padding:.5rem 1rem;font-size:.75rem;font-weight:600;color:var(--text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.5rem}.section-icon{font-size:.875rem}.result-item{padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .15s ease}.result-item:hover,.result-item.selected{background:var(--bg-hover, #f3f4f6)}.result-title{font-size:.875rem;font-weight:500;color:var(--text-primary, #1f2937)}.result-meta{font-size:.75rem;color:var(--text-secondary, #6b7280)}body.dark-mode .search-input{--input-bg: #374151;--border-color: #4b5563;--text-primary: #f3f4f6}body.dark-mode .search-shortcut{--bg-secondary: #4b5563;--border-color: #6b7280}body.dark-mode .search-results{--card-bg: #1f2937;--border-color: #374151}body.dark-mode .result-item:hover,body.dark-mode .result-item.selected{--bg-hover: #374151}@media (max-width: 768px){.global-search{max-width:100%}.search-shortcut{display:none}.search-input{padding-right:1rem}.search-results{max-height:300px}}.offline-banner{position:fixed;bottom:0;left:0;right:0;padding:.75rem 1rem;z-index:9999;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.offline-banner.offline{background:linear-gradient(135deg,var(--color-error-500) 0%,var(--color-error-600) 100%);color:#fff}.offline-banner.reconnected{background:linear-gradient(135deg,var(--color-success-500) 0%,var(--color-success-600) 100%);color:#fff;animation:slideUp .3s ease-out,fadeOut .5s ease-out 2.5s forwards}.offline-banner-content{display:flex;align-items:center;justify-content:center;gap:.75rem;max-width:1200px;margin:0 auto}.offline-icon{font-size:1.25rem}.offline-text{font-size:.875rem;font-weight:500}@media (max-width: 480px){.offline-banner{padding:.625rem .75rem}.offline-text{font-size:.8rem}}.notification-prompt-overlay{position:fixed;bottom:20px;right:20px;z-index:9998;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification-prompt{background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:16px;padding:1.5rem;max-width:340px;box-shadow:0 10px 40px #00000026;text-align:center}.prompt-icon{font-size:3rem;margin-bottom:.75rem}.prompt-title{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1f2937);margin-bottom:.5rem}.prompt-description{font-size:.875rem;color:var(--text-secondary, #6b7280);line-height:1.5;margin-bottom:1.25rem}.prompt-actions{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.prompt-actions .btn{width:100%;justify-content:center}.prompt-dismiss{background:none;border:none;color:var(--text-secondary, #9ca3af);font-size:.75rem;cursor:pointer;padding:.25rem;text-decoration:underline}.prompt-dismiss:hover{color:var(--text-primary, #6b7280)}body.dark-mode .notification-prompt{--card-bg: #1f2937;--border-color: #374151}@media (max-width: 480px){.notification-prompt-overlay{bottom:10px;left:10px;right:10px}.notification-prompt{max-width:100%}}.swipeable-card-container{position:relative;overflow:hidden;border-radius:12px}.swipeable-card{position:relative;z-index:2;background:var(--card-bg, #ffffff);touch-action:pan-y;-webkit-user-select:none;user-select:none}.swipeable-card.dragging{cursor:grabbing}.swipe-action{position:absolute;top:0;bottom:0;width:100%;display:flex;align-items:center;z-index:1;transition:opacity .15s ease}.swipe-action-left{left:0;justify-content:flex-start;padding-left:1.5rem}.swipe-action-right{right:0;justify-content:flex-end;padding-right:1.5rem}.swipe-action-content{color:#fff;font-size:1.5rem;font-weight:600;display:flex;align-items:center;gap:.5rem}@keyframes swipeHint{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.swipeable-card.show-hint{animation:swipeHint 1s ease-in-out}body.dark-mode .swipeable-card{--card-bg: #1f2937}@media (hover: none) and (pointer: coarse){.swipeable-card:active{opacity:.95}}@media (hover: hover) and (pointer: fine){.swipeable-card{touch-action:auto}}.template-selector-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.template-selector{background:var(--card-bg, #ffffff);border-radius:16px;width:100%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.template-selector-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.template-selector-header h2{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1f2937);margin:0}.template-selector-header .close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-secondary, #6b7280);cursor:pointer;padding:.25rem;line-height:1}.template-search{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.template-search-input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:.875rem;background:var(--input-bg, #f9fafb)}.template-search-input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.template-categories{padding:1.5rem;overflow-y:auto;flex:1}.template-hint{text-align:center;color:var(--text-secondary, #6b7280);margin-bottom:1rem;font-size:.875rem}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.category-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem;background:var(--bg-secondary, #f9fafb);border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s ease}.category-card:hover{border-color:var(--color-primary, #3b82f6);background:var(--bg-hover, #eff6ff);transform:translateY(-2px)}.category-icon{font-size:2rem}.category-name{font-size:.875rem;font-weight:600;color:var(--text-primary, #1f2937)}.category-count{font-size:.75rem;color:var(--text-secondary, #6b7280)}.template-list-container{padding:1rem 1.5rem;overflow-y:auto;flex:1}.back-btn{background:none;border:none;color:var(--color-primary, #3b82f6);font-size:.875rem;cursor:pointer;padding:.5rem 0;margin-bottom:1rem}.back-btn:hover{text-decoration:underline}.template-list{display:flex;flex-direction:column;gap:.75rem}.template-card{padding:1rem;background:var(--bg-secondary, #f9fafb);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;cursor:pointer;transition:all .2s ease}.template-card:hover{border-color:var(--color-primary, #3b82f6);box-shadow:0 4px 12px #0000001a}.template-card-header{margin-bottom:.5rem}.template-category-badge{font-size:.7rem;color:var(--text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em}.template-title{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0 0 .25rem}.template-description{font-size:.8rem;color:var(--text-secondary, #6b7280);margin:0 0 .75rem;line-height:1.4}.template-footer{display:flex;justify-content:space-between;align-items:center}.template-reward{font-size:.75rem;color:var(--text-secondary, #6b7280)}.use-template-btn{padding:.375rem .75rem;font-size:.75rem;font-weight:600;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s ease}.use-template-btn:hover{background:var(--color-primary-dark, #2563eb)}.no-templates{text-align:center;padding:2rem;color:var(--text-secondary, #6b7280)}.no-templates p{margin-bottom:1rem}.template-selector-footer{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb);border-radius:0 0 16px 16px}.footer-hint{font-size:.75rem;color:var(--text-secondary, #9ca3af)}body.dark-mode .template-selector{--card-bg: #1f2937;--border-color: #374151}body.dark-mode .category-card{--bg-secondary: #374151}body.dark-mode .category-card:hover{--bg-hover: #1e3a5f}body.dark-mode .template-card{--bg-secondary: #374151}body.dark-mode .template-search-input{--input-bg: #374151}body.dark-mode .template-selector-footer{--bg-secondary: #111827}@media (max-width: 600px){.template-selector{max-height:95vh;border-radius:16px 16px 0 0;margin-top:auto}.category-grid{grid-template-columns:repeat(2,1fr)}.template-selector-footer{flex-direction:column;gap:.75rem}.footer-hint{order:-1}}.calendar-view{background:var(--card-bg, #ffffff);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .1))}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.calendar-nav{display:flex;align-items:center;gap:1rem}.calendar-nav .nav-btn{width:36px;height:36px;border:1px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb);border-radius:8px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.calendar-nav .nav-btn:hover{background:var(--bg-hover, #e5e7eb)}.calendar-title{font-size:1.25rem;font-weight:700;color:var(--text-primary, #1f2937);margin:0;min-width:180px;text-align:center}.calendar-actions{display:flex;align-items:center;gap:.75rem}.view-toggle{display:flex;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;overflow:hidden}.toggle-btn{padding:.5rem .75rem;border:none;background:var(--bg-secondary, #f9fafb);color:var(--text-secondary, #6b7280);font-size:.8rem;cursor:pointer;transition:all .2s ease}.toggle-btn:first-child{border-right:1px solid var(--border-color, #e5e7eb)}.toggle-btn.active{background:var(--color-primary, #3b82f6);color:#fff}.toggle-btn:hover:not(.active){background:var(--bg-hover, #e5e7eb)}.calendar-grid{border:1px solid var(--border-color, #e5e7eb);border-radius:8px;overflow:hidden}.calendar-day-headers{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-secondary, #f9fafb);border-bottom:1px solid var(--border-color, #e5e7eb)}.day-header{padding:.75rem .5rem;text-align:center;font-size:.75rem;font-weight:600;color:var(--text-secondary, #6b7280);text-transform:uppercase}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{min-height:100px;padding:.5rem;border-right:1px solid var(--border-color, #e5e7eb);border-bottom:1px solid var(--border-color, #e5e7eb);cursor:pointer;transition:background .2s ease;position:relative}.calendar-day:nth-child(7n){border-right:none}.calendar-day:nth-last-child(-n+7){border-bottom:none}.calendar-day:hover{background:var(--bg-hover, #f3f4f6)}.calendar-day.other-month{background:var(--bg-secondary, #f9fafb)}.calendar-day.other-month .day-number{color:var(--text-disabled, #d1d5db)}.calendar-day.today{background:#3b82f60d}.calendar-day.today .day-number{background:var(--color-primary, #3b82f6);color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.calendar-day.selected{background:#3b82f61a;box-shadow:inset 0 0 0 2px var(--color-primary, #3b82f6)}.day-number{font-size:.875rem;font-weight:500;color:var(--text-primary, #1f2937);display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}.day-items{margin-top:.25rem;display:flex;flex-direction:column;gap:2px}.day-item{display:flex;align-items:center;gap:4px;padding:2px 4px;border-radius:4px;font-size:.65rem;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.day-item.task-item.pending{background:#3b82f61a;color:var(--color-primary, #3b82f6)}.day-item.task-item.completed{background:#22c55e1a;color:#16a34a;text-decoration:line-through}.day-item.task-item.overdue{background:#ef44441a;color:#dc2626}.day-item.goal-item{background:#f59e0b1a;color:#d97706}.day-item:hover{opacity:.8}.item-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.task-dot,.pending-dot{background:var(--color-primary, #3b82f6)}.completed-dot{background:#16a34a}.overdue-dot{background:#dc2626}.goal-dot{background:#f59e0b}.item-title{overflow:hidden;text-overflow:ellipsis}.more-items{font-size:.6rem;color:var(--text-secondary, #6b7280);padding:2px 4px}.calendar-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary, #6b7280)}.legend-dot{width:10px;height:10px;border-radius:50%}.calendar-days.week-view{grid-template-columns:repeat(7,1fr)}.calendar-day.week-day{min-height:200px}.day-name-label{display:none}body.dark-mode .calendar-view{--card-bg: #1f2937;--border-color: #374151;--bg-secondary: #111827;--bg-hover: #374151}body.dark-mode .calendar-nav .nav-btn{background:#374151;border-color:#4b5563}body.dark-mode .calendar-day.other-month{background:#111827}body.dark-mode .calendar-day.other-month .day-number{color:#4b5563}@media (max-width: 768px){.calendar-view{padding:1rem}.calendar-header{flex-direction:column;align-items:stretch}.calendar-nav,.calendar-actions{justify-content:space-between}.calendar-day{min-height:70px;padding:.25rem}.day-number{font-size:.75rem;min-width:24px;min-height:24px}.calendar-day.today .day-number{width:24px;height:24px}.day-items{display:none}.calendar-day.has-items:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:6px;height:6px;background:var(--color-primary, #3b82f6);border-radius:50%}.day-header{padding:.5rem .25rem;font-size:.65rem}}@media (max-width: 480px){.toggle-btn{padding:.375rem .5rem;font-size:.7rem}.calendar-title{font-size:1rem;min-width:auto}}.language-selector{position:relative}.language-selector-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;cursor:pointer;font-size:.875rem;color:var(--text-primary, #1f2937);transition:all .2s ease}.language-selector-btn:hover{background:var(--bg-hover, #e5e7eb)}.lang-flag{font-size:1.125rem;line-height:1}.lang-name{font-weight:500}.lang-arrow{font-size:.625rem;margin-left:.25rem;transition:transform .2s ease}.lang-arrow.open{transform:rotate(180deg)}.language-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:100;overflow:hidden;animation:dropdownFadeIn .2s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.language-option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--text-primary, #1f2937);text-align:left;transition:background .15s ease}.language-option:hover{background:var(--bg-hover, #f3f4f6)}.language-option.active{background:#3b82f61a;color:var(--color-primary, #3b82f6)}.lang-check{margin-left:auto;color:var(--color-primary, #3b82f6)}.language-selector.compact .language-selector-btn{padding:.375rem .5rem}.language-selector.compact .lang-name{display:none}body.dark-mode .language-selector-btn{background:#374151;border-color:#4b5563}body.dark-mode .language-selector-btn:hover{background:#4b5563}body.dark-mode .language-dropdown{background:#1f2937;border-color:#374151}body.dark-mode .language-option:hover{background:#374151}@media (max-width: 480px){.language-selector .lang-name{display:none}.language-dropdown{min-width:140px}}.App{min-height:100vh;background:var(--bg-secondary);color:var(--text-primary)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-6)}.card{background:var(--card-bg);border-radius:var(--radius-xl);padding:var(--spacing-6);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}@media (max-width: 768px){.container{padding:0 var(--spacing-4)}.btn{padding:var(--spacing-3) var(--spacing-5);font-size:var(--font-size-sm)}.btn-large{padding:var(--spacing-4) var(--spacing-6);font-size:var(--font-size-base);min-height:56px}.card{padding:var(--spacing-5);border-radius:var(--radius-lg)}}@media (max-width: 480px){.container{padding:0 var(--spacing-3)}.btn{width:100%}}.page-loader{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-secondary)}.page-loader .spinner{width:48px;height:48px;border:4px solid var(--border-color, #e5e7eb);border-top-color:var(--color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}
