/* ===== RESET ===== */
/* Reset margins, padding, and borders */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Make headings and paragraphs consistent */
h1,
h2,
h3,
h4,
h5,
h6,
p {
  /* font-size: 100%; */
  font-weight: normal;
}

/* Remove list styles */
ul,
ol {
  list-style: none;
}

/* Remove link underlines */
a {
  text-decoration: none;
  color: inherit;
}

/* Set images to scale properly */
img {
  max-width: 100%;
  height: auto;
}

textarea {
  resize: none;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type="number"] {
  -moz-appearance: textfield;
}
/* ===== VARIABLES ===== */
:root {
  /* COLOR (layer 1) */
  --cian-100: #5eefef;
  --cian-200: #4bc4c4;
  --cian-300: #3a9a9a;
  --cian-400: #297373;
  --cian-500: #194e4e;
  --cian-600: #0b2c2c;
  --cian-700: #031414;
  --cian-base: #297373;

  --purple-100: #ded4dc;
  --purple-200: #bea9ba;
  --purple-300: #b185a7;
  --purple-400: #755f71;
  --purple-500: #4f3f4c;
  --purple-600: #2b2229;
  --purple-700: #150f14;
  --purple-base: #755f71;

  --green-100: #b6e9ba;
  --green-200: #95bf98;
  --green-300: #759778;
  --green-400: #577159;
  --green-500: #3a4d3b;
  --green-600: #202b21;
  --green-700: #0c130c;
  --green-base: #95bf98;

  --orange-100: #f2d7d3;
  --orange-200: #e5a69c;
  --orange-300: #d9725b;
  --orange-400: #a45443;
  --orange-500: #71392c;
  --orange-600: #431f17;
  --orange-700: #1f0b07;
  --orange-base: #d9725b;

  --grey-100: #d5dbdb;
  --grey-200: #afb3b3;
  --grey-300: #898d8d;
  --grey-400: #666966;
  --grey-500: #454747;
  --grey-600: #262727;
  --grey-700: #101111;
  --grey-base: #666966;

  /* COLOR (layer 2) */
  --color-bg: #ffffff; /* Main app/page background */
  --color-bg-secondary: #eff6f6; /* Sub-sections */
  --color-bg-muted: #c3d5d5; /* Subtle backgrounds */
  --color-surface: #f7f6f4; /* Cards, panels, modals */
  --color-surface-hover: #eff6f6; /* Hovered card */
  --color-overlay: rgba(0, 0, 0, 0.5); /* Modal overlay */

  --color-text: var(--cian-600); /* Primary text */
  --color-text-secondary: var(--grey-400); /* Muted text */
  --color-text-tertiary: var(--grey-500); /* Muted text */
  --color-text-inverse: #ffffff; /* Text on dark/primary */
  --color-text-disabled: #325e5e; /* Disabled text */
  --color-link: var(--cian-200); /* Links */
  --color-link-hover: var(--cian-300);

  --color-border: #cce6e6; /* Default borders */
  --color-border-secondary: var(--grey-100); /* Default borders */

  --color-primary-rgb: 75, 196, 196;
  --color-primary: var(--cian-200);
  --color-primary-hover: #55dede;
  --color-primary-muted: #94c6c6; /* Light background version */
  --color-on-primary: var(--cian-600); /* Text on primary */

  --color-secondary: #ede9e3;
  --color-secondary-hover: #cce6e6;
  --color-on-secondary: var(--cian-600);

  --color-success: #209b52;
  --color-success-hover: #209b52;
  --color-success-bg: #d9efe2;
  --color-success-border: #209b52;
  --color-on-success: #209b52;

  --color-warning: #f1ab11;
  --color-warning-hover: #f1ab11;
  --color-warning-bg: #fdebc7;
  --color-warning-border: #f1ab11;
  --color-on-warning: #f1ab11;

  --color-error: #c11204;
  --color-error-hover: #9e0e03;
  --color-error-bg: #f5ded0;
  --color-error-border: #c11204;
  --color-on-error: #c11204;

  --color-info: #3f70db;
  --color-info-hover: #3f70db;
  --color-info-bg: #d6e3f6;
  --color-info-border: #3f70db;
  --color-on-info: #3f70db;

  --color-needs: var(--green-200);
  --color-on-needs: var(--green-500);

  --color-wants: var(--orange-300);
  --color-on-wants: var(--orange-600);

  --color-savings: var(--purple-200);
  --color-on-savings: var(--purple-600);

  --color-positive: #1d9e75;
  --color-negative: #ef5350;

  /* Typography */
  --font-sans: system-ui, sans-serif;
  --font-mono: monospace;

  --font-heading: var(--font-sans);
  --font-body: var(--font-sans);

  /* Font Size */
  --fs-h1: clamp(2.75rem, 5vw, 5rem); /* H1: 44px → 80px */
  --fs-h2: clamp(2rem, 4vw, 3.5rem); /* H2: 32px → 56px */
  --fs-h3: 2rem; /* 32px */
  --fs-h4: clamp(1.125rem, 1.5vw, 1.25rem); /* 18 → 20 */
  --fs-h5: 1.125rem; /* 18px */
  --fs-h6: 1rem; /* 16px */
  --fs-body-lg: clamp(1rem, 1.2vw, 1.125rem);
  --fs-base: 1rem; /* 16px */
  --fs-sm: 0.875rem; /* 14px */
  --fs-xs: 0.75rem; /* 12px */

  /* Spacing */
  --spacing-xs: 0.25rem; /* 4px */
  --spacing-sm: 0.4rem; /* 6.4px */
  --spacing-sm: 0.5rem; /* 8px */
  --spacing-md: 1rem; /* 16px */
  --spacing-lg: 1.5rem; /* 24px */
  --spacing-xl: 2rem; /* 32px */
  --spacing-2xl: 3rem; /* 48px */

  --page-padding: clamp(1rem, 4vw, 2rem);

  /* Border Radius */
  --radius-xs: 0.125rem;
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;

  /* Shadows */
  --shadow-focus: 0 0 0 3px rgba(58, 154, 154, 0.4);
  --shadow-focus-error: 0 0 0 3px rgba(220, 38, 38, 0.5);
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md:
    0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg:
    0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-xl:
    0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

::-moz-selection {
  /* Code for Firefox */
  color: var(--color-text);
  background: #94c6c6;
}

::selection {
  color: var(--color-text);
  background: #94c6c6;
}

[data-theme="dark"] {
  /* COLOR (layer 2) */
  --color-bg: #333333; /* Main app/page background */
  --color-bg-secondary: #2d2d2d; /* Sub-sections */
  --color-bg-muted: #495757; /* Subtle backgrounds */
  --color-surface: #383838; /* Cards, panels, modals */
  --color-surface-hover: #363636; /* Hovered card */
  --color-overlay: rgba(0, 0, 0, 0.5); /* Modal overlay */

  --color-text: #ffffff; /* Primary text */
  --color-text-secondary: var(--grey-200); /* Muted text */
  --color-text-tertiary: var(--grey-300); /* Muted text */
  --color-text-inverse: var(--cian-600); /* Text on dark/primary */
  --color-text-disabled: var(--grey-300); /* Disabled text */
  --color-link: var(--cian-100); /* Links */
  --color-link-hover: var(--cian-200);

  --color-border: var(--grey-400); /* Default borders */
  --color-border-secondary: var(--grey-500); /* Default borders */

  --color-primary-rgb: 94, 239, 239;
  --color-primary: var(--cian-100);
  --color-primary-hover: var(--cian-200);
  --color-primary-muted: #94c6c6; /* Light background version */
  --color-on-primary: var(--cian-600); /* Text on primary */

  --color-secondary: #2a2a28;
  --color-secondary-hover: #3b3b38;
  --color-on-secondary: #f3f3f3;

  --color-success: #209b52;
  --color-success-hover: #209b52;
  --color-success-bg: #d9efe2;
  --color-success-border: #209b52;
  --color-on-success: #209b52;

  --color-warning: #f1ab11;
  --color-warning-hover: #f1ab11;
  --color-warning-bg: #fdebc7;
  --color-warning-border: #f1ab11;
  --color-on-warning: #f1ab11;

  --color-error: #c11204;
  --color-error-hover: #c11204;
  --color-error-bg: #f5ded0;
  --color-error-border: #c11204;
  --color-on-error: #c11204;

  --color-info: #3f70db;
  --color-info-hover: #3f70db;
  --color-info-bg: #d6e3f6;
  --color-info-border: #3f70db;
  --color-on-info: #3f70db;

  ::-moz-selection {
    /* Code for Firefox */
    color: var(--cian-100);
    background: RGBA(94, 239, 239, 0.1);
  }

  ::selection {
    color: var(--cian-100);
    background: RGBA(94, 239, 239, 0.1);
  }
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  background-color: var(--color-bg);
  color: var(--color-text);
  line-height: 1.6;
  /* transition: */
  /*   background-color 0.3s ease, */
  /*   color 0.3s ease; */
}

/* ===== TYPOGRAPHY ===== */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.heading-display {
  font-size: var(--fs-h1);
  font-weight: 700;
  line-height: 1.1;
}

h1,
.h1 {
  font-size: var(--fs-h1);
}
h2,
.h2 {
  font-size: var(--fs-h2);
}
h3,
.h3 {
  font-size: var(--fs-h3);
}
h4,
.h4 {
  font-size: var(--fs-h4);
}

h5,
.h5 {
  font-family: var(--font-body);
  font-size: var(--fs-h5);
}

h6,
.h6 {
  font-family: var(--font-body);
  font-size: var(--fs-h6);
}

p,
.text-base {
  font-size: var(--fs-base);
  font-weight: 400;
  line-height: 1.6;
}

.text-subtitle {
  font-size: var(--fs-h5);
  line-height: 1.6;
  color: var(--color-text-secondary);
}

.text-caption {
  font-size: var(--fs-xs);
  font-weight: 500;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.text-sm {
  font-size: var(--fs-sm);
}

.link {
  color: var(--color-link);
  cursor: pointer;
}

.link:hover {
  color: var(--color-link-hover);
}

/* Separator */
hr,
.separator {
  height: 1px;
  background-color: var(--color-border);
  border: none;
  margin: var(--spacing-md) 0;
}

.indicator {
  display: none;
}

.htmx-request .indicator,
.htmx-request.indicator {
  display: inline;
}

/* ===== ANIMATIONS ===== */
@keyframes pop {
  from {
    transform: scale(0);
    opacity: 0;
  }

  to {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes slide-down {
  from {
    transform: translateY(-50%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes pulse {
  50% {
    opacity: 0.5;
  }
}
.breadcrumbs {
  display: flex;
  gap: var(--spacing-xs);
  align-items: center;
  margin-bottom: var(--spacing-lg);
}

.breadcrumbs {
  font-size: var(--fs-body-lg);
}

.breadcrumbs > a:hover {
  font-size: var(--fs-body-lg);
  text-decoration: underline;
}

.breadcrumbs a:last-child {
  font-weight: 600;
  text-decoration: none;
}

.breadcrumbs i {
  height: 20px;
}

.breadcrumbs-selection {
  font-size: var(--fs-base);
}
.breadcrumbs-selection > li {
  padding: 0 var(--spacing-sm);
  margin-top: var(--spacing-xs);
  cursor: pointer;
  border-radius: var(--radius-xs);
}
.breadcrumbs-selection > li:first-child {
  margin-top: 0;
}
.breadcrumbs-selection > li:hover {
  background-color: var(--color-bg-muted);
}
.breadcrumbs-selection a {
  display: block;
  width: 100%;
  font-weight: 400 !important;
}
.reset-btn {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 0.5rem 1rem;
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-weight: 500;
  line-height: 1.5;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
  white-space: nowrap;
}

.btn:focus {
  outline: none;
  box-shadow: var(--shadow-focus) !important;
}

.btn svg {
  height: 1rem;
  width: 1rem;
}

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.indicator {
  display: none;
}

.btn-icon {
  padding: 0.5rem 0.5rem;
}

.btn-primary {
  background-color: var(--color-primary);
  color: var(--color-on-primary);
  border-color: var(--color-primary);
}

.btn-primary:focus,
.btn-primary:hover:not(:disabled) {
  background-color: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}

.btn-secondary {
  background-color: var(--color-secondary);
  color: var(--color-on-secondary);
  border-color: var(--color-border);
}

.btn-secondary:focus,
.btn-secondary:hover:not(:disabled) {
  background-color: var(--color-secondary-hover);
}

.btn-outline-primary {
  background-color: transparent;
  color: var(--color-primary);
  border-color: var(--color-primary);
}

.btn-outline-primary:focus,
.btn-outline-primary:hover:not(:disabled) {
  background-color: var(--color-primary);
  color: var(--color-on-primary);
}

.btn-outline {
  background-color: transparent;
  color: var(--color-text);
  border-color: var(--color-border);
}

.btn-outline:focus,
.btn-outline:hover:not(:disabled) {
  background-color: var(--color-border);
}

.btn-ghost {
  background-color: transparent;
  color: var(--color-text);
  border-color: transparent;
}

.btn-ghost:focus,
.btn-ghost:hover:not(:disabled) {
  background-color: var(--color-border);
}

.btn-destructive {
  background-color: var(--color-error);
  color: white;
  border-color: var(--color-error);
}

.btn-destructive:focus {
  box-shadow: var(--shadow-focus-error) !important;
}

.btn-destructive:focus,
.btn-destructive:hover:not(:disabled) {
  background-color: var(--color-error-hover);
  border-color: var(--color-error-hover);
}

.btn-sm {
  padding: 0.375rem 0.75rem;
  font-size: var(--fs-xs);
  gap: 0.25rem;
}

.btn-sm.btn-icon {
  padding: 0.375rem 0.375rem;
}

.btn-sm svg {
  height: 0.75rem;
  width: 0.75rem;
}

.btn-lg {
  padding: 0.75rem 1.5rem;
  font-size: var(--fs-base);
  gap: 0.5rem;
}

.btn-lg.btn-icon {
  padding: 0.75rem 0.75rem;
}

.btn-lg svg {
  height: 1.35rem;
  width: 1.35rem;
}

.filter-btn {
  position: relative;
  height: fit-content;
  width: fit-content;
}
.details {
  border-radius: var(--radius-sm);
  background-color: var(--color-surface);
  padding: var(--spacing-sm) var(--spacing-lg);
}

summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--fs-h4);
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.details::details-content {
  display: block;
  block-size: 0;
  overflow: hidden;
  transition-property: block-size, content-visibility;
  transition-duration: 0.5s;
  transition-behavior: allow-discrete;
}

.details[open]::details-content {
  /* Fallback for browsers that don't support calc-size() function */
  block-size: auto;
  /* calc-size() function allows transition to height: auto; */
  block-size: calc-size(auto, size);
  margin-top: var(--spacing-sm);
}

summary::marker {
  content: "";
}

summary::after {
  content: "+";
  font-size: var(--fs-h4);
  font-weight: 400;
  color: var(--color-text-tertiary);
  flex-shrink: 0;
  line-height: 1;
  transition: color 0.15s;
}

.details[open] summary::after {
  content: "−";
  justify-self: end;
}
.dropdown > button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-right: var(--spacing-xs);
}

.dropdown > button > i {
  margin-left: var(--spacing-xs);
}

@scope (.dropdown) {
  .popover {
    display: none;
    margin: 0;
    inset: auto;
    top: anchor(bottom);
    right: anchor(right);
    position-try-fallbacks: flip-block;
    position-try: flip-block;
    border: none;
    padding-top: 4px;
    background-color: transparent;
    box-shadow: var(--shadow-lg);
  }
  .popover.min-w {
    min-width: anchor-size(width);
  }

  .popover:popover-open {
    display: block;
  }

  .popover > div {
    color: var(--color-text);
    background-color: var(--color-bg);
    border: 1px solid var(--color-border);
    padding: var(--spacing-xs);
    border-radius: var(--radius-sm);
    max-height: 13rem;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-border) transparent;
  }
}
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--spacing-sm) var(--spacing-sm);
  background-color: var(--color-bg-secondary);
  position: relative;
  box-shadow: var(--shadow-sm);
}

.header .nav ul {
  display: none;
  justify-items: center;
  align-items: center;
  gap: var(--spacing-md);
}

.header .nav ul > li {
  cursor: pointer;
}

@media (min-width: 600px) {
  .header .nav ul {
    display: flex;
  }
  .hamburger {
    display: none;
  }
}
/* Input */
.input-group > span {
  display: none;
  padding-left: var(--radius-md);
  color: var(--color-error);
  font-size: var(--fs-xs);
}

.input-group.error > span {
  display: block;
}

.input-group > label {
  font-weight: 500;
}
.input-group > label > span {
  font-weight: 400;
  color: var(--color-text-secondary);
}

.input-group > *:nth-child(2) {
  margin-top: var(--spacing-xs);
}

.input:not([type="checkbox"], [type="radio"]) {
  width: 100%;
}
.input {
  display: block;
  padding: var(--spacing-sm) var(--spacing-md);
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: var(--color-text);
  background-color: var(--color-muted);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition: border-color 0.2s ease;
}

.input[type="search"]::-webkit-search-cancel-button {
  display: none;
}

.input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: var(--shadow-focus);
  background-color: var(--color-input-focus);
}

.input::placeholder {
  color: var(--color-text-secondary);
}

.input.error:not(:focus) {
  border-color: var(--color-error);
}

.input ~ div {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-items: center;
  gap: var(--spacing-xs);
}

.input ~ div i {
  display: flex;
  align-items: center;
  justify-content: center;

  /* height: 16px; */
  /* width: 16px; */
  object-fit: contain;
}

.input ~ div > .feedbackIcon {
  display: none;
  color: var(--color-error);
}

input.input.error:not(:focus),
.input:has(+ div .pwdToggle) {
  padding-right: calc(20px + var(--spacing-md));
}

.input[type="password"].error {
  padding-right: calc(40px + var(--spacing-md));
}

.input.error:not(:focus) ~ div > .feedbackIcon {
  display: flex;
}

/* Search bar */
.search-bar {
  position: relative;
}

.search-bar > input {
  padding-left: 2.5rem;
}

.search-bar > i {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-secondary);

  display: flex;
  align-items: center;
  justify-content: center;

  /* height: 16px; */
  /* width: 16px; */
  object-fit: contain;
}

