/* Solo extensiones del formulario existente y páginas de gestión/pago. */
[hidden] { display:none !important; }
.booking__card-head { flex-wrap:wrap; }
.booking__grid { align-items:start; }
.calendar__days button { padding:5px 0;min-height:30px;border-radius:7px;background:#d9cdb826;font:inherit; }
.calendar__days button:hover:not(:disabled) { background:var(--stone); }
.calendar__days button:disabled { cursor:default;opacity:.5; }
.calendar__days .is-occupied { text-decoration:line-through;background:#ded6c9;color:#6f665a; }
.calendar__days button.is-occupied:disabled { opacity:1; }
.calendar__days .is-selected { background:var(--pine-deep);color:var(--paper); }
.calendar__days .is-range { background:var(--ochre-soft); }
.booking__demo .booking__note,.booking__demo .check-field,.booking__quote { grid-column:1/-1; }
.tariffs-card summary { cursor:pointer;list-style:none; }
.tariffs-card summary h2 { display:inline; }
.tariffs-card summary::after { content:' ▾';opacity:.6; }
.tariffs-card h3 { margin:22px 0 8px;font-size:1rem; }
.tariffs-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px; }
.tariff-season { display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;align-items:end;border:1px solid var(--stone);border-radius:12px;padding:12px;margin:0 0 10px; }
.tariffs-form input { background:var(--paper);padding:10px;border:1px solid var(--stone);border-radius:9px;min-width:0;width:100%;font:inherit; }
.claim-banner { background:#e7f0dc;border:1px solid #b9cfa0;border-radius:10px;padding:12px 14px;margin:0 0 12px;font-weight:500; }
.booking__quote { background:#d9cdb833;border:1px solid var(--stone);border-radius:12px;padding:14px 16px; }
.booking__quote-list { display:grid;grid-template-columns:1fr auto;gap:6px 12px;margin:0;font-size:.92rem; }
.booking__quote-list dd { margin:0;text-align:right;font-variant-numeric:tabular-nums; }
.booking__quote-list .is-total { font-weight:600;border-top:1px solid var(--stone);padding-top:8px;margin-top:4px; }
.booking__quote-note { margin:10px 0 0;font-size:.8rem;opacity:.8; }
.booking__quote-note.is-error { color:#9a3412;opacity:1; }
.check-field { display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--muted); }
.check-field input { flex:none;width:18px;height:18px;margin-top:3px;accent-color:var(--pine); }
.check-field a { text-decoration:underline;text-underline-offset:3px; }
.honeypot { position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden; }
.test-note { font-size:12px;border-left:2px solid var(--ochre);padding-left:10px;color:var(--muted);margin-bottom:18px; }
.is-error { color:#9b3020 !important; }
button:disabled { cursor:not-allowed;opacity:.55; }
.private-page { min-height:100vh;background:var(--paper); }
.private-header { padding:24px var(--gutter);border-bottom:1px solid var(--stone);display:flex;justify-content:space-between;gap:20px;align-items:center; }
.private-brand { font-family:var(--f-display);font-size:28px;line-height:1.1; }
.private-header a:last-child { font-size:13px;text-decoration:underline; }
.private-main { max-width:1120px;margin:0 auto;padding:45px var(--gutter) 80px; }
.private-main h1 { font-family:var(--f-display);font-weight:500;font-size:clamp(34px,5vw,54px);line-height:1.1;margin-bottom:14px;color:var(--pine-deep); }
.private-main h2 { font-family:var(--f-display);font-size:30px;font-weight:500;line-height:1.2; }
.private-main p { margin-bottom:14px; }
.private-card { background:var(--cream);border:1px solid var(--stone);border-radius:var(--radius);padding:26px;margin-top:24px;min-width:0; }
.private-card--narrow { max-width:550px;margin:30px auto; }
.private-form { display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px; }
.private-form .field--full,.private-form .check-field,.private-form .btn { grid-column:1/-1; }
.private-form label { display:block;font-size:12px;margin-bottom:7px;color:var(--muted); }
.private-form input,.private-form select,.private-toolbar select { background:var(--paper);padding:12px;border:1px solid var(--stone);border-radius:9px;min-width:0;width:100%;font:inherit; }
.private-form .check-field { display:flex; }
.private-form .check-field input { width:18px;padding:0; }
.private-toolbar { display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:22px 0; }
.private-toolbar select { width:auto;max-width:100%; }
.calendar-export .private-toolbar { margin:14px 0 0; }
.calendar-export input { flex:1 1 260px;background:var(--paper);padding:12px;border:1px solid var(--stone);border-radius:9px;min-width:0;font:inherit;font-size:.85rem; }
.booking-detail > .private-text-button { margin-right:18px; }
.private-toolbar .btn { padding:11px 18px;font-size:12px; }
.private-layout { display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.4fr);gap:24px;align-items:start; }
.request-list { display:grid;gap:10px;max-height:760px;overflow-y:auto;padding:5px; }
.request-item { display:block;width:100%;text-align:left;border:1px solid var(--stone);background:var(--cream);border-radius:12px;padding:16px; }
.request-item[aria-pressed="true"] { border:2px solid var(--pine);padding:15px; }
.request-item strong,.request-item small { display:block;overflow-wrap:anywhere; }
.request-item small { color:var(--muted);margin-top:6px; }
.status-badge { display:inline-block;font-size:11px;border:1px solid var(--stone);border-radius:20px;padding:3px 10px;margin:10px 0; }
.status-badge--confirmed { color:var(--pine);background:#dce4d1; }
.booking-detail { margin-top:0;overflow-wrap:anywhere; }
.booking-detail dl,.payment-summary { display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:14px;margin:15px 0; }
dt { color:var(--muted); } dd { margin:0; }
.private-status { min-height:26px;font-size:14px;overflow-wrap:anywhere; }
.private-text-button { text-decoration:underline;font-size:13px;padding:8px 0; }
.private-note { font-size:12px;color:var(--muted); }
.message-preview { margin:15px 0;border-top:1px solid var(--stone);padding-top:15px;overflow-wrap:anywhere; }
.message-preview summary { cursor:pointer;font-size:14px; }
.message-preview pre { white-space:pre-wrap;font:12px/1.7 var(--f-body);margin-top:12px; }
.audit-list { margin:20px 0;padding-left:18px;font-size:12px;color:var(--muted); }
.payment-main { max-width:850px; }.payment-main .private-card { margin-bottom:24px; }
.payment-main .btn { white-space:normal; }
#checkout { min-height:100px; }
.privacy-copy { max-width:750px; }.privacy-copy h2 { margin:30px 0 10px; }
@media(max-width:767px){.private-layout{grid-template-columns:1fr}.request-list{max-height:330px}.private-form{grid-template-columns:1fr}.private-header{padding:20px}.private-brand{font-size:23px}.private-main{padding:30px 18px 60px}.private-card{padding:20px}.private-toolbar{gap:8px}.booking-detail dl,.payment-summary{grid-template-columns:1fr;gap:3px}.booking-detail dd,.payment-summary dd{margin-bottom:10px}.private-toolbar .btn{white-space:normal}}

.settings-title { margin:40px 0 12px; }
body.must-change #admin-panel > :not(#password-card) { display:none; }
body.must-change #password-card summary { pointer-events:none; }

.pc-head { display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap; }
.pc-nav { display:flex;align-items:center;gap:10px; }
.pc-legend { display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;padding:0;margin:8px 0 12px;font-size:.8rem; }
.pc-dot { display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px; }
.pc-dot--special,.pc-day--special { --pc-accent:#b7791f; }
.pc-dot--special { background:#f6e3b4;border:1px solid #b7791f; }
.pc-dot--web { background:#cfe3c4; } .pc-dot--pending { background:#fbe2a8; } .pc-dot--booking { background:#c9d8ee; } .pc-dot--closed { background:#ddd7cc; }
.pc-weekdays,.pc-grid { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px; }
.pc-weekdays span { text-align:center;font-size:.75rem;opacity:.7;padding:2px 0; }
.pc-day { display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:64px;padding:5px 6px;border:1px solid var(--stone);border-radius:8px;background:var(--paper);font:inherit;text-align:left;cursor:pointer;overflow:hidden; }
.pc-day:disabled { opacity:.45;cursor:default; }
.pc-num { font-size:.75rem;opacity:.75; } .pc-price { font-weight:600;font-size:.88rem; }
.pc-tag { font-size:.66rem;line-height:1.2;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.pc-day--special { border-color:#b7791f;box-shadow:inset 0 0 0 1px #b7791f; } .pc-day--special .pc-price { color:#8a5a12; }
.pc-day--web { background:#e3efdc; } .pc-day--pending { background:#fdf0cf; } .pc-day--booking { background:#e2eaf6; } .pc-day--closed { background:#ebe6dc;text-decoration:line-through; }
.pc-day--selected { outline:3px solid var(--pine-deep);outline-offset:-3px; }
.pc-editor { margin-top:14px;padding:12px;border:1px solid var(--stone);border-radius:12px;background:#d9cdb826; }
.pc-editor input { background:var(--paper);padding:10px;border:1px solid var(--stone);border-radius:9px;width:100%;font:inherit; }
.pay-summary { display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:8px 0 16px; }
.pay-tile { border:1px solid var(--stone);border-radius:12px;padding:12px;background:var(--paper);display:flex;flex-direction:column;gap:2px; }
.pay-label { font-size:.78rem;opacity:.75; } .pay-tile strong { font-size:1.3rem; } .pay-tile small { opacity:.7; }
.payments-card h3 { margin:14px 0 6px;font-size:1rem; }
.pay-table { overflow-x:auto; } .pay-table table { width:100%;border-collapse:collapse;font-size:.85rem; }
.pay-table th,.pay-table td { text-align:left;padding:7px 8px;border-bottom:1px solid var(--stone);white-space:nowrap; }
.pay-table tr:not(:first-child) { cursor:pointer; } .pay-table tr:not(:first-child):hover { background:#d9cdb826; }
@media (max-width:560px){ .pc-day { min-height:54px;padding:4px; } .pc-tag { display:none; } .pc-price { font-size:.75rem; } }
/* Textos legales */
.legal-copy ul,.legal-copy ol { margin:0 0 16px 22px; }.legal-copy li { margin-bottom:8px; }
.legal-copy a { text-decoration:underline;text-underline-offset:3px; }
.legal-data { display:grid;grid-template-columns:max-content 1fr;gap:6px 22px;margin:0 0 18px; }.legal-data dt { font-weight:600; }.legal-data dd { margin:0; }
.legal-pending { color:var(--clay);font-style:italic; }
.legal-table { overflow-x:auto;margin:0 0 16px; }.legal-table table { border-collapse:collapse;width:100%;font-size:14px; }
.legal-table th,.legal-table td { text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--stone); }.legal-table th { font-weight:600; }
.legal-nav { display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:44px;padding-top:20px;border-top:1px solid var(--stone);font-size:14px; }.legal-nav a[aria-current] { font-weight:700;text-decoration:none; }
.legal-updated { font-size:13px;color:var(--muted);margin-top:10px; }
@media(max-width:767px){.legal-data{grid-template-columns:1fr;gap:2px}.legal-data dd{margin-bottom:10px}}
