:root {
  --bg: #f6f3ee;
  --panel: #fffdf9;
  --ink: #203040;
  --accent: #9a3412;
  --accent-soft: #f4e5d8;
  --muted: #6a7076;
  --border: #ded6cb;
  --success-bg: #e7efe5;
  --space-1: 8px;
  --space-2: 12px;
  --space-3: 16px;
  --space-4: 20px;
  --space-5: 24px;
  --space-6: 32px;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

.screen-reader-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

body {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.45;
  color: var(--ink);
  background:
    radial-gradient(circle at top left, rgba(154, 52, 18, 0.15), transparent 25%),
    linear-gradient(180deg, #efe7db 0%, var(--bg) 100%);
  min-height: 100vh;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  line-height: 1.15;
}

.shell {
  max-width: 960px;
  margin: 0 auto;
  padding: var(--space-6) var(--space-4) 80px;
}

.shell.narrow {
  max-width: 560px;
}

.hero,
.panel {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: var(--space-5);
  box-shadow: 0 14px 40px rgba(32, 48, 64, 0.08);
}

.hero {
  margin-bottom: var(--space-4);
}

.hero-title-stack {
  display: grid;
  gap: 4px;
  margin-bottom: var(--space-3);
  font-size: clamp(2.25rem, 6vw, 3.3rem);
  line-height: 1;
}

.hero-title-line {
  display: grid;
  grid-template-columns: 2.2rem auto;
  align-items: baseline;
  gap: 12px;
}

.hero-title-icon {
  width: 2.2rem;
  height: 2.2rem;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  font-size: 1.65rem;
  line-height: 1;
}

.panel {
  margin-bottom: var(--space-4);
}

.panel-head,
.hero-actions,
.link-row {
  display: flex;
  gap: var(--space-2);
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}

.lede,
.status,
.empty {
  color: var(--muted);
}

.hero .lede {
  max-width: 34rem;
  margin-bottom: var(--space-1);
}

.version {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.95rem;
}

.hero-link-row {
  margin-top: var(--space-3);
}

.surface-link {
  border: 1px solid var(--border);
  background: var(--accent-soft);
  color: var(--ink);
}

.surface-link:hover,
.surface-link:focus-visible {
  background: #edd8c7;
  outline: none;
}

.task-list,
.stack {
  display: grid;
}

.task-list {
  gap: var(--space-2);
}

.task-list-section,
.task-list-section-cards {
  display: grid;
}

.task-list-section {
  gap: 10px;
  padding: 10px 0 20px;
}

.task-list-section + .task-list-section {
  border-top: 1px solid rgba(32, 48, 64, 0.1);
}

.task-list-section-head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.task-list-section-title {
  margin: 0;
  font-size: 0.92rem;
  text-transform: uppercase;
  letter-spacing: 0.28rem;
}

.task-list-section-title::after {
  content: "";
  display: inline-block;
  width: clamp(3rem, 20vw, 8rem);
  max-width: 100%;
  height: 1px;
  margin-left: var(--space-3);
  vertical-align: middle;
  background: rgba(32, 48, 64, 0.16);
}

.task-list-section-count {
  margin: 0 0 0 auto;
  white-space: nowrap;
}

.task-list-section-cards {
  gap: 10px;
}

.task-agenda-entry {
  display: grid;
  gap: 0;
  --task-agenda-surface: rgba(255, 255, 255, 0.55);
  --task-agenda-border: var(--border);
}

.task-agenda-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0;
  padding: 8px 12px 0;
  border: 1px solid var(--task-agenda-border);
  border-bottom: 0;
  border-radius: 16px 16px 0 0;
  background: var(--task-agenda-surface);
}

.task-agenda-meta-pill {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  margin: 0;
  padding: 2px 4px;
  font-size: 0.8rem;
  background: transparent;
  border: 0;
}

.task-agenda-entry .task-card {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.task-agenda-entry.task-card-alarm-enabled .task-agenda-meta {
  border-width: 5px;
  padding: 8px 12px 0;
}

.task-agenda-entry.task-card-due-past {
  --task-agenda-surface: #f8dfdc;
  --task-agenda-border: #d9a7a1;
}

.task-agenda-entry.task-card-due-today-past {
  --task-agenda-surface: #f6efc9;
  --task-agenda-border: #d4c06c;
}

.task-agenda-entry.task-card-due-today-upcoming {
  --task-agenda-surface: #e7efe5;
  --task-agenda-border: #aac2a2;
}

.task-agenda-entry.task-card-due-tomorrow {
  --task-agenda-surface: radial-gradient(circle at top left, #aee7d7 0%, #c8efe5 34%, #bfd8f7 100%);
  --task-agenda-border: #86bbb0;
}

.task-agenda-entry.task-card-due-soon {
  --task-agenda-surface: #e4edf9;
  --task-agenda-border: #afc3e3;
}

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

.task-card-summary,
.task-card-heading {
  display: flex;
  gap: var(--space-2);
  align-items: center;
}

.tasks-panel-head {
  position: sticky;
  top: 2px;
  z-index: 35;
  display: flex;
  align-items: center;
  gap: 0;
  margin: calc(-1 * var(--space-2)) calc(-1 * var(--space-2)) var(--space-3);
  padding: 6px var(--space-2);
  border: 1px solid rgba(222, 214, 203, 0.82);
  border-radius: 999px;
  background: rgba(255, 253, 249, 0.5);
  box-shadow: 0 10px 26px rgba(32, 48, 64, 0.1);
  backdrop-filter: blur(12px);
  flex-wrap: nowrap;
}

.tasks-panel-title {
  margin-bottom: 0;
  min-width: 0;
}

.tasks-panel-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-left: auto;
  flex: 0 0 auto;
}

.tasks-panel-secondary-actions {
  position: relative;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  width: 100%;
  min-width: 0;
}

.tasks-panel-secondary-actions > * {
  flex-shrink: 0;
}

.tasks-panel-secondary-actions .task-action-icon {
  width: 2.75rem;
  min-width: 2.75rem;
  height: 2.75rem;
  min-height: 2.75rem;
}

.task-list-filter-shell {
  position: relative;
}

.task-list-search-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin: 0 0 var(--space-3);
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255, 253, 249, 0.7);
}

