:root {
  --ink: #202624;
  --navy: #18231f;
  --navy-2: #263b33;
  --accent: #124633;
  --accent-hover: #0b3526;
  --muted: #737b77;
  --muted-strong: #4f5a55;
  --canvas: #fbfbf8;
  --surface: #ffffff;
  --line: #e1e2dc;
  --line-strong: #cfd2ca;
  --soft: #f0f4ef;
  --surface-subtle: #f8f8f5;
  --warning: #b36a22;
  --danger: #bf4b2a;
  --success: #276044;
  --radius-sm: 5px;
  --radius-md: 7px;
  --radius-lg: 9px;
  --radius-pill: 999px;
  --shadow-card: 0 1px 2px rgba(20, 39, 31, .025);
  --shadow-raised: 0 16px 40px rgba(20, 39, 31, .1);
  --sidebar-width: 248px;
  --header-height: 72px;
}

html { background: var(--canvas); }

body {
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: -.005em;
}

body.app-authenticated { background: var(--canvas); }
body.public-page { background: var(--canvas); }

h1, h2, h3, h4, h5, h6 { color: var(--navy); letter-spacing: -.035em; }
a { color: var(--accent); }
a:hover { color: var(--accent-hover); }

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid rgba(44, 118, 110, .28);
  outline-offset: 3px;
}

.app-header,
.public-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  min-height: var(--header-height);
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, .96);
}

.app-header-inner,
.public-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--header-height);
  gap: 1rem;
  padding: 0 28px;
}

.app-brand {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  color: var(--accent);
  text-decoration: none;
}

.app-brand:hover { color: var(--accent-hover); }

.app-brand-wordmark {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.72rem;
  font-weight: 600;
  letter-spacing: -.055em;
  line-height: 1;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 11px;
  background: var(--navy);
  color: #fff;
}

.brand-mark svg { width: 19px; height: 19px; stroke-width: 2.1; }

.app-brand-copy { display: grid; gap: 1px; line-height: 1.1; }
.app-brand-copy strong { font-size: .96rem; font-weight: 760; letter-spacing: -.025em; }
.app-brand-copy small { color: var(--muted); font-size: .68rem; font-weight: 650; letter-spacing: .055em; text-transform: uppercase; }

.app-header-actions,
.public-header-actions { display: flex; align-items: center; gap: .6rem; }

.app-mobile-menu,
.header-icon-button {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  color: var(--muted-strong);
}

.app-mobile-menu:hover,
.header-icon-button:hover { border-color: var(--line-strong); background: var(--surface-subtle); color: var(--navy); }
.app-mobile-menu svg, .header-icon-button svg { width: 17px; height: 17px; }
.app-header-actions form { margin: 0; }

.home-context {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  min-width: 190px;
  padding: .35rem .8rem .35rem .45rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  color: var(--ink);
  text-align: left;
}

.home-context::after { margin-left: auto; }
.home-context:hover { border-color: var(--line-strong); background: var(--surface-subtle); }
.home-context-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: var(--soft); color: var(--accent); }
.home-context-icon svg { width: 15px; height: 15px; }
.home-context-copy { display: grid; gap: 1px; min-width: 0; }
.home-context-copy small { color: var(--muted); font-size: .62rem; font-weight: 760; letter-spacing: .08em; line-height: 1; text-transform: uppercase; }
.home-context-copy strong { max-width: 115px; overflow: hidden; color: var(--navy); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }

