:root{--wedding-ink:#5c4a52;--wedding-pink:#c98b9a;--wedding-pink-deep:#a86b7a;--wedding-pink-soft:#e8c4cc;--wedding-blush:#fdf9fa;--wedding-white:#fff;--wedding-border:#f0e4e8;--wedding-accent:#d4a5b5}body{background:var(--wedding-blush);color:var(--wedding-ink);min-height:100vh;font-family:Segoe UI,system-ui,-apple-system,sans-serif}.app-shell{min-height:100vh}.app-header-sticky{z-index:1030;background:var(--wedding-white);position:sticky;top:0}.app-header-sticky .navbar-wedding{border-bottom:2px solid var(--wedding-pink-soft);box-shadow:0 1px 8px #a86b7a14}.app-header-inner{max-width:1200px}.app-main{max-width:1200px;padding-top:1.5rem;padding-bottom:2rem}.app-header-actions{border-left:1px solid var(--wedding-border);margin-left:.25rem;padding-left:1rem}.nav-account-btn{border:1px solid var(--wedding-border);background:var(--wedding-blush);color:var(--wedding-ink);border-radius:999px;align-items:center;gap:.5rem;padding:.25rem .6rem .25rem .25rem;display:inline-flex}.nav-account-btn:hover,.nav-account-btn:focus{border-color:var(--wedding-pink-soft);background:var(--wedding-white);color:var(--wedding-pink-deep)}.nav-account-avatar{background:var(--wedding-pink-deep);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.8rem;font-weight:600;display:inline-flex}.nav-tools-menu .dropdown-menu{min-width:12rem}.navbar-wedding{background:var(--wedding-white)}.navbar-wedding .navbar-brand{letter-spacing:.03em;font-weight:500;color:var(--wedding-pink-deep)!important}.navbar-wedding .nav-link{color:var(--wedding-ink)!important}.navbar-wedding .nav-link.active,.navbar-wedding .nav-link:hover{color:var(--wedding-pink-deep)!important}.navbar-wedding .btn-outline-light{color:var(--wedding-pink-deep);border-color:var(--wedding-pink-soft)}.navbar-wedding .btn-outline-light:hover{background:var(--wedding-blush);color:var(--wedding-pink-deep);border-color:var(--wedding-pink)}.card-wedding{border:1px solid var(--wedding-border);background:var(--wedding-white);border-radius:.75rem;box-shadow:0 2px 16px #a86b7a12}.btn-wedding{background:var(--wedding-pink-deep);border-color:var(--wedding-pink-deep);color:#fff}.btn-wedding:hover{color:#fff;background:#8f5a68;border-color:#8f5a68}.page-header h1{letter-spacing:.02em;color:var(--wedding-pink-deep);font-weight:300}.stat-pill{background:var(--wedding-white);border:1px solid var(--wedding-border);color:var(--wedding-ink);border-radius:999px;padding:.35rem .9rem;font-size:.875rem}.stat-pill:hover{border-color:var(--wedding-pink-soft);color:var(--wedding-pink-deep)}.guest-list-item--action{border-left:3px solid var(--wedding-pink-deep);padding-left:calc(1.25rem - 2px)}.guest-list-item--action:hover,.guest-list-item--action:focus-visible{background:#fdf5f7}.guest-list-item--rsvp{border-left:3px solid #e8d4a8;padding-left:calc(1.25rem - 2px)}.guest-list-item--rsvp:hover,.guest-list-item--rsvp:focus-visible{background:#fffbf5}.guest-list-item--contact{border-left:3px solid #b8c9d9;padding-left:calc(1.25rem - 2px)}.guest-list-item--contact:hover,.guest-list-item--contact:focus-visible{background:#f7fafc}.guest-filter-section{flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;display:flex}.guest-filter-label{text-transform:uppercase;letter-spacing:.05em;color:var(--wedding-pink-deep);min-width:4.5rem;font-size:.75rem;font-weight:600}.guest-list-filter--soft.active{background:#c9a86a;border-color:#c9a86a}.guest-detail-action-card{border-left:3px solid var(--wedding-pink-deep)}.guest-detail-rsvp-card{border-left:3px solid #e8d4a8}.list-row-action--soft{color:#9a7b42}.row-legend-swatch{vertical-align:middle;border-radius:1px;width:3px;height:1rem;display:inline-block}.row-legend-swatch--action{background:var(--wedding-pink-deep)}.row-legend-swatch--contact{background:#b8c9d9}.row-legend-swatch--rsvp{background:#e8d4a8}.guest-list-filters{flex-wrap:wrap;gap:.5rem;display:flex}.guest-list-filter{border:1px solid var(--wedding-border);background:var(--wedding-white);color:var(--wedding-ink);cursor:pointer;border-radius:999px;padding:.35rem .85rem;font-size:.85rem;font-weight:500;transition:background .15s,border-color .15s}.guest-list-filter:hover{border-color:var(--wedding-pink-soft)}.guest-list-filter.active{color:#fff;background:#5b8fc9;border-color:#4a7eb5}.guest-list-filter-count{background:#ffffff40;border-radius:999px;min-width:1.25rem;margin-left:.35rem;padding:0 .35rem;font-size:.75rem;display:inline-block}.guest-list-filter.active .guest-list-filter-count{background:#ffffff4d}.guest-filters-fieldset{border:0;margin:0;padding:0}.guest-filters-fieldset legend{float:left;width:100%}.guest-filter-summary{font-style:italic}.guest-editor-body--editable{padding-bottom:6rem}.guest-save-bar{z-index:1025;background:var(--wedding-white);border-top:2px solid var(--wedding-pink-soft);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 24px #a86b7a1f}.guest-save-bar--dirty{border-top-color:var(--wedding-pink-deep)}.guest-save-bar--saved{border-top-color:#8fbc9a;box-shadow:0 -4px 24px #3d6b471a}.guest-save-bar--saved .guest-save-bar-text strong{color:#3d6b47}.guest-save-bar-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;max-width:1200px;margin:0 auto;padding:.85rem 1rem;display:flex}.guest-save-bar-text{flex-direction:column;gap:.15rem;font-size:.9rem;display:flex}.guest-save-bar-text strong{color:var(--wedding-pink-deep);font-size:1rem}.guest-save-bar-hint{color:var(--wedding-ink);opacity:.85;font-size:.85rem}.guest-save-bar-unsaved{color:var(--wedding-pink-deep);font-size:.85rem;font-weight:600}.guest-save-bar-message{color:#3d6b47;font-size:.85rem}.guest-save-bar-btn{white-space:nowrap;min-width:11rem}.activity-timeline{margin:0;padding:0;list-style:none}.activity-timeline-item{border-bottom:1px solid var(--wedding-border);gap:.75rem;padding:.75rem 0;display:flex}.activity-timeline-item:last-child{border-bottom:0}.activity-timeline-icon{background:var(--wedding-blush);width:1.75rem;height:1.75rem;color:var(--wedding-pink-deep);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:flex}.activity-timeline-summary{font-weight:500}.activity-timeline-details{color:var(--wedding-ink);background:var(--wedding-blush);white-space:pre-wrap;border:0;border-radius:.35rem;margin:.35rem 0 0;padding:.5rem .65rem;font-family:inherit;font-size:.8rem}.activity-timeline-meta{color:#888;margin-top:.2rem;font-size:.8rem}.activity-timeline-meta a{color:var(--wedding-pink-deep)}.activity-timeline-expand{margin-top:.25rem;font-size:.8rem}.activity-timeline-import-list{max-height:240px;margin:0;padding:.35rem 0 0;list-style:none;overflow-y:auto}.activity-timeline-import-list li{padding:.15rem 0}.guide-simple{flex-direction:column;gap:1rem;max-width:40rem;display:flex}.home-header .stat-pill strong{color:var(--wedding-pink-deep);font-weight:600}.stat-pill-note{border-style:dashed;font-size:.82rem}.home-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--wedding-pink-deep);margin-bottom:.75rem;font-size:.75rem;font-weight:600}.home-event-card-name{text-transform:uppercase;letter-spacing:.05em;color:var(--wedding-pink-deep);margin-bottom:.75rem;font-size:.8rem;font-weight:600}.home-event-card-stats{gap:1.5rem;display:flex}.home-event-card-stat{flex-direction:column;gap:.1rem;display:flex}.home-event-card-value{color:var(--wedding-ink);font-size:1.75rem;font-weight:300;line-height:1.1}.home-event-card-label{color:var(--wedding-ink);opacity:.65;font-size:.8rem}.home-nav-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (min-width:576px){.home-nav-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:992px){.home-nav-grid{grid-template-columns:1.4fr 1fr 1fr}}.home-nav-guests{border-radius:.75rem;flex-direction:column;gap:0;min-height:100%;display:flex;overflow:hidden;box-shadow:0 2px 16px #a86b7a12}@media (min-width:576px){.home-nav-guests{grid-column:span 2}}@media (min-width:992px){.home-nav-guests{grid-column:span 1}}.summary-breakdown-header{border-top:1px solid var(--wedding-border);padding-top:1.25rem}.summary-mode-toggle{flex-shrink:0}.summary-event-stat--active strong{color:var(--wedding-pink-deep);font-size:1.05rem}.summary-event-card--attending .summary-event-stat--active .overview-stat-attending{font-weight:600}.guide-grid{gap:1.25rem;display:grid}@media (min-width:768px){.guide-grid{grid-template-columns:repeat(2,1fr)}}.guide-card{padding:1.5rem}.guide-card h2{color:var(--wedding-pink-deep);margin-bottom:.75rem;font-size:1.1rem;font-weight:500}.guide-card p,.guide-card li{font-size:.95rem;line-height:1.55}.guide-card-accent{background:linear-gradient(135deg, #fff 0%, var(--wedding-blush) 100%)}.guide-dl dt{color:var(--wedding-pink-deep);margin-top:.5rem;font-weight:600}.guide-dl dd{margin-bottom:.35rem;margin-left:0}.guide-links{padding:0;list-style:none}.guide-links a{color:var(--wedding-pink-deep);font-weight:500;text-decoration:none}.guide-links a:hover{text-decoration:underline}.lead-guide{font-size:1.05rem}.nav-attention-count{background:var(--wedding-pink-deep);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;padding:0 .4rem;font-size:.7rem;font-weight:600;line-height:1;display:inline-flex}.guest-list-panel input[type=search]{border:1px solid var(--wedding-border);border-radius:.5rem;padding:.85rem 1rem;font-size:1.1rem}.guest-list-panel input[type=search]:focus{border-color:var(--wedding-pink);box-shadow:0 0 0 .2rem #c98b9a33}.table-wedding thead th{background:var(--wedding-pink-deep);color:#fff;vertical-align:middle;border:none;font-weight:500}.summary-table-title{color:var(--wedding-pink-deep);border-bottom:1px solid var(--wedding-border);background:var(--wedding-blush);font-size:.95rem;font-weight:500}.summary-table{--bs-table-bg:transparent;margin-bottom:0}.summary-table thead th{background:var(--wedding-pink-deep);color:#fff;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;border:none;padding:.75rem 1rem;font-size:.8rem;font-weight:500}.summary-table thead th:first-child{text-align:left}.summary-table thead th:not(:first-child){text-align:right;white-space:nowrap}.summary-table tbody th,.summary-table tbody td{vertical-align:middle;border-color:var(--wedding-border);padding:.7rem 1rem}.summary-table tbody th{color:var(--wedding-ink);text-align:left;font-weight:500}.summary-table tbody td{text-align:right}.summary-table tbody tr:nth-child(2n){background:#fdf9facc}.summary-table-total th,.summary-table-total td{color:var(--wedding-pink-deep);border-top:2px solid var(--wedding-pink-soft);font-weight:600;background:var(--wedding-blush)!important}.tabular-nums{font-variant-numeric:tabular-nums}.readonly-banner{border-bottom:1px solid var(--wedding-pink-soft);color:var(--wedding-pink-deep);background:#fdf0f3;font-size:.875rem}.guest-list .list-group-item{border-color:var(--wedding-border);color:var(--wedding-ink);padding:1rem 1.25rem}.guest-list .list-group-item.guest-list-item:hover{background:var(--wedding-blush)}.guest-list .list-group-item-action{color:var(--wedding-ink);text-decoration:none;transition:background .15s}.guest-list .list-group-item-action:hover,.guest-list .list-group-item-action:focus-visible{background:var(--wedding-blush);color:var(--wedding-ink);border-color:var(--wedding-border);z-index:1}.guest-list .list-group-item-action:active{color:var(--wedding-ink);background:#fdf0f3}.guest-list-item:hover .guest-list-title,.guest-list-item:focus-visible .guest-list-title{color:var(--wedding-pink-deep)}.guest-list-subtitle{color:var(--wedding-ink);opacity:.7;margin-top:.15rem}.guest-list-trailing{flex-direction:column;align-items:flex-end;gap:.35rem;display:flex}.list-row-action{color:var(--wedding-pink-deep);white-space:nowrap;font-size:.8rem;font-weight:500}.guest-list-item:hover .list-row-action,.guest-list-item:focus-visible .list-row-action{color:#8f5a68}.table-wedding.table-hover>tbody>tr:hover>*{--bs-table-hover-bg:var(--wedding-blush);--bs-table-hover-color:var(--wedding-ink);box-shadow:none}.table-wedding a{color:var(--wedding-ink);text-decoration:none}.table-wedding a:hover{color:var(--wedding-pink-deep)}.form-control:focus,.form-select:focus{border-color:var(--wedding-pink);box-shadow:0 0 0 .2rem #c98b9a33}.badge-affiliation,.badge-category,.badge-attendance{border-radius:999px;padding:.3em .65em;font-size:.72rem;font-weight:500;line-height:1.3}.badge-affiliation-joe{color:#3d5f7a;background:#e3edf8;border:1px solid #b8d4eb}.badge-affiliation-juli{color:#9a4a5c;background:#fce4ec;border:1px solid #efb8c8}.badge-affiliation-none{color:#7a6a70;border:1px solid var(--wedding-border);background:#f5f0f2}.badge-category-groomsmen{color:#3d5f7a;background:#e3edf8;border:1px solid #b8d4eb}.badge-category-bridesmaids{color:#9a4a5c;background:#fce4ec;border:1px solid #efb8c8}.badge-category-family{color:#8a5a42;background:#fff0e8;border:1px solid #f0d4c4}.badge-category-friend{color:#3d6b55;background:#e8f5f0;border:1px solid #c4e8d4}.badge-category-none{color:#7a6a70;border:1px solid var(--wedding-border);background:#f5f0f2}.badge-category-plus-one{color:var(--wedding-pink-deep);border:1px solid var(--wedding-pink-soft);background:#fdf4f8}.badge-attendance-unknown{color:#8a7040;background:#fff8e8;border:1px solid #f0e0b8}.badge-attendance-yes{color:#2d6b42;background:#e8f5ec;border:1px solid #b8e0c8}.badge-attendance-no{color:#8f3d4a;background:#fce8ec;border:1px solid #f0c0c8}.event-table thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--wedding-pink-deep);background:var(--wedding-blush);border-bottom:1px solid var(--wedding-border);font-size:.75rem}.event-table tbody td{border-color:var(--wedding-border)}.event-row-muted{opacity:.55}.attendance-toggle .btn{border-color:var(--wedding-border);color:var(--wedding-ink);background:#fff;font-size:.75rem}.attendance-toggle .btn.active[data-status=unknown]{color:#8a7040;background:#fff8e8;border-color:#f0e0b8}.attendance-toggle .btn.active[data-status=yes]{color:#2d6b42;background:#e8f5ec;border-color:#b8e0c8}.attendance-toggle .btn.active[data-status=no]{color:#8f3d4a;background:#fce8ec;border-color:#f0c0c8}.overview-stat{border-radius:999px;padding:.25rem .6rem;font-size:.8rem;font-weight:500}.overview-stat-invited{color:#6b5080;background:#f5eef8}.overview-stat-attending{color:#2d6b42;background:#e8f5ec}.overview-stat-pending{color:#8a7040;background:#fff8e8}.overview-stat-declined{color:#8f3d4a;background:#fce8ec}.home-action-card{border:1px solid var(--wedding-border);background:var(--wedding-white);color:inherit;border-radius:.75rem;flex-direction:column;gap:.35rem;padding:1.25rem 1.35rem;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative;box-shadow:0 2px 16px #a86b7a12}.home-action-card:hover{border-color:var(--wedding-pink-soft);color:inherit;transform:translateY(-1px);box-shadow:0 4px 20px #a86b7a1f}.home-action-card-alert{border-color:var(--wedding-pink-soft);background:#fffbfc}.home-action-card-quiet{cursor:default;box-shadow:none;background:#fff9;border-style:dashed}.home-nav-guests .home-action-card-primary{box-shadow:none;border-radius:0;flex:1}.home-action-card-primary{background:linear-gradient(145deg, var(--wedding-pink-deep) 0%, #c98b9a 100%);color:#fff;border:none}.home-action-card-primary:hover{color:#fff;box-shadow:0 6px 24px #a86b7a47}.home-action-card-primary .home-action-card-desc{color:#ffffffe0}.home-action-card-title{color:var(--wedding-pink-deep);font-size:1.15rem;font-weight:500}.home-action-card-primary .home-action-card-title{color:#fff;font-size:1.25rem}.home-action-card-desc{font-size:.9rem;line-height:1.4}.home-action-card-badge{background:var(--wedding-pink-deep);color:#fff;text-align:center;border-radius:999px;min-width:1.75rem;padding:.2rem .55rem;font-size:.85rem;font-weight:600;position:absolute;top:1rem;right:1.1rem}.home-action-card-addon{text-align:center;color:var(--wedding-pink-deep);background:var(--wedding-white);border-top:1px solid var(--wedding-border);padding:.65rem 1.35rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:block}.home-action-card-addon:hover{background:var(--wedding-blush);color:#8f5a68}.navbar-wedding .navbar-toggler{border-color:var(--wedding-border)}.color-legend{background:var(--wedding-white);border:1px solid var(--wedding-border);border-radius:.5rem;padding:.75rem 1rem}.summary-table tbody th{vertical-align:middle}