.task-list-search-panel[hidden] {
  display: none;
}

.task-list-search-field {
  min-width: 0;
}

.task-list-search-field input {
  width: 100%;
}

.task-list-search-options {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}

.task-list-search-option {
  min-height: 2rem;
  padding: 0 4px;
  color: var(--ink);
  font-size: 0.95rem;
}

.task-list-search-clear {
  min-height: 2.5rem;
}

.tasks-panel-nav.reminder-top-nav {
  position: static;
  top: auto;
  right: auto;
  z-index: auto;
  width: auto;
  margin-bottom: 0;
}

.tasks-panel-nav.reminder-top-nav .reminder-top-nav-actions {
  width: auto;
}

.inline-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, 168px);
  gap: var(--space-2);
}

.section-title {
  margin-bottom: 0;
  font-size: 1.05rem;
}

.field-group {
  display: grid;
  gap: var(--space-1);
}

.field-label {
  margin: 0;
  font-size: 0.95rem;
  color: var(--ink);
}

.task-card {
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.55);
}

.task-card[data-toggle-task-card] {
  cursor: pointer;
}

.task-card[data-toggle-task-card]:focus-visible {
  outline: 2px solid #8b735a;
  outline-offset: 2px;
}

.task-card.task-card-alarm-enabled {
  border-width: 5px;
}

.task-card.task-card-due-past {
  background: #f8dfdc;
  border-color: #d9a7a1;
}

.task-card.task-card-due-today-past {
  background: #f6efc9;
  border-color: #d4c06c;
}

.task-card.task-card-due-today-upcoming {
  background: #e7efe5;
  border-color: #aac2a2;
}

.task-card.task-card-due-tomorrow {
  background: radial-gradient(circle at top left, #aee7d7 0%, #c8efe5 34%, #bfd8f7 100%);
  border-color: #86bbb0;
}

.task-card.task-card-due-soon {
  background: #e4edf9;
  border-color: #afc3e3;
}

.task-card + .task-card {
  margin-top: 0;
}

.task-card-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
}

.task-card-summary-main {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}

.task-card-summary-side {
  display: grid;
  align-items: start;
  justify-items: end;
  gap: 8px;
}

.task-card-side-summary {
  display: grid;
  justify-items: end;
  gap: 8px;
}

.task-card-next-notification {
  min-width: 6.1rem;
}

.task-card-heading {
  display: grid;
  flex: 1;
  min-width: 0;
  gap: 6px;
}

.task-card-heading h3,
.task-card-heading p,
.task-actions {
  margin: 0;
}

.task-card-title-row {
  display: flex;
  gap: var(--space-1);
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
}

.task-card-title-row h3 {
  flex: 1 1 12rem;
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 0.95rem;
}

.task-card-description {
  margin: 0;
  white-space: pre-wrap;
  font-size: 0.8rem;
  line-height: 1.3;
}

.task-card-meta-icons {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}

.task-card-meta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.9rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fffaf1;
  font-size: 0.95rem;
  line-height: 1;
}

.task-card-side-row {
  margin: 0;
  font-size: 0.8rem;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  text-align: right;
}

.task-card-side-row .detail-icon {
  line-height: 1;
}

.task-card-summary-grid,
.detail-list {
  display: grid;
  gap: 6px;
}

.task-card-summary-grid {
  grid-template-columns: 1fr;
  align-items: stretch;
}

.task-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.72rem;
  background: #eee5d9;
  color: var(--ink);
}

.staleness-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.72rem;
  background: #fcecd3;
  color: #8a5200;
  margin-top: 2px;
}

.offline-action-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.72rem;
  margin-top: 2px;
}

.offline-action-badge-pending {
  background: #e6f0ff;
  color: #1e4f9a;
}

.offline-action-badge-conflict {
  background: #fde7e7;
  color: #8a1f1f;
}

.detail-list {
  margin-top: 14px;
}

.detail-item {
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  overflow-wrap: anywhere;
}

.debug-panel {
  margin-top: 14px;
}

.debug-pre {
  margin: 10px 0 0;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  overflow-x: auto;
  white-space: pre-wrap;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.9rem;
}

