#openForm .open-reservation-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
#openForm .open-reservation-layout.is-future{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#openForm .open-reservation-extras{min-width:0;padding:14px 16px;border:1px solid #324450;border-radius:12px;background:linear-gradient(135deg,#101a22,#090e14)}
#openForm .open-reservation-extras[hidden],#openReservationRecovery[hidden],#openReservationPreview[hidden],#openReservationFinish[hidden]{display:none!important}
#openForm .open-deposit-toggle{display:flex;align-items:center;gap:8px;color:#dde5ee;font-size:13px;font-weight:650;margin-bottom:10px}
#openForm .open-deposit-toggle input{width:16px;height:16px;accent-color:#71bfff}
#openForm .open-deposit-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.8fr);gap:10px}
#openForm .open-reservation-extras .field{margin-bottom:10px}
#openForm .open-reservation-extras small{display:block;color:#9dabb9;font-size:11px;line-height:1.4}
#openForm .open-repeat-field{margin-top:14px;padding-top:12px;border-top:1px solid #29343f}
#openReservationPreview,#openReservationRecovery{padding:12px 14px;margin:10px 0;border:1px solid #324c61;border-radius:10px;background:#0b131c;color:#c9d7e5;font-size:12px;line-height:1.45}
#openReservationPreview .open-reservation-dates{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
#openReservationPreview .open-reservation-date{padding:5px 8px;border:1px solid #2c485d;border-radius:7px;background:#0b1a27;color:#c8ddf1}
#openReservationPreview .open-reservation-date.conflict{border-color:#8c5454;color:#ffb5b5;background:#241519}
#openReservationPreview .open-reservation-date.saved{border-color:#447759;color:#b6e8c7;background:#102219}
#openReservationRecovery{display:flex;gap:12px;align-items:center;justify-content:space-between}
#openReservationRecovery button,#openReservationFinish{border:1px solid #406784;border-radius:8px;background:linear-gradient(135deg,#17334c,#0b111a);color:#d9edff;padding:8px 12px;cursor:pointer}
#openReservationFinish{margin-top:10px}
@media(max-width:760px){#openForm .open-reservation-layout.is-future{grid-template-columns:1fr}#openReservationRecovery{align-items:stretch;flex-direction:column}}

/* v395: composición de la ficha de alta; no altera la ficha de un turno existente. */
#detailModal:has(#openFormSection[style*="block"]){max-width:1400px;margin-inline:auto;padding:24px;border-radius:18px;background:linear-gradient(155deg,#10191e,#090f13 65%);box-shadow:0 18px 48px #0005,inset 0 1px #ffffff05}
#detailModal:has(#openFormSection[style*="block"]) .detail-header{align-items:center;padding-bottom:16px;margin-bottom:18px}
#detailModal:has(#openFormSection[style*="block"]) .detail-header h3{margin:0;font-size:28px;line-height:1.15}
#detailModal:has(#openFormSection[style*="block"]) .detail-header h3::before{content:'CONFIGURAR TURNO';display:block;margin-bottom:6px;font:700 10px/1.2 'Inter',sans-serif;letter-spacing:1.5px;color:#91b8ac}
#detailModal:has(#openFormSection[style*="block"]) #detailStatusBadge:empty{display:none}
#openForm .field{min-width:0;margin-bottom:14px}
#openForm .field label{font-size:12px;font-weight:600;color:#b3c4cc;line-height:1.35;margin-bottom:7px}
#openForm .field input,#openForm .field select{height:44px;min-width:0;padding:10px 12px;border-color:#2b3c47;background:#0a1117;border-radius:10px;font-size:13px;color:#e6edf2;color-scheme:dark;transition:border-color .15s,box-shadow .15s}
#openForm .field input::placeholder{color:#73838e;opacity:1}
#openForm .field input:focus,#openForm .field select:focus{border-color:#73c8a0;box-shadow:0 0 0 3px #73c8a014}
#openForm .field input:disabled,#openForm .field select:disabled{color:#7e8b97;background:#0c1217;border-color:#23303a;opacity:.65;cursor:not-allowed}
#openForm .open-config{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
#openForm #openAvailabilityHint{margin:0 0 16px!important;padding:10px 12px!important;border-color:#2b444b!important;background:#12202588!important;border-radius:10px!important}
#openForm #typeChips{gap:7px;padding-bottom:4px}
#openForm #typeChips .radio-chip{display:flex;align-items:center;justify-content:center;min-height:35px;padding:7px 14px;border-color:#2c3c47;background:#0c141b;color:#a8bbc6;font-size:12px;line-height:1.25}
#openForm #typeChips .radio-chip.selected{border-color:#5aaf82;background:linear-gradient(135deg,#1d3b2b,#11211b);color:#a7ebc1;box-shadow:inset 0 1px #ffffff08}
#openForm .open-reservation-layout{gap:14px;align-items:stretch;margin-top:3px}
#openForm .open-reservation-layout.is-future{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr)}
#openForm .open-reservation-extras{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding:0;border:0;border-radius:0;background:none}
#openForm .open-reservation-person,#openForm .open-reservation-deposit,#openForm .open-reservation-repeat{min-width:0;padding:18px;border:1px solid #2a3a44;border-radius:14px;background:linear-gradient(150deg,#121d25aa,#0a1116);box-shadow:inset 0 1px #ffffff04}
#openForm .open-reservation-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px;margin:0 0 16px;color:#e4edf1;font-size:14px;font-weight:650;line-height:1.4}
#openForm .open-reservation-heading span{padding:3px 7px;border:1px solid #34424c;border-radius:6px;color:#8da2af;font-size:9px;font-weight:500;white-space:nowrap}
#openForm #clientResults:empty{display:none}
#openForm #clientResults{overflow-wrap:anywhere}
#openForm .open-reservation-note,#openForm .open-reservation-extras small{display:block;margin:0;color:#8ea2ae;font-size:11px;line-height:1.55}
#openForm .open-deposit-toggle{min-height:21px;margin:0 0 14px;gap:8px;font-size:12px;line-height:1.35;cursor:pointer}
#openForm .open-deposit-toggle input{flex:0 0 16px;width:16px;height:16px;margin:0;accent-color:#78cda2;cursor:pointer}
#openForm .open-deposit-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
#openForm .open-reservation-extras .field{margin-bottom:12px}
#openForm .open-repeat-field{margin:0;padding:0;border:0}
#openForm .open-repeat-field small{margin-top:12px}
#openForm .open-reservation-repeat .open-reservation-note{margin-top:18px;padding-top:12px;border-top:1px solid #24333c;color:#a4b9c5}
#openReservationPreview{padding:13px 16px;margin:14px 0 0;border-color:#30474e;border-radius:12px;background:linear-gradient(120deg,#12212799,#0b1319);font-size:11px}
#openReservationPreview>strong{display:block;color:#c5ddd7;font-size:12px;font-weight:600}
#openReservationPreview>small{display:block;margin-top:9px;color:#8ea5b0;font-size:10px;line-height:1.5}
#openReservationPreview .open-reservation-dates{gap:6px;margin-top:9px}
#openReservationPreview .open-reservation-date{padding:5px 8px;background:#10201f;border-color:#304c46;color:#b9dacb;font-size:10px}
#openForm .modal-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid #24323b}
#openForm .modal-actions button{flex:0 1 auto;min-height:44px;width:auto;padding:10px 24px;border-radius:10px;font-size:13px;font-weight:600}
#openForm #openCancelBtn{min-width:125px;color:#aebfc9;background:#0c141a;border-color:#31434f}
#openForm #openSubmitBtn{min-width:210px;border:1px solid #7bcc9d;background:linear-gradient(135deg,#8ee0ae,#60bd89);color:#092016;box-shadow:0 5px 16px #56ba7f12}
#openForm #openSubmitBtn:hover:not(:disabled){background:linear-gradient(135deg,#a1ebbc,#76cc9a)}
#openForm #openSubmitBtn:disabled{background:#26383c;border-color:#354a50;color:#879ca4;box-shadow:none}
@media(max-width:1100px){#openForm .open-reservation-layout.is-future{grid-template-columns:minmax(0,1fr)}#openForm .open-deposit-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}}
@media(max-width:760px){#detailModal:has(#openFormSection[style*="block"]){padding:16px;border-radius:14px}#openForm .open-reservation-layout.is-future,#openForm .open-reservation-extras{grid-template-columns:minmax(0,1fr)}#openForm .open-reservation-person,#openForm .open-reservation-deposit,#openForm .open-reservation-repeat{padding:15px}#openForm .open-config{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}#openForm .open-config>.field:last-child{grid-column:1/-1}#openForm .modal-actions button{padding-inline:16px}#openForm #openSubmitBtn{min-width:0;flex:1}#openForm #openCancelBtn{min-width:100px}}
@media(prefers-reduced-motion:reduce){#openForm input,#openForm select{transition:none}}
