/* Pastel paper stays soft; functional text and controls carry the contrast. */
:root, html[data-theme="coquette"] {
  --ink: #304e6d !important;
  --muted: #596a80 !important;
  --rose-dark: #94466c;
  --blue-ink: #3e638b;
  --sage-ink: #3a6f5b;
  --lilac-ink: #68538d;
  --peach-ink: #785820;
}

/* Navigation and quiet supporting copy remain readable at small sizes. */
.brand-sub, .nav-label, .sidebar-note small, .storage-btn, .account span,
.crumb, .crumb span:last-child, .today, .intro .eyebrow,
.intro p, body:not([data-current-view="dashboard"]) .intro p,
.preview-banner, .preview-banner button, .main-footer,
.diary-welcome p, .diary-welcome small, .diary-stat-label,
.diary-stat-foot, .diary-monthly-note, .diary-empty,
.diary-month-actions > span, .diary-calendar-legend,
.diary-task-copy small, .diary-content-copy small,
.diary-task-date, .diary-content-date,
.diary-collab-card > span:not(.diary-brand-avatar), .diary-collab-card > small,
.panel-head .small-label, .job-desc, .job-meta, .platform-inline,
.job-money span, .job-footer, .day-label, .cal-legend, .upcoming-title,
.visit-copy span, .no-visits, .gentle-note,
.assistant-kicker, .assistant-card p, .assistant-card .assistant-status,
.payment-row p, .payment-amount small, .empty p,
.dialog-head p, .field small, .chat-status {
  color: var(--muted);
}
.brand-name, html[data-theme="coquette"] .brand-name,
.sidebar-note p, .account b, .nav button, .nav button.active,
.intro h1, body:not([data-current-view="dashboard"]) .intro h1,
html[data-theme="coquette"] .intro h1,
.diary-welcome h2, .diary-welcome > b, .diary-panel-head h2,
.diary-panel-head > button, .diary-panel-head > button:hover,
.diary-calendar-top > b, .diary-calendar-top > span,
.diary-collab-card > b, .diary-quote h3, .diary-quote p,
.panel-head h2, .section-title, .job-brand, .job-money b, .rail-heading,
.calendar-month, .visit-copy b, .assistant-card h3, .assistant-card .btn,
.payment-row h3, .payment-amount b, .empty h3, .dialog-head h2,
.field label, .setting-block b {
  color: var(--blue-ink);
}
.intro h1 em, html[data-theme="coquette"] .intro h1 em,
.diary-quote small, .section-divider, .payment-amount button,
.dialog-head .eyebrow, .wizard-head .wizard-app,
.visit-date span, .upcoming-title button, .reminder-kicker {
  color: var(--rose-dark);
}
.diary-stat-value, .diary-task-copy b, .diary-content-copy b, dialog,
html[data-glass="false"] dialog, .field input, .field textarea,
.field select, .search-box input, .chat-form input, select option {
  color: var(--ink);
}

