@keyframes strike{0%{width:0}to{width:100%}}.animate-strike{position:relative}.animate-strike:after{content:"";position:absolute;left:0;top:50%;height:1.5px;width:100%;background:currentColor;animation:strike .25s ease-out}@keyframes draw-check{0%{stroke-dashoffset:48}to{stroke-dashoffset:0}}.animate-draw-check{stroke-dasharray:48;stroke-dashoffset:48;animation:draw-check .2s cubic-bezier(.65,0,.35,1) forwards}@keyframes kollaps-ut{0%{max-height:72px;opacity:1;transform:translateY(0)}to{max-height:0;opacity:0;transform:translateY(-6px)}}.avkryss-kollaps{overflow:hidden;pointer-events:none;animation:kollaps-ut .16s cubic-bezier(.4,0,1,1) forwards!important}@keyframes avkryss-inn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.avkryss-inn{animation:avkryss-inn .2s cubic-bezier(.16,1,.3,1) backwards}@media (prefers-reduced-motion: reduce){.animate-strike:after,.animate-draw-check,.avkryss-inn,.stagger-children>*{animation:none}.avkryss-kollaps{animation:none!important}.animate-draw-check{stroke-dashoffset:0}}@keyframes poeng-puls{0%{transform:scale(1)}30%{transform:scale(1.08);color:hsl(var(--primary))}to{transform:scale(1)}}.poeng-puls{display:inline-block;animation:poeng-puls .5s cubic-bezier(.34,1.56,.64,1)}@media (prefers-reduced-motion: reduce){.poeng-puls{animation:none}}.pantr-tone-ok{color:hsl(var(--success));color:color-mix(in srgb,hsl(var(--success)) 75%,hsl(var(--foreground)))}.pantr-tone-varsel{color:hsl(var(--warning));color:color-mix(in srgb,hsl(var(--warning)) 75%,hsl(var(--foreground)))}.pantr-tone-feil{color:hsl(var(--destructive))}:root[data-active-module=fridgr]{--fridgr-fryser: 210 85% 68%}:root.light[data-active-module=fridgr]{--fridgr-fryser: 215 72% 46%}.stagger-children>*{animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) backwards}.stagger-children>*:nth-child(1){animation-delay:0ms}.stagger-children>*:nth-child(2){animation-delay:35ms}.stagger-children>*:nth-child(3){animation-delay:70ms}.stagger-children>*:nth-child(4){animation-delay:105ms}.stagger-children>*:nth-child(5){animation-delay:.14s}.stagger-children>*:nth-child(6){animation-delay:175ms}.stagger-children>*:nth-child(7){animation-delay:.21s}.stagger-children>*:nth-child(8){animation-delay:245ms}.stagger-children>*:nth-child(n+9){animation-delay:.28s}@media (prefers-reduced-motion: reduce){.stagger-children>*{animation:none}}@keyframes hapticPulse{0%{transform:scale(1)}50%{transform:scale(.92)}to{transform:scale(1)}}.animate-haptic{animation:hapticPulse .15s ease-out}@keyframes shutterFlash{0%{opacity:0}30%{opacity:.4}to{opacity:0}}.shutter-flash{animation:shutterFlash .2s ease-out forwards}.ai-landing .animate-fade-in-up,.ai-landing .animate-fade-in-slide,.ai-landing .animate-scale-in,.ai-landing .animate-fade-in{animation-fill-mode:both}@media (prefers-reduced-motion: reduce){.ai-landing .animate-fade-in-up,.ai-landing .animate-fade-in-slide,.ai-landing .animate-scale-in,.ai-landing .animate-fade-in{animation-duration:0s!important;animation-delay:0s!important}}@keyframes duBrukerHilite{0%{background-color:hsl(var(--primary) / .14)}to{background-color:transparent}}.du-bruker-hilite{border-radius:6px;animation:duBrukerHilite 1.1s ease-out .45s backwards}@media (prefers-reduced-motion: reduce){.du-bruker-hilite{animation:none}}:root[data-active-module=calendr]{--bottom-nav-h: calc(58px + max(env(safe-area-inset-bottom, 0px) - 16px, 8px)) }.gradient-background{background:radial-gradient(ellipse at 15% -5%,hsl(230 40% 18% / .5) 0%,transparent 55%),radial-gradient(ellipse at 85% 105%,hsl(var(--accent-hue) 30% 12% / .35) 0%,transparent 55%),hsl(var(--background));min-height:100vh;min-height:100dvh}.light .gradient-background{background:radial-gradient(ellipse at 15% -5%,hsl(220 40% 95% / .6) 0%,transparent 55%),radial-gradient(ellipse at 85% 105%,hsl(var(--accent-hue) 20% 92% / .4) 0%,transparent 55%),hsl(var(--background))}.glass-card{background:hsl(var(--card) / .75);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1px solid hsl(var(--border) / .55);border-radius:16px;box-shadow:0 2px 16px #00000026,inset 0 1px #ffffff0f}.light .glass-card{background:hsl(var(--card) / .88);border-color:hsl(var(--border) / .65);box-shadow:0 2px 12px #0000000f,inset 0 1px #ffffffb3}.hero-title{font-family:Outfit,Inter,system-ui,sans-serif;font-size:48px;font-weight:700;letter-spacing:-.03em;line-height:1.05;background:linear-gradient(145deg,hsl(var(--foreground)) 30%,hsl(var(--foreground) / .5));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.light .hero-title{background:linear-gradient(145deg,hsl(var(--foreground)) 30%,hsl(var(--foreground) / .65));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.btn-glow{box-shadow:0 0 24px hsl(var(--accent-hue) var(--accent-saturation) var(--accent-lightness) / .4),0 2px 8px #0003;transition:box-shadow .3s ease,transform .2s ease}.btn-glow:active{transform:scale(.95);box-shadow:0 0 12px hsl(var(--accent-hue) var(--accent-saturation) var(--accent-lightness) / .3),0 1px 4px #00000026}.today-glow{box-shadow:0 0 0 4px hsl(var(--primary) / .2),0 2px 10px hsl(var(--primary) / .3);animation:today-pulse 2.5s ease-in-out infinite}.page-enter{animation:page-enter .4s cubic-bezier(.22,1,.36,1) both}.section-divider{display:flex;align-items:center;gap:12px;padding:4px 0;color:hsl(var(--text-secondary));font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.section-divider:after{content:"";flex:1;height:1px;background:hsl(var(--border))}.section-count{font-size:.6875rem;font-weight:600;color:hsl(var(--text-muted));background:hsl(var(--muted));padding:1px 6px;border-radius:9999px;line-height:1.4}.bottom-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:50;animation:fade-in .2s ease}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;z-index:51;background:hsl(var(--background));border-top-left-radius:24px;border-top-right-radius:24px;max-height:92vh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;animation:sheet-up .35s cubic-bezier(.32,.72,0,1);box-shadow:0 -4px 32px #0003,0 -1px hsl(var(--border) / .3)}.light .bottom-sheet{box-shadow:0 -4px 32px #00000014,0 -1px hsl(var(--border) / .4)}.bottom-sheet-handle{width:40px;height:4px;border-radius:2px;background:hsl(var(--text-muted));margin:10px auto 12px;opacity:.3}.bottom-sheet .zone-card{background:hsl(var(--card) / .6);border:1px solid hsl(var(--border) / .4);border-radius:16px}.light .bottom-sheet .zone-card{background:hsl(var(--card) / .85);border-color:hsl(var(--border) / .5)}.member-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.fab{position:fixed;bottom:calc(88px + env(safe-area-inset-bottom,0px));right:20px;width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,hsl(var(--accent-hue) var(--accent-saturation) calc(var(--accent-lightness) + 8%)),hsl(var(--accent-hue) var(--accent-saturation) calc(var(--accent-lightness) - 8%)));color:hsl(var(--primary-foreground));box-shadow:0 4px 24px hsl(var(--accent-hue) var(--accent-saturation) var(--accent-lightness) / .4),0 1px 3px #0003,inset 0 1px hsl(var(--accent-hue) 60% 65% / .3);z-index:40;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .15s ease;cursor:pointer}.fab:active{transform:scale(.88);box-shadow:0 2px 10px hsl(var(--accent-hue) var(--accent-saturation) var(--accent-lightness) / .25),0 1px 2px #00000026}.timeline-event{display:flex;align-items:flex-start;gap:12px;padding:10px 0;cursor:pointer;border-radius:10px;transition:transform .15s cubic-bezier(.2,0,.2,1),background-color .15s ease}.timeline-event:active{transform:scale(.98);background:hsl(var(--muted) / .4)}.timeline-event-time{width:48px;flex-shrink:0;font-size:.8125rem;font-variant-numeric:tabular-nums;color:hsl(var(--text-secondary));padding-top:1px}.timeline-event-content{flex:1;min-width:0}.timeline-event-title{font-size:.9375rem;font-weight:500;color:hsl(var(--foreground));line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-event-meta{display:flex;align-items:center;gap:6px;margin-top:2px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;text-align:center}.month-grid.with-week-numbers{grid-template-columns:28px repeat(7,1fr)}.month-grid-cell{min-height:52px;display:flex;flex-direction:column;align-items:center;padding:2px 1px;gap:1px;font-size:.875rem;font-weight:400;color:hsl(var(--foreground));cursor:pointer;border-radius:8px;transition:background-color .15s ease;position:relative;overflow:hidden}.month-grid-cell:active{background:hsl(var(--muted) / .5)}.month-grid-cell.today .month-grid-date{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.8125rem;box-shadow:0 0 0 2px hsl(var(--primary) / .2),0 2px 8px hsl(var(--primary) / .25)}.month-grid-cell.selected{background:hsl(var(--primary) / .1);border-radius:8px}.month-grid-cell.other-month{color:hsl(var(--text-muted));opacity:.4}.month-grid-date{font-size:.8125rem;line-height:1;font-variant-numeric:tabular-nums}.month-grid-events{display:flex;flex-direction:column;align-items:center;gap:1px;width:100%;padding:0 1px}.month-grid-event-chip{width:100%;font-size:.625rem;line-height:1.2;font-weight:500;padding:.5px 2px;border-radius:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;text-shadow:0 .5px 1px rgba(0,0,0,.3)}.month-grid-overflow{font-size:.625rem;font-weight:600;color:hsl(var(--text-muted));line-height:1}.month-grid-dots{display:flex;gap:3px;height:6px;align-items:center}.month-grid-dots .dot{width:5px;height:5px;border-radius:50%}.calendr-nav{background:linear-gradient(180deg,hsl(var(--background) / .5),hsl(var(--background) / .9));backdrop-filter:blur(32px) saturate(180%);-webkit-backdrop-filter:blur(32px) saturate(180%);border-top:1px solid hsl(0 0% 100% / .08)}.light .calendr-nav{background:linear-gradient(180deg,hsl(var(--background) / .65),hsl(var(--background) / .92));border-top:1px solid hsl(var(--border) / .4)}.now-indicator{position:absolute;left:0;right:0;height:2px;background:#dd3c3c;z-index:20;pointer-events:none;border-radius:1px;animation:now-line-pulse 3s ease-in-out infinite}.now-indicator:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:#dd3c3c}.day-event-block{border:1px solid hsl(var(--border) / .2);box-shadow:0 1px 4px #00000014;transition:transform .15s ease,box-shadow .15s ease}.light .day-event-block{border-color:hsl(var(--border) / .35);box-shadow:0 1px 6px #0000000f}.view-enter{animation:view-fade-in .25s cubic-bezier(.2,0,.2,1)}.next-event-card{background:hsl(var(--card) / .65);backdrop-filter:blur(20px) saturate(170%);-webkit-backdrop-filter:blur(20px) saturate(170%);border:1px solid hsl(var(--border) / .35);border-radius:16px;padding:16px 18px;box-shadow:0 4px 24px #00000026,inset 0 1px #ffffff0a;transition:transform .2s cubic-bezier(.2,0,.2,1)}.next-event-card:active{transform:scale(.98)}.light .next-event-card{background:hsl(var(--card) / .82);box-shadow:0 4px 20px #0000000f,inset 0 1px #ffffffb3}.next-event-countdown{display:flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:600;color:hsl(var(--text-secondary));font-variant-numeric:tabular-nums}.next-event-card-done{background:hsl(var(--card) / .55);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border:1px solid hsl(var(--border) / .3);border-radius:16px;padding:14px 16px}.light .next-event-card-done{background:hsl(var(--card) / .75);border-color:hsl(var(--border) / .45)}.day-timeline-bar{padding:0 2px}.day-timeline-track{position:relative;height:14px;background:hsl(var(--muted) / .4);border-radius:7px;overflow:hidden}.light .day-timeline-track{background:hsl(var(--muted) / .6)}.day-timeline-block{position:absolute;top:2px;bottom:2px;border-radius:5px;opacity:.85;transition:opacity .15s ease;box-shadow:0 1px 3px #00000026}.day-timeline-block:hover{opacity:1}.day-timeline-now{position:absolute;top:-3px;bottom:-3px;width:2.5px;background:#dd3c3c;border-radius:2px;z-index:2;box-shadow:0 0 8px #dd3c3c80}.day-timeline-now:after{content:"";position:absolute;top:-3px;left:-3px;width:9px;height:9px;border-radius:50%;background:#dd3c3c;box-shadow:0 0 6px #dd3c3c66}.day-timeline-labels{position:relative;height:16px;margin-top:5px}.day-timeline-label{position:absolute;transform:translate(-50%);font-size:11px;font-variant-numeric:tabular-nums;color:hsl(var(--text-muted));font-weight:500}.event-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:12px;cursor:pointer;transition:transform .15s cubic-bezier(.2,0,.2,1),background-color .15s ease}.event-row:active{transform:scale(.98);background:hsl(var(--muted) / .3)}.event-time-col{width:44px;flex-shrink:0;font-size:.8125rem;font-weight:500;font-variant-numeric:tabular-nums;color:hsl(var(--text-secondary));padding-top:2px}.event-content-col{flex:1;min-width:0}.event-title-row{font-size:.9375rem;font-weight:500;color:hsl(var(--foreground));line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-meta-row{display:flex;align-items:center;gap:8px;margin-top:3px;flex-wrap:wrap}.event-meta-badge{display:inline-flex;align-items:center;gap:3px;font-size:.6875rem;color:hsl(var(--text-muted))}.event-next-badge{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:1px 6px;border-radius:4px;background:hsl(var(--primary) / .15);color:hsl(var(--primary))}.day-picker-container{padding:0;overflow:hidden}.day-picker-scroll{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;padding:4px 12px 6px}.day-picker-scroll::-webkit-scrollbar{display:none}.day-picker-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;width:48px;min-width:48px;padding:6px 0 4px;border-radius:12px;cursor:pointer;scroll-snap-align:center;transition:all .2s ease;background:transparent;border:none;gap:2px}.day-picker-cell:active{transform:scale(.92)}.day-picker-cell-selected{background:hsl(var(--primary));box-shadow:0 2px 12px hsl(var(--primary) / .35),0 0 0 2px hsl(var(--primary) / .15)}.day-picker-cell-today{background:hsl(var(--muted) / .5)}.day-picker-cell-weekend{opacity:.6}.day-picker-weekday{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--text-muted))}.day-picker-cell-selected .day-picker-weekday{color:hsl(var(--primary-foreground) / .7)}.day-picker-date{font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;color:hsl(var(--foreground));line-height:1}.day-picker-date-selected{color:hsl(var(--primary-foreground))}.day-picker-date-today{color:hsl(var(--primary));font-weight:700}.day-picker-dots{display:flex;gap:2px;height:5px;align-items:center}.day-picker-dot{width:4px;height:4px;border-radius:50%}.agenda-add-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border:none;cursor:pointer;transition:all .15s ease;flex-shrink:0}.agenda-add-btn{position:relative}.agenda-add-btn:after{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px}.agenda-add-btn:active{transform:scale(.9);background:hsl(var(--primary) / .2)}.pb-nav-clearance{padding-bottom:calc(var(--bottom-nav-h) + 16px)}@keyframes now-line-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes view-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes today-pulse{0%,to{box-shadow:0 0 0 3px hsl(var(--primary) / .2),0 2px 12px hsl(var(--primary) / .3)}50%{box-shadow:0 0 0 5px hsl(var(--primary) / .1),0 0 24px hsl(var(--primary) / .15)}}@keyframes page-enter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.today-glow,.now-indicator,.page-enter,.view-enter,.bottom-sheet,.bottom-sheet-backdrop{animation:none}.next-event-card,.event-row,.timeline-event,.day-picker-cell,.agenda-add-btn{transition:none}}