.search-bar svg {
  width: 1rem;
  height: 1rem;
}

/* check pill */
.check-pill {
  border-radius: var(--radius-xl);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--spacing-xs);
  padding: var(--spacing-xs);
  padding-right: var(--spacing-sm);
  height: 1.7rem;
  border: 1px solid var(--color-text);
  width: fit-content;
  cursor: pointer;
  text-wrap: nowrap;
}

.check-pill span {
  text-box-trim: trim-both;
}

.check-pill > div:first-child {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  aspect-ratio: 1/1;
  border-radius: 100%;
  border: 1px solid var(--color-text);
  color: var(--color-bg);
}

.check-pill > div:first-child > svg {
  display: none;
}

.check-pill:has(input[type="checkbox"]:checked) > div:first-child {
  background-color: var(--color-text);
}
.check-pill:has(input[type="checkbox"]:checked) > div:first-child > svg {
  display: block;
}

/* select options */
.options > li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 var(--spacing-sm);
  margin-top: var(--spacing-xs);
  cursor: pointer;
  border-radius: var(--radius-xs);
  gap: var(--spacing-xs);
}
.options > li:first-child {
  margin-top: 0;
}

.options > li > svg {
  visibility: hidden;
}
.options > li.selected,
.options > li:hover {
  background-color: var(--color-bg-muted);
}
.options > li.selected > svg {
  visibility: visible;
}

