/* =====================================================================
   SIAM · El Dorado Motor Hotel — Tema visual v2
   Se carga DESPUÉS de assets/css/app.css. Solo presentación:
   no cambia ids, names, formularios ni comportamiento JS.
   21-10-2026 | F. Lares
   ===================================================================== */
/* Tipografías alojadas en el servidor (sin dependencia de Google Fonts) */
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/eldorado/manrope-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/eldorado/manrope-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/eldorado/manrope-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/eldorado/manrope-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/eldorado/manrope-latin-800-normal.woff2') format('woff2');}
@font-face{font-family:'Josefin Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/eldorado/josefin-sans-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Josefin Sans';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/eldorado/josefin-sans-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Josefin Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/eldorado/josefin-sans-latin-700-normal.woff2') format('woff2');}

:root{
  /* Marca (tomados del logo) */
  --ed-gold:        #D9CA75;
  --ed-gold-soft:   #EFE7BE;
  --ed-gold-pale:   #F8F4DF;
  --ed-olive:       #737037;
  --ed-olive-600:   #5E5B2C;
  --ed-olive-800:   #3F3C1C;
  --ed-olive-900:   #2B2913;

  /* Neutros cálidos */
  --ed-bg:          #F6F5EF;
  --ed-surface:     #FFFFFF;
  --ed-line:        #E5E1CF;
  --ed-line-soft:   #EFECE0;
  --ed-ink:         #2A2817;
  --ed-ink-2:       #5C5A48;
  --ed-ink-3:       #8B8873;

  /* Estados */
  --ed-ok:          #3B8460;
  --ed-ok-bg:       #E6F2EA;
  --ed-warn:        #B7801D;
  --ed-warn-bg:     #FBF0D9;
  --ed-bad:         #B5473A;
  --ed-bad-bg:      #F8E4E0;
  --ed-info:        #3F6F80;
  --ed-info-bg:     #E3EEF2;

  --ed-radius-sm: 6px;
  --ed-radius:    10px;
  --ed-radius-lg: 14px;
  --ed-shadow:    0 1px 2px rgba(43,41,19,.06), 0 2px 8px rgba(43,41,19,.05);
  --ed-shadow-lg: 0 10px 30px rgba(43,41,19,.14);
  --ed-font:      'Manrope', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --ed-display:   'Josefin Sans', 'Manrope', sans-serif;
  --ed-sidebar-w: 260px;

  /* Bootstrap vars */
  --primary: var(--ed-olive);
  --blue: var(--ed-olive);
  --success: var(--ed-ok);
  --danger: var(--ed-bad);
  --warning: var(--ed-warn);
  --info: var(--ed-info);
}

/* ---------- Base ---------- */
html{ -webkit-font-smoothing:antialiased; }
body, body.light, .light{
  font-family: var(--ed-font);
  background-color: var(--ed-bg) !important;
  color: var(--ed-ink);
  font-size: 14.5px;
  font-variant-numeric: tabular-nums;
}
.bg-light{ background-color: var(--ed-bg) !important; }
h1,h2,h3,h4,h5,h6{ color: var(--ed-ink); font-weight:700; letter-spacing:-.01em; }
a{ color: var(--ed-olive-600); }
a:hover{ color: var(--ed-olive-900); }
.text-muted{ color: var(--ed-ink-3) !important; }
.text-primary, .blue-text{ color: var(--ed-olive) !important; }
.text-success, .green-text{ color: var(--ed-ok) !important; }
.text-danger, .red-text{ color: var(--ed-bad) !important; }
.text-warning{ color: var(--ed-warn) !important; }
::selection{ background: var(--ed-gold-soft); color: var(--ed-ink); }
:focus-visible{ outline: 2px solid var(--ed-gold); outline-offset: 2px; }
hr{ border-top-color: var(--ed-line); }

/* scrollbar discreto */
*::-webkit-scrollbar{ width:10px; height:10px; }
*::-webkit-scrollbar-thumb{ background:#D8D3BC; border-radius:10px; border:2px solid var(--ed-bg); }
*::-webkit-scrollbar-track{ background:transparent; }

/* ---------- Loader ---------- */
.loader{ background-color: var(--ed-bg) !important; }
.loader .preloader-wrapper{ display:none !important; }
.loader .plane-container{
  width:46px; height:46px; margin:-23px 0 0 -23px;
  border-radius:50%;
  border:3px solid var(--ed-gold-soft);
  border-top-color: var(--ed-olive);
  animation: ed-spin .8s linear infinite;
}
@keyframes ed-spin{ to{ transform: rotate(360deg); } }

/* =====================================================================
   SIDEBAR
   ===================================================================== */
.main-sidebar{
  width: var(--ed-sidebar-w);
  background: var(--ed-olive-900) !important;
  color: #E9E6D2;
  border-right: 0;
  box-shadow: none !important;
}
.has-sidebar-left{ margin-left: var(--ed-sidebar-w); }
@media (max-width:1031px){ .has-sidebar-left{ margin-left:0; } }
.sidebar-collapse .has-sidebar-left{ margin-left:0; }
.main-sidebar .sidebar{ padding-bottom: 32px; }

.ed-brand{
  display:flex; align-items:center; gap:12px;
  padding: 22px 20px 18px;
  text-decoration:none !important;
}
.ed-brand img{
  width:58px; height:58px; object-fit:cover; border-radius:50%;
  box-shadow: 0 0 0 2px rgba(217,202,117,.55);
  background: var(--ed-gold);
}
.ed-brand-text{ line-height:1.1; }
.ed-brand-text strong{
  display:block; font-family: var(--ed-display); font-weight:700;
  font-size: 19px; letter-spacing:.06em; color: var(--ed-gold);
}
.ed-brand-text span{
  display:block; font-family: var(--ed-display); font-size: 11.5px;
  letter-spacing:.22em; color:#BDB78F; margin-top:4px;
}

.ed-user{
  margin: 4px 14px 14px; padding: 12px;
  display:flex; align-items:center; gap:10px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(217,202,117,.14);
  border-radius: var(--ed-radius);
}
.ed-avatar{
  flex:0 0 38px; width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--ed-gold); color: var(--ed-olive-900);
  font-weight:800; font-size:14px;
}
.ed-user-info{ min-width:0; flex:1; }
.ed-user-name{ color:#F4F1E1; font-weight:600; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ed-user-role{ color:#AFA97F; font-size:12px; display:flex; align-items:center; gap:6px; }
.ed-user-role::before{ content:""; width:7px; height:7px; border-radius:50%; background:#7BC48F; }
.ed-logout{
  flex:0 0 auto; width:34px; height:34px; border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  color:#CFC9A6 !important; text-decoration:none !important;
  transition: background .15s, color .15s;
}
.ed-logout:hover{ background: rgba(217,202,117,.16); color: var(--ed-gold) !important; }

.main-sidebar .sidebar-menu{ padding: 0 10px; margin:0; }
.main-sidebar .sidebar-menu > li.header{
  padding: 14px 12px 8px; background:transparent !important;
  color:#9C9772; font-size:12px; font-weight:600; letter-spacing:.02em;
}
.main-sidebar .sidebar-menu > li.header strong{ font-weight:600; }
.offcanvas .sidebar-menu > li,
.main-sidebar .sidebar-menu > li{ border-bottom:0 !important; margin-bottom:2px; }
.main-sidebar .sidebar-menu > li > a{
  display:flex; align-items:center; gap:2px;
  color:#E3DFC6 !important;
  padding: 10px 12px !important;
  border-radius: 8px;
  font-weight:500; font-size:14px;
  border-left: 0 !important;
  background: transparent !important;
  transition: background .15s, color .15s;
}
.main-sidebar .sidebar-menu > li > a > span{ flex:1; }
.main-sidebar .sidebar-menu > li > a:hover{ background: rgba(255,255,255,.06) !important; color:#fff !important; }
.main-sidebar .sidebar-menu > li.active > a,
.main-sidebar .sidebar-menu > li.menu-open > a{
  background: rgba(217,202,117,.12) !important; color: var(--ed-gold) !important;
}
.main-sidebar .sidebar-menu li > a > i:first-child,
.offcanvas .sidebar-menu li i{
  width:28px !important; padding-left:0 !important; text-align:left;
  color: #BDB78F !important; font-size:17px !important;
}
.main-sidebar .sidebar-menu > li.active > a > i:first-child{ color: var(--ed-gold) !important; }
.main-sidebar .sidebar-menu li > a > .pull-right{
  font-size:15px !important; color:#8E896A !important; width:auto !important;
  transition: transform .2s;
}
.main-sidebar .sidebar-menu > li.active > a > .pull-right{ transform: rotate(-90deg); }

.main-sidebar .sidebar-menu .treeview-menu{
  background: transparent !important;
  padding: 2px 0 6px 0 !important; margin: 0 0 0 25px !important;
  border-left: 1px solid rgba(217,202,117,.18);
}
.main-sidebar .sidebar-menu .treeview-menu > li{ border:0 !important; }
.main-sidebar .sidebar-menu .treeview-menu > li > a{
  display:flex; align-items:center; gap:6px;
  color:#C9C4A6 !important; font-size:13.5px;
  padding: 7px 12px 7px 14px !important; margin-left:-1px;
  border-left: 2px solid transparent;
  background: transparent !important;
  border-radius: 0 6px 6px 0;
}
.main-sidebar .sidebar-menu .treeview-menu > li > a > i{ display:none; }
.main-sidebar .sidebar-menu .treeview-menu > li > a:hover{ color:#fff !important; background: rgba(255,255,255,.05) !important; }
.main-sidebar .sidebar-menu .treeview-menu > li.ed-current > a{
  color: var(--ed-gold) !important; border-left-color: var(--ed-gold); font-weight:600;
  background: rgba(217,202,117,.08) !important;
}
.main-sidebar .badge{
  background: transparent !important; color: var(--ed-gold) !important;
  border: 1px solid rgba(217,202,117,.45); font-weight:600; font-size:10px;
  padding: 2px 6px; border-radius: 20px; margin-left:auto;
}

/* =====================================================================
   TOPBAR (encabezado.php)
   ===================================================================== */
.ed-topbar-wrap{ position: sticky; top:0; z-index: 900; }
.ed-topbar{
  display:flex; align-items:center; gap:16px;
  height: 62px; padding: 0 24px;
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(1.4) blur(8px);
  border-bottom: 1px solid var(--ed-line);
}
.ed-topbar .paper-nav-toggle{ display:flex !important; align-items:center; justify-content:center; width:38px; height:38px; border-radius:8px; }
.ed-topbar .paper-nav-toggle:hover{ background: var(--ed-gold-pale); }
.ed-topbar .paper-nav-toggle i,
.ed-topbar .paper-nav-toggle i::before,
.ed-topbar .paper-nav-toggle i::after{ background: var(--ed-olive-800) !important; }
.ed-topbar-title{ display:flex; flex-direction:column; line-height:1.15; min-width:0; }
.ed-topbar-title strong{ font-size:15px; color: var(--ed-ink); font-weight:700; }
.ed-topbar-title span{ font-size:12.5px; color: var(--ed-ink-3); }
.ed-topbar-right{ margin-left:auto; display:flex; align-items:center; gap:10px; }
.ed-chip{
  display:inline-flex; align-items:center; gap:8px;
  height: 36px; padding: 0 14px; border-radius: 999px;
  background: var(--ed-bg); border:1px solid var(--ed-line);
  color: var(--ed-ink-2); font-size:13px; font-weight:600; white-space:nowrap;
}
.ed-chip i{ color: var(--ed-olive); font-size:14px; }
.ed-chip-week{ background: var(--ed-gold-pale); border-color: #E8DDA6; color: var(--ed-olive-800); }
.ed-clock{ font-variant-numeric: tabular-nums; min-width: 66px; }
@media (max-width: 767px){
  .ed-topbar{ padding: 0 12px; }
  .ed-hide-sm{ display:none !important; }
}

/* =====================================================================
   ENCABEZADO DE CADA PANTALLA  (<header class="blue accent-3">)
   ===================================================================== */
.page header.blue,
.page header.accent-3,
header.blue.accent-3,
.page > header.relative{
  background-color: var(--ed-olive-800) !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 28 C 150 10 300 10 450 24 S 750 38 900 22 S 1100 12 1200 20' fill='none' stroke='%23D9CA75' stroke-width='1.6' opacity='.75'/%3E%3Cpath d='M0 34 C 180 20 330 22 480 30 S 780 40 930 30 S 1110 22 1200 28' fill='none' stroke='%23D9CA75' stroke-width='1' opacity='.35'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: bottom left !important;
  background-size: 100% 34px !important;
  padding-bottom: 14px;
  border-radius: 0;
}
.page header .container-fluid{ padding-left: 28px; padding-right: 28px; }
.page header h1, .page header h2, .page header h3,
.page header h4, .page header h5{
  color: #FBF8EA !important;
  font-family: var(--ed-display);
  font-weight: 600; letter-spacing: .03em;
  font-size: 20px; margin: 0; line-height:1.3;
  display:flex; align-items:center; gap:10px;
}
.page header h4 > i, .page header h1 > i{ color: var(--ed-gold); font-size:18px; }
.page header .p-t-b-10{ padding-top: 22px !important; padding-bottom: 12px !important; }

/* tabs dentro del encabezado */
.nav-material{ border:0; gap:4px; flex-wrap:wrap; }
.page header .row.justify-content-between{ margin-left:-4px; }
.nav-material > li > .nav-link,
.nav-material-white > li > .nav-link{
  color: #D8D2AE !important; font-weight:600; font-size:13px;
  padding: 8px 14px !important; border-radius: 8px 8px 0 0;
  border-bottom: 2px solid transparent !important;
  letter-spacing:.01em;
}
.nav-material > li > .nav-link i{ margin-right:6px; }
.nav-material > li > .nav-link:hover{ color:#fff !important; background: rgba(255,255,255,.06); }
.nav-material > li > .nav-link.active,
.nav-material-white > li > .nav-link.active{
  color: var(--ed-gold) !important; background: transparent !important;
  border-bottom: 2px solid var(--ed-gold) !important;
}
/* tabs fuera de un header oscuro */
.card .nav-material > li > .nav-link,
.container-fluid > .nav-material > li > .nav-link{ color: var(--ed-ink-2) !important; }
.card .nav-material > li > .nav-link.active{ color: var(--ed-olive-800) !important; border-bottom-color: var(--ed-olive) !important; }

/* Contenido */
.page > .container-fluid,
.page .animatedParent{ padding-left: 24px; padding-right: 24px; }
@media (max-width:767px){
  .page > .container-fluid, .page .animatedParent{ padding-left: 12px; padding-right: 12px; }
}

/* Paleta del template mapeada a la marca */
.blue.accent-3, .blue, .light-blue{ background-color: var(--ed-olive-800) !important; }
.blue-grey{ background-color: var(--ed-ink-2) !important; }
.green, .green.accent-3{ background-color: var(--ed-ok) !important; }
.red, .red.accent-3{ background-color: var(--ed-bad) !important; }
.white{ background-color: var(--ed-surface) !important; }
.white-text{ color:#fff !important; }

/* =====================================================================
   CARDS
   ===================================================================== */
.card{
  background: var(--ed-surface);
  border: 1px solid var(--ed-line) !important;
  border-radius: var(--ed-radius-lg) !important;
  box-shadow: var(--ed-shadow) !important;
}
.card.no-b{ border: 1px solid var(--ed-line) !important; }
.card.no-r{ border-radius: var(--ed-radius-lg) !important; }
.card-header{
  background: transparent !important;
  border-bottom: 1px solid var(--ed-line-soft) !important;
  font-weight: 700; color: var(--ed-ink);
  padding: 14px 20px;
}
.card-header:first-child{ border-radius: var(--ed-radius-lg) var(--ed-radius-lg) 0 0 !important; }
.card-body{ padding: 20px; }
.card-title{ font-weight:700; color: var(--ed-ink); font-size: 16px; }
.card-footer{ background: var(--ed-bg); border-top:1px solid var(--ed-line-soft); }
.card.bg-success, .card.bg-danger, .card.bg-warning, .card.bg-info, .card.bg-primary{ border:0 !important; }

/* =====================================================================
   BOTONES
   ===================================================================== */
.btn{
  font-family: var(--ed-font);
  font-weight: 600; font-size: 14px;
  border-radius: 9px; padding: 8px 16px;
  box-shadow: none !important;
  transition: background-color .15s, border-color .15s, color .15s, transform .08s;
  letter-spacing:.005em;
}
.btn:active{ transform: translateY(1px); }
.btn-lg{ font-size: 15px; padding: 11px 20px; border-radius: 10px; }
.btn-sm{ font-size: 12.5px; padding: 5px 11px; border-radius: 7px; }
.btn-primary, .btn-primary.disabled, .btn-primary:disabled{
  background-color: var(--ed-olive) !important; border-color: var(--ed-olive) !important; color:#fff !important;
}
.btn-primary:hover, .btn-primary:focus{ background-color: var(--ed-olive-600) !important; border-color: var(--ed-olive-600) !important; }
.btn-success{ background-color: var(--ed-ok) !important; border-color: var(--ed-ok) !important; color:#fff !important; }
.btn-success:hover{ background-color: #2F6E4F !important; border-color:#2F6E4F !important; }
.btn-danger{ background-color: var(--ed-bad) !important; border-color: var(--ed-bad) !important; color:#fff !important; }
.btn-danger:hover{ background-color: #973A2F !important; border-color:#973A2F !important; }
.btn-warning{ background-color: var(--ed-gold) !important; border-color: var(--ed-gold) !important; color: var(--ed-olive-900) !important; }
.btn-warning:hover{ background-color: #CDBC5E !important; border-color:#CDBC5E !important; }
.btn-info{ background-color: var(--ed-info) !important; border-color: var(--ed-info) !important; color:#fff !important; }
.btn-default, .btn-secondary, .btn-light{
  background: var(--ed-surface) !important; border: 1px solid var(--ed-line) !important; color: var(--ed-ink) !important;
}
.btn-default:hover, .btn-secondary:hover, .btn-light:hover{ background: var(--ed-gold-pale) !important; border-color: #E2D7A0 !important; }
.btn-outline-primary{ color: var(--ed-olive) !important; border-color: var(--ed-olive) !important; }
.btn-outline-primary:hover{ background: var(--ed-olive) !important; color:#fff !important; }
.btn-excel{ background:#1F7A4C !important; border-color:#1F7A4C !important; color:#fff !important; }
.btn-pdf{ background:#A8392F !important; border-color:#A8392F !important; color:#fff !important; }

/* Botón flotante (+) */
.btn-fab{ background: var(--ed-olive) !important; box-shadow: var(--ed-shadow-lg) !important; }
.btn-fab:hover{ background: var(--ed-olive-600) !important; opacity:1; }
.btn-fab.btn-primary{ background: var(--ed-olive) !important; }

/* =====================================================================
   FORMULARIOS
   ===================================================================== */
label{ font-weight: 600; color: var(--ed-ink-2); font-size: 13px; margin-bottom: 6px; }
.form-group{ margin-bottom: 1.1rem; }
.form-control, .custom-select, select.form-control{
  font-family: var(--ed-font);
  border: 1px solid #DAD5BF !important;
  border-radius: 9px !important;
  background-color: #FFFEFA !important;
  color: var(--ed-ink);
  font-size: 14px;
  min-height: 40px;
  padding: 8px 12px;
  box-shadow: none !important;
  transition: border-color .15s, box-shadow .15s;
}
textarea.form-control{ min-height: 80px; }
.form-control-lg{ min-height: 48px; font-size: 16px; }
.form-control:focus, .custom-select:focus{
  border-color: var(--ed-olive) !important;
  box-shadow: 0 0 0 3px rgba(217,202,117,.35) !important;
  background-color:#fff !important;
}
.form-control[readonly], .form-control:disabled{ background-color: var(--ed-bg) !important; color: var(--ed-ink-2); }
.form-control::placeholder{ color: #ABA78F; }
.input-group-text{ background: var(--ed-gold-pale); border-color:#DAD5BF; color: var(--ed-olive-800); font-weight:600; border-radius: 9px; }
.custom-control-input:checked ~ .custom-control-label::before{ background-color: var(--ed-olive) !important; border-color: var(--ed-olive) !important; }
.form-material .form-control{ border-width:0 0 1px 0 !important; border-radius:0 !important; background: transparent !important; }

/* Select2 */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple{
  border: 1px solid #DAD5BF !important; border-radius: 9px !important; min-height: 40px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{ line-height: 38px; }
.select2-container--default .select2-selection--single .select2-selection__arrow{ height: 38px; }
.select2-container--default .select2-results__option--highlighted[aria-selected]{ background: var(--ed-olive) !important; }
.select2-dropdown{ border-color: #DAD5BF !important; border-radius: 9px; overflow:hidden; box-shadow: var(--ed-shadow-lg); }

/* =====================================================================
   TABLAS + DATATABLES
   ===================================================================== */
.table{ color: var(--ed-ink); margin-bottom: 0; }
.table thead th, .table > thead > tr > th{
  background: var(--ed-gold-pale) !important;
  color: var(--ed-olive-800) !important;
  font-weight: 700; font-size: 12.5px; letter-spacing:.02em;
  border-top: 0 !important; border-bottom: 1px solid #E8DFB3 !important;
  padding: 11px 14px; white-space: nowrap; vertical-align: middle;
}
.table td, .table th{ border-top: 1px solid var(--ed-line-soft); padding: 11px 14px; vertical-align: middle; }
.table-striped tbody tr:nth-of-type(odd){ background-color: #FBFAF5; }
.table-hover tbody tr:hover{ background-color: #F7F2DA !important; }
.table-bordered, .table-bordered td, .table-bordered th{ border-color: var(--ed-line) !important; }
.table tfoot td, .table tfoot th{ background: var(--ed-bg); font-weight:700; border-top: 2px solid var(--ed-line); }
.table-responsive{ border-radius: var(--ed-radius); }
.card > .table-responsive, .card-body > .table-responsive{ border:1px solid var(--ed-line-soft); }

div.dataTables_wrapper{ padding-top: 4px; }
div.dataTables_wrapper div.dataTables_length,
div.dataTables_wrapper div.dataTables_filter,
div.dataTables_wrapper div.dataTables_info{ color: var(--ed-ink-3); font-size: 13px; padding: 6px 0 12px; }
div.dataTables_wrapper div.dataTables_filter input{
  border: 1px solid #DAD5BF; border-radius: 9px; height: 38px; padding: 6px 12px 6px 34px; margin-left: 8px;
  background: #FFFEFA url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%238B8873' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 11px center;
  min-width: 230px;
}
div.dataTables_wrapper div.dataTables_filter input:focus{ outline:none; border-color: var(--ed-olive); box-shadow: 0 0 0 3px rgba(217,202,117,.35); }
div.dataTables_wrapper div.dataTables_length select{ border: 1px solid #DAD5BF; border-radius: 8px; height: 36px; padding: 4px 8px; }
.page-link{ color: var(--ed-olive-800); border-color: var(--ed-line); border-radius: 8px !important; margin: 0 2px; min-width:36px; text-align:center; font-weight:600; }
.page-link:hover{ background: var(--ed-gold-pale); color: var(--ed-olive-900); border-color: var(--ed-line); }
.page-item.active .page-link{ background: var(--ed-olive) !important; border-color: var(--ed-olive) !important; color:#fff; }
.page-item.disabled .page-link{ color:#C2BEA8; }
table.dataTable thead .sorting::after, table.dataTable thead .sorting_asc::after, table.dataTable thead .sorting_desc::after{ color: var(--ed-olive); }

/* =====================================================================
   BADGES, ALERTAS, MODALES
   ===================================================================== */
.badge{ font-weight: 700; border-radius: 999px; padding: 4px 9px; font-size: 11.5px; letter-spacing:.01em; }
.badge-primary, .bg-primary{ background-color: var(--ed-olive) !important; color:#fff; }
.badge-success{ background: var(--ed-ok-bg) !important; color: var(--ed-ok) !important; }
.badge-warning{ background: var(--ed-warn-bg) !important; color: var(--ed-warn) !important; }
.badge-danger{ background: var(--ed-bad-bg) !important; color: var(--ed-bad) !important; }
.badge-info{ background: var(--ed-info-bg) !important; color: var(--ed-info) !important; }
.bg-success{ background-color: var(--ed-ok) !important; }
.bg-danger{ background-color: var(--ed-bad) !important; }
.bg-warning{ background-color: var(--ed-gold) !important; }
.bg-info{ background-color: var(--ed-info) !important; }

.alert{ border: 1px solid transparent; border-left-width: 4px; border-radius: var(--ed-radius); padding: 14px 18px; font-size: 14px; }
.alert-info{ background: var(--ed-info-bg); border-color: #C9DDE4; border-left-color: var(--ed-info); color: #29505E; }
.alert-warning{ background: var(--ed-warn-bg); border-color: #F0DDB1; border-left-color: var(--ed-warn); color: #6F4E12; }
.alert-danger{ background: var(--ed-bad-bg); border-color: #EFC9C2; border-left-color: var(--ed-bad); color: #7A2D24; }
.alert-success{ background: var(--ed-ok-bg); border-color: #C6E0CF; border-left-color: var(--ed-ok); color: #275A41; }

.modal-content{ border:0; border-radius: var(--ed-radius-lg); box-shadow: 0 24px 60px rgba(43,41,19,.25); overflow:hidden; }
.modal-header{ background: var(--ed-surface); border-bottom: 1px solid var(--ed-line-soft); padding: 16px 22px; }
.modal-title{ font-weight: 700; color: var(--ed-ink); font-size: 17px; }
.modal-body{ padding: 22px; }
.modal-footer{ background: var(--ed-bg); border-top: 1px solid var(--ed-line-soft); padding: 12px 22px; }
.modal-backdrop.show{ opacity: .45; background: var(--ed-olive-900); }
.close{ text-shadow:none; opacity:.5; }

/* SweetAlert v1 (unpkg.com/sweetalert) */
.swal-overlay{ background-color: rgba(43,41,19,.45); }
.swal-modal{ border-radius: 16px; font-family: var(--ed-font); padding-top: 6px; }
.swal-title{ color: var(--ed-ink); font-weight: 800; font-size: 22px; }
.swal-text{ color: var(--ed-ink-2); text-align:center; font-size: 15px; line-height:1.5; }
.swal-footer{ text-align: center; padding: 14px 16px 20px; }
.swal-button{ background-color: var(--ed-olive) !important; border-radius: 9px; font-weight: 700; padding: 10px 22px; font-family: var(--ed-font); }
.swal-button:not([disabled]):hover{ background-color: var(--ed-olive-600) !important; }
.swal-button:focus{ box-shadow: 0 0 0 3px rgba(217,202,117,.5); }
.swal-button--cancel{ background: var(--ed-surface) !important; color: var(--ed-ink) !important; border: 1px solid var(--ed-line); }
.swal-button--cancel:not([disabled]):hover{ background: var(--ed-gold-pale) !important; }
.swal-button--danger{ background-color: var(--ed-bad) !important; }
.swal-icon--success__ring{ border-color: rgba(59,132,96,.25); }
.swal-icon--success__line{ background-color: var(--ed-ok); }

/* Dropify */
.dropify-wrapper{ border: 2px dashed #DAD5BF; border-radius: var(--ed-radius); }

/* Panel derecho del template (ya no se usa) */
.control-sidebar, .control-sidebar-bg{ display:none !important; }

/* =====================================================================
   PIEZAS NUEVAS REUTILIZABLES
   ===================================================================== */
.ed-section-title{ font-family: var(--ed-display); font-weight:600; letter-spacing:.03em; font-size:18px; color: var(--ed-olive-800); }

/* =====================================================================
   IMPRESIÓN
   ===================================================================== */
@media print{
  .main-sidebar, .ed-topbar, .control-sidebar, .loader, .btn-fab{ display:none !important; }
  .has-sidebar-left{ margin-left:0 !important; }
  body{ background:#fff !important; }
  .card{ box-shadow:none !important; }
}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation-duration: .01ms !important; }
}

/* ---------- Ajustes sobre la plantilla ---------- */
.height-full{ background: var(--ed-bg) !important; }
.main-sidebar .sidebar-menu li::after,
.main-sidebar .sidebar-menu li::before{ display:none !important; }
.ed-topbar .paper-nav-toggle{ margin:0 !important; flex:0 0 38px; }
.card.text-white .card-header, .card.text-white .card-title,
.card.bg-success .card-body, .card.bg-danger .card-body, .card.bg-warning .card-body{ color:#fff !important; }
/* Encabezados de página con o sin fila p-t-b-10 */
.page > header{ padding-top: 20px; padding-bottom: 30px !important; }
.page > header .p-t-b-10{ padding-top: 2px !important; padding-bottom: 10px !important; }
.page > header .row.justify-content-between{ margin-top: 2px; }
.page > header h4 .s-14{ font-family: var(--ed-font); font-size: 14px; letter-spacing:0; color:#CFC9A6; }
.page > header.nav-sticky{ position: relative; }

/* =====================================================================
   TABLERO DE HABITACIONES (tarjetas tipo llavero) — Fase 2, 21-10-2026
   ===================================================================== */
.ed-rack{ padding-top: 6px; }
.ed-rack-toolbar{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin: 4px 0 18px; }
.ed-rack-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-right:auto; }
.ed-chip-f{
  display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 14px;
  border-radius:999px; border:1px solid #E0DBC6; background:#FFFFFF; color: var(--ed-ink);
  font: inherit; font-size:13.5px; font-weight:600; cursor:pointer;
  transition: background-color .15s, color .15s, border-color .15s;
}
.ed-chip-f:hover{ border-color:#BDB78F; }
.ed-chip-f .ed-dot{ width:9px; height:9px; border-radius:50%; background:#8B8873; }
.ed-chip-f b{ font-weight:800; font-variant-numeric: tabular-nums; }
.ed-chip-f[aria-pressed="true"]{ background: var(--ed-olive-900); border-color: var(--ed-olive-900); color:#F4F1E1; }
.ed-chip-f[aria-pressed="true"] .ed-dot.ed-dot--todas{ background: var(--ed-gold); }
.ed-dot--disponible{ background:#3B8460 !important; }
.ed-dot--ocupada{ background:#A9473A !important; }
.ed-dot--porvencer{ background:#B7801D !important; }
.ed-dot--vencida{ background:#7E2E24 !important; }
.ed-dot--limpieza{ background:#B9A645 !important; }
.ed-dot--mantenimiento{ background:#7A7B73 !important; }
.ed-rack-search{ position:relative; display:flex; align-items:center; margin:0; }
.ed-rack-search svg{ position:absolute; left:12px; pointer-events:none; }
.ed-rack-search input{
  height:42px; width:230px; max-width:100%; box-sizing:border-box; padding:0 14px 0 36px;
  border-radius:10px; border:1px solid #DAD5BF; background:#FFFEFA; font: inherit; font-size:14px; color: var(--ed-ink);
}
.ed-rack-search input:focus{ outline:none; border-color: var(--ed-olive); box-shadow: 0 0 0 3px rgba(217,202,117,.35); }
.ed-sr{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.ed-rack-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(182px, 1fr)); gap:14px; }
.ed-rack-empty{
  grid-column: 1 / -1; padding: 44px 20px; text-align:center; border:1px dashed #DAD5BF; border-radius:16px;
  color: var(--ed-ink-2); font-size:14.5px; background: rgba(255,255,255,.5);
}

.ed-room{
  position:relative; display:flex; flex-direction:column; gap:6px;
  min-height:188px; box-sizing:border-box; padding:15px 16px 14px;
  border-radius:16px; border:1px solid var(--ed-line); background:#FFFFFF;
  color: var(--ed-ink) !important; text-decoration:none !important; cursor:pointer;
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.ed-room:hover{ box-shadow: 0 10px 26px rgba(43,41,19,.14); transform: translateY(-2px); }
.ed-room:focus-visible{ outline:2px solid var(--ed-gold); outline-offset:2px; }
.ed-room[hidden]{ display:none !important; }
.ed-room-hole{
  position:absolute; top:15px; right:15px; width:10px; height:10px; border-radius:50%;
  border:2px solid #9CC3AB; background: var(--ed-bg);
}
.ed-room-state{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; padding-right:22px; }
.ed-room-state i{ width:8px; height:8px; border-radius:50%; background: currentColor; display:inline-block; }
.ed-room-state svg{ flex:0 0 auto; }
.ed-room-num{ font-family: var(--ed-display); font-weight:700; font-size:42px; line-height:1; margin-top:6px; letter-spacing:.01em; }
.ed-room-sub{ font-size:13.5px; color: var(--ed-ink-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ed-room-strong{ font-size:13.5px; font-weight:700; }
.ed-room-out{ font-size:15px; font-weight:800; font-variant-numeric: tabular-nums; }
.ed-room-bar{ display:block; height:6px; border-radius:6px; overflow:hidden; margin-top:2px; background: rgba(169,71,58,.16); }
.ed-room-bar > span{ display:block; height:100%; border-radius:6px; background:#A9473A; transition: width .4s ease; }
.ed-room-left{ font-size:12.5px; font-weight:600; font-variant-numeric: tabular-nums; }
.ed-room-foot{ margin-top:auto; display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.ed-room-price{ margin-left:auto; font-size:13px; font-weight:800; font-variant-numeric: tabular-nums; }
.ed-room-cta{
  margin-top:auto; padding-top:9px; border-top:1px dashed currentColor; font-size:13px; font-weight:700;
}
.ed-room-btn{
  margin-top:auto; display:flex; align-items:center; justify-content:center; height:38px; border-radius:9px;
  font-size:13px; font-weight:700; border:1px solid; background: rgba(255,255,255,.75);
}
.ed-tag{ display:inline-flex; align-items:center; height:24px; padding:0 9px; border-radius:999px; font-size:11.5px; font-weight:700; }
.ed-tag--ok{ background:#E3F0E7; color:#2F6E4F; }
.ed-tag--due{ background:#FFFFFF; color:#A9473A; border:1px solid #E6C3BA; }
.ed-tag--info{ background:#E3EEF2; color:#2F5A69; }

/* Disponible */
.ed-room--disponible{ background:#F1F7F3; border-color:#CFE3D6; }
.ed-room--disponible .ed-room-state{ color:#2F6E4F; }
.ed-room--disponible .ed-room-sub{ color:#4E5D52; }
.ed-room--disponible .ed-room-cta{ color:#2F6E4F; border-top-color:#BFD9C8; }

/* Ocupada */
.ed-room--ocupada{ background:#FBEFEA; border-color:#EBCFC4; }
.ed-room--ocupada .ed-room-hole{ border-color:#A9473A; }
.ed-room--ocupada .ed-room-state, .ed-room--ocupada .ed-room-left{ color:#A9473A; }
.ed-room--ocupada .ed-room-sub{ color:#6E4A42; }

/* Por vencer */
.ed-room--porvencer{ background:#FCF3DF; border-color:#EDD9A6; }
.ed-room--porvencer .ed-room-hole{ border-color:#94650F; animation: ed-pulse 1.8s ease-out infinite; }
.ed-room--porvencer .ed-room-state, .ed-room--porvencer .ed-room-left{ color:#94650F; }
.ed-room--porvencer .ed-room-sub{ color:#6F4E12; }
.ed-room--porvencer .ed-room-bar{ background: rgba(148,101,15,.18); }
.ed-room--porvencer .ed-room-bar > span{ background:#94650F; }
@keyframes ed-pulse{ 0%{ box-shadow:0 0 0 0 rgba(183,128,29,.55);} 70%{ box-shadow:0 0 0 9px rgba(183,128,29,0);} 100%{ box-shadow:0 0 0 0 rgba(183,128,29,0);} }

/* Vencida */
.ed-room--vencida{ background:#A9473A; border-color:#A9473A; color:#FFFFFF !important; box-shadow: 0 8px 22px rgba(169,71,58,.28); }
.ed-room--vencida .ed-room-hole{ border-color:#FFFFFF; background:#A9473A; }
.ed-room--vencida .ed-room-state, .ed-room--vencida .ed-room-left, .ed-room--vencida .ed-room-sub{ color:#FBE3DD; }
.ed-room--vencida .ed-room-state{ color:#FFFFFF; }
.ed-room--vencida .ed-room-bar{ background: rgba(255,255,255,.28); }
.ed-room--vencida .ed-room-bar > span{ background:#FFFFFF; }
.ed-room--vencida .ed-tag{ background: rgba(255,255,255,.18) !important; color:#FFFFFF !important; border:0 !important; }

/* Limpieza */
.ed-room--limpieza{ background:#F8F4DF; border-color:#E6DBA4; }
.ed-room--limpieza .ed-room-hole{ border-color:#CDBC5E; }
.ed-room--limpieza .ed-room-state{ color:#6E6326; }
.ed-room--limpieza .ed-room-btn{ border-color:#D8CB86; color:#4A4422; }
.ed-room--limpieza:hover .ed-room-btn{ background:#FFFFFF; }

/* Mantenimiento */
.ed-room--mantenimiento{ background: repeating-linear-gradient(135deg, #EFEEE8 0 10px, #E8E7E0 10px 20px); border-color:#D3D1C6; }
.ed-room--mantenimiento .ed-room-hole{ border-color:#9A998F; }
.ed-room--mantenimiento .ed-room-state{ color:#4A4B45; }
.ed-room--mantenimiento .ed-room-num{ color:#3E3F3A; }
.ed-room--mantenimiento .ed-room-btn{ border-color:#BEBCB1; color:#3E3F3A; }

@media (prefers-reduced-motion: reduce){
  .ed-room:hover{ transform:none; }
  .ed-room--porvencer .ed-room-hole{ animation:none; }
}
@media (max-width: 575px){
  .ed-rack-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px; }
  .ed-room{ min-height:170px; padding:13px; }
  .ed-room-num{ font-size:34px; }
  .ed-rack-search input{ width:100%; }
  .ed-rack-search{ flex:1 1 100%; }
}

/* =====================================================================
   REGISTRO DE ENTRADA (checkin_habitacion.php) — Fase 2
   ===================================================================== */
.ed-ci{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:22px; padding: 22px 0 40px; }
.ed-ci-main{ flex: 999 1 520px; min-width:0; display:flex; flex-direction:column; gap:18px; }
.ed-ci-aside{ flex: 1 1 320px; min-width:0; display:flex; flex-direction:column; gap:12px; position: sticky; top: 80px; }
@media (max-width: 991px){ .ed-ci-aside{ position: static; } }
.ed-ci-step{ background:#FFFFFF; border:1px solid var(--ed-line); border-radius:16px; padding:22px; display:flex; flex-direction:column; gap:16px; }
.ed-ci-head{ display:flex; align-items:center; gap:12px; }
.ed-ci-head h2{ margin:0; font-size:17px; font-weight:800; color: var(--ed-ink); }
.ed-ci-num{ width:28px; height:28px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; background:#F1EFE6; color: var(--ed-ink-2); transition: background-color .2s, color .2s; }
.ed-ci-num.is-ok{ background: var(--ed-olive); color:#FFFFFF; }
.ed-ci-sub{ margin:0 0 12px; font-size:14.5px; font-weight:800; color: var(--ed-ink); }
.ed-ci-tiles{ display:grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap:10px; }
.ed-ci-tiles--3{ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.ed-ci-tile{
  display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:8px;
  min-height:88px; padding:14px 16px; border-radius:12px; border:2px solid var(--ed-line); background:#FFFFFF;
  font: inherit; text-align:left; color: var(--ed-ink); cursor:pointer;
  transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.ed-ci-tile span{ font-size:14.5px; font-weight:700; }
.ed-ci-tile:hover{ border-color:#BDB78F; }
.ed-ci-tile:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(217,202,117,.55); }
.ed-ci-tile[aria-checked="true"]{ background: var(--ed-gold-pale); border-color: var(--ed-olive); color: var(--ed-olive-900); box-shadow: 0 0 0 3px rgba(217,202,117,.35); }
.ed-ci-tile svg{ color: var(--ed-olive); }
.ed-ci-tile--tarifa{ min-height:96px; }
.ed-ci-tar-h{ font-size:13px !important; font-weight:600 !important; color: var(--ed-ink-2); }
.ed-ci-tar-p{ font-size:26px; font-weight:800; letter-spacing:-.01em; font-variant-numeric: tabular-nums; }
.ed-ci-field{ display:flex; flex-direction:column; gap:6px; }
.ed-ci-field label{ margin:0; }
.ed-ci-field .form-control{ min-height:48px; font-size:15px; }
.ed-ci-error{ margin:0; color: var(--ed-bad); font-weight:700; font-size:13.5px; }
.ed-ci-nota{ margin:0; padding:12px 14px; border-radius:12px; background: var(--ed-warn-bg); color:#6F4E12; font-size:13.5px; font-weight:600; }
.ed-ci-nota[hidden]{ display:none; }
.ed-ci-pagorow{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.ed-seg{ display:inline-flex; padding:4px; gap:4px; border-radius:12px; background:#F1EFE6; }
.ed-seg button{ height:42px; padding:0 18px; border:0; border-radius:9px; background:transparent; font: inherit; font-size:14px; font-weight:700; color: var(--ed-ink-2); cursor:pointer; }
.ed-seg button[aria-checked="true"]{ background:#FFFFFF; color: var(--ed-olive-900); box-shadow:0 1px 3px rgba(43,41,19,.16); }
.ed-seg button:focus-visible{ outline:2px solid var(--ed-gold); outline-offset:1px; }
.ed-switch{ display:inline-flex; align-items:center; gap:10px; height:44px; padding:0 6px; border:0; background:transparent; font: inherit; font-size:14px; font-weight:700; color: var(--ed-ink); cursor:pointer; }
.ed-switch-track{ position:relative; width:42px; height:24px; border-radius:999px; background:#D6D2BF; transition: background-color .15s; }
.ed-switch-knob{ position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#FFFFFF; box-shadow:0 1px 2px rgba(0,0,0,.2); transition: left .15s; }
.ed-switch[aria-checked="true"] .ed-switch-track{ background: var(--ed-olive); }
.ed-switch[aria-checked="true"] .ed-switch-knob{ left:21px; }
.ed-switch:focus-visible{ outline:2px solid var(--ed-gold); outline-offset:2px; border-radius:8px; }

/* Bloque de métodos de pago existente, con colores de marca */
#seccion_pago .seccion-pago-box{ background:#FBFAF5 !important; border:1px solid var(--ed-line-soft) !important; border-radius:14px !important; padding:18px !important; margin-top:0 !important; }
#seccion_pago .pago-grid{ grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)) !important; gap:8px !important; }
#seccion_pago .pago-label{ border:2px solid var(--ed-line) !important; border-radius:12px !important; color: var(--ed-ink) !important; font-size:13px !important; font-weight:700 !important; padding:14px 8px !important; }
#seccion_pago .pago-label i{ color: var(--ed-olive) !important; }
#seccion_pago .pago-option input[type="radio"]:checked + .pago-label{ border-color: var(--ed-olive) !important; background: var(--ed-gold-pale) !important; color: var(--ed-olive-900) !important; box-shadow: 0 0 0 3px rgba(217,202,117,.35) !important; }
#seccion_pago .pago-option input[type="radio"]:focus-visible + .pago-label{ box-shadow: 0 0 0 3px rgba(217,202,117,.6) !important; }
#seccion_pago .cambio-display{ background: var(--ed-ok-bg) !important; border-color:#B9D9C4 !important; color:#2F6E4F !important; font-size:18px !important; }
#seccion_pago .cambio-display.negativo{ background: var(--ed-bad-bg) !important; border-color:#E6C3BA !important; color: var(--ed-bad) !important; font-size:14px !important; }
#seccion_pago .mixto-row{ background:#FFFFFF !important; border-color: var(--ed-line-soft) !important; }
.ed-ci-rapidos{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:12px; font-size:13px; font-weight:600; color: var(--ed-ink-2); }
.ed-ci-rapido{ height:38px; padding:0 14px; border-radius:9px; border:1px solid #DAD5BF; background:#FFFFFF; font: inherit; font-size:13.5px; font-weight:700; color: var(--ed-olive-800); cursor:pointer; }
.ed-ci-rapido:hover{ background: var(--ed-gold-pale); }

/* Resumen tipo llave */
.ed-key{ position:relative; overflow:hidden; border-radius:20px; background: var(--ed-olive-900); color:#F4F1E1; padding:22px 22px 20px; display:flex; flex-direction:column; gap:14px; box-shadow: 0 18px 40px rgba(43,41,19,.22); }
.ed-key-hole{ position:absolute; top:20px; right:20px; width:16px; height:16px; border-radius:50%; border:3px solid var(--ed-gold); background: var(--ed-bg); }
.ed-key-lbl{ font-size:12.5px; font-weight:600; color:#BDB78F; }
.ed-key-num{ font-family: var(--ed-display); font-weight:700; font-size:64px; line-height:1; color: var(--ed-gold); margin-top:-6px; }
.ed-key-tipo{ font-size:15px; font-weight:700; color:#E9E4C9; margin-top:-6px; }
.ed-key-desc{ font-size:13px; color:#CFC9A6; margin-top:-8px; }
.ed-key-times{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px; padding-top:14px; border-top:1px solid rgba(217,202,117,.22); }
.ed-key-times span{ display:block; font-size:12px; color:#AFA97F; }
.ed-key-times strong{ display:block; font-size:18px; font-weight:800; font-variant-numeric: tabular-nums; color:#F4F1E1; }
.ed-key-list{ margin:0; display:flex; flex-direction:column; gap:8px; padding-top:14px; border-top:1px solid rgba(217,202,117,.22); font-size:14px; }
.ed-key-list > div{ display:flex; justify-content:space-between; gap:12px; }
.ed-key-list dt{ font-weight:500; color:#CFC9A6; }
.ed-key-list dd{ margin:0; font-weight:700; text-align:right; color:#F4F1E1; overflow-wrap:anywhere; }
.ed-key-total{ display:flex; align-items:baseline; justify-content:space-between; padding-top:14px; border-top:1px solid rgba(217,202,117,.22); }
.ed-key-total span{ font-size:14px; color:#CFC9A6; }
.ed-key-total strong{ font-size:34px; font-weight:800; color:#FBF8EA; font-variant-numeric: tabular-nums; }
.ed-key-btn{ height:54px; border-radius:12px; border:0; background:#5E5B44; color:#D8D3B5; font: inherit; font-size:16px; font-weight:800; cursor:pointer; transition: background-color .15s, color .15s; }
.ed-key-btn.is-listo{ background: var(--ed-gold); color: var(--ed-olive-900); }
.ed-key-btn:focus-visible{ outline:2px solid #FFFFFF; outline-offset:2px; }
.ed-key-falta{ font-size:12.5px; color:#CFC9A6; text-align:center; min-height:18px; }
.ed-ci-back{ font-weight:700 !important; }
.ed-switch:focus:not(:focus-visible), .ed-seg button:focus:not(:focus-visible),
.ed-ci-tile:focus:not(:focus-visible), .ed-ci-rapido:focus:not(:focus-visible),
.ed-key-btn:focus:not(:focus-visible), .ed-chip-f:focus:not(:focus-visible){ outline:none; }

/* =====================================================================
   SALIDA (checkout_habitacion.php) — Fase 2
   ===================================================================== */
.ed-co{ display:flex; flex-direction:column; gap:20px; padding: 22px 0 40px; }
.ed-co-stay{ background:#FFFFFF; border:1px solid var(--ed-line); border-radius:16px; padding:22px; display:flex; flex-direction:column; gap:12px; }
.ed-co-stay-top{ display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-bottom:6px; }
.ed-co-room{ position:relative; min-width:132px; padding:14px 18px 14px; border-radius:14px; background: var(--ed-olive-900); color:#F4F1E1; }
.ed-co-room-hole{ position:absolute; top:12px; right:12px; width:12px; height:12px; border-radius:50%; border:2px solid var(--ed-gold); background: var(--ed-bg); }
.ed-co-room-lbl{ display:block; font-size:12px; color:#BDB78F; font-weight:600; }
.ed-co-room-num{ display:block; font-family: var(--ed-display); font-size:48px; line-height:1; color: var(--ed-gold); margin-top:4px; }
.ed-co-facts{ display:flex; flex-wrap:wrap; gap:14px 30px; margin:0; flex:1 1 360px; }
.ed-co-facts dt{ font-size:12.5px; font-weight:600; color: var(--ed-ink-3); }
.ed-co-facts dd{ margin:2px 0 0; font-size:16px; font-weight:800; color: var(--ed-ink); }
.ed-co-facts small{ display:block; font-size:12.5px; color: var(--ed-ink-2); }
.ed-co-pill{ display:inline-flex; align-items:center; height:38px; padding:0 16px; border-radius:999px; font-size:14px; font-weight:800; white-space:nowrap; }
.ed-co-stay--ocupada .ed-co-pill{ background:#FBEFEA; color:#A9473A; }
.ed-co-stay--porvencer .ed-co-pill{ background:#FCF3DF; color:#6F4E12; }
.ed-co-stay--vencida .ed-co-pill{ background:#A9473A; color:#FFFFFF; }
.ed-co-tl-labels{ display:flex; justify-content:space-between; gap:12px; font-size:13px; font-weight:700; color: var(--ed-ink-2); font-variant-numeric: tabular-nums; }
.ed-co-tl{ position:relative; height:12px; border-radius:12px; background:#EFECE0; overflow:hidden; }
.ed-co-tl-in{ position:absolute; left:0; top:0; bottom:0; background: var(--ed-olive); border-radius:12px 0 0 12px; transition: width .4s; }
.ed-co-tl-over{ position:absolute; top:0; bottom:0; background:#A9473A; transition: width .4s; }
.ed-co-stay--porvencer .ed-co-tl-in{ background:#94650F; }
.ed-co-tl-msg{ font-size:13.5px; font-weight:700; color: var(--ed-ink-2); }
.ed-co-stay--vencida .ed-co-tl-msg{ color:#A9473A; }

.ed-co-cols{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:20px; }
.ed-co-cuenta{ flex: 999 1 480px; min-width:0; background:#FFFFFF; border:1px solid var(--ed-line); border-radius:16px; overflow:hidden; }
.ed-co-cuenta-head{ padding:18px 22px; border-bottom:1px solid var(--ed-line-soft); }
.ed-co-cuenta-head h2, .ed-co-box h3{ margin:0; font-size:17px; font-weight:800; color: var(--ed-ink); }
.ed-co-box h3{ font-size:14.5px; margin-bottom:10px; }
.ed-co-table{ margin:0; }
.ed-co-table td{ padding:14px 22px !important; }
.ed-co-table th{ padding:11px 22px !important; }
.ed-co-table td strong{ display:block; font-weight:700; }
.ed-co-table td small{ display:block; font-size:12.5px; color: var(--ed-ink-3); }
.ed-co-num{ font-weight:700; font-variant-numeric: tabular-nums; white-space:nowrap; }
.ed-co-rowbtns{ white-space:nowrap; }
.ed-co-mini{ height:34px; padding:0 12px; margin-left:4px; border-radius:8px; border:1px solid #E0DBC6; background:#FFFFFF; font: inherit; font-size:12.5px; font-weight:700; color: var(--ed-olive-800); cursor:pointer; }
.ed-co-mini:hover{ background: var(--ed-gold-pale); }
.ed-co-mini--gold{ background: var(--ed-gold); border-color: var(--ed-gold); color: var(--ed-olive-900); }
.ed-co-mini--gold:hover{ background:#CDBC5E; }
.ed-co-totales{ display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:flex-end; gap:26px; padding:16px 22px 20px; background:#FBFAF5; border-top:1px solid var(--ed-line); }
.ed-co-totales span{ display:block; font-size:12.5px; font-weight:600; color: var(--ed-ink-3); text-align:right; }
.ed-co-totales strong{ display:block; font-size:17px; font-weight:800; text-align:right; font-variant-numeric: tabular-nums; }
.ed-co-total-main strong{ font-size:28px; }
.ed-co-total-main strong.is-due{ color:#A9473A; }
.ed-co-total-main strong.is-ok{ color:#2F6E4F; }
.ed-co-aviso{ margin:0; padding:14px 22px; background: var(--ed-warn-bg); color:#6F4E12; font-size:13.5px; font-weight:600; border-top:1px solid #F0DDB1; }

.ed-co-acciones{ flex: 1 1 320px; min-width:0; display:flex; flex-direction:column; gap:14px; }
.ed-co-box{ background:#FFFFFF; border:1px solid var(--ed-line); border-radius:16px; padding:18px; display:flex; flex-direction:column; gap:10px; }
.ed-co-btn{ height:54px; width:100%; border-radius:12px; font: inherit; font-size:16px; font-weight:800; cursor:pointer; border:2px solid transparent; transition: filter .15s, background-color .15s; }
.ed-co-btn--gold{ background: var(--ed-gold); color: var(--ed-olive-900); }
.ed-co-btn--dark{ background: var(--ed-olive-900); color:#F4F1E1; }
.ed-co-btn:hover{ filter: brightness(1.05); }
.ed-co-btn:focus-visible, .ed-co-adj:focus-visible, .ed-co-danger:focus-visible, .ed-co-mini:focus-visible{ outline:2px solid var(--ed-gold); outline-offset:2px; }
.ed-co-btn:focus:not(:focus-visible), .ed-co-adj:focus:not(:focus-visible), .ed-co-danger:focus:not(:focus-visible), .ed-co-mini:focus:not(:focus-visible){ outline:none; }
.ed-co-help{ margin:0; font-size:12.5px; color: var(--ed-ink-2); text-align:center; }
.ed-co-help--warn{ color:#6F4E12; background: var(--ed-warn-bg); padding:12px; border-radius:10px; font-weight:600; }
.ed-co-adjgrid{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:8px; }
.ed-co-adj{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:12px; border-radius:12px; border:1px solid #E0DBC6; background:#FFFFFF; font: inherit; color: var(--ed-ink); cursor:pointer; text-align:left; transition: background-color .15s, border-color .15s; }
.ed-co-adj svg{ color: var(--ed-olive); }
.ed-co-adj span{ font-size:13.5px; font-weight:700; }
.ed-co-adj:hover{ background: var(--ed-gold-pale); border-color:#CFC59A; }
.ed-co-box--special{ background:transparent; border:1px dashed #E6C3BA; }
.ed-co-box--special h3{ color:#7E2E24; }
.ed-co-special{ display:flex; flex-wrap:wrap; gap:8px; }
.ed-co-danger{ flex:1 1 140px; height:42px; border-radius:10px; border:1px solid #E6C3BA; background:#FFFFFF; font: inherit; font-size:13.5px; font-weight:700; color:#A9473A; cursor:pointer; }
.ed-co-danger:hover{ background: var(--ed-bad-bg); }
.ed-co-back{ align-self:center; font-size:14px; font-weight:700; }

/* Modales de la salida con colores de marca */
body .modal-pago-header, body .modal-pv-header, body .modal-rv-header, body .modal-he-header{
  background: var(--ed-olive-900) !important; color:#F4F1E1 !important; border-radius:0 !important;
}
body .modal-pago-header .modal-title, body .modal-pv-header .modal-title, body .modal-rv-header .modal-title, body .modal-he-header .modal-title{ color: var(--ed-gold) !important; }
body .modal-cancelar-header{ background:#7E2E24 !important; color:#FFFFFF !important; border-radius:0 !important; }
body .modal-cancelar-header .modal-title{ color:#FFFFFF !important; }
body .modal-pago-header .close, body .modal-pv-header .close, body .modal-rv-header .close, body .modal-he-header .close, body .modal-cancelar-header .close{ color:#FFFFFF !important; opacity:.8; }
body .pago-label-modal, body .pago-label-pv, body .pago-label-rv, body .pago-label-he{
  border:2px solid var(--ed-line) !important; border-radius:12px !important; color: var(--ed-ink) !important; font-size:12.5px !important; font-weight:700 !important;
}
body .pago-label-modal i, body .pago-label-pv i, body .pago-label-rv i, body .pago-label-he i{ color: var(--ed-olive) !important; }
body .pago-option-modal input:checked + .pago-label-modal,
body .pago-option-pv input:checked + .pago-label-pv,
body .pago-option-rv input:checked + .pago-label-rv,
body .pago-option-he input:checked + .pago-label-he{
  border-color: var(--ed-olive) !important; background: var(--ed-gold-pale) !important; color: var(--ed-olive-900) !important; box-shadow: 0 0 0 3px rgba(217,202,117,.35) !important;
}
body .cambio-display-modal, body .cambio-display-pv, body .cambio-display-rv, body .cambio-display-he{
  background: var(--ed-ok-bg) !important; border-color:#B9D9C4 !important; color:#2F6E4F !important; font-size:15px !important;
}
body .cambio-display-modal.negativo, body .cambio-display-pv.negativo, body .cambio-display-rv.negativo, body .cambio-display-he.negativo{
  background: var(--ed-bad-bg) !important; border-color:#E6C3BA !important; color: var(--ed-bad) !important;
}
body .mixto-row-modal, body .mixto-row-pv, body .mixto-row-rv, body .mixto-row-he{ background:#FBFAF5 !important; border-color: var(--ed-line-soft) !important; }
body .alerta-reembolso{ background: var(--ed-warn-bg) !important; border-left-color: var(--ed-warn) !important; color:#6F4E12 !important; }
body .alerta-sinpago, body .pe-mensaje-info{ background: var(--ed-info-bg) !important; border-left-color: var(--ed-info) !important; color:#29505E !important; }
body .pe-mensaje-info i, body .pe-mensaje-info strong{ color:#29505E !important; }
body .pago-ahora-box{ background: var(--ed-ok-bg) !important; border-color:#B9D9C4 !important; }
body .pago-cuenta-box{ background: var(--ed-warn-bg) !important; border-color:#EDD9A6 !important; color:#6F4E12 !important; }
.ed-co-help, .ed-co-aviso, .ed-ci-nota, .ed-key-falta{ line-height:1.5; }
/* Botones de confirmar de los modales de salida */
body #btn_confirmar_pago, body #pv_btn_confirmar, body #rv_btn_confirmar, body #he_btn_confirmar, body #pe_btn_confirmar{
  background: var(--ed-olive-900) !important; border-color: var(--ed-olive-900) !important; color:#F4F1E1 !important; background-image:none !important;
}
body #btn_confirmar_pago:hover, body #pv_btn_confirmar:hover, body #rv_btn_confirmar:hover, body #he_btn_confirmar:hover, body #pe_btn_confirmar:hover{ filter: brightness(1.15); }
/* Nombre de usuario largo en dos líneas */
.ed-user-name{ white-space: normal !important; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.25; }
