:root {
    --cv-primary: #6d3cc7;
    --cv-primary-dark: #51279f;
    --cv-primary-soft: #f0eafd;
    --cv-accent: #e06c85;
    --cv-accent-soft: #fff0f3;
    --cv-ink: #242132;
    --cv-muted: #716d7c;
    --cv-border: #e7e3ec;
    --cv-bg: #f8f7fb;
    --cv-white: #fff;
    --cv-success: #187d62;
    --cv-warning: #b86b16;
    --cv-danger: #c83f55;
    --cv-radius: 22px;
    --cv-radius-sm: 14px;
    --cv-shadow: 0 20px 55px rgba(48, 38, 77, .10);
    --cv-shadow-sm: 0 8px 28px rgba(48, 38, 77, .07);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--cv-ink); background: var(--cv-bg); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
a { color: var(--cv-primary); }
.min-w-0 { min-width: 0; }
.text-secondary { color: var(--cv-muted) !important; }
.page-shell { width: min(100% - 1.5rem, 1180px); margin-inline: auto; }
.page-narrow { width: min(100% - 1.5rem, 720px); margin-inline: auto; }
.brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--cv-ink); font-weight: 850; letter-spacing: -.035em; text-decoration: none; }
.brand:hover { color: inherit; }
.brand img { border-radius: 13px; box-shadow: 0 7px 18px rgba(109, 60, 199, .17); }

