:root{--green:#153f36;--accent:#d7ed9e;--paper:#f7f7f2;--ink:#243e37;--muted:#65736d;--line:#d9e0d9;--white:#fff;--error:#a52d2d;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}[hidden]{display:none!important}.header{height:94px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6vw}.brand{position:relative;min-width:0;display:grid;grid-template-columns:40px auto;column-gap:12px;text-decoration:none;color:var(--green);font-weight:800;letter-spacing:2px;font-size:17px}.brand-icon{grid-row:span 2;font-size:35px;font-weight:400;line-height:1}.brand-sub{font-size:9px;letter-spacing:1.7px;margin-top:6px}.header-note{font-size:12px;color:var(--muted)}.header-login{flex:none;display:inline-block;background:#fff;border:1px solid #bac9bd;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:600;color:var(--green);text-decoration:none;white-space:nowrap;min-height:40px;line-height:20px}.header-login:hover{background:#e9efdf;border-color:#9db79a}.login-corto{display:none}.layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:40% 60%;min-height:calc(100vh - 94px)}.intro{padding:65px 4vw 30px 6vw;background:#e9eddf;overflow:hidden}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px}.intro h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(34px,3.5vw,52px);line-height:1.14;letter-spacing:-1.7px;margin:24px 0}.intro h1 em{font-weight:400;color:#697b52}.intro>p{font-size:14px;line-height:1.8;max-width:320px;color:#51614e}.arch{height:250px;max-width:310px;position:relative;border-radius:160px 160px 6px 6px;background:#cfdbc2;overflow:hidden;margin:35px 0 25px;border:8px solid #e0e5d4;outline:1px solid #cbd4c0}.sun{width:63px;height:63px;background:#f5e5ab;border-radius:50%;position:absolute;top:40px;right:42px}.hill{position:absolute;width:360px;height:180px;border-radius:50%;transform:rotate(-18deg)}.back{background:#91a582;left:-90px;top:137px}.front{background:#44664f;left:80px;top:165px;transform:rotate(25deg)}.window-line{position:absolute;left:49%;height:100%;width:7px;background:#e0e5d4}.intro-foot>span{font-size:9px;letter-spacing:2px}.intro-foot p{font-size:12px;color:#65735b}.form-area{padding:36px 5vw 24px;min-width:0}.demo-note{background:#eef1e7;border:1px solid #d7dfcc;border-radius:9px;padding:12px 15px;font-size:12px;line-height:1.6;margin-bottom:26px}.steps{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 38px;gap:10px 14px;justify-content:space-between}.steps li{display:flex;gap:8px;align-items:center;color:#707971;font-size:12px}.steps li .step-num{display:grid;place-items:center;width:29px;height:29px;flex:none;border:1px solid #cad3c9;border-radius:50%;font-size:11px}.steps .active{color:var(--green);font-weight:bold}.steps .active .step-num,.steps .done .step-num{background:var(--green);border-color:var(--green);color:white}.section-heading h2,#result h2{font:400 34px Georgia,serif;margin:10px 0 12px;letter-spacing:-.7px}.section-heading p,#result p{color:var(--muted);font-size:13px;line-height:1.7;margin-bottom:26px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px}label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600}.full{grid-column:1/-1}input,select,textarea{width:100%;min-width:0;border:1px solid #ccd5cd;border-radius:8px;background:#fff;padding:12px;color:var(--ink);font-weight:400;font-size:14px;min-height:44px}input::placeholder,textarea::placeholder{color:#87918a;font-size:12px}[data-mayus]{text-transform:uppercase}[data-mayus]::placeholder{text-transform:none}.sin-mayus{text-transform:none!important}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #749c77;outline-offset:2px}button:focus-visible,a:focus-visible{outline:3px solid #8aad56;outline-offset:4px}[aria-invalid="true"]{border-color:var(--error);background:#fff8f6}.phone-row{display:flex;gap:8px;align-items:stretch}.phone-row select{flex:0 0 auto;width:auto;max-width:48%;font-size:13px}.phone-row input{flex:1 1 auto;min-width:0}.hint{font-size:12px;line-height:1.7;color:var(--muted);margin:19px 0}.actions{border-top:1px solid var(--line);padding-top:23px;margin-top:28px;display:flex;gap:12px;align-items:center}.actions>span{font-size:11px;color:var(--muted);margin-right:auto}.button{border-radius:8px;padding:13px 20px;font-weight:600;font-size:13px;min-height:45px}.primary{background:var(--green);color:#fff;border:1px solid var(--green)}.primary:hover{background:#245b4d}.secondary{background:transparent;border:1px solid #bac9bd;color:var(--green)}.secondary:hover{background:#e9efdf}.guest-card{position:relative;border:1px solid var(--line);border-radius:12px;padding:22px 18px;margin:0 0 24px;background:#fbfcf8;min-width:0}.guest-card legend{font-size:14px;font-weight:700;padding:0 7px}.remove-guest{display:block;margin:0 0 18px auto;background:none;border:none;text-decoration:underline;color:#8f3934;font-size:12px;min-height:30px}.add-button{width:100%;border:1px dashed #96ad94;border-radius:8px;background:#edf2e6;color:var(--green);padding:14px;font-weight:600}.summary-card{border:1px solid var(--line);background:white;border-radius:10px;padding:18px;margin-bottom:15px}.summary-card h3{font-size:15px;margin:0 0 16px}.summary-card dl{margin:0;display:grid;grid-template-columns:40% 60%;gap:9px 0;font-size:12px;line-height:1.6}.summary-card dt{color:var(--muted);padding-right:12px}.summary-card dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.check{flex-direction:row;align-items:flex-start;font-weight:400;line-height:1.7;margin-top:24px}.check input{width:18px;height:18px;min-height:18px;flex:none;accent-color:var(--green);margin:2px 4px 0 0}.privacy{font-size:12px;color:var(--muted);line-height:1.7;margin-top:22px}.privacy p{margin-top:5px}.error{color:var(--error);background:#fff0ec;border-radius:8px;padding:12px;font-size:13px;line-height:1.5}.form-footer{border-top:1px solid var(--line);margin-top:38px;padding-top:20px;display:flex;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:1px;color:var(--muted)}.form-footer span{letter-spacing:0;font-size:10px}#result{padding:25px 0}.success-icon{width:56px;height:56px;background:var(--accent);color:var(--green);border-radius:50%;display:grid;place-items:center;font-size:25px;margin-bottom:24px}#result .eyebrow{display:block}.result-meta{font-size:14px;padding:15px;background:#eaf0e3;border-radius:8px;margin:20px 0;line-height:1.7;overflow-wrap:anywhere}.text-button{display:block;border:0;background:none;padding:14px 0;text-decoration:underline;color:var(--muted);font-size:12px}
/* ---- códigos de reserva ---- */
.reserva-card{border:1px solid #c8d6c4;border-left:5px solid var(--green);border-radius:10px;background:#fbfcf8;padding:15px 18px;margin-bottom:12px}.codes{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:12px}.code-box{min-width:0;background:#fff;border:1px solid var(--line);border-radius:9px;padding:12px 14px}.code-box .eyebrow{display:block;color:var(--muted);font-size:9px}.code-box strong{display:block;font-family:"Courier New",monospace;font-size:20px;font-weight:700;letter-spacing:2px;color:var(--green);margin:6px 0;overflow-wrap:anywhere}.code-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.reserva-note{font-size:11.5px;line-height:1.6;color:var(--muted);margin:12px 0 0;max-width:560px}.role-switch{font-size:12px;color:var(--muted);margin:0 0 26px;line-height:1.7}.link-button{border:0;background:none;padding:0;color:var(--green);font-size:12px;font-weight:600;text-decoration:underline}.link-button:hover{color:#3c6e4f}.button.small{padding:10px 14px;font-size:12px;min-height:40px}a.button{display:inline-block;text-align:center;text-decoration:none}.field-hint{font-weight:400;font-size:11.5px;line-height:1.6;color:var(--muted)}.field-hint.ok{color:#2f6b45;font-weight:600}
/* ---- menú de compartir ---- */
.share-wrap{position:relative;display:inline-flex}.share-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:200px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px rgba(20,45,35,.2);padding:6px;display:flex;flex-direction:column}.share-menu button{border:0;background:none;text-align:left;padding:10px 12px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--ink);min-height:38px}.share-menu button:hover{background:#eef2e6;color:var(--green)}
/* ---- llegada anticipada ---- */
.early-block{border:1px dashed #b6c7ae;border-radius:10px;background:#f2f5ea;padding:17px;margin-top:26px}.early-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.early-head strong{font-size:13.5px;color:var(--green)}.early-head p{font-size:12px;line-height:1.7;color:var(--muted);margin:6px 0 0;max-width:430px}.early-head .button{flex:none}#early-panel{border-top:1px solid #d3ddc8;margin-top:17px;padding-top:17px}#early-panel .hint{margin-bottom:0}.early-status{background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px;margin-top:18px}.early-status p{font-size:12px;line-height:1.7;color:var(--muted);margin:9px 0 0}.badge{display:inline-block;background:var(--accent);color:var(--green);border-radius:20px;padding:5px 12px;font-size:10.5px;font-weight:700;letter-spacing:1px}.early-contact{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px}
/* ---- paso de acompañantes ---- */
#share-panel{border:1px solid #c8d6c4;border-radius:10px;background:#f7faf2;padding:17px;margin-bottom:10px}#share-panel>.eyebrow{display:block;color:var(--muted);margin-bottom:10px}.share-intro{font-size:12.5px;line-height:1.7;color:var(--ink);margin:0 0 13px}.share-url{display:block;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;font-family:"Courier New",monospace;font-size:12px;line-height:1.6;overflow-wrap:anywhere;color:var(--green)}.share-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px}#share-panel .share-url{margin-top:13px}.share-code{background:#fff;border:1px dashed var(--green);border-radius:9px;padding:14px;text-align:center;font-family:"Courier New",monospace;font-size:24px;font-weight:700;letter-spacing:3px;color:var(--green);overflow-wrap:anywhere}.guests-head{margin:28px 0 16px}.guests-head .eyebrow{display:block;color:var(--muted);margin-bottom:7px}#pending-note{margin:0}
/* ---- pantalla final ---- */
.result-codes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:20px 0}.result-code{display:flex;flex-direction:column;align-items:flex-start;gap:6px;background:var(--green);color:#fff;border-radius:10px;padding:16px 18px}.result-code .eyebrow{color:#c6d9b4}.result-code strong{font-family:"Courier New",monospace;font-size:22px;letter-spacing:2.5px;overflow-wrap:anywhere}.result-code p{font-size:11.5px;line-height:1.6;color:#d3e2c4;margin:0}.result-code .code-actions{gap:8px;margin-top:8px}.result-code .button{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.45);color:#fff}.result-code .button:hover{background:rgba(255,255,255,.26)}#result-share{border:1px solid var(--line);border-radius:10px;background:#f7faf2;padding:16px;margin-bottom:20px}#result-share .hint{margin:0 0 11px}#result-share .share-url{margin-top:12px}.result-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 4px}
/* ---- página inicial ---- */
.entry-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:40px}.entry-card{position:relative;border:1px solid var(--line);border-radius:12px;background:#fff;padding:22px 20px}.entry-num{position:absolute;top:18px;right:18px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eef2e6;color:var(--green);font-size:12px;font-weight:700}.entry-card h3{font:400 23px Georgia,serif;margin:0 0 10px;color:var(--green);letter-spacing:-.4px;padding-right:34px}.entry-card>p{font-size:12.5px;line-height:1.75;color:var(--muted);margin:0 0 16px}.entry-card label{margin-bottom:8px}.entry-card .button{width:100%;margin-top:4px}.entry-card .error{margin-bottom:12px}.entry-list{list-style:none;padding:0;margin:0 0 18px;font-size:12.5px;line-height:1.7;color:var(--ink)}.entry-list li{padding-left:18px;position:relative}.entry-list li::before{content:"·";position:absolute;left:6px;color:var(--green);font-weight:700}
.local-card{display:block;border:1px solid var(--line);border-radius:10px;background:#fff;padding:14px 16px;margin-bottom:10px;text-decoration:none;color:inherit}.local-card:hover{border-color:#9db79a;background:#fbfcf8}.local-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.local-head strong{font-size:14px;color:var(--green)}.local-card p{font-size:11.5px;line-height:1.7;color:var(--muted);margin:6px 0 0;font-family:"Courier New",monospace;overflow-wrap:anywhere}.badge-suave{background:#e6e9e2;color:var(--muted)}
.place-preview{margin-bottom:34px}.fact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fact{border:1px solid var(--line);border-radius:9px;background:#fbfcf8;padding:13px 15px}.fact .eyebrow{display:block;color:var(--muted);font-size:9px}.fact p{font-size:13px;line-height:1.65;margin:6px 0 0;overflow-wrap:anywhere}
/* ---- panel de la reserva ---- */
.panel-layout{max-width:920px;margin:auto;padding:38px 6vw 30px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.panel-head h1{font:400 38px Georgia,serif;margin:8px 0 6px;letter-spacing:-1px;color:var(--green)}.panel-head p{font-size:13px;color:var(--muted);margin:0}.panel-section{border-top:1px solid var(--line);margin-top:34px;padding-top:28px}.panel-section .section-heading h2{font-size:27px}
.progress{height:8px;border-radius:6px;background:#e4e9de;overflow:hidden;margin-bottom:18px}.progress-bar{height:100%;width:0;background:#8aad56;border-radius:6px;transition:width .4s ease}.progress-bar.completo{background:var(--green)}
.person-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--line);border-radius:9px;background:#fff;padding:13px 15px;margin-bottom:9px}.person-row strong{display:block;font-size:13.5px;color:var(--green)}.person-row span{font-size:11.5px;color:var(--muted);line-height:1.6}.person-tag{flex:none;background:#eef2e6;border-radius:20px;padding:5px 11px;font-size:10.5px;color:#4c6047}.person-row.pendiente{border-style:dashed;background:#faf9f4}.person-row.pendiente strong{color:#8a7b45}
.lock-box{border:1px solid #ddd5bd;border-radius:11px;background:#fbf8ee;padding:18px}.lock-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.lock-icon{font-size:20px;line-height:1.2}.lock-head strong{font-size:13.5px;color:#7a6a34}.lock-head p{font-size:12px;line-height:1.7;color:var(--muted);margin:5px 0 0}.auth-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.auth-row label{flex:1 1 220px}.auth-row .button{flex:none}.lock-box .error{margin-top:12px}.lock-box .share-actions{margin-top:16px;border-top:1px solid #e7dfca;padding-top:16px}
.unlock-box{border:1px solid #bcd3a8;border-radius:11px;background:#f2f7ea;padding:18px}.unlock-box p{font-size:12.5px;line-height:1.7;color:var(--muted);margin:10px 0 14px}
.normas-titulo{font-size:14px;color:var(--green);margin:24px 0 10px}.normas{margin:0;padding-left:20px;font-size:13px;line-height:1.85;color:var(--ink)}.normas li{margin-bottom:5px}
/* ---- panel del anfitrión ---- */
.login-box{max-width:420px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:22px;display:flex;flex-direction:column;gap:16px}.login-box .button{width:100%}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:26px}.stat{border:1px solid var(--line);border-radius:10px;background:#fff;padding:14px 16px}.stat strong{display:block;font:400 27px Georgia,serif;color:var(--green);line-height:1.1}.stat span{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:5px}.stat.alerta{border-color:#d8c79a;background:#fdfaf1}.stat.alerta strong{color:#8a6d22}
.admin-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:20px}.filtros{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#fff;border-radius:20px;padding:8px 14px;font-size:12px;font-weight:600;color:var(--muted);min-height:36px}.chip:hover{border-color:#9db79a}.chip.activo{background:var(--green);border-color:var(--green);color:#fff}.admin-tools .share-actions{margin-top:0}
.admin-card{border:1px solid var(--line);border-radius:11px;background:#fff;margin-bottom:10px;overflow:hidden}.admin-card[open]{border-color:#9db79a}.admin-card.pendiente{border-left:4px solid #d8c79a}.admin-card summary{cursor:pointer;padding:15px 17px;list-style:none;display:flex;flex-direction:column;gap:5px}.admin-card summary::-webkit-details-marker{display:none}.admin-card summary::after{content:"▾";position:absolute;right:18px;color:var(--muted);font-size:13px}.admin-card summary{position:relative;padding-right:40px}.admin-card[open] summary::after{content:"▴"}.admin-card summary strong{font-size:14.5px;color:var(--green)}.admin-card summary>span{font-size:11.5px;color:var(--muted);font-family:"Courier New",monospace;overflow-wrap:anywhere}.admin-tags{display:flex!important;gap:7px;flex-wrap:wrap;font-family:inherit!important;margin-top:3px}
.admin-body{border-top:1px solid var(--line);padding:16px 17px}.admin-meta{font-size:11.5px;color:var(--muted);margin:0 0 14px;line-height:1.6}.admin-nota{font-size:12.5px;line-height:1.7;color:var(--ink);background:#f7faf2;border-left:3px solid #bcd3a8;border-radius:0 7px 7px 0;padding:10px 13px;margin:0 0 14px}
.person-acciones{display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex:none}.link-button.peligro{color:#a5342d}.link-button.peligro:hover{color:#7d251f}.button.peligro{background:#a5342d;border:1px solid #a5342d;color:#fff}.button.peligro:hover{background:#8a2a24}
.estancia-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.estancia-row .admin-meta{margin:0}
.edit-box{border:1px solid #9db79a;border-radius:10px;background:#f7faf2;padding:16px;margin-bottom:10px}.edit-box>strong{display:block;font-size:12.5px;color:var(--green);margin-bottom:14px}.edit-box .grid{gap:13px 12px}.edit-box label{font-size:11px}.edit-box input,.edit-box select{font-size:13px;min-height:40px;padding:9px 11px}.edit-box .share-actions{margin-top:15px}.edit-box .error{margin-top:12px}
.danger-box{border:1px solid #dcb3ae;border-radius:10px;background:#fdf6f5;padding:16px;margin-bottom:10px}.danger-box p{font-size:12.5px;line-height:1.7;color:#7d3a34;margin:0 0 13px}.danger-box label{font-size:11px;margin-bottom:13px}.danger-box input{font-size:13px;min-height:40px;padding:9px 11px;text-transform:uppercase}.danger-box .share-actions{margin-top:0}.danger-box .error{margin-top:12px}
.admin-acciones{display:grid;gap:12px;margin-top:16px}.accion-bloque{border:1px solid var(--line);border-radius:9px;background:#fbfcf8;padding:14px}.accion-bloque strong{display:block;font-size:12.5px;color:var(--green);margin-bottom:6px;line-height:1.6}.accion-bloque p{font-size:11.5px;line-height:1.7;color:var(--muted);margin:0 0 11px}.accion-bloque .share-actions{margin-top:0}
@media(min-width:1440px){.intro{padding-left:75px}.form-area{padding-left:75px;padding-right:75px}}
@media(max-width:850px){.layout{grid-template-columns:1fr}.intro{padding:30px 6vw}.intro h1{font-size:36px;margin:15px 0}.intro>p{max-width:520px}.arch,.intro-foot{display:none}.form-area{padding:28px 6vw}.header{height:80px}.header-note{display:none}.header-login{padding:9px 13px;font-size:11.5px}.steps{margin-bottom:28px}.entry-cards{grid-template-columns:1fr}.panel-layout{padding:28px 6vw}.panel-head h1{font-size:30px}}
@media(max-width:480px){.grid{grid-template-columns:1fr;gap:17px}.header{padding:0 4vw}.brand{font-size:12px;letter-spacing:.9px;column-gap:8px;grid-template-columns:26px auto}.brand-icon{font-size:24px}.brand-sub{font-size:8px;letter-spacing:1.2px;margin-top:4px}.header-login{padding:8px 12px;font-size:11px;min-height:36px;line-height:18px}.login-largo{display:none}.login-corto{display:inline}.steps{gap:8px 10px}.steps li{font-size:10.5px;gap:5px}.steps li .step-num{width:25px;height:25px;font-size:10px}.section-heading h2{font-size:30px}.actions{flex-wrap:wrap}.actions .button{padding:12px 14px}.form-footer{flex-direction:column}.summary-card dl{grid-template-columns:1fr}.summary-card dd{margin-bottom:7px}.intro h1{font-size:32px}.guest-card{padding:19px 13px}.fact-grid{grid-template-columns:1fr}.early-head .button{width:100%}.code-box strong{font-size:18px}.result-code strong{font-size:20px}.share-code{font-size:19px;letter-spacing:2px}.early-contact .button,.share-actions .button,.result-actions .button{flex:1 1 100%}.auth-row .button{width:100%}.person-row{align-items:flex-start}.panel-head h1{font-size:27px}.share-menu{left:auto;right:0}}
@media print{.header,.intro,.steps,.demo-note,.actions,.form-footer,.add-button,.remove-guest,.text-button,.button,.role-switch,#share-panel,.share-menu,.early-head .button{display:none!important}.reserva-card{break-inside:avoid}.early-block{border-style:solid}.layout{display:block}.form-area{padding:0}.summary-card{break-inside:avoid}body{background:#fff}}
