:root {
  color-scheme: light;
  --ink: #17343b;
  --ink-2: #294a51;
  --ink-soft: #567078;
  --paper: #f3f1ea;
  --paper-2: #ebe8df;
  --panel: #fffefb;
  --panel-strong: #ffffff;
  --line: #d8d8cf;
  --line-strong: #bdc4bf;
  --teal: #2c7a76;
  --teal-dark: #1e5f5c;
  --teal-pale: #dcebe7;
  --gold: #bd7a29;
  --gold-ink: #845116;
  --gold-pale: #f5e7cc;
  --rose: #a64f5a;
  --rose-pale: #f5e1e3;
  --blue: #3c7395;
  --blue-pale: #dfeaf0;
  --green: #3e7655;
  --green-pale: #e2ede4;
  --control-surface: #fffefb;
  --control-text: #425f67;
  --control-active-bg: #1e5f5c;
  --control-active-text: #ffffff;
  --control-hover-bg: #dcebe7;
  --control-hover-text: #174b48;
  --shadow: 0 18px 45px rgba(21, 49, 56, .09);
  --shadow-soft: 0 7px 24px rgba(21, 49, 56, .07);
  --radius: 18px;
  --radius-sm: 11px;
  --serif: "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

* { box-sizing: border-box; }

html {
  min-height: 100%;
  max-width: 100%;
  background: var(--paper);
  overflow-x: clip;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  max-width: 100%;
  margin: 0;
  background:
    radial-gradient(circle at 95% 2%, rgba(123, 196, 189, .13), transparent 26rem),
    linear-gradient(145deg, var(--paper) 0%, #f8f6f0 48%, #eff2ed 100%);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.55;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}

button, input, textarea, select { font: inherit; }
button { color: inherit; }
button, summary, label, select, input[type="checkbox"], input[type="radio"], input[type="range"] { cursor: pointer; }
h1, h2, h3, p, small, strong, label, summary, .button, .mini-button, .text-button { overflow-wrap: break-word; }

button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 3px;
}

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--ink); }
h1 {
  margin-bottom: .3rem;
  font-family: var(--serif);
  font-size: clamp(2.25rem, 5vw, 4.35rem);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: .98;
}
h2 {
  margin-bottom: .5rem;
  font-family: var(--serif);
  font-size: clamp(1.45rem, 3vw, 2rem);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.08;
}
h3 { margin-bottom: .4rem; font-size: 1rem; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: .5rem;
  left: .5rem;
  transform: translateY(-150%);
  border-radius: .5rem;
  background: var(--ink);
  color: white;
  padding: .65rem .9rem;
}
.skip-link:focus { transform: translateY(0); }

.topbar {
  position: fixed;
  z-index: 30;
  top: 0;
  right: 0;
  left: 0;
  height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(189, 196, 191, .68);
  background: rgba(248, 246, 240, .9);
  padding: 0 clamp(1rem, 3vw, 2rem);
  backdrop-filter: blur(18px);
}

.brand {
  display: flex;
  align-items: center;
  gap: .75rem;
  border: 0;
  background: transparent;
  padding: .2rem;
  text-align: left;
}
.brand strong {
  display: block;
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1;
}
.brand-title-short { display: none; }
.brand-mark {
  position: relative;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1.5px solid var(--gold);
  border-radius: 50%;
  background: var(--ink);
  box-shadow: inset 0 0 0 6px var(--ink);
}
.brand-mark::before,
.brand-mark::after {
  position: absolute;
  width: 48px;
  height: 1px;
  background: var(--teal);
  content: "";
}
.brand-mark::after { transform: rotate(90deg); }
.brand-mark span {
  position: relative;
  z-index: 1;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--panel);
}

.eyebrow,
.section-kicker {
  display: block;
  margin-bottom: .35rem;
  color: var(--teal-dark);
  font-family: var(--mono);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.3;
  text-transform: uppercase;
}
.brand .eyebrow { margin-bottom: .2rem; font-size: .75rem; }
.section-kicker.light { color: #a9ddd7; }

.topbar-actions { display: flex; align-items: center; gap: .65rem; }
.quick-capture-button {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  border: 1px solid var(--teal);
  border-radius: 999px;
  background: var(--teal-pale);
  padding: .42rem .72rem;
  color: var(--teal-dark);
  font-size: .82rem;
  font-weight: 850;
}
.quick-capture-button:hover { background: var(--panel); }
.capture-count { min-width: 1.35rem; border-radius: 999px; background: var(--ink); padding: .08rem .34rem; color: white; font-size: .75rem; text-align: center; }
.capture-count[hidden] { display: none; }
.local-badge {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.58);
  padding: .4rem .7rem;
  color: var(--ink-soft);
  font-size: .78rem;
  font-weight: 700;
}
.local-badge[data-storage-status="saving"] .status-dot { background: var(--gold); box-shadow: 0 0 0 3px rgba(189,122,41,.14); }
.local-badge[data-storage-status="error"] { border-color: var(--rose); color: var(--rose); }
.local-badge[data-storage-status="error"] .status-dot { background: var(--rose); box-shadow: 0 0 0 3px rgba(166,79,90,.14); }
.status-dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 3px rgba(62,118,85,.12); }
.update-ready-banner {
  position: fixed;
  z-index: 45;
  top: 84px;
  right: 1rem;
  width: min(620px, calc(100% - 2rem));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid var(--gold);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--gold-pale) 94%, var(--panel));
  padding: .78rem .9rem;
  box-shadow: 0 16px 40px rgba(21,49,56,.22);
}
.update-ready-banner[hidden] { display: none; }
.update-ready-banner strong, .update-ready-banner small { display: block; }
.update-ready-banner small { margin-top: .1rem; color: var(--ink-soft); font-size: .75rem; }
.update-ready-actions { display: flex; align-items: center; flex: 0 0 auto; gap: .65rem; }
.icon-button,
.close-button {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--panel);
  font-size: 1.15rem;
}
.icon-button:hover, .close-button:hover { border-color: var(--teal); background: var(--teal-pale); }

.sidebar {
  position: fixed;
  z-index: 20;
  top: 74px;
  bottom: 0;
  left: 0;
  width: 232px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  background: rgba(255, 254, 251, .72);
  padding: 1.3rem 1rem;
}
.nav-list { display: grid; gap: .35rem; }
.nav-button {
  position: relative;
  width: 100%;
  min-height: 46px;
  display: grid;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  gap: .45rem;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  padding: .65rem .7rem;
  color: var(--ink-soft);
  text-align: left;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.nav-button:hover { background: var(--paper-2); color: var(--ink); transform: translateX(2px); }
.nav-button.active {
  border-color: rgba(44,122,118,.18);
  background: var(--teal-pale);
  color: var(--teal-dark);
  font-weight: 800;
}
.nav-glyph { font-size: 1.25rem; text-align: center; }
.nav-count {
  min-width: 1.45rem;
  border-radius: 999px;
  background: var(--paper-2);
  padding: .12rem .35rem;
  color: var(--ink-soft);
  font-size: .75rem;
  text-align: center;
}
.nav-count.warning:not(:empty) { background: var(--gold-pale); color: #815018; }
.sidebar-unmeasurable {
  margin-top: auto;
  border: 1px solid rgba(189,122,41,.25);
  border-radius: var(--radius-sm);
  background: linear-gradient(145deg, #fff9ee, #f6ead3);
  padding: 1rem;
}
.sidebar-unmeasurable p { margin: 0; color: #695337; font-family: var(--serif); font-size: 1.05rem; line-height: 1.3; }

.main-content {
  min-height: 100vh;
  margin-left: 232px;
  padding: 112px clamp(1.15rem, 3.7vw, 4.25rem) 5rem;
}
.view { width: min(1280px, 100%); margin: 0 auto; animation: reveal .28s ease both; }
.view[hidden] { display: none; }
@keyframes reveal { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }

.view-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 1.65rem;
}
.view-intro { max-width: 650px; margin: .65rem 0 0; color: var(--ink-soft); font-size: 1.02rem; }
.header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .6rem; }
.flow-strip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(15rem, .8fr);
  align-items: center;
  gap: .8rem 1rem;
  margin: -0.65rem 0 1.2rem;
  border-block: 1px solid var(--line);
  padding: .7rem .15rem;
}
.flow-strip-label {
  color: var(--teal-dark);
  font-family: var(--mono);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .08em;
}
.flow-strip ol { min-width: 0; display: flex; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
.flow-strip li { min-width: 0; display: flex; align-items: center; gap: .35rem; color: var(--ink-2); font-size: .78rem; font-weight: 800; white-space: nowrap; }
.flow-strip li + li::before { width: clamp(.75rem, 2vw, 2rem); height: 1px; margin: 0 .4rem; background: var(--line-strong); content: ""; }
.flow-strip li span { width: 1.35rem; height: 1.35rem; display: inline-grid; flex: 0 0 auto; place-items: center; border: 1px solid var(--teal); border-radius: 50%; color: var(--teal-dark); font-size: .68rem; }
.flow-strip small { color: var(--ink-soft); font-size: .75rem; line-height: 1.35; }
.system-map { margin-bottom: 1rem; border-color: rgba(60,115,149,.35); background: linear-gradient(145deg, var(--panel), var(--blue-pale)); }
.system-map summary span:first-child { min-width: 0; }
.system-map summary strong, .system-map summary small { display: block; }
.system-map summary small { margin-top: .12rem; color: var(--ink-soft); font-size: .76rem; font-weight: 500; }
.system-map-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .7rem; }
.system-map-grid article { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); padding: .8rem; }
.system-map-grid article > strong { display: block; margin: .35rem 0; color: var(--ink); line-height: 1.35; }
.system-map-grid article p { margin: 0 0 .55rem; font-size: .78rem; }
.system-map-code { color: var(--blue); font-family: var(--mono); font-size: .68rem; font-weight: 850; letter-spacing: .08em; }
.workspace-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin: 0 0 1rem;
  border: 1px solid rgba(189,122,41,.46);
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--gold-pale), var(--panel));
  padding: .9rem 1rem;
  box-shadow: var(--shadow-soft);
}
.workspace-notice[hidden] { display: none; }
.workspace-notice strong { display: block; color: var(--ink); font-size: 1.05rem; }
.workspace-notice p { max-width: 780px; margin: .2rem 0 0; color: var(--ink-soft); font-size: .82rem; }
.workspace-notice .section-kicker { margin-bottom: .18rem; color: var(--gold-ink); }
.workspace-notice-actions { display: flex; flex: 0 0 auto; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .55rem; }
.workspace-notice-actions .button { min-height: 46px; white-space: normal; text-align: center; }
.button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: .67rem 1rem;
  font-size: .9rem;
  font-weight: 800;
  letter-spacing: -.01em;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.button:hover { transform: translateY(-1px); box-shadow: 0 7px 18px rgba(21,49,56,.12); }