.detail-item-icon,
.task-summary-row {
  display: flex;
  gap: 10px;
  align-items: center;
}

.task-summary-group {
  display: grid;
  gap: 4px;
}

.task-summary-row {
  margin: 0;
  justify-content: flex-start;
  flex-wrap: wrap;
  font-size: 0.82rem;
}

.task-summary-subline {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-left: calc(1rem + 10px);
  color: var(--muted);
}

.task-summary-helper {
  display: none;
  margin-left: 8px;
  color: var(--muted);
  font-size: 0.85rem;
}

.task-summary-row[data-notify-summary-visible="true"] .task-summary-helper {
  display: inline-flex;
}

.task-summary-repeat {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  padding: 2px 6px;
  border-radius: 999px;
  background: #eee5d9;
  color: var(--ink);
  font-size: 0.72rem;
}

.detail-icon {
  flex: 0 0 auto;
  font-size: 0.9rem;
  line-height: 1;
}

.detail-label {
  display: block;
  margin-bottom: 4px;
  color: var(--ink);
  font-size: 0.85rem;
}

.task-card-summary button,
.task-actions button,
.task-actions a,
.tasks-panel-secondary-actions button,
.tasks-panel-secondary-actions a {
  flex-shrink: 0;
}

/* FAB — new task button fixed at bottom-right */
.fab {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border: none;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.fab:hover,
.fab:focus-visible {
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.3);
  transform: scale(1.04);
}
.fab:active {
  transform: scale(0.96);
}
.fab:disabled {
  cursor: default;
  opacity: 0.45;
  transform: none;
}
.fab-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 200ms ease;
}
.fab[aria-expanded="true"] .fab-icon {
  transform: rotate(45deg);
}

.task-card-details {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
}

.task-actions {
  display: flex;
  gap: var(--space-1);
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.task-editor .panel-head,
.action-group,
.action-group-secondary {
  display: grid;
  gap: var(--space-2);
}

.reminder-top-nav {
  position: fixed;
  top: var(--space-5);
  right: var(--space-5);
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.home-top-nav-row.reminder-top-nav {
  position: static;
  top: auto;
  right: auto;
  z-index: auto;
  width: 100%;
  margin-bottom: var(--space-4);
}

.home-top-nav-row.reminder-top-nav .reminder-top-nav-actions {
  width: 100%;
}

.reminder-top-nav-bottom {
  margin-top: var(--space-3);
  margin-bottom: 0;
}

.reminder-top-nav-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
}

.reminder-top-nav-menu-shell {
  position: relative;
}

.reminder-top-nav[data-menu-open="true"] .task-action-quick-links,
.task-action-quick-links:hover,
.task-action-quick-links:focus-visible {
  background: #e8dfd3;
  outline: none;
}

.reminder-top-nav-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 11rem;
  max-width: min(18rem, calc(100vw - 28px));
  display: none;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--panel);
  box-shadow: 0 14px 30px rgba(32, 48, 64, 0.12);
  z-index: 20;
}

.reminder-top-nav[data-menu-open="true"] .reminder-top-nav-menu {
  display: grid;
  gap: 4px;
}

.reminder-top-nav-menu-link {
  display: block;
  padding: 10px 12px;
  border-radius: 12px;
  color: var(--ink);
  text-decoration: none;
}

.reminder-top-nav-menu-button {
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 10px;
}

.reminder-top-nav-menu-button:hover,
.reminder-top-nav-menu-button:focus-visible {
  background: #f4ede5;
  outline: none;
}

.reminder-top-nav-menu-icon {
  width: 1.1rem;
  height: 1.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.reminder-top-nav-menu-icon svg {
  width: 1.1rem;
  height: 1.1rem;
}

.reminder-top-nav-menu-link:hover,
.reminder-top-nav-menu-link:focus-visible {
  background: var(--accent-soft);
  outline: none;
}

.text-link {
  color: var(--accent);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.task-inline-link {
  color: var(--accent);
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  overflow-wrap: anywhere;
}

.task-inline-link:hover,
.task-inline-link:focus-visible {
  color: var(--primary);
}

.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 16px;
  border-radius: 999px;
  text-decoration: none;
}

.task-actions .button-link {
  background: #d8d0c5;
  color: var(--ink);
}

.task-action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  min-width: 2.5rem;
  height: 2.5rem;
  min-height: 2.5rem;
  padding: 0;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #f4ede4;
  color: var(--ink);
  text-decoration: none;
}

.task-action-icon svg {
  width: 1.1rem;
  height: 1.1rem;
}

.task-action-overflow-dots {
  display: inline-flex;
  gap: 3px;
}

.task-action-overflow-dots span {
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: currentColor;
}

.task-list-control-button {
  min-height: 2.5rem;
}

.task-list-filter-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 40;
  display: none;
  min-width: 13.5rem;
  max-width: min(18rem, calc(100vw - 28px));
  max-height: min(70vh, calc(100dvh - 112px));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: 0 14px 30px rgba(32, 48, 64, 0.12);
}

.task-list-filter-shell[data-filter-menu-open="true"] .task-list-filter-menu {
  display: grid;
  gap: 4px;
}

button.task-list-filter-menu-button {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-height: 2.5rem;
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
  line-height: 1.25;
  text-align: left;
  white-space: normal;
}

