@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Georgian:wght@300;400;500;600&family=Noto+Serif+Georgian:wght@400;500;600&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');
:root{
  --paper:#f5efe6;
  --paper-soft:#fbf8f2;
  --paper-deep:#e9dece;
  --ink:#3d3026;
  --muted:#807267;
  --line:rgba(61,48,38,.18);
  --accent:#c7ae92;
  --accent-strong:#9f8064;
  --white:#fffdf9;
  --danger:#9b5149;
  --shadow:0 24px 70px rgba(66,48,32,.09);
  --heading-font:"Playfair Display",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--paper-soft);color:#704829;line-height:1.55}
a{color:inherit}
img{display:block;max-width:100%}
.container{width:min(1120px,calc(100% - 40px));margin:0 auto}

/* Public landing --------------------------------------------------------- */
.landing-body{background:var(--paper-soft);overflow-x:hidden}
.site-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;align-content:center;gap:18px;background:#f7f1e8;transition:opacity .65s ease,visibility .65s ease}
.site-loader img{width:74px;height:94px;object-fit:contain;animation:logoBreath 1.4s ease-in-out infinite}
.site-loader span{font-size:.62rem;letter-spacing:.42em;color:var(--muted)}
.site-ready .site-loader{opacity:0;visibility:hidden}
@keyframes logoBreath{0%,100%{opacity:.45;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}

.wedding-nav{height:82px;display:grid;grid-template-columns:150px 1fr auto;align-items:center;padding:0 clamp(22px,5vw,76px);border-bottom:1px solid rgba(61,48,38,.09);background:rgba(249,245,238,.9);backdrop-filter:blur(14px);position:sticky;top:0;z-index:50}
.nav-logo{width:38px;justify-self:start}
.nav-logo img{width:38px;height:50px;object-fit:contain}
.nav-links{display:flex;justify-content:center;gap:clamp(24px,4vw,58px)}
.nav-links a,.nav-rsvp{text-decoration:none;text-transform:uppercase;letter-spacing:.22em;font-size:.64rem}
.nav-links a{position:relative;padding:8px 0;color:#66584d}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--ink);transition:right .25s ease}
.nav-links a:hover::after{right:0}
.nav-rsvp{justify-self:end;border:1px solid rgba(61,48,38,.45);padding:12px 18px;transition:.2s ease}
.nav-rsvp:hover{background:var(--ink);color:#fff}

.landing-hero{min-height:calc(100svh - 82px);position:relative;isolation:isolate;background:var(--paper);overflow:hidden;border-bottom:1px solid var(--line)}
.landing-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(245,239,230,1) 0%,rgba(245,239,230,.99) 24%,rgba(245,239,230,.96) 34%,rgba(245,239,230,.86) 42%,rgba(245,239,230,.62) 49%,rgba(245,239,230,.34) 56%,rgba(245,239,230,.12) 62%,rgba(245,239,230,0) 69%)}
.hero-copy-panel{width:min(58vw,840px);min-height:calc(100svh - 82px);padding:clamp(70px,8vw,124px) clamp(34px,7vw,112px);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:3;background:transparent}
.hero-copy-panel::after{display:none}
.hero-copy-panel>*{position:relative;z-index:1}
.landing-eyebrow{text-transform:uppercase;letter-spacing:.42em;font-size:.62rem;color:var(--muted);font-weight:600}
.hero-copy-panel h1{font-family:var(--heading-font);font-weight:400;font-size:clamp(4rem,7.2vw,7.8rem);line-height:.82;letter-spacing:-.055em;margin:24px 0 24px;max-width:660px}
.hero-invite,.hero-date{margin:0;text-transform:uppercase;letter-spacing:.32em;font-size:.68rem;color:#75675c}
.hero-date{margin-top:26px;color:#704829;font-weight:600}
.hero-note{max-width:470px;color:var(--muted);font-size:.92rem;margin:26px 0 0}
.landing-countdown{display:grid;grid-template-columns:repeat(4,1fr);max-width:520px;margin:36px 0 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.landing-countdown>div{padding:20px 16px 18px 0;position:relative}
.landing-countdown>div+div{padding-left:22px}
.landing-countdown>div+div::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--line)}
.landing-countdown strong{display:block;font-family:var(--heading-font);font-weight:400;font-size:clamp(2.2rem,4vw,4rem);line-height:1}
.landing-countdown span{display:block;margin-top:6px;text-transform:uppercase;letter-spacing:.26em;font-size:.52rem;color:var(--muted)}
.editorial-button{width:max-content;display:inline-flex;align-items:center;justify-content:center;gap:26px;margin-top:30px;padding:15px 25px;border:1px solid rgba(61,48,38,.48);background:rgba(199,174,146,.42);text-decoration:none;text-transform:uppercase;letter-spacing:.22em;font-size:.63rem;transition:.25s ease}
.editorial-button:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}
.editorial-button.light{background:transparent}
.hero-visual{position:absolute;z-index:0;inset:-32px 0;background:linear-gradient(150deg,#e3d6c5 0%,#f1e8dc 38%,#d8c4ae 100%);overflow:hidden;transform:translateY(var(--parallax-y,0));will-change:transform}
.hero-visual::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 65% 18%,rgba(255,255,255,.36),transparent 28%),linear-gradient(115deg,transparent 35%,rgba(255,255,255,.12) 36%,transparent 54%);mix-blend-mode:soft-light}
.hero-visual.has-photo{background-image:linear-gradient(90deg,rgba(44,34,26,.015),rgba(44,34,26,.06)),var(--hero-image);background-size:cover;background-position:center center;background-repeat:no-repeat}
.hero-logo-watermark{position:absolute;left:13%;bottom:15%;width:110px;height:160px;opacity:.18}
.hero-logo-watermark img{width:100%;height:100%;object-fit:contain}
.hero-visual-copy{position:absolute;right:6%;top:18%;font-size:.6rem;letter-spacing:.45em;line-height:2.15;color:#6f6257;text-align:left}
.hero-curve{position:absolute;width:72%;aspect-ratio:1;border:1px solid rgba(94,73,56,.26);border-radius:50%;left:-34%;bottom:-28%;transform:rotate(-16deg)}
.hero-curve::after{content:"";position:absolute;inset:13%;border:1px solid rgba(94,73,56,.15);border-radius:50%}

.editorial-section{padding:clamp(76px,9vw,138px) clamp(24px,6vw,92px);border-bottom:1px solid var(--line)}
.agenda-section{background:#faf7f1}
.agenda-heading{display:grid;grid-template-columns:1fr minmax(240px,390px);gap:50px;align-items:end;margin:0 auto 72px;max-width:1360px}
.agenda-heading h2,.venue-copy h2,.dresscode-copy h2,.rsvp-banner h2{font-family:var(--heading-font);font-weight:400;letter-spacing:-.035em;line-height:.98;margin:12px 0 0;font-size:clamp(3rem,5.6vw,6rem)}
.agenda-heading p{margin:0;color:var(--muted);max-width:390px}
.agenda-line{max-width:1360px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);position:relative}
.agenda-line::before{content:"";position:absolute;left:8%;right:8%;top:55px;height:1px;background:var(--line)}
.agenda-item{text-align:center;padding:0 18px;position:relative;z-index:1}
.agenda-icon{margin:0 auto 16px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#f1e8dc;border:1px solid rgba(61,48,38,.08);font-family:var(--heading-font);font-size:1.25rem}
.agenda-dot{width:7px;height:7px;border-radius:50%;background:#bca58d;margin:0 auto 18px;box-shadow:0 0 0 8px #faf7f1}
.agenda-item time{font-family:var(--heading-font);font-size:1.2rem;letter-spacing:.08em}
.agenda-item h3{font-family:var(--heading-font);font-size:1.25rem;font-weight:400;margin:8px 0 5px}
.agenda-item p{font-size:.78rem;color:var(--muted);margin:0}

.venue-section{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr);gap:clamp(48px,7vw,110px);align-items:center;background:var(--paper)}
.venue-visual{min-height:540px;background:linear-gradient(145deg,#cab7a1,#efe4d5);position:relative;overflow:hidden;box-shadow:var(--shadow)}
.venue-visual.has-photo{background-image:linear-gradient(rgba(46,35,27,.08),rgba(46,35,27,.08)),var(--venue-image);background-size:cover;background-position:center}
.venue-fallback{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:24px;background:linear-gradient(145deg,rgba(255,255,255,.14),transparent)}
.venue-fallback img{width:110px;height:150px;opacity:.24}
.venue-fallback span{font-size:.6rem;letter-spacing:.36em;color:#725f50}
.has-photo .venue-fallback{display:none}
.venue-copy{max-width:560px}
.venue-copy>p{font-size:.98rem;color:var(--muted);margin:28px 0}
.venue-address{display:flex;gap:16px;align-items:flex-start;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.venue-address .pin{font-size:1.55rem;line-height:1}
.venue-address strong,.venue-address span{display:block}
.venue-address strong{font-family:var(--heading-font);font-size:1.05rem;font-weight:400;letter-spacing:.08em}
.venue-address span{font-size:.82rem;color:var(--muted);margin-top:5px}

.rsvp-banner{position:relative;min-height:510px;display:grid;place-items:center;text-align:center;padding:80px 24px;background:linear-gradient(112deg,#e4d7c7,#f8f3eb 52%,#dfd0bf);overflow:hidden;border-bottom:1px solid var(--line)}
.rsvp-banner::before,.rsvp-banner::after{content:"";position:absolute;width:470px;height:470px;border:1px solid rgba(61,48,38,.14);border-radius:50%}
.rsvp-banner::before{left:-290px;bottom:-210px}.rsvp-banner::after{right:-280px;top:-230px}
.rsvp-banner.has-photo{background-image:linear-gradient(rgba(248,242,234,.82),rgba(248,242,234,.82)),var(--rsvp-image);background-size:cover;background-position:center}
.rsvp-banner-inner{position:relative;z-index:1;max-width:720px}
.rsvp-banner h2{margin-top:14px}
.rsvp-banner p{color:var(--muted);max-width:560px;margin:20px auto 0}
.rsvp-deadline{text-transform:uppercase;letter-spacing:.22em;font-size:.62rem!important;color:#75665a!important}
.rsvp-banner .editorial-button{margin-left:auto;margin-right:auto}
.personal-link-note{margin:28px auto 0;padding:14px 20px;max-width:520px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.8rem;color:var(--muted)}

.wedding-footer{min-height:150px;padding:30px clamp(24px,6vw,92px);display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:center;background:#f8f4ed}
.footer-brand{display:flex;align-items:center;gap:18px;font-family:var(--heading-font);font-size:1rem}.footer-brand img{width:38px;height:52px;object-fit:contain}
.footer-date,.footer-note{text-transform:uppercase;letter-spacing:.28em;font-size:.56rem;color:var(--muted)}
.footer-note{text-align:right}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.reveal.is-visible{opacity:1;transform:none}

/* RSVP form -------------------------------------------------------------- */
.button{appearance:none;border:1px solid var(--ink);background:var(--ink);color:var(--white);padding:14px 20px;font-weight:700;text-decoration:none;cursor:pointer;transition:.2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.button:hover{transform:translateY(-1px);box-shadow:0 10px 25px rgba(31,33,29,.12)}
.button.secondary{background:transparent;color:#704829}
.button.soft{background:var(--accent-strong);border-color:var(--accent-strong)}
.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;color:var(--muted);font-weight:700}
.rsvp-shell{width:min(760px,calc(100% - 32px));margin:48px auto 80px;background:var(--white);box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(61,48,38,.08)}
.rsvp-top{padding:38px 38px 30px;border-bottom:1px solid var(--line)}
.rsvp-top h1{font-family:var(--heading-font);font-size:clamp(2.2rem,7vw,4rem);font-weight:400;letter-spacing:-.04em;margin:10px 0}
.deadline{font-size:.92rem;color:var(--muted)}
.guest-list{padding:10px 38px 28px}
.guest-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.guest-name{font-size:1.06rem;font-weight:700}.guest-meta{font-size:.83rem;color:var(--muted);margin-top:4px}
.segmented{display:flex;gap:8px}.choice{position:relative}.choice input{position:absolute;opacity:0;pointer-events:none}.choice span{display:block;padding:10px 14px;border:1px solid var(--line);font-size:.9rem;font-weight:700;cursor:pointer;background:#fff;white-space:nowrap}.choice input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}.choice.no input:checked+span{background:var(--danger);border-color:var(--danger)}
.rsvp-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:24px 38px 34px}.notice{padding:14px 16px;background:#eef0ea;color:#465043;font-size:.92rem}.notice.error{background:#f5e9e7;color:#7c403a}

/* Admin ------------------------------------------------------------------ */
.admin-body{background: #cccccc;}.admin-shell{display:grid;grid-template-columns:230px 1fr;min-height:100svh}.admin-nav{padding:28px 22px;border-right:1px solid #dddcd5;background:#fff}.admin-nav strong{font-family:var(--heading-font);font-size:1.4rem}.admin-nav a{display:block;text-decoration:none;padding:10px 0;color:#66685f}.admin-nav a.active{color:#704829;font-weight:700}.admin-main{padding:38px clamp(22px,4vw,54px)}.admin-title{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:34px}.admin-title h1{font-family:var(--heading-font);font-weight:400;font-size: clamp(2.2rem,5vw,3rem);letter-spacing:-.04em;margin:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #d7d6cf;border-bottom:1px solid #d7d6cf;margin-bottom:44px}.metric{padding:20px 14px;border-right:1px solid #d7d6cf}.metric:last-child{border-right:0}.metric strong{display:block;font-size:2.4rem;font-weight:500}.metric span{color:#74766d;font-size:.86rem}.table-wrap{overflow:auto;background:#fff;box-shadow:0 12px 34px rgba(0,0,0,.04)}table{width:100%;border-collapse:collapse;min-width:780px}th,td{text-align:left;padding:15px 16px;border-bottom:1px solid #ecebe5;font-size:.92rem}th{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:#777970;background:#fafaf7}.status{display:inline-flex;padding:6px 9px;font-size:.78rem;font-weight:800}.status.done{background:#e8eee5;color:#40523a}.status.pending{background:#f1eee1;color:#75652e}.login-shell{width:min(430px,calc(100% - 32px));margin:12vh auto;background:#fff;padding:34px;box-shadow:var(--shadow)}.input{width:100%;border:1px solid var(--line);padding:13px 14px;font:inherit;background:#fff;margin:7px 0 14px}label{font-size:.84rem;font-weight:800}


/* iOS zoom guards -------------------------------------------------------- */
html,body{touch-action:manipulation}
a,button,[role="button"],label,summary,input[type="button"],input[type="submit"],input[type="reset"]{touch-action:manipulation}
@supports (-webkit-touch-callout:none){
  input,
  select,
  textarea{
    font-size:16px!important;
  }
}

@media(max-width:980px){
  .wedding-nav{grid-template-columns:60px 1fr 115px;padding:0 18px}.nav-links{gap:22px}.nav-links a:nth-child(2),.nav-links a:nth-child(3){display:none}
  .landing-hero{min-height:calc(100svh - 82px)}.landing-hero::after{background:linear-gradient(90deg,rgba(245,239,230,.99) 0%,rgba(245,239,230,.96) 38%,rgba(245,239,230,.8) 56%,rgba(245,239,230,.38) 74%,rgba(245,239,230,.08) 90%,rgba(245,239,230,0) 100%)}.hero-copy-panel{width:min(72vw,760px);min-height:calc(100svh - 82px)}.hero-visual{inset:-24px 0;transform:none}.hero-visual.has-photo{background-position:58% center}
  .agenda-line{grid-template-columns:1fr 1fr;gap:46px 0}.agenda-line::before{display:none}.agenda-item{border-top:1px solid var(--line);padding-top:26px}.agenda-item:last-child{grid-column:1/-1;max-width:50%;width:100%;margin:0 auto}
  .venue-section{grid-template-columns:1fr}.venue-visual{min-height:460px}.venue-copy{max-width:none}
}
@media(max-width:680px){
  .wedding-nav{height:70px;grid-template-columns:50px 1fr}.nav-logo img{width:32px;height:42px}.nav-links{display:none}.nav-rsvp{justify-self:end;padding:10px 13px}
  .landing-hero{min-height:calc(100svh - 70px)}.landing-hero::after{background:linear-gradient(180deg,rgba(245,239,230,.98) 0%,rgba(245,239,230,.94) 48%,rgba(245,239,230,.78) 68%,rgba(245,239,230,.36) 86%,rgba(245,239,230,.08) 100%)}.hero-copy-panel{width:100%;padding:64px 24px 54px;min-height:calc(100svh - 70px);justify-content:flex-start;padding-top:clamp(64px,13vh,110px)}.hero-copy-panel h1{font-size:clamp(3.5rem,18vw,5.9rem);margin-top:20px}.hero-invite,.hero-date{font-size:.58rem;letter-spacing:.24em}.landing-countdown{width:100%;margin-top:30px}.landing-countdown>div{padding:16px 8px 15px 0}.landing-countdown>div+div{padding-left:10px}.landing-countdown strong{font-size:2rem}.landing-countdown span{font-size:.45rem;letter-spacing:.14em}.hero-note{font-size:.86rem}.hero-visual{inset:-18px 0}.hero-visual.has-photo{background-position:64% center}.hero-visual-copy{top:13%;font-size:.52rem}.hero-logo-watermark{width:82px;height:120px}
  .editorial-section{padding:70px 22px}.agenda-heading{grid-template-columns:1fr;gap:20px;margin-bottom:52px}.agenda-heading h2,.venue-copy h2,.dresscode-copy h2,.rsvp-banner h2{font-size:clamp(2.7rem,14vw,4.5rem)}.agenda-heading p{font-size:.88rem}
  .agenda-line{grid-template-columns:1fr;gap:0}.agenda-item,.agenda-item:last-child{max-width:none;border-top:1px solid var(--line);padding:24px 0}.agenda-icon{margin-bottom:10px}.agenda-dot{display:none}
  .venue-section{gap:44px}.venue-visual{min-height:370px}.venue-copy>p{font-size:.9rem}.rsvp-banner{min-height:500px;padding:70px 22px}
  .wedding-footer{grid-template-columns:1fr;text-align:center;padding:34px 22px}.footer-brand{justify-content:center}.footer-note{text-align:center}.footer-date{order:3}
  .rsvp-shell{margin:18px auto 48px}.rsvp-top,.guest-list,.rsvp-footer{padding-left:20px;padding-right:20px}.guest-row{grid-template-columns:1fr}.segmented{width:100%}.choice{flex:1}.choice span{text-align:center}.rsvp-footer{align-items:stretch;flex-direction:column}
  .admin-shell{grid-template-columns:1fr}.admin-nav{display:none}.admin-main{padding:24px 16px}.metrics{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid #d7d6cf}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-loader img{animation:none}.reveal{opacity:1;transform:none;transition:none}.hero-visual{transform:none!important}}

/* Admin settings --------------------------------------------------------- */
.settings-main{max-width:1500px;width:100%}
.settings-title{align-items:flex-end}
.settings-title p{margin:9px 0 0;color:#777970;max-width:620px}
.settings-notice{margin:-12px 0 26px}
.settings-language-master{position:sticky;top:12px;z-index:32;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 22px;padding:12px 14px 12px 18px;border:1px solid #ddd8d0;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(57,45,36,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.settings-language-master-copy{display:grid;gap:2px;min-width:0}.settings-language-master-copy strong{font-size:.82rem;color:#4e463f}.settings-language-master-copy span{color:#858178;font-size:.75rem;line-height:1.35}
.settings-language-master-options{display:flex;align-items:center;gap:3px;padding:4px;border:1px solid #ded8d0;border-radius:999px;background:#f7f4f0;flex:0 0 auto}
.settings-language-master-options button{appearance:none;border:0;background:transparent;min-height:42px;padding:8px 16px;border-radius:999px;font:inherit;font-size:.78rem;font-weight:800;color:#766c63;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.settings-language-master-options button:hover{background:#eee7df;color:#704829}.settings-language-master-options button.is-active{background:#704829;color:#fff;box-shadow:0 6px 16px rgba(112,72,41,.18)}
.settings-language-master-options button:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.settings-form{display:grid;gap:28px;padding-bottom:110px}
.settings-section{background:#fff;border-top:1px solid #d9d8d1;padding:30px clamp(20px,3vw,38px) 36px;box-shadow:0 12px 34px rgba(0,0,0,.025)}
.settings-section-head{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(280px,1.2fr);gap:40px;align-items:start;padding-bottom:25px;margin-bottom:24px;border-bottom:1px solid #ecebe5}
.settings-section-head>div{display:flex;align-items:baseline;gap:16px}
.settings-section-head span{font-size:.68rem;letter-spacing:.18em;color:#9b9b93}
.settings-section-head h2{font-family:var(--heading-font);font-weight:400;font-size:2rem;line-height:1;margin:0}
.settings-section-head p{margin:0;color:#777970;font-size:.9rem;max-width:580px}
.settings-grid{display:grid;gap:16px 22px}.settings-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:1/-1}
.settings-textarea{resize:vertical;min-height:105px}
.field-help{display:block;margin:-7px 0 13px;color:#898a83;font-size:.76rem}
.image-settings-grid{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:40px}
.settings-fields{display:grid;align-content:start}.image-setting{border-left:1px solid #ecebe5;padding-left:34px}
.image-preview{aspect-ratio:16/9;background:#f1efe8;border:1px solid #e4e2da;display:grid;place-items:end start;background-size:cover;background-position:center;overflow:hidden;margin:7px 0 14px}
.image-preview span{background:rgba(255,255,255,.86);backdrop-filter:blur(6px);padding:8px 11px;margin:10px;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}
.hero-asset-settings{display:grid;gap:26px}.asset-setting-block+.asset-setting-block{border-top:1px solid #ecebe5;padding-top:24px}.brand-asset-preview{aspect-ratio:5/3;background-size:contain;background-repeat:no-repeat;background-position:center}.logo-asset-preview{aspect-ratio:3/2}.asset-field-help{margin-top:-8px}
.settings-check{display:flex;align-items:center;gap:9px;font-weight:500;color:#787970;margin-top:-4px}.settings-check input{margin:0}
.agenda-copy-grid{margin-bottom:18px}.agenda-editor{display:grid;gap:8px}.agenda-editor-row{display:grid;grid-template-columns:34px 120px minmax(160px,1fr) minmax(180px,1.2fr) 170px 36px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #efeee8}.agenda-editor-row .input{margin:0}.agenda-row-number{font-family:var(--heading-font);color:#999b93}.agenda-remove{width:34px;height:42px;border:0;background:transparent;color:#9b5149;font-size:1.5rem;cursor:pointer}.settings-add{margin-top:18px}
.settings-savebar{position:sticky;bottom:18px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:22px;background:#292720;color:#fff;padding:17px 20px;box-shadow:0 20px 50px rgba(0,0,0,.18)}.settings-savebar>div{display:grid;gap:2px}.settings-savebar span{font-size:.78rem;color:#bebdb8}.settings-savebar .button{background:#fff;color:#704829;border-color:#fff;margin:0}

@media(max-width:1050px){
  .agenda-editor-row{grid-template-columns:30px 105px 1fr 1fr 135px 34px}
}
@media(max-width:820px){
  .settings-section-head,.settings-grid.two,.image-settings-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.image-setting{border-left:0;border-top:1px solid #ecebe5;padding:24px 0 0}.agenda-editor-row{grid-template-columns:30px 110px 1fr 34px}.agenda-editor-row input[name="agenda_location[]"],.agenda-editor-row select{grid-column:2/4}.agenda-editor-row .agenda-remove{grid-column:4;grid-row:1}.settings-savebar{bottom:8px}.settings-savebar span{display:none}
}
@media(max-width:520px){
  .settings-main{padding-left:12px;padding-right:12px}.settings-section{padding-left:16px;padding-right:16px}.settings-section-head{gap:12px}.settings-section-head>div{gap:10px}.agenda-editor-row{grid-template-columns:28px 1fr 34px}.agenda-editor-row input[type="time"]{grid-column:2}.agenda-editor-row input[name="agenda_title_item[]"],.agenda-editor-row input[name="agenda_location[]"],.agenda-editor-row select{grid-column:2/4}.agenda-editor-row .agenda-remove{grid-column:3;grid-row:1}.settings-savebar{flex-direction:column;align-items:stretch}.settings-savebar .button{width:100%}
  .settings-language-master{top:8px;gap:10px;padding:9px 10px 9px 12px}.settings-language-master-copy span{display:none}.settings-language-master-options button{min-height:40px;padding:7px 12px}
}

/* v3.3 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Inline RSVP + mobile overflow hardening ----------------------- */
.hero-copy-panel,
.agenda-heading > *,
.venue-copy,
.venue-address > div,
.rsvp-banner-inner,
.footer-brand,
.landing-rsvp-context > *,
.landing-guest-row > *{min-width:0}

.hero-copy-panel h1,
.agenda-heading h2,
.venue-copy h2,
.rsvp-banner h2,
.agenda-item h3,
.agenda-item p,
.venue-address strong,
.venue-address span,
.footer-brand span,
.footer-date,
.footer-note,
.hero-note,
.personal-link-note{
  max-width:100%;
  
  word-break:normal;
}

.editorial-button{
  max-width:100%;
  white-space:normal;
  text-align:center;
  line-height:1.35;
}

.rsvp-banner.rsvp-has-form{padding-top:88px;padding-bottom:96px}
.rsvp-banner.rsvp-has-form .rsvp-banner-inner{width:min(100%,1020px);max-width:1020px}
.landing-rsvp-context{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin:34px auto 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left}
.landing-rsvp-context>div:first-child{display:grid;gap:4px}
.landing-rsvp-caption{text-transform:uppercase;letter-spacing:.24em;font-size:.58rem;color:var(--muted)}
.landing-rsvp-context strong{font-family:var(--heading-font);font-size:clamp(1.35rem,2.8vw,2.2rem);font-weight:400;}
.landing-rsvp-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px 16px;color:var(--muted);font-size:.76rem}
.landing-rsvp-summary span{white-space:nowrap}
.landing-rsvp-notice{margin:18px 0 0;text-align:left;border:1px solid rgba(61,48,38,.07)}
.landing-rsvp-action-notice{margin:14px 0 0;padding:13px 16px;width:100%;border-radius:12px;text-align:center;font-weight:600;line-height:1.45}
.landing-rsvp-form{margin:0 auto;text-align:left}
.landing-guest-list{margin-top:8px}
.landing-guest-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.landing-guest-person{display:grid;gap:3px}
.landing-guest-person strong{font-family:var(--heading-font);font-size:1.08rem;font-weight:400;}
.landing-guest-person span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;}
.landing-rsvp-form .choice span{background:rgba(255,253,249,.78);backdrop-filter:blur(5px)}
.landing-rsvp-form .choice input:disabled+span{cursor:default;opacity:.72}
.landing-rsvp-actions{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:28px}
.landing-rsvp-lock-note{max-width:560px;color:var(--muted);font-size:.8rem;line-height:1.6;}
.landing-rsvp-save{appearance:none;color:#704829;cursor:pointer;margin:0;flex:0 0 auto;font-family:inherit}

@media(max-width:680px){
  .landing-body{max-width:100%;overflow-x:hidden}
  .wedding-nav{width:100%;max-width:100%;overflow:hidden}
  .nav-rsvp{max-width:100%;font-size:.58rem;letter-spacing:.14em;white-space:nowrap}
  .hero-copy-panel{max-width:100%;overflow:hidden}
  .hero-copy-panel h1{font-size:clamp(2.9rem,14.5vw,5.15rem);line-height:.9;letter-spacing:-.045em;max-width:100%;text-wrap:balance}
  .landing-eyebrow{letter-spacing:.28em;}
  .hero-invite,.hero-date{letter-spacing:.18em;line-height:1.65;}
  .hero-note{width:100%}
  .landing-countdown{min-width:0}
  .landing-countdown>div{min-width:0}
  .landing-countdown strong{font-size:clamp(1.65rem,8vw,2rem)}
  .landing-countdown span{letter-spacing:.08em;font-size:.42rem;}
  .agenda-heading h2,.venue-copy h2,.dresscode-copy h2,.rsvp-banner h2{font-size:clamp(2.45rem,12.4vw,4.15rem);line-height:1.02;text-wrap:balance}
  .agenda-item,.agenda-item h3,.agenda-item p{max-width:100%}
  .venue-address{min-width:0}.venue-address strong{letter-spacing:.04em}
  .rsvp-banner.rsvp-has-form{padding:68px 18px 74px}
  .rsvp-banner.rsvp-has-form .rsvp-banner-inner{width:100%}
  .landing-rsvp-context{align-items:flex-start;flex-direction:column;gap:14px;margin-top:28px}
  .landing-rsvp-summary{justify-content:flex-start}
  .landing-guest-row{grid-template-columns:1fr;gap:12px;padding:18px 0}
  .landing-rsvp-form .segmented{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;gap:8px}
  .landing-rsvp-form .choice{min-width:0}
  .landing-rsvp-form .choice span{width:100%;padding:11px 8px;text-align:center;white-space:normal;font-size:.84rem}
  .landing-rsvp-actions{align-items:stretch;flex-direction:column;gap:18px}
  .landing-rsvp-save{width:100%;margin:0}
  .footer-brand,.footer-date,.footer-note{max-width:100%;}
  .footer-date,.footer-note{letter-spacing:.18em;line-height:1.7}
}

@media(max-width:390px){
  .wedding-nav{padding-left:12px;padding-right:12px}
  .nav-rsvp{padding:9px 10px;font-size:.54rem;letter-spacing:.1em}
  .hero-copy-panel{padding-left:18px;padding-right:18px}
  .hero-copy-panel h1{font-size:clamp(2.65rem,14vw,4.4rem)}
  .landing-countdown>div{padding-right:4px}
  .landing-countdown>div+div{padding-left:6px}
  .landing-countdown span{font-size:.38rem;letter-spacing:.04em}
  .editorial-section{padding-left:18px;padding-right:18px}
  .rsvp-banner{padding-left:16px;padding-right:16px}
}

/* v3.4 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· bilingual content, dress code, custom agenda icons & admin filters */
.lang-ka{
  --heading-font:"Noto Serif Georgian",Georgia,"Times New Roman",serif;
  font-family:"Noto Sans Georgian",Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.lang-en{--heading-font:"Playfair Display",Georgia,"Times New Roman",serif}

.nav-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
.language-switch{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:.58rem;letter-spacing:.12em;color:#8a7d71}
.language-switch a{text-decoration:none;padding:6px 2px;color:inherit;transition:color .2s ease}
.language-switch a.active{color:#704829;font-weight:700}
.language-switch span{opacity:.45}

.agenda-icon img{width:25px;height:25px;object-fit:contain}

/* Dress code ----------------------------------------------------------- */
.dresscode-section{display:grid;grid-template-columns:minmax(340px,.78fr) minmax(0,1.22fr);gap:clamp(48px,8vw,130px);align-items:center;background:#fbf7f0}
.dresscode-copy{max-width:600px}
.dresscode-copy h2{font-family:var(--heading-font);font-weight:400;letter-spacing:-.035em;line-height:.98;margin:12px 0 0;font-size:clamp(3rem,5.6vw,6rem)}
.dresscode-copy>p{font-size:.98rem;color:var(--muted);margin:28px 0 0;max-width:540px}
.dresscode-note{font-size:.78rem!important;line-height:1.7;border-top:1px solid var(--line);padding-top:20px;margin-top:24px!important}
.dresscode-palette{display:flex;align-items:center;gap:12px;margin-top:30px;flex-wrap:wrap}
.dresscode-palette span{width:42px;height:42px;border-radius:50%;background:var(--swatch);border:1px solid rgba(61,48,38,.12);box-shadow:0 4px 12px rgba(61,48,38,.06)}
.dresscode-visual{min-height:570px;position:relative;overflow:hidden;background:linear-gradient(145deg,#eadfd1,#cbb9a7);box-shadow:var(--shadow)}
.dresscode-visual.has-photo{background-image:linear-gradient(rgba(46,35,27,.04),rgba(46,35,27,.04)),var(--dresscode-image);background-size:cover;background-position:center}
.dresscode-monogram{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:22px;background:radial-gradient(circle at 50% 36%,rgba(255,255,255,.3),transparent 33%)}
.dresscode-monogram img{width:110px;height:150px;opacity:.28}
.dresscode-monogram span{font-size:.62rem;letter-spacing:.35em;color:#6d5d50}
.dresscode-visual.has-photo .dresscode-monogram{display:none}

/* Locale-aware typography: natural word wrapping only */
.landing-body,
.landing-body h1,.landing-body h2,.landing-body h3,
.landing-body p,.landing-body span,.landing-body strong,.landing-body a,.landing-body button{
  word-break:normal;
  hyphens:none;
}
.dresscode-copy,
.dresscode-copy h2,
.dresscode-copy p{min-width:0;max-width:100%;}
.lang-ka .hero-copy-panel h1{letter-spacing:-.025em;line-height:.95}
.lang-ka .agenda-heading h2,.lang-ka .venue-copy h2,.lang-ka .dresscode-copy h2,.lang-ka .rsvp-banner h2{letter-spacing:-.02em;line-height:1.08}

/* Admin filters -------------------------------------------------------- */
.admin-filters{display:grid;grid-template-columns:minmax(260px,2fr) repeat(4,minmax(145px,1fr)) auto;gap:12px;align-items:end;margin:0 0 14px;padding:18px;background:#fff;border-top:1px solid #d9d8d1;box-shadow:0 10px 28px rgba(0,0,0,.025)}
.admin-filters label{display:block;margin-bottom:2px}.admin-filters .input{margin:5px 0 0}
.admin-filter-actions{display:flex;gap:8px;align-items:center;padding-bottom:0}.admin-filter-actions .button{margin:0;white-space:nowrap}
.admin-results-bar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:0 0 12px;color:#777970;font-size:.82rem}
.admin-results-bar strong{color:#704829}
.admin-empty{text-align:center!important;padding:36px!important;color:#777970}

/* Admin bilingual settings ------------------------------------------- */
.locale-editor{margin-top:18px}
.locale-tabs{display:flex;gap:0;margin:0 0 18px;border-bottom:1px solid #e7e5de}
.locale-tabs button{appearance:none;border:0;background:transparent;padding:10px 16px 11px;font:inherit;font-size:.78rem;font-weight:700;color:#8b8b84;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.locale-tabs button.active{color:#704829;border-bottom-color:var(--ink)}
.locale-panel[hidden]{display:none!important}
.locale-panel.active{display:block}
.core-settings-grid{margin-bottom:16px}

.agenda-editor-v34{display:grid;gap:14px}
.agenda-editor-card{border-top:1px solid #dcdad3;background:#fcfcf9;padding:18px 20px 20px}
.agenda-card-head{display:grid;grid-template-columns:34px 1fr 36px;align-items:center;gap:8px;margin-bottom:14px}
.agenda-card-head strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#777970}
.agenda-card-head .agenda-remove{justify-self:end}
.agenda-card-controls{display:grid;grid-template-columns:150px minmax(170px,.6fr) minmax(260px,1fr);gap:14px;align-items:start}
.agenda-card-controls .input{margin-top:5px}
.agenda-icon-upload small{font-weight:400;color:#888}
.agenda-current-icon{display:flex;align-items:center;gap:12px;margin-top:-5px}
.agenda-current-icon img{width:38px;height:38px;object-fit:contain;background:#f3f0e8;padding:6px;border:1px solid #e2dfd6}
.agenda-current-icon .settings-check{margin:0}
.agenda-language-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:14px;padding-top:16px;border-top:1px solid #ebe9e2}
.agenda-language-fields.is-single-language{grid-template-columns:minmax(0,1fr)}
.agenda-language-fields [data-agenda-locale][hidden]{display:none!important}
.language-caption{display:block;margin-bottom:8px;font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;color:#9b9b93}
.palette-editor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.palette-editor-head label{margin:0}
.palette-editor-head small{color:#8d847b;font-size:.68rem;line-height:1.4;text-align:right}
.palette-editor{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px;margin-top:8px}
.palette-editor-item{display:grid;grid-template-columns:38px minmax(0,1fr) 36px;gap:6px;align-items:center}
.palette-editor input[type="color"]{width:38px;height:42px;padding:0;border:1px solid #ddd;background:#fff;border-radius:8px;cursor:pointer}
.palette-editor .input{margin:0;padding:9px 8px;font-size:.74rem;min-width:0}
.palette-remove{appearance:none;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #e0d9d1;border-radius:9px;background:#fff;color:#8a7164;cursor:pointer}
.palette-remove svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.palette-remove:hover{border-color:#d9b8b2;background:#fbf4f2;color:#8c443a}
.palette-remove:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.palette-remove:disabled{opacity:.35;cursor:not-allowed;background:#f6f3ef}
.palette-add-button{margin-top:10px}
.portrait-preview{aspect-ratio:4/5}

@media(max-width:1250px){
  .admin-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-filter-search{grid-column:span 2}.admin-filter-actions{align-self:end}
}
@media(max-width:980px){
  .wedding-nav{grid-template-columns:60px 1fr auto}.nav-actions{gap:9px}.nav-rsvp{padding-left:12px;padding-right:12px}
  .dresscode-section{grid-template-columns:1fr 1.1fr;gap:44px}.dresscode-visual{min-height:480px}
  .agenda-card-controls{grid-template-columns:120px 1fr}.agenda-icon-upload{grid-column:1/-1}
}
@media(max-width:820px){
  .agenda-language-fields{grid-template-columns:1fr}.palette-editor{grid-template-columns:repeat(2,minmax(150px,1fr))}
  .admin-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-filter-search{grid-column:1/-1}.admin-filter-actions{grid-column:1/-1}
}
@media(max-width:680px){
  .wedding-nav{grid-template-columns:44px 1fr auto;padding-left:14px;padding-right:14px}.nav-actions{gap:7px}.language-switch{font-size:.52rem;letter-spacing:.06em}.nav-rsvp{font-size:.52rem;letter-spacing:.08em;padding:9px 9px}
  .dresscode-section{grid-template-columns:1fr;padding-top:72px;padding-bottom:72px}.dresscode-copy h2{font-size:clamp(2.45rem,12.4vw,4.15rem)}.dresscode-visual{min-height:420px}.dresscode-palette span{width:36px;height:36px}
  .admin-filters{grid-template-columns:1fr}.admin-filter-search,.admin-filter-actions{grid-column:auto}.admin-filter-actions{flex-direction:column;align-items:stretch}.admin-filter-actions .button{width:100%}.admin-results-bar{align-items:flex-start;flex-direction:column;gap:4px}
  .agenda-card-controls{grid-template-columns:1fr}.agenda-icon-upload{grid-column:auto}.agenda-editor-card{padding-left:14px;padding-right:14px}.palette-editor{grid-template-columns:1fr}.palette-editor-head{align-items:flex-start;flex-direction:column}.palette-editor-head small{text-align:left}
}
@media(max-width:390px){
  .language-switch{gap:3px}.nav-rsvp{max-width:112px;line-height:1.2;white-space:normal;text-align:center}.dresscode-section{padding-left:18px;padding-right:18px}
}

/* v3.5 - Figma implementation ------------------------------------------------ */
.figma-page-shell{
  width:100%;
  min-height:100svh;
  padding:24px 50px;
  background:#e5e1dc;
  color:#704829;
}
.figma-page-shell *,
.figma-page-shell *::before,
.figma-page-shell *::after{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.figma-header{position:relative;z-index:80;margin-bottom:24px}
.figma-nav{
  min-height:100px;
  display:grid;
  grid-template-columns:200px minmax(0,1fr) 200px;
  align-items:center;
  gap:24px;
  padding:16px 24px;
  border:1px solid rgba(61,48,38,.04);
  border-radius:32px;
  background:rgba(255,255,255,.90);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 8px 32px rgba(61,48,38,.035);
  position:sticky;
  top:14px;
}
.figma-nav-public{display:flex;justify-content:center}
.figma-rsvp-pill{
  justify-self:start;
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:10px 18px;
  border:1px solid rgba(61,48,38,.45);
  border-radius:999px;
  color:#704829;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.64rem;
  transition:background .25s ease,color .25s ease,transform .25s ease;
}
.figma-rsvp-pill:hover{background:#3d3026;color:#fff;transform:translateY(-2px)}
.figma-nav-center{display:flex;align-items:center;justify-content:center;gap:clamp(24px,3vw,58px);min-width:0}
.figma-nav-center>a:not(.figma-nav-logo){position:relative;padding:8px 0;color:#66584d;text-decoration:none;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;white-space:nowrap}
.figma-nav-center>a:not(.figma-nav-logo)::after{content:"";position:absolute;left:50%;right:50%;bottom:2px;height:1px;background:#3d3026;transition:left .25s ease,right .25s ease}
.figma-nav-center>a:not(.figma-nav-logo):hover::after{left:0;right:0}
.figma-nav-logo{display:block;width:50px;height:66px;flex:0 0 50px}
.figma-nav-logo img{width:100%;height:100%;object-fit:contain}
.figma-language{justify-self:end;display:flex;align-items:center;gap:5px;color:#8a7d71;font-size:.58rem;letter-spacing:.12em}
.figma-language a{color:inherit;text-decoration:none;padding:6px 2px;transition:color .2s ease,transform .2s ease}
.figma-language a:hover{transform:translateY(-1px)}
.figma-language a.active{color:#704829;font-weight:700}
.figma-language span{opacity:.45}
.figma-main{display:flex;flex-direction:column;gap:24px}

.figma-hero{
  min-height:min(896px,calc(100svh - 148px));
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:32px;
  background:#d8c9b8 var(--hero-image,none) center center/cover no-repeat;
  background-position:center calc(50% + var(--hero-parallax,0px));
  isolation:isolate;
}
.figma-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(246,239,230,.22),rgba(255,255,255,.02) 48%,rgba(61,48,38,.06));z-index:0}
.figma-hero-shade{position:absolute;inset:0;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.08),rgba(61,48,38,.06));z-index:0;pointer-events:none}
.figma-hero-arch{
  width:min(636px,calc(100% - 48px));
  min-height:756px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:2;
  padding:84px 72px 68px;
  border-radius:320px 320px 28px 28px;
  background:rgba(255,254,251,.94);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  text-align:center;
  box-shadow:0 28px 70px rgba(61,48,38,.09);
}
.figma-hero-arch-stroke{position:absolute;inset:18px;border:3px solid rgba(182,160,130,.24);border-radius:302px 302px 18px 18px;pointer-events:none}
.figma-hero-mark{width:48px;height:64px;object-fit:contain;margin-bottom:20px;opacity:.78}
.figma-kicker{text-transform:uppercase;letter-spacing:.42em;font-size:.62rem;line-height:1.55;color:#807267;font-weight:600}
.figma-hero h1,
.figma-section h2,
.figma-venue h2,
.figma-rsvp-section h2{
  font-family:var(--heading-font);
  font-weight:400;
  color:#704829;
}
.figma-hero h1{font-size:clamp(3.7rem,5.8vw,6.1rem);line-height:.98;letter-spacing:-.045em;margin:18px 0 10px;max-width:100%}
.lang-ka .figma-hero h1{font-size:clamp(3.25rem,5.1vw,5.6rem);letter-spacing:-.025em;line-height:1.08}
.figma-invite-label,.figma-date{margin:0;text-transform:uppercase;letter-spacing:.3em;font-size:.68rem;color:#75675c}
.figma-date{margin-top:24px;color:#704829;font-weight:600}
.figma-countdown{width:100%;max-width:520px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:24px 0 0;border-top:1px solid rgba(61,48,38,.18);border-bottom:1px solid rgba(61,48,38,.18)}
.figma-countdown>div{position:relative;padding:18px 12px}
.figma-countdown>div+div::before{content:"";position:absolute;left:0;top:24%;bottom:24%;width:1px;background:rgba(61,48,38,.18)}
.figma-countdown strong{display:block;font-family:var(--heading-font);font-weight:400;font-size:clamp(2.3rem,3.4vw,4rem);line-height:1;color: #704829;}
.figma-countdown span{display:block;margin-top:7px;text-transform:uppercase;letter-spacing:.22em;font-size:.5rem;color:#807267}
.figma-hero-note{max-width:500px;margin:22px auto 0;color:#807267;font-size:.91rem}
.figma-button{display:inline-flex;align-items:center;justify-content:center;gap:24px;width:max-content;max-width:100%;margin-top:26px;padding:14px 24px;border: 1px solid rgb(38 61 51 / 48%);border-radius:999px;background: rgb(146 199 150 / 42%);color: #000000;text-decoration:none;text-transform:uppercase;letter-spacing:.19em;font-family:inherit;font-size:.62rem;cursor:pointer;transition:transform .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease}
.figma-button:hover{transform:translateY(-3px);background: #43673c;color:#fff;/* box-shadow:0 12px 26px rgba(61,48,38,.12); */}
.figma-button-outline{background:transparent}

.figma-section{padding:clamp(78px,6.5vw,120px) clamp(40px,5.2vw,100px);border-radius:48px;background:#faf7f1;overflow:hidden}
.figma-section-head{max-width:1360px;margin:0 auto 72px;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,390px);gap:60px;align-items:end}
.figma-section h2,.figma-venue h2,.figma-rsvp-section h2{font-size:clamp(3rem,4.7vw,5.6rem);line-height:1.06;letter-spacing:-.035em;margin:12px 0 0}
.lang-ka .figma-section h2,.lang-ka .figma-venue h2,.lang-ka .figma-rsvp-section h2{letter-spacing:-.02em;line-height:1.15}
.figma-section-head p{margin:0;color:#807267;font-size:1rem;max-width:390px}
.figma-agenda-track{max-width:1360px;margin:0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative}
.figma-agenda-track::before{content:"";position:absolute;left:8%;right:8%;top:55px;height:1px;background:rgba(61,48,38,.18);transform:scaleX(0);transform-origin:left;transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.figma-agenda-track.is-visible::before{transform:scaleX(1)}
.figma-agenda-item{position:relative;z-index:1;text-align:center;padding:0 18px}
.figma-agenda-icon{width:48px;height:48px;margin:0 auto 16px;display:grid;place-items:center;border:1px solid rgba(61,48,38,.08);border-radius:50%;background:#f1e8dc;font-family:var(--heading-font);font-size:1.25rem;transition:transform .25s ease,background .25s ease}
.figma-agenda-icon img{width:25px;height:25px;object-fit:contain}
.figma-agenda-item:hover .figma-agenda-icon{transform:translateY(-5px) rotate(-3deg);background:#eadfD1}
.figma-agenda-dot{display:block;width:7px;height:7px;margin:0 auto 18px;border-radius:50%;background:#bca58d;box-shadow:0 0 0 8px #faf7f1}
.figma-agenda-item time{display:block;font-family:var(--heading-font);font-size:1.2rem;letter-spacing:.08em}
.figma-agenda-item h3{font-family:var(--heading-font);font-size:1.25rem;font-weight:400;line-height:1.3;margin:8px 0 5px;color:#704829}
.figma-agenda-item p{margin:0;color:#807267;font-size:.78rem}

.figma-venue{min-height:720px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:clamp(60px,7vw,110px);align-items:center;padding:clamp(92px,7vw,138px) clamp(40px,4.8vw,92px);border-radius:48px;background:#e5e1dc;overflow:hidden}
.figma-venue-collage{height:540px;position:relative;min-width:0}
.figma-venue-frame{position:absolute;inset:20px 0 0 0;border:3px solid #bca58d;border-radius:32px}
.figma-venue-photo{position:absolute;width:41%;height:100%;background:#d9c9b6 var(--venue-photo,none) center/cover no-repeat;box-shadow:0 20px 45px rgba(61,48,38,.08);transition:transform .55s cubic-bezier(.22,.61,.36,1),filter .35s ease}
.figma-venue-photo-top{left:5%;top:-70px;border-radius:999px 999px 18px 18px;background-position:center}
.figma-venue-photo-bottom{right:5%;bottom:-70px;border-radius:18px 18px 999px 999px;background-position:70% center}
.figma-venue-collage:hover .figma-venue-photo-top{transform:translateY(-8px) rotate(-1deg)}
.figma-venue-collage:hover .figma-venue-photo-bottom{transform:translateY(8px) rotate(1deg)}
.figma-venue-copy{max-width:560px}
.figma-venue-copy>p{margin:28px 0;color:#807267;font-size:.98rem}
.figma-venue-address{padding:22px 0;border-top:1px solid rgba(61,48,38,.18);border-bottom:1px solid rgba(61,48,38,.18)}
.figma-venue-address strong,.figma-venue-address span{display:block}
.figma-venue-address strong{font-family:var(--heading-font);font-weight:400;font-size:1.15rem;letter-spacing:.04em}
.figma-venue-address span{margin-top:6px;color:#807267;font-size:.82rem}

.figma-dresscode{background:linear-gradient(180deg,#fbf7f0 0%,rgba(251,247,240,.54) 100%)}
.figma-dresscode-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.8fr);gap:70px;align-items:start;margin-bottom:46px}
.figma-dresscode-head>div:first-child{max-width:700px}
.figma-dresscode-head h2{margin-bottom:18px}
.figma-dresscode-copy p,.figma-dresscode-note{color:#807267;margin:0;max-width:620px}
.figma-dresscode-note{font-size:.82rem}
.figma-palette{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.figma-palette span{width:42px;height:42px;border-radius:50%;background:var(--swatch);border:1px solid rgba(61,48,38,.12);box-shadow:0 4px 12px rgba(61,48,38,.06);transition:transform .2s ease}
.figma-palette span:hover{transform:translateY(-4px) scale(1.06)}
.figma-dresscode-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;filter:drop-shadow(0 24px 35px rgba(66,48,32,.09))}
.figma-dress-card{height:300px;display:grid;place-items:center;align-content:center;gap:22px;position:relative;overflow:hidden;background:linear-gradient(158deg,#eadfd1 6%,#cbb9a7 94%);transition:transform .35s ease,box-shadow .35s ease}
.figma-dress-card:nth-child(2){background:linear-gradient(158deg,#e8ddd0 6%,#c4b09b 94%)}
.figma-dress-card:nth-child(3){background:linear-gradient(158deg,#e5d9cb 6%,#bda58f 94%)}
.figma-dress-card.has-image{background-image:linear-gradient(rgba(234,223,209,.28),rgba(203,185,167,.25)),var(--dress-image);background-size:cover;background-position:center}
.figma-dress-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 36%,rgba(255,255,255,.28),transparent 34%)}
.figma-dress-card:hover{transform:translateY(-8px);box-shadow:0 24px 45px rgba(61,48,38,.12)}
.figma-dress-card img{position:relative;width:50px;height:66px;object-fit:contain;opacity:.58;transition:transform .35s ease}
.figma-dress-card:hover img{transform:scale(1.08) rotate(-2deg)}
.figma-dress-card span{position:relative;color:#6d5d50;text-transform:uppercase;letter-spacing:.3em;font-size:.62rem}

.figma-rsvp-section{min-height:560px;position:relative;display:flex;flex-direction:column;align-items:center;padding:clamp(80px,7vw,120px) 24px;border-radius:32px;background:linear-gradient(120deg,#fff 8%,#f8f3eb 53%,rgba(238,230,220,.8) 100%);overflow:hidden;text-align:center}
.figma-rsvp-section::before,.figma-rsvp-section::after{content:"";position:absolute;width:470px;height:470px;border:1px solid rgba(61,48,38,.11);border-radius:50%;pointer-events:none}
.figma-rsvp-section::before{left:-320px;bottom:-260px}.figma-rsvp-section::after{right:-320px;top:-240px}
.figma-rsvp-heading{position:relative;z-index:1;max-width:720px}
.figma-rsvp-heading h2{margin-top:14px}
.figma-rsvp-heading>p{max-width:560px;margin:18px auto 0;color:#807267}
.figma-rsvp-heading>span{display:block;margin-top:10px;color:#75665a;text-transform:uppercase;letter-spacing:.2em;font-size:.62rem}
.rsvp-envelope-experience{width:min(100%,980px);position:relative;z-index:2;margin-top:34px}
.rsvp-envelope-trigger{appearance:none;border:0;background:transparent;width:min(620px,100%);height:390px;position:relative;display:block;margin:0 auto;padding:0;cursor:pointer;perspective:1200px;transition:height .55s ease,opacity .35s ease,transform .45s ease}
.rsvp-envelope-paper{position:absolute;left:7%;right:7%;bottom:22px;height:235px;border:1px solid rgba(61,48,38,.16);border-radius:18px;background:#e8ddcf;box-shadow:0 24px 54px rgba(61,48,38,.10)}
.rsvp-envelope-front{position:absolute;left:7%;right:7%;bottom:22px;height:235px;overflow:hidden;border-radius:18px;background:linear-gradient(145deg,#e5d8c9,#d9c7b6);clip-path:polygon(0 38%,50% 82%,100% 38%,100% 100%,0 100%);z-index:5}
.rsvp-envelope-card{position:absolute;left:18%;right:18%;bottom:80px;min-height:260px;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:54px 28px 32px;border:1px solid rgba(61,48,38,.15);border-radius:180px 180px 16px 16px;background:#fffefb;box-shadow:0 22px 44px rgba(61,48,38,.08);transition:transform .72s cubic-bezier(.22,.61,.36,1),opacity .35s ease,box-shadow .35s ease}
.rsvp-envelope-card img{width:42px;height:54px;object-fit:contain;margin-bottom:14px;opacity:.7}
.rsvp-envelope-caption{text-transform:uppercase;letter-spacing:.24em;color:#807267;font-size:.58rem}
.rsvp-envelope-card strong{margin-top:8px;font-family:var(--heading-font);font-size:clamp(1.35rem,2.3vw,2rem);font-weight:400;color:#704829}
.rsvp-envelope-open-label{margin-top:20px;display:inline-flex;align-items:center;gap:12px;padding:10px 17px;border:1px solid rgba(61,48,38,.3);border-radius:999px;text-transform:uppercase;letter-spacing:.16em;color:#704829;font-size:.58rem}
.rsvp-envelope-trigger:hover .rsvp-envelope-card{transform:translateY(-14px);box-shadow:0 32px 58px rgba(61,48,38,.12)}
.rsvp-envelope-experience.is-open .rsvp-envelope-card{transform:translateY(-128px);opacity:0;pointer-events:none}
.rsvp-envelope-experience.is-open .rsvp-envelope-trigger{height:220px;cursor:default}
.rsvp-form-reveal{max-height:0;opacity:0;visibility:hidden;transform:translateY(28px);overflow:hidden;transition:max-height .95s cubic-bezier(.22,.61,.36,1),opacity .45s ease .22s,transform .55s ease .18s,visibility 0s linear .95s}
.rsvp-envelope-experience.is-open .rsvp-form-reveal{max-height:5000px;opacity:1;visibility:visible;transform:none;transition:max-height 1.15s cubic-bezier(.22,.61,.36,1),opacity .5s ease .25s,transform .6s ease .18s,visibility 0s}
.figma-rsvp-arch{width:min(720px,100%);position:relative;margin:8px auto 0;padding:150px 80px 76px;border:4px solid #bca58d;border-radius:360px 360px 24px 24px;background:#efe8e0;text-align:left;box-shadow:0 28px 70px rgba(61,48,38,.08)}
.rsvp-close{position:absolute;top:28px;right:34px;width:38px;height:38px;border:1px solid rgba(61,48,38,.18);border-radius:50%;background:rgba(255,255,255,.55);color:#704829;font:inherit;font-size:1rem;cursor:pointer;transition:transform .2s ease,background .2s ease}
.rsvp-close:hover{transform:rotate(90deg);background:#fff}
.figma-rsvp-arch .landing-rsvp-context{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:20px 0;border-top:1px solid rgba(61,48,38,.18);border-bottom:1px solid rgba(61,48,38,.18)}
.figma-rsvp-arch .landing-rsvp-context>div:first-child{display:grid;gap:4px}
.figma-rsvp-arch .landing-rsvp-caption{text-transform:uppercase;letter-spacing:.2em;color:#807267;font-size:.58rem}
.figma-rsvp-arch .landing-rsvp-context strong{font-family:var(--heading-font);font-size:1.5rem;font-weight:400}
.figma-rsvp-arch .landing-rsvp-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 14px;color:#807267;font-size:.74rem}
.figma-rsvp-arch .landing-rsvp-notice{margin:18px 0 0}
.figma-rsvp-arch .landing-rsvp-action-notice{margin-top:14px}
.figma-rsvp-arch .landing-rsvp-form{margin:0;text-align:left}
.figma-rsvp-arch .landing-guest-list{margin-top:8px}
.figma-rsvp-arch .landing-guest-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid rgba(61,48,38,.18)}
.figma-rsvp-arch .landing-guest-person{min-width:0;display:grid;gap:3px}
.figma-rsvp-arch .landing-guest-person strong{font-family:var(--heading-font);font-size: 14px;font-weight:400;color:#704829}
.figma-rsvp-arch .landing-guest-person span{color:#807267;text-transform:uppercase;letter-spacing:.12em;font-size:.65rem}
.figma-rsvp-arch .segmented{display:flex;gap:8px;align-items:center;padding: 0px 10px;}
.figma-rsvp-arch .choice{position:relative;display:block}
.figma-rsvp-arch .choice input{position:absolute;opacity:0;pointer-events:none}
.figma-rsvp-arch .choice span{display:block;padding:10px 14px;border:1px solid rgba(61,48,38,.18);border-radius:999px;background:rgba(255,253,249,.78);color:#704829;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.figma-rsvp-arch .choice span:hover{transform:translateY(-2px)}
.figma-rsvp-arch .choice input:checked+span{background: #704829;border-color: #704829;color:#fff}
.figma-rsvp-arch .choice.no input:checked+span{background:#9b5149;border-color:#9b5149;color:#fff}
.figma-rsvp-arch .choice input:disabled+span{cursor:default;opacity:.68;transform:none}
.figma-rsvp-arch .landing-rsvp-actions{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:28px;flex-direction: column;}
.figma-rsvp-arch .landing-rsvp-lock-note{color:#807267;font-size:.76rem;line-height:1.6}
.figma-rsvp-arch .landing-rsvp-save{margin:0;flex:0 0 auto;width: 100%;}

.figma-footer{min-height:150px;margin-top:24px;padding:30px 92px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;border-radius:24px;background:transparent;color:#807267;text-transform:uppercase;letter-spacing:.2em;font-size:.56rem}
.figma-footer-brand{display:flex;align-items:center;gap:18px;color:#704829;text-transform:none;letter-spacing:0;font-family:var(--heading-font);font-size:1rem}
.figma-footer-brand img{width:38px;height:52px;object-fit:contain}
.figma-footer>div:last-child{text-align:right}

/* v3.5 motion */
.motion-reveal{opacity:0;transform:translateY(36px);transition:opacity .85s ease,transform .85s cubic-bezier(.22,.61,.36,1)}
.motion-reveal.is-visible{opacity:1;transform:none}
.motion-stagger>*{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s cubic-bezier(.22,.61,.36,1);transition-delay:calc(var(--stagger-index,0) * 90ms)}
.motion-stagger.is-visible>*{opacity:1;transform:none}
.site-ready .motion-rise{animation:figmaHeroRise .95s cubic-bezier(.22,.61,.36,1) both}
@keyframes figmaHeroRise{from{opacity:0;transform:translateY(28px) scale(.985)}to{opacity:1;transform:none}}

.preview-mode .figma-hero{min-height:calc(100svh - 148px)}
.preview-mode .figma-hero-arch{min-height: min(676px,calc(100svh - 190px));}

@media(max-width:1180px){
  .figma-page-shell{padding-left:24px;padding-right:24px}
  .figma-nav{grid-template-columns:170px minmax(0,1fr) 120px}
  .figma-nav-center{gap:22px}
  .figma-nav-center>a:not(.figma-nav-logo){font-size:.62rem;letter-spacing:.12em}
  .figma-venue{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:55px}
  .figma-rsvp-arch{padding-left:58px;padding-right:58px}
}

@media(max-width:980px){
  .figma-page-shell{padding:14px}
  .figma-header{margin-bottom:14px}
  .figma-nav{min-height:78px;grid-template-columns:minmax(100px,1fr) 64px minmax(90px,1fr);padding:8px 14px;border-radius:24px}
  .figma-nav-center{display:contents}
  .figma-nav-center>a:not(.figma-nav-logo){display:none}
  .figma-nav-center .figma-nav-logo{grid-column:2;justify-self:center}
  .figma-nav-logo{width:38px;height:52px;flex-basis:38px}
  .figma-rsvp-pill{grid-column:1;grid-row:1;justify-self:start;padding:9px 12px;font-size:.54rem;letter-spacing:.1em}
  .figma-language{grid-column:3;grid-row:1;justify-self:end}
  .figma-nav-public{display:flex;justify-content:center}
  .figma-nav-public .figma-nav-logo{width:38px;height:52px}
  .figma-main{gap:14px}
  .figma-hero{min-height:calc(100svh - 106px);border-radius:24px}
  .figma-hero-arch{min-height:min(720px,calc(100svh - 136px));width:min(590px,calc(100% - 34px));padding:72px 48px 56px}
  .figma-section{border-radius:32px;padding-left:38px;padding-right:38px}
  .figma-section-head{grid-template-columns:1fr;gap:20px;margin-bottom:58px}
  .figma-agenda-track{grid-template-columns:repeat(5,minmax(140px,1fr));overflow-x:auto;padding-bottom:12px;scrollbar-width:thin}
  .figma-agenda-track::before{left:70px;right:auto;width:calc(700px - 140px)}
  .figma-venue{grid-template-columns:1fr;padding:92px 38px;gap:90px;border-radius:32px}
  .figma-venue-collage{height:500px;max-width:760px;width:100%;margin:auto}
  .figma-venue-copy{max-width:680px}
  .figma-dresscode-head{grid-template-columns:1fr;gap:24px}
  .figma-footer{padding:26px 38px}
}

@media(max-width:680px){
  .figma-page-shell{padding:0}
  .figma-nav{min-height:70px;border-radius:20px;padding:7px 10px;grid-template-columns:minmax(92px,1fr) 48px minmax(72px,1fr)}
  .figma-nav-logo{width:34px;height:48px}
  .figma-rsvp-pill{max-width:118px;padding:8px 9px;line-height:1.25;text-align:center;white-space:normal}
  .figma-language{font-size:.52rem;gap:3px}
  .figma-hero{min-height:calc(100svh - 90px);border-radius:20px;background-position:58% center}
  .figma-hero-arch{width:calc(100% - 24px);min-height:auto;padding:64px 20px 42px;border-radius:48vw 48vw 20px 20px}
  .figma-hero-arch-stroke{inset:10px;border-width:2px;border-radius:calc(48vw - 10px) calc(48vw - 10px) 14px 14px}
  .figma-hero-mark{width: 70px;height: 50px;margin-bottom: 0;}
  .figma-kicker{font-size: .75rem;letter-spacing:.26em}
  .figma-hero h1{font-size:clamp(2.7rem,13vw,4rem);margin:14px 0 8px}
  .lang-ka .figma-hero h1{font-size:clamp(2.55rem,12.5vw,3.8rem)}
  .figma-invite-label,.figma-date{font-size:.57rem;letter-spacing:.16em;line-height:1.6}
  .figma-date{margin-top:16px}
  .figma-countdown{margin-top:18px}
  .figma-countdown>div{padding:15px 4px}
  .figma-countdown strong{font-size:clamp(1.65rem,8.5vw,2.25rem)}
  .figma-countdown span{font-size:.42rem;letter-spacing:.07em}
  .figma-hero-note{font-size:.8rem;line-height:1.55;margin-top:16px}
  .figma-button{padding:12px 18px;gap:18px;font-size:.56rem;letter-spacing:.13em}
  .figma-section{padding: 32px 18px;border-radius:24px}
  .figma-section h2,.figma-venue h2,.figma-rsvp-section h2{font-size:clamp(2.4rem,12vw,3.7rem)}
  .figma-section-head{margin-bottom:44px}
  .figma-section-head p{font-size:.9rem}
  .figma-agenda-track{display:grid;grid-template-columns:1fr;overflow:visible;padding:0 0 0 12px}
  .figma-agenda-track::before{left:35px;top:28px;bottom:28px;width:1px;height:auto;right:auto;transform:scaleY(0);transform-origin:top}
  .figma-agenda-track.is-visible::before{transform:scaleY(1)}
  .figma-agenda-item{display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto auto;gap:0 18px;text-align:left;padding:0 0 28px}
  .figma-agenda-icon{grid-column:1;grid-row:1/4;margin:0;align-self:start}
  .figma-agenda-dot{display:none}
  .figma-agenda-item time,.figma-agenda-item h3,.figma-agenda-item p{grid-column:2;text-align:left}
  .figma-agenda-item time{font-size:1.05rem}
  .figma-agenda-item h3{font-size:1.16rem;margin:3px 0 2px}
  .figma-venue{padding:80px 18px;gap:72px;border-radius:24px}
  .figma-venue-collage{height:390px}
  .figma-venue-frame{inset:18px 0 0;border-width:2px;border-radius:20px}
  .figma-venue-photo{width:43%;height:90%}
  .figma-venue-photo-top{left:5%;top:-48px}
  .figma-venue-photo-bottom{right:5%;bottom:-48px}
  .figma-dresscode-head{margin-bottom:30px}
  .figma-dresscode-cards{gap:8px}
  .figma-dress-card{height:150px;gap:10px}
  .figma-dress-card img{width:34px;height:46px}
  .figma-dress-card span{font-size:.48rem;letter-spacing:.14em}
  .figma-palette span{width:34px;height:34px}
  .figma-rsvp-section{padding: 72px 6px;border-radius:24px}
  .figma-rsvp-heading>p{font-size:.9rem}
  .rsvp-envelope-experience{margin-top:26px}
  .rsvp-envelope-trigger{height:300px;width:100%}
  .rsvp-envelope-paper,.rsvp-envelope-front{left:4%;right:4%;height:180px;bottom:18px}
  .rsvp-envelope-card{left:11%;right:11%;bottom:62px;min-height:210px;padding:44px 18px 24px;border-radius:44vw 44vw 14px 14px}
  .rsvp-envelope-card img{width:34px;height:44px}
  .rsvp-envelope-card strong{font-size:1.35rem}
  .rsvp-envelope-experience.is-open .rsvp-envelope-card{transform:translateY(-92px);opacity:0}
  .rsvp-envelope-experience.is-open .rsvp-envelope-trigger{height:155px}
  .figma-rsvp-arch{padding:110px 18px 34px;border-width:3px;border-radius:48vw 48vw 20px 20px}
  .rsvp-close{top:20px;right:20px}
  .figma-rsvp-arch .landing-rsvp-context{align-items:flex-start;flex-direction:column;gap:12px}
  .figma-rsvp-arch .landing-rsvp-summary{justify-content:flex-start}
  .figma-rsvp-arch .landing-guest-row{grid-template-columns:1fr;gap:12px;padding:18px 0}
  .figma-rsvp-arch .segmented{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%}
  .figma-rsvp-arch .choice span{width:100%;padding:10px 8px;text-align:center;white-space:normal;font-size:.76rem}
  .figma-rsvp-arch .landing-rsvp-actions{align-items:stretch;flex-direction:column;gap:18px}
  .figma-rsvp-arch .landing-rsvp-save{width:100%;margin:0}
  .figma-footer{min-height:130px;padding:24px 18px;grid-template-columns:1fr;gap:9px;text-align:center;border-radius:20px}
  .figma-footer-brand{justify-content:center}
  .figma-footer>div:last-child{text-align:center}
}

@media(max-width:390px){
  .figma-rsvp-pill{max-width:104px;font-size:.48rem}
  .figma-hero-arch{padding-left:15px;padding-right:15px}
  .figma-invite-label,.figma-date{font-size:.53rem}
  .figma-countdown span{font-size:.38rem}
  .figma-section,.figma-venue{padding-left:14px;padding-right:14px}
  .figma-venue-collage{height:350px}
  .figma-dress-card{height:132px}
  .rsvp-envelope-card{left:8%;right:8%}
  .figma-rsvp-arch{padding-left:14px;padding-right:14px}
}

@media(prefers-reduced-motion:reduce){
  .motion-reveal,.motion-stagger>*,.motion-rise{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
  .figma-agenda-track::before{transform:none!important;transition:none!important}
  .figma-venue-photo,.figma-button,.figma-dress-card,.figma-dress-card img,.figma-agenda-icon,.rsvp-envelope-card,.rsvp-envelope-trigger,.rsvp-form-reveal{transition:none!important}
}

/* v3.6 - Figma 2:193 pixel-alignment pass ----------------------------- */
@font-face{
  font-family:"GL Parizuli";
  src:url("../fonts/parizuli/gl-parizuli-regular-59309747211.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"GL Parizuli";
  src:url("../fonts/parizuli/gl-parizuli-medium-74694320427.ttf") format("truetype");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"GL Parizuli";
  src:url("../fonts/parizuli/gl-parizuli-bold-74694320427.ttf") format("truetype");
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

.figma-page-shell{
  --display-font:"GL Parizuli","Noto Serif Georgian",Georgia,"Times New Roman",serif;
  --body-font:"Noto Sans Georgian",Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif-font:"Noto Serif Georgian",Georgia,"Times New Roman",serif;
  font-family:var(--body-font);
}
.figma-hero h1,
.figma-section h2,
.figma-venue h2,
.figma-rsvp-section h2{
  font-family:var(--display-font);
  font-weight:400;
}
.figma-countdown strong,
.figma-agenda-item time,
.figma-agenda-item h3,
.figma-rsvp-arch .landing-guest-person strong{
  font-family:var(--serif-font);
}

/* Exact desktop measurements from Figma frame 2:193. */
@media (min-width:1281px){
  .figma-page-shell{padding:24px 50px;}
  .figma-header{margin-bottom:24px;}
  .figma-nav{
    width:100%;
    height:100px;
    min-height:100px;
    grid-template-columns:200px minmax(0,1fr) 200px;
    padding:0 24px;
    border:0;
    border-radius:32px;
    background:rgba(255,255,255,.90);
    box-shadow:none;
  }
  .figma-rsvp-pill{
    min-height:0;
    padding:12px 18px;
    font-size:10.24px;
    line-height:15.872px;
    letter-spacing:2.2528px;
  }
  .figma-nav-center{gap:58px;height:31.859px;}
  .figma-nav-center>a:not(.figma-nav-logo){
    width:120px;
    padding:8px 0;
    font-size:12px;
    line-height:15.872px;
    letter-spacing:2.2528px;
    text-align:center;
  }
  .figma-nav-center>a:not(.figma-nav-logo)::after{bottom:0;}
  .figma-nav-logo{width:50px;height:65.789px;flex-basis:50px;}
  .figma-language{font-size:9.28px;line-height:14.384px;letter-spacing:1.1136px;}
  .figma-main{gap:48px;}

  .figma-hero{
    width:100%;
    height:896px;
    min-height:896px;
    border-radius:32px;
  }
  .figma-hero-arch{
    width: 600px;
    min-height: 670px;
    padding: 30px 20px;
    border-radius:360px 360px 0 0;
    background:#fffefb;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .figma-hero-arch-stroke{
    inset:auto;
    left:17px;
    top:18px;
    width: 568px;
    height: 638px;
    border:4px solid rgba(182,160,130,.25);
    border-radius:360px 360px 0 0;
  }
  .figma-hero-mark{
    position:absolute;
    top: 64px;
    left:50%;
    transform:translateX(-50%);
    width: 68px;
    height: 68px;
    margin:0;
    object-fit:contain;
  }
  .figma-kicker{font-size:9.92px;line-height:15.376px;letter-spacing:4.1664px;}
  .figma-hero h1{
    margin:24px 0;
    font-size:48px;
    line-height:1.14;
    letter-spacing:-2.5px;
    white-space:nowrap;
  }
  .lang-ka .figma-hero h1{font-size: 48px;line-height:1.14;letter-spacing:-2.5px;}
  .figma-invite-label,.figma-date{
    font-size:10.88px;
    line-height:16.864px;
    letter-spacing:3.4816px;
  }
  .figma-date{margin-top:24px;}
  .figma-countdown{
    max-width:520px;
    height:116px;
    margin-top:16px;
  }
  .figma-countdown>div{padding:20px 16px 18px;}
  .figma-countdown>div+div{padding-left:22px;}
  .figma-countdown>div+div::before{top:26.56px;bottom:auto;height:67.719px;}
  .figma-countdown strong{font-size: 46px;line-height: 56px;}
  .figma-countdown span{margin-top:6px;font-size:8.32px;line-height:12.896px;letter-spacing:2.1632px;}
  .figma-hero-note{
    width:100%;
    max-width:476px;
    margin:24px auto 0;
    font-size:14.72px;
    line-height:22.816px;
  }
  .figma-button{
    margin-top:24px;
    padding:15px 25px;
    gap:26px;
    font-size: 14px;
    line-height:13.608px;
    letter-spacing: 1px;
    font-feature-settings: 'case' on;
  }

  .figma-section{
    width:100%;
    padding:120px 100px;
    border-radius:48px;
  }
  .figma-section-head{
    width:100%;
    max-width:1360px;
    margin:0 auto 72px;
    grid-template-columns:minmax(0,1fr) 390px;
    align-items:center;
  }
  .figma-section h2,.figma-venue h2,.figma-rsvp-section h2{
    margin:12px 0 0;
    font-size:60px;
    line-height:118.56px;
    letter-spacing:-3.12px;
  }
  .lang-ka .figma-section h2,.lang-ka .figma-venue h2,.lang-ka .figma-rsvp-section h2{
    font-size:60px;
    line-height:118.56px;
    letter-spacing:-3.12px;
  }
  .figma-section-head p{font-size:16px;line-height:24.8px;}
  .figma-agenda-track{width:1360px;max-width:1360px;height:182.094px;grid-template-columns:repeat(5,272px);}
  .figma-agenda-track::before{left:108.8px;right:auto;top:55px;width:1142.406px;}
  .figma-agenda-item{width:272px;height:182.094px;padding:0 18px;}
  .figma-agenda-icon{width:48px;height:48px;margin-bottom:16px;}
  .figma-agenda-icon img{width:24px;height:24px;}
  .figma-agenda-dot{width:7px;height:7px;margin-bottom:18px;box-shadow:0 0 0 8px #faf7f1;}
  .figma-agenda-item time{font-size:19.2px;line-height:29.76px;letter-spacing:1.536px;}
  .figma-agenda-item h3{height:39px;margin:0;padding-top:8px;font-size:20px;line-height:31px;}
  .figma-agenda-item p{height:25px;padding-top:5px;font-size:12.48px;line-height:19.344px;}

  .figma-venue{
    width:100%;
    min-height:816px;
    grid-template-columns:minmax(0,975.59px) 650.41px;
    gap:110px;
    padding:138px 92px;
    border-radius:0;
  }
  .figma-venue-collage{width:100%;height:540.625px;}
  .figma-venue-frame{inset:0;border:4px solid #bca58d;border-radius:32px;}
  .figma-venue-photo-top{left: 80px;top:-108.41px;width: 320px;height:538px;border-radius:1000px 1000px 0 0;}
  .figma-venue-photo-bottom{left: 460px;right:auto;top:101.59px;bottom:auto;width: 320px;height:538px;border-radius:0 0 1000px 1000px;}
  .figma-venue-copy{width:560px;max-width:560px;height:540.625px;display:flex;flex-direction:column;justify-content:center;}
  .figma-venue-copy>p{margin:28px 0 0;padding:24px 0;border-top:1px solid rgba(61,48,38,.18);border-bottom:1px solid rgba(61,48,38,.18);font-size:15.68px;line-height:24.304px;}
  .figma-venue-address{display:none;}
  .figma-venue-copy .figma-button{margin-top:30px;}

  .figma-dresscode{padding:138px 92px;}
  .figma-dresscode-head{grid-template-columns:minmax(0,1fr) 626.328px;gap:72px;margin-bottom:48px;align-items:start;}
  .figma-dresscode-copy{width:626.328px;}
  .figma-dresscode-copy p{font-size:15.68px;line-height:24.304px;}
  .figma-dresscode-note{font-size:12.48px;line-height:21.216px;}
  .figma-palette{min-height:72px;height:auto;margin-top:0;align-items:center;gap:12px;}
  .figma-palette span{width:42px;height:42px;}
  .figma-dresscode-cards{gap:24px;}
  .figma-dress-card{height:300px;padding:48px;gap:22px;}
  .figma-dress-card img{width:50px;height:65.789px;}
  .figma-dress-card span{font-size:9.92px;line-height:15.376px;letter-spacing:3.472px;}

  .figma-rsvp-section{min-height:510px;padding:100px 24px;border-radius:32px;}
  .figma-rsvp-heading{max-width:1020px;}
  .figma-rsvp-heading>p{margin-top:20px;font-size:16px;line-height:24.8px;}
  .figma-rsvp-heading>span{font-size:9.92px;line-height:15.376px;letter-spacing:2.1824px;}

  /* The envelope is an interaction layer added on top of the Figma form. */
  .rsvp-envelope-experience{width:980px;margin-top:36px;}
  .rsvp-envelope-trigger{width:720px;height:520px;}
  .rsvp-envelope-paper{
    left:0;right:0;bottom:26px;height:330px;border-radius:24px;
    background:linear-gradient(155deg,#eee3d5 0%,#dfcfbd 100%);
    border:1px solid rgba(61,48,38,.18);
    box-shadow:0 30px 70px rgba(61,48,38,.12);
  }
  .rsvp-envelope-front{
    left:0;right:0;bottom:26px;height:330px;border-radius:24px;
    background:linear-gradient(145deg,#e9ddce 0%,#d4bfaa 100%);
    clip-path:polygon(0 32%,50% 84%,100% 32%,100% 100%,0 100%);
  }
  .rsvp-envelope-card{
    left:84px;right:84px;bottom:96px;min-height:350px;
    padding:80px 44px 42px;
    border-radius:276px 276px 0 0;
    background:#fffefb;
    border:1px solid rgba(61,48,38,.16);
  }
  .rsvp-envelope-card::after{
    content:"";
    position:absolute;
    inset:18px;
    border:2px solid rgba(182,160,130,.25);
    border-radius:258px 258px 0 0;
    pointer-events:none;
  }
  .rsvp-envelope-card img{width:50px;height:66px;margin-bottom:18px;}
  .rsvp-envelope-caption{font-size:9.28px;line-height:14.384px;letter-spacing:2.2272px;}
  .rsvp-envelope-card strong{margin-top:10px;font-family:var(--display-font);font-size:34px;line-height:1.35;}
  .rsvp-envelope-open-label{margin-top:28px;padding:12px 20px;font-size:10.08px;line-height:13.608px;letter-spacing:2.2176px;}
  .rsvp-envelope-trigger:hover .rsvp-envelope-card{transform:translateY(-22px);}
  .rsvp-envelope-experience.is-open .rsvp-envelope-card{transform:translateY(-180px);}
  .rsvp-envelope-experience.is-open .rsvp-envelope-trigger{height:250px;}

  .figma-rsvp-arch{
    width:720px;
    min-height:811px;
    margin-top:8px;
    padding:150px 80px 80px;
    border:4px solid #bca58d;
    border-radius:360px 360px 0 0;
    background:#efe8e0;
    box-shadow:none;
  }
  .figma-rsvp-arch .landing-rsvp-context{padding:20px 0;}
  .figma-rsvp-arch .landing-rsvp-caption{font-size:9.28px;line-height:14.384px;letter-spacing:2.2272px;}
  .figma-rsvp-arch .landing-rsvp-context strong{font-family:var(--body-font);font-size:24px;line-height:normal;}
  .figma-rsvp-arch .landing-rsvp-summary{font-size:12.16px;line-height:18.848px;}
  .figma-rsvp-arch .landing-guest-row{padding:20px 0;}
  .figma-rsvp-arch .landing-guest-person strong{font-size:17.28px;line-height:26.784px;}
  .figma-rsvp-arch .landing-guest-person span{font-size:11.52px;line-height:17.856px;letter-spacing:1.3824px;}
  .figma-rsvp-arch .choice span{padding:10px 14px;font-size:14.4px;line-height:22.32px;}
  .figma-rsvp-arch .landing-rsvp-lock-note{width: 100%;font-size:12.8px;line-height:20.48px;text-align: center;}

  .figma-footer{min-height:150px;padding:30px 92px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:30px;border-radius:24px;font-size:8.96px;line-height:13.888px;letter-spacing:2.5088px;}
  .figma-footer-brand{font-family:var(--serif-font);font-size:16px;line-height:24.8px;}
  .figma-footer-brand img{width:38px;height:52px;}
}

/* Tablet/mobile keeps the same visual language while fitting available space. */
@media (max-width:1280px){
  .figma-hero h1,
  .figma-section h2,
  .figma-venue h2,
  .figma-rsvp-section h2{font-family:var(--display-font);}
  .figma-rsvp-arch .landing-guest-person strong{font-family:var(--serif-font);}
}

@media (max-width:680px){
  .figma-hero h1{font-family:var(--display-font);font-size:clamp(42px,13vw,60px);line-height:1.45;letter-spacing:-1.5px;}
  .lang-ka .figma-hero h1{font-size: clamp(42px,10vw,60px);line-height:1.45;letter-spacing:-1.5px;}
  .figma-section h2,.figma-venue h2,.figma-rsvp-section h2{font-family:var(--display-font);font-size:clamp(38px,11vw,54px);line-height:1.45;letter-spacing:-1.2px;}
  .lang-ka .figma-section h2,.lang-ka .figma-venue h2,.lang-ka .figma-rsvp-section h2{font-size: clamp(32px,8vw,54px);line-height:1.45;letter-spacing:-1.2px;}
  .rsvp-envelope-trigger{height:365px;}
  .rsvp-envelope-paper,.rsvp-envelope-front{height:230px;bottom:18px;}
  .rsvp-envelope-card{left:8%;right:8%;bottom:62px;min-height:275px;padding:64px 18px 28px;border-radius:44vw 44vw 0 0;}
  .rsvp-envelope-card::after{inset:11px;border-radius:calc(44vw - 11px) calc(44vw - 11px) 0 0;}
  .rsvp-envelope-experience.is-open .rsvp-envelope-card{transform:translateY(-115px);}
}

/* v3.6.1 RSVP priority flow: no flap layer; invitation auto-opens when scrolled into view. */
.rsvp-envelope-trigger{overflow:visible;}
.rsvp-envelope-paper::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(155deg,rgba(255,255,255,.18),rgba(255,255,255,0));pointer-events:none;}
.rsvp-envelope-front{z-index:5;}
.rsvp-envelope-card{z-index:4;}
.rsvp-envelope-experience.is-open .rsvp-envelope-front{opacity:.72;transform:translateY(10px);transition:opacity .45s ease,transform .6s cubic-bezier(.22,.61,.36,1);}
@media (prefers-reduced-motion:reduce){.rsvp-envelope-experience.is-open .rsvp-envelope-front{transform:none;}}

/* v3.6.2 RSVP continuity: envelope disappears after opening and the form keeps the invitation-card visual language. */
.rsvp-envelope-experience.is-open .rsvp-envelope-trigger{
  height:0!important;
  margin:0 auto;
  opacity:0;
  visibility:hidden;
  transform:translateY(-22px) scale(.985);
  pointer-events:none;
  transition:height .55s cubic-bezier(.22,.61,.36,1),opacity .3s ease,transform .45s ease,visibility 0s linear .55s;
}
.rsvp-envelope-experience.is-open .rsvp-envelope-card,
.rsvp-envelope-experience.is-open .rsvp-envelope-paper,
.rsvp-envelope-experience.is-open .rsvp-envelope-front{
  opacity:0;
  pointer-events:none;
}
.rsvp-envelope-experience.is-open .rsvp-form-reveal{
  margin-top:0;
}

.figma-rsvp-arch{
  overflow:hidden;
  background:#fffefb;
  border:1px solid rgba(61,48,38,.16);
  border-radius:360px 360px 0 0;
  box-shadow:0 22px 44px rgba(61,48,38,.08);
}
.figma-rsvp-arch::after{
  content:"";
  position:absolute;
  inset:18px;
  border:2px solid rgba(182,160,130,.25);
  border-radius:342px 342px 0 0;
  pointer-events:none;
  z-index:0;
}
.figma-rsvp-arch > *{
  position:relative;
  z-index:1;
}
.rsvp-open-card-header{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0 24px 34px;
}
.rsvp-open-card-header img{
  width:50px;
  height:66px;
  object-fit:contain;
  margin-bottom:18px;
  opacity:.7;
}
.rsvp-open-card-header .landing-rsvp-caption{
  font-size:9.28px;
  line-height:14.384px;
  letter-spacing:2.2272px;
  color:#807267;
}
.rsvp-open-card-header strong{
  margin-top:10px;
  font-family:var(--display-font);
  font-size:34px;
  line-height:1.35;
  font-weight:400;
  color:#704829;
}
.figma-rsvp-arch .landing-rsvp-context{
  justify-content:center;
  align-items:center;
  margin-top:0;
  padding:18px 0;
  text-align:center;
}
.figma-rsvp-arch .landing-rsvp-summary{
  justify-content:center;
}

@media (max-width:680px){
  .figma-rsvp-arch{
    border-radius:48vw 48vw 0 0;
  }
  .figma-rsvp-arch::after{
    inset:11px;
    border-radius:calc(48vw - 11px) calc(48vw - 11px) 0 0;
  }
  .rsvp-open-card-header{
    padding:0 12px 26px;
  }
  .rsvp-open-card-header img{
    width:34px;
    height:44px;
    margin-bottom:14px;
  }
  .rsvp-open-card-header strong{
    font-size:1.35rem;
  }
  .figma-rsvp-arch .landing-rsvp-context{
    align-items:center;
  }
  .figma-rsvp-arch .landing-rsvp-summary{
    justify-content:center;
  }
}

@media (prefers-reduced-motion:reduce){
  .rsvp-envelope-experience.is-open .rsvp-envelope-trigger{
    transform:none;
    transition:none;
  }
}


/* v3.6.3 RSVP viewport behavior and open-card refinements. */
.rsvp-envelope-experience.is-open .rsvp-form-reveal{
  overflow:visible;
}
.figma-rsvp-arch{
  overflow:visible;
  padding-top:96px;
}
.rsvp-open-card-header{
  padding-top:0;
  padding-bottom:26px;
}
.rsvp-close{
  top:0;
  left:50%;
  right:auto;
  z-index:4;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  transform:translate(-50%,-50%);
  background:#fffefb;
  border-color:rgba(61,48,38,.24);
}
.rsvp-close:hover{
  transform:translate(-50%,-50%) rotate(90deg);
  background:#fffefb;
}
.rsvp-close:focus-visible{
  outline:2px solid rgba(61,48,38,.42);
  outline-offset:3px;
}

@media (max-width:680px){
  .figma-rsvp-arch{
    padding-top:76px;
  }
  .rsvp-open-card-header{
    padding-bottom:22px;
  }
  .rsvp-close{
    top:0;
    left:50%;
    right:auto;
    width:38px;
    height:38px;
  }
}

@media (prefers-reduced-motion:reduce){
  .rsvp-close,
  .rsvp-close:hover{
    transform:translate(-50%,-50%);
  }
}

/* v3.6.4 RSVP shared-card transition.
   The invitation card is now the same DOM element before and after opening:
   it rises out of the envelope, expands, reveals the guest list, and only then
   lets the envelope body fade away. */
.rsvp-envelope-experience{
  --rsvp-motion:cubic-bezier(.22,.78,.2,1);
  --rsvp-soft:cubic-bezier(.25,.72,.25,1);
  width:min(100%,980px);
  margin:34px auto 0;
}
.rsvp-envelope-stage{
  position:relative;
  width:min(100%,720px);
  margin:0 auto;
  padding-bottom:176px;
  transition:padding-bottom .78s var(--rsvp-motion) .12s;
}
.rsvp-shared-card.figma-rsvp-arch{
  position:relative;
  z-index:3;
  width:min(460px,68%);
  min-height:310px;
  margin:0 auto;
  padding:58px 46px 34px;
  overflow:visible;
  border:1px solid rgba(61,48,38,.16);
  border-radius:230px 230px 18px 18px;
  background:#fffefb;
  box-shadow:0 22px 44px rgba(61,48,38,.08);
  text-align:left;
  transform:translate3d(0,118px,0) scale(.985);
  transform-origin:50% 100%;
  will-change:transform,width,border-radius,padding,box-shadow;
  transition:
    transform .82s var(--rsvp-motion) .14s,
    width .82s var(--rsvp-motion) .14s,
    min-height .72s var(--rsvp-motion) .14s,
    padding .78s var(--rsvp-motion) .12s,
    border-radius .82s var(--rsvp-motion) .14s,
    box-shadow .62s ease .12s;
}
.rsvp-shared-card.figma-rsvp-arch::after{
  inset:14px;
  border-width:2px;
  border-radius:216px 216px 11px 11px;
  transition:border-radius .82s var(--rsvp-motion) .14s,inset .72s var(--rsvp-motion) .14s,opacity .4s ease;
}
.rsvp-open-card-header{
  padding:0!important;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.rsvp-open-card-header img{
  width:50px;
  height:66px;
  margin:0 0 18px;
}
.rsvp-open-card-header .landing-rsvp-caption{
  font-size:9.28px;
  line-height:14.384px;
  letter-spacing:2.2272px;
  color:#807267;
}
.rsvp-open-card-header strong{
  margin-top:10px;
  font-family:var(--display-font);
  font-size:34px;
  line-height:1.35;
  font-weight:400;
  color:#704829;
}
.rsvp-envelope-trigger{
  all:unset;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-height:48px;
  margin-top:26px;
  padding:10px 17px;
  border:1px solid rgba(61,48,38,.3);
  border-radius:999px;
  color:#704829;
  cursor:pointer;
  opacity:1;
  transform:translate3d(0,0,0);
  overflow:hidden;
  transition:
    opacity .24s ease,
    transform .42s var(--rsvp-soft),
    max-height .42s var(--rsvp-soft),
    margin .42s var(--rsvp-soft),
    padding .42s var(--rsvp-soft),
    border-color .3s ease;
}
.rsvp-envelope-trigger:focus-visible{
  outline:2px solid rgba(61,48,38,.42);
  outline-offset:4px;
}
.rsvp-envelope-trigger:hover{
  transform:translate3d(0,-2px,0);
}
.rsvp-envelope-open-label{
  margin:0;
  padding:0;
  border:0;
  display:inline-flex;
  align-items:center;
  gap:12px;
  border-radius:0;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:inherit;
  font-size:.58rem;
  white-space:nowrap;
}
.rsvp-envelope-paper,
.rsvp-envelope-front{
  left:50%!important;
  right:auto!important;
  bottom:0!important;
  width:min(620px,88%);
  height:235px;
  transform:translate3d(-50%,0,0);
  transform-origin:50% 100%;
  opacity:1;
  will-change:transform,opacity;
}
.rsvp-envelope-paper{
  z-index:1;
  transition:opacity .34s ease .12s,transform .52s var(--rsvp-soft) .08s;
}
.rsvp-envelope-front{
  z-index:5;
  transition:opacity .34s ease .10s,transform .52s var(--rsvp-soft) .06s;
}
.rsvp-form-reveal{
  display:grid!important;
  grid-template-rows:0fr;
  max-height:none!important;
  margin:0!important;
  opacity:0;
  visibility:visible!important;
  transform:translate3d(0,18px,0);
  overflow:hidden!important;
  pointer-events:none;
  transition:
    grid-template-rows .62s var(--rsvp-soft),
    opacity .22s ease,
    transform .42s var(--rsvp-soft);
}
.rsvp-form-inner{
  min-height:0;
  overflow:hidden;
  padding-top:0;
  transition:padding-top .56s var(--rsvp-soft);
}
.rsvp-close{
  top:0!important;
  left:50%!important;
  right:auto!important;
  z-index:8;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,-35%) scale(.82);
  transition:opacity .24s ease,transform .42s var(--rsvp-motion),background .2s ease;
}
.rsvp-close:hover{
  transform:translate(-50%,-50%) scale(1) rotate(90deg);
}

.rsvp-envelope-experience.is-open .rsvp-envelope-stage{
  padding-bottom:0;
  transition:padding-bottom .82s var(--rsvp-motion) .24s;
}
.rsvp-envelope-experience.is-open .rsvp-shared-card.figma-rsvp-arch{
  width:min(720px,100%);
  min-height:0;
  padding:54px 80px 76px;
  border-radius:360px 360px 0 0;
  box-shadow:0 30px 72px rgba(61,48,38,.10);
  transform:translate3d(0,0,0) scale(1);
  transition:
    transform .86s var(--rsvp-motion),
    width .86s var(--rsvp-motion),
    min-height .78s var(--rsvp-motion),
    padding .82s var(--rsvp-motion),
    border-radius .86s var(--rsvp-motion),
    box-shadow .7s ease;
}
.rsvp-envelope-experience.is-open .rsvp-shared-card.figma-rsvp-arch::after{
  inset:18px;
  border-radius:342px 342px 0 0;
  transition:border-radius .86s var(--rsvp-motion),inset .78s var(--rsvp-motion),opacity .4s ease;
}
.rsvp-envelope-experience.is-open .rsvp-envelope-trigger{
  max-height:0;
  margin-top:0;
  padding-top:0;
  padding-bottom:0;
  border-color:transparent;
  opacity:0;
  pointer-events:none;
  transform:translate3d(0,-8px,0) scale(.96);
  transition:
    opacity .18s ease,
    transform .3s var(--rsvp-soft),
    max-height .42s var(--rsvp-soft),
    margin .42s var(--rsvp-soft),
    padding .42s var(--rsvp-soft),
    border-color .2s ease;
}
.rsvp-envelope-experience.is-open .rsvp-form-reveal{
  grid-template-rows:1fr;
  opacity:1;
  transform:translate3d(0,0,0);
  pointer-events:auto;
  overflow:hidden!important;
  transition:
    grid-template-rows .96s var(--rsvp-motion) .24s,
    opacity .4s ease .34s,
    transform .66s var(--rsvp-motion) .24s;
}
.rsvp-envelope-experience.is-open .rsvp-form-inner{
  padding-top:24px;
  transition:padding-top .76s var(--rsvp-motion) .22s;
}
.rsvp-envelope-experience.is-open .rsvp-envelope-paper{
  opacity:0;
  transform:translate3d(-50%,30px,0) scale(.985);
  pointer-events:none;
  transition:opacity .42s ease .38s,transform .64s var(--rsvp-soft) .34s;
}
.rsvp-envelope-experience.is-open .rsvp-envelope-front{
  opacity:0;
  transform:translate3d(-50%,38px,0) scale(.98);
  pointer-events:none;
  transition:opacity .42s ease .34s,transform .64s var(--rsvp-soft) .30s;
}
.rsvp-envelope-experience.is-open .rsvp-close{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,-50%) scale(1);
  transition:opacity .3s ease .58s,transform .48s var(--rsvp-motion) .52s,background .2s ease;
}
.rsvp-envelope-experience.is-open .rsvp-close:hover{
  transform:translate(-50%,-50%) scale(1) rotate(90deg);
}

@media (max-width:680px){
  .rsvp-envelope-experience{margin-top:26px;}
  .rsvp-envelope-stage{
    width:100%;
    padding-bottom:138px;
  }
  .rsvp-shared-card.figma-rsvp-arch{
    width:calc(100% - 58px);
    min-height:250px;
    padding:44px 20px 26px;
    border-radius:46vw 46vw 14px 14px;
    transform:translate3d(0,88px,0) scale(.988);
  }
  .rsvp-shared-card.figma-rsvp-arch::after{
    inset:10px;
    border-radius:calc(46vw - 10px) calc(46vw - 10px) 8px 8px;
  }
  .rsvp-open-card-header img{
    width:34px;
    height:44px;
    margin-bottom:13px;
  }
  .rsvp-open-card-header strong{
    font-size:1.35rem;
  }
  .rsvp-envelope-trigger{
    margin-top:20px;
    padding:9px 14px;
  }
  .rsvp-envelope-paper,
  .rsvp-envelope-front{
    width:92%;
    height:180px;
  }
  .rsvp-envelope-experience.is-open .rsvp-shared-card.figma-rsvp-arch{
    width:100%;
    padding:44px 18px 34px;
    border-radius:48vw 48vw 0 0;
  }
  .rsvp-envelope-experience.is-open .rsvp-shared-card.figma-rsvp-arch::after{
    inset:11px;
    border-radius:calc(48vw - 11px) calc(48vw - 11px) 0 0;
  }
  .rsvp-envelope-experience.is-open .rsvp-form-inner{
    padding-top:18px;
  }
}

@media (prefers-reduced-motion:reduce){
  .rsvp-envelope-stage,
  .rsvp-shared-card.figma-rsvp-arch,
  .rsvp-shared-card.figma-rsvp-arch::after,
  .rsvp-envelope-trigger,
  .rsvp-envelope-paper,
  .rsvp-envelope-front,
  .rsvp-form-reveal,
  .rsvp-form-inner,
  .rsvp-close{
    transition:none!important;
  }
}

/* Neutralize legacy trigger dimensions now that the trigger lives inside the shared card. */
.rsvp-envelope-trigger{
  width:auto!important;
  height:auto!important;
  visibility:visible!important;
}
.rsvp-envelope-experience.is-open .rsvp-envelope-trigger{
  width:auto!important;
  height:auto!important;
  visibility:visible!important;
}

/* v3.6.4 timing polish: lift first, then widen/reveal, then fade the envelope. */
.rsvp-envelope-experience.is-open .rsvp-shared-card.figma-rsvp-arch{
  transition:
    transform .82s var(--rsvp-motion),
    width .86s var(--rsvp-motion) .10s,
    min-height .78s var(--rsvp-motion) .10s,
    padding .82s var(--rsvp-motion) .10s,
    border-radius .86s var(--rsvp-motion) .10s,
    box-shadow .7s ease .10s;
}
.rsvp-envelope-experience.is-open .rsvp-shared-card.figma-rsvp-arch::after{
  transition:border-radius .86s var(--rsvp-motion) .10s,inset .78s var(--rsvp-motion) .10s,opacity .4s ease;
}
.rsvp-envelope-experience.is-open .rsvp-form-reveal{
  transition:
    grid-template-rows 1s var(--rsvp-motion) .26s,
    opacity .42s ease .38s,
    transform .68s var(--rsvp-motion) .27s;
}
.rsvp-envelope-experience.is-open .rsvp-envelope-front{
  transition:opacity .42s ease .46s,transform .66s var(--rsvp-soft) .40s;
}
.rsvp-envelope-experience.is-open .rsvp-envelope-paper{
  transition:opacity .42s ease .50s,transform .66s var(--rsvp-soft) .44s;
}

/* v3.6.5 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· mobile display-font reliability, centered agenda, taller closed envelope */
/* The server-rendered @font-face in <head> uses asset_url() so mobile browsers
   receive a cache-busted local GL Parizuli URL. Keep these as static fallback. */
@font-face{
  font-family:"GL Parizuli";
  src:url("../fonts/parizuli/gl-parizuli-regular-59309747211.ttf?v=365") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"GL Parizuli";
  src:url("../fonts/parizuli/gl-parizuli-medium-74694320427.ttf?v=365") format("truetype");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"GL Parizuli";
  src:url("../fonts/parizuli/gl-parizuli-bold-74694320427.ttf?v=365") format("truetype");
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

.figma-page-shell{
  font-synthesis:none;
}

/* Keep display typography explicit on narrow screens as well. */
@media (max-width:680px){
  .figma-hero h1,
  .figma-section h2,
  .figma-venue h2,
  .figma-rsvp-section h2,
  .rsvp-open-card-header strong{
    font-family:"GL Parizuli","Noto Serif Georgian",Georgia,"Times New Roman",serif!important;
    font-synthesis:none;
  }
}

/* Center the agenda as a group instead of reserving five columns when fewer
   items exist. Five items still occupy the original 1360px Figma track. */
@media (min-width:1281px){
  .figma-agenda-track{
    width:calc(var(--agenda-columns,5) * 272px);
    max-width:1360px;
    min-height:182.094px;
    height:auto;
    grid-template-columns:repeat(var(--agenda-columns,5),272px);
    justify-content:center;
    row-gap:56px;
  }
  .figma-agenda-track::before{
    left:8%;
    right:8%;
    width:auto;
  }
}

@media (min-width:681px) and (max-width:1280px){
  .figma-agenda-track{
    width:min(100%,calc(var(--agenda-columns,5) * 220px));
    max-width:100%;
    grid-template-columns:repeat(var(--agenda-columns,5),minmax(160px,1fr));
    justify-content:center;
    overflow:visible;
  }
  .figma-agenda-track::before{
    left:8%;
    right:8%;
    width:auto;
  }
}
.figma-agenda-track.agenda-no-line::before{display:none!important}

/* A taller, more proportional closed envelope. The shared invitation card
   still lifts out and expands with the v3.6.4 continuous animation. */
.rsvp-envelope-stage{
  padding-bottom:220px;
}
.rsvp-shared-card.figma-rsvp-arch{
  transform:translate3d(0,150px,0) scale(.985);
}
.rsvp-envelope-paper,
.rsvp-envelope-front{
  height: 375px;
}

@media (max-width:680px){
  .rsvp-envelope-stage{
    padding-bottom:170px;
  }
  .rsvp-shared-card.figma-rsvp-arch{
    transform:translate3d(0,110px,0) scale(.988);
  }
  .rsvp-envelope-paper,
  .rsvp-envelope-front{
    height:220px;
  }
}

/* v3.6.6 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· mobile RSVP readability and compact closed-envelope spacing */
/* Guest type (adult/child) is intentionally omitted from the public RSVP UI. */
.figma-rsvp-arch .landing-guest-person{
}

@media (max-width:680px){
  /* Pull the closed invitation closer to the RSVP heading while keeping the
     taller envelope proportions introduced in v3.6.5. */
  .rsvp-envelope-experience{
    margin-top:6px;
  }
  .rsvp-shared-card.figma-rsvp-arch{
    transform:translate3d(0,72px,0) scale(.988);
  }

  /* Center guest names and give the two response controls more breathing room. */
  .figma-rsvp-arch .landing-guest-person{
    width:100%;
    text-align:center;
    justify-items:center;
  }
  .figma-rsvp-arch .landing-guest-person strong{
    width:100%;
    text-align: start;
    margin-left: 24px;
    font-size: 16px;
  }
  .figma-rsvp-arch .choice span{
    padding-left:10px;
    padding-right:10px;
  }
}

/* v3.6.7 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· mobile closed-envelope spacing refinement
   Keep the invitation card at its original depth inside the taller envelope.
   Reduce the visual gap using section spacing only, not by pulling the card
   farther out of the envelope. */
@media (max-width:680px){
  .rsvp-envelope-experience{
    margin-top:-18px;
  }
  .rsvp-shared-card.figma-rsvp-arch{
    transform:translate3d(0,110px,0) scale(.988);
  }
}


/* v3.6.8 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· mobile closed-state spacing only
   The tighter gap belongs only to the closed envelope. Once the shared card
   opens, restore the previous mobile spacing so it never touches the intro copy. */
@media (max-width:680px){
  .rsvp-envelope-experience{
    margin-top:6px;
    transition:margin-top .42s var(--rsvp-soft);
  }
  .rsvp-envelope-experience:not(.is-open){
    margin-top:-18px;
  }
}


/* v3.6.9 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· user-supplied app.css is the reference baseline from this version forward. */

/* v3.7.0 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· editorial text reveal system -----------------------------------
   Display headings rise through a mask, supporting copy resolves word-by-word,
   small labels settle from wider tracking, and countdown values roll into place. */
.text-motion-words .text-reveal-clip,
.text-motion-copy .text-reveal-clip{
  display:inline-block;
  line-height:inherit;
  vertical-align:baseline;
}
.text-motion-words .text-reveal-clip{
  overflow:hidden;
  padding:.08em 0 .12em;
  margin:-.08em 0 -.12em;
}
.text-motion-words .text-reveal-word{
  display:inline-block;
  opacity:.04;
  filter:blur(6px);
  transform:translate3d(0,112%,0);
  will-change:transform,opacity,filter;
  transition:
    transform .88s cubic-bezier(.22,.78,.2,1) var(--word-delay,0ms),
    opacity .52s ease var(--word-delay,0ms),
    filter .7s ease var(--word-delay,0ms);
}
.site-ready .text-motion-words.is-text-visible .text-reveal-word{
  opacity:1;
  filter:blur(0);
  transform:translate3d(0,0,0);
}

.text-motion-copy .text-reveal-clip{overflow:visible;}
.text-motion-copy .text-reveal-word{
  display:inline-block;
  opacity:0;
  filter:blur(3.5px);
  transform:translate3d(0,.62em,0);
  will-change:transform,opacity,filter;
  transition:
    transform .68s cubic-bezier(.22,.61,.36,1) var(--word-delay,0ms),
    opacity .5s ease var(--word-delay,0ms),
    filter .58s ease var(--word-delay,0ms);
}
.site-ready .text-motion-copy.is-text-visible .text-reveal-word{
  opacity:1;
  filter:blur(0);
  transform:translate3d(0,0,0);
}

.text-motion-track{
  opacity:0;
  filter:blur(3px);
  transform:translate3d(0,9px,0);
  letter-spacing:calc(var(--text-final-tracking,0px) + .09em)!important;
  will-change:transform,opacity,filter,letter-spacing;
  transition:
    opacity .65s ease,
    transform .72s cubic-bezier(.22,.61,.36,1),
    filter .62s ease,
    letter-spacing .82s cubic-bezier(.22,.61,.36,1);
}
.site-ready .text-motion-track.is-text-visible{
  opacity:1;
  filter:blur(0);
  transform:translate3d(0,0,0);
  letter-spacing:var(--text-final-tracking,0px)!important;
}

.text-motion-countdown>div{overflow:hidden;}
.text-motion-countdown strong,
.text-motion-countdown span{
  opacity:0;
  filter:blur(5px);
  will-change:transform,opacity,filter;
}
.text-motion-countdown strong{
  transform:translate3d(0,72%,0);
  transition:
    transform .78s cubic-bezier(.22,.78,.2,1) calc(var(--count-index,0) * 75ms),
    opacity .5s ease calc(var(--count-index,0) * 75ms),
    filter .65s ease calc(var(--count-index,0) * 75ms);
}
.text-motion-countdown span{
  transform:translate3d(0,45%,0);
  transition:
    transform .66s cubic-bezier(.22,.61,.36,1) calc(120ms + var(--count-index,0) * 75ms),
    opacity .45s ease calc(120ms + var(--count-index,0) * 75ms),
    filter .55s ease calc(120ms + var(--count-index,0) * 75ms);
}
.site-ready .text-motion-countdown.is-text-visible strong,
.site-ready .text-motion-countdown.is-text-visible span{
  opacity:1;
  filter:blur(0);
  transform:translate3d(0,0,0);
}

@media (max-width:680px){
  .text-motion-words .text-reveal-word{
    transition-duration:.78s,.46s,.6s;
  }
  .text-motion-copy .text-reveal-word{
    transition-duration:.58s,.44s,.5s;
  }
}

@media (prefers-reduced-motion:reduce){
  .text-motion-words .text-reveal-word,
  .text-motion-copy .text-reveal-word,
  .text-motion-track,
  .text-motion-countdown strong,
  .text-motion-countdown span{
    opacity:1!important;
    filter:none!important;
    transform:none!important;
    transition:none!important;
    animation:none!important;
  }
  .text-motion-track{letter-spacing:var(--text-final-tracking,0px)!important;}
}

/* Direct visitors do not see the invitation-specific line; keep the remaining
   hero rhythm intentional instead of leaving a double margin between names/date. */
.preview-mode .figma-date{margin-top:4px;}
@media (max-width:680px){.preview-mode .figma-date{margin-top:2px;}}

/* v3.7.1 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· laptop venue containment + mobile header refinement -----------
   Keep the exact 1920px Figma venue geometry on wide canvases, but switch to
   a proportional two-column composition on laptop widths so the collage can
   never intrude into the copy column. Other sections/states are untouched. */
@media (min-width:1281px) and (max-width:1919px){
  .figma-venue{
    min-height:720px;
    grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
    gap:clamp(52px,5vw,76px);
    padding:clamp(96px,7vw,118px) clamp(46px,5vw,72px);
  }
  .figma-venue-collage{
    width:100%;
    height:clamp(440px,38vw,520px);
    min-width:0;
    max-width:760px;
    margin:0 auto;
  }
  .figma-venue-frame{
    inset:18px 0 0;
    border-width:3px;
    border-radius:28px;
  }
  .figma-venue-photo-top{
    left:5%;
    top:-64px;
    width:41%;
    height:100%;
    border-radius:999px 999px 0 0;
  }
  .figma-venue-photo-bottom{
    left:auto;
    right:5%;
    top:auto;
    bottom:-54px;
    width:43%;
    height:100%;
    border-radius:0 0 999px 999px;
  }
  .figma-venue-copy{
    width:auto;
    max-width:560px;
    height:auto;
    min-width:0;
  }
}

/* The address block is no longer part of the public venue composition on any
   breakpoint. The venue CTA remains the single location action. */
.figma-venue-address{
  display:none!important;
}

@media (max-width:680px){
  .figma-rsvp-pill{
    min-height:32px;
  }
}

/* v3.7.2 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· responsive typography leading refinement ----------------------
   Keep the existing type sizes and animation system intact; only tighten
   line boxes so wrapped headings/copy do not develop oversized vertical gaps. */
.figma-hero h1{
  line-height:1.08;
}
.figma-section h2,
.figma-venue h2,
.figma-rsvp-section h2{
  line-height:1.08;
}
.lang-ka .figma-hero h1{
  line-height:1.14;
}
.lang-ka .figma-section h2,
.lang-ka .figma-venue h2,
.lang-ka .figma-rsvp-section h2{
  line-height:1.14;
}
.figma-agenda-item h3{
  line-height:1.28;
}
.rsvp-open-card-header strong,
.figma-rsvp-arch .landing-guest-person strong{
  line-height:1.24;
}
.figma-button,
.rsvp-envelope-open-label,
.figma-rsvp-pill{
  line-height:1.25;
}

@media (max-width:1280px){
  .figma-hero h1,
  .figma-section h2,
  .figma-venue h2,
  .figma-rsvp-section h2{
    line-height:1.1;
  }
  .lang-ka .figma-hero h1,
  .lang-ka .figma-section h2,
  .lang-ka .figma-venue h2,
  .lang-ka .figma-rsvp-section h2{
    line-height:1.15;
  }
}

@media (max-width:680px){
  .figma-hero h1,
  .figma-section h2,
  .figma-venue h2,
  .figma-rsvp-section h2{
    line-height:1.08;
  }
  .lang-ka .figma-hero h1,
  .lang-ka .figma-section h2,
  .lang-ka .figma-venue h2,
  .lang-ka .figma-rsvp-section h2{
    line-height:1.13;
  }
  .figma-section-head p,
  .figma-venue-copy>p,
  .figma-dresscode-copy p,
  .figma-rsvp-heading>p,
  .figma-hero-note{
    line-height:1.48;
  }
  .figma-agenda-item h3{
    line-height:1.22;
  }
  .figma-agenda-item p{
    line-height:1.45;
  }
  .rsvp-open-card-header strong,
  .figma-rsvp-arch .landing-guest-person strong{
    line-height:1.2;
  }
  .figma-rsvp-pill{
    line-height:1.15;
  }
}

/* v3.10.0 Phase 3 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Admin invitation & guest management ---------------- */
.admin-guests-title{align-items:flex-end}
.admin-guests-title p{margin:8px 0 0;color:#777970;font-size:.9rem}
.admin-title-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.admin-title-actions .button{margin:0}
.admin-filters-phase3{grid-template-columns:minmax(250px,2fr) repeat(5,minmax(130px,1fr)) auto}
.admin-invitations-table{min-width:1080px}
.admin-invitations-table tr.is-archived{opacity:.68;background:#faf9f6}
.admin-archived-label{display:inline-flex;margin-left:8px;padding:3px 6px;background:#eee7df;color:#704829;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;vertical-align:middle}
.admin-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:230px}
.admin-row-actions a:not(.admin-icon-button),.admin-link-button{appearance:none;border:0;background:transparent;padding:0;color:#704829;font:inherit;font-size:.82rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.admin-row-actions a:not(.admin-icon-button):hover,.admin-link-button:hover{opacity:.7}
.admin-link-danger{color:#9b5149}
.admin-inline-action{display:inline;margin:0}
.admin-flash{animation:adminFlashIn .3s ease both}
@keyframes adminFlashIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

.admin-modal[hidden]{display:none!important}
.admin-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px}
.admin-modal-backdrop{position:absolute;inset:0;background:rgba(39,31,24,.46);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.admin-modal-panel{position:relative;z-index:1;width:min(980px,100%);max-height:calc(100svh - 48px);overflow:auto;background:#fffdf9;border:1px solid rgba(61,48,38,.12);box-shadow:0 30px 90px rgba(43,31,21,.2);padding:34px}
.admin-modal-open{overflow:hidden}
.admin-modal-close{position:absolute;right:18px;top:18px;width:38px;height:38px;border:1px solid #ded8d0;border-radius:50%;background:#fff;color:#704829;font-size:1.3rem;line-height:1;cursor:pointer}
.admin-modal-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 50px 24px 0;border-bottom:1px solid #ebe7e1}
.admin-modal-head h2{margin:6px 0 0;font-family:var(--heading-font);font-weight:400;font-size:clamp(2rem,4vw,3.2rem);line-height:1.05;color:#704829}
.admin-modal-code{color:#8c8178;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.admin-modal-error{margin:20px 0 0}
.admin-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 22px;margin-top:24px}
.admin-editor-grid label,.admin-guest-fields label{display:block;color:#4f463f}
.admin-editor-grid label>span,.admin-guest-fields label>span{margin-left:5px;color:#989089;font-size:.72rem;font-weight:400}
.admin-editor-grid .input,.admin-guest-fields .input{margin-top:6px}
.admin-guest-editor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-top:26px;margin-top:10px;border-top:1px solid #ebe7e1}
.admin-guest-editor-head h3{margin:0;color:#704829;font-size:1rem}
.admin-guest-editor-head p{margin:5px 0 0;color:#827970;font-size:.78rem}
.admin-guest-editor-head .button{margin:0;white-space:nowrap}
.admin-guest-editor{display:grid;gap:10px;margin-top:14px}
.admin-guest-editor-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:15px 16px;background:#faf8f4;border:1px solid #e8e2da;transition:opacity .2s ease,background .2s ease}
.admin-guest-editor-row.is-archived{opacity:.62;background:#f0eeea}
.admin-guest-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.admin-guest-fields .input{margin-bottom:0}
.admin-guest-fields input[readonly]{background:#efede9;color:#817970}
.admin-guest-row-meta{display:flex;align-items:center;gap:12px;white-space:nowrap}
.status.attending{background:#e8eee5;color:#40523a}
.status.declined{background:#f5e9e7;color:#7c403a}
.status.archived{background:#ece9e5;color:#6e655e}
.admin-editor-tools{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:22px;padding:18px;border:1px solid #ebe4dc;background:#fbf8f4}
.admin-editor-tools>div{display:grid;gap:4px}
.admin-editor-tools strong{color:#704829}
.admin-editor-tools span{color:#81786f;font-size:.78rem}
.admin-reset-button{margin:0;white-space:nowrap}
.admin-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:24px;margin-top:26px;border-top:1px solid #ebe7e1}
.admin-modal-footer-actions{display:flex;justify-content:flex-end;gap:10px;margin-left:auto}
.admin-modal-footer .button{margin:0}
.admin-modal-link{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.admin-modal-link a{color:#704829;font-size:.82rem;font-weight:700;text-decoration:none}

@media(max-width:1350px){
  .admin-filters-phase3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-filters-phase3 .admin-filter-search{grid-column:span 2}
  .admin-filters-phase3 .admin-filter-actions{grid-column:1/-1}
}
@media(max-width:820px){
  .admin-guests-title{align-items:flex-start;flex-direction:column}
  .admin-title-actions{width:100%}
  .admin-title-actions .button{flex:1}
  .admin-filters-phase3{grid-template-columns:1fr 1fr}
  .admin-filters-phase3 .admin-filter-search{grid-column:1/-1}
  .admin-modal{padding:10px}
  .admin-modal-panel{max-height:calc(100svh - 20px);padding:24px 18px}
  .admin-modal-head{align-items:flex-start;flex-direction:column;padding-right:44px}
  .admin-editor-grid{grid-template-columns:1fr}
  .admin-guest-editor-head{align-items:flex-start;flex-direction:column}
  .admin-guest-editor-head .button{width:100%}
  .admin-guest-editor-row{grid-template-columns:1fr}
  .admin-guest-fields{grid-template-columns:1fr}
  .admin-guest-row-meta{justify-content:space-between}
  .admin-editor-tools{align-items:stretch;flex-direction:column}
  .admin-reset-button{width:100%}
  .admin-modal-footer{align-items:stretch;flex-direction:column}
  .admin-modal-footer-actions{width:100%;margin-left:0}
  .admin-modal-footer-actions .button{flex:1}
}
@media(max-width:520px){
  .admin-filters-phase3{grid-template-columns:1fr}
  .admin-filters-phase3 .admin-filter-search,.admin-filters-phase3 .admin-filter-actions{grid-column:auto}
  .admin-title-actions{flex-direction:column;align-items:stretch}
  .admin-title-actions .button{width:100%}
  .admin-modal-panel{padding:22px 14px}
  .admin-modal-close{right:12px;top:12px}
  .admin-modal-footer-actions{flex-direction:column-reverse}
}

/* v3.11.0 Phase 4 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Excel workflow (Admin only) ------------------------- */
.admin-import-main{max-width:1280px;width:100%}
.admin-import-notice{margin-bottom:22px}
.admin-import-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 28px;border-top:1px solid #ddd8d0;border-bottom:1px solid #ddd8d0;background:#fff}
.admin-import-summary>div{padding:20px;border-right:1px solid #e5e0d9}
.admin-import-summary>div:last-child{border-right:0}
.admin-import-summary strong{display:block;color:#704829;font-size:2rem;font-weight:500;line-height:1}
.admin-import-summary span{display:block;margin-top:7px;color:#777970;font-size:.78rem}
.admin-import-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:46px;align-items:start;padding:30px 34px;background:#fff;border-top:1px solid #d9d8d1;box-shadow:0 12px 34px rgba(0,0,0,.025)}
.admin-import-card h2{margin:8px 0 12px;color:#704829;font-family:var(--heading-font);font-weight:400;font-size:2rem}
.admin-import-card p{max-width:650px;margin:0;color:#777970;line-height:1.65}
.admin-import-card code,.admin-import-rules code{padding:2px 5px;background:#f4efe8;color:#704829;font-size:.78em}
.admin-import-form{padding-left:34px;border-left:1px solid #ece7df}
.admin-import-form .input{margin-top:7px}
.admin-import-form .button{margin-top:4px}
.admin-import-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:24px;background:#e5e0d9;border:1px solid #e5e0d9}
.admin-import-rules>div{padding:22px 24px;background:#fbfaf7}
.admin-import-rules strong{color:#704829}
.admin-import-rules p{margin:6px 0 0;color:#777970;font-size:.82rem;line-height:1.55}
@media(max-width:900px){
  .admin-import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-import-summary>div:nth-child(2){border-right:0}
  .admin-import-summary>div:nth-child(-n+2){border-bottom:1px solid #e5e0d9}
  .admin-import-card{grid-template-columns:1fr;gap:24px;padding:24px 20px}
  .admin-import-form{padding:22px 0 0;border-left:0;border-top:1px solid #ece7df}
}
@media(max-width:560px){
  .admin-import-summary,.admin-import-rules{grid-template-columns:1fr}
  .admin-import-summary>div{border-right:0;border-bottom:1px solid #e5e0d9}
  .admin-import-summary>div:last-child{border-bottom:0}
}


/* v3.11.1 Phase 4 admin guest metadata controls. */
.admin-guest-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(130px,.45fr)}
.admin-guest-fields select.input{width:100%;min-height:46px;background:#fff}
.admin-primary-contact-choice{display:inline-flex!important;align-items:center;gap:7px;margin:0;color:#704829!important;font-size:.76rem!important;font-weight:700!important;cursor:pointer}
.admin-primary-contact-choice input{margin:0;accent-color:#704829}
.admin-guest-editor-row.is-archived .admin-primary-contact-choice{opacity:.55;cursor:default}
@media(max-width:900px){
  .admin-guest-fields{grid-template-columns:1fr 1fr}
  .admin-guest-fields label:last-child{grid-column:1/-1}
}
@media(max-width:680px){
  .admin-guest-fields{grid-template-columns:1fr}
  .admin-guest-fields label:last-child{grid-column:auto}
  .admin-guest-row-meta{flex-wrap:wrap}
  .admin-primary-contact-choice{width:100%}
}


/* v3.11.2 Phase 4 front-end cleanup: RSVP statuses are already visible per guest. */
.figma-rsvp-arch .landing-rsvp-divider{
  width:100%;
  height:1px;
  margin:0;
  background:rgba(61,48,38,.18);
}

/* v3.13.0 Phase 6.1 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Digital QR invitation ----------------------------- */
.figma-digital-pass-section{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,460px);
  gap:clamp(46px,7vw,110px);
  align-items:center;
  padding:clamp(82px,7vw,126px) clamp(34px,6vw,104px);
  border-radius:40px;
  background:linear-gradient(125deg,#f3ece2 0%,#fbf8f2 48%,#ede1d2 100%);
  overflow:hidden;
  position:relative;
}
.figma-digital-pass-section::before{
  content:"";
  position:absolute;
  width:520px;
  height:520px;
  left:-310px;
  bottom:-360px;
  border:1px solid rgba(112,72,41,.12);
  border-radius:50%;
  pointer-events:none;
}
.figma-digital-pass-copy{max-width:650px;position:relative;z-index:1}
.figma-digital-pass-copy h2{
  margin:14px 0 24px;
  font-family:var(--display-font,var(--heading-font));
  font-weight:400;
  font-size:clamp(3rem,4.8vw,5.7rem);
  line-height:1.06;
  letter-spacing:-.035em;
  color:#704829;
}
.lang-ka .figma-digital-pass-copy h2{line-height:1.15;letter-spacing:-.02em}
.figma-digital-pass-copy p{max-width:560px;margin:0;color:#807267;font-size:1rem;line-height:1.75}
.digital-pass-card{
  width:min(100%,430px);
  justify-self:end;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:38px 34px 34px;
  border:1px solid rgba(112,72,41,.28);
  background:#fffdf9;
  box-shadow:0 30px 70px rgba(78,54,36,.10);
  text-align:center;
  position:relative;
  z-index:1;
}
.digital-pass-card::after{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(112,72,41,.12);
  pointer-events:none;
}
.digital-pass-card-top{display:grid;justify-items:center;gap:10px;position:relative;z-index:1}
.digital-pass-card-top img{width:58px;height:76px;object-fit:contain}
.digital-pass-card-top span{font-size:.55rem;letter-spacing:.31em;color:#8b7765;text-transform:uppercase}
.digital-pass-card>strong{
  display:block;
  max-width:330px;
  margin:25px 0 19px;
  font-family:var(--display-font,var(--heading-font));
  font-size:clamp(2rem,3vw,2.85rem);
  font-weight:500;
  line-height:1.12;
  color:#704829;
  position:relative;
  z-index:1;
}
.digital-pass-qr{
  display:block;
  width:246px;
  height:246px;
  max-width:100%;
  background:#fffdf9;
  position:relative;
  z-index:1;
}
.digital-pass-card>p{margin:16px 0 0;color:#807267;font-size:.72rem;letter-spacing:.08em;position:relative;z-index:1}
.digital-pass-download{margin-top:23px;position:relative;z-index:1}
.digital-pass-download.is-loading{opacity:.65;pointer-events:none}
.digital-pass-status{min-height:20px;margin-top:10px;color:#9b5149;font-size:.74rem;position:relative;z-index:1}

.qr-public-body{min-height:100svh;margin:0;display:grid;place-items:center;padding:28px;background:#f4eee6;color:#704829}
.qr-public-shell{width:min(540px,100%);padding:58px 42px;border:1px solid rgba(112,72,41,.24);background:#fffdf9;text-align:center;box-shadow:0 26px 70px rgba(78,54,36,.08)}
.qr-public-logo{width:70px;height:92px;object-fit:contain;margin:0 auto 20px}
.qr-public-kicker{font-size:.58rem;letter-spacing:.34em;color:#8b7765}
.qr-public-shell h1,.qr-public-shell h2{font-family:var(--display-font,var(--heading-font));font-weight:400;color:#704829}
.qr-public-shell h1{margin:12px 0 6px;font-size:clamp(2.3rem,8vw,4rem);line-height:1.1}
.qr-public-shell h2{margin:20px 0 10px;font-size:1.8rem}
.qr-public-shell p{margin:0 auto;max-width:420px;color:#807267;line-height:1.7}
.qr-public-date{font-size:.75rem!important;letter-spacing:.16em;text-transform:uppercase}
.qr-public-valid,.qr-public-invalid{width:70px;height:70px;margin:32px auto 0;display:grid;place-items:center;border-radius:50%;font-size:2rem}
.qr-public-valid{border:1px solid rgba(77,117,72,.35);background:#edf3e9;color:#4d7548}
.qr-public-invalid{border:1px solid rgba(155,81,73,.35);background:#f7ecea;color:#9b5149}

@media(max-width:900px){
  .figma-digital-pass-section{grid-template-columns:1fr;gap:42px;padding:76px 30px;border-radius:30px}
  .figma-digital-pass-copy{text-align:center;margin:0 auto}
  .figma-digital-pass-copy p{margin-left:auto;margin-right:auto}
  .digital-pass-card{justify-self:center}
}
@media(max-width:560px){
  .figma-digital-pass-section{padding:64px 14px;border-radius:24px}
  .figma-digital-pass-copy h2{font-size:clamp(2.5rem,12vw,3.8rem)}
  .figma-digital-pass-copy p{font-size:.9rem}
  .digital-pass-card{padding:32px 22px 28px}
  .digital-pass-qr{width:224px;height:224px}
  .qr-public-shell{padding:46px 24px}
}

/* v3.13.1 Phase 6.1 UI refinement: keep the QR pass inside the invitation card. */
.landing-digital-pass-action[hidden]{display:none!important}
.landing-digital-pass-action{
  width:100%;
  margin-top:28px;
  padding-top:26px;
  border-top:1px solid rgba(61,48,38,.18);
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.landing-digital-pass-action .digital-pass-download{
  margin-top:0;
}
.landing-digital-pass-action .digital-pass-status{
  min-height:0;
  margin-top:10px;
}
.landing-digital-pass-action .digital-pass-status:empty{
  display:none;
}
@media(max-width:680px){
  .landing-digital-pass-action{
    margin-top:22px;
    padding-top:22px;
  }
  .landing-digital-pass-action .digital-pass-download{
    width:100%;
  }
}

/* v3.14.0 Phase 6.2 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Security Portal ---------------------------------- */
.security-admin-main{max-width:1320px;width:100%}
.security-admin-notice{margin-bottom:22px}
.security-admin-metrics{display:grid;grid-template-columns:1.35fr 1fr 1fr;margin-bottom:28px;border-top:1px solid #ddd8d0;border-bottom:1px solid #ddd8d0;background:#fff}
.security-admin-metrics>div{padding:22px 24px;border-right:1px solid #e5e0d9}
.security-admin-metrics>div:last-child{border-right:0}
.security-admin-metrics strong{display:block;color:#704829;font-size:2rem;font-weight:500;line-height:1}
.security-admin-metrics span{display:block;margin-top:8px;color:#777970;font-size:.78rem}
.security-admin-create{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:48px;align-items:start;padding:30px 34px;margin-bottom:30px;background:#fff;border-top:1px solid #d9d8d1;box-shadow:0 12px 34px rgba(0,0,0,.025)}
.security-admin-create h2,.security-admin-section h2{margin:8px 0 10px;color:#704829;font-family:var(--heading-font);font-size:2rem;font-weight:400}
.security-admin-create p{max-width:620px;margin:0;color:#777970;line-height:1.65}
.security-admin-create form{display:grid;gap:14px;padding-left:34px;border-left:1px solid #ece7df}
.security-admin-create label{display:grid;gap:7px;color:#704829;font-size:.78rem;font-weight:600}
.security-admin-create form .button{justify-self:start}
.security-admin-section{margin-top:30px}
.security-admin-section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}
.security-admin-section-head h2{margin-bottom:0}
.security-admin-table{width:100%;border-collapse:collapse;background:#fff}
.security-admin-table th,.security-admin-table td{padding:16px 14px;border-bottom:1px solid #ece7df;text-align:left;vertical-align:top}
.security-admin-table th{color:#777970;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.security-admin-table td{color:#704829;font-size:.86rem}
.security-admin-table small{color:#8a837c}
.security-admin-actions{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-start}
.security-admin-actions form{margin:0}
.security-admin-actions details{min-width:132px}
.security-admin-actions summary{cursor:pointer;color:#704829;font-size:.78rem;text-decoration:underline;text-underline-offset:3px}
.security-admin-inline-form{display:grid;gap:8px;width:260px;margin-top:10px;padding:12px;background:#f8f5ef;border:1px solid #e5e0d9}
.security-admin-inline-form .input{min-height:40px}
.security-admin-inline-form .button{min-height:40px;padding:8px 12px}
.security-history-table td{white-space:nowrap}

.security-portal-body{min-height:100svh;margin:0;background:#f4eee6;color:#704829;font-family:"Noto Sans Georgian",Arial,sans-serif}
.security-login-shell{width:min(460px,calc(100% - 28px));margin:0 auto;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:44px 0 60px;text-align:center}
.security-brand-logo{width:72px;height:92px;margin:0 auto 17px;object-fit:contain}
.security-brand-kicker{font-size:.58rem;letter-spacing:.34em;color:#8b7765}
.security-login-shell h1{margin:12px 0 5px;font-family:var(--display-font,var(--heading-font));font-size:clamp(2.5rem,10vw,4.2rem);font-weight:400;line-height:1.1;color:#704829}
.security-login-copy{margin:0 0 30px;color:#827569;font-size:.82rem}
.security-login-shell .notice{margin:0 0 18px;text-align:left}
.security-login-form{display:grid;gap:14px;padding:24px;background:#fffdf9;border:1px solid rgba(112,72,41,.18);box-shadow:0 20px 60px rgba(78,54,36,.07);text-align:left}
.security-login-form label{display:grid;gap:7px;color:#704829;font-size:.78rem;font-weight:600}
.security-primary-button,.security-secondary-button{min-height:48px;border:1px solid #704829;border-radius:999px;padding:11px 20px;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;transition:transform .18s ease,opacity .18s ease,background .18s ease}
.security-primary-button{background:#704829;color:#fffdf9}
.security-secondary-button{background:#fffdf9;color:#704829}
.security-primary-button:hover,.security-secondary-button:hover{transform:translateY(-1px)}
.security-primary-button:disabled,.security-secondary-button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.security-app{width:min(760px,100%);min-height:100svh;margin:0 auto;padding:0 18px 88px}
.security-app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 2px 16px;border-bottom:1px solid rgba(112,72,41,.16)}
.security-app-brand{display:flex;align-items:center;gap:11px;min-width:0}
.security-app-brand img{width:34px;height:46px;object-fit:contain;flex:0 0 auto}
.security-app-brand div{display:grid;min-width:0}
.security-app-brand span{color:#8b7765;font-size:.54rem;letter-spacing:.25em}
.security-app-brand strong{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--display-font,var(--heading-font));font-size:1.2rem;font-weight:500;color:#704829}
.security-logout-form{display:flex;align-items:center;gap:10px;color:#8b7765;font-size:.72rem}
.security-logout-form button{border:0;background:transparent;padding:8px 0;color:#704829;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.security-count-panel{padding:46px 0 34px;text-align:center}
.security-count-panel>strong{display:block;font-family:var(--display-font,var(--heading-font));font-size:clamp(4rem,16vw,7.5rem);font-weight:400;line-height:.92;letter-spacing:-.045em;color:#704829}
.security-count-panel>span{display:block;margin-top:10px;color:#704829;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.security-progress-track{width:min(420px,88%);height:3px;margin:23px auto 14px;background:rgba(112,72,41,.13);overflow:hidden}
.security-progress-track i{display:block;height:100%;background:#704829;transition:width .35s ease}
.security-count-panel>small{display:block;color:#8a7d72;font-size:.68rem;line-height:1.5}
.security-actions-panel{display:grid;gap:18px;padding-top:8px}
.security-scan-button{width:100%;min-height:92px;display:flex;align-items:center;gap:18px;padding:18px 22px;border:0;border-radius:18px;background:#704829;color:#fffdf9;text-align:left;font:inherit;cursor:pointer;box-shadow:0 18px 34px rgba(112,72,41,.16);transition:transform .18s ease,box-shadow .18s ease}
.security-scan-button:hover{transform:translateY(-1px);box-shadow:0 22px 40px rgba(112,72,41,.19)}
.security-scan-button>span:last-child{display:grid;gap:3px}
.security-scan-button strong{font-size:1.05rem}
.security-scan-button small{color:rgba(255,253,249,.72);font-size:.72rem;line-height:1.45}
.security-scan-icon{width:40px;height:40px;flex:0 0 40px;position:relative;border:2px solid rgba(255,253,249,.9);border-radius:7px}
.security-scan-icon::before,.security-scan-icon::after{content:"";position:absolute;background:#704829}
.security-scan-icon::before{inset:8px;border:1px solid rgba(255,253,249,.82);background:transparent}
.security-scan-icon::after{left:7px;right:7px;top:18px;height:2px;background:#fffdf9;box-shadow:0 -10px 0 5px #704829,0 10px 0 5px #704829}
.security-search-block{padding:20px 0 0;border-top:1px solid rgba(112,72,41,.16)}
.security-search-block>label{display:block;margin-bottom:8px;color:#8b7765;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.security-search-field{position:relative}
.security-search-field .input{width:100%;min-height:52px;padding-right:48px;background:#fffdf9;border-color:rgba(112,72,41,.18)}
.security-search-field button{position:absolute;right:8px;top:50%;width:36px;height:36px;transform:translateY(-50%);border:0;background:transparent;color:#8b7765;font-size:1.4rem;cursor:pointer}
.security-search-results{margin-top:8px;border:1px solid rgba(112,72,41,.16);background:#fffdf9;box-shadow:0 16px 40px rgba(78,54,36,.08)}
.security-search-result{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:0;border-bottom:1px solid #eee7df;background:transparent;color:#704829;text-align:left;font:inherit;cursor:pointer}
.security-search-result:last-child{border-bottom:0}
.security-search-result:hover{background:#f8f3ec}
.security-search-result>span:first-child{display:grid;gap:4px;min-width:0}
.security-search-result strong{font-size:.88rem}
.security-search-result small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8a7d72;font-size:.68rem}
.security-search-result-count{flex:0 0 auto;min-width:42px;text-align:right;font-size:.76rem;font-weight:700}
.security-search-empty{padding:15px;color:#8a7d72;font-size:.78rem}
.security-result-zone{margin-top:28px;scroll-margin-top:18px}
.security-invitation-result{background:#fffdf9;border:1px solid rgba(112,72,41,.19);box-shadow:0 22px 54px rgba(78,54,36,.07)}
.security-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 20px;border-bottom:1px solid #eee7df}
.security-result-kicker{display:block;color:#8b7765;font-size:.55rem;letter-spacing:.18em}
.security-result-head h2{margin:7px 0 0;font-family:var(--display-font,var(--heading-font));font-size:clamp(1.8rem,7vw,2.7rem);font-weight:500;line-height:1.1;color:#704829}
.security-result-summary{display:grid;text-align:right;flex:0 0 auto}
.security-result-summary strong{font-size:1.25rem;color:#704829}
.security-result-summary span{color:#8a7d72;font-size:.58rem}
.security-guest-list{display:grid}
.security-guest-row{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid #eee7df}
.security-guest-row.is-ineligible{background:#faf8f4;color:#a0968d}
.security-guest-row.is-checked{background:#f3f6ef}
.security-guest-choice{min-width:0;flex:1;display:flex;align-items:center;gap:13px;cursor:pointer}
.security-guest-choice input{width:22px;height:22px;margin:0;flex:0 0 auto;accent-color:#704829}
.security-guest-state-mark{width:26px;height:26px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(112,72,41,.2);border-radius:50%;font-size:.78rem}
.is-checked .security-guest-state-mark{border-color:rgba(74,112,66,.35);background:#e7efe2;color:#4d7548}
.security-guest-info{display:grid;gap:4px;min-width:0}
.security-guest-info strong{font-size:.9rem;font-weight:650;color:#704829}
.is-ineligible .security-guest-info strong{color:#9b9188}
.security-guest-info small{color:#887b70;font-size:.68rem;line-height:1.4}
.security-undo-button{border:0;background:transparent;padding:10px 4px;color:#8f544e;font:inherit;font-size:.68rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.security-result-footer{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px}
.security-selected-count{color:#887b70;font-size:.68rem}
.security-confirm-button{min-width:210px}
.security-all-checked{width:100%;padding:4px 0;color:#4d7548;font-size:.82rem;font-weight:700;text-align:center}
.security-all-checked.is-muted{color:#8a7d72;font-weight:500}
.security-result-loading,.security-invalid-result{padding:28px 20px;border:1px solid rgba(112,72,41,.18);background:#fffdf9;text-align:center;color:#8a7d72;font-size:.8rem}
.security-invalid-result{display:grid;gap:5px;border-color:rgba(155,81,73,.25);background:#fbf4f2;color:#9b5149}
.security-invalid-result strong{font-size:1rem}
.security-toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));z-index:90;transform:translateX(-50%);width:min(420px,calc(100% - 32px));padding:13px 16px;border-radius:10px;background:#435f3f;color:#fff;text-align:center;font-size:.78rem;box-shadow:0 14px 40px rgba(0,0,0,.18)}
.security-toast.is-error{background:#8f544e}
.security-scanner-open{overflow:hidden}
.security-scanner-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:end center;padding:18px;background:rgba(32,23,17,.62);backdrop-filter:blur(7px)}
.security-scanner-modal[hidden]{display:none}
.security-scanner-sheet{width:min(650px,100%);max-height:calc(100svh - 36px);overflow-y:auto;padding:18px 18px 22px;border-radius:24px;background:#f7f1e9;box-shadow:0 30px 80px rgba(0,0,0,.28)}
.security-scanner-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.security-scanner-head>div{display:grid;gap:3px}
.security-scanner-head span{color:#8b7765;font-size:.54rem;letter-spacing:.2em}
.security-scanner-head strong{color:#704829;font-size:.92rem}
.security-scanner-head>button{width:42px;height:42px;border:0;border-radius:50%;background:#fffdf9;color:#704829;font-size:1.6rem;cursor:pointer}
.security-video-wrap{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:17px;background:#18130f}
.security-video-wrap video{width:100%;height:100%;display:block;object-fit:cover}
.security-camera-frame{position:absolute;inset:18%;border:2px solid rgba(255,255,255,.9);border-radius:17px;box-shadow:0 0 0 999px rgba(0,0,0,.14);pointer-events:none}
.security-camera-frame::after{content:"";position:absolute;left:8%;right:8%;top:50%;height:1px;background:rgba(255,255,255,.88);box-shadow:0 0 10px rgba(255,255,255,.9)}
.security-scanner-message{margin:14px 4px 0;color:#7d7167;font-size:.74rem;line-height:1.5;text-align:center}
.security-scanner-message.is-error{color:#9b5149}
.security-scanner-tools{display:flex;justify-content:center;gap:10px;margin-top:13px}
.security-scanner-tools .security-secondary-button{min-height:42px}
.security-scanner-tools .is-on{background:#704829;color:#fffdf9}
.security-scanner-fallback{margin:14px 4px 0;padding-top:13px;border-top:1px solid rgba(112,72,41,.13);color:#94887e;font-size:.65rem;line-height:1.5;text-align:center}

@media(max-width:900px){
  .security-admin-metrics{grid-template-columns:1fr 1fr}
  .security-admin-metrics>div:first-child{grid-column:1/-1;border-right:0;border-bottom:1px solid #e5e0d9}
  .security-admin-create{grid-template-columns:1fr;gap:24px;padding:24px 20px}
  .security-admin-create form{padding:20px 0 0;border-left:0;border-top:1px solid #ece7df}
}
@media(max-width:680px){
  .security-admin-metrics{grid-template-columns:1fr}
  .security-admin-metrics>div{border-right:0;border-bottom:1px solid #e5e0d9}
  .security-admin-metrics>div:last-child{border-bottom:0}
  .security-admin-table{min-width:820px}
  .security-history-table{min-width:680px}
  .security-app{padding-left:14px;padding-right:14px}
  .security-app-header{padding-top:max(14px,env(safe-area-inset-top))}
  .security-logout-form span{display:none}
  .security-count-panel{padding-top:38px}
  .security-scan-button{padding:17px 18px}
  .security-result-head{padding:19px 16px}
  .security-guest-row{padding:13px 15px}
  .security-result-footer{align-items:stretch;flex-direction:column;padding:14px 15px}
  .security-confirm-button{width:100%;min-width:0}
  .security-selected-count{text-align:center}
  .security-scanner-modal{padding:8px}
  .security-scanner-sheet{max-height:calc(100svh - 16px);padding:15px;border-radius:20px}
}
@media(max-width:420px){
  .security-app-brand strong{max-width:180px;font-size:1rem}
  .security-result-head{flex-direction:column}
  .security-result-summary{text-align:left;grid-template-columns:auto auto;align-items:baseline;gap:7px}
  .security-guest-info strong{font-size:.84rem}
}

/* v3.14.5 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Dress-code avoid items + icon editor (v3.14.4 visual baseline) */
.figma-dresscode-avoid{margin:0 0 38px;padding:24px 0;border-top:1px solid rgba(61,48,38,.14);border-bottom:1px solid rgba(61,48,38,.14)}
.figma-dresscode-avoid-title{margin-bottom:18px;color:#807267;text-transform:uppercase;letter-spacing: 0;font-size: .875rem;text-align: center;}
.figma-dresscode-avoid-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:780px}
.figma-dresscode-avoid-item{display:flex;align-items:center;gap:16px;min-width:0}
.figma-dresscode-avoid-icon{width:74px;height:74px;flex:0 0 74px;display:grid;place-items:center;position:relative;border:1px solid rgba(61,48,38,.13);border-radius:50%;background:rgba(255,253,249,.72)}
.figma-dresscode-avoid-icon img{width:46px;height:48px;object-fit:contain;opacity:.78}
.figma-dresscode-avoid-slash{position:absolute;width:58px;height: 2px;background: #ff1900;transform:rotate(-42deg);opacity:.72}
.figma-dresscode-avoid-label{color:#6d5d50;font-family:var(--heading-font);font-size:1.08rem;line-height:1.2}

.dresscode-avoid-settings{margin-top:28px;padding-top:28px;border-top:1px solid #ecebe5}
.dresscode-avoid-settings-head{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(360px,1.3fr);gap:28px;align-items:end;margin-bottom:18px}
.dresscode-avoid-settings-head>div:first-child{display:grid;gap:5px}
.dresscode-avoid-settings-head strong{font-family:var(--heading-font);font-size:1.35rem;font-weight:400}
.dresscode-avoid-settings-head span{color:#898a83;font-size:.78rem;line-height:1.5}
.dresscode-avoid-title-fields{margin:0}
.dresscode-avoid-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.dresscode-avoid-setting-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:start;padding:16px;border:1px solid #e8e6df;background:#fbfaf7}
.dresscode-avoid-setting-preview{width:92px;height:110px;display:grid;place-items:center;background:#f2eee8;border:1px solid #e4dfd7}
.dresscode-avoid-setting-preview img{width:68px;height:76px;object-fit:contain}
.dresscode-avoid-setting-fields{min-width:0}.dresscode-avoid-setting-fields .settings-grid{gap:10px}.dresscode-avoid-setting-fields label small{font-weight:400;color:#888}
@media(max-width:1180px){.dresscode-avoid-settings-grid{grid-template-columns:1fr}.dresscode-avoid-setting-card{grid-template-columns:110px minmax(0,1fr)}}
@media(max-width:820px){.dresscode-avoid-settings-head{grid-template-columns:1fr}.dresscode-avoid-setting-card{grid-template-columns:86px minmax(0,1fr)}.dresscode-avoid-setting-preview{width:86px}}
@media(max-width:680px){.figma-dresscode-avoid{margin-bottom:28px;padding:20px 0}.figma-dresscode-avoid-grid{gap:8px}.figma-dresscode-avoid-item{flex-direction:column;gap:8px;text-align:center}.figma-dresscode-avoid-icon{width:64px;height:64px;flex-basis:64px}.figma-dresscode-avoid-icon img{width:40px;height:42px}.figma-dresscode-avoid-slash{width:50px}.figma-dresscode-avoid-label{font-size:.9rem}}
@media(max-width:520px){.dresscode-avoid-setting-card{grid-template-columns:1fr}.dresscode-avoid-setting-preview{width:100%;height:120px}.dresscode-avoid-setting-preview img{width:72px;height:80px}}



/* v3.14.6 Guest identity modes ------------------------------------------ */
.admin-guest-identity-fields{
  grid-template-columns:minmax(145px,.42fr) minmax(0,1fr) minmax(130px,.36fr);
  align-items:start;
}
.admin-guest-name-panel{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  min-width:0;
}
.admin-guest-name-panel[hidden]{display:none!important}
.admin-guest-mode-field,.admin-guest-type-field{min-width:0}
.admin-guest-entered-name{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:6px;
  min-height:32px;
  padding:7px 9px;
  border-left:2px solid #b9aa9a;
  background:#f4f0ea;
  color:#81786f;
  font-size:.75rem;
}
.admin-guest-entered-name strong{color:#4f463f;font-weight:700}
.admin-guest-entered-name[hidden]{display:none!important}

.landing-guest-name-entry{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:10px;
  width:min(390px,100%);
  margin-top:12px;
  transition:opacity .2s ease;
}
.landing-guest-name-entry label{display:grid;gap:5px;min-width:0}
.landing-guest-name-entry label>span{
  color:#807267;
  font-size:.64rem;
  line-height:1.2;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.landing-guest-name-entry .input{
  width:100%;
  min-height:42px;
  margin:0;
  padding:9px 11px;
  border:1px solid rgba(61,48,38,.2);
  background:rgba(255,255,255,.55);
  color:#4f463f;
  border-radius: 12px;
}
.landing-guest-name-entry.is-required .input{border-color:rgba(112,72,41,.55);background:#fff}
.landing-guest-name-entry.is-declined{opacity:.58}
.standalone-guest-name-entry{margin-top:10px}

@media(max-width:900px){
  .admin-guest-identity-fields{grid-template-columns:1fr 1fr}
  .admin-guest-name-panel{grid-column:1/-1}
  .admin-guest-type-field{grid-column:auto!important}
}
@media(max-width:680px){
  .admin-guest-identity-fields{grid-template-columns:1fr}
  .admin-guest-name-panel{grid-column:auto;grid-template-columns:1fr}
  .admin-guest-entered-name{grid-column:auto}
  .landing-guest-name-entry{grid-template-columns:1fr}
}


/* v3.14.7 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· single guest full-name input + RSVP control alignment ---------- */
.landing-guest-row.has-guest-name-entry,
.guest-row.has-guest-name-entry{
  align-items:end;
}
.landing-guest-row.has-guest-name-entry .segmented,
.guest-row.has-guest-name-entry .segmented{
  align-self:end;
}
.landing-guest-row.has-guest-name-entry .choice span,
.guest-row.has-guest-name-entry .choice span{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}
.landing-guest-name-entry .input{
  min-height:44px;
}
.figma-rsvp-arch .landing-guest-row.has-guest-name-entry{
  align-items:end;
}
.figma-rsvp-arch .landing-guest-row.has-guest-name-entry .segmented{
  align-self:end;
}
@media(max-width:680px){
  .landing-guest-row.has-guest-name-entry,
  .guest-row.has-guest-name-entry,
  .figma-rsvp-arch .landing-guest-row.has-guest-name-entry{
    align-items:stretch;
  }
  .landing-guest-row.has-guest-name-entry .segmented,
  .guest-row.has-guest-name-entry .segmented,
  .figma-rsvp-arch .landing-guest-row.has-guest-name-entry .segmented{
    align-self:stretch;
    padding-bottom:0;
  }
  .landing-guest-name-entry{
    width:100%;
  }
}

/* v3.14.8 ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€šÃ‚Â manual guest capacity planning */
.settings-capacity-block{margin:8px 0 26px;padding:20px 22px;background:#faf9f5;border:1px solid #e7e4dc}
.settings-capacity-head{display:flex;justify-content:space-between;gap:18px;align-items:baseline;margin-bottom:12px}
.settings-capacity-head strong{font-size:.95rem}.settings-capacity-head span{font-size:.8rem;color:#777970}
.settings-capacity-grid .input{margin-bottom:5px}
.admin-capacity-overview{display:grid;grid-template-columns:minmax(230px,1fr) minmax(360px,1.35fr) auto;gap:24px;align-items:center;margin:-22px 0 38px;padding:20px 22px;border:1px solid #dedcd3;background:#fff}
.admin-capacity-copy{display:grid;gap:4px}.admin-capacity-copy .eyebrow{font-size:.68rem}.admin-capacity-copy>strong{font-size:1.2rem;font-weight:600}.admin-capacity-copy small{color:#777970}
.admin-capacity-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#e7e5dd;border:1px solid #e7e5dd}
.admin-capacity-numbers>div{background:#fafaf7;padding:12px 14px}.admin-capacity-numbers span{display:block;font-size:.72rem;color:#777970;margin-bottom:4px}.admin-capacity-numbers strong{font-size:1.05rem;font-weight:700}
.admin-capacity-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.admin-capacity-actions .button{white-space:nowrap}.admin-capacity-warning{font-size:.76rem;font-weight:700;color:#8a5d21;text-align:right}.admin-capacity-overview.is-over{border-color:#d9b6ae;background:#fff9f7}.admin-capacity-overview.is-over .admin-capacity-warning{color:#9a3428}
@media(max-width:1050px){.admin-capacity-overview{grid-template-columns:1fr 1fr}.admin-capacity-actions{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}}
@media(max-width:700px){.settings-capacity-head{display:block}.settings-capacity-head span{display:block;margin-top:5px}.admin-capacity-overview{grid-template-columns:1fr;padding:17px;margin-top:-22px}.admin-capacity-numbers{grid-template-columns:1fr 1fr}.admin-capacity-numbers>div:last-child{grid-column:1/-1}.admin-capacity-actions{grid-column:auto;flex-direction:column;align-items:stretch}.admin-capacity-actions .button{text-align:center}.admin-capacity-warning{text-align:left}}

/* v3.14.9 - Figma header alignment + flush hero + admin modal width ------- */
/* Public invitation header follows Figma node 2:195: logo left, four links
   centered, invitation + language right. Hero stays otherwise unchanged. */
.figma-header{
  margin-bottom:0;
}
.figma-nav{
  grid-template-columns:200px minmax(0,1fr) 200px;
  gap:0;
  border-radius:32px 32px 0 0;
}
.figma-nav-logo{
  justify-self:start;
}
.figma-nav-center{
  gap:32px;
}
.figma-nav-actions{
  justify-self:end;
  width:200px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
}
.figma-rsvp-pill{
  justify-self:auto;
}
.figma-language{
  justify-self:auto;
  flex:0 0 auto;
}
.figma-hero{
  border-radius:0 0 32px 32px;
}
.figma-nav-public{
  display:flex;
  justify-content:flex-start;
}

@media (min-width:1281px){
  .figma-header{margin-bottom:0;}
  .figma-nav{
    padding:0 48px;
    border-radius:32px 32px 0 0;
  }
  .figma-nav-center{
    gap:32px;
    height:31.859px;
  }
  .figma-nav-center>a:not(.figma-nav-logo){
    width:120px;
    padding:8px 0;
    font-size:14px;
    line-height:15.872px;
    letter-spacing:0;
    text-align:center;
  }
  .figma-rsvp-pill{
    padding:12px 18px;
    font-size:12px;
    line-height:15.872px;
    letter-spacing:0;
  }
  .figma-language{
    font-size:9.28px;
    line-height:14.384px;
    letter-spacing:1.1136px;
  }
  .figma-hero{
    border-radius:0 0 32px 32px;
  }
}

@media (max-width:1180px){
  .figma-nav{
    grid-template-columns:64px minmax(0,1fr) auto;
    padding-left:18px;
    padding-right:18px;
  }
  .figma-nav-center{gap:clamp(14px,2vw,24px);}
  .figma-nav-actions{width:auto;}
}

@media (max-width:980px){
  .figma-header{margin-bottom:0;}
  .figma-nav{
    min-height:78px;
    grid-template-columns:48px minmax(0,1fr) auto;
    padding:8px 14px;
    border-radius:24px 24px 0 0;
  }
  .figma-nav-logo{
    grid-column:1;
    grid-row:1;
    justify-self:start;
    width:38px;
    height:52px;
  }
  .figma-nav-center{display:none;}
  .figma-nav-actions{
    grid-column:3;
    grid-row:1;
    width:auto;
    gap:10px;
  }
  .figma-rsvp-pill{
    grid-column:auto;
    grid-row:auto;
    justify-self:auto;
  }
  .figma-language{
    grid-column:auto;
    grid-row:auto;
    justify-self:auto;
  }
  .figma-nav-public{
    display:flex;
    justify-content:flex-start;
  }
  .figma-hero{
    border-radius:0 0 24px 24px;
  }
}

@media (max-width:680px){
  .figma-nav{
    min-height:70px;
    grid-template-columns:42px minmax(0,1fr) auto;
    padding: 7px 16px;
    border-radius:20px 20px 0 0;
  }
  .figma-nav-logo{
    width:34px;
    height:48px;
  }
  .figma-nav-actions{gap:6px;}
  .figma-rsvp-pill{
    max-width:118px;
    padding:8px 9px;
    line-height:1.15;
    text-align:center;
    white-space:normal;
    font-size: 0.65rem;
  }
  .figma-language{
    font-size: .65rem;
    gap:3px;
  }
  .figma-hero{
    border-radius:0 0 20px 20px;
  }
}

/* Requested admin invitation modal width. Keep viewport-safe behavior. */
.admin-modal-panel{
  width:min(1140px,100%);
}

/* Final header surface parity with Figma node 2:195. */
.figma-nav{
  position:relative;
  top:auto;
  border:0;
  box-shadow:none;
}

/* v3.14.12 ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Figma 2:321 agenda section */
.figma-agenda{
  padding:100px;
  border-radius:48px;
  background:#faf7f1;
}
.figma-agenda-heading{
  width:100%;
  max-width:1360px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.figma-agenda-heading h2{
  margin:0;
  padding-top:12px;
  font-family:"GL Parizuli","Noto Serif Georgian",Georgia,"Times New Roman",serif;
  font-size:60px;
  font-weight:400;
  line-height:118.56px;
  letter-spacing:-3.12px;
  color:#704829;
}
.lang-ka .figma-agenda-heading h2{
  font-size:60px;
  line-height:118.56px;
  letter-spacing:-3.12px;
}
.figma-agenda-track{
  margin:0 auto;
  padding-top:48px;
  padding-bottom:48px;
  align-items:start;
}
.figma-agenda-track::before{
  top:103px;
  background:rgba(61,48,38,.18);
}
.figma-agenda-item{
  min-height:248px;
}
.figma-agenda-icon{
  width:96px;
  height:96px;
  margin:0 auto 16px;
  border:2px solid rgba(61,48,38,.08);
  border-radius:50%;
  background:#f1e8dc;
}
.figma-agenda-icon img{
  width:48px;
  height:48px;
  object-fit:contain;
}
.figma-agenda-item:hover .figma-agenda-icon{
  transform:translateY(-3px);
  background:#f1e8dc;
}
.figma-agenda-dot{
  width:7px;
  height:7px;
  margin:0 auto 18px;
  box-shadow:0 0 0 8px #faf7f1;
}
.figma-agenda-item time{
  font-family:"Noto Serif Georgian","GL Parizuli",Georgia,"Times New Roman",serif;
  font-size:19.2px;
  line-height:29.76px;
  letter-spacing:1.536px;
  color:#3d3026;
}
.figma-agenda-item h3{
  min-height:39px;
  height:auto;
  margin:0;
  padding-top:8px;
  font-family:"Noto Sans Georgian",Arial,sans-serif;
  font-size:20px;
  font-weight:400;
  line-height:31px;
  color:#3d3026;
}
.figma-agenda-item p{
  min-height:25px;
  height:auto;
  margin:0;
  padding-top:5px;
  font-family:"Noto Sans Georgian",Arial,sans-serif;
  font-size:12px;
  line-height:19.344px;
  color:#807267;
}

@media (min-width:1281px){
  .figma-agenda-track{
    width:calc(var(--agenda-columns,5) * 272px);
    max-width:1360px;
    min-height:344px;
    height:auto;
    grid-template-columns:repeat(var(--agenda-columns,5),272px);
    justify-content:center;
    row-gap:56px;
  }
  .figma-agenda-track::before{
    left:8%;
    right:8%;
    width:auto;
  }
  .figma-agenda-item{
    width:272px;
    min-height:248px;
    height:auto;
    padding:0 18px;
  }
}

@media (min-width:681px) and (max-width:1280px){
  .figma-agenda{
    padding:84px 48px;
  }
  .figma-agenda-heading h2,
  .lang-ka .figma-agenda-heading h2{
    font-size:clamp(46px,5vw,60px);
    line-height:1.45;
    letter-spacing:-2.2px;
  }
  .figma-agenda-track{
    width:min(100%,calc(var(--agenda-columns,5) * 220px));
    max-width:100%;
    grid-template-columns:repeat(var(--agenda-columns,5),minmax(160px,1fr));
    justify-content:center;
    overflow:visible;
  }
  .figma-agenda-track::before{
    left:8%;
    right:8%;
    width:auto;
    top:103px;
  }
  .figma-agenda-item{
    min-height:240px;
    padding:0 12px;
  }
  .figma-agenda-icon{
    width:88px;
    height:88px;
  }
  .figma-agenda-icon img{
    width:44px;
    height:44px;
  }
}

@media (max-width:680px){
  .figma-agenda{
    padding: 48px 16px 92px 16px;
    border-radius:32px;
  }
  .figma-agenda-heading h2,
  .lang-ka .figma-agenda-heading h2{
    padding-top:0;
    font-size: clamp(32px,10vw,56px);
    line-height:1.18;
    letter-spacing:-1.6px;
    text-wrap:balance;
  }
  .figma-agenda-track{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
    max-width:100%;
    overflow:visible;
    padding:42px 0 0 8px;
  }
  .figma-agenda-track::before{
    left:44px;
    top:42px;
    bottom:26px;
    width:1px;
    height:auto;
    right:auto;
    transform:scaleY(0);
    transform-origin:top;
  }
  .figma-agenda-track.is-visible::before{
    transform:scaleY(1);
  }
  .figma-agenda-item{
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    grid-template-rows:auto auto auto;
    gap:0 18px;
    min-height:0;
    padding:0 0 30px;
    text-align:left;
  }
  .figma-agenda-icon{
    grid-column:1;
    grid-row:1/4;
    width:72px;
    height:72px;
    margin:0;
    align-self:start;
  }
  .figma-agenda-icon img{
    width:36px;
    height:36px;
  }
  .figma-agenda-dot{
    display:none;
  }
  .figma-agenda-item time,
  .figma-agenda-item h3,
  .figma-agenda-item p{
    grid-column:2;
    text-align:left;
  }
  .figma-agenda-item time{
    font-size:17px;
    line-height:24px;
  }
  .figma-agenda-item h3{
    min-height:0;
    padding-top:4px;
    font-size:18px;
    line-height:1.35;
  }
  .figma-agenda-item p{
    min-height:0;
    padding-top:3px;
    font-size:12px;
    line-height:1.45;
  }
}

/* v3.14.14 - CTA surfaces, QR visibility toggle, sticky/public header ------- */
/* Header remains in normal document flow, then stays visible while scrolling. */
.figma-header{
  position:sticky;
  top:12px;
  z-index:90;
}
.figma-header .figma-nav{
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}

/* A visitor without a personal invite gets branding only, centered. */
.figma-nav-public{
  display:flex!important;
  align-items:center;
  justify-content:center!important;
}
.figma-nav-public .figma-nav-logo{
  margin:0 auto;
  justify-self:center;
}

/* Hero CTA: warm beige treatment from the supplied reference. */
.figma-hero .figma-button{
  border-color:rgba(112,93,77,.72);
  background:#e9dfd2;
  color:#3d3026;
  box-shadow:none;
}
.figma-hero .figma-button:hover{
  border-color:#7f6d5d;
  background:#ded1c2;
  color:#3d3026;
  box-shadow:none;
}

/* RSVP confirmation: full-width soft green pill. */
.figma-rsvp-arch .landing-rsvp-actions{
  width:100%;
}
.figma-rsvp-arch .landing-rsvp-save{
  position:relative;
  width:100%;
  min-height:60px;
  margin:0;
  padding:14px 58px 14px 24px;
  border:1px solid rgba(79,112,68,.55);
  border-radius:999px;
  background:#d9e9cb;
  color:#3d3026;
  font-size:14px;
  letter-spacing:.02em;
  text-transform:none;
  box-shadow:none;
}
.figma-rsvp-arch .landing-rsvp-save>span{
  position:absolute;
  right:24px;
  top:50%;
  transform:translateY(-50%);
  font-size:18px;
  line-height:1;
}
.figma-rsvp-arch .landing-rsvp-save:hover{
  transform:translateY(-1px);
  border-color:rgba(79,112,68,.72);
  background:#cfe2bf;
  color:#3d3026;
  box-shadow:none;
}

/* QR invitation action: separate beige pill below the divider. */
.landing-digital-pass-action{
  width:100%;
  margin-top:24px;
  padding-top:24px;
  border-top:1px solid rgba(61,48,38,.18);
}
.landing-digital-pass-action .digital-pass-download{
  width:100%;
  min-height:58px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 28px;
  align-items:center;
  gap:12px;
  margin:0;
  padding:13px 22px;
  border:1px solid rgba(112,93,77,.58);
  border-radius:999px;
  background:#e9dfd2;
  color:#3d3026;
  font-size:14px;
  letter-spacing:.02em;
  text-transform:none;
  box-shadow:none;
}
.landing-digital-pass-action .digital-pass-download:hover{
  transform:translateY(-1px);
  border-color:#7f6d5d;
  background:#ded1c2;
  color:#3d3026;
  box-shadow:none;
}
.digital-pass-qr-icon{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
}
.digital-pass-qr-icon svg{
  width:20px;
  height:20px;
  display:block;
  fill:currentColor;
}
.digital-pass-download-label{
  min-width:0;
  text-align:center;
}
.digital-pass-download-arrow{
  justify-self:end;
  font-size:18px;
  line-height:1;
}

/* Small Admin helper for feature switches. */
.settings-feature-toggle{
  display:grid;
  gap:7px;
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid #ecebe5;
}
.settings-feature-toggle .settings-check{margin:0;color:#4f463f}
.settings-feature-toggle>span{color:#898a83;font-size:.76rem;line-height:1.55}

@media(max-width:980px){
  .figma-header{top:8px}
}

@media(max-width:680px){
  .figma-header{top:max(6px,env(safe-area-inset-top))}
  .figma-rsvp-arch .landing-rsvp-save,
  .landing-digital-pass-action .digital-pass-download{
    min-height:56px;
    font-size:13px;
  }
  .figma-rsvp-arch .landing-rsvp-save{padding-left:18px;padding-right:52px}
  .figma-rsvp-arch .landing-rsvp-save>span{right:20px}
  .landing-digital-pass-action .digital-pass-download{padding-left:18px;padding-right:18px}
}

/* Sticky-header anchor offset. */
.figma-main>section[id]{scroll-margin-top:124px}
@media(max-width:980px){.figma-main>section[id]{scroll-margin-top:96px}}
@media(max-width:680px){.figma-main>section[id]{scroll-margin-top:84px}}

/* v3.14.15 - sticky header state, SVG actions, settings UX ---------------- */
/* Sticky behavior lives on a dedicated class so the base header remains a
   normal layout component. The scrolled state gets four rounded corners. */
.figma-header{
  position:relative;
  top:auto;
  z-index:90;
}
.figma-header-sticky{
  position:sticky;
  top:12px;
  z-index:90;
}
.figma-header-sticky .figma-nav{
  height:84px;
  min-height:84px;
  transition:border-radius .24s ease,box-shadow .24s ease,background .24s ease,height .24s ease;
}
.figma-header-sticky .figma-nav-logo{
  width:44px;
  height:58px;
  flex-basis:44px;
}
.figma-header-sticky:not(.is-scrolled) .figma-nav{
  border-radius:32px 32px 0 0;
}
.figma-header-sticky.is-scrolled .figma-nav{
  border-radius:26px;
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 34px rgba(61,48,38,.10);
}

/* Real vector icons replace text arrows. */
.ui-icon{
  width:18px;
  height:18px;
  display:block;
  flex:0 0 18px;
  overflow:visible;
}
.figma-button .ui-icon{transition:transform .2s ease;}
.figma-button:hover .ui-icon{transform:translateX(2px);}
.rsvp-envelope-open-label .ui-icon{width:16px;height:16px;flex-basis:16px;}
.figma-rsvp-arch .landing-rsvp-save>.ui-icon{
  position:absolute;
  right:24px;
  top:50%;
  transform:translateY(-50%);
}
.figma-rsvp-arch .landing-rsvp-save:hover>.ui-icon{
  transform:translate(2px,-50%);
}
.digital-pass-download-arrow{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  justify-self:end;
}
.digital-pass-download-arrow .ui-icon{width:19px;height:19px;}
.landing-digital-pass-action .digital-pass-download:hover .digital-pass-download-arrow .ui-icon{
  transform:translateY(2px);
}

/* Venue action stays in the brown wedding palette instead of turning green. */
.figma-venue .figma-button{
  border-color:rgba(112,72,41,.52);
  color:#704829;
}
.figma-venue .figma-button:hover{
  border-color:#704829;
  background:#704829;
  color:#fffdf9;
  box-shadow:none;
}

/* Admin feature switches. Removal checkboxes remain regular action controls. */
.settings-switch{
  position:relative;
  display:flex;
  align-items:center;
  gap:13px;
  min-height:46px;
  margin:0;
  color:#4f463f;
  font-weight:500;
  cursor:pointer;
  user-select:none;
}
.settings-switch input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.settings-switch-track{
  position:relative;
  width:50px;
  height:28px;
  flex:0 0 50px;
  border:1px solid #cbc7bf;
  border-radius:999px;
  background:#dedbd4;
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.settings-switch-track::after{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 7px rgba(0,0,0,.14);
  transition:transform .22s cubic-bezier(.22,.61,.36,1);
}
.settings-switch input:checked+.settings-switch-track{
  border-color:#704829;
  background:#704829;
}
.settings-switch input:checked+.settings-switch-track::after{transform:translateX(22px);}
.settings-switch input:focus-visible+.settings-switch-track{
  box-shadow:0 0 0 3px rgba(112,72,41,.18);
}
.settings-switch-copy{display:grid;gap:2px;min-width:0;}
.settings-switch-copy strong{font-size:.86rem;font-weight:700;color:#4f463f;}
.settings-switch-copy small{font-size:.74rem;line-height:1.45;color:#898a83;font-weight:400;}
.setting-toggle-target{
  transition:opacity .22s ease,filter .22s ease;
}
.setting-toggle-target.is-setting-off{
  opacity:.42;
  filter:saturate(.72);
}

/* Settings sections can be folded independently; state is kept in localStorage. */
.settings-section-head{position:relative;padding-right:62px;}
.settings-collapse{
  position:absolute;
  top:-7px;
  right:0;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid #dedbd4;
  border-radius:50%;
  background:#fff;
  color:#704829;
  cursor:pointer;
  transition:background .2s ease,transform .2s ease,border-color .2s ease;
}
.settings-collapse:hover{background:#f5f0e9;border-color:#c9c1b7;}
.settings-collapse svg{width:18px;height:18px;transition:transform .25s ease;}
.settings-section.is-collapsed .settings-collapse svg{transform:rotate(-90deg);}
.settings-section.is-collapsed{padding-bottom:24px;}
.settings-section.is-collapsed>.settings-section-head{
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:0;
}
.settings-section.is-collapsed>:not(.settings-section-head){display:none!important;}

/* Three independent dress-code image placements. */
.dresscode-image-settings{margin-top:24px;padding-top:22px;border-top:1px solid #ecebe5;}
.dresscode-image-slot-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:18px;
}
.dresscode-image-slot{
  min-width:0;
  padding:15px;
  border:1px solid #e6e1da;
  background:#fbfaf7;
}
.dresscode-image-slot>strong{display:block;margin-bottom:9px;color:#704829;font-size:.82rem;}
.dresscode-image-slot .image-preview{aspect-ratio:4/3;margin-top:0;}
.dresscode-image-slot .input{margin-bottom:8px;}

/* The QR feature block is intentionally self-contained in its own section. */
.settings-qr-copy{margin-top:18px;}
.settings-section-note{margin:8px 0 0;color:#898a83;font-size:.76rem;line-height:1.55;}

@media(max-width:980px){
  .figma-header-sticky{top:8px;}
  .figma-header-sticky .figma-nav{height:72px;min-height:72px;}
  .figma-header-sticky .figma-nav-logo{width:36px;height:48px;flex-basis:36px;}
  .figma-header-sticky:not(.is-scrolled) .figma-nav{border-radius:24px 24px 0 0;}
  .figma-header-sticky.is-scrolled .figma-nav{border-radius:22px;}
  .dresscode-image-slot-grid{grid-template-columns:1fr 1fr;}
}

@media(max-width:680px){
  .figma-header-sticky{top:max(6px,env(safe-area-inset-top));}
  .figma-header-sticky .figma-nav{height:64px;min-height: 74px;}
  .figma-header-sticky .figma-nav-logo{width:32px;height:44px;flex-basis:32px;}
  .figma-header-sticky:not(.is-scrolled) .figma-nav{border-radius:20px 20px 0 0;}
  .figma-header-sticky.is-scrolled .figma-nav{border-radius:18px;}
  .figma-rsvp-arch .landing-rsvp-save>.ui-icon{right:20px;}
  .settings-section-head{padding-right:52px;}
  .settings-collapse{top:-6px;width:40px;height:40px;}
  .dresscode-image-slot-grid{grid-template-columns:1fr;}
}

/* v3.14.16 - ceremony + reception line-art location composition ---------- */
.figma-location-stack .location-church-block{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
  column-gap:clamp(52px,5vw,110px);
  align-items:center;
  grid-column:1/-1;
  padding:0 0 64px;
  border-bottom:1px solid rgba(112,72,41,.18);
}
.location-lineart{margin:0;min-width:0;}
.location-lineart img{display:block;width:100%;height:auto;object-fit:contain;}
.location-church-art{display:flex;align-items:center;justify-content:center;}
.location-church-art img{width:min(580px,100%);max-height:340px;}
.location-church-copy{width:100%;max-width:560px;min-width:0;}
.location-church-copy h2{overflow-wrap:anywhere;}
.location-church-copy>p{margin:24px 0 0;color:#807267;font-size:1rem;line-height:1.65;}
.location-meta{display:flex;flex-wrap:wrap;gap:11px 22px;margin-top:22px;color:#75675c;font-size:.82rem;}
.location-meta>span{display:inline-flex;align-items:center;gap:8px;min-width:0;}
.location-meta .ui-icon{width:16px;height:16px;flex-basis:16px;color:#704829;}
.location-meta time{font-family:var(--serif-font);color:#704829;letter-spacing:.08em;}
.location-church-copy .figma-button{margin-top:26px;}
.figma-location-stack .figma-venue-copy{height:auto;}
.location-venue-art{width:min(460px,100%);margin:0 0 28px;}
.location-venue-art img,.location-church-art img{opacity:.92;}

/* Location controls in Admin are separated into ceremony/reception groups. */
.settings-location-stack{gap:20px;}
.settings-location-card{padding:20px;border:1px solid #e6e1da;background:#fbfaf7;}
.settings-location-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid #ece7df;}
.settings-location-card-head>div{display:grid;gap:4px;min-width:0;}
.settings-location-card-head>div>strong{color:#704829;font-size:.9rem;}
.settings-location-card-head>div>span{color:#898a83;font-size:.76rem;line-height:1.5;}
.settings-location-card-head .settings-switch{flex:0 0 auto;min-height:0;}
.settings-location-meta-fields{margin-top:16px;padding-top:16px;border-top:1px solid #ece7df;}
.location-art-reference{margin:0 0 24px;padding:16px;border:1px solid #e6e1da;background:#fbfaf7;}
.location-art-reference>strong{display:block;margin-bottom:12px;color:#704829;font-size:.86rem;}
.location-art-reference-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.location-art-reference figure{margin:0;padding:10px;background:#fff;border:1px solid #ece7df;}
.location-art-reference img{width:100%;height:92px;object-fit:contain;display:block;}
.location-art-reference figcaption{margin-top:7px;color:#898a83;font-size:.68rem;text-align:center;}
.location-art-reference .field-help{margin:12px 0 0;}

@media(min-width:1920px){
  .figma-location-stack .location-church-block{
    grid-template-columns:minmax(0,975.59px) 650.41px;
    column-gap:110px;
  }
}

@media(max-width:980px){
  .figma-location-stack .location-church-block{
    grid-template-columns:1fr;
    gap:32px;
    padding-bottom:48px;
  }
  .location-church-art img{width:min(470px,100%);max-height:300px;}
  .location-church-copy{max-width:680px;}
  .location-venue-art{width:min(400px,100%);}
  .settings-location-card-head{flex-direction:column;gap:14px;}
}

@media(max-width:680px){
  .figma-location-stack .location-church-block{gap:24px;padding-bottom:38px;}
  .location-church-art img{width:min(360px,94%);max-height:230px;}
  .location-church-copy{text-align:center;margin:0 auto;}
  .location-church-copy>p{font-size:.9rem;line-height:1.5;}
  .location-meta{justify-content:center;gap:9px 16px;margin-top:18px;}
  .location-church-copy .figma-button{margin-left:auto;margin-right:auto;}
  .location-venue-art{width:min(330px,92%);margin:0 auto 22px;}
  .figma-location-stack .figma-venue-copy{text-align:center;}
  .figma-location-stack .figma-venue-copy>p{margin-left:auto;margin-right:auto;}
  .figma-location-stack .figma-venue-copy .figma-button{margin-left:auto;margin-right:auto;}
  .settings-location-card{padding:15px;}
  .settings-location-meta-fields{grid-template-columns:1fr;}
  .location-art-reference-grid{grid-template-columns:1fr;}
}

@media(prefers-reduced-motion:no-preference){
  .location-venue-art img,.location-church-art img{transition:transform .5s ease,opacity .3s ease;}
  .location-venue-art:hover img,.location-church-art:hover img{transform:translateY(-3px);opacity:1;}
}

/* v3.15.0 - Tables, Seat numbers, published seating snapshot --------------- */
.location-section-heading{
  grid-column:1/-1;
  width:100%;
  margin:0 0 clamp(44px,5vw,76px);
  text-align:center;
}
.location-section-heading h2{
  margin:0;
  font-family:var(--display-font,var(--heading-font));
  font-size:clamp(3rem,4.7vw,5.6rem);
  line-height:1.08;
  font-weight:400;
  letter-spacing:-.035em;
  color:#704829;
}
.lang-ka .location-section-heading h2{line-height:1.14;letter-spacing:-.02em;}
.settings-location-heading-control{margin:0 0 22px;padding:18px 20px;border:1px solid #e6e1da;background:#fbfaf7;}
.settings-location-heading-control>.setting-toggle-target{margin-top:14px;}

/* Guest-facing published seating. Hidden entirely when no published snapshot exists. */
.landing-seating-card{
  width:100%;
  margin-top:28px;
  padding:24px 0 0;
  border-top:1px solid rgba(61,48,38,.18);
  color:#704829;
}
.landing-seating-head{text-align:center;margin-bottom:10px;}
.landing-seating-list{display:grid;gap:0;}
.landing-seating-row{
  min-height:58px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid rgba(61,48,38,.12);
}
.landing-seating-row>strong{font-family:var(--serif-font);font-size:1rem;font-weight:500;}
.landing-seating-meta{display:flex;align-items:center;gap:14px 20px;flex-wrap:wrap;justify-content:flex-end;color:#75675c;font-size:.78rem;}
.landing-seating-meta>span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;}
.landing-seating-meta .ui-icon{width:18px;height:18px;flex:0 0 18px;color:#704829;}
.standalone-seating-card{margin:20px 38px 4px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.standalone-seating-card>strong{display:block;margin-bottom:10px;color:#704829;}
.standalone-seating-card>div{display:flex;justify-content:space-between;gap:18px;padding:8px 0;color:var(--muted);font-size:.86rem;}

/* Dashboard seating publication summary. */
.admin-seating-overview{
  display:grid;
  grid-template-columns:minmax(250px,1fr) auto auto;
  gap:28px;
  align-items:center;
  margin:-20px 0 34px;
  padding:20px 22px;
  border:1px solid #e4ded6;
  background:#fff;
  box-shadow:0 10px 28px rgba(0,0,0,.025);
}
.admin-seating-overview>div:first-child{display:grid;gap:3px;}
.admin-seating-overview>div:first-child>strong{color:#704829;font-size:1.1rem;}
.admin-seating-overview>div:first-child>small{color:#827970;}
.admin-seating-overview.is-published{border-left:4px solid #6b8562;}
.admin-seating-overview.has-changes{border-left-color:#b48a4f;}
.admin-seating-overview-stats{display:flex;gap:20px;flex-wrap:wrap;color:#81786f;font-size:.76rem;}
.admin-seating-overview-stats strong{color:#704829;font-size:1rem;}

/* Tables page. */
.seating-admin-main{max-width:1600px;width:100%;}
.seating-flash{margin-bottom:20px;}
.seating-publication-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:center;
  margin-bottom:24px;
  padding:22px 24px;
  border:1px solid #e3ddd5;
  border-left:4px solid #aaa39b;
  background:#fff;
  box-shadow:0 10px 28px rgba(0,0,0,.025);
}
.seating-publication-card.is-published{border-left-color:#6b8562;}
.seating-publication-card.has-changes{border-left-color:#b48a4f;}
.seating-publication-card>div:first-child{display:grid;gap:3px;}
.seating-publication-card>div:first-child>strong{color:#704829;font-size:1.15rem;}
.seating-publication-card>div:first-child>small{color:#827970;}
.seating-publish-actions{display:flex;gap:9px;align-items:center;}
.seating-publish-actions .button{margin:0;white-space:nowrap;}
.seating-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:28px;border-top:1px solid #ddd8d0;border-bottom:1px solid #ddd8d0;background:#fff;}
.seating-metrics>div{padding:19px 20px;border-right:1px solid #e5e0d9;}
.seating-metrics>div:last-child{border-right:0;}
.seating-metrics strong{display:block;color:#704829;font-size:2rem;font-weight:500;line-height:1;}
.seating-metrics span{display:block;margin-top:7px;color:#777970;font-size:.78rem;}
.seating-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start;}
.seating-table-list-panel,.seating-workspace,.seating-unassigned-section{background:#fff;border:1px solid #e5dfd7;box-shadow:0 12px 34px rgba(0,0,0,.025);}
.seating-panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #eee9e2;}
.seating-panel-head>div{display:grid;gap:3px;}
.seating-panel-head strong{color:#704829;}
.seating-panel-head span{color:#8a8179;font-size:.75rem;}
.seating-table-list{display:grid;max-height:440px;overflow:auto;}
.seating-table-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #eee9e2;color:#704829;text-decoration:none;transition:background .16s ease,opacity .16s ease;}
.seating-table-link:hover,.seating-table-link.active{background:#f8f3ec;}
.seating-table-link.is-archived{opacity:.5;}
.seating-table-link>span:first-child{display:grid;gap:2px;min-width:0;}
.seating-table-link strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.seating-table-link small{color:#9a9189;font-size:.67rem;}
.seating-capacity-pill{display:inline-flex;align-items:center;justify-content:center;min-width:58px;min-height:30px;padding:5px 9px;border-radius:999px;background:#f0ece6;color:#704829;font-size:.74rem;font-weight:700;white-space:nowrap;}
.seating-capacity-pill.is-over{background:#f5e9e7;color:#8f544e;}
.seating-create-form{display:grid;gap:8px;padding:18px;border-top:1px solid #eee9e2;}
.seating-create-form>strong{color:#704829;}
.seating-create-form label{display:grid;gap:3px;color:#69625c;font-size:.75rem;}
.seating-create-form .input{margin:0;}
.seating-create-form .button{margin-top:4px;width:100%;}
.seating-workspace{padding:24px;min-width:0;}
.seating-workspace-empty{min-height:360px;display:grid;place-items:center;align-content:center;gap:5px;color:#8a8179;text-align:center;}
.seating-workspace-empty strong{color:#704829;font-size:1.2rem;}
.seating-table-editor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid #eee9e2;}
.seating-table-editor-head h2{margin:4px 0 0;font-family:var(--heading-font);font-size:clamp(2rem,4vw,3.4rem);font-weight:400;color:#704829;}
.seating-table-settings-form{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:10px 16px;margin-bottom:24px;padding:16px;background:#fbfaf7;border:1px solid #ebe5dd;}
.seating-table-settings-form label{display:grid;gap:3px;}
.seating-table-settings-form .input{margin:0;}
.seating-table-settings-form .span-2{grid-column:1/-1;}
.seating-table-settings-actions{display:flex;justify-content:flex-end;}
.seat-grid{display:grid;grid-template-columns:repeat(var(--seat-columns,4),minmax(150px,1fr));gap:12px;margin-top:22px;}
.seat-card{min-height:150px;display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid #e6e0d8;background:#fbfaf7;}
.seat-card.is-occupied{background:#f6f1e9;border-color:#d8cabc;}
.seat-card-number{display:flex;align-items:center;gap:8px;color:#8a7666;}
.seat-card-number>strong{font-size:1.25rem;color:#704829;}
.seat-chair-icon{width:24px;height:24px;position:relative;display:inline-block;border:1.7px solid currentColor;border-top:0;border-radius:2px;}
.seat-chair-icon::before{content:"";position:absolute;left:3px;right:3px;top:-7px;height:10px;border:1.7px solid currentColor;border-bottom:0;border-radius:2px 2px 0 0;}
.seat-chair-icon::after{content:"";position:absolute;left:4px;right:4px;bottom:-6px;height:6px;border-left:1.7px solid currentColor;border-right:1.7px solid currentColor;}
.seat-card-guest{display:grid;gap:4px;min-width:0;}
.seat-card-guest strong{color:#704829;overflow-wrap:anywhere;}
.seat-card-guest span{color:#91877f;font-size:.68rem;}
.seat-public-state{display:inline-flex;width:max-content;max-width:100%;margin-top:2px;padding:3px 7px;border-radius:999px;font-size:.61rem!important;font-weight:700;line-height:1.35;}
.seat-public-state.is-current{background:#e8eee5;color:#4f6848!important;}
.seat-public-state.is-different{background:#f3e9dc;color:#8a6339!important;}
.seat-card .admin-link-button{margin-top:auto;align-self:flex-start;}
.seat-assign-form{display:grid;gap:8px;margin-top:auto;}
.seat-assign-form .input,.seat-assign-form .button{margin:0;width:100%;min-width:0;}
.seating-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px;padding-top:22px;border-top:1px solid #eee9e2;}
.seating-tool-card{display:grid;gap:9px;padding:16px;border:1px solid #e6e0d8;background:#fbfaf7;}
.seating-tool-card>div{display:grid;gap:2px;}
.seating-tool-card>div strong{color:#704829;}
.seating-tool-card>div span{color:#8a8179;font-size:.72rem;}
.seating-tool-card .input,.seating-tool-card .button{margin:0;}
.seating-archive-form{display:flex;justify-content:flex-end;margin-top:20px;padding-top:20px;border-top:1px solid #eee9e2;}
.seating-out-range{display:grid;gap:8px;margin:16px 0;padding:14px;border:1px solid #e8c7c2;background:#fbf3f1;}
.seating-out-range>strong{color:#8f544e;}
.seating-out-range>div{display:flex;justify-content:space-between;gap:14px;align-items:center;}
.seating-unassigned-section{margin-top:24px;}
.seating-unassigned-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
.seating-unassigned-list>div{padding:13px 16px;border-right:1px solid #eee9e2;border-bottom:1px solid #eee9e2;}
.seating-unassigned-list>div>span{display:grid;gap:2px;}
.seating-unassigned-list strong{color:#704829;font-size:.86rem;}
.seating-unassigned-list small{color:#92887f;font-size:.66rem;}
.seating-empty{padding:24px 16px!important;}

/* Security portal: published seating only. */
.security-seating-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:4px;color:#704829;font-size:.67rem;}
.security-seating-meta>span{display:inline-flex;align-items:center;gap:5px;}
.security-seat-icon{width:15px;height:15px;flex:0 0 15px;}

@media(max-width:1180px){
  .seating-layout{grid-template-columns:280px minmax(0,1fr);}
  .seat-grid{grid-template-columns:repeat(3,minmax(140px,1fr));}
  .seating-unassigned-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:900px){
  .admin-seating-overview{grid-template-columns:1fr;gap:14px;}
  .seating-publication-card{grid-template-columns:1fr;}
  .seating-publish-actions{flex-wrap:wrap;}
  .seating-metrics{grid-template-columns:1fr 1fr;}
  .seating-metrics>div:nth-child(2){border-right:0;}
  .seating-metrics>div:nth-child(-n+2){border-bottom:1px solid #e5e0d9;}
  .seating-layout{grid-template-columns:1fr;}
  .seating-table-list{max-height:320px;}
  .seat-grid{grid-template-columns:repeat(2,minmax(130px,1fr));}
  .seating-tools-grid{grid-template-columns:1fr;}
}
@media(max-width:680px){
  .location-section-heading{margin-bottom:34px;}
  .location-section-heading h2{font-size:clamp(2.5rem,11vw,4rem);line-height:1.12;}
  .landing-seating-row{grid-template-columns:1fr;gap:8px;text-align:center;}
  .landing-seating-meta{justify-content:center;}
  .standalone-seating-card{margin-left:20px;margin-right:20px;}
  .standalone-seating-card>div{flex-direction:column;gap:3px;text-align:center;}
  .seating-admin-main{padding-left:12px;padding-right:12px;}
  .seating-publication-card{padding:18px 16px;}
  .seating-publish-actions{align-items:stretch;flex-direction:column;}
  .seating-publish-actions .button{width:100%;}
  .seating-metrics{grid-template-columns:1fr;}
  .seating-metrics>div{border-right:0;border-bottom:1px solid #e5e0d9;}
  .seating-metrics>div:last-child{border-bottom:0;}
  .seating-workspace{padding:18px 12px;}
  .seating-table-settings-form{grid-template-columns:1fr;}
  .seating-table-settings-form .span-2{grid-column:auto;}
  .seat-grid{grid-template-columns:1fr 1fr;gap:8px;}
  .seat-card{min-height:138px;padding:12px;}
  .seating-unassigned-list{grid-template-columns:1fr;}
}
@media(max-width:420px){
  .seat-grid{grid-template-columns:1fr;}
}

/* v3.16.0 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Mobile Admin + Admin Users ---------------------------------- */
.admin-mobile-bar,.admin-nav-backdrop,.admin-nav-close,.admin-mobile-filter-toggle{display:none}
.admin-nav{display:flex;flex-direction:column;gap:24px;position:relative;z-index:120}
.admin-nav-brand{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.admin-nav-brand>div{display:grid;gap:4px}.admin-nav-brand>div>span{font-size:.68rem;color:#8a837c;letter-spacing:.04em}
.admin-nav nav{display:grid;gap:2px;margin-top:0!important}.admin-nav nav a{padding:10px 8px;border-radius:10px}.admin-nav nav a:hover{background:#f6f3ee;color:#704829}.admin-nav nav a.active{background:#f2ebe3}
.admin-nav-footer{margin-top:auto;padding-top:18px;border-top:1px solid #ece7df;display:grid;gap:9px}.admin-nav-footer>a{padding:5px 8px}.admin-nav-account{display:grid;gap:2px;padding:0 8px 8px}.admin-nav-account strong{font-family:inherit;font-size:.82rem;color:#4f463f}.admin-nav-account span{font-size:.68rem;color:#8a837c;text-transform:uppercase;letter-spacing:.08em}
.admin-users-create{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(420px,1.2fr);gap:42px;padding:30px 34px;margin-bottom:34px;background:#fff;border:1px solid #e5e0d9;box-shadow:0 12px 34px rgba(0,0,0,.025)}
.admin-users-create h2,.admin-users-section h2{font-family:var(--heading-font);font-weight:400;color:#704829;font-size:2rem;margin:7px 0 10px}.admin-users-create p{color:#777970;line-height:1.6;margin:0}.admin-users-create form{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.admin-users-create form label:last-of-type{grid-column:1/-1}.admin-users-create form .button{grid-column:1/-1;justify-self:start}
.admin-users-section{margin-top:26px}.admin-role-badge{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.04em}.admin-role-badge.role-owner{background:#efe3d5;color:#704829}.admin-role-badge.role-admin{background:#eceeea;color:#4c5748}
.admin-user-actions{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.admin-user-actions details{position:relative}.admin-user-actions summary{cursor:pointer;color:#704829;font-size:.78rem;font-weight:800;list-style:none}.admin-user-actions summary::-webkit-details-marker{display:none}.admin-user-action-form{min-width:270px;margin-top:9px;padding:14px;background:#fbfaf7;border:1px solid #e5e0d9;box-shadow:0 10px 24px rgba(61,48,38,.06)}
.admin-migration-card{max-width:720px;padding:28px;background:#fff;border:1px solid #e4dfd7}.admin-migration-card p{color:#777970;line-height:1.6}
.activity-filter{max-width:260px;margin:0 0 20px}.activity-action{font-weight:700;color:#704829}.activity-table td:last-child{max-width:420px;color:#777970;font-size:.8rem}
.admin-menu-toggle,.admin-nav-close{appearance:none;border:0;background:transparent;color:#704829;cursor:pointer}.admin-menu-toggle svg,.admin-nav-close svg{width:24px;height:24px;display:block}
.admin-mobile-user{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#807267;font-size:.68rem}
.admin-mobile-filter-toggle svg{width:18px;height:18px}.admin-mobile-filter-toggle{align-items:center;justify-content:space-between;width:100%;margin:0 0 12px}

@media(max-width:900px){
  .admin-body{padding-top:64px}
  .admin-shell{display:block;min-height:calc(100svh - 64px)}
  .admin-mobile-bar{display:grid;grid-template-columns:44px 1fr minmax(0,120px);align-items:center;gap:10px;position:fixed;z-index:150;left:0;right:0;top:0;min-height:64px;padding:max(10px,env(safe-area-inset-top)) 16px 10px;background:rgba(255,255,255,.96);border-bottom:1px solid #e5e0d9;backdrop-filter:blur(14px)}
  .admin-mobile-bar>strong{font-family:var(--heading-font);font-size:1.2rem;text-align:center;color:#704829}
  .admin-nav{display:flex!important;position:fixed;z-index:160;left:0;top:0;bottom:0;width:min(330px,88vw);padding:max(22px,env(safe-area-inset-top)) 18px max(22px,env(safe-area-inset-bottom));border-right:1px solid #dddcd5;background:#fff;box-shadow:18px 0 44px rgba(61,48,38,.14);transform:translateX(-105%);transition:transform .24s ease;overflow-y:auto;border-radius: 0 16px  16px 0;max-height: 100dvh;}
  .admin-nav-close{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#f6f3ee;flex:0 0 auto}
  .admin-nav-backdrop{display:block;position:fixed;z-index:155;inset:0;border:0;background:rgba(42,34,28,.34);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
  .admin-menu-open{overflow:hidden}.admin-menu-open .admin-nav{transform:translateX(0)}.admin-menu-open .admin-nav-backdrop{opacity:1;visibility:visible}
  .admin-main{width:100%;padding:26px 16px 54px}
  .admin-title{align-items:flex-start;flex-direction:column;margin-bottom:24px}.admin-title h1{font-size:clamp(2rem,10vw,3rem)}.admin-title>div{min-width:0}.admin-title-actions{width:100%}.admin-title-actions .button,.admin-title>.button{width:100%;justify-content:center}
  .metrics{grid-template-columns:1fr 1fr;margin-bottom:28px}.metric{padding:16px 12px}.metric strong{font-size:2rem}
  .admin-capacity-overview{grid-template-columns:1fr;gap:16px;margin:-8px 0 26px}.admin-capacity-actions{align-items:stretch}.admin-capacity-actions .button{width:100%;justify-content:center}
  .admin-users-create{grid-template-columns:1fr;gap:22px;padding:22px 18px}.admin-users-create form{grid-template-columns:1fr}.admin-users-create form label:last-of-type,.admin-users-create form .button{grid-column:auto}.admin-users-create form .button{width:100%;justify-content:center}
  .security-admin-create{grid-template-columns:1fr!important;gap:22px!important;padding:22px 18px!important}.security-admin-create form{padding:20px 0 0!important;border-left:0!important;border-top:1px solid #ece7df!important}
  .settings-form{min-width:0}.settings-section,.settings-card{max-width:100%}
  .seating-admin-layout{grid-template-columns:1fr!important}.seating-publication-card{align-items:flex-start!important;flex-direction:column}.seating-publication-actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr}.seating-publication-actions .button{width:100%;justify-content:center}
}

@media(max-width:760px){
  .admin-mobile-filter-toggle{display:flex}
  .admin-filters{display:none!important;grid-template-columns:1fr!important;padding:16px;margin-bottom:16px}.admin-filters.is-mobile-open{display:grid!important}.admin-filters>*{grid-column:auto!important}.admin-filter-actions{flex-direction:column;align-items:stretch}.admin-filter-actions .button{width:100%;justify-content:center}
  .table-wrap{overflow:visible;background:transparent;box-shadow:none}
  .table-wrap table:not(.admin-no-card-table){display:block;min-width:0;width:100%;background:transparent}
  .table-wrap table:not(.admin-no-card-table) thead{display:none}
  .table-wrap table:not(.admin-no-card-table) tbody{display:grid;gap:12px}
  .table-wrap table:not(.admin-no-card-table) tr{display:block;padding:8px 14px;background:#fff;border:1px solid #e5e0d9;border-radius:14px;box-shadow:0 8px 24px rgba(61,48,38,.035)}
  .table-wrap table:not(.admin-no-card-table) td{display:grid;grid-template-columns:minmax(92px,.38fr) minmax(0,1fr);gap:12px;align-items:start;width:100%;padding:11px 0;border-bottom:1px solid #eee9e2;text-align:left!important;max-width:none!important}
  .table-wrap table:not(.admin-no-card-table) td:last-child{border-bottom:0}.table-wrap table:not(.admin-no-card-table) td::before{content:attr(data-label);color:#8a837c;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.table-wrap table:not(.admin-no-card-table) td.admin-mobile-empty{display:block;text-align:center!important;padding:22px 6px}.table-wrap table:not(.admin-no-card-table) td.admin-mobile-empty::before{display:none}
  .admin-row-actions,.security-admin-actions,.admin-user-actions{justify-content:flex-start;gap:10px}.admin-row-actions>*{margin:0}.admin-user-action-form{min-width:0;width:min(270px,68vw)}
  .admin-import-summary{grid-template-columns:1fr 1fr}.admin-import-card{grid-template-columns:1fr!important;gap:22px!important;padding:22px 18px!important}.admin-import-form{padding:20px 0 0!important;border-left:0!important;border-top:1px solid #ece7df!important}
  .settings-grid,.settings-grid.three,.settings-grid.two,.settings-bilingual-grid,.dresscode-avoid-settings-head{grid-template-columns:1fr!important}
  .agenda-editor-card,.settings-card{padding-left:14px!important;padding-right:14px!important}
  .seating-table-list{grid-template-columns:1fr!important}.seating-tools{grid-template-columns:1fr!important}.seating-assigned-row{grid-template-columns:1fr!important;gap:8px}.seating-assigned-actions{justify-content:flex-start!important}.seating-publication-actions{grid-template-columns:1fr!important}
  .activity-filter{max-width:none}.activity-filter .input{margin-bottom:0}
}

@media(max-width:680px){
  .admin-main{padding-left:12px;padding-right:12px}
  .metrics{grid-template-columns:1fr 1fr}.metric strong{font-size:1.75rem}
  .admin-modal{padding:0!important;align-items:stretch!important}.admin-modal-panel{width:100%!important;max-width:none!important;height:100svh!important;max-height:none!important;border-radius:0!important;padding:22px 14px 0!important;overflow:auto!important}.admin-modal-head{padding-right:42px}.admin-modal-footer{position:sticky;z-index:3;bottom:0;margin:24px -14px 0;padding:14px;background:rgba(255,255,255,.97);border-top:1px solid #e5e0d9;box-shadow:0 -10px 30px rgba(61,48,38,.06)}.admin-modal-footer-actions{width:100%;display:grid;grid-template-columns:1fr}.admin-modal-footer-actions .button{width:100%;justify-content:center}
  .admin-editor-grid,.admin-guest-fields,.admin-guest-identity-fields,.admin-guest-name-panel{grid-template-columns:1fr!important}.admin-editor-tools{align-items:stretch;flex-direction:column}.admin-editor-tools .button{width:100%;justify-content:center}
  .login-shell{margin:5vh auto;padding:26px 20px}
}

@media(max-width:420px){
  .admin-mobile-bar{grid-template-columns:42px 1fr 82px;padding-left:10px;padding-right:10px}.admin-mobile-user{max-width:82px;text-align:right}
  .metrics{grid-template-columns:1fr}.metric{border-right:0!important;border-bottom:1px solid #d7d6cf}.metric:last-child{border-bottom:0}
  .admin-import-summary{grid-template-columns:1fr}.admin-capacity-numbers{grid-template-columns:1fr}.admin-user-action-form{width:72vw}
}


/* v3.16.1 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Admin width normalization, invite seating & pass spacing ------- */
.admin-main,
.admin-guests-main,
.settings-main,
.seating-admin-main,
.admin-users-main,
.activity-main,
.admin-import-main,
.security-admin-main{
  width:100%;
  max-width:1440px;
  margin-left:auto;
  margin-right:auto;
}
.admin-invite-seating-note{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin:14px 0 4px;
  padding:12px 14px;
  border:1px solid #e6ded4;
  background:#f8f3ed;
  color:#704829;
}
.admin-invite-seating-note .seat-chair-icon{width:28px;height:28px}
.admin-invite-seating-note strong{display:block;font-size:.78rem}
.admin-invite-seating-note small{display:block;margin-top:3px;color:#807267;font-size:.7rem;line-height:1.45}
.admin-invite-seating-note a{color:#704829;font-size:.72rem;font-weight:700;white-space:nowrap}
.admin-guest-seating{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(190px,1fr) minmax(120px,.38fr);
  gap:10px 14px;
  align-items:end;
  margin-top:2px;
  padding-top:12px;
  border-top:1px solid #e5ddd3;
}
.admin-guest-seating>small{grid-column:1/-1;color:#807267;font-size:.68rem;line-height:1.45}
.admin-guest-seating .input:disabled{background:#efede9;color:#938a82;cursor:not-allowed}
.admin-guest-editor-row.is-archived .admin-guest-seating{opacity:.72}
.admin-guest-row-meta [data-delete-guest]{white-space:nowrap}
@media(max-width:900px){
  .admin-main,
  .admin-guests-main,
  .settings-main,
  .seating-admin-main,
  .admin-users-main,
  .activity-main,
  .admin-import-main,
  .security-admin-main{max-width:none;margin:0}
}
@media(max-width:680px){
  .admin-invite-seating-note{grid-template-columns:32px minmax(0,1fr);align-items:start}
  .admin-invite-seating-note a{grid-column:2;justify-self:start}
  .admin-guest-seating{grid-template-columns:1fr}
  .admin-guest-seating>small{grid-column:auto}
  .admin-guest-row-meta{justify-content:flex-start!important}
}

/* v3.16.3 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Invite guest card alignment + explicit 24-hour agenda time ---- */
.admin-guest-editor-row{
  grid-template-columns:minmax(0,1fr);
  gap:14px;
  align-items:stretch;
  padding:18px;
}
.admin-guest-row-meta{
  grid-row:1;
  min-width:0;
  min-height:34px;
  justify-content:flex-end;
  align-items:center;
  gap:10px 14px;
  padding-bottom:12px;
  border-bottom:1px solid #e9e2d9;
  white-space:normal;
  flex-wrap:wrap;
}
.admin-guest-row-meta .admin-primary-contact-choice{margin-right:auto}
.admin-guest-fields.admin-guest-identity-fields{
  grid-row:2;
  grid-template-columns:minmax(150px,.55fr) minmax(420px,1.9fr) minmax(150px,.55fr);
  gap:14px 16px;
  align-items:start;
  min-width:0;
}
.admin-guest-mode-field{grid-column:1;min-width:0}
.admin-guest-name-panel{grid-column:2;min-width:0;align-items:start}
.admin-guest-type-field{grid-column:3;min-width:0}
.admin-guest-mode-field,
.admin-guest-type-field,
.admin-guest-name-panel>label{
  display:grid!important;
  grid-template-rows:auto 48px;
  gap:6px;
  align-content:start;
  min-width:0;
}
.admin-field-label{
  min-width:0;
  min-height:21px;
  display:flex!important;
  align-items:baseline;
  gap:7px;
  margin:0!important;
  color:#4f463f!important;
  font-size:.84rem!important;
  font-weight:800!important;
  line-height:1.25;
  white-space:nowrap;
}
.admin-field-auto{
  display:block!important;
  min-width:0;
  max-width:52%;
  margin:0 0 0 auto!important;
  overflow:hidden;
  color:#989089!important;
  font-size:.67rem!important;
  font-weight:400!important;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-guest-mode-field>.input,
.admin-guest-type-field>.input,
.admin-guest-name-panel>label>.input{
  width:100%;
  min-width:0;
  min-height:48px;
  height:48px;
  margin:0!important;
}
.admin-guest-entered-name{
  grid-column:1/-1;
  min-width:0;
  min-height:36px;
  margin-top:0;
  padding:8px 10px;
  flex-wrap:wrap;
  line-height:1.35;
}
.admin-guest-seating{
  grid-column:1/-1;
  grid-template-columns:minmax(0,1fr) minmax(150px,.34fr);
  gap:10px 16px;
  align-items:start;
  margin-top:4px;
  padding-top:16px;
}
.admin-guest-seating>label{
  display:grid!important;
  grid-template-rows:auto 48px;
  gap:6px;
  min-width:0;
  color:#4f463f;
  line-height:1.25;
}
.admin-guest-seating>label>.input{
  width:100%;
  min-width:0;
  min-height:48px;
  height:48px;
  margin:0!important;
}
.admin-guest-seating>small{margin-top:-1px}
.admin-time-24{
  font-variant-numeric:tabular-nums;
  letter-spacing:.04em;
}
.admin-time-24:invalid:not(:placeholder-shown){
  border-color:#b26a61;
  box-shadow:0 0 0 2px rgba(178,106,97,.08);
}

@media(max-width:1050px){
  .admin-guest-fields.admin-guest-identity-fields{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .admin-guest-mode-field{grid-column:1;grid-row:1}
  .admin-guest-type-field{grid-column:2;grid-row:1}
  .admin-guest-name-panel{grid-column:1/-1;grid-row:2}
  .admin-guest-seating{grid-column:1/-1;grid-row:3}
}

@media(max-width:680px){
  .admin-guest-editor-row{padding:15px 14px;gap:12px}
  .admin-guest-row-meta{
    justify-content:flex-start!important;
    align-items:center;
    padding-bottom:11px;
  }
  .admin-guest-row-meta .admin-primary-contact-choice{
    width:100%;
    margin-right:0;
  }
  .admin-guest-fields.admin-guest-identity-fields{
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px;
  }
  .admin-guest-mode-field{grid-column:1;grid-row:1}
  .admin-guest-name-panel{grid-column:1;grid-row:2;grid-template-columns:minmax(0,1fr)!important}
  .admin-guest-type-field{grid-column:1;grid-row:3}
  .admin-guest-seating{grid-column:1;grid-row:4;grid-template-columns:minmax(0,1fr)}
  .admin-guest-seating>small{grid-column:1}
  .admin-field-auto{max-width:46%}
}


/* v3.16.4 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· SMS export --------------------------------------------------- */
.sms-admin-main{max-width:1440px;width:100%}
.sms-admin-notice{margin-bottom:22px}
.sms-admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 28px;border-top:1px solid #ddd8d0;border-bottom:1px solid #ddd8d0;background:#fff}
.sms-admin-metrics>div{padding:22px 24px;border-right:1px solid #e5e0d9}
.sms-admin-metrics>div:last-child{border-right:0}
.sms-admin-metrics strong{display:block;color:#704829;font-size:2rem;font-weight:500;line-height:1}
.sms-admin-metrics span{display:block;margin-top:8px;color:#777970;font-size:.78rem}
.sms-template-card{display:grid;grid-template-columns:minmax(0,.85fr) minmax(480px,1.15fr);gap:42px;padding:30px 34px;background:#fff;border-top:1px solid #d9d8d1;box-shadow:0 12px 34px rgba(0,0,0,.025)}
.sms-template-copy h2,.sms-preview-card h2,.sms-export-list h2{margin:8px 0 12px;color:#704829;font-family:var(--heading-font);font-size:2rem;font-weight:400}
.sms-template-copy p{max-width:620px;margin:0;color:#777970;line-height:1.65}
.sms-template-copy code,.sms-template-meta code{padding:2px 5px;background:#f4efe8;color:#704829;font-size:.86em}
.sms-column-map{display:grid;gap:8px;margin-top:24px;padding-top:20px;border-top:1px solid #ece7df;color:#777970;font-size:.8rem}
.sms-column-map span{display:flex;gap:8px;align-items:baseline}
.sms-column-map strong{min-width:112px;color:#704829}
.sms-template-editor{min-width:0;padding-left:34px;border-left:1px solid #ece7df}
.sms-template-editor>label{display:block;color:#4f463f}
.sms-template-textarea{min-height:210px;margin-top:7px;resize:vertical;white-space:pre-wrap;line-height:1.65}
.sms-template-meta{display:flex;justify-content:space-between;gap:18px;color:#8c8178;font-size:.72rem}
.sms-template-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}
.sms-template-actions .button{margin:0}
.sms-template-actions .button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.sms-preview-card{margin-top:28px;padding:26px 30px;background:#fbf8f4;border:1px solid #ebe4dc}
.sms-preview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px}
.sms-preview-head h2{margin-bottom:0;font-size:1.55rem}
.sms-message-preview{margin:0;padding:20px 22px;border-left:2px solid #b9aa9a;background:#fff;white-space:pre-wrap;overflow-wrap:anywhere;color:#4f463f;font-family:inherit;font-size:.88rem;line-height:1.7}
.sms-export-list{margin-top:30px}
.sms-export-list .security-admin-section-head span{color:#777970;font-size:.8rem}
.sms-export-table{min-width:880px}
.sms-export-table td{vertical-align:middle}
.sms-export-table small.sms-pending-note{display:block;margin-top:5px;color:#947866;font-size:.68rem}
.sms-link{color:#704829;font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}

@media(max-width:980px){
  .sms-admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sms-admin-metrics>div:nth-child(2){border-right:0}
  .sms-admin-metrics>div:nth-child(-n+2){border-bottom:1px solid #e5e0d9}
  .sms-template-card{grid-template-columns:1fr;gap:24px;padding:24px 20px}
  .sms-template-editor{padding:22px 0 0;border-left:0;border-top:1px solid #ece7df}
}
@media(max-width:680px){
  .sms-admin-metrics{grid-template-columns:1fr}
  .sms-admin-metrics>div{border-right:0;border-bottom:1px solid #e5e0d9}
  .sms-admin-metrics>div:last-child{border-bottom:0}
  .sms-template-card{padding:20px 16px}
  .sms-template-meta{align-items:flex-start;flex-direction:column;gap:5px}
  .sms-template-actions{flex-direction:column-reverse;align-items:stretch}
  .sms-template-actions .button{width:100%}
  .sms-preview-card{padding:22px 16px}
  .sms-preview-head{align-items:flex-start;flex-direction:column}
  .sms-export-table{min-width:0}
  .sms-export-table thead{display:none}
  .sms-export-table,.sms-export-table tbody,.sms-export-table tr,.sms-export-table td{display:block;width:100%}
  .sms-export-table tr{padding:16px;border-bottom:1px solid #ece7df}
  .sms-export-table td{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;padding:6px 0;border:0}
  .sms-export-table td::before{content:attr(data-label);color:#8c8178;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
  .sms-export-table .admin-empty{display:block;text-align:left!important;padding:18px 0!important}
  .sms-export-table .admin-empty::before{display:none}
}

/* v3.17.0 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Global admin snackbar + invitation grouping ---------------- */
.admin-snackbar-stack{position:fixed;right:22px;bottom:22px;z-index:2000;display:grid;gap:10px;width:min(420px,calc(100vw - 44px));pointer-events:none}
.admin-snackbar{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;min-height:54px;background:#2f2b28;color:#fff;border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 50px rgba(32,25,20,.2);opacity:0;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease;pointer-events:auto}
.admin-snackbar.is-visible{opacity:1;transform:translateY(0)}
.admin-snackbar.is-success{border-left:4px solid #8ba17f}.admin-snackbar.is-warning{border-left:4px solid #c29a62}.admin-snackbar.is-error{border-left:4px solid #c4786f}
.admin-snackbar-message{padding:13px 14px;line-height:1.4;font-size:.83rem;overflow-wrap:anywhere}
.admin-snackbar-close{appearance:none;display:grid;place-items:center;width:44px;height:44px;margin:0;border:0;background:transparent;color:inherit;font-size:1.45rem;line-height:1;cursor:pointer}
.admin-snackbar-close:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
.admin-bride-create{margin-left:14px}
.admin-side-quick-select{min-width:118px;min-height:40px;margin:0;font-size:.76rem}
@media(max-width:680px){.admin-snackbar-stack{left:12px;right:12px;bottom:12px;width:auto}.admin-bride-create{margin-left:0;margin-top:8px}}
@media(prefers-reduced-motion:reduce){.admin-snackbar{transition:none}}

/* v3.17.0 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Batch seating draft editor --------------------------------- */
.seating-layout-form{position:relative}
.seating-layout-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:2px;padding:13px 0 2px}
.seating-layout-toolbar>div:first-child{display:grid;gap:2px}.seating-layout-toolbar>div:first-child strong{color:#704829}.seating-layout-toolbar>div:first-child span{color:#8a8179;font-size:.72rem}
.seating-side-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.seating-side-filters button{appearance:none;min-height:44px;padding:8px 12px;border:1px solid #dfd7ce;background:#fff;color:#6d625a;font:inherit;font-size:.72rem;font-weight:700;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}
.seating-side-filters button:hover,.seating-side-filters button.is-active{background:#f1e9df;border-color:#cdbdab;color:#704829}
.seating-side-filters button:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.seating-seat-select{width:100%;min-height:48px;margin:0;font-size:.72rem}
.seat-card .seating-seat-select{margin-top:auto}
.seating-draft-savebar{position:sticky;z-index:30;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px auto 0;padding: 8px 10px 10px 16px;max-width:620px;background:#332e2a;color:#fff;box-shadow:0 18px 46px rgba(36,27,21,.22)}
.seating-draft-savebar[hidden]{display:none}.seating-draft-savebar span{font-size:.8rem}.seating-draft-savebar .button{min-height:44px;margin:0}
.seating-draft-savebar .seating-save-primary{background:#4f7044;border-color:#4f7044;color:#fff;box-shadow:0 7px 18px rgba(44,77,37,.28);border-radius: 80px;}
.seating-draft-savebar .seating-save-primary:hover{background:#45633d;border-color:#45633d;color:#fff;box-shadow:0 9px 22px rgba(44,77,37,.34)}
.seating-draft-savebar .seating-save-primary:focus-visible{outline:3px solid #c6dfbd;outline-offset:3px}
.seating-unassigned-filter{padding:12px 16px;border-bottom:1px solid #eee9e2;background:#fbfaf7}
.seating-tools-grid .seating-tool-card:only-child{grid-column:1/-1;max-width:760px}
@media(max-width:760px){.seating-layout-toolbar{align-items:flex-start;flex-direction:column}.seating-side-filters{width:100%}.seating-side-filters button{flex:1 1 auto}.seating-draft-savebar{left:0;right:0;bottom: 88px;width:100%;max-width:none;border-radius: 70px;}}

/* v3.17.0 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Groom / Bride dashboard controls --------------------------- */
.admin-side-create-group{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.admin-side-create-group .admin-bride-create{margin:0}
.admin-side-tabs{display:flex;gap:4px;align-items:center;margin:0 0 14px;padding:4px;border:1px solid #e6dfd7;background:#fbfaf7;width:max-content;max-width:100%;overflow:auto}
.admin-side-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 15px;color:#776b61;text-decoration:none;font-size:.76rem;font-weight:700;white-space:nowrap}
.admin-side-tabs a:hover,.admin-side-tabs a.is-active{background:#efe7de;color:#704829}
.admin-side-tabs a:focus-visible{outline:2px solid #8d725e;outline-offset:-2px}
.admin-side-badge{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;background:#efebe6;color:#6e6259;font-size:.7rem;font-weight:800}
.admin-side-badge.is-groom{background:#e9eef0;color:#526772}.admin-side-badge.is-bride{background:#f2e8e9;color:#7d5a60}.admin-side-badge.is-unassigned{background:#eeeae5;color:#756c65}
@media(max-width:680px){.admin-side-create-group{width:100%;gap:16px}.admin-side-create-group .button{flex:1 1 100%;width:100%;min-height:48px;margin:0}.admin-side-tabs{width:100%}.admin-side-tabs a{flex:1 0 auto}}


/* v3.17.1 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Couple-side identity + partial RSVP ------------------------- */
:root{--admin-groom:#5f7781;--admin-groom-hover:#526a74;--admin-bride:#956873;--admin-bride-hover:#845762}
.admin-side-create-group .admin-groom-create{background:var(--admin-groom);border-color:var(--admin-groom);color:#fff}
.admin-side-create-group .admin-bride-create{background:var(--admin-bride);border-color:var(--admin-bride);color:#fff}
.admin-side-create-group .admin-groom-create:hover{background:var(--admin-groom-hover);border-color:var(--admin-groom-hover)}
.admin-side-create-group .admin-bride-create:hover{background:var(--admin-bride-hover);border-color:var(--admin-bride-hover)}
.rsvp-response-controls{display:flex;align-items:center;gap:8px;min-width:0}
.rsvp-reset-response{width:44px;height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.rsvp-reset-response:hover{background:#f7f3ed;color:#704829;border-color:#cfc5bb;transform:rotate(-12deg)}
.rsvp-reset-response:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.rsvp-reset-response.is-selected{background:#f3eee7;color:#704829;border-color:#bca58f;box-shadow:inset 0 0 0 1px rgba(112,72,41,.08)}
.rsvp-reset-response svg{width:19px;height:19px;display:block}
.rsvp-reset-response[hidden]{display:none!important}
.rsvp-reset-response.is-loading{pointer-events:none;opacity:.65;animation:rsvp-reset-spin .7s linear infinite}
@keyframes rsvp-reset-spin{to{transform:rotate(-360deg)}}
@media(max-width:680px){.rsvp-response-controls{width:100%;align-items:center}.rsvp-response-controls .segmented{flex:1}.rsvp-reset-response{width:44px;height:44px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.rsvp-reset-response:hover{transform:none}}


/* v3.17.7 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· RSVP progress + SMS export filters ------------------------- */
.status.partial{background:#eee8f3;color:#695178}
.admin-rsvp-progress-count{display:block;margin-top:5px;color:#8b837b;font-size:.68rem;white-space:nowrap}
.sms-export-filter-card{margin:0 0 28px;padding:24px 28px;background:#fff;border-top:1px solid #ddd8d0;box-shadow:0 10px 28px rgba(0,0,0,.025)}
.sms-export-filter-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px}
.sms-export-filter-head h2{margin:7px 0 0;color:#704829;font-family:var(--heading-font);font-size:1.7rem;font-weight:400}
.sms-export-filter-head p{max-width:620px;margin:0;color:#7a746d;font-size:.8rem;line-height:1.55}
.sms-export-filter-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:28px}
.sms-filter-group{min-width:0;margin:0;padding:18px 0 0;border:0;border-top:1px solid #ece7df}
.sms-filter-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}
.sms-filter-group-head strong{font-size:.8rem;color:#4f463f}
.sms-filter-shortcuts{display:flex;gap:10px}
.sms-filter-shortcuts button{appearance:none;padding:0;border:0;background:none;color:#704829;font:inherit;font-size:.7rem;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.sms-filter-options{display:flex;flex-wrap:wrap;gap:9px}
.sms-filter-option{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 12px;border:1px solid #e2ddd6;background:#faf9f6;cursor:pointer;font-size:.78rem;font-weight:700;color:#5f5750}
.sms-filter-option input{width:17px;height:17px;margin:0;accent-color:#704829}
.sms-filter-option small{color:#968b81;font-size:.68rem;font-weight:600}
.sms-export-live-summary{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:20px;padding-top:18px;border-top:1px solid #ece7df;color:#746c65;font-size:.78rem}
.sms-export-live-summary strong{color:#704829}
.sms-export-filter-empty{margin-top:14px;color:#9b5148;font-size:.78rem;font-weight:700}
.sms-export-table tr[hidden]{display:none!important}
@media(max-width:820px){.sms-export-filter-grid{grid-template-columns:1fr}.sms-export-filter-head{align-items:flex-start;flex-direction:column}.sms-export-filter-card{padding:22px 18px}}

/* v3.17.8 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· SMS export filter hierarchy -------------------------------- */
.sms-export-filter-card{padding:26px 28px 24px}
.sms-export-filter-head{display:block;margin-bottom:24px}
.sms-export-filter-head h2{margin:7px 0 6px}
.sms-export-filter-head p{max-width:760px;margin:0;color:#7a746d;font-size:.82rem;line-height:1.6}
.sms-filter-steps{display:grid;gap:26px}
.sms-filter-step{min-width:0;margin:0;padding:0;border:0}
.sms-filter-step+.sms-filter-step{padding-top:24px;border-top:1px solid #ece7df}
.sms-filter-step-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:13px}
.sms-filter-step-title{display:flex;align-items:center;gap:11px;min-width:0}
.sms-filter-step-title>div{display:grid;gap:2px}
.sms-filter-step-title strong{color:#4f463f;font-size:.86rem}
.sms-filter-step-title small{color:#938a82;font-size:.7rem;line-height:1.35}
.sms-filter-step-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-width:30px;border-radius:999px;background:#efe8df;color:#704829;font-size:.75rem;font-weight:800}
.sms-filter-shortcuts{display:flex;align-items:center;gap:12px;white-space:nowrap}
.sms-filter-shortcuts button{appearance:none;min-height:36px;padding:6px 10px;border:1px solid #dfd7cf;border-radius:999px;background:#fff;color:#704829;font:inherit;font-size:.69rem;font-weight:750;cursor:pointer;text-decoration:none;transition:background .16s ease,border-color .16s ease,color .16s ease}
.sms-filter-shortcuts button:hover{background:#f7f2ec;border-color:#cdbdaf}
.sms-filter-shortcuts button:last-child{border-color:transparent;background:transparent;color:#8b8178}
.sms-filter-options{display:grid;gap:10px}
.sms-filter-side-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.sms-filter-status-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.sms-filter-option{position:relative;display:flex;align-items:center;gap:12px;min-height:64px;padding:13px 14px;border:1px solid #e2ddd6;border-radius:12px;background:#fbfaf7;cursor:pointer;color:#5f5750;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}
.sms-filter-option:hover{border-color:#cfc4b8;background:#fff;transform:translateY(-1px)}
.sms-filter-option:focus-within{outline:2px solid #8d725e;outline-offset:2px}
.sms-filter-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.sms-filter-option-body{display:grid;gap:3px;min-width:0;padding-right:28px}
.sms-filter-option-body strong{color:#554b43;font-size:.79rem;line-height:1.25}
.sms-filter-option-body small{color:#948a81;font-size:.68rem;font-weight:600;line-height:1.35}
.sms-filter-check{position:absolute;right:13px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid #d7cfc7;border-radius:999px;background:#fff;color:transparent;font-size:.72rem;font-weight:900;transform:translateY(-50%);transition:background .16s ease,border-color .16s ease,color .16s ease}
.sms-filter-option:has(input:checked){border-color:#ad9a88;background:#fff;box-shadow:0 7px 20px rgba(54,42,32,.06)}
.sms-filter-option:has(input:checked) .sms-filter-check{border-color:#704829;background:#704829;color:#fff}
.sms-side-option.is-groom:has(input:checked){border-color:var(--admin-groom);background:#f4f7f8}
.sms-side-option.is-groom:has(input:checked) .sms-filter-check{border-color:var(--admin-groom);background:var(--admin-groom)}
.sms-side-option.is-bride:has(input:checked){border-color:var(--admin-bride);background:#faf5f6}
.sms-side-option.is-bride:has(input:checked) .sms-filter-check{border-color:var(--admin-bride);background:var(--admin-bride)}
.sms-side-option.is-unassigned:has(input:checked){border-color:#8c8178;background:#f7f5f2}
.sms-status-option.is-pending:has(input:checked){border-color:#ad9478;background:#fbf7f1}
.sms-status-option.is-partial:has(input:checked){border-color:#8b7698;background:#f8f5fa}
.sms-status-option.is-completed:has(input:checked){border-color:#708878;background:#f4f8f5}
.sms-export-ready{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:26px;padding:17px 18px;border:1px solid #e4ddd5;border-radius:12px;background:#f8f5f1}
.sms-export-ready-copy{display:grid;gap:3px}
.sms-export-ready-copy>strong{color:#4e443d;font-size:.82rem}
.sms-export-ready-copy>span{color:#8c8178;font-size:.7rem}
.sms-export-ready-copy>span strong{color:#704829}
.sms-export-ready-stats{display:flex;align-items:center;gap:18px;color:#6d645d;font-size:.73rem;white-space:nowrap}
.sms-export-ready-stats strong{color:#704829;font-size:.86rem}
.sms-export-missing-stat{padding-left:18px;border-left:1px solid #ddd5cd}
@media(max-width:820px){.sms-export-filter-card{padding:22px 18px}.sms-filter-side-options,.sms-filter-status-options{grid-template-columns:1fr}.sms-filter-step-head{align-items:flex-start;flex-direction:column}.sms-filter-shortcuts{width:100%}.sms-filter-shortcuts button:first-child{flex:1}.sms-export-ready{align-items:flex-start;flex-direction:column}.sms-export-ready-stats{width:100%;justify-content:space-between;white-space:normal}.sms-export-missing-stat{padding-left:14px}.sms-filter-option{min-height:62px}}


/* v3.17.9 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· SMS export unified workflow + published seating fallback --- */
.sms-export-builder-card{padding:28px;background:#fff;border-top:1px solid #ddd8d0;box-shadow:0 12px 34px rgba(0,0,0,.025)}
.sms-export-builder-head{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #ece7df}
.sms-export-builder-head h2{margin:7px 0 6px;color:#704829;font-family:var(--heading-font);font-size:1.85rem;font-weight:400}
.sms-export-builder-head p{max-width:760px;margin:0;color:#7a746d;font-size:.82rem;line-height:1.6}
.sms-export-builder-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);gap:30px;align-items:start}
.sms-export-recipient-panel,.sms-export-message-panel{min-width:0}
.sms-export-message-panel{padding-left:30px;border-left:1px solid #ece7df}
.sms-panel-kicker{margin-bottom:15px;color:#9b8b7d;font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.sms-export-builder-card .sms-filter-steps{gap:22px}
.sms-export-builder-card .sms-filter-step+.sms-filter-step{padding-top:21px}
.sms-export-builder-card .sms-filter-options{grid-template-columns:1fr}
.sms-export-builder-card .sms-filter-option{min-height:58px}
.sms-export-message-panel .sms-template-copy h2{margin:0 0 8px;font-size:1.45rem}
.sms-export-message-panel .sms-template-copy p{font-size:.78rem;line-height:1.55}
.sms-export-message-panel .sms-template-editor{margin-top:17px;padding:0;border:0}
.sms-export-message-panel .sms-template-textarea{min-height:190px}
.sms-column-map-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px;margin-top:16px;padding-top:15px;font-size:.7rem}
.sms-column-map-compact strong{min-width:0}
.sms-export-actionbar{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:26px;padding-top:22px;border-top:1px solid #ece7df}
.sms-export-builder-card .sms-export-ready{flex:1;margin:0;padding:14px 16px}
.sms-export-actions{margin:0;flex:0 0 auto}
.sms-export-actions .button{min-height:46px}
.landing-seating-row.is-unassigned{background:#fbf7f2}
.landing-seating-row.is-unassigned>strong{color:#704829}
.landing-seating-unassigned{color:#8a725e;font-style:normal}
.standalone-seating-card [data-rsvp-seating-list]>div.is-unassigned{background:#fbf7f2}
.standalone-seating-card [data-rsvp-seating-list]>div.is-unassigned>span:last-child{color:#8a725e}
@media(max-width:1080px){
  .sms-export-builder-grid{grid-template-columns:1fr;gap:26px}
  .sms-export-message-panel{padding:24px 0 0;border-left:0;border-top:1px solid #ece7df}
  .sms-export-builder-card .sms-filter-side-options,.sms-export-builder-card .sms-filter-status-options{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sms-export-actionbar{align-items:stretch;flex-direction:column}
  .sms-export-actions{width:100%;justify-content:flex-end}
}
@media(max-width:820px){
  .sms-export-builder-card{padding:22px 18px}
  .sms-export-builder-card .sms-filter-side-options,.sms-export-builder-card .sms-filter-status-options{grid-template-columns:1fr}
  .sms-column-map-compact{grid-template-columns:1fr}
  .sms-export-actions{flex-direction:column-reverse;align-items:stretch}
  .sms-export-actions .button{width:100%}
}

/* v3.18.1 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Independent guest pass controls --------------------------- */
.settings-pass-switches{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.settings-pass-switch{
  min-height:92px;
  padding:16px 18px;
  border:1px solid #e6e1da;
  border-radius:14px;
  background:#fbfaf7;
  align-items:flex-start;
}
.settings-pass-switch .settings-switch-track{margin-top:2px}
.settings-pass-switch .settings-switch-copy strong{color:#704829}
.settings-pass-switch .settings-switch-copy small{max-width:520px}

.digital-pass-actions{
  width:100%;
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap:10px;
}
.digital-pass-actions.has-web-pass .figma-button{
  flex:1 1 0;
  width:auto;
  min-height:52px;
  margin-top:0;
}
.web-pass-save{
  border-color:rgba(112,72,41,.42);
  background:#fffdf9;
  color:#704829;
}
.web-pass-save:hover{
  border-color:#704829;
  background:#704829;
  color:#fffdf9;
}
.web-pass-phone-icon{width:18px;height:18px;display:inline-grid;place-items:center;flex:0 0 18px}
.web-pass-phone-icon svg{width:18px;height:18px;display:block}

.web-pass-body{
  --display-font:"GL Parizuli","Noto Serif Georgian",Georgia,"Times New Roman",serif;
  --body-font:"Noto Sans Georgian",Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif-font:"Noto Serif Georgian",Georgia,"Times New Roman",serif;
  min-height:100svh;
  margin:0;
  font-family:var(--body-font);
  font-synthesis:none;
  background:
    radial-gradient(circle at 50% -10%,rgba(255,255,255,.9),rgba(255,255,255,0) 38%),
    #eee5d9;
  color:#704829;
  overflow-x:hidden;
}
.web-pass-shell{
  min-height:100svh;
  display:grid;
  place-items:center;
  padding:max(24px,env(safe-area-inset-top)) 18px max(28px,env(safe-area-inset-bottom));
}
.web-pass-card{
  position:relative;
  width:min(100%,430px);
  max-width:620px;
  overflow:hidden;
  border:1px solid rgba(112,72,41,.34);
  border-radius:28px;
  background:#f7f1e9;
  box-shadow:0 30px 80px rgba(78,54,36,.13);
  cursor:pointer;
  outline:none;
  transition:max-width .32s cubic-bezier(.22,.61,.36,1),transform .28s ease,box-shadow .28s ease;
  -webkit-tap-highlight-color:transparent;
}
.web-pass-card:focus-visible{box-shadow:0 0 0 4px rgba(112,72,41,.18),0 30px 80px rgba(78,54,36,.13)}
.web-pass-card:hover{transform:translateY(-2px);box-shadow:0 34px 88px rgba(78,54,36,.16)}
.web-pass-card.is-expanded{max-width:620px;transform:none;cursor:zoom-out}
.web-pass-card-frame{
  position:absolute;
  inset:11px;
  z-index:0;
  border:1px solid rgba(112,72,41,.18);
  border-radius:20px;
  pointer-events:none;
}
.web-pass-compact{
  position:relative;
  z-index:1;
  display:grid;
  justify-items:center;
  text-align:center;
  padding:32px 30px 26px;
}
.web-pass-compact-top{display:grid;justify-items:center;gap:8px}
.web-pass-compact-top img{width:48px;height:64px;object-fit:contain}
.web-pass-compact-top span{font-size:.52rem;letter-spacing:.26em;color:#8b7765}
.web-pass-compact h1{
  margin:18px 0 8px;
  max-width:100%;
  font-family:var(--display-font,var(--heading-font));
  font-weight:400;
  font-size:clamp(2.25rem,8vw,3.55rem);
  line-height:1.05;
  letter-spacing:-.025em;
  color:#704829;
}
.web-pass-compact-date{font-size:.78rem;font-weight:600;letter-spacing:.04em;color:#76563c}
.web-pass-compact-guests{margin-top:9px;font-size:.76rem;color:#8a725e}
.web-pass-expand-hint,.web-pass-collapse-hint{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:22px;
  color:#8a725e;
  font-size:.66rem;
  letter-spacing:.03em;
}
.web-pass-expand-hint span,.web-pass-collapse-hint span{font-size:1rem;line-height:1}
.web-pass-card.is-expanded .web-pass-expand-hint{opacity:0;visibility:hidden;margin-top:8px;height:0}
.web-pass-expand{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-rows:0fr;
  opacity:0;
  transition:grid-template-rows .34s cubic-bezier(.22,.61,.36,1),opacity .22s ease;
}
.web-pass-expand-inner{min-height:0;overflow:hidden;padding:0 30px}
.web-pass-card.is-expanded .web-pass-expand{grid-template-rows:1fr;opacity:1}
.web-pass-card.is-expanded .web-pass-expand-inner{padding-bottom:30px}
.web-pass-venue{margin:2px 0 18px;text-align:center;font-size:.78rem;color:#76563c}
.web-pass-divider{height:1px;margin:0 0 4px;background:rgba(112,72,41,.16)}
.web-pass-guests{display:grid}
.web-pass-guest-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(180px,auto);
  align-items:center;
  gap:16px;
  min-height:64px;
  padding:13px 2px;
  border-bottom:1px solid rgba(112,72,41,.14);
}
.web-pass-guest-row strong{min-width:0;font-size:.9rem;font-weight:650;color:#704829}
.web-pass-guest-row>span{text-align:right;color:#7c6959;font-size:.7rem;line-height:1.45}
.web-pass-guest-row>span b{font-weight:650;color:#704829}
.web-pass-guest-row>span i{font-style:normal;color:#b09a84;margin:0 4px}
.web-pass-guest-row.is-unassigned>span{color:#9b856f}
.web-pass-qr-wrap{
  width:min(72vw,300px);
  margin:24px auto 0;
  padding:16px;
  border-radius:20px;
  background:#fffdf9;
  box-shadow:inset 0 0 0 1px rgba(112,72,41,.08);
}
.web-pass-qr{display:block;width:100%!important;max-width:100%;height:auto!important;aspect-ratio:1;background:#fffdf9}
.web-pass-present{text-align:center;margin-top:14px;color:#76563c;font-size:.72rem;font-weight:600}
.web-pass-collapse-hint{display:flex;justify-content:center;margin-top:18px}
.web-pass-stack{width:min(100%,620px);display:grid;justify-items:center;gap:14px}
.web-pass-empty{
  width:min(100%,520px);
  padding:54px 34px;
  border:1px solid rgba(112,72,41,.28);
  border-radius:28px;
  background:#f7f1e9;
  box-shadow:0 30px 80px rgba(78,54,36,.11);
  text-align:center;
}
.web-pass-empty img{width:58px;height:76px;object-fit:contain;margin:0 auto 14px}
.web-pass-empty>span{font-size:.52rem;letter-spacing:.26em;color:#8b7765}
.web-pass-empty h1{margin:18px auto 10px;font-family:var(--display-font,var(--heading-font));font-size:clamp(2rem,8vw,3.4rem);font-weight:400;line-height:1.08;color:#704829}
.web-pass-empty p{max-width:420px;margin:0 auto;color:#807267;font-size:.84rem;line-height:1.65}

.web-pass-guide-open{overflow:hidden}
.web-pass-install-guide[hidden]{display:none!important}
.web-pass-install-guide{position:fixed;inset:0;z-index:500;display:grid;place-items:end center;padding:16px}
.web-pass-install-backdrop{position:absolute;inset:0;border:0;background:rgba(47,35,26,.55);backdrop-filter:blur(7px);cursor:pointer}
.web-pass-install-sheet{
  position:relative;
  z-index:1;
  width:min(520px,100%);
  padding:14px 24px max(24px,env(safe-area-inset-bottom));
  border-radius:28px 28px 22px 22px;
  background:#f7f1e9;
  box-shadow:0 -18px 60px rgba(0,0,0,.2);
  text-align:center;
}
.web-pass-install-handle{width:44px;height:4px;margin:0 auto 16px;border-radius:999px;background:#d6c9bb}
.web-pass-install-icon{width:68px;height:68px;margin:0 auto 13px;overflow:hidden;border-radius:17px;box-shadow:0 7px 20px rgba(78,54,36,.12)}
.web-pass-install-icon img{width:100%;height:100%;object-fit:cover}
.web-pass-install-sheet:focus{outline:none}
.web-pass-install-sheet h2{margin:0 auto 18px;max-width:390px;font-family:var(--heading-font);font-size:1.65rem;font-weight:500;line-height:1.2;color:#704829}
.web-pass-install-steps{margin:0;padding:0;display:grid;gap:10px;counter-reset:pass-step;list-style:none;text-align:left}
.web-pass-install-steps li{position:relative;min-height:40px;padding:9px 8px 9px 48px;border-top:1px solid rgba(112,72,41,.12);color:#6e6258;font-size:.8rem;line-height:1.5}
.web-pass-install-steps li::before{counter-increment:pass-step;content:counter(pass-step);position:absolute;left:6px;top:8px;width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(112,72,41,.26);border-radius:50%;color:#704829;font-size:.7rem;font-weight:700}
.web-pass-guide-close{width:100%;margin-top:18px;background:#704829;color:#fffdf9;border-color:#704829}
.web-pass-guide-close:hover{background:#4f3422}

@media(max-width:680px){
  .digital-pass-actions{flex-direction:column}
  .digital-pass-actions.has-web-pass .figma-button{width:100%}
  .web-pass-shell{padding-left:12px;padding-right:12px}
  .web-pass-card{border-radius:24px}
  .web-pass-card-frame{inset:9px;border-radius:17px}
  .web-pass-compact{padding:28px 22px 22px}
  .web-pass-expand-inner{padding-left:22px;padding-right:22px}
  .web-pass-card.is-expanded .web-pass-expand-inner{padding-bottom:24px}
  .web-pass-guest-row{grid-template-columns:1fr;gap:5px;align-items:start;padding:12px 2px}
  .web-pass-guest-row>span{text-align:left}
  .settings-pass-switches{grid-template-columns:1fr}
  .web-pass-qr-wrap{width:min(72vw,264px);margin-top:20px;padding:12px}
  .web-pass-install-sheet{padding-left:18px;padding-right:18px}
}

@media(prefers-reduced-motion:reduce){
  .web-pass-card,.web-pass-expand,.web-pass-expand-hint{transition:none!important}
}

.web-pass-save[hidden]{display:none!important}


/* v3.18.3 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· mobile edge-to-edge shell, compact RSVP controls, Web Pass font reliability */
@media(max-width:680px){
  .figma-page-shell{padding:0;}
  .figma-rsvp-arch .rsvp-response-controls{gap:6px;padding: 0px 6px;}
  .figma-rsvp-arch .rsvp-response-controls .segmented{padding:0;gap:6px;}
  .figma-rsvp-arch .choice span{
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:8px 5px;
    white-space:nowrap;
    font-size:clamp(11px,3.2vw,12px);
    line-height:1.15;
    letter-spacing:-.01em;
  }
}

/* v3.18.5 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· CTA alignment repair + mobile hero typography */
.landing-rsvp-lock-note{
  width:100%;
  max-width:620px;
  margin-inline:auto;
  text-align:center;
}
.rsvp-envelope-experience:not(.is-open) .rsvp-shared-card.figma-rsvp-arch{
  cursor:pointer;
}

/* Save Response, QR Invite and Digital Pass share one three-column layout. */
.figma-rsvp-arch .rsvp-action-button,
.landing-digital-pass-action .rsvp-action-button{
  position:relative;
  width:100%;
  min-height:58px;
  display:grid!important;
  grid-template-columns:28px minmax(0,1fr) 28px;
  align-items:center;
  gap:12px;
  margin:0;
  padding:13px 22px;
  border-radius:999px;
  font-family:inherit;
  font-size:14px;
  font-weight:400;
  line-height:1.25;
  letter-spacing:0;
  text-transform:none;
  box-shadow:none;
}

.figma-rsvp-arch .rsvp-action-button > .rsvp-action-leading,
.figma-rsvp-arch .rsvp-action-button > .rsvp-action-label,
.figma-rsvp-arch .rsvp-action-button > .rsvp-action-trailing,
.landing-digital-pass-action .rsvp-action-button > .rsvp-action-leading,
.landing-digital-pass-action .rsvp-action-button > .rsvp-action-label,
.landing-digital-pass-action .rsvp-action-button > .rsvp-action-trailing{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  margin:0;
  font-size: 14px;
  line-height:inherit;
  font-weight: 600;
}

.figma-rsvp-arch .rsvp-action-button > .rsvp-action-leading,
.figma-rsvp-arch .rsvp-action-button > .rsvp-action-trailing,
.landing-digital-pass-action .rsvp-action-button > .rsvp-action-leading,
.landing-digital-pass-action .rsvp-action-button > .rsvp-action-trailing{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
}
.figma-rsvp-arch .rsvp-action-button > .rsvp-action-leading,
.landing-digital-pass-action .rsvp-action-button > .rsvp-action-leading{justify-self:start;}
.figma-rsvp-arch .rsvp-action-button > .rsvp-action-trailing,
.landing-digital-pass-action .rsvp-action-button > .rsvp-action-trailing{justify-self:end;}

.figma-rsvp-arch .rsvp-action-button > .rsvp-action-label,
.landing-digital-pass-action .rsvp-action-button > .rsvp-action-label{
  min-width:0;
  width:100%;
  text-align:center;
  white-space:normal;
}

.figma-rsvp-arch .rsvp-action-button .ui-icon,
.landing-digital-pass-action .rsvp-action-button .ui-icon{
  width:19px;
  height:19px;
  flex:0 0 19px;
  transform:none;
}
.figma-rsvp-arch .rsvp-action-button:hover > .rsvp-action-trailing .ui-icon,
.landing-digital-pass-action .rsvp-action-button:hover > .rsvp-action-trailing .ui-icon{
  transform:translateX(2px);
}
.landing-digital-pass-action .digital-pass-download:hover > .rsvp-action-trailing .ui-icon{
  transform:translateY(2px);
}

.figma-rsvp-arch .landing-rsvp-save{
  border:1px solid rgba(79,112,68,.55);
  background:#d9e9cb;
  color:#3d3026;
}
.landing-digital-pass-action .digital-pass-download{
  border:1px solid rgba(112,93,77,.58);
  background:#e9dfd2;
  color:#3d3026;
}
.landing-digital-pass-action .web-pass-save{
  border:1px solid rgba(112,72,41,.42);
  background:#fffdf9;
  color:#704829;
}
.landing-digital-pass-action .web-pass-save:hover{
  border-color:#704829;
  background:#704829;
  color:#fffdf9;
}

.web-pass-phone-icon,
.digital-pass-qr-icon,
.digital-pass-download-arrow{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  flex:0 0 28px;
}
.web-pass-phone-icon svg,
.digital-pass-qr-icon svg,
.digital-pass-download-arrow .ui-icon{
  width:19px;
  height:19px;
}
.digital-pass-actions.has-web-pass .rsvp-action-button{min-height:58px;}

@media(max-width:680px){
  .figma-rsvp-arch .rsvp-action-button,
  .landing-digital-pass-action .rsvp-action-button{
    min-height:56px;
    grid-template-columns:26px minmax(0,1fr) 26px;
    gap:8px;
    padding:12px 18px;
    font-size:13px;
  }
  .figma-rsvp-arch .rsvp-action-button > .rsvp-action-leading,
  .figma-rsvp-arch .rsvp-action-button > .rsvp-action-trailing,
  .landing-digital-pass-action .rsvp-action-button > .rsvp-action-leading,
  .landing-digital-pass-action .rsvp-action-button > .rsvp-action-trailing{
    width:26px;
    height:26px;
  }
  .figma-rsvp-arch .rsvp-action-button > .rsvp-action-label,
  .landing-digital-pass-action .rsvp-action-button > .rsvp-action-label{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .digital-pass-actions.has-web-pass .rsvp-action-button{min-height:56px;}

  /* Mobile hero card typography requested in v3.18.5. */
  .figma-hero h1,
  .lang-ka .figma-hero h1{
    font-size:32px!important;
  }
  .figma-hero .figma-date{
    font-size:.75rem!important;
  }
}

/* v3.19.0 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Messaging lifecycle, invitation preview, icon actions ------- */
.admin-icon-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:nowrap;
}
.admin-icon-actions .admin-inline-action{display:inline-flex;margin:0}
.admin-icon-button{
  position:relative;
  appearance:none;
  display:inline-grid;
  place-items:center;
  width:44px;
  height:44px;
  min-width:44px;
  padding:0;
  border:1px solid #e0d9d1;
  border-radius:11px;
  background:#fff;
  color:#6f6259;
  text-decoration:none;
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.admin-icon-button svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.75;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
.admin-icon-button:hover{border-color:#c8b9aa;background:#faf6f1;color:#704829;transform:translateY(-1px);box-shadow:0 5px 14px rgba(61,48,38,.06)}
.admin-icon-button:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.admin-icon-button.is-danger{color:#956057}
.admin-icon-button.is-danger:hover{border-color:#d9b8b2;background:#fbf4f2;color:#8c443a}
.admin-icon-button.is-copied{border-color:#8ca083;background:#f2f7ef;color:#4f7044}
.admin-icon-button:disabled{opacity:.42;cursor:not-allowed;transform:none;box-shadow:none;background:#f6f3ef;color:#9f968e}
.admin-icon-button[data-tooltip]::after{
  content:attr(data-tooltip);
  position:absolute;
  left:50%;
  bottom:calc(100% + 8px);
  z-index:20;
  padding:5px 8px;
  border-radius:6px;
  background:#332e2a;
  color:#fff;
  font-size:.66rem;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
  opacity:0;
  transform:translate(-50%,4px);
  pointer-events:none;
  transition:opacity .14s ease,transform .14s ease;
}
.admin-icon-button[data-tooltip]:hover::after,.admin-icon-button[data-tooltip]:focus-visible::after{opacity:1;transform:translate(-50%,0)}
.admin-phone-unknown-label{color:#8a725e;font-weight:700}
.admin-phone-editor{display:grid;gap:4px}
.admin-phone-editor>label:first-child{margin:0}
.admin-phone-editor>label:first-child>span{color:#988d83;font-size:.68rem;font-weight:600}
.admin-phone-editor .input:disabled{background:#f3f0eb;color:#91877e;cursor:not-allowed}
.admin-phone-unknown-toggle{
  display:flex;
  align-items:center;
  gap:11px;
  margin:0 0 14px;
  padding:12px 13px;
  border:1px solid #e5dfd8;
  border-radius:10px;
  background:#fbfaf7;
  cursor:pointer;
}
.admin-phone-unknown-toggle input{width:18px;height:18px;margin:0;accent-color:#704829;flex:0 0 auto}
.admin-phone-unknown-toggle>span{display:grid;gap:2px;min-width:0}
.admin-phone-unknown-toggle strong{color:#5b5149;font-size:.77rem}
.admin-phone-unknown-toggle small{color:#8f857c;font-size:.68rem;font-weight:500;line-height:1.4}

.admin-preview-panel{width:min(720px,100%)}
.admin-preview-contact{display:grid;gap:4px;margin-top:22px;padding:18px 20px;border:1px solid #e7e0d8;border-radius:13px;background:#fbfaf7}
.admin-preview-contact>span{color:#9a8d82;font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.admin-preview-contact>strong{color:#50463f;font-size:1rem}
.admin-preview-contact>small{color:#7e746b;font-size:.78rem}
.admin-preview-section{margin-top:25px}
.admin-preview-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}
.admin-preview-section-head h3{margin:0;color:#704829;font-family:var(--heading-font);font-size:1.45rem;font-weight:400}
.admin-preview-section-head>span{color:#8a8178;font-size:.7rem}
.admin-preview-guests{display:grid;border-top:1px solid #e9e3dc}
.admin-preview-guest{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-height:68px;padding:12px 2px;border-bottom:1px solid #e9e3dc}
.admin-preview-guest-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.admin-preview-guest-name strong{color:#50463f;font-size:.86rem}
.admin-preview-guest-name>span{padding:3px 6px;border-radius:999px;background:#efe8df;color:#704829;font-size:.6rem;font-weight:800}
.admin-preview-guest-name>small{flex-basis:100%;color:#8b8178;font-size:.68rem}
.admin-preview-status{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 9px;border-radius:999px;font-size:.67rem;font-weight:800;white-space:nowrap}
.admin-preview-status.is-attending{background:#e8eee5;color:#40523a}
.admin-preview-status.is-declined{background:#f4e8e5;color:#87534b}
.admin-preview-status.is-pending{background:#f1eee1;color:#75652e}
.admin-preview-empty{padding:18px 0;color:#8f857c;font-size:.78rem}
.admin-preview-sms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.admin-preview-sms-item{display:grid;gap:7px;padding:13px 14px;border:1px solid #e5dfd7;border-radius:11px;background:#fff}
.admin-preview-sms-item>span{color:#756b63;font-size:.72rem;font-weight:700}
.admin-preview-sms-item>strong{font-size:.69rem}
.admin-preview-sms-item>strong.is-sent{color:#4f7044}
.admin-preview-sms-item>strong.is-not-sent{color:#9a8270}

.sms-type-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 22px}
.sms-type-tab{display:grid;gap:5px;min-height:82px;padding:15px 17px;border:1px solid #e1dad2;border-radius:13px;background:#fbfaf7;color:#665d55;text-decoration:none;transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}
.sms-type-tab strong{color:#5a4f47;font-size:.82rem}
.sms-type-tab span{color:#91867d;font-size:.68rem;line-height:1.4}
.sms-type-tab:hover{border-color:#cbbcaf;background:#fff;transform:translateY(-1px)}
.sms-type-tab:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.sms-type-tab.is-active{border-color:#a88e78;background:#fff;box-shadow:0 8px 22px rgba(55,42,32,.055)}
.sms-type-tab.is-active strong{color:#704829}
.sms-exclude-sent{display:flex;align-items:flex-start;gap:11px;margin-top:18px;padding:14px 15px;border:1px solid #e3ddd6;border-radius:11px;background:#f8f5f1;cursor:pointer}
.sms-exclude-sent input{width:18px;height:18px;margin:2px 0 0;accent-color:#704829;flex:0 0 auto}
.sms-exclude-sent>span{display:grid;gap:3px}
.sms-exclude-sent strong{color:#554b43;font-size:.77rem}
.sms-exclude-sent small{color:#8e837a;font-size:.68rem;font-weight:500;line-height:1.4}
.sms-exclude-sent:has(input:disabled){opacity:.62;cursor:not-allowed}
.sms-safety-note{display:flex;align-items:flex-start;gap:10px;margin-top:22px;padding:13px 15px;border-left:3px solid #a88c73;background:#fbf6f0;color:#6f6259}
.sms-safety-note strong{font-size:.75rem;white-space:nowrap}
.sms-safety-note span{font-size:.72rem;line-height:1.45}
.sms-history-list{margin-top:30px}
.sms-import-modal-panel{width:min(620px,100%)}
.sms-import-form{display:grid;gap:4px;margin-top:24px}
.sms-import-help{margin:0;color:#81776f;font-size:.74rem;line-height:1.55}
.sms-import-preview-card{margin-top:28px;padding:24px 26px;border:1px solid #ddd4ca;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.025)}
.sms-import-preview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.sms-import-preview-head h2{margin:6px 0 0;color:#704829;font-family:var(--heading-font);font-size:1.7rem;font-weight:400}
.sms-import-preview-head>span{color:#877c73;font-size:.72rem}
.sms-import-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #e6e0d9;border-bottom:1px solid #e6e0d9}
.sms-import-metrics>div{padding:14px 16px;border-right:1px solid #e6e0d9}
.sms-import-metrics>div:last-child{border-right:0}
.sms-import-metrics strong{display:block;color:#704829;font-size:1.35rem;font-weight:600}
.sms-import-metrics span{display:block;margin-top:4px;color:#8f847b;font-size:.66rem}
.sms-import-note{margin:15px 0 0;color:#746a62;font-size:.73rem;line-height:1.5}
.sms-import-details{margin-top:14px;padding:11px 13px;border:1px solid #ece5dd;background:#fbfaf7;color:#746a62;font-size:.72rem}
.sms-import-details summary{cursor:pointer;color:#704829;font-weight:700}
.sms-import-details ul{margin:10px 0 0;padding-left:20px}
.sms-import-confirm{display:flex;justify-content:flex-end;margin-top:18px}
.sms-import-confirm .button:disabled{opacity:.45;cursor:not-allowed}

@media(max-width:900px){
  .admin-icon-actions{justify-content:flex-start}
  .sms-type-tabs{grid-template-columns:1fr}
  .sms-type-tab{min-height:0}
  .admin-preview-sms{grid-template-columns:1fr}
}
@media(max-width:680px){
  .admin-icon-actions{gap:5px;flex-wrap:wrap}
  .admin-icon-button{width:44px;height:44px;min-width:44px}
  .admin-icon-button[data-tooltip]::after{display:none}
  .admin-preview-section-head{align-items:flex-start;flex-direction:column;gap:5px}
  .admin-preview-guest{grid-template-columns:1fr;gap:8px}
  .admin-preview-status{justify-self:start}
  .sms-safety-note{display:grid;gap:4px}
  .sms-safety-note strong{white-space:normal}
  .sms-import-preview-card{padding:20px 16px}
  .sms-import-preview-head{align-items:flex-start;flex-direction:column}
  .sms-import-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sms-import-metrics>div:nth-child(2){border-right:0}
  .sms-import-metrics>div:nth-child(-n+2){border-bottom:1px solid #e6e0d9}
  .sms-import-confirm .button{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .admin-icon-button,.admin-icon-button[data-tooltip]::after,.sms-type-tab{transition:none}
}

/* v3.19.1 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Seating guest picker + independent unassigned filters ------- */
.seating-custom-picker-ready .seating-seat-select{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.seating-guest-picker-trigger{appearance:none;width:100%;min-height:62px;margin-top:auto;padding:10px 38px 10px 12px;position:relative;display:flex;align-items:center;text-align:left;border:1px solid #dcd4cb;background:#fff;color:#514943;font:inherit;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.seating-guest-picker-trigger:hover{border-color:#c7b7a7;background:#fdfbf8}
.seating-guest-picker-trigger:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.seating-guest-picker-trigger.has-guest{border-color:#cbbbaa;background:#fffdf9}
.seating-picker-trigger-text{display:grid;gap:3px;min-width:0}
.seating-picker-trigger-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#704829;font-size:.78rem;font-weight:750}
.seating-picker-trigger-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8c8279;font-size:.64rem;line-height:1.35}
.seating-picker-trigger-caret{position:absolute;right:13px;top:50%;width:8px;height:8px;border-right:1.5px solid #82756b;border-bottom:1.5px solid #82756b;transform:translateY(-70%) rotate(45deg);transition:transform .16s ease}
.seating-guest-picker-trigger[aria-expanded="true"] .seating-picker-trigger-caret{transform:translateY(-20%) rotate(225deg)}
.seating-guest-picker-panel{position:fixed;z-index:1000;display:flex;flex-direction:column;overflow:hidden;border:1px solid #d9d0c7;background:#fff;box-shadow:0 20px 54px rgba(47,36,28,.2)}
.seating-guest-picker-panel[hidden]{display:none}
.seating-picker-search-wrap{position:sticky;top:0;z-index:2;padding:12px;border-bottom:1px solid #ebe5de;background:#fbfaf7}
.seating-picker-search{width:100%;min-height:44px;margin:0;font-size:.78rem}
.seating-picker-results{min-height:0;overflow:auto;padding:8px}
.seating-picker-clear,.seating-picker-option{appearance:none;width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid transparent;background:transparent;color:#544c46;font:inherit;text-align:left;cursor:pointer}
.seating-picker-clear:hover,.seating-picker-option:hover{background:#f7f2eb;border-color:#eadfd3}
.seating-picker-clear:focus-visible,.seating-picker-option:focus-visible{outline:2px solid #8d725e;outline-offset:-2px}
.seating-picker-clear>span,.seating-picker-option>span:first-child{display:grid;gap:2px;min-width:0}
.seating-picker-clear strong,.seating-picker-option strong{color:#5f5146;font-size:.78rem}
.seating-picker-clear small,.seating-picker-option small{color:#948980;font-size:.64rem}
.seating-picker-clear.is-selected,.seating-picker-option.is-selected{background:#f3ece3;border-color:#dbcbbb}
.seating-picker-group{margin-top:8px;border:1px solid #e8e1d9;background:#fff}
.seating-picker-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:9px 11px;border-bottom:1px solid #e8e1d9;background:#f6f1ea}
.seating-picker-group-head strong{display:block;color:#704829;font-size:.76rem;line-height:1.3}
.seating-picker-group-head small{display:block;margin-top:2px;color:#968a80;font-size:.61rem}
.seating-picker-group-body{display:grid}
.seating-picker-option+.seating-picker-option{border-top:1px solid #f0ebe5}
.seating-picker-selected-label{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#e7eee3;color:#4e6947;font-size:.59rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.seating-picker-empty{padding:20px 12px;color:#8e847c;font-size:.76rem;text-align:center}

.seating-unassigned-list{display:grid;grid-template-columns:1fr;gap:0}
.seating-unassigned-group{border-bottom:1px solid #e6dfd7}
.seating-unassigned-group:last-child{border-bottom:0}
.seating-unassigned-group-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 16px;background:#f7f3ed;border-bottom:1px solid #e9e2da}
.seating-unassigned-group-head>span:first-child{display:grid;gap:2px;min-width:0}
.seating-unassigned-group-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#704829;font-size:.82rem}
.seating-unassigned-group-head small{color:#968a80;font-size:.63rem}
.seating-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:#ebe4dc;color:#6d5c4e;font-size:.68rem;font-weight:800}
.seating-unassigned-group-guests{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.seating-unassigned-group-guests>[data-unassigned-guest]{padding:12px 16px;border-right:1px solid #eee9e2;border-bottom:1px solid #eee9e2}
.seating-unassigned-group-guests>[data-unassigned-guest]:nth-child(3n){border-right:0}
.seating-unassigned-group-guests>[data-unassigned-guest]>span{display:grid;gap:2px}
.seating-unassigned-group-guests>[data-unassigned-guest] strong{color:#704829;font-size:.84rem}

@media(max-width:900px){
  .seating-unassigned-group-guests{grid-template-columns:repeat(2,minmax(0,1fr))}
  .seating-unassigned-group-guests>[data-unassigned-guest]:nth-child(3n){border-right:1px solid #eee9e2}
  .seating-unassigned-group-guests>[data-unassigned-guest]:nth-child(2n){border-right:0}
}
@media(max-width:680px){
  .seating-guest-picker-panel{left:12px!important;right:12px!important;bottom:12px!important;top:auto!important;width:auto!important;max-height:min(68vh,560px)!important}
  .seating-unassigned-group-guests{grid-template-columns:1fr}
  .seating-unassigned-group-guests>[data-unassigned-guest]{border-right:0!important}
}
/* v3.19.3 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Invitation cell wrapper baseline ----------------------------- */
.admin-invitations-table .admin-invite-cell-value{display:grid;gap:2px;min-width:0}

/* v3.19.2 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Figma-aligned mobile invitation cards ---------------------- */
@media(max-width:760px){
  .admin-invitations-table-wrap{
    width:auto;
    margin-left:8px;
    margin-right:8px;
  }
  .admin-invitations-table tbody{gap:12px;}
  .admin-invitations-table tr{
    padding:8px 14px!important;
    border:1px solid #e5e0d9!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 8px 12px rgba(61,48,38,.04)!important;
  }
  .admin-invitations-table td{
    grid-template-columns:92px minmax(0,1fr)!important;
    column-gap:12px!important;
    row-gap:8px!important;
    align-items:start!important;
    padding:11px 0!important;
    border-bottom:1px solid #eee9e2!important;
    color:#704829;
  }
  .admin-invitations-table td::before{
    align-self:start;
    padding-top:1px;
    color:#8a837c!important;
    font-family:"Noto Sans Georgian",Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-size:.66rem!important;
    font-weight:600!important;
    line-height:1.55;
    letter-spacing:.06em!important;
  }
  .admin-invitations-table .admin-invite-cell-value{
    grid-column:2;
    display:grid;
    gap:2px;
    min-width:0;
  }
  .admin-invitations-table .admin-invite-title-value strong{
    color:#704829;
    font-size:.92rem;
    font-weight:700;
    line-height:1.55;
    overflow-wrap:anywhere;
  }
  .admin-invitations-table .admin-invite-title-value>small,
  .admin-invitations-table .admin-invite-contact-value>small{
    color:#704829;
    font-size:.7667rem;
    line-height:1.55;
  }
  .admin-invitations-table .admin-invite-contact-value>span{
    color:#704829;
    font-size:.92rem;
    line-height:1.55;
    overflow-wrap:anywhere;
  }
  .admin-invitations-table .admin-invite-side-cell{
    align-items:start!important;
  }
  .admin-invitations-table .admin-invite-side-cell .admin-side-quick-form{
    grid-column:2;
    width:100%;
    margin:0;
  }
  .admin-invitations-table .admin-side-quick-select{
    width:100%;
    min-width:0;
    min-height:46px;
    height:46px;
    margin:0;
    padding:0 38px 0 18px;
    border:1px solid rgba(61,48,38,.18);
    border-radius:10px;
    background-color:#fff;
    color:#111;
    font-size:.76rem;
    line-height:1.2;
  }
  .admin-invitations-table .admin-side-badge{
    grid-column:2;
    justify-self:start;
  }
  .admin-invitations-table .admin-invite-stat-value{
    grid-column:2;
    color:#704829;
    font-size:.92rem;
    line-height:1.55;
  }
  .admin-invitations-table .admin-invite-rsvp-value{
    gap:5px;
  }
  .admin-invitations-table .admin-invite-rsvp-cell .status{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    width:100%;
    min-height:31px;
    padding:6px 9px;
    border-radius:0;
    font-size:.78rem;
    font-weight:800;
    line-height:1.55;
  }
  .admin-invitations-table .admin-rsvp-progress-count{
    margin:0;
    color:#8b837b;
    font-size:.68rem;
    line-height:1.55;
  }
  .admin-invitations-table .admin-invite-actions-cell{
    display:block!important;
    padding:11px 0 15px!important;
    border-bottom:0!important;
  }
  .admin-invitations-table .admin-invite-actions-cell::before{
    display:block;
    margin-bottom:10px;
  }
  .admin-invitations-table .admin-invite-actions-cell .admin-icon-actions{
    width:100%;
    justify-content:space-between!important;
    gap:8px;
    flex-wrap:nowrap;
  }
  .admin-invitations-table .admin-invite-actions-cell .admin-icon-button{
    flex:0 0 44px;
  }
}
@media(max-width:370px){
  .admin-invitations-table-wrap{margin-left:0;margin-right:0;}
  .admin-invitations-table td{grid-template-columns:84px minmax(0,1fr)!important;column-gap:10px!important;}
  .admin-invitations-table .admin-invite-actions-cell .admin-icon-actions{gap:5px;}
}


/* v3.20.0 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· verified invitation open tracking -------------------------- */
.admin-invite-code-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.admin-invite-open-state{display:inline-flex;align-items:center;min-height:18px;padding:2px 6px;border-radius:999px;font-size:.58rem;font-weight:800;line-height:1.25;white-space:nowrap}
.admin-invite-open-state.is-opened{background:#e8eee5;color:#40523a}
.admin-invite-open-state.is-unopened{background:#f1eee8;color:#8a8178}
.admin-preview-activity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.admin-preview-activity>div{display:grid;gap:6px;padding:13px 14px;border:1px solid #e5dfd7;border-radius:11px;background:#fff;min-width:0}
.admin-preview-activity span{color:#8a8178;font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.admin-preview-activity strong{color:#514841;font-size:.72rem;overflow-wrap:anywhere}
.admin-preview-activity strong.is-opened{color:#4f7044}
.admin-preview-activity strong.is-unopened{color:#9a8270}
@media(max-width:760px){
  .admin-invitations-table .admin-invite-code-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .admin-preview-activity{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){
  .admin-preview-activity{grid-template-columns:1fr}
}

/* v3.20.2 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· per-invitation SMS export selection ------------------------- */
.sms-export-list-head{align-items:center;gap:18px}
.sms-export-list-controls{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.sms-export-list-controls>span:first-child{white-space:nowrap}
.sms-export-select-col,.sms-export-select-cell{width:54px;text-align:center!important}
.sms-export-select-col>input{width:19px;height:19px;margin:0;accent-color:#704829;cursor:pointer}
.sms-export-row-select{display:inline-grid;place-items:center;min-width:44px;min-height:44px;margin:-8px 0;cursor:pointer}
.sms-export-row-select input{width:19px;height:19px;margin:0;accent-color:#704829;cursor:pointer}
.sms-export-table tr.is-sms-unselected td:not(.sms-export-select-cell){background:#fbfaf8;color:#8f867f}
.sms-export-table tr.is-sms-unselected .status{opacity:.72}
.sms-export-table tr.is-sms-unselected .sms-link{color:#9a8f86}
@media(max-width:680px){
  .sms-export-list-head{align-items:flex-start;flex-direction:column}
  .sms-export-list-controls{width:100%;justify-content:space-between}
  .sms-export-list-controls .sms-filter-shortcuts{width:auto}
  .sms-export-select-cell{display:grid!important;grid-template-columns:112px minmax(0,1fr)!important;width:100%!important;text-align:left!important}
  .sms-export-row-select{justify-self:start;margin:-8px 0}
}

/* v3.20.3 ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Figma agenda floral corner decorations ----------------------- */
.figma-agenda{
  position:relative;
  isolation:isolate;
}
.figma-agenda::before,
.figma-agenda::after{
  content:"";
  position:absolute;
  z-index:0;
  display:block;
  pointer-events:none;
  background-repeat:no-repeat;
  background-position:center;
  background-size:100% 100%;
}
.figma-agenda::before{
  top:0;
  left:0;
  width:clamp(196px,15.385vw,280px);
  aspect-ratio:280 / 347;
  background-image:url("../img/figma/agenda-floral-web-left.webp");
}
.figma-agenda::after{
  top:39.56%;
  right:0;
  width:clamp(148px,11.648vw,212px);
  aspect-ratio:212 / 380;
  background-image:url("../img/figma/agenda-floral-web-right.webp");
}
.figma-agenda-heading,
.figma-agenda-track{
  position:relative;
  z-index:1;
}

@media(max-width:680px){
  .figma-agenda::before{
    top:0;
    right:0;
    left:auto;
    width:127px;
    height:195px;
    aspect-ratio:auto;
    background-image:url("../img/figma/agenda-floral-mobile-top.webp");
  }
  .figma-agenda::after{
    top:auto;
    right:auto;
    bottom:0;
    left:0;
    width:197px;
    height:127px;
    aspect-ratio:auto;
    background-image:url("../img/figma/agenda-floral-mobile-bottom.webp");
  }
}

/* v3.20.4 Ãƒâ€šÃ‚Â· empty admin text cleanup + SMS invitation preview ------------ */
.sms-invite-link-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:nowrap;
}
.sms-invite-link-actions .admin-icon-button{
  flex:0 0 44px;
}
@media(max-width:680px){
  .sms-invite-link-actions{
    justify-content:flex-start;
    gap:12px;
  }
}

/* v3.20.5 Ãƒâ€šÃ‚Â· RSVP saved/dirty action state ----------------------------------- */
.figma-rsvp-arch .landing-rsvp-action-state{
  width:100%;
}
.figma-rsvp-arch .landing-rsvp-save[hidden],
.figma-rsvp-arch .landing-rsvp-recorded[hidden]{
  display:none!important;
}
.figma-rsvp-arch .landing-rsvp-recorded{
  width:100%;
  min-height:60px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 24px;
  border: 1px solid rgb(79 112 68 / 20%);
  border-radius:999px;
  background: none;
  color:#40523a;
  font-size:14px;
  font-weight:600;
  line-height:1.35;
  text-align:center;
}
.figma-rsvp-arch .landing-rsvp-recorded-icon{
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  flex:0 0 20px;
}
.figma-rsvp-arch .landing-rsvp-recorded-icon .ui-icon{
  width:20px;
  height:20px;
}

/* Dashboard invitation activity dates ----------------------------------- */
.admin-invite-date-meta{display:flex;align-items:center;gap:7px 12px;flex-wrap:wrap;margin-top:5px;color:#8a8178;font-size:.62rem;line-height:1.35}
.admin-invite-date-meta>span{display:inline-flex;align-items:baseline;gap:5px;min-width:0}
.admin-invite-date-meta>span>span{font-weight:600;white-space:nowrap}
.admin-invite-date-meta strong{color:#62584f;font-size:.64rem;font-weight:800;white-space:nowrap}
@media(max-width:760px){
  .admin-invitations-table .admin-invite-date-meta{display:grid;grid-template-columns:1fr;gap:3px;margin-top:7px}
  .admin-invitations-table .admin-invite-date-meta>span{justify-content:space-between;gap:12px;max-width:230px}
}

/* Admin guest-side general switcher -------------------------------------- */
.admin-global-side-switcher{
  position:sticky;
  z-index:45;
  top:14px;
  display:flex;
  justify-content:flex-end;
  margin:0 0 18px;
  pointer-events:none;
}
.admin-global-side-switcher-inner{
  display:flex;
  align-items:center;
  gap:10px;
  max-width:100%;
  padding:5px;
  border:1px solid #ddd5cc;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 32px rgba(61,48,38,.09);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  pointer-events:auto;
}
.admin-global-side-switcher-label{
  padding:0 7px 0 11px;
  color:#8a7d72;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
}
.admin-global-side-options{display:flex;align-items:center;gap:3px}
.admin-global-side-options a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:7px 14px;
  border-radius:999px;
  color:#75695f;
  text-decoration:none;
  font-size:.76rem;
  font-weight:800;
  white-space:nowrap;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}
.admin-global-side-options a:hover{background:#f5f0ea;color:#704829}
.admin-global-side-options a.is-active{background:#704829;color:#fff;box-shadow:0 6px 16px rgba(112,72,41,.18)}
.admin-global-side-options a:focus-visible,.admin-global-side-mobile a:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.admin-global-side-mobile{display:none}
.admin-global-side-filter{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}

@media(max-width:900px){
  .admin-global-side-switcher{top:calc(76px + env(safe-area-inset-top));margin-bottom:16px}
}

/*
 * SHARED GUEST SIDE NAV ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â mobile + desktop web
 * The exact same glass geometry, icons, indicator and motion are used at every viewport.
 * Placement remains platform-specific: top-center on desktop, bottom-center on mobile.
 */
  .admin-global-side-switcher{justify-content:center;pointer-events:none}
  .admin-global-side-switcher-inner{
    position:relative;
    width: min(100%,343px);
    height:70px;
    box-sizing:border-box;
    padding:8px 12px 10px;
    border:0;
    border-radius:999px;
    background-color:rgba(244,240,236,.12);
    /* CodePen-style SVG displacement with a plain blur fallback first. */
    backdrop-filter:blur(8px) url(#admin-side-switcher-filter) saturate(150%);
    -webkit-backdrop-filter: blur(8px) saturate(150%);
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.10),
      inset 1.8px 3px 0 -2px rgba(255,255,255,.90),
      inset -2px -2px 0 -2px rgba(255,255,255,.80),
      inset -3px -8px 1px -6px rgba(255,255,255,.60),
      inset -.3px -1px 4px 0 rgba(72,51,37,.12),
      inset -1.5px 2.5px 0 -2px rgba(72,51,37,.20),
      inset 0 3px 4px -2px rgba(72,51,37,.20),
      inset 2px -6.5px 1px -4px rgba(72,51,37,.10),
      0 1px 5px rgba(72,51,37,.10),
      0 6px 16px rgba(72,51,37,.08);
    pointer-events:auto;
    transition:background-color .4s cubic-bezier(1,0,.4,1),box-shadow .4s cubic-bezier(1,0,.4,1);
  }
  .admin-global-side-switcher-label,.admin-global-side-options{display:none}
  .admin-global-side-mobile{
    position:relative;
    display:grid;
    width:100%;
    height:100%;
    min-height:0;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
    isolation:isolate;
  }
  .admin-global-side-mobile-indicator{
    position:absolute;
    z-index:0;
    top:-4px;
    left:-8px;
    width:calc(25% + 10px);
    height:calc(100% + 8px);
    border:0;
    border-radius:999px;
    background-color:rgba(244,240,236,.36);
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.10),
      inset 2px 1px 0 -1px rgba(255,255,255,.90),
      inset -1.5px -1px 0 -1px rgba(255,255,255,.80),
      inset -2px -6px 1px -5px rgba(255,255,255,.60),
      inset -1px 2px 3px -1px rgba(72,51,37,.20),
      inset 0 -4px 1px -2px rgba(72,51,37,.10),
      0 3px 6px rgba(72,51,37,.08);
    pointer-events:none;
    translate:0 0;
    scale:1 1;
    transform-origin:right center;
    transition:
      background-color .4s cubic-bezier(1,0,.4,1),
      box-shadow .4s cubic-bezier(1,0,.4,1),
      translate .4s cubic-bezier(1,0,.4,1);
    will-change:translate,scale;
  }
  .admin-global-side-mobile-active-0 .admin-global-side-mobile-indicator{translate:0 0}
  .admin-global-side-mobile-active-1 .admin-global-side-mobile-indicator{translate:calc(100% - 8px) 0}
  .admin-global-side-mobile-active-2 .admin-global-side-mobile-indicator{translate:calc(200% - 16px) 0}
  .admin-global-side-mobile-active-3 .admin-global-side-mobile-indicator{translate:calc(300% - 24px) 0}
  .admin-global-side-mobile.is-moving-forward .admin-global-side-mobile-indicator{transform-origin:left center}
  .admin-global-side-mobile.is-moving-backward .admin-global-side-mobile-indicator{transform-origin:right center}
  .admin-global-side-mobile.is-switching .admin-global-side-mobile-indicator{animation:admin-side-liquid-stretch .44s ease}
  .admin-global-side-mobile a{
    position:relative;
    z-index:1;
    display:grid;
    justify-items:center;
    align-content:center;
    gap:2px;
    min-width:0;
    min-height:44px;
    height:100%;
    padding:4px 3px 3px;
    border:0;
    border-radius:999px;
    background:transparent;
    color:#6f6861;
    text-decoration:none;
    -webkit-tap-highlight-color:transparent;
    transition:color .16s ease,scale .2s cubic-bezier(.5,0,0,1);
    opacity: 0.7;
  }
  .admin-global-side-mobile a.is-active{color:#704829;opacity: 1;}
  .admin-global-side-mobile a:active{scale:.96}
  .admin-global-side-mobile-icon{position:relative;display:grid;place-items:center;width:25px;height:25px}
  .admin-global-side-mobile-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.72;stroke-linecap:round;stroke-linejoin:round;transition:opacity .14s ease,scale .2s cubic-bezier(.5,0,0,1)}
  .admin-global-side-mobile a.is-active .admin-global-side-mobile-icon svg{scale:1.04}
  .admin-global-side-mobile-label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.63rem;font-weight:700;line-height:1.15;letter-spacing:-.012em}
  .admin-global-side-mobile a.is-loading .admin-global-side-mobile-icon svg{opacity:0}
  .admin-global-side-mobile a.is-loading .admin-global-side-mobile-icon::after{
    content:"";
    position:absolute;
    width:15px;
    height:15px;
    border:1.8px solid rgba(112,72,41,.24);
    border-top-color:#704829;
    border-radius:50%;
    animation:admin-side-loading-spin .72s linear infinite;
  }
  .admin-global-side-mobile.is-loading a:not(.is-loading){opacity:.82}

  .dashboard-admin-main [data-side-async-metrics],
  .dashboard-admin-main [data-side-async-capacity],
  .dashboard-admin-main [data-side-async-seating],
  .dashboard-admin-main [data-side-async-results],
  .dashboard-admin-main [data-side-async-rows],
  .seating-admin-main [data-side-async-pending],
  .seating-admin-main [data-side-async-tools],
  .seating-admin-main [data-unassigned-list],
  .sms-admin-main .sms-admin-metrics,
  .sms-admin-main .sms-export-list,
  .sms-admin-main [data-sms-preview-card]{
    transition:opacity .18s ease;
  }
  .admin-side-filter-loading .dashboard-admin-main [data-side-async-metrics],
  .admin-side-filter-loading .dashboard-admin-main [data-side-async-capacity],
  .admin-side-filter-loading .dashboard-admin-main [data-side-async-seating],
  .admin-side-filter-loading .dashboard-admin-main [data-side-async-results],
  .admin-side-filter-loading .dashboard-admin-main [data-side-async-rows],
  .admin-side-filter-loading .seating-admin-main [data-side-async-pending],
  .admin-side-filter-loading .seating-admin-main [data-side-async-tools],
  .admin-side-filter-loading .seating-admin-main [data-unassigned-list],
  .admin-side-filter-loading .sms-admin-main .sms-admin-metrics,
  .admin-side-filter-loading .sms-admin-main .sms-export-list,
  .admin-side-filter-loading .sms-admin-main [data-sms-preview-card]{
    opacity:.68;
  }

@keyframes admin-side-liquid-stretch{
  0%{scale:1 1}
  50%{scale:1.16 1}
  100%{scale:1 1}
}
@keyframes admin-side-loading-spin{to{transform:rotate(360deg)}}

@media(prefers-reduced-motion:reduce){
  .admin-global-side-options a,.admin-global-side-mobile a,.admin-global-side-mobile-indicator{transition:none!important;animation:none!important}
}

/* General side switcher placement + persistent desktop navigation */
@media(min-width:901px){
  .admin-nav{
    position:sticky;
    top:0;
    align-self:start;
    height:100svh;
    max-height:100svh;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .admin-global-side-switcher{
    position:fixed;
    z-index:145;
    top:max(10px,env(safe-area-inset-top));
    left:230px;
    right:0;
    justify-content:center;
    margin:0;
  }
}

@media(max-width:900px){
  .admin-global-side-switcher{
    position:fixed;
    z-index:149;
    top:auto;
    right:16px;
    bottom:10px;
    left:16px;
    justify-content:center;
    margin:0;
  }
  .dashboard-admin-main,
  .seating-admin-main,
  .sms-admin-main{
    padding-bottom:96px;
  }

  /* Safe-area spacing is only applied when Admin is running as an installed PWA. */
  .admin-pwa-standalone .admin-global-side-switcher{
    bottom:env(safe-area-inset-bottom);
  }
  .admin-pwa-standalone .dashboard-admin-main,
  .admin-pwa-standalone .seating-admin-main,
  .admin-pwa-standalone .sms-admin-main{
    padding-bottom:calc(90px + env(safe-area-inset-bottom));
  }
}



/* General Guest Side scope refinements ---------------------------------- */
.sms-general-side-scope{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:3px 12px;
  align-items:center;
  padding:14px 15px;
  border:1px solid #e3ddd5;
  border-radius:12px;
  background:#faf8f5;
}
.sms-general-side-scope>span{
  color:#91867c;
  font-size:.67rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.sms-general-side-scope>strong{
  justify-self:end;
  color:#704829;
  font-size:.82rem;
  font-weight:800;
}
.sms-general-side-scope>small{
  grid-column:1/-1;
  color:#8c8178;
  font-size:.7rem;
  line-height:1.45;
}
.admin-capacity-numbers.is-side-scope span{white-space:normal}
@media(max-width:680px){
  .sms-general-side-scope{border-radius:14px}
}

/* Seating quick-assign workflow + SMS guest coverage -------------------- */
.seating-unassigned-head{
  align-items:center;
  gap:18px;
  padding:18px 20px;
}
.seating-unassigned-head-copy{display:grid;gap:4px;min-width:0}
.seating-unassigned-head-copy>strong{color:#704829;font-size:.9rem}
.seating-unassigned-head-copy>span{color:#8f857c;font-size:.7rem;line-height:1.45}
.seating-unassigned-summary{margin-top:3px;color:#8a7d72;font-size:.68rem;font-weight:650}
.seating-unassigned-summary strong{color:#704829;font-size:.78rem}
.seating-unassigned-search{width:min(360px,100%);margin-left:auto}
.seating-unassigned-search .input{width:100%;min-height:44px;margin:0}
.seating-unassigned-list{display:grid;gap:12px;padding:14px;background:#fbfaf8}
.seating-unassigned-card{overflow:hidden;border:1px solid #e4ddd5;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(55,43,33,.035)}
.seating-unassigned-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border-bottom:1px solid #ece6df;background:#f8f4ee}
.seating-unassigned-card-head>span:first-child{display:grid;gap:3px;min-width:0}
.seating-unassigned-card-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#704829;font-size:.84rem}
.seating-unassigned-card-head small{color:#94887e;font-size:.64rem}
.seating-unassigned-card-guests{display:grid}
.seating-unassigned-guest-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:10px 14px;border-top:1px solid #f0ebe5}
.seating-unassigned-card-guests .seating-unassigned-guest-row:first-child{border-top:0}
.seating-unassigned-guest-copy{display:grid;gap:4px;min-width:0}
.seating-unassigned-guest-copy>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5e5147;font-size:.82rem}
.seating-quick-assign-trigger{flex:0 0 auto;min-height:38px;padding:7px 12px;font-size:.72rem}
.seating-unassigned-empty{grid-column:1/-1;padding:34px 20px!important;background:#fff}
.seating-unassigned-fallback-row{padding:13px 16px;border-bottom:1px solid #eee9e2}
.seating-unassigned-fallback-row>span{display:grid;gap:3px}

.seating-quick-assign[hidden]{display:none}
.seating-quick-assign{position:fixed;inset:0;z-index:1200;display:flex;justify-content:flex-end}
.seating-quick-assign-backdrop{position:absolute;inset:0;width:100%;border:0;background:rgba(42,32,24,.34);cursor:default}
.seating-quick-assign-panel{position:relative;z-index:1;width:min(620px,calc(100vw - 40px));height:100%;display:flex;flex-direction:column;background:#fff;box-shadow:-18px 0 54px rgba(40,31,24,.18)}
.seating-quick-assign-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 26px 20px;border-bottom:1px solid #e9e2da;background:#fbfaf7}
.seating-quick-assign-head h2{margin:6px 0 4px;color:#704829;font-family:var(--heading-font);font-size:1.7rem;font-weight:400;line-height:1.1}
.seating-quick-assign-head p{margin:0;color:#8b8077;font-size:.72rem;line-height:1.45}
.seating-quick-assign-close{position:static;flex:0 0 auto}
.seating-quick-assign-body{min-height:0;overflow:auto;padding:22px 26px 28px}
.seating-quick-table-step,.seating-quick-seat-step{display:grid;gap:14px}
.seating-quick-seat-step{margin-top:24px;padding-top:22px;border-top:1px solid #ece6df}
.seating-quick-step-head{display:flex;align-items:center;gap:10px}
.seating-quick-step-head>span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#704829;color:#fff;font-size:.7rem;font-weight:800}
.seating-quick-step-head>div{display:grid;gap:2px}
.seating-quick-step-head strong{color:#5f5146;font-size:.82rem}
.seating-quick-step-head small{color:#968a80;font-size:.65rem;line-height:1.4}
.seating-quick-table-search{margin:0;min-height:44px}
.seating-quick-table-list{display:grid;gap:8px;max-height:280px;overflow:auto;padding-right:2px}
.seating-quick-table-option{appearance:none;width:100%;min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid #e2dbd3;border-radius:10px;background:#fff;color:#5d544d;font:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.seating-quick-table-option:hover{border-color:#cab9a8;background:#fdfbf8}
.seating-quick-table-option:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.seating-quick-table-option.is-selected{border-color:#a88e77;background:#f8f2eb;box-shadow:0 6px 16px rgba(83,61,45,.06)}
.seating-quick-table-option>span:first-child{display:grid;gap:3px;min-width:0}
.seating-quick-table-option strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#704829;font-size:.8rem}
.seating-quick-table-option small{color:#91867d;font-size:.64rem}
.seating-quick-table-capacity{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#eef2ea;color:#5d7354;font-size:.62rem;font-weight:800}
.seating-quick-table-capacity.is-full{background:#f2e9e5;color:#8a5d50}
.seating-quick-seat-grid{display:grid;grid-template-columns:repeat(var(--quick-seat-columns,3),minmax(0,1fr));gap:8px}
.seating-quick-seat{appearance:none;min-height:72px;display:grid;align-content:center;gap:4px;padding:9px;border:1px solid #ddd6ce;border-radius:10px;background:#fff;color:#60564e;font:inherit;text-align:center;cursor:pointer}
.seating-quick-seat:hover:not(:disabled){border-color:#bba48e;background:#fbf6f0}
.seating-quick-seat:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.seating-quick-seat.is-selected{border-color:#704829;background:#f3e9df;box-shadow:inset 0 0 0 1px #704829}
.seating-quick-seat.is-occupied{background:#f5f2ee;color:#857c74;cursor:not-allowed}
.seating-quick-seat-number{color:#9a8e83;font-size:.59rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.seating-quick-seat strong{overflow:hidden;text-overflow:ellipsis;color:inherit;font-size:.7rem;line-height:1.25}
.seating-quick-neighbors{padding:11px 12px;border:1px solid #e4d9cd;border-radius:10px;background:#fbf6f0;color:#74665a;font-size:.68rem;line-height:1.5}
.seating-quick-empty{padding:22px 14px}
.seating-quick-assign-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 26px calc(16px + env(safe-area-inset-bottom));border-top:1px solid #e9e2da;background:#fff}
body.seating-quick-assign-open{overflow:hidden}

.sms-export-ready-stats{flex-wrap:wrap;row-gap:7px}
.sms-export-ready-stats>span:not(:first-child){padding-left:18px;border-left:1px solid #ddd5cd}
.sms-export-missing-stat{padding-left:18px}

@media(max-width:760px){
  .seating-unassigned-head{align-items:stretch;flex-direction:column;padding:16px}
  .seating-unassigned-search{width:100%;margin-left:0}
  .seating-unassigned-list{padding:10px;gap:10px}
  .seating-unassigned-card{border-radius:12px}
  .seating-unassigned-guest-row{align-items:stretch;flex-direction:column;gap:10px;padding:12px}
  .seating-quick-assign-trigger{width:100%;min-height:44px}
  .seating-quick-assign{align-items:flex-end}
  .seating-quick-assign-panel{width:100%;height:min(88svh,780px);border-radius:18px 18px 0 0;box-shadow:0 -18px 54px rgba(40,31,24,.18)}
  .seating-quick-assign-head{padding:18px 18px 15px}
  .seating-quick-assign-head h2{font-size:1.45rem}
  .seating-quick-assign-body{padding:18px 16px 24px}
  .seating-quick-table-list{max-height:220px}
  .seating-quick-seat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .seating-quick-assign-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .seating-quick-assign-footer .button{flex:1;min-height:44px}
  .sms-export-ready-stats>span{flex:1 1 44%;white-space:normal}
  .sms-export-ready-stats>span:nth-child(odd){padding-left:0;border-left:0}
}

@media(prefers-reduced-motion:reduce){
  .seating-quick-table-option{transition:none}
}

/* v3.20.7 Ãƒâ€šÃ‚Â· Manual SMS / WhatsApp delivery status ---------------------- */
.sms-delivery-status-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.sms-delivery-chip{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 12px;border:1px solid #ddd4ca;border-radius:999px;background:#fff;color:#756b63;font:inherit;font-size:.7rem;font-weight:800;line-height:1;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease,opacity .16s ease}
.sms-delivery-chip:hover{border-color:#bda998;box-shadow:0 5px 14px rgba(55,42,32,.06)}
.sms-delivery-chip:focus-visible{outline:2px solid #8d725e;outline-offset:2px}
.sms-delivery-chip-dot{width:7px;height:7px;border-radius:999px;background:#c7bdb4;flex:0 0 auto}
.sms-delivery-chip-check{display:none;font-size:.72rem}
.sms-delivery-chip.is-active{border-color:#9ba990;background:#edf2e9;color:#42563b}
.sms-delivery-chip.is-active .sms-delivery-chip-dot{background:#5f7954}
.sms-delivery-chip.is-active .sms-delivery-chip-check{display:inline}
.sms-delivery-chip.is-whatsapp.is-active{border-color:#91a88a;background:#edf3ea;color:#405b3b}
.sms-delivery-chip.is-imported{cursor:not-allowed}
.sms-delivery-chip:disabled{opacity:.82}
.sms-delivery-chip.is-saving{opacity:.55;pointer-events:none}
.sms-delivery-source{display:block;margin-top:7px;color:#91867d;font-size:.65rem;line-height:1.35}
.admin-preview-channel-item{gap:9px}
.admin-preview-channel-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.admin-preview-channel-badges strong{display:inline-flex;align-items:center;min-height:28px;padding:5px 8px;border-radius:999px;background:#f4f1ed;font-size:.64rem;font-weight:800}
.admin-preview-channel-badges strong.is-sent{background:#e8eee5;color:#4f7044}
.admin-preview-channel-badges strong.is-not-sent{color:#9a8270}
@media(max-width:680px){
  .sms-delivery-status-controls{justify-content:flex-start}
  .sms-delivery-chip{min-width:112px}
  .admin-preview-channel-badges{align-items:stretch;flex-direction:column}
  .admin-preview-channel-badges strong{justify-content:center}
}

/* v3.20.8 Ãƒâ€šÃ‚Â· Sent Base channel selection + modal preview ------------------- */
.sms-import-channel-fieldset{margin:10px 0 14px;padding:0;border:0}
.sms-import-channel-fieldset legend{margin:0 0 4px;color:#514943;font-size:.78rem;font-weight:700}
.sms-import-channel-fieldset>p{margin:0 0 10px;color:#8a8078;font-size:.69rem;line-height:1.45}
.sms-import-channel-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sms-import-channel-options label{position:relative;display:flex;align-items:center;gap:10px;min-height:62px;padding:11px 38px 11px 13px;border:1px solid #ddd5cd;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.sms-import-channel-options label:hover{border-color:#c6b7a8;background:#fdfbf8}
.sms-import-channel-options label:focus-within{outline:2px solid #8d725e;outline-offset:2px}
.sms-import-channel-options label:has(input:checked){border-color:#a88e78;background:#fbf7f2;box-shadow:0 6px 18px rgba(80,58,40,.05)}
.sms-import-channel-options label.is-disabled{opacity:.55;cursor:not-allowed}
.sms-import-channel-options input{position:absolute;opacity:0;pointer-events:none}
.sms-import-channel-options label>span:nth-of-type(1){display:grid;gap:2px}
.sms-import-channel-options strong{color:#5d4f45;font-size:.77rem}
.sms-import-channel-options small{color:#91867d;font-size:.65rem;line-height:1.35}
.sms-import-channel-options .sms-filter-check{position:absolute;right:13px;top:50%;display:grid;width:20px;height:20px;place-items:center;border:1px solid #d7cec5;border-radius:50%;color:transparent;background:#fff;font-size:.7rem;transform:translateY(-50%)}
.sms-import-channel-options input:checked~.sms-filter-check{border-color:#8b725d;background:#8b725d;color:#fff}
.sms-import-preview-modal-body{margin-top:22px}
.sms-import-channel-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.sms-import-channel-summary>div{display:grid;gap:3px;padding:13px 14px;border:1px solid #e5ddd5;border-radius:12px;background:#fbfaf7}
.sms-import-channel-summary>div>span{color:#887d74;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em}
.sms-import-channel-summary>div>strong{color:#65472f;font-size:.9rem}
.sms-import-channel-summary>div>small{color:#8b8077;font-size:.67rem}
.sms-import-unmatched-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.sms-import-unmatched-list code{padding:4px 6px;border-radius:5px;background:#fff;color:#675b52;font-size:.66rem}
.sms-import-confirm{align-items:center;justify-content:space-between;gap:18px;padding-top:18px;border-top:1px solid #ebe4dc}
.sms-import-confirm-copy{display:grid;gap:3px}
.sms-import-confirm-copy strong{color:#604b3a;font-size:.76rem}
.sms-import-confirm-copy span{color:#91867d;font-size:.67rem}
@media(max-width:680px){
  .sms-import-channel-options{grid-template-columns:1fr}
  .sms-import-channel-summary{grid-template-columns:1fr}
  .sms-import-confirm{align-items:stretch;flex-direction:column}
  .sms-import-confirm .admin-modal-footer-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
}


/* v3.20.7 SMS export list delivery filters + activity sorting */
.sms-exclude-channel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.sms-exclude-channel-grid .sms-exclude-sent{margin-top:0;height:100%}
.sms-export-list-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 14px;padding:14px 16px;border:1px solid #e7e1da;border-radius:14px;background:#faf8f5}
.sms-export-list-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.sms-export-list-filters label{display:grid;gap:6px;min-width:190px}
.sms-export-list-filters label>span{color:#766c64;font-size:.68rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.sms-export-list-filters .input{min-height:42px;padding-top:8px;padding-bottom:8px;background:#fff}
@media(max-width:820px){
  .sms-exclude-channel-grid{grid-template-columns:1fr}
  .sms-export-list-toolbar{align-items:stretch;flex-direction:column;padding:14px}
  .sms-export-list-filters{display:grid;grid-template-columns:1fr;gap:10px}
  .sms-export-list-filters label{min-width:0}
  .sms-export-list-toolbar>.sms-filter-shortcuts{width:100%}
  .sms-export-list-toolbar>.sms-filter-shortcuts button{flex:1}
}

/* v3.21.1 Ãƒâ€šÃ‚Â· Admin Push UI + PWA polish ----------------------------------- */
.admin-push-main{width:100%;max-width:1440px;margin-left:auto;margin-right:auto}
.admin-push-title{margin-bottom:26px}.admin-push-title p{max-width:760px;color:#777970;line-height:1.6}
.admin-push-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0 0 18px;border:1px solid #e2ddd6;background:#e2ddd6}
.admin-push-summary-item{display:grid;gap:4px;min-width:0;padding:17px 20px;background:#faf9f6}
.admin-push-summary-item>span{color:#93877d;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.admin-push-summary-item>strong{color:#5f4938;font-size:1.12rem;font-weight:700;overflow-wrap:anywhere}
.admin-push-summary-item>small{color:#858079;font-size:.72rem;line-height:1.4}
.admin-push-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-bottom:18px}
.admin-push-card{min-width:0;background:#fff;border:1px solid #e4dfd7;padding:26px;margin-bottom:18px;box-shadow:0 10px 28px rgba(0,0,0,.025)}
.admin-push-grid .admin-push-card{height:100%;margin-bottom:0}
.admin-push-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.admin-push-card-head>div{min-width:0}.admin-push-card-head h2,.admin-push-app-identity h2{font-family:var(--heading-font);font-weight:400;font-size:1.9rem;line-height:1.08;margin:5px 0 0;color:#704829}
.admin-push-card-head p{margin:8px 0 0!important}
.admin-push-card p{color:#777970;line-height:1.6}
.admin-push-state{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#efeee9;color:#686a64;font-size:.72rem;font-weight:700;white-space:nowrap}
.admin-push-state.is-ok,.admin-push-state[data-state="ok"]{background:#e8f1e9;color:#47654b}
.admin-push-state.is-warn,.admin-push-state[data-state="warn"]{background:#f6eee2;color:#8a6238}
.admin-push-state[data-state="error"]{background:#f5e6e4;color:#8a4944}
.admin-push-app-identity{display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;align-items:center;padding-bottom:20px;margin-bottom:18px;border-bottom:1px solid #ece8e2}
.admin-push-app-identity img{display:block;width:72px;height:72px;border-radius:18px;box-shadow:0 8px 22px rgba(55,41,31,.12)}
.admin-push-app-identity p{margin:7px 0 0!important;font-size:.82rem}
.admin-push-device-status-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}
.admin-push-device-status-row>span:first-child{color:#625a53;font-size:.82rem;font-weight:800}
.admin-push-install-note{padding:12px 14px;background:#f7f5f0;border:1px solid #eae6de;margin:0 0 14px!important;font-size:.82rem}
.admin-push-install-note[data-state="ok"]{border-color:#dce7dc;background:#f4f8f4}
.admin-push-install-note[data-state="warn"]{border-color:#eadbc6;background:#fbf7f0}
.admin-push-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px}
.admin-push-actions .button{min-height:44px}
.admin-push-device-actions .button[hidden]{display:none!important}
.admin-push-help{font-size:.76rem!important;margin:13px 0 0!important;color:#8c847d!important}
.admin-push-notify-list{display:grid;border-top:1px solid #ece8e2;border-bottom:1px solid #ece8e2}
.admin-push-notify-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #f0ede8}
.admin-push-notify-item:last-child{border-bottom:0}
.admin-push-notify-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#f3ede7;color:#77573f}
.admin-push-notify-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.admin-push-notify-item>div{display:grid;gap:3px;min-width:0}.admin-push-notify-item strong{color:#4f4b47;font-size:.84rem}.admin-push-notify-item div span{color:#858079;font-size:.74rem;line-height:1.45}
.admin-push-included{display:inline-flex;align-items:center;min-height:27px;padding:4px 8px;border-radius:999px;background:#edf3eb;color:#536b4d;font-size:.66rem;font-weight:800}
.admin-push-toggle-actions{margin-top:18px}
.admin-push-future-note{display:grid;gap:4px;margin-top:18px;padding:13px 14px;border:1px dashed #ddd4ca;background:#faf8f5}
.admin-push-future-note strong{color:#655b53;font-size:.76rem}.admin-push-future-note span{color:#8b8178;font-size:.72rem;line-height:1.5}
.admin-push-devices-head{align-items:center}.admin-push-devices-head p{font-size:.8rem}
.admin-push-device-list{display:grid;gap:0;border-top:1px solid #ece8e2}
.admin-push-device{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid #ece8e2}
.admin-push-device-copy{display:grid;gap:4px;min-width:0}.admin-push-device-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-push-device strong{color:#4f504b}.admin-push-device span,.admin-push-device small{color:#85867f;font-size:.74rem;line-height:1.45;overflow-wrap:anywhere}.admin-push-device small.is-error{color:#94554e}.admin-push-device.is-inactive{opacity:.62}
.admin-push-device .admin-push-device-owner{color:#625a53;font-weight:750}
.admin-push-empty{padding:20px 0;color:#85867f;font-size:.84rem}
.admin-push-technical{padding:0;overflow:hidden}
.admin-push-technical>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:18px 24px;cursor:pointer}
.admin-push-technical>summary::-webkit-details-marker{display:none}.admin-push-technical>summary>span:first-child{display:grid;gap:4px}.admin-push-technical>summary strong{font-family:var(--heading-font);font-size:1.45rem;font-weight:400;color:#704829}
.admin-push-technical[open]>summary{border-bottom:1px solid #ece8e2}.admin-push-technical-body{padding:22px 24px 24px}
.admin-push-checklist{display:grid;gap:0;border-top:1px solid #ece9e3;border-bottom:1px solid #ece9e3;margin:0 0 18px}
.admin-push-checklist>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid #f0eee9}.admin-push-checklist>div:last-child{border-bottom:0}
.admin-push-checklist span{color:#85867f;font-size:.82rem}.admin-push-checklist strong{font-size:.86rem;color:#4d4e49;text-align:right}
.admin-push-runtime-note{display:grid;gap:5px;margin-top:16px;padding:13px 14px;border:1px solid #eadbc6;background:#fbf7f0;font-size:.8rem;line-height:1.5;color:#756552}.admin-push-runtime-note code{font-size:.78rem}
.admin-push-safety-inline{display:grid;gap:4px;margin-top:16px;padding:14px;border-left:3px solid #789071;background:#f5f8f3}.admin-push-safety-inline strong{color:#4f6349;font-size:.8rem}.admin-push-safety-inline span{color:#71806d;font-size:.75rem;line-height:1.55}
.admin-push-setup-card{max-width:860px}

@media(max-width:1080px){
  .admin-push-grid{grid-template-columns:1fr}
  .admin-push-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .admin-push-title{margin-bottom:18px}.admin-push-title p{font-size:.86rem}
  .admin-push-summary{grid-template-columns:1fr;margin-bottom:14px}
  .admin-push-summary-item{padding:14px 16px}
  .admin-push-grid{gap:14px;margin-bottom:14px}
  .admin-push-card{padding:18px 16px;margin-bottom:14px}
  .admin-push-card-head{gap:12px;margin-bottom:16px}.admin-push-card-head h2,.admin-push-app-identity h2{font-size:1.62rem}
  .admin-push-app-identity{grid-template-columns:58px minmax(0,1fr);gap:13px;padding-bottom:16px}.admin-push-app-identity img{width:58px;height:58px;border-radius:15px}
  .admin-push-device-status-row{align-items:flex-start;flex-direction:column;gap:8px}.admin-push-device-status-row .admin-push-state{white-space:normal;text-align:left;justify-content:flex-start}
  .admin-push-device-actions{display:grid;grid-template-columns:1fr;width:100%}.admin-push-device-actions .button,.admin-push-toggle-actions .button{width:100%;justify-content:center}
  .admin-push-notify-item{grid-template-columns:36px minmax(0,1fr);align-items:start}.admin-push-included{grid-column:2;justify-self:start;margin-top:2px}
  .admin-push-card-head{align-items:flex-start}.admin-push-devices-head{align-items:stretch;flex-direction:column}.admin-push-devices-head form,.admin-push-devices-head .button{width:100%}.admin-push-devices-head .button{justify-content:center}
  .admin-push-device{align-items:stretch;flex-direction:column;gap:12px}.admin-push-device form,.admin-push-device form .button{width:100%}.admin-push-device form .button{justify-content:center}
  .admin-push-technical>summary{min-height:68px;padding:16px;align-items:flex-start}.admin-push-technical>summary .admin-push-state{margin-top:2px}.admin-push-technical-body{padding:18px 16px}
  .admin-push-checklist>div{align-items:flex-start;flex-direction:column;gap:4px}.admin-push-checklist strong{text-align:left}
}
@media(max-width:420px){
  .admin-push-card-head{flex-direction:column}.admin-push-card-head>.admin-push-state{align-self:flex-start}
  .admin-push-app-identity{grid-template-columns:52px minmax(0,1fr)}.admin-push-app-identity img{width:52px;height:52px;border-radius:13px}
  .admin-push-technical>summary{flex-direction:column}.admin-push-technical>summary .admin-push-state{align-self:flex-start}
}

/* v3.21.3 logical Push device identity */
.admin-push-device.is-current-device{position:relative}
.admin-push-current-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid #d6cabd;border-radius:999px;background:#f6f1ea;color:#5f554c!important;font-size:.68rem!important;font-weight:800;line-height:1}
.admin-push-legacy{margin-top:18px;border-top:1px solid #ece8e2;padding-top:14px}
.admin-push-legacy>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;color:#625a53}
.admin-push-legacy>summary::-webkit-details-marker{display:none}
.admin-push-legacy>summary strong{font-size:.86rem}.admin-push-legacy>summary span{font-size:.74rem;color:#8b8279}
.admin-push-legacy-body{padding-top:12px}.admin-push-legacy-body>p{margin:0 0 12px;color:#7d756d;font-size:.78rem;line-height:1.55}
@media (max-width:767px){.admin-push-legacy>summary{align-items:flex-start;flex-direction:column;gap:4px}}

/* v3.21.11 Ãƒâ€šÃ‚Â· Admin PWA + UI polish --------------------------------------- */
.admin-body .eyebrow{display:none!important}

.admin-mobile-brand,.admin-nav-brand-link{color:#704829;text-decoration:none}
.admin-mobile-brand{display:flex;align-items:center;justify-content:center;min-width:0;max-width:140px;justify-self:center}
.admin-brand-text{font-family:var(--heading-font);font-size:1.2rem;font-weight:700;white-space:nowrap}
.admin-brand-logo{display:block;object-fit:contain;object-position:center}
.admin-brand-logo-mobile{width:auto;max-width:126px;height:38px}
.admin-brand-logo-sidebar{width:auto;max-width:158px;height:48px;object-position:left center}
.admin-nav-brand-link{display:grid;gap:5px;min-width:0}
.admin-nav-brand-link>span:last-child{font-size:.68rem;color:#8a837c;letter-spacing:.04em}
.admin-nav nav a{display:flex;align-items:center;gap:11px}
.admin-nav-icon{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;color:#8a7a6d}
.admin-nav-icon svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.admin-nav nav a:hover .admin-nav-icon,.admin-nav nav a.active .admin-nav-icon{color:#704829}
.admin-mobile-user{justify-self:end;text-align:right}
.admin-menu-toggle{justify-self:start}
.admin-login-brand{display:flex;align-items:center;justify-content:center;min-height:70px;margin:0 0 26px;color:#704829}
.admin-login-brand img{display:block;max-width:min(220px,80%);max-height:78px;object-fit:contain}
.admin-login-brand span{font-family:var(--heading-font);font-size:2rem;font-weight:700}

.admin-logo-asset-preview{aspect-ratio:3/1.35}

/* Settings language switcher now follows the Guest Side segmented pattern. */
.settings-language-master{
  position:sticky;
  top:14px;
  z-index:45;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  width:max-content;
  max-width:100%;
  margin:0 0 18px auto;
  padding:5px;
  border:1px solid #ddd5cc;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 32px rgba(61,48,38,.09);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
.settings-language-master-label{padding:0 7px 0 11px;color:#8a7d72;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.settings-language-master-options{display:flex;align-items:center;gap:3px;padding:0;border:0;border-radius:0;background:transparent}
.settings-language-master-options button{appearance:none;border:0;background:transparent;min-height:40px;padding:7px 14px;border-radius:999px;font:inherit;font-size:.76rem;font-weight:800;color:#75695f;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.settings-language-master-options button:hover{background:#f5f0ea;color:#704829}
.settings-language-master-options button.is-active{background:#704829;color:#fff;box-shadow:0 6px 16px rgba(112,72,41,.18)}
.settings-language-master-options button:focus-visible{outline:2px solid #8d725e;outline-offset:2px}

.settings-savebar[hidden]{display:none!important}
.settings-savebar{width:max-content;max-width:100%;margin-left:auto;padding:8px 8px 8px 14px;gap:14px;border-radius:14px;bottom:14px}
.settings-savebar-status{font-size:.74rem;color:#d7d4ce;font-weight:700;white-space:nowrap}
.settings-savebar .button{min-height:44px;padding:10px 16px}

/* Selected table stays informational until Edit Table is requested. */
.seating-table-head-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.seating-table-edit-toggle.is-active{border-color:#c8b9aa;background:#f7f1ea;color:#704829}
.seating-table-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0 0 22px;border:1px solid #e7e0d8;background:#e7e0d8}
.seating-table-summary>div{display:grid;gap:4px;min-width:0;padding:13px 15px;background:#fbfaf7}
.seating-table-summary span{color:#8d837a;font-size:.64rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.seating-table-summary strong{color:#5d534a;font-size:.82rem;line-height:1.4;overflow-wrap:anywhere}
.seating-table-summary-notes{grid-column:1/-1}
.seating-table-settings-form[hidden]{display:none!important}
.seating-table-settings-actions{display:flex;justify-content:flex-end;gap:10px}
.seating-table-settings-actions .button{margin:0}

/* SMS list uses the same mobile card language as Dashboard invitations. */
.sms-invite-link-actions .admin-icon-button{flex:0 0 44px}

/* Standalone Admin PWA pull-to-refresh. */
.admin-pwa-standalone{overscroll-behavior-y:contain}
.admin-pull-refresh{
  --pull-distance:0px;
  position:fixed;
  z-index:220;
  top:max(8px,env(safe-area-inset-top));
  left:50%;
  display:flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:7px 12px;
  border:1px solid #ddd5cc;
  border-radius:999px;
  background:rgba(255,255,255,.97);
  box-shadow:0 10px 28px rgba(61,48,38,.12);
  color:#74685f;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,calc(-56px + var(--pull-distance)));
  transition:opacity .16s ease,transform .16s ease;
}
.admin-pull-refresh.is-visible{opacity:1;transition:opacity .08s ease}
.admin-pull-refresh strong{font-size:.7rem;font-weight:800;white-space:nowrap}
.admin-pull-refresh-icon{display:grid;place-items:center;width:20px;height:20px;color:#8b7767;transform:rotate(calc(var(--pull-distance) * 1.8deg));transition:color .14s ease}
.admin-pull-refresh-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.admin-pull-refresh.is-ready{color:#4f7044;border-color:#cbd8c5}
.admin-pull-refresh.is-ready .admin-pull-refresh-icon{color:#4f7044}
.admin-pull-refresh.is-refreshing .admin-pull-refresh-icon{animation:adminPullRefreshSpin .7s linear infinite}
@keyframes adminPullRefreshSpin{to{transform:rotate(360deg)}}

@media(max-width:900px){
  .admin-mobile-bar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important}
  .admin-mobile-bar>strong{display:none}
  .admin-nav-brand{align-items:center}
  .settings-language-master{top:calc(76px + env(safe-area-inset-top));margin-bottom:16px}
}

@media(max-width:760px){
  .settings-savebar{bottom:calc(8px + env(safe-area-inset-bottom));display:flex;flex-direction:row;align-items:center;justify-content:flex-end;padding:6px;width:auto;max-width:calc(100vw - 24px);border-radius:12px}
  .settings-savebar-status{display:none}
  .settings-savebar .button{width:auto;min-width:142px;min-height:42px;padding:9px 14px}
  .seating-table-editor-head{align-items:center}
  .seating-table-head-actions{gap:7px}
  .seating-table-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}
  .seating-table-summary-notes{grid-column:1/-1}
  .seating-table-settings-actions{display:grid;grid-template-columns:1fr 1fr}
  .seating-table-settings-actions .button{width:100%;justify-content:center}

  .sms-export-list .table-wrap{width:auto;margin-left:8px;margin-right:8px}
  .sms-export-table tbody{gap:12px!important}
  .sms-export-table tr{padding:8px 14px!important;border:1px solid #e5e0d9!important;border-radius:14px!important;background:#fff!important;box-shadow:0 8px 12px rgba(61,48,38,.04)!important}
  .sms-export-table td{display:grid!important;grid-template-columns:92px minmax(0,1fr)!important;column-gap:12px!important;row-gap:7px!important;align-items:start!important;padding:10px 0!important;border-bottom:1px solid #eee9e2!important;color:#704829}
  .sms-export-table td:last-child{border-bottom:0!important}
  .sms-export-table td::before{color:#8a837c!important;font-size:.66rem!important;font-weight:600!important;line-height:1.5;letter-spacing:.06em!important}
  .sms-export-table .sms-export-select-cell{grid-template-columns:92px minmax(0,1fr)!important;width:100%!important}
  .sms-export-table td[data-label="Delivery Status"] .sms-delivery-status-controls,
  .sms-export-table td[data-label="Delivery Status"] .sms-delivery-source,
  .sms-export-table td[data-label="Delivery Status"] .sms-pending-note{grid-column:2}
  .sms-delivery-status-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;flex-wrap:nowrap}
  .sms-delivery-chip{min-width:0!important;min-height:36px;padding:7px 8px;gap:4px;font-size:.62rem}
  .sms-delivery-chip-dot{width:6px;height:6px;flex-basis:6px}
  .sms-delivery-chip-check{font-size:.64rem}
  .sms-delivery-source{margin-top:3px;font-size:.6rem}
  .sms-export-table td[data-label="Invite link"] .sms-invite-link-actions{grid-column:2;width:100%;justify-content:flex-start;gap:8px}
  .sms-export-table td[data-label="Invite link"] .admin-icon-button{width:44px;height:44px;min-width:44px}
}

@media(max-width:680px){
  .settings-language-master{width:100%;justify-content:space-between;padding:6px 7px 6px 12px}
  .settings-language-master-label{padding:0}
  .settings-language-master-options{flex:0 0 auto}
  .settings-language-master-options button{min-height:40px;padding:7px 12px}
  .admin-brand-logo-mobile{max-width:112px;height:34px}
}

@media(max-width:380px){
  .admin-mobile-user{max-width:88px;font-size:.64rem}
  .admin-brand-logo-mobile{max-width:96px;height:32px}
  .sms-export-list .table-wrap{margin-left:0;margin-right:0}
  .sms-export-table td{grid-template-columns:84px minmax(0,1fr)!important;column-gap:10px!important}
  .sms-export-table .sms-export-select-cell{grid-template-columns:84px minmax(0,1fr)!important}
  .sms-delivery-chip{padding:6px 6px;font-size:.58rem}
}

@media(prefers-reduced-motion:reduce){
  .settings-language-master-options button,.admin-pull-refresh,.admin-pull-refresh-icon{transition:none!important}
  .admin-pull-refresh.is-refreshing .admin-pull-refresh-icon{animation:none!important}
}

/* v3.21.12 Ãƒâ€šÃ‚Â· Mobile datetime input containment --------------------------- */
.core-settings-grid>div{min-width:0;max-width:100%}
.core-settings-grid input[type="datetime-local"]{display:block;width:100%;max-width:100%;min-width:0;inline-size:100%;max-inline-size:100%;min-inline-size:0}
@media(max-width:820px){
  .core-settings-grid input[type="datetime-local"]{
    width:100%;
    max-width:100%;
    min-width:0;
    font-size:16px;
  }
}

/* v3.22.0 Visual Seating Hall ------------------------------------------------ */
.seating-view-switcher{display:inline-flex;align-items:center;gap:4px;margin:0 0 16px;padding:4px;border:1px solid #e4dbd2;border-radius:999px;background:#fff;box-shadow:0 6px 18px rgba(57,43,32,.04)}
.seating-view-switcher a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 16px;border-radius:999px;color:#887a6f;font-size:12px;font-weight:800;text-decoration:none}
.seating-view-switcher a.is-active{background:#654a38;color:#fff;box-shadow:0 4px 12px rgba(73,52,38,.14)}
.seating-visual-shell{position:relative;overflow:hidden;border:1px solid #e4dbd2;border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(55,43,33,.06)}
.seating-visual-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid #eee7e0;background:#fff}
.seating-visual-head>div:first-child{min-width:0}.seating-visual-head>div:first-child>strong{display:block;color:#704829;font-size:15px}.seating-visual-head>div:first-child>small{display:block;margin-top:2px;color:#8b8178;font-size:10px}
.seating-visual-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.seating-visual-head-actions .button,.seating-visual-head-actions .admin-icon-button{min-height:40px}.seating-visual-zoom{min-width:54px;color:#78685c;font-size:11px;font-weight:800;text-align:center}
.seating-visual-table-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:70px;padding:10px 18px;border-bottom:1px solid #eee7e0;background:#fbf9f6}
.seating-visual-selected-copy{display:grid;min-width:0}.seating-visual-selected-copy>span{color:#a09287;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.seating-visual-selected-copy>strong{overflow:hidden;color:#644d3d;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.seating-visual-selected-copy>small{color:#92867d;font-size:10px}
.seating-visual-selected-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.seating-visual-selected-actions .button.is-active,.seating-visual-head-actions .button.is-active{border-color:#4f7044;background:#4f7044;color:#fff;box-shadow:0 7px 18px rgba(79,112,68,.15)}
.seating-visual-extra-control{display:flex;align-items:center;gap:7px;padding-left:8px;border-left:1px solid #ded4ca}.seating-visual-extra-control>span{display:grid;min-width:54px;text-align:center}.seating-visual-extra-control>span strong{color:#665244;font-size:11px}.seating-visual-extra-control>span small{color:#9b8f86;font-size:8px;white-space:nowrap}.seating-visual-extra-control .admin-icon-button{width:38px;min-height:38px}
.seating-visual-workspace{display:grid;grid-template-columns:minmax(0,1fr) 292px;min-width:0;min-height:0}.seating-visual-canvas-column{position:relative;min-width:0;background:#f7f4f0}
.seating-visual-viewport{position:relative;width:100%;height:720px;overflow:auto;padding:12px;background:#f5f2ee;cursor:grab;overscroll-behavior:contain;touch-action:none}.seating-visual-viewport.is-panning{cursor:grabbing}.seating-visual-canvas-sizer{position:relative}.seating-visual-canvas{--seating-visual-scale:.35;position:absolute;left:0;top:0;width:4200px;height:1900px;transform:scale(var(--seating-visual-scale));transform-origin:top left;border:1px solid #ebe3db;border-radius:18px;background-color:#f9f7f4;background-image:linear-gradient(rgba(112,72,41,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(112,72,41,.035) 1px,transparent 1px);background-size:32px 32px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.seating-visual-scene{position:absolute;left:1750px;top:55px;width:700px;height:110px;border:1px solid #cfbfae;border-radius:12px;background:#e8ded3;display:grid;place-items:center;color:#6d5a4d;font-family:Georgia,"Times New Roman",serif;font-size:22px;letter-spacing:.04em}
.seating-visual-stage{position:absolute;display:grid;place-items:center;z-index:2}.seating-visual-rotator{position:absolute;inset:0;display:grid;place-items:center;transform-origin:center center}.seating-visual-stage.is-selected .seating-visual-tabletop{box-shadow:0 0 0 4px rgba(112,72,41,.14),0 14px 32px rgba(55,43,33,.11)}.seating-visual-stage.is-swap-target .seating-visual-tabletop{box-shadow:0 0 0 5px rgba(79,112,68,.22),0 14px 32px rgba(55,43,33,.09)}.seating-visual-stage.is-blocked .seating-visual-tabletop{box-shadow:0 0 0 5px rgba(155,80,71,.22)}
.seating-visual-tabletop{position:relative;z-index:2;display:grid;place-items:center;padding:12px;border:1px solid #cdb9a6;background:linear-gradient(145deg,#eadfd3,#d8c7b7);color:#806751;box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 14px 30px rgba(55,43,33,.08);cursor:pointer;user-select:none;-webkit-user-select:none}.seating-visual-tabletop::after{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.45);border-radius:inherit;pointer-events:none}.seating-visual-tabletop.is-rect{border-radius:14px}.seating-visual-tabletop.is-round{border-radius:50%}.seating-visual-tabletop.is-head{border-radius:10px}.seating-visual-tabletop strong{position:relative;z-index:1;display:block;font-family:Georgia,"Times New Roman",serif;font-size:14px;font-weight:400;line-height:1.2;text-align:center}.seating-visual-tabletop small{position:relative;z-index:1;display:block;margin-top:4px;color:#9d8774;font-size:7px;font-weight:700;letter-spacing:.08em;text-align:center;text-transform:uppercase}.seating-visual-shell.is-edit-layout .seating-visual-tabletop{cursor:move}.seating-visual-shell.is-edit-layout .seating-visual-stage.is-selected .seating-visual-tabletop{cursor:grab}.seating-visual-shell.is-edit-layout .seating-visual-stage.is-selected .seating-visual-tabletop:active{cursor:grabbing}
.seating-visual-seat{position:absolute;z-index:4;width:48px;height:40px;transform:translate(-50%,-50%);padding:3px;border:1px solid #d8cdc2;border-radius:10px;background:#fff;display:grid;place-items:center;align-content:center;color:#7d6858;box-shadow:0 4px 12px rgba(55,43,33,.055);text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.seating-visual-seat.is-empty{border-style:dashed;background:rgba(255,255,255,.82)}.seating-visual-seat.is-empty>span{color:#b49a84;font-size:20px;font-weight:300;line-height:1}.seating-visual-seat.is-occupied{border-color:#c9ad96;background:#fff9f3}.seating-visual-seat.is-extra{border-color:#d9ad75;background:#fbf2e6}.seating-visual-seat.is-extra.is-empty{border-style:dashed}.seating-visual-seat.is-drop-target{border-color:#4f7044;background:#f1f7ed;box-shadow:0 0 0 4px rgba(79,112,68,.14)}.seating-visual-seat strong{display:block;max-width:42px;overflow:hidden;color:#6e5747;font-size:7px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.seating-visual-seat small{display:block;margin-top:2px;color:#a09287;font-size:6px;line-height:1}.seating-visual-shell.is-edit-layout .seating-visual-seat{pointer-events:none;opacity:.88}
.seating-visual-guests{min-width:0;border-left:1px solid #e8e0d8;background:#fff;display:flex;flex-direction:column;max-height:756px}.seating-visual-guests-head{padding:15px 14px;border-bottom:1px solid #eee7e0}.seating-visual-guests-head strong{display:block;color:#704829;font-size:13px}.seating-visual-guests-head small{display:block;margin-top:2px;color:#92867d;font-size:9px}.seating-visual-search{display:block;padding:10px;border-bottom:1px solid #eee7e0}.seating-visual-search .input{width:100%}.seating-visual-guest-list{min-height:0;overflow:auto;padding:7px}.seating-visual-guest{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-height:50px;padding:7px 8px;border:1px solid transparent;border-radius:10px;cursor:grab;user-select:none}.seating-visual-guest:hover{border-color:#e7ddd3;background:#faf7f3}.seating-visual-guest:active{cursor:grabbing}.seating-visual-guest>span:last-child{min-width:0}.seating-visual-guest strong{display:block;overflow:hidden;color:#665447;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.seating-visual-guest small{display:block;overflow:hidden;color:#9a8e85;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.seating-visual-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#efe7df;color:#745c4b;font-family:Georgia,"Times New Roman",serif;font-size:13px}.seating-visual-empty{padding:18px 12px;color:#968a81;font-size:10px;text-align:center}
.seating-visual-toast{position:absolute;left:50%;bottom:18px;z-index:35;max-width:min(520px,calc(100% - 30px));padding:9px 14px;border-radius:999px;background:#493d34;color:#fff;font-size:10px;font-weight:750;box-shadow:0 12px 30px rgba(49,38,30,.2);opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:opacity .18s ease,transform .18s ease}.seating-visual-toast.is-visible{opacity:1;transform:translate(-50%,0)}.seating-visual-toast.is-error{background:#8b4e47}
.seating-visual-drawer-backdrop{position:absolute;inset:0;z-index:50;border:0;background:rgba(49,43,39,.24);backdrop-filter:blur(2px);cursor:default}.seating-visual-drawer{position:absolute;z-index:51;top:0;right:0;width:min(410px,100%);height:100%;background:#fff;display:flex;flex-direction:column;box-shadow:-20px 0 52px rgba(49,38,30,.16)}.seating-visual-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px;border-bottom:1px solid #e9e1da}.seating-visual-drawer-head h2{margin:2px 0 3px;color:#704829;font-family:Georgia,"Times New Roman",serif;font-size:25px;font-weight:400}.seating-visual-drawer-head p{margin:0;color:#91857b;font-size:10px}.seating-visual-drawer-body{min-height:0;overflow:auto;padding:16px}.seating-visual-current{padding:12px 0;border-bottom:1px solid #eee7e0}.seating-visual-current span,.seating-visual-neighbors span{display:block;color:#9b8e84;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.seating-visual-current strong{display:block;margin-top:3px;color:#654f40;font-size:13px}.seating-visual-neighbors{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.seating-visual-neighbors>div{min-width:0;padding:10px;border:1px solid #e9e0d7;border-radius:10px;background:#fbf9f6}.seating-visual-neighbors strong{display:block;margin-top:3px;overflow:hidden;color:#6c5a4e;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.seating-visual-drawer-guests{display:grid;gap:5px;margin-top:10px}.seating-visual-drawer-guest{width:100%;min-height:52px;padding:7px 9px;border:1px solid #e8ded5;border-radius:10px;background:#fff;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;text-align:left;cursor:pointer}.seating-visual-drawer-guest:hover{background:#faf7f3}.seating-visual-drawer-guest>span:last-child{min-width:0}.seating-visual-drawer-guest strong{display:block;overflow:hidden;color:#665447;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.seating-visual-drawer-guest small{display:block;overflow:hidden;color:#9a8e85;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.seating-visual-drawer-foot{margin-top:auto;padding:12px 16px;border-top:1px solid #e9e1da;display:flex;justify-content:space-between;gap:8px;background:#fff}
.seating-visual-shell:fullscreen,.seating-visual-shell.is-fallback-fullscreen{width:100vw;height:100vh;border:0;border-radius:0;background:#fff;display:flex;flex-direction:column}.seating-visual-shell:fullscreen .seating-visual-workspace,.seating-visual-shell.is-fallback-fullscreen .seating-visual-workspace{flex:1;min-height:0}.seating-visual-shell:fullscreen .seating-visual-canvas-column,.seating-visual-shell.is-fallback-fullscreen .seating-visual-canvas-column{display:flex;min-height:0;flex-direction:column}.seating-visual-shell:fullscreen .seating-visual-viewport,.seating-visual-shell.is-fallback-fullscreen .seating-visual-viewport{height:auto;min-height:0;flex:1}.seating-visual-shell:fullscreen .seating-visual-guests,.seating-visual-shell.is-fallback-fullscreen .seating-visual-guests{max-height:none;min-height:0}.seating-visual-shell.is-fallback-fullscreen{position:fixed;inset:0;z-index:1000}.seating-visual-shell.is-fallback-fullscreen .seating-visual-drawer-backdrop,.seating-visual-shell.is-fallback-fullscreen .seating-visual-drawer{position:absolute}
@media(max-width:1100px){.seating-visual-workspace{grid-template-columns:minmax(0,1fr)}.seating-visual-guests{border-top:1px solid #e8e0d8;border-left:0;max-height:360px}.seating-visual-guest-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.seating-visual-viewport{height:640px}.seating-visual-shell:fullscreen .seating-visual-workspace,.seating-visual-shell.is-fallback-fullscreen .seating-visual-workspace{grid-template-columns:minmax(0,1fr) 270px}.seating-visual-shell:fullscreen .seating-visual-guests,.seating-visual-shell.is-fallback-fullscreen .seating-visual-guests{border-top:0;border-left:1px solid #e8e0d8;max-height:none}.seating-visual-shell:fullscreen .seating-visual-guest-list,.seating-visual-shell.is-fallback-fullscreen .seating-visual-guest-list{display:block}}
@media(max-width:720px){.seating-visual-head{align-items:flex-start;flex-direction:column}.seating-visual-head-actions{width:100%;justify-content:flex-start}.seating-visual-table-controls{align-items:flex-start;flex-direction:column}.seating-visual-selected-actions{width:100%;justify-content:flex-start}.seating-visual-viewport{height:560px}.seating-visual-guest-list{grid-template-columns:1fr}.seating-visual-shell:fullscreen .seating-visual-workspace,.seating-visual-shell.is-fallback-fullscreen .seating-visual-workspace{grid-template-columns:minmax(0,1fr)}.seating-visual-shell:fullscreen .seating-visual-guests,.seating-visual-shell.is-fallback-fullscreen .seating-visual-guests{position:absolute;right:10px;bottom:10px;z-index:30;width:min(310px,calc(100% - 20px));height:34vh;border:1px solid #e8e0d8;border-radius:14px;box-shadow:0 12px 34px rgba(55,43,33,.14)}.seating-visual-drawer{width:100%}}
@media(prefers-reduced-motion:reduce){.seating-visual-seat,.seating-visual-toast{transition:none}}
.seating-visual-drawer[hidden],.seating-visual-drawer-backdrop[hidden]{display:none!important}

/* v3.22.1 Visual Seating interaction polish -------------------------------- */
.seating-visual-viewport,.seating-visual-canvas,.seating-visual-canvas *{user-select:none;-webkit-user-select:none}
.seating-visual-zoom-input{display:inline-flex;align-items:center;justify-content:center;gap:1px;width:72px;height:40px;padding:0 8px;border:1px solid #ded4ca;border-radius:999px;background:#fff;color:#78685c}
.seating-visual-zoom-input input{width:42px;min-width:0;padding:0;border:0;outline:0;background:transparent;color:inherit;font-size:11px;font-weight:800;text-align:right;-moz-appearance:textfield}
.seating-visual-zoom-input input::-webkit-outer-spin-button,.seating-visual-zoom-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.seating-visual-zoom-input span{font-size:10px;font-weight:800}
.seating-visual-stage.is-selected .seating-visual-tabletop{border-color:#78916f;background:linear-gradient(145deg,#eef5ea,#dfe9d9);color:#4f7044;box-shadow:0 0 0 5px rgba(79,112,68,.14),0 14px 32px rgba(55,43,33,.10)}
.seating-visual-stage.is-selected .seating-visual-tabletop strong{color:#4f7044}.seating-visual-stage.is-selected .seating-visual-tabletop small{color:#6f8965}
.seating-visual-seat.is-selected{border-color:#4f7044!important;background:#4f7044!important;color:#fff!important;box-shadow:0 0 0 4px rgba(79,112,68,.17),0 8px 18px rgba(55,43,33,.10)!important}.seating-visual-seat.is-selected strong,.seating-visual-seat.is-selected small,.seating-visual-seat.is-selected>span{color:#fff!important}
.seating-visual-drawer-backdrop{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.seating-visual-table-controls{min-height:58px;padding:7px 12px;background:#fff;overflow:auto;white-space:nowrap}.seating-visual-selected-copy{margin-right:auto;min-width:160px}.seating-visual-selected-actions{gap:8px;flex-wrap:nowrap}
.seating-visual-table-control-btn{flex:0 0 auto;min-height:40px;padding:0 13px;border:1px solid #d7cabd;border-radius:999px;background:#fff;color:#705c4d;display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;cursor:pointer}.seating-visual-table-control-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.seating-visual-table-control-btn:hover{background:#faf7f3}.seating-visual-table-control-btn.is-active{border-color:#84a179;background:#eef5ea;color:#4f7044;box-shadow:0 0 0 3px rgba(79,112,68,.10)}.seating-visual-table-control-btn:disabled{opacity:.42;cursor:not-allowed}
.seating-visual-extra-control{flex:0 0 auto;height:40px;padding:0 5px;border:1px solid #e0c7a4!important;border-radius:999px;background:#fff9f1;gap:6px;color:#8b6b47}.seating-visual-extra-control>span{min-width:66px}.seating-visual-extra-control>span strong{color:#856645}.seating-visual-extra-control>span small{color:#9d7d5a}.seating-visual-extra-step{width:30px;height:30px;padding:0;border:0;border-radius:50%;background:#fff;color:#856645;font-size:18px;line-height:1;cursor:pointer}.seating-visual-extra-step:hover{background:#f7ead9}.seating-visual-extra-step:disabled{opacity:.32;cursor:not-allowed}
.seating-visual-unselect{flex:0 0 auto;width:36px;height:36px;padding:0;border:1px solid #ded4ca;border-radius:50%;background:#fff;color:#8a7b70;font-size:19px;line-height:1;cursor:pointer}.seating-visual-unselect:hover{background:#f8f4ef;color:#654f40}
.seating-visual-add-modal[hidden]{display:none!important}.seating-visual-add-modal{position:absolute;inset:0;z-index:80;display:grid;place-items:center;padding:18px}.seating-visual-add-backdrop{position:absolute;inset:0;border:0;background:rgba(49,43,39,.16);cursor:default}.seating-visual-add-panel{position:relative;z-index:1;width:min(430px,100%);max-height:calc(100% - 28px);overflow:auto;padding:22px;border:1px solid #ded4ca;border-radius:16px;background:#fff;box-shadow:0 24px 70px rgba(49,38,30,.18)}.seating-visual-add-head{position:relative;padding-right:42px}.seating-visual-add-head h2{margin:3px 0 4px;color:#704829;font-family:Georgia,"Times New Roman",serif;font-size:28px;font-weight:400}.seating-visual-add-head p{margin:0;color:#91857b;font-size:10px}.seating-visual-add-form{display:grid;gap:12px;margin-top:18px}.seating-visual-add-form label{display:grid;gap:5px;color:#796a5f;font-size:10px;font-weight:800}.seating-visual-add-form>p{margin:0;padding:10px 12px;border-radius:10px;background:#faf7f3;color:#8d7e72;font-size:9px}.seating-visual-add-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
@media(max-width:720px){.seating-visual-zoom-input{width:66px}.seating-visual-table-controls{align-items:flex-start}.seating-visual-selected-actions{width:100%;overflow:auto;justify-content:flex-start}.seating-visual-add-modal{padding:10px}.seating-visual-add-panel{padding:18px 14px}.seating-visual-add-actions{display:grid;grid-template-columns:1fr 1fr}.seating-visual-add-actions .button{justify-content:center}}
.seating-visual-table-controls[hidden],.seating-visual-extra-control[hidden]{display:none!important}

/* v3.22.3 Visual Seating collision feedback -------------------------------- */
.seating-visual-stage.is-dragging{z-index:24;transition:opacity .12s ease}
.seating-visual-stage.is-dragging.is-blocked{opacity:.72}
.seating-visual-stage.is-blocked .seating-visual-tabletop,
.seating-visual-stage.is-blocking .seating-visual-tabletop{border-color:#b96f68!important;background:linear-gradient(145deg,#fff0ed,#f3d9d5)!important;color:#8e4f49!important;box-shadow:0 0 0 5px rgba(171,76,67,.18),0 14px 32px rgba(55,43,33,.10)!important}
.seating-visual-stage.is-blocked .seating-visual-tabletop strong,
.seating-visual-stage.is-blocking .seating-visual-tabletop strong{color:#8e4f49!important}
.seating-visual-stage.is-blocked .seating-visual-tabletop small,
.seating-visual-stage.is-blocking .seating-visual-tabletop small{color:#aa6a63!important}
.seating-visual-stage.is-blocking .seating-visual-seat{border-color:#d9a39d;box-shadow:0 0 0 2px rgba(171,76,67,.08),0 4px 12px rgba(55,43,33,.055)}
@media(prefers-reduced-motion:reduce){.seating-visual-stage.is-dragging{transition:none}}

/* v3.22.4 Dynamic Visual Seating profiles + grouped guests ------------------ */
.seating-visual-zoom-input input{text-align:center}
.seating-visual-extra-control{display:flex;align-items:center;gap:7px;height:auto;padding:4px 6px;border:1px solid #e0c7a4!important;border-radius:14px;background:#fff9f1;color:#8b6b47}
.seating-visual-extra-title{padding:0 5px;color:#9d7d5a;font-size:8px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.seating-visual-extra-slot{display:grid;min-width:76px;min-height:38px;padding:5px 10px;border:1px solid #ead8bf;border-radius:10px;background:#fff;color:#856645;cursor:pointer;text-align:left;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}
.seating-visual-extra-slot strong{font-size:9px;line-height:1.15}.seating-visual-extra-slot small{margin-top:1px;color:#a18869;font-size:7px;line-height:1.15;white-space:nowrap}.seating-visual-extra-slot:hover:not(:disabled){border-color:#d7b98d;background:#fdf7ee}.seating-visual-extra-slot.is-active,.seating-visual-extra-slot[aria-pressed="true"]{border-color:#78916f;background:#eef5ea;color:#4f7044;box-shadow:0 0 0 3px rgba(79,112,68,.08)}.seating-visual-extra-slot.is-active small,.seating-visual-extra-slot[aria-pressed="true"] small{color:#6f8965}.seating-visual-extra-slot:disabled{opacity:.42;cursor:not-allowed}
.seating-visual-extra-choices,.seating-table-extra-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.seating-visual-extra-choices[hidden],.seating-table-extra-choices[hidden]{display:none!important}
.seating-visual-extra-choices label,.seating-table-extra-choices label{position:relative;display:block!important;min-width:0;cursor:pointer}.seating-visual-extra-choices input,.seating-table-extra-choices input{position:absolute;opacity:0;pointer-events:none}.seating-visual-extra-choices label>span,.seating-table-extra-choices label>span{display:grid;min-height:48px;padding:8px 10px;border:1px solid #e4d9ce;border-radius:11px;background:#fff;color:#765f4d;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.seating-visual-extra-choices label>span strong,.seating-table-extra-choices label>span strong{font-size:10px}.seating-visual-extra-choices label>span small,.seating-table-extra-choices label>span small{margin-top:2px;color:#9b8c80;font-size:8px;font-weight:600}.seating-visual-extra-choices input:checked+span,.seating-table-extra-choices input:checked+span{border-color:#78916f;background:#eef5ea;color:#4f7044;box-shadow:0 0 0 3px rgba(79,112,68,.07)}.seating-visual-extra-choices input:checked+span small,.seating-table-extra-choices input:checked+span small{color:#6f8965}.seating-visual-extra-choices input:focus-visible+span,.seating-table-extra-choices input:focus-visible+span{outline:2px solid #4f7044;outline-offset:2px}.seating-visual-extra-choices input:disabled+span,.seating-table-extra-choices input:disabled+span{opacity:.45;cursor:not-allowed}
.seating-table-profile-form .seating-table-extra-choices{grid-column:1/-1}.seating-table-profile-summary{display:block;grid-column:1/-1;margin:0;color:#8f8278;font-size:9px;font-weight:700}.seating-create-form .seating-table-extra-choices,.seating-create-form .seating-table-profile-summary{grid-column:auto}
.seating-visual-invite-group{overflow:hidden;margin:0 0 7px;border:1px solid #ebe2d9;border-radius:11px;background:#fff}.seating-visual-invite-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 9px;border-bottom:1px solid #eee7e0;background:#faf7f3}.seating-visual-invite-head>span:first-child{min-width:0}.seating-visual-invite-head strong{display:block;overflow:hidden;color:#6b5545;font-size:9px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.seating-visual-invite-head small{display:block;margin-top:2px;color:#a0948a;font-size:7px}.seating-visual-invite-head>span:last-child{flex:0 0 auto;color:#8c8077;font-size:7px;font-weight:750;white-space:nowrap}.seating-visual-invite-group .seating-visual-guest{border-radius:0;border-top:1px solid #f2ece6}.seating-visual-invite-group .seating-visual-guest:first-of-type{border-top:0}.seating-visual-guest.is-pending{opacity:.5;pointer-events:none}
@media(max-width:720px){.seating-visual-extra-control{max-width:100%;overflow:auto}.seating-visual-extra-title{display:none}.seating-visual-extra-slot{min-width:72px}.seating-visual-extra-choices,.seating-table-extra-choices{grid-template-columns:1fr}}
.seating-visual-extra-control>.seating-visual-extra-title{display:block;min-width:0!important;text-align:left}

/* v3.22.6 Visual Seating workflow polish ----------------------------------- */
.seating-visual-head-actions .seating-visual-head-tool{width:44px;height:44px;min-width:44px;min-height:44px}
.seating-visual-head-actions .seating-visual-head-tool.is-active{border-color:#78916f;background:#eef5ea;color:#4f7044;box-shadow:0 0 0 3px rgba(79,112,68,.08)}
.seating-visual-layout-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.seating-visual-layout-actions[hidden]{display:none!important}
.seating-visual-table-edit-button{flex:0 0 44px}
.seating-visual-table-edit-button[hidden]{display:none!important}
.seating-visual-shell.has-selected-table:not(.is-edit-layout) .seating-visual-guest{cursor:pointer}
.seating-visual-shell.has-selected-table:not(.is-edit-layout) .seating-visual-guest:hover{border-color:#cbdac5;background:#f3f8f0;box-shadow:inset 3px 0 0 #78916f}
.seating-visual-drawer-guests .seating-visual-invite-group{margin-bottom:8px}
.seating-visual-drawer-guests .seating-visual-invite-group .seating-visual-drawer-guest{border:0;border-top:1px solid #f2ece6;border-radius:0}
.seating-visual-drawer-guests .seating-visual-invite-group .seating-visual-drawer-guest:first-of-type{border-top:0}
.seating-visual-drawer-guest{user-select:none;-webkit-user-select:none}
.seating-visual-drawer-guest.is-pending{opacity:.5;pointer-events:none}
.seating-visual-shell.is-drawer-guest-dragging .seating-visual-drawer-backdrop{pointer-events:none}
@media(max-width:720px){.seating-visual-layout-actions{max-width:100%;overflow:auto}.seating-visual-table-edit-button{flex-basis:44px}}
.seating-visual-head-tool [data-visual-edit-layout-label]{display:none!important}


/* v3.22.7 Visual Seating contextual drawer + toolbar + archive delete ------- */
.seating-visual-head-actions .seating-visual-head-tool{width:auto;min-width:44px;height:44px;min-height:44px;padding:0 12px;gap:7px}
.seating-visual-head-tool-label{display:inline-block;color:inherit;font-size:10px;font-weight:800;line-height:1;white-space:nowrap}
.seating-visual-head-tool [data-visual-edit-layout-label]{display:inline-block!important}
.seating-visual-shell .admin-icon-button[data-tooltip]::after{top:calc(100% + 8px);bottom:auto;transform:translate(-50%,-4px)}
.seating-visual-shell .admin-icon-button[data-tooltip]:hover::after,.seating-visual-shell .admin-icon-button[data-tooltip]:focus-visible::after{transform:translate(-50%,0)}
.seating-visual-drawer-backdrop{pointer-events:none!important}
.seating-visual-drawer-guests .seating-visual-invite-group.is-suggested{border-color:#b9ccb1;box-shadow:0 0 0 2px rgba(79,112,68,.07)}
.seating-visual-drawer-guests .seating-visual-invite-group.is-suggested .seating-visual-invite-head{background:#f2f7ef}
.seating-visual-drawer-guests .seating-visual-invite-group.is-suggested .seating-visual-invite-head>span:last-child{color:#4f7044}
.seating-archive-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid #eee9e2;flex-wrap:wrap}
.seating-archive-actions .seating-archive-form{margin:0;padding:0;border:0}
.seating-delete-table-form{margin:0}
@media(max-width:720px){.seating-visual-head-actions .seating-visual-head-tool{padding:0 10px}.seating-visual-head-tool-label{font-size:9px}.seating-archive-actions{justify-content:flex-start}}

/* v3.22.8 Admin login + Visual Hall control polish ------------------------ */
.seating-visual-head-actions .seating-visual-head-tool{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:44px;padding:0 13px;gap:8px}
.seating-visual-head-tool-label{font-size:11px;line-height:1;white-space:nowrap}
.seating-visual-table-controls{overflow:visible;white-space:normal}
.seating-visual-selected-actions{overflow:visible}
.seating-visual-selected-icon{display:inline-grid!important;place-items:center!important;flex:0 0 36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;border-radius:50%!important}
.seating-visual-table-edit-button{flex-basis:36px!important}
.seating-visual-clear-table-button.is-loading{opacity:.5;pointer-events:none}
.seating-visual-clear-table-button:disabled{opacity:.35}
.seating-visual-unselect.seating-visual-selected-icon{font-size:19px;line-height:1}
@media(max-width:720px){.seating-visual-head-actions .seating-visual-head-tool{padding:0 11px;gap:6px}.seating-visual-head-tool-label{font-size:10px}.seating-visual-selected-actions{overflow:auto}}

/* v3.22.9 Visual Hall performance + mobile workspace polish --------------- */
/* iOS/PWA: native two-axis momentum scrolling must remain available even when
   the gesture starts on a table or seat. Desktop mouse grab-to-pan is JS. */
.seating-visual-viewport{
  touch-action:pan-x pan-y;
  -webkit-overflow-scrolling:touch;
}
.seating-visual-shell.is-edit-layout .seating-visual-tabletop{touch-action:none}
.seating-visual-stage.is-dragging{will-change:left,top}
.seating-visual-stage.is-dragging .seating-visual-rotator{will-change:transform}
.seating-visual-guest-list,.seating-visual-drawer-body{overscroll-behavior:contain}

/* Fullscreen is canvas-first. Seat assignment remains available through the
   contextual seat drawer/bottom sheet. */
.seating-visual-shell:fullscreen .seating-visual-workspace,
.seating-visual-shell.is-fallback-fullscreen .seating-visual-workspace{
  grid-template-columns:minmax(0,1fr)!important;
}
.seating-visual-shell:fullscreen .seating-visual-guests,
.seating-visual-shell.is-fallback-fullscreen .seating-visual-guests{
  display:none!important;
}

@media(max-width:720px){
  /* Use the exact same invitation-group DOM as desktop, with a stable mobile
     scroll area. This avoids the old mobile grid/reflow path where the list
     could initially paint as empty until Search forced a rerender. */
  .seating-visual-guests{
    height:min(52svh,420px);
    max-height:min(52svh,420px);
    min-height:300px;
  }
  .seating-visual-guest-list{
    display:block!important;
    flex:1 1 auto;
    min-height:220px;
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:8px;
  }
  .seating-visual-invite-group{
    display:block;
    width:100%;
    margin:0 0 8px;
  }
  .seating-visual-invite-head{min-height:42px}
  .seating-visual-guest{min-height:50px}

  /* Seat assignment is an inspector on desktop and a bottom sheet on mobile.
     It intentionally does not block the visible canvas above it so the user
     can switch directly to another seat while the sheet stays open. */
  .seating-visual-drawer{
    position:fixed!important;
    z-index:1201;
    top:auto!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:100%!important;
    height:min(72svh,680px)!important;
    max-height:calc(100svh - 76px);
    border:1px solid #e4d9cf;
    border-bottom:0;
    border-radius:20px 20px 0 0;
    box-shadow:0 -18px 48px rgba(49,38,30,.18);
    overflow:hidden;
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .seating-visual-drawer::before{
    content:"";
    flex:0 0 auto;
    align-self:center;
    width:42px;
    height:4px;
    margin:8px auto 0;
    border-radius:999px;
    background:#d9d0c8;
  }
  .seating-visual-drawer-head{padding:12px 16px 13px}
  .seating-visual-drawer-head h2{font-size:22px}
  .seating-visual-drawer-body{
    padding:12px 14px;
    -webkit-overflow-scrolling:touch;
  }
  .seating-visual-drawer-foot{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}

  /* Add/Edit Table are form-heavy mobile popups, so bottom sheets are more
     usable than centered dialogs. Destructive confirmations remain confirms. */
  .seating-visual-add-modal{
    position:fixed!important;
    z-index:1250;
    inset:0!important;
    display:flex;
    align-items:flex-end;
    justify-content:stretch;
    padding:0!important;
  }
  .seating-visual-add-panel{
    width:100%!important;
    max-width:none!important;
    max-height:min(88svh,760px)!important;
    margin:0;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px))!important;
    border-radius:20px 20px 0 0!important;
    border-bottom:0;
    box-shadow:0 -18px 52px rgba(49,38,30,.20);
  }
  .seating-visual-add-panel::before{
    content:"";
    display:block;
    width:42px;
    height:4px;
    margin:-10px auto 12px;
    border-radius:999px;
    background:#d9d0c8;
  }
}


/* v3.22.10 Visual Hall mobile header + desktop guest collapse ------------- */
.seating-visual-primary-actions,.seating-visual-zoom-actions{display:flex;align-items:center;gap:7px}
.seating-visual-guests-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.seating-visual-guest-collapse,.seating-visual-guest-restore{border:1px solid #e0d9d1;background:#fff;color:#6f6259;cursor:pointer}
.seating-visual-guest-collapse{flex:0 0 auto;width:32px;height:32px;padding:0;border-radius:10px;display:grid;place-items:center}
.seating-visual-guest-collapse svg,.seating-visual-guest-restore svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.seating-visual-guest-collapse:hover,.seating-visual-guest-restore:hover{background:#faf7f3}
.seating-visual-guest-restore{position:absolute;right:12px;top:12px;z-index:18;display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 11px;border-radius:11px;font-size:10px;font-weight:800;box-shadow:0 8px 22px rgba(55,43,33,.08)}
.seating-visual-guest-restore[hidden]{display:none!important}
@media(min-width:1101px){
  .seating-visual-shell.is-guest-list-collapsed .seating-visual-workspace{grid-template-columns:minmax(0,1fr)}
  .seating-visual-shell.is-guest-list-collapsed .seating-visual-guests{display:none}
}
.seating-visual-shell:fullscreen .seating-visual-guest-restore,.seating-visual-shell.is-fallback-fullscreen .seating-visual-guest-restore{display:none!important}

@media(max-width:1100px){
  .seating-visual-guest-collapse,.seating-visual-guest-restore{display:none!important}
}

@media(max-width:720px){
  /* Figma node 257:23: compact two-row mobile Hall header. */
  .seating-visual-head{align-items:stretch;gap:18px;padding:16px 10px}
  .seating-visual-head-copy{width:100%;min-width:0}
  .seating-visual-head-copy>.eyebrow{display:none}
  .seating-visual-head-copy>strong{font-size:15px;line-height:23px}
  .seating-visual-head-copy>small{margin-top:0;padding-top:2px;font-size:10px;line-height:16px}
  .seating-visual-head-actions{display:flex;width:100%;flex-direction:column;align-items:stretch;gap:10px}
  .seating-visual-primary-actions{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .seating-visual-primary-actions .seating-visual-head-tool{width:100%;min-width:0;height:44px;min-height:44px;padding:0 11px;border-radius:11px;gap:6px}
  .seating-visual-primary-actions .seating-visual-head-tool svg{width:18px;height:18px;flex:0 0 18px}
  .seating-visual-head-tool-label{font-size:10px;line-height:10px;text-align:center}
  .seating-visual-zoom-actions{display:grid;width:100%;grid-template-columns:44px minmax(0,1fr) 44px 44px;gap:10px}
  .seating-visual-zoom-actions>.admin-icon-button{width:44px;min-width:44px;height:42px;min-height:42px;border-radius:11px}
  .seating-visual-zoom-actions>.admin-icon-button svg{width:18px;height:18px}
  .seating-visual-zoom-actions .seating-visual-zoom-input{width:100%;height:42px;min-width:0}
}

/* v3.22.11 Hall click/select regression + selected-table mobile Figma parity */
@media(max-width:720px){
  .seating-visual-shell:not(.is-edit-layout) .seating-visual-table-controls:not([hidden]){
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    min-height:82px;
    padding:7px 12px;
    overflow:hidden;
    white-space:normal;
    background:#fff;
  }
  .seating-visual-shell:not(.is-edit-layout) .seating-visual-selected-copy{
    flex:1 1 auto;
    min-width:160px;
    margin-right:0;
    overflow:hidden;
  }
  .seating-visual-shell:not(.is-edit-layout) .seating-visual-selected-copy>span{
    line-height:14px;
  }
  .seating-visual-shell:not(.is-edit-layout) .seating-visual-selected-copy>strong{
    line-height:22px;
  }
  .seating-visual-shell:not(.is-edit-layout) .seating-visual-selected-copy>small{
    display:block;
    max-width:100%;
    line-height:15.5px;
    white-space:normal;
  }
  .seating-visual-shell:not(.is-edit-layout) .seating-visual-selected-actions{
    flex:0 0 auto;
    width:auto;
    height:36px;
    gap:8px;
    overflow:hidden;
    justify-content:flex-end;
    flex-wrap:nowrap;
  }
}

/* v3.23.0 Admin UI foundation + Hall UX polish ----------------------------- */
/* Preview-parity dark Admin sidebar. */
.admin-nav{
  background:#2f2a26!important;
  border-right-color:#3a342f!important;
  color:#fff;
}
.admin-nav-brand-link{color:#fff!important}
.admin-brand-logo-sidebar{filter:none;opacity:1}
.admin-nav-brand-link>span:last-child{color:#9f968f!important}
.admin-nav nav a{color:#c8c1bb!important}
.admin-nav nav a:hover{background:#3a342f!important;color:#fff!important}
.admin-nav nav a.active{background:#413a35!important;color:#fff!important}
.admin-nav-icon{color:#a79f99!important}
.admin-nav nav a:hover .admin-nav-icon,.admin-nav nav a.active .admin-nav-icon{color:#fff!important}
.admin-nav-footer{border-top-color:rgba(255,255,255,.1)!important}
.admin-nav-footer>a{color:#bbb3ad!important}
.admin-nav-footer>a:hover{color:#fff!important}
.admin-nav-account strong{color:#fff!important}
.admin-nav-account span{color:#9f968f!important}
.admin-nav-close{color:#ddd5cf!important;background:#3a342f!important}

/* The shell owns the page width. Individual forms/cards may still constrain
   their own readable content, but primary Admin workspaces can use all space. */
.admin-main,
.admin-guests-main,
.settings-main,
.seating-admin-main,
.admin-users-main,
.activity-main,
.admin-import-main,
.security-admin-main,
.sms-admin-main{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  min-width:0;
  background: #f5f5f5;
  border-radius: 24px;
}

/* Shared fixed tooltip layer: never clipped by toolbar/scroll overflow. */
.admin-tooltip-layer{
  position:fixed;
  z-index:20050;
  max-width:min(240px,calc(100vw - 16px));
  padding:6px 8px;
  border-radius:7px;
  background:#332e2a;
  color:#fff;
  font-size:.66rem;
  font-weight:700;
  line-height:1.15;
  text-align:center;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transform:translateY(-3px);
  box-shadow:0 8px 22px rgba(28,23,19,.18);
  transition:opacity .14s ease,transform .14s ease;
}
.admin-tooltip-layer[data-placement="top"]{transform:translateY(3px)}
.admin-tooltip-layer.is-visible{opacity:1;transform:translateY(0)}
.admin-tooltip-layer-ready .admin-icon-button[data-tooltip]::after,
.admin-tooltip-layer-ready [data-tooltip]::after{display:none!important}

/* Shared overlay entrance motion. Existing close logic remains authoritative. */
@keyframes adminOverlayFadeIn{from{opacity:0}to{opacity:1}}
@keyframes adminPanelIn{from{opacity:0;transform:translateY(8px) scale(.992)}to{opacity:1;transform:none}}
@keyframes adminSheetIn{from{opacity:.72;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes adminDrawerIn{from{opacity:.84;transform:translateX(22px)}to{opacity:1;transform:none}}
.admin-modal:not([hidden]) .admin-modal-backdrop,
.seating-visual-add-modal:not([hidden]) .seating-visual-add-backdrop,
.seating-quick-assign:not([hidden]) .seating-quick-assign-backdrop,
.security-scanner-modal:not([hidden]){animation:adminOverlayFadeIn .2s ease both}
.admin-modal:not([hidden]) .admin-modal-panel{animation:adminPanelIn .22s cubic-bezier(.2,.72,.2,1) both}
.seating-visual-add-modal:not([hidden]) .seating-visual-add-panel{animation:adminPanelIn .22s cubic-bezier(.2,.72,.2,1) both}
.seating-visual-drawer:not([hidden]){animation:adminDrawerIn .2s cubic-bezier(.2,.72,.2,1) both}
.seating-quick-assign:not([hidden]) .seating-quick-assign-panel{animation:adminDrawerIn .22s cubic-bezier(.2,.72,.2,1) both}
.security-scanner-modal:not([hidden]) .security-scanner-sheet{animation:adminSheetIn .22s cubic-bezier(.2,.72,.2,1) both}

/* Selected-table inspector: soft reveal and a dedicated Extra Seats row. */
.seating-visual-table-controls:not([hidden]){
  opacity:0;
  transform:translateY(-5px);
  transition:opacity .18s ease,transform .18s ease,background .18s ease;
}
.seating-visual-table-controls.is-visible{opacity:1;transform:none}
.seating-visual-table-controls{
  flex-wrap:wrap;
}
.seating-visual-table-controls>.seating-visual-extra-control{
  margin-left:auto;
}

/* Fullscreen stays canvas-first but Guest List is recoverable as an overlay.
   It enters collapsed on every fullscreen session and never changes the
   user's normal desktop collapse preference. */
.seating-visual-workspace{position:relative}
.seating-visual-shell:fullscreen:not(.is-guest-list-collapsed) .seating-visual-guests,
.seating-visual-shell.is-fallback-fullscreen:not(.is-guest-list-collapsed) .seating-visual-guests{
  display:flex!important;
  position:absolute!important;
  z-index:42;
  top:12px!important;
  right:12px!important;
  bottom:12px!important;
  left:auto!important;
  width:min(320px,calc(100% - 24px))!important;
  height:auto!important;
  max-height:none!important;
  border:1px solid #e4d9cf!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 18px 48px rgba(49,38,30,.18)!important;
  animation:adminDrawerIn .2s cubic-bezier(.2,.72,.2,1) both;
}
.seating-visual-shell:fullscreen.is-guest-list-collapsed .seating-visual-guests,
.seating-visual-shell.is-fallback-fullscreen.is-guest-list-collapsed .seating-visual-guests{display:none!important}
.seating-visual-shell:fullscreen .seating-visual-guest-restore:not([hidden]),
.seating-visual-shell.is-fallback-fullscreen .seating-visual-guest-restore:not([hidden]){display:inline-flex!important}
.seating-visual-shell:fullscreen .seating-visual-guest-collapse,
.seating-visual-shell.is-fallback-fullscreen .seating-visual-guest-collapse{display:grid!important}

/* Mobile dialogs use one consistent bottom-sheet pattern. */
@media(max-width:720px){
  .admin-modal{
    display:flex!important;
    align-items:flex-end!important;
    justify-content:stretch!important;
    padding:0!important;
  }
  .admin-modal-panel{
    width:100%!important;
    max-width:none!important;
    height:82dvh!important;
    max-height:calc(100dvh - 12px)!important;
    padding:22px 14px calc(12px + env(safe-area-inset-bottom,0px))!important;
    border-radius:20px 20px 0 0!important;
    border-bottom:0!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
    box-shadow:0 -18px 52px rgba(49,38,30,.20)!important;
    animation:adminSheetIn .22s cubic-bezier(.2,.72,.2,1) both!important;
  }
  .admin-modal-panel::before,
  .seating-visual-add-panel::before,
  .seating-quick-assign-panel::before,
  .security-scanner-sheet::before{
    content:"";
    display:block;
    width:42px;
    height:4px;
    margin:-10px auto 12px;
    border-radius:999px;
    background:#d9d0c8;
  }
  .admin-modal-close{top:14px;right:14px}
  .admin-modal-head{padding-top:0;padding-right:44px}

  .seating-visual-drawer{
    height:82dvh!important;
    max-height:calc(100dvh - 12px)!important;
    animation:adminSheetIn .2s cubic-bezier(.2,.72,.2,1) both!important;
  }
  .seating-visual-add-panel{
    height:82dvh!important;
    max-height:calc(100dvh - 12px)!important;
    animation:adminSheetIn .22s cubic-bezier(.2,.72,.2,1) both!important;
  }
  .seating-quick-assign-panel{
    width:100%!important;
    height:82dvh!important;
    max-height:calc(100dvh - 12px)!important;
    border-radius:20px 20px 0 0!important;
    animation:adminSheetIn .22s cubic-bezier(.2,.72,.2,1) both!important;
  }
  .security-scanner-sheet{
    width:100%!important;
    height:82dvh!important;
    max-height:calc(100dvh - 12px)!important;
    border-radius:20px 20px 0 0!important;
  }

  /* Preserve Figma selected-table header as row one; Extra Seats become an
     explicit second row instead of being hidden behind Edit Layout. */
  .seating-visual-shell:not(.is-edit-layout) .seating-visual-table-controls:not([hidden]),
  .seating-visual-shell.is-edit-layout .seating-visual-table-controls:not([hidden]){
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:8px 12px;
    overflow:visible;
  }
  .seating-visual-table-controls>.seating-visual-extra-control{
    grid-column:1/-1;
    width:100%;
    margin:0;
    overflow:auto;
  }
  .seating-visual-extra-title{display:block!important;flex:0 0 auto}
  .seating-visual-selected-actions{overflow:visible!important}

  /* Fullscreen Guest List becomes an 82dvh sheet on mobile. */
  .seating-visual-shell:fullscreen:not(.is-guest-list-collapsed) .seating-visual-guests,
  .seating-visual-shell.is-fallback-fullscreen:not(.is-guest-list-collapsed) .seating-visual-guests{
    position:fixed!important;
    z-index:1220;
    top:auto!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:100%!important;
    height:82dvh!important;
    max-height:calc(100dvh - 12px)!important;
    border-radius:20px 20px 0 0!important;
    border-bottom:0!important;
    box-shadow:0 -18px 52px rgba(49,38,30,.20)!important;
    animation:adminSheetIn .2s cubic-bezier(.2,.72,.2,1) both;
  }
  .seating-visual-shell:fullscreen:not(.is-guest-list-collapsed) .seating-visual-guests::before,
  .seating-visual-shell.is-fallback-fullscreen:not(.is-guest-list-collapsed) .seating-visual-guests::before{
    content:"";
    flex:0 0 auto;
    align-self:center;
    width:42px;
    height:4px;
    margin:8px auto 0;
    border-radius:999px;
    background:#d9d0c8;
  }
  .seating-visual-shell:fullscreen .seating-visual-guest-restore,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-guest-restore{
    top:12px;
    right:12px;
  }
}

@media(prefers-reduced-motion:reduce){
  .admin-tooltip-layer,
  .admin-modal:not([hidden]) .admin-modal-backdrop,
  .admin-modal:not([hidden]) .admin-modal-panel,
  .seating-visual-add-modal:not([hidden]) .seating-visual-add-panel,
  .seating-visual-drawer:not([hidden]),
  .seating-quick-assign:not([hidden]) .seating-quick-assign-panel,
  .security-scanner-modal:not([hidden]) .security-scanner-sheet,
  .seating-visual-table-controls:not([hidden]),
  .seating-visual-shell:fullscreen:not(.is-guest-list-collapsed) .seating-visual-guests,
  .seating-visual-shell.is-fallback-fullscreen:not(.is-guest-list-collapsed) .seating-visual-guests{
    animation:none!important;
    transition:none!important;
  }
}
@media(max-width:720px){
  .security-scanner-modal{padding:0!important;align-items:flex-end!important}
}
.seating-guest-picker-panel:not([hidden]){animation:adminPanelIn .18s cubic-bezier(.2,.72,.2,1) both}
@media(max-width:720px){
  .seating-guest-picker-panel{
    top:auto!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:100%!important;
    height:82dvh!important;
    max-height:calc(100dvh - 12px)!important;
    border-radius:20px 20px 0 0!important;
    border-bottom:0!important;
    box-shadow:0 -18px 52px rgba(49,38,30,.20)!important;
    animation:adminSheetIn .2s cubic-bezier(.2,.72,.2,1) both!important;
  }
  .seating-guest-picker-panel::before{
    content:"";
    flex:0 0 auto;
    align-self:center;
    width:42px;
    height:4px;
    margin:8px auto 0;
    border-radius:999px;
    background:#d9d0c8;
  }
}
@media(prefers-reduced-motion:reduce){.seating-guest-picker-panel:not([hidden]){animation:none!important}}

/* v3.23.1 Sidebar collapse polish ----------------------------------------- */
/* Keep the uploaded Admin logo in its authored colors on the dark sidebar. */
.admin-nav-collapse{
  display:grid;
  place-items:center;
  position:absolute;
  z-index:4;
  top:30px;
  right:-15px;
  width:30px;
  height:30px;
  padding:0;
  border:1px solid #49413b;
  border-radius:50%;
  background:#fff;
  color:#5f534b;
  box-shadow:0 7px 18px rgba(24,20,17,.18);
  cursor:pointer;
  transition:transform .2s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.admin-nav-collapse:hover{background:#f7f3ef;color:#2f2a26;border-color:#62574f;box-shadow:0 9px 22px rgba(24,20,17,.24)}
.admin-nav-collapse:focus-visible{outline:2px solid #b89a82;outline-offset:3px}
.admin-nav-collapse svg{width:16px;height:16px;display:block;transition:transform .2s cubic-bezier(.2,.72,.2,1)}
.admin-nav-footer>a{display:flex;align-items:center;gap:11px}

@media(min-width:901px){
  .admin-shell{transition:grid-template-columns .22s cubic-bezier(.2,.72,.2,1)}
  .admin-nav{transition:padding .22s cubic-bezier(.2,.72,.2,1),gap .22s cubic-bezier(.2,.72,.2,1);border-radius: 24px;max-height: 96dvh;}
  .admin-nav nav a,.admin-nav-footer>a{transition:background .18s ease,color .18s ease,padding .22s cubic-bezier(.2,.72,.2,1),gap .22s cubic-bezier(.2,.72,.2,1)}
  .admin-nav-brand-link,.admin-nav-account{transition:opacity .16s ease,transform .2s cubic-bezier(.2,.72,.2,1)}

  html.admin-sidebar-collapsed .admin-shell{grid-template-columns: 76px minmax(0,1fr);gap: 16px;padding: 16px;}
  html.admin-sidebar-collapsed .admin-nav{padding-left:13px;padding-right:13px;gap:18px}
  html.admin-sidebar-collapsed .admin-nav-collapse svg{transform:rotate(180deg)}
  html.admin-sidebar-collapsed .admin-nav-brand{justify-content:center}
  html.admin-sidebar-collapsed .admin-nav-brand-link{
    width:44px;
    min-width:44px;
    justify-items:center;
    overflow:hidden;
  }
  html.admin-sidebar-collapsed .admin-brand-logo-sidebar{
    width:44px;
    max-width:44px;
    height:40px;
    object-position:center;
  }
  html.admin-sidebar-collapsed .admin-brand-text{
    display:block;
    max-width:44px;
    overflow:hidden;
    font-size:.72rem;
    line-height:1.05;
    text-align:center;
    white-space:nowrap;
  }
  html.admin-sidebar-collapsed .admin-nav-brand-link>span:last-child{display:none}
  html.admin-sidebar-collapsed .admin-nav nav a,
  html.admin-sidebar-collapsed .admin-nav-footer>a{
    justify-content:center;
    gap:0;
    min-height:42px;
    padding-left:0;
    padding-right:0;
  }
  html.admin-sidebar-collapsed .admin-nav .admin-nav-icon{width:22px;height:22px;flex-basis:22px}
  html.admin-sidebar-collapsed .admin-nav .admin-nav-icon svg{width:19px;height:19px}
  html.admin-sidebar-collapsed .admin-nav-label{display:none}
  html.admin-sidebar-collapsed .admin-nav-account{display:none}
  html.admin-sidebar-collapsed .admin-nav-footer{gap:4px;padding-top:12px}
}

@media(max-width:900px){
  .admin-nav-collapse{display:none!important}
}

.admin-tooltip-layer[data-placement="right"]{transform:translateX(-3px)}
.admin-tooltip-layer[data-placement="right"].is-visible{transform:translateX(0)}

@media(prefers-reduced-motion:reduce){
  .admin-nav-collapse,
  .admin-nav-collapse svg,
  .admin-shell,
  .admin-nav,
  .admin-nav nav a,
  .admin-nav-footer>a,
  .admin-nav-brand-link,
  .admin-nav-account{transition:none!important}
}
.admin-brand-compact{display:none}
@media(min-width:901px){
  html.admin-sidebar-collapsed .admin-brand-logo-sidebar,
  html.admin-sidebar-collapsed .admin-nav-brand-link>.admin-brand-text{/* display:none; */}
  html.admin-sidebar-collapsed .admin-nav-brand-link>.admin-brand-compact{
    display:block;
    color:#fff;
    font-family:var(--heading-font);
    font-size:.82rem;
    font-weight:700;
    line-height:1;
    letter-spacing:.02em;
    white-space:nowrap;
  }
}

/* v3.23.2 Sidebar overflow + brand composition fix ------------------------- */
/* Keep the collapse affordance inside the sidebar so it can never widen the
   page viewport. Tables and other wide workspaces keep their own local scroll. */
.admin-body{overflow-x:hidden}
.admin-shell{width:100%;min-width:0;overflow-x:clip;}
.admin-nav{box-sizing:border-box;min-width:0;overflow-x:hidden;}
.admin-nav-collapse{
  top: 48px;
  right: 16px;
  width:32px;
  height:32px;
}

/* Sidebar branding is composed from the bundled monogram plus live text.
   This avoids squeezing a full wordmark when the navigation rail collapses. */
.admin-nav-brand{min-width:0}
.admin-nav-brand-link{
  width:100%;
  max-width:100%;
  min-width:0;
  gap:7px;
  padding-right:34px;
  box-sizing:border-box;
}
.admin-sidebar-brand-main{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}
.admin-sidebar-brand-icon{
  display:block;
  flex:0 0 auto;
  width:48px;
  height:46px;
  object-fit:contain;
}
.admin-sidebar-brand-name{
  min-width:0;
  color: #e9d5c6;
  font-family:var(--heading-font);
  font-size:1.42rem;
  font-weight:500;
  line-height:1;
  white-space:nowrap;
}
.admin-sidebar-brand-subtitle{
  color:#9f968f!important;
  font-size:.68rem;
  letter-spacing:.04em;
  line-height:1.25;
  white-space:nowrap;
}

@media(min-width:901px){
  html.admin-sidebar-collapsed .admin-nav{
    overflow-x:hidden;
  }
  html.admin-sidebar-collapsed .admin-nav-collapse{
    top:10px;
    right: 20px;
  }
  html.admin-sidebar-collapsed .admin-nav-brand{
    margin-top:32px;
  }
  html.admin-sidebar-collapsed .admin-nav-brand-link{
    width:50px;
    min-width:50px;
    max-width:50px;
    padding-right:0;
    justify-items:center;
    overflow:visible;
  }
  html.admin-sidebar-collapsed .admin-sidebar-brand-main{
    width:50px;
    justify-content:center;
  }
  html.admin-sidebar-collapsed .admin-sidebar-brand-icon{
    width:40px;
    height:38px;
  }
  html.admin-sidebar-collapsed .admin-sidebar-brand-name,
  html.admin-sidebar-collapsed .admin-sidebar-brand-subtitle{
    display:none;
  }
}

@media(max-width:900px){
  .admin-nav-brand-link{padding-right:0}
}
@media(min-width:901px){
  .admin-shell{grid-template-columns: 260px minmax(0,1fr);gap: 16px;padding: 16px;}
}

/* v3.23.4 Seating UI + iOS zoom polish -------------------- */
.admin-invite-seating-note.is-readonly{background:#faf8f4}
.admin-guest-seating-summary{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:
    "label summary action"
    ". note action";
  align-items:center;
  gap:8px 16px;
  min-width:0;
  margin-top:4px;
  padding:14px 16px;
  border:1px solid #e5ddd3;
  border-radius:16px;
  background:linear-gradient(180deg,#fbfaf7 0%,#f8f4ef 100%);
  box-shadow:0 10px 24px rgba(55,42,31,.04);
}
.admin-guest-seating-summary-label{
  grid-area:label;
  align-self:start;
  margin:0;
  padding-top:2px;
  white-space:nowrap;
}
.admin-guest-seating-summary-copy{
  grid-area:summary;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 14px;
  min-width:0;
}
.admin-guest-seating-summary-copy>strong,
.admin-guest-seating-summary-copy>small{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  margin:0;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(112,72,41,.12);
  background:#fff;
  white-space:nowrap;
}
.admin-guest-seating-summary-copy>strong{color:#81766d;font-size:.78rem;font-weight:700;line-height:1.35}
.admin-guest-seating-summary-copy>strong.is-assigned{color:#4f7044;border-color:rgba(79,112,68,.16);background:#f3f8f1}
.admin-guest-seating-summary-copy>small{color:#91867d;font-size:.68rem;line-height:1.4}
.admin-guest-seating-summary-copy>small.is-different{color:#8a6847;font-weight:700;border-color:rgba(138,104,71,.18);background:#fbf5ee}
.admin-guest-seating-note{
  grid-area:note;
  margin:0!important;
  color:#9a9088!important;
  font-weight:500!important;
  line-height:1.45;
}
.admin-guest-seating-action{
  grid-area:action;
  justify-self:end;
  align-self:center;
  min-height:42px;
  margin:0!important;
  padding:0 16px;
  white-space:nowrap;
}
.admin-guest-editor-row.is-archived .admin-guest-seating-summary{opacity:.68}

.admin-preview-seating-state.is-assigned{color:#4f7044!important;font-weight:700}
.admin-preview-seating-draft{color:#8a6847!important;font-weight:700}

.seating-visual-seat.is-deep-link-focus{
  animation:seatingDeepLinkPulse 1.2s ease-out 1;
  outline:3px solid rgba(79,112,68,.28);
  outline-offset:5px;
}
.seating-visual-guest.is-deep-link-focus{
  border-color:#78916f!important;
  background:#eef5ea!important;
  box-shadow:0 0 0 4px rgba(79,112,68,.12);
  animation:seatingDeepLinkGuestPulse 1.2s ease-out 1;
}
@keyframes seatingDeepLinkPulse{
  0%{outline-color:rgba(79,112,68,.62);outline-offset:1px}
  100%{outline-color:rgba(79,112,68,.28);outline-offset:5px}
}
@keyframes seatingDeepLinkGuestPulse{
  0%{box-shadow:0 0 0 1px rgba(79,112,68,.45)}
  100%{box-shadow:0 0 0 4px rgba(79,112,68,.12)}
}

@media(max-width:680px){
  .admin-guest-seating-summary{
    grid-template-columns:1fr;
    grid-template-areas:
      "label"
      "summary"
      "note"
      "action";
    align-items:stretch;
    gap:10px;
    padding:14px;
  }
  .admin-guest-seating-summary-copy{gap:8px}
  .admin-guest-seating-summary-copy>strong,
  .admin-guest-seating-summary-copy>small{white-space:normal}
  .admin-guest-seating-action{width:100%;justify-content:center;justify-self:stretch}
}

@media(prefers-reduced-motion:reduce){
  .seating-visual-seat.is-deep-link-focus,
  .seating-visual-guest.is-deep-link-focus{animation:none!important}
}

/* v3.24.0 Table side classification -------------------------------------- */
.seating-table-side-help{display:block;margin-top:4px;color:#948980;font-size:.66rem;font-weight:500;line-height:1.4}
.seating-table-side-select{background:#fff}
.seating-table-side-dot{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;vertical-align:1px;background:#b6ada5;box-shadow:0 0 0 2px rgba(112,72,41,.06)}
.seating-table-side-dot.is-groom{background:var(--admin-groom)}
.seating-table-side-dot.is-bride{background:var(--admin-bride)}
.seating-table-side-dot.is-unassigned{background:#b6ada5}
.seating-table-side-badge{display:inline-flex;align-items:center;min-height:28px;width:max-content;max-width:100%;padding:5px 9px;border-radius:999px;background:#efebe6;color:#6e6259;font-size:.7rem;font-weight:800}
.seating-table-side-badge.is-groom{background:#e9eef0;color:#526772}
.seating-table-side-badge.is-bride{background:#f2e8e9;color:#7d5a60}
.seating-table-side-badge.is-unassigned{background:#eeeae5;color:#756c65}
.seating-table-link{position:relative}
.seating-table-link.is-side-groom{box-shadow:inset 4px 0 0 var(--admin-groom)}
.seating-table-link.is-side-bride{box-shadow:inset 4px 0 0 var(--admin-bride)}
.seating-table-link.is-side-unassigned{box-shadow:inset 4px 0 0 #c9c0b8}
.seating-table-link>span:first-child small{display:flex;align-items:center;min-width:0}
@media(min-width:761px){.seating-table-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}

.seating-visual-stage.is-side-groom .seating-visual-tabletop{
  border-color:#9aadb5;
  background:linear-gradient(145deg,#e8eff1,#d3e0e4);
  color:#526a74;
}
.seating-visual-stage.is-side-groom .seating-visual-tabletop strong{color:#526a74}
.seating-visual-stage.is-side-groom .seating-visual-tabletop small{color:#70848c}
.seating-visual-stage.is-side-bride .seating-visual-tabletop{
  border-color:#b99ba2;
  background:linear-gradient(145deg,#f3e9eb,#e4d3d7);
  color:#845762;
}
.seating-visual-stage.is-side-bride .seating-visual-tabletop strong{color:#845762}
.seating-visual-stage.is-side-bride .seating-visual-tabletop small{color:#9a737c}
.seating-visual-stage.is-side-unassigned .seating-visual-tabletop{
  border-color:#cdb9a6;
  background:linear-gradient(145deg,#eadfd3,#d8c7b7);
  color:#806751;
}
.seating-visual-stage.is-selected.is-side-groom .seating-visual-tabletop{box-shadow:0 0 0 5px rgba(95,119,129,.22),0 14px 32px rgba(55,43,33,.10)}
.seating-visual-stage.is-selected.is-side-bride .seating-visual-tabletop{box-shadow:0 0 0 5px rgba(149,104,115,.22),0 14px 32px rgba(55,43,33,.10)}
.seating-visual-stage.is-selected.is-side-unassigned .seating-visual-tabletop{box-shadow:0 0 0 5px rgba(112,72,41,.15),0 14px 32px rgba(55,43,33,.10)}
.seating-quick-table-option.is-side-groom{border-left:4px solid var(--admin-groom)}
.seating-quick-table-option.is-side-bride{border-left:4px solid var(--admin-bride)}
.seating-quick-table-option.is-side-unassigned{border-left:4px solid #c9c0b8}

/* v3.24.2 Visual Hall side emphasis + selected table + drawer actions ----- */
/* Selected table always uses the planner's green selection state. Table-side
   colors remain useful only while a table is not selected. */
.seating-visual-stage.is-selected .seating-visual-tabletop,
.seating-visual-stage.is-selected.is-side-groom .seating-visual-tabletop,
.seating-visual-stage.is-selected.is-side-bride .seating-visual-tabletop,
.seating-visual-stage.is-selected.is-side-unassigned .seating-visual-tabletop{
  border-color:#78916f!important;
  background:linear-gradient(145deg,#eef5ea,#dfe9d9)!important;
  color:#4f7044!important;
  box-shadow:0 0 0 5px rgba(79,112,68,.18),0 14px 32px rgba(55,43,33,.10)!important;
}
.seating-visual-stage.is-selected .seating-visual-tabletop strong,
.seating-visual-stage.is-selected.is-side-groom .seating-visual-tabletop strong,
.seating-visual-stage.is-selected.is-side-bride .seating-visual-tabletop strong,
.seating-visual-stage.is-selected.is-side-unassigned .seating-visual-tabletop strong{color:#4f7044!important}
.seating-visual-stage.is-selected .seating-visual-tabletop small,
.seating-visual-stage.is-selected.is-side-groom .seating-visual-tabletop small,
.seating-visual-stage.is-selected.is-side-bride .seating-visual-tabletop small,
.seating-visual-stage.is-selected.is-side-unassigned .seating-visual-tabletop small{color:#6f8965!important}

/* Main Guest Side filter is an emphasis filter in Visual Hall: opposite-side
   guests stay available for seating but become visually secondary. */
.seating-visual-invite-group{transition:opacity .16s ease,filter .16s ease}
.seating-visual-invite-group.is-side-muted{opacity:.34;filter:saturate(.58)}
.seating-visual-invite-group.is-side-muted:focus-within{opacity:.56}
.seating-visual-seat.is-side-muted:not(.is-selected){opacity:.32;filter:saturate(.55)}
.seating-visual-seat.is-side-muted:not(.is-selected):hover{opacity:.58}

.seating-visual-guest-meta{
  display:flex!important;
  align-items:center;
  gap:5px;
  min-width:0;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
.seating-visual-guest-code{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.seating-visual-guest-side-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:16px;
  padding:2px 6px;
  border-radius:999px;
  font-size:7px;
  font-weight:850;
  line-height:1;
  letter-spacing:.02em;
}
.seating-visual-guest-side-badge.is-groom{background:#e9eef0;color:#526772}
.seating-visual-guest-side-badge.is-bride{background:#f2e8e9;color:#7d5a60}

/* Keep Clear seat / Done reachable without scrolling the page to the bottom.
   The drawer gets a viewport-bounded desktop inspector and a pinned action bar. */
.seating-visual-drawer-foot{
  position:sticky;
  bottom:0;
  z-index:4;
  flex:0 0 auto;
  box-shadow:0 -10px 24px rgba(55,43,33,.05);
}
@media(min-width:721px){
  .seating-visual-drawer:not([hidden]){
    position:fixed!important;
    top:12px!important;
    right:12px!important;
    bottom:12px!important;
    left:auto!important;
    width:min(410px,calc(100vw - 24px))!important;
    height:auto!important;
    max-height:calc(100dvh - 24px)!important;
    overflow:hidden;
    border:1px solid #e4d9cf;
    border-radius:16px;
    box-shadow:-20px 0 52px rgba(49,38,30,.16);
  }
}

/* v3.24.3 Seat invitation context + canvas-only side emphasis ------------ */
/* Guest Side filtering is strict in the grouped unassigned Guest List and
   seat Drawer. Only occupied seats on the hall canvas use the dimmed opposite
   side treatment so cross-side seating remains visible without list clutter. */
.seating-visual-invite-group.is-side-muted{opacity:1;filter:none}
.seating-visual-seat.is-side-muted:not(.is-selected){opacity:.32;filter:saturate(.55)}
.seating-visual-seat.is-side-muted:not(.is-selected):hover{opacity:.58}

.seating-visual-current{padding:10px 0 12px}
.seating-visual-current-label{display:block;color:#9b8e84;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.seating-visual-current-row{display:flex;align-items:center;gap:7px;min-width:0;margin-top:3px}
.seating-visual-current-row>strong{min-width:0;margin:0;overflow:hidden;color:#654f40;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.seating-visual-current-row .seating-visual-guest-side-badge{display:inline-flex;color:inherit;font-size:7px;font-weight:850;letter-spacing:.02em;text-transform:none}
.seating-visual-current-invite{display:flex;align-items:center;gap:7px;min-width:0;margin-top:9px;padding-top:8px;border-top:1px solid #eee7e0}
.seating-visual-current-invite>span{flex:0 0 auto;color:#9b8e84;font-size:8px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.seating-visual-current-invite>strong{min-width:0;margin:0;overflow:hidden;color:#715c4c;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.seating-visual-current-invite>small{flex:0 0 auto;margin-left:auto;color:#94887e;font-size:8px;font-weight:700;white-space:nowrap}
.seating-visual-current-members{margin-top:5px;border-top:1px solid #f2ece6}
.seating-visual-current-member,.seating-visual-hover-member{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:6px 0;border-bottom:1px solid #f4eee8}
.seating-visual-current-member:last-child,.seating-visual-hover-member:last-child{border-bottom:0}
.seating-visual-current-member>span,.seating-visual-hover-member>span{display:flex;align-items:center;gap:5px;min-width:0;color:inherit;font-size:inherit;font-weight:400;letter-spacing:normal;text-transform:none}
.seating-visual-current-member>span>strong,.seating-visual-hover-member>span>strong{min-width:0;margin:0;overflow:hidden;color:#6c594b;font-size:9px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.seating-visual-current-member>small,.seating-visual-hover-member>small{flex:0 0 auto;color:#7e7168;font-size:8px;font-weight:700;white-space:nowrap}
.seating-visual-current-member>small.is-unassigned,.seating-visual-hover-member>small.is-unassigned{color:#a09186;font-weight:600}
.seating-visual-current-member>small.is-current,.seating-visual-hover-member>small.is-current{color:#4f7044}
.seating-visual-current-member.is-current{background:linear-gradient(90deg,rgba(238,245,234,.78),rgba(238,245,234,0));box-shadow:-6px 0 0 rgba(238,245,234,.78)}
.seating-visual-primary-badge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:14px;padding:2px 5px;border-radius:999px;background:#f0ece7;color:#7f7065;font-size:6px;font-style:normal;font-weight:850;line-height:1;text-transform:uppercase}

.seating-visual-seat-hover-card{position:fixed;z-index:1200;width:min(292px,calc(100vw - 24px));padding:10px 12px;border:1px solid #e3d9d0;border-radius:12px;background:rgba(255,255,255,.98);box-shadow:0 14px 36px rgba(47,37,29,.18);pointer-events:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.seating-visual-seat-hover-card[hidden]{display:none!important}
.seating-visual-hover-head{display:flex;align-items:center;gap:7px;min-width:0}
.seating-visual-hover-head>strong{min-width:0;overflow:hidden;color:#604b3d;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.seating-visual-hover-invite{display:flex;align-items:center;gap:6px;min-width:0;margin-top:7px;padding:6px 0;border-top:1px solid #eee7e0;border-bottom:1px solid #eee7e0}
.seating-visual-hover-invite>span{flex:0 0 auto;color:#9b8e84;font-size:7px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.seating-visual-hover-invite>strong{min-width:0;overflow:hidden;color:#725d4d;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.seating-visual-hover-invite>small{flex:0 0 auto;margin-left:auto;color:#94887e;font-size:7px;font-weight:700;white-space:nowrap}
.seating-visual-hover-members{padding-top:2px}
.seating-visual-hover-member{padding:5px 0}
.seating-visual-hover-member>span>strong{font-size:8px}
.seating-visual-hover-member>small{font-size:7px}

@media(hover:none),(pointer:coarse){.seating-visual-seat-hover-card{display:none!important}}


/* v3.24.4 Consistent modal/sheet actions + clearer table capacity ---------- */
.button:disabled{
  opacity:.42;
  cursor:not-allowed;
  transform:none!important;
  box-shadow:none!important;
}
.button:disabled:hover{transform:none!important;box-shadow:none!important}

/* Admin dialogs keep context and actions visible while only their content
   scrolls. The close control lives in the header, so footers contain actions
   only and never duplicate Close/Cancel. */
.admin-modal-head{
  position:sticky;
  top:0;
  z-index:8;
  flex:0 0 auto;
  background:#fffdf9;
}
.admin-modal-head-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.admin-modal-head-tools .admin-modal-close{position:static;flex:0 0 auto}
.admin-modal-footer{
  position:sticky;
  bottom:0;
  z-index:8;
  flex:0 0 auto;
  background:#fffdf9;
  box-shadow:0 -12px 28px rgba(55,43,33,.06);
}

/* Visual Hall form dialogs use the same fixed-header / fixed-action model. */
.seating-visual-add-panel{display:flex;flex-direction:column;overflow:auto}
.seating-visual-add-head{
  position:sticky;
  top:0;
  z-index:6;
  flex:0 0 auto;
  background:#fff;
}
.seating-visual-add-form{min-height:0}
.seating-visual-add-actions{
  position:sticky;
  bottom:0;
  z-index:6;
  margin-top:8px;
  padding:12px 0 0;
  border-top:1px solid #eee6de;
  background:#fff;
  box-shadow:0 -10px 24px rgba(55,43,33,.04);
}
.seating-visual-drawer-head{flex:0 0 auto;background:#fff}
.seating-visual-drawer-foot{justify-content:flex-end}
.seating-quick-assign-head,.seating-quick-assign-footer{flex:0 0 auto}

/* List view capacity hierarchy. */
.seating-table-link{align-items:flex-start}
.seating-table-link-copy{display:grid;gap:4px;min-width:0}
.seating-table-link-copy>strong{font-size:.96rem;line-height:1.2;color:#604d40}
.seating-table-link-stats{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:2px}
.seating-table-link-stats b{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 7px;
  border-radius:999px;
  background:#f3efe9;
  color:#71665d;
  font-size:.62rem;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}
.seating-table-link-stats b.is-extra{background:#eee7df;color:#745b48}
.seating-table-link-stats b.is-muted{background:#f5f2ee;color:#9b9189;font-weight:700}
.seating-table-editor-head h2{font-size:clamp(1.8rem,3vw,2.45rem)}
.seating-table-summary>div{gap:5px;padding:15px 16px}
.seating-table-summary>div>span{font-size:.62rem}
.seating-table-summary>div>strong{font-size:.94rem}
.seating-table-summary>div>small{color:#978b81;font-size:.66rem;line-height:1.35}

/* Hall tables expose the same capacity state without turning the canvas into
   a dashboard. */
.seating-visual-tabletop{align-content:center;gap:3px}
.seating-visual-tabletop .seating-visual-table-name{
  font-size: 46px;
  font-weight:500;
  line-height:1.12;
}
.seating-visual-table-capacity{
  position:relative;
  z-index:1;
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:5px;
  min-width:0;
  white-space:nowrap;
}
.seating-visual-table-capacity b{font-size:8px;font-weight:850;line-height:1;color:inherit}
.seating-visual-table-capacity em{font-size:7px;font-style:normal;font-weight:800;line-height:1;color:inherit;opacity:.78}
.seating-visual-table-meta{
  display:flex!important;
  align-items:center;
  justify-content:center;
  gap:4px;
  max-width:94%;
  margin-top:1px!important;
  font-size:6px!important;
  letter-spacing:.035em!important;
  line-height:1.2;
  text-transform:none!important;
  white-space:nowrap;
}
.seating-visual-table-meta>span{display:inline-flex;align-items:center;min-width:0}
.seating-visual-table-side-label::before{content:"\00B7";margin-right:4px;opacity:.55}
.seating-visual-table-meta .is-extra::before,.seating-visual-table-meta .is-muted::before{content:"\00B7";margin-right:4px;opacity:.55}
.seating-visual-table-meta .is-muted{opacity:.72}

/* The List-view guest picker is also a mobile sheet: its header and search
   stay available while only the grouped results scroll. */
.seating-picker-head{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 12px 10px;
  border-bottom:1px solid #ebe5de;
  background:#fff;
}
.seating-picker-head>div{display:grid;gap:2px;min-width:0}
.seating-picker-head .eyebrow{color:#9a8e85;font-size:.6rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.seating-picker-head strong{overflow:hidden;color:#704829;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}
.seating-picker-close{position:static!important;flex:0 0 auto;width:36px;height:36px}
.seating-picker-search-wrap{flex:0 0 auto;top:auto}

/* QR scanner follows the same sheet anatomy. */
.security-scanner-sheet{display:flex;flex-direction:column;overflow:hidden}
.security-scanner-head{flex:0 0 auto;margin:0;padding:0 0 14px}
.security-scanner-body{min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:0 2px 14px}
.security-scanner-tools{
  flex:0 0 auto;
  margin:0 -18px -22px;
  padding:13px 18px max(16px,env(safe-area-inset-bottom));
  border-top:1px solid rgba(112,72,41,.13);
  background:#f7f1e9;
  box-shadow:0 -10px 24px rgba(55,43,33,.05);
}
.security-scanner-tools:empty{display:none}

/* Digital Pass install guide keeps the single existing Close/Got it action;
   no duplicate header Close is introduced. */
.web-pass-install-sheet{display:flex;flex-direction:column;max-height:min(88dvh,760px);overflow:hidden;padding:0}
.web-pass-install-head{flex:0 0 auto;padding:14px 24px 0;background:#f7f1e9}
.web-pass-install-body{min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:0 24px 8px}
.web-pass-install-actions{flex:0 0 auto;padding:12px 24px max(24px,env(safe-area-inset-bottom));border-top:1px solid rgba(112,72,41,.12);background:#f7f1e9;box-shadow:0 -10px 24px rgba(55,43,33,.04)}
.web-pass-install-actions .web-pass-guide-close{margin:0}

@media(max-width:720px){
  .admin-modal-panel{
    height:min(88dvh,820px)!important;
    max-height:calc(100dvh - 8px)!important;
    padding:14px 14px calc(10px + env(safe-area-inset-bottom,0px))!important;
    overflow:auto!important;
  }
  .admin-modal-head{
    margin:0 -2px;
    padding:2px 2px 13px!important;
    align-items:flex-start;
    flex-direction:row;
    gap:12px;
    border-bottom:1px solid #ebe7e1;
  }
  .admin-modal-head>div:first-child{min-width:0}
  .admin-modal-head h2{font-size:1.55rem}
  .admin-modal-head-tools{flex:0 0 auto}
  .admin-modal-footer{
    margin:18px -14px calc(-10px - env(safe-area-inset-bottom,0px));
    padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));
  }
  .admin-modal-footer-actions{display:flex;flex-direction:row;width:100%}
  .admin-modal-footer-actions .button{width:100%;min-height:44px;justify-content:center}

  .seating-visual-add-panel{
    height:min(88dvh,820px)!important;
    max-height:calc(100dvh - 8px)!important;
    padding:14px 14px calc(10px + env(safe-area-inset-bottom,0px))!important;
  }
  .seating-visual-add-head{padding:2px 44px 13px 2px;border-bottom:1px solid #ebe7e1}
  .seating-visual-add-form{margin-top:12px}
  .seating-visual-add-actions{
    display:flex;
    justify-content:stretch;
    margin:8px -14px calc(-10px - env(safe-area-inset-bottom,0px));
    padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));
  }
  .seating-visual-add-actions .button{width:100%;min-height:44px;justify-content:center}

  .seating-visual-drawer{height:min(82dvh,720px)!important}
  .seating-visual-drawer-head{position:relative;z-index:5}
  .seating-visual-drawer-foot{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}
  .seating-visual-drawer-foot .button{width:100%;min-height:44px;justify-content:center}

  .seating-quick-assign-panel{height:min(88dvh,820px)!important}
  .seating-quick-assign-footer .button{width:100%}

  .seating-guest-picker-panel{border-radius:20px 20px 0 0}
  .seating-picker-head{padding:10px 14px}
  .seating-picker-search-wrap{padding:10px 14px}

  .security-scanner-sheet{height:min(88dvh,820px)!important;max-height:calc(100dvh - 8px)!important}
  .security-scanner-head{padding-bottom:12px}

  .web-pass-install-guide{padding:0}
  .web-pass-install-sheet{width:100%;max-height:88dvh;border-radius:24px 24px 0 0}
  .web-pass-install-head{padding:10px 18px 0}
  .web-pass-install-body{padding:0 18px 8px}
  .web-pass-install-actions{padding:12px 18px max(16px,env(safe-area-inset-bottom))}

  .seating-table-link-copy>strong{font-size:1.02rem}
  .seating-table-link-stats{gap:4px}
  .seating-table-link-stats b{font-size:.61rem;padding:4px 6px}
  .seating-table-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .seating-table-summary>div{padding:13px 12px}
  .seating-table-summary>div>strong{font-size:.9rem}
}
@supports selector(:has(*)){
  .security-scanner-tools:not(:has(button:not([hidden]))){display:none}
}
.sms-import-preview-modal-body .sms-import-confirm{
  position:sticky;
  bottom:0;
  z-index:8;
  margin:18px -34px -34px;
  padding:14px 34px 34px;
  border-top:1px solid #ebe7e1;
  background:#fffdf9;
  box-shadow:0 -12px 28px rgba(55,43,33,.06);
}
@media(max-width:720px){
  .sms-import-preview-modal-body .sms-import-confirm{
    margin:18px -14px calc(-10px - env(safe-area-inset-bottom,0px));
    padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));
  }
}

/* v3.24.4 final structural modal/sheet scrolling --------------------------
   Headers and action bars are flex items; only the middle content scrolls. */
.admin-modal-panel{
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.admin-modal-head{
  position:relative;
  top:auto;
  z-index:2;
  flex:0 0 auto;
}
.admin-modal-form{
  display:flex;
  flex:1 1 auto;
  min-height:0;
  flex-direction:column;
  overflow:hidden;
}
.admin-modal-scroll-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-right:3px;
}
.admin-modal-footer{
  position:relative;
  bottom:auto;
  z-index:2;
  flex:0 0 auto;
}
.sms-import-confirm{margin-top:0}

.seating-visual-add-panel{overflow:hidden}
.seating-visual-add-head{
  position:relative;
  top:auto;
  z-index:2;
  flex:0 0 auto;
}
.seating-visual-add-form{
  display:flex;
  flex:1 1 auto;
  min-height:0;
  flex-direction:column;
  gap:0;
  overflow:hidden;
  margin-top:0;
}
.seating-visual-add-body{
  display:grid;
  flex:1 1 auto;
  min-height:0;
  gap:12px;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-top:18px;
}
.seating-visual-add-body>p{
  margin:0;
  padding:10px 12px;
  border-radius:10px;
  background:#faf7f3;
  color:#8d7e72;
  font-size:9px;
}
.seating-visual-add-actions{
  position:relative;
  bottom:auto;
  z-index:2;
  flex:0 0 auto;
}

@media(max-width:720px){
  .admin-modal-panel{
    overflow:hidden!important;
  }
  .admin-modal-scroll-body{
    padding-right:1px;
  }
  .admin-modal-footer{
    margin-top:0;
  }
  .seating-visual-add-panel{
    overflow:hidden!important;
  }
  .seating-visual-add-form{
    margin-top:0;
  }
  .seating-visual-add-body{
    padding-top:12px;
  }
  .seating-visual-add-actions{
    margin-top:8px;
  }
}

/* Close is part of the Admin modal header now; reclaim the old absolute-close
   reserve without changing the existing vertical rhythm. */
.admin-modal-head{padding-right:0}
.admin-modal-footer{margin-top:0}

/* v3.24.6 Hall Guest Locator + non-obscuring desktop seat drawer ---------- */
.seating-visual-hall-locator{position:relative;z-index:25;display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;min-width:0;padding:10px 16px;border-bottom:1px solid #eee7e0;background:#fefcf9}
.seating-visual-hall-search{position:relative;flex:0 1 370px;min-width:220px;max-width:100%}
.seating-visual-hall-search-field{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:0 9px 0 13px;border:1px solid #ded5cb;border-radius:12px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.seating-visual-hall-search-field:focus-within{border-color:#77996d;box-shadow:0 0 0 3px rgba(79,112,68,.13)}
.seating-visual-hall-search-field svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:#8a7a70;stroke-width:1.8;stroke-linecap:round}
.seating-visual-hall-search-field input{width:100%;min-width:0;min-height:42px;padding:0;border:0;outline:none;background:transparent;color:#5e4c3e;font-size:14px}
.seating-visual-hall-search-field input::placeholder{color:#a3958a}
.seating-visual-hall-search-field input::-webkit-search-cancel-button{-webkit-appearance:none}
.seating-visual-hall-search-clear{width:44px;height:44px;flex:0 0 44px;padding:0;border:0;border-radius:8px;background:#f2eee8;color:#78685d;font-size:21px;line-height:1;cursor:pointer}
.seating-visual-hall-search-clear:hover{background:#e9e0d6}
.seating-visual-hall-search-clear:focus-visible,.seating-visual-hall-search-result:focus-visible{outline:2px solid #4f7044;outline-offset:2px}
.seating-visual-hall-search-clear[hidden],.seating-visual-hall-search-results[hidden],.seating-visual-hall-locator-summary[hidden]{display:none!important}
.seating-visual-hall-search-results{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 6px);max-height:min(340px,55dvh);overflow:auto;padding:5px;border:1px solid #e3d9ce;border-radius:12px;background:#fff;box-shadow:0 18px 38px rgba(52,41,31,.18);overscroll-behavior:contain}
.seating-visual-hall-search-result{display:grid;gap:4px;width:100%;min-height:48px;padding:9px 11px;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer}
.seating-visual-hall-search-result>strong{overflow:hidden;color:#654f40;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.seating-visual-hall-search-result>small{overflow:hidden;color:#928276;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.seating-visual-hall-search-result:hover,.seating-visual-hall-search-result.is-active{background:#eef5ea}
.seating-visual-hall-search-empty{padding:13px 11px;color:#897d72;font-size:11px}
.seating-visual-hall-locator-summary{display:flex;flex:1 1 270px;align-items:baseline;flex-wrap:wrap;gap:5px 9px;min-width:0;color:#4f7044;font-size:11px}
.seating-visual-hall-locator-summary:before{content:"";width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#4f7044;box-shadow:0 0 0 3px rgba(79,112,68,.12)}
.seating-visual-hall-locator-summary strong{font-size:11px}
.seating-visual-hall-locator-summary span{color:#7c7b6f;font-size:10px;line-height:1.4}
/* Located invitation members retain green emphasis even when Guest Side is muted. */
.seating-visual-seat.is-locator-group{opacity:1!important;filter:none!important;border-color:#6d9962!important;background:#e8f5e3!important;box-shadow:0 0 0 5px rgba(79,112,68,.25),0 7px 16px rgba(45,76,40,.18)!important}
.seating-visual-seat.is-locator-group strong,.seating-visual-seat.is-locator-group small{color:#385c30!important}
.seating-visual-seat.is-locator-primary{opacity:1!important;filter:none!important;border-color:#2d5626!important;background:#4f7044!important;box-shadow:0 0 0 6px rgba(79,112,68,.28),0 9px 22px rgba(45,76,40,.32)!important}
.seating-visual-seat.is-locator-primary strong,.seating-visual-seat.is-locator-primary small{color:#fff!important}
/* The active assignment seat remains distinctly selected without cancelling the locator. */
.seating-visual-seat.is-selected.is-locator-group{outline:2px solid #31582e;outline-offset:5px}
@media(max-width:720px){
  .seating-visual-hall-locator{display:grid;gap:8px;padding:10px}
  .seating-visual-hall-search{width:100%;min-width:0;max-width:none}
  .seating-visual-hall-search-field input{font-size:16px}
  .seating-visual-hall-search-results{max-height:min(300px,52dvh)}
  .seating-visual-hall-locator-summary{padding:2px 2px 0}
}
@media(prefers-reduced-motion:reduce){.seating-visual-hall-search-field{transition:none}}


/* v3.24.7 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â Hall Search occupies the header title slot; no extra toolbar row. */
.seating-visual-head{position:relative;z-index:27;gap:12px;flex-wrap:wrap;padding:11px 14px}
.seating-visual-head-copy{flex:1 1 240px;min-width:210px;max-width:420px}
.seating-visual-head-copy .seating-visual-hall-locator{position:relative;z-index:3;display:block;min-width:0;padding:0;border:0;background:transparent}
.seating-visual-head-copy .seating-visual-hall-search{width:100%;min-width:0;max-width:none;flex:auto}
.seating-visual-head-copy .seating-visual-hall-search-field{min-height:42px;border-color:#d9cfc3;border-radius:11px;background:#fdfbf8}
.seating-visual-head-copy .seating-visual-hall-search-field input{min-height:40px;font-size:14px}
.seating-visual-head-copy .seating-visual-hall-locator-summary{margin-top:4px;flex-wrap:nowrap;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px}
.seating-visual-head-copy .seating-visual-hall-locator-summary>*{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seating-visual-head-actions{flex:0 0 auto;min-width:0;flex-wrap:nowrap}
.seating-visual-hall-search-identity{display:flex;align-items:center;gap:7px;min-width:0}
.seating-visual-hall-search-identity>strong{min-width:0;overflow:hidden;color:#654f40;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.seating-visual-hall-search-identity .seating-visual-guest-side-badge{flex:0 0 auto;font-size:9px}
/* Typed query previews match locations without interfering with seat clicks.
   Explicit choice still highlights the entire invitation in green. */
.seating-visual-seat.is-hall-search-muted.is-occupied:not(.is-selected){opacity:.37;filter:saturate(.6)}
.seating-visual-seat.is-hall-search-match.is-occupied{opacity:1;filter:none;border-color:#75a16d;box-shadow:0 0 0 4px rgba(79,112,68,.18)}
@media(min-width:721px) and (max-width:1060px){
  .seating-visual-head-copy{flex:1 1 100%;max-width:none}
  .seating-visual-head-actions{margin-left:auto}
}
@media(max-width:720px){
  .seating-visual-head{gap:8px;padding:10px}
  .seating-visual-head-copy{flex:1 1 100%;width:100%;min-width:0;max-width:none}
  .seating-visual-head-actions{width:100%;gap:7px}
  .seating-visual-head-copy .seating-visual-hall-search-field{min-height:44px}
  .seating-visual-head-copy .seating-visual-hall-search-field input{min-height:42px;font-size:16px}
  .seating-visual-head-copy .seating-visual-hall-locator-summary{margin-top:3px;font-size:10px}
  .seating-visual-primary-actions{gap:6px}
  .seating-visual-zoom-actions{gap:7px}
}
@media(prefers-reduced-motion:reduce){
  .seating-visual-seat.is-deep-link-focus{animation:none!important}
}


/* v3.24.8: stable Hall Search clear affordance and canvas-only touch gestures. */
.seating-visual-head-copy .seating-visual-hall-search-field{min-height:44px;gap:7px;padding-right:2px}
.seating-visual-hall-search-clear{
  position:relative;isolation:isolate;display:grid;place-items:center;
  width:44px;height:44px;min-width:44px;min-height:44px;flex:0 0 44px;
  border:0;background:transparent;border-radius:10px;
  font-size:17px;font-weight:400;line-height:1;color:#6e6258;
}
.seating-visual-hall-search-clear::before{
  content:"";position:absolute;inset:8px;border-radius:7px;background:#f1ece5;
  z-index:-1;transition:background .15s ease;
}
.seating-visual-hall-search-clear:hover{background:transparent}
.seating-visual-hall-search-clear:hover::before{background:#e6ddd1}
/* Keep the 44px touch hit area and its width even when Clear is hidden.
   The visible button face is only 28px; the input can never jump or resize. */
.seating-visual-hall-search-clear[hidden]{display:grid!important;visibility:hidden!important;pointer-events:none!important}
.seating-visual-viewport{overscroll-behavior:contain}
@media(prefers-reduced-motion:reduce){.seating-visual-hall-search-clear::before{transition:none}}

/* v3.24.9 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â Fullscreen Hall: keep every control inside the mobile viewport.
   The old mobile column + inherited flex-wrap placed toolbar actions offscreen
   when the fixed-height fullscreen container constrained the header. */
@media (max-width:720px){
  .seating-visual-shell:fullscreen,
  .seating-visual-shell.is-fallback-fullscreen{
    width:100%;max-width:none;height:100dvh;min-height:0;margin:0;
    box-sizing:border-box;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .seating-visual-shell:fullscreen .seating-visual-head,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-head{
    flex:0 0 auto;flex-direction:column;flex-wrap:nowrap;
    align-items:stretch;width:100%;gap:7px;padding:8px 10px;
  }
  .seating-visual-shell:fullscreen .seating-visual-head-copy,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-head-copy{
    flex:0 0 auto;width:100%;max-width:none;min-width:0;
  }
  .seating-visual-shell:fullscreen .seating-visual-head-actions,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-head-actions{
    flex:0 0 auto;width:100%;min-width:0;margin:0;
  }
  .seating-visual-shell:fullscreen .seating-visual-workspace,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-workspace{
    flex:1 1 0%;min-height:0;overflow:hidden;
  }
  .seating-visual-shell:fullscreen .seating-visual-canvas-column,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-canvas-column{
    min-height:0;overflow:hidden;
  }
  .seating-visual-shell:fullscreen .seating-visual-viewport,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-viewport{
    flex:1 1 auto;min-height:0;height:100%;
  }
  .seating-visual-shell:fullscreen .seating-visual-table-controls:not([hidden]),
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-table-controls:not([hidden]){
    flex:0 0 auto;max-height:min(33dvh,180px);overflow-y:auto;
  }
}
/* Landscape phones: use a single compact control row, leaving room for Hall. */
@media (orientation:landscape) and (pointer:coarse) and (max-height:520px){
  .seating-visual-shell:fullscreen,
  .seating-visual-shell.is-fallback-fullscreen{
    width:100%;max-width:none;height:100dvh;min-height:0;margin:0;
    box-sizing:border-box;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .seating-visual-shell:fullscreen .seating-visual-head,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-head{
    flex:0 0 auto;flex-flow:row nowrap;align-items:center;gap:8px;padding:6px 10px;
  }
  .seating-visual-shell:fullscreen .seating-visual-head-copy,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-head-copy{
    flex:1 1 180px;width:auto;min-width:145px;max-width:none;
  }
  .seating-visual-shell:fullscreen .seating-visual-head-actions,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-head-actions{
    flex:0 0 auto;width:auto;min-width:0;flex-flow:row nowrap;margin:0;gap:5px;
  }
  .seating-visual-shell:fullscreen .seating-visual-primary-actions,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-primary-actions{
    display:flex;width:auto;gap:5px;
  }
  .seating-visual-shell:fullscreen .seating-visual-head-tool,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-head-tool{
    width:40px;min-width:40px;height:40px;min-height:40px;padding:0;gap:0;
  }
  .seating-visual-shell:fullscreen .seating-visual-head-tool-label,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-head-tool-label{display:none!important}
  .seating-visual-shell:fullscreen .seating-visual-zoom-actions,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-zoom-actions{
    display:flex;width:auto;gap:5px;
  }
  .seating-visual-shell:fullscreen .seating-visual-zoom-actions>.admin-icon-button,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-zoom-actions>.admin-icon-button{
    width:40px;min-width:40px;height:40px;min-height:40px;
  }
  .seating-visual-shell:fullscreen .seating-visual-zoom-actions .seating-visual-zoom-input,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-zoom-actions .seating-visual-zoom-input{
    width:66px;height:40px;min-width:66px;
  }
  .seating-visual-shell:fullscreen .seating-visual-workspace,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-workspace{
    flex:1 1 0%;min-height:0;overflow:hidden;
  }
}
html.seating-visual-fallback-scroll-lock,
body.seating-visual-fallback-scroll-lock{overflow:hidden!important}


/* v3.24.10: side-color each occupied CHAIR by the seated invitation, never by
   the table classification. Neutral empty chairs, mixed tables, and physical
   Extra Slots keep their normal behavior. Locator green remains a temporary
   stronger state; selecting a chair uses a green ring without hiding its side. */
.seating-visual-seat.is-occupied.is-guest-groom:not(.is-locator-group):not(.is-drop-target){
  border-color:#9aadb5!important;background:#e8eff1!important;color:#526a74!important;
}
.seating-visual-seat.is-occupied.is-guest-bride:not(.is-locator-group):not(.is-drop-target){
  border-color:#b99ba2!important;background:#f3e9eb!important;color:#845762!important;
}
.seating-visual-seat.is-occupied.is-guest-groom:not(.is-locator-group):not(.is-drop-target) strong,
.seating-visual-seat.is-occupied.is-guest-groom:not(.is-locator-group):not(.is-drop-target) small{color:#526a74!important}
.seating-visual-seat.is-occupied.is-guest-bride:not(.is-locator-group):not(.is-drop-target) strong,
.seating-visual-seat.is-occupied.is-guest-bride:not(.is-locator-group):not(.is-drop-target) small{color:#845762!important}
.seating-visual-seat.is-occupied.is-selected:not(.is-locator-group){
  box-shadow:0 0 0 4px rgba(79,112,68,.53),0 8px 18px rgba(55,43,33,.12)!important;
}
/* Keep user-visible action errors inside Edit Table rather than under its
   z-index:80 overlay. The message persists until edited or dismissed. */
.seating-visual-edit-feedback[hidden],.seating-visual-edit-capacity-notice[hidden]{display:none!important}
.seating-visual-edit-feedback{
  flex:0 0 auto;margin:10px 0 0;padding:12px 13px;max-height:110px;overflow:auto;
  border:1px solid #d8aaa5;border-radius:10px;background:#fff0ed;color:#853e39;
  font-size:12px;font-weight:650;line-height:1.5;overflow-wrap:anywhere;
}
.seating-visual-edit-capacity-notice{
  margin:0;padding:11px 12px;border:1px solid #e2c99d;border-radius:10px;
  background:#fff9ec;color:#775629;font-size:11px;line-height:1.5;overflow-wrap:anywhere;
}

/* v3.24.11 Smart Draft Seat Remapping: explicit inline preview in Edit Table. */
.seating-visual-remap-panel[hidden],.seating-visual-remap-results[hidden],.seating-visual-remap-warning[hidden]{display:none!important}
.seating-visual-remap-panel{display:grid;gap:11px;min-width:0;padding:14px;border:1px solid #d8e2d4;border-radius:13px;background:#f8faf7;color:#45594a}
.seating-visual-remap-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.seating-visual-remap-heading strong{font-size:13px;font-weight:750;color:#405747}
.seating-visual-remap-heading span{font-size:10px;letter-spacing:.02em;color:#68816e}
.seating-visual-remap-panel p{margin:0;font-size:12px;line-height:1.55}
.seating-visual-remap-preview-button{width:100%;min-height:44px;border:1px solid #91a491!important;background:#fff!important;color:#365c40!important;font-size:13px!important}
.seating-visual-remap-preview-button:focus-visible{outline:3px solid rgba(79,112,68,.35);outline-offset:2px}
.seating-visual-remap-preview-button:disabled{opacity:.55;cursor:wait}
.seating-visual-remap-results{display:grid;gap:9px;padding-top:10px;border-top:1px solid #dce5d7}
.seating-visual-remap-summary{font-weight:700;color:#365641}
.seating-visual-remap-warning{color:#815b32}
.seating-visual-remap-moves{display:grid;gap:0;list-style:none;margin:0;padding:0;max-height:200px;overflow:auto;overscroll-behavior:contain}
.seating-visual-remap-moves li{display:flex;justify-content:space-between;align-items:start;gap:10px;padding:8px 0;border-top:1px solid rgba(107,140,113,.16);font-size:11px;line-height:1.45}
.seating-visual-remap-moves li strong{flex:1;min-width:0;font-weight:650;overflow-wrap:anywhere}
.seating-visual-remap-moves li span{flex:0 0 auto;white-space:nowrap;font-variant-numeric:tabular-nums;color:#586e5a}
@media(max-width:720px){.seating-visual-remap-panel{padding:11px;gap:9px}.seating-visual-remap-moves{max-height:145px}.seating-visual-edit-feedback{max-height:88px}}

/* v3.24.12: one Edit Table primary CTA -> read-only visual Before/After
   review -> explicit confirmation. No second preview action in edit form. */
.seating-visual-remap-review[hidden],
.seating-visual-remap-review-feedback[hidden],
.seating-visual-remap-warning[hidden]{display:none!important}
.seating-visual-remap-review{position:absolute;inset:0;z-index:94;display:grid;place-items:center;padding:16px;isolation:isolate}
.seating-visual-remap-review-backdrop{position:absolute;inset:0;border:0;background:rgba(36,33,29,.58);cursor:default}
.seating-visual-remap-review-dialog{position:relative;z-index:1;display:flex;flex-direction:column;min-height:0;max-height:calc(100% - 10px);width:min(1010px,100%);border:1px solid #d9d2c8;border-radius:18px;background:#fff;box-shadow:0 24px 80px rgba(39,35,28,.27);overflow:hidden}
.seating-visual-remap-review-head{position:relative;flex:0 0 auto;padding:22px 66px 17px 24px;border-bottom:1px solid #ede9e2}
.seating-visual-remap-review-head h2{margin:3px 0 5px;font:normal 27px/1.2 Georgia,"Times New Roman",serif;color:#604a39}
.seating-visual-remap-review-head p{margin:0;max-width:660px;color:#81796e;font-size:12px;line-height:1.5}
.seating-visual-remap-review-head .admin-modal-close{position:absolute;top:19px;right:20px}
.seating-visual-remap-review-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:17px 24px 20px;display:grid;align-content:start;gap:14px}
.seating-visual-remap-review-body>.seating-visual-remap-summary{margin:0;font-size:12px;color:#46604c;line-height:1.5}
.seating-visual-remap-comparison{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;min-width:0}
.seating-visual-remap-pane{min-width:0;border:1px solid #e2ddd5;border-radius:12px;padding:12px;background:#fbfaf8}
.seating-visual-remap-pane.is-after{border-color:#abc5ae;background:#f8fbf8}
.seating-visual-remap-pane-title{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:11px;font-size:11px}
.seating-visual-remap-pane-title strong{color:#524e46;font-size:13px}
.seating-visual-remap-pane-title span{color:#817a72}
.seating-visual-remap-diagram{min-width:0;overflow-x:auto;overflow-y:hidden;border:1px solid #eee9e2;border-radius:10px;background:linear-gradient(#f7f5f1,#f4f0eb);padding:7px;overscroll-behavior-x:contain}
.seating-visual-remap-map{display:block;width:100%;height:auto;min-width:440px;overflow:visible}
.seating-visual-remap-tabletop{fill:#e9dfd4;stroke:#cbb9a9;stroke-width:1.6}
.seating-visual-remap-tabletop.is-groom{fill:#e4ecef;stroke:#a3b4bc}
.seating-visual-remap-tabletop.is-bride{fill:#f0e2e6;stroke:#c3a8b0}
.seating-visual-remap-table-title{font:normal 20px Georgia,"Times New Roman",serif;fill:#786653}
.seating-visual-remap-table-subtitle{font:700 12px Arial,sans-serif;fill:#988778}
.seating-visual-remap-chair{cursor:pointer;outline:none}
.seating-visual-remap-chair rect{fill:#fff;stroke:#cbc5bd;stroke-width:1.5;stroke-dasharray:3 2}
.seating-visual-remap-chair.is-groom rect{fill:#e8eff1;stroke:#9aadb5;stroke-dasharray:none}
.seating-visual-remap-chair.is-bride rect{fill:#f3e9eb;stroke:#b99ba2;stroke-dasharray:none}
.seating-visual-remap-chair.is-unassigned rect{fill:#f8f1e8;stroke:#bfae97;stroke-dasharray:none}
.seating-visual-remap-chair.is-extra rect{stroke-width:3}
.seating-visual-remap-chair.is-fixed-extra rect{stroke:#607d65;stroke-width:3.5}
.seating-visual-remap-chair:focus-visible rect{stroke:#315b34;stroke-width:4}
.seating-visual-remap-chair text{pointer-events:none;user-select:none;-webkit-user-select:none;font-family:Arial,sans-serif;fill:#776958}
.seating-visual-remap-chair.is-groom text{fill:#526a74}
.seating-visual-remap-chair.is-bride text{fill:#845762}
.seating-visual-remap-chair-name{font-size:8px;font-weight:700}
.seating-visual-remap-chair-number{font-size:7px}
.seating-visual-remap-chair-empty{font-size:17px;font-weight:400}
.seating-visual-remap-legend{display:flex;gap:10px 16px;flex-wrap:wrap;font-size:11px;color:#716f68}
.seating-visual-remap-legend span{display:inline-flex;align-items:center;gap:6px}
.seating-visual-remap-legend span::before{content:"";width:12px;height:12px;flex:0 0 auto;border:1px solid #c2b8ad;border-radius:4px;background:#fff}
.seating-visual-remap-legend .is-groom::before{background:#e8eff1;border-color:#9aadb5}
.seating-visual-remap-legend .is-bride::before{background:#f3e9eb;border-color:#b99ba2}
.seating-visual-remap-legend .is-empty::before{border-style:dashed}
.seating-visual-remap-legend .is-extra::before{background:#f8f1e8;border:2px solid #607d65}
.seating-visual-remap-seat-detail{margin:0;padding:10px 12px;min-height:43px;border-radius:9px;background:#f6f7f3;color:#4e5f50;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.seating-visual-remap-review-body>.seating-visual-remap-warning{margin:0;font-size:12px;line-height:1.5;color:#78592f}
.seating-visual-remap-move-details{border-top:1px solid #e8e2da;padding-top:12px;color:#675e54;font-size:12px}
.seating-visual-remap-move-details summary{min-height:40px;display:list-item;cursor:pointer;font-weight:700}
.seating-visual-remap-move-details summary span{font-variant-numeric:tabular-nums;color:#7a857a}
.seating-visual-remap-move-details .seating-visual-remap-moves{max-height:180px}
.seating-visual-remap-review-feedback{margin:0;padding:10px 13px;border:1px solid #d8aaa5;border-radius:9px;background:#fff0ed;color:#853e39;font-size:12px;font-weight:650;line-height:1.5;overflow-wrap:anywhere}
.seating-visual-remap-review-actions{display:flex;flex:0 0 auto;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:14px 24px;border-top:1px solid #ede9e2;background:#fff}
.seating-visual-remap-review-actions button{min-height:44px}
.seating-visual-remap-view-toggle{display:none}
@media(max-width:720px){
 .seating-visual-remap-review{padding:7px}
 .seating-visual-remap-review-dialog{max-height:calc(100% - 6px);width:100%;border-radius:14px}
 .seating-visual-remap-review-head{padding:17px 52px 13px 15px}
 .seating-visual-remap-review-head h2{font-size:22px}
 .seating-visual-remap-review-head p{font-size:11px}
 .seating-visual-remap-review-head .admin-modal-close{right:10px;top:13px}
 .seating-visual-remap-review-body{gap:11px;padding:12px}
 .seating-visual-remap-view-toggle{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;background:#f0f0ec;border-radius:11px}
 .seating-visual-remap-view-toggle button{min-height:42px;border:0;border-radius:8px;color:#67655c;background:transparent;font-weight:700;font-size:12px}
 .seating-visual-remap-view-toggle button[aria-pressed="true"]{background:#fff;color:#405846;box-shadow:0 1px 4px rgba(20,34,24,.10)}
 .seating-visual-remap-comparison{grid-template-columns:minmax(0,1fr);gap:0}
 .seating-visual-remap-comparison.is-show-before .is-after,
 .seating-visual-remap-comparison.is-show-after .is-before{display:none}
 .seating-visual-remap-pane{padding:9px}
 .seating-visual-remap-map{min-width:620px}
 .seating-visual-remap-review-actions{padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}
 .seating-visual-remap-review-actions .button{padding:7px 10px;font-size:11px;white-space:normal;line-height:1.3}
}
/* Mobile Edit Table uses a fixed bottom sheet at z-index:1250.
   The dedicated review must be above it and follow the visual viewport. */
@media(max-width:720px){
 .seating-visual-remap-review{position:fixed;inset:0;z-index:1290;padding:calc(6px + env(safe-area-inset-top,0px)) 6px calc(6px + env(safe-area-inset-bottom,0px))}
 .seating-visual-remap-review-dialog{width:100%;max-height:100%;min-height:0}
}
.seating-visual-remap-review-actions .button.button-secondary{background:#fff!important;color:#566954!important;border:1px solid #bfcdbb!important;box-shadow:none!important}

/* v3.24.14 - Invitation deadline and manual RSVP controls (scoped). */
.admin-rsvp-settings{display:grid;gap:12px;margin:18px 0;padding:16px;border:1px solid #e2e4df;border-radius:14px;background:#f8faf7}
.admin-rsvp-settings>div:first-child{display:grid;gap:3px}
.admin-rsvp-settings>div:first-child small{font-size:12px;line-height:1.5;color:#68746b}
.admin-rsvp-settings>label{display:grid;gap:6px;font-size:12px;font-weight:650;color:#465b4c}
.admin-rsvp-response-permission{grid-template-columns:auto 1fr;align-items:start;column-gap:9px}
.admin-rsvp-response-permission input{width:18px;height:18px;margin-top:3px;accent-color:#536f59}
.admin-rsvp-response-permission span{display:grid;gap:4px}
.admin-rsvp-response-permission small{font-weight:400;font-size:12px;color:#65746a;line-height:1.4}
.admin-manual-rsvp-trigger{min-height:35px;white-space:nowrap;font-weight:700!important}
.admin-rsvp-manual-modal[hidden],.admin-rsvp-settings [hidden],.seating-visual-former-note[hidden]{display:none!important}
.admin-rsvp-manual-modal{position:fixed;inset:0;z-index:10150;display:grid;place-items:center;padding:14px;isolation:isolate}
.admin-rsvp-manual-backdrop{position:absolute;inset:0;border:0;background:rgba(23,30,27,.58);cursor:pointer}
.admin-rsvp-manual-panel{position:relative;z-index:1;width:min(490px,100%);max-height:min(94svh,800px);overflow:auto;background:#fffdfa;border:1px solid #e2e5de;border-radius:16px;box-shadow:0 24px 80px rgba(10,23,12,.22)}
.admin-rsvp-manual-head{display:flex;gap:14px;justify-content:space-between;align-items:start;padding:22px 22px 15px;border-bottom:1px solid #eae9e5}
.admin-rsvp-manual-head h2{font-size:22px;line-height:1.2;margin:6px 0}
.admin-rsvp-manual-head p{margin:0;color:#6c716b;font-size:12px;line-height:1.6}
.admin-rsvp-manual-head .admin-modal-close{position:static;flex:0 0 auto}
.admin-rsvp-manual-body{padding:18px 22px;display:grid;gap:16px}
.admin-rsvp-manual-body>label{display:grid;gap:6px;font-size:12px;font-weight:650}
.admin-rsvp-manual-status{border:1px solid #e0e4dd;border-radius:12px;display:grid;gap:12px;margin:0;padding:12px 15px 16px}
.admin-rsvp-manual-status legend{font-weight:750;padding:0 4px;font-size:12px}
.admin-rsvp-manual-status label{display:flex;align-items:center;gap:9px;font-size:14px;min-height:35px;cursor:pointer}
.admin-rsvp-manual-status input{width:18px;height:18px;accent-color:#566b55}
.admin-rsvp-manual-footer{display:flex;gap:10px;justify-content:end;padding:14px 22px;border-top:1px solid #e8e8e2}
.admin-rsvp-manual-footer button{min-height:44px}
.seating-visual-former-switch{display:flex;align-items:center;gap:8px;padding:10px 16px;font-weight:700;font-size:12px;color:#915d58;cursor:pointer;flex-wrap:wrap}
.seating-visual-former-switch input{width:17px;height:17px;accent-color:#af6360}
.seating-visual-former-switch small{color:#82746e;font-size:10px;font-weight:400}
.seating-visual-seat.is-empty.is-former-guest{background:#fae9e9!important;border:2px dashed #b86763!important;box-shadow:0 0 0 2px rgba(185,83,75,.08)!important;color:#9f4c49!important}
.seating-visual-seat.is-empty.is-former-guest>span{font-size:19px;font-weight:700;line-height:1;color:#b15c57!important}
.seating-visual-seat.is-former-guest small{font-size:7px;color:#9a514b;font-weight:750}
.seating-visual-former-note{display:grid;gap:5px;padding:11px;margin-top:10px;background:#fdf0ee;border:1px solid #e6aaa4;border-radius:9px;font-size:12px;color:#824b46}
.seating-visual-former-note small{font-size:11px;color:#805d56;line-height:1.5}
@media(max-width:720px){
 .admin-rsvp-manual-modal{align-items:end;padding:0}
 .admin-rsvp-manual-panel{width:100%;max-height:calc(95svh - env(safe-area-inset-top,0px));border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
 .admin-rsvp-manual-head{padding:18px 16px 14px}
 .admin-rsvp-manual-body{padding:16px}
 .admin-rsvp-manual-footer{position:sticky;bottom:0;background:#fffdfa;padding:10px 16px;display:grid;grid-template-columns:1fr 1.35fr}
 .admin-rsvp-manual-footer button{width:100%}
}

/* v3.24.15 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â scoped RSVP/Invitation UI parity with Tables modal surfaces. */
.admin-guest-seating-action[hidden],
.admin-rsvp-history [hidden],
.admin-rsvp-settings [hidden],
.admin-rsvp-manual-modal[hidden]{display:none!important}

/* The hidden attribute wins over the shared .button { display:inline-flex }. */
.admin-guest-seating-summary .admin-guest-seating-action[hidden]{display:none!important}

.admin-body .admin-modal-backdrop,
.admin-body .admin-rsvp-manual-backdrop{
  background:rgba(43,34,29,.52);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
}
.admin-body .admin-modal-panel,
.admin-body .admin-rsvp-manual-panel{
  background:#fffdf9;
  border:1px solid #e4d9cf;
  border-radius:22px;
  box-shadow:0 24px 70px rgba(49,38,30,.17);
}
.admin-body .admin-modal-panel .admin-modal-close,
.admin-body .admin-rsvp-manual-panel .admin-modal-close{
  background:#fffdf9;
  border-color:#e4d9cf;
}
.admin-body .admin-modal-panel .input,
.admin-body .admin-rsvp-manual-panel .input{
  border-radius:11px;
}
.admin-body .admin-modal-panel .admin-modal-footer,
.admin-body .admin-rsvp-manual-footer{
  background:#fffdf9;
}

/* Invitation deadline: two explicit, tappable choice cards. */
.admin-rsvp-settings{
  background:#faf7f3;
  border-color:#e5dbd0;
  border-radius:18px;
  padding:18px;
  gap:14px;
}
.admin-rsvp-settings>div:first-child strong{color:#624933;font-size:15px}
.admin-deadline-modes{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:0;
  border:0;
  margin:0;
  min-width:0;
}
.admin-deadline-modes legend{
  color:#756559;
  font-size:12px;
  font-weight:700;
  margin-bottom:9px;
  padding:0;
}
.admin-deadline-option{
  display:grid;
  grid-template-columns:19px 30px minmax(0,1fr);
  gap:10px;
  align-items:start;
  min-height:88px;
  padding:14px 13px;
  border:1px solid #dcd3c8;
  border-radius:14px;
  background:#fffdf9;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.admin-deadline-option.is-selected{
  background:#fff;
  border-color:#775f48;
  box-shadow:inset 0 0 0 1px #775f48;
}
.admin-deadline-option input{
  accent-color:#70523b;
  width:18px;
  height:18px;
  margin:5px 0 0;
}
.admin-deadline-option:focus-within{outline:2px solid #927358;outline-offset:2px}
.admin-deadline-option-icon{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:9px;
  background:#f5efe8;
  color:#775944;
  font-size:21px;
}
.admin-deadline-option-copy{display:grid;gap:6px;min-width:0}
.admin-deadline-option-copy strong{color:#604635;font-size:12.5px;line-height:1.3}
.admin-deadline-option-copy small{color:#796b60;font-size:11px;font-weight:400;line-height:1.5}
.admin-rsvp-settings .admin-deadline-date{display:grid;gap:7px;color:#654d3d;font-weight:700;font-size:12px}
.admin-deadline-date .input{background:#fff;min-height:44px}
.admin-deadline-date small{color:#796d60;font-weight:400;font-size:11px}
.admin-rsvp-settings .admin-rsvp-response-permission{
  display:grid;
  padding:12px;
  border-radius:12px;
  border:1px solid #e4d9cf;
  background:#fffdf9;
}
.admin-rsvp-response-permission input{accent-color:#70523b}
.admin-rsvp-settings .admin-rsvp-response-permission strong{color:#654a36}
.admin-rsvp-settings [hidden]{display:none!important}

/* Manual RSVP: one scroll container, stable actions, readable audit timeline. */
.admin-body .admin-rsvp-manual-panel{display:flex;flex-direction:column;overflow:hidden}
.admin-rsvp-manual-panel form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}
.admin-rsvp-manual-body{overflow-y:auto;flex:1 1 auto;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.admin-rsvp-manual-head{flex:0 0 auto;border-color:#e8ddd3}
.admin-rsvp-manual-head h2{color:#704829}
.admin-rsvp-manual-footer{flex:0 0 auto;border-color:#e8ddd3}
.admin-rsvp-history{padding:14px;border:1px solid #e9e0d7;background:#faf8f4;border-radius:14px}
.admin-rsvp-history h3{font-size:13px;margin:0 0 10px;color:#694d39}
.admin-rsvp-history>p{margin:0;color:#786c61;font-size:12px;line-height:1.5}
.admin-rsvp-history ol{margin:0;padding:0 0 0 16px;display:grid;gap:12px}
.admin-rsvp-history li{padding-left:3px;color:#705743}
.admin-rsvp-history li strong{font-size:12px;display:block;color:#513c2c}
.admin-rsvp-history li small{font-size:11px;display:block;color:#756c61;line-height:1.5;margin-top:3px}
.admin-rsvp-history li p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#55453a;font-size:12px}

@media(max-width:720px){
  .admin-deadline-modes{grid-template-columns:1fr}
  .admin-deadline-option{min-height:66px}
  .admin-rsvp-settings{padding:14px}
  .admin-body .admin-rsvp-manual-panel{border-radius:22px 22px 0 0}
  .admin-rsvp-manual-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){
  .admin-deadline-option{transition:none}
}


/* v3.24.16 Ãƒâ€šÃ‚Â· Security standalone PWA install and search refinement. */
.security-install-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;margin:18px auto 0;padding:12px 18px;border:1px solid rgba(112,72,41,.26);border-radius:18px;background:#fffdf9;color:#704829;font:600 .82rem/1.35 "Noto Sans Georgian",Arial,sans-serif;cursor:pointer;transition:background .18s ease,transform .18s ease}
.security-install-button:hover{background:#f8f3ec;transform:translateY(-1px)}
.security-install-button[hidden]{display:none!important}
.security-install-button span{font-size:.92rem;line-height:1}
.security-install-inline{margin-top:0}
.security-search-help{display:block;padding:8px 2px 0;color:#887b70;font-size:.69rem;line-height:1.5}
.security-search-results{border-radius:16px;overflow:hidden}
.security-search-field button{width:44px;height:44px}
.security-pwa-guide{position:fixed;inset:0;z-index:130;display:grid;place-items:end center}
.security-pwa-guide[hidden]{display:none!important}
.security-pwa-guide-backdrop{position:absolute;inset:0;border:0;background:rgba(36,23,12,.55);backdrop-filter:blur(5px);cursor:pointer}
.security-pwa-guide-sheet{position:relative;width:min(480px,100%);padding:20px 24px max(26px,env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:#fffdf9;color:#704829;box-shadow:0 18px 70px rgba(36,23,12,.25);outline:none;text-align:center}
.security-pwa-guide-handle{width:42px;height:5px;border-radius:999px;margin:0 auto 18px;background:#d6c7b9}
.security-pwa-guide-icon{display:block;margin:0 auto 12px;border-radius:14px}
.security-pwa-guide-sheet h2{margin:8px 0;font-size:1.45rem;font-weight:650;color:#704829}
.security-pwa-guide-sheet p{margin:0 0 20px;font-size:.88rem;line-height:1.65;color:#786858}
.security-pwa-guide-sheet .security-primary-button{width:100%}
.security-pwa-guide-open{overflow:hidden}
.security-install-button:focus-visible,.security-search-field input:focus-visible,.security-pwa-guide button:focus-visible{outline:3px solid #c28b54;outline-offset:3px}
@media(min-width:681px){.security-pwa-guide{place-items:center}.security-pwa-guide-sheet{border-radius:24px}}
@media(prefers-reduced-motion:reduce){.security-install-button{transition:none}}


/* v3.24.16 Ãƒâ€šÃ‚Â· One Digital Pass action, with QR and install inside a bottom sheet. */
.landing-digital-pass-action .digital-pass-menu-trigger{width:min(440px,100%);min-height:52px}
.digital-pass-choice-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:end center}
.digital-pass-choice-overlay[hidden]{display:none!important}
.digital-pass-choice-backdrop{position:absolute;inset:0;border:0;background:rgba(31,21,14,.54);backdrop-filter:blur(6px);cursor:pointer}
.digital-pass-choice-panel{position:relative;box-sizing:border-box;width:min(500px,100%);max-height:min(90dvh,720px);overflow-y:auto;padding:17px 22px max(23px,env(safe-area-inset-bottom));background:#fffdf9;color:#704829;border-radius:26px 26px 0 0;box-shadow:0 20px 70px rgba(36,23,12,.24);outline:none;text-align:left}
.digital-pass-choice-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.digital-pass-choice-kicker{font-size:.63rem;font-weight:650;letter-spacing:.13em;color:#8b7765}
.digital-pass-choice-head h3{margin:5px 0 0;color:#704829;font-size:1.6rem;font-weight:550;line-height:1.15}
.digital-pass-choice-close{width:44px;height:44px;flex:0 0 auto;border:0;border-radius:50%;background:#f2e9dc;color:#704829;font-size:1.7rem;cursor:pointer}
.digital-pass-choice-copy{margin:12px 0 20px;font-size:.87rem;line-height:1.55;color:#78695b}
.digital-pass-choice-panel .digital-pass-actions{display:grid!important;grid-template-columns:1fr!important;gap:12px;margin:0;align-items:stretch;max-width:none;width:100%}
.digital-pass-choice-panel .digital-pass-actions button{box-sizing:border-box;width:100%!important;min-height:56px;margin:0!important;text-align:left;justify-content:flex-start;border:1px solid rgba(112,72,41,.16);border-radius:16px}
.digital-pass-choice-panel .digital-pass-actions button[hidden]{display:none!important}
.digital-pass-choice-panel .digital-pass-status{display:block;margin-top:12px;color:#9b5149;font-size:.82rem}
.digital-pass-choice-panel .digital-pass-status:empty{display:none}
.digital-pass-choice-open{overflow:hidden}
.digital-pass-choice-panel button:focus-visible{outline:3px solid #c28b54;outline-offset:3px}
@media(min-width:681px){.digital-pass-choice-overlay{place-items:center}.digital-pass-choice-panel{border-radius:24px;padding:22px 26px 28px}}


/* v3.24.17 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â Digital Pass: RSVP-width trigger and unified save actions.
   Scoped to the guest pass chooser; RSVP submit visuals are unchanged. */
.landing-digital-pass-action .digital-pass-menu-trigger{
  box-sizing:border-box;width:100%!important;max-width:none!important;
  min-height:60px!important;padding:13px 22px;
  border:1px solid #352820!important;border-radius:999px;
  background:#2d2520!important;color:#fffdf9!important;
  box-shadow:none!important;transition:background .18s ease,border-color .18s ease;
}
.landing-digital-pass-action .digital-pass-menu-trigger:hover{
  background:#48372c!important;border-color:#48372c!important;color:#fffdf9!important;
  transform:none;
}
.landing-digital-pass-action .digital-pass-menu-trigger:focus-visible{
  outline:3px solid #c28b54;outline-offset:3px;
}
.digital-pass-choice-panel{
  background:#f7f1e8;border:1px solid rgba(112,72,41,.11);
  color:#332821;border-radius:28px 28px 0 0;
  padding:26px 22px max(26px,env(safe-area-inset-bottom));
}
.digital-pass-choice-panel .digital-pass-choice-head h3{color:#302722;font-weight:600;}
.digital-pass-choice-panel .digital-pass-choice-copy{color:#66594f;margin:12px 0 23px;}
.digital-pass-choice-panel .digital-pass-choice-close{
  background:#e9dfd2;color:#352b24;line-height:1;
}
.digital-pass-choice-panel .digital-pass-actions{gap:12px;}
.digital-pass-choice-panel .digital-pass-actions .rsvp-action-button{
  display:grid!important;grid-template-columns:27px minmax(0,1fr) 27px;
  align-items:center;gap:10px;width:100%!important;max-width:none;
  min-height:62px!important;margin:0!important;padding:15px 20px!important;
  border-radius:20px!important;text-align:center!important;
  font-size:14px;font-weight:650;line-height:1.35;letter-spacing:0;
  transition:background .18s ease,border-color .18s ease;
}
.digital-pass-choice-panel .digital-pass-actions .rsvp-action-label{
  min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:center!important;
  font-weight:650;
}
.digital-pass-choice-panel .digital-pass-actions .web-pass-save{
  border:1px solid #2d2520!important;background:#2d2520!important;
  color:#fffdf9!important;box-shadow:none!important;
}
.digital-pass-choice-panel .digital-pass-actions .web-pass-save:hover{
  background:#48372c!important;border-color:#48372c!important;
  color:#fffdf9!important;
}
.digital-pass-choice-panel .digital-pass-actions .digital-pass-download{
  border:1px solid #cbbba6!important;background:#f7f1e8!important;
  color:#2d2520!important;box-shadow:none!important;
}
.digital-pass-choice-panel .digital-pass-actions .digital-pass-download:hover{
  border-color:#ad977e!important;background:#eee3d6!important;
  color:#2d2520!important;
}
.digital-pass-choice-panel .digital-pass-actions .digital-pass-download.is-loading{opacity:.55;pointer-events:none;}
.digital-pass-choice-panel .digital-pass-actions .rsvp-action-leading,
.digital-pass-choice-panel .digital-pass-actions .rsvp-action-trailing{
  position:static!important;inset:auto!important;transform:none!important;
  display:grid;place-items:center;width:27px;height:27px;
}
.digital-pass-choice-panel .digital-pass-actions .rsvp-action-trailing .ui-icon,
.digital-pass-choice-panel .digital-pass-actions .rsvp-action-leading svg{width:21px;height:21px;}
.digital-pass-choice-panel .digital-pass-actions .rsvp-action-button:hover .rsvp-action-trailing .ui-icon{
  transform:none!important;
}
@media (min-width:681px){
  .digital-pass-choice-panel{border-radius:26px;padding:28px 30px 30px;}
}
@media (max-width:680px){
  .landing-digital-pass-action .digital-pass-menu-trigger{min-height:56px!important;}
  .digital-pass-choice-panel{padding:26px 20px max(28px,env(safe-area-inset-bottom));}
  .digital-pass-choice-panel .digital-pass-actions .rsvp-action-button{
    min-height:60px!important;padding:13px 16px!important;font-size:13px;
  }
}
@media (prefers-reduced-motion:reduce){
  .landing-digital-pass-action .digital-pass-menu-trigger,
  .digital-pass-choice-panel .digital-pass-actions .rsvp-action-button{transition:none;}
}

/* v3.24.18 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â Security Check-in workflow-first UI polish.
   Reference colors only; layout prioritizes fast door operations. */
.security-portal-body{
  --security-ink:#332820;--security-ink-2:#47382d;--security-accent:#b88959;
  --security-sand:#e5c79f;--security-bg:#f3ede4;--security-surface:#fffdf9;
  --security-surface-2:#f8f3ec;--security-line:#ded1c1;--security-muted:#7b6f64;
  --security-success:#35664e;--security-success-bg:#e4efe8;
  --security-danger:#8a3e35;--security-danger-bg:#f5e5e2;
  --security-warning:#7c5b30;--security-warning-bg:#f2e6d1;
  background:var(--security-bg);color:var(--security-ink);
}

/* Login */
.security-login-shell{
  width:min(520px,calc(100% - 28px));box-sizing:border-box;min-height:100svh;
  padding:max(28px,env(safe-area-inset-top)) 0 max(34px,env(safe-area-inset-bottom));
  justify-content:center;text-align:left;
}
.security-login-card{
  padding:30px;border:1px solid rgba(82,62,47,.12);border-radius:28px;
  background:rgba(255,253,249,.96);box-shadow:0 24px 70px rgba(62,43,30,.09);
}
.security-login-brand{display:flex;align-items:center;gap:16px;margin-bottom:10px;}
.security-login-logo-wrap,.security-app-logo-wrap{
  display:grid;place-items:center;flex:0 0 auto;background:#f1e8dc;border:1px solid #e2d5c5;
}
.security-login-logo-wrap{width:64px;height:64px;border-radius:20px;}
.security-login-logo-wrap .security-brand-logo{width:42px;height:48px;margin:0;object-fit:contain;}
.security-brand-kicker{display:block;margin-bottom:5px;color:#9a816b;font-size:.62rem;font-weight:750;letter-spacing:.18em;}
.security-login-shell h1{margin:0;color:var(--security-ink);font-family:inherit;font-size:clamp(1.45rem,6vw,2rem);font-weight:760;line-height:1.2;letter-spacing:-.02em;}
.security-login-event{margin:5px 0 0;color:#807166;font-size:.82rem;line-height:1.45;}
.security-login-copy{margin:22px 0 20px;color:#76685d;font-size:.84rem;line-height:1.55;}
.security-login-shell .notice{border-radius:14px;margin:0 0 14px;}
.security-login-form{display:grid;gap:14px;padding:0;background:transparent;border:0;box-shadow:none;}
.security-login-form label{gap:7px;color:#57483d;font-size:.75rem;font-weight:700;}
.security-login-form .input{
  min-height:54px;border:1px solid #d7c9b8;border-radius:15px;background:#fff;color:var(--security-ink);
  padding:12px 14px;font-size:16px;box-shadow:none;
}
.security-login-form .input:focus{border-color:#9a704a;box-shadow:0 0 0 3px rgba(184,137,89,.14);}
.security-primary-button,.security-secondary-button{border-radius:15px;}
.security-login-form .security-primary-button{
  min-height:54px;margin-top:4px;border-color:var(--security-ink);background:var(--security-ink);color:#fffdf9;
}
.security-login-install{
  width:100%;min-height:50px;margin:12px 0 0;display:flex;align-items:center;justify-content:center;gap:9px;
  border:1px solid #d6c5b1;border-radius:15px;background:transparent;color:#5b493b;box-shadow:none;
}
.security-login-install svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}

/* Authenticated shell */
.security-portal-authenticated .security-app{width:min(920px,100%);box-sizing:border-box;padding:0 20px 64px;}
.security-portal-authenticated .security-app-header{
  padding:max(18px,env(safe-area-inset-top)) 2px 14px;border:0;
}
.security-portal-authenticated .security-app-brand{display:flex;align-items:center;gap:11px;min-width:0;}
.security-portal-authenticated .security-app-logo-wrap{width:44px;height:44px;border-radius:14px;}
.security-portal-authenticated .security-app-logo-wrap img{width:27px;height:32px;object-fit:contain;}
.security-portal-authenticated .security-app-brand>div{display:grid;gap:2px;min-width:0;}
.security-portal-authenticated .security-app-brand-kicker{font-size:.58rem;letter-spacing:.15em;color:#9a816b;font-weight:750;}
.security-portal-authenticated .security-app-brand strong{
  max-width:min(600px,65vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--security-ink);font-family:inherit;font-size:.94rem;font-weight:720;line-height:1.3;
}
.security-portal-authenticated .security-staff-menu{position:relative;z-index:20;flex:0 0 auto;}
.security-portal-authenticated .security-staff-menu summary{
  display:grid;place-items:center;width:44px;height:44px;list-style:none;cursor:pointer;
  border:1px solid #d8c9b8;border-radius:14px;background:var(--security-surface);color:#5f4d40;
}
.security-portal-authenticated .security-staff-menu summary::-webkit-details-marker{display:none;}
.security-portal-authenticated .security-staff-menu summary svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;}
.security-portal-authenticated .security-staff-menu-panel{
  position:absolute;right:0;top:calc(100% + 9px);width:min(280px,calc(100vw - 28px));padding:14px;
  border:1px solid #d8c9b8;border-radius:16px;background:var(--security-surface);color:#46382f;
  box-shadow:0 18px 50px rgba(64,44,30,.15);
}
.security-portal-authenticated .security-staff-menu-panel>span{display:block;margin-bottom:10px;font-size:.75rem;color:#74665b;}
.security-portal-authenticated .security-staff-menu-panel .security-install-button{
  display:flex;width:100%;min-height:44px;margin:0 0 8px;padding:9px 10px;border:1px solid #dccfbe;
  border-radius:12px;background:#faf6f0;color:#44362c;font-size:.74rem;box-shadow:none;
}
.security-portal-authenticated .security-logout-form{margin:0;display:block;}
.security-portal-authenticated .security-logout-form button{
  width:100%;min-height:44px;padding:10px 16px;border:0;border-radius:12px;background:var(--security-ink);
  color:#fffdf9;text-decoration:none;text-align:center;
}

/* Compact progress card */
.security-portal-authenticated .security-count-panel{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;align-items:end;
  margin:4px 0 14px;padding:18px 19px;border-radius:22px;background:var(--security-ink);color:#fffdf9;text-align:left;
  box-shadow:0 12px 28px rgba(69,49,35,.08);
}
.security-portal-authenticated .security-count-panel>span{grid-column:1;grid-row:1;margin:0;color:#d7c8ba;font-size:.78rem;font-weight:650;}
.security-portal-authenticated .security-count-panel>strong{grid-column:2;grid-row:1;margin:0;color:#fffdf9;font-family:inherit;font-size:1.55rem;font-weight:760;line-height:1;letter-spacing:-.03em;}
.security-portal-authenticated .security-progress-track{grid-column:1/-1;grid-row:2;width:100%;height:6px;margin:2px 0 0;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;}
.security-portal-authenticated .security-progress-track i{display:block;height:100%;border-radius:999px;background:var(--security-sand);}
.security-portal-authenticated .security-count-panel>small{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Search + scan command card */
.security-portal-authenticated .security-actions-panel{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:13px 14px;align-items:start;
  padding:19px;border:1px solid rgba(83,63,48,.12);border-radius:22px;background:var(--security-surface);
  box-shadow:0 10px 30px rgba(69,49,35,.055);
}
.security-portal-authenticated .security-actions-heading{grid-column:1/-1;display:grid;gap:3px;margin-bottom:2px;}
.security-portal-authenticated .security-actions-heading>span{font-size:.56rem;font-weight:750;letter-spacing:.16em;color:#a08369;}
.security-portal-authenticated .security-actions-heading>strong{font-size:.96rem;color:var(--security-ink);font-weight:760;}
.security-portal-authenticated .security-search-block{position:relative;grid-column:1;grid-row:2;min-width:0;padding:0;border:0;}
.security-portal-authenticated .security-search-block>label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.security-portal-authenticated .security-search-field{position:relative;min-width:0;}
.security-portal-authenticated .security-search-field .input{
  display:block;box-sizing:border-box;width:100%;min-width:0;min-height:56px;margin:0;
  padding:13px 44px 13px 46px;border:1px solid #d9ccbd;border-radius:16px;background:#fff;
  color:var(--security-ink);font-size:16px;box-shadow:none;
}
.security-portal-authenticated .security-search-field .input::placeholder{color:#9e9186;opacity:1;}
.security-portal-authenticated .security-search-field .input:focus{border-color:#9a704a;box-shadow:0 0 0 3px rgba(184,137,89,.13);}
.security-portal-authenticated .security-search-symbol{position:absolute;z-index:1;left:15px;top:50%;display:grid;place-items:center;transform:translateY(-50%);width:21px;height:21px;color:#8e7865;pointer-events:none;}
.security-portal-authenticated .security-search-symbol svg{width:21px;height:21px;}
.security-portal-authenticated .security-search-field button{position:absolute;right:7px;top:50%;width:42px;height:42px;transform:translateY(-50%);border:0;border-radius:12px;background:transparent;color:#96877a;font-size:1.35rem;cursor:pointer;}
.security-portal-authenticated .security-search-help{display:block;padding:7px 2px 0;color:#8b7e73;font-size:.66rem;line-height:1.45;}
.security-portal-authenticated .security-search-results{
  position:absolute;z-index:15;left:0;right:0;top:calc(56px + 8px);max-height:min(340px,55svh);overflow:auto;
  margin:0;border:1px solid #d7c9b8;border-radius:16px;background:#fff;box-shadow:0 18px 48px rgba(62,43,30,.16);
}
.security-portal-authenticated .security-search-result{padding:13px 14px;color:var(--security-ink);border-color:#eee6dc;}
.security-portal-authenticated .security-search-result:hover,.security-portal-authenticated .security-search-result:focus-visible{background:#f7f1e8;}
.security-portal-authenticated .security-search-result strong{color:var(--security-ink);font-size:.82rem;}
.security-portal-authenticated .security-search-result small{color:#766a60;font-size:.66rem;}
.security-portal-authenticated .security-search-result-count{color:#765c46;}
.security-portal-authenticated .security-scan-button{
  grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:flex-start;gap:11px;box-sizing:border-box;
  width:100%;min-width:0;min-height:56px;margin:0;padding:10px 15px;border:1px solid var(--security-ink);border-radius:16px;
  background:var(--security-ink);color:#fffdf9;box-shadow:none;text-align:left;
}
.security-portal-authenticated .security-scan-button:hover{background:var(--security-ink-2);box-shadow:none;transform:none;}
.security-portal-authenticated .security-scan-button>span:last-child{display:flex;align-items:center;}
.security-portal-authenticated .security-scan-button strong{color:#fffdf9;font-size:.84rem;line-height:1.25;}
.security-portal-authenticated .security-scan-icon{display:grid;place-items:center;width:27px;height:27px;flex:0 0 27px;border:0;border-radius:0;color:#f1d8b7;background:transparent;}
.security-portal-authenticated .security-scan-icon::before,.security-portal-authenticated .security-scan-icon::after{display:none!important;content:none!important;}
.security-portal-authenticated .security-scan-icon svg{width:27px;height:27px;display:block;}

/* Active invitation */
.security-portal-authenticated .security-result-zone{margin:14px 0 0;scroll-margin-top:16px;}
.security-portal-authenticated .security-invitation-result{
  display:flex;flex-direction:column;min-height:0;border:1px solid rgba(83,63,48,.12);border-radius:22px;
  background:var(--security-surface);color:var(--security-ink);overflow:hidden;box-shadow:0 12px 32px rgba(69,49,35,.06);
}
.security-portal-authenticated .security-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px;border-bottom:1px solid #ebe2d7;}
.security-portal-authenticated .security-result-copy{min-width:0;display:grid;gap:3px;}
.security-portal-authenticated .security-result-kicker{color:#94785f;font-size:.58rem;font-weight:750;letter-spacing:.11em;}
.security-portal-authenticated .security-result-head h2{margin:0;color:var(--security-ink);font-family:inherit;font-size:1.1rem;font-weight:760;line-height:1.35;overflow-wrap:anywhere;}
.security-portal-authenticated .security-result-head-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.security-portal-authenticated .security-result-summary{display:flex;align-items:baseline;gap:4px;padding:7px 10px;border-radius:999px;background:#edf0f2;color:#405367;text-align:center;}
.security-portal-authenticated .security-result-summary strong{color:#405367;font-size:.75rem;font-weight:760;}
.security-portal-authenticated .security-result-summary span{display:block;color:#5d6d7c;font-size:.57rem;}
.security-portal-authenticated .security-result-close{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #ddd0c0;border-radius:13px;background:#fff;color:#6a594c;cursor:pointer;}
.security-portal-authenticated .security-result-close:hover{background:#f6efe6;}
.security-portal-authenticated .security-result-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;}
.security-portal-authenticated .security-guest-list{display:grid;}
.security-portal-authenticated .security-guest-row{min-height:68px;padding:13px 17px;border-bottom:1px solid #eee6dc;background:#fff;color:var(--security-ink);}
.security-portal-authenticated .security-guest-row.is-ineligible{background:#f5f0e9;}
.security-portal-authenticated .security-guest-row.is-checked{background:#fcfaf7;}
.security-portal-authenticated .security-guest-choice{gap:12px;cursor:default;}
.security-portal-authenticated .security-guest-choice:has(input){cursor:pointer;}
.security-portal-authenticated .security-guest-choice input,.security-portal-authenticated .security-guest-state-mark{
  appearance:none;box-sizing:border-box;width:27px;height:27px;flex:0 0 27px;border:1.6px solid #c8b8a6;border-radius:9px;background:#fff;color:#fff;
}
.security-portal-authenticated .security-guest-choice input:checked{background:#64584f;border-color:#64584f;}
.security-portal-authenticated .security-guest-choice input:checked::after{content: '✓';display:grid;place-items:center;font-size:18px;height:100%;}
.security-portal-authenticated .security-guest-state-mark{display:grid;place-items:center;}
.security-portal-authenticated .is-checked .security-guest-state-mark{background:#64584f;border-color:#64584f;color:#fff;}
.security-portal-authenticated .is-ineligible .security-guest-state-mark{border-style:dashed;background:transparent;color:transparent;}
.security-portal-authenticated .security-guest-info{gap:3px;min-width:0;}
.security-portal-authenticated .security-guest-info strong{color:#302722;font-size:.9rem;line-height:1.35;overflow-wrap:anywhere;}
.security-portal-authenticated .is-ineligible .security-guest-info strong{color:#766c63;}
.security-portal-authenticated .security-guest-info small,.security-portal-authenticated .security-seating-meta{color:#776b61;font-size:.7rem;line-height:1.45;}
.security-portal-authenticated .security-guest-actions{display:grid;justify-items:end;gap:5px;flex:0 0 auto;}
.security-portal-authenticated .security-guest-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 9px;font-size:.67rem;font-weight:750;white-space:nowrap;line-height:1.05;background:var(--security-success-bg);color:var(--security-success);}
.security-portal-authenticated .security-guest-status.is-declined{background:var(--security-danger-bg);color:var(--security-danger);}
.security-portal-authenticated .security-guest-status.is-pending{background:var(--security-warning-bg);color:var(--security-warning);}
.security-portal-authenticated .security-guest-status.is-checked{background:var(--security-ink);color:#fff;}
.security-portal-authenticated .security-undo-button{padding:3px 0;color:#7e6552;font-size:.64rem;text-decoration:underline;text-underline-offset:3px;}
.security-portal-authenticated .security-result-footer{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-height:0;margin-top:0;padding:13px 17px 16px;border-top:0;background:#fff;}
.security-portal-authenticated .security-selected-count{font-size:.68rem;color:#776a5f;text-align:left;}
.security-portal-authenticated .security-confirm-button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;max-width:none;min-width:0;min-height:52px;margin:0;border-radius:15px;border:1px solid var(--security-ink);background:var(--security-ink);color:#fff;font-size:.85rem;font-weight:750;}
.security-portal-authenticated .security-confirm-button:disabled{opacity:1;background:#e9dfd2;border-color:#e9dfd2;color:#796d62;}
.security-portal-authenticated .security-all-checked{padding:2px 0;color:var(--security-success);font-size:.76rem;font-weight:720;text-align:center;}
.security-portal-authenticated .security-all-checked.is-muted{color:#81746a;font-weight:600;}
.security-portal-authenticated .security-next-button{width:100%;min-height:48px;border:1px solid #d9cbbb;border-radius:14px;background:#f8f3ec;color:#514136;font:inherit;font-size:.78rem;font-weight:720;cursor:pointer;}
.security-portal-authenticated .security-next-button:hover{background:#f0e7dc;}
.security-portal-authenticated .security-result-loading{padding:24px 18px;border:1px solid rgba(83,63,48,.12);border-radius:20px;background:#fff;color:#76695e;}

/* Scanner sheet */
.security-portal-authenticated .security-scanner-modal{background:rgba(35,26,20,.58);backdrop-filter:blur(8px);}
.security-portal-authenticated .security-scanner-sheet{border-radius:24px;background:var(--security-surface);}
.security-portal-authenticated .security-scanner-head span{color:#9a816b;}
.security-portal-authenticated .security-scanner-head strong{color:var(--security-ink);}
.security-portal-authenticated .security-scanner-head>button{background:#f4ede4;color:#5d4b3e;}
.security-portal-authenticated .security-scanner-tools .is-on{background:var(--security-ink);color:#fff;}

.security-portal-body :is(button,summary,input):focus-visible{outline:3px solid rgba(184,137,89,.55);outline-offset:3px;}

@media(max-width:680px){
  .security-login-card{padding:24px 20px;border-radius:24px;}
  .security-login-logo-wrap{width:58px;height:58px;border-radius:18px;}
  .security-portal-authenticated .security-app{padding:0 14px 46px;}
  .security-portal-authenticated .security-actions-panel{grid-template-columns:1fr;padding:16px;border-radius:20px;}
  .security-portal-authenticated .security-actions-heading{grid-column:1;grid-row:1;}
  .security-portal-authenticated .security-search-block{grid-column:1;grid-row:2;}
  .security-portal-authenticated .security-scan-button{grid-column:1;grid-row:3;min-height:54px;justify-content:center;text-align:left;}
  .security-portal-authenticated .security-result-zone{margin-top:12px;}
  .security-portal-authenticated .security-result-head{padding:15px 14px;gap:9px;flex-direction:row;}
  .security-portal-authenticated .security-result-head-actions{gap:6px;}
  .security-portal-authenticated .security-result-summary span{display:none;}
  .security-portal-authenticated .security-result-close{width:40px;height:40px;}
  .security-portal-authenticated .security-guest-row{padding:12px 14px;gap:8px;}
  .security-portal-authenticated .security-guest-info strong{font-size:.84rem;}
  .security-portal-authenticated .security-result-footer{padding:12px 14px 14px;}
  .security-portal-authenticated .security-scanner-modal{padding:7px;}
  .security-portal-authenticated .security-scanner-sheet{max-height:calc(100svh - 14px);border-radius:20px;}
}
@media(max-width:390px){
  .security-login-shell{width:min(100% - 20px,520px);}
  .security-login-card{padding:22px 17px;}
  .security-login-brand{gap:12px;}
  .security-portal-authenticated .security-app{padding-left:10px;padding-right:10px;}
  .security-portal-authenticated .security-count-panel{padding:16px;border-radius:19px;}
  .security-portal-authenticated .security-actions-panel{padding:14px;}
  .security-portal-authenticated .security-result-head h2{font-size:1rem;}
  .security-portal-authenticated .security-result-summary{padding:6px 8px;}
  .security-portal-authenticated .security-guest-row{padding:11px 10px;}
  .security-portal-authenticated .security-guest-choice{gap:8px;}
  .security-portal-authenticated .security-guest-status{padding:5px 7px;font-size:.6rem;}
}
@media(prefers-reduced-motion:reduce){
  .security-portal-authenticated .security-progress-track i,.security-portal-authenticated .security-scan-button{transition:none;}
}

/* v3.24.19 ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â Wedding Check-In naming + compact operator controls */
.security-portal-authenticated .security-staff-menu-panel .security-install-button span{font-size:.88rem;}
.security-login-install span{font-size:.8rem;}

/* v3.24.20 - Guest Web Pass: boarding ticket with explicit accessible expansion. */
.web-pass-body{
  --pass-paper: #fffdfa;
  --pass-chocolate: #312520;
  --pass-gold:#d7ac7f;
  --pass-ink:#362a22;
  background: #f5ece2;
  color:var(--pass-ink);
}
.web-pass-shell{display:block;min-height:100svh;padding:max(22px,env(safe-area-inset-top)) 12px max(36px,env(safe-area-inset-bottom))}
.web-pass-stack{width:min(100%,510px);display:block;margin:0 auto}
.web-pass-app-bar{text-align:center;padding:12px 0 24px;color:#453228;font-size:.7rem;font-weight:800;letter-spacing:.27em}
.web-pass-boarding{
  box-sizing:border-box;
  width:100%;
  max-width:none;
  overflow:hidden;
  border: none;
  border-radius:26px;
  background:var(--pass-paper);
  color:var(--pass-ink);
  cursor:default;
  box-shadow: none;
  transition:box-shadow .2s ease;
}
.web-pass-boarding:hover,.web-pass-boarding.is-expanded{transform:none;max-width:none;cursor:default;box-shadow: none;border: none;}
.web-pass-ticket-header{position:relative;isolation:isolate;background:var(--pass-chocolate);padding:27px 24px 31px;text-align:center;color:#fff8ef}
.web-pass-ticket-header::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 42% -15%,rgba(206,148,100,.16),transparent 68%);pointer-events:none}
.web-pass-ticket-header::after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:1px solid rgba(244,236,226,.15)}
.web-pass-monogram{width:67px;height:38px;margin:0 auto 14px;display:grid;place-items:center;border:1px solid #c39766;border-radius:50%;color:#e8bd8d;font:italic 23px Georgia,serif}
.web-pass-ticket-kicker{margin:0;display:flex;align-items:center;justify-content:center;gap:10px;color:#ebc396;font-size:.59rem;letter-spacing:.21em;font-weight:800;white-space:nowrap}
.web-pass-ticket-kicker::before,.web-pass-ticket-kicker::after{content:"";display:block;width:30px;height:1px;background:#bd9061}
.web-pass-ticket-header h1{margin:18px 0 9px;color:#fffaf3;font: 400 clamp(2.3rem,9vw,2.75rem)/1.15 var(--display-font,Georgia,serif);overflow-wrap:anywhere}
.web-pass-boarding-venue{margin:0;color:#ead8c6;font-size:.86rem;line-height:1.5}
.web-pass-boarding-date{margin:13px auto 0;color:#e8bf95;font-size:.72rem;font-weight:650;line-height:1.5}
.web-pass-summary{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:center;padding:23px 25px 19px}
.web-pass-mini-qr-wrap{width:112px;padding:9px;background:#fff;border:1px solid #e5d4c4;border-radius:15px}
.web-pass-mini-qr{display:block;width:100%!important;height:auto!important;aspect-ratio:1;background:#fff;image-rendering:pixelated}
.web-pass-summary-info{min-width:0;display:grid;align-content:center;gap:5px}
.web-pass-summary-info strong{display:block;font:500 1.75rem/1.2 Georgia,serif;color:#a47248;white-space:normal}
.web-pass-summary-info strong span{font:700 .83rem/1.4 var(--body-font);color:#664b3b}
.web-pass-summary-seating{font-size:.78rem;color:#5d4334;font-weight:750}
.web-pass-summary-info small{max-width:190px;color:#826e5e;font-size:.68rem;line-height:1.5}
.web-pass-summary-names{margin:0;padding:12px 25px 16px;border-top:1px dashed #ddc4aa;color:#665141;font-size:.78rem;line-height:1.6;overflow-wrap:anywhere}
.web-pass-boarding.is-expanded .web-pass-summary,.web-pass-boarding.is-expanded .web-pass-summary-names{display:none}
.web-pass-detail-panel{padding:24px 20px 0}
.web-pass-detail-panel[hidden]{display:none!important}
.web-pass-boarding .web-pass-qr-wrap{box-sizing:border-box;width:min(100%,318px);margin:0 auto;padding:14px;border:1px solid #ead4bc;border-radius:17px;background:#fff;box-shadow:0 3px 12px rgba(69,45,32,.055)}
.web-pass-boarding .web-pass-qr{width:100%!important;height:auto!important;image-rendering:pixelated;background:#fff}
.web-pass-boarding .web-pass-present{margin:13px 0 22px;font-size:.8rem;color:#765138;line-height:1.55}
.web-pass-details-guests{margin:0 -20px;padding:18px 20px 20px;border-top:1px dashed #c7a888}
.web-pass-details-guests h2{margin:0 0 6px;color:#906540;font-size:.77rem;font-weight:800;letter-spacing:.04em}
.web-pass-boarding .web-pass-guest-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:61px;padding:12px 0;border-bottom:1px solid #ecdfd0}
.web-pass-boarding .web-pass-guest-row:last-child{border-bottom:0}
.web-pass-boarding .web-pass-guest-row strong{flex:1 1 auto;font-size:.86rem;font-weight:750;line-height:1.4;color:#342820;overflow-wrap:anywhere}
.web-pass-boarding .web-pass-guest-row .web-pass-seat-pill{flex:0 1 auto;display:inline-block;text-align:center;white-space:normal;border-radius:80px;padding:8px 12px;background:#f4eadd;color:#76533c;font-size:.7rem;line-height:1.5}
.web-pass-boarding .web-pass-guest-row .web-pass-seat-pill i{font-style:normal;color:#ac8d70;margin:0 3px}
.web-pass-boarding .web-pass-guest-row .web-pass-seat-pill.is-unassigned{color:#836c59}
.web-pass-boarding-toggle{display:flex;align-items:center;justify-content:center;gap:12px;box-sizing:border-box;width:100%;min-height:58px;padding:13px 18px;border:0;border-top:1px dashed #caa988;background:#fff8ee;color:#553b2c;font:750 .84rem/1.5 var(--body-font);cursor:pointer}
.web-pass-boarding-toggle:hover{background: #e2dad0;}
.web-pass-boarding-toggle:focus-visible{outline:3px solid #bc864f;outline-offset:-4px}
.web-pass-boarding-toggle svg{flex:0 0 18px;width:18px;height:18px;transition:transform .2s ease}
.web-pass-boarding-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
@media(max-width:420px){
  .web-pass-shell{padding-left:10px;padding-right:10px}
  .web-pass-ticket-header{padding:26px 14px 27px}
  .web-pass-summary{grid-template-columns:100px minmax(0,1fr);gap:14px;padding:19px 18px 16px}
  .web-pass-mini-qr-wrap{width:100px}
  .web-pass-summary-names{padding-left:18px;padding-right:18px}
  .web-pass-detail-panel{padding:21px 14px 0}
  .web-pass-details-guests{margin:0 -14px;padding:16px 14px 18px}
  .web-pass-boarding .web-pass-guest-row{align-items:flex-start;flex-direction:column;gap:7px}
  .web-pass-boarding .web-pass-guest-row .web-pass-seat-pill{text-align:left}
}
@media(prefers-reduced-motion:reduce){.web-pass-boarding-toggle svg{transition:none}}

/* v3.24.21 - Real SVG identity, keyboard-friendly mini QR and boarding ticket notches. */
.web-pass-boarding{--pass-ticket-punch:#f4ece2}
.web-pass-brand{width:70px;height: 70px;margin:0 auto 11px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(232,189,141,.65);border-radius:50%}
.web-pass-brand img{display:block;width:38px;height:38px;max-width:60%;object-fit:contain;filter:brightness(0) saturate(100%) invert(87%) sepia(13%) saturate(977%) hue-rotate(338deg) brightness(97%)}
.web-pass-ticket-notches{position:absolute;inset:auto 0 0;z-index:2;pointer-events:none}
.web-pass-ticket-notches::before,.web-pass-ticket-notches::after,
.web-pass-boarding-toggle::before,.web-pass-boarding-toggle::after{content:"";position:absolute;width:30px;height:30px;border-radius:50%;background:var(--pass-ticket-punch);border:1px solid #ddcfc0;pointer-events:none}
.web-pass-ticket-notches::before,.web-pass-ticket-notches::after{bottom:-16px}
.web-pass-ticket-notches::before,.web-pass-boarding-toggle::before{left:-17px}
.web-pass-ticket-notches::after,.web-pass-boarding-toggle::after{right:-17px}
.web-pass-boarding-toggle{position:relative;isolation:isolate}
.web-pass-boarding-toggle::before,.web-pass-boarding-toggle::after{top:-16px}
.web-pass-mini-qr-wrap{appearance:none;-webkit-appearance:none;box-sizing:border-box;display:block;margin:0;line-height:0;cursor:zoom-in;box-shadow:0 2px 10px rgba(69,45,32,.045);transition:box-shadow .15s ease,border-color .15s ease}
.web-pass-mini-qr-wrap:hover{border-color:#b9926f;box-shadow:0 0 0 3px rgba(185,146,111,.13)}
.web-pass-mini-qr-wrap:focus-visible{outline:3px solid #b9926f;outline-offset:3px}
.web-pass-qr-wrap:focus{outline:none}
.web-pass-qr-wrap:focus-visible{outline:3px solid #b9926f;outline-offset:3px}
.settings-pass-copy-heading{margin:27px 0 13px;border-top:1px solid #e6dfd7;padding:22px 0 0}
.settings-pass-copy-heading h3{margin:0 0 7px;font-size:1.04rem;color:#473327}
.settings-pass-copy-heading p{max-width:750px;margin:0;color:#806e5c;font-size:.83rem;line-height:1.55}
@media(prefers-reduced-motion:reduce){.web-pass-mini-qr-wrap{transition:none}}


/* v3.24.22 - Boarding Pass motion. Scoped to the standalone guest PWA. */
.web-pass-boarding{--pass-ticket-punch:#f5ece2}
@keyframes webPassArrive{
  from{opacity:0;transform:translate3d(0,18px,0) scale(.988)}
  to{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
@keyframes webPassDetailsReveal{
  from{opacity:0;transform:translate3d(0,10px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes webPassCompactReveal{
  from{opacity:.15;transform:translate3d(0,-6px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
.web-pass-stack{animation:webPassArrive .62s cubic-bezier(.22,.78,.2,1) both}
.web-pass-boarding.is-expanded .web-pass-detail-panel{animation:webPassDetailsReveal .38s cubic-bezier(.22,.61,.36,1) both}
.web-pass-boarding:not(.is-expanded) .web-pass-summary,
.web-pass-boarding:not(.is-expanded) .web-pass-summary-names{animation:webPassCompactReveal .30s ease-out both}
@media(prefers-reduced-motion:reduce){
  .web-pass-stack,
  .web-pass-boarding.is-expanded .web-pass-detail-panel,
  .web-pass-boarding:not(.is-expanded) .web-pass-summary,
  .web-pass-boarding:not(.is-expanded) .web-pass-summary-names{animation:none!important;opacity:1!important;transform:none!important}
}

/* v3.24.24 - Keep the desktop Admin sidebar in view, matching the Hall
   Multi-Layout preview. The mobile drawer and collapse mechanics are unchanged. */
@media (min-width:901px){
  .admin-nav{
    position:sticky;
    top:16px;
    align-self:start;
    height:calc(100svh - 32px);
    height:calc(100dvh - 32px);
    min-height:0;
    max-height:calc(100dvh - 32px);
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    font-size: .875rem;
  }
}

/* v3.25.2 - Compact Hall layout toolbar (reference-aligned; no duplicated actions) */
.seating-layout-toolbar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:14px 16px;border:1px solid #e5e1da;border-radius:21px;background:#fff;box-shadow:0 6px 18px rgba(57,43,32,.035);min-width:0}
.seating-layout-toolbar .seating-view-switcher{margin:0;flex:0 0 auto;box-shadow:none;max-width:100%;gap:4px}
.seating-layout-toolbar .seating-view-switcher a{white-space:nowrap;min-height:42px;padding:0 16px}
.seating-layout-toolbar .seating-layout-list-disabled{white-space:nowrap;min-height:42px;padding:0 12px;color:#a09b92;font-size:.76rem}
.seating-layout-main{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 1 0;min-width:0}
.seating-layout-tabs{display:flex;align-items:center;justify-content:flex-start;flex:1 1 auto;gap:10px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;min-width:0;max-width:100%;padding:5px 12px 9px;scroll-padding-inline:12px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.seating-layout-tabs>.seating-layout-tab:first-child{margin-inline-start:auto}
.seating-layout-tabs>.seating-layout-tab:last-child{margin-inline-end:auto}
.seating-layout-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;max-width:245px;flex:none;min-height:52px;padding:10px 16px;border:1px solid #e5e1da;border-radius:999px;background:#faf9f7;text-decoration:none;color:#615f59;font-size:.79rem;font-weight:750;white-space:nowrap;transition:background .18s ease,border-color .18s ease,color .18s ease}
.seating-layout-tab-name{overflow:hidden;text-overflow:ellipsis;min-width:0}
.seating-layout-tab small{font-size:.67rem;font-weight:650;color:#85847b;white-space:nowrap}
.seating-layout-tab small.is-primary{padding:4px 7px;border-radius:999px;color:#fff;background:#52704f;font-size:.62rem;line-height:1.1}
.seating-layout-tab.is-current{color:#fff;background:#765039;border-color:#765039;box-shadow:0 5px 14px rgba(94,66,46,.13)}
.seating-layout-tab.is-current small{color:#f4e6d7}
.seating-layout-tab.is-current small.is-primary{color:#fff;background:rgba(255,255,255,.23)}
.seating-layout-tab:hover:not(.is-current){background:#f0ede8;border-color:#d9d1c8}
.seating-layout-toolbar a:focus-visible,.seating-layout-toolbar button:focus-visible,.seating-layout-toolbar summary:focus-visible,.seating-layout-toolbar input:focus-visible{outline:2px solid #80694b;outline-offset:3px}
.seating-layout-add-form{flex:0 0 auto;margin:0}
.seating-layout-add{display:grid;place-items:center;width:52px;height:52px;border:1px solid #e6e1dc;border-radius:999px;background:#faf9f7;color:#332f2b;cursor:pointer;transition:background .18s ease}
.seating-layout-add svg{display:block;width:20px;height:20px}
.seating-layout-add:hover:not(:disabled){background:#f0ede8}
.seating-layout-add:disabled{opacity:.45;cursor:not-allowed}
.seating-layout-options{position:relative;flex:0 0 auto;margin:0}
.seating-layout-options>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:8px 13px;border:1px solid #dad9d4;border-radius:11px;background:#fff;color:#494b43;font-size:.78rem;font-weight:750;cursor:pointer;white-space:nowrap}
.seating-layout-settings-icon,.seating-layout-chevron{display:block;flex:none}
.seating-layout-options>summary .seating-layout-chevron,.seating-layout-rename-expand>summary .seating-layout-chevron{transition:transform .18s ease}
.seating-layout-options[open]>summary .seating-layout-chevron,.seating-layout-rename-expand[open]>summary .seating-layout-chevron{transform:rotate(180deg)}
.seating-layout-options>summary::-webkit-details-marker,.seating-layout-rename-expand>summary::-webkit-details-marker{display:none}
.seating-layout-options[open]>summary{border-color:#aa9e8f;background:#faf9f7}
.seating-layout-options-menu{position:absolute;z-index:40;right:0;top:calc(100% + 8px);display:grid;gap:4px;width:min(310px,calc(100vw - 28px));padding:8px;border:1px solid #ded9d1;border-radius:13px;background:#fff;box-shadow:0 14px 42px rgba(57,43,32,.17)}
.seating-layout-options-menu form{margin:0}
.seating-layout-menu-action{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:#514943;font-family:inherit;font-size:.79rem;font-weight:650;text-align:left;text-decoration:none;cursor:pointer}
.seating-layout-menu-action:hover:not(:disabled),.seating-layout-rename-expand[open]>summary{background:#f5f2ee}
.seating-layout-menu-action:disabled{color:#a09a92;cursor:not-allowed}
.seating-layout-menu-divider{height:1px;background:#eee9e2;margin:5px 4px}
.seating-layout-rename-expand>summary{list-style:none}
.seating-layout-rename{display:grid;gap:8px;padding:6px 9px 12px}
.seating-layout-rename label{font-size:.72rem;font-weight:650;color:#77736d}
.seating-layout-rename .input{min-height:42px;margin:0;font-size:.83rem}
.seating-layout-rename .button{width:100%;margin:0;min-height:43px;font-size:.78rem}
.seating-layout-delete{color:#a3473e!important}
.seating-layout-unpublished-note{margin:0 0 17px!important;padding:12px 16px;font-size:.8rem}
.seating-layout-publish-disabled{font-size:.78rem;color:#807d76;line-height:1.5}
.seating-layout-list-disabled{display:inline-flex;align-items:center;padding:9px 14px;color:#9a9a92;font-size:.8rem;cursor:not-allowed}
@media(max-width:1120px){
  .seating-layout-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"layouts layouts" "views options";gap:9px 12px;padding:12px}
  .seating-layout-main{grid-area:layouts;justify-content:flex-start;width:100%}
  .seating-layout-tabs{justify-content:flex-start;flex:1 1 auto}
  .seating-layout-toolbar .seating-view-switcher{grid-area:views;width:max-content}
  .seating-layout-options{grid-area:options;justify-self:end}
}
@media(max-width:680px){
  .seating-layout-toolbar{gap:8px 6px;padding:10px;border-radius:15px}
  .seating-layout-main{gap:7px}
  .seating-layout-tabs{gap:7px}
  .seating-layout-tab{min-height:44px;padding:8px 11px;gap:5px;font-size:.74rem}
  .seating-layout-tab small{font-size:.62rem}
  .seating-layout-add{width:44px;height:44px}
  .seating-layout-add svg{width:19px;height:19px}
  .seating-layout-toolbar .seating-view-switcher{min-width:0;padding:3px;gap:1px}
  .seating-layout-toolbar .seating-view-switcher a{min-height:40px;padding:0 11px;font-size:.7rem}
  .seating-layout-toolbar .seating-layout-list-disabled{padding:0 8px;min-height:40px;font-size:.69rem;white-space:nowrap}.seating-layout-toolbar .seating-layout-list-secondary{display:none}
  .seating-layout-options>summary{min-height:45px;padding:7px 10px;font-size:.69rem}
}
@media(prefers-reduced-motion:reduce){.seating-layout-tab,.seating-layout-add,.seating-layout-chevron{transition:none}}

.seating-visual-angle-input{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(61,48,38,.18);border-radius:9px;padding:4px 8px;background:#fff;white-space:nowrap;font-size:.68rem;font-weight:700;color:#615f5a}
.seating-visual-angle-input input{width:68px;min-width:0;border:0;outline:0;background:transparent;text-align:right;color:#3d3026;font-family:inherit;font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}
.seating-visual-angle-input input::-webkit-inner-spin-button,.seating-visual-angle-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.seating-visual-angle-input:focus-within{outline:2px solid rgba(89,131,91,.52);outline-offset:2px}
.seating-visual-angle-input:has(input:disabled){opacity:.55}
@media(max-width:680px){.seating-visual-angle-input{min-height:41px}}

/* v3.25.3 - Keep Hall labels readable while rotating tables.  The rotator
   changes seat centers/geometry; text + individual seat cards counter-rotate.
   This intentionally does not change collision detection or saved angles. */
.seating-visual-tabletop-content{
  position:relative;
  z-index:1;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:3px;
  min-width:0;
  max-width:min(100%,var(--seating-content-safe-width,100%));
  transform:rotate(var(--seating-counter-rotation,0deg));
  transform-origin:center center;
  pointer-events:none;
}
.seating-visual-rotator .seating-visual-tabletop-content .seating-visual-table-name{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.seating-visual-rotator.has-narrow-readable-label .seating-visual-tabletop-content .seating-visual-table-name{font-size:12px}
.seating-visual-rotator.has-narrow-readable-label .seating-visual-table-capacity{
  flex-wrap:wrap;
  white-space:normal;
  row-gap:1px;
}
.seating-visual-rotator.has-narrow-readable-label .seating-visual-table-meta{max-width:100%;overflow:hidden}
.seating-visual-rotator .seating-visual-seat{
  transform:translate(-50%,-50%) rotate(var(--seating-counter-rotation,0deg));
  transform-origin:center center;
}
/* Rotation is a single accessible composite control; input is only available
   while Rotate mode is active. Keep the button and input separate DOM elements. */
.seating-visual-rotate-control{
  display:inline-flex;
  align-items:center;
  flex:none;
  min-height:40px;
  border:1px solid #d7cabd;
  border-radius:999px;
  background:#fff;
  color:#705c4d;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.seating-visual-rotate-control.is-active{
  border-color:#84a179;
  background:#eef5ea;
  color:#4f7044;
  box-shadow:0 0 0 3px rgba(79,112,68,.10);
}
.seating-visual-rotate-control>.seating-visual-table-control-btn{
  min-height:38px;
  margin:0;
  border:0;
  background:transparent;
  color:inherit;
  box-shadow:none!important;
}
.seating-visual-rotate-control .seating-visual-angle-input{
  display:inline-flex;
  gap:2px;
  align-items:center;
  min-height:29px;
  padding:0 11px 0 7px;
  margin:0 3px 0 0;
  border:0;
  border-left:1px solid rgba(79,112,68,.22);
  border-radius:0;
  background:transparent;
  color:#4f7044;
}
.seating-visual-rotate-control .seating-visual-angle-input[hidden]{display:none!important}
.seating-visual-rotate-control .seating-visual-angle-input input{width:52px;color:inherit;font-size:12px}
.seating-visual-rotate-control .seating-visual-angle-input input:focus-visible{outline:2px solid #638259;outline-offset:2px;border-radius:3px}
.seating-visual-rotate-control .seating-visual-angle-input:focus-within{outline:0}
@media(max-width:680px){.seating-visual-rotate-control .seating-visual-angle-input{min-height:29px}}
@media(prefers-reduced-motion:reduce){.seating-visual-rotate-control{transition:none}}

/* v3.25.5 Ã¢â‚¬â€ chair-side flip and explicit Start Seat preview. The original
   table remains draggable; a chair is clickable only outside rotate/swap. */
.seating-visual-shell.is-edit-layout:not(.is-rotate-mode):not(.is-swap-mode) .seating-visual-seat{pointer-events:auto;opacity:1;cursor:pointer}
.seating-visual-shell.is-edit-layout:not(.is-rotate-mode):not(.is-swap-mode) .seating-visual-seat:focus-visible{outline:3px solid #497647;outline-offset:4px}
.seating-visual-layout-actions [data-visual-flip-side][hidden]{display:none!important}
.seating-visual-layout-actions [data-visual-flip-side].is-active{border-color:#80a17b;background:#edf5eb;color:#4f7044}
.seating-visual-seat-start-modal[hidden]{display:none!important}
.seating-visual-seat-start-modal{position:fixed;inset:0;z-index:1295;display:grid;place-items:center;padding:16px;isolation:isolate}
.seating-visual-seat-start-backdrop{position:absolute;inset:0;border:0;background:rgba(37,31,26,.40);cursor:default}
.seating-visual-seat-start-panel{position:relative;z-index:1;width:min(435px,100%);max-height:calc(100dvh - 24px);overflow:auto;padding:24px;border:1px solid #e5dcd2;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(46,36,28,.22)}
.seating-visual-seat-start-heading{display:flex;align-items:center;gap:10px}
.seating-visual-seat-start-heading svg{height:23px;width:23px;flex:none;fill:none;stroke:#4f7044;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.seating-visual-seat-start-heading h2{font-size:21px;color:#4f473c;margin:0;font-weight:650}
.seating-visual-seat-start-panel p{color:#594e45;font-size:13px;line-height:1.65;margin:16px 0 0}
.seating-visual-seat-start-panel .seating-visual-seat-start-note{font-size:12px;color:#7d736a;background:#f6f5f1;border-radius:10px;padding:12px;margin-top:12px}
.seating-visual-seat-start-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:21px;flex-wrap:wrap}
.seating-visual-seat-start-actions .button{min-height:40px}
@media(max-width:680px){.seating-visual-seat-start-modal{padding:12px}.seating-visual-seat-start-panel{padding:18px}.seating-visual-seat-start-actions{display:grid;grid-template-columns:1fr 1fr}.seating-visual-seat-start-actions .button{padding:10px 8px;justify-content:center;font-size:12px}}

.seating-visual-seat .seating-visual-seat-edit-number{display:none}
.seating-visual-shell.is-edit-layout .seating-visual-seat.is-empty:not(.is-extra)>span{display:none}
.seating-visual-shell.is-edit-layout .seating-visual-seat.is-empty .seating-visual-seat-edit-number{display:block;font-size:10px;font-weight:750;letter-spacing:.01em;color:#6b6256}
.seating-visual-shell.is-edit-layout .seating-visual-seat.is-empty.is-former-guest .seating-visual-seat-edit-number{color:#9f4c49}

/* v3.25.6: Seat Start previews the actual clockwise/counterclockwise path. */
.seating-visual-seat-start-sequence{margin:.6rem 0;padding:.7rem .8rem;border-radius:.65rem;background:var(--surface-muted,#f5f6f4);font-size:.86rem;line-height:1.45;font-weight:550}

/* v3.25.8 - Admin-only Georgian glyph fallback.
   Keep Latin typography unchanged; Noto fonts are already imported above.
   Do not modify public invitation/guest/PWA/security typography. */
.admin-body{
  --heading-font:"Playfair Display","Noto Serif Georgian",Georgia,"Times New Roman",serif;
  font-family:Inter,"Noto Sans Georgian",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.admin-body :where(button,input,select,textarea){
  font-family:Inter,"Noto Sans Georgian",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
/* This seating dialog uses an explicit Georgia stack rather than --heading-font. */
.admin-body .seating-visual-add-head h2{
  font-family:Georgia,"Noto Serif Georgian","Times New Roman",serif;
}

/* v3.25.13: reversible archive tools in Hall and responsive Edit Table actions. */
.seating-archive-undo-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.seating-archive-undo-notice form{margin:0;flex:none}
.seating-archive-undo-notice .button{min-height:36px}
.seating-visual-archived-list{margin:0 0 12px;border:1px solid #e7e0d7;border-radius:12px;background:#fff;overflow:hidden}
.seating-visual-archived-list summary{display:flex;align-items:center;gap:8px;padding:12px 15px;cursor:pointer;font-weight:650;font-size:13px;color:#4b4138}
.seating-visual-archived-list summary::marker{color:#8c7d6d}
.seating-visual-archived-list summary>span:last-child{margin-left:auto;font-weight:500;color:#756e66;font-size:12px}
.seating-visual-archived-items{border-top:1px solid #ebe5de;padding:6px 14px}
.seating-visual-archived-item{display:flex;align-items:center;gap:12px;min-width:0;padding:9px 0;margin:0}
.seating-visual-archived-item + .seating-visual-archived-item{border-top:1px solid #eee9e3}
.seating-visual-archived-item strong{font-size:13px;font-weight:600;min-width:0;overflow-wrap:anywhere}
.seating-visual-archived-item small{font-size:12px;color:#6d655c;margin-right:auto;white-space:nowrap}
.seating-visual-archived-item .button{flex:none;min-height:34px}
.seating-visual-add-actions .seating-visual-archive-table{margin-right:auto;white-space:normal;text-align:left;font-size:12px}
@media(max-width:620px){
 .seating-visual-archived-item{flex-wrap:wrap}
 .seating-visual-archived-item small{margin-right:0}
 .seating-visual-archived-item .button{margin-left:auto}
 .seating-visual-add-actions .seating-visual-archive-table{max-width:49%;line-height:1.35}
}


/* v3.25.13: visual seating affordance, rather than discoverable-only chair clicks. */
.seating-visual-shell.is-seat-numbering-guide .seating-visual-stage.is-rect.is-selected .seating-visual-seat{
  outline:3px solid #527c48;outline-offset:2px;box-shadow:0 0 0 5px rgba(79,112,68,.2);opacity:1;
}
.seating-visual-shell.is-swap-mode .seating-visual-stage.is-swap-muted{opacity:.30;filter:grayscale(.65)}
.seating-visual-shell.is-swap-mode .seating-visual-stage.is-swap-target{opacity:1;z-index:4}
.seating-visual-shell.is-swap-mode .seating-visual-stage.is-swap-target .seating-visual-tabletop{
  outline:5px solid #386e41;outline-offset:7px;box-shadow:0 0 0 12px rgba(72,118,61,.2),0 12px 30px rgba(28,65,38,.17)!important
}
.seating-visual-shell.is-swap-mode .seating-visual-stage.is-swap-target::after{
  content:attr(data-swap-label);position:absolute;left:50%;top:-23px;transform:translateX(-50%);
  background:#356744;color:#fff;font:700 14px/1.2 system-ui,sans-serif;white-space:nowrap;
  border-radius:999px;padding:6px 12px;pointer-events:none;z-index:12
}
.seating-visual-shell.is-swap-mode .seating-visual-stage.is-swap-source{z-index:5;opacity:1;filter:none}
.seating-visual-shell.is-swap-mode .seating-visual-stage.is-swap-source .seating-visual-tabletop{
  outline:4px dashed #a87842;outline-offset:5px
}
/* v3.25.13 RC3: seat numbers belong inside round chairs, not detached
   above/outside them. The original HTML small label is always legible. */
.seating-visual-seat.is-round::after{content:none!important}
.seating-visual-seat.is-round>small,.seating-visual-seat.is-round .seating-visual-seat-edit-number{
  display:block!important;font-size:9px!important;line-height:1.12;font-weight:750;
  letter-spacing:.005em;margin-top:2px;color:inherit
}
.seating-visual-seat.is-round.is-empty .seating-visual-seat-edit-number{color:#6b6256}
.seating-visual-shell.is-edit-layout .seating-visual-seat.is-round.is-empty .seating-visual-seat-edit-number{display:block!important}
.seating-visual-shell.is-seat-numbering-guide .seating-visual-stage.is-round.is-selected .seating-visual-seat{
  outline:3px solid #527c48;outline-offset:2px;box-shadow:0 0 0 5px rgba(79,112,68,.2);opacity:1
}
/* Two different actions: red archive, neutral guest clearing/reset. */
.seating-visual-delete-table-button.is-danger{color:#b74444!important;border-color:#e2bcbc!important;background:#fff4f4!important}
.seating-visual-delete-table-button.is-danger:hover,.seating-visual-delete-table-button.is-danger:focus-visible{
  background:#fde8e8!important;border-color:#bb5151!important
}
.seating-visual-delete-table-button:disabled{opacity:.5;pointer-events:none}
/* Larger touch targets for the contextual Hall actions, including new Delete. */
.seating-visual-selected-actions .seating-visual-selected-icon{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;flex-basis:44px!important}
.seating-visual-selected-actions .seating-visual-selected-icon:focus-visible{outline:3px solid #527c48;outline-offset:3px}
.seating-visual-clear-table-button{color:#5b6f69!important;background:#f6f8f6!important}
@media (prefers-reduced-motion:reduce){.seating-visual-shell.is-swap-mode .seating-visual-stage{transition:none}}

/* v3.25.13 RC4 Ã¢â‚¬â€ Tables Hall: one seat-label system and context-only actions.
   All chair shapes and extra seats share the same typography. Color/occupied
   status remains semantic; typography does not change by shape or occupancy. */
.seating-visual-table-guest-actions{display:inline-flex;align-items:center;gap:8px;flex:none}
.seating-visual-table-guest-actions[hidden],
.seating-visual-shell.is-edit-layout .seating-visual-table-guest-actions,
.seating-visual-selected-actions .seating-visual-selected-icon[hidden]{display:none!important}
.seating-visual-seat>.seating-visual-seat-number,
.seating-visual-seat.is-round>.seating-visual-seat-number{
  display:block!important;
  margin-top:2px!important;
  font-size:8px!important;
  line-height:1.1!important;
  font-weight:750!important;
  letter-spacing:.005em!important;
  font-variant-numeric:tabular-nums;
  color:#74685e;
}
.seating-visual-seat.is-empty>span{font-size:15px;font-weight:400;line-height:1}
/* Edit Layout uses only the physical Sxx number, regardless of shape, Extra,
   occupied or Former state. No Add/Remove-guest affordances in this mode. */
.seating-visual-shell.is-edit-layout .seating-visual-seat>span,
.seating-visual-shell.is-edit-layout .seating-visual-seat>strong,
.seating-visual-shell.is-edit-layout .seating-visual-seat>.seating-visual-former-label{display:none!important}
.seating-visual-shell.is-edit-layout .seating-visual-seat>.seating-visual-seat-number{
  display:block!important;
  margin-top:0!important;
  font-size:9px!important;
  line-height:1.2!important;
  font-weight:750!important;
}
.seating-visual-clear-table-button{
  color:#75634d!important;
  background:#faf7f3!important;
  border-color:#e2d8cc!important;
}
.seating-visual-clear-table-button:hover:not(:disabled),
.seating-visual-clear-table-button:focus-visible{background:#f2eae0!important;border-color:#b99b7c!important}
/* Tiny secondary remove-guest icon should not be mistaken for table deletion. */
.seating-visual-clear-table-button svg{stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:720px){.seating-visual-table-guest-actions{gap:6px}}

/* Compact, Tables-only confirmation UI. Native <dialog> provides a focus trap,
   Escape cancellation, a real backdrop, and a top layer on iOS Safari. */
.tn-seating-action-dialog{
  box-sizing:border-box;width:min(420px,calc(100vw - 28px));max-width:420px;
  max-height:calc(100dvh - 32px);margin:auto;padding:0;
  overflow:auto;border:1px solid #e6ded5;border-radius:18px;
  background:#fff;color:#493e35;
  box-shadow:0 26px 80px rgba(35,29,23,.22);
}
.tn-seating-action-dialog::backdrop{background:rgba(32,26,22,.42);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.tn-seating-action-dialog .tn-seating-action-panel{display:grid;justify-items:start;padding:25px;gap:0}
.tn-seating-action-symbol{
  display:grid;place-items:center;width:34px;height:34px;margin-bottom:16px;
  border:1px solid #e4dbd0;border-radius:11px;background:#f6f2ed;
  color:#776658;font-size:20px;line-height:1;font-weight:750;
}
.tn-seating-action-dialog.is-danger .tn-seating-action-symbol{background:#fdf0ef;border-color:#efcecb;color:#a84440}
.tn-seating-action-dialog.is-warning .tn-seating-action-symbol{background:#fff7e9;border-color:#f0dfbe;color:#996a31}
.tn-seating-action-panel h2{margin:0;color:#40382f;font-size:19px;font-weight:700;line-height:1.25}
.tn-seating-action-panel p{margin:10px 0 22px;color:#71665c;font-size:13px;line-height:1.65;white-space:pre-line;overflow-wrap:anywhere}
.tn-seating-action-buttons{display:flex;gap:9px;justify-content:flex-end;width:100%}
.tn-seating-action-buttons .button{min-width:96px;min-height:44px;padding:10px 14px;font-size:12px;font-weight:700;justify-content:center}
.tn-seating-action-buttons .tn-seating-action-accept{background:#594939;border-color:#594939;color:#fff}
.tn-seating-action-dialog.is-danger .tn-seating-action-accept{background:#a84440;border-color:#a84440;color:#fff}
.tn-seating-action-buttons .button:focus-visible{outline:3px solid #618055;outline-offset:3px}
.tn-seating-action-notice{
  position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));
  transform:translateX(-50%);z-index:2000;padding:11px 16px;border-radius:12px;
  background:#483e36;color:#fff;box-shadow:0 15px 35px rgba(40,31,25,.24);
  font-size:12px;font-weight:650;max-width:min(480px,calc(100% - 30px));
}
.tn-seating-action-notice.is-error{background:#914c45}
.tn-seating-action-notice[hidden]{display:none!important}
@media(max-width:480px){
  .tn-seating-action-dialog .tn-seating-action-panel{padding:21px}
  .tn-seating-action-buttons{display:grid;grid-template-columns:1fr 1fr}
  .tn-seating-action-buttons .button{min-width:0;padding:10px 8px}
}
@media(prefers-reduced-motion:reduce){.tn-seating-action-dialog,.tn-seating-action-dialog *{transition:none!important;animation:none!important}}

/* v3.26.0: selected-table compact hierarchy; keep the title separate from
   contextual buttons at every mobile width. Remove obsolete Extra seats label. */
.seating-visual-extra-title{display:none!important}
.seating-visual-extra-control{min-width:0!important;gap:6px!important;padding:4px 6px!important}
.seating-visual-selected-copy{min-width:0!important;max-width:100%}
.seating-visual-selected-copy>strong,.seating-visual-selected-copy>small{max-width:100%;overflow-wrap:anywhere}
@media(max-width:800px){
  .seating-visual-table-controls{
    display:grid!important;grid-template-columns:minmax(0,1fr)!important;
    align-items:start!important;justify-items:stretch;gap:10px!important;
    padding:13px 14px!important;overflow:visible!important;white-space:normal!important;
  }
  .seating-visual-table-controls>.seating-visual-selected-copy{
    grid-column:1;grid-row:auto;min-width:0;width:100%;margin:0!important;
  }
  .seating-visual-table-controls>.seating-visual-selected-actions{
    grid-column:1;grid-row:auto;display:flex;flex-wrap:wrap!important;
    justify-content:flex-start!important;align-items:center;
    width:100%!important;min-width:0;gap:8px!important;overflow:visible!important;
  }
  .seating-visual-table-controls>.seating-visual-extra-control{
    grid-column:1;grid-row:auto;justify-self:start;max-width:100%;
    flex-wrap:wrap;align-items:center;
  }
  .seating-visual-selected-copy>strong{white-space:normal!important;line-height:1.3!important}
  .seating-visual-selected-copy>small{font-size:11px;line-height:1.45!important}
}

/* v3.26.0 Admin published-language switch; private preview remains independent. */
.admin-nav-language-switch{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #ded5ca;border-radius:11px;margin:7px 9px;background:#fcfaf7}
.admin-nav-language-switch form{display:inline-flex;margin:0}
.admin-nav-language-option{min-width:40px;min-height:36px;border:1px solid transparent;border-radius:7px;background:transparent;color:#84776a;font-size:11px;font-weight:800;cursor:pointer}
.admin-nav-language-option.is-active{background:#ede5db;border-color:#d8cab9;color:#553f30}
.admin-nav-language-option:focus-visible{outline:3px solid #bb9878;outline-offset:2px}

/* v3.26.0 RC2: compact Admin locale switch and sidebar document scrolling.
   Desktop: no second scroll region; the page remains scrollable when the menu
   is taller than a short viewport. Mobile: preserve the accessible drawer scroll. */
.admin-nav .admin-nav-language-switch{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:center;
  width:max-content;
  max-width:calc(100% - 16px);
  gap:2px;
  padding:3px;
  margin:3px 8px 0;
  border:1px solid rgba(255,255,255,.13);
  border-radius:10px;
  background:rgba(255,255,255,.045);
  box-shadow:none;
}
.admin-nav .admin-nav-language-switch form{display:block;min-width:0;margin:0}
.admin-nav .admin-nav-language-option{
  appearance:none;
  display:grid;
  place-items:center;
  min-width:38px;
  min-height:34px;
  padding:6px 8px;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:#c9c0b7;
  font:700 11px/1.2 Inter,"Noto Sans Georgian",ui-sans-serif,sans-serif;
  letter-spacing:.035em;
  cursor:pointer;
  transition:background-color .16s ease,color .16s ease;
}
.admin-nav .admin-nav-language-option:hover{background:rgba(255,255,255,.10);color:#fff}
.admin-nav .admin-nav-language-option.is-active{
  background:rgba(255,255,255,.17);
  border-color:rgba(255,255,255,.12);
  color:#fff;
}
.admin-nav .admin-nav-language-option.is-active:hover{background:rgba(255,255,255,.22)}
.admin-nav .admin-nav-language-option:focus-visible{outline:2px solid #d7b599;outline-offset:2px}
@media(min-width:901px){
  .admin-nav{
    gap:14px;
    height:auto;
    min-height:calc(100dvh - 32px);
    max-height:none;
    overflow-x:clip;
    overflow-y:visible;
    overscroll-behavior:auto;
    padding-top:20px;
    padding-bottom:20px;
  }
  .admin-nav nav a{min-height:37px;padding:7px 8px}
  .admin-nav-footer{gap:6px;padding-top:12px}
  .admin-nav-footer>a{min-height:35px;padding:5px 8px}
  /* Earlier collapsed-rail overflow-x:hidden forced overflow-y into auto. */
  html.admin-sidebar-collapsed .admin-nav{
    overflow-x:clip;
    overflow-y:visible;
  }
  html.admin-sidebar-collapsed .admin-nav-language-switch{
    grid-template-columns:1fr;
    justify-items:center;
    width:44px;
    max-width:100%;
    margin:3px auto 0;
    padding:3px;
  }
  html.admin-sidebar-collapsed .admin-nav-language-option{min-width:34px;min-height:33px;padding:5px}
}
/* Sticky sidebar only where its menu comfortably fits. On shorter laptops,
   let the main document scroll so bottom navigation remains reachable. */
@media(min-width:901px) and (max-height:850px){
  .admin-nav{position:relative;top:auto;align-self:start}
}
@media(max-width:900px){
  .admin-nav .admin-nav-language-option{min-width:44px;min-height:44px;font-size:12px}
  /* The mobile sidebar is an overlay; scrolling inside it is intentional. */
  .admin-nav{overflow-y:auto}
}
@media(prefers-reduced-motion:reduce){
  .admin-nav .admin-nav-language-option{transition:none}
}


/* v3.26.0 Hall QA hotfix: locale-safe toolbar containment.
   Georgian/English labels can be longer than the same three-column toolbar.
   Let content set the button height rather than clipping or overlapping text.
   These rules affect only the Visual Hall actions, not other Admin buttons. */
.seating-visual-shell .seating-visual-primary-actions{min-width:0;max-width:100%}
.seating-visual-shell .seating-visual-primary-actions .seating-visual-head-tool{
  box-sizing:border-box;
  min-width:0;
  max-width:100%;
  height:auto;
  min-height:44px;
  padding-block:9px;
  white-space:normal;
  text-align:center;
  overflow-wrap:anywhere;
}
.seating-visual-shell .seating-visual-head-tool-label{
  min-width:0;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.25;
  text-align:center;
  font-size:clamp(.6875rem,.85vw,.75rem);
}
.seating-visual-shell .seating-visual-primary-actions .seating-visual-head-tool>svg{
  flex-shrink:0;
}
@media(max-width:720px){
  .seating-visual-shell .seating-visual-primary-actions{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
    gap:6px;
  }
  .seating-visual-shell .seating-visual-primary-actions .seating-visual-head-tool{
    width:100%;
    height:auto;
    min-height:48px;
    padding:8px 7px;
    gap:5px;
  }
  .seating-visual-shell .seating-visual-head-tool-label{
    font-size:clamp(.625rem,1.85vw,.75rem);
    line-height:1.3;
  }
}
@media(max-width:540px){
  .seating-visual-shell .seating-visual-primary-actions .seating-visual-head-tool{
    flex-direction:column;
    justify-content:center;
    min-height:72px;
    padding:8px 5px;
    gap:5px;
  }
  .seating-visual-shell .seating-visual-primary-actions .seating-visual-head-tool>svg{
    width:18px;
    height:18px;
    flex:0 0 18px;
  }
  .seating-visual-shell .seating-visual-head-tool-label{
    font-size:.6875rem;
    line-height:1.3;
  }
}

/* Landscape PWA fullscreen deliberately uses 40px icon-only controls so
   the search field and action toolbar fit on one short landscape row. */
@media(orientation:landscape) and (pointer:coarse) and (max-height:520px){
  .seating-visual-shell:fullscreen .seating-visual-primary-actions .seating-visual-head-tool,
  .seating-visual-shell.is-fallback-fullscreen .seating-visual-primary-actions .seating-visual-head-tool{
    width:40px;
    min-width:40px;
    max-width:40px;
    height:40px;
    min-height:40px;
    padding:0;
    gap:0;
    flex-direction:row;
  }
}


/* v3.26.0 RC4 â€” Figma 288:6484: scoped Hall visual polish.
   Only the Fit Hall *button* was removed from PHP: fitHall() still runs at
   initialization. No guest, RSVP, table-layout or zoom logic is changed. */

/* Layout options: icon-only on desktop and mobile, native details semantics. */
.seating-layout-toolbar .seating-layout-options > summary{
  box-sizing:border-box;
  width:44px;
  min-width:44px;
  height:44px;
  min-height:44px;
  padding:0;
  gap:0;
  display:grid;
  place-items:center;
  border-radius:11px;
}
.seating-layout-toolbar .seating-layout-options > summary .seating-layout-settings-icon{
  width:18px;
  height:18px;
}
.seating-layout-toolbar .seating-layout-options > summary:hover{background:#f6f4f1}
.seating-layout-toolbar .seating-layout-options > summary:focus-visible{outline:3px solid #80694b;outline-offset:3px}

/* Extra Slot controls: same two-card treatment on mobile and desktop.
   A green card means a real, enabled extra seat; available slots stay neutral. */
.seating-visual-shell .seating-visual-table-controls > .seating-visual-extra-control:not([hidden]){
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:10px!important;
  flex:0 1 330px;
  width:min(330px,100%);
  max-width:100%;
  min-width:0!important;
  height:auto;
  margin-left:auto;
  padding:0!important;
  border:0!important;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.seating-visual-shell .seating-visual-extra-slot{
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  width:100%;
  min-width:0;
  min-height:48px;
  padding:9px 11px;
  border:1px solid #ded8cd;
  border-radius:11px;
  background:#fff;
  color:#625f58;
  white-space:normal;
  text-align:left;
  overflow-wrap:anywhere;
}
.seating-visual-shell .seating-visual-extra-slot strong{
  font-size:11px;
  font-weight:800;
  line-height:1.2;
  font-variant-numeric:tabular-nums;
}
.seating-visual-shell .seating-visual-extra-slot small{
  max-width:100%;
  margin:0;
  color:#898278;
  font-size:10px;
  font-weight:600;
  line-height:1.3;
  white-space:normal;
  overflow-wrap:anywhere;
}
.seating-visual-shell .seating-visual-extra-slot.is-active,
.seating-visual-shell .seating-visual-extra-slot[aria-pressed="true"]{
  border-color:#a5bda5;
  background:#eef6ed;
  color:#38663d;
  box-shadow:none;
}
.seating-visual-shell .seating-visual-extra-slot.is-active small,
.seating-visual-shell .seating-visual-extra-slot[aria-pressed="true"] small{color:#547a53}
.seating-visual-shell .seating-visual-extra-slot:hover:not(:disabled){border-color:#88a487;background:#f4f9f2}
.seating-visual-shell .seating-visual-extra-slot:focus-visible{outline:3px solid #527c48;outline-offset:2px}
.seating-visual-shell .seating-visual-extra-slot:disabled{opacity:.45;cursor:not-allowed}

/* Figma mobile: header is view/settings first, then layout tabs. Search,
   paired primary actions and zoom form clear, independent rows. */
@media(max-width:720px){
  .seating-layout-toolbar{
    grid-template-columns:minmax(0,1fr) 44px;
    grid-template-areas:"views options" "layouts layouts";
    align-items:center;
    gap:8px;
    padding:10px;
  }
  .seating-layout-toolbar .seating-view-switcher{grid-area:views;justify-self:start;width:auto;max-width:100%}
  .seating-layout-toolbar .seating-layout-options{grid-area:options;justify-self:end}
  .seating-layout-toolbar .seating-layout-main{
    grid-area:layouts;
    display:flex;
    align-items:center;
    min-width:0;
    width:100%;
    gap:7px;
  }
  .seating-layout-toolbar .seating-layout-tabs{
    flex:1 1 auto;
    min-width:0;
    padding:3px 1px 5px;
    gap:7px;
    justify-content:flex-start;
  }
  .seating-layout-toolbar .seating-layout-tabs>.seating-layout-tab:first-child{margin-inline-start:0}
  .seating-layout-toolbar .seating-layout-tabs>.seating-layout-tab:last-child{margin-inline-end:0}
  .seating-layout-toolbar .seating-layout-add{flex:none;width:44px;height:44px}

  .seating-visual-shell:not(:fullscreen):not(.is-fallback-fullscreen) .seating-visual-head{
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:8px;
    padding:10px;
  }
  .seating-visual-shell:not(:fullscreen):not(.is-fallback-fullscreen) .seating-visual-head-actions{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    width:100%;
    gap:8px;
    margin:0;
  }
  .seating-visual-shell:not(:fullscreen):not(.is-fallback-fullscreen) .seating-visual-primary-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    min-width:0;
    gap:10px;
  }
  .seating-visual-shell:not(:fullscreen):not(.is-fallback-fullscreen) .seating-visual-primary-actions .seating-visual-head-tool{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    width:100%;
    min-width:0;
    min-height:72px;
    height:auto;
    padding:9px 6px;
    gap:6px;
    border-radius:11px;
  }
  .seating-visual-shell:not(:fullscreen):not(.is-fallback-fullscreen) .seating-visual-primary-actions .seating-visual-head-tool>svg{
    flex:0 0 18px;
    width:18px;
    height:18px;
  }
  .seating-visual-shell:not(:fullscreen):not(.is-fallback-fullscreen) .seating-visual-head-tool-label{
    width:100%;
    max-width:100%;
    font-size:clamp(10px,2.7vw,11px);
    font-weight:750;
    line-height:1.3;
    white-space:normal;
    text-align:center;
    overflow-wrap:anywhere;
  }
  .seating-visual-shell:not(:fullscreen):not(.is-fallback-fullscreen) .seating-visual-zoom-actions{
    display:grid;
    grid-template-columns:44px minmax(0,1fr) 44px 44px;
    align-items:center;
    gap:7px;
    width:100%;
  }
  .seating-visual-shell .seating-visual-table-controls > .seating-visual-extra-control:not([hidden]){
    grid-column:1/-1;
    width:100%;
    max-width:100%;
    flex:none;
    margin:0;
  }
}
@media (prefers-reduced-motion:reduce){
  .seating-layout-toolbar .seating-layout-options > summary,
  .seating-visual-shell .seating-visual-extra-slot{transition:none}
}

/* 3D venue structural column anchors on the canonical v4 Visual Hall canvas. */
.seating-visual-venue-column{position:absolute;width:48px;height:48px;pointer-events:none;z-index:1;transform:translate(-50%,-50%);border:5px solid #9b784f;border-radius:50%;background:repeating-linear-gradient(45deg,#d9c19f 0,#d9c19f 6px,#c8b08e 6px,#c8b08e 12px);box-shadow:0 0 0 13px rgba(175,121,65,.12),0 0 0 1px rgba(83,59,35,.3) inset}
.seating-visual-venue-column::after{content:'COLUMN';position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);font:700 13px/1.2 system-ui,sans-serif;letter-spacing:.06em;color:#7d5435;white-space:nowrap;text-shadow:0 1px #fff}

.seating-visual-stage.is-venue-column-overlap{outline:3px solid rgba(180,72,27,.75);outline-offset:3px}
.seating-visual-column-overlap-note{position:absolute;top:-29px;left:50%;transform:translateX(-50%);pointer-events:none;z-index:9;white-space:nowrap;padding:3px 8px;border-radius:5px;background:#7a391d;color:#fff;font:700 12px/1.2 system-ui,sans-serif;letter-spacing:.04em}

/* v3.26.9.4: compact 44px rectangular side chairs; 2px+ pitch is guaranteed by the footprint contract. */
.seating-visual-stage.is-rect .seating-visual-seat:not(.is-extra){width:44px}

/* v3.26.9.10: Edit Layout keeps names + canonical Seat Code visible. */
.seating-visual-shell.is-edit-layout .seating-visual-seat.is-occupied>strong{
  display:block!important;max-width:43px;font-size:8px;line-height:1.1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5a4d45;
}
.seating-visual-shell.is-edit-layout .seating-visual-seat.is-occupied>.seating-visual-seat-number{
  display:block!important;margin-top:2px!important;font-size:8px!important;color:#62727a;
}
.seating-visual-shell.is-seat-move-picker .seating-visual-seat.is-moving-source{
  outline:3px solid #4f7044;outline-offset:3px;box-shadow:0 0 0 6px rgba(79,112,68,.16);
}
.seating-visual-suggestion-hint{margin:8px 0;padding:9px 11px;border-radius:10px;
  border:1px solid #c5d5c0;background:#f3f9ef;color:#375f3a;font-size:12px;line-height:1.45}
.seating-visual-seating-undo:disabled{opacity:.48;cursor:not-allowed}
.seating-visual-drawer-foot [data-visual-move-seat]{margin-right:8px}
@media(max-width:720px){
  .seating-visual-primary-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .seating-visual-shell .seating-visual-primary-actions .seating-visual-head-tool{min-width:0!important}
}


/* v3.26.9.11: mobile Move/Swap is dismissed by tapping empty Hall space.
   The compact status badge sits outside the scaled canvas so its text stays readable. */
.seating-visual-seat-move-indicator{display:none}
.seating-visual-seat-move-indicator[hidden]{display:none!important}
@media(max-width:720px){
  .seating-visual-shell.is-seat-move-picker .seating-visual-seat-move-indicator:not([hidden]){
    position:absolute;top:12px;left:50%;z-index:15;
    display:inline-flex;align-items:center;gap:7px;
    max-width:calc(100% - 32px);min-height:34px;
    padding:6px 12px;border:1px solid #9ab996;border-radius:999px;
    color:#2c5435;background:rgba(245,250,242,.96);
    box-shadow:0 5px 18px rgba(47,83,50,.13);
    font-size:11px;font-weight:750;line-height:1.3;
    transform:translateX(-50%);pointer-events:none;
  }
  .seating-visual-seat-move-indicator>span:last-child{
    min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .seating-visual-seat-move-dot{
    flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:#528454;
    box-shadow:0 0 0 3px rgba(82,132,84,.13);
  }
}

/* v3.26.9.12: Seating-only Undo/Redo history controls; no Hall geometry changes. */
.seating-visual-history-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:19px;height:19px;padding:0 5px;box-sizing:border-box;
  border-radius:99px;background:#e9f1e4;color:#375e3a;
  font-size:10px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;
}
.seating-visual-history-count[hidden]{display:none!important}
.seating-visual-seating-redo:disabled,.seating-visual-seating-undo:disabled{opacity:.48;cursor:not-allowed}
@media(max-width:720px){
  .seating-visual-primary-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .seating-visual-shell:not(:fullscreen):not(.is-fallback-fullscreen) .seating-visual-primary-actions{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px;
  }
  .seating-visual-shell .seating-visual-primary-actions .seating-visual-head-tool{padding-inline:4px}
  .seating-visual-history-count{min-width:18px;height:18px;font-size:10px}
}
@media(max-width:370px){
  .seating-visual-shell .seating-visual-primary-actions .seating-visual-head-tool{gap:3px}
  .seating-visual-history-count{min-width:16px;height:16px;font-size:9px}
}


/* v3.26.9.15 â€” Custom-deadline closed RSVP: existing arch + Figma 299:366 seating.
   Open RSVP, Guest Hall, QR and PWA views are deliberately untouched. */
.figma-countdown[hidden]{display:none!important}
.figma-hero.is-rsvp-closed{height:auto;min-height:min(896px,calc(100svh - 148px));padding-block:24px}
.figma-hero.is-rsvp-closed .figma-hero-arch{height:auto;min-height:670px;justify-content:flex-start;padding-top:152px;padding-bottom:56px}
.figma-closed-seating{width:100%;max-width:520px;min-width:0;margin-top:24px;color:#3d3026;text-align:left}
.figma-closed-seating-heading{margin:0!important;padding:12px 0 16px;font-family:var(--display-font,var(--heading-font))!important;font-size:24px!important;line-height:1.28!important;letter-spacing:0!important;font-weight:400!important;text-align:center;color:#704829}
.figma-closed-seating-list{width:100%;min-width:0}
.figma-closed-seating-row{width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;padding:10px;border-bottom:1px solid rgba(61,48,38,.18)}
.figma-closed-seating-row.is-not-attending,.figma-closed-seating-row.is-pending{opacity:.5}
.figma-closed-seating-person{display:flex;align-items:center;flex-direction:row;gap:2px;min-width:90px;flex:1 1 100px;align-content:center;justify-content:space-between}
.figma-closed-seating-person>strong{font-family:var(--sans-font,inherit);font-weight:600;font-size: 14px;line-height:28px;color:#704829;overflow-wrap:anywhere;min-width:0}
.figma-closed-seating-status{display:inline-flex;gap:5px;align-items:center;min-height:17px;font-family:var(--sans-font,inherit);font-size:11px;line-height:1.3;color:#807267;flex:0 1 auto;justify-content:flex-end;text-align:right}
.figma-closed-seating-status .ui-icon{width:13px;height:13px}
.figma-closed-seating-status.is-attending{color:#3b7551}
.figma-closed-seating-status.is-not_attending{color:#986051}
.figma-closed-seating-status.is-pending{color:#807267}
.figma-closed-status-cross{display:inline-grid;place-items:center;width:13px;height:13px;font-size:15px;font-weight:600;line-height:1}
.figma-closed-seating-place{display:flex;align-items:center;justify-content: space-between;flex-wrap:wrap;gap:6px 10px;min-width:0;flex-direction: row;align-content: center;}
.figma-closed-place-label{display:inline-flex;align-items:center;gap:4px;font-size:14px;line-height:27px;color:#3d3026;white-space:nowrap}
.figma-closed-place-label b{display:inline-flex;align-items:center;justify-content:center;min-width:40px;max-width:150px;min-height:30px;padding:0 10px;border:1px solid #a87938;border-radius:999px;background:#f0e2ca;font-size:14px;font-weight:400;line-height:1.15;overflow-wrap:anywhere;white-space:normal;text-align:center}
.figma-closed-rsvp-note{margin:18px auto 0;max-width:460px;color:#807267;font-family:var(--sans-font,inherit);font-size:12px;line-height:1.6;text-align:center}
.figma-closed-hero-actions{width:100%;display:flex;align-items:stretch;gap:16px;margin-top:24px}
.figma-closed-hero-actions>.landing-digital-pass-action{width:auto;min-width:0;flex:1 1 0;margin:0;padding:0;border:0;align-self:stretch;display:flex;justify-content:stretch;text-align:center}
.figma-closed-hero-actions>.landing-digital-pass-action .digital-pass-menu-trigger{width:100%!important;min-height:60px!important;height:60px;margin:0!important;padding:14px 12px!important;display:flex!important;justify-content:center;align-items:center;gap:7px!important;border:1px solid #48372c!important;border-radius:999px!important;background:#704829!important;color:#fffdf9!important;box-shadow:none!important;font-family:var(--sans-font,inherit);font-size:14px!important;font-weight:600!important;line-height:17.5px!important;letter-spacing:0!important;text-transform:none!important}
.figma-closed-hero-actions>.landing-digital-pass-action .digital-pass-menu-trigger:hover{background:#583913!important;border-color:#48372c!important;transform:none!important}
.figma-closed-hero-actions>.landing-digital-pass-action .digital-pass-menu-trigger>.rsvp-action-trailing{display:none!important}
.figma-closed-hero-actions>.landing-digital-pass-action .digital-pass-menu-trigger>.rsvp-action-label{width:auto;min-width:0;flex:0 1 auto;font-size:14px!important;font-weight:600!important;line-height:17.5px!important;letter-spacing:0!important;text-align:center;white-space:normal}
.figma-closed-hero-actions>.landing-digital-pass-action .digital-pass-menu-trigger>.rsvp-action-leading{position:static!important;inset:auto!important;transform:none!important;display:grid;place-items:center;width:19px;height:19px;flex:0 0 19px}
.figma-closed-hero-actions>.landing-digital-pass-action .digital-pass-menu-trigger>.rsvp-action-leading svg{width:19px;height:19px;fill:#fffdf9}
.figma-closed-hero-hall{box-sizing:border-box;flex:1 1 0;min-width:0;min-height:60px;height:60px;margin:0!important;padding:14px 12px;display:flex;justify-content:center;align-items:center;gap:7px;border:1px solid #a87938;border-radius:999px;background:#f0e2ca;color:#583913;text-decoration:none;font-family:var(--sans-font,inherit);font-size:14px;font-weight:700;line-height:24.8px;letter-spacing:0;text-align:center;transition:background .18s ease}
.figma-closed-hero-hall:hover{background:#e8d6b7}
.figma-closed-hero-hall:focus-visible,.figma-closed-hero-actions .digital-pass-menu-trigger:focus-visible{outline:3px solid #a87938;outline-offset:3px}
.figma-closed-hero-hall img{width:19px;height:19px;flex:0 0 19px}
@media(min-width:1281px){
  .figma-hero.is-rsvp-closed{height:auto;min-height:896px}
  .figma-hero.is-rsvp-closed .figma-hero-arch{height:auto;min-height:670px;padding-top: 120px;padding-bottom: 48px;}
  .figma-hero.is-rsvp-closed .figma-hero-arch-stroke{height:auto;bottom:14px}
}
@media(max-width:1280px){
  .figma-hero.is-rsvp-closed .figma-hero-arch{padding-top:92px;padding-bottom:54px}
  .figma-closed-seating{max-width:100%}
}
@media(max-width:680px){
  .figma-hero.is-rsvp-closed{padding-block:12px;min-height:0}
  .figma-hero.is-rsvp-closed .figma-hero-arch{padding-top: 40px;padding-bottom: 40px;min-height:0}
  .figma-closed-seating{margin-top:20px}
  .figma-closed-seating-row{padding: 6px 10px;}
  .figma-closed-seating-person{min-width:90px}
  .figma-closed-seating-place{width:100%;gap:8px}
  .figma-closed-seating-heading{font-size: 16px!important;}
  .figma-closed-hero-actions{flex-direction:column;gap:10px;margin-top:18px}
  .figma-closed-hero-actions>.landing-digital-pass-action{width:100%;flex:auto}
  .figma-closed-hero-actions>.landing-digital-pass-action .digital-pass-menu-trigger,
  .figma-closed-hero-hall{width:100%!important;min-height:60px!important;height:60px}
}
@media(prefers-reduced-motion:reduce){.figma-closed-hero-hall{transition:none}}
/* Equal-width Figma action slots: one available action automatically fills the row. */
.figma-closed-hero-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.figma-closed-hero-actions>.landing-digital-pass-action{width:100%;min-width:0}
.figma-closed-hero-actions>.figma-closed-hero-hall{width:100%}
@media(max-width:680px){.figma-closed-hero-actions{grid-template-columns:minmax(0,1fr)}}

/* v3.26.9.15 RC3 â€” desktop/laptop display-heading sizing.
   Mobile typography, GL Parizuli and text-motion remain unchanged. */
@media (min-width:981px) and (max-width:1280px){
  .figma-hero h1,.lang-ka .figma-hero h1{font-size:48px;letter-spacing:-2.5px}
}
