@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;600;700;800&family=Nunito+Sans:wght@400;600;700;800&display=swap";:root{--meadow: #5fa343;--meadow-dark: #3f6c2c;--sky: #8ec9e8;--sky-deep: #3f86b3;--sun: #f6c12b;--sun-deep: #f0a91e;--sun-soft: #fde7ad;--poppy: #e0533c;--bloom: #e2799f;--cream: #fbf8f0;--ink: #2c3826;--ink-soft: #5d6b54;--card: #ffffff;--border: #ebe6d5;--shadow-sm: 0 2px 8px rgba(63, 108, 44, .08);--shadow: 0 12px 30px -12px rgba(63, 108, 44, .28);--shadow-lg: 0 24px 60px -20px rgba(44, 56, 38, .35);--radius: 20px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Nunito Sans,system-ui,sans-serif;color:var(--ink);background-color:var(--cream);background-image:radial-gradient(1100px 520px at 50% -280px,#fdf3d6,#fdf3d600 72%);background-repeat:no-repeat;background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Plus Jakarta Sans,system-ui,sans-serif;font-weight:700;color:var(--meadow-dark);line-height:1.15;letter-spacing:-.015em}h1{font-size:clamp(1.8rem,1.2rem + 2.4vw,2.6rem)}a{color:var(--sky-deep)}.site-header{position:sticky;top:0;z-index:50;background:linear-gradient(115deg,var(--meadow),var(--meadow-dark));color:#fff;box-shadow:var(--shadow);border-bottom:3px solid transparent;border-image:linear-gradient(90deg,var(--sun),var(--poppy),var(--bloom),var(--sky)) 1}.site-header-inner{max-width:980px;margin:0 auto;padding:.7rem 1.25rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:1rem}.brand{display:flex;align-items:center;gap:.6rem;font-family:Plus Jakarta Sans,system-ui,sans-serif;color:#fff;text-decoration:none}.brand .flower{font-size:1.9rem;filter:drop-shadow(0 2px 3px rgba(0,0,0,.15))}.brand-text{display:flex;flex-direction:column;line-height:1.05}.brand-title{font-size:1.3rem;font-weight:800;letter-spacing:-.01em}.brand-sub{font-size:.82rem;font-weight:600;opacity:.85}.nav{display:flex;align-items:center;justify-content:center;flex:1;gap:.15rem;flex-wrap:nowrap}.nav a{color:#fff;text-decoration:none;padding:.4rem .8rem;border-radius:999px;font-weight:700;font-size:.92rem;opacity:.88;white-space:nowrap;transition:background .15s ease,opacity .15s ease}.nav a:hover{background:#ffffff29;opacity:1}.nav a.active{background:var(--sun);color:var(--meadow-dark);opacity:1;box-shadow:0 4px 12px -4px #0000004d}.nav-divider{width:1px;align-self:stretch;min-height:1.4rem;background:#ffffff4d;margin:0 .35rem}.nav-group-label{text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:800;color:var(--sun-soft);opacity:.85;padding:0 .2rem}.header-user{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.nav-user{font-size:.92rem;font-weight:700;opacity:.95;white-space:nowrap}.login-link{color:var(--meadow-dark)!important;background:var(--sun);text-decoration:none;padding:.4rem .9rem;border-radius:999px;font-weight:800;font-size:.92rem}.admin-mobile{display:none}.admin-menu{position:relative;display:flex;align-items:center}.admin-trigger{display:inline-flex;align-items:center;gap:.3rem;background:#fff0;color:#fff;border:none;cursor:pointer;font-family:inherit;font-weight:700;font-size:.92rem;padding:.4rem .8rem;border-radius:999px;opacity:.88;box-shadow:none;transition:background .15s ease,opacity .15s ease}.admin-trigger:hover,.admin-trigger.open{background:#ffffff29;opacity:1}.admin-trigger .caret{font-size:.7rem;transition:transform .15s ease}.admin-trigger.open .caret{transform:rotate(180deg)}.admin-panel{position:absolute;top:calc(100% + 10px);right:0;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:.4rem;display:flex;flex-direction:column;min-width:190px;z-index:80;animation:rise .15s ease both}.admin-panel a{color:var(--ink);text-decoration:none;padding:.55rem .8rem;border-radius:9px;font-weight:700;font-size:.92rem;opacity:1}.admin-panel a:hover{background:#f0f4ec}.admin-panel a.active{background:var(--sun-soft);color:var(--meadow-dark)}.nav-toggle,.drawer-close,.drawer-backdrop{display:none}.drawer{display:contents}.nav-toggle{position:relative;background:#ffffff29;color:#fff;border:none;font-size:1.35rem;width:44px;height:44px;border-radius:12px;box-shadow:none;padding:0;line-height:1}.nav-badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--poppy);color:#fff;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #0000004d}@media(max-width:760px){.site-header-inner{justify-content:space-between}.nav-toggle{display:inline-flex;align-items:center;justify-content:center}.drawer{display:flex;position:fixed;top:0;right:0;height:100dvh;width:min(82vw,320px);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.3rem;padding:4.5rem 1.25rem 1.5rem;background:linear-gradient(165deg,var(--meadow),var(--meadow-dark));transform:translate(110%);transition:transform .25s ease;box-shadow:-12px 0 36px #00000059;z-index:70;overflow-y:auto}.drawer.open{transform:translate(0)}.drawer-close{display:block;position:absolute;top:.8rem;right:.9rem;background:#ffffff2e;color:#fff;border:none;width:40px;height:40px;border-radius:999px;font-size:1.5rem;line-height:1;box-shadow:none;padding:0}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:60}.nav{flex:0 0 auto;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.15rem;width:100%}.nav a{width:100%}.nav-divider,.admin-menu{display:none}.admin-mobile{display:flex;flex-direction:column;gap:.15rem;width:100%}.nav-group-label{margin-top:.7rem}.header-user{flex-direction:column;align-items:flex-start;gap:.7rem;width:100%;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2)}.row .field{flex:1 1 100%;width:auto}.list-row{flex-direction:column;align-items:flex-start;gap:.5rem}}.container{max-width:980px;margin:0 auto;padding:2rem 1.25rem 4.5rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow-sm);margin-bottom:1.5rem;transition:box-shadow .2s ease,transform .2s ease;animation:rise .4s ease both}.card:hover{box-shadow:var(--shadow)}.card h2{margin-top:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.muted{color:var(--ink-soft)}.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .65rem;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.01em}.pill.green{background:#e1f1d6;color:var(--meadow-dark)}.pill.yellow{background:var(--sun-soft);color:#8a6d12}.pill.red{background:#fbe0da;color:var(--poppy)}.pill.grey{background:#eeece4;color:#6c6c6c}.pill.blue{background:#d9edf8;color:var(--sky-deep)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;color:var(--poppy);margin:0 0 .2rem}label{display:block;font-weight:700;margin-bottom:.35rem;font-size:.92rem}input[type=text],input[type=password],input[type=number],select{width:100%;padding:.65rem .75rem;border:1.5px solid var(--border);border-radius:12px;font:inherit;background:#fff;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus{outline:none;border-color:var(--sky-deep);box-shadow:0 0 0 3px #3f86b32e}.field{margin-bottom:1rem}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end}button{font:inherit;font-weight:800;cursor:pointer;border:none;border-radius:999px;padding:.6rem 1.25rem;background:linear-gradient(135deg,var(--sun),var(--sun-deep));color:#4a3a06;box-shadow:0 8px 18px -8px #f0a91eb3;transition:transform .06s ease,filter .15s ease,box-shadow .15s ease}button:hover{filter:brightness(1.03);box-shadow:0 10px 22px -8px #f0a91ecc}button:active{transform:translateY(1px)}button.secondary{background:#fff;border:1.5px solid var(--border);color:var(--ink);box-shadow:none}button.secondary:hover{border-color:var(--meadow)}button.danger{background:linear-gradient(135deg,#ec6650,var(--poppy));color:#fff;box-shadow:0 8px 18px -8px #e0533cb3}button.small{padding:.35rem .85rem;font-size:.85rem}button.cta-large{padding:1rem 2rem;font-size:1.1rem}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.55rem}.check{display:flex;align-items:center;gap:.55rem;padding:.6rem .8rem;border:1.5px solid var(--border);border-radius:12px;font-weight:700;cursor:pointer;background:#fff;transition:background .15s ease,border-color .15s ease,transform .06s ease}.check:hover{border-color:var(--meadow)}.check:active{transform:scale(.99)}.check input{width:auto;accent-color:var(--meadow)}.check.checked{background:#e7f3dc;border-color:var(--meadow)}.check.disabled{opacity:.45;cursor:not-allowed}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .65rem;border-bottom:1px solid var(--border);vertical-align:middle}th{font-family:Plus Jakarta Sans,system-ui,sans-serif;color:var(--meadow-dark);font-size:.92rem}tbody tr{transition:background .12s ease}tbody tr:hover{background:#faf8f0}tbody tr.row-hover{background:var(--sun-soft)}tbody tr.row-group-hover{background:#fdf3d3}tbody tr.row-muted{opacity:.5}tr:last-child td{border-bottom:none}.bar{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--meadow),var(--sun));min-width:6px}.error{background:#fbe0da;color:var(--poppy);border-radius:12px;padding:.7rem .9rem;margin-bottom:1rem;font-weight:700}.success{background:#e1f1d6;color:var(--meadow-dark);border-radius:12px;padding:.7rem .9rem;margin-bottom:1rem;font-weight:700}.suggestion-box{background:linear-gradient(135deg,var(--sun-soft),#fff6dc);border:1px solid #f0dfa0;color:#6b540e;border-radius:14px;padding:1rem 1.1rem;margin:.75rem 0 1rem;line-height:1.55;font-size:1.05rem}.hero{position:relative;text-align:center;padding:3rem 1.25rem 2.25rem;margin-bottom:1.5rem;background:linear-gradient(160deg,#fff,#fbf5e6);border:1px solid var(--border);border-radius:26px;box-shadow:var(--shadow);overflow:hidden}.hero:before,.hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;filter:blur(8px);opacity:.4;z-index:0}.hero:before{background:radial-gradient(circle,var(--sun-soft),transparent 70%);top:-90px;left:-60px}.hero:after{background:radial-gradient(circle,#f6dce8,transparent 70%);bottom:-110px;right:-50px}.hero>*{position:relative;z-index:1}.hero h1{font-size:clamp(2.1rem,1.4rem + 3vw,3rem);margin:.4rem 0;background:linear-gradient(120deg,var(--meadow-dark),var(--meadow) 55%,var(--sun-deep));-webkit-background-clip:text;background-clip:text;color:transparent}.hero .date{display:inline-flex;align-items:center;gap:.45rem;font-size:1.1rem;color:var(--meadow-dark);font-weight:700;letter-spacing:.01em}.hero .date:before{content:"🌼";font-size:1rem}.hero-address{margin:.35rem 0 0;color:var(--ink-soft);font-weight:600;line-height:1.4}.hero-emoji{font-size:2.4rem;letter-spacing:.3rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem}.subsection{margin-bottom:1.75rem}.list-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:none}.tag{font-size:.78rem;color:var(--ink-soft)}.center{text-align:center}.page-head{margin-bottom:1.25rem}.page-head h1{margin-bottom:.25rem}.person-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border:1.5px solid var(--border);border-radius:14px;margin-bottom:.7rem;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.person-row:hover{border-color:var(--meadow);box-shadow:var(--shadow-sm)}.person-row:last-child{margin-bottom:0}.person-name{font-weight:800;font-size:1.05rem}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .6rem;border-radius:999px;font-size:.78rem;font-weight:800}.chip.done{background:#e1f1d6;color:var(--meadow-dark)}.chip.todo{background:var(--sun-soft);color:#8a6d12}.suggestion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.suggestion-chip{text-align:left;border:1.5px solid var(--border);border-radius:14px;padding:.75rem .85rem;background:#fff;color:var(--ink);font-weight:700;box-shadow:none;display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}.suggestion-chip:hover:not(:disabled){border-color:var(--meadow);filter:none;box-shadow:var(--shadow-sm)}.suggestion-chip .s-name{font-size:1rem}.suggestion-chip.full{opacity:.6}.tabs{display:inline-flex;background:#f1eedf;border-radius:999px;padding:.25rem;gap:.25rem;margin-bottom:1.1rem}.tabs button{background:transparent;color:var(--ink-soft);box-shadow:none;padding:.4rem 1rem;font-size:.9rem}.tabs button.active{background:#fff;color:var(--meadow-dark);box-shadow:var(--shadow-sm)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c382673;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:5vh 1rem 1rem;z-index:100;animation:fade .18s ease both;overflow-y:auto}.modal{background:var(--card);border-radius:22px;width:100%;max-width:560px;box-shadow:var(--shadow-lg);animation:pop .22s cubic-bezier(.2,.9,.3,1.2) both;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 1.4rem;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#fbf5e6,#fff)}.modal-header h2{margin:0;font-size:1.3rem}.modal-close{background:#fff;border:1.5px solid var(--border);color:var(--ink-soft);width:36px;height:36px;padding:0;border-radius:999px;font-size:1.3rem;line-height:1;box-shadow:none;flex-shrink:0}.modal-close:hover{border-color:var(--poppy);color:var(--poppy);filter:none}.modal-body{padding:1.4rem;max-height:70vh;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.4rem;border-top:1px solid var(--border);background:#fbfaf4}.modal-wide{max-width:880px}.respond-grid{display:grid;grid-template-columns:1fr;gap:1.3rem}@media(min-width:700px){.respond-grid{grid-template-columns:1.5fr 1fr;align-items:start}}.respond-main h3:first-child{margin-top:0}.respond-aside{align-self:stretch}.assistant-panel{background:linear-gradient(160deg,#f4f9fb,#fbf5e6);border:1px solid var(--border);border-radius:16px;padding:1.1rem;height:100%}.assistant-panel h3{margin-top:0}.nav-mark{font-size:.85rem;margin-left:.1rem;vertical-align:baseline}.nav-mark-todo{font-size:.95rem}.check-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem;cursor:pointer}.check-row input[type=checkbox]{width:auto;margin:0}.member-picker{display:flex;flex-direction:column;gap:.2rem;max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;padding:.7rem .9rem}.member-picker .check-row{margin-bottom:0;padding:.25rem 0}.base-list{margin:.4rem 0 1rem;padding-left:1.2rem;display:flex;flex-direction:column;gap:.45rem;color:var(--ink)}.base-list li::marker{color:var(--meadow)}.item-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.item-list>li{border:1px solid var(--border);border-radius:12px;padding:.7rem .9rem}.item-head{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.item-name{font-weight:700;font-size:1.05rem}.item-count{margin-left:auto;color:var(--ink-soft);font-size:.85rem;white-space:nowrap}.item-people{display:flex;flex-wrap:wrap;gap:.4rem}.person-pill{display:inline-flex;align-items:center;gap:.3rem;background:#f4f9fb;border:1px solid var(--border);border-radius:999px;padding:.2rem .6rem;font-size:.9rem}.pill-remove{width:auto;background:none;border:none;color:var(--poppy);font-size:1rem;line-height:1;padding:0;margin:0;cursor:pointer;box-shadow:none}.pill-remove:hover{color:#b3261e;background:none}.added-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.added-list li{display:flex;justify-content:space-between;align-items:center;gap:.6rem;background:#f4f9fb;border:1px solid var(--border);border-radius:10px;padding:.45rem .7rem}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
