:root{color:#182334;background:#eef2f5;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:18px}*{box-sizing:border-box}body{min-width:320px;margin:0}main{max-width:1800px;margin:0 auto;padding:clamp(1.25rem,3vw,3rem)}.topbar{justify-content:space-between;align-items:end;gap:1rem;display:flex}.clock{letter-spacing:-.06em;font-size:clamp(3rem,7vw,6rem);font-weight:750;line-height:.9}.date{color:#68768a;text-transform:capitalize;margin-top:.6rem;font-size:1.1rem}.household-name{color:#526176;font-size:1.3rem}h1{margin:2rem 0 1rem;font-size:clamp(2.1rem,4vw,3.5rem)}h2{margin:0 0 1rem;font-size:clamp(1.35rem,2.4vw,2rem)}.people-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:1rem;display:grid}.person-panel,.wide-panel{background:#fff;border:1px solid #dce3ea;border-radius:1.1rem;padding:clamp(1rem,2vw,1.5rem);box-shadow:0 .35rem 1.5rem #20334b0d}.person-panel h2{border-bottom:2px solid #e8edf2;padding-bottom:.75rem}.next-label{color:#16745b;text-transform:uppercase;letter-spacing:.08em;margin:-.35rem 0 .5rem;font-size:.8rem;font-weight:750}.event-card{border-top:1px solid #edf0f3;grid-template-columns:4.6rem 1fr;gap:.7rem;padding:.85rem 0;display:grid}.event-card:first-of-type{border-top:0}.event-card.prominent{background:#f1faf6;border-radius:.7rem;margin-bottom:.35rem;padding:1rem}.event-time{color:#263b54;font-size:1.1rem;font-weight:750}.event-title{font-size:1.08rem;font-weight:720}.event-meta{color:#6d7c8f;margin-top:.2rem;font-size:.88rem}.leave{color:#b45b1b;margin-top:.28rem;font-size:.9rem;font-weight:650}.event-relative{color:#16745b;grid-column:2;font-size:.9rem}.status-happening_now .event-relative{color:#b45b1b;font-weight:700}.badge{color:#8a5310;vertical-align:middle;background:#fff1d6;border-radius:.35rem;padding:.2rem .35rem;font-size:.7rem;display:inline-block}.bottom-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;display:grid}.task{border-top:1px solid #edf0f3;justify-content:space-between;gap:1rem;padding:.85rem 0;font-weight:650;display:flex}.task small{color:#7b8795;text-align:right;font-weight:400}.task.completed,.task.cancelled{color:#8b96a2;text-decoration:line-through}.empty{color:#7d8995;margin:.5rem 0}.stale{z-index:2;color:#805011;background:#fff1d6;border:1px solid #f1d69b;border-radius:.6rem;margin-top:1rem;padding:.55rem .8rem;font-size:.85rem;position:sticky;top:.5rem}.loading{text-align:center;max-width:40rem;margin:20vh auto}@media (width<=900px){:root{font-size:16px}.bottom-grid{grid-template-columns:1fr}.topbar{align-items:start}.household-name{font-size:1rem}}@media (width<=560px){main{padding:1rem}.people-grid{grid-template-columns:1fr}.clock{font-size:3.3rem}}.auth-page{background:#eef2f5;place-items:center;min-height:100vh;display:grid}.auth-card{background:#fff;border-radius:1rem;width:min(26rem,92vw);padding:2rem;box-shadow:0 .5rem 2rem #20334b18}label{color:#526176;gap:.35rem;margin:.7rem 0;font-size:.9rem;display:grid}input,select,button{font:inherit}input,select{color:#182334;background:#fff;border:1px solid #ccd6df;border-radius:.45rem;padding:.55rem .65rem}button{color:#fff;cursor:pointer;background:#16745b;border:0;border-radius:.45rem;padding:.58rem .85rem}button.quiet{color:#526176;background:#e9eef2}.error{color:#9b3b31;background:#fff0ef;border:1px solid #e5b7b1;border-radius:.45rem;margin:.7rem 0;padding:.55rem .7rem}.admin-shell{background:#f5f7f9;min-height:100vh}.admin-topbar{background:#fff;border-bottom:1px solid #dce3ea;justify-content:space-between;align-items:center;height:4rem;padding:0 2rem;display:flex}.admin-layout{grid-template-columns:12rem 1fr;max-width:1400px;margin:0 auto;display:grid}.admin-layout nav{align-content:start;gap:.35rem;padding:1.5rem .8rem;display:grid}.admin-layout nav button{text-align:left;color:#526176;background:0 0}.admin-layout nav button.selected{color:#16745b;background:#dff2ea}.admin-main{width:100%;max-width:980px;padding:2rem}.admin-section{background:#fff;border:1px solid #dce3ea;border-radius:1rem;margin-bottom:1rem;padding:1.4rem}.section-heading{justify-content:space-between;align-items:center;display:flex}.section-heading h2,.admin-section h1{margin-top:0}.inline-form,.event-form{background:#f7f9fa;border-radius:.7rem;flex-wrap:wrap;align-items:end;gap:.7rem;padding:.8rem;display:flex}.inline-form label,.event-form label{flex:12rem;margin:0}.event-form .checkbox{flex-basis:100%;align-items:center;gap:.35rem;display:flex}.event-form .checkbox input,.days input{width:auto}.days{flex-basis:100%;gap:.7rem;display:flex}.days label{gap:.25rem;display:flex}.admin-list{margin-top:1rem}.admin-row{border-top:1px solid #edf0f3;justify-content:space-between;align-items:center;gap:.8rem;padding:.8rem 0;display:flex}.admin-row small{color:#7b8795;margin-top:.2rem;font-size:.8rem;display:block}.admin-row button{margin-left:.35rem;font-size:.8rem}.admin-row.inactive{opacity:.55}.form-message,.hint{color:#526176;font-size:.85rem}.event-form fieldset{border:1px solid #dce3ea;border-radius:.6rem;flex:100%;min-width:0;margin:.1rem 0 0;padding:.75rem .9rem}.event-form fieldset legend{color:#526176;padding:0 .35rem;font-size:.9rem}.event-form fieldset .checkbox{flex-basis:auto}.occurrence-actions{flex-wrap:wrap;gap:.45rem;padding:0 0 .8rem 5.3rem;display:flex}.occurrence-actions button{font-size:.8rem}@media (width<=700px){.admin-layout{display:block}.admin-layout nav{display:flex;overflow-x:auto}.admin-main{padding:1rem}.admin-topbar{padding:0 1rem}}.recurrence-section{background:#f3faf7;border:1px solid #cfe4db;border-radius:.75rem;flex:100%;padding:1rem}.recurrence-section h3{margin:0 0 .75rem;font-size:1.05rem}.weekday-toggles{flex-wrap:wrap;gap:.45rem;display:flex}.weekday-toggles .weekday{color:#526176;cursor:pointer;background:#fff;border:1px solid #bfd1ca;border-radius:.55rem;flex:none;justify-content:center;align-items:center;min-width:3rem;min-height:2.7rem;margin:0;padding:.35rem .65rem;font-weight:650;display:inline-flex}.weekday-toggles .weekday.selected{color:#fff;background:#16745b;border-color:#16745b}.weekday-toggles input{opacity:0;pointer-events:none;position:absolute}.recurrence-time{color:#526176;margin:.75rem 0 .5rem;font-size:.9rem}.recurrence-ending{border:0;flex-wrap:wrap;gap:.5rem 1.2rem;width:100%;padding:0;display:flex}.recurrence-ending legend{color:#526176;width:100%;padding:0;font-size:.9rem}.recurrence-ending .radio{color:#526176;flex:0 auto;align-items:center;gap:.35rem;margin:0;display:flex}.recurrence-ending input[type=date]{width:auto;margin-left:.25rem;padding:.3rem .45rem}
