.toast-container{position:fixed;top:calc(env(safe-area-inset-top,0px) + var(--space-4));left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--glass-bg);backdrop-filter:blur(var(--blur-lg)) saturate(150%);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(150%);border-radius:var(--radius-full);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);animation:toastSlideIn .3s var(--ease-spring);pointer-events:auto}.toast--closing{animation:toastSlideOut .2s var(--ease-out) forwards}.toast__icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:12px;font-weight:var(--font-bold);color:#fff}.toast--success .toast__icon{background:var(--color-positive)}.toast--info .toast__icon{background:var(--color-neutral)}.toast--warning .toast__icon{background:var(--color-negative)}.toast__message{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);white-space:nowrap}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.95)}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:var(--bg-primary)}.error-boundary__content{text-align:center;max-width:320px}.error-boundary__emoji{font-size:64px;display:block;margin-bottom:var(--space-md)}.error-boundary__title{font-size:var(--font-xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-sm)}.error-boundary__message{font-size:var(--font-md);color:var(--text-secondary);margin-bottom:var(--space-lg);line-height:1.5}.error-boundary__actions{display:flex;flex-direction:column;gap:var(--space-sm)}.error-boundary__btn{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);font-size:var(--font-md);font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.error-boundary__btn--primary{background:var(--accent-positive);color:#fff}.error-boundary__btn--primary:active{transform:scale(.98);opacity:.9}.error-boundary__btn--secondary{background:var(--bg-secondary);color:var(--text-primary)}.error-boundary__btn--secondary:active{background:var(--bg-tertiary)}:root{--bg-primary: #FFFFFF;--bg-secondary: #F5F5F7;--bg-tertiary: #E8E8ED;--bg-page: #FAFBFC;--bg-elevated: #FFFFFF;--bg-recessed: #F2F3F5;--color-positive: #00D26A;--color-positive-hover: #00B85C;--color-positive-active: #00A352;--color-positive-soft: rgba(0, 210, 106, .12);--color-positive-glow: rgba(0, 210, 106, .4);--color-negative: #FF6B6B;--color-negative-hover: #EE5A5A;--color-negative-active: #DD4949;--color-negative-soft: rgba(255, 107, 107, .12);--color-negative-glow: rgba(255, 107, 107, .4);--color-neutral: #8E8E93;--color-neutral-hover: #7A7A7E;--color-neutral-active: #636366;--color-neutral-soft: rgba(142, 142, 147, .12);--color-neutral-glow: rgba(142, 142, 147, .25);--habit-positive: var(--color-positive);--habit-positive-light: var(--color-positive-soft);--habit-positive-glow: var(--color-positive-glow);--habit-negative: var(--color-negative);--habit-negative-light: var(--color-negative-soft);--habit-negative-glow: var(--color-negative-glow);--gradient-positive: linear-gradient(135deg, #00D26A 0%, #00B85C 50%, #00A352 100%);--gradient-negative: linear-gradient(135deg, #FF6B6B 0%, #EE5A5A 50%, #DD4949 100%);--gradient-neutral: linear-gradient(135deg, #8E8E93 0%, #7A7A7E 50%, #636366 100%);--gradient-accent: linear-gradient(135deg, #007AFF 0%, #0066DD 50%, #0055BB 100%);--gradient-mesh-light: radial-gradient(ellipse at 20% 30%, rgba(102, 126, 234, .05) 0%, transparent 50%), radial-gradient(ellipse at 80% 70%, rgba(0, 210, 106, .03) 0%, transparent 50%);--color-accent: #667EEA;--color-accent-soft: rgba(102, 126, 234, .12);--color-accent-hover: #5A6FD6;--accent-blue: #007AFF;--accent-blue-light: rgba(0, 122, 255, .12);--accent-purple: #AF52DE;--accent-orange: #FF9500;--accent-yellow: #FFCC00;--color-text-primary: #1A1D21;--color-text-secondary: #6B7280;--color-text-tertiary: #9CA3AF;--color-text-disabled: #D1D5DB;--color-text-inverse: #FFFFFF;--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-tertiary: var(--color-text-tertiary);--text-disabled: var(--color-text-disabled);--text-inverse: var(--color-text-inverse);--glass-bg: rgba(255, 255, 255, .72);--glass-bg-hover: rgba(255, 255, 255, .85);--glass-bg-active: rgba(255, 255, 255, .95);--glass-border: rgba(255, 255, 255, .5);--glass-border-subtle: rgba(0, 0, 0, .06);--glass-border-strong: rgba(0, 0, 0, .12);--glass-shadow: rgba(0, 0, 0, .04);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .02);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .02), 0 2px 4px rgba(0, 0, 0, .02), 0 4px 8px rgba(0, 0, 0, .02);--shadow-md: 0 2px 4px rgba(0, 0, 0, .02), 0 4px 8px rgba(0, 0, 0, .03), 0 8px 16px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .02), 0 8px 16px rgba(0, 0, 0, .04), 0 16px 32px rgba(0, 0, 0, .06);--shadow-xl: 0 8px 16px rgba(0, 0, 0, .04), 0 16px 32px rgba(0, 0, 0, .06), 0 32px 64px rgba(0, 0, 0, .08);--shadow-glow-positive: 0 8px 32px var(--color-positive-glow);--shadow-glow-negative: 0 8px 32px var(--color-negative-glow);--shadow-glow-accent: 0 8px 32px rgba(102, 126, 234, .35);--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-4);--spacing-lg: var(--space-6);--spacing-xl: var(--space-8);--spacing-2xl: var(--space-12);--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Segoe UI", Roboto, sans-serif;--font-family-rounded: -apple-system, BlinkMacSystemFont, "SF Pro Rounded", "Inter", sans-serif;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-md: 17px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 28px;--text-3xl: 34px;--text-4xl: 40px;--font-size-xs: var(--text-xs);--font-size-sm: var(--text-sm);--font-size-base: var(--text-base);--font-size-md: var(--text-md);--font-size-lg: var(--text-lg);--font-size-xl: var(--text-xl);--font-size-2xl: var(--text-2xl);--font-size-3xl: var(--text-3xl);--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-weight-regular: var(--font-normal);--font-weight-medium: var(--font-medium);--font-weight-semibold: var(--font-semibold);--font-weight-bold: var(--font-bold);--tracking-tighter: -.03em;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .02em;--leading-none: 1;--leading-tight: 1.1;--leading-snug: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--duration-instant: .1s;--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--duration-slower: .6s;--duration-slowest: .8s;--ease-linear: linear;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.45, 0, .55, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-elastic: cubic-bezier(.175, .885, .32, 1.275);--transition-fast: var(--duration-fast) var(--ease-out);--transition-normal: var(--duration-normal) var(--ease-out);--transition-slow: var(--duration-slow) var(--ease-out);--transition-spring: var(--duration-slower) var(--ease-spring);--blur-xs: 4px;--blur-sm: 8px;--blur-md: 16px;--blur-lg: 24px;--blur-xl: 40px;--blur-2xl: 60px;--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400;--z-celebration: 500;--z-max: 9999;--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)}.p-0{padding:0}.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)}.p-8{padding:var(--space-8)}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.m-0{margin:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.mt-0{margin-top:0}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mt-sm{margin-top:var(--space-2)}.mt-md{margin-top:var(--space-4)}.mt-lg{margin-top:var(--space-6)}.mb-sm{margin-bottom:var(--space-2)}.mb-md{margin-bottom:var(--space-4)}.mb-lg{margin-bottom:var(--space-6)}.gap-0{gap:0}.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)}.gap-8{gap:var(--space-8)}.gap-sm{gap:var(--space-2)}.gap-md{gap:var(--space-4)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-grow{flex-grow:1}.flex-shrink-0{flex-shrink:0}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.w-full{width:100%}.w-auto{width:auto}.w-screen{width:100vw}.h-full{height:100%}.h-auto{height:auto}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.max-w-full{max-width:100%}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.tracking-tighter{letter-spacing:var(--tracking-tighter)}.tracking-tight{letter-spacing:var(--tracking-tight)}.tracking-normal{letter-spacing:var(--tracking-normal)}.tracking-wide{letter-spacing:var(--tracking-wide)}.leading-none{line-height:var(--leading-none)}.leading-tight{line-height:var(--leading-tight)}.leading-snug{line-height:var(--leading-snug)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-disabled{color:var(--color-text-disabled)}.text-inverse{color:var(--color-text-inverse)}.text-positive{color:var(--color-positive)}.text-negative{color:var(--color-negative)}.text-accent{color:var(--color-accent)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-words{word-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.bg-page{background-color:var(--bg-page)}.bg-elevated{background-color:var(--bg-elevated)}.bg-recessed{background-color:var(--bg-recessed)}.bg-transparent{background-color:transparent}.bg-positive{background-color:var(--color-positive-soft)}.bg-negative{background-color:var(--color-negative-soft)}.bg-accent{background-color:var(--color-accent-soft)}.bg-gradient-positive{background:var(--gradient-positive)}.bg-gradient-negative{background:var(--gradient-negative)}.bg-gradient-neutral{background:var(--gradient-neutral)}.bg-gradient-accent{background:var(--gradient-accent)}.bg-gradient-mesh{background:var(--gradient-mesh-light)}.rounded-none{border-radius:0}.rounded-xs{border-radius:var(--radius-xs)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:var(--radius-full)}.border{border:1px solid var(--glass-border-subtle)}.border-0{border:0}.border-2{border:2px solid var(--glass-border-subtle)}.border-positive{border-color:var(--color-positive)}.border-negative{border-color:var(--color-negative)}.border-accent{border-color:var(--color-accent)}.shadow-none{box-shadow:none}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-glow-positive{box-shadow:var(--shadow-glow-positive)}.shadow-glow-negative{box-shadow:var(--shadow-glow-negative)}.shadow-glow-accent{box-shadow:var(--shadow-glow-accent)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.hidden{display:none}.invisible{visibility:hidden}.visible{visibility:visible}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.static{position:static}.inset-0{inset:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-base{z-index:var(--z-base)}.z-dropdown{z-index:var(--z-dropdown)}.z-sticky{z-index:var(--z-sticky)}.z-modal{z-index:var(--z-modal)}.z-toast{z-index:var(--z-toast)}.z-celebration{z-index:var(--z-celebration)}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.select-none{-webkit-user-select:none;user-select:none}.select-auto{-webkit-user-select:auto;user-select:auto}.touch-none{touch-action:none}.tap-transparent{-webkit-tap-highlight-color:transparent}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.transition-none{transition:none}.transition-all{transition:all var(--duration-normal) var(--ease-out)}.transition-fast{transition:all var(--duration-fast) var(--ease-out)}.transition-slow{transition:all var(--duration-slow) var(--ease-out)}.transition-colors{transition-property:color,background-color,border-color;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out)}.transition-transform{transition-property:transform;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out)}.transition-opacity{transition-property:opacity;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out)}.translate-y-0{transform:translateY(0)}.translate-y-1{transform:translateY(var(--space-1))}.translate-y-2{transform:translateY(var(--space-2))}.-translate-y-1{transform:translateY(calc(var(--space-1) * -1))}.-translate-y-2{transform:translateY(calc(var(--space-2) * -1))}.scale-95{transform:scale(.95)}.scale-100{transform:scale(1)}.scale-105{transform:scale(1.05)}.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}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus-ring:focus{outline:none;box-shadow:0 0 0 3px var(--color-accent-soft)}.focus-ring-positive:focus{outline:none;box-shadow:0 0 0 3px var(--color-positive-soft)}.focus-ring-negative:focus{outline:none;box-shadow:0 0 0 3px var(--color-negative-soft)}.backdrop-blur-sm{backdrop-filter:blur(var(--blur-sm));-webkit-backdrop-filter:blur(var(--blur-sm))}.backdrop-blur-md{backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md))}.backdrop-blur-lg{backdrop-filter:blur(var(--blur-lg));-webkit-backdrop-filter:blur(var(--blur-lg))}.backdrop-blur-xl{backdrop-filter:blur(var(--blur-xl));-webkit-backdrop-filter:blur(var(--blur-xl))}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.object-cover{object-fit:cover}.object-contain{object-fit:contain}.scrollbar-hidden{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-hidden::-webkit-scrollbar{display:none}.safe-top{padding-top:var(--safe-area-top)}.safe-bottom{padding-bottom:var(--safe-area-bottom)}.safe-left{padding-left:var(--safe-area-left)}.safe-right{padding-right:var(--safe-area-right)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}@keyframes springIn{0%{transform:scale(0);opacity:0}50%{transform:scale(1.15)}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}@keyframes springBounce{0%{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(.95)}75%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes springPop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.2);opacity:1}80%{transform:scale(.9)}to{transform:scale(1);opacity:1}}@keyframes celebrate{0%{transform:scale(1)}15%{transform:scale(1.08)}30%{transform:scale(.97)}45%{transform:scale(1.04)}60%{transform:scale(.99)}75%{transform:scale(1.02)}to{transform:scale(1)}}.celebrate{animation:celebrate .7s var(--ease-spring)}@keyframes screenFlash{0%{opacity:0}15%{opacity:.25}30%{opacity:.15}to{opacity:0}}.screen-flash{position:fixed;inset:0;pointer-events:none;z-index:var(--z-celebration);animation:screenFlash .25s ease-out forwards}.screen-flash--positive{background:radial-gradient(circle at center,var(--color-positive) 0%,transparent 70%)}.screen-flash--negative{background:radial-gradient(circle at center,var(--color-negative) 0%,transparent 70%)}@keyframes ringExpand{0%{transform:scale(0);opacity:.7}to{transform:scale(4);opacity:0}}.ring-pulse{position:absolute;top:50%;left:50%;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;border:3px solid var(--color-positive);pointer-events:none;animation:ringExpand .8s var(--ease-out) forwards}.ring-pulse--negative{border-color:var(--color-negative)}.ring-pulse:nth-child(2){animation-delay:.1s}.ring-pulse:nth-child(3){animation-delay:.2s}@keyframes confettiFall{0%{transform:translateY(-20px) translate(0) rotate(0) scale(1);opacity:1}25%{transform:translateY(25vh) translate(20px) rotate(180deg) scale(.9)}50%{transform:translateY(50vh) translate(-15px) rotate(360deg) scale(.8)}75%{transform:translateY(75vh) translate(10px) rotate(540deg) scale(.5)}to{transform:translateY(100vh) translate(0) rotate(720deg) scale(.2);opacity:0}}@keyframes confettiWiggle{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-15px) rotate(-15deg)}75%{transform:translate(15px) rotate(15deg)}}.confetti-piece{position:fixed;top:-20px;pointer-events:none;z-index:var(--z-celebration);animation:confettiFall 2.5s ease-out forwards,confettiWiggle .8s ease-in-out infinite}.confetti--circle{width:10px;height:10px;border-radius:50%}.confetti--square{width:8px;height:8px;border-radius:2px}.confetti--rectangle{width:12px;height:6px;border-radius:2px}.confetti--star{width:12px;height:12px;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.confetti--heart{width:12px;height:12px;clip-path:polygon(50% 100%,0% 35%,25% 0%,50% 15%,75% 0%,100% 35%)}.confetti--color-1{background:#ff6b6b}.confetti--color-2{background:#4ecdc4}.confetti--color-3{background:#ffe66d}.confetti--color-4{background:#95e1d3}.confetti--color-5{background:#f38181}.confetti--color-6{background:#aa96da}.confetti--color-7{background:#00d26a}.confetti--color-8{background:#667eea}@keyframes particleBurst{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--x),var(--y)) scale(0);opacity:0}}.particle{position:absolute;width:8px;height:8px;border-radius:50%;pointer-events:none;animation:particleBurst .6s var(--ease-out) forwards}.particle--positive{background:var(--color-positive)}.particle--negative{background:var(--color-negative)}.particle--accent{background:var(--color-accent)}.particle--glow{box-shadow:0 0 8px currentColor}@keyframes starBurst{0%{transform:translate(0) scale(0) rotate(0);opacity:1}50%{opacity:1}to{transform:translate(var(--x),var(--y)) scale(.5) rotate(180deg);opacity:0}}@keyframes starFloat{0%{transform:translateY(0) scale(1) rotate(0);opacity:1}to{transform:translateY(-100px) scale(.3) rotate(360deg);opacity:0}}@keyframes starTwinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.star-burst-container{position:absolute;top:50%;left:50%;pointer-events:none}.star-burst-item{position:absolute;animation:starBurst .8s var(--ease-out) forwards;font-size:20px}@keyframes overlayFadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md))}}@keyframes overlayFadeOut{0%{opacity:1}to{opacity:0}}@keyframes successContentAppear{0%{opacity:0;transform:scale(.5) translateY(20px)}60%{transform:scale(1.1) translateY(-5px)}80%{transform:scale(.95) translateY(2px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes emojiPop{0%{transform:scale(0) rotate(-10deg);opacity:0}50%{transform:scale(1.3) rotate(5deg)}70%{transform:scale(.9) rotate(-3deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes counterBounce{0%{transform:scale(.3);opacity:0}40%{transform:scale(1.25)}60%{transform:scale(.85)}80%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes messageSlide{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes glowPulse{0%,to{box-shadow:0 0 20px var(--color-positive-glow),inset 0 0 10px #00d26a1a}50%{box-shadow:0 0 40px var(--color-positive-glow),0 0 60px #00d26a4d,inset 0 0 20px #00d26a33}}@keyframes glowPulseNegative{0%,to{box-shadow:0 0 20px var(--color-negative-glow),inset 0 0 10px #ff6b6b1a}50%{box-shadow:0 0 40px var(--color-negative-glow),0 0 60px #ff6b6b4d,inset 0 0 20px #ff6b6b33}}.glow-positive{animation:glowPulse 1.2s ease-in-out}.glow-negative{animation:glowPulseNegative 1.2s ease-in-out}@keyframes firePulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.15);filter:brightness(1.2)}}@keyframes fireGlow{0%,to{text-shadow:0 0 4px #FF9500,0 0 8px #FF6B00}50%{text-shadow:0 0 8px #FF9500,0 0 16px #FF6B00,0 0 24px #FF4500,0 0 32px rgba(255,100,0,.5)}}@keyframes fireFlicker{0%,to{opacity:1}25%{opacity:.9}50%{opacity:1}75%{opacity:.95}}.streak-fire{animation:firePulse 1.5s ease-in-out infinite,fireGlow 1.5s ease-in-out infinite,fireFlicker .5s ease-in-out infinite;display:inline-block}@keyframes ripple{0%{transform:scale(0);opacity:.6}to{transform:scale(4);opacity:0}}.ripple-effect{position:absolute;border-radius:50%;background:#00000014;animation:ripple .6s var(--ease-out) forwards;pointer-events:none}.ripple-effect--positive{background:#00d26a33}.ripple-effect--negative{background:#ff6b6b33}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-4px)}90%{transform:translate(4px)}}.shake{animation:shake .6s ease-in-out}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 1.5s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.float{animation:float 3s ease-in-out infinite}@keyframes progressFill{0%{width:0}}@keyframes progressGlow{0%,to{box-shadow:0 0 8px var(--color-positive-glow)}50%{box-shadow:0 0 16px var(--color-positive-glow),0 0 24px var(--color-positive-glow)}}@keyframes emojiRain{0%{transform:translateY(-50px) rotate(0) scale(1);opacity:1}50%{opacity:1}to{transform:translateY(100vh) rotate(360deg) scale(.5);opacity:0}}.emoji-rain{position:fixed;top:-50px;font-size:24px;pointer-events:none;z-index:var(--z-celebration);animation:emojiRain 3s ease-out forwards}@keyframes numberPop{0%{transform:scale(0) translateY(20px);opacity:0}50%{transform:scale(1.3) translateY(-5px)}70%{transform:scale(.9) translateY(2px)}to{transform:scale(1) translateY(0);opacity:1}}.number-counter{display:inline-block;animation:numberPop .7s var(--ease-spring) forwards}@keyframes wave{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}.wave-bar{width:4px;height:20px;background:var(--color-positive);border-radius:var(--radius-full);animation:wave .8s ease-in-out infinite}.wave-bar:nth-child(2){animation-delay:.1s}.wave-bar:nth-child(3){animation-delay:.2s}.wave-bar:nth-child(4){animation-delay:.3s}.wave-bar:nth-child(5){animation-delay:.4s}@keyframes checkmarkDraw{0%{stroke-dashoffset:50}to{stroke-dashoffset:0}}@keyframes checkmarkCircle{0%{stroke-dashoffset:166}to{stroke-dashoffset:0}}.checkmark-svg{width:56px;height:56px}.checkmark-circle{stroke-dasharray:166;stroke-dashoffset:166;stroke:var(--color-positive);fill:none;stroke-width:2;animation:checkmarkCircle .6s var(--ease-out) forwards}.checkmark-check{stroke-dasharray:50;stroke-dashoffset:50;stroke:var(--color-positive);fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;animation:checkmarkDraw .3s var(--ease-out) .3s forwards}@keyframes badgeUnlock{0%{transform:scale(0) rotate(-180deg);opacity:0}50%{transform:scale(1.2) rotate(10deg)}70%{transform:scale(.9) rotate(-5deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes badgeShine{0%{background-position:-200% center}to{background-position:200% center}}.badge-unlock{animation:badgeUnlock .8s var(--ease-spring) forwards}.badge-shine{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);background-size:200% 100%;animation:badgeShine 1.5s ease-in-out .8s}.animate-in{animation:slideUp var(--duration-normal) var(--ease-out) forwards}.animate-out{animation:fadeOut var(--duration-fast) var(--ease-out) forwards}.animate-spring{animation:springIn var(--duration-slower) var(--ease-spring) forwards}.animate-pop{animation:springPop var(--duration-slow) var(--ease-spring) forwards}.animate-bounce{animation:springBounce var(--duration-slower) var(--ease-spring)}.glass-card{position:relative;background:var(--glass-bg);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md));border-radius:var(--radius-lg);border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--transition-normal)}.glass-card--elevated{background:var(--glass-bg-hover);box-shadow:var(--shadow-md)}.glass-card--floating{background:#ffffffe6;box-shadow:var(--shadow-lg)}.glass-card--interactive{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.glass-card--interactive:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.glass-card--interactive:active{background:var(--glass-bg-active);transform:translateY(0) scale(.98);box-shadow:var(--shadow-sm)}.glass-card--disabled{opacity:.5;pointer-events:none}.glass-card__shine{position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#fff6,#fff0);pointer-events:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.glass-card__edge{position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.05) 50%,transparent 100%)}.glass-card__content{position:relative;z-index:1}.glass-card__ripple{position:absolute;border-radius:50%;background:#00000014;transform:scale(0);animation:ripple .6s ease-out forwards;pointer-events:none}.glass-card--glow-positive{box-shadow:var(--shadow-sm),0 0 20px var(--habit-positive-glow),inset 0 0 20px #34c7590d;border-color:#34c75933}.glass-card--glow-negative{box-shadow:var(--shadow-sm),0 0 20px var(--habit-negative-glow),inset 0 0 20px #ff3b300d;border-color:#ff3b3033}.glass-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--glass-bg);backdrop-filter:blur(var(--blur-sm));-webkit-backdrop-filter:blur(var(--blur-sm));border-radius:var(--radius-md);border:1px solid var(--glass-border);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.glass-button:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-strong)}.glass-button:active{background:var(--glass-bg-active);transform:scale(.96)}.glass-button--primary{background:var(--accent-blue);color:#fff;border-color:transparent}.glass-button--primary:hover{background:#06d}.glass-button--positive{background:var(--habit-positive);color:#fff;border-color:transparent}.glass-button--positive:hover{background:#2db84f;transform:translateY(-1px)}.glass-button--positive:active{background:#28a347;transform:scale(.96)}.glass-button--negative{background:var(--habit-negative);color:#fff;border-color:transparent}.glass-button--negative:hover{background:#e5342a;transform:translateY(-1px)}.glass-button--negative:active{background:#cc2e25;transform:scale(.96)}.glass-button--large{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);border-radius:var(--radius-lg)}.glass-button--full{width:100%}.glass-button--icon{width:48px;height:48px;padding:0;border-radius:var(--radius-full);font-size:24px}.glass-input{width:100%;padding:var(--spacing-md);background:var(--glass-bg);backdrop-filter:blur(var(--blur-sm));-webkit-backdrop-filter:blur(var(--blur-sm));border-radius:var(--radius-md);border:1px solid var(--glass-border);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);outline:none;transition:all var(--transition-fast)}.glass-input::placeholder{color:var(--text-tertiary)}.glass-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-light)}.glass-input--error{border-color:var(--habit-negative)}.glass-progress{width:100%;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.glass-progress__bar{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow)}.glass-progress__bar--positive{background:linear-gradient(90deg,#34c759,#30d158)}.glass-progress__bar--negative{background:linear-gradient(90deg,#ff3b30,#ff453a)}.glass-modal-overlay{position:fixed;inset:0;background:#0000004d;backdrop-filter:blur(var(--blur-sm));-webkit-backdrop-filter:blur(var(--blur-sm));display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-md);padding-bottom:calc(var(--safe-area-bottom) + var(--spacing-md))}.glass-modal{width:100%;max-width:420px;max-height:80vh;background:var(--bg-primary);border-radius:var(--radius-xl) var(--radius-xl) var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden}.glass-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--glass-border)}.glass-modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.glass-modal__close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-full);border:none;cursor:pointer;font-size:18px;color:var(--text-secondary)}.glass-modal__content{padding:var(--spacing-lg);overflow-y:auto}.calendar-grid{display:flex;flex-direction:column;gap:var(--space-2)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1);margin-bottom:var(--space-2)}.calendar-weekday{text-align:center;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-1) 0}.calendar-week{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-2);border:none;border-radius:var(--radius-md);background:var(--bg-recessed);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:0 1px 3px #0000000a}.calendar-day:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #00000014}.calendar-day:active:not(:disabled){transform:scale(.95);transition-duration:var(--duration-instant)}.calendar-day--today{border:2px solid var(--color-accent);font-weight:var(--font-bold)}.calendar-day--future{opacity:.3;cursor:not-allowed}.calendar-day--future:hover{transform:none}.calendar-day--other-month{opacity:.4}.calendar-day--empty{visibility:hidden}.calendar-day--loading{opacity:.6;pointer-events:none}.calendar-day--completed.calendar-day--positive,.calendar-day--positive{background:var(--gradient-positive);color:var(--color-text-inverse);box-shadow:0 2px 8px var(--color-positive-glow)}.calendar-day--completed.calendar-day--positive:hover:not(:disabled),.calendar-day--positive:hover:not(:disabled){box-shadow:0 4px 16px var(--color-positive-glow)}.calendar-day--completed.calendar-day--negative,.calendar-day--negative{background:var(--gradient-negative);color:var(--color-text-inverse);box-shadow:0 2px 8px var(--color-negative-glow)}.calendar-day--completed.calendar-day--negative:hover:not(:disabled),.calendar-day--negative:hover:not(:disabled){box-shadow:0 4px 16px var(--color-negative-glow)}.calendar-day__number{font-size:var(--text-base);font-weight:var(--font-semibold);line-height:1}.calendar-day__status{font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:1}.calendar-day--positive .calendar-day__status,.calendar-day--negative .calendar-day__status{color:var(--color-text-inverse);opacity:.9}.calendar-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);padding:0 var(--space-2)}.calendar-month-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:var(--bg-recessed);font-size:24px;font-weight:var(--font-bold);color:var(--color-text-primary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.calendar-month-btn:hover:not(:disabled){background:var(--bg-elevated);transform:scale(1.05)}.calendar-month-btn:active:not(:disabled){transform:scale(.95)}.calendar-month-btn:disabled{opacity:.3;cursor:not-allowed}.calendar-month-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.calendar-container{background:var(--bg-elevated);border-radius:var(--radius-xl);padding:var(--space-4);box-shadow:var(--shadow-sm)}.calendar-legend{display:flex;justify-content:center;gap:var(--space-6);margin-top:var(--space-4)}.calendar-legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.calendar-legend-dot{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-bold)}.calendar-legend-dot--positive{background:var(--gradient-positive);color:var(--color-text-inverse)}.calendar-legend-dot--negative{background:var(--gradient-negative);color:var(--color-text-inverse)}.calendar-legend-dot--empty{background:var(--bg-recessed);color:var(--color-text-tertiary)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-size-adjust:100%;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--bg-page);background-image:var(--gradient-mesh-light);min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text-primary)}h1{font-size:var(--text-3xl);letter-spacing:var(--tracking-tighter)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl);font-weight:var(--font-semibold)}h4{font-size:var(--text-lg);font-weight:var(--font-semibold)}p{color:var(--color-text-secondary)}a{color:var(--color-accent);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}a:hover{color:var(--color-accent-hover)}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit}.page{flex:1;display:flex;flex-direction:column;padding:var(--space-5);padding-top:calc(var(--safe-area-top) + var(--space-5));padding-bottom:calc(var(--safe-area-bottom) + 88px);max-width:480px;margin:0 auto;width:100%}.page__header{margin-bottom:var(--space-6)}.page__title{font-size:var(--text-3xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tighter);color:var(--color-text-primary);line-height:var(--leading-tight)}.page__subtitle{font-size:var(--text-base);color:var(--color-text-secondary);margin-top:var(--space-2);line-height:var(--leading-normal)}.page__content{flex:1;display:flex;flex-direction:column;gap:var(--space-4)}.page__loader{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);color:var(--color-text-secondary)}.section{margin-bottom:var(--space-8)}.section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.section__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);letter-spacing:var(--tracking-tight)}.section__action{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-accent)}.nav{position:fixed;bottom:0;left:0;right:0;background:#ffffffd9;backdrop-filter:blur(var(--blur-xl)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur-xl)) saturate(180%);border-top:1px solid var(--glass-border);padding:var(--space-2) var(--space-4);padding-bottom:calc(var(--safe-area-bottom) + var(--space-2));z-index:var(--z-sticky)}.nav__list{display:flex;justify-content:space-around;list-style:none;max-width:480px;margin:0 auto}.nav__item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:var(--font-medium);text-decoration:none;transition:all var(--duration-fast) var(--ease-out);border-radius:var(--radius-md);-webkit-tap-highlight-color:transparent}.nav__item:hover{color:var(--color-text-secondary)}.nav__item--active{color:var(--color-accent)}.nav__icon{font-size:24px;line-height:1}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-8);gap:var(--space-4)}.empty-state__icon{font-size:64px;line-height:1;opacity:.6}.empty-state__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.empty-state__description{font-size:var(--text-base);color:var(--color-text-secondary);max-width:280px;line-height:var(--leading-relaxed)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.form-hint{font-size:var(--text-xs);color:var(--color-text-tertiary)}.form-error{font-size:var(--text-xs);color:var(--color-negative)}.card-list{display:flex;flex-direction:column;gap:var(--space-4)}.card-list>*{animation:slideUp var(--duration-normal) var(--ease-out) backwards}.card-list>*:nth-child(1){animation-delay:0ms}.card-list>*:nth-child(2){animation-delay:50ms}.card-list>*:nth-child(3){animation-delay:.1s}.card-list>*:nth-child(4){animation-delay:.15s}.card-list>*:nth-child(5){animation-delay:.2s}.card-list>*:nth-child(6){animation-delay:.25s}.card-list>*:nth-child(7){animation-delay:.3s}.card-list>*:nth-child(8){animation-delay:.35s}.card-list>*:nth-child(9){animation-delay:.4s}.card-list>*:nth-child(10){animation-delay:.45s}.fab{position:fixed;bottom:calc(var(--safe-area-bottom) + 100px);right:var(--space-5);width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--gradient-neutral);color:var(--color-text-inverse);font-size:28px;border-radius:var(--radius-full);border:none;cursor:pointer;box-shadow:var(--shadow-lg),var(--shadow-glow-accent);transition:all var(--duration-fast) var(--ease-out);z-index:var(--z-sticky);-webkit-tap-highlight-color:transparent}.fab:hover{transform:scale(1.05);box-shadow:var(--shadow-xl),0 12px 40px #667eea80}.fab:active{transform:scale(.95);transition-duration:var(--duration-instant)}.divider{height:1px;background:var(--glass-border-subtle);margin:var(--space-4) 0}.divider--strong{background:var(--glass-border-strong)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);background:var(--bg-recessed);border-radius:var(--radius-full);color:var(--color-text-secondary)}.chip--positive{background:var(--color-positive-soft);color:var(--color-positive)}.chip--negative{background:var(--color-negative-soft);color:var(--color-negative)}.chip--accent{background:var(--color-accent-soft);color:var(--color-accent)}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.skeleton--text{height:16px;width:100%}.skeleton--title{height:24px;width:60%}.skeleton--avatar{width:48px;height:48px;border-radius:var(--radius-full)}.skeleton--card{height:120px;border-radius:var(--radius-xl)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--glass-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-soft)}::selection{background:var(--color-accent-soft);color:var(--color-text-primary)}@media print{.nav,.fab{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