.button:disabled { cursor: not-allowed; opacity: .55; transform: none; box-shadow: none; }
.button.primary { background: var(--ink); color: #fff; }
.button.primary:hover { background: var(--teal-dark); }
.button.secondary { border-color: var(--line-strong); background: rgba(255,255,255,.72); color: var(--ink); }
.button.danger-fill { background: var(--rose); color: white; }
.text-button {
  border: 0;
  background: transparent;
  padding: .2rem .1rem;
  color: var(--teal-dark);
  font-size: .84rem;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-color: rgba(44,122,118,.25);
  text-underline-offset: .18rem;
}
.text-button:hover { color: var(--ink); text-decoration-color: currentColor; }
.text-button.danger { color: var(--rose); }
.spacer { flex: 1; }

.walkthrough-button { border-color: var(--gold); background: var(--gold-pale); color: #704814; }
.walkthrough-button:hover { background: #f8dca7; }
.workspace-accordion {
  margin: 1rem 0;
  overflow: clip;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  background: rgba(255,254,251,.76);
  box-shadow: var(--shadow-soft);
}
.program-guide { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .65rem; margin: 1rem 0; }
.program-guide .how-card { min-width: 0; margin: 0; }
.program-guide-item > summary { min-height: 92px; align-items: center; }
.program-guide-item > summary span { min-width: 0; }
.program-guide-item > summary strong, .program-guide-item > summary small { display: block; }
.program-guide-item > summary small { margin-top: .18rem; color: var(--ink-soft); font-size: .72rem; font-weight: 500; line-height: 1.35; }
.guide-steps ol { display: grid; gap: .55rem; margin: 0; padding-left: 1.25rem; }
.guide-steps li { padding-left: .2rem; }
.guide-links { display: flex; flex-wrap: wrap; gap: .65rem 1rem; margin-top: 1rem; }
.workspace-summary {
  min-height: 78px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto auto;
  align-items: center;
  gap: .8rem;
  list-style: none;
  padding: .85rem 1rem;
}
.workspace-summary::-webkit-details-marker { display: none; }
.workspace-summary::after { color: var(--teal); content: "+"; font-size: 1.45rem; font-weight: 500; line-height: 1; }
.workspace-accordion[open] > .workspace-summary::after { content: "−"; }
.workspace-accordion[open] > .workspace-summary { border-bottom: 1px solid var(--line); background: var(--paper-2); }
.workspace-number, .workspace-summary-icon { width: 2rem; height: 2rem; display: grid; place-items: center; border: 1px solid var(--teal); border-radius: 50%; color: var(--teal-dark); font-family: var(--mono); font-size: .78rem; font-weight: 900; }
.workspace-summary-icon { font-size: 1rem; }
.workspace-summary-copy { min-width: 0; }
.workspace-summary-copy strong, .workspace-summary-copy small { display: block; }
.workspace-summary-copy strong { color: var(--ink); font-family: var(--serif); font-size: 1.35rem; line-height: 1.08; }
.workspace-summary-copy small { margin-top: .18rem; color: var(--ink-soft); font-size: .78rem; font-weight: 500; line-height: 1.35; }
.workspace-summary-state { max-width: 10rem; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); padding: .25rem .55rem; color: var(--ink-soft); font-size: .68rem; font-weight: 850; line-height: 1.2; text-align: center; white-space: normal; }
.workspace-body { padding: 1rem; }
.workspace-body.compact-body { padding: .7rem; }
.workspace-body > :first-child { margin-top: 0; }
.workspace-body > :last-child { margin-bottom: 0; }
.workspace-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; margin-bottom: .7rem; }
.protocol-workspace .field-mode-bar { margin-top: 0; }
.protocol-workspace .protocol-grid { margin-bottom: .25rem; }
.inline-disclosure { border-bottom: 1px solid var(--line); background: var(--paper-2); }
.inline-disclosure > summary { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: .7rem; list-style: none; padding: .6rem .7rem; }
.inline-disclosure > summary::-webkit-details-marker { display: none; }
.inline-disclosure > summary::after { color: var(--teal); content: "+"; font-size: 1.25rem; }
.inline-disclosure[open] > summary::after { content: "−"; }
.inline-disclosure > summary strong, .inline-disclosure > summary small { display: block; }
.inline-disclosure > summary small { margin-top: .1rem; color: var(--ink-soft); font-size: .72rem; font-weight: 500; }
.day-launchpad {
  margin-bottom: 1rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  background: linear-gradient(145deg, rgba(255,254,251,.92), rgba(236,246,244,.82));
  padding: 1rem;
  box-shadow: var(--shadow-soft);
}
.day-launchpad-accordion .day-launchpad { margin: 0; border: 0; border-radius: 0; background: transparent; padding: 0; box-shadow: none; }
.day-launchpad-head, .day-runbook-head, .day-builder-submit { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.day-launchpad-head { align-items: flex-start; }
.day-launchpad-head h2 { max-width: 760px; margin-bottom: .3rem; font-size: clamp(1.35rem, 2.4vw, 2rem); }
.day-launchpad-head p, .day-builder-submit p { margin: 0; color: var(--ink-soft); font-size: .82rem; }
.ready-day-loader { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(290px,.9fr); gap: 1rem; margin-top: 1rem; border: 1px solid rgba(189,122,41,.46); border-radius: var(--radius-sm); background: linear-gradient(135deg, var(--gold-pale), var(--panel) 68%); padding: 1rem; }
.ready-day-copy h3 { margin: .15rem 0 .35rem; font-family: var(--serif); font-size: 1.55rem; line-height: 1.08; }
.ready-day-copy p { max-width: 680px; margin: 0; color: var(--ink-soft); font-size: .83rem; }
.ready-day-controls { display: grid; align-content: start; gap: .45rem; border-left: 1px solid var(--line); padding-left: 1rem; }
.ready-day-controls > label > span { display: block; margin-bottom: .28rem; color: var(--ink-soft); font-size: .72rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.ready-day-controls select { width: 100%; }
.ready-day-description { min-height: 2.6em; margin: 0; color: var(--ink-soft); font-size: .76rem; line-height: 1.35; }
.ready-day-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; }
.day-target-toggle { flex: 0 0 auto; display: inline-flex; gap: .25rem; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--control-surface); padding: .25rem; }
.day-target-toggle button { min-height: 40px; border: 1px solid transparent; border-radius: 999px; background: transparent; padding: .45rem .75rem; color: var(--control-text); font-size: .8rem; font-weight: 850; }
.day-target-toggle button:hover { background: var(--control-hover-bg); color: var(--control-hover-text); }
.day-target-toggle button.active { border-color: var(--control-active-bg); background: var(--control-active-bg); color: var(--control-active-text); }
.day-builder-drawers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: .65rem; margin-top: 1rem; }
.day-builder-drawer { overflow: clip; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); }
.day-builder-drawer[hidden] { display: none; }
.day-builder-drawer summary { min-height: 72px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .7rem; list-style: none; padding: .75rem; cursor: pointer; }
.day-builder-drawer summary::-webkit-details-marker { display: none; }
.day-builder-drawer summary span:first-child, .day-builder-drawer summary strong, .day-builder-drawer summary small { display: block; }
.day-builder-drawer summary small { margin-top: .15rem; color: var(--ink-soft); font-size: .75rem; font-weight: 500; }
.day-builder-drawer[open] summary { border-bottom: 1px solid var(--line); background: var(--paper-2); }
.day-radar-quick-add { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: .5rem; border-top: 1px solid var(--line); background: var(--panel); padding: .65rem; }
.day-radar-quick-add > label:first-child { grid-column: 1 / -1; }
.day-radar-quick-add > label:first-child strong, .day-radar-quick-add > label:first-child small { display: block; }
.day-radar-quick-add > label:first-child small { margin-top: .08rem; color: var(--ink-soft); font-size: .72rem; font-weight: 500; }
.day-radar-quick-add input { min-width: 0; }
.day-radar-quick-minutes { display: grid; gap: .2rem; color: var(--ink-soft); font-size: .68rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.day-radar-quick-minutes input { width: 6.4rem; }
.compact-action { min-height: 44px; border-color: var(--control-active-bg); background: var(--control-active-bg); color: var(--control-active-text); padding: .55rem .8rem; }
.compact-action:hover { background: var(--control-hover-text); color: var(--control-active-text); }
.day-choice-list, .day-meal-choices { max-height: 360px; overflow: auto; padding: .55rem; }
.day-option-group + .day-option-group { margin-top: .7rem; }
.day-option-group h4 { margin: .1rem .2rem .4rem; color: var(--teal-dark); font-family: var(--mono); font-size: .75rem; letter-spacing: .07em; text-transform: uppercase; }
.day-choice { min-height: 52px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .55rem; border-radius: 10px; padding: .48rem; }
.day-choice:hover, .day-choice:has(> input[type="checkbox"]:checked) { background: var(--teal-pale); }
.day-choice:has(> input[type="checkbox"]:checked) { box-shadow: inset 3px 0 0 var(--teal); }
.day-choice > input[type="checkbox"], .day-meal-choice > input { width: 1.15rem; height: 1.15rem; margin-top: .12rem; accent-color: var(--teal); }
.day-choice-copy { min-width: 0; cursor: pointer; }
.day-choice-copy strong, .day-choice-copy small { display: block; }
.day-choice small { margin-top: .08rem; color: var(--ink-soft); font-size: .75rem; line-height: 1.35; }
.day-choice-time { display: flex; align-items: center; gap: .3rem; color: var(--ink-soft); font-size: .68rem; font-weight: 850; }
.day-choice-time input { width: 4.6rem; min-height: 40px; margin: 0; padding: .45rem .5rem; text-align: center; }
.day-choice-time span { font-size: .7rem; }
.day-meal-choice { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .5rem; border-bottom: 1px solid var(--line); padding: .55rem .35rem; }
.day-meal-choice:last-child { border-bottom: 0; }
.day-meal-choice label { display: grid; gap: .25rem; color: var(--ink); font-size: .77rem; font-weight: 850; }
.day-meal-choice select { width: 100%; min-width: 0; }
.day-builder-submit { align-items: center; margin-top: .8rem; border-top: 1px solid var(--line); padding-top: .8rem; }
.day-builder-submit p { max-width: 720px; }
.day-runbook { margin-top: 1rem; border-top: 1px solid var(--line-strong); padding-top: 1rem; }
.day-runbook-head h3 { margin: 0; font-size: 1.45rem; }
.day-runbook-head > div:first-child > small { display: block; margin-top: .18rem; color: var(--ink-soft); font-size: .75rem; }
.day-runbook-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; }
.day-runbook-head-actions { flex-wrap: wrap; }
.day-runbook-groups { display: grid; gap: .7rem; margin-top: .7rem; }
.day-runbook-group { display: grid; gap: .38rem; }
.day-runbook-group-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0 .1rem; color: var(--teal-dark); font-family: var(--mono); font-size: .75rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.day-window-group { overflow: clip; border: 1px solid var(--line); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--panel) 72%, transparent); }
.day-window-group > summary { min-height: 52px; list-style: none; padding: .62rem .75rem; cursor: pointer; }
.day-window-group > summary::-webkit-details-marker { display: none; }
.day-window-group > summary span:last-child::after { margin-left: .45rem; content: "+"; font-size: 1rem; }
.day-window-group[open] > summary span:last-child::after { content: "−"; }
.day-window-group[open] > summary { border-bottom: 1px solid var(--line); background: var(--paper-2); }
.day-window-cards { display: grid; gap: .38rem; padding: .5rem; }
.day-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .65rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .65rem; }
.day-card.completed { background: var(--green-pale); opacity: .82; }
.day-card.parked { border-style: dashed; background: var(--panel); opacity: .76; }
.day-card > input { width: 1.25rem; height: 1.25rem; accent-color: var(--teal); }
.day-card > input:disabled { opacity: .45; }
.day-card-open { min-width: 0; border: 0; background: transparent; padding: 0; text-align: left; }
.day-card-open strong, .day-card-open small { display: block; }
.day-card-open small { margin-top: .12rem; color: var(--ink-soft); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.day-card.completed .day-card-open strong { text-decoration: line-through; }
.day-card-parked-mark { width: 1.25rem; color: var(--ink-soft); font-family: var(--mono); font-size: .8rem; font-weight: 900; text-align: center; }
.day-card-remove { width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: var(--ink-soft); font-size: 1.1rem; }
.day-card-remove:hover { background: var(--rose-pale); color: var(--rose); }
.day-card-restore { min-height: 40px; }
.day-card-details { grid-column: 1 / -1; border-top: 1px solid var(--line); padding: .7rem .1rem .05rem; }
.day-card-details[hidden] { display: none; }
.day-card-details > p { margin: 0 0 .65rem; color: var(--ink-soft); font-size: .8rem; }
.day-subtask-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .4rem; }
.day-subtask { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: .55rem; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); padding: .58rem; }
.day-subtask input { width: 1.15rem; height: 1.15rem; margin-top: .08rem; accent-color: var(--teal); }
.day-subtask span, .day-subtask small { display: block; }
.day-subtask small { margin-bottom: .08rem; color: var(--teal-dark); font-family: var(--mono); font-size: .63rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.day-subtask.done span { color: var(--ink-soft); text-decoration: line-through; }
.day-card-detail-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .65rem; }
.day-parked-cards { overflow: clip; border: 1px dashed var(--line-strong); border-radius: var(--radius-sm); background: var(--paper-2); }
.day-parked-cards > summary { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: .7rem; list-style: none; padding: .65rem .75rem; cursor: pointer; }
.day-parked-cards > summary::-webkit-details-marker { display: none; }
.day-parked-cards > summary strong, .day-parked-cards > summary small { display: block; }
.day-parked-cards > summary small { margin-top: .1rem; color: var(--ink-soft); font-size: .72rem; font-weight: 500; }
.day-parked-cards > div { display: grid; gap: .38rem; border-top: 1px dashed var(--line); padding: .55rem; }
.field-mode-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .8rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,254,251,.72);
  padding: .85rem 1rem;
}
.field-mode-copy { flex: 0 1 260px; }
.field-mode-copy .section-kicker { margin-bottom: .12rem; }
.field-mode-copy small { display: block; color: var(--ink-soft); font-size: .78rem; }
.field-mode-options { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .38rem; }
.field-mode {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  padding: .44rem .68rem;
  color: var(--ink-soft);
  font-size: .78rem;
  font-weight: 800;
}
.field-mode:hover, .field-mode.active { border-color: var(--gold); background: var(--gold-pale); color: #704814; }
.field-mode.world-mode { border-color: rgba(189,122,41,.65); background: linear-gradient(135deg, var(--ink), #294a51); color: #fff4dc; }
.field-mode.world-mode:hover, .field-mode.world-mode.active { border-color: var(--gold); background: linear-gradient(135deg, #704814, var(--gold)); color: white; box-shadow: 0 6px 18px rgba(112,72,20,.2); }

.control-drawer,
.how-card,
.settings-card,
.rail-card,
.shopping-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,254,251,.86);
  box-shadow: var(--shadow-soft);
}
.control-drawer { margin-bottom: 1.25rem; overflow: clip; }
.control-drawer summary,
.how-card summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  list-style: none;
  padding: 1rem 1.2rem;
}
.control-drawer summary::-webkit-details-marker,
.how-card summary::-webkit-details-marker { display: none; }
.control-drawer summary::after,
.how-card summary::after { content: "+"; color: var(--teal); font-size: 1.35rem; font-weight: 400; }
.control-drawer[open] summary::after,
.how-card[open] summary::after { content: "−"; }
.control-drawer summary span:first-child { display: flex; flex-direction: column; }
.control-drawer summary small { color: var(--ink-soft); font-size: .78rem; font-weight: 500; }
.summary-value { margin-left: auto; color: var(--ink-soft); font-size: .82rem; }
.context-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  border-top: 1px solid var(--line);
  background: rgba(243,241,234,.58);
  padding: 1.1rem 1.2rem 1.25rem;
}
fieldset { min-width: 0; margin: 0; border: 0; padding: 0; }
legend { margin-bottom: .55rem; color: var(--ink-soft); font-size: .77rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.chip-row { display: flex; flex-wrap: wrap; gap: .42rem; }
.time-entry { display: flex; align-items: center; gap: .55rem; color: var(--ink-soft); font-size: .84rem; font-weight: 800; }
.time-entry input { width: min(10rem, 100%); min-height: 44px; }
.time-field-note { display: block; margin-top: .4rem; color: var(--ink-soft); font-size: .75rem; }
.choice-chip,
.filter-button {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  padding: .45rem .7rem;
  color: var(--ink-soft);
  font-size: .8rem;
  font-weight: 750;
}
.choice-chip:hover, .filter-button:hover { border-color: var(--teal); background: var(--control-hover-bg); color: var(--control-hover-text); }
.choice-chip.active, .filter-button.active { border-color: var(--control-active-bg); background: var(--control-active-bg); color: var(--control-active-text); }

.protocol-status {
  min-height: 1.4rem;
  margin-bottom: .7rem;
  color: var(--ink-soft);
  font-size: .84rem;
}
.protocol-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
}
.protocol-grid::before {
  position: absolute;
  z-index: 0;
  top: 3rem;
  bottom: 3rem;
  left: 50%;
  width: 1px;
  background: linear-gradient(var(--teal), var(--gold));
  opacity: .24;
  content: "";
}
.protocol-card {
  position: relative;
  z-index: 1;
  min-height: 205px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  padding: 1.25rem;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.protocol-card::after {
  position: absolute;
  right: -38px;
  bottom: -50px;
  width: 130px;
  height: 130px;
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: .08;
  content: "";
}
.protocol-card.anchor { border-top: 4px solid var(--teal); color: var(--teal); }
.protocol-card.leverage { border-top: 4px solid var(--blue); color: var(--blue); }
.protocol-card.momentum { border-top: 4px solid var(--rose); color: var(--rose); background: linear-gradient(145deg, var(--panel), var(--rose-pale)); }
.protocol-card.invitation { border-top: 4px solid var(--gold); color: var(--gold-ink); }
.protocol-card.stop { border-top: 4px solid var(--ink); color: var(--ink); background: linear-gradient(145deg, #f7f5ee, #e9efeb); }
.protocol-label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; font-family: var(--mono); font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.protocol-index { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; }
.protocol-card h2 { max-width: 26rem; margin-bottom: .6rem; color: var(--ink); }
.protocol-card p { margin-bottom: .9rem; color: var(--ink-soft); }
.protocol-meta { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; }
.meta-pill,
.count-pill,
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  border-radius: 999px;
  background: var(--paper-2);
  padding: .28rem .55rem;
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 750;
}
.why-button { align-self: flex-start; border: 0; background: transparent; padding: .2rem 0; color: currentColor; font-size: .78rem; font-weight: 800; }
.why-copy { display: none; margin: .2rem 0 .7rem; border-left: 2px solid currentColor; padding-left: .65rem; color: var(--ink-soft); font-size: .82rem; }
.protocol-card.show-why .why-copy { display: block; }
.leverage-picker { margin-top: .75rem; border-top: 1px solid var(--line); padding-top: .7rem; color: var(--ink); }
.leverage-picker summary { cursor: pointer; color: var(--blue); font-size: .82rem; font-weight: 850; }
.leverage-picker-body { display: grid; gap: .5rem; margin-top: .65rem; }
.leverage-picker-body label { color: var(--ink-soft); font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.leverage-picker-body select { width: 100%; }
.leverage-picker-body .mini-button { justify-self: start; }
.leverage-picker-body p { margin: 0; font-size: .8rem; }

.opportunity-footer-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: .9rem; margin-top: .9rem; }
.protect-card {
  position: relative;
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 92% 15%, rgba(123,196,189,.17), transparent 13rem),
    var(--ink);
  padding: 1.55rem;
  color: #dfeae7;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.protect-card h2 { max-width: 26rem; color: white; }
.protect-card p { max-width: 42rem; margin-bottom: 1rem; color: #c8d7d5; }
.life-dividend { display: flex; flex-wrap: wrap; gap: .55rem; }
.dividend-item { border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.07); padding: .45rem .68rem; color: #f7f3e8; font-size: .77rem; font-weight: 700; }
.how-card { box-shadow: none; }
.how-card summary { min-height: 58px; font-weight: 800; }
.how-card.compact { margin-bottom: 1.2rem; }
.how-card.compact summary { padding: .8rem 1rem; }
.details-body { border-top: 1px solid var(--line); padding: 1rem 1.2rem; color: var(--ink-soft); }
.details-body p:last-child { margin-bottom: 0; }

.field-signals {
  margin-top: .9rem;
  border: 1px solid rgba(60,115,149,.28);
  border-radius: var(--radius);
  background: linear-gradient(150deg, rgba(255,254,251,.92), rgba(223,234,240,.6));
  padding: 1.1rem;
  box-shadow: var(--shadow-soft);
}
.signal-heading h2 { margin: 0; }
.signal-intro { margin: .25rem 0 .85rem; color: var(--ink-soft); font-size: .84rem; }
.signal-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .65rem; }
.signal-card {
  min-height: 150px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--panel);
  padding: .85rem;
}
.signal-card.attention { border-left: 4px solid var(--gold); }
.signal-card.time { border-left: 4px solid var(--rose); }
.signal-card.connection { border-left: 4px solid var(--blue); }
.signal-card.food { border-left: 4px solid var(--green); }
.signal-kind { color: var(--ink-soft); font-family: var(--mono); font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.signal-card h3 { margin: .45rem 0 .28rem; font-family: var(--serif); font-size: 1.28rem; line-height: 1.05; }
.signal-card p { margin-bottom: .7rem; color: var(--ink-soft); font-size: .82rem; }
.signal-card .text-button { align-self: flex-start; margin-top: auto; }
.signal-help { margin: .8rem 0 0; background: rgba(255,255,255,.45); }
.signal-empty { grid-column: 1 / -1; }

.passage-protocol {
  margin-top: .9rem;
  border: 1px solid rgba(189,122,41,.3);
  border-radius: var(--radius);
  background: linear-gradient(145deg, rgba(255,254,251,.94), rgba(248,235,208,.58));
  padding: 1.1rem;
  box-shadow: var(--shadow-soft);
}
.passage-heading h2 { margin: 0; }
.passage-contexts { display: flex; flex-wrap: wrap; gap: .42rem; margin-bottom: .65rem; }
.passage-status { margin-bottom: .7rem; color: var(--ink-soft); font-size: .76rem; font-weight: 700; }
.passage-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .55rem; }
.passage-card { min-height: 205px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); padding: .78rem; }
.passage-card.task { border-top: 4px solid var(--blue); }
.passage-card.routine { border-top: 4px solid var(--teal); }
.passage-card.food { border-top: 4px solid var(--green); }
.passage-card.shopping { border-top: 4px solid var(--gold); }
.passage-card-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: var(--gold-ink); font-family: var(--mono); font-size: .67rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.passage-card h3 { margin: .55rem 0 .32rem; font-family: var(--serif); font-size: 1.23rem; line-height: 1.05; }
.passage-card p { margin: 0 0 .5rem; color: var(--ink-soft); font-size: .78rem; }
.passage-card > small { display: block; margin: auto 0 .65rem; border-left: 2px solid var(--line-strong); padding-left: .48rem; color: var(--ink-soft); font-size: .7rem; }
.passage-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .32rem; border-top: 1px solid var(--line); padding-top: .55rem; }
.passage-clear { grid-column: 1 / -1; display: grid; gap: .15rem; border: 1px dashed var(--line-strong); border-radius: var(--radius-sm); background: rgba(255,255,255,.35); padding: 1rem; }
.passage-clear span { color: var(--ink-soft); font-size: .8rem; }
.passage-help { margin: .8rem 0 0; background: rgba(255,255,255,.4); }