button.task-list-filter-menu-button[aria-pressed="true"],
button.task-list-filter-menu-button:hover,
button.task-list-filter-menu-button:focus-visible {
  border-color: var(--border);
  background: #e8dfd3;
  outline: none;
}

button.task-list-filter-help-button {
  border-color: #2f6fb0;
  background: #dcecff;
  color: #17324f;
}

button.task-list-filter-help-button:hover,
button.task-list-filter-help-button:focus-visible {
  border-color: #1f5c99;
  background: #c8e0ff;
}

.task-list-filter-group {
  display: grid;
  gap: 6px;
  padding: 8px 10px;
}

.task-list-filter-group[hidden] {
  display: none;
}

.task-list-filter-group-title {
  color: var(--ink);
  font-size: 0.95rem;
}

.task-list-filter-row-list {
  display: grid;
  gap: 6px;
}

.task-list-filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-height: 2.5rem;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #f7f1e9;
  color: var(--ink);
  font: inherit;
  text-align: left;
}

.task-list-filter-top-row {
  margin: 8px 10px;
  width: calc(100% - 20px);
}

.task-list-filter-row[data-filter-state="include"] {
  border-color: #73a26a;
  background: #e8f3e3;
}

.task-list-filter-row[data-filter-state="exclude"] {
  border-color: #bf6e6a;
  background: #f8e3e1;
}

.task-list-filter-overdue-row[data-filter-state="normal"] {
  border-color: #8a8f98;
  border-width: 3px;
}

.task-list-filter-overdue-row[data-filter-state="include"] {
  border-color: #2f8f46;
  border-width: 3px;
}

.task-list-filter-overdue-row[data-filter-state="exclude"] {
  border-color: #c8322a;
  border-width: 3px;
}

.task-list-filter-row-copy {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}

.task-list-filter-row-state {
  min-width: 1.25rem;
  text-align: center;
}

.task-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.task-tag-list-selected {
  min-height: 2rem;
}

.task-tag-chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.75rem;
  padding: 0 10px;
  border-radius: 999px;
  background: #f0e7da;
  color: var(--ink);
  font-size: 0.92rem;
}

.task-tag-option-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.task-tag-option {
  min-height: 2rem;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}

.task-tag-option[data-selected="true"] {
  background: #e8f3e3;
  border-color: #73a26a;
}

.task-tag-add-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: center;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: start center;
  padding: 7rem 16px 16px;
  background: rgba(32, 48, 64, 0.3);
}

.modal-backdrop[hidden] {
  display: none;
}

.modal-panel {
  width: min(28rem, 100%);
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: 0 18px 44px rgba(32, 48, 64, 0.18);
}

.task-filter-help-panel .panel-head {
  margin-bottom: var(--space-3);
}

.task-list-control-button:disabled,
.task-action-icon:disabled {
  cursor: default;
  opacity: 0.45;
}

.task-action-home:hover,
.task-action-home:focus-visible,
.task-list-control-button:hover,
.task-list-control-button:focus-visible,
.task-action-icon[data-palette="neutral"]:hover,
.task-action-icon[data-palette="neutral"]:focus-visible {
  background: #e8dfd3;
  outline: none;
}

.task-action-icon[data-palette="green"] {
  border-color: #15803d;
  background: #dcfce7;
  color: #166534;
}

.task-action-icon[data-palette="green"]:hover,
.task-action-icon[data-palette="green"]:focus-visible {
  background: #bbf7d0;
  outline: none;
}

.task-action-delete,
.task-action-icon[data-palette="red"] {
  border-color: #dc2626;
  background: #fee2e2;
  color: #b91c1c;
}

.task-action-delete:hover,
.task-action-delete:focus-visible,
.task-action-icon[data-palette="red"]:hover,
.task-action-icon[data-palette="red"]:focus-visible {
  background: #fecaca;
  outline: none;
}

.task-delete-confirm-panel .panel-head {
  margin-bottom: var(--space-3);
}

.task-delete-confirm-actions {
  justify-content: flex-end;
}

.task-action-danger-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 16px;
  border-radius: 999px;
  border: 1px solid #dc2626;
  background: #fee2e2;
  color: #b91c1c;
  font: inherit;
  font-weight: 700;
}

.task-action-danger-button:hover,
.task-action-danger-button:focus-visible {
  background: #fecaca;
  outline: none;
}

.task-action-danger-button:disabled {
  cursor: default;
  opacity: 0.6;
}

.task-action-icon[data-palette="history"] {
  border-color: #93360a;
  background: #fef4ec;
  color: #7c1d0c;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.05em;
}

.task-action-icon[data-palette="history"]:hover,
.task-action-icon[data-palette="history"]:focus-visible {
  background: #ffe5d4;
  outline: none;
}

.task-action-icon[data-palette="orange"] {
  border-color: #ea580c;
  background: #fff7ed;
  color: #9a3412;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.05em;
}

.task-action-icon[data-palette="orange"]:hover,
.task-action-icon[data-palette="orange"]:focus-visible {
  background: #ffedd5;
  outline: none;
}

.testing-event-card .task-card-summary {
  align-items: flex-start;
}

