:root{--navy:#142033;--navy2:#1d2a3d;--ink:#1f2937;--paper:#faf7f0;--paper2:#f1ece1;--gold:#cba25a;--gold2:#e4c785;--olive:#6d7056;--muted:#7e7d78;--line:#e4dccd;--white:#fffdfa;--danger:#a84742;--success:#3d7a62;--shadow:0 22px 50px rgba(31,38,52,.12);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Montserrat,Arial,sans-serif;background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}small{display:block}h1,h2,h3,p{margin-top:0}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:700;color:var(--olive);margin:0 0 8px}.gold{color:var(--gold)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;border-radius:999px;padding:13px 20px;font-size:12px;font-weight:700;letter-spacing:.02em;transition:.2s ease}.button:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(20,32,51,.14)}.button-dark{background:var(--navy);color:#fff}.button-outline{border-color:#c9b48d;background:transparent;color:var(--navy)}.button-full{width:100%}.button-small{padding:9px 13px;font-size:11px}.text-link{font-size:12px;font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:4px}.centered{display:block;text-align:center;margin-top:18px}.optional{font-size:10px;color:#9a988f;font-weight:400}.alert{padding:14px 16px;border-radius:13px;margin:0 0 20px;font-size:12px;line-height:1.5}.alert-danger{color:#7f332f;background:#fae8e5;border:1px solid #e7bcb6}.alert-success{color:#285b48;background:#e7f4ed;border:1px solid #bedfcd}.privacy-note,.micro{font-size:10px;line-height:1.6;color:#8c887e;text-align:center;margin:12px 0 0}.seal-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f0d898,#b87f2d);color:#fff;border:4px double rgba(255,255,255,.7);font-size:25px;margin:0 auto 15px;box-shadow:0 8px 18px rgba(148,97,35,.22)}
/* RSVP público */
.public-body{min-height:100vh;background:#ede7dc}.rsvp-page{min-height:100vh;background:radial-gradient(circle at 5% 2%,rgba(225,215,190,.65),transparent 27%),radial-gradient(circle at 97% 98%,rgba(218,209,184,.66),transparent 24%),#f6f3ec}.rsvp-hero{min-height:680px;position:relative;overflow:hidden;display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:64px;padding:68px max(5vw,36px);background:linear-gradient(115deg,#fbfaf5 10%,#f3eee5 88%)}.rsvp-hero:before,.rsvp-hero:after{content:"";position:absolute;border:1px solid rgba(203,162,90,.65);pointer-events:none}.rsvp-hero:before{inset:17px;border-radius:24px}.rsvp-hero:after{inset:27px;border-radius:17px;border-color:rgba(203,162,90,.3)}.paper-grain{position:absolute;inset:0;opacity:.25;pointer-events:none;background-image:radial-gradient(rgba(77,69,55,.12) .6px,transparent .6px),radial-gradient(rgba(77,69,55,.06) .6px,transparent .6px);background-position:0 0,5px 5px;background-size:9px 9px}.hero-copy{position:relative;z-index:1;max-width:635px;padding:34px 0 34px 5vw}.olive-line{display:flex;align-items:center;gap:11px;color:var(--gold);font-size:14px;margin:12px 0 20px}.olive-line span{width:48px;height:1px;background:var(--gold)}.hero-invite{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;letter-spacing:.09em;color:#5d5a56;margin-bottom:6px}.hero-copy h1{font-family:'Great Vibes','Cormorant Garamond',cursive;font-size:clamp(65px,8vw,112px);font-weight:400;line-height:.9;color:var(--navy);margin:0 0 28px;white-space:nowrap}.event-date{font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;font-weight:600;letter-spacing:.06em;color:#34383d;text-transform:capitalize;margin:0 0 6px}.event-location{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8a7a5c;margin:0 0 24px}.hero-message{max-width:480px;color:#5c605f;font-size:13px;line-height:1.9;margin:0}.hero-art-wrap{position:relative;z-index:1;display:flex;justify-content:center;align-items:center}.hero-art{display:block;width:min(365px,100%);border-radius:20px;box-shadow:0 24px 55px rgba(27,34,43,.18);position:relative;z-index:1;border:8px solid rgba(255,255,255,.7)}.art-shadow{position:absolute;width:84%;height:35px;bottom:-20px;border-radius:50%;background:rgba(22,29,41,.2);filter:blur(15px)}.countdown{display:flex;align-items:stretch;gap:14px;margin-top:30px;color:var(--navy)}.countdown>div{display:flex;flex-direction:column;min-width:55px;text-align:center}.countdown b{font-family:'Cormorant Garamond',serif;font-size:33px;line-height:1;font-weight:700}.countdown span{font-size:9px;text-transform:uppercase;letter-spacing:.12em;margin-top:6px;color:#7a786f}.countdown i{height:29px;width:1px;background:#d6c5a0;margin-top:3px}.rsvp-panel{position:relative;padding:82px 20px 92px;background:linear-gradient(#e9e4d8,#faf7f0 38%,#f7f2e8)}.rsvp-panel:before{content:"";position:absolute;inset:17px;border:1px solid rgba(203,162,90,.55);border-radius:20px;pointer-events:none}.rsvp-card{width:min(710px,100%);margin:auto;position:relative;z-index:1;background:rgba(255,253,248,.94);border-radius:24px;border:1px solid #e2d8c4;padding:45px 48px;box-shadow:var(--shadow)}.card-intro{text-align:center;max-width:510px;margin:0 auto 28px}.card-intro h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:44px;line-height:1;font-weight:600;color:var(--navy);margin:0 0 10px}.card-intro>p{font-size:12px;line-height:1.7;color:#77736c;margin:0}.deadline{display:inline-block;margin-top:16px;background:#f8f2e7;border:1px solid #ead9b4;border-radius:999px;padding:9px 14px;font-size:10px;color:#726246}.floral-corner{position:absolute;color:#617056;font-size:108px;opacity:.34;font-family:Georgia,serif}.floral-left{top:22px;left:max(3vw,20px);transform:rotate(-24deg)}.floral-right{right:max(3vw,20px);bottom:15px;transform:rotate(160deg)}.rsvp-form label,.admin-form label,.login-form label,.install-form label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:700;color:#53565a;line-height:1.2}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.form-grid .full{grid-column:1/-1}.rsvp-form input,.rsvp-form select,.rsvp-form textarea,.admin-form input,.admin-form select,.admin-form textarea,.login-form input,.install-form input{width:100%;border:1px solid #dbd4c6;border-radius:11px;padding:12px 13px;background:#fffdf9;color:#2d3541;font-size:12px;outline:none;transition:.16s}.rsvp-form textarea,.admin-form textarea{resize:vertical;line-height:1.55}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus,.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.login-form input:focus,.install-form input:focus{border-color:#b99752;box-shadow:0 0 0 3px rgba(203,162,90,.14)}.attendance-choice{border:0;padding:0;margin:26px 0}.attendance-choice legend{font-size:12px;font-weight:700;color:#464b51;margin-bottom:11px}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.choice{display:block!important;position:relative;border:1px solid #ddd5c4;border-radius:13px;padding:14px 15px 13px 43px;cursor:pointer;background:#fffefa;transition:.16s}.choice:hover{border-color:#bda46e}.choice input{width:auto!important;position:absolute;left:15px;top:18px;accent-color:var(--navy)}.choice b{font-size:12px;display:block;color:#303947;margin-bottom:5px}.choice small{font-size:10px;color:#85827a;font-weight:400;line-height:1.45}.rsvp-extra{margin-bottom:22px}.captcha-wrap{margin:18px 0}.success-rsvp{text-align:center;padding:18px 15px 22px}.success-rsvp h3{font-family:'Cormorant Garamond',serif;font-size:31px;color:var(--navy);margin:0 0 8px}.success-rsvp p{font-size:13px;line-height:1.7;color:#676862;max-width:410px;margin:0 auto 20px}.login-page,.install-body{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 10% 10%,#eee6d6,transparent 33%),radial-gradient(circle at 85% 85%,#d6dccf,transparent 29%),#f6f1e7}.login-paper,.install-card{position:relative;width:min(520px,100%);background:#fffdf9;border:1px solid #e4d8c0;border-radius:23px;padding:48px;box-shadow:var(--shadow);overflow:hidden}.login-paper:before,.install-card:before{content:"";position:absolute;inset:13px;border:1px solid rgba(203,162,90,.5);border-radius:16px;pointer-events:none}.login-brand{text-align:center;position:relative;z-index:1}.brand-monogram{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold2);font-size:19px;margin:0 auto 15px;border:2px solid var(--gold2)}.login-brand h1,.install-card h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:39px;line-height:1.05;color:var(--navy);margin:0 0 9px}.login-brand p:not(.eyebrow),.install-heading>p{font-size:12px;line-height:1.65;color:#7f7c73;margin:0}.login-form{position:relative;z-index:1;display:grid;gap:18px;margin-top:28px}.login-flower{position:absolute;font-size:88px;color:#707357;opacity:.22}.login-flower.tl{top:-22px;left:-12px}.login-flower.br{bottom:-30px;right:-7px;transform:rotate(150deg)}
.hero-cta{display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding:6px 0 5px;border-bottom:1px solid rgba(203,162,90,.75);font-family:'Cormorant Garamond',Georgia,serif;font-size:17px;font-weight:600;letter-spacing:.04em;color:#9b7739;transition:.2s ease}.hero-cta span{font-size:16px;transition:transform .2s ease}.hero-cta:hover{color:#715326;border-color:#715326}.hero-cta:hover span{transform:translateY(3px)}.rsvp-extra{max-height:none;opacity:1;overflow:visible;transition:opacity .25s ease,margin .25s ease}.rsvp-extra.is-hidden{display:none;opacity:0;margin-bottom:0;pointer-events:none}.message-field{margin-bottom:22px}.decline-message{display:block;max-height:0;opacity:0;overflow:hidden;margin:0;padding:0 14px;border-left:1px solid transparent;font-family:'Cormorant Garamond',Georgia,serif;font-size:16px;line-height:1.45;color:#79643f;transition:max-height .35s ease,opacity .25s ease,margin .35s ease,padding .35s ease}.decline-message.is-visible{max-height:100px;opacity:1;margin:14px 0 0;padding:9px 14px;border-left-color:#cba25a}.field-error{display:none;font-size:10px;font-weight:600;line-height:1.4;color:var(--danger);margin-top:2px}.field-error.is-visible{display:block}.captcha-wrap{display:flex;flex-direction:column;align-items:center}.captcha-wrap .field-error{text-align:center;margin-top:8px}
.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.hero-cta-secondary{color:#687052;border-bottom-color:rgba(109,112,86,.55)}.music-page{min-height:100vh;background:radial-gradient(circle at 8% 5%,rgba(225,215,190,.7),transparent 30%),radial-gradient(circle at 95% 95%,rgba(218,209,184,.68),transparent 27%),#f6f3ec}.music-shell{position:relative;min-height:100vh;padding:70px 20px 90px;overflow:hidden}.music-shell:before{content:"";position:absolute;inset:17px;border:1px solid rgba(203,162,90,.55);border-radius:22px;pointer-events:none}.music-back{position:relative;z-index:2;display:block;width:min(720px,100%);margin:0 auto 18px;font-size:11px;font-weight:700;color:#756442}.music-card{position:relative;z-index:1;width:min(720px,100%);margin:auto;background:rgba(255,253,248,.96);border:1px solid #e2d8c4;border-radius:24px;padding:46px 48px;box-shadow:var(--shadow)}.music-intro{text-align:center;max-width:570px;margin:0 auto 34px}.music-intro .olive-line{justify-content:center}.music-intro h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:46px;line-height:1.02;font-weight:600;color:var(--navy);margin:0 0 13px}.music-intro>p:last-child{font-size:12px;line-height:1.8;color:#77736c;margin:0}.music-form label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:700;color:#53565a}.music-form input{width:100%;border:1px solid #dbd4c6;border-radius:11px;padding:12px 13px;background:#fffdf9;color:#2d3541;font-size:12px;outline:none;transition:.16s}.music-form input:focus{border-color:#b99752;box-shadow:0 0 0 3px rgba(203,162,90,.14)}.song-fieldset{border:0;border-top:1px solid #e8deca;padding:24px 0 0;margin:27px 0 0}.song-fieldset legend{padding:0 12px 0 0;font-family:'Cormorant Garamond',Georgia,serif;font-size:21px;font-weight:600;color:var(--navy)}.song-fieldset legend span{display:inline-grid;place-items:center;width:30px;height:30px;margin-right:7px;border:1px solid #d6bd87;border-radius:50%;font-family:Montserrat,sans-serif;font-size:9px;color:#94723c}.song-fieldset legend small{display:inline;font-family:Montserrat,sans-serif;font-size:9px;font-weight:400;color:#999188}.optional-song{margin-bottom:25px}.music-dashboard-card{border-color:#dfcfaa;background:linear-gradient(135deg,#fffdf9,#f8f1e3)}.music-mini-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.music-mini-list>div{padding:12px 14px;border:1px solid #e7ddca;border-radius:11px;background:#fffdfa}.music-mini-list strong{display:block;font-family:'Cormorant Garamond',serif;font-size:19px;color:var(--navy)}.music-mini-list span{display:block;font-size:9px;color:#80796c;margin-top:3px}.dj-copy-card textarea{width:100%;resize:vertical;border:1px solid #dcd3c3;border-radius:12px;padding:15px;background:#fbf8f1;color:#303947;font:12px/1.7 Montserrat,Arial,sans-serif;outline:none}.copy-feedback{min-height:16px;margin:8px 0 0;font-size:10px;color:var(--success)}.song-suggestion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.song-suggestion-card{border:1px solid #e6ddcf;border-radius:14px;padding:17px;background:#fffdfa}.song-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #eee6d8}.song-card-head strong{display:block;color:var(--navy);font-size:12px}.song-card-head small{font-size:9px;color:#8b867c;margin-top:4px}.song-card-head form button{border:0;background:none;color:var(--danger);font-size:9px;font-weight:700}.song-suggestion-card ol{margin:13px 0 0;padding-left:22px}.song-suggestion-card li{padding:5px 0;color:#a47d3b}.song-suggestion-card li b,.song-suggestion-card li span{display:block}.song-suggestion-card li b{font-family:'Cormorant Garamond',serif;font-size:19px;color:#29364a}.song-suggestion-card li span{font-size:9px;color:#817b70;margin-top:2px}
/* Admin */
.admin-body{background:#f5f2ec;min-height:100vh}.admin-shell{display:grid;grid-template-columns:255px minmax(0,1fr);min-height:100vh}.admin-sidebar{background:linear-gradient(160deg,#152238,#101a2b);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:26px 16px}.brand-mini{display:flex;align-items:center;gap:11px;padding:6px 8px 25px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mini .brand-monogram{flex:0 0 auto;margin:0;width:38px;height:38px;font-size:15px;background:#cba25a;color:#182538;border-color:rgba(255,255,255,.55)}.brand-mini strong{display:block;font-family:'Cormorant Garamond',serif;font-size:20px;line-height:1.05;font-weight:600}.brand-mini small,.sidebar-footer small{font-size:9px;color:#aeb8c6;margin-top:4px;text-transform:uppercase;letter-spacing:.13em}.admin-nav{display:grid;gap:5px;margin-top:24px}.admin-nav a{display:flex;align-items:center;gap:12px;border-radius:12px;color:#cfd5df;padding:12px 12px;font-size:12px;font-weight:500;transition:.15s}.admin-nav a span{width:18px;text-align:center;color:#d8b66f;font-size:16px}.admin-nav a:hover,.admin-nav a.active{background:rgba(255,255,255,.10);color:#fff}.admin-nav a.active{box-shadow:inset 2px 0 0 #d8b66f}.sidebar-footer{margin-top:auto;display:flex;align-items:center;gap:9px;padding:16px 8px 4px;border-top:1px solid rgba(255,255,255,.12)}.user-dot{width:8px;height:8px;background:#83bc9b;border-radius:50%;box-shadow:0 0 0 3px rgba(131,188,155,.15)}.sidebar-footer div{min-width:0;flex:1}.sidebar-footer strong{font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer a{font-size:17px;color:#e5c982}.admin-main{padding:34px min(4vw,56px) 64px;min-width:0}.admin-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.admin-topbar h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:36px;color:var(--navy);margin:0;line-height:1}.open-rsvp{display:inline-flex;align-items:center;border:1px solid #dcc799;border-radius:999px;padding:10px 13px;color:#6d5b3d;font-size:11px;font-weight:700;background:#fbf7ee}.mobile-menu{display:none;border:0;background:transparent;font-size:24px;color:var(--navy)}.admin-alert{max-width:100%;margin-bottom:20px}.dashboard-grid{display:grid;gap:18px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.stat-card{min-height:150px;border-radius:18px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.stat-card:after{content:"✦";position:absolute;right:13px;bottom:-25px;font-size:90px;opacity:.1}.stat-card span{font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;position:relative;z-index:1}.stat-card strong{font-family:'Cormorant Garamond',serif;font-size:49px;line-height:.9;position:relative;z-index:1}.stat-card small{font-size:10px;opacity:.77;position:relative;z-index:1}.stat-card.navy{background:#1a2a43;color:#fff}.stat-card.gold{background:linear-gradient(135deg,#c79c51,#dfc17a);color:#33291d}.stat-card.cream{background:#fffdf9;border:1px solid #e4dccf;color:#293142}.stat-card.charcoal{background:#4a4e52;color:#fff}.dashboard-two{grid-template-columns:1.1fr .9fr;margin-bottom:18px}.panel-card{background:#fffdf9;border:1px solid #e6ded0;border-radius:18px;padding:25px;box-shadow:0 8px 23px rgba(28,36,47,.035);margin-bottom:18px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.panel-heading h2,.toolbar h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:29px;color:var(--navy);line-height:1;margin:0}.panel-heading p:not(.eyebrow){font-size:11px;line-height:1.6;color:#77756f;margin:8px 0 0}.attendance-overview{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:auto 1fr}.attendance-overview .panel-heading{grid-column:1/-1}.attendance-ring{width:185px;height:185px;border-radius:50%;background:conic-gradient(var(--gold) calc(var(--pct)*1%),#e9e5dd 0);display:grid;place-items:center;position:relative;margin:5px auto 0}.attendance-ring:before{content:"";width:142px;height:142px;border-radius:50%;background:#fffdf9;position:absolute}.attendance-ring>div{position:relative;text-align:center}.attendance-ring strong{display:block;font-family:'Cormorant Garamond',serif;font-size:41px;color:var(--navy);line-height:1}.attendance-ring span{font-size:9px;color:#888177;text-transform:uppercase;letter-spacing:.11em}.ring-legend{display:flex;flex-direction:column;justify-content:center;gap:16px;padding-left:13px}.ring-legend>div{display:flex;align-items:center;gap:9px;font-size:12px}.ring-legend span{flex:1;color:#69675f}.ring-legend b{font-family:'Cormorant Garamond',serif;font-size:24px;color:#2a3342}.dot{width:8px;height:8px;border-radius:50%}.gold-dot{background:var(--gold)}.muted-dot{background:#dedbd3}.dark-dot{background:#4a4e52}.countdown-card{background:linear-gradient(145deg,#15243a,#22344d);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.countdown-card .eyebrow{color:#e4c681}.countdown-card h2{font-family:'Cormorant Garamond',serif;font-size:37px;font-weight:500;margin:0 0 8px}.event-date-admin{font-size:12px;color:#c7d0da;margin:0}.dark-countdown{color:#fff;margin:26px 0}.dark-countdown span{color:#c7d0da}.dark-countdown i{background:rgba(228,198,129,.5)}.countdown-card .button-outline{color:#f5e5bb;border-color:rgba(228,198,129,.55)}.empty-note{font-size:12px;line-height:1.6;color:#c6cfdb;margin:15px 0}.table-wrap{overflow:auto}.table-wrap table{border-collapse:collapse;width:100%;min-width:650px}.table-wrap th{text-align:left;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#8b877e;padding:0 10px 12px;border-bottom:1px solid #e6ded1}.table-wrap td{padding:14px 10px;border-bottom:1px solid #eee8dc;font-size:11px;vertical-align:middle;color:#5c605f}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap td strong{display:block;color:#283244;font-size:12px}.table-wrap td small{font-size:10px;color:#908d85;margin-top:3px}.status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:700;white-space:nowrap}.status.success{background:#e5f2e9;color:#337257}.status.danger{background:#f6e6e4;color:#944540}.status.muted{background:#ece9e3;color:#817e76}.status.gold{background:#f6ebd3;color:#876029}.status.side-novia{background:#f0e8e6;color:#916064}.status.side-novio{background:#e6eef1;color:#4b7180}.status.side-amigos{background:#e9f0e3;color:#5d7a45}.status.side-ambos{background:#f5edda;color:#8b6f38}.status.side-general{background:#eceae5;color:#6e706d}.empty-state{text-align:center;padding:46px 20px}.empty-state>div{font-size:35px;color:#c19e60;margin-bottom:8px}.empty-state h3{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--navy);margin:0 0 8px}.empty-state p{font-size:12px;line-height:1.7;color:#7d7b74;max-width:420px;margin:0 auto}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.toolbar-note{font-size:12px;line-height:1.65;color:#726f66;max-width:680px;margin:0}.filter-form{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.filter-form input,.filter-form select,.inline-test-form input{border:1px solid #ded6c8;border-radius:10px;background:#fffdf9;padding:10px 11px;font-size:11px;outline:none}.filter-form input{width:280px}.form-panel{padding:28px;margin-bottom:18px}.admin-form .form-grid{margin-bottom:23px}.admin-form small{font-size:10px;color:#8d8a82;font-weight:400;line-height:1.45}.checkbox-line{display:flex!important;flex-direction:row!important;align-items:center;gap:9px!important}.checkbox-line input{width:auto!important}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;white-space:nowrap}.row-actions form{display:inline}.row-actions a,.row-actions button{padding:0;border:0;background:transparent;font-size:10px;font-weight:700;color:#54637a}.row-actions .danger-link{color:#a94b45}.mini-note{display:inline-block;font-size:9px;padding:4px 6px;border-radius:5px;background:#f4eee3;color:#806e54;margin:2px}.family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.family-card{background:#fffdf9;border:1px solid #e6ded0;border-radius:17px;padding:20px;box-shadow:0 8px 22px rgba(26,34,45,.03)}.family-card-top{display:flex;align-items:center;justify-content:space-between;gap:9px}.family-card h3{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--navy);line-height:1;margin:24px 0 18px}.invite-code{border:1px dashed #d8c79f;border-radius:10px;background:#fbf8ef;padding:10px 12px}.invite-code span{font-size:8px;font-weight:700;letter-spacing:.12em;color:#8a7a5b;display:block;margin-bottom:4px}.invite-code strong{font-family:monospace;font-size:14px;color:#253550;letter-spacing:.05em}.family-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}.family-metrics div{padding:10px 4px;border-right:1px solid #eee6d8;text-align:center}.family-metrics div:last-child{border:0}.family-metrics strong{display:block;font-family:'Cormorant Garamond',serif;font-size:26px;color:#26384f;line-height:1}.family-metrics span{font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:#858178}.family-card>p{font-size:11px;line-height:1.6;color:#716f69;margin:0}.banner-preview{margin:0 0 22px;padding:14px;border:1px solid #e7decf;border-radius:14px;display:flex;gap:16px;align-items:center;background:#fbf8f2}.banner-preview img{width:92px;height:120px;object-fit:cover;border-radius:9px;box-shadow:0 7px 17px rgba(29,39,54,.16)}.banner-preview span{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#8a7b5b;margin-bottom:7px}.banner-preview p{font-size:11px;color:#737169;line-height:1.6;margin:0;max-width:460px}.email-preview{display:flex;gap:35px;align-items:center}.email-preview .panel-heading{flex:1;margin:0}.email-mock{width:min(330px,100%);border:1px solid #dfc28a;border-radius:12px;overflow:hidden;box-shadow:0 12px 30px rgba(26,38,56,.1);flex:0 0 auto}.email-mock-top{background:#182538;color:#fff;padding:19px 20px}.email-mock-top small{font-size:8px;letter-spacing:.18em;color:#e1c17f}.email-mock-top strong{display:block;font-family:'Cormorant Garamond',serif;font-size:25px;font-weight:500;margin-top:7px}.email-mock-body{padding:20px;background:#fffdf9}.email-mock-body h3{font-family:'Cormorant Garamond',serif;font-size:25px;color:#1d2b42;margin:0 0 9px}.email-mock-body p{font-size:11px;color:#6c6b66;line-height:1.6;margin:0}.email-mock-body hr{border:0;border-top:1px solid #e5ddd0;margin:18px 0}.email-mock-body small{font-size:9px;color:#88795d}.settings-divider{font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:#a27d3b;border-top:1px solid #e7dfd2;padding-top:17px;margin-top:4px}.test-mail{display:flex;align-items:center;justify-content:space-between;gap:20px}.test-mail h2{font-family:'Cormorant Garamond',serif;font-size:29px;color:var(--navy);margin:0}.test-mail p:not(.eyebrow){font-size:11px;color:#74716a;margin:7px 0 0}.inline-test-form{display:flex;gap:8px;align-items:center}.inline-test-form input{min-width:235px}.notice-lock{display:flex;align-items:center;gap:13px;padding:20px}.notice-lock div{font-size:22px}.notice-lock p{font-size:12px;line-height:1.6;color:#716f68;margin:0}
.email-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.email-preview-grid article{min-width:0}.email-preview-grid .email-mock{width:100%;height:calc(100% - 27px)}.preview-label{display:block;margin:0 0 10px;font-size:9px;font-weight:700;letter-spacing:.15em;color:#8a6b35}.delivery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.delivery-grid>div{border:1px solid #e6dece;border-radius:13px;padding:16px;background:#fcfaf5}.delivery-grid strong{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;color:var(--navy);margin-bottom:6px}.delivery-grid p{font-size:10px;line-height:1.6;color:#737169;margin:0}
/* Instalador */
.install-card{width:min(840px,100%);padding:43px}.install-heading{position:relative;z-index:1;text-align:center;margin-bottom:32px}.install-heading h1{font-size:44px}.install-form{position:relative;z-index:1;display:grid;gap:24px}.install-form section{border-top:1px solid #e9e2d7;padding-top:22px}.install-form section:first-child{border-top:0;padding-top:0}.install-form h2{font-family:'Cormorant Garamond',serif;font-size:27px;color:var(--navy);margin:0 0 15px}.install-form small{font-size:10px;color:#8b887f;font-weight:400}.install-success{position:relative;z-index:1;text-align:center;padding:20px}.install-success h1{font-size:43px}.install-success>p:not(.eyebrow):not(.micro){font-size:13px;line-height:1.7;color:#72716c;max-width:460px;margin:0 auto 23px}
@media(max-width:1100px){.rsvp-hero{gap:30px}.hero-copy{padding-left:2vw}.stats-grid{grid-template-columns:repeat(2,1fr)}.family-grid{grid-template-columns:repeat(2,1fr)}.email-preview{align-items:flex-start}.admin-main{padding-left:30px;padding-right:30px}.attendance-overview{grid-template-columns:1fr}.ring-legend{padding-left:0;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:20px}.ring-legend>div{flex-wrap:wrap;gap:4px}.ring-legend b{width:100%}.attendance-ring{margin:auto}}
@media(max-width:840px){.rsvp-hero{grid-template-columns:1fr;min-height:auto;padding:60px 26px 49px;text-align:center}.hero-copy{padding:18px 0 0;margin:auto}.olive-line{justify-content:center}.hero-copy h1{white-space:normal;font-size:clamp(63px,16vw,98px)}.hero-art-wrap{order:-1}.hero-art{width:min(310px,86vw)}.countdown{justify-content:center}.rsvp-panel{padding:55px 15px 67px}.rsvp-card{padding:35px 25px}.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:fixed;z-index:50;transform:translateX(-105%);width:260px;transition:.23s;height:100dvh;box-shadow:20px 0 45px rgba(15,20,30,.2)}.admin-sidebar.open{transform:translateX(0)}.admin-main{padding:25px 18px 45px}.mobile-menu{display:inline-block;margin-right:8px}.admin-topbar{justify-content:flex-start;gap:10px}.open-rsvp{margin-left:auto}.dashboard-two{grid-template-columns:1fr}.email-preview{display:block}.email-preview .panel-heading{margin-bottom:22px}.email-mock{margin:auto}.test-mail{align-items:flex-start;flex-direction:column}.admin-topbar h1{font-size:31px}.toolbar{align-items:flex-start;flex-direction:column}.filter-form{width:100%}.filter-form input{flex:1;width:auto;min-width:185px}}
@media(max-width:600px){.rsvp-hero:before{inset:9px}.rsvp-hero:after{display:none}.hero-invite{font-size:19px}.event-date{font-size:17px}.rsvp-card{border-radius:17px;padding:31px 18px}.card-intro h2{font-size:38px}.form-grid,.choice-grid{grid-template-columns:1fr}.choice-grid{gap:9px}.rsvp-extra{margin-top:0}.floral-corner{font-size:77px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{min-height:126px;padding:15px}.stat-card strong{font-size:41px}.stat-card span{font-size:8px}.stat-card small{font-size:8px}.panel-card{padding:18px;border-radius:15px}.panel-heading h2{font-size:27px}.ring-legend{grid-template-columns:1fr 1fr}.ring-legend>div:last-child{grid-column:1/-1}.family-grid{grid-template-columns:1fr}.filter-form select{max-width:100%;flex:1}.filter-form .button{padding:10px 12px}.row-actions{gap:8px}.form-panel{padding:20px}.banner-preview{align-items:flex-start}.email-preview{padding:20px}.inline-test-form{width:100%;flex-direction:column;align-items:stretch}.inline-test-form input{min-width:0;width:100%}.login-paper,.install-card{padding:34px 22px}.install-card{border-radius:17px}.install-form .form-grid{gap:14px}.login-brand h1,.install-card h1{font-size:35px}.open-rsvp{font-size:10px;padding:9px 10px}.admin-topbar .eyebrow{font-size:8px}.admin-topbar h1{font-size:27px}.table-wrap td,.table-wrap th{padding-left:7px;padding-right:7px}}
@media(max-width:840px){.email-preview-grid{grid-template-columns:1fr}.delivery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.delivery-grid{grid-template-columns:1fr}}
@media(max-width:840px){.music-card{padding:38px 28px}.song-suggestion-grid{grid-template-columns:1fr}}
@media(max-width:600px){.hero-actions{justify-content:center;gap:10px 20px}.music-shell{padding:48px 14px 65px}.music-shell:before{inset:9px}.music-card{padding:32px 18px;border-radius:17px}.music-intro h1{font-size:39px}.music-mini-list{grid-template-columns:1fr}.dj-copy-card .panel-heading{display:block}.dj-copy-card .button{margin-top:15px;width:100%}}
.phone-input-group{display:flex;align-items:stretch;width:100%}.phone-prefix{display:flex;align-items:center;justify-content:center;min-width:58px;border:1px solid #dbd4c6;border-right:0;border-radius:11px 0 0 11px;background:#f4eee3;color:#6f6047;font-size:12px;font-weight:700}.rsvp-form .phone-input-group input{border-radius:0 11px 11px 0}.phone-input-group:focus-within .phone-prefix{border-color:#b99752;box-shadow:0 0 0 3px rgba(203,162,90,.14);box-shadow:-3px 0 0 0 rgba(203,162,90,.14),0 -3px 0 0 rgba(203,162,90,.14),0 3px 0 0 rgba(203,162,90,.14)}@media(max-width:840px){.rsvp-form input,.rsvp-form select,.rsvp-form textarea,.music-form input,.login-form input,.admin-form input,.admin-form select,.admin-form textarea{font-size:16px}.phone-prefix{font-size:16px}}
.attendance-choice{margin:28px 0 24px}.attendance-choice legend{margin-bottom:13px}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.choice{display:block!important;position:relative;border:0!important;border-radius:999px!important;padding:0!important;background:transparent!important;box-shadow:none!important}.choice input{position:absolute!important;inset:0!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.choice>span{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;width:100%;padding:0 18px;border:1px solid #c9ab70;border-radius:999px;background:#fffdf9;color:var(--navy);box-shadow:0 5px 14px rgba(47,40,27,.08),inset 0 0 0 1px rgba(255,255,255,.7);transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}.choice>span:before{content:"";display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border:2px solid #8b8b86;border-radius:50%;font-family:Arial,sans-serif;font-size:17px;line-height:1;color:currentColor}.choice input:checked+span,.choice:has(input:checked)>span{background:var(--navy)!important;color:var(--gold2)!important;border-color:var(--gold)!important;box-shadow:0 7px 18px rgba(20,32,51,.18),inset 0 0 0 2px rgba(228,199,133,.25)!important}.choice input:checked+span:before,.choice:has(input:checked)>span:before{content:"✓";border-color:var(--gold2)!important}.choice b{margin:0;color:inherit;font-family:'Cormorant Garamond',Georgia,serif;font-size:18px;font-weight:700;line-height:1;text-transform:uppercase;white-space:nowrap}.choice small{display:none!important}@media(max-width:600px){.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice>span{min-height:52px;padding:0 10px;gap:7px}.choice>span:before{flex-basis:21px;width:21px;height:21px;font-size:15px}.choice b{font-size:12px;white-space:normal;text-align:center}.rsvp-extra{gap:14px;margin-bottom:22px}.rsvp-extra label{min-width:0}.rsvp-extra input,.rsvp-extra select{min-height:52px}}
.song-suggestion-grid-polished{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.song-suggestion-card-polished{padding:0;overflow:hidden;background:#fffdf9;border-color:#dfcfaa}.song-suggestion-card-polished .song-card-head{padding:16px 17px;background:linear-gradient(135deg,#fbf7ee,#fffdf9);border-bottom:1px solid #eadfc8}.song-suggestion-card-polished .song-card-head strong{font-size:13px;color:var(--navy)}.song-suggestion-card-polished .song-card-head small{font-size:10px;line-height:1.45}.song-lines{display:grid;gap:10px;padding:16px}.song-line{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start;padding:13px;border:1px solid #eee3ce;border-radius:12px;background:#fbf8f1}.song-line>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:var(--gold2);font-size:10px;font-weight:700}.song-line b{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;line-height:1.08;color:#223149}.song-line small{font-size:10px;color:#7f7667;margin-top:4px}.song-suggestion-card-polished .row-actions{align-items:center;gap:9px}.song-suggestion-card-polished .row-actions a,.song-suggestion-card-polished .row-actions button{font-size:10px}
.premium-table table{border-collapse:separate;border-spacing:0 10px;min-width:720px}.premium-table th{border-bottom:0!important;padding-bottom:6px!important;color:#9b8c70!important}.premium-table td{background:#fffdf9;border-top:1px solid #ece2d1;border-bottom:1px solid #ece2d1;padding-top:16px!important;padding-bottom:16px!important}.premium-table td:first-child{border-left:1px solid #ece2d1;border-radius:15px 0 0 15px;box-shadow:inset 4px 0 0 #d6c6a8}.premium-table td:last-child{border-right:1px solid #ece2d1;border-radius:0 15px 15px 0}.premium-table tbody tr{filter:drop-shadow(0 8px 14px rgba(30,38,52,.045))}.premium-table tbody tr:has(.status.success) td:first-child{box-shadow:inset 4px 0 0 #3d7a62}.premium-table tbody tr:has(.status.danger) td:first-child{box-shadow:inset 4px 0 0 #a84742}.premium-table tbody tr:has(.status.muted) td:first-child{box-shadow:inset 4px 0 0 #9a9384}.premium-table td strong{font-size:13px;color:#182437}.premium-table td small{line-height:1.45}.status{gap:6px;border:1px solid transparent;box-shadow:0 4px 12px rgba(29,39,54,.05)}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status.success{border-color:#bcdcc9}.status.danger{border-color:#e1b8b3}.status.muted{border-color:#d8d1c5}.status.gold{border-color:#e0c37e}.status.side-novia:before,.status.side-novio:before,.status.side-amigos:before,.status.side-ambos:before,.status.side-general:before{display:none}.song-suggestion-grid-polished{align-items:stretch}.song-suggestion-card-polished{box-shadow:0 12px 24px rgba(33,40,52,.07)}.song-suggestion-card-polished .song-card-head{position:relative}.song-suggestion-card-polished .song-card-head:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}.song-line{box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}.song-line b{overflow-wrap:anywhere}.song-line small:before{content:"Artista: ";font-weight:700;color:#9a7a41}@media(max-width:840px){.premium-table table{min-width:680px;border-spacing:0 8px}.premium-table td{padding-top:14px!important;padding-bottom:14px!important}.song-suggestion-grid-polished{grid-template-columns:1fr}}
.favicon-cropper{grid-column:1/-1;margin-top:-8px;margin-bottom:18px;gap:12px;justify-items:start;padding:16px;border:1px solid #e4d8c0;border-radius:14px;background:#fbf8f1}.favicon-cropper-preview{width:236px;height:236px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,#e9dfca,#fffdf9);border:1px solid #d7bd85;box-shadow:0 10px 22px rgba(28,36,47,.08)}.favicon-cropper canvas{width:220px;height:220px;border-radius:15px;cursor:grab;touch-action:none;box-shadow:0 7px 18px rgba(22,31,45,.12)}.favicon-cropper canvas:active{cursor:grabbing}.favicon-cropper label{width:min(320px,100%);display:flex!important;gap:8px!important}.favicon-cropper input[type=range]{padding:0!important}.favicon-cropper small{max-width:430px;color:#857d6f;line-height:1.5}@media(max-width:600px){.favicon-cropper{justify-items:center}.favicon-cropper label{width:100%}}

/* Portada premium y cierre RSVP */
.hero-invite{margin-bottom:18px}.hero-copy{max-width:760px}.hero-copy h1{font-size:clamp(58px,7.2vw,96px);line-height:1.04;margin:0 0 24px;white-space:normal}.hero-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:4px 0 22px;max-width:780px}.hero-detail{min-width:0;padding:14px 16px;border:1px solid rgba(203,162,90,.42);border-radius:14px;background:rgba(255,253,249,.78);box-shadow:0 12px 28px rgba(31,38,52,.06)}.hero-detail span{display:block;margin-bottom:6px;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#9a7a41}.hero-detail strong{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:21px;line-height:1.12;color:var(--navy);text-transform:capitalize}.hero-detail small{font-size:10px;line-height:1.45;color:#7b7569;margin-top:5px}.hero-detail-deadline{background:linear-gradient(135deg,#fbf3e4,#fffdf9);border-color:rgba(203,162,90,.58)}.deadline-closed{background:#f8e9e4;border-color:#ddb8ae;color:#85443c}.rsvp-closed{text-align:center;padding:20px 16px 28px}.rsvp-closed h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:34px;line-height:1;color:var(--navy);margin:0 0 12px}.rsvp-closed p{font-size:13px;line-height:1.75;color:#676862;max-width:470px;margin:0 auto}.rsvp-closed .seal-icon{background:radial-gradient(circle at 30% 30%,#e9cba0,#8f4b42)}
@media(max-width:1100px){.hero-detail-grid{grid-template-columns:1fr 1fr}.hero-detail-deadline{grid-column:1/-1}}
@media(max-width:840px){.hero-copy{max-width:620px}.hero-copy h1{font-size:clamp(58px,15vw,90px);margin-bottom:20px}.hero-detail-grid{grid-template-columns:1fr;text-align:left}.hero-message{margin-left:auto;margin-right:auto}}
@media(max-width:600px){.hero-invite{margin-bottom:14px}.hero-copy h1{font-size:clamp(54px,17vw,78px)}.hero-detail{padding:13px}.hero-detail strong{font-size:19px}.rsvp-closed h3{font-size:30px}}
.popup-host{position:fixed;z-index:9999;left:50%;top:22px;transform:translateX(-50%);display:grid;gap:10px;width:min(520px,calc(100vw - 28px));pointer-events:none}.popup-notice{pointer-events:auto;position:relative;padding:16px 44px 15px 18px;border-radius:16px;background:#fffdf9;border:1px solid #e4c0ba;box-shadow:0 18px 45px rgba(31,38,52,.18);color:#4a2c2a;animation:popupIn .22s ease-out}.popup-notice strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#8f403b;margin-bottom:5px}.popup-notice p{margin:0;font-size:13px;line-height:1.55;color:#493f3b}.popup-notice button{position:absolute;right:12px;top:10px;width:28px;height:28px;border:0;border-radius:50%;background:rgba(20,32,51,.05);color:#7e6258;font-size:15px;font-weight:700;line-height:1}.popup-notice button:hover{background:rgba(20,32,51,.1)}.popup-success{border-color:#bcdcc9}.popup-success strong{color:#337257}.popup-notice.is-hiding{opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease}@keyframes popupIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.popup-host{top:12px}.popup-notice{border-radius:13px;padding:14px 40px 13px 15px}.popup-notice p{font-size:12px}}
.scroll-cue{position:absolute;left:50%;bottom:30px;z-index:3;width:54px;height:54px;transform:translateX(-50%);display:grid;place-items:center;border:1px solid rgba(203,162,90,.72);border-radius:50%;background:rgba(255,253,249,.72);box-shadow:0 14px 34px rgba(31,38,52,.12),inset 0 0 0 7px rgba(255,255,255,.42);backdrop-filter:blur(8px);animation:scrollCuePulse 5.8s ease-in-out infinite}.scroll-cue span{width:14px;height:14px;border-right:2px solid #9b7739;border-bottom:2px solid #9b7739;transform:rotate(45deg);animation:scrollCueArrow 5.8s ease-in-out infinite}.scroll-cue:hover{border-color:#715326;background:#fffdf9}.scroll-cue:hover span{border-color:#715326}@keyframes scrollCueArrow{0%,12%,24%{transform:translateY(0) rotate(45deg);opacity:.78}6%,18%{transform:translateY(8px) rotate(45deg);opacity:1}34%,100%{transform:translateY(0) rotate(45deg);opacity:.78}}@keyframes scrollCuePulse{0%,24%{box-shadow:0 14px 34px rgba(31,38,52,.12),inset 0 0 0 7px rgba(255,255,255,.42)}12%{box-shadow:0 18px 42px rgba(31,38,52,.16),0 0 0 8px rgba(203,162,90,.13),inset 0 0 0 7px rgba(255,255,255,.48)}34%,100%{box-shadow:0 14px 34px rgba(31,38,52,.12),inset 0 0 0 7px rgba(255,255,255,.42)}}@media(max-width:840px){.scroll-cue{bottom:18px;width:48px;height:48px}}@media(prefers-reduced-motion:reduce){.scroll-cue,.scroll-cue span{animation:none}}
.single-invite-note{margin:-8px 0 22px;padding:12px 15px;border:1px solid rgba(203,162,90,.45);border-radius:14px;background:linear-gradient(135deg,#fbf4e8,#fffdf9);color:#6f6047;font-family:'Cormorant Garamond',Georgia,serif;font-size:17px;line-height:1.35;text-align:center}
