/* Color belongs to the source calendar, not names appearing in an event. */
.owner-beth {--person:#8154b2;--person-bg:#eee3fa;--person-ink:#4d2677}
.owner-chris {--person:#2877bc;--person-bg:#deedfc;--person-ink:#174a78}
.owner-family {--person:#238477;--person-bg:#dbefe8;--person-ink:#155e53}
.event[class*="owner-"],.agenda-item[class*="owner-"],.day-event[class*="owner-"]{border-left-color:var(--person);background:var(--person-bg);color:var(--person-ink)}
.day-event[class*="owner-"] .event-time,.day-event[class*="owner-"] .event-details span{color:var(--person-ink)}
.beth-dot{background:#8154b2}.chris-dot{background:#2877bc}.legend{gap:9px;font-size:11px;flex-wrap:wrap}
body{background-attachment:fixed;--ornament:'✦';--glow:#ffc876}
body.thanksgiving,body.autumn{--paper:#fffaf0;--glass:#fffaf0;--ink:#4b3024;--accent:#a04424;--tint:#f9e4c9;--line:#e0c19a;--soft:#725239;--holiday:#6c6928;--holiday-bg:#edf0ce;--glow:#ffc567;--ornament:'🍂';background:radial-gradient(ellipse at 95% 10%,#f8c16a88,transparent 45%),radial-gradient(ellipse at 5% 100%,#c9794b55,transparent 45%),linear-gradient(120deg,#fff1d8,#e5b982)}
body.christmas{--paper:#fffaf0;--glass:#fffaf0;--ink:#233e32;--accent:#a7333c;--tint:#f6e6db;--line:#cdbf99;--soft:#42614d;--holiday:#2e694c;--holiday-bg:#e0eddb;--glow:#e3c166;--ornament:'🎄';background:radial-gradient(circle at 10% 10%,#f2d48e66,transparent 35%),linear-gradient(125deg,#dce9da,#a7c4ac)}
body.halloween{--paper:#fff4e4;--glass:#fff4e4;--ink:#382d44;--accent:#9b4020;--tint:#f5dfc4;--line:#bd9b82;--soft:#665477;--holiday:#62417c;--holiday-bg:#e9ddf3;--glow:#ffac52;--ornament:'🎃';background:linear-gradient(130deg,#ead5f0,#d3aa80)}
body.valentine{--paper:#fff8f6;--glass:#fff8f6;--ink:#643747;--accent:#a53359;--tint:#f9dce6;--line:#e8b9c8;--soft:#795262;--glow:#f6a8c2;--ornament:'♡';background:linear-gradient(125deg,#fff0ec,#f4c8db)}
body.patriotic{--paper:#fffdf7;--glass:#fffdf7;--ink:#274263;--accent:#b03c42;--tint:#e6edf8;--line:#c4cfdf;--soft:#4f6483;--glow:#a3c5f1;--ornament:'★';background:linear-gradient(125deg,#f7e4db,#b8cfea)}
body.winter{--ornament:'❄';--glow:#b9e6f3}body.spring{--ornament:'🌷';--glow:#dce7a8}body.summer,body.coastal{--ornament:'☀';--glow:#ffe093}body.evening{--ornament:'✦';--glow:#b98455}
.calendar-panel{position:relative;isolation:isolate;border-top:5px solid var(--accent);box-shadow:0 12px 32px #64411c1a}
.cal-head{background:linear-gradient(110deg,var(--tint),transparent);border-radius:10px;padding:8px 10px}
.cal-head h2:before{content:var(--ornament);font-size:.8em;margin-right:.4em}
.family-seal{background:linear-gradient(150deg,var(--paper),var(--glow));border:2px solid var(--accent);box-shadow:0 5px 14px #523e2520;transform:rotate(-3deg)}
.day{transition:background .15s,border-color .15s}.day:hover{border-color:var(--accent)}
.day.today{box-shadow:inset 0 0 0 1px var(--accent)}.day.today .num{display:inline-flex;justify-content:center;align-items:center;background:var(--accent);color:var(--paper);width:1.55em;height:1.55em;border-radius:50%;font-size:16px}
.weekdays{border-bottom:1px solid var(--line);padding-bottom:3px}.weekdays div:first-child,.weekdays div:last-child{color:var(--accent)}
.panel.today-panel{border-top:4px solid var(--holiday)}.photo-panel{border-top:4px solid var(--glow)}
.photo{border-width:4px;border-radius:10px}.widget{border:1px solid var(--line);background:linear-gradient(135deg,var(--tint),var(--paper));padding:10px}.widget strong{line-height:1.35}.widget span{line-height:1.35}
.dinner-card{border-left:4px solid #c37a26;align-self:stretch}.weather-card{border-left:4px solid #5a9da8}
#weatherNow{font-weight:700}#weatherDetails{font-size:11px;line-height:1.4}.weather-footer{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:5px}.weather-footer small,.weather-footer a{font-size:9px;color:var(--muted)}#refreshWeather{font-size:16px}#refreshWeather:disabled{opacity:.5}
#addBirthday{display:block;margin-top:7px;font-size:12px}.meal-suggestions{display:grid;gap:8px;margin:16px 0}.meal-suggestion{text-align:left;font-size:14px;padding:10px 12px}.meal-suggestion:before{content:'＋ ';color:var(--accent)}
.hub-tools a{border:1px solid var(--line);padding:5px 8px;border-radius:8px;background:var(--paper);color:var(--accent);font-weight:650}.hub-tools a:hover{background:var(--tint)}
body[data-read-only="true"] #addBirthday{display:none}
@media(min-width:901px){.side{grid-template-rows:auto minmax(70px,1fr) auto}.photo-panel small{display:none}.widget span{font-size:13px}.cal-head{padding:6px 8px}.weekdays{margin-top:10px}.footer{align-items:center;gap:12px}.legend{max-width:310px;flex-shrink:0}}
@media(min-width:901px) and (max-height:760px){header{padding:10px 24px}.family-seal{height:48px;width:44px;font-size:28px}header .family-motto{display:block;font-size:12px;margin-top:4px}.widget{padding:7px}.side h3{font-size:18px}.agenda{margin-bottom:6px}.photo-caption{font-size:11px}.cal-head h2{font-size:25px}.hub-tools,.hub-tools button{font-size:11px}.hub-tools a{padding:3px 6px}.footer{padding-bottom:8px}.legend{font-size:10px}}
@media(max-width:900px){.weather-footer small,.weather-footer a{font-size:11px}.widget span{font-size:15px}.legend{font-size:12px}.photo-panel small{display:block}}
@media(prefers-reduced-motion:reduce){.day{transition:none}}
@media(min-width:901px){
  .preferences-panel .actions{display:flex;flex-wrap:nowrap;gap:7px}
  .preferences-panel select{flex:1;min-width:0;width:100%;font-size:12px;padding:9px 6px}
  .preferences-panel #settings{flex:none;white-space:nowrap;font-size:12px;padding:9px 7px}
  .side{grid-template-rows:auto minmax(130px,1fr) auto}
  .photo{min-height:40px}
}

/* Quiet seasonal illustration occupies the space between the title and clock. */
header .family-brand,header .clock{flex-shrink:0}
.season-art{flex:1;min-width:0;max-width:640px;height:86px;margin:0 auto;position:relative;text-align:center;pointer-events:none;overflow:hidden}
.season-art svg{width:100%;height:70px;display:block;opacity:.85}
.season-art span{display:block;font-size:10px;letter-spacing:.22em;color:var(--accent);font-weight:700;opacity:.85}
.season-motif{transform-box:fill-box;transform-origin:center;animation:season-sway 7s ease-in-out infinite alternate}
body.christmas .season-motif,body.evening .season-motif{animation:season-glow 4s ease-in-out infinite alternate}
@keyframes season-sway{from{transform:translate(0,-4px) rotate(-9deg)}to{transform:translate(4px,5px) rotate(9deg)}}
@keyframes season-glow{from{opacity:.45}to{opacity:1}}
@media(max-width:1050px){.season-art{height:64px}.season-art svg{height:50px}.season-art span{font-size:8px;letter-spacing:.08em}}
@media(max-width:760px){.season-art{display:none}}
@media(prefers-reduced-motion:reduce){.season-motif{animation:none!important}}
#tvDialog ol{padding-left:22px;line-height:1.6}#tvDialog li{margin-bottom:9px}

.header-right{flex-shrink:0;text-align:right}.header-right #approveShortcut{font-size:12px;padding:5px 10px;margin-top:6px}.tv-qr{text-align:center}.tv-qr img{display:block;margin:12px auto;background:white;max-width:100%;height:auto;image-rendering:pixelated}.tv-qr p{font-size:14px}#tvDialog{max-height:90vh;overflow-y:auto}#approveHelpStatus{color:#923c28}