.testing-trigger-button {
  min-width: 8rem;
}

.task-editor {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
}

.task-form-container .task-editor {
  margin: 0 auto;
  max-width: 48rem;
  padding-top: 0;
  border-top: 0;
}

.task-editor .stack[data-interval-fields] {
  gap: var(--space-3);
}

.task-form-section {
  display: grid;
  gap: var(--space-2);
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
}

.task-form-section-row {
  grid-template-columns: minmax(0, 12rem) minmax(0, 1fr);
  align-items: center;
}

.task-form-section-accent {
  background:
    radial-gradient(circle at top left, rgba(154, 52, 18, 0.12), transparent 34%),
    rgba(255, 255, 255, 0.92);
}

.task-form-section-muted {
  background: #faf6f1;
}

.task-form-section-head,
.task-form-subsection-head,
.task-form-section-title-wrap {
  display: flex;
  align-items: center;
}

.task-form-section-head {
  justify-content: space-between;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.task-form-section-row .task-form-section-head {
  justify-content: flex-start;
}

.task-form-section-row .task-form-section-body {
  min-width: 0;
}

.task-form-section-title-wrap,
.task-form-subsection-head {
  gap: 10px;
}

.task-form-section-title,
.task-form-label {
  margin: 0;
  color: var(--ink);
}

.task-form-section-title {
  font-size: 1rem;
  font-weight: 700;
}

.task-form-label {
  font-size: 0.88rem;
  color: var(--muted);
}

.task-form-section-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  min-width: 1.9rem;
  height: 1.9rem;
  border-radius: 999px;
  background: var(--accent-soft);
  font-size: 1rem;
  line-height: 1;
}

.task-form-section-body,
.task-form-grid {
  display: grid;
  gap: var(--space-2);
}

.task-form-inline-cluster {
  display: grid;
  grid-template-columns: minmax(170px, 220px) minmax(0, 1fr);
  gap: var(--space-2);
  align-items: center;
}

.task-form-inline-detail {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.task-form-weekday-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
  gap: 8px;
}

.checkbox-row.task-form-weekday-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  align-items: center;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}

.task-form-weekday-main {
  display: flex;
  gap: 8px;
  align-items: center;
}

.task-form-weekday-time {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 6px 8px;
  font-size: 0.95rem;
}

.task-form-monthday-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(52px, 1fr));
  gap: 8px;
}

.task-form-monthday-option {
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}

.task-form-monthday-option-wide {
  grid-column: span 2;
}

.task-form-monthly-rule-row {
  display: grid;
  gap: 6px;
}

.task-form-grid {
  grid-template-columns: 1fr;
}

.task-form-field,
.task-form-field-full {
  display: grid;
  gap: 8px;
}

[data-task-description-autosize] {
  min-height: 112px;
  overflow: hidden;
  resize: vertical;
}

.task-form-section-hint {
  margin-top: 0;
}

.task-form-subsection {
  display: grid;
  gap: var(--space-2);
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
}

.task-form-subsection-inline {
  grid-template-columns: minmax(0, auto) minmax(0, 1fr) auto;
  align-items: center;
}

.task-form-subsection-inline .field-label {
  color: var(--ink);
}

.task-form-inline-action {
  width: 2.2rem;
  min-width: 2.2rem;
  height: 2.2rem;
  min-height: 2.2rem;
}

.task-form-add-button {
  min-height: 40px;
  padding: 10px 14px;
}

.dev-notes-section {
  width: 100%;
  margin-inline: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
}

.dev-notes-section.top-gap {
  margin-top: 0;
}

.dev-planning-files-section {
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: var(--space-4);
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.dev-planning-files-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.dev-planning-files-header .section-title {
  margin: 0;
}

.dev-planning-files-toggle {
  flex: 0 0 auto;
  min-height: 40px;
}

.dev-planning-files-panel {
  display: grid;
  gap: var(--space-2);
}

.dev-planning-files-panel[hidden] {
  display: none;
}

.dev-notes-status {
  min-height: 1.2rem;
  color: var(--muted);
  font-size: 0.9rem;
  margin-bottom: var(--space-2);
}

.dev-notes-status:empty {
  display: none;
}

.dev-notes-status.error {
  color: #b91c1c;
}

.dev-notes-search-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin-bottom: var(--space-2);
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255, 253, 249, 0.7);
}

.dev-notes-search-field {
  position: relative;
  min-width: 0;
}

.dev-notes-search-field input {
  width: 100%;
  padding-left: 40px;
}

.dev-notes-search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  width: 18px;
  height: 18px;
  color: var(--muted);
  transform: translateY(-50%);
  pointer-events: none;
}

.dev-notes-search-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.dev-notes-search-options {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}

.dev-notes-search-option {
  min-height: 2rem;
  padding: 0 4px;
  color: var(--ink);
  font-size: 0.95rem;
}

.dev-notes-search-toggle {
  display: inline-flex;
  grid-template-columns: none;
  align-items: center;
  gap: 8px;
  min-height: 2rem;
  color: var(--ink);
  font-size: 0.95rem;
  cursor: pointer;
}

