@font-face{font-family:Manrope;src:url('/fonts/manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Editorial;src:url('/fonts/editorial-medium.woff2') format('woff2');font-weight:500;font-display:swap}
:root{--paper:#f6f3ec;--card:#fff;--ink:#141c33;--muted:#5d6579;--line:#e3ddd0;--accent:#141c33;--navy:#0c1330;--gold:#e8cb91;--gold-deep:#7d5f24;--yes:#17623f;--yes-bg:#e3f3ea;--no:#8a3324;--no-bg:#f9e8e3;--warn-bg:#fbf1d9}
body{background:var(--paper);font-family:Manrope,system-ui,sans-serif;font-size:15px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
h1,h2,.brand{font-family:Editorial,Georgia,serif;font-weight:500}
button{border-radius:8px;font-weight:600;background:#fff}
button:disabled{opacity:.5;cursor:default}
input,select,textarea{border-radius:8px;background:#fff}
.card,.editing section{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}
/* Shell */
.masthead{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:28px;padding:0 max(24px,calc((100vw - 1360px)/2));min-height:64px;background:var(--navy);color:#f6efe1;border:0}
.brand{font-size:22px;white-space:nowrap;color:#f6efe1;display:inline}
.brand em{font-style:normal;color:var(--gold)}
.admin-tabs{display:flex;gap:4px;align-self:stretch;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.admin-tabs button{background:none;border:0;border-bottom:3px solid transparent;border-radius:0;color:#c8cfe0;padding:0 14px;white-space:nowrap;min-height:64px}
.admin-tabs button:hover{color:#fff}
.admin-tabs button[aria-selected=true]{color:#fff;border-bottom-color:var(--gold)}
.admin-tabs button:focus-visible,.masthead a:focus-visible,.masthead>button:focus-visible{outline-color:var(--gold);outline-offset:-3px}
.masthead>button{background:none;color:#f6efe1;border:1px solid #ffffff40;padding:7px 14px;white-space:nowrap}
.masthead>button:hover{border-color:var(--gold)}
main{max-width:1408px;padding:28px 24px 64px}
[role=tabpanel]:focus-visible{outline:none}
.panel-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px}
.panel-heading h1{font-size:38px;line-height:1.1}
.panel-heading p{margin:6px 0 0;color:var(--muted)}
.panel-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.panel-actions label{margin:0;color:var(--muted);font-size:13px}
.panel-actions select{margin-top:4px;min-height:44px;min-width:230px;color:var(--ink);font-weight:600;font-size:15px}
.panel-actions button{min-height:44px}
/* RSVP summary */
#rsvp-status{font-size:14px}
.rsvp-stats{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:12px;margin-bottom:16px}
.rsvp-stats>div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.rsvp-stats strong{display:block;font:500 40px/1.15 Editorial,Georgia,serif;font-feature-settings:'lnum';color:var(--ink);margin-bottom:2px}
.rsvp-stats span{font-size:14px;color:var(--muted)}
.rsvp-stats .stat-hero{background:var(--navy);border-color:var(--navy)}
.rsvp-stats .stat-hero strong{color:var(--gold)}
.rsvp-stats .stat-hero span{color:#d8def0}
.rsvp-alert{margin:0 0 16px;padding:12px 16px;border-radius:10px;background:var(--warn-bg);font-size:14px}
.rsvp-alert:empty{display:none}
.rsvp-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.rsvp-side{display:grid;gap:16px;min-width:0}
.rsvp-side h2{font-size:20px;color:var(--ink);margin:0 0 10px}
/* Guest list */
.rsvp-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(150px,1fr);gap:12px;margin:0 0 14px}
.rsvp-filters label{margin:0;color:var(--muted);font-size:13px}
.rsvp-filters input,.rsvp-filters select{margin-top:4px;min-height:44px;color:var(--ink);font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border-radius:999px;padding:7px 14px;font-size:14px;min-height:36px;border-color:var(--line);color:var(--muted)}
.chip[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
#rsvp-result-count{margin:12px 0 4px}
#rsvp-list{overflow-wrap:anywhere}
.rsvp-table{width:100%;border-collapse:collapse}
.rsvp-table th{text-align:left;font-size:12.5px;font-weight:600;color:var(--muted);padding:10px 16px 10px 0;border-bottom:1px solid var(--line);white-space:nowrap}
.rsvp-table td{padding:13px 16px 13px 0;border-bottom:1px solid #efeadf;vertical-align:middle;font-size:14px}
.rsvp-table td:not([data-label=Guest]){white-space:nowrap}
.rsvp-table tr:last-child td{border-bottom:0}
.rsvp-table td strong{display:block;font-size:15px;font-weight:600}
.rsvp-row.is-excluded td{color:var(--muted)}
.rsvp-table .rsvp-action{text-align:right;padding-right:0;white-space:nowrap}
.link-button{background:none;border:0;padding:6px 0;color:var(--gold-deep);font-size:13.5px;text-decoration:underline;text-underline-offset:3px}
.status{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap}
.status-attending{background:var(--yes-bg);color:var(--yes)}
.status-declined{background:var(--no-bg);color:var(--no)}
.tag{display:inline-block;margin-top:4px;padding:1px 8px;border-radius:6px;background:#eeeae0;color:var(--muted);font-size:12px;font-weight:600}
.tag-warn{background:var(--warn-bg);color:#6f5310}
.rsvp-empty{padding:44px 16px;text-align:center;color:var(--muted);margin:0}
/* Side cards */
.breakdown-row{display:grid;grid-template-columns:1fr auto;gap:0 12px;padding:10px 0;border-top:1px solid #efeadf}
.breakdown-row:first-child{border-top:0;padding-top:0}
.breakdown-row strong{font-weight:600}
.breakdown-row small{grid-column:1/-1;color:var(--muted);font-size:13px}
.card-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.rsvp-side .card-heading h2{margin:0}
.card-heading select{width:auto;padding:6px 8px;font-size:13px}
.rsvp-timeline{overflow-x:auto}
.rsvp-timeline table{width:100%;border-collapse:collapse;font-size:13.5px}
.rsvp-timeline th,.rsvp-timeline td{text-align:right;padding:8px 0 8px 10px;border-bottom:1px solid #efeadf;white-space:nowrap}
.rsvp-timeline th{font-weight:600;color:var(--muted);font-size:12.5px}
.rsvp-timeline th:first-child,.rsvp-timeline td:first-child{text-align:left;padding-left:0}
.rsvp-timeline tr:last-child td{border-bottom:0}
.rsvp-timeline .hint{margin:0}
details.card{margin:0;padding:16px 20px;border-top:1px solid var(--line)}
details.card summary{font:600 14px Manrope,system-ui,sans-serif;margin:0}
details.card ul{margin:10px 0 0;padding-left:18px}
/* Guest links */
.link-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;margin-bottom:16px}
.link-group{margin:0}
.link-group h2{font-size:20px;color:var(--ink);margin:0 0 6px}
.link-group .link-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:12px 0;border-top:1px solid #efeadf}
.link-group h2+.link-row{border-top:0}
.link-group .link-row strong{font-weight:600;font-size:15px}
.link-group .link-row a{font-size:14px;white-space:nowrap}
.link-group .link-row button{padding:7px 12px;font-size:13.5px;min-width:94px}
/* Studio */
#panel-studio h2{color:var(--ink);font-size:22px}
#panel-studio h2 span{margin-left:4px}
.design-option{background:#fff;border-radius:12px}
.primary{background:var(--navy);border-color:var(--navy)}
.source-note{background:var(--warn-bg);border-left-color:#c7a567;border-radius:0 8px 8px 0}
@media(max-width:1100px){.rsvp-layout{grid-template-columns:1fr}.rsvp-side{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}.link-groups{grid-template-columns:1fr}}
@media(max-width:760px){
.masthead{flex-wrap:wrap;gap:0 12px;padding:10px 16px 0;justify-content:space-between}
.brand{font-size:19px}
.admin-tabs{order:3;flex:0 0 100%;margin-top:4px}
.admin-tabs button{min-height:46px;padding:0 12px}
.masthead>button{padding:5px 10px;font-size:13px}
main{padding:20px 16px 48px}
.panel-heading h1{font-size:32px}
.panel-actions{width:100%}
.panel-actions label{flex:1 1 100%}
.panel-actions select{width:100%}
.panel-actions button{flex:1}
.rsvp-stats{grid-template-columns:repeat(3,1fr);gap:8px}
.rsvp-stats .stat-hero{grid-column:1/-1}
.rsvp-stats>div{padding:12px 14px}
.rsvp-stats strong{font-size:34px}
.rsvp-stats span{font-size:13px}
.rsvp-stats .stat-hero strong{font-size:44px}
.rsvp-filters{grid-template-columns:1fr}
.card{padding:16px}
.rsvp-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.rsvp-table,.rsvp-table tbody,.rsvp-table tr,.rsvp-table td{display:block;width:100%}
.rsvp-table tr{padding:14px 0;border-bottom:1px solid #efeadf}
.rsvp-table tr:last-child{border-bottom:0}
.rsvp-table td{display:flex;justify-content:space-between;gap:16px;padding:3px 0;border:0;text-align:right}
.rsvp-table td[data-label]::before{content:attr(data-label);color:var(--muted);font-size:13px;text-align:left;flex:none}
.rsvp-table td[data-label=Guest]{display:block;text-align:left;margin-bottom:4px}
.rsvp-table td[data-label=Guest]::before{content:none}
.rsvp-table td.rsvp-action{display:block;text-align:left;margin-top:4px}
}
