* { box-sizing: border-box; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
html, body { margin: 0; height: 100%; min-height: 100%; }
body {
  font-family: Inter, system-ui, -apple-system, Segoe UI, sans-serif;
  color: var(--color-text);
  background:
    radial-gradient(circle at 20% 10%, var(--page-glow-1), transparent 24rem),
    radial-gradient(circle at 90% 90%, var(--page-glow-2), transparent 25rem),
    var(--color-bg);
  overflow: hidden;
}
.auth-page {
  overflow-y: auto;
}
.auth-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: var(--space-4);
}
.auth-card {
  width: min(100%, 460px);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, var(--color-surface), var(--color-surface-2));
  box-shadow: var(--shadow-soft);
  padding: var(--space-4);
}
.auth-card__intro {
  display: grid;
  gap: .35rem;
  margin-bottom: var(--space-3);
}
.auth-card__intro h1 {
  margin: 0;
  font-size: 2rem;
  line-height: 1.05;
}
.auth-card__intro p,
.auth-telegram p {
  margin: 0;
  color: var(--color-muted);
}
.auth-form {
  display: grid;
  gap: var(--space-2);
}
.auth-switch {
  justify-self: center;
}
.auth-telegram {
  display: grid;
  gap: var(--space-2);
}
.auth-telegram h2 {
  margin: 0;
  font-size: 1.1rem;
}
.auth-telegram code,
.settings-telegram-code code {
  display: block;
  width: max-content;
  max-width: 100%;
  border: 1px solid rgba(76, 201, 240, .35);
  border-radius: var(--radius-sm);
  background: rgba(4, 12, 24, .5);
  color: var(--color-accent);
  font-weight: 800;
  padding: .45rem .6rem;
  overflow-x: auto;
}
.auth-telegram ul {
  margin: 0;
  padding-left: 1.15rem;
  color: var(--color-muted);
}
.layout { display: grid; height: 100vh; min-height: 100vh; overflow: hidden; }
.mobile-nav-toggle {
  position: fixed;
  top: max(.75rem, env(safe-area-inset-top));
  left: max(.75rem, env(safe-area-inset-left));
  z-index: 24;
  display: inline-grid;
  gap: .22rem;
  place-content: center;
  width: 2.55rem;
  height: 2.55rem;
  border: 1px solid rgba(76, 201, 240, .35);
  border-radius: var(--radius-sm);
  background: rgba(16, 26, 43, .94);
  box-shadow: var(--shadow-soft);
  cursor: pointer;
}
.mobile-nav-toggle span {
  display: block;
  width: 1.1rem;
  height: 2px;
  border-radius: 999px;
  background: var(--color-text);
}
.mobile-nav-overlay {
  position: fixed;
  inset: 0;
  z-index: 25;
  border: 0;
  background: rgba(3, 8, 18, .48);
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease;
}
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 30;
  display: grid;
  align-content: start;
  gap: var(--space-4);
  width: min(92vw, 340px);
  height: 100dvh;
  background: var(--color-surface);
  border-right: 1px solid var(--color-border);
  box-shadow: 24px 0 80px rgba(0, 0, 0, .42);
  overflow-y: auto;
  padding: max(var(--space-4), env(safe-area-inset-top)) var(--space-4) max(var(--space-4), env(safe-area-inset-bottom));
  transform: translateX(-104%);
  transition: transform 220ms ease, visibility 220ms ease;
  visibility: hidden;
}
.sidebar-settings {
  margin-top: auto;
}
.sidebar-settings__button {
  width: 100%;
  display: flex;
  align-items: center;
  gap: .55rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: rgba(4, 12, 24, .26);
  color: var(--color-text);
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  padding: .65rem .75rem;
  text-align: left;
}
.sidebar-settings__button:hover, .sidebar-settings__button:focus-visible {
  border-color: rgba(76, 201, 240, .45);
  background: rgba(76, 201, 240, .1);
}
.sidebar-settings__icon {
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}
.settings-form, .settings-location-colors, .settings-time-abstractions {
  display: grid;
  gap: .65rem;
  margin-top: .75rem;
}
.settings-time-abstractions {
  border-top: 1px solid var(--color-border);
  margin-top: var(--space-3);
  padding-top: var(--space-3);
}
.settings-modal-card {
  width: min(100%, 680px);
}
.settings-tabs {
  display: flex;
  gap: .45rem;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: var(--space-3);
  overflow-x: auto;
}
.settings-tab {
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--color-muted);
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  padding: .45rem .2rem .6rem;
  white-space: nowrap;
}
.settings-tab:hover,
.settings-tab:focus-visible,
.settings-tab.is-active {
  color: var(--color-text);
}
.settings-tab.is-active {
  border-bottom-color: var(--color-accent);
}
.settings-modal-card .settings-form {
  margin-top: 0;
}
.settings-tab-panel {
  display: grid;
  gap: .75rem;
}
.settings-checkbox {
  width: max-content;
  max-width: 100%;
  color: var(--color-text);
}
.settings-snooze-defaults {
  display: grid;
  gap: .55rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: rgba(7, 18, 34, .42);
  padding: var(--space-3);
}
.settings-snooze-defaults strong {
  color: var(--color-text);
}
.settings-snooze-defaults__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
}
.settings-account {
  display: grid;
  gap: .65rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: rgba(7, 18, 34, .42);
  padding: var(--space-3);
}
.settings-account strong {
  color: var(--color-text);
}
.settings-account p {
  margin: .2rem 0 0;
  color: var(--color-muted);
  font-size: .86rem;
}
.settings-telegram-code {
  display: grid;
  gap: .45rem;
}
.settings-color-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
}
.settings-color-row input[type="color"], .settings-location-form input[type="color"], .settings-location-rule input[type="color"] {
  min-height: 2.35rem;
  padding: .18rem;
}
.settings-location-colors__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--color-text);
  font-size: .86rem;
}
.settings-location-rules {
  display: grid;
  gap: .5rem;
}
.settings-time-abstractions__list {
  display: grid;
  gap: .65rem;
}
.settings-location-rule, .settings-location-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2.75rem auto;
  gap: .4rem;
  align-items: end;
}
.settings-location-rule {
  grid-template-columns: minmax(0, 1fr) 2.75rem auto auto;
}
.settings-time-abstraction {
  display: grid;
  gap: .55rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: rgba(4, 12, 24, .3);
  padding: .7rem;
}
.settings-time-abstraction.is-disabled {
  opacity: .64;
}
.settings-time-abstraction__head,
.settings-time-abstraction__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  flex-wrap: wrap;
}
.settings-time-abstraction__head span {
  color: var(--color-muted);
  font-size: .78rem;
}
.settings-time-abstraction__grid,
.settings-time-abstraction-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(6rem, .65fr) minmax(6rem, .65fr);
  gap: .5rem;
  align-items: end;
}
.settings-time-abstraction-form {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(6rem, .65fr) minmax(6rem, .65fr) auto;
}
.settings-empty, .settings-status {
  margin: 0;
  color: var(--color-muted);
  font-size: .8rem;
}
.settings-status--error {
  color: var(--color-danger);
}
.sidebar__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); }
.mobile-nav-close { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid var(--color-border); border-radius: 999px; background: rgba(4, 12, 24, .45); color: var(--color-muted); cursor: pointer; }
.mobile-nav-close:hover, .mobile-nav-close:focus-visible { color: var(--color-text); border-color: rgba(76, 201, 240, .5); }
body.is-nav-open .mobile-nav-toggle { opacity: 0; pointer-events: none; }
body.is-nav-open .mobile-nav-overlay { opacity: 1; pointer-events: auto; }
body.is-nav-open .sidebar { transform: translateX(0); visibility: visible; }
.main { width: min(100%, var(--max-content)); height: 100vh; margin: 0 auto; padding: var(--space-3); display: grid; gap: var(--space-3); overflow-y: auto; overscroll-behavior: contain; }
.card { background: linear-gradient(180deg, var(--color-surface), var(--color-surface-2)); border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); padding: var(--space-4); }
.brand__eyebrow { text-transform: uppercase; letter-spacing: .14em; color: var(--color-accent); font-size: .78rem; font-weight: 700; }
.nav { display: grid; gap: .45rem; }
.nav__item { text-align: left; border: 1px solid transparent; border-radius: var(--radius-sm); background: transparent; color: var(--color-muted); padding: .65rem .75rem; cursor: pointer; }
.nav__item:hover:not(:disabled), .nav__item.is-active { color: var(--color-text); border-color: rgba(76, 201, 240, .35); background: rgba(76, 201, 240, .1); }
.nav__item:disabled { cursor: not-allowed; opacity: .45; }
.journal-panel { display: grid; align-content: start; gap: var(--space-3); }
.journal-panel__head { display: flex; gap: var(--space-2); justify-content: space-between; align-items: center; flex-wrap: wrap; }
.journal-panel__head h3 { margin: 0; }
.journal-panel__controls { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.journal-toolbar { display: grid; grid-template-columns: minmax(13rem, 1fr) auto auto auto; gap: .65rem; align-items: center; border: 1px solid rgba(76, 201, 240, .18); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(76, 201, 240, .1), rgba(7, 18, 34, .48)); padding: .75rem; }
.journal-search { display: block; min-width: 0; }
.journal-search input { min-height: 2.55rem; }
.journal-filter { display: inline-flex; align-items: center; gap: .18rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .38); padding: .18rem; }
.journal-filter__button { border: 0; border-radius: calc(var(--radius-sm) - 2px); background: transparent; color: var(--color-muted); font: inherit; font-size: .84rem; font-weight: 800; padding: .48rem .68rem; cursor: pointer; }
.journal-filter__button:hover, .journal-filter__button:focus-visible, .journal-filter__button.is-active { background: rgba(76, 201, 240, .16); color: var(--color-text); }
.journal-toolbar__toggle { white-space: nowrap; }
.app-toggle { display: inline-flex; align-items: center; gap: .5rem; color: var(--color-muted); cursor: pointer; user-select: none; }
.app-toggle input { width: auto; margin: 0; padding: 0; border: 0; background: transparent; accent-color: var(--color-accent); }
.app-form { display: grid; gap: var(--space-2); margin: var(--space-3) 0; }
.app-form--modal { margin: 0; }
label { display: grid; gap: .35rem; font-size: .9rem; color: var(--color-muted); }
input, textarea, select { width: 100%; border-radius: var(--radius-sm); border: 1px solid var(--color-border); background: rgba(4, 12, 24, 0.5); color: var(--color-text); padding: .65rem .75rem; }
select { appearance: none; }
:root[data-theme="light"] input,
:root[data-theme="light"] textarea,
:root[data-theme="light"] select {
  background: rgba(255, 255, 255, .82);
}
:root[data-theme="light"] .journal-toolbar,
:root[data-theme="light"] .journal-empty,
:root[data-theme="light"] .journal-item {
  background: rgba(255, 255, 255, .76);
}
:root[data-theme="light"] .journal-filter {
  background: rgba(241, 245, 249, .72);
}
:root[data-theme="light"] .mobile-nav-toggle,
:root[data-theme="light"] .mobile-nav-close,
:root[data-theme="light"] .modal-close {
  background: rgba(255, 255, 255, .76);
}
.app-form__row { display: grid; grid-template-columns: 1fr; gap: var(--space-2); }
.btn-primary { border: 0; border-radius: var(--radius-sm); background: linear-gradient(135deg, var(--color-accent), #5aa9ff); color: #041122; font-weight: 700; padding: .7rem .9rem; cursor: pointer; }
.journal-add-entry-button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; white-space: nowrap; }
.journal-add-entry-button span { font-size: 1.2rem; line-height: 1; }
.journal-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }
.journal-empty { border: 1px dashed rgba(76, 201, 240, .28); border-radius: var(--radius-md); background: rgba(7, 18, 34, .38); color: var(--color-muted); padding: var(--space-4); text-align: center; }
.journal-item { position: relative; overflow: hidden; border: 1px solid rgba(76, 201, 240, .16); border-radius: var(--radius-md); padding: 0; background: linear-gradient(180deg, rgba(16, 26, 43, .9), rgba(7, 18, 34, .72)); box-shadow: 0 16px 40px rgba(0, 0, 0, .18); transition: border-color 160ms ease, background 160ms ease, transform 160ms ease; }
.journal-item::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--color-accent); opacity: .72; }
.journal-item:hover, .journal-item:focus-within { border-color: rgba(76, 201, 240, .38); background: linear-gradient(180deg, rgba(18, 31, 51, .96), rgba(7, 18, 34, .8)); }
.journal-card--note::before { background: #a78bfa; }
.journal-card--todo::before { background: #38bdf8; }
.journal-card--event::before { background: #5eead4; }
.journal-item--completed { opacity: .76; }
.journal-item--completed::before { background: rgba(148, 163, 184, .7); }
.journal-item__top { display: flex; align-items: flex-start; gap: .6rem; justify-content: space-between; }
.journal-item__summary { width: 100%; display: flex; align-items: baseline; gap: .65rem; border: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; padding: 0; text-align: left; }
.journal-item__summary:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 4px; border-radius: var(--radius-sm); }
.journal-card__summary { display: grid; grid-template-columns: 2.45rem minmax(0, 1fr); align-items: start; gap: .8rem; padding: .95rem; }
.journal-card__avatar { display: grid; place-items: center; width: 2.45rem; height: 2.45rem; border: 1px solid rgba(76, 201, 240, .28); border-radius: 999px; background: rgba(76, 201, 240, .12); color: var(--color-accent); font-weight: 900; line-height: 1; }
.journal-card--note .journal-card__avatar { border-color: rgba(167, 139, 250, .38); background: rgba(167, 139, 250, .12); color: #ddd6fe; }
.journal-card--event .journal-card__avatar { border-color: rgba(94, 234, 212, .34); background: rgba(94, 234, 212, .1); color: #99f6e4; }
.journal-card--completed .journal-card__avatar { border-color: rgba(148, 163, 184, .28); background: rgba(148, 163, 184, .1); color: var(--color-muted); }
.journal-card__content { display: grid; gap: .34rem; min-width: 0; }
.journal-card__meta-line { display: flex; align-items: center; flex-wrap: wrap; gap: .38rem; color: var(--color-muted); font-size: .78rem; }
.journal-card__kind { border: 1px solid rgba(76, 201, 240, .24); border-radius: 999px; background: rgba(76, 201, 240, .1); color: var(--color-accent); font-weight: 850; line-height: 1; padding: .18rem .46rem; }
.journal-card--note .journal-card__kind { border-color: rgba(167, 139, 250, .32); background: rgba(167, 139, 250, .1); color: #ddd6fe; }
.journal-card--event .journal-card__kind { border-color: rgba(94, 234, 212, .28); background: rgba(94, 234, 212, .1); color: #99f6e4; }
.journal-card__date { color: var(--color-muted); }
.journal-item__title-line { display: flex; align-items: baseline; gap: .65rem; flex: 1 1 auto; min-width: 0; flex-wrap: wrap; }
.journal-item__name { margin: 0; font-size: 1rem; font-weight: 800; }
.journal-card__title-line { justify-content: space-between; }
.journal-card__title { min-width: 0; font-size: 1.05rem; line-height: 1.3; }
.journal-countdown { margin-left: auto; color: var(--color-accent); font-size: .82rem; font-weight: 700; white-space: nowrap; }
.journal-item--completed .journal-item__name { text-decoration: line-through; color: var(--color-muted); }
.journal-item--completed .journal-countdown { color: var(--color-accent); opacity: .72; }
.journal-card__excerpt { color: var(--color-muted); display: -webkit-box; font-size: .9rem; line-height: 1.45; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.journal-snooze-pill { justify-self: start; border: 1px solid rgba(76, 201, 240, .26); border-radius: 999px; background: rgba(76, 201, 240, .1); color: var(--color-accent); font-size: .78rem; font-weight: 750; padding: .18rem .55rem; }
.journal-item__details { margin-top: .65rem; display: grid; gap: .55rem; }
.journal-card__details { margin-top: 0; border-top: 1px solid rgba(202, 216, 237, .1); padding: .85rem .95rem .95rem 4.2rem; }
.journal-item__details[hidden] { display: none; }
.journal-item__details p { margin: 0; color: var(--color-muted); white-space: pre-wrap; }
.journal-meta { margin-top: .55rem; display: flex; gap: .4rem; flex-wrap: wrap; }
.tag { font-size: .76rem; border: 1px solid var(--color-border); border-radius: 999px; padding: .18rem .55rem; color: var(--color-muted); }
.journal-tags { margin-top: .55rem; display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.journal-tag { position: relative; font-size: .76rem; border: 1px solid rgba(76, 201, 240, .35); border-radius: 999px; padding: .18rem .55rem; color: var(--color-text); background: rgba(76, 201, 240, .12); }
.journal-tag__remove { position: absolute; top: -.38rem; right: -.35rem; display: none; width: .95rem; height: .95rem; border: 1px solid rgba(202, 216, 237, .35); border-radius: 999px; background: var(--color-surface-2); color: var(--color-accent); font-size: .7rem; line-height: .8rem; padding: 0; cursor: pointer; }
.journal-tag:hover .journal-tag__remove, .journal-tag:focus-within .journal-tag__remove { display: grid; place-items: center; }
.journal-add-tag { border: 0; background: transparent; color: var(--color-accent); padding: .18rem 0; font: inherit; font-size: .82rem; font-style: italic; text-decoration: underline; cursor: pointer; }
.journal-add-tag-input { width: 9rem; max-width: 55vw; padding: .28rem .45rem; font-size: .82rem; }
.journal-actions { display: flex; gap: .4rem; }
.journal-snooze-split { display: inline-flex; align-items: stretch; }
.journal-snooze-split .btn-subtle { border-radius: 0; }
.journal-snooze-split__main { border-radius: var(--radius-sm) 0 0 var(--radius-sm) !important; }
.journal-snooze-split__custom { border-left: 0; border-radius: 0 var(--radius-sm) var(--radius-sm) 0 !important; }
.journal-snooze-status { display: flex; align-items: center; justify-content: space-between; gap: .75rem; border: 1px solid rgba(76, 201, 240, .2); border-radius: var(--radius-sm); background: rgba(76, 201, 240, .08); color: var(--color-muted); padding: .55rem .65rem; }
.journal-snooze-preview { margin: 0; color: var(--color-muted); min-height: 1.25rem; }
.journal-snooze-preview--error { color: #fecdd3; }
.btn-subtle { background: transparent; color: var(--color-muted); border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .35rem .5rem; cursor: pointer; }
.btn-danger { border-color: rgba(251,113,133,.45); color: #fecdd3; }
.app-states, .form-message { min-height: 1.2rem; color: var(--color-muted); font-size: .9rem; }
.section-loading {
  min-height: clamp(14rem, 36vh, 24rem);
  margin: var(--space-3) var(--space-4) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: linear-gradient(180deg, rgba(76, 201, 240, .08), rgba(7, 18, 34, .34));
  color: var(--color-muted);
  display: grid;
  place-items: center;
  gap: .75rem;
  align-content: center;
  text-align: center;
}
.section-loading__indicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
}
.section-loading__indicator span {
  width: .5rem;
  height: .5rem;
  border-radius: 999px;
  background: var(--color-accent);
  opacity: .38;
  animation: section-loading-pulse 1.2s ease-in-out infinite;
}
.section-loading__indicator span:nth-child(2) { animation-delay: 150ms; }
.section-loading__indicator span:nth-child(3) { animation-delay: 300ms; }
.section-loading__text {
  color: var(--color-text);
  font-size: .95rem;
  font-weight: 800;
}
@keyframes section-loading-pulse {
  0%, 80%, 100% { opacity: .32; transform: translateY(0); }
  40% { opacity: .95; transform: translateY(-.18rem); }
}
:root[data-theme="light"] .section-loading {
  background: linear-gradient(180deg, rgba(5, 118, 168, .08), rgba(255, 255, 255, .72));
}
.modal-backdrop[hidden] { display: none; }
.modal-backdrop { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; padding: var(--space-3); background: rgba(3, 8, 18, .74); backdrop-filter: blur(5px); }
.modal-card { width: min(100%, 620px); max-height: min(90vh, 760px); overflow-y: auto; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: linear-gradient(180deg, var(--color-surface), var(--color-surface-2)); box-shadow: 0 24px 80px rgba(0, 0, 0, .42); padding: var(--space-4); }
.modal-card__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-3); }
.modal-card__head h3 { margin: 0; }
.segmented-control {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .18rem;
  margin: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: rgba(4, 12, 24, .38);
  padding: .18rem;
}
.segmented-control legend {
  flex: 1 1 100%;
  color: var(--color-muted);
  font-size: .78rem;
  font-weight: 800;
  padding: 0 .3rem .18rem;
}
.segmented-control label {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.2rem;
  color: var(--color-muted);
  cursor: pointer;
  font-size: .84rem;
  font-weight: 800;
}
.segmented-control input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.segmented-control span {
  display: inline-flex;
  justify-content: center;
  width: 100%;
  border-radius: calc(var(--radius-sm) - 2px);
  padding: .45rem .68rem;
}
.segmented-control input:focus-visible + span {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}
.segmented-control input:checked + span {
  background: rgba(76, 201, 240, .16);
  color: var(--color-text);
}
.segmented-control label.is-disabled {
  cursor: not-allowed;
  opacity: .48;
}
.modal-close { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid var(--color-border); border-radius: 999px; background: rgba(4, 12, 24, .45); color: var(--color-muted); cursor: pointer; }
.modal-close:hover, .modal-close:focus-visible { color: var(--color-text); border-color: rgba(76, 201, 240, .5); }
.modal-actions { display: flex; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.has-open-modal { overflow: hidden; }
body.is-calendar-view .main { padding-top: 0; overflow: hidden; }
.calendar-panel { min-height: 0; height: 100%; padding: 0; overflow-y: auto; overscroll-behavior: contain; }
body.is-calendar-view .calendar-panel { border-top-left-radius: 0; border-top-right-radius: 0; }
.calendar-header, .calendar-panel__sticky { position: sticky; top: 0; z-index: 10; border-bottom: 1px solid var(--color-border); background: linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 98%, transparent), color-mix(in srgb, var(--color-surface) 92%, transparent)); backdrop-filter: blur(8px); }
.calendar-panel__head, .calendar-header__top { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding: var(--space-4) var(--space-4) .35rem; }
.calendar-panel__head h3 { margin: 0; }
.calendar-current-month { color: var(--color-accent); font-weight: 700; min-width: max-content; }
.calendar-weekdays-sticky, .calendar-header__weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .6rem; padding: .25rem var(--space-4) .75rem; }
.calendar-panel .app-states { padding: 0 var(--space-4); }
.calendar-container { display: grid; gap: var(--space-4); padding: 0 var(--space-4) var(--space-4); }
.calendar-month { display: grid; gap: var(--space-2); scroll-margin-top: 6rem; }
.calendar-month__title { margin: 0; color: var(--color-text); font-size: 1rem; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .35rem; }
.calendar-weekday { color: var(--color-muted); font-size: .74rem; font-weight: 700; text-align: center; text-transform: uppercase; }
.calendar-day { position: relative; isolation: isolate; min-height: 9.5rem; display: grid; align-content: start; gap: .35rem; text-align: left; border: 2px solid var(--calendar-day-border, var(--color-border)); border-radius: var(--radius-md); background: var(--calendar-day-bg, var(--calendar-normal-day-bg, rgba(7, 18, 34, .55))); background-clip: padding-box; color: var(--calendar-day-foreground, var(--color-text)); padding: .55rem; cursor: default; overflow: hidden; }
.calendar-day--empty { min-height: 0; border: 0; background: transparent; }
.calendar-day--today { outline: 2px solid var(--color-accent); outline-offset: -5px; }
.calendar-day--has-work { border-color: var(--calendar-day-border, var(--color-border)); }
.calendar-day--today.calendar-day--has-work { outline: 2px solid var(--color-accent); outline-offset: -5px; }
.calendar-day--past::after { content: ""; position: absolute; inset: 0; z-index: 0; border-radius: calc(var(--radius-md) - 2px); background: rgba(3, 8, 18, .44); pointer-events: none; }
:root[data-theme="light"] .calendar-day--past::after { background: rgba(100, 116, 139, .34); }
.calendar-day--drop-target { outline: 2px solid var(--color-accent-2); outline-offset: -5px; }
.calendar-day--has-finance { padding-bottom: 2.35rem; }
.calendar-day__top { display: grid; grid-template-columns: max-content minmax(0, 1fr) minmax(11ch, max-content); align-items: center; column-gap: .45rem; min-width: 0; }
.calendar-day__number { flex: 0 0 auto; color: var(--calendar-day-accent, var(--color-muted)); font-size: .8rem; font-weight: 800; }
.calendar-day__top, .calendar-day__body { position: relative; z-index: 1; }
.calendar-day__body { display: grid; gap: .28rem; min-width: 0; }
.calendar-day__location { grid-column: 2 / 3; min-width: 0; max-width: 100%; border: 1px solid var(--calendar-day-border, var(--color-border)); border-radius: 999px; color: var(--calendar-day-accent, var(--color-muted)); background: rgba(3, 8, 18, .28); padding: .12rem .45rem; font-size: .72rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.calendar-day--inherited-location .calendar-day__location { opacity: .78; border-style: dashed; }
.day-card-finance-balance { grid-column: 3 / 4; justify-self: end; min-width: 11ch; color: var(--color-accent-2); font-size: .72rem; font-weight: 800; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.day-card-finance-balance--savings { grid-column: 2 / 3; justify-self: right; min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; color: #86efac; text-align: center; }
.calendar-line { display: block; color: var(--calendar-day-foreground, rgba(243, 247, 253, .9)); font-size: .76rem; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-line--draggable { cursor: grab; touch-action: manipulation; }
.calendar-line--draggable.calendar-line--is-dragging { cursor: grabbing; opacity: .68; }
.calendar-day__untimed { display: grid; gap: .18rem; min-width: 0; }
.calendar-day__untimed .calendar-line { opacity: .86; }
.calendar-day__timeline { position: relative; height: var(--calendar-day-timeline-height, 104px); min-height: 0; overflow: hidden; overscroll-behavior: none; touch-action: manipulation; pointer-events: none; border-radius: calc(var(--radius-sm) + 1px); }
.calendar-day__timeline::before,
.calendar-day__timeline::after { content: ""; position: absolute; z-index: 3; left: 0; right: 0; height: 1.1rem; opacity: 0; pointer-events: none; transition: opacity .15s ease; }
.calendar-day__timeline::before { top: 0; background: linear-gradient(180deg, rgba(3, 8, 18, .7), rgba(3, 8, 18, 0)); }
.calendar-day__timeline::after { bottom: 0; background: linear-gradient(0deg, rgba(3, 8, 18, .7), rgba(3, 8, 18, 0)); }
:root[data-theme="light"] .calendar-day__timeline::before { background: linear-gradient(180deg, rgba(241, 245, 249, .88), rgba(241, 245, 249, 0)); }
:root[data-theme="light"] .calendar-day__timeline::after { background: linear-gradient(0deg, rgba(241, 245, 249, .88), rgba(241, 245, 249, 0)); }
.calendar-day__timeline--overflow-above::before,
.calendar-day__timeline--overflow-below::after { opacity: 1; }
.calendar-day__timeline-track { position: absolute; z-index: 1; top: 0; left: 0; right: 0; min-height: 100%; will-change: transform; }
.calendar-day__timeline .calendar-line--draggable { pointer-events: auto; }
.calendar-line--timeline { position: absolute; left: 0; right: 0; display: flex; align-items: center; border-left: 2px solid color-mix(in srgb, currentColor 52%, transparent); border-radius: var(--radius-sm); background: rgba(3, 8, 18, .18); padding: .08rem .25rem .08rem .35rem; }
.calendar-line--timeline.calendar-line--timed-range { display: grid; }
.calendar-line--timed-range { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; column-gap: .42rem; white-space: normal; }
.calendar-line__times { display: grid; gap: .03rem; font-variant-numeric: tabular-nums; font-weight: 400; line-height: 1; opacity: .92; }
.calendar-line__time { display: block; white-space: nowrap; }
.calendar-line__label { min-width: 0; align-self: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-line--journal,
.calendar-line--note { color: #dbeafe; }
.calendar-line--work { color: #bbf7d0; }
.calendar-line--workout { color: #fde68a; }
.calendar-line--completed { color: var(--color-muted); text-decoration: line-through; }
.calendar-line--lodging { color: #fef3c7; }
.calendar-line--transport { color: #bfdbfe; }
.calendar-line--more { color: var(--color-muted); font-style: italic; }
:root[data-theme="light"] .calendar-line--journal,
:root[data-theme="light"] .calendar-line--note { color: #1e3a8a; }
:root[data-theme="light"] .calendar-line--work { color: #166534; }
:root[data-theme="light"] .calendar-line--workout { color: #92400e; }
:root[data-theme="light"] .calendar-line--lodging { color: #854d0e; }
:root[data-theme="light"] .calendar-line--transport { color: #1d4ed8; }
.calendar-day__finance { position: absolute; z-index: 1; left: .55rem; right: .55rem; bottom: .45rem; display: flex; align-items: center; gap: .35rem; pointer-events: none; }
.calendar-day__finance-amount { flex: 0 0 auto; max-width: calc(50% - .2rem); border: 1px solid rgba(202, 216, 237, .16); border-radius: 999px; background: rgba(3, 8, 18, .76); box-shadow: 0 1px 6px rgba(0, 0, 0, .2); font-size: .72rem; font-weight: 850; font-variant-numeric: tabular-nums; line-height: 1; padding: .2rem .45rem; text-shadow: 0 1px 2px rgba(0, 0, 0, .55); white-space: nowrap; }
.calendar-day__finance--debits { color: #fca5a5; border-color: rgba(248, 113, 113, .38); }
.calendar-day__finance--credits { margin-left: auto; color: #86efac; border-color: rgba(74, 222, 128, .4); }
.calendar-day-modal-card { width: min(100%, 760px); }
.calendar-day-modal-body { display: grid; gap: var(--space-3); }
.calendar-day-summary { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.calendar-location-button { border: 0; background: transparent; color: var(--color-text); cursor: pointer; font: inherit; font-size: 1.25rem; font-weight: 800; padding: 0; text-align: left; }
.calendar-location-button:hover, .calendar-location-button:focus-visible { color: var(--color-accent); text-decoration: underline; }
.calendar-location-button--default, .calendar-location-button--inherited { color: var(--color-muted); }
.calendar-location-hint { border: 1px solid var(--color-border); border-radius: 999px; color: var(--color-muted); font-size: .72rem; padding: .08rem .45rem; }
.calendar-detail-section { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(7, 18, 34, .42); padding: var(--space-3); }
.calendar-detail-section--future { opacity: .72; }
.calendar-detail-section__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: .65rem; }
.calendar-detail-section--collapsible.is-collapsed .calendar-detail-section__head { margin-bottom: 0; }
.calendar-detail-section__head h4 { margin: 0; font-size: .95rem; }
.calendar-detail-action { border: 0; background: transparent; color: var(--color-accent); padding: .15rem 0; font: inherit; font-size: .82rem; font-style: italic; text-decoration: underline; cursor: pointer; }
.calendar-detail-toggle { width: 100%; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: .55rem; border: 0; background: transparent; color: var(--color-text); cursor: pointer; font: inherit; padding: 0; text-align: left; }
.calendar-detail-toggle__meta { color: var(--color-muted); font-size: .82rem; }
.calendar-detail-toggle__icon { color: var(--color-accent); font-size: .82rem; transition: transform 180ms ease; }
.calendar-detail-section.is-collapsed .calendar-detail-toggle__icon { transform: rotate(-90deg); }
.calendar-detail-empty, .calendar-detail-hint { margin: 0; color: var(--color-muted); font-size: .84rem; }
.calendar-detail-location, .calendar-detail-note { margin: 0; white-space: pre-wrap; }
.calendar-detail-location--default { color: var(--color-muted); }
.calendar-detail-list { margin: 0; padding-left: 1.1rem; display: grid; gap: .35rem; color: rgba(243, 247, 253, .92); }
.calendar-detail-list__item--journal,
.calendar-detail-list__item--note { color: #dbeafe; }
.calendar-detail-list__item--work { color: #bbf7d0; }
.calendar-detail-list__item--workout { color: #fde68a; }
.calendar-detail-list__item--completed { color: var(--color-muted); text-decoration: line-through; }
.calendar-detail-list__item--journal { display: flex; align-items: center; gap: .45rem; }
.calendar-todo-complete { border: 1px solid var(--color-border); background: rgba(148, 163, 184, .08); color: var(--color-muted); border-radius: 999px; width: 1.35rem; height: 1.35rem; display: inline-grid; place-items: center; padding: 0; font: inherit; font-size: .78rem; line-height: 1; cursor: pointer; flex: 0 0 auto; }
.calendar-todo-complete:hover, .calendar-todo-complete:focus-visible { color: var(--color-accent); border-color: var(--color-accent); background: rgba(96, 165, 250, .12); }
.calendar-todo-complete:disabled { opacity: .55; cursor: wait; }
.calendar-detail-empty--error { color: #fca5a5; }
.calendar-detail-section--finance .calendar-detail-section__body { display: grid; gap: .7rem; }
.day-finance-summary { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .38); padding: .75rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2); align-items: end; }
.day-finance-balance { display: grid; gap: .15rem; min-width: 0; }
.day-finance-balance span, .day-finance-balance small, .day-finance-entry span, .day-finance-account small { color: var(--color-muted); font-size: .82rem; }
.day-finance-balance strong { color: var(--color-text); font-size: 1.35rem; font-variant-numeric: tabular-nums; line-height: 1.1; }
.day-finance-totals { display: grid; gap: .25rem; justify-items: end; font-size: .84rem; }
.day-finance-accounts, .day-finance-entries { display: grid; gap: .48rem; }
.day-finance-account, .day-finance-entry { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .3); padding: .58rem .65rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2); align-items: center; }
.day-finance-account { grid-template-columns: minmax(0, 1fr) auto auto; }
.day-finance-account span, .day-finance-entry strong { color: var(--color-text); font-weight: 800; min-width: 0; overflow-wrap: anywhere; }
.day-finance-account strong, .day-finance-amount { font-variant-numeric: tabular-nums; white-space: nowrap; }
.day-finance-entries h5 { margin: .2rem 0 0; color: var(--color-muted); font-size: .74rem; letter-spacing: .04em; text-transform: uppercase; }
.day-finance-entry > div { display: grid; gap: .12rem; min-width: 0; }
.day-finance-entry--scheduled { border-style: dashed; }
.day-finance-amount { font-weight: 850; }
.day-finance-amount--positive { color: #86efac !important; }
.day-finance-amount--negative { color: #fca5a5 !important; }
.day-finance-amount--neutral { color: var(--color-muted) !important; }
.calendar-travel-subsection { display: grid; gap: .5rem; padding-top: var(--space-2); }
.calendar-travel-subsection + .calendar-travel-subsection { border-top: 1px solid var(--color-border); margin-top: var(--space-2); }
.calendar-travel-subsection__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.calendar-travel-subsection__head h5 { margin: 0; color: var(--color-text); font-size: .86rem; }
.calendar-inline-form { display: grid; gap: var(--space-2); margin-top: var(--space-2); border-top: 1px solid var(--color-border); padding-top: var(--space-2); }
.calendar-inline-form__actions { display: flex; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }

.work-panel { display: grid; gap: var(--space-3); }
.work-panel__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; }
.work-panel__head h3 { margin: 0; }
.work-panel__subtitle { margin: .25rem 0 0; color: var(--color-muted); font-size: .9rem; }
.work-panel__actions { display: flex; align-items: end; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.work-range { display: grid; grid-template-columns: repeat(3, minmax(0, auto)); align-items: end; gap: var(--space-2); }
.work-add-shift-button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; white-space: nowrap; }
.work-add-shift-button span { font-size: 1.2rem; line-height: 1; }
.work-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
.work-card { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(7, 18, 34, .48); padding: var(--space-3); display: grid; gap: var(--space-3); }
.work-card--wide { grid-column: 1 / -1; }
.work-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); }
.work-card__head h4 { margin: 0; font-size: .98rem; }
.work-form { display: grid; gap: var(--space-2); }
.work-form--modal { gap: var(--space-3); }
.work-form__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.work-form__head strong { color: var(--color-text); }
.work-employer-list, .work-shift-list { display: grid; gap: .65rem; }
.work-employer, .work-shift { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .38); padding: .72rem; display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.work-shift.finance-recurring-item { display: block; }
.work-employer strong, .work-shift strong { display: block; color: var(--color-text); }
.work-employer span, .work-shift span { color: var(--color-muted); font-size: .82rem; }
.work-employer__actions, .work-shift__actions { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; flex-wrap: wrap; text-align: right; }
.work-shift__main { display: grid; gap: .2rem; min-width: 0; }
.work-shift__meta { color: var(--color-muted); font-size: .82rem; }
.work-weekdays-field { display: grid; gap: .45rem; color: var(--color-muted); font-size: .9rem; }
.work-weekdays { display: flex; gap: .45rem; flex-wrap: wrap; }
.work-weekday { display: inline-flex; align-items: center; gap: .35rem; border: 1px solid var(--color-border); border-radius: 999px; padding: .25rem .55rem; background: rgba(4, 12, 24, .38); color: var(--color-muted); cursor: pointer; user-select: none; }
.work-weekday.is-selected { border-color: rgba(76, 201, 240, .65); background: rgba(76, 201, 240, .16); color: var(--color-text); }
.work-weekday input { width: auto; margin: 0; padding: 0; border: 0; background: transparent; accent-color: var(--color-accent); }
.work-occurrences { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: var(--space-2); }
.work-occurrence { border: 1px solid var(--color-border); border-radius: 999px; padding: .2rem .55rem; color: var(--color-muted); font-size: .82rem; }
.work-occurrence input { width: auto; margin: 0 .3rem 0 0; padding: 0; border: 0; background: transparent; accent-color: var(--color-accent); }
.work-empty { margin: 0; color: var(--color-muted); font-size: .86rem; }

.health-panel { display: grid; gap: var(--space-3); }
.health-panel__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; }
.health-panel__head h3 { margin: 0; }
.health-panel__subtitle { margin: .25rem 0 0; color: var(--color-muted); font-size: .9rem; }
.health-tabs { display: flex; gap: .45rem; border-bottom: 1px solid var(--color-border); overflow-x: auto; }
.health-tab { border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--color-muted); cursor: pointer; font: inherit; font-weight: 800; padding: .45rem .2rem .6rem; white-space: nowrap; }
.health-tab:hover, .health-tab:focus-visible, .health-tab.is-active { color: var(--color-text); }
.health-tab.is-active { border-bottom-color: var(--color-accent); }
.health-tab-panel { display: grid; gap: var(--space-3); }
.health-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.health-card { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(7, 18, 34, .48); padding: var(--space-3); display: grid; gap: var(--space-3); align-content: start; }
.health-card--wide { grid-column: 1 / -1; }
.health-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); }
.health-card__head h4 { margin: 0; font-size: .98rem; }
.fitness-form { display: grid; gap: var(--space-3); }
.fitness-form__actions, .fitness-builder-actions { display: flex; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.fitness-builder-actions {
  position: sticky;
  top: var(--space-2);
  z-index: 6;
  justify-content: flex-start;
  border-bottom: 1px solid var(--color-border);
  background: linear-gradient(180deg, var(--color-surface), var(--color-surface-2));
  padding: .35rem 0 .45rem;
}
.fitness-block-list, .fitness-item-list, .fitness-workout-list, .fitness-scheduled-list { display: grid; gap: .75rem; }
.fitness-workout-item, .fitness-scheduled-item, .fitness-builder-section { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .38); padding: .72rem; }
.fitness-builder-section { display: grid; gap: .65rem; background: rgba(7, 18, 34, .42); }
.fitness-builder-section--singles { padding-top: .6rem; padding-bottom: .4rem; }
.fitness-builder-section__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.fitness-builder-section__title { display: grid; gap: .12rem; min-width: 0; }
.fitness-builder-section__controls { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.fitness-builder-section__title span, .fitness-builder-section__head > strong { color: var(--color-muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; }
.fitness-builder-section__title strong, .fitness-round__head strong { color: var(--color-text); }
.fitness-edit-notice { margin: 0; color: var(--color-muted); font-size: .84rem; }
.fitness-builder-list-sets { display: flex; align-items: center; gap: .45rem; color: var(--color-muted); font-size: .82rem; font-weight: 800; }
.fitness-builder-list-sets input { width: 4.5rem; }
.fitness-builder-list, .fitness-block-fields, .fitness-rounds, .fitness-round { display: grid; gap: .5rem; }
.fitness-item-row { display: grid; gap: .4rem; border-top: 1px solid rgba(148, 163, 184, .18); padding-top: .55rem; }
.fitness-builder-list .fitness-item-row:first-child, .fitness-item-list .fitness-item-row:first-child { border-top: 0; padding-top: 0; }
.fitness-item-row__main { display: flex; align-items: end; gap: var(--space-2); flex-wrap: wrap; }
.fitness-item-row__main label { flex: 0 1 9rem; }
.fitness-item-row__main label:first-child { flex-basis: 13rem; }
.fitness-config-button { flex: 0 0 auto; }
.fitness-builder-row__actions { display: flex; align-items: center; gap: .35rem; margin-left: auto; }
.fitness-builder-row__actions button { min-width: 2.15rem; padding-left: .55rem; padding-right: .55rem; }
.fitness-builder-row--include { border-top: 0; padding-top: 0; }
.fitness-builder-row__main { display: flex; align-items: end; gap: var(--space-2); flex-wrap: wrap; }
.fitness-builder-row__main label { flex: 1 1 13rem; }
.fitness-sets-field input { max-width: 7rem; }
.fitness-item-row__error { margin: -.25rem 0 0; color: var(--color-danger); font-size: .8rem; }
.fitness-empty-hint { margin: 0; color: var(--color-muted); font-size: .86rem; }
.fitness-config-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); }
.fitness-config-defaults { display: grid; gap: var(--space-2); }
.fitness-form--modal { gap: var(--space-3); }
.fitness-preview { display: grid; gap: .65rem; }
.fitness-preview__title { color: var(--color-text); }
.fitness-preview__blocks, .fitness-preview__blocks ul, .fitness-preview-list { margin: 0; padding-left: 1.25rem; }
.fitness-preview__blocks { display: grid; gap: .65rem; color: var(--color-muted); font-size: .86rem; }
.fitness-preview__blocks strong { color: var(--color-text); }
.fitness-preview-list { display: grid; gap: .25rem; margin-top: .35rem; }
.fitness-preview--nested .fitness-preview__blocks { gap: .35rem; }
.fitness-preview__included, .fitness-included-preview { margin-top: .5rem; }
.fitness-preview__included { border-left: 1px solid var(--color-border); padding-left: .75rem; }
.fitness-included-preview { display: grid; gap: .5rem; }
.fitness-preview__round { display: grid; gap: .25rem; margin-top: .45rem; }
.fitness-preview__round span { color: var(--color-text); font-weight: 800; font-size: .8rem; }
.fitness-workout-card { display: grid; gap: .55rem; }
.fitness-workout-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.fitness-workout-card__title { display: grid; gap: .2rem; min-width: 0; }
.fitness-workout-card__actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.fitness-workout-card__body { border-top: 1px solid rgba(148, 163, 184, .18); padding-top: .55rem; }
.fitness-workout-card strong { color: var(--color-text); }
.fitness-workout-card span, .fitness-workout-card__meta, .fitness-scheduled-item__meta { color: var(--color-muted); font-size: .82rem; }
.fitness-scheduled-item { display: grid; gap: .55rem; }
.fitness-scheduled-item__duration { color: var(--color-muted); font-size: .82rem; font-weight: 800; white-space: nowrap; }
.fitness-delete-workout-body { display: grid; gap: var(--space-2); color: var(--color-muted); }
.fitness-delete-workout-body p { margin: 0; }
.fitness-delete-workout-body ul { margin: 0; padding-left: 1.25rem; }
.fitness-delete-workout-actions { display: grid; gap: var(--space-2); margin-top: var(--space-3); }
.fitness-delete-workout-actions button { display: grid; gap: .15rem; justify-items: start; text-align: left; }
.fitness-delete-workout-actions span { color: var(--color-muted); font-size: .78rem; font-weight: 700; }

.health-card__subtitle { margin: .2rem 0 0; color: var(--color-muted); font-size: .84rem; }
.nutrition-grid { align-items: start; }
.nutrition-card__head { align-items: flex-start; }
.nutrition-date-controls { display: flex; align-items: end; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.nutrition-date-controls input { min-width: 9.5rem; }
.button { border-radius: var(--radius-sm); font: inherit; font-weight: 800; padding: .62rem .82rem; cursor: pointer; }
.button:disabled { cursor: not-allowed; opacity: .55; }
.button-primary { border: 0; background: linear-gradient(135deg, var(--color-accent), #5aa9ff); color: #041122; }
.button-secondary, .button-ghost { border: 1px solid var(--color-border); background: transparent; color: var(--color-muted); }
.button-secondary:hover, .button-secondary:focus-visible, .button-ghost:hover, .button-ghost:focus-visible { border-color: rgba(76, 201, 240, .45); color: var(--color-text); }
.button-danger { border: 1px solid rgba(251,113,133,.45); background: transparent; color: #fecdd3; }
.nutrition-totals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); }
.nutrition-total { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .35); padding: .75rem; display: grid; gap: .2rem; }
.nutrition-total span { color: var(--color-muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.nutrition-total strong { color: var(--color-text); font-size: 1.25rem; }
.nutrition-form { display: grid; gap: var(--space-2); }
.nutrition-form .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }
.nutrition-form label, .nutrition-search { display: grid; gap: .35rem; color: var(--color-muted); font-size: .82rem; font-weight: 800; }
.nutrition-form input, .nutrition-form select, .nutrition-form textarea, .nutrition-date-controls input, .nutrition-search input { width: 100%; }
.nutrition-form textarea { resize: vertical; }
.nutrition-form .form-actions { display: flex; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.nutrition-list { display: grid; gap: .65rem; }
.nutrition-meal-group { display: grid; gap: .5rem; }
.nutrition-meal-group h5 { margin: 0; color: var(--color-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.nutrition-item, .nutrition-plan { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .38); padding: .72rem; }
.nutrition-item { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.nutrition-item > div, .nutrition-plan__main > div:first-child { display: grid; gap: .18rem; min-width: 0; }
.nutrition-item strong, .nutrition-plan strong { color: var(--color-text); }
.nutrition-item span, .nutrition-plan span { color: var(--color-muted); font-size: .82rem; }
.nutrition-item small, .nutrition-plan small { color: var(--color-accent); font-size: .78rem; font-weight: 800; }
.nutrition-item p, .nutrition-plan p { margin: .2rem 0 0; color: var(--color-muted); font-size: .84rem; }
.nutrition-plan { display: grid; gap: .55rem; }
.nutrition-plan.is-eaten { border-color: rgba(134, 239, 172, .35); }
.nutrition-plan.is-skipped { opacity: .72; }
.nutrition-plan__main { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.nutrition-plan__actions { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; flex-wrap: wrap; }
.nutrition-plan__items { margin: 0; padding-left: 1.1rem; color: var(--color-muted); font-size: .84rem; }

.my-files-panel { display: grid; gap: var(--space-3); }
.my-files-panel__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; }
.my-files-panel__head h3 { margin: 0; }
.my-files-panel__subtitle, .my-files-meta { margin: .25rem 0 0; color: var(--color-muted); font-size: .9rem; }
.my-files-panel__actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.my-files-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.my-files-card { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(7, 18, 34, .48); padding: var(--space-3); display: grid; gap: var(--space-3); }
.my-files-card--wide { grid-column: 1 / -1; }
.my-files-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); }
.my-files-card__head h4 { margin: 0; font-size: .98rem; }
.my-files-form { display: grid; gap: var(--space-2); }
.my-files-file-picker { position: relative; display: grid; gap: .2rem; border: 1px dashed rgba(76, 201, 240, .4); border-radius: var(--radius-md); background: rgba(4, 12, 24, .34); padding: var(--space-3); cursor: pointer; }
.my-files-file-picker span:first-child { color: var(--color-text); font-weight: 800; }
.my-files-file-picker span:last-child { color: var(--color-muted); font-size: .86rem; }
.my-files-file-picker input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.my-files-list { display: grid; gap: .65rem; }
.my-file-item { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .38); padding: .72rem; display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.my-file-item__details { display: grid; gap: .18rem; min-width: 0; }
.my-file-item__name { min-width: 0; color: var(--color-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.my-file-item__meta { color: var(--color-muted); font-size: .82rem; }
.my-file-item__actions { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; flex-wrap: wrap; text-align: right; }
.my-files-status--success { color: #86efac; }
.my-files-status--error { color: #fca5a5; }

.finance-panel { display: grid; gap: var(--space-3); }
.finance-panel__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; }
.finance-panel__head h3 { margin: 0; }
.finance-panel__subtitle { margin: .25rem 0 0; color: var(--color-muted); font-size: .9rem; }
.finance-panel__actions { display: flex; align-items: end; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.finance-range { display: grid; grid-template-columns: repeat(3, minmax(0, auto)); align-items: end; gap: var(--space-2); }
.finance-add-entry-button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; white-space: nowrap; }
.finance-add-entry-button span { font-size: 1.2rem; line-height: 1; }
.finance-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
.finance-card { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(7, 18, 34, .48); padding: var(--space-3); display: grid; gap: var(--space-3); }
.finance-card--wide { grid-column: 1 / -1; }
.finance-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2); }
.finance-card__head h4 { margin: 0; font-size: .98rem; }
.finance-sort-control { display: inline-flex; align-items: center; gap: .45rem; color: var(--color-muted); font-size: .84rem; }
.finance-sort-control select { min-width: 8.5rem; }
.finance-card__meta, .finance-empty { color: var(--color-muted); font-size: .86rem; }
.finance-overview-card { gap: var(--space-2); }
.finance-overview-balance { display: grid; gap: .28rem; min-width: min(100%, 18rem); color: var(--color-text); font-size: 1rem; font-variant-numeric: tabular-nums; line-height: 1; white-space: nowrap; }
.finance-overview-balance__line { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; color: var(--color-muted); font-size: .82rem; font-weight: 800; }
.finance-overview-balance__line strong { color: var(--color-text); font-size: clamp(1.15rem, 3vw, 1.55rem); }
.finance-overview-balance__line--savings strong { color: #86efac; }
.finance-overview-balance__line--total { border-top: 1px solid var(--color-border); padding-top: .28rem; }
.finance-overview-balance__line--total strong { font-size: 1rem; color: var(--color-muted); }
.finance-balance-chart { min-height: 8rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .32); padding: .45rem; overflow: hidden; }
.finance-balance-chart__svg { display: block; width: 100%; height: 8rem; }
.finance-balance-chart__grid { stroke: rgba(202, 216, 237, .18); stroke-width: 1; vector-effect: non-scaling-stroke; }
.finance-balance-chart__line { fill: none; stroke: var(--color-accent); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.finance-balance-chart__line--savings { stroke: #86efac; }
.finance-balance-chart__point { fill: var(--color-accent-2); stroke: rgba(4, 12, 24, .9); stroke-width: 2; vector-effect: non-scaling-stroke; }
.finance-balance-chart__label { fill: var(--color-muted); font-size: .62rem; }
.finance-balance-chart__label--end { text-anchor: end; }
.finance-form { display: grid; gap: var(--space-2); }
.finance-form--modal { gap: var(--space-3); }
.finance-checkbox { align-self: end; min-height: 2.55rem; }
.finance-account-list, .finance-journal-list, .finance-recurring-list { display: grid; gap: .65rem; }
.finance-account, .finance-row { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .38); padding: .72rem; display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-2); }
.finance-account--default { border-color: rgba(76, 201, 240, .42); }
.finance-account strong, .finance-row strong { display: block; color: var(--color-text); }
.finance-account span, .finance-row span { color: var(--color-muted); font-size: .82rem; }
.finance-account__actions, .finance-row__meta { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; flex-wrap: wrap; text-align: right; }
.finance-row__main { display: grid; gap: .15rem; min-width: 0; }
.finance-edit-form { grid-column: 1 / -1; width: 100%; border-top: 1px solid var(--color-border); margin-top: .2rem; padding-top: .7rem; display: grid; gap: var(--space-2); }
.finance-row__date { color: var(--color-accent); font-weight: 800; }
.finance-row--recurring { border-style: dashed; }
.finance-tags { display: flex; gap: .35rem; flex-wrap: wrap; align-items: center; }
.finance-tag { border: 1px solid rgba(76, 201, 240, .35); border-radius: 999px; color: var(--color-text) !important; background: rgba(76, 201, 240, .12); padding: .14rem .48rem; font-size: .74rem !important; }
.finance-amount { font-weight: 800; }
.finance-amount--debit { color: var(--color-accent-2) !important; }
.finance-amount--credit { color: #86efac !important; }
.finance-amount--neutral { color: var(--color-muted) !important; }
.finance-pill { border: 1px solid rgba(76, 201, 240, .35); border-radius: 999px; color: var(--color-accent) !important; padding: .13rem .48rem; font-size: .72rem !important; font-weight: 800; text-transform: uppercase; }
.finance-repeat-fields { display: grid; gap: var(--space-2); border-top: 1px solid var(--color-border); padding-top: var(--space-2); }
.finance-monthly-days { display: grid; gap: .55rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .32); padding: var(--space-2); }
.finance-monthly-days__head { display: flex; justify-content: space-between; gap: var(--space-2); color: var(--color-muted); font-size: .86rem; }
.finance-monthly-days__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .35rem; }
.finance-monthly-day { min-height: 2rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(7, 18, 34, .62); color: var(--color-muted); cursor: pointer; font-weight: 700; }
.finance-monthly-day:hover, .finance-monthly-day:focus-visible { border-color: rgba(76, 201, 240, .45); color: var(--color-text); }
.finance-monthly-day.is-selected { border-color: rgba(76, 201, 240, .75); background: rgba(76, 201, 240, .2); color: var(--color-text); }
.finance-add-account { border-top: 1px solid var(--color-border); padding-top: var(--space-2); }
.finance-add-account summary { width: max-content; color: var(--color-accent); cursor: pointer; font-size: .9rem; font-style: italic; text-decoration: underline; }
.finance-add-account[open] summary { margin-bottom: var(--space-2); }
.finance-recurring-item { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .38); padding: .72rem; }
.finance-recurring-item summary { display: flex; justify-content: space-between; gap: var(--space-2); cursor: pointer; color: var(--color-text); }
.finance-occurrences { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: var(--space-2); }
.finance-occurrence { border: 1px solid var(--color-border); border-radius: 999px; padding: .2rem .55rem; font-size: .82rem; }
.finance-recurring-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: var(--space-2); }

.logs-page {
  min-height: 100%;
  overflow-y: auto;
}
.platform-logs-shell {
  width: min(100%, 1180px);
  margin: 0 auto;
  padding: var(--space-4);
  display: grid;
  gap: var(--space-3);
}
.platform-logs-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: rgba(7, 18, 34, .58);
  padding: var(--space-3);
}
.platform-logs-header h1 {
  margin: 0;
  font-size: clamp(1.75rem, 4vw, 2.6rem);
  line-height: 1.05;
}
.platform-logs-header p {
  margin: .35rem 0 0;
  color: var(--color-muted);
}
.platform-logs-status {
  min-width: 10rem;
  color: var(--color-muted);
  font-size: .86rem;
  text-align: right;
}
.platform-logs-status.is-error {
  color: #fca5a5;
}
.platform-logs-controls {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  align-items: end;
  gap: var(--space-2);
  flex-wrap: wrap;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: rgba(16, 26, 43, .96);
  box-shadow: var(--shadow-soft);
  padding: var(--space-2);
}
.platform-logs-controls label {
  display: grid;
  gap: .28rem;
  color: var(--color-muted);
  font-size: .82rem;
  font-weight: 700;
}
.platform-logs-live {
  min-height: 2.55rem;
  display: flex !important;
  align-items: center;
  color: var(--color-text) !important;
}
.platform-logs-search {
  flex: 1 1 18rem;
}
.platform-logs-list {
  display: grid;
  gap: .55rem;
}
.platform-log {
  border: 1px solid var(--color-border);
  border-left: 4px solid rgba(76, 201, 240, .55);
  border-radius: var(--radius-sm);
  background: rgba(4, 12, 24, .45);
  overflow: hidden;
}
.platform-log--warn { border-left-color: var(--color-warning); }
.platform-log--error { border-left-color: var(--color-danger); }
.platform-log--debug { border-left-color: var(--color-muted); }
.platform-log summary {
  display: grid;
  grid-template-columns: auto auto auto minmax(10rem, 1fr) minmax(12rem, 1.4fr) auto;
  align-items: center;
  gap: .55rem;
  cursor: pointer;
  padding: .7rem .8rem;
}
.platform-log__time {
  color: var(--color-muted);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .78rem;
  white-space: nowrap;
}
.platform-log__badge {
  width: max-content;
  border: 1px solid rgba(76, 201, 240, .28);
  border-radius: 999px;
  background: rgba(76, 201, 240, .1);
  color: var(--color-text);
  font-size: .72rem;
  font-weight: 800;
  padding: .13rem .45rem;
  text-transform: uppercase;
}
.platform-log__badge--warn {
  border-color: rgba(250, 204, 21, .38);
  background: rgba(250, 204, 21, .12);
}
.platform-log__badge--error {
  border-color: rgba(251, 113, 133, .38);
  background: rgba(251, 113, 133, .12);
}
.platform-log__operation {
  color: var(--color-accent);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .82rem;
  overflow-wrap: anywhere;
}
.platform-log__message {
  min-width: 0;
  overflow-wrap: anywhere;
}
.platform-log__request {
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: transparent;
  color: var(--color-muted);
  cursor: pointer;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .72rem;
  padding: .16rem .45rem;
}
.platform-log__request:disabled {
  cursor: default;
  opacity: .55;
}
.platform-log__details {
  margin: 0;
  border-top: 1px solid var(--color-border);
  background: rgba(0, 0, 0, .2);
  color: var(--color-text);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .78rem;
  line-height: 1.45;
  overflow-x: auto;
  padding: var(--space-2);
  white-space: pre-wrap;
}

@media (min-width: 780px) {
  .layout { grid-template-columns: 250px 1fr; }
  .mobile-nav-toggle, .mobile-nav-overlay, .mobile-nav-close { display: none; }
  .sidebar { position: static; z-index: auto; display: grid; align-content: start; gap: var(--space-4); width: auto; height: 100vh; padding: var(--space-4); box-shadow: none; overflow-y: auto; transform: none; transition: none; visibility: visible; }
  .main { padding: var(--space-4); }
  body.is-calendar-view .main { width: 100%; max-width: none; margin: 0; }
  body.is-calendar-view .calendar-panel { width: 100%; }
  .app-form__row { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 779px) {
  .main { padding-top: calc(var(--space-3) + 3rem); }
  body.is-calendar-view .main { padding-top: 0; }
  body.is-calendar-view .calendar-header__top { padding-left: calc(var(--space-3) + 3rem); }
  body.is-nav-open .main { overflow: hidden; }
  .journal-toolbar { grid-template-columns: minmax(0, 1fr) auto; }
  .journal-search { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-nav-overlay, .sidebar { transition-duration: 1ms; }
  .section-loading__indicator span { animation: none; opacity: .72; transform: none; }
}

@media (max-width: 920px) {
  .calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-weekdays-sticky, .calendar-day--empty { display: none; }
}

@media (max-width: 520px) {
  .platform-logs-shell { padding: var(--space-2); }
  .platform-logs-header { flex-direction: column; }
  .platform-logs-status { text-align: left; }
  .platform-logs-controls { position: static; }
  .platform-logs-controls label,
  .platform-logs-controls button { flex: 1 1 100%; }
  .platform-log summary { grid-template-columns: 1fr; align-items: start; }
  .platform-log__request { width: max-content; max-width: 100%; }
  .journal-panel__head { align-items: stretch; }
  .journal-panel__controls { width: 100%; justify-content: space-between; }
  .journal-toolbar { grid-template-columns: 1fr; }
  .journal-filter { width: 100%; }
  .journal-filter__button { flex: 1 1 0; }
  .journal-toolbar__toggle { justify-content: space-between; }
  .journal-add-entry-button { flex: 1 1 auto; width: 100%; }
  .journal-card__summary { grid-template-columns: 1fr; gap: .55rem; padding: .85rem; }
  .journal-card__avatar { display: none; }
  .journal-card__details { padding: .8rem .85rem .85rem; }
  .journal-countdown { margin-left: 0; }
  .journal-actions { flex-wrap: wrap; }
  .journal-snooze-status { align-items: stretch; flex-direction: column; }
  .settings-snooze-defaults__grid { grid-template-columns: 1fr; }
  .nutrition-date-controls { width: 100%; justify-content: stretch; }
  .nutrition-date-controls button, .nutrition-date-controls input { flex: 1 1 9rem; }
  .nutrition-totals, .nutrition-form .form-grid { grid-template-columns: 1fr; }
  .nutrition-item, .nutrition-plan__main { display: grid; }
  .nutrition-plan__actions { justify-content: stretch; }
  .nutrition-plan__actions button, .nutrition-form .form-actions button { flex: 1 1 100%; }
  .finance-grid { grid-template-columns: 1fr; }
  .finance-panel__actions { width: 100%; justify-content: stretch; }
  .finance-range { width: 100%; grid-template-columns: 1fr 1fr auto; }
  .finance-add-entry-button { width: 100%; }
  .work-panel__actions { width: 100%; justify-content: stretch; }
  .work-range { width: 100%; grid-template-columns: 1fr 1fr auto; }
  .work-add-shift-button { width: 100%; }
  .health-grid { grid-template-columns: 1fr; }
  .fitness-builder-section__head, .fitness-workout-card__head { flex-direction: column; }
  .fitness-builder-row__actions { margin-left: 0; }
  .fitness-item-row__main label, .fitness-config-grid { flex-basis: 100%; grid-template-columns: 1fr; }
  .fitness-form__actions { justify-content: stretch; }
  .fitness-form__actions button { flex: 1 1 8rem; }
  .finance-account, .finance-row { flex-direction: column; }
  .finance-account__actions, .finance-row__meta { justify-content: flex-start; text-align: left; }
  .finance-overview-balance { width: 100%; }
  .day-finance-summary, .day-finance-account { grid-template-columns: 1fr; justify-items: stretch; }
  .day-finance-totals { justify-items: start; }
  .day-finance-account strong { justify-self: start; }
  .work-employer, .work-shift { flex-direction: column; }
  .work-employer__actions, .work-shift__actions { justify-content: flex-start; text-align: left; }
  .my-files-grid { grid-template-columns: 1fr; }
  .my-file-item { flex-direction: column; }
  .my-file-item__actions { justify-content: flex-start; text-align: left; }
  .calendar-panel__head, .calendar-header__top { align-items: flex-start; flex-direction: column; padding: var(--space-3); }
  body.is-calendar-view .calendar-header__top { padding-left: calc(var(--space-3) + 3rem); }
  .calendar-container { padding: 0 .65rem var(--space-3); }
  .calendar-grid { grid-template-columns: 1fr; padding-left: 1.45rem; }
  .calendar-day { position: relative; min-height: 7rem; overflow: visible; }
  .calendar-day::before { content: attr(data-weekday-short); position: absolute; left: -1.45rem; top: .65rem; width: 1rem; color: var(--color-muted); font-size: .7rem; font-weight: 800; text-align: right; text-transform: uppercase; }
  .calendar-day__timeline { overflow: hidden; }
  .settings-location-rule { grid-template-columns: minmax(0, 1fr) 2.75rem; }
  .settings-location-form { grid-template-columns: minmax(0, 1fr) 2.75rem; }
  .settings-location-form button { grid-column: 1 / -1; }
  .settings-time-abstraction__grid, .settings-time-abstraction-form { grid-template-columns: 1fr; }
  .modal-card { max-height: calc(100vh - 2rem); padding: var(--space-3); }
  .modal-actions { justify-content: stretch; }
  .modal-actions button { flex: 1 1 8rem; }
}

.calendar-header__controls { display: flex; align-items: center; justify-content: flex-end; gap: .42rem; flex: 1 1 auto; flex-wrap: nowrap; margin-left: auto; min-width: 0; }
.calendar-nav { display: inline-flex; align-items: center; gap: .3rem; flex: 0 0 auto; white-space: nowrap; }
.calendar-nav__button { flex: 0 0 auto; padding: .35rem .65rem; font-size: .78rem; }
.calendar-zoom-control { flex: 0 1 clamp(19rem, 36vw, 34rem); min-width: 17rem; display: flex; align-items: center; gap: .38rem; padding: .18rem .25rem; border-radius: 999px; background: rgba(7, 18, 34, .28); }
.calendar-zoom-slider { flex: 1 1 clamp(8rem, 14vw, 13rem); min-width: 8rem; max-width: 13rem; accent-color: var(--color-accent); cursor: pointer; }
.calendar-zoom-ticks { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .16rem; }
.calendar-zoom-tick { border: 0; border-radius: 999px; background: transparent; color: var(--color-muted); cursor: pointer; font: inherit; font-size: .72rem; font-weight: 800; padding: .18rem .42rem; white-space: nowrap; }
.calendar-zoom-tick:hover, .calendar-zoom-tick:focus-visible { color: var(--color-text); background: rgba(76, 201, 240, .1); }
.calendar-zoom-tick.is-active { background: var(--color-accent); color: #06111f; }
.calendar-range-section { display: grid; gap: var(--space-3); align-items: start; }
.calendar-range-view { display: grid; gap: var(--space-3); align-items: start; }
.calendar-range-view--roomy { grid-template-columns: 1fr; }
.calendar-range-view--standard { grid-template-columns: 1fr; }
.calendar-range-view--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calendar-range-view--symbolic { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.calendar-week-view { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.calendar-day--week { min-height: 18rem; }
.calendar-three-month-view { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); align-items: start; }
.calendar-month--compact .calendar-grid { gap: .22rem; }
.calendar-month--compact .calendar-day { min-height: 5.8rem; padding: .35rem; border-width: 1px; gap: .18rem; }
.calendar-month--compact .calendar-day__top { grid-template-columns: max-content minmax(0, 1fr); column-gap: .25rem; }
.calendar-month--compact .calendar-day__location, .calendar-month--compact .day-card-finance-balance { display: none; }
.calendar-month--compact .calendar-line { font-size: .66rem; }
.calendar-month--compact .calendar-day__timeline { display: none; }
.calendar-container--year { padding-top: var(--space-3); }
.calendar-year-view { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); align-items: start; }
.calendar-month--year { gap: .45rem; }
.calendar-month--year .calendar-month__title { font-size: .86rem; }
.calendar-month--year .calendar-grid { gap: .15rem; }
.calendar-month--year .calendar-day { min-height: 2.05rem; border-width: 1px; border-radius: .45rem; padding: .18rem; gap: .08rem; }
.calendar-month--year .calendar-day__top { display: block; }
.calendar-month--year .calendar-day__number { font-size: .62rem; }
.calendar-month--year .calendar-day__location, .calendar-month--year .day-card-finance-balance, .calendar-month--year .calendar-day__finance { display: none; }
.calendar-year-dots { display: flex; flex-wrap: wrap; gap: .12rem; margin-top: .08rem; }
.calendar-year-dot { width: .34rem; height: .34rem; border-radius: 999px; background: var(--color-muted); }
.calendar-year-dot--work { background: #86efac; }
.calendar-year-dot--activity { background: #93c5fd; }
.calendar-year-dot--workout { background: #fde68a; }
.calendar-year-dot--todo { background: #dbeafe; }
.calendar-year-dot--finance { background: #c4b5fd; }
.calendar-year-dot--note { background: #fef3c7; }

@media (max-width: 920px) {
  .calendar-week-view, .calendar-three-month-view, .calendar-year-view, .calendar-range-view--compact, .calendar-range-view--symbolic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-day--week { min-height: 12rem; }
  .calendar-month--compact .calendar-grid, .calendar-month--year .calendar-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); padding-left: 0; }
  .calendar-month--compact .calendar-day--empty, .calendar-month--year .calendar-day--empty { display: block; }
}

@media (max-width: 779px) {
  .calendar-header__controls { flex-wrap: wrap; justify-content: flex-start; width: 100%; margin-left: 0; }
  .calendar-current-month { flex: 0 0 auto; }
  .calendar-zoom-control { flex: 1 1 100%; min-width: min(100%, 17rem); max-width: none; }
}

@media (max-width: 520px) {
  .calendar-header__controls { align-items: center; width: 100%; justify-content: flex-start; flex-wrap: wrap; gap: .35rem; }
  .calendar-current-month { flex: 1 1 100%; }
  .calendar-zoom-control { flex: 1 1 100%; max-width: none; border-radius: var(--radius-md); }
  .calendar-zoom-slider { min-width: 7rem; max-width: none; }
  .calendar-nav { flex: 0 0 auto; }
  .calendar-nav__button { flex: 0 0 auto; }
  .calendar-week-view, .calendar-three-month-view, .calendar-year-view, .calendar-range-view--compact, .calendar-range-view--symbolic { grid-template-columns: 1fr; }
  .calendar-month--compact .calendar-day, .calendar-month--year .calendar-day { overflow: hidden; }
  .calendar-month--year .calendar-day::before, .calendar-month--compact .calendar-day::before { content: none; }
}
.calendar-date-time-row fieldset { border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .55rem; display: grid; gap: .45rem; min-width: 0; }
.calendar-date-time-row legend { color: var(--color-muted); font-size: .78rem; padding: 0 .25rem; }
.calendar-layovers { display: grid; gap: .6rem; }
.calendar-layover { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: rgba(4, 12, 24, .3); padding: .65rem; display: grid; gap: .55rem; }
.calendar-layover__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.airport-autocomplete { position: relative; display: block; }
.airport-autocomplete__list { position: absolute; z-index: 30; top: calc(100% + 2px); left: 0; right: 0; max-height: 15rem; overflow: auto; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); box-shadow: var(--shadow-lg); }
.airport-autocomplete__option { width: 100%; border: 0; border-bottom: 1px solid var(--color-border); background: transparent; color: var(--color-text); cursor: pointer; padding: .55rem .65rem; text-align: left; }
.airport-autocomplete__option:hover, .airport-autocomplete__option.is-active, .airport-autocomplete__option:focus-visible { background: rgba(96, 165, 250, .14); outline: none; }
.airport-load-status { margin: 0; color: var(--color-muted); font-size: .82rem; }
@media (max-width: 640px) { .calendar-date-time-row { grid-template-columns: 1fr !important; } }
.reminder-editor { border: 1px solid var(--border-color, #ddd); border-radius: 0.75rem; padding: 0.75rem; margin-top: 0.75rem; }
.reminder-list { list-style: none; padding-left: 0; display: grid; gap: 0.5rem; }
.reminder-row { display: grid; gap: 0.25rem; }
.reminder-add { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.reminder-add input { max-width: 7rem; }
