:root{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#203b31;background:#f7f5ef;font-size:16px;--green:#25634d;--line:#dedfd5}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;padding:22px max(5vw,18px);border-bottom:1px solid var(--line);background:#fffdf8;gap:15px}.brand{color:var(--green);text-decoration:none;font-size:22px;font-weight:750}#connection{font-size:12px;color:#60756a;text-align:right}main{max-width:1180px;margin:auto;padding:32px 24px;min-height:80vh}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(32px,5vw,54px);font-weight:400;line-height:1.12;letter-spacing:-1px;margin-bottom:18px}h2{font-size:23px;font-weight:650}h3{font-size:18px;margin-bottom:10px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:2px;color:#68856c;margin-bottom:14px}.welcome,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.welcome{padding:22px 0 14px}.welcome h1{font-size:38px}button{font:inherit;cursor:pointer;border:1px solid transparent;border-radius:9px;padding:12px 18px;background:var(--green);color:white;font-weight:600;min-height:44px}button:hover{filter:brightness(.95)}button:disabled{opacity:.5;cursor:wait}button.secondary{background:#fffdf8;color:var(--green);border-color:var(--line)}button.text-button{background:transparent;color:var(--green);padding:8px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bd7a22;outline-offset:3px}nav{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:30px;padding-bottom:12px;overflow:auto}nav button{color:#66756a;background:transparent;white-space:nowrap}nav button[aria-current]{background:#e5ecdf;color:var(--green)}.muted{color:#6b786e;font-size:14px;line-height:1.6}.card{background:#fffdf9;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:18px;box-shadow:0 3px 9px #31462e04}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.grid .card{margin:0}.week-controls{display:flex;align-items:center;gap:14px;margin:22px 0}.day{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:20px 0;border-top:1px solid var(--line)}.day-name{font-size:14px;text-transform:capitalize}.day-number{display:block;font-family:Georgia,serif;font-size:34px;margin-top:3px}.empty{padding:20px;color:#7a847b;font-size:14px;border:1px dashed var(--line);border-radius:12px}.event{padding:20px;border:1px solid var(--line);background:#fffdf9;border-radius:14px;margin-bottom:10px}.event:last-child{margin-bottom:0}.event-top{display:flex;justify-content:space-between;gap:10px}.tag{display:inline-block;font-size:11px;padding:5px 8px;background:#e9efdf;color:#466243;border-radius:5px;margin-bottom:12px}.rsvp{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.rsvp button{padding:7px 14px;font-size:13px;background:#f1f2eb;color:#566659;border:1px solid var(--line)}.rsvp button[aria-pressed=true]{color:white;background:var(--green);border-color:var(--green)}.event-actions{display:flex;gap:10px;flex-wrap:wrap}.event-actions button{font-size:13px}.attendees{font-size:13px;color:#627368;line-height:1.6}.notice{background:#f0ecd9}.notice strong{display:block;color:#80632b;margin:15px 0}.notice p{font-size:14px;line-height:1.6}form{display:grid;gap:16px}label{display:block;font-size:14px;font-weight:550;line-height:1.6}input:not([type=checkbox]),select,textarea{display:block;width:100%;padding:12px;margin-top:6px;border:1px solid #cfd7ca;border-radius:8px;background:white;color:#25392f;font:inherit;font-size:16px}input[type=checkbox]{width:20px;height:20px;vertical-align:middle;accent-color:var(--green);margin-right:8px}textarea{resize:vertical}dialog{border:1px solid var(--line);border-radius:18px;background:#fffdf8;color:#203b31;padding:26px;width:min(94vw,550px);max-height:90dvh;box-shadow:0 15px 80px #183c2730}dialog::backdrop{background:#152f2666}dialog .section-heading{align-items:flex-start}dialog .close{float:right}#auth{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:70px;padding:9vh 20px}#auth .intro p{line-height:1.8}#auth .text-button{margin-top:16px}.compact-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;align-items:end}.shopping-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.shopping-row:last-child{border:0}.shopping-row.done label{text-decoration:line-through;color:#839080}.shopping-row small{display:block;color:#7b877c;margin-left:32px;font-weight:400}.shopping-row button{font-size:12px}.member{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.member button{font-size:12px}output{display:block;overflow-wrap:anywhere;font-family:monospace;background:#eef1e7;padding:12px;border-radius:8px}output:empty{display:none}#message{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#203b31;color:#fff;padding:16px 24px;border-radius:12px;width:max-content;max-width:92vw;box-shadow:0 5px 30px #0003;z-index:10}#message.error{background:#8c3529}.filters{margin-bottom:22px}.recipe-instructions{white-space:pre-wrap;font-size:15px;line-height:1.7}footer{text-align:center;color:#7b8778;padding:30px;font-size:12px}@media(max-width:650px){header{padding:18px}.brand{font-size:18px}main{padding:20px 16px}.welcome{align-items:flex-start}.welcome h1{font-size:30px}.welcome>button{font-size:12px;padding:10px}.section-heading{align-items:flex-start}.section-heading>button{font-size:13px;white-space:nowrap}nav{margin-bottom:22px;margin-right:-16px}nav button{font-size:14px;padding:10px}.day{grid-template-columns:45px 1fr;gap:12px}.day-number{font-size:28px}.day-name{font-size:12px}.event{padding:16px}.week-controls{gap:8px;flex-wrap:wrap}#week-label{font-size:14px}.card{padding:20px}.compact-form{grid-template-columns:1fr 1fr}.compact-form>label:first-child{grid-column:1/-1}.compact-form>button{grid-column:1/-1}#auth{grid-template-columns:1fr;gap:24px;padding:20px 0}#auth h1{font-size:43px}dialog{padding:22px}.event-top{display:block}.grid{grid-template-columns:1fr}}