.dev-notes-search-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.dev-notes-search-toggle-track {
  position: relative;
  flex: 0 0 auto;
  width: 42px;
  height: 24px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #d7d0c6;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.dev-notes-search-toggle-thumb {
  position: absolute;
  left: 3px;
  top: 3px;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(32, 48, 64, 0.2);
  transition: transform 0.15s ease;
}

.dev-notes-search-toggle input:checked + .dev-notes-search-toggle-track {
  border-color: #1769aa;
  background: #1d8fe8;
}

.dev-notes-search-toggle input:checked + .dev-notes-search-toggle-track .dev-notes-search-toggle-thumb {
  transform: translateX(18px);
}

.dev-notes-search-toggle input:focus-visible + .dev-notes-search-toggle-track {
  outline: 3px solid rgba(224, 153, 0, 0.3);
  outline-offset: 2px;
}

.dev-notes-search-toggle-label {
  line-height: 1.2;
}

.dev-notes-search-clear {
  min-height: 2.5rem;
}

.dev-planning-files-list {
  display: grid;
  gap: var(--space-3);
}

.dev-planning-file-group {
  display: grid;
  gap: 10px;
}

.dev-planning-file-group-title {
  margin: 0;
  font-size: 0.95rem;
}

.dev-planning-file-group-list {
  display: grid;
  gap: 10px;
}

.dev-planning-file-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
}

.dev-planning-file-link {
  color: var(--ink);
  text-decoration: none;
  min-width: 0;
}

.dev-planning-file-link code {
  white-space: normal;
  word-break: break-word;
}

.dev-planning-file-copy {
  flex: 0 0 auto;
  min-height: 40px;
}

.dev-notes-list {
  display: grid;
  gap: 0;
  width: auto;
  margin: 0 calc(var(--space-5) * -1);
}

.dev-notes-view-toggle {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  background: #f1f5f9;
  border-radius: 999px;
  margin-bottom: var(--space-2);
}

.dev-notes-view-toggle-button {
  border: none;
  background: transparent;
  padding: 6px 14px;
  border-radius: 999px;
  cursor: pointer;
  color: var(--ink-muted, #475569);
}

.dev-notes-view-toggle-button.is-active {
  background: #fff;
  color: var(--ink, #0f172a);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.dev-note-card-archived {
  opacity: 0.85;
  border-style: dashed;
}

.dev-note-archived-badge {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 999px;
  background: #fde68a;
  color: #78350f;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.dev-note-card {
  border: 0;
  border-top: 8px solid #d8e2ea;
  border-radius: 0;
  background: #fff;
  padding: 10px 12px 18px;
  display: grid;
  gap: 8px;
  position: relative;
}

.dev-note-card.editing {
  border-top-color: var(--accent);
}

.dev-note-card.editing textarea {
  background: #fff4ef;
}

.dev-note-card.saved-state {
  border-color: #d9e7f0;
}

.dev-note-card textarea {
  resize: vertical;
  min-height: 96px;
  overflow: hidden;
}

.dev-note-card-folded textarea[hidden] {
  display: none;
}

.dev-note-preview {
  position: relative;
  padding: 12px 0 0;
  color: var(--ink);
  font-size: 1.08rem;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 10;
  -webkit-box-orient: vertical;
}

.dev-note-card[data-note-preview-overflowing="true"] .dev-note-preview::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3.2rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.96) 72%, #fff 100%);
  pointer-events: none;
}

.dev-note-card:not(.dev-note-card-folded):not(.dev-note-edit-mode) .dev-note-preview {
  -webkit-line-clamp: unset;
  display: block;
  overflow: visible;
}

.dev-note-card:not(.dev-note-card-folded):not(.dev-note-edit-mode) .dev-note-preview::after {
  display: none;
}

.dev-note-inline-link {
  color: #0f4c81;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.dev-note-attachment-field,
.quick-note-dialog-attachment-field {
  margin-top: var(--space-1);
}

.dev-note-attachments {
  display: grid;
  gap: 10px;
  margin-top: var(--space-1);
}

.dev-note-attachment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
  gap: 10px;
}

.dev-note-attachment {
  display: grid;
  gap: 6px;
  align-content: start;
  text-decoration: none;
  color: inherit;
}

.dev-note-attachment-image {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: #fff;
}

.dev-note-attachment-meta {
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.35;
  word-break: break-word;
}

.dev-note-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--space-1);
  min-height: 42px;
}

.dev-note-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1 1 auto;
  flex-wrap: wrap;
}

.dev-note-reference {
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: #7c1d0c;
}

.dev-note-updated {
  font-size: 0.88rem;
  color: var(--muted);
}

.dev-note-pending-summary {
  margin: 0;
  font-size: 0.82rem;
  color: var(--muted);
  word-break: break-word;
}

.dev-note-buttons {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  flex-wrap: nowrap;
}

.dev-note-actions button {
  min-width: 0;
}

.dev-note-fold-button {
  min-height: 0;
}

