/* Invitaciones Ingenio — interfaz compartida (admin + front) */
.ing-ui{--ing-primary:#5b3df5;--ing-primary-d:#4528d6;--ing-ok:#1f9d55;--ing-no:#d64545;--ing-warn:#e0a100;--ing-bg:#fff;--ing-soft:#f5f6fa;--ing-line:#e3e5ec;--ing-text:#1d2030;--ing-muted:#6b7085;--ing-r:12px;color:var(--ing-text);font-size:15px;line-height:1.5;box-sizing:border-box}
.ing-ui *,.ing-ui *::before,.ing-ui *::after{box-sizing:border-box}
.ing-front{max-width:1100px;margin:0 auto;padding:16px}
.ing-ui h2{font-size:1.5rem;margin:.2em 0 .6em}.ing-ui h3{font-size:1.15rem;margin:.2em 0 .6em}.ing-ui h4{margin:.8em 0 .3em;font-size:1rem}
.ing-muted{color:var(--ing-muted);font-size:.9em}.ing-err{color:var(--ing-no)}
.ing-card{background:var(--ing-bg);border:1px solid var(--ing-line);border-radius:var(--ing-r);padding:18px;margin:0 0 16px;box-shadow:0 1px 2px rgba(20,20,40,.04)}
.ing-card.ing-soft{background:var(--ing-soft)}.ing-card.ing-locked{border-style:dashed;text-align:center}
.ing-card-head,.ing-evhead,.ing-pagehead,.ing-topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.ing-pagehead{margin:10px 0 14px}.ing-pagehead h1{margin:0}
.ing-topbar{background:var(--ing-soft);border-radius:var(--ing-r);padding:10px 16px;margin-bottom:16px}
.ing-topbar nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.ing-topbar nav a{text-decoration:none;color:var(--ing-text);font-weight:600}.ing-topbar nav a.cur{color:var(--ing-primary)}
.ing-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border:1px solid var(--ing-line);background:#fff;color:var(--ing-text)!important;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none!important;line-height:1.2;transition:.15s}
.ing-btn:hover{border-color:var(--ing-primary);color:var(--ing-primary)!important}
.ing-btn-primary{background:var(--ing-primary);border-color:var(--ing-primary);color:#fff!important}.ing-btn-primary:hover{background:var(--ing-primary-d);color:#fff!important}
.ing-btn-danger{color:var(--ing-no)!important;border-color:#f0c4c4}.ing-btn-danger:hover{background:var(--ing-no);color:#fff!important;border-color:var(--ing-no)}
.ing-btn-sm{padding:5px 10px;font-size:.85rem;border-radius:8px}.ing-btn-block{display:flex;width:100%}
.ing-btn.on{background:var(--ing-primary);color:#fff!important;border-color:var(--ing-primary)}
.ing-ui input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),.ing-ui select,.ing-ui textarea{width:100%;padding:9px 11px;border:1px solid var(--ing-line);border-radius:9px;font:inherit;background:#fff;color:var(--ing-text);max-width:100%}
.ing-ui input[type=color]{width:100%;height:40px;padding:2px;border:1px solid var(--ing-line);border-radius:9px;background:#fff}
.ing-ui input:focus,.ing-ui select:focus,.ing-ui textarea:focus{outline:2px solid color-mix(in srgb,var(--ing-primary) 40%,transparent);border-color:var(--ing-primary)}
.ing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ing-grid.ing-one{grid-template-columns:1fr}.ing-full{grid-column:1/-1}.ing-block{display:block}
.ing-grid label,.ing-form label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.92rem}.ing-grid label small,.ing-form label small{font-weight:400;color:var(--ing-muted)}
.ing-ui label.ing-check,.ing-ui .ing-check{display:inline-flex;flex-direction:row;align-items:center;gap:8px;font-weight:500}
.ing-ui .ing-checks{display:flex;flex-wrap:wrap;gap:6px 18px}.ing-ui fieldset{border:1px solid var(--ing-line);border-radius:10px;padding:10px 14px}.ing-ui legend{font-weight:700;padding:0 6px}
.ing-ui .ing-grp{margin:.8em 0 .2em;font-weight:700;color:var(--ing-muted);text-transform:uppercase;font-size:.75rem;letter-spacing:.06em}
.ing-inline{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0}.ing-inline select,.ing-inline input{width:auto!important}
.ing-hp{position:absolute!important;left:-9999px!important;opacity:0;height:0;width:0}
.ing-notice{padding:11px 14px;border-radius:10px;margin:0 0 14px;border:1px solid;font-weight:500}
.ing-notice-ok{background:#eaf7ef;border-color:#bfe5cd;color:#14663a}.ing-notice-err{background:#fdecec;border-color:#f2c1c1;color:#9a2424}.ing-notice-warn{background:#fff6dd;border-color:#f0dc9b;color:#7a5a00}
.ing-badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.78rem;font-weight:700;background:#eceef5;color:#444}
.ing-b-published,.ing-b-paid,.ing-b-confirmed{background:#e1f4e8;color:#17703f}.ing-b-draft,.ing-b-pending{background:#fff1cf;color:#8a6200}.ing-b-suspended,.ing-b-declined,.ing-b-failed,.ing-b-cancelled{background:#fde3e3;color:#a22a2a}.ing-b-expired,.ing-b-refunded{background:#e7e8ee;color:#555}
.ing-tablewrap{overflow-x:auto}.ing-table{width:100%;border-collapse:collapse;background:#fff}
.ing-table th,.ing-table td{padding:10px 12px;border-bottom:1px solid var(--ing-line);text-align:left;vertical-align:top}.ing-table thead th{background:var(--ing-soft);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ing-muted)}
.ing-kv th{width:32%;background:transparent;text-transform:none;font-size:.9rem;color:var(--ing-muted);letter-spacing:0}
.ing-table input:not([type=checkbox]){min-width:0}.ing-rowactions{white-space:normal}.ing-rowactions>*{margin:2px}
.ing-nopad{padding:6px!important}.ing-rowform{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ing-rowform input[name=name]{width:240px}
.ing-empty{padding:26px;text-align:center;color:var(--ing-muted);background:var(--ing-soft);border-radius:var(--ing-r)}
.ing-toolbar,.ing-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.ing-filters input[type=search]{width:240px!important}
.ing-pager{display:flex;gap:6px;margin:14px 0;flex-wrap:wrap}.ing-pager a,.ing-pager span{padding:5px 11px;border:1px solid var(--ing-line);border-radius:8px;text-decoration:none;color:var(--ing-text);background:#fff}.ing-pager .cur{background:var(--ing-primary);color:#fff;border-color:var(--ing-primary)}
.ing-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 16px}
.ing-tile{background:#fff;border:1px solid var(--ing-line);border-radius:var(--ing-r);padding:14px 16px;border-left:4px solid var(--ing-primary)}.ing-tile span{display:block;color:var(--ing-muted);font-size:.82rem}.ing-tile b{font-size:1.5rem}
.ing-tile.ok{border-left-color:var(--ing-ok)}.ing-tile.no{border-left-color:var(--ing-no)}.ing-tile.warn{border-left-color:var(--ing-warn)}
.ing-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ing-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:2px solid var(--ing-line);margin:12px 0 18px;-webkit-overflow-scrolling:touch}.ing-tabs a{padding:10px 14px;text-decoration:none;color:var(--ing-muted);font-weight:600;white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-2px}.ing-tabs a.cur{color:var(--ing-primary);border-bottom-color:var(--ing-primary)}
.ing-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.ing-chips a,.ing-chips button,.ing-chip{padding:5px 12px;border:1px solid var(--ing-line);border-radius:99px;background:#fff;text-decoration:none;color:var(--ing-text);font:inherit;font-size:.85rem;cursor:pointer;display:inline-block}.ing-chips .on{background:var(--ing-primary);color:#fff;border-color:var(--ing-primary)}
.ing-checklist{list-style:none;padding:0;margin:0}.ing-checklist li{padding:5px 0}.ing-checklist .ok{color:var(--ing-ok)}.ing-checklist .no{color:var(--ing-muted)}
.ing-evgrid,.ing-tplgrid,.ing-pkggrid,.ing-typegrid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.ing-evcard h3{margin:.3em 0}.ing-evtype{font-weight:700;color:var(--ing-primary)}.ing-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ing-copy{display:flex;gap:8px;flex-wrap:wrap}.ing-copy input{flex:1;min-width:200px}.ing-share{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.ing-qrbox{display:flex;gap:16px;align-items:center;margin-top:16px}.ing-qr img{width:150px;height:150px;border:1px solid var(--ing-line);border-radius:10px;padding:6px;background:#fff}
.ing-extra{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--ing-line)}
.ing-donut{width:170px;height:170px;border-radius:50%;display:grid;place-items:center;position:relative;flex:none}.ing-donut::after{content:"";position:absolute;inset:26px;background:#fff;border-radius:50%}.ing-donut span{position:relative;z-index:1;text-align:center;font-size:1.8rem;font-weight:800;line-height:1}.ing-donut small{display:block;font-size:.7rem;font-weight:500;color:var(--ing-muted)}
.ing-chartcard{display:flex;gap:28px;align-items:center;flex-wrap:wrap}.ing-legend div{margin:6px 0}.ing-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px}.ing-legend i.ok{background:var(--ing-ok)}.ing-legend i.no{background:var(--ing-no)}.ing-legend i.warn{background:var(--ing-warn)}
.ing-sortlist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.ing-sortlist li{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--ing-line);border-radius:10px;background:#fff;flex-wrap:wrap}.ing-sortlist li.locked{opacity:.55}.ing-sortlist .mv{width:56px;display:flex;gap:2px}.ing-sortlist .mv button{border:1px solid var(--ing-line);background:#fff;border-radius:6px;cursor:pointer;padding:3px 7px}.ing-sortlist .ttl{flex:1;min-width:160px}
.ing-repeat{display:flex;flex-direction:column;gap:8px}.ing-rrow{display:grid;grid-template-columns:1fr 2fr 2fr;gap:8px}.ing-rrow:has(input:nth-child(2):last-child){grid-template-columns:1fr 2fr}
.ing-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.ing-gitem{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.ing-gitem img,.ing-thumb{border-radius:8px;width:100%;height:auto}
.ing-tplpick{position:relative;cursor:pointer;border:2px solid var(--ing-line);border-radius:12px;padding:8px;gap:6px}.ing-tplpick input{position:absolute;opacity:0}.ing-tplpick:has(input:checked){border-color:var(--ing-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ing-primary) 25%,transparent)}
.ing-swatch{display:flex;align-items:center;gap:6px;border-radius:8px;padding:14px;min-height:76px;border:1px solid rgba(0,0,0,.08)}.ing-swatch b{font-size:1.8rem;margin-right:auto}.ing-swatch i{width:18px;height:18px;border-radius:50%}.ing-tplname{font-weight:700}
.ing-tplcard{border:1px solid var(--ing-line);border-radius:12px;overflow:hidden;background:#fff}.ing-tplcard.off{opacity:.55}.ing-tplbody{padding:12px}.ing-tplcard .ing-swatch{border-radius:0;font-size:1.2rem}
.ing-bggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:10px}.ing-bg,.ing-bgpick{position:relative;border:2px solid var(--ing-line);border-radius:10px;overflow:hidden;background:#fff;cursor:pointer;min-height:90px;display:block}.ing-bg img,.ing-bgpick img{width:100%;height:110px;object-fit:cover;display:block}.ing-bg.off{opacity:.45}.ing-bg>div{padding:6px;display:flex;gap:4px;justify-content:space-between}
.ing-bgpick input{position:absolute;opacity:0}.ing-bgpick:has(input:checked){border-color:var(--ing-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ing-primary) 25%,transparent)}.ing-bgpick .none{display:grid;place-items:center;height:110px;color:var(--ing-muted)}
.ing-list{list-style:none;padding:0}.ing-list li{padding:4px 0;display:flex;gap:6px;align-items:center}.ing-list a.cur{font-weight:700}.ing-x{border:0;background:transparent;color:var(--ing-no);cursor:pointer;font-size:1.1rem}
.ing-mediapick{display:flex;gap:8px}.ing-live{border:1px solid var(--ing-line);border-radius:12px;padding:24px;text-align:center}.ing-live .b{display:inline-block;padding:8px 20px;border-radius:99px;background:var(--ing-primary);color:#fff}
.ing-pop{display:inline-block;position:relative}.ing-pop summary{list-style:none;cursor:pointer}.ing-pop summary::-webkit-details-marker{display:none}.ing-popbox{position:absolute;right:0;top:100%;z-index:20;width:min(340px,86vw);background:#fff;border:1px solid var(--ing-line);border-radius:12px;padding:14px;box-shadow:0 12px 30px rgba(20,20,40,.18);text-align:left;font-weight:400}
.ing-ui details.ing-card>summary{cursor:pointer;font-weight:700}.ing-ui details.ing-card[open]>summary{margin-bottom:12px}
.ing-previewbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.ing-device{margin:0 auto;background:#222;border-radius:30px;padding:12px;transition:.2s}.ing-device iframe{width:100%;height:100%;border:0;border-radius:20px;background:#fff;display:block}
.ing-device.phone{width:min(100%,390px);height:760px}.ing-device.desktop{width:100%;height:640px;border-radius:12px;padding:8px}
.ing-authbox{max-width:520px;margin:0 auto;background:#fff;border:1px solid var(--ing-line);border-radius:var(--ing-r);padding:20px}.ing-hero{text-align:center;padding:18px 0}
.ing-steps{display:flex;gap:8px;justify-content:center;margin-bottom:18px;flex-wrap:wrap}.ing-steps span{padding:6px 14px;border-radius:99px;background:var(--ing-soft);color:var(--ing-muted);font-weight:600;font-size:.85rem}.ing-steps .cur{background:var(--ing-primary);color:#fff}.ing-steps .done{background:#e1f4e8;color:#17703f}
.ing-typegrid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.ing-typecard{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 10px;border:1px solid var(--ing-line);border-radius:14px;text-decoration:none;color:var(--ing-text);background:#fff;transition:.15s}.ing-typecard:hover{border-color:var(--ing-primary);transform:translateY(-2px);box-shadow:0 8px 20px rgba(91,61,245,.12)}.ing-typecard span{font-size:2.2rem}
.ing-pkg{position:relative;background:#fff;border:1px solid var(--ing-line);border-radius:16px;padding:22px;display:flex;flex-direction:column}.ing-pkg.hot{border:2px solid var(--ing-primary);box-shadow:0 10px 30px rgba(91,61,245,.15)}.ing-pkg ul{list-style:none;padding:0;margin:8px 0 18px;flex:1}.ing-pkg li{padding:3px 0;font-size:.93rem}.ing-ribbon{position:absolute;top:-12px;right:16px;background:var(--ing-primary);color:#fff;padding:3px 12px;border-radius:99px;font-size:.75rem;font-weight:700}
.ing-price b{font-size:2rem}.ing-price s{color:var(--ing-muted)}.ing-promo{color:var(--ing-no);font-weight:600;margin:0}
.ing-radio{padding:10px 12px;border:1px solid var(--ing-line);border-radius:10px;margin:6px 0;width:100%}
.ing-lightbox-qr{position:fixed;inset:0;background:rgba(0,0,0,.6);display:grid;place-items:center;z-index:99999}.ing-lightbox-qr>div{background:#fff;padding:20px;border-radius:14px;text-align:center;color:#222}.ing-lightbox-qr img{width:240px;height:240px}
.ing-admin .ing-card{max-width:1200px}.ing-admin h1{font-size:1.6rem}
@media(max-width:720px){.ing-grid,.ing-cols{grid-template-columns:1fr}.ing-rrow,.ing-rrow:has(input:nth-child(2):last-child){grid-template-columns:1fr}
.ing-table thead{display:none}.ing-table,.ing-table tbody,.ing-table tr,.ing-table td{display:block;width:100%}.ing-table tr{border:1px solid var(--ing-line);border-radius:10px;margin-bottom:10px;padding:6px}.ing-table td{border:0;padding:5px 8px}.ing-table td[data-l]::before{content:attr(data-l) ": ";font-weight:700;color:var(--ing-muted);font-size:.8rem}
.ing-device.phone{height:620px}.ing-front{padding:10px}.ing-popbox{position:fixed;left:5vw;right:5vw;top:20vh;width:auto}}
