/* --- tokens.css --- */
:root {
  --color-bg: #2c2d2f;
  --color-surface: #27282a;
  --color-surface-2: #1f2022;
  --color-surface-3: #232426;
  --color-surface-4: #2a2b2e;
  --color-border: #34363a;
  --color-border-soft: #2f3135;
  --color-text: #f5f5f5;
  --color-text-muted: #8f9298;
  --color-link: #f5f5f5;
  --color-primary: #3a3c40;
  --color-primary-hover: #46494e;
  --color-button-primary: #355d3a;
  --color-button-primary-hover: #3f6f45;
  --color-button-primary-border: #4d7f53;
  --color-danger: #bc5252;
  --color-danger-strong: #ff3b3b;
  --color-success: #9ed7a7;
  --color-success-strong: #2cd600;
  --color-success-bg: #243427;
  --color-warning: #c98f13;
  --color-warning-bg: #6d5500;
  --color-chip-bg: #202124;
  --color-weekend: #22252b;
  --color-day-today: #214331;
  --color-accent: #9e7700;
  --color-badge-bg: #f3f3f3;
  --color-badge-text: #222326;
  --color-workhours: #7f53d9;
  --color-header-badge-bg: #1d1d1f;
  --color-header-badge-label: #f5f5f5;
  --color-header-badge-text: #f5f5f5;
  --color-surface-list: #2a2b2e;
  --color-surface-list-alt: #24262a;
  --color-surface-list-today: #214331;
  --icon-filter: none;

  --font-family-base: "Atkinson Hyperlegible", "Segoe UI", sans-serif;
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-md: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.5rem;
  --font-size-2xl: 2rem;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --line-height-tight: 1.2;

  --space-0: 0;
  --space-1: 0.125rem;
  --space-2: 0.25rem;
  --space-3: 0.5rem;
  --space-4: 0.75rem;
  --space-5: 1rem;
  --space-6: 1.25rem;
  --space-7: 1.5rem;
  --space-8: 2rem;
  --stack-1: 0.5rem;
  --stack-2: 0.75rem;
  --stack-3: 1rem;

  --radius-none: 0;
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;

  --border-width-1: 1px;

  --container-max: 100%;
  --gutter-desktop: 1rem;
  --gutter-tablet: 1rem;
  --gutter-mobile: 0.875rem;
  --page-content-inset: 1rem;
  --surface-pad: 1rem;
  --surface-pad-compact: 0.875rem;
  --control-h-desktop: 2rem;
  --control-h-mobile: 2rem;
  --control-h: var(--control-h-desktop);
  --list-icon-size: 2rem;
  --icon-size-sm: var(--list-icon-size);
  --icon-size: var(--list-icon-size);
  --header-icon-size: var(--list-icon-size);
  --logo-size: 1.375rem;
  --header-pad-y: 0.625rem;
  --header-pad-y-auth: 0.625rem;
  --badge-height: 2rem;
  --badge-pad-top: 0.2rem;
  --badge-pad-bottom: 0.05rem;
  --input-height: 2.5rem;
  --chip-h: 2rem;
  --row-height-compact: 2.625rem;
  --kpi-height: 2.75rem;
  --period-height: 3.25rem;
  --day-col: 16rem;
  --chip-col: 8.5rem;
  --actions-col: auto;

  --z-header: 20;
  --z-modal: 40;

  --bp-md: 51.25em;
  --bp-sm: 32.5em;
}

html {
  color-scheme: dark;
}

html[data-theme="dark"] {
  color-scheme: dark;
}

html[data-theme="light"] {
  color-scheme: light;
  --color-bg: #ffffff;
  --color-surface: #ffffff;
  --color-surface-2: #edf1f5;
  --color-surface-3: #f7f8fa;
  --color-surface-4: #e7ebf0;
  --color-border: #d4dae2;
  --color-border-soft: #e1e6ec;
  --color-text: #17191d;
  --color-text-muted: #5f6772;
  --color-link: #17191d;
  --color-primary: #dde3ea;
  --color-primary-hover: #d1d8e1;
  --color-button-primary: #4d8a55;
  --color-button-primary-hover: #43784a;
  --color-button-primary-border: #5c9a64;
  --color-danger: #c95a5a;
  --color-danger-strong: #d62828;
  --color-success: #2f7d33;
  --color-success-strong: #2cd600;
  --color-success-bg: #e7f6e9;
  --color-warning: #9f7200;
  --color-warning-bg: #fff0c4;
  --color-chip-bg: #e8ebf0;
  --color-weekend: #ebeef2;
  --color-day-today: #d7f1dc;
  --color-accent: #9e7700;
  --color-badge-bg: #2c2d2f;
  --color-badge-text: #f5f5f5;
  --color-workhours: #7f53d9;
  --color-header-badge-bg: #e5e9ef;
  --color-header-badge-label: #17191d;
  --color-header-badge-text: #17191d;
  --color-surface-list: #f3f4f6;
  --color-surface-list-alt: #dfdfdf;
  --color-surface-list-weekend: #eaeaea;
  --color-surface-list-today: #d1ebd6;
  --icon-filter: brightness(0) saturate(100%) invert(8%) sepia(8%) saturate(834%) hue-rotate(182deg) brightness(92%) contrast(92%);
}

html[data-theme="auto"] {
  color-scheme: dark;
}