/* date */
.popover.date-input {
  display: none;
  margin: 0;
  inset: auto;
  top: anchor(bottom);
  right: anchor(right);
  border: none;
  padding-top: calc(4px + var(--spacing-sm));
  background-color: transparent;
  box-shadow: var(--shadow-lg);
  position-try-fallbacks: flip-block, flip-inline;
  position-try: flip-block, flip-inline;
}
.popover.date-input.min-w {
  min-width: anchor-size(width);
}

.popover.date-input:popover-open {
  display: block;
}

.popover.date-input > div {
  color: var(--color-text);
  background-color: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: var(--spacing-sm);
  border-radius: var(--radius-sm);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--color-border) transparent;
}

/* time */
.time-popover {
  display: flex;
  gap: var(--spacing-sm);
  position-try-fallbacks: flip-block, flip-inline;
  position-try: flip-block, flip-inline, --center;
}

.time-popover > div {
  width: 100px;
}

.time-popover ul {
  margin-top: var(--spacing-xs);
  height: 150px;
  overflow-y: scroll;
  border-radius: var(--radius-xs);
  border: 1px solid var(--color-border);
  scrollbar-width: thin;
}

.toggle-switch {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border: 0.5px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 3px;
  gap: 2px;
  cursor: pointer;
  user-select: none;
}