.dev-note-icon-button {
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.dev-note-icon-button.dev-note-save-active {
  background: var(--accent);
  color: #fff;
}

.dev-note-icon-button svg {
  width: 19px;
  height: 19px;
}

.dev-note-icon-button.dev-note-attach-active {
  border-color: var(--accent);
  background: #fff4ef;
  color: var(--accent);
}

.dev-notes-form-field {
  display: grid;
  gap: 6px;
}

.dev-notes-file-input {
  width: 100%;
}

.dev-note-attachment-panel {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px dashed var(--border);
  border-radius: 14px;
  background: #fffaf4;
}

.dev-note-bottom-actions {
  display: flex;
  justify-content: stretch;
  padding-top: 4px;
}

.dev-note-bottom-actions[hidden] {
  display: none;
}

.dev-note-save-bottom {
  width: 100%;
  justify-content: center;
}

.dev-notes-hint {
  font-size: 0.82rem;
  color: var(--muted);
}

.dev-notes-textarea {
  width: 100%;
}

body.quick-note-dialog-open {
  overflow: hidden;
}

.quick-note-dialog {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-3);
}

.quick-note-dialog[hidden] {
  display: none;
}

.quick-note-dialog-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(15, 23, 42, 0.58);
  backdrop-filter: blur(4px);
}

.quick-note-dialog-panel {
  position: relative;
  width: min(36rem, 100%);
  max-height: min(84vh, 52rem);
  overflow: auto;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(247, 241, 235, 0.98));
  box-shadow: 0 30px 80px rgba(15, 23, 42, 0.3);
  padding: var(--space-4);
}

.quick-note-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.quick-note-dialog-head h2 {
  margin-bottom: 0;
}

.quick-note-dialog-close {
  min-width: 2.5rem;
  min-height: 2.5rem;
  border-radius: 999px;
  flex: 0 0 auto;
}

.quick-note-dialog-form {
  display: grid;
  gap: var(--space-3);
}

.quick-note-dialog-field {
  margin-bottom: 0;
}

.quick-note-dialog-textarea {
  min-height: 160px;
}

.quick-note-dialog-file-input {
  width: 100%;
}

.quick-note-dialog-hint {
  font-size: 0.82rem;
  color: var(--muted);
}

.quick-note-dialog-status {
  margin-bottom: 0;
  min-height: 1.2rem;
}

.quick-note-dialog-status.error {
  color: #b91c1c;
}

.quick-note-dialog-actions {
  justify-content: flex-end;
  margin-top: 0;
}

@media (min-width: 641px) {
  .tasks-panel-head {
    margin-right: 0;
    margin-left: 0;
  }
}

.task-form-container {
  position: fixed;
  inset: 0;
  z-index: 45;
  display: none;
  overflow-y: auto;
  padding: 72px var(--space-4) 104px;
  background: var(--bg);
  overscroll-behavior: contain;
}

.task-form-container.task-form-visible {
  display: block;
}

body.task-form-dialog-open {
  overflow: hidden;
}

@media (max-width: 640px) {
  .task-form-container {
    padding: 58px 14px 104px;
  }
}

.reminder-summary-panel {
  padding-bottom: var(--space-3);
}

.reminder-context-card {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-2);
}

.reminder-context-header {
  display: grid;
  gap: 6px;
}

.reminder-context-header h1,
.reminder-context-header p,
.reminder-context-item p {
  margin-bottom: 0;
}

.reminder-summary-grid {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: 1fr;
}

.reminder-context-item {
  display: grid;
  gap: 6px;
  margin-top: 0;
}

.reminder-context-callouts {
  display: grid;
  gap: var(--space-2);
}

.reminder-context-callout {
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #f6efe5;
}

.reminder-context-callout[hidden] {
  display: none !important;
}

