:root {
    --hw-cream: #f6f3ec; --hw-sage: #687b68; --hw-sage-dark: #506151; --hw-card: #fffdf8; --hw-text: #263029; --hw-muted: #6c756e; --hw-border: rgba(38,48,41,.09); --hw-shadow: 0 .75rem 2rem rgba(38,48,41,.06); --hw-radius: 1.5rem; --hw-nav-height: 4.75rem;
}
html { scroll-behavior:smooth; } body { min-height:100vh;background:var(--hw-cream);color:var(--hw-text);padding-bottom:env(safe-area-inset-bottom); } a { text-underline-offset:.18em; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:.2rem solid rgba(104,123,104,.35);outline-offset:.18rem; }
.brand-mark{display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;margin-bottom:.75rem;border-radius:1rem;background:var(--hw-sage);color:white;font-size:1.35rem}.hero-panel,.zone-card{border:1px solid var(--hw-border);border-radius:var(--hw-radius);background:var(--hw-card);box-shadow:var(--hw-shadow)}.zone-card{transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}a:hover>.zone-card{transform:translateY(-2px);box-shadow:0 1rem 2.4rem rgba(38,48,41,.09)}.eyebrow{color:var(--hw-sage-dark);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.status-copy{color:var(--hw-muted)}.flow-ring{--hw-flow:0;position:relative;display:grid;place-items:center;width:min(14rem,60vw);aspect-ratio:1;margin-inline:auto;border-radius:50%;background:conic-gradient(from -90deg,var(--hw-sage) calc(var(--hw-flow)*1%),#dfe6dc 0);color:var(--hw-sage-dark)}.flow-ring::before{content:'';position:absolute;inset:1.2rem;border-radius:50%;background:var(--hw-card)}.flow-ring span,.flow-ring small{position:relative;z-index:1}.flow-ring span{grid-area:1/1;font-size:4rem;font-weight:700}.flow-ring small{grid-area:1/1;align-self:end;margin-bottom:3.2rem}.zone-score{color:var(--hw-sage-dark);font-size:1.35rem;font-weight:700}.progress{height:.65rem;background:#e7ebe5}.progress-bar{transition:width .45s ease}.progress-bar,.btn-primary{background-color:var(--hw-sage);border-color:var(--hw-sage)}.btn-primary:hover,.btn-primary:focus{background-color:var(--hw-sage-dark);border-color:var(--hw-sage-dark)}.btn-outline-primary{color:var(--hw-sage-dark);border-color:#aeb9ab}.btn-outline-primary:hover,.btn-outline-primary:focus,.btn-outline-primary:has(input:checked),.btn-outline-primary.active{background-color:var(--hw-sage);border-color:var(--hw-sage);color:#fff}.btn{min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}.btn-sm{min-height:2.25rem}.hw-action-row{align-items:stretch}.hw-action-row>a,.hw-action-row>form{display:flex;margin:0}.hw-action-row>a,.hw-action-row>form>.btn{min-height:2.25rem;align-items:center}.hw-permission-button,form[action="/members/catalogue-permission"] .btn,form[action="/meals/admin/prepper"] .btn{border-radius:.8rem!important;min-width:7rem;padding-inline:.8rem;line-height:1.15}
.hw-manage-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.hw-manage-actions .btn{min-width:0;padding-inline:.55rem;white-space:nowrap}.hw-choice-grid{display:grid;gap:.5rem}.hw-duration-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hw-schedule-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hw-choice-btn{width:100%;border-radius:.85rem}.btn-check:checked+.hw-choice-btn{background:var(--hw-sage);border-color:var(--hw-sage);color:#fff}.hw-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:.35rem;height:8rem;padding:.55rem;border:1px solid var(--hw-border);border-radius:1.15rem;background:#eef2ec}.hw-scale-step{display:flex;align-items:flex-end;justify-content:center;height:100%;min-width:0;padding:0;border:0;background:transparent;border-radius:.75rem;cursor:pointer}.hw-scale-bar{display:block;width:100%;max-width:2.5rem;height:calc(22% + (var(--hw-level) * 13%));border-radius:.8rem .8rem .45rem .45rem;background:#cbd4c8;transition:height .15s ease,background .15s ease,transform .15s ease}.hw-scale-step.is-selected .hw-scale-bar{background:var(--hw-sage);transform:translateY(-.12rem)}.hw-scale-step:focus-visible{outline:.2rem solid rgba(104,123,104,.35);outline-offset:.1rem}.hw-scale-caption{min-height:2.75rem;margin-top:.5rem;padding:.65rem .85rem;border-radius:.85rem;background:#eef2ec;color:var(--hw-sage-dark)}.hw-advanced{border:1px solid var(--hw-border);border-radius:1rem;background:rgba(238,242,236,.45);padding:.15rem 1rem}.hw-advanced summary{cursor:pointer;min-height:2.75rem;display:flex;align-items:center;font-weight:600;color:var(--hw-sage-dark)}
.hw-effort-scroll{width:fit-content;max-width:min(100%,18rem);margin-left:0;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.hw-effort-bars{width:max-content;min-width:max-content;height:4.75rem;display:flex;align-items:end;gap:.35rem;padding:.45rem .55rem;border-radius:1rem;background:#eef2ec}.hw-effort-bar{display:block;flex:0 0 2rem;width:2rem;height:var(--hw-effort);min-height:.4rem;border-radius:.45rem .45rem .25rem .25rem;background:#c5d0c3;transition:height .2s ease}.hw-effort-bar.is-highlighted{background:var(--hw-sage-dark)}.hw-effort-percent{font-size:2rem;font-weight:700;color:var(--hw-sage-dark)}.hw-relative-effort{position:relative;height:.85rem;border-radius:999px;background:#e3e9e1;overflow:visible}.hw-relative-effort-fill{position:absolute;inset-block:0;left:0;border-radius:999px;background:var(--hw-sage)}.hw-relative-effort-median{position:absolute;top:-.3rem;bottom:-.3rem;left:50%;width:.12rem;border-radius:999px;background:var(--hw-sage-dark)}.hw-meal-change-card{border-color:rgba(104,123,104,.2);background:#f1f4ef}.hw-meal-day{transition:opacity .18s ease,border-color .18s ease,background .18s ease}.hw-meal-day-current{border:2px solid var(--hw-sage)!important;background:#f3f6f1}.hw-meal-day-past{opacity:.58;background:#f2f0ea;border-color:rgba(38,48,41,.06)!important}
.capacity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.form-check:has(input:checked){border-color:var(--hw-sage)!important;background:#eef2ec}.hw-bottom-nav{position:fixed;z-index:1030;left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(var(--hw-nav-items,4),minmax(0,1fr));gap:.25rem;min-height:var(--hw-nav-height);padding:.45rem;border:1px solid var(--hw-border);border-radius:1.35rem;background:rgba(255,253,248,.96);box-shadow:0 1rem 2.5rem rgba(38,48,41,.14);backdrop-filter:blur(14px)}.hw-bottom-nav a{display:grid;place-items:center;align-content:center;gap:.15rem;min-width:0;border-radius:1rem;color:var(--hw-muted);font-size:.72rem;font-weight:600;text-decoration:none}.hw-bottom-nav a i{font-size:1.25rem}.hw-bottom-nav a[aria-current="page"]{background:#eef2ec;color:var(--hw-sage-dark)}.hw-has-bottom-nav{padding-bottom:calc(var(--hw-nav-height) + 2.25rem + env(safe-area-inset-bottom))}.hw-flash{animation:hw-enter .28s ease both}.hw-task-card{animation:hw-enter .28s ease both}.hw-task-card:has(.dropdown-menu.show){position:relative;z-index:1040}.hw-task-card .dropdown-menu.show{z-index:1045}.hw-task-card.is-completing{opacity:.35;transform:scale(.985)}.hw-completion-copy{font-weight:600}.hw-update-toast{position:fixed;z-index:1080;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));max-width:22rem}.hw-meal-reminder{border-color:rgba(104,123,104,.22);background:#eef2ec}@keyframes hw-enter{from{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:translateY(0)}}@media(max-width:420px){.hw-bottom-nav[style*="--hw-nav-items: 5"] a{font-size:.66rem}.hw-manage-actions .btn{font-size:.78rem}}@media(min-width:768px){.capacity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hw-duration-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.hw-manage-actions{display:flex;flex-wrap:wrap}.hw-manage-actions .btn{padding-inline:.85rem}.hw-effort-scroll{margin-left:auto}.hw-bottom-nav{left:50%;right:auto;width:min(38rem,calc(100% - 2rem));transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
