/* Parent shell. Loaded after styles.css; every override is appearance-scoped. */
:root[data-hh-scheme]{--hh-sidebar-width:196px;--hh-line:var(--bg-elev-2);--hh-positive:#3aab98;--hh-on-accent:#fff;--hh-grid:var(--bg);color-scheme:dark}
:root[data-hh-scheme="paper-sage"]{--bg:#f1ecdf;--bg-elev:#fffdf4;--bg-elev-2:#d6dfca;--accent:#42664e;--accent-hover:#31563e;--text:#303d2a;--text-muted:#59634c;--text-dim:#5d684e;--danger:#a7312d;--shadow:0 3px 12px #213e2512;--hh-positive:#25766a;--hh-grid:#eeebdf;color-scheme:light}
:root[data-hh-scheme="midnight-teal"]{--bg:#0e2027;--bg-elev:#162f36;--bg-elev-2:#29474d;--accent:#61d1bf;--accent-hover:#8ce3d5;--text:#e4f2ee;--text-muted:#a5c0bb;--text-dim:#8ea9a5;--danger:#f78c85;--shadow:0 6px 24px #0005;--hh-on-accent:#102c2a;--hh-positive:#61d1bf;--hh-grid:#132b37}
html[data-hh-scheme] body{background:var(--bg);color:var(--text)}
html[data-hh-scheme] :is(.dashboard-header,.dashboard-header-slim,.month-header,.week-header,.weekly-resources-header,.resource-detail-card>header,.modal-header){background:var(--bg-elev);color:var(--text);border-color:var(--hh-line)}
html[data-hh-layout="mobile"] .weekly-resources{bottom:var(--hh-bottom-nav-height,calc(72px + env(safe-area-inset-bottom)))}
html[data-hh-scheme] :is(.weekly-resources-header,.resource-detail-card>header){padding:10px 14px;gap:10px}
html[data-hh-scheme] :is(.weekly-resources-header h2,.resource-detail-card>header h2){font-size:18px;line-height:1.2}
html[data-hh-scheme] :is(.weekly-resources-header>div:first-child,.resource-detail-card>header>div:first-child){min-width:0}
html[data-hh-scheme] .weekly-resources-eyebrow{display:none}
html[data-hh-scheme] .resource-detail-scroll{min-height:0;overflow-y:auto;flex:1}
html[data-hh-scheme] .resource-detail-scroll>.resource-detail-content{overflow:visible}
html[data-hh-scheme] #resource-detail-eyebrow{font-size:11px;color:var(--text-muted);margin:12px 20px 0}
html[data-hh-scheme] .resource-detail-scroll.is-editing-workshop{display:flex;flex-direction:column;overflow:hidden}
html[data-hh-scheme] .resource-detail-scroll.is-editing-workshop>#resource-detail-eyebrow{display:none}
html[data-hh-scheme] .resource-detail-scroll>.resource-detail-content.is-editing-workshop{overflow:hidden;padding:0}
html[data-hh-scheme] .act-modal-card .modal-header.act-modal-header{padding-block:10px}
html[data-hh-scheme] .act-modal-title-wrap h2{font-size:18px;line-height:1.2}
html[data-hh-scheme] .act-modal-body>.act-modal-subtitle,html[data-hh-scheme] #ws-modal-meta{margin:0 0 10px;color:var(--text-muted);font-size:13px}
/* Mobile Menu retains the existing links and actions. */
html[data-hh-layout="mobile"] #tab-more-drawer{bottom:var(--hh-bottom-nav-height,72px)}
html[data-hh-scheme] #tab-more-drawer .hh-menu-panel{inset:12px 8px 8px auto;width:min(420px,calc(100% - 16px));padding:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--hh-line);border-radius:24px;box-shadow:0 14px 48px #0004;background:var(--bg)}
#tab-more-drawer .tab-drawer-header{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:3px 12px;flex:none;margin:0;padding:18px 18px 15px;border-bottom:1px solid var(--hh-line);background:var(--bg-elev)}
#tab-more-drawer .hh-menu-brand{color:var(--hh-accent-ink,var(--accent));font-size:10px;font-weight:800;letter-spacing:.16em}
#tab-more-drawer .tab-drawer-title{grid-column:1;color:var(--text);font-size:21px;font-weight:750;line-height:1.2;letter-spacing:-.025em;text-transform:none}
#tab-more-drawer .tab-drawer-header .modal-close{grid-column:2;grid-row:1 / 3;align-self:center;margin:0;width:44px;height:44px;background:var(--bg);border:1px solid var(--hh-line)}
#tab-more-drawer .hh-menu-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 14px 20px;scrollbar-width:thin;scrollbar-color:var(--hh-line) transparent}
#tab-more-drawer .tab-drawer-section{margin:0 0 22px}
#tab-more-drawer .tab-drawer-section-label{margin:0 5px 9px;font-size:10px;font-weight:750;letter-spacing:.12em;color:var(--text-muted)}
#tab-more-drawer .tab-drawer-links{gap:0;background:var(--bg-elev);border:1px solid var(--hh-line);border-radius:16px;overflow:hidden}
#tab-more-drawer .tab-drawer-links li+li{border-top:1px solid var(--hh-line)}
#tab-more-drawer .tab-drawer-link{display:flex;align-items:center;gap:11px;padding:12px 11px;min-height:54px;margin:0;border:0;border-radius:0;background:none;font-size:14px;line-height:1.35;color:var(--text)}
#tab-more-drawer .tab-drawer-link:is(:hover,:focus-visible){background:color-mix(in srgb,var(--accent) 9%,var(--bg-elev))}
#tab-more-drawer .tab-drawer-link:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
#tab-more-drawer .hh-menu-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;color:var(--hh-accent-ink,var(--accent));background:color-mix(in srgb,var(--accent) 10%,var(--bg-elev))}
#tab-more-drawer .hh-menu-icon svg{display:block;width:20px;height:20px}
#tab-more-drawer .hh-menu-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
#tab-more-drawer .hh-menu-label{font-weight:650;overflow-wrap:anywhere}
#tab-more-drawer .hh-menu-description{color:var(--text-muted);font-size:11px;font-weight:400;line-height:1.4}
#tab-more-drawer .hh-menu-chevron{flex:none;width:15px;height:15px;color:var(--text-muted)}
#tab-more-drawer .hh-menu-quick .tab-drawer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0;border-radius:0;background:none;overflow:visible}
#tab-more-drawer .hh-menu-quick .tab-drawer-links>li{border:0}
#tab-more-drawer .hh-menu-quick .tab-drawer-link{height:100%;min-height:94px;align-items:flex-start;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--hh-line);border-radius:16px;background:var(--bg-elev)}
#tab-more-drawer .hh-menu-quick .hh-menu-icon{flex-basis:26px;width:26px;height:26px;background:none}
#tab-more-drawer .hh-menu-quick .hh-menu-chevron{display:none}
#tab-more-drawer .tab-drawer-account{margin:0;padding:0 5px}
#tab-more-drawer .tab-drawer-account:has(#tab-drawer-user-mount:empty){display:none}
#tab-more-drawer .tab-drawer-account:not(:has(#tab-drawer-user-mount)){display:none}
html[data-hh-layout="mobile"] .tab-bar:has([data-tab="more"][aria-expanded="true"]) .tab-bar-item.active{background:none}
html[data-hh-layout="mobile"] .tab-bar [data-tab="more"][aria-expanded="true"]{background:var(--bg-elev-2);color:var(--hh-accent-ink,var(--accent))}
@media(max-height:500px){#tab-more-drawer .tab-drawer-header{padding:9px 14px}#tab-more-drawer .hh-menu-brand{display:none}#tab-more-drawer .tab-drawer-title{font-size:18px}#tab-more-drawer .tab-drawer-header .modal-close{grid-row:1}#tab-more-drawer .hh-menu-scroll{padding-top:10px}#tab-more-drawer .hh-menu-quick .tab-drawer-link{min-height:85px;gap:3px;padding:9px}#tab-more-drawer .hh-menu-quick .hh-menu-description{display:none}}
@media(prefers-reduced-motion:reduce){#tab-more-drawer .tab-drawer-panel,#tab-more-drawer .tab-drawer-backdrop{transition:none}}
html[data-hh-scheme] :is(input,textarea,select){color:var(--text);background-color:var(--bg-elev);border-color:var(--hh-line)}
html[data-hh-scheme] :is(.tab-bar,.schedule-toolbar,.modal-card,.tab-drawer-panel,.weekly-resources-panel,.resource-detail-card,.manual-event-panel,.week-calendar-header,.week-calendar-kid-legend,.schedule-anytime,.week-calendar-time-axis,.calendar-layer-toggle,.schedule-view-toggle,.schedule-period-controls){background:var(--bg-elev);color:var(--text);border-color:var(--hh-line)}
html[data-hh-scheme] :is(.schedule-grid-inner,.week-calendar-lanes){background:var(--hh-grid)!important}
html[data-hh-scheme] :is(.schedule-block,.schedule-anytime-card,.week-calendar-event,.week-calendar-untimed-card,.week-block-chip,.planner-block,.month-event,.hh-agenda-card)[data-calendar-kind]:not([data-calendar-kind="other"]){background:color-mix(in srgb,var(--calendar-kind-color,var(--accent)) 22%,var(--bg-elev));color:var(--text)}
html[data-hh-scheme] .month-event.timed{background:transparent}
html[data-hh-scheme] :is(.schedule-view-btn.active,.resource-kind-tab.active,.weekly-resource-add,.manual-event-save,.act-save-done,.hh-primary-button){background:var(--accent);color:var(--hh-on-accent)}
html[data-hh-scheme] :is(.home-date-label,.schedule-block-label,.week-calendar-event-title,.act-modal-title,.modal-header h2){color:var(--text)}
html[data-hh-scheme] :is(.home-date-meta,.schedule-hour-label,.schedule-block-time,.schedule-block-time-below,.week-calendar-event-time,.week-calendar-event-kids){color:var(--text-muted)}
html[data-hh-scheme] .yesterday-carryover{background:var(--bg-elev);border-color:var(--accent)}
html[data-hh-scheme] .schedule-grid-family-header{background:var(--bg-elev);color:var(--text);border-color:var(--hh-line)}
html[data-hh-scheme] .family-tools :is(section,header,article,dialog){background:var(--bg-elev);color:var(--text);border-color:var(--hh-line)}
html[data-hh-scheme] .family-tools :is(button,nav a){color:var(--text);background:var(--bg-elev-2)}
.hh-sidebar{display:none}
html[data-hh-layout="desktop"] body.has-tab-bar{padding-left:var(--hh-sidebar-width);padding-bottom:68px}
html[data-hh-layout="desktop"] .tab-bar{display:none!important}
html[data-hh-layout="desktop"] .hh-sidebar{display:flex;position:fixed;inset:0 auto 0 0;width:var(--hh-sidebar-width);z-index:70;background:var(--bg-elev);border-right:1px solid var(--hh-line);flex-direction:column;padding:14px 9px;overflow:auto;overscroll-behavior:contain;font-size:13px}
.hh-sidebar-brand{font-size:19px;font-weight:650;padding:0 10px 13px}
.hh-sidebar nav{display:grid;gap:2px;margin-bottom:10px}
.hh-sidebar .tab-drawer-section{padding:8px 0;border-top:1px solid var(--hh-line)}
.hh-sidebar .tab-drawer-section-label{font-size:11px;letter-spacing:.06em;margin:2px 10px 6px;color:var(--text-muted)}
.hh-sidebar :is(.tab-bar-item,.tab-drawer-link){display:flex!important;align-items:center;justify-content:flex-start;gap:8px;flex-direction:row;text-align:left;min-height:33px;width:100%;padding:7px 10px;font-size:12px;line-height:1.3;border-radius:7px;margin:0;color:var(--text);background:none}
.hh-sidebar :is(.tab-bar-item,.tab-drawer-link):hover,.hh-sidebar .active{background:var(--bg-elev-2);color:var(--hh-accent-ink,var(--accent))}
.hh-sidebar .tab-bar-icon{font-size:16px}.hh-sidebar .tab-bar-label{font-size:12px}
.hh-sidebar .tab-drawer-links{list-style:none}.hh-sidebar .tab-drawer-links li{margin:0}
.hh-sidebar .tab-drawer-badge{display:none}
html[data-hh-layout="desktop"] .schedule-toolbar{left:var(--hh-sidebar-width);bottom:0;min-height:62px;gap:12px}
html[data-hh-layout="desktop"] .calendar-add-event-fab{bottom:82px}
html[data-hh-layout="desktop"] body.family-tools-page.has-tab-bar{max-width:none;margin:0;padding-left:var(--hh-sidebar-width)}
html[data-hh-scheme] .family-tools{background:var(--bg);color:var(--text)}
@media print{
 html[data-hh-scheme] .family-tools,html[data-hh-scheme] .family-tools :is(section,header,article,dialog){background:white!important;color:black!important}
 html[data-hh-scheme] .family-tools :is(.muted,p,td,th,a){color:black!important}
}
.family-tools>#event-status,.family-tools>#event-signin{max-width:1100px;margin:0 auto 24px}
.family-tools section{scroll-margin-top:calc(var(--hh-app-header-height) + 16px)}
html[data-hh-scheme] .local-events .event-date{color:var(--hh-accent-ink,var(--accent))}
html[data-hh-layout="mobile"] .tab-bar-desktop-only{display:none!important}
html[data-hh-layout="mobile"] .tab-bar-mobile-only{display:flex!important}
html[data-hh-layout="mobile"] .tab-bar{display:flex;justify-content:space-around;padding:6px}
html[data-hh-layout="mobile"] .tab-bar-item{min-width:0;min-height:48px;padding:7px 12px}
html[data-hh-layout="mobile"] .week-calendar-desktop{display:none!important}
html[data-hh-layout="mobile"] .week-list-mobile{display:block!important}
html[data-hh-layout="mobile"] body.fullbleed-week .week-grid{overflow:auto;min-height:0;flex:1}
html[data-hh-layout="mobile"] .week-header-actions{display:flex!important;flex-wrap:wrap}
html[data-hh-layout="mobile"] #week-tv{display:none}
/* Shared calendar and dock keep one set of live controls, not cloned forms. */
.hh-planner-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;min-height:0;flex:1}
.hh-plan-surface{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;isolation:isolate}
.hh-event-details{min-width:0;min-height:0;border:1px solid var(--hh-line);border-radius:12px;background:var(--bg-elev);overflow:hidden}
html[data-hh-layout="desktop"][data-hh-details="side"] .hh-planner-workspace.hh-has-inspector{grid-template-columns:minmax(0,1fr) 350px}
html[data-hh-layout="desktop"][data-hh-details="below"] .hh-planner-workspace.hh-has-inspector{grid-template-rows:minmax(240px,1fr) minmax(380px,1fr);overflow-y:auto;scrollbar-gutter:stable}
.hh-docked-dialog{position:relative!important;inset:auto!important;width:100%!important;height:100%!important;max-height:100%!important;background:transparent!important;padding:0!important;display:flex;z-index:auto!important;overflow:hidden}
.hh-docked-dialog :is(.modal-card,.manual-event-card){width:100%!important;max-width:none!important;max-height:100%!important;height:100%;border:0;border-radius:0;box-shadow:none;margin:0;display:flex;flex-direction:column}
.hh-docked-dialog :is(.modal-body,.manual-event-body){min-height:0;overflow:auto;flex:1;padding:14px}
.hh-docked-dialog #manual-event-form{min-height:0;overflow:auto;flex:1}
.hh-docked-dialog .modal-header{padding:13px;gap:8px;flex-wrap:wrap}
.hh-docked-dialog .modal-header h2{font-size:19px}
.hh-docked-dialog .act-modal-header{flex-direction:column;align-items:stretch!important}
.hh-docked-dialog .act-modal-header-actions{justify-content:flex-end;flex-shrink:0}
.hh-docked-dialog .act-modal-title-wrap{width:100%}
html[data-hh-scheme] .act-save-still{color:var(--accent);border-color:var(--accent)}
html[data-hh-details="below"] .hh-docked-dialog .act-modal-header{flex-direction:row}
html[data-hh-details="below"] .hh-docked-dialog .act-modal-title-wrap{width:auto;flex:1}
html[data-hh-details="below"] .hh-docked-dialog .act-modal-pinned{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
html[data-hh-details="below"] .hh-docked-dialog .act-mood-row{flex:1;gap:6px;margin:0}
html[data-hh-details="below"] .hh-docked-dialog .act-action-bar{flex:1.5}
html[data-hh-details="below"] .hh-docked-dialog .act-bottom-row{width:100%;margin:0;padding:0;min-height:0}
html[data-hh-details="below"] .hh-docked-dialog .act-bottom-row:has([hidden]):not(:has(.block-form-msg:not(:empty))){display:none}
.hh-docked-dialog :is(.act-modal-pinned,.manual-event-footer){flex:none;padding:10px;background:var(--bg-elev)}
.hh-docked-dialog :is(.block-field-label,.act-photo-section-title,.act-modal-details){font-size:14px}
.hh-docked-dialog :is(input,textarea,select){font-size:16px;min-width:0;max-width:100%}
.hh-docked-dialog .act-action-bar{gap:6px}.hh-docked-dialog .act-save-label{font-size:11px}
.hh-docked-dialog .act-mood-btn{width:40px;height:40px;font-size:24px}
.hh-day-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.hh-day-style{display:flex;border:1px solid var(--hh-line);border-radius:20px;padding:3px;background:var(--bg-elev)}
.hh-day-style button{padding:7px 12px;font-size:13px;min-height:36px;border-radius:18px}
.hh-day-style button[aria-pressed="true"]{background:var(--accent);color:var(--hh-on-accent)}
.hh-day-print{font-size:13px;border:1px solid var(--hh-line);border-radius:8px;min-height:38px;padding:7px 11px}
.hh-day-week-strip{display:none}
html[data-hh-layout="mobile"] .hh-day-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;flex-shrink:0;padding:0 4px 6px}
.hh-day-week-strip button{display:grid;gap:0;place-items:center;min-height:46px;padding:3px;border-radius:10px;line-height:1.3}
.hh-day-week-strip span{font-size:10px;color:var(--text-muted)}.hh-day-week-strip strong{font-size:15px}
.hh-day-week-strip button[aria-pressed="true"]{background:var(--accent);color:var(--hh-on-accent)}
.hh-day-week-strip button[aria-pressed="true"] span{color:inherit}
.hh-day-week-strip button[aria-current="date"]:not([aria-pressed="true"]){outline:1px solid var(--accent);outline-offset:-2px}
html[data-hh-layout="mobile"] .home-date-meta{font-size:11px}
.hh-agenda-list{display:grid;gap:10px;padding:12px;align-content:start}
.hh-agenda-card[data-calendar-kind="curriculum"]{--calendar-kind-color:#d97706}
.hh-agenda-card[data-calendar-kind="book"]{--calendar-kind-color:#2f9e74}
.hh-agenda-card[data-calendar-kind="video"]{--calendar-kind-color:#8b6bc7}
.hh-agenda-card[data-calendar-kind="workshop"]{--calendar-kind-color:#c45a78}
.hh-agenda-card[data-calendar-kind="field_trip"]{--calendar-kind-color:#3b82b8}
.hh-agenda-card[data-calendar-kind="chore"]{--calendar-kind-color:#6f8a51}
.hh-agenda-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 46px;background:var(--bg-elev);border:1px solid var(--hh-line);border-radius:12px;overflow:hidden;min-width:0;border-left:0}
.hh-agenda-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--kid-color-stripe,var(--accent));z-index:1}
.hh-agenda-open{display:grid;gap:5px;padding:14px 12px 14px 17px;text-align:left;min-width:0;align-content:center}
.hh-agenda-title{font-size:16px;font-weight:600;overflow-wrap:anywhere}
.hh-agenda-meta{font-size:13px;color:var(--text-muted)}
.hh-agenda-handle{width:46px;min-height:54px;touch-action:none;cursor:grab;font-size:25px;user-select:none;align-self:stretch}
.hh-agenda-handle:active{cursor:grabbing;background:var(--bg-elev-2)}
.hh-agenda-card.logged{opacity:.65}.hh-agenda-card.hh-agenda-dragging{opacity:.6;outline:2px solid var(--accent)}
.hh-agenda-card.hh-agenda-drop-before{border-top:4px solid var(--hh-positive)}
.hh-agenda-card.hh-agenda-drop-after{border-bottom:4px solid var(--hh-positive)}
.hh-agenda-status{position:sticky;bottom:0;background:var(--bg-elev);padding:9px 12px;border-top:1px solid var(--hh-line);display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;z-index:4}
.hh-agenda-status button{padding:7px 10px;border:1px solid var(--hh-line);border-radius:8px}
.hh-agenda-status [role="status"]{overflow-wrap:anywhere}
.hh-agenda-empty{padding:20px;color:var(--text-muted);font-size:16px}
.act-quick-voice-help{font-size:13px;color:var(--text-muted)}
html[data-hh-scheme] .hh-workshop-footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0;padding:10px;border-top:1px solid var(--hh-line);flex-shrink:0;background:var(--bg-elev)}
html[data-hh-scheme] .hh-workshop-footer button{min-width:0;font-size:12px;padding:6px;min-height:48px}
html[data-hh-scheme] .week-calendar-status{background:var(--bg-elev);color:var(--text);border-color:var(--accent)}
html[data-hh-scheme] .week-calendar-status[data-kind="error"]{color:var(--danger);border-color:var(--danger)}
html[data-hh-scheme] .weekly-resources-tabs button.active{color:var(--hh-on-accent)}
html[data-hh-scheme] .family-tools :is(.muted,p,td,a){color:var(--text-muted)}
html[data-hh-scheme] .family-tools :is(#tools-status,#event-status){background:var(--bg-elev-2);color:var(--text)}
html[data-hh-layout="mobile"] .act-quick-log-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-bottom:10px;margin:0}
html[data-hh-layout="mobile"] .act-quick-log-actions button{min-height:48px;font-size:13px}
html[data-hh-scheme] .act-print-event{font-size:13px;min-height:38px;padding:8px 10px;border:1px solid var(--hh-line);border-radius:8px}
.hh-appearance-dialog{position:fixed;inset:auto 16px 12px auto;color:var(--text);background:var(--bg-elev);border:1px solid var(--text-muted);border-radius:18px;width:min(420px,calc(100% - 16px));max-height:65dvh;overflow:auto;margin:0;padding:14px;font-size:16px;box-shadow:0 8px 32px #0004}
.hh-appearance-dialog::backdrop{background:transparent}.hh-appearance-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px}.hh-appearance-dialog h2{font-size:18px;margin:0}
.hh-appearance-dialog header button{min-width:58px;min-height:44px;padding:8px 12px}.hh-appearance-dialog fieldset{border:0;margin:12px 0 8px;padding:0;min-width:0}.hh-appearance-dialog legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.hh-scheme-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.hh-scheme-options label{position:relative;display:grid;grid-template-rows:30px auto;align-items:start;gap:5px;border:1px solid var(--hh-line);border-radius:9px;padding:5px;min-height:72px;cursor:pointer;font-size:11px;line-height:1.2;text-align:center}
.hh-scheme-options input{position:absolute;top:6px;right:6px;width:14px;height:14px;margin:0;accent-color:var(--accent)}
.hh-scheme-options label:has(input:checked){outline:2px solid var(--accent);outline-offset:1px}.hh-scheme-options label:focus-within{outline:3px solid var(--text);outline-offset:1px}
.hh-scheme-swatch{width:100%;height:30px;border-radius:5px;border:1px solid var(--text-muted);background:linear-gradient(90deg,#1a1410 50%,#d97706 50%)}
[data-scheme-choice="paper-sage"] .hh-scheme-swatch{background:linear-gradient(90deg,#f5f4ee 50%,#42664e 50%)}
[data-scheme-choice="midnight-teal"] .hh-scheme-swatch{background:linear-gradient(90deg,#0e2027 50%,#61d1bf 50%)}
.hh-preference{display:grid;gap:7px;margin:15px 0}.hh-preference select{font-size:16px;padding:10px;border:1px solid var(--hh-line);border-radius:8px;max-width:100%}
.hh-appearance-dialog p{font-size:12px;color:var(--text-muted);margin:8px 0}.hh-appearance-dialog header p{margin:3px 0 0}.hh-primary-button{padding:12px 18px;border-radius:10px}
.hh-appearance-status{font-size:12px;color:var(--text-muted)}.hh-layout-preferences summary{min-height:40px;padding-top:12px;font-size:13px;cursor:pointer}
html[data-hh-layout="mobile"] .hh-appearance-dialog{inset:auto 8px max(8px,env(safe-area-inset-bottom)) 8px;width:auto;padding:12px}
/* Compact phone planner: the original controls move here, keeping their handlers. */
html[data-hh-layout="mobile"] body.has-tab-bar{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
.hh-mobile-planner-header{flex:none;min-width:0;padding:4px 10px 8px;background:var(--bg-elev);border-bottom:1px solid var(--hh-line)}
.hh-mobile-date-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:4px}
.hh-mobile-date-row #hh-mobile-date,.hh-mobile-date-row #hh-mobile-period-label{font-size:16px;font-weight:650;text-align:center;min-width:0;padding:8px 0}
.hh-mobile-date-row #hh-mobile-date{min-height:44px}
html[data-hh-layout="mobile"] .hh-mobile-date-row .schedule-period-nav{width:44px;height:44px;border:0;background:none}
.hh-mobile-filters{display:flex;align-items:center;gap:8px;min-width:0;margin:2px 0 6px}
html[data-hh-layout="mobile"] .hh-mobile-filters .schedule-kid-toggle{display:flex;width:auto;max-width:50%;min-width:0;min-height:44px;padding:5px 9px;gap:6px}
html[data-hh-layout="mobile"] .hh-mobile-filters :is(.schedule-kid-name,.schedule-kid-chevron){display:inline;font-size:12px}
html[data-hh-layout="mobile"] .hh-mobile-filters .schedule-kid-avatar{width:24px;height:24px;font-size:15px;flex:none}
html[data-hh-layout="mobile"] .hh-mobile-filters .calendar-layer-control{margin:0;min-width:0}
html[data-hh-layout="mobile"] .hh-mobile-filters :is(.calendar-layer-toggle,.calendar-layer-label){display:none}
html[data-hh-layout="mobile"] .hh-mobile-filters .calendar-layer-mobile{display:flex;align-items:center;gap:5px;color:var(--text-muted);font-size:11px;width:auto;height:44px}
html[data-hh-layout="mobile"] .hh-mobile-filters .calendar-layer-mobile select{font-size:12px;width:auto;max-width:100px;min-height:44px;padding:4px 6px}
.hh-mobile-filters .hh-day-print{margin-left:auto;font-size:12px;min-height:44px;padding:5px 9px;white-space:nowrap}
.hh-mobile-planner-header #calendar-overlay-health{max-width:none;max-height:90px;overflow:auto;margin-top:6px;font-size:11px}.hh-mobile-planner-header #calendar-overlay-health button{min-height:44px}
.hh-mobile-views{display:flex;align-items:center;gap:8px;justify-content:space-between}
html[data-hh-layout="mobile"] .hh-mobile-views :is(.schedule-view-toggle,.hh-day-style){height:44px;padding:3px;flex-shrink:0}
html[data-hh-layout="mobile"] .hh-mobile-views :is(.schedule-view-btn,.hh-day-style button){font-size:12px;min-height:36px;min-width:42px;padding:6px 9px;line-height:1.2}
html[data-hh-layout="mobile"] :is(#schedule-toolbar,#view-schedule>.home-date-strip,#hh-day-controls){display:none!important}
html[data-hh-layout="mobile"] :is(.schedule-period-copy,.month-header>div){display:none}
html[data-hh-layout="mobile"] .schedule-kid-picker{top:var(--hh-kid-picker-top,110px);bottom:auto;left:12px;right:auto;width:min(300px,calc(100% - 24px));max-height:50dvh;overflow:auto}
html[data-hh-layout="mobile"] .calendar-add-event-fab{bottom:calc(88px + env(safe-area-inset-bottom))}
html[data-hh-layout="mobile"] .tab-bar{height:calc(72px + env(safe-area-inset-bottom));padding:5px 8px calc(5px + env(safe-area-inset-bottom));align-items:center}
html[data-hh-layout="mobile"] .tab-bar-item{flex:1;gap:3px;min-height:56px;padding:5px 4px;border-radius:14px}
html[data-hh-layout="mobile"] .tab-bar-item.active{background:var(--bg-elev-2)}
.tab-bar-icon svg{display:block;width:23px;height:23px}.hh-sidebar .tab-bar-icon svg{width:18px;height:18px}
.hh-print-sheet,.hh-week-print{display:none}
/* The live planner workbench follows the approved calendar / inspector concept. */
:root[data-hh-scheme]{--hh-sidebar-width:218px;--hh-app-header-height:68px}
.hh-app-header{position:fixed;inset:0 0 auto 0;height:var(--hh-app-header-height);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:var(--bg-elev);border-bottom:1px solid var(--hh-line);z-index:75}
/* Yezbi brand lockup (shared/brand): wordmark → Homeschool → icon. The tagline line was retired October 8, 2026. */
.hh-app-brand{--yezbi-brand-size:21px;font-size:var(--yezbi-brand-size);flex:0 1 auto;min-width:0;line-height:1;color:var(--yz-brand-name,var(--text));text-decoration:none}
#hh-app-account{min-width:32px;display:flex;align-items:center;justify-content:flex-end}
html[data-hh-scheme] body.has-tab-bar{padding-top:var(--hh-app-header-height)}
html[data-hh-layout="desktop"] body.has-tab-bar{padding-bottom:0}
html[data-hh-layout="desktop"] .hh-sidebar{top:var(--hh-app-header-height);padding:15px 10px 24px}
.hh-sidebar nav.tab-drawer-section{margin:0 0 13px;padding:0 0 13px;border-top:0;border-bottom:1px solid var(--hh-line)}
.hh-sidebar nav:last-of-type{border-bottom:0}
.hh-sidebar .tab-drawer-section-label{font-size:11px;font-weight:500;letter-spacing:.01em;text-transform:none;margin:0 10px 7px}
.hh-sidebar :is(.tab-bar-item,.tab-drawer-link){min-height:35px;font-size:13px;padding:8px 10px;gap:11px;border:0;border-radius:10px;line-height:1.3}
.hh-sidebar .hh-nav-icon{flex:none;display:grid;place-items:center;width:20px;height:20px;color:var(--text-muted)}
.hh-nav-icon svg{display:block;width:20px;height:20px}
.hh-sidebar .hh-nav-label{min-width:0;overflow-wrap:anywhere}
.hh-sidebar .active .hh-nav-icon{color:var(--hh-accent-ink,var(--accent))}
.hh-sidebar :is(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.hh-desktop-planner-header{flex:none;padding:0 0 14px}
.hh-desktop-title-row,.hh-desktop-control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.hh-desktop-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;margin-bottom:12px;align-items:center}
.hh-desktop-title-row>.hh-desktop-actions{grid-column:2;justify-content:flex-end}
.hh-desktop-control-row{align-items:flex-end}
.hh-desktop-title-row h1{margin:0;font-size:27px;letter-spacing:-.025em;line-height:1.2}
#hh-desktop-plan-date{font-size:13px;color:var(--text-muted);padding:0 8px;text-align:center;white-space:nowrap;line-height:1.3}
html[data-hh-layout="mobile"] #hh-desktop-plan-date{display:none}
.hh-desktop-actions,.hh-desktop-filters,.hh-desktop-views{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.hh-desktop-filters{max-width:100%}
.hh-planner-kid-chips{display:flex;align-items:center;gap:6px;overflow:auto;min-width:0;max-width:100%;padding:2px}
.hh-planner-kid-chips button{display:flex;align-items:center;gap:7px;flex:none;min-height:38px;padding:7px 13px;border:1px solid var(--hh-line);border-radius:22px;color:var(--text);font-size:13px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hh-planner-kid-chips button[aria-pressed="true"]{background:var(--bg-elev-2);color:var(--hh-accent-ink,var(--accent))}
.hh-kid-dot{width:9px;height:9px;border-radius:50%;flex:none}
html[data-hh-layout="desktop"] #schedule-kid-toggle{display:none}
.hh-desktop-actions .week-header-actions{display:flex;gap:8px}
.hh-desktop-views .schedule-period-controls{padding:2px}
html[data-hh-layout="desktop"] .hh-desktop-views .schedule-period-nav{height:36px;width:36px;min-height:36px;font-size:23px;background:none;border:0;color:var(--text)}
html[data-hh-layout="desktop"] .hh-desktop-views .schedule-view-toggle{height:42px;padding:3px}
html[data-hh-layout="desktop"] .hh-desktop-views .schedule-view-btn{font-size:13px;min-height:34px;padding:6px 15px}
.hh-desktop-theme-slot:empty{display:none}
.hh-desktop-theme-slot{margin:0 auto;width:100%;max-width:360px;min-width:0;justify-self:center}
.hh-desktop-theme-slot .week-theme{width:100%}
.hh-desktop-theme-slot .week-theme label{font-size:11px;line-height:14px;text-align:left}
.hh-desktop-theme-slot .week-theme-entry :is(input,button){height:42px;min-height:42px;box-sizing:border-box;font-size:13px}
.hh-desktop-theme-slot .week-theme label span{display:none}
.hh-desktop-theme-slot .week-theme-status:empty{display:none}
@media(min-width:1380px){
  .hh-desktop-control-row:has(.hh-desktop-theme-slot:not(:empty)){display:grid;grid-template-columns:minmax(0,1fr) clamp(220px,calc(25vw - 140px),360px) auto;align-items:start;gap:14px}
  .hh-desktop-control-row:has(.hh-desktop-theme-slot:not(:empty)) :is(.hh-desktop-filters,.hh-desktop-views){padding-top:18px}
  .hh-desktop-control-row:has(.hh-desktop-theme-slot:not(:empty)) .hh-desktop-views{justify-content:flex-end}
}
@media(max-width:1379px){
  .hh-desktop-theme-slot{order:3;flex-basis:100%}
}
html[data-hh-layout="desktop"] :is(#schedule-toolbar,#view-schedule>.home-date-strip,#view-week>.home-date-strip,#view-month>.month-header){display:none!important}
html[data-hh-layout="desktop"] body.parent-page .dashboard-shell{padding:20px 20px 14px!important}
html[data-hh-layout="desktop"] .schedule-kid-picker{top:var(--hh-kid-picker-top,200px);bottom:auto;left:calc(var(--hh-sidebar-width) + 20px);max-height:50dvh;overflow:auto}
html[data-hh-layout="desktop"] .hh-planner-workspace{gap:18px}
html[data-hh-layout="desktop"][data-hh-details="side"] .hh-planner-workspace.hh-has-inspector{grid-template-columns:minmax(0,1fr) minmax(300px,28%)}
.hh-event-details{border-radius:16px}
.hh-event-overview{display:grid;gap:14px;margin:0 0 16px}
.hh-event-overview dt{font-size:12px;color:var(--text-muted);margin-bottom:4px}
.hh-event-overview dd{font-size:14px;color:var(--text);margin:0;line-height:1.5}
html[data-hh-layout="mobile"] .hh-event-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
html[data-hh-layout="desktop"] #act-event-overview{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:7px 0 0}
html[data-hh-layout="desktop"] #act-event-overview dt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
html[data-hh-layout="desktop"] #act-event-overview dd{font-size:12px;color:var(--text-muted);line-height:1.4}
.hh-photo-mobile{display:none}
html[data-hh-layout="mobile"] .hh-photo-mobile{display:flex}
html[data-hh-layout="mobile"] .hh-photo-desktop{display:none}
.hh-photo-mobile .act-photo-add-option{flex-direction:row;min-height:44px;padding:8px;border-color:var(--hh-line)}
.hh-photo-desktop{min-height:44px;border-color:var(--hh-line)}
html[data-hh-layout="desktop"] .week-calendar-untimed-row{min-height:30px}
html[data-hh-layout="desktop"] .week-calendar-untimed-day{gap:3px;padding:4px;max-height:128px;overflow-y:auto;overscroll-behavior:contain}
html[data-hh-layout="desktop"] .week-calendar-untimed-card{flex:none;min-height:24px;gap:0;padding:4px 5px 4px 8px;border-radius:3px}
html[data-hh-layout="desktop"] .week-calendar-untimed-card-label{font-size:11px;line-height:14px;font-weight:600}
html[data-hh-layout="desktop"] .schedule-anytime-card{min-height:30px;padding-block:3px}
html[data-hh-layout="desktop"] .schedule-anytime-copy>span{display:none}
html[data-hh-layout="desktop"] .schedule-anytime-open{padding-block:3px}
@media(pointer:coarse){html[data-hh-layout="desktop"] .week-calendar-untimed-card{min-height:44px}}
html[data-hh-scheme] :is(.schedule-grid-inner,.week-calendar-lanes){background:var(--bg)!important}
html[data-hh-scheme] :is(.schedule-hour-line,.week-calendar-hour-line,.week-calendar-lane){border-color:var(--hh-line)}
.hh-inspector-empty{padding:24px;display:flex;flex-direction:column;align-items:flex-start;min-height:280px}
.hh-inspector-kicker{font-size:11px;letter-spacing:.09em;color:var(--text-muted)}
.hh-inspector-empty-mark{margin:56px 0 15px;color:var(--hh-accent-ink,var(--accent));font-size:32px}
.hh-inspector-empty h2{font-size:20px;line-height:1.25;margin:0 0 12px}
.hh-inspector-empty p{font-size:14px;line-height:1.6;color:var(--text-muted);margin:0 0 16px}
.hh-inspector-empty .hh-inspector-empty-hint{font-size:12px}
html[data-hh-layout="desktop"] .hh-docked-dialog .act-modal-header{padding:18px;gap:12px}
html[data-hh-layout="desktop"] .hh-docked-dialog .act-modal-body{padding:18px}
html[data-hh-layout="desktop"] :is(.schedule-grid,.week-calendar-desktop,.month-grid){border-radius:16px;border-color:var(--hh-line);overflow:hidden}
html[data-hh-layout="desktop"] .schedule-grid{overflow-y:auto}
@media screen{html[data-hh-layout="desktop"] .week-calendar-desktop{min-height:0}}
:root[data-hh-layout="mobile"]{--hh-app-header-height:50px}
html[data-hh-layout="mobile"] .hh-app-header{padding:8px 16px}
html[data-hh-layout="mobile"] .hh-app-brand{--yezbi-brand-size:clamp(12px,3.4vw,15px);padding-block:10px}
html[data-hh-layout="mobile"] .hh-mobile-planner-header{background:var(--bg);border-bottom:0;padding:4px 10px 10px}
html[data-hh-layout="mobile"] .schedule-grid{border:1px solid var(--hh-line);border-radius:14px;margin:0 7px 8px}
html[data-hh-layout="mobile"] .hh-mobile-date-row .schedule-period-nav{border:1px solid var(--hh-line);border-radius:12px;background:var(--bg-elev)}
/* Short landscape phones: 48px, so the 44px top-bar buttons stay inside the bar (October 8, 2026; it was 38px). */
@media(max-height:500px){:root[data-hh-layout="mobile"]{--hh-app-header-height:48px}.hh-app-header{padding-block:2px}}
@media print{.hh-app-header,.hh-desktop-planner-header,.hh-inspector-empty{display:none!important}html[data-hh-scheme] body.has-tab-bar{padding-top:0!important}}
html[data-hh-layout="desktop"] body.tv-calendar-mode{padding:0!important}
body.tv-calendar-mode :is(.hh-app-header,.hh-sidebar,.hh-event-details,.hh-desktop-control-row,.hh-desktop-theme-slot){display:none!important}
body.tv-calendar-mode .hh-planner-workspace.hh-has-inspector{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important}
body.tv-calendar-mode .hh-desktop-title-row{margin-bottom:0;padding-right:110px}
body.tv-calendar-mode .hh-desktop-planner-header{padding-bottom:10px}
/* The parent palette must reach nested/older screens, not just their shell.
   Keep paper output independent of the chosen screen palette. */
@media screen{
  html[data-hh-scheme]{--hh-accent-ink:var(--accent)}
  html[data-hh-scheme="paper-sage"]{--hh-accent-ink:var(--accent-hover)}
  html[data-hh-scheme] :is(.records-panel,.external-event-dialog,.week-theme-popover,.month-dow,.month-cell,.year-pacing-card,.fill-pace-row){background:var(--bg-elev);color:var(--text);border-color:var(--hh-line)}
  html[data-hh-scheme] .month-cell.other-month{background:var(--bg)}
  html[data-hh-scheme] .month-cell:hover{background:var(--bg-elev-2)}
  html[data-hh-scheme] :is(.year-pacing-status,.fill-pace-row .fill-pace-meta){color:var(--text-muted)}
  html[data-hh-scheme] .fill-pace-current{color:var(--hh-accent-ink)}
  html[data-hh-scheme] .fill-action-danger{color:var(--danger)}
  html[data-hh-scheme] .edit-pace-days .day-chip{background:var(--bg);color:var(--text-muted);border-color:var(--hh-line)}
  html[data-hh-scheme] :is(.edit-pace-days .day-chip.is-active,.edit-pace-save){background:var(--accent);color:var(--hh-on-accent);border-color:var(--accent)}
  html[data-hh-scheme] .external-event-dialog{inset:0;margin:auto;max-height:calc(100dvh - 28px)}
  html[data-hh-scheme] :is(.resource-workshop-edit-form label,.planner-block-label){color:var(--text)}
  html[data-hh-scheme] :is(.planner-block-time,.planner-block-duration,.resource-workshop-edit-form label span,.month-dow,.month-more,#tab-feedback-screen){color:var(--text-muted)}
  html[data-hh-scheme] :is(.weekly-resource-why,.resource-detail-why,.resource-workshop-edit-note,.calendar-provider-link,.privacy-back,.resource-detail-card>header p){color:var(--hh-accent-ink)}
  html[data-hh-scheme] .tab-drawer-badge{color:var(--text);background:var(--bg-elev-2)}
  html[data-hh-scheme] #tab-feedback-screen{background:var(--bg);color:var(--text-muted)}
  html[data-hh-scheme] #tab-feedback-submit{color:var(--hh-on-accent)!important}
  html[data-hh-scheme] #external-event-source{color:var(--hh-accent-ink)!important}
  html[data-hh-scheme] :is(#weekly-resources-library,.resource-schedule-form small){color:var(--text)}
  html[data-hh-scheme] .tab-bar-item.active .tab-bar-label{color:var(--text)}
  html[data-hh-scheme] :is(.records-tabs button.active,.records-print-week,.student-card button,.theme-builder button,#recovery-apply-button,#resource-schedule-submit,.resource-detail-card .primary-btn,#tab-feedback-submit,#btn-fill-curriculum,.fill-action-primary,.fill-all-btn,.btn-primary,#week-theme-save,.instructional-day-chip.is-active,.calendar-connect-section>h4>span){background:var(--accent);color:var(--hh-on-accent);border-color:var(--accent)}
  html[data-hh-scheme] :is(.month-cell.today .month-cell-number,.act-kid-avatar){color:var(--hh-on-accent)}
  html[data-hh-scheme] .act-edit-event-btn:hover,html[data-hh-scheme] .act-edit-event-btn:focus-visible{color:var(--hh-on-accent)}
  html[data-hh-scheme] .student-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
  html[data-hh-scheme] .student-card{grid-template-columns:minmax(0,1fr);min-width:0}
  html[data-hh-scheme] .student-card :is(div,label,select,button){min-width:0;max-width:100%;overflow-wrap:anywhere}
  html[data-hh-scheme] .student-card select{width:100%}
  html[data-hh-scheme] .student-avatar{flex-shrink:0}
  html[data-hh-scheme] .kid-check{background:var(--bg);border-color:var(--hh-line)}
  html[data-hh-scheme] .kid-check span{color:var(--text)}
  html[data-hh-scheme] :is(.privacy-intro,.privacy-card p,.privacy-label,.privacy-retention,.privacy-count span){color:var(--text-muted)}
  html[data-hh-scheme] .privacy-card{color:var(--text);background:var(--bg-elev);border-color:var(--hh-line)}
  html[data-hh-scheme] :is(.privacy-count,.privacy-btn-secondary){color:var(--text);background:var(--bg-elev-2)}
  html[data-hh-scheme] .privacy-btn:not(.privacy-btn-secondary):not(.privacy-btn-danger){background:var(--accent);color:var(--hh-on-accent)}
  html[data-hh-scheme] :is(.privacy-danger h2,.privacy-status.error){color:var(--danger)}
  html[data-hh-scheme] .privacy-warning{color:var(--danger)!important}
  html[data-hh-scheme] .privacy-status.success{color:var(--hh-positive)}
  html[data-hh-scheme] :is(.tutorial-hero,.tutorial-release,.tutorial-release-header,.tutorial-guide-item,.tutorial-guide-item[open],.tutorial-stay-current,.tutorial-secondary-link,.tutorial-category-nav button){background:var(--bg-elev);color:var(--text);border-color:var(--hh-line)}
  html[data-hh-scheme] :is(.tutorial-release-item,.tutorial-release-newest,.tutorial-guide-body){border-color:var(--hh-line)}
  html[data-hh-scheme] :is(.tutorial-back,.tutorial-hero-copy>p:last-child,.tutorial-order-note,.tutorial-section-heading>p,.tutorial-release-date,.tutorial-release-header p,.tutorial-release-item p,.tutorial-guide-item summary small,.tutorial-guide-chevron,.tutorial-guide-body,.tutorial-stay-current p,.tutorial-search,.tutorial-guide-group>h3,.tutorial-empty){color:var(--text-muted)}
  html[data-hh-scheme] :is(.tutorial-order-note strong,.tutorial-release-item ol,.tutorial-guide-body h4){color:var(--text)}
  html[data-hh-scheme] :is(.tutorial-eyebrow,.tutorial-kicker,.tutorial-item-action,.tutorial-guide-action){color:var(--hh-accent-ink)}
  html[data-hh-scheme] :is(.tutorial-release-icon,.tutorial-guide-icon,.tutorial-order-note span,.tutorial-stay-icon){background:var(--bg-elev-2);color:var(--text)}
  html[data-hh-scheme] :is(.tutorial-primary-link,.tutorial-release-badge,.tutorial-stay-current>a,.tutorial-category-nav button.active,.guided-tour-actions .guided-tour-next){background:var(--accent);color:var(--hh-on-accent);border-color:var(--accent)}
  /* Use textual status with a subtle tint; bright pastel text only works on dark. */
  html[data-hh-scheme] :is(.attendance-present,.attendance-partial,.attendance-absent){color:var(--text)}
}
/* Short windows/landscape must retain usable notes and camera space. Every
   control remains available; the card itself can scroll if text is enlarged. */
@media screen and (max-width:599px){
  html[data-hh-layout="mobile"] .act-modal-header{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:8px;position:relative}
  html[data-hh-layout="mobile"] .act-modal-title-wrap{grid-area:1/1;min-width:0;min-height:44px;padding-right:52px}
  html[data-hh-layout="mobile"] .act-modal-header-actions{display:contents}
  html[data-hh-layout="mobile"] .act-modal-header-actions .modal-close{position:absolute;right:16px;top:12px}
  html[data-hh-layout="mobile"] .act-modal-header-actions .act-print-event{grid-area:2/1;justify-self:start}
  html[data-hh-layout="mobile"] .act-modal-header-actions .act-edit-event-btn{grid-area:2/1;justify-self:end}
}
@media screen and (max-height:600px){
  html[data-hh-layout="mobile"] .act-modal-card{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);overflow-y:auto}
  html[data-hh-layout="mobile"] .act-modal-card .act-modal-header{padding:8px 12px;flex-shrink:0}
  html[data-hh-layout="mobile"] .act-modal-title-wrap h2{font-size:16px;line-height:1.2}
  html[data-hh-layout="mobile"] .act-modal-subtitle{font-size:12px}
  html[data-hh-layout="mobile"] .act-modal-body{min-height:120px;padding:8px 12px}
  html[data-hh-layout="mobile"] .act-modal-pinned{padding:6px 8px;gap:6px}
  html[data-hh-layout="mobile"] .act-quick-log-actions{padding:0;gap:6px}
  html[data-hh-layout="mobile"] .act-quick-log-actions button{min-height:44px;padding:4px;font-size:12px}
  html[data-hh-layout="mobile"] .act-mood-btn{min-height:44px;padding:4px;font-size:22px}
  html[data-hh-layout="mobile"] .act-action-bar :is(.act-action-btn,.act-save-inline){min-height:44px;padding:5px;flex-direction:row;gap:5px}
  html[data-hh-layout="mobile"] .act-action-bar :is(.act-action-icon,.act-kid-avatar){font-size:16px}
  html[data-hh-layout="mobile"] .act-save-btn.act-save-inline .act-save-label{font-size:11px}
  html[data-hh-layout="mobile"] .act-bottom-row{min-height:0;margin:0;padding:0}
  html[data-hh-layout="mobile"] .act-bottom-row:not(:has(.block-form-msg:not(:empty))):has([hidden]){display:none}
  html[data-hh-layout="mobile"] body.has-tab-bar{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  html[data-hh-layout="mobile"] .tab-bar{height:calc(56px + env(safe-area-inset-bottom));padding-top:2px;padding-bottom:calc(2px + env(safe-area-inset-bottom))}
  html[data-hh-layout="mobile"] .tab-bar-item{min-height:48px;gap:1px;padding:2px}
  html[data-hh-layout="mobile"] .calendar-add-event-fab{bottom:calc(68px + env(safe-area-inset-bottom))}
}
@media screen and (max-height:600px) and (min-width:640px){
  html[data-hh-layout="mobile"] .hh-mobile-planner-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;padding-block:2px}
  html[data-hh-layout="mobile"] .hh-mobile-date-row{grid-area:1/1}
  html[data-hh-layout="mobile"] .hh-mobile-filters{grid-area:1/2;margin:0}
  html[data-hh-layout="mobile"] .hh-mobile-views{grid-area:2/1/3/-1}
  html[data-hh-layout="mobile"] .hh-mobile-week-slot{grid-column:1/-1;grid-row:3}
  html[data-hh-layout="mobile"] .hh-mobile-week-slot:not(:has(#hh-day-week-strip:not([hidden]))){display:none}
  html[data-hh-layout="mobile"] #calendar-overlay-health{grid-column:1/-1}
  html[data-hh-layout="mobile"] .schedule-anytime{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;max-height:84px;padding:6px 10px}
  html[data-hh-layout="mobile"] .schedule-anytime-heading{margin:0;padding:0}
  html[data-hh-layout="mobile"] .schedule-anytime-list{max-height:70px}
  html[data-hh-layout="mobile"] .schedule-grid-family-header{padding-block:5px;min-height:30px}
  html[data-hh-layout="mobile"] .act-modal-pinned{display:grid;grid-template-columns:minmax(244px,1fr) minmax(0,1.1fr)}
  html[data-hh-layout="mobile"] .act-mood-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
  html[data-hh-layout="mobile"] .act-mood-btn{min-width:0;width:100%}
  html[data-hh-layout="mobile"] :is(.act-quick-log-actions,.act-bottom-row){grid-column:1/-1}
}
@media(pointer:coarse){.hh-sidebar :is(.tab-bar-item,.tab-drawer-link),.hh-day-style button{min-height:44px}}
/* A single compact event header and an evenly spaced, square mood picker.
   Scoped to activity details: workshop-guide controls retain their own layout. */
#hh-modal-activity .act-modal-header{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:start!important;gap:8px 12px;position:relative;padding:16px 18px 12px}
#hh-modal-activity .act-modal-header::before{content:none}
#hh-modal-activity .act-modal-title-wrap{grid-area:1/1;width:auto;min-height:44px;padding:0;display:flex;align-items:center}
#hh-modal-activity .act-modal-title-wrap h2{font-size:19px;line-height:1.3;letter-spacing:-.015em;overflow-wrap:anywhere}
#hh-modal-activity .act-detail-close{grid-area:1/2;position:static;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:1px solid var(--hh-line);border-radius:12px;background:transparent;color:var(--text-muted)}
#hh-modal-activity .act-detail-close:hover{background:var(--bg-elev-2);color:var(--text)}
#hh-modal-activity .act-modal-context{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px;min-width:0}
#hh-modal-activity .act-modal-context:not(:has(>:not([hidden]))){display:none}
#hh-modal-activity #act-event-overview{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0}
#hh-modal-activity #act-event-overview dt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#hh-modal-activity #act-event-overview dd{font-size:12px;color:var(--text-muted);line-height:1.5}
#hh-modal-activity #act-event-overview [data-context=children] dd{color:var(--text);font-weight:600}
#hh-modal-activity #act-modal-subtitle{margin:0;font-size:12px;line-height:1.5;font-weight:500;letter-spacing:0;color:var(--text-muted)}
#hh-modal-activity .act-modal-header-actions{grid-column:1/-1;display:flex;justify-content:flex-start;gap:8px;min-width:0}
#hh-modal-activity .act-modal-header-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:7px 11px;border-radius:9px;font-size:12px}
#hh-modal-activity .act-modal-header-actions svg{flex:none}
#hh-modal-activity .act-mood-row{display:flex;flex:0 0 auto;align-items:center;justify-content:center;gap:8px;margin:0;max-width:100%}
#hh-modal-activity .act-mood-btn{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid var(--hh-line);border-radius:11px;font-size:25px;line-height:1;background:var(--bg-elev);transform:none}
#hh-modal-activity .act-mood-btn span{display:block;line-height:1;font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
#hh-modal-activity .act-mood-btn.selected{background:var(--bg-elev-2);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
#hh-modal-activity .act-mood-btn:hover{background:var(--bg-elev-2)}
#hh-modal-activity:is(.act-modal-chore,.act-modal-meal) .act-mood-row{display:none}
#hh-modal-activity .act-modal-pinned{border-top:1px solid var(--hh-line);gap:12px;padding:12px}
#hh-modal-activity :is(.block-field-label,.act-photo-section-title){text-transform:none;letter-spacing:0;font-size:13px;font-weight:650}
#hh-modal-activity .act-action-bar :is(.act-action-btn,.act-save-inline){border-radius:11px}
@media(pointer:coarse){#hh-modal-activity .act-modal-header-actions button{min-height:44px}}
@media(max-width:599px){
 #hh-modal-activity{padding:8px}
 #hh-modal-activity .act-modal-header{padding:12px;gap:6px 10px}
 #hh-modal-activity .act-modal-title-wrap h2{font-size:17px}
 #hh-modal-activity .act-modal-context{gap:3px 10px}
}
@media(max-height:600px){#hh-modal-activity .act-modal-header{padding:8px 12px;gap:4px 10px}#hh-modal-activity .act-modal-pinned{padding:6px 8px;gap:6px}}
@media(max-width:360px){.hh-scheme-options{gap:4px}.hh-scheme-options label{font-size:10px;padding:4px}.hh-mobile-filters{gap:4px}.hh-mobile-filters .calendar-layer-mobile{font-size:0!important}.hh-mobile-views{gap:4px}html[data-hh-layout="mobile"] .hh-mobile-views :is(.schedule-view-btn,.hh-day-style button){padding-inline:7px}}
@media print{
  html[data-hh-scheme] body{background:white!important;color:black!important;padding:0!important;height:auto!important;overflow:visible!important}
  .hh-sidebar,.hh-appearance-dialog,.hh-event-details,.hh-day-controls,.hh-day-week-strip,.hh-agenda-status,.hh-mobile-planner-header{display:none!important}
  :root[data-hh-scheme]{background:#fff!important;color-scheme:light!important}
  /* Day and event sheets (HHAppearance.print): US Letter portrait whatever the screen theme. */
  @page hh-day{size:letter portrait;margin:.5in .6in}
  body.hh-simple-print> :not(.hh-print-sheet){display:none!important}
  body.hh-simple-print .hh-print-sheet{page:hh-day;display:block!important;color:#000!important;background:#fff!important;font:11pt/1.4 Arial,Helvetica,sans-serif;padding:0}
  .hh-print-sheet *{color:#000!important}
  .hh-print-sheet h1{font-size:18pt;line-height:1.25;margin:0 0 4pt;padding:0 0 6pt;border-bottom:1.5pt solid #000}.hh-print-sheet h2{font-size:12.5pt;line-height:1.3;margin:0 0 1pt}
  .hh-print-sheet article{break-inside:avoid;border-bottom:.75pt solid #bbb;padding:7pt 0}.hh-print-sheet p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
  /* Print day (agenda.js): the time sits in a left column beside each event. */
  body.hh-print-day-plan .hh-print-sheet article{display:grid;grid-template-columns:1.7in minmax(0,1fr);grid-template-rows:repeat(3,auto);column-gap:.2in;align-items:baseline}
  body.hh-print-day-plan .hh-print-sheet article>*{grid-column:2}
  body.hh-print-day-plan .hh-print-sheet article>p:first-of-type{grid-column:1;grid-row:1/-1;font-size:10.5pt;font-weight:700}
  body.hh-print-day-plan .hh-print-sheet article>p:not(:first-of-type){font-size:10.5pt;color:#333!important}
  /* Print week (planner-tools.js): seven day columns on US Letter landscape. */
  @page hh-week{size:letter landscape;margin:.35in .4in}
  body.hh-week-print-mode> :not(.hh-week-print){display:none!important}
  body.hh-week-print-mode .hh-week-print{page:hh-week;display:block!important;width:auto!important;margin:0!important;padding:0!important;color:#000!important;background:#fff!important;font:9.5pt/1.3 Arial,Helvetica,sans-serif;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .hh-week-print *{color:#000!important;box-shadow:none!important;text-shadow:none!important}
  .hh-week-print-header{display:flex;align-items:baseline;justify-content:space-between;gap:.25in;margin:0 0 6pt;padding:0 0 5pt;border-bottom:1.5pt solid #000}
  .hh-week-print h1{margin:0;font-size:15pt;line-height:1.2;font-weight:700}
  .hh-week-print-kids{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3pt 12pt;margin:0;font-size:10pt}
  .hh-week-print-kid{display:inline-flex;align-items:center;gap:4pt}.hh-week-print-kid::before{content:"";width:8pt;height:8pt;border-radius:50%;background:var(--hh-print-bar,#777)}
  .hh-week-print-grid{width:100%;table-layout:fixed;border-collapse:collapse}
  .hh-week-print-grid th{padding:3pt 5pt 4pt;border:.75pt solid #999;border-bottom:1.25pt solid #000;text-align:left;vertical-align:bottom;font-weight:400}
  .hh-week-print-dayname{display:block;font-size:10pt;font-weight:700}.hh-week-print-date{display:block;font-size:9pt;color:#333!important}
  .hh-week-print-grid td{padding:4pt 4pt 1pt;border:.75pt solid #999;vertical-align:top}
  .hh-week-print-anytime{margin:0 0 5pt;padding:0 0 1pt;border-bottom:.75pt dashed #999}
  .hh-week-print-label{margin:0 0 2pt;font-size:9pt;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#333!important}
  .hh-week-print-item{position:relative;margin:0 0 5pt;padding:0 0 0 6pt;break-inside:avoid}
  .hh-week-print-item::before{content:"";position:absolute;left:0;top:1pt;bottom:1pt;width:2.5pt;border-radius:2pt;background:var(--hh-print-bar,#888)}
  .hh-week-print-personal::before{width:0;border-left:1.5pt dashed #555;border-radius:0;background:none}
  .hh-week-print-item p{margin:0;overflow-wrap:anywhere}
  .hh-week-print-time{font-size:9pt;font-weight:700}.hh-week-print-title{font-size:9.5pt;line-height:1.25}.hh-week-print-who{font-size:9pt;color:#333!important}
  .hh-week-print-personal .hh-week-print-who,.hh-week-print-empty{font-style:italic}.hh-week-print-empty{margin:0;font-size:9pt;color:#555!important}
  /* A crowded week tightens spacing (type stays at least 9pt) to keep one page when it can. */
  .hh-week-print-dense .hh-week-print-item{margin-bottom:3pt}.hh-week-print-dense .hh-week-print-item p{line-height:1.17}.hh-week-print-dense .hh-week-print-title{font-size:9pt}
  .hh-planner-workspace,.hh-plan-surface{display:block!important;overflow:visible!important;height:auto!important}
}

/* Direct-entry guidance uses the existing Homeschool palette and controls. */
[data-planner-entry]{box-sizing:border-box;width:min(680px,100%);margin:40px auto;padding:24px;border:1px solid var(--bg-elev-2);border-radius:12px;background:var(--bg-elev);color:var(--text);overflow-wrap:anywhere}
[data-planner-entry] h1{font-size:clamp(24px,4vw,32px);line-height:1.25}
[data-planner-entry] p{line-height:1.6;color:var(--text-muted)}
[data-planner-entry] .homeschool-account-entry{justify-content:flex-start;margin:20px 0 0}
[data-planner-entry] .homeschool-account-entry>*{min-height:44px;white-space:normal}
[data-planner-entry] .homeschool-account-entry.lp-ui .lp-button,[data-planner-entry] .homeschool-account-entry>button{flex:1 1 180px;min-width:0}
/* Desktop week header: the theme label sits beside the field and the save message floats below it, so the
   control row keeps the same height in Day, Week and Month and the pills never move (October 6, 2026). */
html[data-hh-layout="desktop"] .hh-desktop-theme-slot{max-width:480px}
html[data-hh-layout="desktop"] .hh-desktop-theme-slot .week-theme{position:relative}
html[data-hh-layout="desktop"] .hh-desktop-theme-slot #week-theme-form{display:flex;align-items:center;gap:10px}
html[data-hh-layout="desktop"] .hh-desktop-theme-slot .week-theme label{margin:0;white-space:nowrap;flex:none}
html[data-hh-layout="desktop"] .hh-desktop-theme-slot .week-theme-entry{flex:1;min-width:0}
html[data-hh-layout="desktop"] .hh-desktop-theme-slot .week-theme-status{position:absolute;left:0;right:0;top:calc(100% + 3px);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
/* Light themes: the dark text shadow that lifts hour and "now" labels off the dark gradient blurs them on paper. */
html:is([data-hh-scheme="paper-sage"],[data-hh-scheme="crisp-sky"]) :is(.schedule-hour-label,.schedule-now-time){text-shadow:none}
/* Clerk sign-in card (October 6, 2026): the page already has its own heading, and the app's dark-theme field
   styles must not leak into Clerk's white card, where they made the email field dark on dark. */
html .cl-rootBox .cl-headerTitle, html .cl-rootBox .cl-headerSubtitle { display: none !important; }
html .cl-rootBox input.cl-formFieldInput { background: #ffffff !important; color: #1d2b28 !important; border: 1px solid #c9d3cc !important; }
html .cl-rootBox input.cl-formFieldInput::placeholder { color: #6b7a74 !important; opacity: 1; }
html .cl-rootBox .cl-socialButtonsBlockButton { background: #ffffff !important; color: #1d2b28 !important; border: 1px solid #c9d3cc !important; }
/* Week view now-line: the time label sits centered on today's red line. */
.week-calendar-now-line > .week-calendar-now-label{left:50%;right:auto;top:50%;transform:translate(-50%,-50%);padding:1px 6px}
/* Light themes: events without a category ("Other") used the dark theme's near-black card. */
html:is([data-hh-scheme="paper-sage"],[data-hh-scheme="crisp-sky"]) .week-calendar-event:is(:not([data-calendar-kind]),[data-calendar-kind="other"]){background:var(--bg-elev);border-color:var(--bg-elev-2);color:var(--text)}
html[data-hh-layout="desktop"] .hh-desktop-views #month-today-button{height:42px;min-height:42px;padding:0 16px;font-size:13px}
html[data-hh-layout="desktop"] .hh-desktop-theme-slot:not(:empty){min-width:min(360px,100%);flex:1 1 360px}
/* With date and view buttons in the title row, the second row is filters · theme · tools: give the theme room. */
@media(min-width:1380px){
  html[data-hh-layout="desktop"] .hh-desktop-control-row:has(.hh-desktop-theme-slot:not(:empty)){grid-template-columns:minmax(0,1fr) minmax(340px,440px) auto;align-items:center}
  html[data-hh-layout="desktop"] .hh-desktop-control-row:has(.hh-desktop-theme-slot:not(:empty)) :is(.hh-desktop-filters,.hh-desktop-views,.hh-desktop-actions){padding-top:0}
}
/* Week view: hour labels centered in the time column, matching the day names' size and spacing. */
.week-calendar-time-label{left:0;right:0;text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em}
.week-calendar-corner{font-size:11px}
/* Extracurricular activities (Nature School, Jiu-Jitsu, 4H…) get their own color like the other event types. */
:is(.schedule-block,.schedule-anytime-card,.week-calendar-event,.week-calendar-untimed-card,.week-block-chip,.planner-block,.month-event,.hh-agenda-card)[data-calendar-kind="extracurricular"]{--calendar-kind-color:#2a9d8f}
/* Add an event: with no saved curriculum, offer clear buttons instead of a paragraph of directions. */
.manual-curriculum-empty{display:grid;gap:12px;margin:0 0 16px;padding:14px 16px;border:1px solid var(--bg-elev-2);border-radius:12px;background:var(--bg)}
.manual-curriculum-empty[hidden]{display:none}
.manual-curriculum-empty p{margin:0;color:var(--text);font-size:14px;line-height:1.45}
.manual-curriculum-empty-actions{display:flex;flex-wrap:wrap;gap:10px}
.manual-curriculum-empty-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;text-decoration:none;font-size:14px}
.manual-curriculum-status{margin:-4px 0 14px;color:var(--text-muted);font-size:13px;line-height:1.45}
.manual-curriculum-status:empty{display:none}
.manual-curriculum-empty-actions .btn-secondary{border:1px solid var(--bg-elev-2)}
/* Local events opened from a day: that day's events sit under its own heading. */
.weekly-event-day-heading{margin:6px 2px 2px}
.weekly-event-day-heading h3{margin:0;color:var(--text);font-size:14px;font-weight:700;letter-spacing:.01em}
.weekly-event-day-heading p{margin:2px 0 0;color:var(--text-muted);font-size:12px}
/* Status text (errors, saved, warnings, "why" lines) in light mode. styles.css uses these tokens with its
   original pastel as the fallback, which is what dark mode and unthemed pages keep. */
:root[data-hh-scheme="paper-sage"]{--hh-ink-danger:#a3271b;--hh-ink-success:#2b6624;--hh-ink-warning:#7a4904;--hh-ink-highlight:#7d4f0e}
html[data-hh-scheme="paper-sage"] .yesterday-carryover-actions .yesterday-carryover-complete{border-color:color-mix(in srgb,var(--hh-ink-success) 45%,transparent);background:color-mix(in srgb,var(--hh-ink-success) 7%,var(--bg-elev))}
/* Faint hourly grid lines in the day and week views (Derek, October 6). Event cards are opaque and
   stacked above (z-index 2), so a line never shows through an event. */
:root[data-hh-scheme="paper-sage"]{--hh-hour-line:rgba(48,61,42,.10)}
:root[data-hh-scheme="midnight-teal"]{--hh-hour-line:rgba(228,242,238,.08)}
html[data-hh-scheme] .schedule-hour-row{border-top:1px solid var(--hh-hour-line)!important}
html[data-hh-scheme] .schedule-hour-row:first-child{border-top-color:transparent!important}
html[data-hh-scheme] .week-calendar-lane{background-image:repeating-linear-gradient(to bottom,var(--hh-hour-line) 0 1px,transparent 1px 80px)}
/* Dark theme too: plain ("Other") events use the themed card instead of the old near-black brown. */
html[data-hh-scheme="midnight-teal"] .week-calendar-event:is(:not([data-calendar-kind]),[data-calendar-kind="other"]){background:var(--bg-elev);border-color:var(--bg-elev-2);color:var(--text)}
/* Header rows swapped (Derek, October 6): the title row carries the view's own tools, the second row the
   child filters and Today · date · Day/Week/Month, which therefore sit in the same place in every view. */
html[data-hh-layout="desktop"] .hh-desktop-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
html[data-hh-layout="desktop"] .hh-desktop-title-row h1{flex:0 0 auto;margin-right:auto}
html[data-hh-layout="desktop"] .hh-desktop-title-row .hh-desktop-theme-slot:not(:empty){flex:1 1 320px;max-width:480px;margin:0}
html[data-hh-layout="desktop"] .hh-desktop-title-row .hh-desktop-actions{flex:0 0 auto;justify-content:flex-end}
html[data-hh-layout="desktop"] .hh-desktop-control-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
html[data-hh-layout="desktop"] .hh-desktop-control-row .hh-desktop-views{margin-left:auto;justify-content:flex-end}
/* Discover → Videos (October 6, 2026): where each video plays, at the right of its card. Kids Videos show the
   YouTube icon; Movie Night documentaries show up to three service logos (the variant drawn for the current
   scheme, each on a chip of its own background) or the service's name. Phones get 44px targets. */
.weekly-resource-card.weekly-resource-card--service{grid-template-columns:auto minmax(0,1fr) auto}
.weekly-resource-service{display:flex;flex-direction:column;align-items:flex-end;gap:5px;align-self:start;min-width:28px;max-width:76px}
.weekly-resource-service svg{display:block;width:28px;height:20px}
.weekly-resource-service-logo{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:26px;max-width:76px;padding:3px 7px;border:1px solid var(--bg-elev-2);border-radius:6px}
.weekly-resource-service-logo img{display:block;width:auto;height:auto;max-width:60px;max-height:18px;object-fit:contain}
.weekly-resource-service-logo[data-logo-variant="dark"]{background:#11181c;border-color:#11181c}
.weekly-resource-service-logo[data-logo-variant="light"]{background:#fff;border-color:#d9dcd5}
html[data-hh-scheme="paper-sage"] .weekly-resource-service-logo[data-logo-pair][data-logo-variant="dark"],html:not([data-hh-scheme="paper-sage"]) .weekly-resource-service-logo[data-logo-pair][data-logo-variant="light"]{display:none}
.weekly-resource-service-logo.is-text{height:auto;min-height:24px;color:var(--text);background:var(--bg);font-size:11px;font-weight:700;line-height:1.2;text-align:right;overflow-wrap:anywhere}
.weekly-resource-service-more{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:22px;padding:2px 6px;border:1px solid var(--bg-elev-2);border-radius:999px;color:var(--text);background:var(--bg);font-size:11px;font-weight:700}
.weekly-resource-card-thumb.weekly-resource-poster{height:87px;object-fit:cover}
.weekly-resource-rating-note{margin:7px 0 0;color:var(--hh-ink-warning,#f2c97d);font-size:12px;font-weight:700;line-height:1.35}
.weekly-video-group-heading{margin:2px 0 10px}
.weekly-video-group-heading:not(:first-child){margin-top:18px}
.weekly-video-group-heading h3{margin:0;color:var(--text);font-size:15px;line-height:1.3}
.weekly-video-group-heading p,.weekly-video-group-empty{margin:3px 0 0;color:var(--text-muted);font-size:12px;line-height:1.45}
.weekly-video-group-empty{margin:0 0 10px}
.weekly-video-attribution{margin:12px 0 4px;color:var(--text-muted);font-size:12px;line-height:1.45}
.weekly-video-attribution a{color:var(--hh-accent-ink,var(--accent));text-decoration:underline;text-underline-offset:2px}
.resource-documentary-facts{margin:0 0 6px;color:var(--text);font-weight:700}
.resource-documentary-services h3{margin:14px 0 6px;font-size:14px}
.resource-documentary-services ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.resource-documentary-services li{display:flex;align-items:center;gap:10px;min-height:32px}
.resource-documentary-service-name{color:var(--text);font-weight:700}
.resource-documentary-service-kind{margin-left:auto;color:var(--text-muted);font-size:12px}
.resource-documentary-services>p{margin:8px 0 0;color:var(--text-muted);font-size:12px;line-height:1.45}
.resource-documentary-facts~.resource-detail-links a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;font-size:13px}
html[data-hh-layout="mobile"] .weekly-video-shelf .weekly-resource-actions :is(a,button){min-height:44px;padding:8px 14px;font-size:12px}
html[data-hh-layout="mobile"] .weekly-video-attribution a{display:inline-flex;align-items:center;min-height:44px}
/* Header v4 (Derek, October 8): the title row carries the title, the weekly theme in the middle and the view's
   tools at the right; the second row the child filters and Today · date · Day/Week/Month, which therefore sit in
   the same place in every view. Below 1100px wide js/mobile-planner.js moves the theme under the second row. */
html[data-hh-layout="desktop"] #hh-desktop-planner-header .hh-desktop-title-row{display:flex;flex-wrap:nowrap;align-items:center;gap:16px}
html[data-hh-layout="desktop"] #hh-desktop-planner-header .hh-desktop-title-row h1{flex:none;margin-right:0;white-space:nowrap}
html[data-hh-layout="desktop"] #hh-desktop-planner-header .hh-desktop-title-row>.hh-desktop-theme-slot{order:0;flex:1 1 auto;min-width:0;max-width:480px;margin:0 auto}
html[data-hh-layout="desktop"] #hh-desktop-planner-header .hh-desktop-title-row .hh-desktop-actions{flex:none;margin-left:auto;flex-wrap:nowrap;justify-content:flex-end}
html[data-hh-layout="desktop"] #hh-desktop-planner-header .hh-desktop-title-row:has(>.hh-desktop-theme-slot:not(:empty)) .hh-desktop-actions{margin-left:0}
html[data-hh-layout="desktop"] #hh-desktop-planner-header .hh-desktop-control-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}
html[data-hh-layout="desktop"] #hh-desktop-planner-header .hh-desktop-control-row>.hh-desktop-filters{padding-top:0}
html[data-hh-layout="desktop"] #hh-desktop-planner-header .hh-desktop-control-row>.hh-desktop-views{margin-left:auto;justify-content:flex-end;padding-top:0}
html[data-hh-layout="desktop"] #hh-desktop-planner-header>.hh-desktop-theme-slot{order:0;width:100%;max-width:520px;margin:10px 0 0}
/* Guided tour in the app's own colors in light and dark, instead of the original amber theme (Derek, October 7). */
html[data-hh-scheme] .guided-tour-spotlight{border-color:var(--accent);box-shadow:0 0 0 9999px rgba(9,14,12,.55),0 0 0 6px color-mix(in srgb,var(--accent) 30%,transparent)}
html[data-hh-scheme] .guided-tour-bubble{border-color:var(--accent);background:var(--bg-elev);color:var(--text);box-shadow:0 18px 50px rgba(0,0,0,.28)}
html[data-hh-scheme] .guided-tour-progress{background:var(--bg-elev-2)}
html[data-hh-scheme] .guided-tour-progress span{background:var(--accent)}
html[data-hh-scheme] :is(.guided-tour-count,.guided-tour-bubble #guided-tour-body){color:var(--text-muted)}
html[data-hh-scheme] .guided-tour-name{color:var(--hh-accent-ink,var(--accent))}
html[data-hh-scheme] .guided-tour-bubble h2{color:var(--text)}
html[data-hh-scheme] :is(.guided-tour-close,.guided-tour-availability,.guided-tour-actions button){border-color:var(--bg-elev-2);background:var(--bg);color:var(--text)}
html[data-hh-scheme] .guided-tour-actions .guided-tour-end{border-color:transparent;background:transparent;color:var(--text-muted)}
html[data-hh-scheme] .guided-tour-actions .guided-tour-next{border-color:var(--accent);background:var(--accent);color:var(--hh-on-accent)}
html[data-hh-scheme] :is(.guided-tour-actions button,.guided-tour-close):focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent)}
/* Moving between pages keeps the header and sidebar still while only the main panel changes, in browsers
   that support cross-page view transitions (Chrome and Edge today); others load pages as before. */
@view-transition{navigation:auto}
.hh-sidebar{view-transition-name:hh-sidebar}
.hh-app-header{view-transition-name:hh-app-header}
::view-transition-group(hh-sidebar),::view-transition-group(hh-app-header){animation-duration:0s}
::view-transition-old(root),::view-transition-new(root){animation-duration:.12s}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
/* The + sits clear of the calendar's own scrollbar, low in the corner (Derek, October 7). */
html[data-hh-layout="desktop"] .calendar-add-event-fab{bottom:28px;right:calc(58px + env(safe-area-inset-right,0px))}
/* The page body must not be a scroll container: its sideways clipping stopped sticky tab rows from sticking.
   The root element already clips sideways scrolling. Modal and panel scroll locks (body.<state>) still win. */
:where(html[data-hh-scheme]) body{overflow:visible}
/* Top bar: Light/Dark switch and Appearance settings next to the account picture (Derek, October 8). */
.hh-app-tools{display:flex;align-items:center;gap:8px;margin-left:auto}
.hh-app-tools button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid var(--hh-line);border-radius:12px;background:var(--bg);color:var(--text);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.hh-app-tools button:hover{border-color:var(--accent)}
.hh-app-tools button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hh-app-appearance{width:40px;padding:0!important}
.hh-scheme-switch-track{position:relative;width:34px;height:20px;border-radius:999px;background:var(--bg-elev-2);transition:background .15s}
.hh-scheme-switch-track>span{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--bg-elev);box-shadow:0 1px 2px #0003;transition:transform .15s}
.hh-scheme-switch[aria-checked="true"] .hh-scheme-switch-track{background:var(--accent)}
.hh-scheme-switch[aria-checked="true"] .hh-scheme-switch-track>span{transform:translateX(14px);background:var(--hh-on-accent,#fff)}
html[data-hh-layout="mobile"] .hh-scheme-switch-label{display:none}
html[data-hh-layout="mobile"] .hh-app-tools button{min-height:44px}
/* Tagline beside the lockup on wide screens (Derek, October 8, 2026): smaller muted text after a thin divider, on the
   same baseline as "Homeschool". Hidden below 1180px and on phones so it never crowds Feedback and Tour. */
.hh-app-identity{display:flex;align-items:baseline;gap:14px;min-width:0;flex:0 1 auto}
.hh-app-tagline{display:none;padding-left:14px;border-left:1px solid var(--hh-line);color:var(--text-muted);font-size:13px;font-weight:400;line-height:1.3;letter-spacing:.01em;white-space:nowrap}
@media (min-width:1180px){html[data-hh-layout="desktop"] .hh-app-tagline{display:block}}
/* The other Yezbi apps (sidebar and phone Menu) show their full-color icons at 24px. */
.hh-sidebar .hh-nav-app-icon{width:24px;height:24px;margin:-2px}
.hh-nav-app-icon img,.hh-menu-app-icon img{display:block;width:24px;height:24px}
#tab-more-drawer .hh-menu-icon.hh-menu-app-icon{background:var(--yz-raised,var(--bg-elev-2))}
/* Top-bar Feedback and Tour (Derek, October 8, 2026): icon and short label on desktop. */
.hh-app-help-icon,.hh-scheme-switch-icon{display:grid;place-items:center}
/* Phones (October 8, 2026): the brand lockup, Light/Dark, Feedback, Tour and the account share one bar. Each button is
   a 44px icon whose name is its aria-label and tooltip. On phones Appearance is in Menu → Appearance, and below 371px
   wide the tour is in Menu → Guided app tour, so the lockup keeps a readable size. */
html[data-hh-layout="mobile"] .hh-app-header{padding-inline:10px;gap:6px}
html[data-hh-layout="mobile"] .hh-app-tools{gap:4px}
html[data-hh-layout="mobile"] .hh-app-tools button{width:44px;min-width:44px;padding:0}
html[data-hh-layout="mobile"] :is(.hh-scheme-switch-track,.hh-app-help-label){display:none}
@media (max-width:599px){html[data-hh-layout="mobile"] .hh-app-appearance{display:none}}
@media (max-width:370px){html[data-hh-layout="mobile"] .hh-app-tour{display:none}}
@media (prefers-reduced-motion:reduce){.hh-scheme-switch-track,.hh-scheme-switch-track>span{transition:none}}
/* Header responsiveness (Derek, October 8): as the window narrows the week tools become icons (each keeps its
   name as a tooltip and for screen readers), so the title, weekly theme and tools stay on one row. */
.hh-desktop-actions .week-tool-button{white-space:nowrap}
@media (max-width:1799px){
  html[data-hh-layout="desktop"] .hh-desktop-actions{gap:6px}
  html[data-hh-layout="desktop"] .hh-desktop-actions .week-header-actions{gap:6px}
  html[data-hh-layout="desktop"] .hh-desktop-actions :is(.week-tool-button,.hh-day-print){padding-inline:11px;font-size:13px}
  html[data-hh-layout="desktop"] .hh-desktop-actions .hh-day-style button{padding-inline:12px;font-size:13px}
  html[data-hh-layout="desktop"] .hh-desktop-actions :is(#week-print,#week-tv) .hh-tool-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  html[data-hh-layout="desktop"] .hh-desktop-actions :is(#week-print,#week-tv){padding-inline:10px}
}
@media (max-width:1539px){
  html[data-hh-layout="desktop"] .hh-desktop-actions .week-tool-button .hh-tool-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  html[data-hh-layout="desktop"] .hh-desktop-actions .week-tool-button{padding-inline:10px}
}
@media (max-width:1439px){
  html[data-hh-layout="desktop"] #hh-desktop-plan-title{font-size:22px}
  html[data-hh-layout="desktop"] .hh-desktop-theme-slot #week-theme-form{gap:6px}
  html[data-hh-layout="desktop"] .hh-desktop-theme-slot .week-theme-entry button{padding-inline:10px}
}
/* Just above the width where the theme moves down, its label is for screen readers only. */
@media (min-width:1100px) and (max-width:1199px){
  html[data-hh-layout="desktop"] .hh-desktop-title-row .week-theme label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
/* The second row compacts when the Calendar (School · Google · Both) choice also shows. */
@media (max-width:1365px){
  html[data-hh-layout="desktop"] .hh-desktop-control-row .hh-desktop-filters{gap:6px}
  html[data-hh-layout="desktop"] .hh-desktop-control-row .hh-desktop-filters :is(button,a){padding-inline:8px}
  html[data-hh-layout="desktop"] .hh-desktop-control-row .calendar-layer-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  html[data-hh-layout="desktop"] .hh-desktop-views{gap:6px}
  html[data-hh-layout="desktop"] .hh-desktop-views #month-today-button{padding:0 10px}
  html[data-hh-layout="desktop"] .hh-desktop-views .schedule-period-nav{width:32px;min-width:32px}
  html[data-hh-layout="desktop"] .hh-desktop-views .schedule-view-btn{padding:6px 9px}
}