@media (prefers-color-scheme: light) {
  html[data-theme="auto"] {
    color-scheme: light;
    --color-bg: #ffffff;
    --color-surface: #ffffff;
    --color-surface-2: #edf1f5;
    --color-surface-3: #f7f8fa;
    --color-surface-4: #e7ebf0;
    --color-border: #d4dae2;
    --color-border-soft: #e1e6ec;
    --color-text: #17191d;
    --color-text-muted: #5f6772;
    --color-link: #17191d;
    --color-primary: #dde3ea;
    --color-primary-hover: #d1d8e1;
    --color-button-primary: #4d8a55;
    --color-button-primary-hover: #43784a;
    --color-button-primary-border: #5c9a64;
    --color-danger: #c95a5a;
    --color-danger-strong: #d62828;
    --color-success: #2f7d33;
    --color-success-strong: #2cd600;
    --color-success-bg: #e7f6e9;
    --color-warning: #9f7200;
    --color-warning-bg: #fff0c4;
    --color-chip-bg: #e8ebf0;
    --color-weekend: #ebeef2;
    --color-day-today: #d7f1dc;
    --color-accent: #9e7700;
    --color-badge-bg: #2c2d2f;
    --color-badge-text: #f5f5f5;
    --color-workhours: #7f53d9;
    --color-header-badge-bg: #e5e9ef;
    --color-header-badge-label: #17191d;
    --color-header-badge-text: #17191d;
    --color-surface-list: #f3f4f6;
    --color-surface-list-alt: #dfdfdf;
    --color-surface-list-weekend: #eaeaea;
    --color-surface-list-today: #d1ebd6;
    --icon-filter: brightness(0) saturate(100%) invert(8%) sepia(8%) saturate(834%) hue-rotate(182deg) brightness(92%) contrast(92%);
  }
}

/* --- base.css --- */
* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-family-base);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-normal);
  line-height: 1.4;
}

