@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');

:root{--ink:#1d2925;--muted:#75817a;--line:#e7e9e2;--paper:#f6f6f1;--white:#fff;--forest:#29453a;--forest-dark:#1e342c;--moss:#c4d0bd;--lime:#dce7bd;--rose:#d9a79a;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:14px;font-weight:700;letter-spacing:.01em}.brand-mark{display:grid;width:31px;height:31px;place-items:center;border-radius:50%;background:var(--forest);color:#edf0e5;font-family:var(--serif);font-size:17px;font-weight:400}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:22px;padding:0 20px;border:0;border-radius:3px;background:var(--forest);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:var(--forest-dark);transform:translateY(-1px)}.button span{font-size:15px}.button-small{min-height:40px;padding:0 15px;font-size:11px}.button-wide{width:100%}.button-dark{background:var(--forest)}.eyebrow{margin:0;color:#7f897e;font-size:9px;font-weight:700;letter-spacing:.17em;line-height:1.5}.text-link{display:inline-flex;align-items:center;gap:11px;border-bottom:1px solid #adb7ab;padding-bottom:5px;font-size:11px;font-weight:600}.text-link span{font-size:14px}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 7.5%;background:var(--paper)}.site-nav{display:flex;align-items:center;gap:33px}.site-nav>a:not(.button){font-size:11px;color:#56625b}.site-nav .nav-login{margin-left:5px}.home-hero{position:relative;display:grid;min-height:555px;grid-template-columns:.91fr 1.09fr;padding:28px 7.5% 58px}.hero-copy{align-self:center;position:relative;z-index:2;padding:0 5% 0 0;animation:rise .65s ease-out both}.hero-copy .eyebrow{display:flex;align-items:center;gap:9px}.eyebrow-dot{width:6px;height:6px;border-radius:50%;background:#93a784}.hero-copy h1,.dashboard-heading h1,.auth-form-wrap h1{margin:23px 0 17px;font-family:var(--serif);font-size:49px;font-weight:400;line-height:1.13;letter-spacing:0}.hero-copy h1 em,.dashboard-heading h1 em,.auth-form-wrap h1 em,.event-copy h2 em,.rsvp-heading h2 em{color:#758a72;font-weight:400}.hero-description{max-width:410px;color:#6c7770;font-size:13px;line-height:1.85}.hero-actions{display:flex;align-items:center;gap:25px;margin-top:27px}.hero-proof{display:flex;align-items:center;gap:12px;margin-top:43px;color:#768078;font-size:10px}.avatar-stack{display:flex;padding-left:2px}.avatar-stack span{display:grid;width:27px;height:27px;place-items:center;margin-left:-3px;border:2px solid var(--paper);border-radius:50%;background:#bdc7b3;color:#38483d;font-family:var(--serif);font-size:11px}.avatar-stack span:nth-child(2){background:#d7b5a4}.avatar-stack span:nth-child(3){background:#e4d8bd}.hero-art{position:relative;min-height:450px;overflow:hidden;background:#645848 url('https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1400&q=85') center 45%/cover;animation:fadeIn .9s ease-out both}.hero-art-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,34,29,.08),rgba(23,35,29,.12) 48%,rgba(23,35,29,.63))}.hero-note{position:absolute;right:10%;bottom:15%;left:10%;display:flex;align-items:center;flex-direction:column;color:white;text-align:center}.hero-note .note-kicker{font-size:8px;letter-spacing:.26em}.hero-note strong{margin:10px 0;font-family:var(--serif);font-size:44px;font-weight:400;line-height:1.05}.hero-note strong i,.cover-copy strong i,.invite-cover-content h1 i,.invite-footer strong i{font-weight:400;color:#d5c39d}.hero-note>span:last-child{font-size:8px;letter-spacing:.2em}.art-caption{position:absolute;right:20px;bottom:18px;left:20px;display:flex;justify-content:space-between;color:#f2eee5;font-size:8px;letter-spacing:.13em}.hero-side-label{position:absolute;right:2.8%;top:48%;writing-mode:vertical-rl;color:#899188;font-size:8px;letter-spacing:.2em}.intro-strip{display:grid;min-height:195px;grid-template-columns:1fr 2.2fr 50px;align-items:center;gap:30px;padding:35px 12%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#efefe8}.intro-strip>p{max-width:650px;margin:0;font-family:var(--serif);font-size:29px;line-height:1.35}.intro-strip>p em{color:#7d8e77;font-weight:400}.round-link{display:grid;width:42px;height:42px;place-items:center;border:1px solid #b4beb2;border-radius:50%;font-size:18px}.feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9%;padding:72px 12% 85px}.feature-row article{max-width:275px}.feature-index{color:#8e9b8b;font-size:9px;letter-spacing:.1em}.feature-row h2{margin:17px 0 10px;font-family:var(--serif);font-size:21px;font-weight:400}.feature-row p{margin:0;color:#78817a;font-size:11px;line-height:1.8}.site-footer{display:flex;align-items:center;justify-content:space-between;padding:25px 7.5%;border-top:1px solid var(--line);color:#737d75;font-size:10px}.site-footer>a:last-child{color:var(--forest);font-weight:600}

/* Authentication */
.auth-page{min-height:100vh;background:#edf0e8}.auth-shell{max-width:1120px;margin:0 auto;padding:32px 34px}.auth-brand{margin:0 0 25px}.auth-panel{display:grid;min-height:650px;grid-template-columns:.9fr 1.1fr;background:#fff;box-shadow:0 22px 70px rgba(39,57,46,.08);animation:rise .55s ease-out both}.auth-image{position:relative;min-height:650px;background:#77776a url('https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&w=1100&q=85') center/cover}.auth-image:after{position:absolute;inset:0;background:linear-gradient(0deg,rgba(30,43,35,.64),transparent 55%);content:''}.auth-image-caption{position:absolute;z-index:1;bottom:44px;left:40px;color:white;font-family:var(--serif);font-size:29px;line-height:1.3}.auth-image-caption em{color:#dfd5bd;font-weight:400}.auth-form-wrap{align-self:center;max-width:490px;padding:55px 13%}.back-link{display:inline-block;margin-bottom:37px;color:#79827a;font-size:10px}.auth-form-wrap h1{margin:17px 0 10px;font-size:38px}.auth-intro{margin:0 0 27px;color:#818a83;font-size:11px}.form-stack{display:flex;flex-direction:column;gap:15px}.form-stack label,.editor-form label{display:flex;flex-direction:column;gap:7px;color:#566159;font-size:10px;font-weight:600}.form-stack input,.form-stack textarea,.form-stack select,.editor-form input,.editor-form textarea{width:100%;min-height:43px;padding:11px 12px;border:1px solid #e1e5dd;border-radius:2px;outline:0;background:#fff;color:var(--ink);font-size:11px;font-weight:400;transition:border-color .2s,box-shadow .2s}.form-stack input:focus,.form-stack textarea:focus,.form-stack select:focus,.editor-form input:focus,.editor-form textarea:focus{border-color:#829981;box-shadow:0 0 0 3px rgba(111,143,110,.11)}.form-stack textarea,.editor-form textarea{resize:vertical}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-error{color:#a8473d;font-size:10px;font-weight:400}.form-field .form-control.is-invalid,.form-field input.is-invalid,.form-field select.is-invalid,.form-field textarea.is-invalid,.form-field .form-control.is-invalid:focus{border-color:#a8473d!important;box-shadow:0 0 0 3px rgba(168,71,61,.12)!important}.field-hint{color:#89938a;font-size:9px;font-weight:400}.auth-form-wrap .button{margin-top:6px}.auth-switch{margin:23px 0 0;text-align:center;color:#7b847c;font-size:10px}.auth-switch a{color:var(--forest);font-weight:700}.check-label{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important}.check-label input{width:13px;height:13px;min-height:auto;accent-color:var(--forest)}

/* Dashboard */
.dashboard-page{background:#f7f8f4}.dashboard-shell{display:grid;min-height:100vh;grid-template-columns:235px minmax(0,1fr)}.sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;padding:26px 18px 17px;background:var(--forest-dark);color:#dfe7db}.sidebar-brand{color:#f0f2ec}.sidebar-brand .brand-mark{background:#d8e1cd;color:#29443a}.workspace-label{margin:56px 0 13px 11px;color:#92a397;font-size:8px;font-weight:700;letter-spacing:.16em}.side-nav{display:flex;flex-direction:column;gap:4px}.side-link{display:flex;min-height:41px;align-items:center;gap:12px;padding:0 11px;border-radius:3px;color:#b4c2b7;font-size:10px;transition:.2s}.side-link>span{width:15px;color:#a4b39f;font-size:15px;text-align:center}.side-link:hover,.side-link.active{background:#344d40;color:#fff}.side-link b{display:grid;width:19px;height:19px;place-items:center;margin-left:auto;border-radius:50%;background:#526b59;color:white;font-size:9px}.sidebar-bottom{margin-top:auto;padding:16px 13px;background:#2c4438}.support-mark{color:#d3dcbf;font-size:17px}.sidebar-bottom p{margin:11px 0 5px;color:white;font-family:var(--serif);font-size:15px}.sidebar-bottom>span{display:block;color:#a9b8aa;font-size:9px;line-height:1.6}.sidebar-bottom>a{display:block;margin-top:12px;color:#e2e9da;font-size:9px}.sidebar-bottom>a span{padding-left:6px}.logout-form{margin-top:12px}.logout-form button{width:100%;padding:11px;border:0;background:transparent;color:#aebcb1;text-align:left;font-size:11px;cursor:pointer}.logout-form button span{padding-left:9px}.dashboard-main{min-width:0}.dash-topbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 5.4%;border-bottom:1px solid #e8ebe5;background:#fff}.dash-topbar>div:first-child{display:flex;align-items:center;gap:10px;font-size:10px}.crumb{color:#89928a}.crumb-separator{color:#c4cac2}.dash-topbar strong{font-weight:600}.user-chip{display:flex;align-items:center;gap:9px;color:#46534a;font-size:10px}.user-avatar,.wish-avatar{display:grid;width:29px;height:29px;flex:none;place-items:center;border-radius:50%;background:#dce5d4;color:#425745;font-family:var(--serif);font-size:12px}.plan-label{margin-left:4px;padding:5px 7px;background:#f1f3ec;color:#788475;font-size:7px;font-weight:700;letter-spacing:.1em}.dashboard-content{max-width:1160px;margin:auto;padding:36px 5.4% 0}.dashboard-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.dashboard-heading h1{margin:12px 0 0;font-size:32px;line-height:1.16}.dashboard-heading .button{min-height:41px;font-size:10px}.notice-success{margin-bottom:18px;padding:13px 16px;border:1px solid #d9e6d0;background:#f1f6eb;color:#436147;font-size:11px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-card{position:relative;min-height:130px;overflow:hidden;padding:18px 19px;border:1px solid #e7eae3;background:#fff}.stat-highlight{background:#e8eee3}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#748077;font-size:9px}.stat-icon{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#fff;color:#506951;font-size:13px}.green-icon{color:#527954}.rose-icon{color:#b37469}.stat-card>strong{display:block;margin-top:13px;font-family:var(--serif);font-size:31px;font-weight:400;line-height:1}.stat-card>small{display:block;margin-top:7px;color:#89928a;font-size:9px}.stat-sparkline{position:absolute;right:14px;bottom:19px;display:flex;height:25px;align-items:end;gap:3px;opacity:.7}.stat-sparkline i{display:block;width:4px;background:#aab99d}.stat-sparkline i:nth-child(1){height:8px}.stat-sparkline i:nth-child(2){height:13px}.stat-sparkline i:nth-child(3){height:10px}.stat-sparkline i:nth-child(4){height:18px}.stat-sparkline i:nth-child(5){height:14px}.stat-sparkline i:nth-child(6){height:22px}.stat-sparkline i:nth-child(7){height:16px}.stat-sparkline i:nth-child(8){height:24px}.stat-sparkline i:nth-child(9){height:20px}.content-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:12px;margin-top:13px}.invitation-card,.countdown-card{min-height:226px;border:1px solid #e7eae3;background:#fff}.invitation-cover{position:relative;display:grid;min-height:163px;place-items:center;overflow:hidden;background:#59675d url('https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1100&q=75') center 47%/cover}.invitation-cover:before{position:absolute;inset:0;background:linear-gradient(0deg,rgba(28,42,32,.72),rgba(28,42,32,.1));content:''}.cover-copy{position:relative;display:flex;align-items:center;flex-direction:column;color:white;text-align:center}.cover-copy>span{font-size:7px;letter-spacing:.22em}.cover-copy strong{margin:8px 0;font-family:var(--serif);font-size:28px;font-weight:400;line-height:1.05}.cover-copy>small{font-size:7px;letter-spacing:.14em}.template-tag{position:absolute;top:12px;right:13px;padding:6px 8px;background:rgba(255,255,255,.89);color:#536257;font-size:7px;font-weight:700;letter-spacing:.09em}.invitation-meta{display:flex;align-items:center;justify-content:space-between;padding:12px 15px}.invitation-meta .eyebrow{font-size:7px}.invitation-meta>div>a{display:block;margin-top:5px;color:#536a57;font-size:10px}.invitation-meta>div>a span{padding-left:4px}.copy-button{width:30px;height:30px;border:1px solid #e3e7df;background:white;color:#53675a;cursor:pointer}.countdown-card{display:flex;min-height:226px;flex-direction:column;justify-content:center;padding:20px 23px;background:#eff1e9}.countdown{display:flex;align-items:center;gap:9px;margin-top:18px}.countdown>div{display:flex;align-items:center;flex-direction:column;min-width:50px}.countdown strong{font-family:var(--serif);font-size:30px;font-weight:400}.countdown small{margin-top:2px;color:#828b80;font-size:8px}.countdown>span{margin-top:-11px;color:#9ba397}.countdown-card>p{margin:13px 0;color:#68766a;font-size:9px}.countdown-rule{width:100%;height:1px;margin-top:auto;background:#d9ded2}.countdown-note{margin-top:11px;color:#859081;font-size:7px;letter-spacing:.15em}.countdown-empty{display:flex;align-items:flex-start;flex-direction:column;gap:7px;margin:auto 0}.countdown-empty>span{color:#859878;font-size:21px}.countdown-empty strong{font-family:var(--serif);font-size:18px;font-weight:400;line-height:1.35}.countdown-empty a{margin-top:4px;color:#60775f;font-size:9px;font-weight:600}.editor-section,.wishes-section{margin-top:38px;padding-top:27px;border-top:1px solid #e5e9e1;scroll-margin-top:18px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.section-heading h2{margin:7px 0 0;font-family:var(--serif);font-size:25px;font-weight:400}.saved-label{color:#879188;font-size:7px;letter-spacing:.1em}.editor-form{border:1px solid #e8ebe5;background:#fff}.editor-block{display:grid;grid-template-columns:220px minmax(0,1fr);gap:25px;padding:23px 25px;border-bottom:1px solid #edf0eb}.editor-block-title{display:flex;align-items:flex-start;gap:12px}.editor-block-title>span{color:#91a08d;font-family:var(--serif);font-size:13px}.editor-block-title h3{margin:0;color:#344139;font-family:var(--serif);font-size:16px;font-weight:400}.editor-block-title p{max-width:170px;margin:6px 0 0;color:#8a938b;font-size:9px;line-height:1.6}.editor-block>label{margin-top:13px}.editor-block>.field-pair+label{margin-top:13px}.editor-block .field-pair{gap:12px}.editor-form input,.editor-form textarea{min-height:38px;padding:9px 10px;font-size:10px}.editor-form textarea{min-height:68px}.editor-form label{gap:6px;font-size:9px}.editor-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 25px}.editor-footer>span{color:#89928a;font-size:9px}.editor-footer .button{min-height:38px;font-size:9px}.wish-total{color:#7d897e;font-size:9px}.empty-wishes{display:flex;min-height:120px;align-items:center;justify-content:center;flex-direction:column;border:1px dashed #dce2d9;background:#fbfcf9;text-align:center}.empty-wishes>span{color:#8a9c83;font-size:21px}.empty-wishes p{margin:6px 0;color:#536158;font-family:var(--serif);font-size:14px}.empty-wishes small{color:#89928a;font-size:9px}.wishes-list{border-top:1px solid #e8ebe5;background:#fff}.wish-row{display:flex;gap:12px;padding:15px 17px;border:1px solid #e8ebe5;border-top:0}.wish-avatar{width:32px;height:32px}.wish-body{flex:1}.wish-name{display:flex;align-items:center;gap:9px;color:#39473e;font-size:10px;font-weight:600}.attendance-pill{display:inline-flex;align-items:center;min-height:17px;padding:0 7px;background:#f4ede9;color:#a67766;font-size:7px;font-weight:700;letter-spacing:.05em}.attendance-pill.is-attending{background:#eaf1e5;color:#648060}.wish-body p{margin:6px 0;color:#68736b;font-size:10px;line-height:1.65}.wish-body>small{color:#98a098;font-size:8px}.dashboard-footer{display:flex;justify-content:space-between;margin-top:40px;padding:17px 0;border-top:1px solid #e5e9e1;color:#899189;font-size:9px}.dashboard-footer>span:first-child{color:#607363;font-weight:700}.dashboard-footer>span:first-child span{color:#bc8e7c}

/* Public invitation */
.public-invitation{background:#fbfaf6}.public-page{max-width:1600px;margin:0 auto;background:#fbfaf6}.public-topbar{position:absolute;z-index:3;top:0;left:50%;display:flex;width:min(100%,1600px);height:70px;align-items:center;justify-content:space-between;padding:0 6%;transform:translateX(-50%);color:#fff}.public-topbar .brand{color:white}.public-topbar .brand-mark{background:#f0eee4;color:#29443a}.public-topbar>span{font-size:8px;letter-spacing:.17em}.invite-hero{position:relative;min-height:690px;display:grid;place-items:center;overflow:hidden;background:#343e36}.invite-photo{position:absolute;inset:0;background:#475346 url('https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1900&q=90') center 45%/cover;transform:scale(1.02);animation:slowZoom 14s ease-out both}.invite-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,35,29,.30),rgba(25,35,29,.05) 37%,rgba(25,35,29,.69))}.invite-cover-content{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;padding:100px 20px 48px;color:white;text-align:center;animation:rise .9s .15s both}.invite-cover-content .eyebrow{color:#e4e1d1}.invite-cover-content>p{margin:19px 0 0;color:#f2f0e8;font-family:var(--serif);font-size:17px}.invite-cover-content>p+p{margin-top:4px;font-size:14px}.invite-cover-content h1{margin:26px 0 20px;font-family:var(--serif);font-size:64px;font-weight:400;line-height:1.03}.invite-date{padding-top:3px;font-size:9px;letter-spacing:.2em}.scroll-cue{display:flex;align-items:center;flex-direction:column;gap:7px;margin-top:46px;color:white;font-size:17px}.scroll-cue span{font-family:var(--sans);font-size:7px;letter-spacing:.15em}.cover-side-note{position:absolute;top:50%;right:3.5%;color:#e5e4d7;font-size:7px;letter-spacing:.22em;writing-mode:vertical-rl}.invite-section{padding:90px 24px 100px;text-align:center}.couple-section .eyebrow{color:#889580}.invite-section h2,.story-section h2,.rsvp-heading h2{margin:16px 0 22px;font-family:var(--serif);font-size:37px;font-weight:400}.invite-section blockquote{max-width:560px;margin:0 auto;color:#647065;font-family:var(--serif);font-size:18px;font-style:italic;line-height:1.7}.verse-note{margin-top:25px;color:#89928a;font-size:10px}.event-section{display:grid;min-height:430px;grid-template-columns:1fr 1fr;background:#eaeee5}.event-copy{align-self:center;max-width:470px;margin:auto;padding:55px 50px}.event-copy h2{margin:13px 0 17px;font-family:var(--serif);font-size:38px;font-weight:400;line-height:1.17}.event-date-large{margin:0 0 24px;color:#6d806a;font-family:var(--serif);font-size:20px}.event-details{display:flex;gap:13px;padding:17px 0;border-top:1px solid #d6ddd2;border-bottom:1px solid #d6ddd2}.event-line-icon{color:#758870;font-size:18px}.event-details>div{display:flex;flex-direction:column;gap:5px}.event-details strong{font-size:11px}.event-details span{color:#717b72;font-size:10px;line-height:1.6}.event-copy>.text-link{margin-top:20px}.event-image{min-height:430px;background:#777364 url('https://images.unsplash.com/photo-1519167758481-83f550bb49b3?auto=format&fit=crop&w=1200&q=85') center/cover}.story-section{position:relative;overflow:hidden;padding:84px 24px 91px;background:#29443a;color:white;text-align:center}.story-section .eyebrow{color:#bfccb7}.story-number{position:absolute;top:26px;left:5%;color:#b5c1b1;font-size:8px;letter-spacing:.15em}.story-section h2{font-size:39px}.story-text{max-width:590px;margin:0 auto;color:#d8e0d4;font-family:var(--serif);font-size:16px;line-height:1.85;white-space:pre-line}.story-flower{display:block;margin-top:26px;color:#c6d2b9;font-size:19px}.rsvp-section{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:86px 12%;background:#f5f4ed}.rsvp-heading h2{font-size:37px;line-height:1.22}.rsvp-heading>p:last-child{max-width:300px;color:#808981;font-size:11px;line-height:1.75}.rsvp-form-wrap{align-self:center;max-width:440px;width:100%}.rsvp-form-wrap .form-stack{gap:13px}.rsvp-form-wrap textarea{min-height:95px}.rsvp-form-wrap select{appearance:auto}.rsvp-form-wrap .button{margin-top:4px}.guestbook-section{padding:74px 12% 87px}.guestbook-section .section-heading{margin-bottom:20px}.public-wish{display:grid;grid-template-columns:35px 1fr auto;align-items:start;gap:12px;padding:15px 0;border-top:1px solid #e7e9e2}.public-wish>div:nth-child(2)>strong{color:#425148;font-size:10px}.public-wish p{margin:5px 0 0;color:#748078;font-size:10px;line-height:1.65}.guestbook-empty{padding:20px 0;border-top:1px solid #e7e9e2;color:#889189;font-family:var(--serif);font-size:14px}.invite-footer{display:flex;align-items:center;flex-direction:column;padding:46px 20px 25px;background:#e9ede4}.invite-footer>span{color:#788478;font-family:var(--serif);font-size:14px;font-style:italic}.invite-footer>strong{margin:7px 0 23px;font-family:var(--serif);font-size:22px;font-weight:400}.invite-footer .brand{font-size:10px}.invite-footer .brand-mark{width:24px;height:24px;font-size:13px}

@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:.6}to{opacity:1}}@keyframes slowZoom{from{transform:scale(1.07)}to{transform:scale(1.02)}}
@media(max-width:900px){.site-header{padding:0 5%}.site-nav{gap:17px}.home-hero{grid-template-columns:.9fr 1.1fr;padding-right:5%;padding-left:5%}.hero-copy h1{font-size:41px}.hero-art{min-height:400px}.intro-strip{padding-right:7%;padding-left:7%}.feature-row{padding-right:8%;padding-left:8%;gap:5%}.dashboard-shell{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding-right:12px;padding-left:12px}.dashboard-content{padding-right:4%;padding-left:4%}.editor-block{grid-template-columns:175px minmax(0,1fr);gap:16px}.rsvp-section{padding-right:8%;padding-left:8%}.guestbook-section{padding-right:8%;padding-left:8%}}
@media(max-width:680px){.site-header{height:65px;padding:0 20px}.site-nav{gap:13px}.site-nav>a:not(.button){display:none}.site-nav .button{min-height:36px;padding:0 11px}.home-hero{display:flex;flex-direction:column;padding:18px 20px 35px}.hero-copy{padding:20px 0 30px}.hero-copy h1{font-size:39px}.hero-description{font-size:12px}.hero-actions{gap:17px}.hero-actions .button{padding:0 13px;font-size:10px}.hero-proof{margin-top:26px}.hero-art{width:100%;min-height:340px}.hero-note strong{font-size:37px}.hero-side-label{display:none}.intro-strip{grid-template-columns:1fr 42px;gap:11px;padding:33px 22px}.intro-strip .eyebrow{grid-column:1/-1}.intro-strip>p{font-size:23px}.round-link{width:36px;height:36px}.feature-row{grid-template-columns:1fr;gap:26px;padding:43px 26px 55px}.feature-row article{max-width:none}.feature-row h2{margin:8px 0}.site-footer{gap:15px;flex-wrap:wrap;padding:21px}.site-footer>span{order:3;width:100%}.auth-shell{padding:18px 14px}.auth-brand{margin:2px 0 17px 5px}.auth-panel{display:block;min-height:0}.auth-image{min-height:195px;background-position:center 46%}.auth-image-caption{bottom:22px;left:23px;font-size:22px}.auth-form-wrap{max-width:none;padding:28px 24px 31px}.back-link{margin-bottom:22px}.auth-form-wrap h1{font-size:34px}.field-pair{gap:9px}.dashboard-shell{display:block}.sidebar{position:relative;height:auto;min-height:0;flex-direction:row;align-items:center;justify-content:space-between;padding:12px 17px}.sidebar-brand{font-size:12px}.sidebar-brand .brand-mark{width:28px;height:28px}.workspace-label,.sidebar-bottom{display:none}.side-nav{flex-direction:row;gap:4px}.side-link{min-height:34px;padding:0 8px;font-size:0}.side-link>span{font-size:14px}.side-link b{width:15px;height:15px;font-size:8px}.logout-form{margin:0}.logout-form button{width:auto;padding:8px;font-size:0}.logout-form button span{display:none}.logout-form button:first-letter{font-size:16px}.dash-topbar{height:55px;padding:0 18px}.dash-topbar .crumb,.crumb-separator{display:none}.user-chip{gap:6px}.user-chip .plan-label{font-size:6px}.dashboard-content{padding:25px 17px 0}.dashboard-heading{align-items:flex-start;flex-direction:column;gap:16px}.dashboard-heading h1{font-size:29px}.dashboard-heading .button{min-height:38px}.stat-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{min-height:117px;padding:13px}.stat-card:first-child{grid-column:1/-1}.stat-card>strong{font-size:28px}.content-grid{grid-template-columns:1fr}.invitation-cover{min-height:155px}.countdown-card{min-height:190px}.section-heading h2{font-size:23px}.saved-label{max-width:115px;text-align:right;line-height:1.5}.editor-block{display:block;padding:18px 14px}.editor-block-title{margin-bottom:15px}.editor-block-title p{max-width:none}.editor-block .field-pair{gap:9px}.editor-form input,.editor-form textarea{font-size:10px}.editor-footer{align-items:flex-start;flex-direction:column;gap:13px;padding:14px}.dashboard-footer{font-size:8px}.invite-hero{min-height:660px}.public-topbar{height:58px;padding:0 18px}.public-topbar>span{font-size:6px}.invite-cover-content{padding-top:80px}.invite-cover-content>p{font-size:15px}.invite-cover-content>p+p{max-width:290px;font-size:12px;line-height:1.6}.invite-cover-content h1{font-size:47px}.cover-side-note{right:12px;font-size:6px}.invite-section{padding:66px 23px 73px}.invite-section h2,.story-section h2,.rsvp-heading h2{font-size:31px}.invite-section blockquote{font-size:16px}.event-section{grid-template-columns:1fr}.event-copy{width:100%;padding:55px 26px}.event-copy h2{font-size:33px}.event-image{min-height:270px}.story-section{padding:68px 23px}.story-text{font-size:14px}.story-number{top:21px}.rsvp-section{grid-template-columns:1fr;gap:24px;padding:62px 24px}.rsvp-heading h2{margin-bottom:12px}.rsvp-form-wrap{max-width:none}.guestbook-section{padding:56px 24px 62px}.public-wish{grid-template-columns:32px 1fr;gap:10px}.public-wish>.attendance-pill{grid-column:2;justify-self:start}.invite-footer>strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Role-aware admin workspaces */
.sidebar .side-nav{max-height:calc(100vh - 285px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#536a5b transparent}.admin-content{padding-top:35px}.admin-heading{margin-bottom:23px}.admin-heading h1{font-size:34px}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-stats .stat-card{min-height:125px}.admin-list-section{margin-top:31px}.admin-list-section .section-heading{margin-bottom:15px}.admin-table-wrap{overflow-x:auto;border:1px solid #e7eae3;background:#fff}.admin-table{width:100%;border-collapse:collapse;text-align:left}.admin-table th{padding:12px 15px;background:#f5f6f2;color:#899188;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.admin-table td{padding:13px 15px;border-top:1px solid #edf0eb;color:#67736a;font-size:10px;vertical-align:middle}.admin-table td strong{color:#39473e;font-weight:600}.table-user{display:flex;align-items:center;gap:10px;min-width:145px}.table-user>span:last-child{display:flex;flex-direction:column;gap:4px}.table-user small{color:#929b93;font-size:8px}.table-empty{padding:28px!important;color:#89928a!important;text-align:center}.table-link{color:#58715b;font-weight:600;white-space:nowrap}.admin-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:17px}.admin-shortcuts>a{display:flex;min-height:71px;align-items:center;gap:12px;padding:13px;border:1px solid #e7eae3;background:#fff;transition:border-color .2s,transform .2s}.admin-shortcuts>a:hover{transform:translateY(-2px);border-color:#b9c8b4}.admin-shortcuts>a>span{display:grid;width:31px;height:31px;place-items:center;background:#edf1e8;color:#5a715b;font-size:16px}.admin-shortcuts>a>div{display:flex;flex:1;flex-direction:column;gap:4px}.admin-shortcuts strong{color:#425046;font-size:10px}.admin-shortcuts small{color:#8a948b;font-size:8px}.admin-shortcuts b{color:#7c8e79;font-size:14px;font-weight:400}.module-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.module-heading h1{margin:8px 0 7px;font-family:var(--serif);font-size:33px;font-weight:400}.module-heading>div>p:last-child{max-width:620px;margin:0;color:#7c867e;font-size:11px;line-height:1.7}.module-heading .button{min-height:40px;flex:none;font-size:10px}.module-table-section{margin-top:0}.admin-pagination{padding:14px 15px;border:1px solid #e7eae3;border-top:0;background:#fff}.admin-pagination nav{display:flex;align-items:center;justify-content:space-between;font-size:9px}.admin-pagination nav a,.admin-pagination nav span{color:#647760}.admin-pagination nav svg{width:14px}.module-form-panel{max-width:780px}.profile-form .editor-block{display:flex;flex-direction:column;gap:18px}.profile-form .editor-block label{max-width:480px;margin:0}.profile-form .field-pair{max-width:100%}.module-workspace{min-height:265px;padding:24px;border:1px solid #e7eae3;background:#fff}.module-summary{display:flex;align-items:flex-start;gap:15px;padding-bottom:21px;border-bottom:1px solid #edf0eb}.module-summary-icon{display:grid;width:42px;height:42px;flex:none;place-items:center;background:#edf1e8;color:#5b715b;font-size:20px}.module-summary h2{margin:7px 0 6px;font-family:var(--serif);font-size:19px;font-weight:400}.module-summary p{max-width:620px;margin:0;color:#818b82;font-size:10px;line-height:1.65}.module-empty-state{display:flex;align-items:center;flex-direction:column;padding:37px 15px 16px;text-align:center}.module-empty-state>span{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;background:#f0f2eb;color:#74866d;font-size:19px}.module-empty-state h3{margin:13px 0 6px;font-family:var(--serif);font-size:17px;font-weight:400}.module-empty-state>p{max-width:430px;margin:0;color:#879087;font-size:10px;line-height:1.7}.module-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:19px}.module-detail-grid article{display:flex;min-height:100px;flex-direction:column;gap:7px;padding:14px;border:1px solid #edf0eb;background:#fbfcf9}.module-detail-grid article strong{color:#3f5043;font-family:var(--serif);font-size:17px;font-weight:400}.module-detail-grid article small{color:#879087;font-size:9px}.module-action-link{display:inline-flex;gap:9px;margin-top:15px;color:#59745b;font-size:10px;font-weight:600}.theme-preview{display:flex;align-items:center;gap:10px;margin-top:17px;padding:10px;border:1px solid #e6e9e2;text-align:left}.theme-swatch{display:flex;gap:3px}.theme-swatch span{width:15px;height:24px;background:#6d6959}.theme-swatch span:nth-child(2){background:#d5c5a8}.theme-swatch span:nth-child(3){background:#e8e4d7}.theme-preview strong{font-size:9px}.theme-preview small{color:#889188;font-size:8px}.message-cell{max-width:430px;line-height:1.6}.admin-content .notice-success{margin-bottom:18px}
/* Compact admin tables (less vertical scroll, cleaner spacing) */
.admin-content .table>:not(caption)>*>*{padding:.5rem .65rem}
.admin-content .table thead th{background:#f5f6f2;color:#7c867e;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid #e7eae3}
.admin-content .table tbody td{font-size:12.5px;vertical-align:middle;border-top:1px solid #edf0eb;color:#59635b}
.admin-content .table tbody tr:hover{background:#fafbf8}
.admin-content .table .font-monospace{font-size:11.5px}
.admin-content .table .small,.admin-content .table small{font-size:11px}
.admin-content .table .badge{font-size:10px;font-weight:600;letter-spacing:.03em;padding:.32em .55em}
.admin-content .table-responsive{max-height:60vh;overflow-y:auto}
.admin-content .table-responsive::-webkit-scrollbar{width:8px;height:8px}
.admin-content .table-responsive::-webkit-scrollbar-thumb{background:#cbd4c6;border-radius:8px}
.admin-content .card-body{padding:1.1rem 1.2rem}
.admin-content .btn-sm{padding:.25rem .5rem;font-size:11.5px}
.admin-content .badge.text-bg-light{color:#5b655c!important;background:#eef1ea!important}
.admin-content .pagination{--bs-pagination-font-size:12px;--bs-pagination-padding-y:.28rem;--bs-pagination-padding-x:.6rem}
/* Compact tables in the client dashboard too */
.invitation-dashboard-content .table>:not(caption)>*>*{padding:.55rem .65rem}
.invitation-dashboard-content .table th{background:#f5f6f2;color:#67736a;font-weight:600;font-size:12px}
.invitation-dashboard-content .table td{font-size:13px;color:#59635b;border-top:1px solid #edf0eb}
.invitation-dashboard-content .stat-card{min-height:110px}
@media(max-width:900px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-shortcuts{gap:7px}.admin-shortcuts>a{gap:8px;padding:10px}.module-heading h1{font-size:29px}}
@media(max-width:680px){.sidebar .side-nav{max-height:none;max-width:calc(100vw - 120px);flex-direction:row;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.sidebar .side-nav::-webkit-scrollbar{display:none}.admin-content{padding-top:24px}.admin-heading{gap:12px}.admin-heading h1{font-size:28px}.admin-stats{grid-template-columns:1fr 1fr}.admin-stats .stat-card{min-height:105px}.admin-shortcuts{grid-template-columns:1fr}.admin-shortcuts>a{min-height:58px}.module-heading{align-items:flex-start;flex-direction:column}.module-heading h1{font-size:28px}.module-workspace{padding:17px}.module-detail-grid{grid-template-columns:1fr}.admin-table th,.admin-table td{padding:11px 12px}.profile-form .field-pair{grid-template-columns:1fr}.admin-pagination nav{gap:12px}.admin-pagination nav>div:first-child{display:none}}

/* Reusable couple form fields */
.form-field{min-width:0;margin-bottom:18px}.form-field:last-child{margin-bottom:0}.form-field .form-label{display:block;margin-bottom:6px;color:#435148;font-size:12px;font-weight:600}.required-mark{margin-left:2px;color:#e74c3c}.helper-text{display:block;color:#75817a;font-size:12px;font-weight:400;line-height:1.55}.field-helper-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-top:4px}.char-counter{flex:none;color:#75817a;font-size:11px;line-height:1.5}.char-counter.warning{color:#c99500}.char-counter.danger{color:#e74c3c}.form-field .form-control,.form-field .form-select{border-color:#d8dee4;transition:border-color .15s ease,box-shadow .15s ease}.form-field .form-control:focus,.form-field .form-select:focus{border-color:#f4c430;box-shadow:0 0 0 .18rem rgba(244,196,48,.2)}.form-field.has-error .form-control,.form-field.has-error .form-select{border-color:#e74c3c}.form-field.has-error .form-control:focus,.form-field.has-error .form-select:focus{border-color:#f4c430;box-shadow:0 0 0 .18rem rgba(244,196,48,.2)}.form-field .field-error{margin:5px 0 0;color:#c0392b;font-size:11px}.form-card{height:100%;border:1px solid #e6e9ed;box-shadow:0 2px 8px rgba(34,48,62,.035)}.form-card .card-header{padding:18px 20px 13px;border-bottom:1px solid #f0f1f3}.form-card .card-body{padding:18px 20px}.form-card .card-title{font-size:16px}.couple-heading{align-items:flex-end}.couple-heading .btn{white-space:nowrap}.couple-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;padding:14px 18px;border:1px solid #dbe6dc;background:#f4f8f2}.couple-preview-label{display:flex;align-items:center;gap:7px;color:#68786a;font-size:11px}.couple-preview-label i{color:#6b8c70;font-size:16px}.couple-preview-bar>strong{color:#34483b;font-family:var(--serif);font-size:19px;font-weight:400}.couple-preview-bar>strong i{color:#81957d;font-weight:400}.couple-form-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px;padding:16px 0 5px;border-top:1px solid #eaedf0}.couple-form-actions .btn:disabled{cursor:not-allowed;opacity:.55}.couple-fields .form-field{margin-bottom:15px}.couple-fields .form-field:last-child{margin-bottom:0}.upload-preview{display:block;max-width:100%;max-height:190px;margin-top:10px;object-fit:contain}.couple-heading h1{margin-bottom:6px}
@media(max-width:680px){.couple-heading{align-items:flex-start}.couple-preview-bar{align-items:flex-start;flex-direction:column}.couple-preview-bar>strong{font-size:17px}.form-card .card-header{padding:15px 15px 11px}.form-card .card-body{padding:15px}.couple-form-actions{align-items:stretch;flex-direction:column}.couple-form-actions .btn{width:100%}.helper-text{font-size:11px}}
.public-couple-grid{display:grid;max-width:760px;grid-template-columns:1fr 50px 1fr;align-items:center;gap:16px;margin:34px auto 38px}.public-couple-grid article{padding:24px 18px;border:1px solid #e9e9e1;background:#fff}.public-couple-initial{display:grid;width:42px;height:42px;place-items:center;margin:0 auto 12px;border-radius:50%;background:#e8eee4;color:#60745f;font-family:var(--serif);font-size:18px}.public-couple-grid h3{margin:0 0 8px;color:#435246;font-family:var(--serif);font-size:21px;font-weight:400}.public-couple-grid p,.public-couple-grid small{display:block;margin:0 0 9px;color:#748075;font-size:10px;line-height:1.7}.public-couple-grid article>a{color:#6a8468;font-size:10px}.public-couple-amp{color:#85957d;font-family:var(--serif);font-size:28px}.public-couple-grid+blockquote{max-width:560px;margin:0 auto;color:#647065;font-family:var(--serif);font-size:18px;font-style:italic;line-height:1.7}
@media(max-width:680px){.public-couple-grid{grid-template-columns:1fr;gap:12px;margin:25px auto}.public-couple-amp{line-height:1;text-align:center}.public-couple-grid article{padding:20px}.public-couple-grid+blockquote{font-size:16px}}
.public-page{--invite-primary:#29453A;--invite-secondary:#DCE7BD}.public-page .invite-cover-content h1,.public-page .invite-section h2,.public-page .public-couple-grid h3,.public-page .invite-footer strong{font-family:var(--invite-font,var(--serif))}.public-page .couple-section .eyebrow,.public-page .public-couple-amp,.public-page .public-couple-initial{color:var(--invite-primary)}.public-page .public-couple-initial{background:var(--invite-secondary)}.public-page .story-section{background:var(--invite-primary)}.public-page .invite-footer{border-top:3px solid var(--invite-secondary)}.template-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.template-choice{position:relative;display:flex;align-items:center;gap:10px;padding:9px;border:1px solid #e5e8e2;background:#fff;cursor:pointer;transition:border-color .16s,box-shadow .16s}.template-choice:has(input:checked){border-color:#696cff;box-shadow:0 0 0 2px rgba(105,108,255,.13)}.template-choice input{position:absolute;top:9px;right:9px;z-index:1;accent-color:#696cff}.template-thumb{display:grid;width:62px;aspect-ratio:4/3;flex:none;place-items:center;background:linear-gradient(145deg,var(--swatch-primary),var(--swatch-secondary));color:white}.template-thumb i{font-family:var(--serif);font-size:13px;font-style:normal}.template-thumb b{font-weight:400}.template-choice-meta{display:flex;flex-direction:column;gap:3px}.template-choice-meta strong{color:#405047;font-family:var(--serif);font-size:12px;font-weight:400}.template-choice-meta small{color:#8b948c;font-size:8px}.template-selected{display:none;margin-left:auto;color:#696cff}.template-choice:has(input:checked) .template-selected{display:block}.template-current-cover{display:block;max-width:100%;max-height:130px;margin-top:8px;object-fit:cover}.template-iframe-wrap{height:620px;overflow:hidden;border:1px solid #e6e9e3;background:#f5f6f2}.template-iframe-wrap iframe{width:100%;height:100%;border:0;background:white}.slug-preview-box{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-9px 0 16px;padding:9px 11px;background:#f5f7f3;color:#758078;font-size:9px}.slug-preview-box a{color:#58735a;overflow-wrap:anywhere}.slug-preview-box [role=status]{font-weight:600}.slug-available{color:#39824a}.slug-unavailable{color:#c0392b}.settings-check{display:flex;align-items:flex-start;gap:9px;margin:12px 0}.settings-check input{margin-top:3px;accent-color:#696cff}.settings-check span{display:flex;flex-direction:column;gap:3px}.settings-check strong{color:#4a574e;font-size:10px}.settings-check small{color:#828c84;font-size:9px}
@media(max-width:680px){.template-picker-grid{grid-template-columns:1fr 1fr;gap:7px}.template-choice{gap:7px;padding:7px}.template-thumb{width:48px}.template-iframe-wrap{height:500px}}
.event-search-form{display:flex;gap:9px;max-width:520px;margin-bottom:17px}.event-search-form .form-control{max-width:300px}.event-table th{color:#849087;font-size:9px}.event-row-actions{display:flex;justify-content:flex-end;gap:4px}.event-row-actions form{display:inline-flex}.event-live-card{padding:22px;border:1px solid #e7eae3;background:#f8f9f5}.event-live-card h3{margin:12px 0;color:#3c4d42;font-family:var(--serif);font-size:23px;font-weight:400}.event-live-card p{display:flex;align-items:flex-start;gap:9px;margin:9px 0;color:#6e7a70;font-size:11px;line-height:1.55}.event-live-card p i{color:#758a70;font-size:15px}.event-map-preview{display:inline-flex;align-items:center;gap:5px;color:#637d62;font-size:11px;font-weight:600}.event-map-preview:hover{color:#435d44}.event-map-preview span{font-size:14px}
@media(max-width:680px){.event-search-form{flex-wrap:wrap}.event-search-form .form-control{max-width:none;flex:1 1 100%}.event-table{min-width:720px}.event-live-card{padding:17px}}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.gallery-item{overflow:hidden;border:1px solid #e8ebe5;background:#fff}.gallery-image-link{display:block;aspect-ratio:4/3;overflow:hidden;background:#f1f3ef}.gallery-image-link img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.gallery-image-link:hover img{transform:scale(1.035)}.gallery-item-body{padding:13px}.gallery-item-body h3{margin:9px 0 4px;color:#3d4b41;font-family:var(--serif);font-size:16px;font-weight:400}.gallery-item-body p{min-height:30px;margin:0 0 10px;color:#818b82;font-size:10px;line-height:1.5}.gallery-item-actions{display:flex;gap:7px}.gallery-item-actions form{display:inline-flex}.gallery-empty{display:flex;min-height:250px;align-items:center;justify-content:center;flex-direction:column;text-align:center}.gallery-empty>i,.gallery-preview-placeholder>i{color:#84977e;font-size:34px}.gallery-empty h3{margin:11px 0 5px;font-family:var(--serif);font-size:19px;font-weight:400}.gallery-empty p{margin:0 0 14px;color:#818b82;font-size:11px}.gallery-upload-preview{display:grid;min-height:250px;place-items:center;overflow:hidden;background:#f5f6f2}.gallery-upload-preview>img{width:100%;max-height:430px;object-fit:contain}.gallery-preview-placeholder{display:flex;align-items:center;flex-direction:column;gap:8px;color:#839086;font-size:10px}.personal-link-box{display:flex;align-items:center;gap:8px;margin-top:15px;padding:10px;border:1px solid #e6e9e2;background:#f8f9f6}.personal-link-box>a{min-width:0;overflow-wrap:anywhere;color:#60775e;font-size:9px}.personal-link-box button{flex:none}.guest-toolbar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:15px}.guest-toolbar .event-search-form{align-items:center;flex:1;margin:0}.guest-toolbar .event-search-form .form-field{margin:0}.guest-toolbar .event-search-form .form-control{width:210px}.guest-toolbar .event-search-form select{width:160px}.guest-tools{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.guest-import-form{display:flex;align-items:center;gap:6px}.guest-import-form input{max-width:160px;font-size:9px}.public-gallery{padding:76px 10% 84px;background:#f1f2eb;text-align:center}.public-gallery h2{margin:11px 0 25px;font-family:var(--serif);font-size:34px;font-weight:400}.public-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.public-gallery-grid figure{position:relative;aspect-ratio:4/5;margin:0;overflow:hidden;background:#ddd}.public-gallery-grid img{width:100%;height:100%;object-fit:cover}.public-gallery-grid figcaption{position:absolute;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:3px;padding:24px 12px 12px;background:linear-gradient(transparent,rgba(20,30,24,.7));color:white;text-align:left}.public-gallery-grid figcaption strong{font-family:var(--serif);font-size:14px;font-weight:400}.public-gallery-grid figcaption span{font-size:9px}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guest-toolbar{flex-direction:column}.guest-toolbar .event-search-form{flex-wrap:wrap}.guest-tools{justify-content:flex-start}}
@media(max-width:680px){.gallery-grid{grid-template-columns:1fr 1fr;gap:8px}.gallery-item-body{padding:9px}.gallery-item-body h3{font-size:14px}.gallery-item-actions{flex-direction:column}.gallery-item-actions .btn{width:100%}.guest-toolbar .event-search-form .form-control,.guest-toolbar .event-search-form select{width:100%}.guest-tools{align-items:stretch;flex-direction:column}.guest-tools .btn,.guest-import-form{width:100%}.guest-import-form input{max-width:none;flex:1}.public-gallery{padding:58px 20px}.public-gallery h2{font-size:29px}.public-gallery-grid{grid-template-columns:1fr 1fr;gap:7px}}
.guestbook-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin-bottom:18px}.guestbook-filters>input{max-width:260px}.guestbook-filters .form-field{min-width:150px;margin:0}.wish-moderation-list{border-top:1px solid #e8ebe5}.wish-moderation-row{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:14px;padding:20px 0;border-bottom:1px solid #edf0eb}.wish-moderation-content{min-width:0}.wish-moderation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.wish-moderation-head>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.wish-moderation-head strong{color:#39473e;font-size:1rem;font-weight:600;line-height:1.35}.wish-moderation-head>small{flex:none;color:#89938a;font-size:var(--adm-text-sm);padding-top:2px}.wish-message{margin:10px 0 2px;color:#657169;font-size:.9rem;line-height:1.7;white-space:pre-line}.wish-moderation-form{display:grid;grid-template-columns:minmax(200px,1fr) auto;align-items:end;gap:10px;padding:12px;background:#f8f9f6}.wish-moderation-form .form-field{margin:0}.wish-moderation-form .btn{min-height:38px;white-space:nowrap}.public-wish-reply{margin-top:9px;padding:9px 11px;border-left:2px solid #a8b99d;background:#f2f5ef;color:#60705f;font-size:9px;line-height:1.6}.public-wish-reply strong{display:block;margin-bottom:3px;font-size:8px;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:900px){.wish-moderation-form{grid-template-columns:1fr 1fr}.wish-moderation-form .btn{grid-column:1/-1;justify-self:start}}
@media(max-width:680px){.guestbook-filters{align-items:stretch;flex-direction:column}.guestbook-filters>input,.guestbook-filters .form-field{max-width:none;width:100%}.wish-moderation-row{grid-template-columns:36px minmax(0,1fr) 36px;gap:10px}.wish-moderation-head{flex-direction:column}.wish-moderation-head>small{order:-1}.wish-moderation-form{grid-template-columns:1fr;padding:10px}.wish-moderation-form .btn{grid-column:auto;width:100%}}
.public-events{padding:75px 10%;background:var(--invite-secondary);text-align:center}.public-events h2{margin:11px 0 24px;color:var(--invite-primary);font-family:var(--invite-font,var(--serif));font-size:33px;font-weight:400}.public-events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;text-align:left}.public-events-grid article{padding:18px;border:1px solid rgba(40,55,45,.12);background:rgba(255,255,255,.82)}.public-events-grid h3{margin:10px 0;color:#405047;font-family:var(--invite-font,var(--serif));font-size:18px;font-weight:400}.public-events-grid p{display:flex;gap:8px;margin:7px 0;color:#748075;font-size:9px;line-height:1.6}.public-events-grid p i{flex:none;color:var(--invite-primary);font-size:13px}.public-events-grid a{display:inline-block;margin:7px 10px 0 0;color:var(--invite-primary);font-size:9px;font-weight:600}.music-source-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.music-source-option{position:relative;display:flex;min-height:82px;align-items:center;gap:10px;padding:12px;border:1px solid #e3e7e1;background:#fff;cursor:pointer}.music-source-option:has(input:checked){border-color:#696cff;box-shadow:0 0 0 2px rgba(105,108,255,.13)}.music-source-option input{accent-color:#696cff}.music-source-option>span{display:flex;flex-direction:column;gap:4px}.music-source-option i{color:#71856c;font-size:18px}.music-source-option strong{font-size:10px}.music-source-option small{color:#818b82;font-size:8px}.music-volume-row{display:flex;align-items:center;gap:12px}.music-volume-row output{min-width:38px;color:#586b59;font-size:10px;font-weight:700}.music-autoplay,.settings-check{display:flex;align-items:flex-start;gap:9px;margin:15px 0}.music-autoplay input{margin-top:3px;accent-color:#696cff}.music-autoplay span{display:flex;flex-direction:column;gap:4px}.music-autoplay strong{color:#4a574e;font-size:10px}.music-autoplay small{color:#828c84;font-size:9px}.music-preview-area{display:flex;align-items:center;flex-direction:column;gap:11px;padding:28px 16px;background:#f6f7f3;text-align:center}.music-preview-area>i{color:#74876d;font-size:27px}.music-preview-area>strong{color:#435347;font-family:var(--serif);font-size:17px;font-weight:400}.music-preview-area audio{width:100%;max-width:380px}.music-preview-area p{max-width:340px;margin:0;color:#818b82;font-size:9px;line-height:1.6}.invitation-password-page{display:flex;min-height:100vh;align-items:center;flex-direction:column;padding:34px 20px;background:#f3f4ee}.invitation-password-page>.brand{align-self:flex-start}.invitation-password-panel{width:min(100%,440px);margin:auto;padding:36px;background:#fff;text-align:center;box-shadow:0 15px 45px rgba(35,48,39,.08)}.invite-lock-icon{display:grid;width:48px;height:48px;place-items:center;margin:0 auto 18px;border-radius:50%;background:#edf2e8;color:#688064;font-size:21px}.invitation-password-panel h1{margin:12px 0;font-family:var(--serif);font-size:26px;font-weight:400}.invitation-password-panel h1 i{color:#80927a;font-weight:400}.invitation-password-panel>p:not(.eyebrow){margin:0 0 22px;color:#7c867e;font-size:11px;line-height:1.7}.invitation-password-panel .form-stack{text-align:left}
@media(max-width:680px){.public-events{padding:58px 20px}.public-events h2{font-size:28px}.public-events-grid{grid-template-columns:1fr}.music-source-options{grid-template-columns:1fr}.invitation-password-panel{padding:28px 22px}}
.invitation-dashboard-content{max-width:1320px}.dashboard-quick-actions{display:flex;flex-wrap:wrap;gap:8px}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.dashboard-metrics .stat-card{min-height:122px}.dashboard-metrics .stat-icon{font-size:16px}.dashboard-lower-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:15px;margin-top:15px}.dashboard-chart-card,.dashboard-countdown-card,.dashboard-activity-grid>.card{min-width:0;border:1px solid #e7eae3;box-shadow:0 2px 8px rgba(34,48,62,.035)}.dashboard-chart-card .card-header,.dashboard-countdown-card .card-header,.dashboard-activity-grid .card-header{padding:17px 19px;border-bottom:1px solid #eef0ec}.dashboard-chart-card .card-title,.dashboard-countdown-card .card-title,.dashboard-activity-grid .card-title{font-size:15px}.dashboard-chart-card .card-body,.dashboard-countdown-card .card-body{padding:18px 19px}.dashboard-chart-card .form-select{min-width:120px}.visit-chart-wrap{height:245px}.dashboard-countdown-card .countdown{justify-content:center;gap:8px;margin-top:21px}.dashboard-countdown-card .countdown>div{min-width:55px}.dashboard-countdown-card .countdown strong{font-size:34px}.dashboard-countdown-card .countdown>span{margin-top:-12px}.dashboard-countdown-card .countdown-empty{align-items:center;margin:22px auto 10px;text-align:center}.dashboard-activity-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);margin-top:16px}.dashboard-activity-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:start;gap:11px;padding:13px 17px;border-bottom:1px solid #edf0eb}.dashboard-activity-row:last-child{border-bottom:0}.dashboard-activity-row>div{min-width:0}.dashboard-activity-row strong{color:#3d4a41;font-size:10px}.dashboard-activity-row p{overflow:hidden;margin:4px 0;color:#727e74;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.dashboard-activity-row small{color:#98a098;font-size:8px}.dashboard-activity-row>.attendance-pill{margin-top:2px}.dashboard-invitation-preview{overflow:hidden;border:1px solid #e5e9e2}.dashboard-invitation-preview .invitation-cover{min-height:185px}.dashboard-invitation-preview .cover-copy strong{font-size:25px}.dashboard-invitation-preview .invitation-meta{gap:8px;padding:11px}.dashboard-invitation-preview .invitation-meta>a{min-width:0;overflow-wrap:anywhere;color:#58715b;font-size:9px}.dashboard-invitation-preview .copy-button{flex:none}
@media(max-width:900px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-lower-grid,.dashboard-activity-grid{grid-template-columns:1fr}}
@media(max-width:680px){.dashboard-heading{align-items:flex-start}.dashboard-quick-actions{width:100%}.dashboard-quick-actions .btn{flex:1}.dashboard-metrics .stat-card{min-height:107px}.dashboard-lower-grid{gap:10px}.visit-chart-wrap{height:220px}.dashboard-chart-card .card-header,.dashboard-countdown-card .card-header,.dashboard-activity-grid .card-header{padding:14px}.dashboard-chart-card .card-body,.dashboard-countdown-card .card-body{padding:14px}.dashboard-activity-row{grid-template-columns:30px minmax(0,1fr);padding:12px}.dashboard-activity-row>.attendance-pill{grid-column:2;justify-self:start}.dashboard-invitation-preview .invitation-cover{min-height:165px}}
/* Demo credentials (login) */
.demo-credentials{margin:26px 0 0;padding:16px 18px;border:1px solid #e4e0d8;border-radius:12px;background:#faf8f4}
.demo-credentials-title{margin:0 0 10px;color:#5c665d;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.demo-credentials-title span{margin-left:6px;color:#9aa39b;font-weight:400;letter-spacing:0;text-transform:none}
.demo-credentials ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.demo-fill{display:grid;grid-template-columns:64px 1fr 1fr;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid #e8e4dc;border-radius:9px;background:#fff;cursor:pointer;text-align:left;font-family:inherit}
.demo-fill:hover{border-color:var(--forest);background:#f3f6f2}
.demo-role{color:var(--forest);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.demo-cred{color:#3f4941;font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
@media(max-width:420px){.demo-fill{grid-template-columns:1fr;gap:3px}}
.gallery-current-photo{display:flex;flex-direction:column;gap:8px;margin-top:14px}.gallery-current-photo img{width:100%;max-height:320px;object-fit:contain;border:1px solid #e8ebe5;background:#f5f6f2}


/* ==========================================================================
   PENYEMPURNAAN PROPORSIONALITAS TAMPILAN ADMIN
   --------------------------------------------------------------------------
   Skala tipografi admin dibuat konsisten & mudah dibaca:
   - Teks mikro (8-10px) dinaikkan ke 12-14px.
   - Judul besar (28-34px) dimoderasi ke 22-26px (rasio judul:teks ~1.8x).
   - Ukuran memakai clamp() agar tetap proporsional di semua lebar layar.
   Blok ini sengaja diletakkan paling akhir agar menimpa aturan sebelumnya.
   ========================================================================== */

:root{
  --adm-text-xs:clamp(11px,.72rem,12px);
  --adm-text-sm:clamp(12px,.8rem,13px);
  --adm-text-md:clamp(13.5px,.9rem,15px);
  --adm-text-lg:clamp(16px,1.15rem,19px);
  --adm-title:clamp(20px,1.6rem,26px);
  --adm-stat:clamp(24px,1.9rem,32px);
}

/* --- Heading utama & module heading ------------------------------------- */
.admin-content .admin-heading h1,
.admin-content .dashboard-heading h1{
  font-size:var(--adm-title);
  line-height:1.2;
  letter-spacing:-.01em;
}
.admin-content .module-heading h1{font-size:var(--adm-title)}
.admin-content .module-heading>div>p:last-child{font-size:var(--adm-text-sm)}
.admin-content .dashboard-heading .button,
.admin-content .module-heading .button{font-size:var(--adm-text-sm)}

/* Eyebrow / label kecil huruf kapital */
.admin-content .eyebrow,
.admin-content .invitation-meta .eyebrow{
  font-size:var(--adm-text-xs);
  letter-spacing:.14em;
}
.admin-content .text-link{font-size:var(--adm-text-sm)}
.admin-content .section-heading h2{font-size:var(--adm-text-lg);line-height:1.25}

/* --- Kartu statistik ---------------------------------------------------- */
.admin-content .stat-card{padding:20px 21px;min-height:132px}
.admin-content .stat-top{font-size:var(--adm-text-sm)}
.admin-content .stat-icon{width:28px;height:28px;font-size:15px}
.admin-content .stat-card>strong{
  font-size:var(--adm-stat);
  margin-top:14px;
}
.admin-content .stat-card>small{font-size:var(--adm-text-sm);margin-top:8px;line-height:1.5}

/* --- Tabel admin -------------------------------------------------------- */
.admin-content .admin-table th{
  font-size:var(--adm-text-xs);
  letter-spacing:.08em;
  padding:13px 16px;
}
.admin-content .admin-table td{
  font-size:var(--adm-text-md);
  padding:14px 16px;
  line-height:1.55;
}
.admin-content .admin-table td strong{font-size:var(--adm-text-md)}
.admin-content .table-user small,
.admin-content .admin-table td small{font-size:var(--adm-text-sm)}
.admin-content .user-avatar{width:32px;height:32px;font-size:13px}
.admin-content .wish-avatar{width:40px;height:40px;font-size:16px;font-weight:600}
.admin-content .attendance-pill{
  font-size:var(--adm-text-xs);
  min-height:20px;
  padding:0 9px;
}
/* Penyesuaian khusus baris moderasi buku tamu */
.admin-content .wish-moderation-head .attendance-pill{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 10px;
  line-height:1;
  vertical-align:middle;
}
.admin-content .wish-moderation-row>form{
  align-self:start;
  justify-self:end;
}
.admin-content .wish-moderation-row .btn-icon{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:#bf5a52;
}
.admin-content .wish-moderation-row .btn-icon i{font-size:21px;line-height:1}
.admin-content .wish-moderation-row .btn-icon:hover{background:#fdecea;border-color:#f6d4d0;color:#a83f38}
@media (max-width:680px){
  .admin-content .wish-avatar{width:34px;height:34px;font-size:14px}
  .admin-content .wish-moderation-row .btn-icon{width:32px;height:32px}
  .admin-content .wish-moderation-row .btn-icon i{font-size:18px}
}

/* --- Tombol pintasan / quick links -------------------------------------- */
.admin-content .admin-shortcuts strong{font-size:var(--adm-text-md)}
.admin-content .admin-shortcuts small{font-size:var(--adm-text-sm)}
.admin-content .admin-shortcuts b{font-size:16px}

/* --- Footer & notifikasi ------------------------------------------------ */
.admin-content .dashboard-footer{font-size:var(--adm-text-sm);padding:20px 0}
.admin-content .notice-success{font-size:var(--adm-text-sm);padding:14px 18px}
.admin-content .admin-pagination nav{font-size:var(--adm-text-sm)}

/* --- Tabel berbasis Bootstrap di dalam panel admin ---------------------- */
.admin-content .table>:not(caption)>*>*{padding:.6rem .75rem}
.admin-content .table thead th{font-size:var(--adm-text-xs)}
.admin-content .table tbody td{font-size:var(--adm-text-md)}
.admin-content .table .small,
.admin-content .table small{font-size:var(--adm-text-sm)}
.admin-content .table .badge{font-size:var(--adm-text-xs)}
.admin-content .btn-sm{font-size:var(--adm-text-sm);padding:.35rem .65rem}
.admin-content .card-body{padding:1.25rem 1.35rem}
.admin-content .form-card .card-title{font-size:var(--adm-text-lg)}

/* Tombol utama konten admin */
.admin-content .button{font-size:var(--adm-text-sm)}

/* --- Penyesuaian khusus layar sempit / mobile -------------------------- */
@media (max-width:680px){
  :root{
    --adm-title:clamp(19px,1.5rem,23px);
    --adm-stat:clamp(22px,1.7rem,28px);
  }
  .admin-content .stat-card{padding:16px 17px;min-height:112px}
  .admin-content .admin-table th,
  .admin-content .admin-table td{padding:12px 13px}
}

/* Ikon kunci visual untuk input yang dikunci sistem (masa aktif undangan). */
.form-field .form-control[readonly],.form-field .form-control:disabled,.form-field .form-control[aria-readonly='true']{background-color:#f4f5f7;color:#5b6660;cursor:not-allowed;border-color:#e2e6ea}
.form-field .form-control:disabled:hover{cursor:not-allowed}