.user-chip { display: inline-flex; align-items: center; gap: .55rem; max-width: 150px; color: var(--muted-strong); font-size: .78rem; font-weight: 650; }
.user-chip > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-avatar { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #cbe0db; border-radius: 50%; background: var(--soft); color: var(--accent); font-size: .72rem; font-weight: 800; }
.notification-dot { top: -4px; right: -4px; min-width: 17px; height: 17px; border: 2px solid #fff; background: var(--danger); font-size: .62rem; }

.app-body { display: flex; min-height: calc(100vh - var(--header-height)); }

.app-sidebar {
  --bs-offcanvas-width: 280px;
  flex: 0 0 var(--sidebar-width);
  width: var(--sidebar-width);
  border-right: 1px solid var(--line);
  background: #fbfcfb;
}

.sidebar-inner { display: flex; flex-direction: column; height: 100%; padding: 26px 15px 22px; }
.sidebar-nav { display: grid; gap: 3px; }
.sidebar-section-label { padding: 0 12px; color: #819095; font-size: .63rem; font-weight: 800; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
.sidebar-section-label-spaced { margin-top: 25px; }
.sidebar-link { display: flex; align-items: center; min-height: 43px; gap: .7rem; padding: .55rem .75rem; border: 1px solid transparent; border-radius: 5px; color: var(--muted-strong); font-size: .84rem; font-weight: 650; text-decoration: none; }
.sidebar-link svg { width: 17px; height: 17px; flex: 0 0 auto; color: #829196; stroke-width: 1.9; }
.sidebar-link:hover { background: #f2f6f4; color: var(--navy); }
.sidebar-link:hover svg { color: var(--accent); }
.sidebar-link.active { border-color: var(--accent); background: var(--accent); color: #fff; font-weight: 720; }
.sidebar-link.active svg { color: #fff; }
.sidebar-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: auto; padding: 0 .3rem; border-radius: var(--radius-pill); background: #f7e7e5; color: var(--danger); font-size: .64rem; font-weight: 800; }
.sidebar-footer { display: grid; gap: 3px; margin-top: auto; padding-top: 21px; border-top: 1px solid var(--line); }
.sidebar-footer .sidebar-section-label { margin-bottom: 4px; }
.sidebar-note { display: flex; align-items: flex-start; gap: .55rem; margin-top: 20px; padding: 12px 10px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; line-height: 1.45; }
.sidebar-note svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--accent); }
.sidebar-mobile-title { color: var(--navy); font-size: .9rem; font-weight: 760; }

.app-main { flex: 1 1 auto; min-width: 0; padding: 34px 34px 56px; }
.app-main-inner { width: min(100%, 1320px); margin: 0 auto; }
.public-main { min-height: calc(100vh - var(--header-height)); padding: 30px 0 60px; }
.public-header-inner { max-width: 1320px; margin: 0 auto; }

.app-alert { margin-bottom: 24px; border-radius: 11px; box-shadow: none; }
.page-heading { align-items: flex-end; margin-bottom: 28px; }
.page-heading-copy { gap: .8rem; }
.page-heading h1 { margin-top: 2px; font-size: clamp(1.8rem, 2.3vw, 2.35rem); font-weight: 780; }
.page-heading-icon { width: 42px; height: 42px; border-color: #d6e8e3; border-radius: 12px; background: var(--soft); color: var(--accent); }
.page-heading-icon svg { width: 19px; height: 19px; stroke-width: 1.9; }
.eyebrow { color: var(--accent); font-size: .66rem; font-weight: 800; letter-spacing: .13em; }
.page-actions { gap: .55rem; }

.btn { min-height: 42px; border-radius: 5px; font-size: .84rem; font-weight: 720; letter-spacing: -.01em; box-shadow: none; }
.btn-primary { --bs-btn-bg: var(--accent); --bs-btn-border-color: var(--accent); --bs-btn-hover-bg: var(--accent-hover); --bs-btn-hover-border-color: var(--accent-hover); --bs-btn-active-bg: var(--accent-hover); --bs-btn-active-border-color: var(--accent-hover); }
.btn-quiet { --bs-btn-color: var(--muted-strong); --bs-btn-border-color: var(--line); --bs-btn-hover-color: var(--navy); --bs-btn-hover-bg: var(--surface-subtle); --bs-btn-hover-border-color: var(--line-strong); background: #fff; }
.btn-outline-primary { --bs-btn-color: var(--accent); --bs-btn-border-color: #9bc7c0; --bs-btn-hover-bg: var(--accent); --bs-btn-hover-border-color: var(--accent); }
.btn-link { color: var(--accent); }
.btn svg, .dropdown-item svg { width: 15px; height: 15px; stroke-width: 1.9; vertical-align: -3px; }

.app-card { border-color: var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); }
.card-header { padding: 17px 22px; border-bottom-color: var(--line); background: transparent !important; color: var(--navy); }
.card-header a { color: var(--accent); font-size: .74rem; }
.list-group-item { padding: 17px 22px; border-color: var(--line); }
.list-group-item:hover { background: #fbfdfc; }
.list-group-item strong { color: var(--navy); font-size: .9rem; }
.list-group-item .small { font-size: .76rem; }

.metric-card { min-height: 126px; padding: 18px 18px 17px; border: 1px solid var(--line); border-top: 3px solid var(--accent); border-left: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-card); }
.metric-card.danger { border-top-color: var(--danger); }
.metric-card.success { border-top-color: var(--success); }
.metric-card.warning { border-top-color: var(--warning); }
.metric-label { color: var(--muted); font-size: .64rem; letter-spacing: .1em; }
.metric-icon { top: 17px; right: 17px; color: #a4b2b3; }
.metric-icon svg { width: 18px; height: 18px; stroke-width: 1.8; }
.metric-value, .metric-card strong { margin-top: 20px; color: var(--navy); font-size: 2rem; font-weight: 780; }
.metric-card.danger .metric-value, .metric-card.danger strong { color: var(--danger); }
.metric-card.success .metric-value, .metric-card.success strong { color: var(--success); }

.quick-action { min-height: 48px; padding: .65rem .75rem; border-color: var(--line); border-radius: 10px; background: #fff; }
.quick-action-label { gap: .6rem; }
.quick-action-label svg { color: var(--accent); }

.hero-card { position: relative; overflow: hidden; margin-top: 8px; padding: clamp(28px, 5vw, 72px); border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow-raised); }
.hero-card h1 { max-width: 720px; margin-top: 12px; color: var(--navy); font-size: clamp(2.5rem, 5vw, 4.35rem); font-weight: 800; letter-spacing: -.065em; line-height: .98; }
.hero-card .lead { max-width: 650px; font-size: 1.06rem; line-height: 1.65; }
.hero-panel { padding: 24px; border-radius: 16px; background: var(--navy); box-shadow: 0 18px 35px rgba(23, 59, 77, .18); }
.hero-panel-header { padding-bottom: 17px; border-bottom-color: rgba(255,255,255,.15); }
.hero-panel-header svg, .hero-panel-row svg { color: #9ad1c8; }
.hero-panel-kicker { color: #aec5cc; font-size: .63rem; letter-spacing: .12em; }
.hero-panel-title { font-size: 1.05rem; }
.hero-panel-row { padding: 16px 0; border-bottom-color: rgba(255,255,255,.12); }
.hero-panel-row strong { font-size: .82rem; }
.hero-panel-row small { color: #b7c8cd; font-size: .7rem; }
.hero-note { display: flex; align-items: center; gap: .45rem; }
.hero-note svg { width: 16px; height: 16px; color: var(--accent); vertical-align: -3px; }

.empty-state { border-radius: var(--radius-lg); }
.empty-state-icon { border-radius: 12px; background: var(--soft); color: var(--accent); }
.dropdown-menu { border-color: var(--line); border-radius: 12px; box-shadow: var(--shadow-raised); }
.dropdown-item { min-height: 42px; border-radius: 8px; color: var(--ink); font-size: .8rem; }
.dropdown-item:hover, .dropdown-item.active { background: var(--soft); color: var(--accent-hover); }
.dropdown-label { color: var(--muted); font-size: .61rem; letter-spacing: .12em; }

.form-label { color: var(--muted-strong); font-size: .78rem; }
.form-control, .form-select { min-height: 44px; border-color: #d7e1de; border-radius: 10px; }
.form-control:focus, .form-select:focus { border-color: #7eb8ae; box-shadow: 0 0 0 .2rem rgba(44, 118, 110, .11); }
.input-group-text { border-color: #d7e1de; background: #f8faf9; }

.table { --bs-table-border-color: var(--line); }
.table thead th { padding: 14px 18px; color: #7b8a8d; font-size: .62rem; letter-spacing: .1em; }
.table tbody td { padding: 16px 18px; font-size: .82rem; }
.table tbody strong { color: var(--navy); }
.status-pill, .category-chip { padding: 5px 9px; font-size: .64rem; letter-spacing: .01em; }
.category-chip { background: var(--soft); color: var(--accent-hover); }
.priority-low { background: #edf3f7; color: #3e6c83; }
.priority-medium { background: #fbf1dc; color: #8a5d18; }
.priority-high { background: #fae9e7; color: var(--danger); }

.calendar-card-head { padding: 18px 22px; }
.calendar-card-head strong { font-size: .9rem; }
.calendar-card-head h2 { margin: 0; color: var(--navy); font-size: .9rem; font-weight: 700; }
.calendar-card-head > div:first-child span { font-size: .75rem; }
.calendar-legend { font-size: .72rem; }
.calendar-frame { padding: 20px 22px 24px; }
.fc { --fc-border-color: var(--line); --fc-today-bg-color: #eff7f4; --fc-page-bg-color: #fff; font-size: .76rem; }
.fc .fc-toolbar-title { font-size: 1.05rem; }
.fc .fc-button { min-height: 38px; min-width: 38px; border-radius: 9px; font-size: .72rem; }
.fc .fc-button-primary { border-color: var(--line); color: var(--muted-strong); }
.fc .fc-button-primary:not(:disabled).fc-button-active { background: var(--navy); border-color: var(--navy); }
.fc .fc-col-header-cell { background: var(--surface-subtle); }
.fc .fc-col-header-cell-cushion { padding: 11px 8px; color: var(--muted); font-size: .62rem; }
.fc .fc-daygrid-day-frame { min-height: 88px; }
.fc .fc-day-today .fc-daygrid-day-number { background: var(--accent); }
.fc .fc-daygrid-event { border-radius: 6px; font-size: .67rem; }

.task-mobile-card { border-color: var(--line); border-radius: 14px; box-shadow: var(--shadow-card); }
.task-mobile-heading h2 { font-size: 1rem; }
.task-mobile-meta dt { color: var(--muted); font-size: .61rem; }
.task-mobile-meta dd { font-size: .78rem; }

.section-kicker { color: var(--accent); font-size: .64rem; letter-spacing: .1em; }
.report-panel { padding: 22px; }
.report-panel-heading > svg { color: var(--accent); }
.report-bar { height: 7px; background: #e8efec; }
.report-bar span { background: var(--accent); }
.report-history-row { padding: 14px 0; }

.assistant-workspace {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: calc(100vh - var(--header-height) - 68px);
  background: var(--surface);
}

.assistant-conversation {
  display: flex;
  flex-direction: column;
  width: min(100%, 940px);
  min-width: 0;
  min-height: inherit;
  margin: 0 auto;
  padding: 4px 20px 0;
}

.assistant-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 0 0 25px;
  border-bottom: 1px solid var(--line);
}

.assistant-home-label,
.assistant-plan-kicker {
  display: block;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.assistant-heading h1 {
  margin: 0;
  font-size: clamp(1.8rem, 2.5vw, 2.35rem);
  font-weight: 650;
  letter-spacing: -.04em;
}

.assistant-heading-actions { display: flex; align-items: center; gap: 10px; }

.assistant-text-button,
.assistant-plan-toggle,
.assistant-plan-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  gap: 8px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: transparent;
  color: var(--muted-strong);
  font-size: .78rem;
  font-weight: 650;
}

.assistant-text-button { border-color: transparent; }
.assistant-text-button:hover,
.assistant-plan-toggle:hover,
.assistant-plan-close:hover { border-color: var(--line-strong); background: var(--surface-subtle); color: var(--accent); }
.assistant-text-button svg,
.assistant-plan-toggle svg,
.assistant-plan-close svg { width: 16px; height: 16px; }

.assistant-thread {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 360px;
  gap: 0;
  padding: 18px 0 32px;
}

.assistant-message {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}

.assistant-message-user { flex-direction: row-reverse; }
.assistant-message-user .assistant-message-content { max-width: 74%; text-align: right; }
.assistant-message-avatar {
  display: grid;
  flex: 0 0 36px;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid #d9e2dc;
  border-radius: 50%;
  background: var(--soft);
  color: var(--accent);
  font-size: .72rem;
  font-weight: 780;
}
.assistant-message-user .assistant-message-avatar { border-color: var(--accent); background: var(--accent); color: #fff; }
.assistant-message-avatar svg { width: 16px; height: 16px; }
.assistant-message-content { min-width: 0; max-width: 82%; padding-top: 2px; }
.assistant-message-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.assistant-message-user .assistant-message-meta { justify-content: flex-end; }
.assistant-message-meta strong { color: var(--ink); font-size: .76rem; }
.assistant-message-meta span { color: #929994; font-size: .66rem; }
.assistant-message-content > p { margin: 0; color: var(--ink); font-size: .91rem; line-height: 1.65; white-space: pre-line; }

.assistant-result-list {
  display: grid;
  overflow: hidden;
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}

.assistant-result-task,
.assistant-plan-task {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 12px;
  padding: 13px 14px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  text-align: left;
  text-decoration: none;
}
.assistant-result-task:last-child,
.assistant-plan-task:last-child { border-bottom: 0; }
.assistant-result-task:hover,
.assistant-plan-task:hover { background: var(--surface-subtle); color: var(--ink); }
.assistant-result-task > svg,
.assistant-plan-task > svg { width: 15px; height: 15px; margin-left: auto; color: var(--muted); }
.assistant-result-task-copy,
.assistant-plan-task-copy { display: grid; min-width: 0; gap: 3px; }
.assistant-result-task-copy strong,
.assistant-plan-task-copy strong { overflow: hidden; color: var(--ink); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.assistant-result-task-copy small,
.assistant-plan-task-copy small { overflow: hidden; color: var(--muted); font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }
.assistant-plan-task-dot { flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.priority-dot-medium { background: var(--warning); }
.priority-dot-high { background: var(--danger); }

.assistant-compose-zone {
  position: sticky;
  bottom: 0;
  z-index: 3;
  margin-top: auto;
  padding: 12px 0 4px;
  background: #fff;
}

.assistant-suggestions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 12px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.assistant-suggestion {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  gap: 8px;
  padding: 8px 10px;
  border: 0;
  border-right: 1px solid var(--line);
  background: #fff;
  color: var(--muted-strong);
  font-size: .72rem;
  font-weight: 640;
}
.assistant-suggestion:last-child { border-right: 0; }
.assistant-suggestion:hover { background: var(--surface-subtle); color: var(--accent); }
.assistant-suggestion svg { width: 15px; height: 15px; }

.assistant-composer {
  display: flex;
  align-items: center;
  min-height: 58px;
  padding: 7px 8px 7px 18px;
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  background: #fff;
}
.assistant-composer:focus-within { border-color: #789b8d; box-shadow: 0 0 0 3px rgba(18, 70, 51, .08); }
.assistant-composer input { flex: 1 1 auto; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: .9rem; }
.assistant-composer input::placeholder { color: #909792; }
.assistant-composer button { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; border: 1px solid var(--accent); border-radius: 5px; background: var(--accent); color: #fff; }
.assistant-composer button:hover { background: var(--accent-hover); }
.assistant-composer button svg { width: 17px; height: 17px; }
.assistant-status-row { display: flex; justify-content: space-between; gap: 20px; min-height: 23px; padding-top: 7px; color: #8b928e; font-size: .63rem; }
#assistant-status { color: var(--accent); font-weight: 650; }

.assistant-plan {
  position: fixed;
  top: var(--header-height);
  right: 0;
  z-index: 1040;
  display: none;
  flex-direction: column;
  width: min(440px, 100vw);
  height: calc(100vh - var(--header-height));
  border-left: 1px solid var(--line);
  background: #fff;
  box-shadow: var(--shadow-raised);
}
.assistant-workspace.plan-open .assistant-plan { display: flex; }
.assistant-plan-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 26px 26px 21px; border-bottom: 1px solid var(--line); }
.assistant-plan-header h2 { margin: 0; font-size: 1.45rem; font-weight: 650; }
.assistant-plan-header p { margin: 5px 0 0; color: var(--muted); font-size: .73rem; }
.assistant-plan-close { width: 36px; min-height: 36px; padding: 0; }
.assistant-plan-close-label { display: none; }
.assistant-plan-summary { display: grid; grid-template-columns: 1fr 2fr; border-bottom: 1px solid var(--line); }
.assistant-plan-summary > div { display: grid; gap: 3px; padding: 16px 20px; border-right: 1px solid var(--line); }
.assistant-plan-summary > div:last-child { border-right: 0; }
.assistant-plan-summary span { color: var(--muted); font-size: .63rem; letter-spacing: .06em; text-transform: uppercase; }
.assistant-plan-summary strong { overflow: hidden; color: var(--ink); font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.assistant-plan-list { flex: 1 1 auto; overflow-y: auto; padding: 10px 18px; }
.assistant-plan-task { border: 1px solid var(--line); border-radius: 5px; margin-bottom: 8px; }
.assistant-plan-task:last-child { border-bottom: 1px solid var(--line); }
.assistant-plan-assignee { display: grid; flex: 0 0 28px; place-items: center; width: 28px; height: 28px; margin-left: auto; border-radius: 50%; background: var(--accent); color: #fff; font-size: .62rem; font-weight: 780; }
.assistant-plan-empty { display: grid; justify-items: center; gap: 8px; padding: 50px 20px; color: var(--muted); text-align: center; }
.assistant-plan-empty svg { width: 24px; height: 24px; color: var(--accent); }
.assistant-plan-empty strong { color: var(--ink); font-size: .86rem; }
.assistant-plan-empty span { font-size: .72rem; }
.assistant-plan-footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 18px 24px; border-top: 1px solid var(--line); }
.assistant-plan-footer a { display: inline-flex; align-items: center; gap: 6px; color: var(--accent); font-size: .73rem; font-weight: 680; text-decoration: none; }
.assistant-plan-footer svg { width: 14px; height: 14px; }

.assistant-empty { display: grid; justify-items: center; max-width: 620px; margin: 10vh auto 0; text-align: center; }
.assistant-empty-icon { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 20px; border: 1px solid #d7e1db; border-radius: 50%; background: var(--soft); color: var(--accent); }
.assistant-empty h1 { margin: 10px 0 12px; font-size: clamp(2rem, 4vw, 3rem); }
.assistant-empty p { max-width: 500px; margin-bottom: 24px; color: var(--muted); line-height: 1.65; }

@media (min-width: 1200px) {
  .assistant-workspace.plan-open { grid-template-columns: minmax(0, 1.1fr) minmax(390px, .9fr); border: 1px solid var(--line); }
  .assistant-workspace.plan-open .assistant-conversation { width: 100%; margin: 0; padding: 28px 34px 16px; }
  .assistant-workspace.plan-open .assistant-heading-actions { display: none; }
  .assistant-workspace.plan-open .assistant-heading h1 { white-space: nowrap; }
  .assistant-workspace.plan-open .assistant-plan { position: static; width: auto; height: auto; min-height: inherit; box-shadow: none; }
}

@media (min-width: 992px) {
  .app-sidebar.offcanvas-lg { position: sticky; top: var(--header-height); height: calc(100vh - var(--header-height)); transform: none; visibility: visible !important; }
}

@media (max-width: 991.98px) {
  .app-body { display: block; }
  .app-sidebar { background: #fbfcfb; }
  .app-main { padding: 28px 24px 48px; }
  .sidebar-inner { min-height: 100%; }
  .assistant-workspace { min-height: calc(100vh - var(--header-height) - 56px); }
}

@media (max-width: 767.98px) {
  :root { --header-height: 68px; }
  .app-header-inner, .public-header-inner { min-height: var(--header-height); padding: 0 16px; }
  .app-brand-copy small { display: none; }
  .app-brand-copy strong { font-size: .9rem; }
  .app-header-actions { gap: .4rem; }
  .app-main { padding: 22px 16px 40px; }
  .public-main { padding-top: 20px; }
  .public-header-actions .btn { min-height: 38px; padding-inline: .7rem; }
  .page-heading { align-items: stretch; flex-direction: column; gap: 18px; margin-bottom: 22px; }
  .page-actions { width: 100%; }
  .page-actions .btn { flex: 1 1 auto; }
  .hero-card { padding: 24px 20px; border-radius: 18px; }
  .hero-card h1 { font-size: clamp(2.35rem, 12vw, 3.35rem); }
  .hero-card .lead { font-size: .96rem; }
  .hero-panel { padding: 20px; }
  .calendar-card-head { align-items: flex-start; flex-direction: column; padding: 17px; }
  .calendar-legend { justify-content: flex-start; }
  .calendar-frame { padding: 14px 12px 17px; }
  .fc .fc-toolbar { align-items: stretch; flex-direction: column; gap: 10px; }
  .fc .fc-toolbar-chunk { justify-content: center; }
  .fc .fc-daygrid-day-frame { min-height: 74px; }
  .task-list-desktop { display: none; }
  .task-list-mobile { display: grid; gap: .75rem; }
  .report-panel { padding: 18px; }
  .app-brand-wordmark { font-size: 1.48rem; }
  .assistant-conversation { padding-inline: 0; }
  .assistant-heading { align-items: flex-start; flex-direction: column; gap: 14px; padding-bottom: 18px; }
  .assistant-heading-actions { width: 100%; }
  .assistant-heading-actions > button { flex: 1 1 50%; }
  .assistant-thread { min-height: 300px; padding-top: 10px; }
  .assistant-message { gap: 10px; padding: 17px 0; }
  .assistant-message-avatar { flex-basis: 32px; width: 32px; height: 32px; }
  .assistant-message-content { max-width: calc(100% - 42px); }
  .assistant-message-user .assistant-message-content { max-width: 82%; }
  .assistant-suggestions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .assistant-suggestion:nth-child(2) { border-right: 0; }
  .assistant-suggestion:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .assistant-status-row { display: block; }
  .assistant-status-row > span:last-child { display: none; }
  .assistant-plan { width: 100vw; }
}

@media (max-width: 430px) {
  .assistant-heading-actions { align-items: stretch; flex-direction: column; }
  .assistant-heading-actions > button { width: 100%; }
  .assistant-message-user .assistant-message-content { max-width: calc(100% - 42px); }
  .assistant-composer { min-height: 54px; padding-left: 14px; }
  .assistant-plan-header { padding: 22px 18px 18px; }
  .assistant-plan-list { padding-inline: 12px; }
  .assistant-plan-footer { padding: 16px 18px; }
}

@media (min-width: 768px) {
  .task-list-mobile { display: none; }
}

/* Calm editorial redesign */
:root {
  --ink: #202522;
  --navy: #17241f;
  --accent: #174b38;
  --accent-hover: #103a2b;
  --muted: #747a76;
  --muted-strong: #505852;
  --canvas: #fafaf7;
  --surface-subtle: #f5f6f1;
  --soft: #eef3ed;
  --line: #dedfd8;
  --line-strong: #c8cbc2;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --shadow-card: none;
  --shadow-raised: 0 20px 55px rgba(24, 42, 34, .12);
}

body { font-size: 15px; }
h1, h2, h3, h4, h5, h6 { font-weight: 650; }
.app-main { padding: 42px 46px 64px; }
.app-main-inner { width: min(100%, 1240px); }
.page-heading { align-items: center; margin-bottom: 30px; }
.page-heading-icon { display: none; }
.page-heading-copy { gap: 0; }
.page-heading h1 { margin-top: 5px; font-size: clamp(1.9rem, 2.3vw, 2.55rem); font-weight: 650; letter-spacing: -.045em; }
.page-heading-copy .text-secondary { max-width: 680px; margin-top: 7px; line-height: 1.55; }
.eyebrow, .section-kicker { letter-spacing: .14em; }
.app-card { border-radius: var(--radius-lg); }
.btn { border-radius: var(--radius-sm); }
.form-control, .form-select { border-radius: var(--radius-md); background-color: #fff; }
.status-pending { background: #edf2ee; color: #355d4c; }
.priority-low { background: #edf2ef; color: #49675a; }
.app-alert { max-width: 760px; margin-left: auto; margin-right: auto; padding: 11px 44px 11px 14px; border-color: var(--line); background: #fff; font-size: .82rem; }
.mobile-home-bar { display: none; }

/* Public landing */
.public-main { padding: 0 0 64px; }
.landing-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(430px, .95fr); align-items: center; min-height: 650px; gap: clamp(55px, 8vw, 120px); padding: 68px 22px 54px; }
.landing-copy { max-width: 650px; }
.landing-copy h1 { margin: 18px 0 22px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.25rem, 5.5vw, 5rem); font-weight: 500; letter-spacing: -.06em; line-height: .98; }
.landing-lead { max-width: 590px; margin: 0; color: var(--muted-strong); font-size: 1.08rem; line-height: 1.75; }
.landing-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 32px; }
.landing-text-link { color: var(--muted-strong); font-size: .86rem; font-weight: 650; text-underline-offset: 4px; }
.landing-preview { border: 1px solid var(--line); background: rgba(255,255,255,.78); }
.landing-preview-head { display: flex; align-items: center; justify-content: space-between; padding: 22px 24px; border-bottom: 1px solid var(--line); }
.landing-preview-head > div { display: grid; gap: 3px; }
.landing-preview-head span { color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.landing-preview-head strong { color: var(--navy); font-size: .95rem; }
.landing-preview-count { padding: 5px 8px; border-radius: 999px; background: var(--soft); color: var(--accent) !important; letter-spacing: 0 !important; text-transform: none !important; }
.landing-task { display: grid; grid-template-columns: 45px minmax(0, 1fr) 30px; align-items: center; gap: 15px; min-height: 82px; padding: 14px 24px; border-bottom: 1px solid var(--line); }
.landing-task-current { background: #f2f6f1; }
.landing-date { display: grid; justify-items: center; color: var(--muted); line-height: 1; }
.landing-date strong { color: var(--navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 500; }
.landing-date small { margin-top: 5px; font-size: .63rem; text-transform: uppercase; }
.landing-task-copy { display: grid; gap: 5px; }
.landing-task-copy strong { color: var(--navy); font-size: .87rem; }
.landing-task-copy small { color: var(--muted); font-size: .72rem; }
.landing-assignee { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--accent); color: #fff; font-size: .65rem; font-weight: 750; }
.landing-assignee-muted { background: #dfe6e0; color: var(--accent); }
.landing-preview-foot { display: flex; align-items: center; gap: 9px; padding: 15px 24px; color: var(--accent); font-size: .73rem; font-weight: 650; }
.landing-preview-foot svg { width: 15px; height: 15px; }
.landing-principles { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.landing-principles article { display: flex; gap: 18px; padding: 28px 30px; border-right: 1px solid var(--line); }
.landing-principles article:last-child { border-right: 0; }
.landing-principles article > span { color: var(--accent); font-family: Georgia, serif; font-size: .86rem; }
.landing-principles h2 { margin: 0 0 7px; font-size: .95rem; }
.landing-principles p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.55; }

/* Authentication */
.auth-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(430px, 1.1fr); min-height: 620px; margin-top: 38px; border: 1px solid var(--line); background: #fff; }
.auth-story { display: flex; flex-direction: column; justify-content: center; padding: clamp(42px, 6vw, 80px); border-right: 1px solid var(--line); background: #f3f5ef; }
.auth-story h1 { max-width: 430px; margin: 17px 0 18px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.6rem, 4vw, 4rem); font-weight: 500; letter-spacing: -.055em; line-height: 1.03; }
.auth-story > p { max-width: 430px; margin: 0; color: var(--muted-strong); line-height: 1.75; }
.auth-story-note { display: flex; align-items: center; gap: 13px; margin-top: 70px; color: var(--accent); font-family: Georgia, serif; font-size: 1.05rem; line-height: 1.45; }
.auth-story-note svg { width: 23px; height: 23px; }
.auth-steps { display: grid; gap: 14px; margin: 45px 0 0; padding: 0; list-style: none; }
.auth-steps li { display: flex; align-items: center; gap: 12px; color: var(--muted-strong); font-size: .84rem; }
.auth-steps span { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid #bdcbc2; border-radius: 50%; color: var(--accent); font-size: .68rem; }
.auth-form-panel { align-self: center; width: min(100%, 520px); padding: clamp(40px, 6vw, 72px); justify-self: center; }
.auth-form-heading { margin-bottom: 30px; }
.auth-form-heading h2 { margin: 8px 0 8px; font-size: 1.85rem; }
.auth-form-heading p { margin: 0; color: var(--muted); font-size: .85rem; }
.auth-switch { margin: 24px 0 0; color: var(--muted); font-size: .8rem; text-align: center; }

/* Mobile home context */
.mobile-home-bar { min-height: 45px; padding: 0 16px; border-bottom: 1px solid var(--line); background: #f7f8f4; }
.mobile-home-context { display: flex; align-items: center; width: 100%; min-height: 44px; gap: 10px; padding: 0; border: 0; background: transparent; color: var(--navy); text-align: left; }
.mobile-home-context > svg { width: 15px; height: 15px; color: var(--accent); }
.mobile-home-context > span { display: flex; min-width: 0; align-items: baseline; gap: 8px; }
.mobile-home-context small { color: var(--muted); font-size: .61rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.mobile-home-context strong { overflow: hidden; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.mobile-home-context::after { margin-left: auto; }

/* Overview */
.overview-summary { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 38px; border: 1px solid var(--line); background: #fff; }
.overview-summary > div { position: relative; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; min-height: 104px; padding: 20px 22px; border-right: 1px solid var(--line); }
.overview-summary > div:last-child { border-right: 0; }
.overview-summary span { color: var(--muted); font-size: .68rem; font-weight: 650; letter-spacing: .05em; }
.overview-summary strong { align-self: end; color: var(--navy); font-family: Georgia, "Times New Roman", serif; font-size: 2rem; font-weight: 500; line-height: 1; }
.overview-summary svg { grid-column: 2; grid-row: 1 / span 2; align-self: center; width: 19px; color: #9ca69f; }
.overview-summary .summary-danger strong, .overview-summary .summary-danger svg { color: var(--danger); }
.overview-work { margin-bottom: 30px; }
.section-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.section-heading-row h2 { margin: 5px 0 0; font-size: 1.35rem; }
.section-heading-row > a { display: inline-flex; align-items: center; gap: 6px; color: var(--muted-strong); font-size: .75rem; font-weight: 650; text-decoration: none; }
.section-heading-row > a svg { width: 14px; }
.overview-task-list { border-top: 1px solid var(--line-strong); }
.overview-task-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) 160px 90px 18px; align-items: center; min-height: 72px; gap: 14px; padding: 12px 12px 12px 4px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.overview-task-row:hover { background: #f7f8f4; color: var(--ink); }
.overview-task-check { color: #89938d; }
.overview-task-check svg { width: 18px; }
.overview-task-copy { display: grid; min-width: 0; gap: 4px; }
.overview-task-copy strong { overflow: hidden; color: var(--navy); font-size: .87rem; text-overflow: ellipsis; white-space: nowrap; }
.overview-task-copy small, .overview-task-row time { color: var(--muted); font-size: .72rem; }
.overview-task-row > svg { width: 15px; color: #a4aba6; }
.overview-task-row.is-overdue .overview-task-check { color: var(--danger); }
.overview-empty { display: flex; align-items: center; gap: 13px; padding: 28px 4px; color: var(--accent); }
.overview-empty > span { display: grid; gap: 3px; }
.overview-empty strong { color: var(--navy); font-size: .86rem; }
.overview-empty small { color: var(--muted); font-size: .75rem; }
.overview-links { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.overview-links > a { display: grid; grid-template-columns: 25px 1fr 16px; align-items: center; min-height: 85px; gap: 12px; padding: 16px 20px; border-right: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.overview-links > a:last-child { border-right: 0; }
.overview-links > a:hover { background: #f5f7f2; }
.overview-links > a > svg { width: 18px; color: var(--accent); }
.overview-links > a > svg:last-child { width: 14px; color: var(--muted); }
.overview-links span { display: grid; gap: 3px; }
.overview-links strong { color: var(--navy); font-size: .82rem; }
.overview-links small { color: var(--muted); font-size: .7rem; }

/* Assistant */
.assistant-workspace { min-height: auto; background: transparent; }
.assistant-conversation { width: min(100%, 820px); min-height: auto; padding: 0; }
.assistant-heading { align-items: center; padding-bottom: 20px; }
.assistant-heading h1 { font-size: clamp(1.8rem, 2.6vw, 2.4rem); }
.assistant-thread { flex: 0 0 auto; min-height: 0; padding: 18px 0 14px; }
.assistant-message { border-bottom: 0; }
.assistant-thread > .assistant-message:first-child { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: #f6f7f3; }
.assistant-compose-zone { position: static; margin-top: 0; padding-top: 0; background: transparent; }
.assistant-suggestions { gap: 8px; margin-bottom: 10px; border: 0; }
.assistant-suggestion { min-height: 42px; border: 1px solid var(--line) !important; border-radius: var(--radius-sm); background: transparent; }
.assistant-composer { border-radius: var(--radius-md); }
.assistant-status-row { min-height: 20px; }
.assistant-plan { border-left-color: var(--line); }
.assistant-plan-task { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; margin: 0; }
.assistant-plan-task:last-child { border-bottom: 0; }
.assistant-plan-task .status-pill { margin-left: auto; }
.assistant-plan-assignee { margin-left: 0; }
@media (min-width: 1200px) {
  .assistant-workspace.plan-open { min-height: 640px; border-radius: var(--radius-md); }
  .assistant-workspace.plan-open .assistant-conversation { min-height: 638px; }
}

/* Task detail and form */
.task-detail-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .8fr); gap: 50px; border-top: 1px solid var(--line-strong); padding-top: 30px; }
.task-detail-intro h2 { margin: 5px 0 12px; font-size: 1.3rem; }
.task-detail-intro p { max-width: 720px; margin: 0; line-height: 1.7; }
.task-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 30px 0 0; border-top: 1px solid var(--line); }
.task-facts > div { display: grid; grid-template-columns: 120px 1fr; gap: 15px; min-height: 62px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.task-facts > div:nth-child(odd) { padding-right: 28px; }
.task-facts > div:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--line); }
.task-facts dt { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .74rem; font-weight: 650; }
.task-facts dt svg { width: 15px; }
.task-facts dd { margin: 0; color: var(--navy); font-size: .82rem; font-weight: 600; }
.task-notes { margin-top: 30px; padding: 22px 24px; border-left: 2px solid var(--accent); background: #f5f7f2; }
.task-notes p { margin: 8px 0 0; line-height: 1.65; }
.task-detail-secondary { border-left: 1px solid var(--line); padding-left: 32px; }
.task-side-section { padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid var(--line); }
.task-side-heading { display: flex; align-items: center; gap: 9px; margin-bottom: 15px; }
.task-side-heading svg { width: 17px; color: var(--accent); }
.task-side-heading h2 { margin: 0; font-size: .95rem; }
.task-side-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 11px 0; font-size: .77rem; }
.task-side-row > span { display: grid; gap: 3px; }
.task-side-row small, .task-side-row time, .task-side-empty { color: var(--muted); font-size: .7rem; }
.task-side-empty { margin: 0; font-style: italic; }
.task-delete-action { margin-top: 35px; }
.task-delete-action .btn { padding-left: 0; }
.task-form { border-top: 1px solid var(--line-strong); }
.task-form-section { padding: 30px 0 32px; }
.task-form-section-heading { display: flex; align-items: flex-start; gap: 15px; margin-bottom: 24px; }
.task-form-section-heading > span { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #bbcbc1; border-radius: 50%; color: var(--accent); font-family: Georgia, serif; font-size: .72rem; }
.task-form-section-heading h2 { margin: 0 0 4px; font-size: 1.1rem; }
.task-form-section-heading p { margin: 0; color: var(--muted); font-size: .76rem; }
.optional-label { margin-left: 5px; color: #969d98; font-size: .66rem; font-weight: 500; }
.task-form-advanced { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.task-form-advanced > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 4px; cursor: pointer; list-style: none; }
.task-form-advanced > summary::-webkit-details-marker { display: none; }
.task-form-advanced > summary > span { display: grid; grid-template-columns: 24px 1fr; align-items: center; column-gap: 10px; }
.task-form-advanced > summary svg { width: 17px; color: var(--accent); }
.task-form-advanced > summary small { grid-column: 2; color: var(--muted); font-size: .7rem; }
.task-form-advanced[open] > summary > svg { transform: rotate(180deg); }
.task-form-advanced-body { padding: 6px 4px 30px; }
.reminder-section-heading { display: flex; align-items: center; gap: 10px; margin: 8px 0 2px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--accent); }
.reminder-section-heading svg { width: 18px; height: 18px; flex: 0 0 auto; }
.reminder-section-heading strong { display: block; color: var(--ink); font-size: .9rem; }
.reminder-section-heading small { display: block; margin-top: 2px; color: var(--muted); font-size: .73rem; }
.task-form-actions { display: flex; justify-content: flex-end; gap: 9px; padding-top: 24px; }

.channel-picker {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 6px;
  border: 1px solid #d7e1de;
  border-radius: 10px;
  background: #fcfdfc;
}

.channel-option { position: relative; margin: 0; cursor: pointer; }
.channel-option input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.channel-option-body {
  display: flex;
  align-items: center;
  min-height: 46px;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: #fff;
  color: var(--muted-strong);
  font-size: .74rem;
  font-weight: 680;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.channel-option-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 29px;
  height: 29px;
  border-radius: 8px;
  background: var(--soft);
  color: var(--accent);
}

.channel-option-icon svg { width: 15px; height: 15px; stroke-width: 1.9; }
.channel-option-check { display: grid; place-items: center; margin-left: auto; opacity: 0; color: var(--accent); }
.channel-option-check svg { width: 15px; height: 15px; stroke-width: 2.3; }
.channel-option:hover .channel-option-body { border-color: #b9d2cc; background: #f7fbf9; color: var(--navy); }
.channel-option input:checked + .channel-option-body { border-color: #9bc7c0; background: #eff7f4; color: var(--accent-hover); }
.channel-option input:checked + .channel-option-body .channel-option-check { opacity: 1; }
.channel-option input:focus-visible + .channel-option-body { outline: 3px solid rgba(44, 118, 110, .28); outline-offset: 2px; }

/* Suggestions, homes, profile, and empty states */
.suggestion-list, .home-list { border-top: 1px solid var(--line-strong); }
.suggestion-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) 170px 115px; align-items: center; gap: 20px; min-height: 112px; padding: 20px 5px; border-bottom: 1px solid var(--line); }
.suggestion-icon, .home-row-icon { display: grid; place-items: center; width: 34px; height: 34px; color: var(--accent); }
.suggestion-icon svg, .home-row-icon svg { width: 18px; }
.suggestion-copy { min-width: 0; }
.suggestion-copy h2 { margin: 8px 0 4px; font-size: .98rem; }
.suggestion-copy p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.suggestion-schedule { display: grid; gap: 5px; }
.suggestion-schedule span { color: var(--muted); font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; }
.suggestion-schedule strong { color: var(--muted-strong); font-size: .75rem; }
.suggestion-add { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; color: var(--accent); font-size: .76rem; font-weight: 700; text-decoration: none; }
.suggestion-add svg { width: 14px; }
.home-row { display: grid; grid-template-columns: 45px minmax(0, 1fr) auto auto; align-items: center; gap: 18px; min-height: 96px; padding: 17px 4px; border-bottom: 1px solid var(--line); }
.home-row-copy h2 { margin: 0 0 4px; font-size: 1rem; }
.home-row-copy p { margin: 0; color: var(--muted); font-size: .75rem; }
.home-current { display: inline-flex; align-items: center; gap: 5px; color: var(--accent); font-size: .7rem; font-weight: 700; }
.home-current svg { width: 13px; }
.home-row-actions { display: flex; gap: 8px; }
.profile-layout { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); border-top: 1px solid var(--line-strong); }
.profile-note { padding: 32px 38px 32px 0; border-right: 1px solid var(--line); }
.profile-note > svg { width: 20px; color: var(--accent); }
.profile-note h2 { margin: 20px 0 8px; font-size: 1rem; }
.profile-note p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.65; }
.profile-form { padding: 32px 0 32px 42px; }
.empty-state-plain { border: 0; background: transparent; box-shadow: none; }
.empty-state { margin-top: 70px; }
.empty-state h1, .empty-state h2 { margin: 15px 0 9px; font-size: 1.6rem; }
.empty-state p { max-width: 430px; margin-left: auto; margin-right: auto; }
.error-code { color: #b8c2bb; font-family: Georgia, serif; font-size: 4rem; line-height: 1; }
.integration-note { display: flex; align-items: flex-start; gap: 10px; max-width: 760px; margin-bottom: 18px; padding: 11px 0; color: var(--muted); font-size: .75rem; }
.integration-note svg { flex: 0 0 auto; width: 16px; color: var(--accent); }
.integration-note strong { color: var(--muted-strong); }
.report-summary-strip { margin-top: 12px; }

@media (max-width: 1199.98px) and (min-width: 992px) {
  .landing-hero { grid-template-columns: 1fr; min-height: auto; gap: 46px; }
  .landing-preview { width: min(100%, 680px); }
}

@media (max-width: 1100px) and (min-width: 992px) {
  .task-detail-layout { grid-template-columns: 1fr; gap: 34px; }
  .task-detail-secondary { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; border-left: 0; border-top: 1px solid var(--line); padding: 30px 0 0; }
  .task-delete-action { grid-column: 1 / -1; margin-top: 0; }
}

@media (max-width: 991.98px) {
  .app-main { padding: 32px 26px 52px; }
  .mobile-home-bar { display: block; }
  .landing-hero { grid-template-columns: 1fr; min-height: auto; padding-top: 60px; }
  .landing-copy { max-width: 730px; }
  .landing-preview { width: min(100%, 650px); }
  .auth-layout { grid-template-columns: 1fr; }
  .auth-story { min-height: 300px; border-right: 0; border-bottom: 1px solid var(--line); }
  .auth-story-note { margin-top: 35px; }
  .task-detail-layout { grid-template-columns: 1fr; gap: 34px; }
  .task-detail-secondary { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; border-left: 0; border-top: 1px solid var(--line); padding: 30px 0 0; }
  .task-delete-action { grid-column: 1 / -1; margin-top: 0; }
}

@media (max-width: 767.98px) {
  .app-main { padding: 26px 16px 42px; }
  .page-heading { gap: 15px; margin-bottom: 24px; }
  .page-heading h1 { font-size: 1.85rem; }
  .page-actions .btn { min-height: 44px; }
  .page-actions form { display: flex; flex: 1 1 auto; }
  .page-actions form .btn { width: 100%; }
  .header-icon-button, .app-mobile-menu { width: 44px; height: 44px; }
  .public-header-actions .btn { min-height: 44px; }
  .public-main { padding-bottom: 40px; }
  .landing-hero { gap: 42px; padding: 45px 4px 38px; }
  .landing-copy h1 { margin-top: 14px; font-size: clamp(2.75rem, 14vw, 4rem); }
  .landing-lead { font-size: .96rem; line-height: 1.65; }
  .landing-actions { align-items: flex-start; flex-direction: column; gap: 16px; }
  .landing-preview-head, .landing-task, .landing-preview-foot { padding-left: 17px; padding-right: 17px; }
  .landing-task { grid-template-columns: 38px 1fr 28px; gap: 11px; }
  .landing-principles { grid-template-columns: 1fr; }
  .landing-principles article { padding: 22px 4px; border-right: 0; border-bottom: 1px solid var(--line); }
  .landing-principles article:last-child { border-bottom: 0; }
  .auth-layout { margin: 20px 0 0; border-left: 0; border-right: 0; }
  .auth-story { min-height: 0; padding: 36px 24px; }
  .auth-story h1 { font-size: 2.55rem; }
  .auth-story-note, .auth-steps { display: none; }
  .auth-form-panel { padding: 38px 24px; }
  .overview-summary { grid-template-columns: repeat(2, 1fr); margin-bottom: 30px; }
  .overview-summary > div { min-height: 88px; padding: 15px 16px; }
  .overview-summary > div:nth-child(2) { border-right: 0; }
  .overview-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .overview-summary strong { font-size: 1.75rem; }
  .overview-task-row { grid-template-columns: 28px minmax(0, 1fr) 16px; gap: 9px; padding: 14px 3px; }
  .overview-task-row time { grid-column: 2; }
  .overview-task-row .status-pill, .overview-task-row .task-priority { grid-column: 2; width: max-content; }
  .overview-task-row > svg { grid-column: 3; grid-row: 1 / span 3; }
  .overview-links { grid-template-columns: 1fr; }
  .overview-links > a { min-height: 70px; padding: 12px 4px; border-right: 0; border-bottom: 1px solid var(--line); }
  .overview-links > a:last-child { border-bottom: 0; }
  .assistant-heading { align-items: flex-start; }
  .assistant-heading-actions { flex-direction: row; }
  .assistant-heading-actions > button { width: auto; flex: 1 1 50%; }
  .assistant-heading-actions > button { min-height: 44px; }
  .assistant-thread > .assistant-message:first-child { padding: 15px; }
  .assistant-suggestions { gap: 6px; }
  .assistant-suggestion { justify-content: flex-start; min-height: 44px; padding: 8px 11px; }
  .assistant-plan { top: 0; height: 100dvh; }
  .assistant-plan-close { width: auto; min-width: 44px; min-height: 44px; padding-inline: 10px; gap: 7px; }
  .assistant-plan-close-label { display: inline; font-size: .7rem; font-weight: 650; }
  .task-detail-layout { padding-top: 22px; }
  .task-facts { grid-template-columns: 1fr; }
  .task-facts > div:nth-child(odd), .task-facts > div:nth-child(even) { padding: 15px 0; border-left: 0; }
  .task-detail-secondary { grid-template-columns: 1fr; gap: 0; }
  .task-form-section { padding-top: 23px; }
  .task-form-advanced > summary small { max-width: 250px; }
  .channel-picker { grid-template-columns: 1fr; }
  .suggestion-row { grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 19px 0; }
  .suggestion-schedule, .suggestion-add { grid-column: 2; }
  .suggestion-add { justify-content: flex-start; }
  .home-row { grid-template-columns: 38px 1fr auto; gap: 10px; }
  .home-current { grid-column: 2; }
  .home-row-actions { grid-column: 2 / -1; }
  .profile-layout { grid-template-columns: 1fr; }
  .profile-note { padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .profile-form { padding: 26px 0; }
  .calendar-frame { padding: 8px 14px 14px; }
  .fc .fc-toolbar { align-items: center; flex-direction: row; }
  .fc .fc-toolbar-title { font-size: .95rem; }
  .fc .fc-button { min-height: 42px; min-width: 42px; }
  .assistant-composer button { flex-basis: 44px; width: 44px; height: 44px; }
  .fc .fc-list-event-title a { color: var(--navy); font-size: .78rem; }
  .fc .fc-list-event-time { color: var(--muted); font-size: .7rem; }
}

@media (max-width: 430px) {
  .assistant-heading-actions { align-items: stretch; flex-direction: row; }
  .assistant-heading-actions > button { width: auto; font-size: .7rem; }
  .assistant-heading h1 { font-size: 1.7rem; }
  .task-form-actions .btn { flex: 1 1 50%; }
}

@media (max-width: 380px) {
  .assistant-heading-actions { align-items: stretch; flex-direction: column; }
  .assistant-heading-actions > button { width: 100%; }
}

/* Supplied landing and sign-in references */
.public-page {
  --reference-canvas: #fbfaf8;
  --reference-ink: #20272c;
  --reference-green: #174d3d;
  --reference-line: #dcded9;
  background: var(--reference-canvas);
  color: var(--reference-ink);
  overflow-x: hidden;
}

.public-page .public-header {
  position: relative;
  min-height: 98px;
  background: var(--reference-canvas);
  border-bottom-color: var(--reference-line);
}

.public-header > .public-header-inner {
  width: 100%;
  max-width: none;
  min-height: 98px;
  padding: 0 clamp(24px, 2.5vw, 40px);
}

.public-header .app-brand-wordmark {
  color: var(--reference-green);
  font-size: 2rem;
  font-weight: 600;
}

.public-nav,
.public-auth-prompt {
  display: flex;
  align-items: center;
  gap: clamp(26px, 3.4vw, 52px);
}

.public-nav a,
.public-auth-prompt a,
.public-auth-prompt span {
  color: var(--reference-ink);
  font-size: 1rem;
  text-decoration: none;
}

.public-nav a:hover,
.public-auth-prompt a:hover { color: var(--reference-green); }

.public-nav-cta {
  display: inline-flex;
  align-items: center;
  min-height: 54px;
  padding: 0 23px;
  border-radius: 5px;
  background: var(--reference-green);
  color: #fff !important;
}

.public-nav-cta:hover { background: #0e3c2f; }

.public-auth-prompt { gap: 19px; }
.public-auth-prompt a { color: var(--reference-green); text-decoration: underline; text-underline-offset: 4px; }

.public-main {
  min-height: calc(100vh - 98px);
  padding: 0 0 0;
  background: var(--reference-canvas);
}

.public-main > .app-main-inner {
  width: min(calc(100% - 96px), 1470px);
  max-width: none;
  padding: 0;
}

.landing-hero {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  align-items: center;
  gap: 54px;
  min-height: 551px;
  padding: 34px 16px 46px;
}

.landing-copy { max-width: 650px; }
.landing-copy h1 {
  max-width: 650px;
  margin: 0;
  color: var(--reference-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.2rem, 4.25vw, 4.6rem);
  font-weight: 400;
  letter-spacing: -.065em;
  line-height: 1.03;
}

.landing-lead {
  max-width: 560px;
  margin: 34px 0 0;
  color: #3d464a;
  font-size: 1.18rem;
  line-height: 1.55;
}

.landing-actions { display: flex; align-items: center; gap: 16px; margin-top: 37px; }
.landing-actions .btn { min-height: 59px; padding-inline: 27px; font-size: 1rem; font-weight: 500; }
.landing-actions .btn-primary { background: var(--reference-green); border-color: var(--reference-green); }
.landing-secondary-action { border-color: #3d464a; color: var(--reference-ink); background: transparent; }
.landing-secondary-action:hover { background: #fff; border-color: var(--reference-green); color: var(--reference-green); }

.landing-preview {
  align-self: start;
  width: 100%;
  padding: 17px 18px 0;
  border: 1px solid var(--reference-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}

.landing-preview-title h2 { margin: 0 0 14px; color: var(--reference-ink); font-size: 1.35rem; font-weight: 650; letter-spacing: -.035em; }
.landing-week-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 1px solid var(--reference-line); }
.landing-day { min-width: 0; min-height: 128px; padding: 10px 10px 11px; border-right: 1px solid var(--reference-line); }
.landing-day:last-child { border-right: 0; }
.landing-day > span { display: block; color: #30393d; font-size: .64rem; font-weight: 750; letter-spacing: .11em; white-space: nowrap; }
.landing-day > strong { display: block; margin-top: 37px; color: #7c8381; font-size: .86rem; font-weight: 500; text-align: center; }
.landing-event { display: flex; align-items: flex-start; gap: 5px; min-height: 73px; margin-top: 17px; padding: 10px 8px; border: 1px solid transparent; border-radius: 4px; color: #32433d; font-size: .68rem; line-height: 1.35; }
.landing-event svg { width: 12px; height: 12px; flex: 0 0 auto; margin-top: 1px; stroke-width: 2; }
.landing-event.is-complete { border-color: #dfe5dd; background: #f5f7f2; }
.landing-event.is-complete svg { color: var(--reference-green); }
.landing-event.is-medium { border-color: #f0ddd4; background: #fff5f0; }
.landing-event.is-medium svg { color: #d3542d; fill: #d3542d; }
.landing-event.is-low { border-color: #e1e7df; background: #f6f8f4; }
.landing-event.is-low svg { color: var(--reference-green); fill: var(--reference-green); }

.landing-preview-table { padding-top: 17px; }
.landing-table-row { display: grid; grid-template-columns: minmax(230px, 1.8fr) minmax(120px, 1fr) minmax(105px, .9fr) minmax(85px, .75fr) 12px; align-items: center; column-gap: 12px; min-height: 49px; border-bottom: 1px solid var(--reference-line); color: #30383c; font-size: .75rem; }
.landing-table-row:last-child { border-bottom: 0; }
.landing-table-head { min-height: 29px; color: #30383c; font-size: .6rem; font-weight: 800; letter-spacing: .13em; }
.landing-table-head span { display: flex; align-items: center; gap: 3px; white-space: nowrap; }
.landing-table-head svg { width: 10px; height: 10px; }
.landing-table-task { display: flex; align-items: center; min-width: 0; gap: 12px; white-space: nowrap; }
.task-circle { display: inline-grid; flex: 0 0 auto; place-items: center; width: 21px; height: 21px; border: 1px solid #697475; border-radius: 50%; color: transparent; }
.task-circle.is-done { border-color: var(--reference-green); background: var(--reference-green); color: #fff; padding: 4px; }
.landing-table-row.is-done .landing-table-task { color: #697174; text-decoration: line-through; }
.landing-priority { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.landing-priority svg { width: 9px; height: 9px; fill: currentColor; stroke-width: 0; }
.landing-priority.is-low { color: var(--reference-green); }
.landing-priority.is-medium { color: #d3542d; }
.landing-kebab { align-self: center; color: #293236; font-size: 1.25rem; line-height: 1; }

.landing-benefit-strip,
.landing-feature-grid {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding-right: max(32px, calc((100vw - 1470px) / 2 + 16px));
  padding-left: max(32px, calc((100vw - 1470px) / 2 + 16px));
  border-top: 1px solid var(--reference-line);
}

.landing-benefit-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.landing-benefit-strip article,
.landing-feature-grid article { display: flex; align-items: center; gap: 28px; min-width: 0; padding: 30px 30px; }
.landing-benefit-strip article + article,
.landing-feature-grid article + article { border-left: 1px solid var(--reference-line); }
.landing-benefit-strip article { min-height: 120px; }
.landing-benefit-strip article > svg,
.landing-feature-grid article > svg { flex: 0 0 auto; width: 38px; height: 38px; color: var(--reference-green); stroke-width: 1.45; }
.landing-benefit-strip h2,
.landing-feature-grid h2 { margin: 0 0 5px; color: var(--reference-ink); font-size: 1.08rem; font-weight: 650; letter-spacing: -.025em; }
.landing-benefit-strip p,
.landing-feature-grid p { margin: 0; color: #475052; font-size: .93rem; line-height: 1.45; }
.landing-feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--reference-line); }
.landing-feature-grid article { align-items: flex-start; min-height: 162px; padding-top: 45px; }
.landing-feature-grid article > svg { width: 47px; height: 47px; }

.auth-reference {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  width: min(100%, 1010px);
  margin: clamp(76px, 17vh, 154px) auto 75px;
}

.auth-reference-story { padding: 35px 70px 35px 0; border-right: 1px solid var(--reference-line); }
.auth-reference-story h1 { margin: 27px 0 20px; color: var(--reference-ink); font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 4vw, 3.6rem); font-weight: 400; letter-spacing: -.06em; line-height: 1; }
.auth-reference-story > p { max-width: 430px; margin: 0; color: #535e63; font-size: 1.1rem; line-height: 1.6; }
.auth-reference-points { display: grid; gap: 25px; margin: 43px 0 0; padding: 0; list-style: none; }
.auth-reference-points li { display: flex; align-items: center; gap: 19px; color: var(--reference-ink); font-size: 1rem; }
.auth-reference-points svg { width: 31px; height: 31px; color: var(--reference-ink); stroke-width: 1.45; }
.auth-reference-form { display: flex; align-items: flex-start; padding: 35px 0 35px 70px; }
.auth-reference-form form { width: 100%; max-width: 432px; }
.auth-field { margin-bottom: 28px; }
.auth-field .form-label { display: block; margin-bottom: 10px; color: var(--reference-ink); font-size: 1rem; }
.auth-field .form-control { height: 58px; padding: 0 16px; border: 1px solid #d0d2ce; border-radius: 4px; background: transparent; color: var(--reference-ink); font-size: 1rem; }
.auth-field .form-control::placeholder { color: #717a7f; opacity: 1; }
.auth-field .form-control:focus { border-color: var(--reference-green); box-shadow: 0 0 0 3px rgba(23, 77, 61, .12); }
.auth-password-input { position: relative; }
.auth-password-input .form-control { padding-right: 52px; }
.auth-password-input > svg { position: absolute; top: 50%; right: 18px; width: 21px; height: 21px; color: #657176; transform: translateY(-50%); pointer-events: none; }
.auth-remember { display: flex; align-items: center; gap: 10px; margin: 0 0 26px; padding-left: 0; }
.auth-remember .form-check-input { position: static; width: 20px; height: 20px; margin: 0; border-color: #667177; border-radius: 2px; }
.auth-remember .form-check-label { color: var(--reference-ink); font-size: .9rem; }
.auth-submit { min-height: 60px; border-radius: 4px; background: var(--reference-green); border-color: var(--reference-green); font-size: 1.05rem; font-weight: 500; }
.auth-forgot { display: block; margin: 25px 0 42px; color: #345d51; font-size: .92rem; text-align: center; text-decoration: underline; text-underline-offset: 4px; }
.auth-security-note { display: flex; align-items: center; gap: 13px; color: #697277; font-size: .78rem; }
.auth-security-note svg { width: 18px; height: 18px; flex: 0 0 auto; stroke-width: 1.5; }

@media (max-width: 1199.98px) {
  .landing-hero { grid-template-columns: 1fr; gap: 40px; min-height: auto; padding-top: 58px; }
  .landing-copy { max-width: 720px; }
  .landing-copy h1 { max-width: 720px; }
  .landing-preview { max-width: 820px; }
}

@media (max-width: 767.98px) {
  .public-page .public-header,
  .public-header > .public-header-inner { min-height: 76px; }
  .public-header > .public-header-inner { padding-inline: 20px; }
  .public-header .app-brand-wordmark { font-size: 1.8rem; }
  .public-nav { gap: 15px; }
  .public-nav a:not(.public-nav-cta) { display: none; }
  .public-nav-cta { min-height: 44px; padding-inline: 14px; font-size: .82rem !important; }
  .public-auth-prompt { gap: 9px; }
  .public-auth-prompt span, .public-auth-prompt a { font-size: .8rem; }
  .public-main > .app-main-inner { width: calc(100% - 32px); }
  .landing-hero { gap: 36px; padding: 45px 0 38px; }
  .landing-copy h1 { font-size: clamp(2.7rem, 13vw, 4rem); }
  .landing-lead { margin-top: 23px; font-size: 1rem; }
  .landing-actions { align-items: stretch; flex-direction: column; gap: 10px; margin-top: 26px; }
  .landing-actions .btn { width: 100%; }
  .landing-preview { padding: 16px 12px 0; overflow: hidden; }
  .landing-week-grid { overflow-x: auto; grid-template-columns: repeat(7, minmax(88px, 1fr)); }
  .landing-day { min-height: 118px; padding-inline: 8px; }
  .landing-table-row { grid-template-columns: minmax(190px, 1.5fr) 110px 100px 75px 10px; min-width: 570px; }
  .landing-preview-table { overflow-x: auto; }
  .landing-benefit-strip,
  .landing-feature-grid { grid-template-columns: 1fr; padding-right: 16px; padding-left: 16px; }
  .landing-benefit-strip article,
  .landing-feature-grid article { min-height: 94px; padding: 23px 0; }
  .landing-benefit-strip article + article,
  .landing-feature-grid article + article { border-top: 1px solid var(--reference-line); border-left: 0; }
  .landing-feature-grid article { min-height: 128px; padding-top: 28px; }
  .auth-reference { grid-template-columns: 1fr; width: 100%; margin: 55px 0 50px; }
  .auth-reference-story { padding: 0 0 35px; border-right: 0; border-bottom: 1px solid var(--reference-line); }
  .auth-reference-story h1 { margin-top: 20px; font-size: 3rem; }
  .auth-reference-story > p { font-size: 1rem; }
  .auth-reference-points { gap: 19px; margin-top: 29px; }
  .auth-reference-points li { font-size: .92rem; }
  .auth-reference-form { padding: 35px 0 0; }
  .auth-reference-form form { max-width: none; }
}