.toggle-switch label {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  padding: 6px 16px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text-tertiary);
  transition: all 0.15s;
  white-space: nowrap;
  border: 0.5px solid transparent;
}

.toggle-switch input:checked + label {
  background: var(--color-bg-muted);
  color: var(--color-text);
  border: 0.5px solid var(--color-border);
}

.toggle-switch input {
  width: 0px;
  visibility: hidden;
  display: none;
}
.loader {
  margin: auto;
  width: 70px;
  text-align: center;
  line-height: 48px;
  min-height: 48px;
  height: 100%;
  display: flex;
  align-items: center;
}

.loader > div {
  width: 1rem;
  height: 1rem;
  margin: 2px;
  position: relative;
  top: 3px;
  border: 1px solid var(--color-primary);

  display: inline-block;
  animation: scale-y 1s infinite ease-in-out both;
}

.loader > div:nth-child(2) {
  animation-delay: 0.15s;
}

.loader > div:nth-child(3) {
  animation-delay: 0.3s;
}

@keyframes scale-y {
  0%,
  60%,
  100% {
    height: 1rem;
  }

  30% {
    height: 1.5rem;
  }
}

.spinner {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.pulse {
  width: 8px;
  height: 8px;
  background-color: var(--color-primary);
  border-radius: 50%;
  animation: animate 2s linear infinite;
}

.pill {
  font-size: var(--fs-sm);
  padding-left: var(--spacing-sm);
  padding-right: var(--spacing-sm);
  text-box-trim: trim-both;
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  width: fit-content;
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-primary);
  background-color: rgba(var(--color-primary-rgb), 0.1);
  color: var(--color-primary);
}

.pill--muted {
  border: 1px solid var(--color-border);
  background-color: transparent;
  color: var(--color-text-tertiary);
}
.pill--muted.active {
  border: 1px solid var(--color-border);
  background-color: var(--color-border);
  color: var(--color-text);
}

@keyframes animate {
  0% {
    box-shadow: 0 0 0px 0 rgba(var(--color-primary-rgb), 0.5);
  }
  40% {
    box-shadow: 0 0 0px 3px rgba(var(--color-primary-rgb), 0.3);
  }
  80% {
    box-shadow: 0 0 0px 3px rgba(var(--color-primary-rgb), 0.1);
  }
  100% {
    box-shadow: 0 0 0px 3px rgba(var(--color-primary-rgb), 0);
  }
}
.logo-container {
  display: grid;
  grid-template-columns: 32px 1fr;
  align-items: center;
  gap: 0.3rem;
  cursor: pointer;

  /* background-color: var(--color-bg-secondary); */
  /* width: fit-content; */
  /* height: fit-content; */
  /* padding: var(--spacing-xs); */
  /* border-radius: var(--radius-xs); */
}

.logo-container > p {
  font-size: 18px;
}

.footer {
  padding: var(--spacing-lg) var(--spacing-lg) var(--spacing-md);
  background-color: var(--color-bg-secondary);
  border-top: 1px solid var(--color-border-secondary);
}

.footer__nav {
  display: flex;
  gap: var(--spacing-xl);
  margin-top: var(--spacing-md);
  flex-wrap: wrap;
}

.footer__list {
  display: flex;
  flex-direction: column;
  column-gap: var(--spacing-lg);
  min-width: 5rem;
  width: fit-content;
  font-size: var(--fs-sm);
  white-space: nowrap;
}

.footer__list a:hover {
  color: var(--color-text);
  text-decoration: underline;
}

.footer__links > p {
  text-transform: uppercase;
  margin-bottom: var(--spacing-xs);
  font-size: var(--fs-sm);
  color: var(--color-text-secondary);
}

.footer__ender {
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  font-size: var(--fs-sm);
  justify-content: space-between;
  color: var(--color-text-tertiary);
}

.footer__logo-section > p {
  color: var(--color-text-secondary);
}

@media (min-width: 700px) {
  .footer__logo-section {
    width: 40%;
  }

  .footer > div {
    display: flex;
    justify-content: space-between;
    /* margin-bottom: var(--spacing-md); */
  }

  .footer__nav {
    margin-top: 0;
  }
}

@media (min-width: 600px) {
  .footer__ender {
    flex-direction: row;
  }
}
#toast-root {
  z-index: 100;
  position: fixed;
  right: 0;
  top: 0;
  padding: 1rem;
  display: flex;
  flex-direction: column-reverse;
  gap: 0.25rem;
  overflow-x: hidden;
}

#toast-root:empty {
  display: none;
}

.toast {
  position: relative;
  display: flex;
  gap: 0.5rem;
  align-items: center;
  background-color: var(--color-surface);
  width: fit-content;
  max-width: 18rem;
  padding: 1rem;
  border-radius: var(--radius-md);
  overflow-x: hidden;
  box-shadow: var(--shadow-xl);

  opacity: 0;
  transform: translate(100%, 0%);
  transition:
    opacity 150ms ease,
    transform 150ms ease;
}

.toast.transition-out {
  transition-duration: 400ms;
  transition-timing-function: ease;
}

.toast.visible {
  opacity: 1;
  transform: translate(0%, 0%);
}

.toast > div:first-child {
  display: flex;
  align-items: center;
  justify-content: center;

  /* padding: 0.25rem; */
  /* border-radius: 100%; */
}

.toast svg {
  stroke-width: 3px;
  width: 16px;
  height: 16px;
}

.toast > div:last-child {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0.3rem;

  background-color: var(--color-surface);
  background-blend-mode: multiply;
}

.toast.success {
  background-image: radial-gradient(
    circle at 10% 40%,
    rgba(var(--rgb-success), 0.15),
    var(--color-card) 30%
  );
}

.toast.success svg {
  color: color-mix(
    in srgb,
    var(--color-card) 50%,
    rgba(var(--rgb-success), 0.55) 50%
  );
}

.toast.success > div:first-child {
  /* background-color: var(--color-success); */
  outline: 7px solid rgba(var(--rgb-success), 0.1);
}

.toast.success > div:last-child {
  background-color: var(--color-primary);
}

/* .toast.success > div:last-child { */
/*   background-color: var(--color-success); */
/* } */

