/* Direction: Tickoff — warm paper, deep green ink-stamp accent, a soft serif display */
/* Completed by the platform from the short form: both modes, every
   palette token, each text-on-ground pair at its floor. To restyle, write the
   short form again (the decisions in one :root) and it is completed again. */

:root {
  --canvas: #f8f4ec;
  --surface: #fcfaf6;
  --surface-2: #ece9e1;
  --border: #d6d4cd;
  --border-strong: #b0afa9;
  --ink: #1f2a24;
  --muted: #646862;
  --accent: #2f6b4f;
  --accent-hover: #285b43;
  --accent-ink: #ffffff;
  --accent-text: #2a6247;
  --accent-strong: #2f6b4f;
  --accent-soft: #dce1d6;
  --accent-border: #9eb6a5;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #dde6d7;
  --success-strong: #116d34;
  --warning: #a8620f;
  --warning-ink: #ffffff;
  --warning-soft: #eee2d1;
  --warning-strong: #8f530d;
  --danger: #b3382c;
  --danger-ink: #ffffff;
  --danger-soft: #f0ddd5;
  --danger-strong: #b3382c;
  --chart-1: #2f6b4f;
  --chart-2: #1084a1;
  --chart-3: #434091;
  --chart-4: #a24f88;
  --chart-5: #842c00;
  --chart-6: #827615;

  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Inter", system-ui, sans-serif;
  --radius-card: 16px;
  --radius-btn: 12px;
  --radius-input: 12px;
  --font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --font-sans: "Inter", system-ui, sans-serif;
  --display-weight: 700;
  --display-tracking: -0.02em;
  --eyebrow-tracking: 0.08em;
}

html[data-theme="dark"] {
  --canvas: #070f0b;
  --surface: #202723;
  --surface-2: #131b17;
  --border: #2a312d;
  --border-strong: #515754;
  --ink: #f8f4ec;
  --muted: #989892;
  --accent: #2f6b4f;
  --accent-hover: #4e8169;
  --accent-ink: #ffffff;
  --accent-text: #6a9581;
  --accent-strong: #6a9581;
  --accent-soft: #10231a;
  --accent-border: #19382a;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #0a2816;
  --success-strong: #499c68;
  --warning: #a8620f;
  --warning-ink: #ffffff;
  --warning-soft: #2a210c;
  --warning-strong: #bb8644;
  --danger: #b3382c;
  --danger-ink: #ffffff;
  --danger-soft: #2d1812;
  --danger-strong: #c97068;
  --chart-1: #417d60;
  --chart-2: #1c98b8;
  --chart-3: #7475cb;
  --chart-4: #b6619a;
  --chart-5: #bf623e;
  --chart-6: #96881f;
}

.logo-mark {
  display: inline-grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 0.5rem;
  background: var(--accent);
  color: var(--accent-ink);
}
.logo-mark .icon { width: 1rem; height: 1rem; }

.task-row { transition: transform 0.15s ease, border-color 0.15s ease; animation: task-in 0.25s ease; }
.task-row:hover { border-color: var(--accent); transform: translateY(-1px); }
.task-row.is-done .task-title { text-decoration: line-through; opacity: 0.55; }
.task-row.is-done { background: transparent; }

.task-check {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  border: 2px solid var(--accent);
  color: transparent;
  transition: background 0.15s ease, transform 0.15s ease;
}
.task-check:hover { background: var(--accent); color: var(--accent-ink); }
.task-check:active { transform: scale(0.9); }
.task-check:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.task-row.is-done .task-check { background: var(--accent); color: var(--accent-ink); }
.task-check .icon { width: 1rem; height: 1rem; }

.prio {
  align-items: center;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: capitalize;
  border: 1px solid var(--border);
}
.prio-high { color: var(--danger); border-color: var(--danger); }
.prio-normal { color: var(--accent-text); }
.prio-low { color: var(--muted); }

.task-overdue { color: var(--danger); border: 1px solid var(--danger); background: transparent; }
.task-today { color: var(--warning); border: 1px solid var(--warning); background: transparent; }

.filter-tab {
  padding: 0.4rem 0.9rem;
  border-radius: 0.65rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--muted);
  transition: background 0.15s ease, color 0.15s ease;
}
.filter-tab:hover { color: var(--ink); }
.filter-tab:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.filter-tab.is-active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgb(0 0 0 / 0.12); }

.progress {
  width: 7rem;
  height: 0.5rem;
  border-radius: 999px;
  background: var(--surface-2);
  overflow: hidden;
  border: 1px solid var(--border);
}
.progress span { display: block; height: 100%; background: var(--accent); transition: width 0.4s ease; }

@keyframes task-in { from { transform: translateY(6px); } to { transform: none; } }
html.reduced-motion .task-row { animation: none; transition: none; }
