/* Colour tokens for the Midnight kitchen style and the shared component treatment that reads them. Style-specific rules live in pop.css. */
body { background:var(--canvas); color:var(--ink); }
.app-sidebar { background-color:var(--theme-sidebar); background-image:linear-gradient(var(--theme-sidebar),color-mix(in srgb,var(--theme-sidebar) 90%,transparent)); border-color:var(--line); }
.topbar { background:var(--theme-topbar); border-color:var(--line); }
.welcome-hero { background-color:var(--theme-hero); background-image:linear-gradient(100deg,var(--theme-hero) 0%,var(--theme-hero-veil) 58%,color-mix(in srgb,var(--theme-hero) 80%,transparent) 100%); border-color:var(--line); box-shadow:0 3px 0 var(--theme-shadow); }
.brand,.mobile-brand,.text-button,.breadcrumb,.hero-copy h1 em,.little-heart,.paper-flourish { color:var(--wine); }
.brand small,.sidebar-note,.sidebar-bottom .user-chip strong,.sidebar-bottom .user-chip small,.global-search svg,.global-search input::placeholder,.eyebrow,.handwritten,.hero-copy p,.hero-actions .text-button,.app-footer,.book-info>p,.book-meta .avatar-stack>span:not(.avatar),.recipe-book-name,.recipe-description,.recipe-paper .recipe-summary,.ingredients-list li>strong,.ingredients-list li small,.recipe-columns .handwritten,.recipe-paper .paper-footnote,.paper-footnote a,.review-card>p,.review-card .reply,.review-card .reply strong,.review-author .text-button,.form-field,.form-field small,.form-field>small,.import-box details,.editor-photo,.profile-hero>p.muted,.shopping-row,.shopping-row small,.shopping-row strong,.planned-meal label,.planned-meal>.text-button,.auth-art p,.auth-art>.handwritten { color:var(--muted); }
.nav-link { color:var(--theme-ink-soft); }
.nav-link.active,.nav-link[aria-current=page],.nav-link:hover { color:var(--wine); background:var(--theme-nav); }
.demo-banner { background:var(--paper-dark); color:var(--muted); border-color:var(--line); }
.sidebar-bottom,.app-footer,.global-search kbd,.book-info>.book-meta,.review-card,.reply,.paper-footnote,.ingredients-list li,.planned-meal,.shopping-row,.form-section,.ingredient-row { border-color:var(--line); }
.global-search kbd { color:var(--muted); }
.button.primary { background:var(--wine); border-color:var(--wine); color:#fff; }
.button.primary:hover { background:var(--wine-dark); border-color:var(--wine-dark); }
.button:not(.primary):not(.danger):not(.light) { color:var(--wine); border-color:var(--line); }
.button:not(.primary):not(.danger):not(.light):hover { background:var(--rose-soft); }
.button.subtle { border-color:transparent; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline-color:var(--wine); }
input,textarea,select,.recipe-summary input,.planned-meal input { background:var(--theme-input); color:var(--ink); border-color:var(--line); }
input::placeholder,textarea::placeholder { color:var(--muted); }
input:focus,textarea:focus,select:focus { border-color:var(--wine); box-shadow:0 0 0 3px color-mix(in srgb,var(--wine) 15%,transparent); }
.cookbook-card,.recipe-card,.person-card,.app-dialog,.auth-card,.review-card { background:var(--paper); border-color:var(--line); }
.book-info { background:var(--paper); }
.book-heading,.book-heading h3 button,.recipe-body h3 button,.person-card h3 .text-button { color:var(--ink); }
.book-cover.rose { background-color:var(--theme-cover-main); color:var(--theme-cover-main-ink); }
.book-cover.olive { background-color:var(--theme-cover-secondary); color:var(--theme-cover-secondary-ink); }
.book-cover.ochre { background-color:var(--theme-cover-third); color:var(--theme-cover-third-ink); }
.book-cover.terracotta { background-color:var(--theme-cover-fourth); color:var(--theme-cover-fourth-ink); }
.book-cover-eyebrow,.book-cover-owner { opacity:1; }
.book-heading>.icon-button { color:var(--muted); }
.book-heading>.icon-button.is-following { color:var(--wine); background:var(--rose-soft); }
.book-heading>.icon-button.is-following svg { fill:color-mix(in srgb,var(--wine) 12%,transparent); }
.avatar,.badge,.tag,.recipe-tags .tag { background:var(--theme-chip); color:var(--theme-ink-soft); }
.avatar.sage,.avatar:nth-child(2) { background:var(--sage-light); color:var(--sage); }
.photo-category { background:var(--paper); color:var(--muted); }
.recipe-photo .recipe-placeholder { background:var(--theme-sidebar); color:var(--wine); }
.cookbook-hero.rose,.cookbook-hero.olive,.cookbook-hero.ochre,.cookbook-hero,.profile-hero,.meal-plan,.auth-art { background:var(--theme-hero); border-color:var(--line); }
.cookbook-hero p,.cookbook-hero-meta { color:var(--muted); }
.mini-book { color:var(--wine); border-color:var(--line); background:color-mix(in srgb,var(--paper) 40%,transparent); }
.recipe-paper { background:linear-gradient(var(--paper),var(--paper)) padding-box; box-shadow:0 10px 35px var(--theme-shadow),0 2px 0 var(--walnut); }
.shopping-paper { background:linear-gradient(var(--paper),var(--paper)) padding-box; box-shadow:0 6px 20px var(--theme-shadow),0 2px 0 var(--walnut); }
.paper-recipe-photo { border-color:var(--theme-input); outline-color:var(--line); }
.review-stars,.rating svg { color:var(--ochre); }
.review-stars>span { color:var(--line); }
.notice,.import-box,.editor-photo { background:var(--rose-soft); color:var(--theme-ink-soft); border-color:var(--line); }
.rating-input label span { background:var(--paper); color:var(--muted); border-color:var(--line); }
.rating-input label input:checked+span { background:var(--theme-nav); border-color:var(--wine); color:var(--wine); }
.auth-tabs button { color:var(--muted); }
.auth-tabs button.active { color:var(--wine); border-color:var(--wine); }
.form-error { background:var(--theme-error-bg); color:var(--theme-error-ink); }
.shopping-row.checked>span,.shopping-row.checked>strong { color:var(--muted); }
@media print { .recipe-paper,.shopping-paper { background:#fff; } }
.rating .muted,.recipe-card-meta,.person-card p,.review-author small,.auth-card>p,.profile-hero>p,.recipe-source,.recipe-facts,.reviews-header p,.stat,.instructions-list li::before,.ingredient-calories,.dialog-header p,.auth-footnote,.auth-divider { color:var(--muted); }
.ingredients-list li,.instructions-list li { color:var(--theme-ink-soft); }

/* Midnight kitchen: a night market, bright cartoon produce on deep navy. Component treatment lives in pop.css. */
:root[data-palette="pop"] {
  color-scheme: dark;
  --canvas: #101a33;
  --paper: #18244a;
  --paper-dark: #22305c;
  --ink: #f2f4f7;
  --muted: #a9b3cf;
  --line: #2f3d6b;
  --wine: #ffd43b;
  --wine-dark: #ffe27a;
  --rose-soft: #22305c;
  --sage: #7bd89b;
  --sage-light: #1c3b3d;
  --ochre: #ffd43b;
  --walnut: #101a33;
  --theme-sidebar: #101a33;
  --theme-topbar: #101a33;
  --theme-hero: #101a33;
  --theme-input: #18244a;
  --theme-hero-veil: #101a33;
  --theme-nav: #ffd43b;
  --theme-ink-soft: #d5dbea;
  --theme-chip: #22305c;
  --theme-shadow: transparent;
  --theme-cover-main: #8ec5ff;
  --theme-cover-main-ink: #101a33;
  --theme-cover-secondary: #2e9e5b;
  --theme-cover-secondary-ink: #101a33;
  --theme-cover-third: #ffd43b;
  --theme-cover-third-ink: #101a33;
  --theme-cover-fourth: #ff5a3c;
  --theme-cover-fourth-ink: #101a33;
  --theme-error-bg: #3d1f2e;
  --theme-error-ink: #ff9a7e;
  --night: #101a33;
  --tomato: #ff5a3c;
  --lemon: #ffd43b;
  --basil: #2e9e5b;
  --sky: #8ec5ff;
  --serif: 'Unbounded', 'Arial Rounded MT Bold', sans-serif;
  --sans: 'Hanken Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