.toast.warning {
  background-image: radial-gradient(
    circle at 10% 40%,
    rgba(var(--rgb-warning), 0.15),
    var(--color-card) 30%
  );
}

.toast.warning svg {
  color: color-mix(
    in srgb,
    var(--color-card) 50%,
    rgba(var(--rgb-warning), 0.55) 50%
  );
}

.toast.warning > div:first-child {
  /* background-color: var(--color-warning); */
  outline: 7px solid rgba(var(--rgb-warning), 0.1);
}

/* .toast.warning > div:last-child { */
/* background-color: var(--color-warning); */
/* } */

.toast.error {
  background-image: radial-gradient(
    circle at 10% 40%,
    rgba(var(--rgb-error), 0.15),
    var(--color-card) 30%
  );
}

.toast.error svg {
  color: color-mix(
    in srgb,
    var(--color-card) 50%,
    rgba(var(--rgb-error), 0.55) 50%
  );
}

.toast.error > div:first-child {
  /* background-color: var(--color-error); */
  outline: 7px solid rgba(var(--rgb-error), 0.1);
}

/* .toast.error > div:last-child { */
/*   background-color: var(--color-error); */
/* } */
#related-tools {
  padding: var(--spacing-xl) 0 var(--spacing-2xl);
}
.related-tools__eyebrow {
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
  margin-bottom: 0.75rem;
}

.related-tools__header {
  font-size: var(--fs-h4);
  font-weight: 500;
  color: var(--color-text-primary);
  letter-spacing: -0.02em;
  margin-bottom: 1.25rem;
}
.note-block {
  font-size: var(--fs-sm);
  color: var(--color-text-tertiary);
  background: var(--color-bg-secondary);
  border-radius: var(--radius-md);
  padding: 8px 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  /* margin-top: 0.5rem; */
}

.note-block > svg {
  width: var(--fs-sm);
  height: var(--fs-sm);
}
.dialog {
  background-color: var(--color-surface);
  padding: var(--spacing-md) var(--spacing-md);
  padding-top: 0;
  border-top-left-radius: var(--radius-lg);
  border-top-right-radius: var(--radius-lg);
  transition: transform 200ms ease-in;
  animation: slide-up 200ms ease-in;
  color: var(--color-text);

  max-width: 100vw;
  width: 100%;
  margin: auto 0 0 0;
  border: none;
}

.dialog:open {
  touch-action: none;
}

.dialog::backdrop {
  background-color: var(--color-overlay);
  backdrop-filter: blur(1px);
}

.dialog.closing {
  transform: translateY(100%) !important;
}

.dialog:focus {
  outline: none;
}

.dialog > div:first-child {
  width: 100%;
  height: var(--spacing-md);
  display: flex;
  justify-content: center;
  align-items: center;
}

.dialog > div:first-child > div {
  width: 3rem;
  height: 3px;
  border-radius: var(--radius-md);
  background-color: var(--color-border);
}

@media (min-width: 600px) {
  .dialog {
    padding: var(--spacing-md) var(--spacing-md);
    border-radius: var(--radius-sm);
    transition: opacity 150ms ease-in;
    opacity: 1;

    max-width: 80vw;
    max-height: 80vh;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
    animation: show-dialog 150ms ease-in;

    border: none;
  }

  .dialog.closing {
    transform: translate(-50%, -50%) !important;
    opacity: 0;
  }

  .dialog:focus {
    outline: none;
  }

  .dialog > div:first-child {
    display: none;
  }

  .dialog.sheet {
    height: 100dvh;
    width: 30%;
    max-width: 400px;
    min-width: 300px;
    max-height: none;
    max-width: none;
    position: fixed;
    top: 0;
    right: 0;
    transform: none;
    margin: 0 0 0 auto;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    animation: slide-from-right 200ms ease;
    transition: transform 200ms ease-in;
  }
  .dialog.sheet.closing {
    transform: translateX(100%) !important;
    opacity: 1;
  }
}

@keyframes show-dialog {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slide-up {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}
.calendar {
  width: fit-content;
}
.calendar .dropdown {
  width: 4.625rem;
}
.calendar__week,
.calendar__days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: var(--spacing-xs);
  justify-items: center;
  align-items: center;
}
.calendar__days > div {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 2rem;
  height: 2rem;
  font-size: 0.875rem;
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.calendar__days > div:hover,
.calendar__days > div.selected {
  background-color: var(--color-border);
}
main {
  padding-left: var(--page-padding);
  padding-right: var(--page-padding);
}

#hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  min-height: 100vh;
  text-align: center;
  position: relative;
}

#hero > .pill {
  justify-self: center;
}

.quick-actions {
  display: grid;
  width: 100%;
  max-width: 60rem;
  margin-top: var(--spacing-lg);
  gap: var(--spacing-xs);
  grid-template-columns: 1fr;
}

@media (min-width: 600px) {
  .quick-actions {
    grid-template-columns: 1fr 1fr 1fr;
    row-gap: var(--spacing-xs);
  }
  #see-all-btn {
    grid-column: span 3;
  }
  .quick-action {
    width: fit-content;
  }
}

.arrow-anchor-right {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  justify-self: end;
  text-align: right;
  color: var(--color-text-secondary);
}

.arrow-anchor-right svg {
  transition: transform 100ms ease-out;
}

.arrow-anchor-right:hover svg {
  transform: translateX(4px);
}

.quick-action {
  display: block;
  width: 100%;
  height: 100%;
  border: 0.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: var(--spacing-md) var(--spacing-lg);
  cursor: pointer;
  text-align: left;
  transition: all 0.2s ease;
}

.quick-action:hover {
  background-color: var(--color-surface);
  box-shadow: var(--shadow-xl);
}

.quick-action__title {
  font-weight: 500;
}

.quick-action__subtitle {
  color: var(--color-text-tertiary);
}

.quick-action.primary {
  color: var(--color-on-primary);
  background-color: var(--color-primary);
}

.quick-action.primary:hover {
  background-color: var(--color-primary-hover);
}

.section__subtext {
  text-transform: uppercase;
  color: var(--color-primary);
}

.section__label {
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
  margin-bottom: 1rem;
}

#popular-countdowns,
#all-tools,
#faq {
  padding-top: var(--spacing-xl);
  min-height: 100vh;
  padding-bottom: var(--spacing-2xl);
}

.countdown-card {
  display: grid;
  width: 100%;
  justify-content: center;
  align-items: center;
  padding: var(--spacing-md) var(--spacing-md);
  border: 0.5px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-align: center;
  gap: var(--spacing-lg);
  transition: all 0.2s ease;
}

.countdown-card:hover {
  background-color: var(--color-surface);
  box-shadow: var(--shadow-xl);
}

.countdown-card__count {
  display: flex;
  gap: var(--spacing-md);
  text-align: center;
  justify-content: center;
  font-size: var(--fs-h3);
}

