:root{
  --bg:#f8f3e7; --text:#20301f; --eyebrow:#8a6a1f;
  --accent:#1d3b2a; --accent2:#c79a3e; --accent-contrast:#fff;
  --card-bg:#ffffff; --card-border:#e7dcbd; --card-shadow:#20301f14;
  --notice-bg:#fff7e6; --notice-border:#f3d9a0; --notice-text:#6b4a00;
  --gallery-empty:#efe6cd; --bg-image:none;
  font-family:system-ui,sans-serif;color:var(--text);background:var(--bg);
}

/* ================= Temas seleccionables por evento ================= */

/* --- Generales --- */
body.theme-rosa{
  --bg:#fff1f0; --text:#3a1420; --eyebrow:#b23a56;
  --accent:#8f2444; --accent2:#f2a5b8; --accent-contrast:#fff;
  --card-bg:#ffffff; --card-border:#f6cdd6; --card-shadow:#8f24441a;
  --notice-bg:#fff0e0; --notice-border:#f3c79a; --notice-text:#7a3b00;
  --gallery-empty:#fbdde3;
  --bg-image:radial-gradient(circle at 15% 20%,#fddce3 0%,transparent 40%),radial-gradient(circle at 85% 80%,#ffe8d6 0%,transparent 45%);
}
body.theme-azul{
  --bg:#101b2e; --text:#eef2fb; --eyebrow:#9fb8e8;
  --accent:#2c4a86; --accent2:#c9a227; --accent-contrast:#fff;
  --card-bg:#182543; --card-border:#2c3f66; --card-shadow:#00000040;
  --notice-bg:#1f2e4e; --notice-border:#3a5486; --notice-text:#cfe0ff;
  --gallery-empty:#22335a;
  --bg-image:radial-gradient(circle at 20% 25%,rgba(201,162,39,.14) 0%,transparent 3%),radial-gradient(circle at 60% 65%,rgba(201,162,39,.12) 0%,transparent 2%),radial-gradient(circle at 80% 15%,rgba(201,162,39,.1) 0%,transparent 2%),radial-gradient(circle at 35% 80%,rgba(201,162,39,.1) 0%,transparent 2%);
}

/* --- XV años --- */
body.theme-xv-rosa-dorado{
  --bg:#fff3f6; --text:#4a1d2b; --eyebrow:#b8860b;
  --accent:#a23b5c; --accent2:#d4af37; --accent-contrast:#fff;
  --card-bg:#fffaf9; --card-border:#f6cfe0; --card-shadow:#a23b5c1a;
  --notice-bg:#fff0d9; --notice-border:#e9c98a; --notice-text:#7a4a00;
  --gallery-empty:#fbe1ea;
  --bg-image:radial-gradient(circle at 12% 18%,#ffe3ec 0%,transparent 45%),radial-gradient(circle at 88% 15%,#fff2cf 0%,transparent 40%),radial-gradient(circle at 50% 95%,#f6d9e6 0%,transparent 50%);
}
body.theme-xv-lila-plata{
  --bg:#f6f2fb; --text:#332146; --eyebrow:#7a5ea8;
  --accent:#5b3e86; --accent2:#b9b4c4; --accent-contrast:#fff;
  --card-bg:#fdfcff; --card-border:#e2d7f2; --card-shadow:#5b3e861a;
  --notice-bg:#efeaf9; --notice-border:#d3c4ec; --notice-text:#4a3370;
  --gallery-empty:#e9e1f5;
  --bg-image:radial-gradient(circle at 20% 20%,#e9defa 0%,transparent 45%),radial-gradient(circle at 80% 30%,#ded9ee 0%,transparent 40%),radial-gradient(circle at 50% 100%,#d8cdf0 0%,transparent 55%);
}
body.theme-xv-coral-dorado{
  --bg:#fff6ef; --text:#5c2a12; --eyebrow:#c9762c;
  --accent:#d1592f; --accent2:#e8b23d; --accent-contrast:#fff;
  --card-bg:#fffaf5; --card-border:#f6d9b8; --card-shadow:#d1592f1a;
  --notice-bg:#fdeee0; --notice-border:#f0c893; --notice-text:#7a3d00;
  --gallery-empty:#fbe4ce;
  --bg-image:radial-gradient(circle at 15% 25%,#ffd9bd 0%,transparent 45%),radial-gradient(circle at 85% 20%,#ffedc2 0%,transparent 40%),radial-gradient(circle at 50% 100%,#ffcfa8 0%,transparent 55%);
}

/* --- Boda --- */
body.theme-boda-blanco-dorado{
  --bg:#fdfbf6; --text:#332b1e; --eyebrow:#a8863a;
  --accent:#8a6d2f; --accent2:#d9b96a; --accent-contrast:#fff;
  --card-bg:#ffffff; --card-border:#ecdfc0; --card-shadow:#8a6d2f14;
  --notice-bg:#faf3e2; --notice-border:#e6d3a0; --notice-text:#6b5320;
  --gallery-empty:#f2e6c8;
  --bg-image:radial-gradient(circle at 18% 15%,#f7ecd2 0%,transparent 45%),radial-gradient(circle at 82% 85%,#f3e6bf 0%,transparent 45%);
}
body.theme-boda-verde-salvia{
  --bg:#f5f7f0; --text:#2b3623; --eyebrow:#6c8a4f;
  --accent:#4c6b39; --accent2:#a9c48a; --accent-contrast:#fff;
  --card-bg:#ffffff; --card-border:#d8e3c6; --card-shadow:#4c6b3918;
  --notice-bg:#eef3e3; --notice-border:#cfe0b6; --notice-text:#3c5228;
  --gallery-empty:#dfeacb;
  --bg-image:radial-gradient(circle at 15% 20%,#e2edd0 0%,transparent 45%),radial-gradient(circle at 85% 25%,#eef3df 0%,transparent 40%),radial-gradient(circle at 50% 100%,#d6e4c0 0%,transparent 55%);
}
body.theme-boda-playa{
  --bg:#eef7f7; --text:#1d3b3f; --eyebrow:#2f8f92;
  --accent:#1f7a80; --accent2:#e3c48a; --accent-contrast:#fff;
  --card-bg:#ffffff; --card-border:#cfe8e6; --card-shadow:#1f7a8018;
  --notice-bg:#fdf3e2; --notice-border:#eed7a8; --notice-text:#7a5620;
  --gallery-empty:#d8ecea;
  --bg-image:radial-gradient(circle at 20% 15%,#cfe9ea 0%,transparent 45%),linear-gradient(180deg,#dff1f2 0%,#eef7f2 55%,#f7ecd3 100%);
}

/* --- Bautizo / Baby shower --- */
body.theme-bautizo-celeste{
  --bg:#f0f8fc; --text:#1f3a4a; --eyebrow:#4f8fb0;
  --accent:#2f6f8f; --accent2:#bfe0ee; --accent-contrast:#fff;
  --card-bg:#ffffff; --card-border:#d2eaf3; --card-shadow:#2f6f8f14;
  --notice-bg:#e8f4fa; --notice-border:#bfe0ee; --notice-text:#245266;
  --gallery-empty:#d9edf5;
  --bg-image:radial-gradient(ellipse at 20% 20%,#ffffff 0%,transparent 30%),radial-gradient(ellipse at 70% 15%,#ffffff 0%,transparent 25%),radial-gradient(ellipse at 40% 85%,#ffffff 0%,transparent 30%),linear-gradient(180deg,#dcf0fa 0%,#f0f8fc 100%);
}
body.theme-bautizo-rosa{
  --bg:#fdf3f6; --text:#4a2230; --eyebrow:#c07a92;
  --accent:#b0577a; --accent2:#f4cddc; --accent-contrast:#fff;
  --card-bg:#ffffff; --card-border:#f6d9e4; --card-shadow:#b0577a14;
  --notice-bg:#fdeaf0; --notice-border:#f4cddc; --notice-text:#7a3550;
  --gallery-empty:#fbdfe9;
  --bg-image:radial-gradient(ellipse at 20% 20%,#ffffff 0%,transparent 30%),radial-gradient(ellipse at 70% 15%,#ffffff 0%,transparent 25%),radial-gradient(ellipse at 40% 85%,#ffffff 0%,transparent 30%),linear-gradient(180deg,#fbdfe9 0%,#fdf3f6 100%);
}

/* --- Cumpleaños --- */
body.theme-cumple-colorido{
  --bg:#fff9f0; --text:#2b2018; --eyebrow:#e0682c;
  --accent:#d1421f; --accent2:#f2b632; --accent-contrast:#fff;
  --card-bg:#ffffff; --card-border:#f5dcae; --card-shadow:#d1421f18;
  --notice-bg:#fff0da; --notice-border:#f2cf8f; --notice-text:#7a4200;
  --gallery-empty:#ffe4c2;
  --bg-image:radial-gradient(circle at 10% 20%,#ffd166 0%,transparent 8%),radial-gradient(circle at 25% 60%,#06d6a0 0%,transparent 7%),radial-gradient(circle at 40% 15%,#ef476f 0%,transparent 7%),radial-gradient(circle at 60% 75%,#118ab2 0%,transparent 7%),radial-gradient(circle at 78% 30%,#ffd166 0%,transparent 7%),radial-gradient(circle at 90% 65%,#ef476f 0%,transparent 6%),radial-gradient(circle at 15% 90%,#06d6a0 0%,transparent 6%),linear-gradient(180deg,#fff9f0 0%,#fff3e0 100%);
}
body.theme-cumple-azul{
  --bg:#eef8ff; --text:#132a3a; --eyebrow:#2f7fb0;
  --accent:#1c5d8a; --accent2:#ffd166; --accent-contrast:#fff;
  --card-bg:#ffffff; --card-border:#cfe6f5; --card-shadow:#1c5d8a18;
  --notice-bg:#fff6df; --notice-border:#f2df9f; --notice-text:#7a5a00;
  --gallery-empty:#d7ecfa;
  --bg-image:radial-gradient(circle at 15% 20%,#ffe9a8 0%,transparent 10%),radial-gradient(circle at 80% 15%,#ffe9a8 0%,transparent 8%),radial-gradient(circle at 50% 90%,#bfe0f5 0%,transparent 30%),linear-gradient(180deg,#eef8ff 0%,#dff0fb 100%);
}

/* ================= Estructura ================= */
*{box-sizing:border-box}
body{margin:0;background-color:var(--bg);background-image:var(--bg-image);background-attachment:fixed;background-size:cover;min-height:100vh}
main{max-width:920px;margin:auto;padding:32px 20px 70px}
header{padding:28px 0}
.eyebrow{color:var(--eyebrow);font-size:14px;letter-spacing:.18em;font-weight:800}
h1{font-size:clamp(2.4rem,8vw,5rem);line-height:1.04;margin:12px 0}
h2{font-size:1.5rem}
.upload,.notice,.panel-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:24px;padding:26px;box-shadow:0 12px 40px var(--card-shadow);color:var(--text)}
.notice{background:var(--notice-bg);border-color:var(--notice-border);color:var(--notice-text)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.button,button{border:1px solid var(--accent);border-radius:12px;padding:14px 18px;background:var(--card-bg);color:var(--accent);font:inherit;font-weight:700;cursor:pointer}
.primary,#send{background:var(--accent);color:var(--accent-contrast)}
.button:focus-within,button:focus-visible{outline:3px solid var(--accent2);outline-offset:2px}
#chosen,#chosenVideo{display:block;max-width:100%;max-height:320px;border-radius:14px;margin:15px 0}
.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}
.text{border:0;background:transparent;color:var(--accent)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.gallery img,.gallery video{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;background:var(--gallery-empty)}
.tv{background:#17111e;color:white}
.tv main{max-width:none}
.tv .gallery{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
@media(max-width:480px){.actions .button{width:100%;text-align:center}.gallery{grid-template-columns:repeat(2,1fr)}}
button:disabled{opacity:.6;cursor:not-allowed}
code{background:var(--notice-bg);padding:2px 6px;border-radius:6px}
a{color:var(--accent)}