.routine-paths {
  margin-top: .9rem;
  border: 1px solid rgba(44,122,118,.28);
  border-radius: var(--radius);
  background: linear-gradient(145deg, rgba(255,254,251,.92), rgba(229,241,237,.72));
  padding: 1.1rem;
  box-shadow: var(--shadow-soft);
}
.routine-heading h2 { margin: 0; }
.routine-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .65rem; }
.routine-card { border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); overflow: hidden; }
.routine-card.paused { opacity: .68; }
.routine-card summary { min-height: 102px; display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .85rem; cursor: pointer; list-style: none; }
.routine-card summary::-webkit-details-marker { display: none; }
.routine-card summary strong, .routine-card summary small { display: block; }
.routine-card summary strong { font-family: var(--serif); font-size: 1.25rem; }
.routine-card summary small { margin-top: .18rem; color: var(--ink-soft); font-size: .76rem; }
.routine-card summary::after { color: var(--teal); content: "+"; font-size: 1.45rem; font-weight: 700; }
.routine-card[open] summary::after { content: "−"; }
.routine-progress { height: 5px; background: var(--paper-2); }
.routine-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--teal), var(--gold)); }
.routine-card-body { border-top: 1px solid var(--line); padding: .75rem; }
.routine-checklist { display: grid; gap: .4rem; }
.routine-check { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .55rem; align-items: start; border-radius: 9px; background: var(--paper); padding: .55rem; }
.routine-check input { width: 1.15rem; height: 1.15rem; margin-top: .12rem; accent-color: var(--teal); }
.routine-check span, .routine-check small { display: block; }
.routine-check small { margin-top: .12rem; color: var(--ink-soft); font-size: .72rem; }
.routine-check.done span { color: var(--ink-soft); text-decoration: line-through; }
.essential-mark { color: var(--gold-ink); font-family: var(--mono); font-size: .66rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.routine-actions { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .7rem; border-top: 1px solid var(--line); padding-top: .65rem; }
.routine-help { margin: .8rem 0 0; background: rgba(255,255,255,.45); }
.support-note { display: block; margin-top: .65rem; color: var(--ink-soft); font-size: .76rem; line-height: 1.45; }
.routine-active-switch { min-height: 70px; }
.routine-step-editor { margin-top: 1rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.routine-step-line { display: grid; grid-template-columns: auto minmax(0,1fr) minmax(0,1.15fr) auto; align-items: center; gap: .5rem; margin-top: .55rem; }
.routine-step-line > label { display: grid; justify-items: center; gap: .12rem; color: var(--ink-soft); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.routine-step-line input[type="checkbox"] { width: 1.15rem; height: 1.15rem; accent-color: var(--gold); }
.routine-step-line .remove-routine-step { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); color: var(--rose); }
.routine-run-card { min-height: 190px; display: flex; flex-direction: column; justify-content: center; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); padding: 1.15rem; }
.routine-run-card h3 { margin: 0 0 .55rem; font-family: var(--serif); font-size: 1.7rem; }
.routine-run-card p { margin: 0; color: var(--ink-soft); }
.routine-run-card .essential-mark { margin-bottom: .45rem; }
.routine-run-note { margin-top: .7rem; color: var(--ink-soft); font-size: .76rem; }

.catch-tray {
  margin-top: .9rem;
  border: 1px solid rgba(189,122,41,.3);
  border-radius: var(--radius);
  background: linear-gradient(150deg, var(--panel), var(--gold-pale));
  padding: 1.05rem;
}
.catch-tray[hidden] { display: none; }
.catch-tray h2 { margin: 0; }
.catch-list { display: grid; gap: .48rem; margin-top: .75rem; }
.catch-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: .8rem;
  border: 1px solid rgba(189,122,41,.22);
  border-radius: var(--radius-sm);
  background: rgba(255,254,251,.82);
  padding: .68rem .75rem;
}
.catch-row strong, .catch-row small { display: block; }
.catch-row small { margin-top: .12rem; color: var(--ink-soft); font-size: .75rem; }
.catch-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; }