a {
  color: var(--color-link);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

img {
  display: block;
  height: auto;
  max-width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
}

hr {
  border: 0;
  border-top: var(--border-width-1) solid var(--color-border);
  margin: var(--space-5) 0;
}

:focus-visible {
  outline: var(--border-width-1) solid var(--color-warning);
  outline-offset: var(--space-1);
}

/* --- layout.css --- */
.container {
  margin: 0 auto;
  padding: 0 var(--gutter-desktop);
  width: min(var(--container-max), 100%);
}

.page {
  padding: var(--stack-2) 0 var(--space-7);
}

.dashboard-page,
.month-page,
.settings-page,
.register-page,
.legal-page,
.contact-page {
  padding-top: var(--space-0);
}

.site-header {
  background: var(--color-bg);
  border-bottom: var(--border-width-1) solid var(--color-border);
  padding-top: env(safe-area-inset-top);
  position: sticky;
  top: var(--space-0);
  z-index: var(--z-header);
}

.site-header .container {
  padding-top: var(--header-pad-y);
  padding-bottom: var(--header-pad-y);
}

.app-topbar-inner {
  align-items: center;
  column-gap: var(--space-4);
  display: grid;
  grid-template-columns: auto 1fr;
  min-height: calc(var(--control-h) + var(--space-1));
}

.site-header.is-auth-header .container {
  padding-top: var(--header-pad-y-auth);
  padding-bottom: var(--header-pad-y-auth);
}

.app-topbar-inner.is-guest {
  grid-template-columns: auto 1fr;
}

.app-topbar-inner.is-guest .app-auth-nav {
  justify-self: end;
}

.site-header.is-auth-header .app-topbar-inner.is-guest {
  min-height: 2.25rem;
}

.app-topbar-inner.is-user .app-user-nav {
  align-items: center;
  display: inline-flex;
  gap: var(--space-4);
  justify-self: end;
}

.site-footer {
  border-top: var(--border-width-1) solid var(--color-border);
  margin-top: var(--space-6);
}

.site-footer-inner {
  align-items: center;
  display: flex;
  gap: var(--space-4);
  justify-content: center;
  padding: var(--space-4) var(--page-content-inset) var(--space-5);
}

.admin-version-badge {
  background: color-mix(in srgb, var(--color-surface-2) 94%, transparent);
  border: var(--border-width-1) solid var(--color-border);
  bottom: var(--space-3);
  color: var(--color-text-muted);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  padding: var(--space-1) var(--space-2);
  position: fixed;
  right: var(--space-3);
  z-index: var(--z-header);
}

.page-header {
  display: grid;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
  padding-inline: var(--page-content-inset);
}

.page-header__title {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
}

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

.app-page-actions-wrap {
  padding-bottom: var(--space-2);
}

.app-page-actions-wrap:empty {
  display: none;
}

.top-row {
  margin-bottom: var(--space-2);
  padding-inline: var(--page-content-inset);
}

@media (max-width: 51.25em) {
  .container {
    padding: 0 var(--gutter-tablet);
  }

  .app-topbar-inner.is-user {
    gap: var(--header-pad-y);
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
  }

  .app-topbar-inner.is-user .app-brand-wrap {
    align-items: center;
    display: flex;
    grid-column: 1;
    grid-row: 1;
    justify-content: space-between;
    width: 100%;
  }

  .app-topbar-inner.is-user .app-user-nav {
    align-items: center;
    display: grid;
    gap: var(--space-2);
    grid-column: 1;
    grid-row: 2;
    grid-template-columns: 1fr auto 1fr;
    justify-self: stretch;
    width: 100%;
  }

  .app-topbar-inner.is-user .app-user-nav .app-main-nav {
    grid-column: 2;
    justify-self: center;
  }

  .app-topbar-inner.is-user .app-user-nav .app-icon-nav {
    grid-column: 3;
    justify-self: end;
  }

  .app-topbar-inner.is-guest {
    column-gap: var(--space-2);
    grid-template-columns: auto 1fr;
  }

  .admin-version-badge {
    bottom: var(--space-2);
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }

  .site-footer {
    padding-bottom: calc(var(--space-8) + var(--space-8) + env(safe-area-inset-bottom));
  }

  .site-footer-inner {
    align-items: center;
    padding-bottom: var(--space-4);
  }
}

@media (max-width: 32.5em) {
  .container {
    padding: 0 var(--gutter-mobile);
  }
}

/* --- components.css --- */
.app-brand-wrap {
  align-items: center;
  display: inline-flex;
  gap: var(--space-5);
  min-height: var(--badge-height);
}

.app-brand,
.brand {
  align-items: center;
  display: inline-flex;
}

.app-logo {
  filter: var(--icon-filter);
  height: var(--logo-size);
  width: var(--logo-size);
}

.app-total-badges {
  align-items: center;
  display: inline-flex;
  gap: var(--space-3);
}

.app-total-badge {
  background: var(--color-header-badge-bg);
  border: 0;
  border-radius: var(--radius-md);
  color: var(--color-header-badge-text);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  justify-content: center;
  min-height: 2.5rem;
  min-width: 4.5rem;
  padding: var(--space-3) var(--space-3) var(--space-2);
  text-align: center;
}

.app-total-badge__label {
  color: var(--color-header-badge-label);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  line-height: 1;
}

.app-total-badge__value {
  color: var(--color-header-badge-text);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.02em;
  line-height: 1;
}

.settings-counter-badges {
  justify-content: center;
  margin-top: var(--space-2);
  width: 100%;
}

.settings-counter-badges .app-total-badge {
  gap: calc(var(--space-1) * 1.5);
  min-height: calc(2.5rem * 1.5);
  min-width: calc(4.5rem * 1.5);
  padding: calc(var(--space-3) * 1.5) calc(var(--space-3) * 1.5) calc(var(--space-2) * 1.5);
}

.settings-counter-badges .app-total-badge__label {
  font-size: var(--font-size-sm);
}

.settings-counter-badges .app-total-badge__value {
  font-size: var(--font-size-2xl);
}

.settings-workhours-form {
  margin-top: var(--space-4);
}

.settings-workhours-inline-grid {
  align-items: start;
}

.settings-workhours-field {
  align-content: start;
  grid-template-rows: auto minmax(var(--input-height), auto);
}

.settings-workhours-field-hint {
  margin-top: calc(var(--space-3) * -1);
}

.app-total-badge-vacation .app-total-badge__value {
  color: var(--color-warning);
}

.app-total-badge-workhours .app-total-badge__value {
  color: var(--color-workhours);
}

.app-total-badge-target .app-total-badge__value {
  color: var(--color-text);
}

.app-total-badge-projection .app-total-badge__value {
  color: var(--color-workhours);
}

.app-total-badge-projection.is-positive .app-total-badge__value {
  color: var(--color-success-strong);
}

.app-total-badge.is-negative .app-total-badge__value {
  color: var(--color-danger-strong);
}

.app-total-badge.is-positive .app-total-badge__value {
  color: var(--color-success);
}

.segmented-toggle {
  align-items: stretch;
  display: inline-flex;
  gap: var(--space-2);
}

.segmented-toggle__item {
  align-items: center;
  border: var(--border-width-1) solid transparent;
  border-radius: var(--radius-sm);
  color: var(--color-link);
  display: inline-flex;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  height: var(--control-h);
  justify-content: center;
  line-height: 1;
  min-width: calc(var(--control-h) + var(--space-3));
  padding: 0 var(--space-3);
  text-decoration: none;
}

.segmented-toggle__item:hover {
  text-decoration: none;
}

.segmented-toggle__item.is-active {
  background: var(--color-badge-bg);
  color: var(--color-bg);
  font-weight: var(--font-weight-bold);
}

.topbar-toggle .segmented-toggle__item {
  border-radius: var(--radius-md);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  height: var(--badge-height);
  min-width: auto;
  padding: var(--badge-pad-top) var(--space-3) var(--badge-pad-bottom);
}

.auth-toggle .segmented-toggle__item {
  font-size: var(--font-size-xs);
  min-width: auto;
  padding: 0 var(--space-2);
}

.app-icon-nav {
  align-items: center;
  display: inline-flex;
  gap: var(--space-3);
}

.icon-button,
.app-icon-btn {
  align-items: center;
  background: transparent;
  border: var(--border-width-1) solid transparent;
  border-radius: var(--radius-md);
  color: var(--color-text);
  cursor: pointer;
  display: inline-flex;
  height: var(--control-h);
  justify-content: center;
  min-width: var(--control-h);
  padding: 0;
  text-decoration: none;
}

.icon-button:hover,
.app-icon-btn:hover {
  background: var(--color-primary);
  text-decoration: none;
}

.dash-icon {
  filter: var(--icon-filter);
  height: var(--header-icon-size);
  width: var(--header-icon-size);
}

.dash-icon-rotate-180 {
  transform: rotate(180deg);
}

.btn,
.button {
  align-items: center;
  background: var(--color-button-primary);
  border: var(--border-width-1) solid var(--color-border);
  border-radius: var(--radius-md);
  color: var(--color-text);
  cursor: pointer;
  display: inline-flex;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  gap: var(--space-2);
  height: var(--control-h);
  justify-content: center;
  min-height: var(--control-h);
  padding: 0 var(--space-4);
  text-decoration: none;
}

.btn:hover,
.button:hover {
  background: var(--color-button-primary-hover);
  text-decoration: none;
}

.btn:disabled,
.button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.btn--ghost,
.button.ghost {
  background: transparent;
}

.btn--ghost:hover,
.button.ghost:hover {
  background: var(--color-primary);
}

.btn--danger,
.button.danger {
  background: var(--color-danger);
}

.btn[type="submit"]:not(.btn--ghost, .btn--danger),
.button[type="submit"]:not(.ghost, .danger) {
  border-color: var(--color-button-primary-border);
}

.card,
.auth-card,
.form-card,
.register-section,
.register-section-note,
.register-actions,
.vacation-item,
.settings-note,
.admin-user-row,
.settings-section {
  background: color-mix(in srgb, var(--color-surface) 92%, transparent);
  border: var(--border-width-1) solid var(--color-border);
}

.card {
  padding: var(--surface-pad);
}

.auth-card,
.form-card {
  margin: 0 auto;
  width: min(42.5rem, 100%);
}

.legal-card,
.contact-card {
  display: grid;
  gap: var(--space-5);
}

.legal-content {
  display: grid;
  gap: var(--space-3);
}

.legal-content h1,
.legal-content h2,
.legal-content h3,
.legal-content h4 {
  color: var(--color-text);
}

.legal-content p,
.legal-content li,
.legal-content blockquote {
  color: var(--color-text);
  line-height: 1.6;
}

.legal-content ul,
.legal-content ol {
  display: grid;
  gap: var(--space-2);
  margin: 0;
  padding-inline-start: var(--space-5);
}

.legal-content a {
  color: var(--color-link);
}

.form-card.full-width,
.settings-section.form-card.full-width {
  max-width: none;
  width: 100%;
}

.auth-card-register,
.register-shell {
  border: 0;
  margin: 0;
  padding: 0;
  width: 100%;
}

.auth-links {
  display: grid;
  gap: var(--space-2);
  margin-top: var(--space-4);
}

.auth-links p {
  margin: 0;
}

.auth-links a {
  text-decoration: underline;
  text-underline-offset: var(--space-1);
}

.site-footer-nav {
  display: inline-flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.site-footer-nav a {
  color: var(--color-text-muted);
  text-decoration: none;
}

.site-footer-link-button {
  background: transparent;
  border: 0;
  color: var(--color-text-muted);
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-decoration: none;
}

.site-footer-nav a:hover {
  color: var(--color-text);
  text-decoration: underline;
}

.site-footer-link-button:hover {
  color: var(--color-text);
  text-decoration: underline;
}

@media (max-width: 51.25em) {
  .site-footer-nav {
    margin-bottom: var(--space-3);
    justify-content: center;
    width: 100%;
  }
}

.alert,
.error,
.success {
  align-items: center;
  border: var(--border-width-1) solid var(--color-border);
  display: flex;
  gap: var(--space-3);
  justify-content: space-between;
  margin-bottom: var(--space-2);
  padding: var(--space-3) var(--space-4);
}

.success,
.alert--success {
  background: var(--color-success-bg);
  color: var(--color-success);
}

.error,
.alert--error {
  background: color-mix(in srgb, var(--color-danger) 20%, var(--color-bg));
  color: var(--color-text);
}

.alert--info {
  background: color-mix(in srgb, var(--color-surface-2) 80%, transparent);
}

.alert__close {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  font-size: var(--font-size-lg);
}

.stack {
  display: grid;
  gap: var(--space-4);
}

.inline-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(2, minmax(11rem, 1fr));
}

.nav-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

label,
.form-field {
  display: grid;
  gap: var(--space-2);
  font-weight: var(--font-weight-semibold);
}

.form-field--hint {
  align-items: start;
}

.stack-xs {
  display: grid;
  gap: var(--space-2);
}

.form-field__label {
  font-weight: var(--font-weight-semibold);
}

input,
textarea,
select,
.input {
  background: var(--color-surface-3);
  border: var(--border-width-1) solid var(--color-border);
  border-radius: var(--radius-md);
  color: var(--color-text);
  font: inherit;
  min-height: var(--input-height);
  padding: var(--space-3);
}

textarea,
textarea.input {
  min-height: 6rem;
}

input:disabled,
textarea:disabled,
select:disabled {
  color: var(--color-text-muted);
}

.checkbox-row {
  align-items: center;
  display: flex;
  gap: var(--space-2);
  font-weight: var(--font-weight-medium);
}

.checkbox-row input {
  min-height: auto;
}

.weekday-fieldset {
  border: var(--border-width-1) solid var(--color-border);
  margin: 0;
  padding: var(--surface-pad-compact);
}

.weekday-fieldset legend {
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  padding: 0 var(--space-1);
}

.weekday-grid,
.register-weekday-grid {
  display: grid;
  gap: var(--space-2) var(--space-4);
  grid-template-columns: repeat(4, minmax(7.5rem, 1fr));
}

.table-wrap {
  overflow-x: auto;
}

.table {
  border-collapse: collapse;
  width: 100%;
}

.table th,
.table td {
  border: var(--border-width-1) solid var(--color-border);
  padding: var(--space-3);
  text-align: left;
}

.empty-state {
  border: var(--border-width-1) dashed var(--color-border);
  padding: var(--space-6);
  text-align: center;
}

.badge {
  background: var(--color-surface-2);
  border: var(--border-width-1) solid var(--color-border);
  color: var(--color-text);
  display: inline-flex;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  padding: var(--space-1) var(--space-2);
}

.modal {
  inset: 0;
  position: fixed;
  z-index: var(--z-modal);
}

.modal__backdrop {
  background: color-mix(in srgb, var(--color-bg) 80%, transparent);
  inset: 0;
  position: absolute;
}

.modal__dialog {
  background: var(--color-surface);
  border: var(--border-width-1) solid var(--color-border);
  inset: 50% auto auto 50%;
  max-width: min(40rem, 92vw);
  position: absolute;
  transform: translate(-50%, -50%);
  width: 100%;
}

.modal__header,
.modal__body {
  padding: var(--surface-pad);
}

.modal__header {
  align-items: center;
  border-bottom: var(--border-width-1) solid var(--color-border);
  display: flex;
  justify-content: space-between;
}

.modal__close {
  background: transparent;
  border: 0;
  color: var(--color-text);
  cursor: pointer;
  font-size: var(--font-size-lg);
}

.pagination {
  display: flex;
  gap: var(--space-3);
}

.top-row h1 {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
}

.settings-page .top-row {
  margin-bottom: var(--space-3);
  padding-top: var(--space-5);
}

.settings-grid {
  display: grid;
  gap: var(--space-6);
  margin-top: var(--space-2);
}

.settings-tabs {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: var(--stack-2);
}

.settings-tabs .segmented-toggle__item {
  background: transparent;
  border: var(--border-width-1) solid var(--color-border);
  border-radius: var(--radius-none);
  color: var(--color-text-muted);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
}

.settings-tabs .segmented-toggle__item.is-active {
  background: color-mix(in srgb, var(--color-surface) 92%, transparent);
  color: var(--color-text);
}

.site-header.is-auth-header .auth-toggle .segmented-toggle__item {
  font-size: var(--font-size-xs);
  height: 1.5625rem;
  min-width: 4.5rem;
  padding: 0 var(--space-2);
}

.settings-section {
  padding: var(--space-4);
}

.settings-section--collapsible {
  padding: 0;
}

.settings-section__summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: var(--space-3);
  justify-content: space-between;
  list-style: none;
  padding: var(--surface-pad);
}

