#site-dock .absolute { position: absolute; }
#site-dock .relative { position: relative; }
#site-dock .-top-8 { top: -2rem; }
#site-dock .bottom-full { bottom: 100%; }
#site-dock .left-1\/2 { left: 50%; }
#site-dock .mx-auto { margin-left: auto; margin-right: auto; }
#site-dock .mb-2 { margin-bottom: 0.5rem; }
#site-dock .block { display: block; }
#site-dock .flex { display: flex; }
#site-dock .hidden { display: none; }
#site-dock .aspect-square { aspect-ratio: 1 / 1; }
#site-dock .h-11 { height: 2.75rem; }
#site-dock .h-16 { height: 4rem; }
#site-dock .h-5 { height: 1.25rem; }
#site-dock .h-full { height: 100%; }
#site-dock .w-11 { width: 2.75rem; }
#site-dock .w-5 { width: 1.25rem; }
#site-dock .w-52 { width: 13rem; }
#site-dock .w-fit { width: fit-content; }
#site-dock .w-full { width: 100%; }
#site-dock .shrink-0 { flex-shrink: 0; }
#site-dock .resize { resize: both; }
#site-dock .flex-col { flex-direction: column; }
#site-dock .items-end { align-items: flex-end; }
#site-dock .items-center { align-items: center; }
#site-dock .justify-center { justify-content: center; }
#site-dock .gap-2 { gap: 0.5rem; }
#site-dock .gap-3 { gap: 0.75rem; }
#site-dock .gap-4 { gap: 1rem; }
#site-dock .whitespace-pre { white-space: pre; }
#site-dock .rounded-2xl { border-radius: 1rem; }
#site-dock .rounded-full { border-radius: 9999px; }
#site-dock .rounded-md { border-radius: 0.375rem; }
#site-dock .border { border-width: 1px; }
#site-dock .border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); }
#site-dock .bg-gray-100 { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); }
#site-dock .bg-gray-200 { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)); }
#site-dock .bg-gray-50 { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); }
#site-dock .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
#site-dock .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
#site-dock .px-4 { padding-left: 1rem; padding-right: 1rem; }
#site-dock .py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
#site-dock .pb-3 { padding-bottom: 0.75rem; }
#site-dock .text-sm { font-size: 0.875rem; line-height: 1.25rem; }
#site-dock .text-xs { font-size: 0.75rem; line-height: 1rem; }
#site-dock .text-neutral-500 { --tw-text-opacity: 1; color: rgb(115 115 115 / var(--tw-text-opacity, 1)); }
#site-dock .text-neutral-700 { --tw-text-opacity: 1; color: rgb(64 64 64 / var(--tw-text-opacity, 1)); }
#site-dock .blur { --tw-blur: blur(8px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
#site-dock .transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }

/* Position the actual component independently of the page's content and routes. */
html { scroll-padding-bottom: calc(8rem + env(safe-area-inset-bottom,0px)); }
html:has(#site-dock:not([data-enhanced])) { scroll-padding-bottom: calc(12rem + env(safe-area-inset-bottom,0px)); }
body.personal-journal #content { padding-top: 12px; padding-bottom: calc(8rem + env(safe-area-inset-bottom,0px)); }
body.personal-journal:has(#site-dock:not([data-enhanced])) #content { padding-bottom: calc(12rem + env(safe-area-inset-bottom,0px)); }
#site-dock { position: fixed; z-index: 240; left: 50%; bottom: max(16px,env(safe-area-inset-bottom,0px)); transform: translateX(-50%); max-width: calc(100% - 24px); color: #202020; }
#site-dock:not([data-enhanced]) { width: min(620px,calc(100vw - 24px)); }
#site-dock [hidden] { display: none !important; }
#site-dock a { color: inherit; text-decoration: none; }
#site-dock button { appearance: none; border: 0; font: inherit; cursor: pointer; }
#site-dock :is(a,button):focus-visible { outline: 2px solid #202020; outline-offset: 4px; }
#site-dock .site-dock-desktop { height: 64px; gap: 16px; padding: 0 16px 12px; border: 1px solid rgba(0,0,0,.07); box-shadow: 0 8px 30px rgba(0,0,0,.1); }
#site-dock .site-dock-desktop > a { position: relative; display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; border-radius: 999px; }
#site-dock .site-dock-desktop > a[data-active="true"]::after { content: ""; position: absolute; left: calc(50% - 1.5px); bottom: -7px; width: 3px; height: 3px; border-radius: 50%; background: #202020; }
#site-dock .site-dock-mobile > button { border: 1px solid rgba(0,0,0,.08); box-shadow: 0 5px 24px rgba(0,0,0,.1); }
#site-dock .site-dock-mobile-menu { width: 208px; max-height: calc(100dvh - 110px - env(safe-area-inset-bottom,0px)); overflow-y: auto; overscroll-behavior: contain; padding: 8px; border: 1px solid #e6e6e9; border-radius: 18px; background: rgba(255,255,255,.98); box-shadow: 0 8px 32px rgba(0,0,0,.14); }
#site-dock .site-dock-mobile-menu a[data-active="true"] { background: #e5e7eb; color: #111; }
#site-dock [data-dock-fallback] { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 12px; max-width: 620px; margin: 0; padding: 10px 16px; border: 1px solid #e6e6e9; border-radius: 18px; background: rgba(255,255,255,.98); box-shadow: 0 8px 30px rgba(0,0,0,.1); list-style: none; }
#site-dock [data-dock-fallback] a { display: inline-flex; align-items: center; min-height: 44px; font-size: .8rem; }
@media (max-width:767px) {
  #site-dock .site-dock-mobile > button { width: 48px; height: 48px; }
}
@media print {
  #site-dock { display: none !important; }
  body.personal-journal #content { padding-block: 0; }
}
#site-dock .dark\:border-neutral-900:is(.dark *) { --tw-border-opacity: 1; border-color: rgb(23 23 23 / var(--tw-border-opacity, 1)); }
#site-dock .dark\:bg-neutral-800:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(38 38 38 / var(--tw-bg-opacity, 1)); }
#site-dock .dark\:bg-neutral-900:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(23 23 23 / var(--tw-bg-opacity, 1)); }
#site-dock .dark\:text-neutral-400:is(.dark *) { --tw-text-opacity: 1; color: rgb(163 163 163 / var(--tw-text-opacity, 1)); }
#site-dock .dark\:text-white:is(.dark *) { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); }
@media (min-width: 768px) {
 #site-dock .md\:flex { display: flex; }
 #site-dock .md\:hidden { display: none; } }