.section-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.section-row h2, .section-row h3 { margin-bottom: 0; }
.small-note { color: var(--ink-soft); font-size: .78rem; }

.radar-groups { display: grid; gap: 1rem; }
.radar-group {
  overflow: clip;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,254,251,.75);
  padding: 0;
}
.radar-group-header { min-height: 76px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; list-style: none; padding: .85rem 1rem; }
.radar-group-header::-webkit-details-marker { display: none; }
.radar-group-header::after { color: var(--teal); content: "+"; font-size: 1.35rem; }
.radar-group[open] > .radar-group-header::after { content: "−"; }
.radar-group[open] > .radar-group-header { border-bottom: 1px solid var(--line); background: var(--paper-2); }
.radar-group-header h2 { margin: 0; font-size: 1.45rem; }
.radar-group-header p { margin: 0; color: var(--ink-soft); font-size: .78rem; }
.task-list { display: grid; gap: .55rem; padding: .75rem; }
.task-row {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: start;
  gap: .75rem;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: var(--panel);
  padding: .75rem .8rem;
  box-shadow: 0 2px 10px rgba(21,49,56,.04);
}
.task-row:hover { border-color: var(--line-strong); }
.task-row.completed .task-title { color: var(--ink-soft); text-decoration: line-through; }
.task-check, .shopping-check {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: .2rem;
  accent-color: var(--teal);
}
.task-open {
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 0;
  text-align: left;
}
.task-title { display: block; color: var(--ink); font-weight: 800; }
.task-description { display: block; margin-top: .15rem; color: var(--ink-soft); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.task-trailing { display: flex; align-items: center; gap: .4rem; }
.friction-flag { background: var(--gold-pale); color: #7f4f12; }
.friction-banner {
  margin-bottom: 1rem;
  border: 1px solid rgba(189,122,41,.35);
  border-radius: var(--radius-sm);
  background: var(--gold-pale);
  padding: .9rem 1rem;
  color: #69481f;
}
.empty-state { border: 1px dashed var(--line-strong); border-radius: var(--radius-sm); padding: 1.1rem; color: var(--ink-soft); text-align: center; }

.meal-rhythm-bar {
  display: grid;
  grid-template-columns: minmax(220px,.75fr) minmax(0,1.5fr);
  align-items: center;
  gap: 1rem;
  margin-bottom: .85rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,254,251,.78);
  padding: 1rem;
  box-shadow: var(--shadow-soft);
}
.meal-rhythm-bar p { margin: 0; color: var(--ink-soft); font-size: .84rem; }
.meal-rhythm-options, .meal-type-checks { display: flex; flex-wrap: wrap; gap: .42rem; }
.meal-rhythm-options label, .meal-type-checks label { position: relative; }
.meal-rhythm-options input, .meal-type-checks input { position: absolute; opacity: 0; pointer-events: none; }
.meal-rhythm-options span, .meal-type-checks span {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  padding: .55rem .75rem;
  color: var(--ink-soft);
  font-size: .8rem;
  font-weight: 800;
}
.meal-rhythm-options input:checked + span, .meal-type-checks input:checked + span { border-color: var(--control-active-bg); background: var(--control-active-bg); color: var(--control-active-text); }
.meal-rhythm-options input:focus-visible + span, .meal-type-checks input:focus-visible + span { outline: 3px solid rgba(44,122,118,.28); outline-offset: 3px; }
.meal-type-picker { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: .8rem; }
.meal-type-picker legend { margin-bottom: .55rem; }
.meal-type-note { display: block; margin: -.25rem 0 .6rem; color: var(--ink-soft); font-size: .76rem; line-height: 1.45; }
.meal-layout { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(280px,.75fr); gap: 1rem; align-items: start; }
.meal-plan-heading-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; }
.meal-week { display: grid; gap: .85rem; margin-top: .75rem; }
.meal-day-card { overflow: clip; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,254,251,.72); padding: 0; box-shadow: var(--shadow-soft); }
.meal-day-heading { min-height: 64px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; list-style: none; padding: .7rem .85rem; }
.meal-day-heading::-webkit-details-marker { display: none; }
.meal-day-heading::after { color: var(--teal); content: "+"; font-size: 1.3rem; }
.meal-day-card[open] > .meal-day-heading::after { content: "−"; }
.meal-day-card[open] > .meal-day-heading { border-bottom: 1px solid var(--line); background: var(--paper-2); }
.meal-day-heading h3 { margin: 0; font-family: var(--serif); font-size: 1.38rem; }
.meal-day-heading small { color: var(--ink-soft); font-size: .75rem; }
.meal-slot-list { display: grid; gap: .45rem; padding: .7rem; }
.meal-row {
  display: grid;
  grid-template-columns: 5.7rem minmax(0,1fr) auto;
  align-items: center;
  gap: .8rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--panel);
  padding: .78rem;
  box-shadow: 0 4px 15px rgba(21,49,56,.05);
}
.meal-row.completed { background: var(--green-pale); }
.meal-row.unplanned { border-style: dashed; background: rgba(243,241,234,.62); box-shadow: none; }
.meal-row.repeat { border-left: 4px solid var(--blue); }
.meal-row.reserve { border-left: 4px solid var(--green); }
.meal-row.restaurant { border-left: 4px solid var(--gold); }
.meal-slot-label { color: var(--teal-dark); font-family: var(--mono); font-size: .75rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.meal-name { display: block; font-weight: 800; }
.meal-detail { display: block; margin-top: .12rem; color: var(--ink-soft); font-size: .78rem; }
.meal-source-pill { display: inline-flex; align-items: center; margin: 0 0 .28rem; border-radius: 999px; background: var(--paper-2); padding: .18rem .42rem; color: var(--ink-soft); font-family: var(--mono); font-size: .7rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.meal-row.repeat .meal-source-pill { background: var(--blue-pale); color: var(--blue); }
.meal-row.reserve .meal-source-pill { background: var(--green-pale); color: var(--green); }
.meal-row.restaurant .meal-source-pill { background: var(--gold-pale); color: #7f4f12; }
.meal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.mini-button {
  min-width: 36px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  padding: .38rem .58rem;
  color: var(--ink-soft);
  font-size: .76rem;
  font-weight: 800;
  text-decoration: none;
}
.mini-button:hover { border-color: var(--teal); background: var(--control-hover-bg); color: var(--control-hover-text); }
.mini-button.active { border-color: var(--control-active-bg); background: var(--control-active-bg); color: var(--control-active-text); }
.mini-button:disabled { cursor: not-allowed; opacity: .45; }
.kitchen-rail { display: grid; gap: .85rem; }
.rail-card { padding: 1rem; }
.rail-card h2 { font-size: 1.35rem; }
.rail-disclosure { overflow: clip; padding: 0; }
.rail-disclosure > summary { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: .65rem; list-style: none; padding: .75rem .85rem; }
.rail-disclosure > summary::-webkit-details-marker { display: none; }
.rail-disclosure > summary::after { color: var(--teal); content: "+"; font-size: 1.3rem; }
.rail-disclosure[open] > summary::after { content: "−"; }
.rail-disclosure[open] > summary { border-bottom: 1px solid var(--line); background: var(--paper-2); }
.rail-disclosure > summary > span { min-width: 0; }
.rail-disclosure > summary strong, .rail-disclosure > summary small, .rail-disclosure > summary .section-kicker { display: block; }
.rail-disclosure > summary strong { color: var(--ink); font-family: var(--serif); font-size: 1.25rem; line-height: 1.05; }
.rail-disclosure > summary small { margin-top: .18rem; color: var(--ink-soft); font-size: .72rem; font-weight: 500; line-height: 1.3; }
.rail-disclosure-body { padding: .8rem; }
.rail-add-action { display: inline-block; margin-bottom: .55rem; }
.rail-intro { margin: .2rem 0 .7rem; color: var(--ink-soft); font-size: .78rem; }
.reserve-list { display: grid; gap: .55rem; }
.reserve-item { border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .7rem; }
.reserve-item.attention { border-color: rgba(166,79,90,.42); }
.reserve-item-header { display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem; }
.reserve-item strong, .reserve-item small { display: block; }
.reserve-item small { margin-top: .12rem; color: var(--ink-soft); font-size: .75rem; }
.reserve-source { color: var(--teal-dark); font-family: var(--mono); font-size: .68rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.reserve-portion-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .4rem; margin: .55rem 0; }
.reserve-portion { border-radius: 9px; background: var(--panel); padding: .48rem; }
.reserve-portion span, .reserve-portion b { display: block; }
.reserve-portion span { color: var(--ink-soft); font-size: .7rem; }
.reserve-portion b { margin-top: .08rem; font-size: .82rem; }
.reserve-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.use-item, .favorite-plan-row { display: flex; align-items: center; justify-content: space-between; gap: .65rem; border-top: 1px solid var(--line); padding: .7rem 0; }
.use-item:first-child, .favorite-plan-row:first-child { border-top: 0; }
.use-item strong, .favorite-plan-row strong { display: block; font-size: .86rem; }
.use-item small, .favorite-plan-row small { display: block; color: var(--ink-soft); font-size: .75rem; }
.recipe-shelf-actions { display: flex; flex: 0 0 auto; gap: .35rem; }
.recipe-shelf-row a { color: var(--teal-dark); font-weight: 800; }
.recipe-link-list { display: grid; }
.recipe-link-row { display: grid; gap: .5rem; border-top: 1px solid var(--line); padding: .7rem 0; }
.recipe-link-row:first-child { border-top: 0; }
.recipe-link-row strong, .recipe-link-row small { display: block; }
.recipe-link-row strong { font-size: .86rem; }
.recipe-link-row small { margin-top: .12rem; color: var(--ink-soft); font-size: .74rem; }
.recipe-link-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.shopping-panel { margin-top: 1rem; padding: 1.2rem; }
.shopping-heading { margin-bottom: .8rem; }
.shopping-heading h2 { margin: 0; }
.shopping-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .45rem .8rem; }
.shopping-item {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: .6rem;
  border-radius: 10px;
  background: var(--paper);
  padding: .62rem .7rem;
}
.shopping-item.checked .shopping-name { text-decoration: line-through; color: var(--ink-soft); }
.shopping-name { font-size: .86rem; font-weight: 750; }
.shopping-amount { color: var(--ink-soft); font-size: .75rem; }

.filter-row { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.pantry-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .85rem; }
.pantry-card {
  position: relative;
  min-height: 238px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  padding: 1rem;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.pantry-card::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; background: var(--teal); content: ""; }
.pantry-card.useSoon::before { background: var(--gold); }
.pantry-card.useNext::before, .pantry-card.review::before { background: var(--rose); }
.pantry-card.resting::before { background: var(--blue); }
.pantry-card-header { display: flex; align-items: start; justify-content: space-between; gap: .8rem; }
.pantry-card h2 { margin-bottom: .2rem; font-size: 1.45rem; }
.pantry-amount { color: var(--ink-soft); font-size: .8rem; }
.pantry-state { margin: .85rem 0; }
.pantry-state strong { display: block; font-size: .9rem; }
.pantry-state small { display: block; color: var(--ink-soft); font-size: .76rem; }
.clock-bar { height: 7px; margin: .3rem 0 .9rem; border-radius: 999px; background: var(--paper-2); overflow: hidden; }
.clock-fill { height: 100%; border-radius: inherit; background: var(--teal); }
.progress-0 { width: 0; }
.progress-10 { width: 10%; }
.progress-20 { width: 20%; }
.progress-30 { width: 30%; }
.progress-40 { width: 40%; }
.progress-50 { width: 50%; }
.progress-60 { width: 60%; }
.progress-70 { width: 70%; }
.progress-80 { width: 80%; }
.progress-90 { width: 90%; }
.progress-100 { width: 100%; }
.useSoon .clock-fill { background: var(--gold); }
.useNext .clock-fill, .review .clock-fill { background: var(--rose); }
.pantry-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; }
.opened-button { border-color: var(--teal); background: var(--teal-pale); color: var(--teal-dark); }

.starter-split { margin: 1rem 0 1.3rem; border: 1px solid rgba(44,122,118,.3); border-radius: var(--radius); background: linear-gradient(145deg, var(--panel), var(--teal-pale)); padding: 1.1rem; box-shadow: var(--shadow-soft); }
.starter-copy { max-width: 760px; }
.starter-copy h2 { margin: .25rem 0 .35rem; }
.starter-copy p { margin-bottom: .85rem; color: var(--ink-soft); }
.blank-starter-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .55rem; }
.blank-starter-grid button { min-height: 92px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); padding: .7rem; color: var(--ink); text-align: left; }
.blank-starter-grid button:hover { border-color: var(--teal); transform: translateY(-1px); }
.blank-starter-grid strong, .blank-starter-grid small { display: block; }
.blank-starter-grid small { margin-top: .22rem; color: var(--ink-soft); font-size: .73rem; line-height: 1.35; }
.protocol-studio { margin: 1rem 0 1.5rem; }
.protocol-studio .section-row { margin-bottom: .75rem; }
.protocol-preset-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .65rem; }
.protocol-preset-card { min-height: 190px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); padding: .9rem; box-shadow: var(--shadow-soft); }
.protocol-preset-card .protocol-preset-type { color: var(--teal-dark); font-family: var(--mono); font-size: .7rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.protocol-preset-card h3 { margin: .55rem 0 .35rem; font-family: var(--serif); font-size: 1.35rem; }
.protocol-preset-card p { color: var(--ink-soft); font-size: .8rem; }
.protocol-preset-meta { display: flex; flex-wrap: wrap; gap: .3rem; margin: auto 0 .65rem; }
.protocol-preset-actions { display: flex; flex-wrap: wrap; gap: .4rem; border-top: 1px solid var(--line); padding-top: .65rem; }
.seasonal-hub { margin: 1.2rem 0 1.6rem; border: 1px solid rgba(189,122,41,.34); border-radius: var(--radius); background: linear-gradient(145deg, var(--panel) 55%, var(--gold-pale)); padding: 1.1rem; box-shadow: var(--shadow-soft); }
.seasonal-heading { align-items: end; }
.seasonal-heading h2 { margin-bottom: .25rem; }
.seasonal-lenses { margin: 1rem 0; }
.seasonal-subhead { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 1.1rem 0 .65rem; border-top: 1px solid rgba(189,122,41,.22); padding-top: .8rem; }
.seasonal-subhead small { color: var(--ink-soft); }
.seasonal-card { min-height: 210px; }
.seasonal-template-grid .template-card { min-height: 250px; }
.ready-day-library-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .75rem; margin-top: 1rem; }
.ready-day-library-card { min-height: 260px; display: flex; flex-direction: column; border: 1px solid rgba(44,122,118,.36); border-radius: var(--radius); background: linear-gradient(150deg, var(--panel), var(--teal-pale)); padding: 1rem; box-shadow: var(--shadow-soft); }
.ready-day-library-card.saved { border-color: var(--gold); background: linear-gradient(150deg, var(--panel), var(--gold-pale)); }
.ready-day-library-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.ready-day-library-card h3 { margin: .7rem 0 .38rem; font-family: var(--serif); font-size: 1.4rem; line-height: 1.06; }
.ready-day-library-card > p { color: var(--ink-soft); font-size: .82rem; }
.ready-day-library-meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: auto 0 .7rem; color: var(--ink-soft); font-size: .74rem; font-weight: 750; }
.ready-day-library-meta span { border-radius: 999px; background: var(--paper-2); padding: .24rem .45rem; }
.ready-day-library-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; border-top: 1px solid var(--line); padding-top: .7rem; }
.ready-day-library-actions .button { min-height: 40px; padding: .5rem .65rem; font-size: .78rem; }
.field-tool-workspace { display: grid; gap: 1rem; }
.field-tool-heading { margin-bottom: .15rem; }
.field-tool-controls { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(170px, 230px); align-items: end; gap: .75rem; }
.field-tool-controls .template-search, .field-tool-controls .category-filter { width: 100%; }
.field-tool-filters { margin: -.15rem 0 0; }
.field-tool-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.field-tool-card { min-height: 260px; display: flex; flex-direction: column; border: 1px solid rgba(60,115,149,.34); border-radius: var(--radius); background: linear-gradient(150deg, var(--panel), color-mix(in srgb, var(--blue-pale) 42%, var(--panel))); padding: 1rem; box-shadow: var(--shadow-soft); }
.field-tool-card.saved { border-color: var(--gold); background: linear-gradient(150deg, var(--panel), color-mix(in srgb, var(--gold-pale) 50%, var(--panel))); }
.field-tool-card-head, .field-tool-card-actions, .field-tool-card-meta, .field-tool-subhead { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.field-tool-card h3 { margin: .72rem 0 .4rem; font-family: var(--serif); font-size: 1.42rem; line-height: 1.06; }
.field-tool-card > p { color: var(--ink-soft); font-size: .82rem; }
.field-tool-card-meta { align-items: flex-start; flex-wrap: wrap; margin: auto 0 .7rem; color: var(--ink-soft); font-size: .72rem; font-weight: 750; }
.field-tool-card-meta span { border-radius: 999px; background: var(--paper-2); padding: .24rem .45rem; }
.field-tool-card-actions { align-items: flex-end; border-top: 1px solid var(--line); padding-top: .7rem; }
.field-tool-card-actions small { max-width: 48%; color: var(--ink-soft); font-size: .72rem; }
.field-tool-card-actions .button { min-height: 40px; padding: .5rem .7rem; font-size: .78rem; }
.active-field-tools { display: grid; gap: .65rem; border: 1px solid rgba(44,122,118,.35); border-radius: var(--radius); background: color-mix(in srgb, var(--teal-pale) 45%, var(--panel)); padding: .9rem; }
.field-tool-subhead h3 { margin: 0; font-family: var(--serif); font-size: 1.35rem; }
.active-field-tool-list { display: grid; gap: .55rem; }
.active-field-tool-card, .field-tool-history { border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); overflow: hidden; }
.active-field-tool-card > summary, .field-tool-history > summary { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .7rem; min-height: 72px; padding: .75rem .85rem; list-style: none; }
.active-field-tool-card > summary::-webkit-details-marker, .field-tool-history > summary::-webkit-details-marker { display: none; }
.active-field-tool-card > summary > span:first-child, .field-tool-history > summary > span:first-child { display: grid; gap: .1rem; min-width: 0; }
.active-field-tool-card > summary strong, .field-tool-history > summary strong { color: var(--ink); }
.active-field-tool-card > summary small, .field-tool-history > summary small { color: var(--ink-soft); font-size: .72rem; }
.active-tool-summary-mark { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; background: var(--paper-2); color: var(--teal-dark); font-weight: 900; }
.active-field-tool-card[open] .active-tool-summary-mark { transform: rotate(45deg); }
.active-field-tool-body { display: grid; gap: .8rem; border-top: 1px solid var(--line); padding: .85rem; }
.active-tool-purpose { margin: 0; color: var(--ink-soft); font-size: .82rem; }
.active-tool-section { display: grid; gap: .5rem; border-left: 3px solid var(--teal); padding-left: .7rem; }
.active-tool-section h4 { margin: 0; color: var(--ink); font-family: var(--mono); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.active-tool-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .55rem; }
.active-tool-field { display: grid; align-content: start; gap: .22rem; min-width: 0; color: var(--ink); font-size: .78rem; font-weight: 800; }
.active-tool-field small { color: var(--ink-soft); font-size: .7rem; font-weight: 550; }
.active-tool-field input, .active-tool-field textarea, .active-tool-field select { width: 100%; }
.active-tool-reference { grid-column: 1 / -1; border-radius: var(--radius-sm); background: var(--paper); padding: .65rem; }
.active-tool-reference p { margin: 0; color: var(--ink-soft); font-size: .75rem; font-weight: 550; white-space: pre-wrap; }
.active-tool-check { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: .55rem; min-height: 58px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .65rem; }
.active-tool-check input { width: 1.2rem; height: 1.2rem; margin-top: .1rem; accent-color: var(--teal); }
.active-tool-check span { display: grid; gap: .12rem; }
.active-tool-check small { color: var(--ink-soft); font-size: .69rem; }
.active-tool-check.done { border-color: var(--teal); background: var(--teal-pale); }
.active-tool-check.done strong { text-decoration: line-through; text-decoration-thickness: 1px; }
.active-tool-actions { display: flex; flex-wrap: wrap; gap: .4rem; border-top: 1px solid var(--line); padding-top: .7rem; }
.field-tool-history > summary { border-top: 0; }
#field-tool-history-list { display: grid; gap: .4rem; border-top: 1px solid var(--line); padding: .65rem; }
.filed-field-tool { display: flex; align-items: center; justify-content: space-between; gap: .7rem; border-radius: var(--radius-sm); background: var(--paper); padding: .65rem; }
.filed-field-tool > div:first-child { display: grid; gap: .05rem; }
.filed-field-tool small, .filed-field-tool span { color: var(--ink-soft); font-size: .7rem; }
.filed-field-tool > div:last-child { display: flex; flex-wrap: wrap; gap: .35rem; }
.field-tool-editor-heading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: 1rem 0 .65rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.field-tool-editor-heading > div { display: grid; gap: .1rem; }
.field-tool-editor-heading small { color: var(--ink-soft); }
.field-tool-row-editor { display: grid; gap: .65rem; }
.field-tool-editor-row { border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .75rem; }
.field-tool-editor-row-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .6rem; color: var(--teal-dark); font-family: var(--mono); font-size: .7rem; font-weight: 850; letter-spacing: .08em; }
.field-tool-editor-row-head > div { display: flex; gap: .3rem; }
.template-kits { margin: 1.2rem 0 1.5rem; }
.kit-library-heading { align-items: end; }
.kit-library-heading h2 { margin-bottom: .2rem; }
.kit-controls { display: grid; grid-template-columns: minmax(240px,1fr) auto minmax(170px,220px); align-items: end; gap: .75rem; margin: 1rem 0; }
.kit-controls .filter-row { margin: 0; }
.kit-category-filter { min-width: 0; }
.template-kit-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .75rem; }
.template-kit-card {
  min-height: 190px;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(189,122,41,.32);
  border-radius: var(--radius);
  background: linear-gradient(150deg, var(--panel), var(--gold-pale));
  padding: 1rem;
  text-align: left;
  box-shadow: var(--shadow-soft);
}
.template-kit-card:hover { border-color: var(--gold); transform: translateY(-2px); }
.template-kit-card.saved { border-color: var(--teal); background: linear-gradient(150deg, var(--panel), var(--teal-pale)); }
.template-kit-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.kit-fit { display: inline-block; margin-left: .4rem; border-radius: 999px; background: var(--teal-pale); padding: .18rem .4rem; color: var(--teal-dark); font-family: var(--sans); font-size: .75rem; letter-spacing: 0; text-transform: none; }
.template-kit-card .favorite-template-button { flex: 0 0 auto; }
.template-kit-card h3 { margin: .55rem 0 .35rem; font-family: var(--serif); font-size: 1.35rem; line-height: 1.08; }
.template-kit-card p { margin-bottom: .8rem; color: var(--ink-soft); font-size: .84rem; }
.template-kit-card .kit-count { color: var(--ink); font-size: .78rem; font-weight: 850; }
.template-kit-actions { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: auto; border-top: 1px solid rgba(189,122,41,.22); padding-top: .65rem; }
.template-kit-actions .button { min-height: 38px; padding: .48rem .7rem; font-size: .78rem; }
.kit-empty { grid-column: 1 / -1; }
.template-library { border-top: 1px solid var(--line); padding-top: 1.25rem; }
.template-library-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.template-library-heading h2 { margin-bottom: .2rem; }
.template-search { width: min(440px, 100%); display: grid; gap: .35rem; color: var(--ink-soft); font-size: .82rem; font-weight: 800; }
.template-controls { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 1rem 0; }
.template-controls .filter-row { margin-bottom: 0; }
.category-filter { width: min(240px, 100%); flex: 0 0 220px; }
.template-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .85rem; }
.template-card {
  position: relative;
  min-height: 278px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  padding: 1rem;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.template-card::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; background: var(--teal); content: ""; }
