@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Manrope:wght@400;500;700&display=swap";:root{--bg:#f3eadf;--ink:#352117;--ink-soft:#765f50;--surface:#fffaf2;--surface-strong:#fffdf9;--panel-border:#d7c1ae;--accent:#a3541f;--green:#55735d;--amber:#ad7628;--rust:#9b4b3c;--neutral:#706861;--sans:"Manrope", "Segoe UI", sans-serif;--heading:"Fraunces", Georgia, serif;font:16px/1.45 var(--sans);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");min-height:100svh;margin:0}h1,h2,h3{font-family:var(--heading);color:var(--ink)}h1{font-size:2.65rem;line-height:1.1}h2{font-size:clamp(1.3rem,2vw,1.8rem)}p{margin:0}.app-shell{gap:1rem;width:min(1080px,100% - 2rem);margin:1rem auto 2rem;display:grid}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.main-nav{flex-wrap:wrap;gap:.4rem;display:flex}.nav-pill{color:var(--ink);cursor:pointer;background:#fff9f0;border:1px solid #d8b89b;border-radius:999px;padding:.45rem .9rem;font-size:.88rem;font-weight:600}.nav-pill.active{background:var(--accent);color:#fff7ef;border-color:var(--accent)}.nav-pill .badge{color:#fff;background:#e74c3c;border-radius:999px;margin-left:.3rem;padding:.1rem .4rem;font-size:.72rem}.back-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:.3rem 0;font-size:.95rem;font-weight:600}.back-btn:hover{text-decoration:underline}.link-btn{cursor:pointer;color:var(--accent)!important;font:inherit!important;background:0 0!important;border:none!important;padding:0!important}.event-switcher{gap:.8rem;display:grid}.event-list{flex-wrap:wrap;gap:.5rem;display:flex}.event-pill{color:var(--ink);background:#fff9f0;border:1px solid #d8b89b;border-radius:999px;padding:.45rem .9rem}.event-pill.active{background:var(--accent);color:#fff7ef;border-color:var(--accent)}.event-meta{color:var(--ink-soft);flex-wrap:wrap;gap:.5rem 1.2rem;margin-top:.5rem;font-size:.95rem;display:flex}.inline-form{grid-template-columns:1fr auto;gap:.6rem;display:grid}.hero{background:radial-gradient(circle at 90% 10%, #f9be7373, transparent 30%), radial-gradient(circle at 20% 95%, #7acec359, transparent 32%), var(--surface);border:1px solid var(--panel-border);border-radius:24px;padding:clamp(1.4rem,3vw,2.5rem);animation:.5s rise-in;box-shadow:0 18px 60px #1e12072e}.hero-kicker{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.75rem}.hero h1{margin:.35rem 0}.hero-subtitle{max-width:62ch;margin:.5rem 0 0}.panel{border:1px solid var(--panel-border);background:var(--surface);border-radius:20px;padding:clamp(1rem,2vw,1.5rem);animation:.65s rise-in;box-shadow:0 10px 32px #2f160214}.panel h2{margin:0 0 .9rem}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.full-width{grid-column:1/-1}.checkbox-label{color:var(--ink-soft);cursor:pointer;flex-direction:row;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.checkbox-label input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}label{color:var(--ink-soft);gap:.35rem;font-size:.9rem;font-weight:600;display:grid}input,textarea,select,button{font:inherit}input,textarea,select{color:var(--ink);background:#fffaf4;border:1px solid #d4bea8;border-radius:12px;padding:.6rem .72rem}input:focus,textarea:focus,select:focus,button:focus{outline:2px solid var(--accent);outline-offset:1px}.rsvp-panel{border:2px solid var(--accent)}.rsvp-block{gap:.6rem;display:grid}.rsvp-buttons-large{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.rsvp-choice{cursor:pointer;text-align:center;color:var(--ink);background:#fff9f0;border:2px solid #d4bea8;border-radius:12px;padding:.7rem;font-weight:700;transition:all .15s}.rsvp-choice:hover{transform:translateY(-1px)}.rsvp-choice.active-accepted{color:#155724;background:#d4edda;border-color:#28a745}.rsvp-choice.active-maybe{color:#0c5460;background:#d1ecf1;border-color:#17a2b8}.rsvp-choice.active-declined{color:#721c24;background:#f8d7da;border-color:#dc3545}.stats-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1rem;display:grid}.stats-row article{background:#fff7ee;border:1px dashed #d7baa0;border-radius:14px;padding:.7rem}.stats-row p{color:var(--ink-soft);margin:0}.stats-row strong{font-size:1.4rem;font-family:var(--heading)}.allocation-layout{grid-template-columns:1.4fr 1fr;gap:1rem;display:grid}.needs-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.needs-list li{background:#fff7ec;border:1px solid #eccfb6;border-radius:14px;justify-content:space-between;gap:1rem;padding:.8rem;display:flex}.needs-list h3,.card-form h3{margin:0;font-size:1.08rem}.needs-list p,.slot-copy small,.card-form p{color:var(--ink-soft)}.slot-copy{text-align:right;align-content:start;gap:.3rem;display:grid}.claim-btn{border-radius:10px;padding:.35rem .7rem;font-size:.85rem}.unclaim-btn{color:#721c24;background:#f8d7da;border-color:#dc3545;border-radius:10px;padding:.35rem .7rem;font-size:.85rem}.unclaim-btn:hover{filter:brightness(.95)}.forms-column{gap:.9rem;display:grid}.card-form{background:#fffcf8;border:1px solid #e7c8ad;border-radius:14px;gap:.55rem;padding:.8rem;display:grid}.auth-panel{max-width:620px;margin:3rem auto}.auth-form{margin-top:.8rem}.login-type-switch{border:1px solid var(--panel-border);border-radius:7px;grid-template-columns:1fr 1fr;margin-bottom:1.4rem;display:grid;overflow:hidden}.login-type-switch button{border:0;border-right:1px solid var(--panel-border);color:var(--ink-soft);background:0 0;border-radius:0}.login-type-switch button:last-child{border-right:0}.login-type-switch button.active{background:var(--accent);color:#fffaf2}.auth-mode-switch{text-align:center;gap:.35rem;margin-top:.7rem;font-size:.85rem;display:grid}.admin-request-list{display:grid}.admin-request-row{border-bottom:1px solid #ead9ca;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.8rem;padding:.8rem 0;display:grid}.admin-request-row:last-child{border-bottom:0}.admin-request-row>div:first-child{gap:.15rem;display:grid}.admin-request-row small{color:var(--ink-soft)}@media (width<=620px){.admin-request-row{grid-template-columns:1fr auto}.admin-request-row .row-actions{grid-column:1/-1}}.save-btn{margin-top:.8rem}.claim-names{margin-top:.3rem;font-size:.9rem}.invite-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;margin-bottom:.9rem}.invite-list{gap:.7rem;display:grid}.invite-card{background:#fff7ec;border:1px solid #e6c5a7;border-radius:12px;gap:.45rem;padding:.75rem;display:grid}.invite-card p,.invite-card small,.invitee-status p{margin:0}.owner-invite-actions{flex-wrap:wrap;gap:.45rem;display:flex}.delete-invite-btn{color:#fff;background:#c0392b;border:none}.delete-invite-btn:hover{background:#a93226}.email-delivery{font-size:.8rem}.email-delivery.success{color:#246c2f}.email-delivery.error{color:#9a2d2d}.rsvp-buttons{flex-wrap:wrap;gap:.45rem;display:flex}.status{text-transform:capitalize;border:1px solid #d1b8a0;border-radius:999px;width:fit-content;padding:.2rem .55rem;font-size:.84rem;display:inline-flex}.status-pending{background:#fff5de}.status-accepted{background:#dff4df}.status-maybe{background:#e2efff}.status-declined{background:#ffe5e5}.invitee-status{background:#fff8ef;border:1px solid #e6c6aa;border-radius:12px;padding:.8rem}.notice{background:#fff7eb;border:1px solid #d5b699;border-radius:12px;padding:.8rem}.invitation-list{gap:.7rem;display:grid}.invitation-card{cursor:pointer;background:#fff7ec;border:1px solid #e6c5a7;border-radius:14px;justify-content:space-between;align-items:center;padding:1rem;transition:transform .15s,box-shadow .15s;display:flex}.invitation-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2f16021f}.invitation-card h3{margin:0 0 .2rem;font-size:1.1rem}.invitation-card p{color:var(--ink-soft);margin:0;font-size:.9rem}.invitation-badges{gap:.4rem;display:flex}.badge{border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.badge-past{color:#666;background:#e2e2e2}.badge-attending{color:#155724;background:#d4edda}.badge-declined{color:#721c24;background:#f8d7da}button,.upload-btn{border:1px solid var(--accent);background:var(--accent);color:#fff9f2;cursor:pointer;border-radius:12px;margin-top:0;padding:.6rem .9rem;font-weight:700;transition:transform .15s,filter .15s}button:hover,.upload-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.photo-panel p{margin-top:0}.upload-btn{align-items:center;gap:.5rem;width:fit-content;margin-top:.5rem;margin-bottom:.95rem;display:inline-flex}.upload-btn input{display:none}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.photo-grid figure{background:#fff6eb;border:1px solid #e8c7ab;border-radius:12px;margin:0;transition:transform .15s;overflow:hidden}.photo-grid img{aspect-ratio:1;object-fit:cover;width:100%}.photo-grid figcaption{gap:.2rem;padding:.5rem;display:grid}.photo-grid small{color:var(--ink-soft)}.lightbox-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.lightbox-content{flex-direction:column;align-items:center;gap:.8rem;max-width:90vw;max-height:90vh;display:flex;position:relative}.lightbox-content img{object-fit:contain;border-radius:12px;max-width:100%;max-height:75vh}.lightbox-close{color:#333;cursor:pointer;z-index:1001;background:#ffffffe6;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:1.5rem;display:flex;position:absolute;top:-.5rem;right:-.5rem}.lightbox-caption{color:#fff;text-align:center;margin:0;font-size:.95rem}.lightbox-nav{align-items:center;gap:1rem;display:flex}.lightbox-nav button,.lightbox-nav a{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:10px;padding:.5rem 1rem;font-size:.88rem;font-weight:600;text-decoration:none}.lightbox-nav button:disabled{opacity:.3;cursor:not-allowed}.lightbox-nav button:hover:not(:disabled),.lightbox-nav a:hover{background:#ffffff40}.empty-state{color:var(--ink-soft);border:1px dashed #dfb994;border-radius:12px;padding:1rem}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.details-grid,.allocation-layout,.invite-form{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(3,minmax(0,1fr))}.rsvp-buttons-large{grid-template-columns:1fr}}@media (width<=560px){.app-shell{width:min(100% - 1rem,1080px)}.topbar{flex-direction:column;align-items:flex-start}.inline-form{grid-template-columns:1fr}.event-list{flex-wrap:nowrap;padding-bottom:.25rem;overflow-x:auto}.stats-row{grid-template-columns:1fr}.needs-list li{flex-direction:column;align-items:flex-start}.slot-copy{text-align:left}}.app-shell{gap:1.1rem;width:min(1120px,100% - 2rem);margin:1.25rem auto 3rem}.panel{background:var(--surface);box-shadow:none;border-radius:8px;padding:1.35rem;animation:none}.topbar.panel{border:0;border-bottom:1px solid var(--panel-border);background:0 0;border-radius:0;padding:.35rem 0 1rem}.topbar strong{color:var(--ink-soft);font-size:.82rem}.main-nav{border:1px solid var(--panel-border);border-radius:7px;gap:0;overflow:hidden}.nav-pill{border:0;border-right:1px solid var(--panel-border);background:var(--surface);border-radius:0;padding:.55rem .85rem}.nav-pill:last-child{border-right:0}.nav-pill.active{background:var(--accent)}.back-btn{color:var(--accent);justify-self:start;padding:.25rem 0}.back-btn:before{content:"←";margin-right:.45rem}button,.upload-btn{border-radius:6px;transition:background-color .14s,color .14s,border-color .14s}button:hover,.upload-btn:hover{filter:none;background-color:#874216;transform:none}button:disabled{cursor:not-allowed;opacity:.55}input,textarea,select{background:var(--surface-strong);border-radius:6px}.button-secondary{color:var(--accent);background:0 0;border-color:#bd8e6e}.button-secondary:hover{color:#fffaf2}.text-action{color:var(--accent);background:0 0;border:0;padding:.15rem}.text-action:hover{background:0 0;text-decoration:underline}.danger-text,.error-text{color:var(--rust)}.call-sheet{background:var(--surface-strong);border:1px solid #cdb49d;border-bottom:0;margin-bottom:.65rem;padding:1.6rem 1.6rem 2rem;position:relative}.call-sheet:after{content:"";z-index:-1;background:var(--surface-strong);clip-path:polygon(0 0,100% 0,100% 35%,98% 82%,96% 36%,94% 84%,92% 38%,90% 78%,88% 34%,86% 86%,84% 39%,82% 82%,80% 37%,78% 88%,76% 36%,74% 80%,72% 34%,70% 86%,68% 38%,66% 82%,64% 35%,62% 88%,60% 36%,58% 82%,56% 34%,54% 86%,52% 38%,50% 82%,48% 35%,46% 88%,44% 36%,42% 82%,40% 34%,38% 86%,36% 38%,34% 82%,32% 35%,30% 88%,28% 36%,26% 82%,24% 34%,22% 86%,20% 38%,18% 82%,16% 35%,14% 88%,12% 36%,10% 82%,8% 34%,6% 86%,4% 38%,2% 82%,0 35%);height:18px;position:absolute;bottom:-13px;left:-1px;right:-1px}.call-sheet-heading{border-bottom:1px dashed #c9aa90;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding-bottom:1.2rem;display:flex}.call-sheet h1{letter-spacing:0;margin:.15rem 0 0}.sheet-label,.section-kicker,.item-category{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:700}.stamp-stack{justify-items:end;gap:.5rem;display:grid}.status-badge{text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;width:fit-content;padding:.22rem .58rem;font-size:.72rem;font-weight:700;line-height:1.2;display:inline-flex}.status-stamp{letter-spacing:.08em;border-width:2px;border-radius:3px;padding:.48rem .65rem;transform:rotate(-3deg)}.status-accepted{color:#3f6248;background:#e1ebe1}.status-maybe{color:#8a5d18;background:#f5e6c7}.status-declined{color:#883d32;background:#f1dcd6}.status-pending,.status-optional,.status-past{color:#625c57;background:#e9e4de}.status-required{color:#8b411e;background:#f2dfd1}.sheet-details{grid-template-columns:1.4fr .8fr 1fr;gap:1.3rem;padding-top:1.2rem;display:grid}.sheet-details>div{gap:.2rem;display:grid}.sheet-details span{color:var(--ink-soft);text-transform:uppercase;font-size:.72rem;font-weight:700}.sheet-details strong{font-size:.96rem}.sheet-notes{white-space:pre-wrap;border-top:1px solid #ead9ca;grid-column:1/-1;padding-top:1rem}.sheet-actions{justify-content:flex-end;gap:.55rem;margin-top:1rem;display:flex}.sheet-title-field{min-width:min(560px,60vw)}.sheet-title-field input{font:700 1.65rem/1.15 var(--heading)}.sheet-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding-top:1.2rem;display:grid}.theme-controls{border:1px solid var(--panel-border);border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:.2rem 0 0;padding:.9rem;display:grid}.theme-controls legend{color:var(--ink-soft);padding:0 .35rem;font-size:.82rem;font-weight:700}.theme-controls input[type=color]{cursor:pointer;width:100%;height:2.8rem;padding:.2rem}.event-theme-shell:before{content:"";z-index:-1;background:var(--event-bg,var(--bg));position:fixed;inset:0}.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;display:grid}.metric{border:1px solid var(--panel-border);background:#fffaf29e;border-radius:7px;gap:.25rem;min-width:0;padding:.9rem;display:grid}.metric span{color:var(--ink-soft);text-transform:uppercase;font-size:.72rem;font-weight:700}.metric strong{font:700 1.75rem var(--heading)}.section-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.section-heading h2{margin:.1rem 0 0}.section-heading>span{color:var(--ink-soft);font-size:.82rem}.accordion-panel{interpolate-size:allow-keywords;padding:0;overflow:clip}.accordion-panel::details-content{opacity:0;block-size:0;transition:block-size .3s cubic-bezier(.22, 1, .36, 1), opacity .18s ease, content-visibility .3s allow-discrete;overflow:hidden}.accordion-panel[open]::details-content{opacity:1;block-size:auto}@starting-style{.accordion-panel[open]::details-content{opacity:0;block-size:0}}.accordion-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem;list-style:none;display:flex}.accordion-summary::-webkit-details-marker{display:none}.accordion-summary h2{margin:.1rem 0 0}.accordion-summary>span{color:var(--ink-soft);margin-left:auto;font-size:.82rem}.accordion-summary:after{content:"⌄";color:var(--accent);font-size:1.35rem;line-height:1;transition:transform .16s;transform:rotate(0)}.accordion-panel[open]>.accordion-summary{border-bottom:1px solid var(--panel-border)}.accordion-panel[open]>.accordion-summary:after{transform:rotate(180deg)}.accordion-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}.accordion-content{padding:1.2rem}@media (prefers-reduced-motion:reduce){.accordion-summary:after{transition:none}.accordion-panel::details-content{transition:none}}.owner-task-layout{grid-template-columns:minmax(0,1.65fr) minmax(250px,.75fr);align-items:start;gap:1rem;display:grid}.needs-list li{background:var(--surface-strong);border-color:#dfc8b4;border-radius:7px}.needs-list h3{margin:.12rem 0}.needs-list p{margin:0}.slot-copy strong{font-family:var(--heading);font-size:1.3rem}.slot-copy span{color:var(--ink-soft);text-transform:uppercase;font-size:.72rem}.compact-form{background:#f8eee2;border-radius:7px}.invite-form{border-bottom:1px solid var(--panel-border);grid-template-columns:1fr 1.2fr auto;align-items:end;gap:.7rem;padding-bottom:1rem;display:grid}.invite-row{border-bottom:1px solid #ead9ca;grid-template-columns:minmax(150px,1fr) auto minmax(175px,.8fr) auto;align-items:center;gap:.8rem;padding:.8rem 0;display:grid}.invite-row:last-child{border-bottom:0}.invite-identity,.delivery-meta{gap:.12rem;min-width:0;display:grid}.invite-identity span,.delivery-meta{color:var(--ink-soft);overflow-wrap:anywhere;font-size:.8rem}.row-actions{align-items:center;gap:.35rem;display:flex}.row-actions button{padding:.45rem .6rem;font-size:.78rem}.rsvp-panel{border:1px solid #c9a787;grid-template-columns:.75fr 1.6fr;align-items:center;gap:1.4rem;display:grid}.rsvp-panel h2{margin:.1rem 0 0}.rsvp-choice{background:0 0;border-width:1px;border-radius:6px}.rsvp-choice.active{color:#fff}.rsvp-accepted{border-color:var(--green);color:var(--green)}.rsvp-accepted.active,.rsvp-accepted:hover{background:var(--green)}.rsvp-maybe{border-color:var(--amber);color:#805515}.rsvp-maybe.active,.rsvp-maybe:hover{background:var(--amber)}.rsvp-declined{border-color:var(--rust);color:var(--rust)}.rsvp-declined.active,.rsvp-declined:hover{background:var(--rust)}.upload-row{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:.75rem;margin-bottom:1rem;display:grid}.upload-btn{justify-content:center;margin:0}.photo-grid figure{border-radius:7px}.photo-grid figure:hover{transform:none}.photo-open{background:0 0;border:0;border-radius:0;width:100%;padding:0;display:block}.photo-open:hover{background:0 0}.photo-grid figcaption{grid-template-columns:1fr auto;align-items:center}.lightbox-content img{border-radius:4px}.danger-zone{border-top:1px solid #c99c91;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.danger-zone p{color:var(--ink-soft);font-size:.82rem}.danger-button{background:var(--rust);border-color:var(--rust)}.event-switcher .card-form{border:0;border-top:1px solid var(--panel-border);background:0 0;border-radius:0;padding:1rem 0 0}.invitation-card{box-shadow:none;border-radius:7px}.invitation-card:hover{box-shadow:none;border-color:var(--accent);transform:none}.invitation-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center}@media (width<=850px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.owner-task-layout,.rsvp-panel{grid-template-columns:1fr}.invite-row{grid-template-columns:1fr auto}.delivery-meta,.row-actions{grid-column:1/-1}}@media (width<=620px){h1,.call-sheet h1{font-size:2rem}.app-shell{width:min(100% - 1rem,1120px);margin-top:.5rem}.panel,.call-sheet{padding:1rem}.main-nav{width:100%}.nav-pill{flex:1;padding-inline:.45rem}.call-sheet-heading{display:grid}.stamp-stack{justify-items:start}.sheet-title-field{min-width:0}.sheet-details,.sheet-edit-grid,.theme-controls{grid-template-columns:1fr}.sheet-notes,.full-width{grid-column:1}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invite-form,.upload-row,.rsvp-buttons-large{grid-template-columns:1fr}.danger-zone{flex-direction:column;align-items:flex-start}}