@media (max-width: 640px) {
  .reminder-summary-panel {
    padding-top: 0;
  }

  .reminder-summary-panel .eyebrow {
    margin-bottom: 4px;
    font-size: 0.78rem;
  }

  .reminder-context-card {
    gap: 8px;
    margin-top: 0;
  }

  .reminder-context-header {
    gap: 2px;
  }

  .reminder-context-header h1 {
    max-width: calc(100% - 8.75rem);
    font-size: 1.2rem;
    line-height: 1.06;
  }

  .reminder-context-header .lede {
    font-size: 0.95rem;
    line-height: 1.2;
  }

  .reminder-summary-grid {
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reminder-context-item {
    gap: 2px;
    min-height: 0;
    padding: 7px 8px;
    border-radius: 8px;
  }

  .reminder-context-item .detail-label {
    margin-bottom: 0;
    font-size: 0.68rem;
    line-height: 1.1;
  }

  .reminder-context-item .status {
    font-size: 0.92rem;
    line-height: 1.15;
  }

  .reminder-context-callouts {
    gap: 8px;
  }

  .reminder-context-callout {
    padding: 8px 10px;
    border-radius: 8px;
    font-size: 0.85rem;
    line-height: 1.25;
  }
}

.reminder-action-grid {
  display: grid;
  gap: var(--space-2);
}

.reminder-action-card {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: 8px;
  background: linear-gradient(180deg, #fff9f2 0%, #fffdf9 100%);
}

.reminder-action-card-subdued {
  background: linear-gradient(180deg, #faf6ef 0%, #fffdf9 100%);
  border-color: #e4dbcf;
}

.reminder-action-card-head {
  display: grid;
  gap: 6px;
}

.reminder-action-card-head .section-title,
.reminder-action-card-head .hint {
  margin-bottom: 0;
}

.reminder-actions-panel .action-group,
.reminder-actions-panel .action-group-secondary,
.reminder-actions-panel form {
  margin-top: var(--space-1);
}

.reminder-actions-panel form.stack {
  gap: var(--space-2);
}

@media (max-width: 640px) {
  .reminder-action-card {
    padding: 10px;
  }
}

.shared-state-banner {
  border-left: 4px solid #888;
  padding: var(--space-3);
  font-weight: 500;
}

.shared-state-banner-locked {
  border-left-color: #2f855a;
  background: #f0fff4;
  color: #22543d;
}

.shared-state-banner-info {
  border-left-color: #2b6cb0;
  background: #ebf8ff;
  color: #2a4365;
}

@media (min-width: 641px) {
  .reminder-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.task-form-toggle-row {
  align-items: center;
}

.task-form-toggle-copy {
  font-weight: 600;
}

.task-form-actions-row {
  position: fixed;
  bottom: 14px;
  left: max(14px, calc((100vw - 48rem) / 2 + var(--space-2)));
  right: max(14px, calc((100vw - 48rem) / 2 + var(--space-2)));
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  gap: var(--space-2);
  align-items: center;
  margin: 0;
  padding: var(--space-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(251, 248, 242, 0.96);
  box-shadow: 0 12px 32px rgba(32, 48, 64, 0.16);
  backdrop-filter: blur(10px);
}

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

label {
  display: grid;
  gap: 8px;
}

input,
textarea,
select,
button {
  font: inherit;
}

input,
textarea,
select {
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: #fff;
}

button {
  padding: 12px 16px;
  border-radius: 999px;
  border: 0;
  background: var(--ink);
  color: #fff;
  cursor: pointer;
  min-height: 44px;
}

button.secondary {
  background: #d8d0c5;
  color: var(--ink);
}

button.tertiary {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--border);
}

.top-gap {
  margin-top: var(--space-3);
}

.hint {
  margin: var(--space-1) 0 0;
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.4;
}

.history-timeline {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-1);
}

.history-event {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: var(--space-3);
  box-shadow: 0 6px 20px rgba(32, 48, 64, 0.08);
  display: grid;
  gap: 6px;
}

.history-event-timestamp {
  font-size: 0.85rem;
  color: var(--muted);
}

.history-event-title {
  font-weight: 600;
  margin: 0;
}

.history-event-subtext {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  white-space: pre-line;
}

@media (max-width: 640px) {
  .shell {
    padding: 4px 14px 64px;
  }

  .hero {
    padding: 16px;
    border-radius: 18px;
  }

  .reminder-top-nav {
    top: 16px;
    right: 16px;
  }

  .home-top-nav-row.reminder-top-nav {
    position: static;
    top: auto;
    right: auto;
    margin-bottom: var(--space-3);
  }

  .panel {
    margin-bottom: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .hero + .panel {
    margin-top: var(--space-4);
  }

  .panel + .panel {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid var(--border);
  }

  .hero-actions,
  .link-row,
  .task-editor .panel-head,
  .action-group,
  .action-group-secondary {
    display: grid;
    grid-template-columns: 1fr;
  }

  .tasks-panel-secondary-actions {
    gap: 8px;
  }

  .task-list-filter-shell {
    position: static;
  }

  .task-list-filter-menu {
    right: auto;
    left: 0;
    width: min(18rem, calc(100vw - 28px));
  }

  .task-list-search-panel {
    grid-template-columns: 1fr;
  }

  .task-list-search-clear {
    width: 100%;
  }

  .tasks-panel-head {
    margin: 0 0 var(--space-3);
  }

  .task-list-section-head {
    align-items: flex-start;
  }

  .task-agenda-meta {
    padding-inline: 0;
  }

  .task-list-section-title::after {
    width: clamp(2rem, 16vw, 5rem);
  }

  .task-list-section-count {
    margin-left: 0;
  }

  .task-card-summary {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }

  .task-card-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .inline-fields {
    grid-template-columns: 1fr;
  }

  .task-card-summary-side {
    width: auto;
    justify-items: end;
  }

  .task-card-side-row {
    align-self: end;
  }

  .action-group button,
  .action-group-secondary button,
  .hero-actions button,
  .link-row a,
  .task-editor .panel-head button {
    width: 100%;
  }

  .hero-actions,
  .link-row {
    width: 100%;
  }

  .dev-note-buttons {
    align-items: stretch;
  }

  .dev-note-actions {
    align-items: center;
  }

  .dev-note-icon-button {
    width: 42px;
    height: 42px;
  }

  .task-actions {
    width: 100%;
    justify-content: flex-start;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
  }

  .task-card-title-row {
    align-items: flex-start;
  }

  .task-actions button.task-action-icon,
  .task-actions a.task-action-icon {
    width: 2.75rem;
    min-width: 2.75rem;
  }

  .task-form-subsection-inline {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .task-form-inline-action {
    justify-self: end;
  }

  .task-form-section-row,
  .task-form-inline-cluster {
    grid-template-columns: 1fr;
  }

  .task-editor .task-form-actions-row {
    grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  }

  .fab {
    width: 48px;
    height: 48px;
    bottom: 16px;
    right: 16px;
    font-size: 26px;
  }
}
