*{box-sizing:border-box}body{margin:0;background:#f7f7fb;color:#23243b;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:#6652ce;text-decoration:none}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#fff;border-right:1px solid #eeeaf5;padding:28px 18px;display:flex;flex-direction:column}.logo{font-weight:800;color:#5b49c7;font-size:22px;letter-spacing:-.7px}.muted{color:#9290a5}.sidebar nav{display:grid;gap:8px;margin-top:40px}.sidebar nav a{padding:12px 14px;border-radius:12px;color:#646176;font-weight:600}.sidebar nav a.active,.sidebar nav a:hover{background:#eeeaff;color:#5b49c7}.bottom{margin-top:auto;display:grid;gap:12px}.main{margin-left:238px;padding:36px;max-width:1750px}.auth-main{min-height:100vh;display:grid;place-items:center;padding:20px}.auth{max-width:430px;width:100%}.auth .logo{margin-bottom:30px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}h1{font-size:33px;line-height:1.2;letter-spacing:-1px;margin:8px 0}h2{font-size:19px;margin:0 0 18px;letter-spacing:-.4px}.eyebrow{color:#8b79db;font-size:11px;font-weight:800;letter-spacing:2px}.chip{padding:10px 15px;background:#eeeaff;color:#5b49c7;border-radius:25px;font-weight:700}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px}.panel{background:#fff;border:1px solid #eeedf4;border-radius:20px;padding:23px;box-shadow:0 6px 24px #28234b08}.side{display:grid;align-content:start;gap:20px}.cal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.cal-head h2{margin:0}.cal-head>div{display:flex;gap:7px}.navbtn{border:1px solid #eceaf4;padding:6px 12px;border-radius:10px;font-weight:700}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:20px;border-top:1px solid #eee;border-left:1px solid #eee}.weekday{text-align:center;color:#8b8b9b;font-size:12px;font-weight:700;padding:10px}.day{min-height:104px;padding:8px;border-bottom:1px solid #eee;border-right:1px solid #eee;overflow:hidden}.day b{font-size:13px}.day.today b{background:#7563d9;color:#fff;border-radius:50%;padding:4px 8px}.day.empty{background:#fafafd}.event{background:color-mix(in srgb,var(--event-color),white 85%);color:#333;border-left:3px solid var(--event-color);border-radius:5px;font-size:11px;font-weight:650;margin-top:6px;padding:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}form{display:grid;gap:12px}label{font-size:13px;font-weight:700;color:#56546a;display:grid;gap:5px}input,select{width:100%;border:1px solid #e5e2ef;border-radius:10px;padding:11px;font:inherit;min-width:0;background:#fff}input[type=color]{height:45px;padding:4px}button{background:#7160d4;border:0;color:#fff;border-radius:10px;padding:11px 16px;font-weight:750;cursor:pointer}button:hover{filter:brightness(.95)}button.secondary{background:#f0edfb;color:#6552c8}.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.item{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #f0eff4;padding:12px 0}.item small{display:block;color:#9a97a9}.item form{display:block}.iconbtn{padding:4px 10px;background:#fff0f2;color:#b7435c}.narrow{max-width:660px}.dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:10px}.done{text-decoration:line-through;color:#9a97a9}.notice{background:#fff3db;color:#7c5b15;padding:12px 16px;border-radius:12px;margin-bottom:20px}@media(max-width:1150px){.layout{grid-template-columns:1fr}.side{grid-template-columns:1fr 1fr}}@media(max-width:720px){.sidebar{position:static;width:auto;padding:15px;display:block}.sidebar .muted,.sidebar .bottom{display:none}.sidebar nav{display:flex;gap:5px;margin:12px 0 0;overflow:auto}.sidebar nav a{white-space:nowrap;padding:8px}.main{margin:0;padding:16px}.side{grid-template-columns:1fr}.panel{padding:14px}.day{min-height:72px;padding:4px}.weekday{font-size:10px}.event{font-size:9px;padding:2px}h1{font-size:26px}.chip{display:none}}

.view-switch{display:flex;gap:8px;margin:0 0 18px;flex-wrap:wrap}
.view-switch a{padding:9px 17px;border:1px solid #ddd8e9;border-radius:12px;text-decoration:none;color:#514966;background:#fff}
.agenda-day{padding:12px 0;border-bottom:1px solid #ece8f2}
.agenda-day h3{font-size:16px;margin:6px 0 12px}
.agenda-day .item{gap:10px}
.agenda-day small{display:block;color:#766f83;margin-top:4px}


/* Homeboard v0.5: touch-friendly month view and dedicated wall display */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.day{position:relative;cursor:pointer;min-height:125px;transition:background .15s}
.day:not(.empty):hover{background:#f6f3ff}
.day-add{position:absolute;right:7px;top:6px;padding:0;width:29px;height:29px;display:grid;place-items:center;background:#f0edfb;color:#6453c6;border-radius:8px;font-size:19px;opacity:0;transition:opacity .15s}
.day:hover .day-add,.day:focus-within .day-add{opacity:1}
.day-add:focus-visible{outline:3px solid #4f46e5;outline-offset:2px}
.view-switch .wall-toggle{margin-left:auto;background:#6251c4;color:#fff;border-color:#6251c4}
.wall-exit{background:#fff!important;color:#514966!important}
#wall-clock{margin-left:auto;align-self:center;font-weight:750;font-variant-numeric:tabular-nums;font-size:20px}
body.wall-mode{background:#f7f7fb}
.wall-mode .sidebar,.wall-mode .side,.wall-mode .wall-toggle{display:none!important}
.wall-mode .main{margin:0;max-width:none;padding:24px}
.wall-mode .layout{display:block}
.wall-mode .calendar{width:100%}
.wall-mode .day{min-height:clamp(110px,14vh,220px)}
.wall-mode .event{font-size:clamp(12px,1.2vw,18px);padding:6px}
.wall-mode .day-add{display:none}
.wall-mode .view-switch a:not(.wall-exit){display:none}
.wall-mode header{margin-bottom:12px}
.wall-mode .cal-head h2{font-size:26px}
@media(hover:none){.day-add{opacity:1}}
@media(max-width:720px){.day{min-height:80px}.day-add{opacity:1;width:24px;height:24px;font-size:16px;right:2px;top:2px}.day b{display:inline-block;padding-top:4px}.view-switch .wall-toggle{margin-left:0}.wall-mode .main{padding:8px}.wall-mode .day{min-height:90px}.wall-mode .panel{padding:8px}}

/* v0.7 chore dashboard */
.tasks-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:20px;align-items:start}
.task-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.task-form-grid label{min-width:0}
.task-form-grid select,.task-form-grid input{width:100%;max-width:100%;box-sizing:border-box}
.chore-item{gap:12px;flex-wrap:wrap}
.chore-main{min-width:0;flex:1}.chore-main small{display:block;margin-top:6px;color:#746d80}
.chore-actions{display:flex;align-items:center;gap:8px}.chore-actions form{margin:0}
.reward-row{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #ebe7f1}
.reward-row strong{white-space:nowrap}
@media(max-width:850px){.tasks-layout{grid-template-columns:1fr}}
@media(max-width:500px){.task-form-grid{grid-template-columns:1fr}}

/* v0.8 Family Dashboard */
.hb-dash-header{gap:16px}.hb-primary-link{display:inline-block;background:#6652ce;color:#fff;padding:12px 17px;border-radius:12px;font-weight:700;white-space:nowrap}
.hb-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}
.hb-stat{background:#fff;border:1px solid #eeedf4;border-radius:18px;padding:19px;display:grid;gap:5px;color:#33324b;box-shadow:0 6px 24px #28234b08}
.hb-stat span{font-size:13px;color:#7b7890;font-weight:650}.hb-stat strong{font-size:32px;line-height:1.2}.hb-stat small{color:#6652ce}
.hb-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.hb-panel-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.hb-panel-title h2{margin:0}.hb-panel-title a{font-size:13px;font-weight:700}
.hb-agenda-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #f0eff4}.hb-agenda-row>div{min-width:0}.hb-agenda-row strong,.hb-chore-row strong{display:block;overflow-wrap:anywhere}.hb-agenda-row small,.hb-chore-row small{display:block;color:#8a879a;margin-top:2px}.hb-time{width:62px;flex-shrink:0;color:#6c6682;font-size:12px;font-weight:750}.hb-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.hb-chore-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #f0eff4}.hb-chore-row>div{min-width:0}.hb-chore-row form{display:block;flex-shrink:0}.hb-chore-row button{padding:9px 13px}
@media(max-width:1050px){.hb-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hb-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:520px){.hb-dash-header{flex-wrap:wrap}.hb-stats{gap:9px}.hb-stat{padding:13px}.hb-stat strong{font-size:26px}.hb-dashboard-grid{gap:12px}}

/* v0.9 shopping */
.shop-layout{max-width:1150px}.shop-list-card{margin:20px 0;padding:20px;border:1px solid #e9e5f0;border-radius:18px;background:#fff}.shop-list-head,.shop-item,.shop-item-main{display:flex;align-items:center;justify-content:space-between;gap:14px}.shop-list-head h2{margin:0}.shop-list-head small,.shop-item small{display:block;color:#807a8b;margin-top:3px}.shop-add{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:14px 0}.shop-add label{flex:1 1 145px}.shop-add button{flex:0 0 auto}.shop-item{border-top:1px solid #efedf4;padding:11px 0}.shop-item-main{justify-content:start}.shop-check{min-width:38px;height:38px;border-radius:10px;background:#efedfc;color:#6151b8;font-size:24px;padding:0}.shop-checked strong{text-decoration:line-through;color:#898390}@media(max-width:640px){.shop-list-card{padding:12px}.shop-add button{width:100%}.shop-item-main{min-width:0}.shop-item strong{overflow-wrap:anywhere}}

/* Homeboard v1.0 meals */
.meal-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.meal-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.meal-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #eee8f5;padding:12px 0}
.meal-row small{display:block;color:#777080;margin-top:4px}
.recipe-card{border:1px solid #e9e3f3;border-radius:12px;margin:10px 0;padding:12px}
.recipe-card summary{font-weight:700;cursor:pointer}
.recipe-body{padding-top:12px}.recipe-body p{line-height:1.7;overflow-wrap:anywhere}
.recipe-body h3{font-size:14px;margin:12px 0 5px}
.recipe-body form{margin-top:12px}
@media(max-width:850px){.meal-columns{grid-template-columns:1fr}}
@media(max-width:480px){.meal-fields{grid-template-columns:1fr}}

/* Homeboard v1.1: private family photo gallery and photo frame */
.hb-photo-panel{max-width:1200px}.hb-photo-upload{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:14px}.hb-photo-upload label{margin:0}.hb-photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:26px 0 12px}.hb-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}.hb-photo-card{overflow:hidden;border:1px solid #e6e3ed;border-radius:16px;background:white}.hb-photo-card img{display:block;width:100%;height:175px;object-fit:cover}.hb-photo-card>div{padding:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.hb-photo-card span{font-size:13px;overflow-wrap:anywhere}.hb-photo-card form{margin:0}.hb-photo-card button{padding:7px 10px}.hb-frame[hidden]{display:none!important}.hb-frame{position:fixed;inset:0;z-index:9999;background:#08080d;display:flex;flex-direction:column;align-items:center;justify-content:center}.hb-frame>img{width:100%;height:calc(100% - 76px);object-fit:contain}.hb-frame-controls{height:76px;display:flex;align-items:center;justify-content:center;gap:12px;color:white;width:100%;padding:12px}.hb-frame-controls span{margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hb-frame-controls button{background:#292933;color:#fff}.hb-frame-open{overflow:hidden}@media(max-width:760px){.hb-photo-upload{grid-template-columns:1fr}.hb-frame-controls{gap:5px;padding:6px}.hb-frame-controls button{padding:8px}.hb-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Homeboard v1.2 */
.routine-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px;margin-top:18px}
.routine-card .hb-panel-title{align-items:start}.routine-step{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #eeeaf3}
.routine-check{width:38px;height:38px;border-radius:12px;padding:0;font-size:22px;display:grid;place-items:center}
.routine-check:disabled{opacity:.4;cursor:not-allowed}.routine-finished{text-decoration:line-through;opacity:.55}
.routine-progress{height:12px;background:#eeeaf8;border-radius:20px;overflow:hidden}.routine-progress span{display:block;height:100%;background:#7764d8;border-radius:20px}

/* v1.3 rewards store */
.hb-stat{min-width:0}
@media(max-width:760px){.layout .item{flex-wrap:wrap}.layout .item form{max-width:100%;width:100%}}

/* v1.4 notification center */
.hb-alert-row{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--border,#e8e8ef);align-items:center}.hb-alert-row:last-child{border-bottom:0}.hb-alert-row h3{margin:6px 0;font-size:1rem}.hb-alert-row p{margin:0 0 8px}.hb-alert-type{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;opacity:.7}@media(max-width:640px){.hb-alert-row{align-items:flex-start;flex-direction:column}}

/* v1.5 calendar navigation */
.hb-cal-tools{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:12px 0 18px;padding:14px;border-radius:16px;background:var(--card,#fff)}
.hb-cal-tools label{min-width:145px;flex:1;margin:0}.hb-cal-tools button{flex:0 0 auto}
@media(max-width:620px){.hb-cal-tools{display:grid;grid-template-columns:1fr 1fr}.hb-cal-tools button{grid-column:1/-1}}

/* v1.6 event details */
.hb-event-notes{display:block;margin:.4rem 0 0;white-space:normal;overflow-wrap:anywhere;color:var(--muted,#64748b);font-size:.86rem;line-height:1.5}
.item .hb-event-notes{max-width:42rem}

/* v1.7 family colors and event category chips */
.hb-family-legend{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}
.hb-member-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #dcdce7;border-radius:999px;text-decoration:none;color:inherit;background:#fff;font-size:.9rem}
.hb-member-chip.is-selected{border-color:#6b59ce;background:#f2efff;font-weight:700}
.hb-member-chip .hb-dot{display:inline-block;width:11px;height:11px;border-radius:50%;flex:none}
.hb-event-title{font-weight:600}
.hb-event-category{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:5px;background:rgba(255,255,255,.25);font-size:.7em;opacity:.9}
.hb-member-edit{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.hb-member-edit form{display:flex;align-items:end;gap:8px;margin:0}
.hb-member-edit label{margin:0}
.hb-member-edit input[type=color]{width:54px;min-height:38px;padding:2px}
@media(max-width:600px){.hb-member-edit form{width:100%}.hb-event-category{display:none}}

/* v1.8 searchable calendar */
.hb-search-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}.hb-search-form label:first-child{grid-column:span 2}.hb-search-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hb-search-result{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line,#e9e9ee)}.hb-search-result-info{flex:1;min-width:0}.hb-search-result-info small{display:block;margin-top:4px}.hb-search-result-info p{margin:7px 0}.hb-search-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.hb-search-actions form{margin:0}.hb-search-pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:20px}@media(max-width:720px){.hb-search-form label:first-child{grid-column:span 1}.hb-search-result{flex-wrap:wrap}.hb-search-actions{width:100%;padding-left:22px}}

/* v1.9 event templates */
@media(max-width:720px){.layout .item{flex-wrap:wrap}}

/* v2.0 — touch-friendly calendar experience */
:root{--hb-primary:#6652ce;--hb-border:#e9e7f2;--hb-radius:18px}
body{background:#f8f8fc}
.sidebar{z-index:10;overflow-y:auto;overscroll-behavior:contain;box-shadow:3px 0 24px #21164c05}
.sidebar nav{gap:3px;margin-top:20px}.sidebar nav a{transition:background .16s,color .16s}
.main{width:calc(100% - 238px);max-width:none;margin-right:auto}
.panel{border-color:var(--hb-border);box-shadow:0 8px 32px #28234b08}
.view-switch{align-items:center;gap:6px}.view-switch a{min-height:43px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;font-weight:700;transition:background .15s,border-color .15s}
.view-switch a.is-active{background:#6652ce;color:white;border-color:#6652ce}
.view-switch a:not(.wall-toggle):not(.wall-exit):hover{border-color:#a9a0dd}
.cal-head{margin-bottom:10px}.cal-head h2{font-size:22px}.cal-head .navbtn{min-height:42px;display:inline-flex;align-items:center;justify-content:center}
.calendar-grid{border:1px solid #e8e5f1;border-radius:14px;overflow:hidden;background:white}
.weekday{padding:13px 4px;background:#f6f4fd;color:#696080;letter-spacing:.03em}
.day{min-height:130px;padding:10px;transition:background .15s}.day.today{background:#faf9ff}.day.today b{display:inline-flex;min-width:27px;min-height:27px;align-items:center;justify-content:center;padding:2px 5px}
.event{background:#f1eefc;background:color-mix(in srgb,var(--event-color),white 89%);border-left-width:4px;border-radius:7px;padding:6px 7px;cursor:pointer;white-space:normal;overflow-wrap:anywhere;line-height:1.35;transition:transform .12s,filter .12s}
.event:hover{filter:brightness(.97);transform:translateX(2px)}.event:focus-visible{outline:3px solid #6652ce;outline-offset:2px}
.day-add{opacity:1;min-width:30px;min-height:30px}.day:not(.empty):hover .day-add{background:#6652ce;color:#fff}
.agenda-day{padding:16px 0}.agenda-day h3{background:#f6f4fc;border-radius:10px;padding:10px 12px}.agenda-day .item{min-height:55px}
button,input,select,.navbtn{min-height:42px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9686f1;outline-offset:2px}
@media(max-width:1150px){.main{width:calc(100% - 238px)}}
@media(max-width:720px){.sidebar{overflow:visible}.main{width:100%}.sidebar nav{margin-top:12px}.calendar-grid{border-radius:10px}.weekday{padding:8px 2px}.day{min-height:85px;padding:4px}.day-add{min-width:24px;min-height:24px}.event{padding:3px 4px;font-size:10px;border-left-width:3px}.view-switch{gap:5px}.view-switch a{padding:8px 11px}.cal-head h2{font-size:18px}}
@media(max-width:390px){.day{min-height:75px}.event{font-size:9px}.weekday{font-size:9px}.day-add{right:1px;top:1px}}
.wall-mode .main{width:100%}.wall-mode .day{min-height:clamp(110px,14vh,220px)}.wall-mode .event{font-size:clamp(12px,1.2vw,18px)}
@media(prefers-reduced-motion:reduce){.event,.day,.sidebar nav a,.view-switch a{transition:none!important}.event:hover{transform:none}}

/* v2.0.1 Calendar redesign: dedicated desktop workspace and useful mobile agenda */
body:has(.hb-calendar-layout) .main{min-width:0;max-width:none;padding:28px clamp(18px,2.4vw,42px)}
.hb-calendar-layout{grid-template-columns:minmax(0,1fr) minmax(270px,320px);gap:18px;align-items:start}
.hb-calendar-layout .calendar{min-width:0;padding:20px}
.hb-calendar-layout .side{min-width:0;grid-template-columns:1fr}
.hb-calendar-layout .calendar-grid{margin-top:16px;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #e7e9f0;border-radius:14px;overflow:hidden}
.hb-calendar-layout .weekday{background:#f7f8fc;border-bottom:1px solid #e7e9f0;color:#777a91;padding:12px 3px}
.hb-calendar-layout .day{min-width:0;min-height:108px;padding:8px;border-color:#e9eaf1;background:#fff}
.hb-calendar-layout .day.today{background:#f8f6ff}
.hb-calendar-layout .day.today>b{background:#6652ce;color:#fff;border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0}
.hb-calendar-layout .day b{font-size:13px}
.hb-calendar-layout .day-add{opacity:0;width:26px;min-width:26px;min-height:26px;height:26px;right:4px;top:4px}
.hb-calendar-layout .day:hover .day-add,.hb-calendar-layout .day:focus-within .day-add{opacity:1}
.hb-calendar-layout .event{font-size:11px;display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;padding:5px 7px;margin-top:5px;border-left:3px solid var(--event-color);border-radius:5px;background:#f2f0fb;background:color-mix(in srgb,var(--event-color),white 88%);color:#2e2c3a}
.hb-calendar-layout .hb-event-category{display:none}
.hb-cal-tools{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(150px,1fr) auto;align-items:end;gap:10px;padding:14px 16px;margin:12px 0;border:1px solid #ecebf2;box-shadow:none}
.hb-cal-tools label{min-width:0}
.hb-cal-tools button{white-space:nowrap}
.hb-family-legend{margin:12px 0 18px;gap:7px}
.hb-member-chip{font-size:12px;padding:7px 11px}
.view-switch{margin-bottom:12px;gap:7px}.view-switch a{padding:9px 13px;min-height:39px;font-size:13px}
.cal-head h2{font-size:21px;letter-spacing:-.4px}
.hb-calendar-mobile-actions,.hb-mobile-agenda{display:none}
@media(max-width:1350px){.hb-calendar-layout{grid-template-columns:minmax(0,1fr) 280px}.hb-cal-tools{grid-template-columns:repeat(3,minmax(0,1fr))}.hb-cal-tools button{grid-column:1/-1}.hb-calendar-layout .day{min-height:98px;padding:5px}.hb-calendar-layout .event{font-size:10px;padding:4px}}
@media(max-width:1050px){.hb-calendar-layout{grid-template-columns:minmax(0,1fr)}.hb-calendar-layout .side{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hb-calendar-layout .day{min-height:105px}}
@media(max-width:720px){
 body:has(.hb-calendar-layout) .main{width:100%;padding:16px 12px 28px;margin:0}
 body:has(.hb-calendar-layout) header{margin-bottom:14px}
 .hb-calendar-layout{display:block}
 .hb-calendar-layout .calendar{padding:15px 14px}
 .hb-calendar-layout .side{display:grid;grid-template-columns:1fr;margin-top:16px}
 .hb-cal-tools{grid-template-columns:1fr 1fr;gap:9px;padding:12px;margin:10px 0}
 .hb-cal-tools label:first-of-type{grid-column:1/-1}
 .hb-cal-tools button{grid-column:1/-1}
 .hb-family-legend{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding:2px 0 10px;margin:4px 0 9px}
 .hb-member-chip{white-space:nowrap;flex:none}
 .view-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .view-switch a{min-height:42px;padding:8px;text-align:center}
 .view-switch .wall-toggle,.view-switch .wall-exit{grid-column:1/-1;margin:0}
 .cal-head{gap:8px;align-items:center}
 .cal-head h2{font-size:18px}
 .cal-head>div{gap:4px;flex-shrink:0}
 .cal-head .navbtn{padding:7px 10px;min-height:38px;font-size:13px}
 .hb-calendar-layout .calendar-grid{display:none}
 .hb-calendar-mobile-actions{display:block;margin:10px 0}
 .hb-calendar-add-link{display:block;background:#6652ce;color:#fff;text-align:center;padding:12px;border-radius:12px;font-weight:750}
 .hb-mobile-agenda{display:block;margin-top:14px}
 .hb-mobile-agenda-heading{font-size:12px;letter-spacing:.07em;text-transform:uppercase;font-weight:800;color:#86849a;margin-bottom:10px}
 .hb-mobile-date{display:flex;align-items:center;gap:10px;margin:19px 0 7px;color:#56516d}
 .hb-mobile-date span{font-size:12px;font-weight:700;text-transform:uppercase;min-width:34px}
 .hb-mobile-date strong{font-size:14px}
 .hb-mobile-event{display:flex;align-items:center;gap:11px;padding:12px 10px;margin:7px 0;border:1px solid #e9e7f0;border-radius:12px;color:#302d40;background:#fff;min-width:0}
 .hb-mobile-event-dot{width:5px;height:34px;border-radius:9px;flex:none}
 .hb-mobile-event-body{min-width:0;flex:1}.hb-mobile-event-body strong{display:block;font-size:14px;overflow-wrap:anywhere}.hb-mobile-event-body small{display:block;color:#89869a;font-size:12px;overflow-wrap:anywhere;margin-top:3px}
 .hb-calendar-layout .agenda-day .item{align-items:flex-start}
}
@media(hover:none){.hb-calendar-layout .day-add{opacity:1}}
@media(max-width:390px){.hb-cal-tools{grid-template-columns:1fr}.hb-cal-tools label:first-of-type{grid-column:auto}.cal-head h2{font-size:16px}}
/* Wall calendar always keeps the month grid, including tablet portrait. */
.wall-mode .hb-calendar-layout{display:block}.wall-mode .hb-calendar-layout .calendar-grid{display:grid}.wall-mode .hb-mobile-agenda,.wall-mode .hb-calendar-mobile-actions{display:none}
.wall-mode .hb-cal-tools,.wall-mode .hb-family-legend{display:none}

/* v2.0.2: simplify navigation, eliminate horizontal scrolling and crowded mobile controls */
.hb-menu-toggle{display:none}
@media(max-width:720px){
 .sidebar{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0;padding:12px 16px;border-bottom:1px solid #e8e5ef;position:relative;z-index:20}
 .sidebar .logo{font-size:21px}
 .hb-menu-toggle{display:inline-flex;align-items:center;justify-content:center;background:#f1effa;color:#5141aa;padding:9px 14px;border:1px solid #e2dff0;border-radius:10px;min-height:40px;font-size:14px}
 .sidebar nav{display:none!important;width:100%;flex-basis:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:12px 0 0;overflow:visible!important;max-height:none!important}
 .sidebar nav.hb-nav-open{display:grid!important}
 .sidebar nav a{white-space:normal!important;overflow-wrap:anywhere;padding:11px 10px;border-radius:9px;font-size:13px;line-height:1.25}
 .sidebar .bottom{display:none}
 .hb-family-legend{display:flex!important;flex-wrap:wrap!important;overflow:visible!important;gap:6px!important;padding:0!important;margin:10px 0!important}
 .hb-member-chip{white-space:normal!important;font-size:12px!important;padding:6px 10px!important}
 .hb-cal-tools{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
 .hb-cal-tools label:first-of-type{grid-column:1/-1}
 .hb-cal-tools button{grid-column:1/-1}
 .hb-calendar-layout .side>.panel:first-child{border:1px solid #e6e2ef;box-shadow:none}
 .hb-calendar-layout .calendar{border:0;box-shadow:none;padding:8px 0!important;background:transparent}
 .hb-calendar-layout .cal-head{padding:4px 0 12px}
 .hb-calendar-layout .hb-mobile-event{box-shadow:none}
 body:has(.hb-calendar-layout) .main{padding:16px!important}
 .hb-calendar-layout .side{margin-top:16px}
}
@media(max-width:390px){.hb-cal-tools{grid-template-columns:1fr!important}.hb-cal-tools label:first-of-type{grid-column:auto}}
@media(min-width:721px){.sidebar nav{overflow-y:auto;min-height:0;scrollbar-width:thin}.sidebar{overflow:hidden}.sidebar .bottom{flex-shrink:0}}

/* v2.0.3: mobile shopping page must use document scrolling, not a clipped panel. */
@media(max-width:720px){
 html:has(body.hb-shopping-page){height:auto!important;overflow-y:auto!important;overflow-x:hidden;-webkit-overflow-scrolling:touch}
 body.hb-shopping-page{height:auto!important;min-height:100dvh!important;max-height:none!important;overflow-y:visible!important;overflow-x:clip!important;position:static!important;touch-action:pan-y pinch-zoom}
 body.hb-shopping-page .main{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;position:relative!important;display:block!important;padding-bottom:90px!important}
 body.hb-shopping-page .shop-layout,body.hb-shopping-page .shop-layout>.panel,body.hb-shopping-page .shop-list-card{height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important;min-width:0}
 body.hb-shopping-page .shop-list-head,body.hb-shopping-page .shop-item{min-width:0}
 body.hb-shopping-page .shop-item-main{flex:1 1 auto;min-width:0;justify-content:flex-start}
 body.hb-shopping-page .shop-item-main>div{min-width:0;overflow-wrap:anywhere}
 body.hb-shopping-page .shop-list-head>div{min-width:0;overflow-wrap:anywhere}
 body.hb-shopping-page .shop-add{align-items:stretch}
 body.hb-shopping-page .shop-add label{min-width:0;flex:1 1 100%}
 body.hb-shopping-page .shop-add button{width:100%}
 body.hb-shopping-page .sidebar{position:relative!important;height:auto!important;max-height:none!important;overflow:visible!important}
}

/* v2.1 dashboard customization */
.hb-dash-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.hb-dash-actions button{min-height:42px}
.hb-customize-panel{margin-bottom:18px}
.hb-customize-panel[hidden],.hb-dashboard-page [data-hb-dashboard-section][hidden]{display:none!important}
.hb-customize-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:14px 0}
.hb-customize-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid #e5e2ed;border-radius:12px;background:#fbfaff;min-width:0}
.hb-customize-item label{display:flex;align-items:center;gap:8px;margin:0;font-weight:600;font-size:14px;min-width:0}
.hb-customize-item input{width:18px;height:18px;flex-shrink:0}
.hb-customize-order{display:flex;gap:5px;flex-shrink:0}
.hb-customize-order button{padding:7px 10px;min-height:34px;min-width:34px;font-size:15px}
@media(max-width:720px){.hb-dashboard-page .main{height:auto!important;max-height:none!important;overflow:visible!important;padding-bottom:85px!important}.hb-dashboard-page{height:auto!important;min-height:100dvh!important;overflow-y:auto!important}.hb-dash-header{align-items:flex-start;gap:12px}.hb-dash-actions{width:100%}.hb-customize-options{grid-template-columns:1fr}.hb-customize-item{padding:12px}.hb-customize-order button{min-width:40px;min-height:40px}}

/* v2.2 dashboard widgets */
.hb-widget{min-width:0;overflow-wrap:anywhere}.hb-widget .hb-panel-title{gap:12px}.hb-widget-line{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(128,128,128,.13)}.hb-widget-line:last-child{border-bottom:0}.hb-widget-line>span:nth-child(2){flex:1;min-width:0}.hb-widget-line small{white-space:nowrap;color:var(--muted,#6b7280)}.hb-widget-check{font-size:21px;line-height:1}.hb-mini-month{font-weight:700;margin:4px 0 12px}.hb-mini-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.hb-mini-weekday{font-size:11px;opacity:.6;padding:5px 0}.hb-mini-day{position:relative;min-height:35px;display:flex;align-items:center;justify-content:center;text-decoration:none;border-radius:9px;color:inherit;font-size:13px}.hb-mini-day:hover{background:rgba(128,128,128,.1)}.hb-mini-day.is-today{background:#5148c8;color:white;font-weight:700}.hb-mini-day i{position:absolute;width:4px;height:4px;border-radius:50%;background:#8b5cf6;bottom:2px}.hb-mini-day.is-today i{background:white}.hb-widget-routine{padding:10px 0}.hb-widget-routine>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center}.hb-widget-routine small{white-space:nowrap;color:var(--muted,#6b7280)}.hb-widget-progress{height:6px;background:rgba(128,128,128,.15);border-radius:10px;overflow:hidden;margin-top:8px}.hb-widget-progress span{display:block;height:100%;background:#8b5cf6;border-radius:10px}
@media(max-width:600px){.hb-mini-day{min-height:38px}.hb-widget{padding:16px}.hb-widget .hb-panel-title{flex-wrap:wrap}}

/* v2.3 dashboard visual system — scoped to dashboard to avoid calendar/shopping regressions */
.hb-dashboard-page{--dash-ink:#28233e;--dash-line:#e9e7f1;--dash-muted:#79758b}
.hb-dashboard-page .main{min-width:0;padding:clamp(18px,2.5vw,38px);padding-bottom:80px}
.hb-dashboard-page .hb-dash-header{gap:18px;flex-wrap:wrap;align-items:center;margin-bottom:23px}
.hb-dashboard-page .hb-dash-header h1{font-size:clamp(28px,3vw,39px);letter-spacing:-1.1px}
.hb-dashboard-page .hb-dash-header .muted{margin:4px 0 0}
.hb-dashboard-page .hb-dash-actions{gap:9px}
.hb-dashboard-page .hb-dash-actions button,.hb-dashboard-page .hb-dash-actions a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:11px 15px;white-space:normal;text-align:center}
.hb-dashboard-page .hb-stats{gap:12px;margin-bottom:18px}
.hb-dashboard-page .hb-stat{display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:120px;padding:17px 19px;border:1px solid var(--dash-line);border-radius:16px;background:#fff;box-shadow:0 5px 18px #29223e08;text-decoration:none}
.hb-dashboard-page .hb-stat span{font-size:13px;font-weight:650;color:var(--dash-muted)}
.hb-dashboard-page .hb-stat strong{font-size:clamp(25px,2.8vw,35px);line-height:1.15;letter-spacing:-.8px;color:var(--dash-ink)}
.hb-dashboard-page .hb-stat small{font-size:12px;color:#77718b}
.hb-dashboard-page .hb-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch;grid-auto-flow:row dense}
.hb-dashboard-page .hb-dashboard-grid>.panel{min-width:0;min-height:170px;margin:0;padding:20px 21px;border-radius:17px;box-shadow:0 5px 18px #29223e08;overflow-wrap:anywhere}
.hb-dashboard-page .hb-dashboard-grid>.panel[hidden]{display:none!important}
.hb-dashboard-page .hb-panel-title{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:7px 12px;margin-bottom:15px}
.hb-dashboard-page .hb-panel-title h2{margin:0;font-size:17px;letter-spacing:-.3px;color:var(--dash-ink)}
.hb-dashboard-page .hb-panel-title a{font-size:12px;font-weight:750;white-space:nowrap}
.hb-dashboard-page .hb-dashboard-grid .muted{font-size:13px;line-height:1.6}
.hb-dashboard-page .hb-dashboard-grid .hb-agenda-row,.hb-dashboard-page .hb-dashboard-grid .hb-chore-row,.hb-dashboard-page .hb-dashboard-grid .reward-row{min-width:0;gap:10px}
.hb-dashboard-page .hb-dashboard-grid .hb-agenda-row>div,.hb-dashboard-page .hb-dashboard-grid .hb-chore-row>div{min-width:0;overflow-wrap:anywhere}
.hb-dashboard-page .hb-dashboard-grid .hb-agenda-row strong,.hb-dashboard-page .hb-dashboard-grid .hb-chore-row strong{font-size:13px}
.hb-dashboard-page .hb-dashboard-grid .hb-agenda-row small,.hb-dashboard-page .hb-dashboard-grid .hb-chore-row small{font-size:11px}
.hb-dashboard-page .hb-dashboard-grid .hb-chore-row form{flex:none}
.hb-dashboard-page .hb-dashboard-grid .hb-chore-row button{padding:8px 11px;min-height:36px}
.hb-dashboard-page .hb-widget-line{min-width:0}
.hb-dashboard-page .hb-widget-line>span:nth-child(2){overflow-wrap:anywhere}
.hb-dashboard-page .hb-widget-line small{max-width:40%;overflow:hidden;text-overflow:ellipsis}
.hb-dashboard-page .hb-dashboard-grid>.panel.hb-size-wide{grid-column:span 2}
.hb-dashboard-page .hb-dashboard-grid>.panel.hb-size-compact{min-height:120px;padding:16px 18px}
.hb-dashboard-page .hb-customize-panel{border:1px solid #dcd6f3;background:#fcfbff}
.hb-dashboard-page .hb-customize-item{flex-wrap:wrap}
.hb-dashboard-page .hb-customize-order{align-items:center;margin-left:auto}
.hb-dashboard-page .hb-size-select{width:auto;max-width:110px;min-width:95px;padding:7px 8px;font-size:12px;background:#fff}
@media(min-width:1500px){.hb-dashboard-page .hb-dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hb-dashboard-page .hb-dashboard-grid>.panel.hb-size-wide{grid-column:span 2}}
@media(max-width:1100px){.hb-dashboard-page .hb-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hb-dashboard-page .hb-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.hb-dashboard-page .hb-dashboard-grid{grid-template-columns:minmax(0,1fr)}.hb-dashboard-page .hb-dashboard-grid>.panel.hb-size-wide{grid-column:auto}}
@media(max-width:720px){
 html:has(body.hb-dashboard-page){height:auto!important;overflow-y:auto!important;overflow-x:hidden}
 body.hb-dashboard-page{height:auto!important;min-height:100dvh!important;max-height:none!important;overflow-y:visible!important;overflow-x:clip!important}
 .hb-dashboard-page .main{width:100%!important;min-height:0!important;height:auto!important;max-height:none!important;overflow:visible!important;padding:18px 15px 95px!important}
 .hb-dashboard-page .hb-dash-header{margin-bottom:18px}
 .hb-dashboard-page .hb-dash-header h1{font-size:29px}
 .hb-dashboard-page .hb-dash-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}
 .hb-dashboard-page .hb-dash-actions>*{min-width:0;font-size:13px}
 .hb-dashboard-page .hb-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:13px}
 .hb-dashboard-page .hb-stat{min-height:105px;padding:13px 12px;gap:5px}
 .hb-dashboard-page .hb-stat strong{font-size:27px}
 .hb-dashboard-page .hb-dashboard-grid{grid-template-columns:minmax(0,1fr);gap:12px}
 .hb-dashboard-page .hb-dashboard-grid>.panel{padding:17px 16px;min-height:140px}
 .hb-dashboard-page .hb-dashboard-grid>.panel.hb-size-wide{grid-column:auto}
 .hb-dashboard-page .hb-dashboard-grid>.panel.hb-size-compact{padding:15px}
 .hb-dashboard-page .hb-customize-item{gap:9px}
 .hb-dashboard-page .hb-customize-order{width:100%;justify-content:flex-end}
}
@media(max-width:360px){.hb-dashboard-page .hb-dash-actions{grid-template-columns:1fr}.hb-dashboard-page .hb-stats{grid-template-columns:1fr 1fr}.hb-dashboard-page .hb-stat{padding:11px 9px}}

/* v2.4 family profiles */
.hb-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}
.hb-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.hb-profile-card{min-width:0;padding:18px;border:1px solid #e7e5ee;border-top:4px solid var(--member-accent);border-radius:16px;background:#fff}
.hb-profile-heading{display:flex;align-items:center;gap:12px;margin-bottom:14px;min-width:0}
.hb-profile-heading h3{margin:0 0 3px;font-size:18px}
.hb-profile-heading small{display:block;color:#6b7280;overflow-wrap:anywhere}
.hb-profile-avatar{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:16px;background:#f5f3ff;font-size:27px}
.hb-profile-card form{display:grid;gap:10px}.hb-profile-card label,.hb-profile-add label{min-width:0}
.hb-profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.hb-profile-fields input[type=color]{height:44px;min-height:44px;padding:4px;width:100%}
.hb-profile-card textarea{width:100%;max-width:100%}
@media(max-width:1150px){.hb-profile-layout{grid-template-columns:1fr}.hb-profile-add{max-width:none}}
@media(max-width:760px){.hb-profile-grid{grid-template-columns:1fr}.hb-profile-card{padding:15px}.hb-profile-layout{gap:12px}body:has(.hb-profile-layout){height:auto!important;min-height:100dvh!important;max-height:none!important;overflow-y:auto!important}body:has(.hb-profile-layout) .main{height:auto!important;max-height:none!important;overflow:visible!important;padding-bottom:90px!important}}

/* v2.4.1 Profile emoji library */
.hb-emoji-input{display:flex;gap:8px;align-items:center;min-width:0}
.hb-emoji-input input{width:65px;min-width:0;text-align:center;font-size:23px;flex:0 0 65px}
.hb-emoji-input button{flex:1;min-width:0;white-space:normal;padding:9px 8px;font-size:13px}
.hb-emoji-dialog[hidden]{display:none!important}
.hb-emoji-dialog{position:fixed;inset:0;z-index:9999;background:rgba(20,22,34,.65);display:flex;justify-content:center;align-items:center;padding:16px}
.hb-emoji-panel{width:min(580px,100%);max-height:min(85dvh,740px);overflow-y:auto;overscroll-behavior:contain;background:#fff;color:#20202b;border-radius:20px;padding:20px;box-shadow:0 18px 70px rgba(0,0,0,.25)}
.hb-emoji-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.hb-emoji-top h2{margin:0;font-size:21px}.hb-emoji-top button{width:38px;min-width:38px;padding:7px}
.hb-emoji-search{width:100%;margin-bottom:12px}
.hb-emoji-categories{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.hb-emoji-category{border:1px solid #e5e3ee;border-radius:999px;padding:7px 11px;background:#f8f7fb;color:#343040;font-size:12px}
.hb-emoji-category.selected{background:#ede9fe;border-color:#a78bfa;color:#5b21b6}
.hb-emoji-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;max-height:350px;overflow-y:auto;padding:4px}
.hb-emoji-option{min-width:0;min-height:47px;padding:4px;background:#f8f7fb;border:1px solid transparent;border-radius:10px;font-size:26px;line-height:1.2}
.hb-emoji-option:hover,.hb-emoji-option:focus-visible{background:#ede9fe;border-color:#a78bfa}
.hb-emoji-help{margin:12px 0 0;font-size:12px}
body.hb-emoji-modal-open{overflow:hidden!important}
@media(max-width:520px){.hb-emoji-dialog{align-items:flex-end;padding:0}.hb-emoji-panel{border-radius:20px 20px 0 0;max-height:88dvh;padding:16px 12px 24px}.hb-emoji-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.hb-emoji-option{font-size:24px;min-height:44px}.hb-emoji-top h2{font-size:18px}}

/* v2.5 birthdays and occasions */
.hb-occasion-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid rgba(127,127,127,.14);min-width:0}
.hb-occasion-row:last-child{border-bottom:0}.hb-occasion-row>div{flex:1;min-width:0}.hb-occasion-row strong,.hb-occasion-manage strong{display:block;overflow-wrap:anywhere}.hb-occasion-row small,.hb-occasion-manage small{display:block;opacity:.7;margin-top:3px}.hb-occasion-emoji{font-size:26px;flex:none}.hb-occasion-count{font-size:12px;font-weight:700;white-space:nowrap;background:rgba(127,127,127,.10);border-radius:99px;padding:7px 10px}.hb-occasion-manage{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(127,127,127,.14)}.hb-occasion-manage>div{min-width:0}.hb-checkline{display:flex;align-items:center;gap:10px}.hb-checkline input{width:auto}
@media(max-width:600px){.hb-occasion-row{gap:9px}.hb-occasion-count{font-size:11px;padding:6px 8px}.hb-occasion-emoji{font-size:23px}}

/* Homeboard v2.6: device-local appearance themes */
:root{--hb-accent:#6652ce;--hb-accent-soft:#eeeaff;--hb-accent-contrast:#fff;color-scheme:light}
:root[data-hb-accent="rose"]{--hb-accent:#db4d82;--hb-accent-soft:#fce8f0}
:root[data-hb-accent="sage"]{--hb-accent:#3d846b;--hb-accent-soft:#e3f2eb}
:root[data-hb-accent="ocean"]{--hb-accent:#2673c6;--hb-accent-soft:#e4f0ff}
:root[data-hb-accent="amber"]{--hb-accent:#aa6815;--hb-accent-soft:#fff1d9}
:root:not([data-hb-theme="dark"]) a:not(.event):not(.hb-primary-link),:root:not([data-hb-theme="dark"]) .logo{color:var(--hb-accent)}
:root .sidebar nav a.active,:root .sidebar nav a:hover{background:var(--hb-accent-soft);color:var(--hb-accent)}
:root button:not(.secondary):not(.iconbtn):not(.hb-menu-toggle):not(.hb-emoji-option):not(.hb-emoji-category):not(.day-add):not(.routine-check),:root .hb-primary-link{background:var(--hb-accent);color:var(--hb-accent-contrast)}
:root .view-switch a.active{background:var(--hb-accent-soft);color:var(--hb-accent)}
.hb-theme-trigger{margin-top:16px;width:100%;text-align:left;flex-shrink:0}
.hb-theme-overlay[hidden]{display:none!important}
.hb-theme-overlay{position:fixed;inset:0;z-index:10010;background:rgba(16,19,31,.68);display:grid;place-items:center;padding:16px;overflow:auto}
.hb-theme-panel{width:min(480px,100%);max-height:90dvh;overflow-y:auto;background:#fff;color:#23243b;border-radius:20px;padding:24px;box-shadow:0 18px 80px #0003}
.hb-theme-head,.hb-theme-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.hb-theme-head h2{margin:0}.hb-theme-head button{padding:8px 13px}
.hb-theme-field{border:0;padding:0;margin:20px 0}.hb-theme-field legend{font-weight:750;margin-bottom:9px}.hb-theme-options,.hb-theme-swatches{display:flex;flex-wrap:wrap;gap:9px}
.hb-theme-options label,.hb-theme-swatches label{display:flex;align-items:center;gap:7px;border:1px solid #e6e4ec;border-radius:12px;padding:10px 12px;cursor:pointer;font-size:14px}
.hb-theme-field input{width:auto;accent-color:var(--hb-accent)}.hb-theme-field label:has(input:checked){border-color:var(--hb-accent);box-shadow:0 0 0 1px var(--hb-accent)}
.hb-swatch{display:inline-block;width:18px;height:18px;border-radius:50%;background:var(--swatch)}.hb-theme-note{font-size:12px;margin:14px 0 0}
:root[data-hb-theme="dark"]{color-scheme:dark;--hb-accent-soft:#302b46;--hb-accent-contrast:#fff}
:root[data-hb-theme="dark"] body{background:#141620!important;color:#ececf4!important}
:root[data-hb-theme="dark"] .sidebar,:root[data-hb-theme="dark"] .panel,:root[data-hb-theme="dark"] .hb-stat,:root[data-hb-theme="dark"] .shop-list-card,:root[data-hb-theme="dark"] .recipe-card,:root[data-hb-theme="dark"] .hb-profile-card,:root[data-hb-theme="dark"] .hb-photo-card,:root[data-hb-theme="dark"] .hb-theme-panel,:root[data-hb-theme="dark"] .hb-emoji-panel,:root[data-hb-theme="dark"] .hb-customize-panel{background:#202331!important;color:#f0f0f6!important;border-color:#383c4d!important}
:root[data-hb-theme="dark"] .muted,:root[data-hb-theme="dark"] small,:root[data-hb-theme="dark"] .hb-stat span,:root[data-hb-theme="dark"] .hb-stat small{color:#afb2c7!important}
:root[data-hb-theme="dark"] .sidebar nav a{color:#d0d0e2}
:root[data-hb-theme="dark"] .sidebar nav a.active,:root[data-hb-theme="dark"] .sidebar nav a:hover{background:#302b46!important;color:#e5dfff!important}
:root[data-hb-theme="dark"] input,:root[data-hb-theme="dark"] select,:root[data-hb-theme="dark"] textarea{background:#171a26!important;color:#f3f3f9!important;border-color:#45495a!important}
:root[data-hb-theme="dark"] input::placeholder,:root[data-hb-theme="dark"] textarea::placeholder{color:#999eb2}
:root[data-hb-theme="dark"] button.secondary,:root[data-hb-theme="dark"] .view-switch a,:root[data-hb-theme="dark"] .hb-theme-options label,:root[data-hb-theme="dark"] .hb-theme-swatches label,:root[data-hb-theme="dark"] .hb-emoji-category,:root[data-hb-theme="dark"] .hb-emoji-option{background:#2b2e40!important;color:#e9e9f4!important;border-color:#45495a!important}
:root[data-hb-theme="dark"] .day,:root[data-hb-theme="dark"] .weekday,:root[data-hb-theme="dark"] .calendar,:root[data-hb-theme="dark"] .cal-head{background:#202331!important;color:#f0f0f6!important;border-color:#383c4d!important}
:root[data-hb-theme="dark"] .day:not(.empty):hover{background:#303349!important}
:root[data-hb-theme="dark"] .item,:root[data-hb-theme="dark"] .shop-item,:root[data-hb-theme="dark"] .hb-agenda-row,:root[data-hb-theme="dark"] .hb-chore-row,:root[data-hb-theme="dark"] .meal-row,:root[data-hb-theme="dark"] .routine-step,:root[data-hb-theme="dark"] .hb-occasion-row{border-color:#3b3f50!important}
:root[data-hb-theme="dark"] .notice{background:#423822;color:#ffe6a3}
:root[data-hb-theme="dark"] a:not(.event):not(.hb-primary-link){color:#b5a7ff}
:root[data-hb-theme="dark"] .logo{color:#b5a7ff}
:root[data-hb-theme="dark"] .hb-theme-panel .muted{color:#afb2c7!important}
@media(max-width:720px){.hb-theme-trigger{margin:12px 0 0}.hb-theme-overlay{align-items:end;padding:0}.hb-theme-panel{width:100%;border-radius:22px 22px 0 0;max-height:90dvh;padding:18px 16px 26px}.hb-theme-options label,.hb-theme-swatches label{padding:9px}}

/* v2.6.1 readability fix: keep all foreground text legible in dark mode. */
:root[data-hb-theme="dark"] body{color:#f3f4fb!important}
:root[data-hb-theme="dark"] .hb-dashboard-page{--dash-ink:#f3f4fb;--dash-muted:#c7c9db;--dash-line:#404457}
:root[data-hb-theme="dark"] .hb-dashboard-page .hb-stat,
:root[data-hb-theme="dark"] .hb-dashboard-page .hb-dashboard-grid>.panel{background:#202331!important;border-color:#404457!important;color:#f3f4fb!important}
:root[data-hb-theme="dark"] .hb-dashboard-page .hb-stat strong,
:root[data-hb-theme="dark"] .hb-dashboard-page .hb-panel-title h2,
:root[data-hb-theme="dark"] h1,
:root[data-hb-theme="dark"] h2,
:root[data-hb-theme="dark"] h3,
:root[data-hb-theme="dark"] strong,
:root[data-hb-theme="dark"] b{color:#f4f4fb}
:root[data-hb-theme="dark"] label,
:root[data-hb-theme="dark"] .hb-profile-heading small,
:root[data-hb-theme="dark"] .hb-time,
:root[data-hb-theme="dark"] .hb-mobile-date,
:root[data-hb-theme="dark"] .hb-mobile-agenda-heading,
:root[data-hb-theme="dark"] .hb-mobile-event-body small,
:root[data-hb-theme="dark"] .agenda-day small,
:root[data-hb-theme="dark"] .chore-main small,
:root[data-hb-theme="dark"] .shop-item small,
:root[data-hb-theme="dark"] .shop-list-head small,
:root[data-hb-theme="dark"] .meal-row small,
:root[data-hb-theme="dark"] .hb-widget-line small,
:root[data-hb-theme="dark"] .hb-widget-routine small{color:#c7c9db!important}
:root[data-hb-theme="dark"] .hb-dashboard-page .hb-stat span,
:root[data-hb-theme="dark"] .hb-dashboard-page .hb-stat small{color:#c7c9db!important}
:root[data-hb-theme="dark"] .hb-calendar-layout .weekday,
:root[data-hb-theme="dark"] .hb-calendar-layout .day,
:root[data-hb-theme="dark"] .hb-mobile-event,
:root[data-hb-theme="dark"] .hb-mobile-date,
:root[data-hb-theme="dark"] .hb-profile-avatar{background:#202331!important;color:#f3f4fb!important;border-color:#404457!important}
:root[data-hb-theme="dark"] .hb-calendar-layout .day.empty{background:#1a1d29!important}
:root[data-hb-theme="dark"] .hb-calendar-layout .event,
:root[data-hb-theme="dark"] .event{background:#34344d!important;color:#f4f3ff!important;border-left-color:var(--event-color,#8f80ef)!important}
:root[data-hb-theme="dark"] .hb-calendar-layout .event b,
:root[data-hb-theme="dark"] .event b{color:inherit!important}
:root[data-hb-theme="dark"] .hb-member-chip,
:root[data-hb-theme="dark"] .hb-occasion-count,
:root[data-hb-theme="dark"] .chip,
:root[data-hb-theme="dark"] .navbtn{background:#303348!important;color:#f3f4fb!important;border-color:#484b60!important}
:root[data-hb-theme="dark"] .view-switch a.active,
:root[data-hb-theme="dark"] .view-switch a.is-active,
:root[data-hb-theme="dark"] .sidebar nav a.active{color:#f4efff!important;background:#43385e!important}
:root[data-hb-theme="dark"] .hb-mini-day{color:#e9eaf5!important}
:root[data-hb-theme="dark"] .hb-mini-day.is-today{color:#fff!important}
:root[data-hb-theme="dark"] .hb-theme-panel label{color:#f3f4fb!important}
:root[data-hb-theme="dark"] .hb-theme-panel .hb-theme-options label,
:root[data-hb-theme="dark"] .hb-theme-panel .hb-theme-swatches label{color:#f3f4fb!important}
/* Fix low-contrast light-mode secondary copy as well. */
:root[data-hb-theme="light"] .muted{color:#686579}
:root[data-hb-theme="light"] .hb-dashboard-page{--dash-muted:#656074}

/* v2.6.2: month and wall-display contrast. Scoped to the calendar so theme
   accent rules cannot turn text pale against pale backgrounds. */
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .cal-head .navbtn,
:root:not([data-hb-theme="dark"]) .wall-mode .cal-head .navbtn,
:root:not([data-hb-theme="dark"]) .wall-mode .wall-exit {
  background:#fff!important;color:#302b47!important;border:1px solid #bcb6ce!important;
}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .weekday,
:root:not([data-hb-theme="dark"]) .wall-mode .weekday {
  color:#393448!important;background:#eeeaf5!important;font-weight:800;
}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .day,
:root:not([data-hb-theme="dark"]) .wall-mode .day {
  color:#242333!important;background:#fff!important;
}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .day.empty,
:root:not([data-hb-theme="dark"]) .wall-mode .day.empty {background:#f1eff5!important}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .day.today,
:root:not([data-hb-theme="dark"]) .wall-mode .day.today {background:#f0edff!important}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .day>b,
:root:not([data-hb-theme="dark"]) .wall-mode .day>b {color:#242333!important;font-weight:800}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .day.today>b,
:root:not([data-hb-theme="dark"]) .wall-mode .day.today>b {color:#fff!important;background:#5141aa!important}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .event,
:root:not([data-hb-theme="dark"]) .wall-mode .event {
  color:#242235!important;background:#ece9f8!important;border-left-color:var(--event-color,#6652ce)!important;
}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .event b,
:root:not([data-hb-theme="dark"]) .wall-mode .event b {color:#242235!important}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .view-switch a:not(.wall-toggle),
:root:not([data-hb-theme="dark"]) .wall-mode .view-switch a:not(.wall-toggle) {
  color:#302b47!important;background:#fff!important;border-color:#bcb6ce!important;
}
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .view-switch a.active,
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .view-switch a.is-active {
  color:#fff!important;background:#5141aa!important;border-color:#5141aa!important;
}
:root[data-hb-theme="dark"] .hb-calendar-layout .day>b,
:root[data-hb-theme="dark"] .wall-mode .day>b {color:#f5f5fb!important}
:root[data-hb-theme="dark"] .hb-calendar-layout .day.today>b,
:root[data-hb-theme="dark"] .wall-mode .day.today>b {color:#fff!important;background:#6956ce!important}
:root[data-hb-theme="dark"] .hb-calendar-layout .weekday,
:root[data-hb-theme="dark"] .wall-mode .weekday {color:#e3e1f1!important;background:#292c3b!important}
:root[data-hb-theme="dark"] .wall-mode .day {color:#f5f5fb!important;background:#202331!important}
:root[data-hb-theme="dark"] .wall-mode .day.empty {background:#191c28!important}
:root[data-hb-theme="dark"] .wall-mode .event,
:root[data-hb-theme="dark"] .hb-calendar-layout .event {color:#fff!important;background:#37364d!important}
:root[data-hb-theme="dark"] .wall-mode .wall-exit,
:root[data-hb-theme="dark"] .wall-mode .cal-head .navbtn {color:#fff!important;background:#303348!important;border-color:#62657a!important}

/* v2.6.3: fixed high-contrast navigation buttons, independent of accent choice.
   Targets the Month active tab and Wall display link in both themes. */
:root .view-switch a.is-active,
:root .view-switch a.active,
:root .view-switch a.wall-toggle,
:root[data-hb-theme="dark"] .view-switch a.is-active,
:root[data-hb-theme="dark"] .view-switch a.active,
:root[data-hb-theme="dark"] .view-switch a.wall-toggle,
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .view-switch a.is-active,
:root:not([data-hb-theme="dark"]) .hb-calendar-layout .view-switch a.active {
  background-color:#243047!important;
  color:#ffffff!important;
  border:2px solid #243047!important;
  text-shadow:none!important;
  opacity:1!important;
  -webkit-text-fill-color:#ffffff!important;
}
:root .view-switch a.is-active,
:root .view-switch a.active {
  box-shadow:none!important;
}
:root .view-switch a.wall-toggle {
  background-color:#164e63!important;
  border-color:#164e63!important;
}
:root .view-switch a.is-active:hover,
:root .view-switch a.active:hover,
:root .view-switch a.wall-toggle:hover {
  filter:brightness(1.16);
}

/* v2.7: background patterns limited to the dashboard canvas, never the calendar. */
:root { --hb-dashboard-pattern: none; }
:root[data-hb-background="soft"] { --hb-dashboard-pattern: radial-gradient(ellipse at 8% 5%, rgba(117,105,210,.12),transparent 47%),radial-gradient(ellipse at 90% 70%,rgba(81,168,162,.10),transparent 50%); }
:root[data-hb-background="dots"] { --hb-dashboard-pattern: radial-gradient(circle,rgba(91,103,137,.13) 1px,transparent 1.5px); }
:root[data-hb-background="linen"] { --hb-dashboard-pattern: repeating-linear-gradient(0deg,rgba(91,103,137,.055) 0 1px,transparent 1px 6px),repeating-linear-gradient(90deg,rgba(91,103,137,.045) 0 1px,transparent 1px 6px); }
body.hb-dashboard-page .main { background-image:var(--hb-dashboard-pattern);background-size:auto;min-height:100vh; }
:root[data-hb-background="dots"] body.hb-dashboard-page .main {background-size:20px 20px}
:root[data-hb-theme="dark"][data-hb-background="soft"] {--hb-dashboard-pattern:radial-gradient(ellipse at 8% 5%,rgba(138,120,224,.15),transparent 47%),radial-gradient(ellipse at 90% 70%,rgba(60,140,155,.12),transparent 50%)}
.hb-background-options {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.hb-background-options label {display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;font-size:.85rem;cursor:pointer;min-width:0}
.hb-background-options input {accent-color:var(--accent,#6652ce)}
.hb-bg-preview {display:block;width:100%;max-width:105px;height:64px;border-radius:12px;border:1px solid rgba(120,120,140,.35);background-color:#f7f8fc}
.hb-bg-soft {background-image:radial-gradient(ellipse at 15% 15%,#d8d3ff,transparent 65%),radial-gradient(ellipse at 85% 85%,#c6e8df,transparent 65%)}
.hb-bg-dots {background-image:radial-gradient(circle,#a9afc2 1.5px,transparent 2px);background-size:13px 13px}
.hb-bg-linen {background-image:repeating-linear-gradient(0deg,#e3e4ec 0 1px,transparent 1px 6px),repeating-linear-gradient(90deg,#e3e4ec 0 1px,transparent 1px 6px)}
@media(max-width:480px){.hb-background-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Homeboard v2.7.1: readable mini calendar day numbers regardless of theme/accent. */
:root[data-hb-theme="light"] .hb-dashboard-page .hb-mini-day,
:root:not([data-hb-theme="dark"]) .hb-dashboard-page .hb-mini-day {
  color:#24243b!important;
  -webkit-text-fill-color:#24243b!important;
  opacity:1!important;
}
:root[data-hb-theme="dark"] .hb-dashboard-page .hb-mini-day {
  color:#f4f5ff!important;
  -webkit-text-fill-color:#f4f5ff!important;
  opacity:1!important;
}
:root .hb-dashboard-page .hb-mini-day.is-today,
:root[data-hb-theme="dark"] .hb-dashboard-page .hb-mini-day.is-today,
:root[data-hb-theme="light"] .hb-dashboard-page .hb-mini-day.is-today {
  background:#243047!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  font-weight:800!important;
  text-shadow:none!important;
  opacity:1!important;
}
:root .hb-dashboard-page .hb-mini-day.is-today span {color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;opacity:1!important}
:root .hb-dashboard-page .hb-mini-day.is-today i {background:#ffffff!important}

/* Homeboard 2.8 — compact quick actions. Text contrast stays theme-safe. */
.hb-quick-actions{margin:0 0 18px;min-width:0}
.hb-quick-heading{display:flex;align-items:baseline;gap:12px;margin:0 0 10px;flex-wrap:wrap}
.hb-quick-heading h2{font-size:1.05rem;margin:0;color:var(--text,#1c2434)}
.hb-quick-heading span{font-size:.83rem;color:var(--muted,#586477)}
.hb-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.hb-quick-action{display:flex;align-items:center;gap:10px;min-width:0;padding:13px 12px;border:1px solid var(--border,#d9dee8);border-radius:15px;background:var(--card,#fff);color:var(--text,#202a3d)!important;text-decoration:none!important;box-shadow:0 1px 3px rgba(20,30,60,.04);transition:transform .12s,border-color .12s}
.hb-quick-action:hover{transform:translateY(-2px);border-color:var(--accent,#6953c8)}
.hb-quick-action:focus-visible{outline:3px solid var(--accent,#6953c8);outline-offset:2px}
.hb-quick-action>span:nth-child(2){display:flex;flex:1;flex-direction:column;min-width:0;gap:2px}
.hb-quick-action strong{font-size:.93rem;line-height:1.25;color:inherit}
.hb-quick-action small{font-size:.76rem;color:var(--muted,#586477);line-height:1.25}
.hb-quick-icon{font-size:1.35rem;display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:12px;background:rgba(125,125,145,.10)}
.hb-quick-arrow{font-size:1.4rem;color:var(--muted,#586477)}
#event-form-panel,#hb-add-chore,#hb-shopping-entry,#hb-plan-meal{scroll-margin-top:18px}
@media(max-width:1100px){.hb-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.hb-quick-grid{gap:8px}.hb-quick-action{padding:11px 9px;gap:7px;border-radius:12px}.hb-quick-icon{flex-basis:32px;height:32px;font-size:1.1rem}.hb-quick-action strong{font-size:.84rem}.hb-quick-action small{font-size:.7rem}.hb-quick-arrow{display:none}}
[data-hb-theme="dark"] .hb-quick-action{background:var(--card,#222c3c);color:var(--text,#f4f6fb)!important;border-color:var(--border,#485267)}
[data-hb-theme="dark"] .hb-quick-heading h2{color:var(--text,#f4f6fb)}

/* Homeboard 2.9: accessible, responsive quick-add dialogs */
.hb-quick-action{font:inherit;text-align:left;cursor:pointer;width:100%;color:inherit}
.hb-quick-dialog{width:min(520px,calc(100vw - 28px));max-height:min(88dvh,780px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--border,#dfe3ec);border-radius:18px;background:var(--surface,#fff);color:var(--text,#1b2434);padding:0;box-shadow:0 25px 75px #0005}
.hb-quick-dialog::backdrop{background:rgba(12,18,31,.62)}
.hb-quick-modal-head{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;background:inherit;border-bottom:1px solid var(--border,#dfe3ec)}
.hb-quick-modal-head h2{margin:0}.hb-quick-modal-body{padding:18px 20px 24px}
.hb-quick-modal-body section[hidden]{display:none!important}.hb-quick-modal-body form{display:grid;gap:12px}
.hb-quick-modal-body label{min-width:0}.hb-quick-modal-body input,.hb-quick-modal-body select,.hb-quick-modal-body textarea{max-width:100%;box-sizing:border-box}
@media(max-width:600px){.hb-quick-dialog{max-height:calc(100dvh - 24px)}.hb-quick-modal-head{padding:14px}.hb-quick-modal-body{padding:14px 14px 24px}.hb-quick-modal-body .two{display:grid;grid-template-columns:1fr}}

/* v2.9.1: Black accent — contrast-safe in both appearance modes */
:root[data-hb-accent="black"]{--hb-accent:#111827;--hb-accent-soft:#e5e7eb;--hb-accent-contrast:#fff}
:root[data-hb-theme="dark"][data-hb-accent="black"]{--hb-accent:#111827;--hb-accent-soft:#374151;--hb-accent-contrast:#fff}
/* Accent-colored links and active navigation need light text in dark mode. */
:root[data-hb-theme="dark"][data-hb-accent="black"] .sidebar nav a.active,
:root[data-hb-theme="dark"][data-hb-accent="black"] .sidebar nav a:hover,
:root[data-hb-theme="dark"][data-hb-accent="black"] .view-switch a.active{color:#fff}
:root[data-hb-theme="dark"][data-hb-accent="black"] .hb-theme-field label:has(input:checked){border-color:#aeb8c7;box-shadow:0 0 0 1px #aeb8c7}

/* Homeboard 3.0 family command center */
.hb-command{max-width:1680px;margin:0 auto;padding-bottom:36px;color:var(--text,#172033)}
.hb-command-header{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.hb-command-header h1{font-size:clamp(1.5rem,3vw,2.7rem);line-height:1.15;margin:5px 0 8px}
.hb-command-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.hb-command-clock{font-size:clamp(1.4rem,2.5vw,2.3rem);font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.hb-command-back{display:inline-flex;align-items:center;padding:11px 15px;border-radius:12px;text-decoration:none}
.hb-command-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.hb-command-metrics a{display:flex;flex-direction:column;gap:4px;padding:20px;border-radius:17px;background:var(--card,#fff);border:1px solid var(--border,#e6e8ef);color:var(--text,#172033);text-decoration:none}
.hb-command-metrics strong{font-size:clamp(1.6rem,3vw,2.7rem);line-height:1.1}.hb-command-metrics span{font-size:.85rem;color:var(--muted,#64748b)}
.hb-command-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.hb-command-panel{min-width:0;margin:0!important;overflow:hidden}.hb-command-panel .hb-panel-title{gap:12px;flex-wrap:wrap}
.hb-command-panel .hb-panel-title h2{font-size:1.1rem}.hb-command-line{display:flex;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--border,#e6e8ef)}
.hb-command-line:last-child{border-bottom:0}.hb-command-line time{min-width:62px;font-size:.83rem;font-weight:750;color:var(--text,#172033)}
.hb-command-line>div{min-width:0;display:flex;flex-direction:column;gap:3px}.hb-command-line strong{overflow-wrap:anywhere;font-size:.93rem}.hb-command-line small{color:var(--muted,#64748b)}
.hb-command-bullet{font-size:1.25rem;min-width:25px}.hb-command-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.hb-command-shortcuts a{border:1px solid var(--border,#e6e8ef);border-radius:12px;padding:14px 10px;text-align:center;text-decoration:none;font-weight:700;color:var(--text,#172033);background:var(--card,#fff)}
.hb-command-footer{text-align:center;color:var(--muted,#64748b);font-size:.8rem;margin:24px 0}
@media(max-width:1200px){.hb-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.hb-command-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.hb-command-metrics a{padding:14px}.hb-command-grid{grid-template-columns:minmax(0,1fr);gap:12px}.hb-command-header{align-items:flex-start}.hb-command-top{width:100%;justify-content:space-between}.hb-command{padding-bottom:90px}}
body.hb-command-fullscreen .sidebar{display:none!important}body.hb-command-fullscreen .main{margin:0!important;max-width:none!important;width:100%!important;padding:clamp(12px,2vw,32px)!important}body.hb-command-fullscreen .hb-command{max-width:none}

/* v3.1: wall display customization */
.hb-command-settings{margin-bottom:18px;max-width:920px}
.hb-command-settings[hidden],.hb-command-panel[hidden]{display:none!important}
.hb-command-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.hb-command-controls label{display:grid;gap:5px;font-weight:650;font-size:.9rem}
.hb-command-settings-list{display:grid;gap:8px;margin:16px 0}
.hb-command-setting-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--border,#dce2eb);border-radius:12px;background:var(--card,#fff)}
.hb-command-setting-row label{display:flex;align-items:center;gap:9px;flex:1;min-width:140px;font-weight:650}
.hb-command-setting-row input{width:18px;height:18px;accent-color:var(--hb-accent,#6652ce)}
.hb-command-setting-actions{display:flex;gap:6px}
.hb-command-setting-actions button{padding:7px 11px;min-width:40px}
.hb-command[data-hb-columns="1"] .hb-command-grid{grid-template-columns:minmax(0,1fr)}
.hb-command[data-hb-columns="2"] .hb-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.hb-command[data-hb-columns="3"] .hb-command-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.hb-command[data-hb-density="compact"] .hb-command-grid{gap:9px}
.hb-command[data-hb-density="compact"] .hb-command-panel{padding:12px}
.hb-command[data-hb-density="compact"] .hb-command-line{padding:7px 0}
.hb-command[data-hb-density="large"] .hb-command-grid{gap:20px}
.hb-command[data-hb-density="large"] .hb-command-panel{padding:24px}
.hb-command[data-hb-density="large"] .hb-command-line{padding:17px 0;font-size:1.1rem}
.hb-command[data-hb-density="large"] .hb-command-line strong{font-size:1.05rem}
@media(max-width:760px){.hb-command-controls{grid-template-columns:minmax(0,1fr)}.hb-command[data-hb-columns="3"] .hb-command-grid{grid-template-columns:minmax(0,1fr)}.hb-command[data-hb-columns="2"] .hb-command-grid{grid-template-columns:minmax(0,1fr)}}

/* v3.2: command center auto-refresh controls */
.hb-command-refresh-indicator{display:inline-flex;align-items:center;min-height:34px;padding:6px 10px;border:1px solid var(--border,#dce2eb);border-radius:999px;color:var(--text,#172033);background:var(--card,#fff);font-size:.78rem;font-weight:650;white-space:nowrap}
.hb-command-refresh-setting{margin:16px 0;padding:14px;border:1px solid var(--border,#dce2eb);border-radius:12px;background:var(--card,#fff)}
.hb-command-refresh-setting label{display:grid;gap:6px;font-weight:700;max-width:340px}
.hb-command-refresh-setting .muted{font-size:.84rem;margin:10px 0 0}
@media(max-width:720px){.hb-command-refresh-indicator{order:5;width:100%;justify-content:center}.hb-command-refresh-setting{padding:12px}}

/* v3.2.1: Quick-action button contrast independent of selected accent. */
:root .hb-dashboard-page button.hb-quick-action {
  background:#ffffff !important;
  color:#182235 !important;
  -webkit-text-fill-color:#182235 !important;
  border:1px solid #d7dce7 !important;
}
:root .hb-dashboard-page button.hb-quick-action strong {
  color:#182235 !important;
  -webkit-text-fill-color:#182235 !important;
  opacity:1 !important;
}
:root .hb-dashboard-page button.hb-quick-action small,
:root .hb-dashboard-page button.hb-quick-action .hb-quick-arrow {
  color:#526178 !important;
  -webkit-text-fill-color:#526178 !important;
  opacity:1 !important;
}
:root .hb-dashboard-page button.hb-quick-action:hover {background:#f3f6fb !important;border-color:#7b879c !important}
:root[data-hb-theme="dark"] .hb-dashboard-page button.hb-quick-action {
  background:#232d3f !important;
  color:#f7f9ff !important;
  -webkit-text-fill-color:#f7f9ff !important;
  border-color:#526078 !important;
}
:root[data-hb-theme="dark"] .hb-dashboard-page button.hb-quick-action strong {
  color:#f7f9ff !important;
  -webkit-text-fill-color:#f7f9ff !important;
}
:root[data-hb-theme="dark"] .hb-dashboard-page button.hb-quick-action small,
:root[data-hb-theme="dark"] .hb-dashboard-page button.hb-quick-action .hb-quick-arrow {
  color:#c8d2e3 !important;
  -webkit-text-fill-color:#c8d2e3 !important;
}
:root[data-hb-theme="dark"] .hb-dashboard-page button.hb-quick-action:hover {background:#304057 !important;border-color:#8b9bb3 !important}

/* v3.3 interactive wall display */
.hb-command-interactive{align-items:center;gap:12px}
.hb-command-interactive form{flex:0 0 auto;margin:0}
.hb-command-interactive .hb-command-check{display:grid;place-items:center;min-width:42px;min-height:42px;padding:0;border:2px solid #64748b;border-radius:12px;background:transparent;color:inherit;font-size:25px;font-weight:700;line-height:1;cursor:pointer;box-shadow:none;transform:none}
.hb-command-interactive .hb-command-check:hover,.hb-command-interactive .hb-command-check:focus-visible{border-color:#2563eb;outline:2px solid #2563eb;outline-offset:2px}
.hb-command-interactive>div{min-width:0;flex:1}
@media(max-width:640px){.hb-command-interactive .hb-command-check{min-width:48px;min-height:48px}}

/* Homeboard 3.4–3.5: event detail dialog and desktop drag-and-drop */
.hb-event-dialog{width:min(480px,calc(100vw - 28px));max-height:85dvh;overflow:auto;border:1px solid var(--border,#d6dce6);border-radius:18px;padding:22px;background:var(--card,#fff);color:var(--text,#172033);box-shadow:0 20px 70px #0005}
.hb-event-dialog::backdrop{background:#11182799}
.hb-detail-heading,.hb-detail-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hb-detail-heading h2{margin:0}
.hb-event-dialog p{white-space:pre-wrap;overflow-wrap:anywhere}
.hb-detail-actions{margin-top:22px;flex-wrap:wrap}
.hb-event-detail-trigger{cursor:pointer}
button.event.hb-event-detail-trigger{display:block;width:100%;text-align:left;font:inherit;border:0;appearance:none}
.hb-command-line.hb-event-detail-trigger{width:100%;border:0;background:transparent;color:inherit;text-align:left;font:inherit}
.hb-event-detail-trigger:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
.calendar-grid .day.hb-drop-target{outline:3px dashed #2563eb;outline-offset:-4px;background:rgba(37,99,235,.10)}
.calendar-grid .event[draggable="true"]{cursor:grab}
.calendar-grid .event.hb-dragging{opacity:.45}
.hb-calendar-hint{font-size:12px;color:var(--muted,#64748b);margin:8px 0 12px}
@media(hover:none),(max-width:760px){.hb-calendar-hint{display:none}}
