@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap";:root{--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-14: 56px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--font-size-xxxs: 9px;--font-size-xxs: 10px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 32px;--font-size-4xl: 40px;--font-size-5xl: 48px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-base: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tighter: -.02em;--letter-spacing-tight: -.01em;--letter-spacing-normal: 0;--letter-spacing-wide: .01em;--letter-spacing-wider: .025em;--letter-spacing-widest: .5px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-display: "Poppins", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-h1: var(--font-size-5xl);--text-h2: var(--font-size-2xl);--text-h3: var(--font-size-xl);--text-body: var(--font-size-base);--text-body-sm: var(--font-size-sm);--text-small: var(--font-size-sm);--text-tiny: var(--font-size-xs);--text-label: var(--font-size-sm);--text-badge: var(--font-size-xxs);--text-button: var(--font-size-sm);--text-input: var(--font-size-base);--text-card-title: var(--font-size-xl);--text-card-subtitle: var(--font-size-base);--text-card-meta: var(--font-size-xs);--color-success: #4ade80;--color-success-light: #86efac;--color-success-dark: #22c55e;--color-success-bg: rgba(74, 222, 128, .15);--color-success-border: rgba(74, 222, 128, .3);--color-error: #f87171;--color-error-light: #fca5a5;--color-error-dark: #ef4444;--color-error-bg: rgba(248, 113, 113, .15);--color-error-border: rgba(248, 113, 113, .3);--color-warning: #fbbf24;--color-warning-light: #fcd34d;--color-warning-dark: #f59e0b;--color-warning-bg: rgba(251, 191, 36, .15);--color-warning-border: rgba(251, 191, 36, .3);--color-info: #3b82f6;--color-info-light: #60a5fa;--color-info-dark: #2563eb;--color-info-bg: rgba(59, 130, 246, .15);--color-info-border: rgba(59, 130, 246, .3);--color-skip: #6b7280;--color-skip-light: #9ca3af;--color-skip-dark: #4b5563;--color-skip-bg: rgba(107, 114, 128, .15);--color-skip-border: rgba(107, 114, 128, .3);--gradient-primary: linear-gradient(135deg, #a78bfa 0%, #7c3aed 100%);--gradient-primary-hover: linear-gradient(135deg, #8b5cf6 0%, #6d28d9 100%);--gradient-secondary: linear-gradient(135deg, #8b5cf6 0%, #6d28d9 100%);--gradient-secondary-hover: linear-gradient(135deg, #7c3aed 0%, #5b21b6 100%);--gradient-accent: linear-gradient(135deg, #c4b5fd 0%, #a78bfa 100%);--gradient-success: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);--gradient-success-hover: linear-gradient(135deg, #3b82f6 0%, #06b6d4 100%);--gradient-bg: linear-gradient(135deg, #fafafa 0%, #f5f5f5 20%, #f0f0f0 40%, rgba(196, 181, 253, .15) 70%, rgba(167, 139, 250, .25) 100%);--gradient-mesh: radial-gradient(at 85% 85%, rgba(167, 139, 250, .12) 0px, transparent 50%), radial-gradient(at 95% 75%, rgba(196, 181, 253, .08) 0px, transparent 45%), radial-gradient(at 75% 95%, rgba(139, 92, 246, .1) 0px, transparent 50%), radial-gradient(at 90% 90%, rgba(167, 139, 250, .06) 0px, transparent 40%);--glass-bg: rgba(255, 255, 255, .25);--glass-bg-strong: rgba(255, 255, 255, .35);--glass-bg-hover: rgba(255, 255, 255, .4);--glass-border: rgba(255, 255, 255, .4);--glass-border-top: rgba(255, 255, 255, .6);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .1);--glass-shadow-lg: 0 16px 48px 0 rgba(0, 0, 0, .15);--glass-inset-shadow: inset 0 1px 1px 0 rgba(255, 255, 255, .5);--glass-shine: linear-gradient(135deg, rgba(255, 255, 255, .2) 0%, rgba(255, 255, 255, 0) 50%);--text-primary: rgba(20, 20, 30, .95);--text-secondary: rgba(50, 50, 60, .85);--text-tertiary: rgba(70, 70, 85, .8);--text-disabled: rgba(100, 100, 115, .7);--surface-primary: rgba(255, 255, 255, .9);--surface-secondary: rgba(255, 255, 255, .7);--surface-hover: rgba(255, 255, 255, .85);--border-color: rgba(0, 0, 0, .1);--border-color-strong: rgba(0, 0, 0, .2);--primary-color: #7c3aed;--color-primary: #7c3aed;--primary-rgb: 124, 58, 237;--color-background: #ffffff;--color-background-secondary: #fafafa;--color-border: rgba(0, 0, 0, .1);--color-border-strong: rgba(0, 0, 0, .2);--color-milestone: #ffd700;--color-milestone-glow: rgba(255, 215, 0, .5);--surface-bg: #ffffff;--surface-bg-secondary: #fafafa;--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-15: .15;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1;--radius-none: 0;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--shadow-md: 0 4px 16px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 32px rgba(31, 38, 135, .37);--shadow-xl: 0 12px 40px rgba(31, 38, 135, .45);--shadow-2xl: 0 20px 60px rgba(31, 38, 135, .5);--shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .1);--avatar-xs: 24px;--avatar-sm: 32px;--avatar-md: 40px;--avatar-lg: 50px;--avatar-xl: 64px;--avatar-2xl: 80px;--button-height-sm: 32px;--button-height-md: 40px;--button-height-lg: 48px;--button-padding-sm: 8px 16px;--button-padding-md: 12px 24px;--button-padding-lg: 16px 32px;--habit-circle-sm: 32px;--habit-circle-md: 40px;--habit-circle-lg: 48px;--habit-circle-xl: 56px;--input-height-sm: 32px;--input-height-md: 40px;--input-height-lg: 48px;--modal-width-sm: 400px;--modal-width-md: 500px;--modal-width-lg: 700px;--modal-width-xl: 900px;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-overlay: 400;--z-modal-backdrop: 999;--z-modal: 1000;--z-popover: 1100;--z-tooltip: 1200;--z-notification: 1300;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--breakpoint-xs: 480px;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--container-max-width: 800px;--container-padding: var(--space-4);--navigation-height: 60px;--header-height: 80px;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--backdrop-blur-sm: blur(6px);--backdrop-blur-md: blur(12px);--backdrop-blur-lg: blur(20px);--backdrop-blur-xl: blur(30px)}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-start{display:flex;align-items:center;justify-content:flex-start}.flex-col{display:flex;flex-direction:column}.flex-col-center{display:flex;flex-direction:column;align-items:center;justify-content:center}.flex-wrap{flex-wrap:wrap}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mt-auto{margin-top:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}[data-theme=green]{--gradient-primary: linear-gradient(135deg, #34d399 0%, #059669 100%);--gradient-primary-hover: linear-gradient(135deg, #10b981 0%, #047857 100%);--gradient-secondary: linear-gradient(135deg, #10b981 0%, #047857 100%);--gradient-secondary-hover: linear-gradient(135deg, #059669 0%, #065f46 100%);--gradient-accent: linear-gradient(135deg, #6ee7b7 0%, #34d399 100%);--gradient-bg: linear-gradient(135deg, #fafafa 0%, #f5f5f5 20%, #f0f0f0 40%, rgba(110, 231, 183, .12) 70%, rgba(52, 211, 153, .2) 100%);--gradient-mesh: radial-gradient(at 85% 85%, rgba(52, 211, 153, .1) 0px, transparent 50%), radial-gradient(at 95% 75%, rgba(110, 231, 183, .06) 0px, transparent 45%), radial-gradient(at 75% 95%, rgba(16, 185, 129, .08) 0px, transparent 50%), radial-gradient(at 90% 90%, rgba(52, 211, 153, .05) 0px, transparent 40%)}[data-theme=purple]{--gradient-primary: linear-gradient(135deg, #a78bfa 0%, #7c3aed 100%);--gradient-primary-hover: linear-gradient(135deg, #8b5cf6 0%, #6d28d9 100%);--gradient-secondary: linear-gradient(135deg, #8b5cf6 0%, #6d28d9 100%);--gradient-secondary-hover: linear-gradient(135deg, #7c3aed 0%, #5b21b6 100%);--gradient-accent: linear-gradient(135deg, #c4b5fd 0%, #a78bfa 100%);--gradient-bg: linear-gradient(135deg, #fafafa 0%, #f5f5f5 20%, #f0f0f0 40%, rgba(196, 181, 253, .15) 70%, rgba(167, 139, 250, .25) 100%);--gradient-mesh: radial-gradient(at 85% 85%, rgba(167, 139, 250, .12) 0px, transparent 50%), radial-gradient(at 95% 75%, rgba(196, 181, 253, .08) 0px, transparent 45%), radial-gradient(at 75% 95%, rgba(139, 92, 246, .1) 0px, transparent 50%), radial-gradient(at 90% 90%, rgba(167, 139, 250, .06) 0px, transparent 40%)}[data-theme=orange]{--gradient-primary: linear-gradient(135deg, #fb923c 0%, #f97316 100%);--gradient-primary-hover: linear-gradient(135deg, #f97316 0%, #ea580c 100%);--gradient-secondary: linear-gradient(135deg, #f97316 0%, #ea580c 100%);--gradient-secondary-hover: linear-gradient(135deg, #ea580c 0%, #c2410c 100%);--gradient-accent: linear-gradient(135deg, #fdba74 0%, #fb923c 100%);--gradient-bg: linear-gradient(135deg, #fafafa 0%, #f5f5f5 20%, #f0f0f0 40%, rgba(253, 186, 116, .12) 70%, rgba(251, 146, 60, .22) 100%);--gradient-mesh: radial-gradient(at 85% 85%, rgba(251, 146, 60, .1) 0px, transparent 50%), radial-gradient(at 95% 75%, rgba(253, 186, 116, .06) 0px, transparent 45%), radial-gradient(at 75% 95%, rgba(249, 115, 22, .08) 0px, transparent 50%), radial-gradient(at 90% 90%, rgba(251, 146, 60, .05) 0px, transparent 40%)}[data-theme=dark]{--surface-bg: #1a1a2e;--surface-bg-secondary: #16162a;--color-background: #1a1a2e;--color-background-secondary: #16162a;--color-border: rgba(255, 255, 255, .1);--color-border-strong: rgba(255, 255, 255, .2);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .7);--text-tertiary: rgba(255, 255, 255, .5);--text-disabled: rgba(255, 255, 255, .3);--glass-bg: rgba(255, 255, 255, .08);--glass-bg-strong: rgba(255, 255, 255, .12);--glass-bg-hover: rgba(255, 255, 255, .15);--glass-border: rgba(255, 255, 255, .15);--glass-border-top: rgba(255, 255, 255, .25);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .3);--glass-shadow-lg: 0 16px 48px 0 rgba(0, 0, 0, .4);--glass-inset-shadow: inset 0 1px 1px 0 rgba(255, 255, 255, .1);--glass-shine: linear-gradient(135deg, rgba(255, 255, 255, .08) 0%, rgba(255, 255, 255, 0) 50%);--border-color: rgba(255, 255, 255, .1);--border-color-strong: rgba(255, 255, 255, .2);--surface-primary: rgba(30, 30, 50, .9);--surface-secondary: rgba(30, 30, 50, .7);--surface-hover: rgba(40, 40, 60, .85);--gradient-bg: linear-gradient(135deg, #1a1a2e 0%, #16162a 20%, #1a1a2e 40%, rgba(124, 58, 237, .15) 70%, rgba(139, 92, 246, .2) 100%);--gradient-mesh: radial-gradient(at 85% 85%, rgba(139, 92, 246, .15) 0px, transparent 50%), radial-gradient(at 95% 75%, rgba(167, 139, 250, .1) 0px, transparent 45%), radial-gradient(at 75% 95%, rgba(124, 58, 237, .12) 0px, transparent 50%), radial-gradient(at 90% 90%, rgba(139, 92, 246, .08) 0px, transparent 40%)}@media(max-width:768px){:root{--font-size-5xl: 40px;--font-size-4xl: 32px;--font-size-3xl: 28px;--font-size-2xl: 20px}}@media(max-width:480px){:root{--font-size-5xl: 32px;--font-size-4xl: 28px;--font-size-3xl: 24px;--font-size-2xl: 18px;--font-size-xl: 18px}}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.m-6{margin:var(--space-6)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.text-xxxs{font-size:var(--font-size-xxxs)}.text-xxs{font-size:var(--font-size-xxs)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.text-5xl{font-size:var(--font-size-5xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.leading-tight{line-height:var(--line-height-tight)}.leading-base{line-height:var(--line-height-base)}.leading-relaxed{line-height:var(--line-height-relaxed)}.tracking-tighter{letter-spacing:var(--letter-spacing-tighter)}.tracking-tight{letter-spacing:var(--letter-spacing-tight)}.tracking-normal{letter-spacing:var(--letter-spacing-normal)}.tracking-wide{letter-spacing:var(--letter-spacing-wide)}.tracking-wider{letter-spacing:var(--letter-spacing-wider)}.tracking-widest{letter-spacing:var(--letter-spacing-widest)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-disabled{color:var(--text-disabled)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--surface-bg: #1a1a2e;--surface-bg-secondary: #16162a;--color-background: #1a1a2e;--color-background-secondary: #16162a;--color-border: rgba(255, 255, 255, .1);--color-border-strong: rgba(255, 255, 255, .2);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .7);--text-tertiary: rgba(255, 255, 255, .5);--text-disabled: rgba(255, 255, 255, .35);--glass-bg: rgba(255, 255, 255, .08);--glass-bg-strong: rgba(255, 255, 255, .12);--glass-bg-hover: rgba(255, 255, 255, .15);--glass-border: rgba(255, 255, 255, .15);--glass-border-top: rgba(255, 255, 255, .25);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .3);--glass-shadow-lg: 0 16px 48px 0 rgba(0, 0, 0, .4);--glass-inset-shadow: inset 0 1px 1px 0 rgba(255, 255, 255, .1);--glass-shine: linear-gradient(135deg, rgba(255, 255, 255, .08) 0%, rgba(255, 255, 255, 0) 50%);--border-color: rgba(255, 255, 255, .1);--border-color-strong: rgba(255, 255, 255, .2);--surface-primary: rgba(30, 30, 50, .9);--surface-secondary: rgba(30, 30, 50, .7);--surface-hover: rgba(40, 40, 60, .85);--gradient-bg: linear-gradient(135deg, #1a1a2e 0%, #16162a 20%, #1a1a2e 40%, rgba(124, 58, 237, .15) 70%, rgba(139, 92, 246, .2) 100%);--gradient-mesh: radial-gradient(at 85% 85%, rgba(139, 92, 246, .15) 0px, transparent 50%), radial-gradient(at 95% 75%, rgba(167, 139, 250, .1) 0px, transparent 45%), radial-gradient(at 75% 95%, rgba(124, 58, 237, .12) 0px, transparent 50%), radial-gradient(at 90% 90%, rgba(139, 92, 246, .08) 0px, transparent 40%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes opacityPulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}@keyframes fadeIn{0%,to{opacity:1}}@keyframes slideUp{0%,to{transform:translateY(0);opacity:1}}@keyframes fadeInUp{0%,to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%,to{transform:scale(1);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%,to{background-position:0 0}}@keyframes shake{0%,to{transform:translate(0)}}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-slideUp{animation:slideUp .4s cubic-bezier(.4,0,.2,1)}.animate-fadeInUp{animation:fadeInUp .4s ease-out}.animate-scaleIn{animation:scaleIn .2s ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-bounce{animation:bounce 2s infinite}.animate-spin{animation:spin 1s linear infinite}.animate-shimmer{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#fff0,#fff3,#fff0);background-size:200% 100%}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;height:-webkit-fill-available;overscroll-behavior:none}@media all and (display-mode:standalone){html{min-height:100vh;min-height:-webkit-fill-available}}:root{--primary-gradient: var(--gradient-primary);--secondary-gradient: var(--gradient-secondary);--success-gradient: var(--gradient-success);--success: var(--color-success);--fail: var(--color-error);--skip: var(--color-skip);--neutral: rgba(255, 255, 255, .15)}body{margin:0;font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available;height:100%;color:var(--text-primary);overflow:hidden;width:100%;position:fixed;inset:0;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior:none;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;background:var(--gradient-bg);background-size:400% 400%;animation:gradientShift 15s ease infinite;background-attachment:scroll}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}body:before{content:"";position:fixed;inset:0;background:var(--gradient-mesh);pointer-events:none;z-index:0;opacity:1}#root{height:100vh;height:100dvh;height:-webkit-fill-available;position:relative;z-index:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}@media all and (display-mode:standalone){#root{min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available}body,#root{overscroll-behavior:none}}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:var(--backdrop-blur-md);-webkit-backdrop-filter:var(--backdrop-blur-md);box-shadow:var(--glass-shadow),var(--glass-inset-shadow)}.glass-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-top:1.5px solid var(--glass-border-top);border-radius:var(--radius-lg);padding:20px;backdrop-filter:var(--backdrop-blur-md);-webkit-backdrop-filter:var(--backdrop-blur-md);box-shadow:var(--glass-shadow),var(--glass-inset-shadow);transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.glass-card:before{content:"";position:absolute;inset:0;background:var(--glass-shine);pointer-events:none;z-index:1}.glass-card:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);pointer-events:none}.glass-card:hover{background:var(--glass-bg-hover);box-shadow:var(--glass-shadow-lg),var(--glass-inset-shadow);transform:translateY(-4px) scale(1.01);border-color:var(--glass-border);border-top-color:var(--glass-border-top)}.btn{padding:12px 24px;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:var(--font-family);position:relative;overflow:hidden;letter-spacing:var(--letter-spacing-wider)}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 12px #0003;border:none}.btn-primary:hover{background:var(--gradient-primary-hover);box-shadow:0 6px 20px #00000059;transform:translateY(-2px) scale(1.02)}.btn-primary:active{transform:translateY(0) scale(.98)}.btn-secondary{background:var(--glass-bg-strong);backdrop-filter:var(--backdrop-blur-md);-webkit-backdrop-filter:var(--backdrop-blur-md);border:1px solid var(--glass-border);color:var(--text-primary);box-shadow:var(--glass-shadow)}.btn-secondary:hover{background:var(--glass-bg-hover);border-color:#ffffff40;transform:translateY(-2px);box-shadow:var(--glass-shadow-lg)}.btn-secondary:active{transform:translateY(0)}.btn-back{background:var(--glass-bg-strong);backdrop-filter:var(--backdrop-blur-md);-webkit-backdrop-filter:var(--backdrop-blur-md);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);padding:10px 16px;min-height:44px;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:6px;box-shadow:var(--glass-shadow);margin-bottom:20px}.btn-back:hover{background:var(--glass-bg-hover);border-color:#ffffff40;transform:translate(-2px);box-shadow:var(--glass-shadow-lg)}.btn-back:active{transform:translate(0)}.input-group{margin-bottom:20px}.input-group label{display:block;margin-bottom:8px;color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider)}.input,.textarea,.select{width:100%;padding:12px 16px;background:var(--glass-bg-strong);backdrop-filter:var(--backdrop-blur-md);-webkit-backdrop-filter:var(--backdrop-blur-md);border:1px solid var(--glass-border);border-top:1.5px solid var(--glass-border-top);border-radius:var(--radius-md);color:var(--text-primary);font-size:16px;transition:all .3s ease;font-family:inherit;box-shadow:var(--glass-shadow),var(--glass-inset-shadow)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:#ffffff59;background:var(--glass-bg-hover);box-shadow:0 0 0 3px #ffffff1a,var(--glass-shadow-lg)}.input::placeholder,.textarea::placeholder{color:var(--text-tertiary)}.textarea{resize:vertical;min-height:100px}.select{cursor:pointer}.circle{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease;border:none;background:#ffffff0d;color:var(--text-primary);flex-shrink:0}.circle:hover{transform:scale(1.1)}.circle.neutral{background:#c8c8c84d;color:var(--text-primary)}.circle.success{background:var(--success);color:#fff}.circle.failed{background:var(--fail);color:#fff}.circle.skipped{background:var(--skip);color:#fff}.circle.pending_verification{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;position:relative}.circle.pending_verification:after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid rgba(245,158,11,.4);animation:pending-pulse 2s ease-in-out infinite}@keyframes pending-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.5}}@keyframes coin-spin{0%{transform:scale(1) rotateY(0)}50%{transform:scale(1.2) rotateY(180deg)}to{transform:scale(1) rotateY(360deg)}}.circle.spinning{animation:coin-spin .6s ease-in-out;transform-style:preserve-3d}@media(max-width:480px){.circle{width:44px;height:44px;font-size:13px}}@media(max-width:380px){.circle{width:40px;height:40px;font-size:12px}}.modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:var(--backdrop-blur-md);-webkit-backdrop-filter:var(--backdrop-blur-md);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.modal{background:var(--glass-bg-strong);backdrop-filter:var(--backdrop-blur-xl);-webkit-backdrop-filter:var(--backdrop-blur-xl);border:1px solid var(--glass-border);border-top:1.5px solid var(--glass-border-top);border-radius:var(--radius-xl);padding:32px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--glass-shadow-lg),var(--glass-inset-shadow);position:relative;animation:slideUp .4s cubic-bezier(.4,0,.2,1)}.modal>*{position:relative;z-index:1}.modal:before{content:"";position:absolute;inset:0;background:var(--glass-shine);pointer-events:none;z-index:0;border-radius:var(--radius-xl)}.modal:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);pointer-events:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff1a}::-webkit-scrollbar-thumb{background:#fff6;border-radius:4px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#fff9;background-clip:padding-box}@media(max-width:640px){.modal{padding:20px;width:95%}.glass-card{padding:16px}}@media(max-width:480px){.modal{padding:16px;border-radius:var(--radius-lg)}.btn{padding:10px 20px}.input-group{margin-bottom:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}body{animation:none}.glass-card:hover,.btn-primary:hover,.btn-secondary:hover,.circle:hover{transform:none}.circle.spinning{animation:none}}.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);color:#fff;padding:8px 16px;z-index:100;transition:top .3s}.skip-link:focus{top:0}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}*:focus:not(:focus-visible){outline:none}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 4px rgba(var(--primary-rgb),.2)}.btn-primary:focus-visible{box-shadow:0 0 0 4px rgba(var(--primary-rgb),.3)}.btn-secondary:focus-visible{box-shadow:0 0 0 4px rgba(var(--primary-rgb),.15)}.input:focus-visible,.textarea:focus-visible,.select:focus-visible{outline:2px solid var(--color-primary);outline-offset:0;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.15)}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.nav-item:focus-visible{outline:2px solid rgba(255,255,255,.8);outline-offset:-2px;border-radius:var(--radius-md)}.circle:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.bottom-sheet-close:focus-visible,.close-btn:focus-visible,.close-btn-enhanced:focus-visible{outline:2px solid white;outline-offset:2px}button[aria-label]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-loading{position:relative;pointer-events:none;opacity:.7}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;margin-left:-8px;margin-top:-8px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:btn-spin .6s linear infinite}.btn-loading-text{visibility:hidden}@keyframes btn-spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:btn-spin .6s linear infinite}.spinner-sm{width:12px;height:12px;border-width:1.5px}.spinner-lg{width:24px;height:24px;border-width:3px}.btn .spinner{margin-right:var(--space-2)}.btn:disabled,.btn[disabled]{opacity:.6;cursor:not-allowed;pointer-events:none}.toast-container{position:fixed;top:0;left:0;right:0;z-index:var(--z-notification);pointer-events:none;display:flex;flex-direction:column;align-items:center;padding-top:calc(env(safe-area-inset-top,0px) + var(--space-3));gap:var(--space-2)}.toast-container>*{pointer-events:auto}.toast{position:relative;top:auto;right:auto;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);min-width:200px;max-width:min(90vw,360px);background:var(--glass-bg);backdrop-filter:var(--backdrop-blur-lg);-webkit-backdrop-filter:var(--backdrop-blur-lg);border-radius:var(--radius-full);box-shadow:var(--shadow-md);z-index:var(--z-notification);animation:toast-slide-down .3s cubic-bezier(.4,0,.2,1);transition:all var(--transition-base);font-size:var(--font-size-sm)}.toast-success{background:linear-gradient(135deg,var(--color-success-bg),rgba(255,255,255,.1));border:1px solid var(--color-success-border);color:var(--text-primary)}.toast-error{background:linear-gradient(135deg,var(--color-error-bg),rgba(255,255,255,.1));border:1px solid var(--color-error-border);color:var(--text-primary)}.toast-warning{background:linear-gradient(135deg,var(--color-warning-bg),rgba(255,255,255,.1));border:1px solid var(--color-warning-border);color:var(--text-primary)}.toast-info{background:linear-gradient(135deg,var(--color-info-bg),rgba(255,255,255,.1));border:1px solid var(--color-info-border);color:var(--text-primary)}.toast-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);flex-shrink:0}.toast-success .toast-icon{background:var(--color-success);color:#fff}.toast-error .toast-icon{background:var(--color-error);color:#fff}.toast-warning .toast-icon{background:var(--color-warning);color:#fff}.toast-info .toast-icon{background:var(--color-info);color:#fff}.toast-message{flex:1;font-weight:var(--font-weight-medium);line-height:var(--line-height-base)}.toast-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:#ffffff1a;border:none;border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:1;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;opacity:.7}.toast-close:hover{background:#fff3;opacity:1}.toast-close:active{transform:scale(.95)}@keyframes toast-slide-down{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.toast-exit{animation:toast-slide-up .25s cubic-bezier(.4,0,1,1) forwards}@keyframes toast-slide-up{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media(max-width:640px){.toast-container{padding-top:calc(env(safe-area-inset-top,0px) + var(--space-2))}.toast{max-width:calc(100vw - var(--space-6));min-width:auto;padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}}.navigation{position:fixed;bottom:var(--space-5);left:50%;transform:translate(-50%);display:flex;gap:var(--space-1);padding:var(--space-2);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom,0px));border-radius:var(--radius-2xl);z-index:var(--z-fixed);max-width:600px;width:90%;background:var(--glass-bg-strong);backdrop-filter:var(--backdrop-blur-lg) saturate(180%);-webkit-backdrop-filter:var(--backdrop-blur-lg) saturate(180%);border:1px solid var(--glass-border);border-top:1.5px solid var(--glass-border-top);box-shadow:var(--glass-shadow),var(--glass-inset-shadow)}@media(max-width:768px){.navigation{bottom:0;left:0;right:0;transform:none;width:100%;max-width:none;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;border-bottom:none;padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom,34px))}}@media(max-width:480px){.navigation{gap:var(--space-0);padding:var(--space-1);padding-bottom:calc(var(--space-1) + env(safe-area-inset-bottom,34px))}}.nav-item{flex:1;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);text-decoration:none;color:var(--text-secondary);font-weight:var(--font-weight-semibold);transition:all var(--transition-base);font-size:var(--font-size-sm);text-align:center;min-height:44px;display:flex;align-items:center;justify-content:center;letter-spacing:var(--letter-spacing-wider)}.nav-item:hover{background:var(--glass-bg);color:var(--text-primary)}.nav-item.active{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md)}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--color-background)}.error-boundary-content{max-width:600px;width:100%;padding:3rem;background:#fff;border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);text-align:center;animation:slideIn .3s ease-out;border:1px solid var(--color-border)}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-icon{font-size:var(--font-size-5xl);margin-bottom:1.5rem;animation:pulse 2s ease-in-out infinite}.error-boundary h1{font-size:var(--font-size-3xl);margin-bottom:1rem;color:var(--text-primary);font-weight:var(--font-weight-bold)}.error-message{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:2rem;line-height:var(--line-height-relaxed)}.error-details{margin:2rem 0;text-align:left;background:var(--color-background);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--color-border)}.error-details summary{cursor:pointer;font-weight:var(--font-weight-semibold);color:var(--text-primary);padding:.5rem;user-select:none}.error-details summary:hover{color:var(--color-info)}.error-stack{margin-top:1rem;padding:1rem;background:#f9fafb;border-radius:var(--radius-sm);overflow-x:auto;font-size:var(--font-size-sm);color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.error-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.error-actions .btn-primary,.error-actions .btn-secondary{padding:.875rem 2rem;border-radius:12px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);cursor:pointer;transition:all .2s ease;border:none}.error-actions .btn-primary{background:var(--color-info);color:#fff}.error-actions .btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666;background:#2563eb}.error-actions .btn-secondary{background:transparent;color:var(--text-primary);border:2px solid var(--color-border)}.error-actions .btn-secondary:hover{background:var(--color-background);border-color:var(--color-info)}@media(max-width:640px){.error-boundary-content{padding:2rem 1.5rem}.error-boundary h1{font-size:var(--font-size-2xl)}.error-message{font-size:var(--font-size-base)}.error-actions{flex-direction:column}.error-actions .btn-primary,.error-actions .btn-secondary{width:100%}}.loading-spinner-fullscreen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.spinner{border-radius:50%;border-style:solid;border-color:var(--color-info) transparent var(--color-info) transparent;animation:spin 1.2s linear infinite}.spinner-small{width:20px;height:20px;border-width:2px}.spinner-medium{width:40px;height:40px;border-width:4px}.spinner-large{width:60px;height:60px;border-width:6px}.loading-text{color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.install-prompt-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:var(--backdrop-blur-sm);-webkit-backdrop-filter:var(--backdrop-blur-sm);display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal);padding:20px;animation:fadeIn .3s ease-out}.install-prompt{width:100%;max-width:400px;padding:28px 24px 24px;background:var(--glass-bg-strong);backdrop-filter:var(--backdrop-blur-xl);-webkit-backdrop-filter:var(--backdrop-blur-xl);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff0d inset;text-align:center;position:relative;animation:slideUp .4s cubic-bezier(.16,1,.3,1)}.install-prompt-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:var(--glass-bg);border-radius:var(--radius-full);color:var(--text-secondary);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.install-prompt-close:hover{background:var(--glass-bg-hover);color:var(--text-primary);transform:scale(1.1)}.install-prompt-icon{width:72px;height:72px;margin:0 auto 20px;background:var(--gradient-primary);border-radius:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #667eea66,0 0 0 4px #667eea1a;animation:iconPulse 2s ease-in-out infinite}@keyframes iconPulse{0%,to{box-shadow:0 8px 24px #667eea66,0 0 0 4px #667eea1a}50%{box-shadow:0 12px 32px #667eea80,0 0 0 8px #667eea26}}.app-icon{font-size:32px}.install-prompt-title{margin:0 0 12px;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);background:linear-gradient(135deg,var(--text-primary),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.install-prompt-description{margin:0 0 24px;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.install-prompt-button{width:100%;padding:14px 24px;background:var(--gradient-primary);border:none;border-radius:var(--radius-lg);color:#fff;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .3s ease;box-shadow:0 4px 16px #667eea66}.install-prompt-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #667eea80}.install-prompt-button:active{transform:translateY(0)}.install-prompt-button.secondary{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-primary);box-shadow:none;margin-top:16px}.install-prompt-button.secondary:hover{background:var(--glass-bg-hover);box-shadow:none}.install-prompt-note{margin:16px 0 0;font-size:var(--font-size-xs);color:var(--text-tertiary)}.ios-instructions{text-align:left}.ios-step{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--glass-border)}.ios-step:last-of-type{border-bottom:none}.ios-step-number{width:28px;height:28px;background:var(--gradient-primary);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:#fff;flex-shrink:0}.ios-step-content{display:flex;align-items:center;gap:10px;font-size:var(--font-size-sm);color:var(--text-secondary)}.ios-step-content strong{color:var(--text-primary)}.ios-step-icon{width:28px;height:28px;background:var(--glass-bg);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-primary);flex-shrink:0}.ios-step-icon svg{width:18px;height:18px}@media(min-width:768px){.install-prompt-overlay{align-items:center}.install-prompt{margin-bottom:0}}@media(max-width:380px){.install-prompt{padding:24px 20px 20px}.install-prompt-icon{width:64px;height:64px}.app-icon{font-size:28px}}