/* Each status has a dark hue, a pale fill, and a written label. */
.diary-badge, .diary-badge.blue, .diary-brand-avatar,
.diary-brand-avatar.blue, .diary-event,
.diary-due-pill, .diary-due-pill.blue,
.diary-collab-card > .diary-badge.blue {
  color: var(--blue-ink);
}
.diary-badge.pink, .diary-brand-avatar.pink, .diary-event.pink,
.diary-due-pill.pink, .diary-collab-card.pink .diary-brand-avatar,
.diary-collab-card > .diary-badge.pink {
  color: var(--rose-dark);
}
.diary-badge.lilac, .diary-brand-avatar.lilac, .diary-event.lilac,
.diary-collab-card.lilac .diary-brand-avatar,
.diary-collab-card > .diary-badge.lilac {
  color: var(--lilac-ink);
}
.diary-badge.mint, .diary-brand-avatar.mint, .diary-due-pill.mint,
.diary-collab-card > .diary-badge.mint {
  color: var(--sage-ink);
}
.diary-badge.sand, .diary-brand-avatar.sand,
.diary-collab-card.sand .diary-brand-avatar,
.diary-collab-card > .diary-badge.sand {
  color: var(--peach-ink);
}
.nav .nav-count, .panel-head h2 span { color: var(--muted); }
.brand-avatar { color: var(--blue-ink); }
.diary-day, .diary-day:hover, .cal-day { color: var(--blue-ink); }
.diary-day-name { color: var(--muted); }
.diary-day.outside { color: #626c7d; background: #f4f5f7; }
.diary-day.today { display: flex; }
.diary-day.today > span:first-child { color: #294b6e; }
.cal-day.today { display: grid; color: #294b6e; }
.diary-day.selected { box-shadow: inset 0 0 0 2px #527ca5; }
.cal-day.selected { outline-color: #527ca5; }

/* Buttons, icon controls, search, and form boundaries. */
.btn-primary, html[data-theme="coquette"] .btn-primary,
html[data-theme="coquette"] .intro .btn-primary, .btn-plain {
  color: #345779;
}
.btn-soft, .pill-select { color: var(--rose-dark); }
.pill-select.done, .pill-select.paid { color: var(--sage-ink); }
.pill-select.wait { color: var(--peach-ink); }
.tabs .tab, .tab, .tab.active { color: #405d7b; }
.tab span, .tab.active span { color: var(--blue-ink); background: #eaf4ff; opacity: 1; }
.icon-btn, .diary-month-actions button, .diary-task-check,
.diary-task-row:hover .diary-task-check,
.nav button > span[data-icon], .diary-panel-head h2 > span[data-icon],
.diary-panel-head h2 > svg, .rail-heading svg, .search-box svg,
.diary-stat-label svg { color: #4b7299; }
.nav button:nth-child(even) > span[data-icon],
.nav button.active > span[data-icon], .diary-stat.pink .diary-stat-label svg {
  color: var(--rose-dark);
}
.diary-stat.lilac .diary-stat-label svg { color: var(--lilac-ink); }
.diary-stat.sand .diary-stat-label svg { color: var(--peach-ink); }
.contact-btn:not(:disabled) { color: var(--sage-ink); }
.search-box, .field input, .field textarea, .field select, .chat-form input,
.diary-task-check, .pill-select, .pill-select.done, .pill-select.paid,
.pill-select.wait, .excel-export-form input, .excel-export-form select,
.wizard-content input:not([type="checkbox"]), .wizard-content select,
.wizard-content textarea, .invoice-link-box input { border-color: #7b8da4; }
input::placeholder, textarea::placeholder, .search-box input::placeholder {
  color: #627086;
  opacity: 1;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--rose-dark); }
.search-box:focus-within { outline: 3px solid #426b94; outline-offset: 3px; }
button:focus-visible, a:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid #426b94;
  outline-offset: 3px;
}
.diary-stat-track span, .payment-track span {
  background: #668fb8;
  border-color: #557aa0;
}
.diary-stat.pink .diary-stat-track span { background: #b6688d; border-color: #a0587b; }
.diary-stat.lilac .diary-stat-track span { background: #8876ae; border-color: #78669e; }
.diary-stat.sand .diary-stat-track span { background: #a37d36; border-color: #8c692c; }
.diary-calendar-legend i { background: #668fb8; }
.diary-calendar-legend .pink i, .diary-calendar-legend i.pink { background: #b6688d; }
.diary-calendar-legend .lilac i, .diary-calendar-legend i.lilac { background: #8876ae; }
.cal-day.has-visit::after { background: #a8587d; }

/* Conversation, notices, and the floating Mimo controls. */
.chat-message { color: var(--ink); }
.chat-message.user { color: #824060; }
.chat-chips button { color: var(--blue-ink); }
.indi-companion-label, .indi-companion-restore, .indi-companion-collapse {
  color: var(--rose-dark);
}
.toast { background: #42658b; border-color: #42658b; color: #fff; }
.toast.error { background: #93476a; border-color: #93476a; }
.invoice-workspace-head p, .invoice-row-right small, .paper-footnote,
.invoice-summary-note, .ai-change dt, .ai-before, .ai-arrow {
  color: var(--muted);
}
.paper-footnote, .invoice-row-right small { font-size: 11px; }
.wizard-progress span.active { background: #668fb8; }
.bottom-nav button { color: var(--muted); font-size: 11px; }
.bottom-nav button.active { color: var(--rose-dark); }
.bottom-nav .bottom-add { color: #294e74; }

/* Give supporting text a little more room, especially on a phone. */
.brand-sub, .nav-label, .storage-btn, .account span, .today,
.preview-banner, .preview-banner button, .main-footer,
.diary-stat-foot, .diary-monthly-note, .diary-welcome p,
.diary-task-copy small, .diary-content-copy small,
.diary-task-date, .diary-content-date, .diary-month-actions > span,
.diary-calendar-legend, .diary-panel-head > button {
  font-size: 11px;
}
.intro .eyebrow { font-size: 10px; }
.intro p, body:not([data-current-view="dashboard"]) .intro p,
.job-desc, .job-meta, .job-money span { font-size: 12px; }
.diary-badge, .diary-task-row > .diary-badge,
.diary-content-row > .diary-badge, .diary-due-pill { font-size: 10px; }
.diary-day, .diary-day-name { font-size: 12px; }
.diary-collab-card > b, .diary-collab-card > span:not(.diary-brand-avatar),
.diary-collab-card > small, .diary-collab-card .diary-brand-avatar { font-size: 11px; }
@media (max-width: 480px) {
  .diary-collab-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .diary-collab-card { padding: 12px; }
}
