/* Dream Family: presentation-only theme, shared by every live HTML entry point.
   Legacy variable names are aliases, not API or persisted-data migrations. */
:root{
 --dream-green-900:#1F5D57;--dream-green-600:#4E9A8B;--dream-orange-600:#E76F3C;--dream-sun-500:#F4B63F;--dream-mint-400:#A7C6B0;--dream-peach-200:#FFD7B0;--dream-mint-100:#E8F3EE;
 --dream-text-primary:#2D3748;--dream-text-secondary:#6B7280;--dream-background:#FFFFFF;--dream-background-secondary:#F8FAF9;--dream-surface-soft:#F1F8F5;--dream-border:#E5EAE8;--dream-error:#DC4C4C;--dream-error-text:#a12c36;
 --dream-font:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
 --ink:var(--dream-text-primary);--muted:var(--dream-text-secondary);--line:var(--dream-border);--purple:var(--dream-green-900);--lilac:var(--dream-mint-100);--lime:var(--dream-mint-100);--paper:var(--dream-background-secondary);--menu-text:var(--dream-text-primary);--menu-sub:var(--dream-text-secondary);--radius:16px;
 color-scheme:light;font-family:var(--dream-font);font-size:16px;font-synthesis:none;color:var(--dream-text-primary);background:var(--dream-background-secondary)
}
body,body.app-layout,body.app-layout[data-screen=today]{background:var(--dream-background-secondary);color:var(--dream-text-primary);font-family:var(--dream-font)}
button,input,select,textarea{font-family:var(--dream-font)}button{font-weight:600;border-color:var(--dream-border);border-radius:10px}button:not(.icon):not(.close){font-size:13px}a{color:var(--dream-green-900)}button:hover{border-color:var(--dream-green-600)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--dream-green-900);outline-offset:3px}
input[type=checkbox],input[type=radio]{accent-color:var(--dream-green-900)}
.primary,button.primary,.co-btn.primary,button[type=submit].primary,.social-link.primary{background:var(--dream-green-900);border-color:var(--dream-green-900);color:var(--dream-background)}
.primary:hover,button.primary:hover,.co-btn.primary:hover{background:var(--dream-green-900);color:var(--dream-background);filter:brightness(.9)}
.soft,button.soft,.secondary{background:var(--dream-mint-100);border-color:var(--dream-mint-100);color:var(--dream-green-900)}
.card,.app-layout .card,.panel{border-color:var(--dream-border);border-radius:16px;background:var(--dream-background);color:var(--dream-text-primary)}
.eyebrow,.menu-heading .eyebrow{color:var(--dream-green-900)}h1,.app-layout .today-heading h1,.menu-heading h1{font-size:34px;line-height:1.2;letter-spacing:-1.2px}h2{letter-spacing:-.6px}small,.muted,.menu-muted,.menu-note{color:var(--dream-text-secondary)}
dialog,#dialog,#menu-dialog,#auth,#app-menu{color:var(--dream-text-primary);background:var(--dream-background);border-color:var(--dream-border);border-radius:20px}dialog::backdrop,#menu-dialog::backdrop,#auth::backdrop{background:color-mix(in srgb,var(--dream-green-900) 28%,transparent)}
.danger,.menu-error,[role=alert]:not(:empty){color:var(--dream-error-text)}#toast{background:var(--dream-green-900);color:var(--dream-background)}
/* Shared navigation: light surfaces, no change to route order or role checks. */
.app-layout #app-sidebar{background:var(--dream-background);color:var(--dream-text-primary);border-right:1px solid var(--dream-border);padding:12px 18px}
.app-brand{background:transparent;padding:0;margin:0 auto 12px;max-width:196px;width:100%}.app-brand img{width:100%;height:196px;object-fit:contain}
.app-space{background:transparent;border:0;border-top:1px solid var(--dream-border);border-radius:0;padding:16px 10px;margin-bottom:15px}.app-space>span{background:var(--dream-mint-100);color:var(--dream-green-900)}.app-space b{font-size:13px}.app-space small{color:var(--dream-text-secondary)}
#app-sidebar nav a,#app-menu nav a{color:var(--dream-text-primary);font-size:13px;font-weight:500}#app-sidebar nav a[aria-current=page],#app-menu nav a[aria-current]{background:var(--dream-mint-100);color:var(--dream-green-900);font-weight:700}
#app-sidebar nav a:hover,#app-sidebar nav a[aria-current=page]:hover{background:var(--dream-surface-soft);color:var(--dream-green-900)}
#app-sidebar .app-nav-more>summary{color:var(--dream-text-secondary);background:transparent}.app-nav-label,#app-menu .app-nav-label{color:var(--dream-text-secondary)}
.app-person{color:var(--dream-text-primary);border-color:var(--dream-border)}.app-person small{color:var(--dream-text-secondary)}.app-person>span,.app-profile{background:var(--dream-mint-100);color:var(--dream-green-900)}
.app-layout>header.app-topbar,.app-layout[data-screen=today]>.app-topbar{background:var(--dream-background);border-color:var(--dream-border);color:var(--dream-text-primary)}.app-breadcrumb{font-size:12px;color:var(--dream-text-secondary)}
.app-layout>.stage,.stage{background:var(--dream-surface-soft);color:var(--dream-text-secondary)}
/* Today had a fixed dark treatment, not a user-selectable dark mode. */
.app-layout .today-hero,.today-hero{background:var(--dream-green-900);border-color:var(--dream-green-900);color:var(--dream-background)}.today-hero .eyebrow,.today-hero p,.today-progress small{color:var(--dream-mint-100)}
.app-layout .today-progress>span,.today-progress>span{background:var(--dream-green-900)}.today-progress{background:conic-gradient(var(--dream-sun-500) var(--progress),var(--dream-green-600) 0)}
.app-layout .today-links{background:var(--dream-surface-soft);border-color:var(--dream-border);color:var(--dream-text-primary)}.app-layout .today-links a{color:var(--dream-green-900)}
.app-layout[data-screen=today] .today-heading .eyebrow{color:var(--dream-green-900)}.app-layout[data-screen=today] .today-heading>button{background:var(--dream-background);border-color:var(--dream-border);color:var(--dream-text-primary)}
.app-layout .today-filters [aria-pressed=true],.today-check[aria-pressed=true],.app-layout .today-item.done .today-check{background:var(--dream-mint-100);color:var(--dream-green-900)}
/* Food: typography and surfaces from the approved demo. */
.menu-heading p{color:var(--dream-text-secondary)}.menu-day{border-color:var(--dream-border);padding:20px;border-radius:16px}.menu-meal{border-color:var(--dream-border)}.menu-meal>strong{color:var(--dream-text-secondary);font-size:11px;text-transform:uppercase;letter-spacing:1px}
.menu-dish{background:var(--dream-surface-soft);border-radius:10px}.menu-dish>a{font-size:14px;font-weight:600;color:var(--dream-text-primary)}.menu-day h3{font-size:16px}.menu-portions button{background:var(--dream-background-secondary);border-color:transparent;font-weight:400}.menu-context,.menu-levels button[aria-pressed=true]{background:var(--dream-mint-100);color:var(--dream-green-900)}
.menu-meal .add-dish{color:var(--dream-green-900);border-color:var(--dream-mint-400)}.menu-tabs{background:var(--dream-background);border-bottom:1px solid var(--dream-border);border-radius:0;padding:0;gap:6px}.menu-tabs button{background:transparent;border-radius:0;border-bottom:3px solid transparent;color:var(--dream-text-secondary)}.menu-tabs button[aria-selected=true]{background:transparent;color:var(--dream-green-900);border-bottom-color:var(--dream-green-900)}
.menu-period button[aria-pressed=true],.menu-chips button[aria-pressed=true]{background:var(--dream-mint-100);color:var(--dream-green-900);border-color:var(--dream-mint-400)}
#menu>.menu-filters{background:var(--dream-background);border:1px solid var(--dream-border);border-radius:16px;padding:18px 22px;align-items:center}
#menu .menu-toolbar [data-auto]{background:var(--dream-green-900);color:var(--dream-background);border-color:var(--dream-green-900)}#menu .menu-toolbar [data-tab="2"]{background:var(--dream-mint-100);color:var(--dream-green-900);border-color:var(--dream-mint-100)}
.menu-catalogue button{background:var(--dream-background);border-color:var(--dream-border)}.menu-shopping label{border-color:var(--dream-border)}
/* Branding assets keep the supplied full composition, including mobile. */
header>a>img[src="/dreamfamilylogo.png"]{width:144px;height:144px;object-fit:contain}
body[data-home] .brand img{width:90px;height:90px;object-fit:contain}body[data-home] .brand{color:var(--dream-green-900)}body[data-home] .intro{padding-top:8px}body[data-home] .bottom{background:var(--dream-surface-soft);border-color:var(--dream-border)}
.service-layout .sidebar .brand{flex-direction:column;align-items:flex-start;color:var(--dream-green-900)}.service-layout .sidebar .brand img{width:160px;height:160px;object-fit:contain;align-self:center}.service-layout .sidebar .brand>span{font-size:14px}.service-layout .sidebar .nav-label{margin-top:24px}.service-layout nav button[aria-current=page]{background:var(--dream-mint-100);color:var(--dream-green-900)}
@media(max-width:1000px){.app-brand img{height:170px}}
@media(max-width:760px){
 h1,.menu-heading h1,.app-layout .today-heading h1{font-size:30px}.app-layout>header.app-topbar{height:70px}.app-mobile-brand{font-size:16px!important;color:var(--dream-green-900);letter-spacing:-.5px;gap:6px}.app-mobile-brand img{width:48px!important;height:48px;object-fit:contain;background:transparent;border-radius:0}
 .app-layout #app-bottom{background:var(--dream-background);border-color:var(--dream-border)}#app-bottom a,#app-bottom button{color:var(--dream-text-secondary)}#app-bottom [aria-current]{background:var(--dream-mint-100);color:var(--dream-green-900)}
 body[data-home] .brand img{width:64px;height:64px}body[data-home] .brand{font-size:17px;gap:6px}body[data-home] .brand small{font-size:9px}body[data-home] header{padding:12px 18px}body[data-home] .login{padding:9px 14px}body[data-home] h1{font-size:34px}
 .service-layout .sidebar .brand{flex-direction:row;align-items:center}.service-layout .sidebar .brand img{width:64px;height:64px}.service-layout .sidebar .nav-label{margin-top:16px}
 #menu>.menu-filters{padding:16px}.menu-portions button{min-height:40px;min-width:40px}.menu-dish>a{font-size:14px}.menu-tabs button{min-height:44px}
}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .15s,border-color .15s}}
#app-sidebar .app-more>summary{color:var(--dream-text-secondary);font-size:13px}#app-sidebar .app-more>summary:hover{background:var(--dream-surface-soft);color:var(--dream-green-900)}#app-sidebar .app-more>summary:focus-visible{outline:3px solid var(--dream-green-900)}
/* Warm accents identify dreams; the surrounding navigation stays green. */
button[data-plan=new-dream]{background:var(--dream-sun-500);border-color:var(--dream-sun-500);color:var(--dream-text-primary)}button[data-plan=new-dream]:hover{background:var(--dream-peach-200);color:var(--dream-text-primary);filter:none}.dream-node{border-left:4px solid var(--dream-sun-500)}
#menu>.menu-toolbar [data-auto]{order:0}#menu>.menu-toolbar [data-library]{order:1}#menu>.menu-toolbar [data-reload]{order:2}#menu>.menu-toolbar [data-tab="2"]{order:3;margin-left:auto}
#menu>.menu-tabs{background:transparent}#menu>.menu-tabs button{flex:0 1 auto;min-width:150px;padding:13px 22px}
@media(max-width:760px){#menu>.menu-tabs button{flex:1;min-width:0;padding:12px 6px}#menu>.menu-toolbar [data-auto]{flex-basis:100%}#menu>.menu-toolbar [data-tab="2"]{margin-left:0}}
#menu-dialog fieldset:not(.menu-period){border:1px solid var(--dream-border);border-radius:12px;margin:16px 0;padding:14px}#menu-dialog legend{font-size:13px;color:var(--dream-text-secondary);padding:0 6px}
@media(max-width:600px){#menu>.menu-filters{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px 12px}#menu>.menu-filters>.field{min-width:0;width:100%;font-size:11px;color:var(--dream-text-secondary);font-weight:500;margin:0}#menu>.menu-filters input[type=date]{width:100%;min-width:0;font-size:12px;padding:10px 4px}#menu>.menu-filters>.menu-period{margin:0;align-self:end}.menu-period legend{font-size:11px;font-weight:500;color:var(--dream-text-secondary)}#menu>.menu-filters>.menu-period>div{gap:2px;padding:0;border:0}#menu>.menu-filters>.menu-period button{font-size:11px;padding:8px 3px}#menu>.menu-filters>div{grid-column:1/-1;border-top:1px solid var(--dream-border);padding-top:12px;font-size:12px}}
:root{--dream-text-on-soft:#58636B}
.menu-dish small,.recipe-helper p,.menu-context small,.soft small,.feed-compose .muted{color:var(--dream-text-on-soft)}
.reward-balance{background:var(--dream-mint-100);color:var(--dream-text-primary);border-top:3px solid var(--dream-sun-500)}.reward-balance .eyebrow,.reward-balance p,.reward-total small,.reward-stats span{color:var(--dream-text-on-soft)}.reward-total{color:var(--dream-green-900)}.reward-stats{border-color:var(--dream-mint-400)}.reward-tabs [aria-pressed=true]{background:var(--dream-green-900);color:var(--dream-background)}
.feed-sidebar{background:var(--dream-surface-soft);color:var(--dream-text-primary);border:1px solid var(--dream-border)}.feed-sidebar p,.feed-sidebar small{color:var(--dream-text-on-soft)}.feed-sidebar a{color:var(--dream-green-900)}
.recipe-levels button[aria-pressed=true]{border-color:var(--dream-green-900)}.chat-badge{background:var(--dream-green-900);color:var(--dream-background)}
