:root{--paper:#f5f3ee;--ink:#302e2a;--muted:#76746b;--olive:#5e6650;--wine:#703846;--line:#e3e0d7;--white:#fffefa}@media (max-width:700px){.admin-layout .sidebar nav{flex-wrap:wrap}.admin-layout button,.admin-layout .button,.admin-layout select,.admin-layout .toggle{min-height:44px}.admin-layout .row-control-line button{height:auto;min-height:44px}.admin-layout .invitation-row-controls .row-control-line input{height:auto;min-height:44px;font-size:16px}.admin-layout input:not([type=checkbox]):not([type=radio]),.admin-layout textarea,.admin-layout select{font-size:16px}.admin-layout .attendance-bar{height:44px}.login-shell input,.invitation-shell input:not([type=radio]):not([type=checkbox]),.invitation-shell textarea{font-size:16px}.login-shell button,.invitation-shell button{min-height:44px}}.login-shell a{color:var(--wine);text-underline-offset:3px}.album-delivery{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:850px;margin:22px 0;padding:22px 0}.album-delivery h3{color:var(--wine);margin:26px 0 8px;font-size:20px}.album-downloads{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.album-delivery .toggle{align-items:center;gap:10px;margin:16px 0;display:flex}.album-delivery .toggle input{width:auto;accent-color:var(--wine)}.album-delivery label{display:block}.album-delivery .gallery-share-url{width:100%;margin:8px 0 14px;display:block}.album-delivery .actions{flex-wrap:wrap;align-items:center}.admin-layout .message-preview,.admin-layout .audit-details{white-space:pre-wrap;overflow-wrap:anywhere}.admin-layout .toolbar .toggle{align-items:center;gap:8px;font-size:12px;display:flex}.admin-layout .toolbar .toggle input{width:auto}.admin-layout .settings-form fieldset{border:0;min-width:0;margin:0;padding:0}@media (max-width:700px){.admin-layout .section-heading{flex-wrap:wrap;align-items:flex-start;gap:12px}.admin-layout .table-scroll{overflow:visible}.admin-layout .invitations-table{width:100%;min-width:0;display:block}.admin-layout .invitations-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.admin-layout .invitations-table tbody{display:block}.admin-layout .invitations-table tbody tr{border-radius:14px;margin:12px 0;padding:12px;display:block}.admin-layout .invitations-table td{overflow-wrap:anywhere;border:0;width:100%;padding:8px 0;display:block}.admin-layout .invitations-table td:before{content:attr(data-label);color:#645d58;margin-bottom:4px;font-size:11px;display:block}.admin-layout .row-control-line{flex-wrap:wrap}.admin-layout .invitation-row-controls .row-control-line input{width:100%;min-width:0}.admin-layout .drawer{width:100%;max-width:100%}}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.55}h1,h2,.brand,.monogram{font-family:Georgia,Times New Roman,serif;font-weight:400}h1{margin:12px 0;font-size:40px;line-height:1.18}h2{margin:0 0 18px;font-size:23px}p{margin:10px 0}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--line);background:var(--white);color:var(--ink);cursor:pointer;border-radius:8px;padding:10px 15px;text-decoration:none;display:inline-block}button:hover,.button:hover{border-color:var(--olive)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #a7b294}.primary{background:var(--olive);color:#fff;border-color:var(--olive)}label{margin:20px 0 12px;font-weight:500;display:block}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--line);background:var(--white);width:100%;color:var(--ink);border-radius:7px;margin-top:7px;padding:12px;display:block}textarea{resize:vertical}small,.muted{color:var(--muted)}small{font-size:11px;display:block}.eyebrow{text-transform:uppercase;letter-spacing:2px;color:var(--olive);font-size:10px;font-weight:600}.error{color:#85333b;background:#f7e5e5;border-radius:8px;padding:14px}.success{background:#e6ecdd;border-radius:8px;padding:12px}.actions{flex-wrap:wrap;gap:10px;margin:20px 0;display:flex}.badge{background:#eeeae1;border-radius:20px;margin-left:10px;padding:4px 9px;font-family:Arial;font-size:11px}.footnote{color:var(--muted);margin-top:32px;font-size:11px}.intro{color:var(--muted);font-size:19px}hr{border:0;border-top:1px solid var(--line);margin:26px 0}.login-shell{max-width:420px;margin:12vh auto;padding:28px}.login-shell button{width:100%;margin-top:16px}.invitation-shell{text-align:center;max-width:610px;margin:60px auto;padding:28px}.invitation-shell label{text-align:left}.invitation-shell h1{font-size:35px}.monogram{margin:16px 0 34px;font-size:65px}.monogram em{color:var(--wine);font-size:38px}.steps{color:var(--muted);justify-content:center;gap:20px;margin-bottom:40px;font-size:11px;display:flex}.steps .current{color:var(--wine);font-weight:700}.guest-choice{border:1px solid var(--line);text-align:left;border-radius:12px;margin:24px 0;padding:16px}.guest-choice legend{padding:0 8px;font-family:Georgia;font-size:21px}.guest-choice label{margin:12px 0}.guest-choice input{accent-color:var(--olive)}.summary-box{text-align:left;background:#ebe9e0;border-radius:10px;margin:24px 0;padding:20px}.guest-summary{margin:28px 0;padding:0;list-style:none}.guest-summary li{border-bottom:1px solid var(--line);text-align:left;justify-content:space-between;gap:12px;padding:12px 0;display:flex}.guest-summary span{color:var(--olive);white-space:nowrap;font-size:12px}.admin-layout{min-height:100vh;display:flex}.sidebar{background:var(--white);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:225px;padding:32px 24px;display:flex;position:fixed;inset:0 auto 0 0}.brand{font-size:30px}.brand i{color:var(--wine);font-size:23px}.sidebar nav{gap:10px;margin-top:45px;display:grid}.sidebar nav button{text-align:left;background:0 0;border:0}.sidebar nav .nav-active{color:var(--olive);background:#e9ede2}.sidebar-bottom{margin-top:auto}.sidebar-bottom button{margin-top:20px;font-size:11px}.admin-main{width:calc(100% - 225px);max-width:1700px;margin-left:225px;padding:38px 42px 70px}.admin-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.admin-header h1{font-size:35px}.sync{text-align:right;color:var(--olive);font-size:11px}.sync small{margin-top:6px}.dot{background:var(--olive);border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.offline{background:var(--wine)}.metrics{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px;display:grid}.metric{text-align:left;border-radius:12px;padding:20px 23px}.metric strong{font-family:Georgia;font-size:43px;font-weight:400;line-height:1.4;display:block}.metric span{color:var(--muted);font-size:12px}.metric.selected{border-color:var(--olive)}.metric:nth-child(2) strong{color:var(--olive)}.metric:nth-child(3) strong{color:var(--wine)}.panel{border:1px solid var(--line);background:var(--white);border-radius:12px;margin-bottom:24px;padding:24px}.overview{grid-template-columns:2fr 1fr;gap:22px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.section-heading h2{margin:0}.section-heading>span{color:var(--muted);font-size:11px}.attendance-bar{border-radius:6px;gap:3px;height:24px;margin:20px 0 12px;display:flex;overflow:hidden}.attendance-bar button{border:0;border-radius:0;min-width:0;padding:0}.attendance-bar .attending{background:var(--olive)}.attendance-bar .declined{background:var(--wine)}.attendance-bar .pending{background:#dcd8cc}.legend{color:var(--muted);gap:20px;font-size:10px;display:flex}.pipeline{border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);gap:8px;margin-top:24px;padding-top:20px;display:grid}.pipeline button{text-align:left;background:0 0;border:0;padding:4px}.pipeline strong{font-family:Georgia;font-size:25px;font-weight:400;display:block}.pipeline span{color:var(--muted);font-size:10px;line-height:1.3;display:block}.follow-up{background:#eaece3}.follow-up p{color:var(--muted);font-size:13px}.follow-up button{background:0 0;border:0;padding:10px 0;font-size:12px}.follow-up small{margin-top:14px}.toolbar{gap:16px;margin-bottom:20px;display:flex}.toolbar input{flex:2;margin:0!important}.toolbar select{flex:1;margin:0}.table-scroll{overflow:auto}.invitations-table tbody tr:nth-child(5n+1){background:#eef6fa}.invitations-table tbody tr:nth-child(5n+2){background:#f4effa}.invitations-table tbody tr:nth-child(5n+3){background:#eef7f0}.invitations-table tbody tr:nth-child(5n+4){background:#fff3ed}.invitations-table tbody tr:nth-child(5n+5){background:#fff8e8}.invitation-row-controls{width:max-content}.invitation-row-controls label{margin:0 0 5px;font-size:11px;display:block}.row-control-line{align-items:center;gap:6px;display:flex}.invitation-row-controls .row-control-line input{width:150px;height:34px;margin:0;padding:7px 10px;font-size:12px}.row-control-line button{white-space:nowrap;height:34px;margin:0}.admin-layout .invitation-row-controls .row-control-line .row-sent-toggle{white-space:nowrap;cursor:pointer;align-items:center;gap:6px;min-height:44px;margin:0;display:inline-flex}.admin-layout .invitation-row-controls .row-control-line .row-sent-toggle input{width:18px;height:18px;min-height:18px;accent-color:var(--wine);cursor:pointer;margin:0;padding:0}.invitation-row-controls p{max-width:350px;margin:5px 0 0;font-size:11px}table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}th{color:var(--muted);border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.7px;padding:10px 12px;font-size:10px;font-weight:500}td{vertical-align:middle;border-bottom:1px solid #eeece5;padding:15px 12px}td strong{font-weight:500;display:block}td small{font-size:10px}.status{white-space:nowrap;background:#f0ede5;border-radius:20px;padding:5px 9px;font-size:10px;display:inline-block}.status.responded{color:var(--olive);background:#e7edde}td button{padding:7px 12px;font-size:11px}.highlight-person{color:var(--wine);font-weight:700}.empty{text-align:center;color:var(--muted);padding:30px}.drawer-backdrop{z-index:10;background:#24251b55;position:fixed;inset:0}.drawer{background:var(--white);width:480px;max-width:100%;padding:30px;position:absolute;top:0;bottom:0;right:0;overflow:auto;box-shadow:-10px 0 40px #0001}.close{float:right;font-size:12px}.drawer h2{margin:25px 0 14px;font-size:30px}.drawer dl{grid-template-columns:90px 1fr;gap:12px;font-size:12px;display:grid}.drawer dt{color:var(--muted)}.drawer dd{margin:0}.settings-form{max-width:720px}.toggle{align-items:center;gap:12px;display:flex}.toggle input{accent-color:var(--olive)}.settings-form small{margin-top:6px}.activity{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:15px 0;display:flex}.activity p{color:var(--muted);font-size:12px}.history{border-bottom:1px solid var(--line);padding:16px 0;font-size:12px}@media (max-width:1050px){.admin-main{padding:28px 22px}.sidebar{width:185px;padding:25px 18px}.admin-main{width:calc(100% - 185px);margin-left:185px}.overview{grid-template-columns:1fr}.follow-up{display:none}.metrics{gap:10px}.metric{padding:16px}.admin-header h1{font-size:29px}}@media (max-width:700px){.admin-layout{display:block}.sidebar{width:100%;padding:18px 20px;position:static}.sidebar>.eyebrow{display:none}.sidebar-bottom{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.sidebar-bottom small{display:none}.sidebar-bottom button{margin-top:0}.sidebar nav{margin-top:12px;display:flex}.sidebar nav button{padding:8px;font-size:12px}.brand{font-size:26px}.admin-main{width:100%;margin:0;padding:22px 16px}.admin-header{display:block}.sync{text-align:left;margin-top:14px}.metrics{grid-template-columns:repeat(2,1fr)}.metric strong{font-size:35px}.panel{padding:18px}.toolbar{flex-direction:column}.pipeline{grid-template-columns:repeat(3,1fr);gap:12px}.invitation-shell{margin:20px auto;padding:22px}.invitation-shell h1{font-size:30px}.activity{display:block}.drawer{padding:22px}.steps{gap:12px}.guest-summary li{font-size:13px}.legend{gap:12px}}.dress-readable{color:#342f26;text-align:center;white-space:pre-line;background:#f5f0df;width:100%;padding:22px 28px;font:18px/1.5 Georgia,serif}.dress-readable a{text-underline-offset:5px;margin-top:8px;font:13px Avenir Next,sans-serif;text-decoration:underline;display:inline-block}.invitation-preview-note{text-align:center;color:#fff;background:#672936;margin:0;padding:12px;font:14px/1.5 Avenir Next,sans-serif}.invitation-shell h2{font-size:clamp(28px,5vw,38px);font-weight:400}
@property --action-x{syntax:"<percentage>";inherits:false;initial-value:12%}@property --action-y{syntax:"<percentage>";inherits:false;initial-value:140%}@property --action-spread-x{syntax:"<percentage>";inherits:false;initial-value:150%}@property --action-spread-y{syntax:"<percentage>";inherits:false;initial-value:180%}@property --action-stop{syntax:"<percentage>";inherits:false;initial-value:37%}@property --action-angle{syntax:"<angle>";inherits:true;initial-value:20deg}:root body :is(button,a.button,.gradient-button):where(:not(.metric,.attendance-bar button,.sidebar nav button,.pipeline button,[role=switch])),#wedding-landing a[class*=venue-map-link],#wedding-landing [class*=calendar-row] a{--action-start:#fffefa;--action-mid:#f5f3ee;--action-end:#e8e9dd;--action-ink:#302e2a;--action-border:#b9bba9;--action-x:12%;--action-y:140%;--action-spread-x:150%;--action-spread-y:180%;--action-stop:37%;--action-angle:20deg;appearance:none;border:1px solid var(--action-border);background-color:var(--action-mid);background-image:radial-gradient(var(--action-spread-x) var(--action-spread-y) at var(--action-x) var(--action-y), var(--action-start) var(--action-stop), var(--action-mid) 61%, var(--action-end) 100%);color:var(--action-ink);background-size:100% 100%;border-radius:11px;text-decoration:none;transition:--action-x .5s cubic-bezier(.16,1,.3,1),--action-y .5s cubic-bezier(.16,1,.3,1),--action-spread-x .5s,--action-spread-y .5s,--action-stop .5s,--action-angle .5s,border-color .2s;position:relative;box-shadow:inset 0 1px #fffefa2e}:root body :is(button,a.button,.gradient-button):where(:not(.metric,.attendance-bar button,.sidebar nav button,.pipeline button,[role=switch])):after,#wedding-landing a[class*=venue-map-link]:after,#wedding-landing [class*=calendar-row] a:after{content:"";border-radius:inherit;background:linear-gradient(var(--action-angle), var(--action-border), color-mix(in srgb, var(--action-border) 25%, #fffefa));pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}:root body :is(button.primary,button[class*=primary],a.button.primary,[data-gradient-button=wine]),#wedding-landing [class*=calendar-row] a{--action-start:#672936;--action-mid:#703846;--action-end:#864653;--action-ink:#fffefa;--action-border:#925c65}:root body .gradient-button[data-gradient-button=sage],#wedding-landing a[class*=venue-map-link]{--action-start:#dde6cf;--action-mid:#d4dec5;--action-end:#bfccac;--action-ink:#303b29;--action-border:#9daa8c}:root body .gradient-button[data-gradient-button=quiet]{--action-start:#fffefa;--action-mid:#f5f3ee;--action-end:#e8e9dd;--action-ink:#302e2a;--action-border:#b9bba9}.gradient-button{min-height:44px;font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 18px;display:inline-flex}#wedding-landing a[class*=venue-map-link],#wedding-landing [class*=calendar-row] a{box-sizing:border-box;justify-content:center;align-items:center;gap:10px;width:min(100%,310px);min-height:48px;margin-inline:auto;padding:14px 20px;display:flex}@media (hover:hover){:root body :is(button,a.button,.gradient-button):not(.metric,.attendance-bar button,.sidebar nav button,.pipeline button,[role=switch]):hover:not(:disabled),#wedding-landing a[class*=venue-map-link]:hover,#wedding-landing [class*=calendar-row] a:hover{--action-x:90%;--action-y:15%;--action-spread-x:85%;--action-spread-y:115%;--action-stop:0%;--action-angle:190deg;background-image:radial-gradient(var(--action-spread-x) var(--action-spread-y) at var(--action-x) var(--action-y), var(--action-start) var(--action-stop), var(--action-mid) 61%, var(--action-end) 100%);border-color:var(--action-ink);color:var(--action-ink)}}:root body :is(button,a.button,.gradient-button):where(:not(.metric,.attendance-bar button,.sidebar nav button,.pipeline button,[role=switch])):is(:active,:focus-visible):not(:disabled),#wedding-landing a[class*=venue-map-link]:is(:active,:focus-visible),#wedding-landing [class*=calendar-row] a:is(:active,:focus-visible){--action-x:90%;--action-y:15%;--action-spread-x:85%;--action-spread-y:115%;--action-stop:0%;--action-angle:190deg}:root body :is(button,a.button,.gradient-button):focus-visible,#wedding-landing a[class*=venue-map-link]:focus-visible,#wedding-landing [class*=calendar-row] a:focus-visible{outline-offset:3px;outline:3px solid #a7b294}:root body :is(button,.gradient-button):disabled{cursor:default;opacity:.5}@media (prefers-reduced-motion:reduce){:root body :is(button,a.button,.gradient-button),#wedding-landing a[class*=venue-map-link],#wedding-landing [class*=calendar-row] a{transition:none}}
