:root{--ivory:#f7f1e6;--paper:#fffaf1;--sage:#4c5b45;--sage2:#6b7863;--gold:#b58f48;--gold2:#d8c28d;--ink:#3d382f;--muted:#746d63;--line:#dccba6;--soft:#eee6d8;--rose:#c89c93}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(135deg,#f5efe4,#eee5d6);color:var(--ink);font-family:Georgia,'Times New Roman',serif}.shell{max-width:1180px;margin:auto;padding:16px}.topbar{position:sticky;top:0;z-index:50;background:rgba(247,241,230,.94);backdrop-filter:blur(9px);border-bottom:1px solid rgba(181,143,72,.25)}.topbar-inner{max-width:1180px;margin:auto;padding:10px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#d9bf7b,#9d7734);color:#fff;font-weight:700}.brand-title{font-size:16px;color:var(--sage);font-weight:700}.nav{display:flex;gap:8px;flex-wrap:wrap}.nav a{font:700 13px system-ui;color:var(--sage);text-decoration:none;padding:9px 13px;border-radius:999px;border:1px solid transparent}.nav a.active{background:var(--sage);color:#fff}.nav a.admin{border-color:var(--line);background:#fffaf1}.note{font:14px/1.55 system-ui;color:var(--muted)}.card{background:rgba(255,250,241,.97);border:1px solid var(--line);border-radius:28px;box-shadow:0 18px 55px rgba(65,54,38,.12);overflow:hidden}.eyebrow{letter-spacing:.26em;font:700 11px system-ui;color:var(--gold)}.script{font-family:'Brush Script MT','Segoe Script',cursive}.primary,.secondary,.ghost{border:none;border-radius:999px;min-height:46px;padding:11px 20px;cursor:pointer;font-weight:700;font-family:system-ui}.primary{background:var(--sage);color:#fff}.primary:disabled{opacity:.5;cursor:not-allowed}.secondary{background:var(--soft);color:var(--ink);border:1px solid var(--line)}.ghost{background:#fff;color:var(--sage);border:1px solid var(--line)}.link-button{text-decoration:none;display:inline-flex;align-items:center}.goldline{height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:18px auto;width:72%}
/* personalized cover */
.invitation-cover{min-height:100vh;display:grid;place-items:center;align-content:center;padding:28px;background:radial-gradient(circle at 50% 20%,#fffdf6 0,#f3ecdf 50%,#e8dfcf 100%);transition:.5s ease}.invitation-cover.opening{opacity:0;transform:scale(1.02)}.cover-kicker{letter-spacing:.34em;color:var(--gold);font:700 12px system-ui;margin-bottom:22px}.envelope-stage{width:min(620px,96vw);display:grid;place-items:center}.envelope-premium{width:min(520px,90vw);height:330px;position:relative;background:#45533f;border-radius:14px 14px 24px 24px;box-shadow:0 28px 70px rgba(59,53,43,.22);overflow:hidden}.env-flap{position:absolute;inset:0 0 auto;height:175px;background:#5f6e58;clip-path:polygon(0 0,100% 0,50% 100%);z-index:4}.env-paper{position:absolute;left:8%;right:8%;bottom:8%;height:73%;border-radius:10px;background:linear-gradient(145deg,#fffdf6,#f4ebda);border:1px solid #d3bd84;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:26px 18px 20px;text-align:center;z-index:2}.env-paper:before,.env-paper:after{content:'❦';position:absolute;color:#b58f48;font-size:28px;top:16px}.env-paper:before{left:20px}.env-paper:after{right:20px;transform:scaleX(-1)}.env-xv{font-size:54px;color:#b58f48;line-height:.85}.env-invite-label{font:700 10px system-ui;letter-spacing:.24em;color:#9f7b37;margin-top:12px}.env-guest{font-size:26px;color:var(--sage);margin-top:8px;max-width:90%;font-weight:700}.env-date{font-size:13px;color:var(--muted);margin-top:8px}.env-seal{position:absolute;left:50%;top:120px;transform:translateX(-50%);z-index:6;width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 32% 28%,#e4ce94,#a87f32 72%);border:3px double #f4dea8;color:#fff8e8;font-size:22px;font-weight:700;box-shadow:0 7px 18px rgba(0,0,0,.24)}.cover-open{margin-top:20px;min-width:190px}.cover-msg{font:12px system-ui;color:var(--muted);margin-top:10px;text-align:center}
/* approved design hero */
.approved-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);background:linear-gradient(120deg,#f8f1e5,#fffaf1)}.approved-image-frame{padding:22px;background:radial-gradient(circle,#fff,#f2e7d6);display:flex;align-items:center;justify-content:center}.approved-image-frame img{width:100%;max-height:820px;object-fit:contain;border-radius:14px;box-shadow:0 18px 45px rgba(70,54,34,.15);border:1px solid #d4b979}.approved-side{padding:38px 30px;display:flex;flex-direction:column;justify-content:center;text-align:center}.hero-name{font-size:50px;color:var(--sage);line-height:1}.surname{font-size:18px;color:var(--sage2)}.intro{font-size:17px;line-height:1.65}.mini-countdown{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin:14px auto 18px}.mini-countdown div{min-width:48px;padding:6px 7px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.8)}.mini-countdown strong{display:block;font:700 15px system-ui;color:var(--sage)}.mini-countdown span{font:9px system-ui;color:var(--muted)}
.section{padding:34px}.section-title{text-align:center;margin-bottom:18px}.section h2{color:var(--sage);font-size:32px;margin:4px 0 12px}.prayer{max-width:820px;margin:auto;text-align:center;border:1px solid var(--line);padding:30px 26px;border-radius:22px;background:linear-gradient(#fffdf8,#f6efe2);position:relative;overflow:hidden}.prayer p{font-size:20px;line-height:1.85;margin:12px 0 0}.botanical-corner{position:absolute;font-size:76px;color:#61705a;opacity:.13;top:-10px}.bc-left{left:10px}.bc-right{right:10px;transform:scaleX(-1)}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.event-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}.event-photo{height:250px;background:#e8e2d6 center/cover no-repeat;position:relative}.photo-label{position:absolute;left:14px;bottom:14px;background:rgba(255,250,241,.92);border:1px solid var(--gold2);border-radius:999px;padding:8px 12px;color:var(--sage);font:700 12px system-ui}.event-body{padding:20px}.event-body h3{color:var(--sage);font-size:27px;margin:0}.time{font-size:21px;color:var(--gold);margin:6px 0}.event-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.detailbox{margin-top:12px;padding:13px;border-radius:13px;background:#f8f3e9;border:1px solid #eadfc8;font:14px/1.55 system-ui;color:var(--muted)}
/* RSVP blended with approved art */
.rsvp-section{padding-top:12px}.rsvp-stage{position:relative;min-height:480px;border:1px solid var(--line);border-radius:26px;overflow:hidden;display:grid;grid-template-columns:1.1fr .95fr .8fr;align-items:stretch;background:#efe5d4}.rsvp-art{background-image:linear-gradient(90deg,rgba(247,241,230,.05),rgba(247,241,230,.12)),url('assets/invitacion-aprobada.png');background-size:cover;background-position:left center;min-height:480px}.rsvp-glass{margin:24px 0;padding:28px 26px;background:rgba(255,250,241,.93);backdrop-filter:blur(3px);border-top:1px solid rgba(216,194,141,.8);border-bottom:1px solid rgba(216,194,141,.8);display:flex;flex-direction:column;justify-content:center}.rsvp-glass h2{font-size:30px}.rsvp-glass label{font-family:system-ui;font-weight:700;display:block;margin:12px 0 8px}.rsvp-glass input{width:110px;padding:11px;border:1px solid var(--line);border-radius:14px;font-size:21px;background:#fff}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.status{font-family:system-ui;font-weight:700;color:var(--sage)}.rsvp-message{margin-top:14px;min-height:24px}.table-result{margin:24px;padding:24px 18px;border-radius:22px;background:rgba(255,250,241,.94);border:1px solid var(--gold2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 14px 35px rgba(69,58,42,.1)}.table-result.waiting{opacity:.72}.table-title{font:700 11px system-ui;letter-spacing:.24em;color:var(--gold)}.table-visual{width:138px;height:138px;border-radius:50%;border:10px solid #e8e0d2;position:relative;display:grid;place-items:center;background:#fffaf1;margin:12px auto 14px}.table-visual strong{font:700 42px system-ui;color:var(--sage)}.table-main-text{font:700 18px system-ui;color:var(--sage)}.seat{position:absolute;width:20px;height:20px;border-radius:50%;background:#d7d4cb;border:2px solid #fff;box-shadow:0 0 0 1px #cfc8bb}.seat.used{background:var(--sage)}.s1{top:-17px;left:31px}.s2{top:-17px;right:31px}.s3{top:30px;right:-17px}.s4{bottom:30px;right:-17px}.s5{bottom:-17px;right:31px}.s6{bottom:-17px;left:31px}.s7{bottom:30px;left:-17px}.s8{top:30px;left:-17px}
/* admin */
.admin-shell{max-width:1320px;margin:auto;padding:16px}.login{max-width:430px;margin:50px auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 14px 40px rgba(58,47,32,.1)}.login input{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;margin:10px 0}.admin-wrap{display:none}.admin-wrap.active{display:block}.admin-header{display:flex;justify-content:space-between;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.admin-header h1{font:700 32px Georgia,serif;color:var(--sage);margin:0}.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:14px 0 18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}.kpi strong{font:700 25px system-ui;color:var(--sage);display:block}.kpi span{font:12px system-ui;color:var(--muted)}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.admin-tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 15px;font:700 13px system-ui;color:var(--sage);cursor:pointer}.admin-tabs button.active{background:var(--sage);color:#fff}.admin-pane{display:none}.admin-pane.active{display:block}.admin-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}.panel h3{margin:0 0 12px;color:var(--sage);font-size:21px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.toolbar input,.toolbar select,.form-grid input,.form-grid select{min-height:42px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;font:14px system-ui}.toolbar input{flex:1}.guest-table{width:100%;border-collapse:collapse;font:12px system-ui}.guest-table th,.guest-table td{padding:9px 7px;border-bottom:1px solid #eee8dd;text-align:left;vertical-align:middle}.pill{display:inline-block;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:700}.pill.ok{background:#dcebdc;color:#36553c}.pill.pending{background:#f3e8c7;color:#745f22}.pill.no{background:#f1d8d8;color:#7c3636}.pill.seen{background:#e0e7dc;color:#40543c}.smallbtn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 8px;cursor:pointer;font:700 11px system-ui;color:var(--sage)}.smallbtn.wa{background:#e8f5ea}.table-list{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.table-btn{border:1px solid var(--line);border-radius:13px;padding:9px 4px;background:#faf8f3;cursor:pointer;min-height:70px}.table-btn.full{background:#dfeadf}.table-btn.partial{background:#f4ead0}.table-btn.free{background:#f5f4ef}.table-btn.selected{outline:2px solid var(--sage);outline-offset:2px}.table-btn strong{display:block;font:700 16px system-ui}.table-btn span{font:11px system-ui;color:var(--muted)}.detail-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #eee8dd;font:13px system-ui}.form-grid{display:grid;grid-template-columns:2fr 1fr .65fr .65fr .65fr;gap:9px;align-items:end}.field label{display:block;font:700 11px system-ui;color:var(--muted);margin-bottom:5px}.checkbox{display:flex;align-items:center;gap:7px;font:13px system-ui}.linkbox{margin-top:14px;padding:13px;border-radius:13px;border:1px solid var(--line);background:#faf7ef}.linkbox input{width:100%;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff;font:12px system-ui}.error{color:#8a3131;font:13px system-ui;margin-top:8px}.success{color:#36553c;font:13px system-ui;margin-top:8px}
@media(max-width:1000px){.approved-hero{grid-template-columns:1fr}.approved-image-frame img{max-height:720px}.rsvp-stage{grid-template-columns:1fr 1fr}.rsvp-art{grid-column:1/-1;min-height:360px;background-position:center 25%}.rsvp-glass{margin:0;border:0}.table-result{margin:16px}.admin-grid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:1fr 1fr}.table-list{grid-template-columns:repeat(4,1fr)}}
@media(max-width:600px){.shell,.admin-shell{padding:8px}.section{padding:24px 12px}.approved-image-frame{padding:10px}.approved-side{padding:28px 18px}.hero-name{font-size:42px}.event-grid{grid-template-columns:1fr}.rsvp-stage{grid-template-columns:1fr}.rsvp-art{min-height:300px}.rsvp-glass{margin:0}.table-result{margin:0;border-radius:0 0 20px 20px}.kpis{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.table-list{grid-template-columns:repeat(3,1fr)}.prayer p{font-size:18px}.nav a{padding:8px 10px;font-size:12px}.envelope-premium{height:290px}.env-flap{height:145px}.env-seal{top:96px}.env-guest{font-size:22px}.approved-side .intro{font-size:15px}}
