.touch-target{min-height:44px;min-width:44px}.animate-pulse-slow{position:relative;z-index:0;animation:pulse 3s cubic-bezier(.4,0,.6,1) infinite;will-change:opacity}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;will-change:opacity}.float-animation{animation:float 3s ease-in-out infinite;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.float-animation.delay-2000{animation-delay:.5s}.float-animation.delay-4000{animation-delay:1s}@keyframes float{0%,to{transform:translateY(0) translateZ(0)}50%{transform:translateY(-10px) translateZ(0)}}.fade-in{animation:fadeIn .5s ease-out;will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden}.fade-in.delay-200{animation-delay:.2s;opacity:0;animation-fill-mode:forwards}.fade-in.delay-400{animation-delay:.4s;opacity:0;animation-fill-mode:forwards}.fade-in.animation-complete{will-change:auto}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px) translateZ(0)}to{opacity:1;transform:translateY(0) translateZ(0)}}.past-due-task{position:relative}.past-due-task:before{content:"";position:absolute;left:-4px;top:0;bottom:0;width:4px;background:linear-gradient(180deg,hsl(var(--warning)),hsl(var(--destructive)));border-radius:0 2px 2px 0}.overdue-indicator{background:linear-gradient(135deg,hsl(var(--warning) / .1),hsl(var(--warning) / .15));border:1px solid hsl(var(--warning) / .3)}.calendar-grid{display:grid;grid-template-columns:60px repeat(7,1fr);gap:1px;background-color:hsl(var(--border))}@keyframes skeleton{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,hsl(var(--muted)) 25%,hsl(var(--border)),hsl(var(--muted)) 75%);background-size:200px 100%;animation:skeleton 1.5s infinite;will-change:background-position;transform:translateZ(0)}.task-list{scrollbar-width:thin;scrollbar-color:hsl(var(--muted-foreground) / .4) hsl(var(--muted))}.task-list::-webkit-scrollbar{width:8px}.task-list::-webkit-scrollbar-track{background:hsl(var(--muted));border-radius:4px;margin:4px 0}.task-list::-webkit-scrollbar-thumb{background:hsl(var(--muted-foreground) / .5);border-radius:4px;border:1px solid hsl(var(--muted))}.task-list::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground) / .7)}@media(max-width:768px){.mobile-compact{padding:1rem}}