.countdown-card__stat > p {
  text-box-trim: trim-both;
}

.countdown-card__stat > p:nth-child(1),
.countdown-card__title {
  font-size: var(--fs-h3);
  min-width: 3.5rem;
}

.countdown-card__stat > p:nth-child(1) {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums; /* to keep number the same width if i remove monospace */
}

.countdown-card__stat > p:nth-child(2) {
  text-transform: uppercase;
  font-size: var(--fs-base);
}

@media (min-width: 800px) {
  .countdown-card {
    display: flex;
    justify-content: space-between;
    padding: var(--spacing-lg) var(--spacing-xl);
    text-align: left;
    gap: 0;
  }
}

.tools-grid {
  display: grid;
  gap: var(--spacing-xs);
  grid-template-columns: 1fr;
}

@media (min-width: 720px) {
  .tools-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .tools-grid *:has(.tool-card.featured) {
    grid-column: span 2;
  }
}

@media (min-width: 1000px) {
  .tools-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.tool-card {
  border: 0.5px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.25rem 1.25rem 1rem;
  cursor: pointer;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: 0;
  text-decoration: none;
  height: 100%;
  transition: all 0.2s ease;
}

.tool-card:hover {
  background-color: var(--color-surface);
}

.tool-card.dim {
  opacity: 0.55;
}
.tool-card.dim:hover {
  opacity: 0.75;
}

.tool-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.tool-card__badge {
  font-size: 0.625rem;
  font-weight: 500;
  padding: 3px 9px;
  border-radius: 100px;
  background-color: rgba(var(--color-primary-rgb), 0.1);
  color: var(--color-primary);
}

.tool-card__icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background-color: rgba(var(--color-primary-rgb), 0.1);
  color: var(--color-primary);
}

.tool-card__name {
  font-weight: 500;
  margin-bottom: 4px;
  letter-spacing: -0.01em;
}

.tool-card__desc {
  font-size: var(--fs-sm);
  color: var(--color-text-secondary);
  line-height: 1.55;
}

.tool-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.875rem;
  padding-top: 0.75rem;
  border-top: 0.5px solid var(--color-border);
}

.tool-card__tags {
  font-size: var(--fs-xs);
  color: var(--color-text-tertiary);
  letter-spacing: 0.02em;
}

.tool-card__arrow {
  color: var(--color-text-tertiary);
  display: flex;
  align-items: center;
  transition:
    color 0.2s,
    transform 0.2s;
}

.tool-card:hover .tool-card__arrow {
  color: var(--color-text-primary);
  transform: translate(2px, -2px);
}
#countdown {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  min-height: 100vh;
  text-align: center;
  position: relative;
}

.countdown-title {
  font-size: var(--fs-h2);
}

.date-chip {
  font-size: var(--fs-sm);
  color: var(--color-text-secondary);
  background: var(--color-bg-secondary);
  border: 0.5px solid var(--color-border);
  border-radius: 999px;
  width: fit-content;
  padding: 2px var(--spacing-xl);
  margin-top: 8px;
}

.count-box__container {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}

.count-box__container:not(:has(.count-box__num)) {
  font-size: var(--fs-h1);
  font-weight: 600;
  text-align: center;
}

.count-box {
  background-color: var(--color-bg-secondary);
  border: 0.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: var(--spacing-md);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 9.5rem;
  min-height: 9.5rem;
}

.count-box__num {
  font-family: var(--font-mono);
  font-size: var(--fs-h1);
  font-weight: 500;
  text-box-trim: trim-both;
  font-variant-numeric: tabular-nums; /* to keep number the same width if i remove monospace */
}

.divider {
  font-size: var(--fs-h1);
  margin-bottom: var(--spacing-sm);
  font-weight: 200;
}

.count-box__type {
  color: var(--color-text-secondary);
  text-box-trim: trim-both;
  text-transform: uppercase;
  font-size: var(--fs-base);
}

@media (max-width: 780px) {
  .count-box {
    padding: var(--radius-sm);
    min-width: 7rem;
    min-height: 7rem;
  }
  .count-box__num {
    font-size: var(--fs-h2);
  }
  .count-box__divier {
    font-size: var(--fs-h3);
  }
  .count-box__type {
    font-size: var(--font-sm);
  }
}

@media (max-width: 550px) {
  /* .count-box__num { */
  /*   font-size: var(--fs-h4); */
  /* } */
  /* .count-box__divier { */
  /*   font-size: var(--fs-h4); */
  /* } */
  .count-box {
    min-width: 4rem;
    min-height: 4rem;
  }
  .count-box__type {
    font-size: var(--font-xs);
    font-size: 0.625rem;
  }

  .btn-lg {
    padding: 0.5rem 1rem;
    font-size: var(--fs-sm);
    gap: 0.375rem;
  }

  .btn-lg.btn-icon {
    padding: 0.5rem 0.5rem;
  }

  .btn-lg svg {
    height: 1rem;
    width: 1rem;
  }
}

.progress-info {
  width: 100%;
  font-size: var(--fs-sm);
}

#progress-info__percentage {
  text-align: right;
  font-size: var(--fs-sm);
  color: var(--color-primary);
  font-family: var(--font-mono);
}

.progress-bar {
  background-color: rgba(var(--color-primary-rgb), 0.2);
  border-radius: var(--radius-sm);
  overflow: hidden;
  height: 4px;
}

#progress-bar__fill {
  height: 100%;
  border-radius: var(--radius-sm);
  background-color: var(--color-primary);
  width: 0;
  transition: width 0.3s;
}

.seo-body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 600px) {
  .seo-body {
    grid-template-columns: 1fr 1fr;
  }
}

.seo-p {
  font-size: 14px;
  color: var(--color-text-secondary);
  line-height: 1.75;
}

.tick {
  animation-name: tick-animation;
  animation-duration: 200ms;
}

@keyframes tick-animation {
  from {
    opacity: 0;
    transform: scale(1.4);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
#world-clock {
  padding-top: var(--spacing-xl);
  min-height: 100vh;
  padding-bottom: var(--spacing-2xl);
}

#seo-section,
#time-overlap {
  padding-top: var(--spacing-xl);
  padding-bottom: var(--spacing-2xl);
}

.current-time {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  /* border: 0.5px solid var(--color-border); */
  border-radius: var(--radius-sm);
  padding: var(--spacing-md);
  text-align: center;
}

.current-time p {
  text-box-trim: trim-both;
}

.current-time__city {
  font-size: var(--fs-body-lg);
  font-weight: 500;
  margin-bottom: 2px;
}

.current-time__tz {
  font-size: var(--fs-sm);
  color: var(--color-text-secondary);
}

.current-time__time {
  font-family: var(--font-mono);
  font-size: var(--fs-h1);
  font-weight: 500;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  /* text-align: right; */
}
.current-time__date {
  font-size: var(--fs-sm);
  color: var(--color-text-secondary);
  margin-top: 4px;
  text-align: right;
}