.template-card.project::before { background: var(--blue); }
.template-card.event::before { background: var(--gold); }
.template-card.recipe::before { background: var(--rose); }
.template-card.saved::before { background: linear-gradient(90deg, var(--teal), var(--gold)); }
.template-card-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.template-type { color: var(--teal-dark); font-family: var(--mono); font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.favorite-template-button { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); color: var(--ink-soft); font-size: 1.05rem; }
.favorite-template-button.active { border-color: var(--gold); background: var(--gold-pale); color: var(--gold-ink); }
.template-card h3 { margin: .85rem 0 .4rem; font-family: var(--serif); font-size: 1.48rem; line-height: 1.04; }
.template-card > p { color: var(--ink-soft); font-size: .84rem; }
.template-card-meta { display: flex; flex-wrap: wrap; gap: .35rem; margin: auto 0 .75rem; }
.template-tag { border-radius: 999px; background: var(--paper-2); padding: .24rem .48rem; color: var(--ink-soft); font-size: .75rem; font-weight: 750; }
.template-card-actions { display: flex; align-items: center; justify-content: space-between; gap: .55rem; border-top: 1px solid var(--line); padding-top: .72rem; }
.template-card-actions small { color: var(--ink-soft); font-size: .76rem; }
.template-empty { grid-column: 1 / -1; }
.collection-footer { display: flex; justify-content: center; margin-top: 1rem; }
.collection-footer .button[hidden] { display: none; }
.template-workspace .starter-split, .template-workspace .seasonal-hub { margin: 0; }
.template-workspace .template-library { border-top: 0; padding-top: 0; }
.shopping-workspace .shopping-panel { margin: 0; }
.template-modal { width: min(820px, calc(100% - 1.4rem)); }
.template-task-fields, .template-recipe-fields { margin-top: 1rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.template-task-fields[hidden], .template-recipe-fields[hidden], .related-template-block[hidden] { display: none; }
.template-plan-switch { margin-top: .8rem; }
.related-template-block { margin-top: 1rem; border-radius: var(--radius-sm); background: var(--paper); padding: .85rem; }
.related-template-list { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; }
.related-template-link { border: 1px solid var(--line); border-radius: 999px; background: var(--panel); padding: .42rem .65rem; color: var(--teal-dark); font-size: .78rem; font-weight: 800; }
.template-modal-actions { flex-wrap: wrap; }
.bundle-choice-list { display: grid; gap: .55rem; }
.bundle-choice-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1rem 0 .55rem; color: var(--ink-soft); font-size: .78rem; }
.bundle-choice-heading strong { color: var(--ink); }
.bundle-choice {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: .7rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--paper);
  padding: .72rem;
}
.bundle-choice input { width: 1.15rem; height: 1.15rem; accent-color: var(--teal); }
.bundle-choice strong, .bundle-choice small { display: block; }
.bundle-choice small { color: var(--ink-soft); }
.bundle-choice > small { font-family: var(--mono); font-weight: 800; text-transform: uppercase; }
.bundle-choice.selected { border-color: var(--teal); background: var(--teal-pale); }
.bundle-choice.already-active > small { color: var(--gold-ink); }

