:root{--safe-area-top:env(safe-area-inset-top, 0px);--safe-area-right:env(safe-area-inset-right, 0px);--safe-area-bottom:env(safe-area-inset-bottom, 0px);--safe-area-left:env(safe-area-inset-left, 0px);--viewport-height:100dvh;--viewport-height-fallback:100vh;--text-xs:clamp(0.65rem, 0.6rem + 0.25vw, 0.75rem);--text-sm:clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);--text-base:clamp(0.875rem, 0.8rem + 0.375vw, 1rem);--text-lg:clamp(1rem, 0.9rem + 0.5vw, 1.125rem);--text-xl:clamp(1.125rem, 1rem + 0.625vw, 1.25rem);--text-2xl:clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem);--text-3xl:clamp(1.5rem, 1.3rem + 1vw, 1.875rem);--text-4xl:clamp(1.875rem, 1.5rem + 1.5vw, 2.25rem);--text-5xl:clamp(2.25rem, 1.75rem + 2vw, 3rem);--space-xs:clamp(0.25rem, 0.2rem + 0.25vw, 0.375rem);--space-sm:clamp(0.5rem, 0.4rem + 0.5vw, 0.75rem);--space-md:clamp(0.75rem, 0.6rem + 0.75vw, 1rem);--space-lg:clamp(1rem, 0.8rem + 1vw, 1.5rem);--space-xl:clamp(1.5rem, 1.2rem + 1.5vw, 2rem);--space-2xl:clamp(2rem, 1.5rem + 2vw, 3rem);--touch-target-min:44px;--touch-target-comfortable:48px}@supports not (height:100dvh){:root{--viewport-height:calc(100vh - var(--safe-area-bottom))}}.safe-padding{padding-top:max(1rem,var(--safe-area-top));padding-right:max(1rem,var(--safe-area-right));padding-bottom:max(1rem,var(--safe-area-bottom));padding-left:max(1rem,var(--safe-area-left))}.safe-padding-top{padding-top:max(1rem,var(--safe-area-top))}.safe-padding-bottom{padding-bottom:max(1rem,var(--safe-area-bottom))}.safe-padding-x{padding-left:max(1rem,var(--safe-area-left));padding-right:max(1rem,var(--safe-area-right))}.safe-margin-bottom{margin-bottom:max(1rem,var(--safe-area-bottom))}.h-screen-dynamic{height:100dvh;height:var(--viewport-height-fallback)}@supports (height:100dvh){.h-screen-dynamic{height:100dvh}}.min-h-screen-dynamic{min-height:100dvh;min-height:var(--viewport-height-fallback)}@supports (min-height:100dvh){.min-h-screen-dynamic{min-height:100dvh}}.fluid-text-xs{font-size:var(--text-xs)}.fluid-text-sm{font-size:var(--text-sm)}.fluid-text-base{font-size:var(--text-base)}.fluid-text-lg{font-size:var(--text-lg)}.fluid-text-xl{font-size:var(--text-xl)}.fluid-text-2xl{font-size:var(--text-2xl)}.fluid-text-3xl{font-size:var(--text-3xl)}.fluid-text-4xl{font-size:var(--text-4xl)}.fluid-text-5xl{font-size:var(--text-5xl)}.fluid-gap-xs{gap:var(--space-xs)}.fluid-gap-sm{gap:var(--space-sm)}.fluid-gap-md{gap:var(--space-md)}.fluid-gap-lg{gap:var(--space-lg)}.fluid-gap-xl{gap:var(--space-xl)}.fluid-p-sm{padding:var(--space-sm)}.fluid-p-md{padding:var(--space-md)}.fluid-p-lg{padding:var(--space-lg)}.fluid-p-xl{padding:var(--space-xl)}.touch-target{min-height:var(--touch-target-min);min-width:var(--touch-target-min)}.touch-target-comfortable{min-height:var(--touch-target-comfortable);min-width:var(--touch-target-comfortable)}@media (hover:none) and (pointer:coarse){.btn:not(.no-touch-adjust),.menu-item,.nav-link,.sidebar-link,[role=button]:not(.no-touch-adjust),a.button:not(.no-touch-adjust),button:not(.no-touch-adjust){min-height:var(--touch-target-min);padding-top:12px;padding-bottom:12px}.no-hover-touch:hover{transform:none!important}}.container-adaptive{container-type:inline-size}@container (max-width:350px){.card-adaptive{padding:var(--space-sm)}.card-adaptive .card-title{font-size:var(--text-sm)}.card-adaptive .card-content{font-size:var(--text-xs)}}@container (min-width:351px) and (max-width:500px){.card-adaptive{padding:var(--space-md)}}@container (min-width:501px){.card-adaptive{padding:var(--space-lg)}}.grid-auto-fit{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:var(--space-md)}.grid-auto-fill{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:var(--space-md)}.grid-auto-fit-sm{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:var(--space-sm)}@media (max-height:500px) and (orientation:landscape){.hide-landscape-mobile{display:none!important}.compact-landscape{padding-top:var(--space-xs)!important;padding-bottom:var(--space-xs)!important}.landscape-compact{--topbar-height:50px;--sidebar-width:200px}}@media (display-mode:standalone){.pwa-only{display:block!important}.browser-only{display:none!important}}@media (display-mode:browser){.pwa-only{display:none!important}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.truncate-multiline{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.truncate-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.aspect-video{aspect-ratio:16/9}.aspect-square{aspect-ratio:1/1}.aspect-card{aspect-ratio:3/4}.scroll-smooth-mobile{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;overscroll-behavior:contain}.scroll-snap-x{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.scroll-snap-x>*{scroll-snap-align:start}@media (max-width:768px){input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{font-size:16px!important}}body.menu-open,body.modal-open{overflow:hidden;position:fixed;width:100%;height:100%}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark}}[data-theme=dark]{color-scheme:dark}