.public-navbar, .app-navbar { min-height: 70px; border-bottom: 1px solid rgba(231, 227, 236, .85); background: rgba(255,255,255,.92); backdrop-filter: blur(18px); position: sticky; top: 0; z-index: 1030; }
.btn { min-height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; font-weight: 750; transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease; }
.btn:active { transform: translateY(1px); }
.btn-sm { min-height: 38px; border-radius: 10px; }
.btn-lg { min-height: 54px; padding-inline: 1.4rem; border-radius: 15px; }
.btn-primary { background: var(--cv-primary); border-color: var(--cv-primary); box-shadow: 0 9px 22px rgba(109,60,199,.2); }
.btn-primary:hover, .btn-primary:focus { background: var(--cv-primary-dark); border-color: var(--cv-primary-dark); box-shadow: 0 12px 28px rgba(109,60,199,.26); }
.btn-soft { color: var(--cv-primary-dark); background: var(--cv-primary-soft); border: 1px solid transparent; }
.btn-soft:hover { color: #fff; background: var(--cv-primary); }
.btn-outline-primary { color: var(--cv-primary); border-color: #bba9df; }
.btn-outline-primary:hover { background: var(--cv-primary); border-color: var(--cv-primary); }
.btn-danger-soft { color: var(--cv-danger); background: #fff0f3; border-color: #f7d5dc; }
.btn-danger-soft:hover { color: #fff; background: var(--cv-danger); }
.btn-link { color: var(--cv-muted); text-decoration: none; }

.hero { position: relative; overflow: hidden; padding: clamp(4.2rem, 9vw, 7.6rem) 0; background: radial-gradient(circle at 84% 18%, rgba(224,108,133,.18), transparent 29%), radial-gradient(circle at 5% 22%, rgba(109,60,199,.16), transparent 29%), linear-gradient(180deg,#fff 0%,#fbf8ff 100%); }
.hero::after { position: absolute; width: 360px; height: 360px; right: -210px; bottom: -180px; border: 50px solid rgba(109,60,199,.035); border-radius: 50%; content: ""; }
.eyebrow { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1rem; color: var(--cv-primary-dark); font-size: .78rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.eyebrow::before { width: 9px; height: 9px; border-radius: 50%; background: var(--cv-accent); content: ""; }
.hero-title { max-width: 750px; margin: 0; font-size: clamp(2.45rem,7vw,5rem); font-weight: 930; line-height: .99; letter-spacing: -.062em; }
.hero-title em { color: var(--cv-primary); font-style: normal; }
.hero-copy { max-width: 640px; color: var(--cv-muted); font-size: clamp(1.05rem,2vw,1.22rem); line-height: 1.72; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.trust-row { display: flex; flex-wrap: wrap; gap: .65rem 1.2rem; color: var(--cv-muted); font-size: .9rem; font-weight: 650; }
.trust-row i { color: var(--cv-success); }
.phone-stage { min-height: 480px; display: grid; place-items: center; position: relative; }
.phone-card { width: min(325px,88vw); padding: 13px; border: 9px solid #282433; border-radius: 43px; background: #fff; box-shadow: 0 38px 85px rgba(50,35,86,.25); transform: rotate(2deg); }
.phone-notch { width: 34%; height: 6px; margin: 0 auto 12px; border-radius: 20px; background: #ded9e4; }
.phone-cover { min-height: 150px; padding: 1.4rem; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; border-radius: 25px; background: linear-gradient(145deg,#8358d4,#d36a86); }
.phone-cover small { opacity: .85; letter-spacing: .08em; text-transform: uppercase; }
.phone-detail { display: flex; gap: .7rem; padding: .9rem .4rem; border-bottom: 1px solid var(--cv-border); }
.phone-detail i { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 38px; color: var(--cv-primary); border-radius: 12px; background: var(--cv-primary-soft); }
.phone-rsvp { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; padding-top: .85rem; }
.phone-rsvp span { padding: .72rem; border-radius: 12px; text-align: center; font-size: .82rem; font-weight: 800; }
.phone-rsvp span:first-child { color:#fff; background:var(--cv-primary); }.phone-rsvp span:last-child{background:#f2f0f4;color:var(--cv-muted)}

.section { padding: clamp(4rem,8vw,6.6rem) 0; }.section.white{background:#fff}.section-title{font-size:clamp(1.85rem,4vw,2.8rem);font-weight:880;letter-spacing:-.045em}.section-copy{color:var(--cv-muted);line-height:1.7}
.feature-card { height:100%; padding:1.45rem; border:1px solid var(--cv-border); border-radius:20px; background:#fff; box-shadow:var(--cv-shadow-sm); }
.feature-icon { width:52px;height:52px;display:grid;place-items:center;margin-bottom:1rem;color:var(--cv-primary);font-size:1.35rem;border-radius:16px;background:var(--cv-primary-soft); }
.step-card { display:flex;gap:1rem;padding:1.25rem;border-bottom:1px solid var(--cv-border); }.step-card:last-child{border:0}.step-number{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;color:#fff;font-weight:850;border-radius:12px;background:var(--cv-primary)}
.public-footer { padding:1.5rem 0;color:var(--cv-muted);font-size:.86rem;border-top:1px solid var(--cv-border);background:#fff; }

.auth-page { min-height:calc(100vh - 70px);display:grid;align-items:center;padding:2.5rem 0;background:radial-gradient(circle at 10% 10%,rgba(109,60,199,.14),transparent 30%),radial-gradient(circle at 90% 80%,rgba(224,108,133,.14),transparent 30%); }
.surface-card,.card { border:1px solid var(--cv-border);border-radius:var(--cv-radius);background:#fff;box-shadow:var(--cv-shadow-sm); }
.auth-card { overflow:hidden;box-shadow:var(--cv-shadow); }.auth-aside{height:100%;padding:clamp(1.5rem,5vw,2.7rem);color:#fff;background:linear-gradient(145deg,#7343ca,#49238d)}.auth-form{padding:clamp(1.4rem,5vw,2.7rem)}
.form-label { margin-bottom:.45rem;color:#504b5c;font-size:.9rem;font-weight:750; }.form-control,.form-select,.input-group-text{min-height:48px;border-color:var(--cv-border);border-radius:12px}.form-control:focus,.form-select:focus{border-color:#b09bdd;box-shadow:0 0 0 .22rem rgba(109,60,199,.11)}.form-check-input:checked{background-color:var(--cv-primary);border-color:var(--cv-primary)}textarea.form-control{min-height:110px}
.alert { border:0;border-radius:15px;box-shadow:var(--cv-shadow-sm); }

.app-body { background:#f8f7fb; }.app-main{padding:1.4rem 0 6rem}.role-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.36rem .7rem;color:var(--cv-primary-dark);font-size:.7rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;background:var(--cv-primary-soft)}
.avatar-button{width:40px;height:40px;border:0;border-radius:13px;color:#fff;font-weight:850;background:linear-gradient(145deg,var(--cv-primary),var(--cv-accent));box-shadow:0 7px 18px rgba(109,60,199,.2)}.app-dropdown{min-width:240px;padding:.55rem;border-color:var(--cv-border);border-radius:16px;box-shadow:var(--cv-shadow)}
.welcome-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}.page-heading{font-size:clamp(1.65rem,4vw,2.35rem);font-weight:880;letter-spacing:-.04em}
.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.metric-card{padding:1rem;border:1px solid var(--cv-border);border-radius:18px;background:#fff;box-shadow:var(--cv-shadow-sm)}.metric-icon{width:42px;height:42px;display:grid;place-items:center;margin-bottom:.8rem;color:var(--cv-primary);border-radius:13px;background:var(--cv-primary-soft)}.metric-value{font-size:1.55rem;font-weight:880;letter-spacing:-.04em}.metric-label{color:var(--cv-muted);font-size:.78rem;font-weight:700}
.event-grid{display:grid;grid-template-columns:1fr;gap:1rem}.event-card{position:relative;overflow:hidden;border:1px solid var(--cv-border);border-radius:21px;background:#fff;box-shadow:var(--cv-shadow-sm);transition:.18s ease}.event-card:hover{transform:translateY(-3px);box-shadow:var(--cv-shadow)}.event-card-accent{height:6px;background:var(--event-color,var(--cv-primary))}.event-card-body{padding:1.2rem}.event-card-title{color:var(--cv-ink);font-size:1.15rem;font-weight:840;letter-spacing:-.02em}.event-meta{display:flex;flex-wrap:wrap;gap:.45rem 1rem;color:var(--cv-muted);font-size:.85rem}.event-card-link{position:absolute;inset:0;z-index:1}.event-card .position-relative{z-index:2}
.status-pill{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;padding:.35rem .65rem;color:#625d6c;font-size:.7rem;font-weight:820;border-radius:999px;background:#f0eef3}.status-pill::before{width:7px;height:7px;border-radius:50%;background:#918b99;content:""}.status-pill.publicado{color:#08664f;background:#e5f6f0}.status-pill.publicado::before{background:#15906c}.status-pill.encerrado{color:#845814;background:#fff3dd}.status-pill.cancelado{color:#a13449;background:#ffedf1}.status-pill.confirmado{color:#08664f;background:#e5f6f0}.status-pill.confirmado::before{background:#15906c}.status-pill.recusado{color:#a13449;background:#ffedf1}.status-pill.recusado::before{background:#c83f55}.status-pill.visualizado{color:#5a43a2;background:#efeafd}.status-pill.visualizado::before{background:#7657c7}
.empty-state{padding:2.5rem 1.2rem;text-align:center;border:1px dashed #d6d0df;border-radius:21px;background:rgba(255,255,255,.55)}.empty-icon{width:60px;height:60px;display:grid;place-items:center;margin:0 auto 1rem;color:var(--cv-primary);font-size:1.45rem;border-radius:19px;background:var(--cv-primary-soft)}
.event-hero{position:relative;overflow:hidden;padding:1.3rem;border:1px solid var(--cv-border);border-radius:23px;background:#fff;box-shadow:var(--cv-shadow-sm)}.event-hero::before{position:absolute;inset:0 auto 0 0;width:6px;background:var(--event-color,var(--cv-primary));content:""}.event-summary{display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;color:var(--cv-muted);font-size:.88rem}
.section-card{margin-bottom:1rem;overflow:hidden}.section-card .card-body{padding:1.25rem}.section-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-title-sm{margin:0;font-size:1.05rem;font-weight:840}.section-icon{width:43px;height:43px;display:grid;place-items:center;flex:0 0 43px;color:var(--cv-primary);border-radius:13px;background:var(--cv-primary-soft)}
.response-bar{height:10px;overflow:hidden;border-radius:20px;background:#ece9f0}.response-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cv-primary),var(--cv-accent))}
.invite-list{display:grid;gap:.7rem}.invite-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.9rem;border:1px solid var(--cv-border);border-radius:16px;background:#fff}.invite-name{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-contact{color:var(--cv-muted);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-actions{display:flex;gap:.35rem}.icon-button{width:44px;height:44px;min-height:44px;padding:0;border-radius:12px}.copy-field{display:flex;gap:.5rem;padding:.6rem;border:1px dashed #c9bbdf;border-radius:13px;background:#fbf9ff}.copy-field input{min-width:0;border:0;outline:0;background:transparent;color:var(--cv-muted);font-size:16px}

.admin-list{display:grid;gap:.7rem}.admin-list-item{padding:1rem;border:1px solid var(--cv-border);border-radius:16px;background:#fff}.admin-list-item-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.6rem}.admin-list-item-top strong{font-size:.98rem}.admin-list-fields{display:grid;grid-template-columns:auto 1fr;gap:.35rem .8rem;margin:.75rem 0 0;font-size:.82rem}.admin-list-fields dt{color:var(--cv-muted);font-weight:700}.admin-list-fields dd{margin:0;color:var(--cv-ink);overflow-wrap:anywhere}.admin-list-item form{margin-top:.75rem}
.modal-content{border:0;border-radius:22px;box-shadow:var(--cv-shadow)}.modal-header,.modal-footer{border-color:var(--cv-border)}
.table-responsive{border:1px solid var(--cv-border);border-radius:18px;background:#fff}.table{margin:0}.table th{padding:.9rem;color:var(--cv-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;background:#faf9fc}.table td{padding:.9rem;vertical-align:middle;border-color:var(--cv-border)}

.admin-body{background:#f4f4f7}.admin-navbar{position:relative;color:#fff;border:0;background:#232130}.admin-navbar .brand span{color:#fff}.role-pill.admin{color:#fff;background:rgba(255,255,255,.11)}.admin-subnav{position:sticky;top:0;z-index:1020;border-bottom:1px solid #dedce4;background:#fff}.admin-subnav a{padding:.85rem .7rem;color:#696572;font-size:.85rem;font-weight:750;text-decoration:none;white-space:nowrap}.admin-subnav a:hover{color:var(--cv-primary)}
.activity-item{display:flex;gap:.8rem;padding:.75rem 0;border-bottom:1px solid var(--cv-border)}.activity-item:last-child{border:0}.activity-dot{width:10px;height:10px;flex:0 0 10px;margin-top:.35rem;border:3px solid #d9cff0;border-radius:50%;background:var(--cv-primary)}

.mobile-bottom-nav{position:fixed;left:50%;bottom:.8rem;z-index:1025;display:grid;grid-template-columns:repeat(3,1fr);width:min(calc(100% - 1.5rem),420px);padding:.4rem;border:1px solid rgba(231,227,236,.9);border-radius:20px;background:rgba(255,255,255,.94);box-shadow:0 14px 40px rgba(45,35,68,.18);backdrop-filter:blur(18px);transform:translateX(-50%)}.mobile-bottom-nav a,.mobile-bottom-nav button{width:100%;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;color:var(--cv-muted);font-size:.67rem;font-weight:750;border:0;border-radius:15px;background:transparent;text-decoration:none}.mobile-bottom-nav i{font-size:1.1rem}.mobile-bottom-nav .active{color:var(--cv-primary);background:var(--cv-primary-soft)}.mobile-bottom-nav form{margin:0}

.invitation-body{--event-primary:#6d3cc7;min-height:100vh;background:#f5f2f7}.invitation-wrap{width:min(100%,760px);margin:0 auto;min-height:100vh;background:#fff;box-shadow:0 0 80px rgba(42,32,57,.09)}.invitation-cover{position:relative;min-height:390px;display:flex;align-items:flex-end;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--event-primary) 90%,#241b34),color-mix(in srgb,var(--event-primary) 55%,#e98ba0))}.invitation-cover.has-image{background-position:center;background-size:cover}.invitation-cover::after{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,15,29,0) 60%,rgba(20,15,29,.12) 100%);content:""}.invitation-cover-content{position:relative;z-index:1;width:100%;padding:clamp(1.5rem,6vw,3rem);color:#fff}.invitation-cover-content .invitation-kicker,.invitation-cover-content .invitation-title{color:#fff}.invitation-heading{padding:clamp(1.8rem,6vw,3.2rem) clamp(.25rem,2vw,1rem) clamp(1.6rem,5vw,2.6rem);text-align:center}.invitation-kicker{display:inline-block;color:var(--event-primary);font-size:.78rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.invitation-title{max-width:650px;margin:.65rem auto .9rem;color:var(--cv-text);font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.45rem,9vw,4.35rem);font-weight:700;line-height:1.02;letter-spacing:-.045em}.invitation-hosts{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem .5rem;color:var(--cv-muted)}.invitation-hosts span{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.invitation-hosts strong{color:var(--cv-text);font-size:1rem}.theme-celebracao .invitation-title{font-family:inherit;font-weight:930}.theme-minimalista .invitation-title{font-family:inherit;font-weight:700;letter-spacing:-.06em}.theme-romantico .invitation-title{font-style:italic}
.invitation-content{padding:clamp(1.25rem,5vw,2.8rem)}.invitation-content-main{padding-top:0}.personal-greeting{margin-bottom:1.5rem;padding:1.1rem;border-left:4px solid var(--event-primary);border-radius:0 15px 15px 0;background:color-mix(in srgb,var(--event-primary) 7%,#fff)}.invitation-message{margin:0 0 2rem;text-align:center}.opening-message{position:relative;padding:1.4rem clamp(1rem,5vw,2rem);border:1px solid color-mix(in srgb,var(--event-primary) 15%,var(--cv-border));border-radius:20px;background:color-mix(in srgb,var(--event-primary) 4%,#fff)}.opening-message .bi-quote{display:block;margin:-.25rem auto .15rem;color:var(--event-primary);font-size:1.65rem;line-height:1}.opening-message p{line-height:1.7}.event-description{padding:0 clamp(.5rem,4vw,2rem);color:var(--cv-muted);line-height:1.75}.event-description.has-opening{position:relative;margin-top:1.5rem;padding-top:1.5rem}.event-description.has-opening::before{position:absolute;top:0;left:50%;width:56px;height:2px;border-radius:2px;background:color-mix(in srgb,var(--event-primary) 40%,#fff);content:"";transform:translateX(-50%)}.event-detail-grid{display:grid;gap:.7rem}.event-detail{display:flex;gap:.9rem;padding:1rem;border:1px solid var(--cv-border);border-radius:17px}.event-detail-icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 44px;color:var(--event-primary);font-size:1.1rem;border-radius:14px;background:color-mix(in srgb,var(--event-primary) 10%,#fff)}.event-detail small{display:block;color:var(--cv-muted);font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.event-detail strong{font-size:.95rem}
.rsvp-card{margin-top:1.2rem;padding:clamp(1.2rem,5vw,2rem);border:1px solid var(--cv-border);border-radius:22px;background:#fff;box-shadow:var(--cv-shadow)}.rsvp-options{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.rsvp-option input{position:absolute;opacity:0;pointer-events:none}.rsvp-option label{min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.8rem;color:var(--cv-muted);font-weight:800;border:2px solid var(--cv-border);border-radius:16px;cursor:pointer;transition:.18s ease}.rsvp-option label i{font-size:1.35rem}.rsvp-option input:checked+label{color:var(--event-primary);border-color:var(--event-primary);background:color-mix(in srgb,var(--event-primary) 8%,#fff)}.rsvp-option.no input:checked+label{color:var(--cv-danger);border-color:#e59ca9;background:#fff3f5}.btn-event{color:#fff;background:var(--event-primary);border-color:var(--event-primary)}.btn-event:hover{color:#fff;filter:brightness(.88)}
.companion-row{display:grid;grid-template-columns:minmax(0,1fr) 122px;gap:.55rem;margin-bottom:.55rem}.response-summary{padding:1.1rem;text-align:center;border-radius:18px;background:color-mix(in srgb,var(--event-primary) 8%,#fff)}.pass-card{position:relative;overflow:hidden;margin:1.2rem 0;padding:1.4rem;color:#fff;border-radius:22px;background:linear-gradient(145deg,color-mix(in srgb,var(--event-primary) 92%,#20162f),var(--event-primary));box-shadow:0 20px 45px color-mix(in srgb,var(--event-primary) 25%,transparent)}.pass-card::after{position:absolute;width:160px;height:160px;right:-70px;bottom:-80px;border:25px solid rgba(255,255,255,.1);border-radius:50%;content:""}.entry-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(1.55rem,8vw,2.4rem);font-weight:900;letter-spacing:.15em}.invitation-footer{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1.4rem;color:var(--cv-muted);font-size:.75rem;background:#f5f2f7}
.participant-help{display:flex;align-items:flex-start;gap:.55rem;padding:.75rem .85rem;color:#574d67;font-size:.82rem;line-height:1.45;border:1px solid #ded5ee;border-radius:12px;background:#f8f5fc}.participant-help i{flex:0 0 auto;margin-top:.08rem;color:var(--event-primary,#6d3cc7)}.participant-total-note{color:#675f72;font-size:.76rem;line-height:1.4}.participant-total-note strong{color:#3e354b}
.confirmation-document{overflow:hidden;border:1px solid #e2dce8;border-radius:22px;background:#fff;box-shadow:0 18px 45px rgba(39,29,53,.11)}.confirmation-document.is-exporting{width:720px;max-width:720px;margin:0;border-radius:18px;box-shadow:none}.confirmation-document-cover{display:grid;place-items:center;padding:1rem;overflow:hidden;background:#f2eef5}.confirmation-document-cover img{width:auto;max-width:100%;height:auto;max-height:240px;display:block;border-radius:10px;object-fit:contain}.confirmation-document-header{padding:1.65rem 1.8rem;color:#fff}.confirmation-document-header small{display:block;font-size:.68rem;font-weight:850;letter-spacing:.15em;opacity:.8}.confirmation-document-header h2{margin:.45rem 0 .25rem;font-family:Georgia,"Times New Roman",serif;font-size:2rem;font-weight:700;line-height:1.05}.confirmation-document-header span{font-size:.88rem;opacity:.82}.confirmation-document-body{padding:1.45rem}.confirmation-details small,.confirmation-guests>small,.confirmation-code small{color:#766d80;font-size:.65rem;font-style:normal;font-weight:820;letter-spacing:.08em;text-transform:uppercase}.confirmation-access{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem;border:1px solid #e2dce8;border-radius:18px;background:#faf8fc}.confirmation-code{display:flex;min-width:0;flex-direction:column}.confirmation-code strong{margin:.3rem 0;color:#241d2d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(1.65rem,7vw,2.45rem);font-weight:900;letter-spacing:.13em;white-space:nowrap}.confirmation-code span{max-width:330px;color:#766d80;font-size:.72rem;line-height:1.45}.confirmation-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:.35rem}.confirmation-qr{width:170px;height:170px;display:grid;place-items:center;padding:.35rem;border:1px solid #e2dce8;border-radius:12px;background:#fff}.confirmation-qr img{width:100%;height:100%;display:block;object-fit:contain}.confirmation-qr-wrap>small{color:#766d80;font-size:.65rem;font-weight:750}.confirmation-details{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:1rem}.confirmation-details>div{display:flex;min-width:0;flex-direction:column;padding:.8rem;border-radius:12px;background:#f6f3f8}.confirmation-details strong{color:#332b3c;font-size:.82rem}.confirmation-details span{color:#766d80;font-size:.72rem}.confirmation-location{grid-column:1/-1}.confirmation-guests{margin-bottom:1rem;padding:.9rem;border:1px solid #e8e2ec;border-radius:13px}.confirmation-guests>small{display:block;margin-bottom:.5rem}.confirmation-guests-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.4rem .65rem;margin:0;padding:0;list-style:none}.confirmation-guests-list li{display:flex;align-items:center;gap:.5rem;min-width:0;padding:.55rem .65rem;color:#3b3344;font-size:.8rem;font-weight:700;border-radius:10px;background:#f7f4f9}.confirmation-guests-list li::before{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--event-primary);content:""}.confirmation-guidance{margin:0;padding-top:.75rem;color:#766d80;font-size:.7rem;line-height:1.5;text-align:center;border-top:1px solid #ece7ef}.confirmation-document.is-exporting.has-many-guests .confirmation-document-cover{padding:.7rem}.confirmation-document.is-exporting.has-many-guests .confirmation-document-cover img{max-height:185px}.confirmation-document.is-exporting.has-many-guests .confirmation-document-header{padding:1.15rem 1.5rem}.confirmation-document.is-exporting.has-many-guests .confirmation-document-header h2{font-size:1.75rem}.confirmation-document.is-exporting.has-many-guests .confirmation-document-body{padding:1rem 1.2rem}.confirmation-document.is-exporting.has-many-guests .confirmation-access{margin-bottom:.7rem;padding:.75rem}.confirmation-document.is-exporting.has-many-guests .confirmation-qr{width:145px;height:145px}.confirmation-document.is-exporting.has-many-guests .confirmation-details{margin-bottom:.7rem}.confirmation-document.is-exporting.has-many-guests .confirmation-details>div{padding:.65rem}.confirmation-document.is-exporting.has-many-guests .confirmation-guests{margin-bottom:.7rem;padding:.7rem}
.qr-checkin-page{min-height:calc(100vh - 160px);display:grid;place-items:center;padding:1rem 0}.qr-checkin-card{width:min(100%,560px);padding:clamp(1.4rem,5vw,2.5rem)}.qr-checkin-icon{width:76px;height:76px;display:grid;place-items:center;margin:0 auto 1rem;color:var(--cv-primary);font-size:2rem;border-radius:24px;background:#f0eafd}.qr-checkin-person{display:flex;flex-direction:column;padding:1rem;border:1px solid var(--cv-border);border-radius:15px;background:#faf8fc}.qr-checkin-person small{color:var(--cv-muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.qr-checkin-person strong{font-size:1.12rem}.qr-checkin-person span{color:var(--cv-muted);font-size:.8rem}
.checkin-separator{display:flex;align-items:center;gap:.65rem;margin:.15rem 0 .8rem;color:var(--cv-muted);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.checkin-separator::before,.checkin-separator::after{height:1px;flex:1;background:var(--cv-border);content:""}.scanner-page{width:min(100%,660px);margin:0 auto}.scanner-title-icon{width:58px;height:58px;display:grid;place-items:center;flex:0 0 58px;color:var(--cv-primary);font-size:1.55rem;border-radius:18px;background:var(--cv-primary-soft)}.scanner-card{padding:clamp(1rem,4vw,1.5rem)}.scanner-illustration{width:82px;height:82px;display:grid;place-items:center;margin:0 auto 1rem;color:var(--cv-primary);font-size:2rem;border-radius:26px;background:linear-gradient(145deg,var(--cv-primary-soft),#fff0f3)}.scanner-workspace{position:relative;overflow:hidden;min-height:300px;border-radius:20px;background:#17141d}.scanner-reader{min-height:300px;background:#17141d}.scanner-reader video,.scanner-reader img{width:100%!important;max-height:68vh!important;display:block;object-fit:cover;border-radius:20px}.scanner-reader>div{border:0!important}.scanner-target{position:absolute;top:50%;left:50%;width:min(68vw,280px);height:min(68vw,280px);pointer-events:none;transform:translate(-50%,-50%)}.scanner-target span{position:absolute;width:34px;height:34px;border-color:#fff;border-style:solid;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}.scanner-target span:nth-child(1){top:0;left:0;border-width:4px 0 0 4px;border-radius:10px 0 0 0}.scanner-target span:nth-child(2){top:0;right:0;border-width:4px 4px 0 0;border-radius:0 10px 0 0}.scanner-target span:nth-child(3){right:0;bottom:0;border-width:0 4px 4px 0;border-radius:0 0 10px 0}.scanner-target span:nth-child(4){bottom:0;left:0;border-width:0 0 4px 4px;border-radius:0 0 0 10px}.scanner-live-note{position:absolute;right:.8rem;bottom:.8rem;left:.8rem;padding:.6rem .8rem;color:#fff;font-size:.75rem;font-weight:750;text-align:center;border-radius:12px;background:rgba(23,20,29,.78);backdrop-filter:blur(8px);pointer-events:none}.scanner-status{font-size:.83rem;line-height:1.45;box-shadow:none}.scanner-controls{display:flex;gap:.65rem}.scanner-controls .form-select{min-width:0;flex:1}.scanner-divider{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;color:var(--cv-muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.scanner-divider::before,.scanner-divider::after{height:1px;flex:1;background:var(--cv-border);content:""}.scanner-alternative .btn{min-height:50px}

@media (min-width:576px){.metric-grid{grid-template-columns:repeat(4,1fr)}.event-detail-grid{grid-template-columns:1fr 1fr}.invite-row{padding:1rem}.mobile-bottom-nav{display:none}.app-main{padding-bottom:2.5rem}}
@media (min-width:768px){.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{padding:1.15rem}.invitation-wrap{margin:2rem auto;min-height:auto;border-radius:30px;overflow:hidden}.invitation-body{padding-bottom:2rem}.invitation-footer{background:transparent}.phone-stage{min-height:520px}}
@media (min-width:992px){.event-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid.large{grid-template-columns:repeat(6,1fr)}.event-hero{padding:1.6rem}.section-card .card-body{padding:1.5rem}}
@media (max-width:575.98px){.public-navbar,.app-navbar{min-height:64px}.brand img{width:36px;height:36px}.welcome-row{align-items:stretch;flex-direction:column}.welcome-row .btn{width:100%}.invite-row{grid-template-columns:minmax(0,1fr)}.invite-actions{justify-content:flex-end}.companion-row{grid-template-columns:1fr}.hero-actions .btn{width:100%}.phone-stage{min-height:430px}.invitation-cover{min-height:330px}.rsvp-options{grid-template-columns:1fr}.admin-subnav{top:0}.confirmation-document:not(.is-exporting) .confirmation-access{grid-template-columns:1fr}.confirmation-document:not(.is-exporting) .confirmation-code{text-align:center}.confirmation-document:not(.is-exporting) .confirmation-code span{margin:0 auto}.confirmation-document:not(.is-exporting) .confirmation-details{grid-template-columns:1fr}.confirmation-document:not(.is-exporting) .confirmation-location{grid-column:auto}.confirmation-document-body{padding:1rem}.confirmation-document-header{padding:1.35rem}.confirmation-document-header h2{font-size:1.65rem}.scanner-title-icon{width:50px;height:50px;flex-basis:50px;font-size:1.3rem}.scanner-controls{flex-direction:column}.scanner-controls .btn{width:100%}.scanner-workspace,.scanner-reader{min-height:260px}}
@media print{.public-navbar,.app-navbar,.mobile-bottom-nav,.invitation-footer,.no-print,.alert{display:none!important}.invitation-body{background:#fff}.invitation-wrap{width:100%;margin:0;box-shadow:none}.invitation-cover{min-height:260px}.rsvp-card{box-shadow:none}}