.settings-section__summary::-webkit-details-marker {
  display: none;
}

.settings-section__heading {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
}

.settings-section__chevron {
  align-items: center;
  color: var(--color-text-muted);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  justify-content: center;
  line-height: 1;
  width: 1rem;
}

.settings-section__chevron::before {
  content: "+";
}

.settings-section--collapsible[open] .settings-section__chevron::before {
  content: "-";
}

.settings-section__content {
  border-top: var(--border-width-1) solid var(--color-border);
  padding: 0 var(--surface-pad) var(--surface-pad);
}

.settings-section__content > :first-child {
  margin-top: var(--space-4);
}

.settings-section .button {
  width: 100%;
}

.landing-shell {
  justify-items: center;
  padding-block: var(--space-7) var(--space-8);
}

.landing-hero {
  display: grid;
  gap: var(--space-5);
  width: min(44rem, 100%);
}

.landing-hero--centered {
  justify-items: center;
  text-align: center;
}

.landing-hero__copy {
  justify-items: center;
  margin: 0 auto;
  width: min(36rem, 100%);
}

.landing-hero__logo-wrap {
  display: flex;
  justify-content: center;
}

.landing-hero__logo {
  height: auto;
  max-width: 12rem;
  width: 100%;
}

.landing-eyebrow {
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  justify-self: center;
  letter-spacing: 0.02em;
  margin: 0;
  text-transform: uppercase;
}

