:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fbf8f4;--panel:#fff;--fg:#1e1a17;--muted:#7b736c;--line:#e9e2da;--hover:#f3eee7;--accent:#1e1a17;--accent-fg:#fbf8f4;--link:#1e1a17;--logo:url(/logo.svg);--coming:#2f8f5b;--maybe:#d29a1c;--not_coming:#c4433f;--coming-bg:#e3f4ea;--maybe-bg:#fbf1d8;--not_coming-bg:#fbe3e2;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#131211;--panel:#1c1a19;--fg:#ecebe9;--muted:#9b968f;--line:#2e2b28;--hover:#262321;--accent:#fbf8f4;--accent-fg:#1e1a17;--link:#ecebe9;--logo:url(/logo-dark.svg);--coming:#6dcb92;--maybe:#e8b84a;--not_coming:#ef7a73;--coming-bg:#1d3327;--maybe-bg:#3a2f14;--not_coming-bg:#3c1f1e}}:root[data-theme=dark]{--bg:#131211;--panel:#1c1a19;--fg:#ecebe9;--muted:#9b968f;--line:#2e2b28;--hover:#262321;--accent:#fbf8f4;--accent-fg:#1e1a17;--link:#ecebe9;--logo:url(/logo-dark.svg);--coming:#6dcb92;--maybe:#e8b84a;--not_coming:#ef7a73;--coming-bg:#1d3327;--maybe-bg:#3a2f14;--not_coming-bg:#3c1f1e}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);-webkit-tap-highlight-color:transparent;margin:0}a{color:var(--link)}h1,h2{margin:0;font-weight:650}h1{font-size:1.3rem}.muted{color:var(--muted)}.small{font-size:.85rem}.empty{text-align:center;padding:2rem 1rem}.error{color:var(--not_coming);white-space:pre-wrap;margin:.3rem 0 .8rem}header.top{border-bottom:1px solid var(--line);background:var(--panel);z-index:5;padding:.6rem 1rem;padding-top:calc(.6rem + env(safe-area-inset-top));align-items:center;gap:.8rem;display:flex;position:sticky;top:0}.brand{color:var(--fg);align-items:center;gap:.5rem;font-weight:700;text-decoration:none;display:inline-flex}.brand .logo{background:var(--logo) center / contain no-repeat;border-radius:22%;flex:none;width:1.6em;height:1.6em}header.top .spacer{flex:1}main{max-width:640px;padding:1rem;padding-bottom:calc(2rem + env(safe-area-inset-bottom));margin:0 auto}input,button{font:inherit;color:inherit}input{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:100%;min-width:0;padding:.55rem .7rem}input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:#0000}label.field{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}label.field>input{color:var(--fg)}button{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:8px;min-height:2.5rem;padding:.5rem .9rem}button:hover{background:var(--hover)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){opacity:.85}button.danger{color:var(--not_coming)}button.danger.armed{background:var(--not_coming);color:#fff;border-color:var(--not_coming)}.icon-btn{width:2.5rem;min-height:2.5rem;color:var(--fg);border:1px solid var(--line);background:var(--panel);border-radius:8px;justify-content:center;align-items:center;padding:0;line-height:1;text-decoration:none;display:inline-flex}.icon-btn:hover{background:var(--hover)}.stack{flex-direction:column;gap:.7rem;display:flex}.seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{background:0 0;border:0;border-radius:0}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--fg);color:var(--bg)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.2rem}.login{max-width:380px;margin:10vh auto}.login .brand{justify-content:center;margin-bottom:1rem;font-size:1.5rem;display:flex}.login .brand .logo{width:1.5em;height:1.5em}.login .seg{margin-bottom:1rem;display:flex}.login .seg button{flex:1}.login-wrap{padding:1rem;position:relative}.login-wrap .theme-toggle{position:absolute;top:1rem;right:1rem}form.add{gap:.5rem;margin-bottom:1rem;display:flex}form.add input{flex:1}.cards{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.card{background:var(--panel);border:1px solid var(--line);color:var(--fg);border-radius:12px;flex-direction:column;gap:.3rem;padding:.9rem 1rem;text-decoration:none;display:flex}.card:hover{background:var(--hover)}.card .name{overflow-wrap:anywhere;font-size:1.05rem;font-weight:600}.card .meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.summary{font-variant-numeric:tabular-nums;font-weight:600}.summary-line{align-items:baseline;gap:.6rem;margin:-.4rem 0 .8rem;display:flex}.summary-line .summary{font-size:1.35rem}.counts.compact{font-variant-numeric:tabular-nums;gap:.7rem;font-size:.9rem;display:inline-flex}.counts.compact .c{color:var(--muted)}.counts.compact .c b{color:var(--fg);font-weight:600}.counts.compact .coming b{color:var(--coming)}.counts.compact .maybe b{color:var(--maybe)}.counts.compact .not_coming b{color:var(--not_coming)}.counts.tiles{grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1rem;display:grid}.tile{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:.7rem .8rem}.tile .value{font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700;line-height:1.1}.tile .label{color:var(--muted);margin-top:.15rem;font-size:.8rem}.tile.coming{background:var(--coming-bg);border-color:#0000}.tile.coming .value{color:var(--coming)}.tile.maybe{background:var(--maybe-bg);border-color:#0000}.tile.maybe .value{color:var(--maybe)}.tile.not_coming{background:var(--not_coming-bg);border-color:#0000}.tile.not_coming .value{color:var(--not_coming)}.list-head{align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.list-head .title{overflow-wrap:anywhere;flex:1}.list-head .back{padding-bottom:.15rem;font-size:1.6rem}.list-head .rename{flex:1;gap:.4rem;display:flex}.list-head .rename input{flex:1}.guests{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.guest{background:var(--panel)}.guest .row{align-items:center;gap:.5rem;padding:.4rem .6rem .4rem .4rem;display:flex}.plus{letter-spacing:.02em;min-height:2.2rem;color:var(--muted);border-radius:6px;padding:0 .45rem;font-size:.8rem;font-weight:700}.plus.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}.guest .sub{align-items:center;gap:.5rem;padding:0 .6rem .5rem 2.6rem;display:flex}.guest .sub-label{color:var(--muted);flex:none;font-size:.75rem;font-weight:700}.guest .sub input{flex:1;min-height:2.1rem;padding:.35rem .6rem;font-size:.9rem}.guest+.guest{border-top:1px solid var(--line)}.group-head{text-transform:uppercase;letter-spacing:.05em;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.6rem;padding:.35rem .9rem;font-size:.75rem;font-weight:650;display:flex}.group-head:first-child{border-top:0}.group-head.coming{color:var(--coming)}.group-head.maybe{color:var(--maybe)}.group-head.not_coming{color:var(--not_coming)}.handle{width:1.8rem;min-height:2.2rem;color:var(--muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:1.1rem;display:inline-flex}.handle:hover{background:var(--hover);color:var(--fg)}.guests.dragging{-webkit-user-select:none;user-select:none}.guests.dragging .handle{cursor:grabbing}.guests.dragging .group-head{padding-top:.6rem;padding-bottom:.6rem}.guest.drag{opacity:.45;background:var(--hover)}.guest .name{overflow-wrap:anywhere;flex:1}.guest.not_coming .name{color:var(--muted);text-decoration:line-through}.guest.maybe .name{color:var(--muted)}.seg.status button{width:2.4rem;min-height:2.2rem;padding:0;font-weight:700}.seg.status button.on.coming{background:var(--coming);color:#fff}.seg.status button.on.maybe{background:var(--maybe);color:#fff}.seg.status button.on.not_coming{background:var(--not_coming);color:#fff}.guest .remove{color:var(--muted);background:0 0;border:0;width:2rem;font-size:1.3rem}.guest .remove:hover{color:var(--not_coming)}.list-foot{justify-content:space-between;align-items:center;margin-top:1.5rem;display:flex}@media (width<=480px){header.top{gap:.5rem;padding-left:.8rem;padding-right:.8rem}header.top .user{display:none}main{padding:.8rem}.tile{padding:.6rem}.tile .value{font-size:1.5rem}.guest .row{gap:.35rem;padding-left:.2rem}.guest .sub{padding-left:2.1rem}.plus{padding:0 .35rem}.handle{width:1.6rem}.seg.status button{width:2.1rem}}