#clock-cards-container {
  column-gap: var(--spacing-xs);
  grid-template-columns: 1fr auto;
}

#clock-cards-container > * + * {
  margin-top: var(--spacing-sm);
}

#clock-cards-container.grid > *:nth-child(2) {
  margin-top: 0;
}

.clock-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 0.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: var(--spacing-md);
  position: relative;
}

.clock-card p {
  text-box-trim: trim-both;
}

.clock-card__label {
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-tertiary);
  margin-bottom: 4px;
}

.clock-card__city {
  font-size: var(--fs-h5);
  font-weight: 500;
  margin-bottom: 2px;
}

.clock-card__time-diff {
  font-size: var(--fs-xs);
  color: var(--color-text-secondary);
}

.clock-card__time {
  font-family: var(--font-mono);
  font-size: var(--fs-h4);
  font-weight: 500;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-align: right;
}
.clock-card__tz {
  font-size: var(--fs-xs);
  color: var(--color-text-secondary);
  margin-top: 4px;
  text-align: right;
}

.clock-card__close-btn {
  border-radius: var(--radius-xl);
  visibility: hidden;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(30%, -30%);
  border: 0;
  opacity: 0;
  transition: opacity 100ms ease;
}

.clock-card:hover .clock-card__close-btn {
  visibility: visible;
  opacity: 1;
}

@media (min-width: 600px) {
  .clock-card__city {
    font-size: var(--fs-h3);
  }

  .clock-card__time-diff {
    font-size: var(--fs-sm);
  }

  .clock-card__time {
    font-size: var(--fs-h2);
  }
  .clock-card__tz {
    font-size: var(--fs-sm);
  }
}

.compare-table {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr;
}

.compare-row__city {
  background-color: var(--color-bg-muted);
  border: 0.5px solid var(--color-bg-muted);
  padding: var(--spacing-xs) var(--spacing-sm);
  text-align: left;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  border-top-left-radius: var(--radius-sm);
  border-bottom-left-radius: var(--radius-sm);
  white-space: nowrap;
}

#compare-table__body {
  overflow-x: scroll;
  position: relative;
  scrollbar-width: none;
}

.compare-row__track {
  width: 100%;
  display: flex;
  align-items: center;
}
.compare-row__city,
.compare-row__track {
  height: 2.5rem;
}

#compare-table__head > * + *,
#compare-table__body
  > *:not(#compare-table__now-col, #compare-table__hover-col)
  + * {
  margin-top: var(--spacing-xs);
}

.compare-row__track > div {
  width: 100%;
  height: 100%;
  min-width: 2.5rem;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-sm);
  border: 0.5px solid var(--color-border);
}
.compare-row__track > div:last-child {
  border-top-right-radius: var(--radius-sm);
  border-bottom-right-radius: var(--radius-sm);
}

.compare-row__zero {
  flex-direction: column;
}
.compare-row__zero > span {
  text-box-trim: trim-both;
  line-height: 1;
  /* color: var(--color-primary); */
}
.compare-row__zero > span:last-child {
  font-weight: 700;
}

#compare-table__now-col {
  position: absolute;
  top: 0;
  bottom: 0;
  background-color: rgba(var(--color-primary-rgb), 0.3);
  border: 2px solid var(--color-primary);
  border-radius: var(--radius-sm);
  /* width: 2.5rem; */
  height: 100%;
  z-index: 20;
  margin: 0 !important;
}

#compare-table__hover-col {
  position: absolute;
  top: 0;
  bottom: 0;
  background-color: rgba(var(--color-primary-rgb), 0.3);
  border-radius: var(--radius-sm);
  height: 100%;
  z-index: 10;
  margin: 0 !important;
}

.compare-table__legend-color {
  height: var(--fs-xs);
  width: var(--fs-xs);
  background-color: lime;
  border: 0.5px solid red;
  border-radius: var(--radius-xs);
}

.compare-table__legend-color.color-working-hours,
.compare-row__working {
  background-color: var(--color-success-bg);
  border-color: var(--color-border);
  color: black;
}

#compare-table__now-col,
.compare-table__legend-color.color-now {
  background-color: rgba(var(--color-primary-rgb), 0.3);
  border-color: var(--color-primary);
}

.compare-table__legend-color.color-off-hours {
  background-color: transparent;
  border-color: var(--color-border);
}

.compare-table__legend-label {
  font-size: var(--fs-xs);
}

.timezone-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 0.5px solid var(--color-border);
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--radius-sm);
  margin-top: var(--spacing-xs);
}

.timezone-option__utc {
  color: var(--color-text-secondary);
  font-size: var(--fs-sm);
}
.calculator {
  padding-top: var(--spacing-xl);
}

.calculator > .main-grid {
  margin-top: var(--spacing-xl);
  display: grid;
  gap: 14px;
  margin-bottom: 2rem;
}

@media (min-width: 600px) {
  .calculator > .main-grid {
    grid-template-columns: 1fr 1.15fr;
  }
}

.panel {
  background: var(--color-surface);
  border: 0.5px solid var(--color-border-secondary);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.panel__head,
.calendar-wrapper__head {
  padding: calc(var(--spacing-sm) + var(--spacing-xs)) var(--spacing-md);
  border-bottom: 0.5px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.panel__body {
  padding: calc(var(--spacing-md) + var(--spacing-xs));
}

.date-calculator__amounts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: 100%;
}

.date-calculator__amounts input {
  border-radius: 0;
}

.date-calculator__amounts > div:first-child input {
  border-top-left-radius: var(--radius-md);
  border-bottom-left-radius: var(--radius-md);
}

.date-calculator__amounts > div + div input {
  border-left: 0;
}

.date-calculator__amounts > div:last-child input {
  border-top-right-radius: var(--radius-md);
  border-bottom-right-radius: var(--radius-md);
}

.date-calculator__amounts input:focus {
  box-shadow: 0 0 0 1px var(--color-primary);
  border-color: var(--color-border);
}

#calculator-inputs > .panel__body > * + * {
  margin-top: 0.875rem;
}

.res__main {
  text-align: center;
  padding: var(--spacing-md) 0 calc(var(--spacing-md) + var(--spacing-xs));
}

.res__num {
  font-size: var(--fs-h2);
  font-weight: 500;
  color: var(--color-text-primary);
  letter-spacing: -0.03em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.res__sub {
  font-size: var(--fs-sm);
  color: var(--color-text-secondary);
  margin-top: var(--spacing-xs);
}

.res__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-xs);
  margin-bottom: calc(var(--spacing-md) + var(--spacing-xs));
}
.res__stats.col-2 {
  grid-template-columns: repeat(2, 1fr);
}

.res__stats > div {
  background: var(--color-bg-secondary);
  border-radius: var(--radius-md);
  padding: var(--spacing-sm);
  text-align: center;
}