.landing-title {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  justify-self: center;
  line-height: var(--line-height-tight);
  margin: 0;
  max-width: 30rem;
  text-wrap: balance;
}

.landing-lead {
  color: var(--color-text);
  font-size: var(--font-size-lg);
  justify-self: center;
  margin: 0;
  max-width: 36rem;
  text-align: center;
}

.landing-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  justify-content: center;
  justify-self: center;
}

.landing-cta-row .btn {
  min-width: 11rem;
}

.settings-auth-row {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.settings-export-actions {
  display: grid;
  gap: var(--space-2);
}

.settings-import-preview {
  background: color-mix(in srgb, var(--color-surface) 95%, transparent);
  border: var(--border-width-1) solid var(--color-border);
  padding: var(--surface-pad);
}

.release-note-create-form {
  margin-bottom: var(--space-5);
}

.release-note-editor-list {
  display: grid;
  gap: var(--space-3);
}

.release-note-editor {
  background: color-mix(in srgb, var(--color-surface-2) 92%, transparent);
  border: var(--border-width-1) solid var(--color-border);
  border-radius: var(--radius-md);
}

.release-note-editor__summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: var(--space-3);
  justify-content: space-between;
  list-style: none;
  padding: var(--surface-pad-compact);
}

.release-note-editor__summary::-webkit-details-marker {
  display: none;
}

.release-note-editor__headline {
  display: grid;
  gap: var(--space-1);
}

.release-note-editor__chevron {
  align-items: center;
  color: var(--color-text-muted);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  justify-content: center;
  line-height: 1;
  width: 1rem;
}

.release-note-editor__chevron::before {
  content: "+";
}

.release-note-editor[open] .release-note-editor__chevron::before {
  content: "-";
}

.release-note-editor__content {
  border-top: var(--border-width-1) solid var(--color-border);
  padding: 0 var(--surface-pad-compact) var(--surface-pad-compact);
}

.release-note-editor__content > :first-child {
  margin-top: var(--space-4);
}

.settings-import-preview__header {
  align-items: start;
  display: grid;
  gap: var(--space-2);
  grid-template-columns: minmax(0, 1fr) auto;
}

.settings-import-preview__mode {
  align-self: center;
  background: var(--color-surface-2);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  display: inline-flex;
  min-height: var(--control-h);
  padding: var(--space-1) var(--space-3);
}

.settings-import-grid {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.settings-import-stat {
  background: color-mix(in srgb, var(--color-surface-2) 92%, transparent);
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
}

.settings-import-summary {
  display: grid;
  gap: var(--space-2);
}

.settings-import-conflicts {
  display: grid;
  gap: var(--space-1);
  margin: 0;
  padding-inline-start: var(--space-4);
}

.contact-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
}

.contact-info-list {
  display: grid;
  gap: var(--space-2);
  margin: 0;
  padding-inline-start: var(--space-5);
}

.contact-honeypot {
  height: 0;
  left: -9999px;
  overflow: hidden;
  position: absolute;
  width: 0;
}

.danger-card {
  border-color: color-mix(in srgb, var(--color-danger) 24%, var(--color-border));
}

.admin-user-row {
  align-items: center;
  column-gap: var(--space-3);
  display: grid;
  grid-template-columns: minmax(14rem, 1.4fr) repeat(3, minmax(7rem, 1fr)) minmax(13rem, auto);
  padding: var(--surface-pad-compact);
}

.admin-user-actions {
  display: inline-flex;
  gap: var(--space-2);
  justify-content: flex-end;
}

.register-shell,
.register-form,
.vacation-list,
.admin-user-list,
.admin-recipient-picker,
.support-ticket-list {
  display: grid;
  gap: var(--space-2);
}

.support-ticket-card {
  background: var(--color-surface-2);
  border: var(--border-width-1) solid var(--color-border);
  border-radius: var(--radius-md);
  display: grid;
  gap: var(--space-3);
  padding: var(--surface-pad);
}

