/* ---------- Tokens del panel (claro/oscuro) ---------- */
:root{
  --bg:#EDF1F7; --surface:#FFFFFF; --surface-2:#F4F6FA; --ink:#1B2433; --muted:#5A6577; --line:#D6DDE8;
  --shadow:0 1px 0 rgba(27,36,51,.05), 0 24px 48px -30px rgba(27,36,51,.40);
  --good:#177A50; --good-soft:#E2F3EA; --bad:#B13F2B; --bad-soft:#FBE8E3; --tag:#EDF0F5;
  --accent:#E4513B; --on-accent:#FFFFFF;
  --accent-text:color-mix(in srgb, var(--accent) 80%, var(--ink));
  --accent-soft:color-mix(in srgb, var(--accent) 12%, var(--surface));
  --ui:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ui-display:"Lilita One","Arial Rounded MT Bold",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0F141C; --surface:#171E2A; --surface-2:#1E2635; --ink:#EDF1F7; --muted:#9CA7B8; --line:#2B3548;
    --shadow:0 1px 0 rgba(0,0,0,.35), 0 24px 48px -30px rgba(0,0,0,.85);
    --good:#56CB94; --good-soft:#15342A; --bad:#F2917D; --bad-soft:#3A201B; --tag:#243044;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0F141C; --surface:#171E2A; --surface-2:#1E2635; --ink:#EDF1F7; --muted:#9CA7B8; --line:#2B3548;
  --shadow:0 1px 0 rgba(0,0,0,.35), 0 24px 48px -30px rgba(0,0,0,.85);
  --good:#56CB94; --good-soft:#15342A; --bad:#F2917D; --bad-soft:#3A201B; --tag:#243044;
}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--ui);font-size:16px;line-height:1.5;padding-inline:16px;padding-block:14px 72px;-webkit-font-smoothing:antialiased}
button,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:2px}
h1,h2{margin:0;text-wrap:balance}
p{margin:0}
.wrap{max-width:720px;margin-inline:auto;display:flex;flex-direction:column;gap:18px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}


/* ================= INVITACIÓN ================= */
#guest-view{--i-ink:#2A1C18;--i-muted:#7A625A;--i-card:#FFFFFF;--i-soft:#FFE8DE;--i-line:#F0D6CA;--i-field:#FFFAF7;--i-accent:#E4513B;--i-accent-text:#C23E2A;--i-on:#FFFFFF;--i-a2:#F2B01E;--i-a3:#2FB594;--i-display:"Lilita One",system-ui,sans-serif;--i-text:"Figtree",system-ui,sans-serif;--i-name-font:"Lilita One",system-ui,sans-serif;--i-name-size:clamp(56px,17vw,76px);--e-back:#E79C86;--e-front:#F4BCA9;--e-flap:#EEAC97;--e-seal:#E4513B;--e-seal-ink:#FFFFFF;--i-hero-ink:#2A1C18;--i-hero-muted:#7A625A;--i-hero-accent:#C23E2A;color:var(--i-ink);font-family:var(--i-text)}
.inv-col{max-width:460px;margin-inline:auto;display:flex;flex-direction:column;gap:14px}

