:root{color-scheme:dark;--bg:#06151a;--panel:#091921ed;--panel2:#0d2027;--line:#36515b;--text:#f3f1e6;--muted:#aebdc0;--gold:#dfb88b;--red:#ee6745;--green:#8fdcbd;--danger:#f39d9f;--head:'Cinzel',Georgia,serif;--body:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--text);font:15px/1.55 var(--body);background:var(--bg)}.background-art,.background-shade,.stars{position:fixed;inset:0;pointer-events:none}.background-art{background: url('/assets/cemetery.webp') center 37%/cover no-repeat;opacity:.41;filter:saturate(1.05)}.background-shade{background:linear-gradient(180deg,#031016ae 0%,#06151aea 46%,#06151aff 97%),linear-gradient(90deg,#031219cc,transparent 30%,transparent 70%,#031219cc)}.stars{background:radial-gradient(1px 1px at 14% 21%,#d6e6ecaa,transparent),radial-gradient(1px 1px at 65% 10%,#d6e6ecaa,transparent),radial-gradient(1px 1px at 87% 45%,#d6e6ecaa,transparent);opacity:.5}button,input,select{font:inherit}button,a,input,select{outline-offset:3px}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.site-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1210px;margin:auto;padding:28px 28px 8px}.brand{display:flex;gap:12px;align-items:center;color:#eee9dd}.brand-symbol{width:36px;height:36px;display:grid;place-items:center;color:var(--red);font-size:35px}.brand strong{font-family:var(--head);font-size:15px;letter-spacing:1.8px;display:block}.brand small{display:block;letter-spacing:3.4px;font-size:7px;color:#bdd0d0}.header-note{font-family:var(--head);font-size:12px;letter-spacing:3px;color:#d6e1de}.red{color:var(--red)}.admin-shortcut{font-size:12px;color:var(--muted);border-bottom:1px solid #71898a88;padding:6px 0}.admin-shortcut:hover{color:white}.app-shell{position:relative;z-index:1;max-width:1170px;margin:0 auto;min-height:calc(100vh - 154px);padding:35px 25px 55px}.site-footer{position:relative;z-index:1;font-size:9px;letter-spacing:3px;text-align:center;padding:28px 12px 36px;color:#8e9fa1;border-top:1px solid #52656a33}.site-footer span{padding:0 8px;color:var(--red)}.eyebrow{color:var(--gold);font-family:var(--head);font-size:11px;font-weight:600;letter-spacing:4px;text-transform:uppercase}.eyebrow .red{font-weight:900}.hero{text-align:center;max-width:850px;margin:40px auto 0}.ornament{display:flex;align-items:center;justify-content:center;gap:20px;color:var(--gold);font-size:22px;opacity:.85}.ornament:before,.ornament:after{content:'';height:1px;width:80px;background:linear-gradient(90deg,transparent,var(--gold))}.ornament:after{transform:rotate(180deg)}.display-title{font-family:var(--head);font-size:clamp(50px,7vw,106px);font-weight:900;line-height:1.02;letter-spacing:-2px;text-transform:uppercase;margin:24px 0 22px;text-shadow:0 5px 25px #000a}.display-title .fire{display:block;color:var(--red);text-shadow:0 4px 0 #5c251c,0 16px 29px #000}.hero .lead{font-family:var(--head);color:#d9dedb;letter-spacing:2px;font-size:14px}.meta-row{display:flex;gap:24px;align-items:center;justify-content:center;flex-wrap:wrap;color:#c2d4d1;margin:34px 0 42px;font-family:var(--head);font-size:13px;letter-spacing:1px}.meta-row span{display:flex;align-items:center;gap:10px}.meta-row b{color:var(--red)}.btn{background:linear-gradient(135deg,#e76747,#b94331);border:1px solid #f18b6c;color:#fff;padding:12px 20px;border-radius:6px;font-weight:800;letter-spacing:.3px;box-shadow:0 8px 25px #14080888;display:inline-flex;justify-content:center;align-items:center;gap:9px;transition:.15s}.btn:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px)}.btn.alt{background:#102a30;border-color:#43606a;box-shadow:none;color:#e9ece6}.btn.ghost{background:transparent;border:1px solid #61777a;box-shadow:none;color:#e6e5df}.btn.success{background:#194938;border:1px solid #6eac8d;box-shadow:none}.btn.danger{background:#552421;border-color:#a55352;box-shadow:none}.btn.sm{padding:8px 11px;font-size:12px}.btn.wide{width:100%}.cta-group{display:flex;align-items:center;gap:12px;justify-content:center;flex-wrap:wrap}.helper{color:var(--muted);font-size:12px}.muted{color:var(--muted)}.section-head{font-family:var(--head);font-size:29px;margin:10px 0 22px;line-height:1.25}.panel{background:linear-gradient(154deg,#0b1e27f5,#071219f3);border:1px solid #536b687a;border-radius:12px;padding:25px;box-shadow:0 25px 60px #0008,inset 0 1px 0 #b2bcaa12;backdrop-filter:blur(14px)}.panel.light{background:#13272ed9}.subtle-line{border:0;border-top:1px solid #5a77764c;margin:22px 0}.login-wrap{max-width:460px;margin:66px auto 40px;text-align:center}.login-wrap .panel{text-align:left;margin-top:27px}.login-wrap label,.field label{display:block;color:#d4ded8;font-size:12px;font-weight:700;letter-spacing:.4px;margin-bottom:7px}.field{margin-bottom:14px}input,select{width:100%;background:#051218;border:1px solid #536968;color:var(--text);border-radius:6px;padding:12px 13px;min-height:44px}input:focus,select:focus{border-color:#e2ac7b;outline:2px solid #e2ac7b35}input::placeholder{color:#80999c}.dashboard-header{display:flex;justify-content:space-between;gap:20px;align-items:end;flex-wrap:wrap;margin:20px 0 26px}.dashboard-title{font:700 clamp(32px,4vw,48px)/1.1 var(--head);margin:8px 0}.dashboard-grid{display:grid;grid-template-columns:minmax(290px,340px) minmax(0,1fr);gap:20px;align-items:start}.cards-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.stat{padding:19px 13px;border:1px solid #5f787454;background:#0b1d25dc;border-radius:8px}.stat-num{display:block;font:700 31px/1.2 var(--head);color:var(--text)}.stat-label{font-size:11px;letter-spacing:.7px;color:var(--muted);text-transform:uppercase}.stat.paid .stat-num{color:var(--green)}.stat.pending .stat-num{color:var(--gold)}.stat.used .stat-num{color:#e79f80}.tickets-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin:2px 0 15px}.tickets-toolbar .search{width:240px;max-width:100%;padding:9px 12px;min-height:40px}.ticket-list{display:grid;gap:10px;max-height:810px;overflow:auto;padding-right:3px}.ticket-row{background:#0b1f26d9;border:1px solid #46605f7c;border-radius:9px;padding:13px 14px;display:flex;justify-content:space-between;gap:14px;align-items:center}.ticket-row .name{font-weight:800;font-size:14px;word-break:break-word}.ticket-row .code{color:var(--gold);font:600 11px var(--head);letter-spacing:1px}.ticket-row .details{font-size:11px;color:var(--muted);margin-top:5px}.ticket-row .actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:end}.pill{font-size:10px;text-transform:uppercase;letter-spacing:.5px;border:1px solid;border-radius:100px;display:inline-flex;align-items:center;padding:4px 9px;font-weight:800;white-space:nowrap}.pill.pending{color:#eaca8f;border-color:#a7854c;background:#3c2c1347}.pill.paid{color:#9ce4bc;border-color:#4c8769;background:#113e2b88}.pill.used{color:#dfa7a0;border-color:#93605d;background:#452b2988}.pill.cancelled{color:#b0afb0;border-color:#616568;background:#35363855}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.notice{font-size:12px;color:#c5d0cd;background:#18343aaf;border:1px solid #486068;border-radius:7px;padding:12px 13px;margin:12px 0}.ticket-page{max-width:840px;margin:10px auto}.ticket-card{position:relative;text-align:center;padding:40px 36px 31px;overflow:hidden;border:1px solid #be936c88;border-radius:13px;background:linear-gradient(180deg,#102a34ee,#07161dea 70%,#091921f5);box-shadow:0 25px 70px #000a;isolation:isolate}.ticket-card:before{content:'';position:absolute;inset:0;background:url('/assets/cemetery.webp') center 29%/cover no-repeat;opacity:.21;z-index:-1}.ticket-card:after{content:'';position:absolute;inset:11px;border:1px solid #be91613c;pointer-events:none;border-radius:5px}.ticket-headline{font:900 clamp(34px,5.3vw,63px)/1.02 var(--head);letter-spacing:-1px;text-transform:uppercase;margin:16px 0;color:#f4eee4;text-shadow:0 5px 15px black}.ticket-headline strong{display:block;color:var(--red)}.ticket-meta{font:600 11px var(--head);color:#d6c3ad;letter-spacing:2.5px}.seal{margin:22px auto 10px;width:55px;height:55px;border-radius:50%;display:grid;place-items:center;font-size:28px;border:2px solid #b69b78;color:var(--gold);background:#0e292b}.ticket-state{font:800 clamp(21px,3vw,30px)/1.2 var(--head);margin:10px 0 3px}.ticket-state.paid{color:var(--green)}.ticket-state.used{color:#e9a29b}.ticket-state.pending{color:var(--gold)}.ticket-state.cancelled{color:#e4a1a3}.ticket-name{font:700 clamp(20px,3vw,30px) var(--head);margin:6px 0}.ticket-divider{display:flex;align-items:center;gap:12px;color:var(--gold);margin:25px 0 16px}.ticket-divider:before,.ticket-divider:after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,#b89165)}.ticket-divider:after{transform:rotate(180deg)}.qr-frame{display:inline-block;padding:12px;background:#fff;border:6px solid #be9568;box-shadow:0 0 0 4px #122630,0 12px 35px #000b;margin:14px 0 10px;border-radius:3px}.qr-frame>div{width:210px;height:210px;display:grid;place-items:center}.qr-frame img,.qr-frame canvas{display:block;max-width:100%;height:auto!important}.qr-note{font-size:12px;color:#ced7d3}.ticket-code{font:700 15px var(--head);letter-spacing:3px;color:#e7c5a1}.ticket-location{font:600 17px var(--head);margin:8px 0}.ticket-address{color:#d6d4ca;font-size:14px}.scan-wrap{max-width:700px;margin:auto}.scan-reader{background:#030b0f;border:1px solid #45616b;border-radius:10px;min-height:125px;overflow:hidden;margin:15px 0}.scan-result{margin:15px 0}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.info-cell{border:1px solid #4d696b66;border-radius:7px;padding:13px;background:#0a1a20}.info-cell span{display:block;font-size:11px;color:var(--muted)}.info-cell strong{font-size:16px}.empty-state{padding:24px;text-align:center;color:var(--muted);border:1px dashed #526d6d;border-radius:8px}.loading{text-align:center;padding:100px 0;color:#b6c6c5}.spinner{display:inline-block;height:16px;width:16px;border:2px solid #546e71;border-top-color:#ef7754;border-radius:100%;animation:spin 1s linear infinite;vertical-align:middle;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;z-index:10;bottom:24px;right:24px;max-width:min(410px,calc(100vw - 40px));background:#17322e;border:1px solid #81b3a0;border-radius:8px;color:white;padding:11px 17px;box-shadow:0 9px 25px #000b;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#462022;border-color:#e78686}.hidden{display:none!important}hr{border:0;border-top:1px solid #4e676b4d}.back-link{color:#b5cdcb;font-size:12px;text-decoration:underline;text-underline-offset:3px}.center{text-align:center}.foot-legal{font-size:11px;color:#829b9f;margin-top:27px;text-align:center}
@media (max-width:900px){.dashboard-grid{grid-template-columns:1fr}.cards-stats{grid-template-columns:repeat(4,1fr)}.ticket-list{max-height:none}.header-note{display:none}}
@media (max-width:600px){.site-header{padding:18px 16px 4px}.brand strong{font-size:12px;letter-spacing:1.1px}.brand small{font-size:7px;letter-spacing:2px}.admin-shortcut{font-size:11px}.app-shell{padding:21px 13px 46px}.hero{margin:45px auto 0}.display-title{font-size:clamp(47px,12vw,70px);letter-spacing:-1.6px}.hero .lead{font-size:12px}.meta-row{gap:14px;margin:25px 0;font-size:11px}.panel{padding:19px}.ticket-card{padding:33px 18px 27px}.ticket-card:after{inset:7px}.ticket-headline{font-size:clamp(32px,8.8vw,49px)}.qr-frame>div{width:194px;height:194px}.qr-frame{padding:10px}.ticket-meta{font-size:10px;letter-spacing:1.4px}.ticket-row{display:block}.ticket-row .actions{justify-content:start;margin-top:12px}.cards-stats{grid-template-columns:repeat(2,1fr)}.stat-num{font-size:28px}.field-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr}.footer{letter-spacing:1px}}
@media print{body{background:#0c1b20!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.site-header,.site-footer,.print-hide,.toast,.background-art,.background-shade,.stars{display:none!important}.app-shell{padding:0;min-height:auto}.ticket-page{max-width:100%}.ticket-card{box-shadow:none;break-inside:avoid}.ticket-card:before{opacity:.1}}

/* Autoinscripción con comprobante privado, diseño de Halloween */
.guest-signup{max-width:610px;margin:20px auto;text-align:left}
.guest-signup .section-head{margin:8px 0 12px}
.guest-signup>.muted{font-size:14px;margin:0 0 22px}
.guest-signup input[type=file]{padding:10px;min-height:52px}
.guest-signup input[type=file]::file-selector-button{background:#193038;color:#f2e8dc;border:1px solid #547076;padding:7px 11px;border-radius:5px;margin-right:10px}
.guest-signup .consent{display:flex;align-items:flex-start;gap:11px;margin:14px 0 18px;color:#b9cecb;text-align:left;font-size:12px}
.guest-signup .consent input{min-height:auto;width:18px;height:18px;flex:none;margin-top:2px;accent-color:#ef7453}
.guest-signup .helper{text-align:left}
.trap-field{position:absolute!important;width:1px;height:1px;overflow:hidden;left:-10000px}
.signup-success{text-align:center;padding:12px 0}
.signup-success h3{font:700 27px var(--head);color:var(--green)}
.signup-success .code{font:700 17px var(--head);color:var(--gold);letter-spacing:2px;margin:15px}
.source-tag{color:#d4b08a;border:1px solid #8f6741;border-radius:5px;padding:2px 5px;font-size:10px}
@media(max-width:600px){.guest-signup{margin-top:18px}.guest-signup .field-grid{grid-template-columns:1fr}}

/* Cool Outings 3.1 — revisión explícita y manual de tarifa */
.ticket-row:has(.review-panel){flex-wrap:wrap}
.review-panel{flex-basis:100%;width:100%;padding:17px;background:#0e252b;border:1px solid #ac8765a0;border-radius:9px;margin-top:8px}
.review-panel .field{max-width:440px}
.review-panel .consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:#e1ded5;margin:12px 0}
.review-panel .consent input{flex:none;width:18px;height:18px;accent-color:#92d8b5;margin-top:2px}
.review-panel .review-difference{padding:13px;border-left:3px solid #e9b483;background:#091b2299;max-width:700px;line-height:1.6}
@media(max-width:600px){.review-panel{padding:12px}.review-panel .cta-group{flex-direction:column;align-items:stretch}.review-panel .btn{width:100%}}

/* Cool Outings 4.0 — un único aviso de Yape dentro del formulario. */
.yape-line{border:1px solid #ae865a77;background:linear-gradient(115deg,#14292be8,#081b22f0);border-radius:9px;padding:16px 18px;margin:0 0 22px;text-align:center}
.yape-label{font:700 11px var(--head);letter-spacing:2.2px;color:#d5bb91}
.yape-number-row{display:flex;justify-content:center;align-items:center;gap:16px;margin:9px 0}
.yape-number-row strong{font:800 clamp(25px,5vw,35px) var(--head);letter-spacing:1px;color:#f2d5ae}
.yape-line .helper{margin:8px auto 0;max-width:430px;text-align:center;font-size:12px;line-height:1.6}
@media(max-width:430px){.yape-number-row{gap:10px;flex-wrap:wrap}.yape-line{padding:15px 10px}.yape-label{letter-spacing:1.3px}}