.support-ticket-card__header {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  justify-content: space-between;
}

.support-ticket-card__title-wrap,
.support-ticket-card__meta {
  display: grid;
  gap: var(--space-1);
}

.support-ticket-card__title-wrap h3 {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
}

.support-ticket-card__message {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  color: var(--color-text);
  padding: var(--surface-pad-compact);
  white-space: pre-wrap;
}

.support-ticket-card__controls {
  align-items: start;
}

.admin-recipient-grid {
  display: grid;
  gap: var(--space-2) var(--space-4);
  grid-template-columns: repeat(2, minmax(12rem, 1fr));
}

.vacation-list {
  margin-top: var(--space-5);
}

.vacation-item {
  align-items: center;
  display: grid;
  gap: var(--space-3);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: var(--surface-pad-compact);
}

.settings-note {
  padding: var(--surface-pad-compact);
}

.settings-adjustment-meta {
  display: grid;
  gap: var(--space-2);
  place-items: end;
}

.help-intro,
.help-callout,
.help-section,
.help-guides,
.help-guide-card,
.release-notes-card {
  background: color-mix(in srgb, var(--color-surface) 92%, transparent);
  border: var(--border-width-1) solid var(--color-border);
  display: grid;
  gap: var(--space-3);
  padding: var(--surface-pad);
}

.help-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.help-guides {
  margin-top: var(--space-4);
}

.help-guides__header {
  display: grid;
  gap: var(--space-2);
}

.help-guides__grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.release-notes-card__header,
.release-notes-card__grid,
.release-notes-card__body,
.release-notes-card__section,
.release-notes-card__actions,
.release-notes-card__headline {
  display: grid;
  gap: var(--space-3);
}

.release-notes-card__header {
  align-items: start;
  grid-template-columns: 1fr auto;
}

.release-notes-card__eyebrow {
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.release-notes-card__version {
  align-self: start;
  background: var(--color-chip-bg);
  border: var(--border-width-1) solid var(--color-border-soft);
  border-radius: var(--radius-md);
  color: var(--color-text);
  display: inline-flex;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  min-height: var(--chip-h);
  padding: 0 var(--space-3);
  white-space: nowrap;
}

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

.release-notes-card__section {
  background: color-mix(in srgb, var(--color-surface-2) 92%, transparent);
  border: var(--border-width-1) solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--surface-pad-compact);
}

.release-notes-card__section h3 {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
}

.release-notes-card__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  justify-content: flex-end;
}

.release-notes-card--compact {
  margin-bottom: var(--space-4);
}

.help-guide-card h3 {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
}

.help-section__header,
.help-section__body {
  display: grid;
  gap: var(--space-3);
}

.help-section h2,
.help-callout h2 {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
}

.help-intro p,
.help-callout p,
.help-section p,
.help-guide-card p,
.help-section li {
  color: var(--color-text);
  line-height: 1.5;
}

.help-list,
.help-steps {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding-inline-start: var(--space-5);
}

.help-list strong,
.help-steps strong {
  font-weight: var(--font-weight-bold);
}

.register-title {
  font-size: var(--font-size-xl);
  margin: var(--space-2) 0;
}

.register-section,
.register-actions,
.register-section-note {
  padding: var(--surface-pad);
}

.register-section h2 {
  font-size: var(--font-size-xl);
  margin-bottom: var(--space-1);
}

.register-subtitle,
.register-email-note,
.register-footer,
.register-section-note {
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
}

.register-grid-2 {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(2, minmax(10rem, 1fr));
}

.register-checkbox-row {
  display: grid;
  gap: var(--space-2);
}

.register-actions .btn,
.register-submit {
  width: 100%;
}

.register-footer {
  padding: 0 var(--space-2);
}

.week-view-shell,
.month-view-shell {
  display: grid;
  gap: var(--space-1);
}

.week-group-list,
.day-list {
  display: grid;
  gap: 0;
}

.period-header {
  align-items: center;
  background: var(--color-surface-2);
  border: 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  min-height: var(--period-height);
  padding: var(--space-1) var(--space-3);
}

.period-header__nav {
  align-items: center;
  display: inline-flex;
  gap: var(--space-2);
  grid-column: 2;
  justify-self: center;
}