.stat__n {
  font-weight: 500;
  color: var(--color-text);
  font-variant-numeric: tabular-nums;
}

.stat__l {
  font-size: var(--fs-xs);
  color: var(--color-text-tertiary);
  margin-top: 2px;
}

.res__divider {
  border: none;
  border-top: 0.5px solid var(--color-border-tertiary);
  margin: 0 0 1rem;
}

#share-res {
  display: flex;
  align-items: center;
  flex: 1;
  font-size: var(--fs-xs);
  color: var(--color-text-tertiary);
  font-family: var(--font-mono);
  background: var(--color-bg-secondary);
  border: 0.5px solid var(--color-border-secondary);
  border-radius: var(--radius-md);
  padding: 7px 10px;
  height: 39px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#result-in-calendar {
  padding-bottom: var(--spacing-2xl);
}

.calendar-wrapper {
  background: var(--color-surface);
  border: 0.5px solid var(--color-border-secondary);
  border-radius: var(--radius-lg);
}

.calendar-wrapper__head {
  display: flex;
}

.calendar-wrapper__head > span:nth-child(2) {
  font-size: var(--fs-xs);
  color: var(--color-text-tertiary);
}

.calendar-wrapper__body {
  padding: calc(var(--spacing-sm) + var(--spacing-xs)) var(--spacing-md);
}

.calendar-wrapper__body > .calendar__week {
  margin-bottom: var(--spacing-xs);
}
.calendar-wrapper .highlight {
  background: var(--color-primary);
  color: var(--color-on-primary);
}
.calendar-wrapper .highlight:hover {
  background: var(--color-primary);
}
.calendar-wrapper .calendar__days > div {
  border-radius: 100%;
}
/* ===== LAYOUT ===== */
.hidden {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

.flex {
  display: flex;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-col {
  flex-direction: column;
}

.static {
  position: static;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.sticky {
  position: sticky;
}

.items-center {
  align-items: center;
}

.items-start {
  align-items: flex-start;
}

.items-end {
  align-items: flex-end;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.justify-end {
  justify-content: flex-end;
}

.justify-self-end {
  justify-self: end;
}

.gap-xs {
  gap: var(--spacing-xs);
}

.gap-sm {
  gap: var(--spacing-sm);
}

.gap-md {
  gap: var(--spacing-md);
}

.gap-lg {
  gap: var(--spacing-lg);
}

.gap-xl {
  gap: var(--spacing-xl);
}

.grid {
  display: grid;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

/* ===== TEXT ===== */
.text-sm {
  font-size: var(--fs-sm);
}

.text-base {
  font-size: var(--fs-base);
}

.text-xs {
  font-size: var(--fs-xs);
}

.text-lg {
  font-size: var(--fs-lg);
}

.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-ellipsis {
  text-overflow: ellipsis;
}

.text-clip {
  text-overflow: clip;
}

.text-center {
  text-align: center;
}

.font-mono {
  font-family: var(--font-mono);
}

.font-medium {
  font-weight: 500;
}

.font-semibold {
  font-weight: 600;
}

.font-bold {
  font-weight: 700;
}

.text-right {
  text-align: right;
}

/* Text colors */
.text-primary {
  color: var(--color-primary);
}

.text-accent {
  color: var(--color-accent);
}

.text-muted {
  color: var(--color-text-secondary);
}

.text-success {
  color: var(--color-success);
}

.text-warning {
  color: var(--color-warning);
}

.text-error {
  color: var(--color-error);
}

/* ===== SPACING ===== */
.p-xs {
  padding: var(--spacing-xs) !important;
}

.p-sm {
  padding: var(--spacing-sm);
}

.p-md {
  padding: var(--spacing-md);
}

.p-lg {
  padding: var(--spacing-lg);
}

.p-xl {
  padding: var(--spacing-xl);
}

.p-2xl {
  padding: var(--spacing-2xl);
}

.px-xs {
  padding-left: var(--spacing-xs);
  padding-right: var(--spacing-xs);
}

.px-sm {
  padding-left: var(--spacing-sm);
  padding-right: var(--spacing-sm);
}

.px-md {
  padding-left: var(--spacing-md);
  padding-right: var(--spacing-md);
}

.px-lg {
  padding-left: var(--spacing-lg);
  padding-right: var(--spacing-lg);
}

.py-xs {
  padding-top: var(--spacing-xs);
  padding-bottom: var(--spacing-xs);
}

.py-sm {
  padding-top: var(--spacing-sm);
  padding-bottom: var(--spacing-sm);
}

.py-md {
  padding-top: var(--spacing-md);
  padding-bottom: var(--spacing-md);
}

.py-lg {
  padding-top: var(--spacing-lg);
  padding-bottom: var(--spacing-lg);
}

.m-xs {
  margin: var(--spacing-xs);
}

.m-sm {
  margin: var(--spacing-sm);
}

.m-md {
  margin: var(--spacing-md);
}

.m-lg {
  margin: var(--spacing-lg);
}

.m-xl {
  margin: var(--spacing-xl);
}

.mt-xs {
  margin-top: var(--spacing-xs);
}

.mt-sm {
  margin-top: var(--spacing-sm);
}

.mt-md {
  margin-top: var(--spacing-md);
}

.mt-lg {
  margin-top: var(--spacing-lg);
}

.mb-xs {
  margin-bottom: var(--spacing-xs);
}

.mb-sm {
  margin-bottom: var(--spacing-sm);
}

.mb-md {
  margin-bottom: var(--spacing-md);
}

.mb-lg {
  margin-bottom: var(--spacing-lg);
}

.mb-xl {
  margin-bottom: var(--spacing-xl);
}

.mr-xs {
  margin-right: var(--spacing-xs);
}

.space-y-xs > * + * {
  margin-top: var(--spacing-xs);
}

.space-y-sm > * + * {
  margin-top: var(--spacing-sm);
}

.space-y-md > * + * {
  margin-top: var(--spacing-md);
}

.space-y-lg > * + * {
  margin-top: var(--spacing-lg);
}

.space-y-xl > * + * {
  margin-top: var(--spacing-xl);
}

/* ===== CURSOR ===== */
.cursor-pointer {
  cursor: pointer;
}

.cursor-help {
  cursor: help;
}

/* ===== OTHER ===== */
.opacity-50 {
  opacity: 0.5;
}

.opacity-75 {
  opacity: 0.75;
}

.w-fit {
  width: fit-content;
}

.w-full {
  width: 100%;
}

.rounded {
  border-radius: 100%;
}

.rounded-sm {
  border-radius: var(--radius-sm);
}

.rounded-md {
  border-radius: var(--radius-md);
}

.rounded-lg {
  border-radius: var(--radius-lg);
}

.rounded-xl {
  border-radius: var(--radius-xl);
}

.unselectable {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