.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .85rem; }
.module-card {
  min-height: 225px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  padding: 1.1rem;
  box-shadow: var(--shadow-soft);
}
.module-card.active { border-color: rgba(44,122,118,.5); background: linear-gradient(150deg, var(--panel), #eff6f3); }
.module-code { color: var(--teal-dark); font-family: var(--mono); font-size: .75rem; font-weight: 800; letter-spacing: .1em; }
.module-card h2 { margin: .75rem 0 .5rem; font-size: 1.45rem; }
.module-card p { color: var(--ink-soft); font-size: .85rem; }
.module-card .button { align-self: flex-start; margin-top: auto; }

.settings-layout { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .85rem; }
.settings-save-bar { position: sticky; z-index: 7; bottom: .8rem; grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--panel) 95%, transparent); padding: .75rem .85rem; box-shadow: 0 12px 32px rgba(12,31,36,.2); backdrop-filter: blur(14px); }
.settings-save-bar span, .settings-save-bar strong, .settings-save-bar small { display: block; }
.settings-save-bar strong { color: var(--ink); font-size: .82rem; }
.settings-save-bar small { margin-top: .12rem; color: var(--ink-soft); font-size: .7rem; }
.settings-save-bar.dirty { border-color: var(--gold); background: color-mix(in srgb, var(--gold-pale) 88%, var(--panel)); }
.settings-card { padding: 1.2rem; box-shadow: var(--shadow-soft); }
.settings-card.wide { grid-column: 1 / -1; }
.settings-card p { color: var(--ink-soft); }
.settings-disclosure { min-width: 0; overflow: clip; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,254,251,.86); box-shadow: var(--shadow-soft); }
.settings-disclosure.wide { grid-column: 1 / -1; }
.settings-disclosure > summary { min-height: 76px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: .75rem; list-style: none; padding: .85rem 1rem; }
.settings-disclosure > summary::-webkit-details-marker { display: none; }
.settings-disclosure > summary::after { color: var(--teal); content: "+"; font-size: 1.35rem; }
.settings-disclosure[open] > summary::after { content: "−"; }
.settings-disclosure[open] > summary { border-bottom: 1px solid var(--line); background: var(--paper-2); }
.settings-disclosure > summary strong, .settings-disclosure > summary small { display: block; }
.settings-disclosure > summary strong { color: var(--ink); font-size: .95rem; }
.settings-disclosure > summary small { margin-top: .15rem; color: var(--ink-soft); font-size: .73rem; font-weight: 500; line-height: 1.35; }
.settings-summary-value { max-width: 10rem; border-radius: 999px; background: var(--teal-pale); padding: .25rem .52rem; color: var(--teal-dark); font-size: .68rem; font-weight: 850; line-height: 1.2; text-align: center; white-space: normal; }
.settings-disclosure-body { padding: 0; }
.settings-disclosure-body > .settings-card { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.settings-disclosure-body > .high-capacity-card { background: linear-gradient(145deg, var(--panel), var(--gold-pale)); }
.high-capacity-card { border-color: rgba(189,122,41,.45); background: linear-gradient(145deg, var(--panel), var(--gold-pale)); }
.compact-grid { margin-top: .75rem; }
.guidance-card { grid-column: 1 / -1; display: grid; grid-template-columns: .75fr 1.6fr; gap: 1.2rem; }
.guidance-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.guidance-option { position: relative; min-height: 130px; display: flex; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .85rem; }
.guidance-option:has(input:checked) { border-color: var(--teal); background: var(--teal-pale); box-shadow: inset 0 0 0 1px var(--teal); }
.guidance-option input { position: absolute; top: .8rem; right: .8rem; width: 1.1rem; height: 1.1rem; accent-color: var(--teal); }
.guidance-option span { align-self: end; padding-right: 1.2rem; }
.guidance-option strong, .guidance-option small { display: block; }
.guidance-option small { margin-top: .3rem; color: var(--ink-soft); font-size: .76rem; }
.guidance-option.featured { display: grid; grid-template-rows: auto minmax(0, 1fr); row-gap: .6rem; }
.guidance-option.featured::before { position: static; grid-row: 1; justify-self: start; border-radius: 999px; background: var(--ink); padding: .22rem .45rem; color: white; content: "Most guidance"; font-size: .75rem; font-weight: 800; }
.guidance-option.featured span { grid-row: 2; align-self: end; }
.field-label { display: grid; gap: .35rem; color: var(--ink-soft); font-size: .78rem; font-weight: 800; }
.field-label.full { grid-column: 1 / -1; }
input[type="text"], input[type="search"], input[type="number"], input[type="date"], input[type="time"], input[type="url"], textarea, select {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: white;
  padding: .65rem .72rem;
  color: var(--ink);
}
textarea { resize: vertical; }
input[type="range"] { width: 100%; accent-color: var(--teal); }
.range-labels { display: flex; justify-content: space-between; color: var(--ink-soft); font-size: .75rem; }
.switch-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .6rem; }
.switch-row { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .75rem; }
.switch-row strong, .switch-row small { display: block; }
.switch-row small { margin-top: .15rem; color: var(--ink-soft); font-size: .75rem; }
.switch-row input[role="switch"] { width: 2.6rem; height: 1.4rem; flex: 0 0 auto; accent-color: var(--teal); }
.override-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .65rem; }
.override-item { border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .7rem; }
.override-item label { display: block; margin-bottom: .4rem; font-size: .8rem; font-weight: 800; }
.local-data-card { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.local-data-card p { max-width: 720px; margin-bottom: .5rem; }
.install-card { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.install-card > div { max-width: 760px; }
.install-card > .button { flex: 0 0 auto; }
.install-help { margin-top: .8rem; }
.storage-line { font-family: var(--mono); font-size: .75rem; }
.data-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }

.modal {
  width: min(720px, calc(100% - 1.4rem));
  max-height: min(88vh, 860px);
  border: 1px solid var(--line-strong);
  border-radius: 22px;
  background: var(--panel);
  padding: 1.25rem;
  color: var(--ink);
  box-shadow: 0 28px 90px rgba(15,39,45,.28);
  overflow: auto;
}
.modal.narrow { width: min(560px, calc(100% - 1.4rem)); }
.welcome-dialog { width: min(680px, calc(100% - 1.4rem)); padding: 1.5rem; }
.welcome-dialog h2 { max-width: 560px; margin-bottom: .65rem; font-size: clamp(2rem, 6vw, 3rem); }
.welcome-mark { position: relative; width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: 1rem; border: 1.5px solid var(--gold); border-radius: 50%; background: var(--ink); }
.welcome-mark::before, .welcome-mark::after { position: absolute; width: 58px; height: 1px; background: var(--teal); content: ""; }
.welcome-mark::after { transform: rotate(90deg); }
.welcome-mark span { position: relative; z-index: 1; width: 10px; height: 10px; border-radius: 50%; background: var(--panel); }
.welcome-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; margin-top: 1.1rem; }
.welcome-choice { min-height: 190px; display: flex; align-items: flex-start; flex-direction: column; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--paper); padding: 1rem; text-align: left; }
.welcome-choice:hover { border-color: var(--teal); background: var(--teal-pale); }
.welcome-choice.recommended { border-color: var(--teal); background: var(--teal-pale); box-shadow: inset 0 0 0 1px rgba(44,122,118,.14); }
.welcome-choice-label { margin-bottom: .75rem; border-radius: 999px; background: var(--panel); padding: .22rem .5rem; color: var(--teal-dark); font-family: var(--mono); font-size: .68rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.welcome-choice strong { margin-bottom: .35rem; color: var(--ink); font-family: var(--serif); font-size: 1.45rem; line-height: 1.05; }
.welcome-choice small { color: var(--ink-soft); font-size: .78rem; line-height: 1.48; }
.welcome-local-note { margin: 1rem 0 0; border-top: 1px solid var(--line); padding-top: .85rem; color: var(--ink-soft); font-size: .78rem; }
.day-path-dialog { width: min(860px, calc(100% - 1.4rem)); }
.modal::backdrop { background: rgba(12,31,36,.55); backdrop-filter: blur(5px); }
.modal-header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.modal-header h2 { margin: 0; font-size: 2rem; }
.modal-intro { margin-bottom: 1rem; color: var(--ink-soft); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; }
.recipe-import-pad { margin-bottom: 1rem; border: 1px solid rgba(44,122,118,.32); border-radius: var(--radius-sm); background: var(--teal-pale); padding: .9rem; }
.recipe-import-heading, .recipe-import-actions, .ingredient-review-head { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.recipe-import-heading { margin-bottom: .65rem; }
.recipe-import-heading strong, .recipe-import-heading small, .ingredient-review-head strong, .ingredient-review-head small { display: block; }
.recipe-import-heading small, .ingredient-review-head small { color: var(--ink-soft); font-size: .75rem; }
.recipe-import-pad textarea { background: var(--panel); }
.recipe-import-actions { align-items: flex-start; margin-top: .6rem; }
.recipe-import-actions .small-note { max-width: 430px; margin: 0; }
.recipe-import-help { margin-top: .7rem; background: var(--panel); box-shadow: none; }
.recipe-import-help summary { padding: .7rem .8rem; }
.file-button { display: inline-flex; align-items: center; justify-content: center; }
.ingredient-review { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .8rem; }
.ingredient-preview { display: grid; gap: .4rem; margin-top: .7rem; }
.ingredient-interpretation { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto; align-items: center; gap: .5rem; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); padding: .55rem .65rem; font-size: .78rem; }
.ingredient-interpretation.needs-review { border-color: rgba(166,79,90,.5); background: var(--rose-pale); }
.ingredient-source { color: var(--ink-soft); }
.ingredient-arrow { color: var(--teal); }
.ingredient-confidence { border-radius: 999px; background: var(--teal-pale); padding: .18rem .42rem; color: var(--teal-dark); font-size: .7rem; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.needs-review .ingredient-confidence { background: var(--rose); color: white; }
.modal-actions { display: flex; align-items: center; gap: .6rem; margin-top: 1.2rem; }
.day-path-meals { display: grid; grid-template-columns: minmax(210px,.7fr) minmax(0,1.3fr); gap: .8rem; margin: 1rem 0; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .8rem; }
.day-path-meals[hidden] { display: none; }
.day-path-meals strong, .day-path-meals small { display: block; }
.day-path-meals small { margin-top: .18rem; color: var(--ink-soft); font-size: .74rem; line-height: 1.4; }
.day-path-meals .meal-type-checks { align-content: start; }
.day-path-editor-heading { display: flex; align-items: end; justify-content: space-between; gap: .8rem; margin: 1rem 0 .55rem; }
.day-path-editor-heading strong, .day-path-editor-heading small { display: block; }
.day-path-editor-heading small { margin-top: .15rem; color: var(--ink-soft); font-size: .74rem; }
.day-path-editor { display: grid; gap: .5rem; }
.day-path-edit-card { overflow: clip; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); }
.day-path-edit-card:has(.day-path-item-include:checked) { border-color: rgba(44,122,118,.58); box-shadow: inset 4px 0 0 var(--teal); }
.day-path-edit-head { min-height: 70px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .7rem; padding: .65rem .7rem; }
.day-path-include { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: .6rem; cursor: pointer; }
.day-path-include input { width: 1.2rem; height: 1.2rem; margin-top: .12rem; accent-color: var(--teal); }
.day-path-include strong, .day-path-include small { display: block; }
.day-path-include small { margin-top: .12rem; color: var(--ink-soft); font-size: .73rem; line-height: 1.35; }
.day-path-order-actions { display: flex; align-items: center; gap: .3rem; }
.day-path-order-actions > button:not(.mini-button) { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; background: var(--panel); color: var(--ink); font-weight: 900; }
.day-path-edit-fields { border-top: 1px solid var(--line); background: var(--panel); padding: .8rem; }
.day-path-edit-fields[hidden] { display: none; }
.day-path-essential { grid-column: 1 / -1; min-height: 70px; }
.day-path-item-footer { display: flex; justify-content: flex-end; margin-top: .65rem; border-top: 1px solid var(--line); padding-top: .55rem; }
.day-path-modal-actions { position: sticky; z-index: 2; bottom: -1.25rem; margin-right: -1.25rem; margin-left: -1.25rem; border-top: 1px solid var(--line-strong); background: color-mix(in srgb, var(--panel) 94%, transparent); padding: .85rem 1.25rem 1.25rem; backdrop-filter: blur(12px); }
.subtask-editor { margin-top: 1.2rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.subtask-line { display: grid; grid-template-columns: auto minmax(120px,.55fr) minmax(0,1fr) auto; align-items: center; gap: .55rem; margin-top: .5rem; }
.subtask-line input[type="checkbox"] { width: 1.1rem; height: 1.1rem; accent-color: var(--teal); }
.subtask-line input[type="text"] { min-height: 40px; }
.remove-subtask { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: white; color: var(--rose); }
.swap-options, .recovery-options { display: grid; gap: .65rem; }
.swap-recipe-search { margin: 0 0 .9rem; }
.swap-recipe-tools,
.recipe-meal-filter-panel { display: grid; gap: .5rem; margin: 0 0 .9rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .75rem; }
.recipe-meal-filter-panel[hidden] { display: none; }
.filter-label { color: var(--ink-soft); font-family: var(--mono); font-size: .7rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.swap-recipe-filters { display: flex; flex-wrap: wrap; gap: .4rem; }
.swap-recipe-tools > small,
.recipe-meal-filter-panel > small { color: var(--ink-soft); font-size: .73rem; line-height: 1.45; }
.swap-group { display: grid; gap: .48rem; }
.swap-group + .swap-group { margin-top: .35rem; border-top: 1px solid var(--line); padding-top: .8rem; }
.swap-group-title { color: var(--ink-soft); font-family: var(--mono); font-size: .72rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.swap-result-note { display: block; margin: -.05rem 0 .2rem; color: var(--ink-soft); font-size: .76rem; line-height: 1.45; }
.swap-load-more-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .55rem; padding-top: .35rem; }
.swap-load-more-row small { color: var(--ink-soft); font-size: .73rem; }
.swap-option, .recovery-options button {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: .8rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--paper);
  padding: .85rem;
  text-align: left;
}
.swap-option:hover, .recovery-options button:hover { border-color: var(--teal); background: var(--teal-pale); }
.swap-option strong, .swap-option small, .recovery-options strong, .recovery-options small { display: block; }
.swap-option small, .recovery-options small { margin-top: .2rem; color: var(--ink-soft); font-size: .76rem; }
.swap-option.source-repeat { border-left: 4px solid var(--blue); }
.swap-option.source-reserve { border-left: 4px solid var(--green); }
.swap-option.source-restaurant { border-left: 4px solid var(--gold); }
.food-safety-note { margin: .9rem 0 0; border-left: 3px solid var(--gold); background: var(--gold-pale); padding: .65rem .75rem; color: #69481f; font-size: .76rem; }
.recovery-options button { grid-template-columns: 1fr; }
.recovery-options button[hidden] { display: none; }
.recovery-time-option { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: end; gap: .7rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .8rem; }
.recovery-time-option > span strong, .recovery-time-option > span small { display: block; }
.recovery-time-option > span small { margin-top: .2rem; color: var(--ink-soft); font-size: .76rem; }
.recovery-time-option .time-entry input { width: 8rem; }
.cycle-list { display: grid; gap: .45rem; margin: .9rem 0; }
.cycle-item { display: flex; justify-content: space-between; gap: 1rem; border-radius: 9px; background: var(--paper); padding: .65rem; font-size: .82rem; }

.focus-lane-modal { width: min(650px, calc(100% - 1.4rem)); overflow: hidden auto; }
.focus-progress { height: 7px; margin: -1.25rem -1.25rem 1.2rem; background: var(--paper-2); }
.focus-progress span { display: block; width: 25%; height: 100%; background: linear-gradient(90deg, var(--teal), var(--gold)); transition: width .25s ease; }
.focus-header { margin-bottom: .65rem; }
.focus-card-copy { color: var(--ink-soft); font-size: 1.02rem; }
.focus-why { border-left: 3px solid var(--gold); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: var(--gold-pale); padding: .7rem .8rem; color: #69481f; font-size: .84rem; }
.focus-subtasks { display: grid; gap: .45rem; margin-top: .9rem; }
.focus-subtasks[hidden] { display: none; }
.focus-subtask { display: flex; align-items: start; gap: .6rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); padding: .6rem; }
.focus-subtask input { width: 1.2rem; height: 1.2rem; flex: 0 0 auto; margin-top: .1rem; accent-color: var(--teal); }
.focus-subtask span small { display: block; margin-bottom: .08rem; color: var(--teal-dark); font-family: var(--mono); font-size: .65rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.focus-session-note { margin-top: .9rem; color: var(--ink-soft); font-size: .75rem; }
.focus-actions { flex-wrap: wrap; }
.more-menu-grid { display: grid; gap: .6rem; }
.more-menu-grid button { display: grid; grid-template-columns: 34px 1fr; gap: .1rem .6rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .8rem; text-align: left; }
.more-menu-grid button:hover { border-color: var(--teal); background: var(--teal-pale); }
.more-menu-grid button > span { grid-row: 1 / 3; align-self: center; font-size: 1.35rem; text-align: center; }
.more-menu-grid strong, .more-menu-grid small { display: block; }
.more-menu-grid small { color: var(--ink-soft); font-size: .76rem; }
.snapshot-list { display: grid; gap: .55rem; max-height: min(52vh, 520px); overflow: auto; padding-right: .15rem; }
.snapshot-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); padding: .72rem; }
.snapshot-row strong, .snapshot-row small { display: block; }
.snapshot-row strong { font-size: .86rem; }
.snapshot-row small { margin-top: .14rem; color: var(--ink-soft); font-size: .72rem; }
.snapshot-row .button { flex: 0 0 auto; }

.toast-region { position: fixed; z-index: 100; right: 1rem; bottom: 1rem; display: grid; gap: .5rem; pointer-events: none; }
.toast { max-width: 360px; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; background: var(--ink); padding: .8rem .95rem; color: white; box-shadow: var(--shadow); animation: toast-in .22s ease both; }
.toast strong, .toast small { display: block; }
.toast small { margin-top: .15rem; color: #c8d7d5; }
@keyframes toast-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

.mobile-nav { display: none; }

@media (max-width: 1200px) {
  .flow-strip { grid-template-columns: 1fr; gap: .5rem; margin-top: -.35rem; padding: .7rem 0; }
  .flow-strip ol { width: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: .42rem; overflow: visible; padding: 0; }
  .flow-strip li { min-width: 0; align-items: flex-start; border: 1px solid var(--line); border-radius: 10px; background: color-mix(in srgb, var(--panel) 78%, transparent); padding: .42rem .48rem; line-height: 1.28; white-space: normal; }
  .flow-strip li + li::before { display: none; }
}

@media (max-width: 1050px) {
  .sidebar { width: 196px; }
  .main-content { margin-left: 196px; padding-right: 1.5rem; padding-left: 1.5rem; }
  .pantry-grid, .module-grid, .template-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .template-kit-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ready-day-library-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .routine-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .passage-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .blank-starter-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .protocol-preset-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .guidance-card { grid-template-columns: 1fr; }
}

@media (max-width: 790px) {
  body { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
  .topbar { height: 66px; }
  .update-ready-banner { top: 74px; right: .65rem; left: .65rem; width: auto; align-items: stretch; flex-direction: column; }
  .update-ready-actions { justify-content: flex-end; }
  .brand .eyebrow { display: none; }
  .brand strong { font-size: 1.15rem; }
  .brand-title-full { display: none; }
  .brand-title-short { display: inline; }
  .brand-mark { width: 34px; height: 34px; }
  .local-badge { display: none; }
  .quick-capture-button { min-height: 44px; padding: .38rem .62rem; }
  .sidebar { display: none; }
  .main-content { margin-left: 0; padding: 92px 1rem calc(3.25rem + env(safe-area-inset-bottom)); scroll-padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
  .mobile-nav {
    position: fixed;
    z-index: 35;
    right: 0;
    bottom: 0;
    left: 0;
    height: calc(72px + env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .16rem;
    border-top: 1px solid var(--line-strong);
    background: rgba(255,254,251,.95);
    padding: .32rem max(.32rem, env(safe-area-inset-right)) max(.32rem, env(safe-area-inset-bottom)) max(.32rem, env(safe-area-inset-left));
    backdrop-filter: blur(18px);
    box-shadow: 0 -8px 28px rgba(21,49,56,.08);
    overflow: hidden;
  }
  .mobile-nav button { min-width: 0; min-height: 54px; display: grid; place-items: center; align-content: center; gap: .12rem; border: 0; border-radius: 11px; background: transparent; padding: .22rem .1rem; color: var(--ink-soft); overflow: hidden; }
  .mobile-nav button span { font-size: 1.15rem; line-height: 1; }
  .mobile-nav button small { display: block; width: 100%; font-size: .75rem; font-weight: 780; line-height: 1.1; overflow: visible; text-align: center; text-overflow: clip; white-space: normal; }
  .mobile-nav button.active { background: var(--control-active-bg); color: var(--control-active-text); }
  .mobile-nav button:focus-visible { outline-offset: -3px; }
  .field-mode, .choice-chip, .filter-button, .mini-button, .template-kit-actions .button { min-height: 44px; }
  .view-header { align-items: start; flex-direction: column; gap: 1rem; }
  .view-header .header-actions { width: 100%; justify-content: flex-start; }
  .task-description, .day-card-open small { overflow: visible; text-overflow: clip; white-space: normal; }
  .system-map-grid { grid-template-columns: 1fr; }
  .program-guide { grid-template-columns: 1fr; }
  .program-guide-item > summary { min-height: 72px; }
  .workspace-accordion { margin: .8rem 0; }
  .workspace-summary { min-height: 72px; padding: .75rem .8rem; }
  .workspace-summary-copy strong { font-size: 1.22rem; }
  .workspace-body { padding: .7rem; }
  .workspace-actions { justify-content: flex-start; }
  h1 { font-size: 2.7rem; }
  .ready-day-loader { grid-template-columns: 1fr; }
  .ready-day-controls { border-top: 1px solid var(--line); border-left: 0; padding-top: .8rem; padding-left: 0; }
  .day-builder-drawers { grid-template-columns: 1fr; }
  .field-mode-bar { align-items: stretch; flex-direction: column; }
  .field-mode-copy { flex-basis: auto; }
  .field-mode-options { justify-content: flex-start; }
  .context-grid, .protocol-grid, .opportunity-footer-grid, .meal-layout, .settings-layout, .signal-grid, .routine-grid, .protocol-preset-grid { grid-template-columns: 1fr; }
  .meal-rhythm-bar { grid-template-columns: 1fr; }
  .protocol-grid::before { left: 1.3rem; }
  .protocol-card { min-height: 185px; margin-left: .5rem; }
  .shopping-list { grid-template-columns: 1fr; }
  .shopping-heading { align-items: start; flex-direction: column; }
  .shopping-heading .header-actions { justify-content: flex-start; }
  .pantry-grid, .module-grid, .template-grid, .field-tool-grid { grid-template-columns: 1fr; }
  .ready-day-library-grid { grid-template-columns: 1fr; }
  .template-library-heading, .template-controls, .kit-library-heading, .field-tool-heading { align-items: stretch; flex-direction: column; }
  .seasonal-subhead, .recipe-import-heading, .recipe-import-actions, .ingredient-review-head { align-items: stretch; flex-direction: column; }
  .kit-controls { grid-template-columns: 1fr; }
  .field-tool-controls { grid-template-columns: 1fr; }
  .active-tool-fields { grid-template-columns: 1fr; }
  .active-tool-reference { grid-column: auto; }
  .template-search, .category-filter { width: 100%; flex-basis: auto; }
  .guidance-options { grid-template-columns: 1fr; }
  .guidance-option { min-height: 104px; }
  .switch-grid, .override-grid { grid-template-columns: 1fr; }
  .local-data-card, .install-card { align-items: start; flex-direction: column; }
  .data-actions { justify-content: flex-start; }
  .workspace-notice { align-items: stretch; flex-direction: column; }
  .workspace-notice-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .workspace-notice-actions .button { width: 100%; }
  .welcome-choice-grid { grid-template-columns: 1fr; }
  .welcome-choice { min-height: 0; }
}

@media (max-width: 520px) {
  .main-content { padding-right: .72rem; padding-left: .72rem; }
  .topbar { padding: 0 .8rem; }
  .quick-capture-button > span:nth-child(2) { display: none; }
  h1 { font-size: 2.35rem; }
  .button { padding-right: .82rem; padding-left: .82rem; }
  .header-actions .button { flex: 1; }
  .update-ready-actions { align-items: stretch; flex-direction: column-reverse; }
  .update-ready-actions .button, .update-ready-actions .text-button { width: 100%; min-height: 44px; }
  .snapshot-row { align-items: stretch; flex-direction: column; }
  .snapshot-row .button { width: 100%; }
  .day-launchpad-head, .day-builder-submit, .day-runbook-head { align-items: stretch; flex-direction: column; }
  .ready-day-actions { grid-template-columns: 1fr; }
  .day-runbook-head-actions { justify-content: space-between; }
  .day-target-toggle { width: 100%; }
  .day-target-toggle button { flex: 1; }
  .day-builder-submit .button { width: 100%; }
  .day-card { grid-template-columns: auto minmax(0,1fr) auto; }
  .day-subtask-list { grid-template-columns: 1fr; }
  .day-radar-quick-add { grid-template-columns: minmax(0, 1fr) auto; }
  .day-radar-quick-add > label:first-child { grid-column: 1 / -1; }
  #day-radar-quick-title { grid-column: 1 / -1; }
  .day-radar-quick-minutes input { width: 5.8rem; }
  .day-choice { grid-template-columns: auto minmax(0,1fr); align-items: start; }
  .day-choice-time { grid-column: 2; align-items: center; flex-direction: row; justify-content: flex-start; gap: .3rem; }
  .day-choice-time input { width: 5rem; min-height: 38px; }
  .day-choice-time span { line-height: 1; }
  .workspace-summary { grid-template-columns: auto minmax(0,1fr) auto; gap: .55rem; }
  .workspace-summary-state { display: none; }
  .workspace-number, .workspace-summary-icon { width: 1.75rem; height: 1.75rem; }
  .settings-disclosure > summary { grid-template-columns: minmax(0,1fr) auto; }
  .settings-save-bar { bottom: calc(5.4rem + env(safe-area-inset-bottom)); align-items: stretch; flex-direction: column; }
  .settings-save-bar .button { width: 100%; }
  .settings-summary-value { display: none; }
  .settings-disclosure > summary::after { grid-column: 2; grid-row: 1; }
  .meal-plan-heading-actions { justify-content: flex-start; }
  .section-row, .radar-group-header { align-items: flex-start; flex-direction: column; }
  .summary-value { display: none; }
  .task-row { grid-template-columns: auto minmax(0,1fr); }
  .task-trailing { grid-column: 2; flex-wrap: wrap; justify-content: flex-start; }
  .subtask-line { grid-template-columns: auto minmax(0,1fr) auto; align-items: start; }
  .subtask-group, .subtask-title-input { grid-column: 2; }
  .subtask-line .remove-subtask { grid-column: 3; grid-row: 1; }
  .meal-day-card { padding: 0; }
  .meal-row { grid-template-columns: 4.8rem minmax(0,1fr); gap: .6rem; padding: .7rem; }
  .meal-actions { grid-column: 2; justify-content: flex-start; }
  .form-grid { grid-template-columns: 1fr; }
  .field-label.full { grid-column: auto; }
  .modal { width: calc(100% - .75rem); max-height: calc(100dvh - 1rem); border-radius: 18px; padding: 1rem; }
  .modal-header h2 { font-size: 1.65rem; }
  .modal-actions { flex-wrap: wrap; }
  .modal-actions .button { flex: 1; }
  .day-path-meals { grid-template-columns: 1fr; }
  .day-path-editor-heading { align-items: stretch; flex-direction: column; }
  .day-path-edit-head { grid-template-columns: 1fr; }
  .day-path-order-actions { justify-content: flex-start; padding-left: 1.8rem; }
  .day-path-modal-actions { bottom: -1rem; margin-right: -1rem; margin-left: -1rem; padding: .8rem 1rem 1rem; }
  .template-kit-grid { grid-template-columns: 1fr; }
  .field-tool-card { min-height: 0; }
  .field-tool-card-actions, .filed-field-tool, .field-tool-editor-heading { align-items: stretch; flex-direction: column; }
  .field-tool-card-actions small { max-width: none; }
  .field-tool-card-actions .button { width: 100%; }
  .blank-starter-grid { grid-template-columns: 1fr; }
  .catch-row { grid-template-columns: 1fr; }
  .catch-actions { justify-content: flex-start; }
  .bundle-choice { grid-template-columns: auto minmax(0,1fr); }
  .bundle-choice > small { grid-column: 2; }
  .routine-step-line { grid-template-columns: auto minmax(0,1fr) auto; }
  .routine-step-line .routine-step-cue { grid-column: 2; }
  .passage-grid { grid-template-columns: 1fr; }
  .focus-progress { margin-right: -1rem; margin-left: -1rem; }
  .recovery-time-option { grid-template-columns: 1fr; align-items: stretch; }
  .recovery-time-option .time-entry input { width: 100%; }
  .use-item, .favorite-plan-row { align-items: flex-start; flex-direction: column; }
  .template-card-actions { align-items: flex-start; flex-wrap: wrap; }
  .ingredient-review { grid-column: auto; }
  .ingredient-interpretation { grid-template-columns: 1fr auto; }
  .ingredient-interpretation .ingredient-arrow { display: none; }
  .ingredient-interpretation strong { grid-column: 1; }
  .ingredient-confidence { grid-column: 2; grid-row: 1 / 3; }
  .toast-region { right: .65rem; bottom: 5rem; left: .65rem; }
  .toast { max-width: none; }
}

@media (max-width: 350px) {
  .topbar { padding-right: .55rem; padding-left: .55rem; }
  .brand { gap: .52rem; }
  .brand strong { font-size: 1rem; }
  .topbar-actions { gap: .38rem; }
  .mobile-nav { gap: 0; padding-right: .18rem; padding-left: .18rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --ink: #e9f0ed;
    --ink-2: #cfddda;
    --ink-soft: #a8bbb8;
    --paper: #12262c;
    --paper-2: #1a343a;
    --panel: #173037;
    --panel-strong: #1c3940;
    --line: #355158;
    --line-strong: #49666d;
    --teal: #69b7b0;
    --teal-dark: #8ad0c9;
    --teal-pale: #234b4c;
    --gold: #d7a35f;
    --gold-ink: #f0d2a3;
    --gold-pale: #4d3b27;
    --rose: #dc8e97;
    --rose-pale: #4e3036;
    --blue: #81afd0;
    --blue-pale: #283f52;
    --green: #79b88f;
    --green-pale: #284436;
    --control-surface: #132b31;
    --control-text: #d4e2df;
    --control-active-bg: #8ad0c9;
    --control-active-text: #09272c;
    --control-hover-bg: #315b5b;
    --control-hover-text: #f6fbf9;
    --shadow: 0 18px 45px rgba(0,0,0,.2);
    --shadow-soft: 0 7px 24px rgba(0,0,0,.16);
  }
  body { background: radial-gradient(circle at 95% 2%, rgba(105,183,176,.1), transparent 26rem), linear-gradient(145deg, #10242a, #162c31); }
  .topbar { background: rgba(18,38,44,.9); }
  .sidebar { background: rgba(23,48,55,.75); }
  .local-badge, .button.secondary { background: rgba(23,48,55,.8); }
  input[type="text"], input[type="search"], input[type="number"], input[type="date"], input[type="time"], input[type="url"], textarea, select, .icon-button, .close-button, .mini-button { background: #132b31; color: var(--ink); }
  .day-launchpad, .field-mode-bar, .control-drawer, .how-card, .settings-card, .settings-disclosure, .workspace-accordion, .system-map-grid article, .rail-card, .shopping-panel, .meal-rhythm-bar, .meal-day-card, .radar-group, .routine-paths, .passage-protocol { background: rgba(23,48,55,.82); }
  .meal-row.unplanned, .catch-row { background: rgba(18,38,44,.72); }
  .field-signals { background: linear-gradient(150deg, rgba(23,48,55,.92), rgba(40,63,82,.55)); }
  .protocol-card.stop { background: linear-gradient(145deg, #173037, #1b3438); }
  .protect-card { background: radial-gradient(circle at 92% 15%, rgba(105,183,176,.16), transparent 13rem), #0c1f24; }
  .sidebar-unmeasurable { background: #3d3325; }
  .sidebar-unmeasurable p { color: #eed7ad; }
  .guidance-option.featured::before, .button.primary, .toast { background: #0b1f24; }
  .walkthrough-button, .field-mode:hover, .field-mode.active, .focus-why { color: #f0d2a3; }
  .workspace-notice { background: linear-gradient(135deg, #4d3b27, #173037); }
  .welcome-mark { background: #0b1f24; }
  .mobile-nav { background: rgba(23,48,55,.96); }
  .day-choice input[type="checkbox"]:checked, .day-meal-choice > input[type="checkbox"]:checked, .day-card > input[type="checkbox"]:checked { accent-color: var(--control-active-bg); }
}