.period-header__title {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  line-height: 1;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.period-header__actions {
  align-items: center;
  display: inline-flex;
  gap: var(--space-2);
  grid-column: 3;
  justify-self: end;
}

.week-vacation-button {
  align-items: center;
  background: transparent;
  border: var(--border-width-1) solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  cursor: pointer;
  display: inline-flex;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  min-height: var(--control-h);
  padding: 0 var(--space-3);
}

.week-vacation-button.is-active {
  background: var(--color-accent);
  border-color: var(--color-warning);
}

.kpi-bar {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: var(--space-3);
}

.kpi-bar__item {
  align-items: center;
  background: var(--color-surface-2);
  border: 0;
  display: flex;
  gap: var(--space-2);
  min-height: var(--kpi-height);
  padding: 0 var(--space-3);
}

.kpi-bar__label {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
}

.kpi-bar__value {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
}

.kpi-bar__item--editable {
  justify-content: flex-start;
}

.kpi-bar__edit {
  align-items: center;
  background: transparent;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  margin-left: auto;
  padding: 0;
}

.kpi-bar__edit .dash-icon {
  height: var(--icon-size-sm);
  width: var(--icon-size-sm);
}

.workhours-warning-banner {
  align-items: center;
  background: var(--color-danger-strong);
  color: var(--color-text);
  display: flex;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0 var(--space-5);
  position: relative;
}

.workhours-warning-text {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  line-height: 1.1;
  text-align: center;
}

.workhours-warning-close {
  background: transparent;
  border: 0;
  color: var(--color-text);
  cursor: pointer;
  font-size: var(--font-size-lg);
  position: absolute;
  right: var(--space-3);
}

.dash-target-editor {
  background: color-mix(in srgb, var(--color-surface) 92%, transparent);
  border: var(--border-width-1) solid var(--color-border);
  padding: var(--space-5);
}

.day-row {
  align-items: center;
  background: color-mix(in srgb, var(--color-surface-4) 92%, transparent);
  border: 0;
  display: grid;
  gap: var(--space-2);
  grid-template-columns: var(--day-col) 1fr var(--actions-col);
  min-height: var(--row-height-compact);
  padding: 0 var(--space-3);
}

.day-row--weekend {
  background: color-mix(in srgb, var(--color-weekend) 96%, transparent);
}

.day-row--today {
  background: var(--color-day-today);
}

.day-row__label {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.day-row__cells {
  display: grid;
  gap: var(--space-2);
  grid-auto-columns: minmax(0, var(--chip-col));
  grid-auto-flow: column;
  justify-content: start;
}

.ui-chip {
  align-items: center;
  background: var(--color-chip-bg);
  border: var(--border-width-1) solid var(--color-border-soft);
  color: var(--color-text);
  display: inline-flex;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  min-height: var(--chip-h);
  padding: 0 var(--space-3);
  white-space: nowrap;
}

.ui-chip--empty {
  color: var(--color-text-muted);
}

.day-row__inline-note {
  align-items: center;
  background: var(--color-chip-bg);
  border: var(--border-width-1) solid var(--color-border-soft);
  color: var(--color-text-muted);
  display: inline-flex;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  min-height: var(--chip-h);
  overflow: hidden;
  padding: 0 var(--space-3);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.day-row__actions {
  align-items: center;
  display: inline-flex;
  gap: var(--space-2);
  justify-content: flex-end;
  line-height: 0;
  padding-right: var(--space-2);
}

.day-row__actions > * {
  flex: 0 0 auto;
}

.day-row__actions .dash-icon,
.day-row__add-menu .dash-icon,
.week-group-card-mobile .day-list .dash-icon {
  height: var(--list-icon-size);
  width: var(--list-icon-size);
}

.day-row__actions .dash-icon[src$="/edit.svg"] {
  transform: translateY(0.0625rem);
}

.day-row__actions .dash-icon[src$="/delete.svg"] {
  transform: translateY(0);
}

.day-status-badge {
  align-items: center;
  background: transparent;
  border: var(--border-width-1) solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  cursor: pointer;
  display: inline-flex;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  justify-content: center;
  min-height: var(--control-h);
  min-width: var(--control-h);
  padding: 0 var(--space-2);
}

.day-status-badge.is-vacation {
  background: var(--color-accent);
  border-color: var(--color-warning);
}

.day-status-badge.is-holiday {
  background: color-mix(in srgb, var(--color-primary) 90%, transparent);
}

.day-status-badge.is-sick {
  background: color-mix(in srgb, var(--color-danger) 55%, var(--color-surface));
}

.day-status-badge.is-overtime {
  background: color-mix(in srgb, var(--color-primary) 65%, var(--color-surface));
  border-color: var(--color-primary);
}

.day-status-badge.is-note {
  border: 0;
  min-width: var(--control-h);
  padding: 0;
  text-decoration: none;
}

.day-status-badge.is-note .dash-icon {
  height: var(--icon-size-sm);
  width: var(--icon-size-sm);
}

.day-status-badge.is-note.is-active {
  background: var(--color-warning-bg);
}

.day-row__add-menu {
  position: relative;
}

.day-row__add-menu summary {
  list-style: none;
}

.day-row__add-menu summary::-webkit-details-marker {
  display: none;
}

.day-row__add-menu-panel {
  box-shadow: var(--shadow-md);
  background: var(--color-surface-2);
  border: var(--border-width-1) solid var(--color-border);
  display: grid;
  gap: var(--space-2);
  min-width: 13rem;
  padding: var(--space-2);
  position: absolute;
  right: 0;
  top: calc(100% + var(--space-1));
  z-index: var(--z-header);
}

.day-row__add-menu-item {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--color-text);
  cursor: pointer;
  display: flex;
  font-family: inherit;
  font-size: var(--font-size-md);
  justify-content: flex-start;
  line-height: var(--line-height-tight);
  min-height: var(--control-h);
  padding: var(--space-2) var(--space-3);
  text-decoration: none;
  text-align: left;
  width: 100%;
  white-space: normal;
}

.day-row__add-menu-item:hover {
  background: var(--color-primary);
  text-decoration: none;
}

.week-group-list {
  gap: var(--stack-3);
}

.week-group-card-mobile {
  background: color-mix(in srgb, var(--color-surface) 92%, transparent);
  border: 0;
  display: grid;
  gap: var(--stack-2);
  padding: var(--space-2);
}

.week-group-header {
  align-items: center;
  background: color-mix(in srgb, var(--color-surface-2) 92%, transparent);
  border: 0;
  display: grid;
  gap: var(--space-2);
  grid-template-columns: 1fr auto auto;
  min-height: var(--row-height-compact);
  padding: var(--space-2) var(--space-3);
}

.week-group-header__left {
  align-items: center;
  display: inline-flex;
  font-size: var(--font-size-md);
  gap: var(--space-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.week-group-header__meta {
  font-size: var(--font-size-sm);
  line-height: 1.2;
  white-space: nowrap;
}

.week-group-header__action {
  justify-self: end;
  margin-left: var(--space-3);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .period-header,
:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .kpi-bar__item,
:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .day-row,
:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .week-group-header {
  border-color: var(--color-border);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .period-header {
  background: var(--color-surface-list-alt);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .kpi-bar__item,
:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .ui-chip,
:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .week-group-header {
  background: var(--color-surface);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .week-group-header {
  background: var(--color-surface-list-alt);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .kpi-bar__item {
  background: var(--color-surface-list-alt);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .ui-chip {
  border-color: var(--color-border);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .day-row {
  background: var(--color-surface-list);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .day-row--weekend {
  background: var(--color-surface-list-weekend);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .day-row--today {
  background: var(--color-surface-list-today);
}

:is(html[data-theme="light"], html[data-theme="auto"][data-theme-resolved="light"]) .month-page .day-list--month {
  background: var(--color-surface-list);
}

.week-group-card-mobile .day-list {
  gap: var(--stack-1);
  padding-inline-start: var(--space-2);
}

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

.negative {
  color: var(--color-danger-strong);
}

.inline-form {
  align-items: center;
  display: inline-flex;
  margin: 0;
}

.day-row__add-menu-panel .inline-form {
  display: block;
  width: 100%;
}

@media (max-width: 51.25em) {
  :root {
    --control-h: var(--control-h-mobile);
    --header-icon-size: var(--list-icon-size);
    --logo-size: 2rem;
  }

  .landing-shell {
    padding-block: var(--space-5) var(--space-6);
  }

  .landing-hero__logo {
    max-width: 10rem;
  }

  .app-total-badge {
    font-size: var(--font-size-sm);
  }

  .settings-counter-badges {
    display: grid;
    gap: var(--space-2);
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .settings-counter-badges .app-total-badge {
    gap: var(--space-2);
    min-height: auto;
    min-width: 0;
    padding: var(--space-3) var(--space-2);
    width: 100%;
  }

  .settings-counter-badges .app-total-badge__label {
    font-size: var(--font-size-xs);
  }

  .settings-counter-badges .app-total-badge__value {
    font-size: var(--font-size-xl);
  }

  .topbar-toggle .segmented-toggle__item {
    font-size: var(--font-size-md);
  }

  .inline-grid,
  .register-grid-2,
  .settings-auth-row,
  .settings-import-preview__header,
  .settings-import-grid,
  .admin-user-row,
  .admin-recipient-grid,
  .vacation-item {
    grid-template-columns: 1fr;
  }

  .settings-adjustment-meta {
    place-items: start;
  }

  .help-grid {
    grid-template-columns: 1fr;
  }

  .help-guides__grid {
    grid-template-columns: 1fr;
  }

  .release-notes-card__header,
  .release-notes-card__grid {
    grid-template-columns: 1fr;
  }

  .release-notes-card__actions {
    justify-content: stretch;
  }

  .contact-grid {
    grid-template-columns: 1fr;
  }

  .period-header {
    margin-inline: calc(var(--gutter-tablet) * -1);
    grid-template-columns: 1fr;
    row-gap: var(--space-2);
    padding: var(--space-2);
  }

  .period-header__nav {
    grid-column: 1;
  }

  .period-header__actions {
    grid-column: 1;
    justify-self: center;
  }

  .kpi-bar {
    margin-inline: calc(var(--gutter-tablet) * -1);
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-page .day-list--week,
  .month-page .week-group-list {
    margin-inline: calc(var(--gutter-tablet) * -1);
  }

  .month-page .week-group-card-mobile {
    background: transparent;
    padding: 0;
  }

  .day-row {
    grid-template-columns: 1fr auto;
    row-gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
  }

  .day-row__label {
    grid-column: 1;
    grid-row: 1;
  }

  .day-row__actions {
    grid-column: 2;
    grid-row: 1;
    padding-right: 0;
  }

  .day-row__cells {
    grid-column: 1 / 3;
    grid-row: 2;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .day-row__cells.day-row__cells--empty {
    grid-template-columns: 1fr;
  }

  .week-group-header {
    grid-template-columns: 1fr auto;
    row-gap: var(--space-1);
  }

  .week-group-header__left {
    grid-column: 1;
    grid-row: 1;
  }

  .week-group-header__action {
    grid-column: 2;
    grid-row: 1;
  }

  .week-group-header__meta {
    grid-column: 1 / 3;
    grid-row: 2;
    font-size: var(--font-size-xs);
    line-height: 1.2;
    white-space: normal;
  }

  .week-group-card-mobile .day-list {
    padding-inline-start: 0;
  }
}

@media (max-width: 32.5em) {
  .period-header,
  .kpi-bar {
    margin-inline: calc(var(--gutter-mobile) * -1);
  }

  .dashboard-page .day-list--week,
  .month-page .week-group-list {
    margin-inline: calc(var(--gutter-mobile) * -1);
  }

  .landing-title {
    font-size: var(--font-size-xl);
  }

  .landing-lead {
    font-size: var(--font-size-md);
  }

  .landing-cta-row .btn {
    width: 100%;
  }

  .weekday-grid,
  .register-weekday-grid {
    grid-template-columns: 1fr 1fr;
  }

  .period-header__title {
    font-size: var(--font-size-md);
    text-align: center;
  }

  .day-row__label {
    font-size: var(--font-size-lg);
  }
}

@media (min-width: 51.26em) {
  .month-page .week-group-list {
    gap: var(--space-3);
  }

  .month-page .week-group-card-mobile {
    background: transparent;
    border: 0;
    gap: var(--space-2);
    padding: 0;
  }

  .month-page .week-group-header {
    border: 0;
    column-gap: var(--space-4);
    grid-template-columns: auto 1fr auto;
    min-height: 2.625rem;
  }

  .month-page .week-group-header__meta {
    justify-self: end;
    text-align: right;
  }

  .month-page .week-group-header__action {
    margin-left: 0;
  }

  .month-page .day-list--month {
    margin-left: 0;
    padding-left: 0;
  }
}

/* --- utilities.css --- */
.muted {
  color: var(--color-text-muted);
}

.is-hidden,
.u-hidden,
[hidden] {
  display: none !important;
}

.u-stack-sm {
  display: grid;
  gap: var(--space-3);
}

.u-stack-md {
  display: grid;
  gap: var(--space-4);
}
