:root{--primary:rgb(0,102,204);--primary-dark:rgb(0,78,158);--primary-soft:rgb(230,241,252);--accent:rgb(46,204,113);--accent-dark:rgb(28,140,76);--text:rgb(51,51,51);--muted:rgb(108,108,108);--bg:#ffffff;--surface:#f5f7fa;--border:#e3e7ed;--danger:#d6342c;--hero-from:rgb(0,102,204);--hero-to:rgb(0,150,230);--banner-bg:rgb(0,78,158);--radius:14px;--shadow:0 2px 10px rgba(20,40,80,0.08)}[data-theme=navidad]{--primary:#b3202a;--primary-dark:#8d1820;--primary-soft:#fbe9ea;--hero-from:#b3202a;--hero-to:#1e7b3a;--banner-bg:#1e7b3a}[data-theme=buen-fin]{--primary:#d62828;--primary-dark:#a81d1d;--primary-soft:#fdeaea;--hero-from:#d62828;--hero-to:#f9a826;--banner-bg:#a81d1d}[data-theme=dia-muertos]{--primary:#6a1b9a;--primary-dark:#4e1373;--primary-soft:#f1e6f8;--hero-from:#4e1373;--hero-to:#f39c12;--banner-bg:#3b0e57}[data-theme=patrio]{--primary:#006847;--primary-dark:#004e35;--primary-soft:#e3f3ec;--hero-from:#006847;--hero-to:#ce1126;--banner-bg:#ce1126}[data-theme=primavera]{--primary:#d81b7a;--primary-dark:#ac1561;--primary-soft:#fce6f1;--hero-from:#d81b7a;--hero-to:#7cb342;--banner-bg:#7cb342}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:var(--primary);text-decoration:none}img{max-width:100%;display:block}h1,h2,h3{line-height:1.2;margin:0 0 .5rem}.container{width:min(1120px,100% - 2rem);margin-inline:auto}.muted{color:var(--muted)}.stack{display:grid;grid-gap:1rem;gap:1rem}.theme-banner{background:var(--banner-bg);color:#fff;text-align:center;padding:.5rem 1rem;font-size:.92rem;font-weight:600}.site-header{border-bottom:1px solid var(--border);background:var(--bg);position:-webkit-sticky;position:sticky;top:0;z-index:20}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:60px;flex-wrap:wrap}.logo{font-weight:800;font-size:1.1rem;color:var(--text)}.logo span{color:var(--primary)}.nav{display:flex;gap:.5rem;flex-wrap:wrap}.btn,.nav{align-items:center}.btn{display:inline-flex;justify-content:center;gap:.4rem;border:2px solid var(--primary);background:var(--primary);color:#fff;padding:.55rem 1rem;border-radius:10px;font-weight:600;font-size:.95rem;cursor:pointer;font-family:inherit;transition:background .15s}.btn:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-outline{background:transparent;color:var(--primary)}.btn-outline:hover{background:var(--primary-soft);color:var(--primary-dark)}.btn-whatsapp{background:var(--accent);border-color:var(--accent);color:#0b3d20}.btn-whatsapp:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.btn-danger{background:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:#a82822;border-color:#a82822}.btn-sm{padding:.3rem .7rem;font-size:.85rem;border-radius:8px}.btn-block{width:100%}.hero{background:linear-gradient(135deg,var(--hero-from),var(--hero-to));color:#fff;padding:2.5rem 0 2rem}.hero h1{font-size:clamp(1.7rem,4vw,2.6rem)}.hero p{margin:0 0 1.2rem;opacity:.95;font-size:1.05rem}.search{display:flex;gap:.5rem;max-width:560px}.search input{flex:1 1}.search .btn{background:#fff;color:var(--primary);border-color:#fff}.section{padding:2rem 0}.section-title{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1rem}.section-title h2{font-size:1.5rem;margin:0}.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.chip{padding:.4rem .9rem;border-radius:999px;border:1.5px solid var(--border);color:var(--text);font-size:.9rem;font-weight:600;background:var(--bg)}.chip.active,.chip:hover{border-color:var(--primary)}.chip.active{background:var(--primary);color:#fff}.carousel{position:relative}.carousel-track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:.5rem;scrollbar-width:none}.carousel-track::-webkit-scrollbar{display:none}.promo{flex:0 0 min(340px,85%);scroll-snap-align:start;border-radius:var(--radius);overflow:hidden;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column}.promo-img{aspect-ratio:16/9;background:linear-gradient(135deg,var(--primary-soft),#fff);display:grid;place-items:center;font-size:3rem;overflow:hidden}.promo-img img{width:100%;height:100%;object-fit:cover}.promo-body{padding:.9rem 1rem 1rem;display:grid;grid-gap:.35rem;gap:.35rem;flex:1 1}.promo-body h3{font-size:1.05rem;margin:0}.promo-body p{margin:0;font-size:.92rem;color:var(--muted)}.promo-tag{display:inline-block;background:var(--accent);color:#0b3d20;font-size:.75rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;width:-moz-fit-content;width:fit-content}.carousel-btn{position:absolute;top:40%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:#fff;box-shadow:var(--shadow);cursor:pointer;font-size:1.1rem;z-index:2}.carousel-btn.prev{left:-10px}.carousel-btn.next{right:-10px}@media (max-width:700px){.carousel-btn{display:none}}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));grid-gap:1.25rem;gap:1.25rem}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.card-img{aspect-ratio:16/10;background:linear-gradient(135deg,var(--primary-soft),#fff);display:grid;place-items:center;font-size:3rem;overflow:hidden}.card-img img{width:100%;height:100%;object-fit:cover}.card-body{padding:1rem;display:grid;grid-gap:.5rem;gap:.5rem;flex:1 1;align-content:start}.card-body h3{margin:0;font-size:1.15rem}.card-meta{font-size:.9rem;color:var(--muted);display:flex;gap:.4rem}.card-actions{display:flex;gap:.5rem;padding:0 1rem 1rem;flex-wrap:wrap}.card-actions .btn{flex:1 1;min-width:120px}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;width:-moz-fit-content;width:fit-content}.badge-cat{background:var(--primary-soft);color:var(--primary-dark)}.badge-ok{background:rgba(46,204,113,.15);color:var(--accent-dark)}.badge-ok:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}.badge-off{background:#eee;color:#777}.empty{text-align:center;padding:3rem 1rem;color:var(--muted);background:var(--surface);border-radius:var(--radius)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:.75rem;gap:.75rem}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px}label{font-weight:600;font-size:.9rem;display:grid;grid-gap:.3rem;gap:.3rem}input,select,textarea{font:inherit;color:var(--text);background:#fff;border:1.5px solid var(--border);border-radius:10px;padding:.6rem .75rem;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:0;border-color:var(--primary)}textarea{min-height:90px;resize:vertical}.pw{position:relative}.pw input{padding-right:5.2rem}.pw button{position:absolute;right:.4rem;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--primary);font-weight:700;font-size:.85rem;cursor:pointer;padding:.3rem .5rem;font-family:inherit}.panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.auth-box{max-width:420px;margin:3rem auto}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}@media (max-width:640px){.row{grid-template-columns:1fr}}.alert{padding:.7rem 1rem;border-radius:10px;font-size:.92rem}.alert-error{background:#fdeceb;color:#9b1c15}.alert-ok{background:rgba(46,204,113,.15);color:var(--accent-dark)}.thumbs{display:flex;gap:.75rem;flex-wrap:wrap}.thumb{position:relative;width:120px}.thumb img{width:120px;height:90px;object-fit:cover;border-radius:10px;border:1px solid var(--border)}.thumb button{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;cursor:pointer;line-height:1}.thumb small{display:block;font-size:.72rem;color:var(--accent-dark)}.thumb small,.upload-add{text-align:center;font-weight:700}.upload-add{width:120px;height:90px;border:2px dashed var(--primary);border-radius:10px;display:grid;place-items:center;color:var(--primary);cursor:pointer;font-size:.85rem}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:1rem;gap:1rem}.metric{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.metric strong{display:block;font-size:2rem;color:var(--primary)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.92rem}td,th{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--border);vertical-align:middle}th{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.actions{display:flex;gap:.4rem;flex-wrap:wrap}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:.75rem;gap:.75rem}.theme-opt{border:2px solid var(--border);border-radius:12px;padding:.8rem;background:#fff;cursor:pointer;text-align:left;font:inherit;color:var(--text);display:grid;grid-gap:.5rem;gap:.5rem}.theme-opt.selected{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.swatch{display:flex;height:18px;border-radius:6px;overflow:hidden}.swatch span{flex:1 1}.footer{border-top:1px solid var(--border);padding:1.5rem 0;color:var(--muted);font-size:.88rem;margin-top:2rem;text-align:center}.promo-item{border:1px solid var(--border);border-radius:12px;padding:1rem;display:grid;grid-gap:.75rem;gap:.75rem}