/* Sobre */
.stage{display:grid;justify-items:center;gap:22px;padding-block:28px 24px;text-align:center}
.stage-eyebrow{font-family:var(--i-display);font-size:26px;line-height:1.1;color:var(--i-hero-ink)}
.stage-hint{font-size:15px;font-weight:600;color:var(--i-hero-muted)}
.env{position:relative;width:min(84vw,340px);aspect-ratio:3/2;border:0;padding:0;background:none;cursor:pointer;margin-top:70px;perspective:900px;border-radius:12px}
.env>span{position:absolute;display:block}
.env-back{inset:0;border-radius:12px;background:var(--e-back);box-shadow:0 26px 50px -26px rgba(0,0,0,.55)}
.env-card{left:6%;right:6%;top:7%;bottom:5%;border-radius:8px;background:var(--i-card);box-shadow:0 2px 10px rgba(0,0,0,.12);display:grid!important;place-items:start center;padding-top:9%;z-index:1;transition:transform .8s cubic-bezier(.2,.8,.2,1) .35s}
.stage-eyebrow,.stage-hint{transition:opacity .25s ease}
.stage.opening .stage-eyebrow,.stage.opening .stage-hint{opacity:0}
.env-card b{font-family:var(--i-name-font);font-weight:400;font-size:34px;color:var(--i-accent-text);line-height:1}
.env-front{inset:0;border-radius:12px;background:var(--e-front);clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);z-index:2}
.env-flap{left:0;right:0;top:0;height:60%;background:var(--e-flap);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top center;z-index:3;border-radius:12px 12px 0 0;transition:transform .55s ease,z-index 0s .27s}
.env-seal{left:50%;top:60%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:var(--e-seal);color:var(--e-seal-ink);display:grid!important;place-items:center;font-family:var(--i-name-font);font-size:28px;line-height:1;z-index:4;box-shadow:0 3px 0 rgba(0,0,0,.18),inset 0 0 0 4px rgba(255,255,255,.2);transition:transform .3s ease,opacity .3s ease}
.env:hover .env-seal{transform:scale(1.06)}
.env.open .env-seal{transform:scale(.5);opacity:0}
.env.open .env-flap{transform:rotateX(180deg);z-index:0}
.env.open .env-card{transform:translateY(-66%)}
@media (prefers-reduced-motion:no-preference){
  .env:not(.open) .env-seal{animation:pulse 2.2s ease-in-out infinite}
  @keyframes pulse{0%,100%{box-shadow:0 3px 0 rgba(0,0,0,.18),inset 0 0 0 4px rgba(255,255,255,.2),0 0 0 0 rgba(255,255,255,.55)}50%{box-shadow:0 3px 0 rgba(0,0,0,.18),inset 0 0 0 4px rgba(255,255,255,.2),0 0 0 12px rgba(255,255,255,0)}}
  .inv.reveal{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
  @keyframes rise{from{transform:translateY(18px)}to{transform:none}}
}

/* Portada */
.inv-hero{display:grid;justify-items:center;text-align:center;gap:4px;padding-block:6px 4px}
.hero-art{width:210px;max-width:100%;display:grid;place-items:center;margin-bottom:6px}
.hero-art svg{width:100%;height:auto;display:block;overflow:visible}
.hero-art img.ai-art{width:100%;height:auto;display:block}
.hero-art.wide{width:100%;max-width:440px}
.hero-art.wide img.ai-art{border-radius:22px;box-shadow:0 22px 40px -28px rgba(58,43,69,.55);-webkit-mask-image:linear-gradient(#000 82%,transparent);mask-image:linear-gradient(#000 82%,transparent)}
.hero-art.square{width:100%;max-width:380px}
.hero-art.square img.ai-art{aspect-ratio:1/1;object-fit:cover;object-position:50% 48%;-webkit-mask-image:radial-gradient(closest-side,#000 78%,transparent);mask-image:radial-gradient(closest-side,#000 78%,transparent)}
.inv-eyebrow{font-family:var(--i-display);font-size:19px;letter-spacing:.01em;color:var(--i-hero-accent);margin-top:6px;text-wrap:balance}
.inv-name{font-family:var(--i-name-font);font-weight:400;font-size:var(--i-name-size);line-height:.95;color:var(--i-hero-ink);overflow-wrap:anywhere}
.inv-sub{font-family:var(--i-display);font-size:24px;line-height:1.2;color:var(--i-hero-ink);margin-top:4px;text-wrap:balance}
.inv-sub b{font-weight:400;font-size:1.7em;color:var(--i-hero-accent);vertical-align:-.12em;padding-inline:.08em}

.inv-card{background:var(--i-card);border-radius:22px;padding:18px 18px;box-shadow:0 1px 0 rgba(0,0,0,.04),0 22px 44px -30px rgba(0,0,0,.45)}
.cd{text-align:center}
.cd-title{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--i-muted)}
.cd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.cd-cell{background:var(--i-soft);border-radius:14px;padding:10px 4px 8px;display:grid;gap:2px}
.cd-cell b{font-family:var(--i-display);font-weight:400;font-size:30px;line-height:1;color:var(--i-accent-text);font-variant-numeric:tabular-nums}
.cd-cell span{font-size:12px;font-weight:700;color:var(--i-muted)}
.cd-today{font-family:var(--i-display);font-size:24px;color:var(--i-accent-text);margin-top:6px}

.info{display:grid;gap:14px}
.info-row{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start}
.info-ico{width:44px;height:44px;border-radius:14px;background:var(--i-soft);color:var(--i-accent-text);display:grid;place-items:center}
.info-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.info-label{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--i-muted)}
.info-main{font-size:19px;font-weight:700;line-height:1.25;margin-top:2px}
.info-sub{font-size:15px;color:var(--i-muted)}
.inv-btn{display:flex;justify-content:center;align-items:center;gap:8px;padding:12px 16px;border-radius:14px;background:var(--i-soft);color:var(--i-accent-text);font-weight:800;font-size:15px;text-decoration:none;font-family:"Figtree",system-ui,sans-serif}
.msg{text-align:center;padding:24px 22px}
.msg-text{font-size:18px;line-height:1.5}
.msg-sign{margin-top:10px;font-family:var(--i-name-font);font-size:24px;color:var(--i-accent-text);line-height:1.1}

/* Confirmación dentro de la invitación */
.rsvp{border:2px solid var(--i-accent);padding:22px 18px 22px;font-family:"Figtree",system-ui,sans-serif}
.rsvp-title{font-family:var(--i-display);font-weight:400;font-size:34px;line-height:1.05;text-align:center}
.rsvp-sub{margin-top:4px;font-size:14px;color:var(--i-muted);text-align:center}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.choice{padding:15px 10px;border-radius:14px;border:2px solid var(--i-line);background:var(--i-field);color:var(--i-ink);font-weight:800;font-size:17px;cursor:pointer}
.choice[data-going="yes"][aria-checked="true"]{border-color:var(--i-accent);background:var(--i-soft);color:var(--i-accent-text)}
.choice[data-going="no"][aria-checked="true"]{border-color:var(--i-ink)}
.fields{display:grid;gap:14px;margin-top:18px}
.fields>*,.counts>*{min-width:0}
.inv .field{display:grid;gap:6px;font-size:14px;font-weight:700;color:var(--i-ink)}
.inv .field input,.inv .field textarea{width:100%;padding:12px 14px;border:1.5px solid var(--i-line);border-radius:12px;background:var(--i-field);color:var(--i-ink);font-size:16px;font-weight:500}
.inv .field input::placeholder,.inv .field textarea::placeholder{color:var(--i-muted);opacity:.8}
.inv .field input:focus,.inv .field textarea:focus{border-color:var(--i-accent);outline:none}
.inv .field textarea{resize:vertical;min-height:52px}
.counts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stepper{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1.5px solid var(--i-line);border-radius:14px;background:var(--i-field)}
.stepper-label{font-size:14px;font-weight:700}
.stepper-ctrl{display:flex;align-items:center;justify-content:space-between;gap:6px}
.step{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--i-line);background:var(--i-card);color:var(--i-ink);font-size:20px;font-weight:700;line-height:1;cursor:pointer}
.stepper output{min-width:2ch;text-align:center;font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.inv .primary{background:var(--i-accent);color:var(--i-on)}
.inv .error{color:#C0392B}
.done{display:grid;justify-items:center;text-align:center;gap:10px}
.done-mark{width:62px;height:62px;border-radius:50%;background:var(--i-accent);display:grid;place-items:center}
.done-mark svg{width:30px;height:30px}
.done-mark path{fill:none;stroke:var(--i-on);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.done-mark.is-no{background:var(--i-soft)}
.done-mark.is-no path{stroke:var(--i-ink)}
.done p{max-width:34ch;color:var(--i-muted)}
.inv .ghost{border-color:var(--i-line);color:var(--i-ink)}
.madewith{text-align:center;font-size:13px;color:var(--i-hero-muted);font-family:"Figtree",system-ui,sans-serif;margin-top:6px}
.madewith b{color:var(--i-hero-ink)}
.link-btn{background:none;border:0;padding:6px;color:var(--i-hero-muted);font-size:13px;font-weight:700;text-decoration:underline;cursor:pointer;font-family:"Figtree",system-ui,sans-serif}
.center{text-align:center}
.music-btn{margin-top:10px;display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--i-line);background:var(--i-card);color:var(--i-accent-text);border-radius:999px;padding:7px 14px;font-family:"Figtree",system-ui,sans-serif;font-size:14px;font-weight:800;cursor:pointer}
.music-btn[aria-pressed="true"]{background:var(--i-accent);border-color:var(--i-accent);color:var(--i-on)}
#fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:60}

/* Comunión: tipografía de texto con serifa y marco dorado */
#guest-view[data-kind="comunion"] .inv-card{outline:1px solid var(--i-a3);outline-offset:-8px}
#guest-view[data-kind="comunion"] .inv-eyebrow{font-size:15px;letter-spacing:.24em;text-transform:uppercase;font-weight:700}
#guest-view[data-kind="comunion"] .inv-sub,#guest-view[data-kind="comunion"] .inv-sub{font-size:21px;font-style:italic;font-weight:500;max-width:26ch;color:var(--i-hero-muted)}
#guest-view[data-kind="comunion"] .info-main{font-family:"Cormorant Garamond",Georgia,serif;font-size:23px;font-weight:700}
#guest-view[data-kind="comunion"] .msg-text{font-size:21px;font-style:italic}
#guest-view[data-kind="comunion"] .stage-eyebrow{font-weight:600}
#guest-view[data-look="espacio"] .inv-card{box-shadow:0 0 0 1px var(--i-line),0 22px 44px -30px rgba(0,0,0,.8)}

/* ================= PANEL ================= */
.primary{display:inline-flex;justify-content:center;align-items:center;gap:8px;width:100%;padding:15px 20px;border:0;border-radius:14px;background:var(--accent);color:var(--on-accent);font-weight:800;font-size:17px;cursor:pointer}
.primary.inline{width:auto;padding:12px 18px;font-size:15px}
.primary[disabled]{opacity:.6;cursor:progress}
.ghost{background:transparent;border:1.5px solid var(--line);border-radius:12px;padding:10px 16px;font-weight:700;font-size:15px;cursor:pointer}
.ghost.small{font-size:13px;padding:8px 12px}
.error{color:var(--bad);font-weight:700;font-size:14px}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.panel-title{font-family:var(--ui-display);font-weight:400;font-size:clamp(34px,9vw,44px);line-height:1;margin-top:6px}
.panel-sub{margin-top:6px;color:var(--muted);font-weight:600}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tile{background:var(--surface);border-radius:18px;padding:14px 14px 12px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:0}
.tile-yes{background:var(--accent-soft)}
.tile-label{font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.tile-num{font-family:var(--ui-display);font-size:42px;line-height:1.05;font-variant-numeric:tabular-nums;margin-top:4px}
.tile-yes .tile-num{color:var(--accent-text)}
.tile-sub{font-size:13px;color:var(--muted);font-weight:600}
.card{background:var(--surface);border-radius:18px;padding:18px;box-shadow:var(--shadow);display:grid;gap:12px}
.card h2{font-size:17px;font-weight:800}
.card .field{display:grid;gap:6px;font-size:14px;font-weight:700}
.card .field input,.card .field textarea{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);font-size:16px;font-weight:500}
.card .field input:focus,.card .field textarea:focus{border-color:var(--accent);outline:none}
.share-text{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:15px;line-height:1.45;resize:none}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.status{font-size:14px;font-weight:700;color:var(--good)}
.hint{font-size:13px;color:var(--muted)}
.list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1.5px solid var(--line);background:transparent;border-radius:999px;padding:5px 11px;font-size:13px;font-weight:700;cursor:pointer;font-variant-numeric:tabular-nums}
.chip[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.rsvp-list{list-style:none;margin:0;padding:0}
.rsvp-list li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;padding-block:12px;border-top:1px solid var(--line)}
.r-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.r-name{font-weight:800}
.pill{font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px}
.pill.yes{background:var(--good-soft);color:var(--good)}
.pill.no{background:var(--bad-soft);color:var(--bad)}
.tag{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);background:var(--tag);padding:2px 7px;border-radius:6px}
.r-meta{margin-top:2px;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.r-note{margin-top:4px;font-size:14px}
.del{border:1.5px solid var(--line);background:transparent;border-radius:10px;padding:6px 10px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.del.armed{border-color:var(--bad);color:var(--bad)}
.empty{color:var(--muted);font-size:15px;padding-block:6px}
details.card{gap:0}
details.card[open]{gap:14px}
summary{cursor:pointer;font-weight:800;font-size:17px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:24px;line-height:1;color:var(--muted)}
details[open] summary::after{content:"–"}
.edit-form{display:grid;gap:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.group-label{font-size:14px;font-weight:700}
.looks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.look{position:relative}
.look input{position:absolute;opacity:0;width:1px;height:1px}
.look span{display:grid;gap:6px;justify-items:center;padding:8px 6px 9px;border:2px solid var(--line);border-radius:14px;cursor:pointer;font-size:12px;font-weight:800;text-align:center}
.look i{display:grid;place-items:center;width:100%;aspect-ratio:4/3;border-radius:9px;font-style:normal;font-size:17px;line-height:1}
.look input:checked + span{border-color:var(--ink)}
.look input:focus-visible + span{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:2px}
.kinds{display:flex;gap:8px;flex-wrap:wrap}
.kind{position:relative}
.kind input{position:absolute;opacity:0;width:1px;height:1px}
.kind span{display:inline-block;padding:8px 14px;border:1.5px solid var(--line);border-radius:999px;font-size:14px;font-weight:700;cursor:pointer}
.kind input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.kind input:focus-visible + span{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:2px}
@media (max-width:420px){
  .three{grid-template-columns:1fr 1fr}
  .three .field:first-child{grid-column:1 / -1}
  .tile{padding:12px 10px 10px}
  .tile-num{font-size:36px}
  .looks{grid-template-columns:repeat(2,1fr)}
}
@media (prefers-reduced-motion:no-preference){
  .choice,.primary,.chip,.del,.inv-btn{transition:background-color .15s,border-color .15s,color .15s}
}

/* ---------- Páginas nuevas (crear, panel, avisos) ---------- */
body.plain{background:var(--bg)}
.brand{font-family:var(--ui-display);font-size:22px;text-align:center;margin-block:4px 2px}
.center-page{max-width:520px;margin:12vh auto 0;text-align:center;display:grid;gap:12px;justify-items:center}
.center-page h1{font-family:var(--ui-display);font-weight:400;font-size:38px}
a.primary,a.ghost{text-decoration:none;color:inherit}
a.primary{color:var(--on-accent)}
.linkbox{display:grid;gap:8px}
.linkbox input{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:14px}
.warn{background:var(--accent-soft);border-radius:12px;padding:12px 14px;font-size:14px;font-weight:600}
.mine-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.mine-list a{display:block;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;font-weight:700;text-decoration:none;color:var(--ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.field-hint{font-size:13px;color:var(--muted);font-weight:500}
[hidden]{display:none!important}
.ai-card{border:2px solid var(--accent)}
.ai-status{font-size:14px;font-weight:700;color:var(--muted);min-height:1.2em}
.ai-status.ok{color:var(--good)}
.ai-status.bad{color:var(--bad)}
.versions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.versions:empty{display:none}
.version{display:grid;gap:6px;padding:8px;border:2px solid var(--line);border-radius:14px;background:transparent;cursor:pointer;text-align:center;font-weight:800;font-size:13px}
.version img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px;display:block;background:var(--surface-2)}
.version[aria-checked="true"]{border-color:var(--ink)}
.version .tag{justify-self:center}
.preview{display:grid;justify-items:center}
.preview iframe{width:100%;max-width:420px;height:540px;border:2px solid var(--line);border-radius:18px;background:var(--surface-2)}
.bloque{display:grid;gap:12px;padding-top:16px;border-top:1px solid var(--line)}
.bloque h3{margin:0;font-size:16px;font-weight:800}
.fields-t{display:grid;gap:12px}
.fields-t .field{display:grid;gap:6px;font-size:14px;font-weight:700}
.fields-t .field input{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);font-size:16px;font-weight:500}
.fields-t .field input:focus{border-color:var(--accent);outline:none}
.card a{color:var(--accent-text);font-weight:700;font-size:14px}
.vista .rsvp{pointer-events:none;opacity:.55}
.vista #replay-env,.vista .madewith{display:none}
.modos{display:grid;gap:10px}
.modo{position:relative;display:block;cursor:pointer}
.modo input{position:absolute;opacity:0;width:1px;height:1px}
.modo span{display:grid;gap:4px;padding:14px;border:2px solid var(--line);border-radius:14px}
.modo b{font-size:16px}
.modo small{font-size:13px;color:var(--muted);font-weight:500;line-height:1.4}
.modo input:checked + span{border-color:var(--ink);background:var(--accent-soft)}
.modo input:focus-visible + span{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:2px}
.bloque-modo{display:grid;gap:12px;margin-top:4px}
/* ---------- textos legales ---------- */
.legal{max-width:720px;margin-inline:auto;display:grid;gap:14px;line-height:1.6}
.legal h1{font-family:var(--ui-display);font-weight:400;font-size:clamp(30px,8vw,40px);line-height:1.1}
.legal h2{font-size:19px;font-weight:800;margin-top:10px}
.legal p,.legal li{font-size:16px}
.legal ul{margin:0;padding-left:20px;display:grid;gap:6px}
.legal .aviso{background:var(--accent-soft);border-radius:12px;padding:12px 14px;font-weight:600;font-size:14px}
.legal .pendiente{background:#FFF1B8;color:#5A4500;padding:0 6px;border-radius:6px;font-weight:700}
.legal table{border-collapse:collapse;width:100%;font-size:14px}
.legal th,.legal td{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}
.legal-links{text-align:center;font-size:13px;margin-top:10px}
.legal-links a{color:inherit;opacity:.8;margin-inline:6px}
.acepto{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;font-size:13px;line-height:1.45;color:var(--muted);cursor:pointer}
.acepto input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent)}
.acepto a,.rsvp-priv a{color:inherit;font-weight:700}
.rsvp-priv{font-size:12px;color:var(--i-muted);text-align:center;line-height:1.4}
.madewith a{color:inherit;opacity:.8}
.pago-card{border:2px solid var(--accent)}
.pago-card p{margin:0}
.precio{font-size:16px}

.fonts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.fonts button{padding:8px 12px;border:2px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-size:20px;line-height:1.1;cursor:pointer}
.fonts button[aria-checked="true"]{border-color:var(--ink)}
.fonts button:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:2px}
.swatches button{width:40px;height:40px;padding:0;border-radius:50%;font-size:0;border-color:var(--line)}
.swatches button[aria-checked="true"]{border-color:var(--ink);box-shadow:0 0 0 3px var(--surface) inset}
.swatches button:disabled{opacity:.25;cursor:not-allowed}
.swatches label.otro{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:2px dashed var(--line);cursor:pointer;font-size:18px;font-weight:800;position:relative;overflow:hidden}
.swatches label.otro input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.share-link{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:15px;margin-bottom:10px}

/* ---------- álbum de fotos ---------- */
.album-col{display:grid;gap:14px;padding-top:18px}
.album-head{text-align:center;display:grid;gap:4px}
.album-name{font-size:clamp(40px,12vw,56px)}
.album-inv .inv-btn,#guest-view .primary{margin-top:6px}
#guest-view .primary{background:var(--i-accent);color:var(--i-on)}
#guest-view .field{display:grid;gap:6px;font-size:14px;font-weight:700;margin:10px 0}
#guest-view .field input{width:100%;padding:11px 13px;border:1.5px solid var(--i-line);border-radius:12px;background:var(--i-field);color:var(--i-ink);font-size:16px}
#guest-view .acepto{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--i-muted);margin:8px 0 10px;line-height:1.4}
#guest-view .acepto input{margin-top:3px;width:20px;height:20px;flex:none}
#guest-view .rsvp-sub{font-size:14px;color:var(--i-muted);margin:4px 0 6px}
.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}
.album-foto{position:relative;padding:0;border:0;border-radius:10px;overflow:hidden;aspect-ratio:1;background:var(--i-soft);cursor:pointer}
.album-foto img{width:100%;height:100%;object-fit:cover;display:block}
.album-del{position:absolute;right:4px;bottom:4px;padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.65);color:#fff;font-size:12px;font-weight:800}
.visor{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.92);display:grid;place-items:center;padding:12px}
.visor[hidden]{display:none}
.visor img{max-width:100%;max-height:92vh;border-radius:8px}
.visor-x{position:absolute;top:10px;right:12px;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:20px;width:42px;height:42px;border-radius:50%;cursor:pointer}
.cartel{display:grid;gap:14px;justify-items:center;text-align:center;max-width:560px;margin:0 auto;padding:28px 20px;min-height:100vh;align-content:center}
.cartel-t{font-size:22px;font-weight:700;color:var(--i-hero-ink)}
.cartel-qr{width:min(78vw,380px);height:auto;border-radius:16px;background:#fff;box-shadow:0 22px 44px -30px rgba(0,0,0,.5)}
.cartel-u{font-size:15px;color:var(--i-hero-muted)}
.cartel-print{max-width:320px}
@media print{.cartel-print{display:none}body{background:#fff!important}.cartel{min-height:auto}}
/* álbum en el panel */
.alb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin:12px 0}
.alb-item{position:relative;display:grid;gap:4px}
.alb-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;display:block;background:var(--surface-2)}
.alb-item.oculta img{opacity:.3}
.alb-tag{position:absolute;left:4px;top:4px;font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;background:var(--surface);color:var(--ink)}
.alb-btns{display:flex;gap:4px}
.alb-btns button{flex:1;padding:5px 2px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:800;cursor:pointer}
.ayuda{text-align:center;font-size:13px;margin-top:14px}

/* Firma «Creada con Invitaciones con Magia» y enlace «Crea la tuya» para los invitados */
.madewith a.pb{opacity:1;text-decoration:none}
.madewith.grande{margin-top:14px;font-size:15px}
.madewith.grande a.pb{display:inline-block;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.55);border:1px solid var(--i-hero-muted);margin:0 2px}
.crea-tuya{margin-top:16px;padding-top:14px;border-top:1px dashed var(--i-line,rgba(0,0,0,.15));text-align:center}
.crea-tuya p{margin:0 0 8px;font-size:14px;opacity:.85}

/* Pregunta de sí/no de la familia, segundo lugar y lista de cosas a saber */
fieldset.pregunta{border:0;padding:0;margin:0}
fieldset.pregunta legend{font-size:14px;font-weight:700;margin-bottom:2px;padding:0}
fieldset.pregunta .choices{margin-top:8px}
fieldset.pregunta .choice{padding:10px;font-size:16px}
fieldset.pregunta .choice[aria-checked="true"]{border-color:var(--i-accent);background:var(--i-soft);color:var(--i-accent-text)}
details.lugar2{border:1.5px dashed var(--line,#d9d0bd);border-radius:14px;padding:12px;display:grid;gap:12px}
details.lugar2[open]{gap:12px}
details.lugar2 summary{font-size:15px}
.plain-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.plain-list li{font-size:14px;line-height:1.35}
.plain-list b{font-weight:800}
.cosas h3{font-size:15px;margin:10px 0 0}
.r-extra{margin-top:3px;font-size:14px;line-height:1.35}
.r-extra b{font-weight:800}
.dl-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.aviso-borrado{font-size:14px;line-height:1.4;padding:10px 12px;border-radius:12px;background:var(--accent-soft)}
.aviso-borrado.cerca{background:#fde8d8;border:1px solid #e9a77a}

/* Demo */
.demo-banner{position:sticky;top:0;z-index:20;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:9px 14px;background:#2f2a24;color:#fff;font:600 13px/1.3 "Figtree",system-ui,sans-serif}
.demo-banner p{margin:0}
.demo-banner a{flex:none;background:#e7c981;color:#2f2a24;padding:7px 12px;border-radius:999px;text-decoration:none;font-weight:800}
.mini-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.mini-tiles div{background:var(--i-soft);border-radius:14px;padding:10px;text-align:center}
.mini-tiles b{display:block;font-size:30px;line-height:1.1}
.mini-tiles span{font-size:13px;opacity:.8}
.mini-fila{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--i-line);margin-bottom:12px}
.mini-fila span{font-size:14px;opacity:.85}
.demo-fotos{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}
.demo-fotos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.mini-h{font-size:14px;font-weight:800;margin:6px 0 -4px;color:var(--muted)}
.plain-list li b{font-weight:800}
.tiles{grid-template-columns:repeat(2,1fr)}
@media(min-width:520px){.tiles{grid-template-columns:repeat(4,1fr)}}
.tile-num{font-size:38px}
.crea-tuya.discreta{margin-top:12px;padding-top:0;border-top:0}
.crea-tuya.discreta p{display:inline;font-size:13px;margin:0 6px 0 0;opacity:.7}
.crea-tuya.discreta .inv-btn{display:inline;background:none;border:0;box-shadow:none;padding:2px 0;font-size:13px;font-weight:700;text-decoration:underline;opacity:.85}
