.admin-page{min-height:100vh;background:var(--cream)}.login-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);background:var(--cream)}.login-box{background:#fff;padding:var(--space-xl);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:center;max-width:400px;width:100%}.login-box h1{font-family:var(--font-serif);font-size:1.375rem;font-weight:600;margin-bottom:var(--space-sm);color:var(--brutalist-border, #2C2825)}.login-box label{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.5px;color:var(--ink-soft, #6d635d);display:block;text-align:left;margin-bottom:var(--space-xs)}#login-form{display:flex;flex-direction:column;gap:var(--space-md)}#login-form input{padding:.75rem 1rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);background:#fff}#login-form input:focus{outline:none;border-color:var(--sage-dark)}.error-message{color:var(--terracotta, #C07556);font-size:.875rem;font-family:var(--font-sans);margin-top:var(--space-md)}.dashboard{display:flex;min-height:100vh}.dashboard[hidden]{display:none}.admin-content{flex:1;min-width:0;padding:var(--space-lg);background:var(--cream)}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--sand)}.admin-header h1{font-family:var(--font-serif);font-size:1.375rem;font-weight:600;color:var(--brutalist-border, #2C2825)}.btn{padding:.625rem 1rem;border:none;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;font-family:var(--font-sans);cursor:pointer;letter-spacing:.06em;transition:transform .2s var(--ease-spring),box-shadow .2s var(--ease-smooth),background .2s var(--ease-smooth);position:relative}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--sidebar-sage);color:var(--cream);box-shadow:var(--shadow-card)}.btn-primary:hover:not(:disabled){background:var(--sage-dark);color:var(--cream);transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.btn-secondary{background:var(--cream);color:var(--brutalist-border, #2C2825);box-shadow:var(--shadow-card)}.btn-secondary:hover:not(:disabled){background:var(--ivory);transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.btn-ghost{background:transparent;color:var(--sage-dark);border:none;padding:.5rem .75rem}.btn-ghost:hover:not(:disabled){text-decoration:underline;background:#9caf8814}.btn-danger{background:var(--terracotta, #C07556);color:var(--cream);box-shadow:var(--shadow-card)}.btn-danger:hover:not(:disabled){background:#a8614a;transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.btn-sm{padding:.3rem .625rem;font-size:.6875rem}.btn-icon{padding:.4rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.btn-icon[title]{position:relative}.header-actions{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.export-dropdown-wrapper{position:relative}.export-menu{position:absolute;top:100%;right:0;z-index:20;background:#fff;border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card-hover);min-width:180px;margin-top:var(--space-xs);overflow:hidden}.export-menu-item{display:block;width:100%;padding:.625rem 1rem;border:none;background:none;text-align:left;font-size:.8rem;font-family:var(--font-sans);cursor:pointer;color:var(--brutalist-border, #2C2825)}.export-menu-item:hover{background:var(--ivory)}.add-form{margin-bottom:var(--space-lg);padding:var(--space-md);background:var(--ivory);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.add-form h3{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.5px;font-weight:700;color:var(--ink-soft, #6d635d);margin-bottom:var(--space-sm)}.form-row{display:flex;gap:var(--space-sm);align-items:center}.form-row input,.form-row select{flex:1;padding:.625rem .75rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);background:#fff}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--sage-dark)}.field-group{display:flex;flex-direction:column;gap:var(--space-xs)}.field-group label{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.5px;color:var(--brutalist-border, #2C2825)}.inline-edit{display:flex;gap:var(--space-xs);align-items:center;flex:1}.inline-edit input{flex:1;padding:.375rem .625rem;border:1px solid var(--sage-dark);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans)}.empty-state{text-align:center;padding:var(--space-xl);color:var(--ink-soft, #6d635d);font-family:var(--font-sans)}.header-actions [hidden]{display:none}.requirement-row,.song-row{padding:var(--space-md);border-bottom:1px solid var(--sand)}.requirement-row:last-child,.song-row:last-child{border-bottom:none}.requirement-text,.song-text{font-family:var(--font-sans);font-size:.875rem;margin-bottom:var(--space-xs)}.requirement-meta,.song-meta{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d)}.content-checkbox-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.content-checkbox-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--sage-dark)}.content-checkbox-row label{font-size:.875rem;font-weight:500;color:var(--brutalist-border, #2C2825)}.summary-section{margin-bottom:var(--space-lg)}.summary-section[hidden]{display:none}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-md)}.stat-card{background:#fff;padding:var(--space-md) var(--space-lg);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card);border-top:4px solid var(--sand);display:flex;align-items:center;gap:var(--space-md);opacity:0;animation:fadeInUp .4s var(--ease-spring, ease) forwards;transition:transform .2s var(--ease-spring),box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.stat-card:nth-child(1){animation-delay:0ms}.stat-card:nth-child(2){animation-delay:50ms}.stat-card:nth-child(3){animation-delay:.1s}.stat-card:nth-child(4){animation-delay:.15s}.stat-card:nth-child(5){animation-delay:.2s}.stat-card--sage{border-top-color:var(--sage)}.stat-card--sage-dark{border-top-color:var(--sage-dark)}.stat-card--terracotta{border-top-color:var(--terracotta, #C07556)}.stat-card--sand{border-top-color:var(--sand)}.stat-card--gold{border-top-color:var(--gold, #C9A24A)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stat-body{flex:1;min-width:0}.stat-value{font-family:var(--font-sans);font-size:1.5rem;font-weight:500;color:var(--brutalist-border, #2C2825);line-height:1.1}.stat-label{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.5px;color:var(--ink-soft, #6d635d)}.stat-delta{font-family:var(--font-sans);font-size:.6875rem;color:var(--ink-soft, #6d635d);margin-top:2px}.rsvp-progress-section{margin-bottom:var(--space-lg)}.rsvp-progress-section[hidden]{display:none}.rsvp-progress-section h2{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin-bottom:var(--space-md);color:var(--brutalist-border, #2C2825)}.progress-row{background:#fff;padding:var(--space-md) var(--space-lg);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card);margin-bottom:var(--space-sm)}.progress-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-xs)}.progress-label{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:var(--brutalist-border, #2C2825)}.progress-value{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d)}.progress-bar{background:var(--sand);height:14px;border:none;border-radius:var(--radius-pill);overflow:hidden;display:flex;position:relative}.progress-fill{height:100%;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill.attending{background:var(--sage-dark)}.progress-fill.not-attending{background:var(--warm-gray, #8B8178)}.progress-fill.responded{background:var(--sage-dark)}.progress-pct{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-family:var(--font-sans);font-size:.6875rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.events-section{margin-bottom:var(--space-lg)}.events-section[hidden]{display:none}.events-section h2{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin-bottom:var(--space-md);color:var(--brutalist-border, #2C2825)}.event-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-md)}.event-card{background:#fff;padding:var(--space-lg);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card);transition:transform .2s var(--ease-spring),box-shadow .2s}.event-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.event-card h3{font-family:var(--font-serif);font-size:.875rem;font-weight:600;margin-bottom:var(--space-xs)}.event-date{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d);margin-bottom:var(--space-md)}.event-counts{display:flex;gap:var(--space-lg)}.count{display:flex;flex-direction:column}.count-value{font-family:var(--font-sans);font-size:1.25rem;font-weight:500}.count-value.attending{color:var(--sage-dark)}.count-value.not-attending{color:var(--warm-gray, #8B8178)}.count-label{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.3px;color:var(--ink-soft, #6d635d)}.event-mini-progress{height:6px;border:none;border-radius:var(--radius-pill);background:var(--sand);overflow:hidden;display:flex;margin-top:var(--space-sm)}.event-mini-fill{height:100%;transition:width .6s cubic-bezier(.4,0,.2,1)}.event-mini-fill.attending{background:var(--sage-dark)}.event-mini-fill.not-attending{background:var(--warm-gray, #8B8178)}.admin-sidebar{width:220px;min-width:220px;background:var(--brutalist-border, #2C2825);min-height:100vh;display:flex;flex-direction:column;position:sticky;top:0;align-self:flex-start;z-index:100;border-radius:0 var(--radius-lg) var(--radius-lg) 0}.sidebar-title{font-family:var(--font-serif);font-size:1rem;font-weight:600;color:var(--gold, #C9A24A);padding:var(--space-md) var(--space-md);border-bottom:1px solid #3a3330}.sidebar-nav{padding:var(--space-sm) 0;flex:1;overflow-y:auto}.sidebar-group{padding:var(--space-xs) 0}.sidebar-group-label{font-family:var(--font-sans);font-size:.6875rem;font-weight:500;letter-spacing:1.5px;color:#6d635d;padding:var(--space-xs) var(--space-md);margin-bottom:2px}.sidebar-nav-standalone{margin-bottom:var(--space-xs);border-left-color:var(--gold, #C9A24A);font-weight:600}.sidebar-divider{border-top:1px solid #3a3330;margin:var(--space-xs) var(--space-md)}.sidebar-nav-utility{color:#6d635d;font-size:.75rem}.sidebar-nav-item{display:block;width:100%;padding:.5rem var(--space-md);border:none;background:transparent;font-family:var(--font-sans);font-size:.8125rem;color:var(--sage-light, #9CAF88);cursor:pointer;text-align:left;transition:color .15s,background .15s,box-shadow .15s;border-left:none;border-radius:var(--radius-sm);margin:2px var(--space-sm);width:auto}.sidebar-nav-item:hover{color:var(--cream);background:#ffffff14}.sidebar-nav-item.active{background:var(--sage-dark);color:var(--cream);box-shadow:0 2px 8px #0003}.tab-content{background:#fff;border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-lg)}.tab-panel{animation:fadeIn .2s var(--ease-spring, ease)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tab-panel[hidden]{display:none}.sidebar-hamburger{display:none;position:fixed;top:var(--space-sm);left:var(--space-sm);z-index:200;width:40px;height:40px;background:var(--brutalist-border, #2C2825);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-card);cursor:pointer;padding:8px;flex-direction:column;justify-content:space-between;align-items:stretch}.sidebar-hamburger span{display:block;height:2px;background:var(--cream);transition:transform .2s,opacity .2s}.sidebar-hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.sidebar-hamburger.open span:nth-child(2){opacity:0}.sidebar-hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:99}.sidebar-overlay.open{display:block}.party-card{border:none;border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);border-left:4px solid var(--sand);transition:transform .2s var(--ease-spring),box-shadow .2s var(--ease-smooth);background:#fff;box-shadow:var(--shadow-card)}.party-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-left-color:var(--sage-dark)}.party-card.rsvp-all-responded{border-left-color:var(--sage)}.party-card.rsvp-partial{border-left-color:var(--terracotta, #C07556)}.party-card.rsvp-none{border-left-color:var(--sand)}.party-header{display:flex;justify-content:space-between;align-items:center;background:var(--ivory);margin:calc(-1 * var(--space-md));margin-bottom:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--sand);border-radius:var(--radius-md) var(--radius-md) 0 0}.party-header h3{font-family:var(--font-serif);font-size:.875rem;font-weight:600;color:var(--brutalist-border, #2C2825);margin:0}.party-actions{display:flex;gap:var(--space-xs);flex-wrap:wrap;justify-content:flex-end;align-items:center}.party-card-readonly h3{font-family:var(--font-serif);font-size:.875rem;font-weight:600;margin-bottom:var(--space-md);color:var(--brutalist-border, #2C2825)}.party-rsvp-summary{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sans);font-size:.6875rem;color:var(--ink-soft, #6d635d);white-space:nowrap}.party-overflow-wrapper{position:relative}.party-overflow-menu{position:absolute;top:100%;right:0;z-index:20;background:#fff;border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card-hover);min-width:180px;margin-top:var(--space-xs);display:none;overflow:hidden}.party-overflow-menu.open{display:block}.party-overflow-item{display:block;width:100%;padding:.625rem 1rem;border:none;background:none;text-align:left;font-size:.8rem;font-family:var(--font-sans);cursor:pointer;color:var(--brutalist-border, #2C2825)}.party-overflow-item:hover{background:var(--ivory)}.party-overflow-danger{color:var(--terracotta, #C07556)}.party-overflow-danger:hover{background:#c0755614}.party-overflow-divider{height:1px;background:var(--sand);margin:var(--space-xs) 0}.guest-row{padding:var(--space-md) 0;border-bottom:1px solid var(--sand)}.guest-row:last-of-type{border-bottom:none}.guest-display{display:grid;grid-template-columns:1fr auto auto;gap:var(--space-sm) var(--space-md);align-items:start}.guest-display[hidden]{display:none}.guest-primary{display:flex;flex-direction:column;gap:4px;min-width:0}.guest-name-line{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.guest-name{font-family:var(--font-sans);font-weight:600;font-size:.875rem}.guest-rsvp-dots{display:inline-flex;gap:3px;align-items:center}.guest-secondary{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.guest-email,.guest-phone{font-size:.75rem;color:var(--ink-soft, #6d635d)}.guest-text-opt-in{display:inline-flex;align-items:center;gap:3px;padding:.15rem .5rem;font-size:.6875rem;font-weight:700;letter-spacing:.03em;background:#9caf8826;color:var(--sage-dark);border:none;border-radius:var(--radius-pill)}.guest-row-actions{display:flex;gap:2px;align-items:center;flex-shrink:0}.guest-row-actions .btn-ghost{padding:.25rem .5rem;font-size:.875rem;line-height:1}.guest-delete-btn{color:var(--terracotta, #C07556)!important;font-size:1.1rem!important}.guest-delete-btn:hover{background:#c0755614!important}.guest-rsvps{display:flex;gap:var(--space-sm);flex-wrap:wrap}.rsvp-badge{padding:.2rem .6rem;font-family:var(--font-sans);font-size:.6875rem;font-weight:700;letter-spacing:.03em;border:none;border-radius:var(--radius-pill)}.rsvp-yes{background:var(--sage);color:#fff}.rsvp-no{background:var(--warm-gray, #8B8178);color:#fff}.rsvp-pending{background:var(--ivory);color:var(--ink-soft, #6d635d)}.rsvp-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.rsvp-dot.attending{background:var(--sage-dark)}.rsvp-dot.declined{background:var(--terracotta, #C07556)}.rsvp-dot.pending{background:var(--sand);border:1px solid var(--warm-gray, #8B8178)}.guest-detail-panel{grid-column:1 / -1;padding:var(--space-sm) 0;display:flex;gap:var(--space-md);flex-wrap:wrap}.guest-detail-panel[hidden]{display:none}.guest-detail-item{font-size:.75rem;color:var(--ink-soft, #6d635d)}.guest-detail-label{font-family:var(--font-sans);font-size:.6875rem;letter-spacing:.03em;color:var(--brutalist-border, #2C2825);font-weight:700;margin-right:4px}.guest-detail-toggle{transition:transform .2s}.guest-detail-toggle.open{transform:rotate(180deg)}.guest-edit-panel[hidden]{display:none}.guest-edit-form{background:var(--ivory);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-md)}.guest-edit-section{margin-bottom:var(--space-md)}.guest-edit-section:last-of-type{margin-bottom:0}.guest-edit-section-label{font-family:var(--font-sans);font-size:.6875rem;letter-spacing:.5px;color:var(--ink-soft, #6d635d);font-weight:700;margin-bottom:var(--space-xs)}.guest-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.guest-edit-grid .field-group input[type=text],.guest-edit-grid .field-group input[type=email],.guest-edit-grid .field-group input[type=tel]{width:100%;padding:.5rem .625rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.8125rem;font-family:var(--font-sans);background:#fff}.guest-edit-grid .field-group input:focus{outline:none;border-color:var(--sage-dark)}.guest-edit-checkbox-label{display:flex!important;align-items:center;gap:6px;font-size:.8125rem!important;text-transform:none!important;letter-spacing:0!important;cursor:pointer;padding-top:1.25rem}.guest-edit-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--sage-dark)}.guest-edit-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--sand)}.add-guest-trigger{margin-top:var(--space-md);border:2px dashed var(--sand)!important;border-radius:var(--radius-md)!important;color:var(--ink-soft, #6d635d)!important;width:100%;text-align:center;padding:var(--space-sm)!important}.add-guest-trigger:hover{background:var(--ivory)!important;border-color:var(--sage-dark)!important;color:var(--sage-dark)!important}.add-guest-trigger[hidden]{display:none}.add-guest-panel{margin-top:var(--space-md)}.add-guest-panel[hidden]{display:none}.guest-requirements{margin-top:var(--space-xs);font-size:.8125rem;color:var(--ink-soft, #6d635d);font-style:italic}.guestlist-filter-bar{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--ivory);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.guestlist-filter-bar select{padding:.4rem .625rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.8rem;font-family:var(--font-sans);background:#fff;min-width:140px}.guestlist-filter-bar select:focus{outline:none;border-color:var(--sage-dark)}.guestlist-rsvp-filters{display:flex;gap:0}.guestlist-rsvp-btn{padding:.375rem .75rem;border:none;border-radius:var(--radius-pill);font-size:.6875rem;font-weight:700;font-family:var(--font-sans);letter-spacing:.04em;cursor:pointer;background:#fff;color:var(--brutalist-border, #2C2825);transition:transform .2s var(--ease-spring),background .2s var(--ease-smooth),color .2s var(--ease-smooth),box-shadow .2s var(--ease-smooth);margin-left:var(--space-xs);box-shadow:var(--shadow-card)}.guestlist-rsvp-btn:first-child{margin-left:0}.guestlist-rsvp-btn:hover{background:var(--ivory);transform:translateY(-1px);box-shadow:var(--shadow-card-hover)}.guestlist-rsvp-btn.active{background:var(--sage-dark);color:var(--cream);box-shadow:0 2px 8px #0000001f}.guestlist-summary{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d);margin-left:auto;white-space:nowrap}.guestlist-search-bar{margin-bottom:var(--space-md)}.guestlist-search-bar input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);background:#fff;transition:border-color .2s var(--ease-smooth),box-shadow .2s var(--ease-smooth)}.guestlist-search-bar input:focus{outline:none;border-color:var(--sage-dark)}.party-header-left{display:flex;align-items:center;gap:var(--space-sm);min-width:0;flex-wrap:wrap}.party-toggle{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--ink-soft, #6d635d);padding:2px 4px;line-height:1;transition:transform .2s;flex-shrink:0}.party-toggle.collapsed{transform:rotate(-90deg)}.party-guest-count{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d);background:var(--ivory);padding:.15rem .5rem;border:none;border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0}.party-body[hidden]{display:none}.empty-state-icon{font-size:2rem;margin-bottom:var(--space-sm)}.empty-state-hint{font-size:.75rem;color:var(--warm-gray, #8B8178);margin-top:var(--space-xs)}.guest-address,.guest-dietary,.guest-accessibility{font-size:.75rem;color:var(--ink-soft, #6d635d)}.tag-pill{display:inline-flex;align-items:center;gap:4px;padding:.2rem .6rem;font-family:var(--font-sans);font-size:.6875rem;font-weight:600;letter-spacing:.01em;line-height:1;white-space:nowrap;border:none;border-radius:var(--radius-pill);background:var(--ivory);cursor:default}.tag-pill .tag-remove{cursor:pointer;opacity:.6;font-size:.8rem;line-height:1;background:none;border:none;padding:0;margin-left:2px;font-weight:700;color:inherit}.tag-pill .tag-remove:hover{opacity:1}.guest-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.add-tag-btn{display:inline-flex;align-items:center;padding:.15rem .5rem;font-size:.6875rem;font-weight:600;background:transparent;color:var(--ink-soft, #6d635d);border:1px dashed var(--sand);border-radius:var(--radius-pill);cursor:pointer;transition:all .2s}.add-tag-btn:hover{background:var(--ivory);color:var(--sage-dark);border-color:var(--sage)}.tag-dropdown{position:absolute;top:100%;left:0;z-index:10;background:var(--cream);border:1px solid var(--sand);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-xs);min-width:160px}.tag-dropdown-item{display:flex;align-items:center;gap:var(--space-xs);padding:.375rem .5rem;cursor:pointer;font-size:.8rem;font-family:var(--font-sans);border:none;border-radius:var(--radius-sm);background:none;width:100%;text-align:left}.tag-dropdown-item:hover{background:var(--ivory)}.tag-dropdown-swatch{width:12px;height:12px;border:1px solid var(--sand);border-radius:50%;flex-shrink:0}.tag-dropdown-wrapper{position:relative;display:inline-flex}.color-swatches{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.color-swatch{width:24px;height:24px;border:2px solid transparent;border-radius:50%;cursor:pointer;transition:all .2s}.color-swatch:hover{transform:scale(1.1)}.color-swatch.selected{border-color:var(--sage-dark);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--sage-dark)}.tags-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}.tag-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border:1px solid var(--sand);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-card)}.tag-row-info{display:flex;align-items:center;gap:var(--space-sm)}.tag-row-swatch{width:20px;height:20px;border:1px solid var(--sand);border-radius:50%;flex-shrink:0}.tag-row-name{font-family:var(--font-sans);font-weight:600}.tag-row-actions{display:flex;gap:var(--space-xs)}.import-section h3{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin-bottom:var(--space-sm)}.import-instructions{font-family:var(--font-sans);font-size:.8125rem;color:var(--ink-soft, #6d635d);margin-bottom:var(--space-sm);line-height:1.5}.import-instructions code{background:var(--ivory);padding:.1rem .35rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.75rem}.import-instructions a{color:var(--sage-dark);font-weight:700}.import-file-row{margin-bottom:var(--space-md)}.import-file-row input[type=file]{font-size:.875rem;font-family:var(--font-sans)}.import-errors{background:#c0755614;border:1px solid var(--terracotta, #C07556);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);color:var(--terracotta, #C07556);font-size:.8125rem}.import-errors ul{margin:var(--space-xs) 0 0 var(--space-md);padding:0}.import-table-wrapper{overflow-x:auto;margin-bottom:var(--space-md);border:1px solid var(--sand);border-radius:var(--radius-md)}.import-table{width:100%;border-collapse:collapse;font-family:var(--font-sans);font-size:.8125rem}.import-table th,.import-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--sand)}.import-table th{background:var(--ivory);font-weight:700;font-size:.75rem;letter-spacing:.02em;color:var(--ink-soft, #6d635d);border-bottom:1px solid var(--sand)}.import-table tr:hover td{background:var(--ivory)}#import-preview-heading{font-family:var(--font-serif);font-size:.875rem;font-weight:600;margin-bottom:var(--space-sm)}#import-submit-btn{margin-top:var(--space-sm)}.import-result{margin-top:var(--space-md);padding:var(--space-md);font-family:var(--font-sans);font-size:.8125rem;border-radius:var(--radius-md)}.import-result.success{background:#9caf881a;color:var(--sage-dark);border:1px solid var(--sage)}.import-result.error{background:#c0755614;color:var(--terracotta, #C07556);border:1px solid var(--terracotta, #C07556)}.content-editor-layout{display:grid;grid-template-columns:200px 1fr;gap:var(--space-lg);min-height:400px}.content-sidebar{display:flex;flex-direction:column;gap:var(--space-xs);background:var(--ivory);border-right:1px solid var(--sand);border-radius:var(--radius-md);padding:var(--space-sm)}.content-sidebar-group{margin-bottom:var(--space-sm)}.content-sidebar-label{font-family:var(--font-sans);font-size:.6875rem;font-weight:500;letter-spacing:1px;color:var(--ink-soft, #6d635d);padding:0 var(--space-sm);margin-bottom:var(--space-xs)}.content-sidebar-btn{display:block;width:100%;padding:.5rem .75rem;border:none;background:transparent;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s;color:var(--ink-soft, #6d635d);text-align:left}.content-sidebar-btn:hover{background:#fff;color:var(--brutalist-border, #2C2825);box-shadow:var(--shadow-card)}.content-sidebar-btn.active{background:var(--sage);color:#fff;font-weight:700;box-shadow:0 2px 8px #9caf884d}.content-nav{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg);flex-wrap:wrap}.content-nav-btn{padding:.5rem 1rem;border:none;border-radius:var(--radius-pill);background:var(--cream);font-family:var(--font-sans);font-size:.75rem;font-weight:700;cursor:pointer;transition:all .2s;color:var(--ink-soft, #6d635d);box-shadow:var(--shadow-card)}.content-nav-btn:hover{background:var(--ivory);transform:translateY(-1px);box-shadow:var(--shadow-card-hover)}.content-nav-btn.active{background:var(--sage);color:#fff;box-shadow:0 2px 8px #9caf884d}.content-item-row{display:grid;grid-template-columns:1fr auto;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--sand);border-radius:var(--radius-md);box-shadow:var(--shadow-card);margin-bottom:var(--space-sm);align-items:start;transition:transform .2s var(--ease-spring),box-shadow .2s}.content-item-row:hover{box-shadow:var(--shadow-card-hover)}.content-item-row .field-group{display:flex;flex-direction:column;gap:var(--space-xs)}.content-item-row .field-group label{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.5px;color:var(--ink-soft, #6d635d)}.content-item-row input,.content-item-row textarea{padding:.5rem .75rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);width:100%;box-sizing:border-box;background:#fff;transition:border-color .2s,box-shadow .2s}.content-item-row input:focus,.content-item-row textarea:focus{outline:none;border-color:var(--sage-dark);box-shadow:0 0 0 3px #9caf8826}.content-item-row textarea{min-height:60px;resize:vertical}.content-item-actions{display:flex;flex-direction:column;gap:4px}.content-item-actions button{padding:.3rem .75rem;border:none;border-radius:var(--radius-pill);background:var(--cream);box-shadow:var(--shadow-card);cursor:pointer;font-size:.75rem;font-family:var(--font-sans);font-weight:700;transition:background .2s,transform .2s,box-shadow .2s}.content-item-actions button:hover{background:var(--ivory);transform:translateY(-1px);box-shadow:var(--shadow-card-hover)}.content-save-bar{display:flex;align-items:center;gap:var(--space-md);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--sand)}.content-save-status{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d)}.content-save-status.success{color:var(--sage-dark);font-weight:700}.content-save-status.error{color:var(--terracotta, #C07556);font-weight:700}.content-add-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.5rem 1rem;border:1px dashed var(--sage);border-radius:var(--radius-pill);background:none;color:var(--sage-dark);font-family:var(--font-sans);font-size:.75rem;font-weight:700;cursor:pointer;transition:all .2s;margin-bottom:var(--space-sm)}.content-add-btn:hover{background:#9caf881a;box-shadow:var(--shadow-card)}.content-hero-form{display:flex;flex-direction:column;gap:var(--space-md);max-width:500px}.content-hero-form .field-group{display:flex;flex-direction:column;gap:var(--space-xs)}.content-hero-form label{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.5px;color:var(--ink-soft, #6d635d)}.content-hero-form input{padding:.625rem .75rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);background:#fff;transition:border-color .2s,box-shadow .2s}.content-hero-form input:focus{outline:none;border-color:var(--sage-dark);box-shadow:0 0 0 3px #9caf8826}.photos-admin-section h3{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin-bottom:var(--space-md)}.photos-filter-bar{display:flex;gap:var(--space-lg);margin-bottom:var(--space-md);flex-wrap:wrap}.photos-gallery-switcher,.photos-visibility-filter{display:flex;gap:var(--space-xs)}.photos-gallery-btn,.photos-vis-btn{padding:.4rem .8rem;border:1px solid var(--sand);border-radius:var(--radius-pill);background:var(--cream);font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:all .2s;color:var(--ink-soft, #6d635d)}.photos-gallery-btn:hover,.photos-vis-btn:hover{background:var(--ivory)}.photos-gallery-btn.active,.photos-vis-btn.active{background:var(--sidebar-sage);color:var(--cream);border-color:var(--sidebar-sage)}.photos-upload-form{margin-bottom:var(--space-lg);padding:var(--space-md);background:var(--ivory);border:1px solid var(--sand);border-radius:var(--radius-md)}.photos-upload-row{flex-wrap:wrap}.photos-upload-form h4{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.02em;font-weight:700;color:var(--ink-soft, #6d635d);margin-bottom:var(--space-sm)}.upload-status-inline{margin-top:var(--space-sm);padding:var(--space-sm);font-family:var(--font-sans);font-size:.75rem;border-left:3px solid var(--sand);border-radius:var(--radius-sm)}.upload-status-inline.success{background:#9caf881a;border-left-color:var(--sage-dark);color:var(--sage-dark)}.upload-status-inline.error{background:#c0755614;border-left-color:var(--terracotta, #C07556);color:var(--terracotta, #C07556)}.admin-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-md)}.admin-photo-card{border:none;border-radius:var(--radius-md);overflow:hidden;background:#fff;position:relative;box-shadow:var(--shadow-card);transition:box-shadow .2s}.admin-photo-card:hover{box-shadow:var(--shadow-card-hover)}.admin-photo-card.hidden-photo{opacity:.6}.admin-photo-thumb{width:100%;aspect-ratio:1;object-fit:cover;display:block;cursor:pointer}video.admin-photo-thumb{background:#000}.admin-photo-overlay{padding:var(--space-sm)}.admin-photo-badges{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:var(--space-xs)}.admin-photo-badge{padding:.15rem .4rem;font-family:var(--font-sans);font-size:.6875rem;font-weight:600;letter-spacing:.01em;border:none;border-radius:var(--radius-pill)}.admin-photo-badge.gallery-badge{background:#9caf8826;color:var(--sage-dark)}.admin-photo-badge.pending-badge{background:#d5c8ba4d;color:var(--ink-soft, #6d635d)}.admin-photo-badge.visible-badge{background:var(--sage);color:#fff}.admin-photo-caption-row{display:flex;align-items:start;gap:4px;margin-bottom:var(--space-xs);min-height:1.5em}.admin-photo-caption-text{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d);word-break:break-word;flex:1}.admin-photo-caption-text .no-caption{color:var(--sand);font-style:italic}.admin-photo-caption-edit{background:none;border:none;cursor:pointer;font-size:.75rem;color:var(--ink-soft, #6d635d);padding:0;line-height:1;flex-shrink:0;transition:color .2s}.admin-photo-caption-edit:hover{color:var(--sage-dark)}.admin-caption-input{width:100%;padding:.3rem .5rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.6875rem;font-family:var(--font-sans);box-sizing:border-box;margin-bottom:4px}.admin-caption-input:focus{outline:none;border-color:var(--sage-dark)}.admin-caption-btns{display:flex;gap:4px}.admin-photo-uploader{font-family:var(--font-sans);font-size:.6875rem;color:var(--ink-soft, #6d635d);margin-bottom:var(--space-xs)}.admin-photo-actions{display:flex;gap:4px;flex-wrap:wrap}.admin-lightbox{position:fixed;inset:0;z-index:1000;background:#000000f2;display:flex;align-items:center;justify-content:center;animation:backdropFadeIn .2s ease}.admin-lightbox[hidden]{display:none}.admin-lightbox-close{position:absolute;top:16px;right:16px;background:none;border:none;color:#fff;font-size:2.5rem;cursor:pointer;line-height:1;z-index:1001}.admin-lightbox-content{display:flex;align-items:center;justify-content:center;max-width:90vw;max-height:90vh;animation:modalScaleIn .2s var(--ease-spring, ease)}.admin-lightbox-content img,.admin-lightbox-content video{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:var(--radius-md)}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.qr-generator{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl)}.qr-controls{display:flex;flex-direction:column;gap:var(--space-lg)}.qr-section-label{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--ink-soft, #6d635d);margin-bottom:var(--space-xs)}.qr-page-select{width:100%;padding:.625rem .75rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);background:#fff}.qr-page-select:focus{outline:none;border-color:var(--sage-dark)}.qr-custom-url-input{width:100%;padding:.625rem .75rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);margin-top:var(--space-xs);box-sizing:border-box}.qr-custom-url-input:focus{outline:none;border-color:var(--sage-dark)}.qr-presets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.qr-preset-card{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--sand);border-radius:var(--radius-md);background:#fff;cursor:pointer;transition:all .2s;font-family:var(--font-sans);font-size:.75rem;font-weight:600;color:var(--brutalist-border, #2C2825);box-shadow:var(--shadow-card)}.qr-preset-card:hover{box-shadow:var(--shadow-card-hover)}.qr-preset-card.active{border-color:var(--sage-dark);border-width:2px;background:#9caf880f}.qr-preset-swatch{width:24px;height:24px;flex-shrink:0;border:1px solid var(--sand);border-radius:50%}.qr-size-options{display:flex;gap:var(--space-xs);flex-wrap:wrap}.qr-size-btn{padding:.4rem .8rem;border:1px solid var(--sand);border-radius:var(--radius-pill);background:var(--cream);font-family:var(--font-sans);font-size:.6875rem;font-weight:600;cursor:pointer;transition:all .2s;color:var(--ink-soft, #6d635d)}.qr-size-btn:hover{background:var(--ivory)}.qr-size-btn.active{background:var(--sidebar-sage);color:var(--cream);border-color:var(--sidebar-sage)}.qr-advanced-toggle{display:inline-flex;align-items:center;gap:var(--space-xs);background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:.75rem;font-weight:700;color:var(--sage-dark);padding:0}.qr-advanced-toggle:hover{text-decoration:underline}.qr-advanced-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background:var(--ivory);border:1px solid var(--sand);border-radius:var(--radius-md)}.qr-advanced-panel[hidden]{display:none}.qr-style-options{display:flex;gap:var(--space-xs);flex-wrap:wrap}.qr-style-btn{padding:.35rem .65rem;border:1px solid var(--sand);border-radius:var(--radius-pill);background:#fff;font-family:var(--font-sans);font-size:.6875rem;font-weight:600;cursor:pointer;transition:all .2s;color:var(--ink-soft, #6d635d)}.qr-style-btn:hover{background:var(--ivory)}.qr-style-btn.active{background:var(--sidebar-sage);color:var(--cream);border-color:var(--sidebar-sage)}.qr-color-row{display:flex;align-items:center;gap:var(--space-sm)}.qr-color-row label{font-family:var(--font-sans);font-size:.75rem;font-weight:600;color:var(--ink-soft, #6d635d);min-width:80px}.qr-color-row input[type=color]{width:32px;height:32px;border:1px solid var(--sand);border-radius:var(--radius-sm);padding:2px;cursor:pointer;background:#fff}.qr-color-row input[type=text]{width:80px;padding:.35rem .5rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.8rem;font-family:var(--font-sans)}.qr-color-row input[type=text]:focus{outline:none;border-color:var(--sage-dark)}.qr-preview-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--ivory);border:1px solid var(--sand);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);position:sticky;top:var(--space-lg)}.qr-preview-container{background:#fff;border:1px solid var(--sand);border-radius:var(--radius-md);padding:var(--space-md);display:flex;align-items:center;justify-content:center}.qr-preview-container canvas,.qr-preview-container svg{max-width:300px;max-height:300px}.qr-preview-url{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d);word-break:break-all;text-align:center;max-width:100%}.qr-download-btns{display:flex;gap:var(--space-sm)}.seating-section h3{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin-bottom:var(--space-md)}.seating-summary{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--ivory);border:1px solid var(--sand);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.seating-summary-text{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:var(--brutalist-border, #2C2825);white-space:nowrap}.seating-progress-bar{flex:1;background:var(--sand);height:12px;border:none;border-radius:var(--radius-pill);overflow:hidden}.seating-progress-fill{height:100%;background:var(--sage-dark);border-radius:var(--radius-pill);transition:width .3s ease}.seating-progress-pct{font-family:var(--font-sans);font-size:.75rem;font-weight:600;color:var(--ink-soft, #6d635d);white-space:nowrap}.seating-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);flex-wrap:wrap;gap:var(--space-sm)}.seating-filters{display:flex;gap:var(--space-xs)}.seating-filter-btn{padding:.4rem .8rem;border:1px solid var(--sand);border-radius:var(--radius-pill);background:var(--cream);font-family:var(--font-sans);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s;color:var(--ink-soft, #6d635d)}.seating-filter-btn:hover{background:var(--ivory)}.seating-filter-btn.active{background:var(--sidebar-sage);color:var(--cream);border-color:var(--sidebar-sage)}.seating-export-btns{display:flex;gap:var(--space-xs)}.seating-unassigned{border:1px solid var(--sand);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.seating-unassigned-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap}.seating-unassigned-title{font-family:var(--font-sans);font-size:.8125rem;font-weight:700;color:var(--brutalist-border, #2C2825)}.seating-search-input{flex:1;min-width:150px;padding:.375rem .625rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.8rem;font-family:var(--font-sans)}.seating-search-input:focus{outline:none;border-color:var(--sage-dark)}.seating-unassigned-chips{display:flex;flex-wrap:wrap;gap:6px}.seating-unassigned-chips[hidden]{display:none}.seating-guest-chip{display:inline-flex;align-items:center;gap:4px;padding:.25rem .5rem;font-family:var(--font-sans);font-size:.6875rem;font-weight:600;border:none;border-radius:var(--radius-pill);cursor:default}.seating-guest-chip.attending{background:#9caf8826;color:var(--sage-dark)}.seating-guest-chip.declined{background:#8b81781a;color:var(--warm-gray, #8B8178)}.seating-guest-chip.pending{background:#e4d6c14d;color:var(--warm-gray, #8B8178)}.seating-guest-chip .chip-party{font-size:.625rem;opacity:.7}.seating-layout{display:flex;gap:var(--space-lg);align-items:flex-start}.seating-sidebar{width:280px;min-width:280px;position:sticky;top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);max-height:calc(100vh - 120px);overflow-y:auto}.seating-add-form{padding:var(--space-md);border:1px solid var(--sand);border-radius:var(--radius-md);background:var(--ivory)}.seating-add-form h4{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.02em;margin:0 0 var(--space-sm) 0;color:var(--ink-soft, #6d635d)}.seating-add-form .form-row{display:flex;gap:6px;align-items:center}.seating-add-form .form-row input[type=text],.seating-canvas-container{flex:1;min-width:0}.seating-canvas-scroll{overflow:auto;border:1px solid var(--sand);border-radius:var(--radius-lg);background:#fff;max-height:calc(100vh - 200px)}.seating-canvas{position:relative;width:1600px;height:1000px;background-image:radial-gradient(circle,var(--sand) 1px,transparent 1px);background-size:40px 40px}#seating-floor-elements{position:absolute;inset:0;z-index:0;pointer-events:none}#seating-floor-elements>*{pointer-events:auto}#seating-tables-grid{position:absolute;inset:0;z-index:1;pointer-events:none}#seating-tables-grid>*{pointer-events:auto}.seating-shape-row{display:flex;gap:var(--space-md);margin-top:var(--space-xs)}.seating-shape-label{display:flex;align-items:center;gap:4px;font-family:var(--font-sans);font-size:.75rem;font-weight:500;color:var(--ink-soft, #6d635d);cursor:pointer}.seating-shape-label input[type=radio]{accent-color:var(--sage-dark);flex:none}.seating-floor-tools{padding:var(--space-md);border:1px solid var(--sand);border-radius:var(--radius-md);background:var(--ivory)}.seating-floor-tools h4{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.02em;margin:0 0 var(--space-sm) 0;color:var(--ink-soft, #6d635d)}.seating-floor-tools select{flex:1;min-width:0;padding:.375rem .5rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.8rem;font-family:var(--font-sans);background:#fff}.round-table-wrapper{position:absolute;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.round-table-controls{display:flex;gap:4px;opacity:0;transition:opacity .2s}.round-table-wrapper:hover .round-table-controls{opacity:1}.round-table{position:relative;border-radius:50%;background:var(--ivory);border:1px solid var(--sand);box-shadow:var(--shadow-card);transition:border-color .2s}.round-table-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;width:60%}.round-table-name{display:block;font-family:var(--font-serif);font-weight:700;font-size:.75rem;color:var(--brutalist-border, #2C2825);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.round-table-count{display:block;font-family:var(--font-sans);font-size:.6875rem;font-weight:500;color:var(--ink-soft, #6d635d);margin-top:2px}.round-table-count.full{color:var(--terracotta, #C07556)}.round-table-seat{position:absolute;top:50%;left:50%;width:var(--seat-size);height:var(--seat-size);margin-left:calc(-.5 * var(--seat-size));margin-top:calc(-.5 * var(--seat-size));border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;transform:rotate(calc(360deg / var(--seat-count) * var(--seat-index))) translateY(calc(-1 * var(--seat-offset))) rotate(calc(-360deg / var(--seat-count) * var(--seat-index)));transition:transform .15s ease,border-color .2s}.round-table-seat.filled{background:#fff;border:2px solid var(--sage);cursor:grab;overflow:hidden}.round-table-seat.filled:active{cursor:grabbing}.round-table-seat.filled.attending{border-color:var(--sage-dark)}.round-table-seat.filled.declined{border-color:var(--warm-gray, #8B8178);opacity:.6}.round-table-seat.filled.pending{border-color:var(--sand)}.seat-name{font-family:var(--font-sans);font-size:.5rem;font-weight:600;line-height:1.15;color:var(--brutalist-border, #2C2825);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding:2px;word-break:break-word}.seat-remove-btn{display:none;position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--terracotta, #C07556);color:#fff;border:none;font-size:10px;line-height:1;cursor:pointer;padding:0;align-items:center;justify-content:center;z-index:2}.round-table-seat.filled:hover .seat-remove-btn{display:flex}.round-table-seat.empty{border:2px dashed var(--sand);background:transparent}.round-table-center[data-drag-table],.rect-table-center[data-drag-table]{pointer-events:auto;cursor:grab}.round-table-center[data-drag-table]:active,.rect-table-center[data-drag-table]:active{cursor:grabbing}.rect-table-wrapper{position:absolute;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.rect-table-wrapper:hover .round-table-controls{opacity:1}.rect-table{position:relative;background:var(--ivory);border:1px solid var(--sand);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);transition:border-color .2s}.rect-table-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;width:60%}.rect-table-name{display:block;font-family:var(--font-serif);font-weight:700;font-size:.75rem;color:var(--brutalist-border, #2C2825);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rect-table-count{display:block;font-family:var(--font-sans);font-size:.6875rem;font-weight:500;color:var(--ink-soft, #6d635d);margin-top:2px}.rect-table-count.full{color:var(--terracotta, #C07556)}.rect-table-seat{position:absolute;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;transition:transform .15s ease,border-color .2s}.rect-table-seat.filled{background:#fff;border:2px solid var(--sage);cursor:grab;overflow:hidden}.rect-table-seat.filled:active{cursor:grabbing}.rect-table-seat.filled.attending{border-color:var(--sage-dark)}.rect-table-seat.filled.declined{border-color:var(--warm-gray, #8B8178);opacity:.6}.rect-table-seat.filled.pending{border-color:var(--sand)}.rect-table-seat.filled:hover .seat-remove-btn{display:flex}.rect-table-seat.empty{border:2px dashed var(--sand);background:transparent}.floor-element{position:absolute;display:flex;align-items:center;justify-content:center;cursor:move;font-family:var(--font-sans);font-size:.6875rem;font-weight:600;color:#00000073;user-select:none;border-radius:var(--radius-sm);transition:box-shadow .2s;z-index:0}.floor-element:hover{box-shadow:0 0 0 2px var(--sage)}.floor-element.selected{box-shadow:0 0 0 2px var(--sage-dark)}.floor-element-delete{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;background:var(--terracotta, #C07556);color:#fff;border:none;font-size:12px;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;z-index:2}.floor-element-resize{position:absolute;bottom:-5px;right:-5px;width:10px;height:10px;border-radius:50%;background:var(--sage-dark);cursor:se-resize;z-index:2}.drop-target-hint .round-table-seat.empty,.drop-target-hint .rect-table-seat.empty{border-color:var(--sage);animation:pulse-border 1.2s ease-in-out infinite}.drop-target-hint.round-table,.drop-target-hint.rect-table{border-color:var(--sage);box-shadow:0 0 0 3px #9caf8833}.drop-target-hover.round-table-seat.empty{border-color:var(--sage-dark)!important;background:#9caf8826;transform:rotate(calc(360deg / var(--seat-count) * var(--seat-index))) translateY(calc(-1 * var(--seat-offset))) rotate(calc(-360deg / var(--seat-count) * var(--seat-index))) scale(1.15)}.drop-target-hover.rect-table-seat.empty{border-color:var(--sage-dark)!important;background:#9caf8826;transform:scale(1.15)}.drop-target-hover.round-table,.drop-target-hover.rect-table{border-color:var(--sage-dark)!important;box-shadow:0 0 0 4px #9caf8859}#seating-unassigned-drop.drop-target-hint{border-color:var(--sage);box-shadow:0 0 0 3px #9caf8833}#seating-unassigned-drop.drop-target-hover{border-color:var(--sage-dark)!important;box-shadow:0 0 0 4px #9caf8859;background:#9caf880d}@keyframes pulse-border{0%,to{border-color:var(--sage)}50%{border-color:var(--sage-dark)}}.round-table-wrapper.table-dragging,.rect-table-wrapper.table-dragging{z-index:10;opacity:.85}.dragging{opacity:.4!important}.seating-guest-chip[draggable=true]{cursor:grab}.seating-guest-chip[draggable=true]:active{cursor:grabbing}.round-table-footer{position:relative;width:100%;max-width:180px}.round-table-footer .seating-assign-btn{font-size:.6875rem;padding:.3rem .6rem}.round-table-footer .seating-assign-dropdown{bottom:100%;left:0;right:0}.seating-empty-table{padding:var(--space-sm) 0;color:var(--ink-soft, #6d635d);font-size:.75rem;font-style:italic}.seating-assign-btn{display:flex;align-items:center;gap:4px;width:100%;padding:.4rem;border:2px dashed var(--sage);border-radius:var(--radius-sm);background:none;color:var(--sage-dark);font-family:var(--font-sans);font-size:.75rem;font-weight:700;cursor:pointer;transition:all .2s;justify-content:center}.seating-assign-btn:hover{background:#9caf881a}.seating-assign-dropdown{position:absolute;bottom:100%;left:var(--space-md);right:var(--space-md);z-index:20;background:var(--cream);border:1px solid var(--sand);border-radius:var(--radius-md);box-shadow:var(--shadow-card);max-height:250px;overflow-y:auto}.seating-assign-dropdown[hidden]{display:none}.seating-assign-search{width:100%;padding:.5rem .75rem;border:none;border-bottom:1px solid var(--sand);border-radius:var(--radius-md) var(--radius-md) 0 0;font-size:.8rem;font-family:var(--font-sans);box-sizing:border-box}.seating-assign-search:focus{outline:none}.seating-assign-list{max-height:200px;overflow-y:auto}.seating-assign-option{display:flex;justify-content:space-between;align-items:center;padding:.4rem .75rem;cursor:pointer;font-size:.8rem;font-family:var(--font-sans);border:none;background:none;width:100%;text-align:left}.seating-assign-option:hover{background:var(--ivory)}.seating-assign-option-party{font-size:.6875rem;color:var(--ink-soft, #6d635d)}.seating-edit-form{display:flex;gap:4px;align-items:center;flex:1}.seating-edit-form input{padding:.3rem .5rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.8rem;font-family:var(--font-sans)}.seating-edit-form input:focus{outline:none;border-color:var(--sage-dark)}.seating-edit-name-input{flex:1;min-width:80px}.seating-edit-capacity-input{width:50px}.seating-capacity-input{max-width:65px}.seating-zoom-fit-btn{margin-top:6px;width:100%}.flights-section h3{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin-bottom:var(--space-md)}.flights-summary{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.flights-stat-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-sm) var(--space-md);background:#fff;border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card);border-top:3px solid var(--sand);min-width:80px}.flights-stat-landed{border-top-color:var(--sage)}.flights-stat-active{border-top-color:#6bb0d4}.flights-stat-scheduled{border-top-color:var(--sand)}.flights-stat-unknown{border-top-color:var(--warm-gray, #8B8178)}.flights-stat-value{font-family:var(--font-sans);font-size:1.25rem;font-weight:700;color:var(--brutalist-border, #2C2825)}.flights-stat-label{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--ink-soft, #6d635d)}.flights-toolbar{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.flights-form{padding:var(--space-md);background:var(--ivory);border:1px solid var(--sand);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.flights-form[hidden]{display:none}.flights-form h4{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.02em;font-weight:700;color:var(--ink-soft, #6d635d);margin-bottom:var(--space-sm)}.flights-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-sm)}.flights-form-grid .field-group{display:flex;flex-direction:column;gap:var(--space-xs)}.flights-form-grid label{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--ink-soft, #6d635d)}.flights-form-grid input,.flights-form-grid select{padding:.5rem .75rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);background:#fff}.flights-form-grid input:focus,.flights-form-grid select:focus{outline:none;border-color:var(--sage-dark)}.flights-form-actions{display:flex;gap:var(--space-sm)}.flights-board{display:flex;flex-direction:column;gap:var(--space-lg)}.flights-date-group h4{font-family:var(--font-serif);font-size:.875rem;font-weight:600;color:var(--brutalist-border, #2C2825);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--sand)}.flights-date-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-sm)}.flight-card{border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-md);background:#fff;display:flex;flex-direction:column;gap:var(--space-xs);transition:box-shadow .2s}.flight-card:hover{box-shadow:var(--shadow-card-hover)}.flight-card-header{display:flex;justify-content:space-between;align-items:center}.flight-card-guest{font-family:var(--font-sans);font-weight:700;font-size:.875rem}.flight-card-party{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d)}.flight-number-badge{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;padding:.2rem .5rem;background:var(--ivory);border:1px solid var(--sand);border-radius:var(--radius-pill)}.flight-card-route{font-family:var(--font-sans);font-size:.8125rem;color:var(--ink-soft, #6d635d)}.flight-card-times{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d)}.flight-status-badge{display:inline-block;padding:.2rem .5rem;font-family:var(--font-sans);font-size:.6875rem;font-weight:600;letter-spacing:.01em;border:none;border-radius:var(--radius-pill)}.flight-status-landed{background:var(--sage);color:#fff}.flight-status-active{background:#6bb0d4;color:#fff}.flight-status-scheduled{background:#d5c8ba4d;color:var(--warm-gray, #8B8178)}.flight-status-cancelled,.flight-status-diverted{background:var(--terracotta, #C07556);color:#fff}.flight-status-unknown{background:#8b81781a;color:var(--warm-gray, #8B8178)}.flight-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-xs)}.flight-card-actions{display:flex;gap:4px}.flight-card-checked{font-family:var(--font-sans);font-size:.6875rem;color:var(--ink-soft, #6d635d)}.flights-number-input{text-transform:uppercase}.flight-card-notes{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d);font-style:italic;padding:var(--space-xs) 0;border-top:1px dashed var(--sand)}.sms-modal-overlay{position:fixed;inset:0;z-index:900;background:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);animation:backdropFadeIn .2s ease}.sms-modal-overlay[hidden]{display:none}.sms-modal{background:var(--cream);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card-hover);max-width:500px;width:100%;animation:modalScaleIn .2s var(--ease-spring, ease);overflow:hidden}.sms-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);background:var(--ivory);border-bottom:1px solid var(--sand)}.sms-modal-header h3{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin:0}.sms-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--ink-soft, #6d635d);line-height:1;padding:0}.sms-modal-close:hover{color:var(--brutalist-border, #2C2825)}.sms-modal-body{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.sms-modal-body .field-group{display:flex;flex-direction:column;gap:var(--space-xs)}.sms-modal-body label{font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.5px;color:var(--ink-soft, #6d635d)}.sms-modal-body textarea{padding:.625rem .75rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);resize:vertical;background:#fff;transition:border-color .2s,box-shadow .2s}.sms-modal-body textarea:focus{outline:none;border-color:var(--sage-dark);box-shadow:0 0 0 3px #9caf8826}.sms-modal-body select{padding:.625rem .75rem;border:1px solid var(--sand);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);background:#fff;transition:border-color .2s,box-shadow .2s}.sms-modal-body select:focus{outline:none;border-color:var(--sage-dark);box-shadow:0 0 0 3px #9caf8826}.sms-char-count{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-soft, #6d635d);text-align:right}.sms-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--sand)}.confirm-overlay{position:fixed;inset:0;z-index:950;background:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);animation:backdropFadeIn .2s ease}.confirm-dialog{background:var(--cream);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-card-hover);max-width:420px;width:100%;animation:modalScaleIn .2s var(--ease-spring, ease);overflow:hidden}.confirm-body{padding:var(--space-lg)}.confirm-title{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin-bottom:var(--space-sm)}.confirm-message{font-family:var(--font-sans);font-size:.875rem;color:var(--ink-soft, #6d635d);line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--sand)}#toast-container{position:fixed;bottom:var(--space-lg);right:var(--space-lg);z-index:2000;display:flex;flex-direction:column-reverse;gap:var(--space-sm);pointer-events:none;max-width:380px}.toast{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);background:var(--cream);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-card);border-left:4px solid var(--sand);pointer-events:auto;animation:toastSlideIn .3s var(--ease-spring, ease);font-family:var(--font-sans);font-size:.8125rem;line-height:1.4;color:var(--brutalist-border, #2C2825)}.toast.removing{animation:toastSlideOut .25s ease forwards}.toast-success{border-left-color:var(--sage-dark)}.toast-error{border-left-color:var(--terracotta, #C07556)}.toast-info{border-left-color:var(--sand)}.toast-warning{border-left-color:var(--gold, #C9A24A)}.toast-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1}.toast-success .toast-icon{color:var(--sage-dark)}.toast-error .toast-icon{color:var(--terracotta, #C07556)}.toast-info .toast-icon{color:var(--warm-gray, #8B8178)}.toast-warning .toast-icon{color:var(--gold, #C9A24A)}.toast-content{flex:1;min-width:0}.toast-message{word-break:break-word}.toast-action{margin-top:var(--space-xs);background:none;border:none;font-size:.75rem;font-weight:700;color:var(--sage-dark);cursor:pointer;padding:0;font-family:var(--font-sans);letter-spacing:.01em}.toast-action:hover{text-decoration:underline}.toast-close{flex-shrink:0;background:none;border:none;color:var(--ink-soft, #6d635d);cursor:pointer;font-size:1.1rem;line-height:1;padding:0}.toast-close:hover{color:var(--brutalist-border, #2C2825)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0);max-height:200px;margin-bottom:0}to{opacity:0;transform:translate(100%);max-height:0;margin-bottom:calc(-1 * var(--space-sm))}}.skeleton{background:linear-gradient(90deg,var(--sand) 25%,var(--ivory) 50%,var(--sand) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border:none;border-radius:var(--radius-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-stat-card{height:90px}.skeleton-party-card{height:120px;margin-bottom:var(--space-md)}.skeleton-content{height:200px}.skeleton-photo{aspect-ratio:1}.skeleton-block{height:16px;margin-bottom:var(--space-xs);border-radius:var(--radius-sm)}.skeleton-block.wide{width:80%}.skeleton-block.medium{width:60%}.skeleton-block.narrow{width:40%}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--sand);border-top-color:var(--sage-dark);border-radius:50%;animation:spin .6s linear infinite}.spinner-sm{width:12px;height:12px;border-width:1.5px}.spinner-lg{width:24px;height:24px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.load-error{text-align:center;padding:var(--space-xl);color:var(--ink-soft, #6d635d)}.load-error-message{font-family:var(--font-sans);font-size:.8125rem;margin-bottom:var(--space-md)}.load-error .btn{margin:0 auto}@media(max-width:768px){.admin-sidebar{position:fixed;left:-260px;top:0;width:260px;min-width:260px;height:100vh;z-index:150;transition:left .2s var(--ease-spring, ease)}.admin-sidebar.open{left:0}.sidebar-hamburger{display:flex}.admin-content{padding:var(--space-md);padding-top:calc(var(--space-md) + 50px)}.admin-header{flex-direction:column;gap:var(--space-sm);text-align:center}.header-actions{flex-wrap:wrap;justify-content:center}.guest-row{grid-template-columns:1fr}.guest-display{grid-template-columns:1fr;gap:var(--space-sm)}.guest-secondary{order:2}.guest-row-actions{order:1;justify-content:flex-end}.guest-edit-grid{grid-template-columns:1fr}.guestlist-filter-bar{flex-direction:column;align-items:stretch}.guestlist-rsvp-filters{flex-wrap:wrap}.guestlist-summary{margin-left:0;text-align:center}.party-overflow-menu{right:auto;left:0}.form-row{flex-direction:column}.party-header{flex-direction:column;gap:var(--space-sm);align-items:flex-start}.admin-photos-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.seating-layout{flex-direction:column}.seating-sidebar{width:100%;min-width:0;position:static;max-height:none}.seating-canvas-scroll{max-height:60vh}.seating-toolbar,.seating-unassigned-header{flex-direction:column;align-items:flex-start}.seating-search-input{width:100%}.round-table-controls{opacity:1}.seating-guest-chip[draggable=true]{cursor:default}.flights-form-grid,.flights-date-cards{grid-template-columns:1fr}.flights-summary{justify-content:center}.qr-generator{grid-template-columns:1fr}.qr-presets-grid{grid-template-columns:repeat(2,1fr)}.qr-preview-section{position:static}.theme-control-row{grid-template-columns:1fr}.theme-color-picker{width:100%;max-width:120px}.typography-role-row,.content-editor-layout{grid-template-columns:1fr}.content-sidebar{flex-direction:row;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:var(--space-xs);padding-bottom:var(--space-xs)}.content-sidebar-group{display:flex;gap:var(--space-xs);margin-bottom:0;flex-shrink:0}.content-sidebar-label{display:none}.content-sidebar-btn{white-space:nowrap;padding:.4rem .75rem;font-size:.6875rem}#toast-container{left:var(--space-md);right:var(--space-md);max-width:none}}@media(max-width:480px){.content-sidebar-btn{min-height:44px}.admin-photos-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.stat-grid{grid-template-columns:repeat(2,1fr)}}
