*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#faf7f6;--surface:#fff;--surface-sunken:#f3eeec;--border:#ece4e1;--text:#241d1b;--text-muted:#8a7c77;--accent:#a86b7d;--accent-soft:#a86b7d1a;--radius:14px;--radius-sm:10px;--shadow-sm:0 1px 2px #241d1b0a;--shadow-md:0 1px 2px #241d1b0a, 0 10px 28px #241d1b0f;--font-sans:"Source Sans 3", "Helvetica Neue", helvetica, arial, sans-serif;--header-height:60px}[data-theme=dark]{--bg:#141010;--surface:#1d1817;--surface-sunken:#241e1d;--border:#322a28;--text:#ece5e3;--text-muted:#9b8d88;--accent:#d9a2b0;--accent-soft:#d9a2b024;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 1px 2px #0000004d, 0 12px 32px #0006}html,body{height:100%;font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{flex-direction:column;min-height:100dvh;display:flex}.app-shell{flex-direction:column;flex:1;min-height:0;display:flex}.app-header{z-index:20;min-height:var(--header-height);padding:0 clamp(.75rem,3vw,1.5rem);padding-top:env(safe-area-inset-top,0px);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.app-brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:.45rem;font-size:1.0625rem;font-weight:600;display:flex}.app-content{width:100%;max-width:1220px;padding:clamp(1rem,3vw,1.75rem) clamp(.75rem,3vw,1.5rem);padding-bottom:calc(3rem + env(safe-area-inset-bottom,0px));flex:1;margin:0 auto}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;display:grid}.summary-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:12px 14px}.summary-tile.is-accent{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:linear-gradient(180deg, var(--accent-soft), transparent 60%), var(--surface)}.summary-label,.summary-hint{font-size:.75rem;line-height:1.35;display:block}.summary-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:2px 0;font-size:clamp(1.4rem,4.5vw,1.75rem);font-weight:600;line-height:1.2}.table-grid{grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:12px;display:grid}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;padding:14px;display:flex}.table-card.is-unassigned{box-shadow:none;background:0 0;border-style:dashed}.table-card-head{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding-bottom:8px;display:flex}.table-card-title{letter-spacing:-.01em;font-size:1rem;font-weight:600}.table-card-hint{font-size:.75rem;line-height:1.35}.table-card-seats{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.table-card-seat-name{min-width:0}.table-card-dot{border-radius:50%;flex:none;width:10px;min-width:10px;height:10px}.filter-bar{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.filter-bar>:first-child{flex:240px;min-width:200px}.filter-selects{flex:2 560px;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px;display:grid}.guest-name{letter-spacing:-.01em;font-weight:600}.guest-message{font-size:.85rem;font-style:italic;line-height:1.35;margin-bottom:0!important}.companion-cell{min-width:0}.companion-name{flex:0 0 84px;min-width:0}.companion-rsvp{flex:120px;min-width:0}.companion-count{flex:0 0 68px}.table-no-cell{width:100%;min-width:0}.guest-card-heads{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.05rem;font-weight:600}.guest-card-fields{grid-template-columns:minmax(72px,auto) 1fr;align-items:center;gap:8px 12px;font-size:.875rem;display:grid}.guest-card-fields>*{min-width:0}@media (width<=400px){.guest-card-fields{grid-template-columns:1fr;gap:4px}}.login-page{justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:24px 16px;display:flex}.invite-page{max-width:520px;margin:0 auto;padding:24px 16px 48px}.invite-event{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px 16px}
