:root {
    --day-select: oklch(42.4% 0.199 265.638);
}
dialog {
    /* Fade in: */
    display: flex;  /* for some reason, display: block disables the transition. */
    flex-direction: column;
    opacity: 0;
    transition: opacity 0.15s;
    pointer-events: none; /* necessary or the main page becomes inaccessible after closing dialog */
}

dialog[open] {
    opacity: 1;
    pointer-events: inherit;
}

dialog::backdrop {
    background-color: #0008;
}

input.day-checkbox[type="checkbox"]:not(:checked), 
input.day-checkbox[type="checkbox"]:checked {
    display: None;
}

input.day-checkbox[type="checkbox"] + label {
    text-align: center;
    display: inline-block;
    width: 1.7em;
    cursor: pointer;
    border: 1px solid var(--day-select);
    color: var(--day-select);
    background-color: white;
    user-select: none;
}

input.day-checkbox[type="checkbox"]:checked + label {
    border: 1px solid white;
    color: white;
    background-color: var(--day-select);
}

/* HTML: <div class="dot-loader"></div> */
.dot-loader {
  width: fit-content;
  font-weight: bold;
  font-family: monospace;
  clip-path: inset(0 3ch 0 0);
  animation: l4 1s steps(4) infinite;
}
.dot-loader:before {
  content:"Loading..."
}
@keyframes l4 {to{clip-path: inset(0 -1ch 0 0)}}


/* Define the blinking animation */
@keyframes blink {
  0% {
    opacity: 1; /* Icon is visible */
  }
  50% {
    opacity: 0; /* Icon is hidden */
  }
  100% {
    opacity: 1; /* Icon returns to visible */
  }
}

/* Apply the animation to an icon element */
.blink-icon {
  animation: blink 1s step-start infinite; /* 1s duration, infinite loop, hard blink */
}
