*{box-sizing:border-box}body{margin:0;background:#eef2f3;color:#17212b;font-family:Arial,sans-serif}aside{position:fixed;inset:0 auto 0 0;width:205px;background:linear-gradient(#073a45,#052832);color:#fff;padding:25px 13px;z-index:5}.logo{text-align:center;font:34px Georgia;letter-spacing:5px;padding:14px 0 30px}.logo small{display:block;font:12px Arial;color:#e6bd62;letter-spacing:2px;margin-top:5px}nav a,.salir{display:block;color:#fff;text-decoration:none;padding:14px 10px;border-radius:10px;margin:4px 0}nav a:hover{background:#0b5360}.usuario{position:absolute;bottom:62px;left:13px;right:13px;background:#0b4652;border-radius:10px;padding:13px}.usuario small{display:block;opacity:.7}.salir{position:absolute;bottom:10px;left:13px;right:13px}main.con-menu{margin-left:205px;min-height:100vh}.hero{height:405px;padding:28px;background:linear-gradient(90deg,#07191dd9,#07191d18),url('/static/img/hotel_fondo.jpg') center/cover;color:#fff}.titulo span{font-size:18px}.titulo h1{font-size:37px;margin:3px 0}.titulo b{color:#efc66c;font-size:20px}.bienvenida{margin-top:22px}.bienvenida h2{margin-bottom:4px}.indicadores{display:flex;gap:20px;margin-top:16px}.indicador{width:280px;height:145px;background:#fffffff2;color:#17212b;border-radius:12px;padding:20px;text-decoration:none;display:flex;gap:18px;box-shadow:0 8px 22px #0003}.indicador i{font-style:normal;width:65px;height:65px;border-radius:14px;background:#218c95;color:#fff;display:grid;place-items:center;font-size:28px}.indicador:nth-child(2) i{background:#2da151}.indicador strong{font-size:44px;display:block;line-height:1}.indicador b,.indicador small{display:block}.indicador small{margin-top:21px;border-top:1px solid #ddd;padding-top:9px}.semana{background:#fff;margin:18px 28px;padding:20px;border-radius:14px;box-shadow:0 4px 18px #0001}.semana h2{margin-top:0}.navsem{display:flex;justify-content:space-between;align-items:center}.navsem a{border:1px solid #ccd6da;padding:9px 14px;border-radius:6px;text-decoration:none;color:#075667}.leyenda{margin:17px 0;color:#7fc9bd}.leyenda .res{color:#e9c66d;margin-left:20px}.scroll{overflow:auto}table{border-collapse:separate;border-spacing:5px;width:100%;min-width:950px}th{font-size:13px}tbody th{text-align:left;font-size:15px}.celda{display:block;text-align:center;padding:8px;border-radius:5px;text-decoration:none}.disponible{background:#cfe9e4;color:#168b8b}.reservada{background:#f7dfa3;color:#7c5c08}.card{background:#fff;border:1px solid #dde2e7;border-radius:10px;padding:20px;margin:18px}.login{max-width:430px;margin:60px auto}label{display:block;font-weight:bold;margin:7px 0 5px}input,select{width:100%;padding:10px;border:1px solid #bbc3cb;border-radius:6px}button,.btn2{display:inline-block;border:0;background:#17323e;color:#fff;padding:10px 16px;border-radius:6px;text-decoration:none;margin-top:12px}.pagehead{display:flex;justify-content:space-between;align-items:center;margin:18px}.alert{padding:12px;margin:12px}.success{background:#e5f5ea}.danger{background:#fdeaea}@media(max-width:900px){aside{width:170px}main.con-menu{margin-left:170px}.indicadores{flex-wrap:wrap}}
.formgrid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}
.span2{grid-column:span 2}.inline{display:flex;gap:10px;align-items:end}.inline input{max-width:400px}
.rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:15px}
.rooms div{border:1px solid #ddd;border-radius:8px;padding:12px}.rooms span{display:block;margin-top:5px}
.small-button{padding:6px 10px;margin:0;font-size:12px}
@media(max-width:900px){.formgrid{grid-template-columns:1fr 1fr}.span2{grid-column:span 2}}

.complex-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;padding:20px}
.complex-card{background:white;border:1px solid #d7e0e2;border-radius:12px;padding:22px;text-decoration:none;color:#17212b;min-height:145px;box-shadow:0 3px 12px #0001}
.complex-card:hover{transform:translateY(-2px);box-shadow:0 7px 18px #0002}.complex-card span{font-size:12px;color:#698087}.complex-card b{font-size:13px;color:#158477}.hotel-card{border-top:5px solid #d7ad54}
.permissions{display:flex;flex-wrap:wrap;gap:10px 22px;margin:16px 0}.permissions label{font-weight:normal}.permissions input{width:auto}
.userbox{border:1px solid #dce3e5;border-radius:10px;padding:16px;margin:12px 0}.userhead{display:flex;justify-content:space-between}.userhead span{background:#17323e;color:white;padding:5px 9px;border-radius:5px;font-size:11px}

.percentage-card{border-left:5px solid #c69b42}
.percentage-card small{display:block;margin-top:6px;color:#607077}
.tariff-filter{flex-wrap:wrap}
.tariff-filter>div{min-width:250px}
.tarifa-proxima td{background:#fff5d8}
.tarifa-vencida td{background:#fde5e5}

.tree-title{
  margin:15px 8px 5px;
  padding:7px 8px;
  color:#e7c36b;
  font-weight:bold;
  font-size:12px;
  letter-spacing:.5px;
  border-left:3px solid #e7c36b;
}
nav a.tree-child{
  margin-left:10px;
  padding-left:16px;
  font-size:14px;
}
.percentage-example{
  margin-top:16px;
  padding:12px;
  background:#f4f7f8;
  border-radius:7px;
  border-left:4px solid #c69b42;
}

.general-title{margin-top:24px}
.tarifas-general{background:#164b55;font-weight:bold;border-left:4px solid #e7c36b}
.general-card{border-top:5px solid #17323e;background:#f8fbfb}
.general-card h2{color:#17323e}

.complex-page{padding:22px}
.complex-head{margin-bottom:18px}
.complex-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.complex-card{display:block;background:#fff;border:1px solid #d7e0e2;border-radius:12px;padding:22px;text-decoration:none;color:#17212b;min-height:145px;box-shadow:0 3px 12px #0001}
.complex-card:hover{transform:translateY(-2px);box-shadow:0 7px 18px #0002}
.hotel-card{border-top:5px solid #c69b42}
.general-card{border-top:5px solid #17323e;background:#f8fbfb}
.tariff-filter{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.tariff-filter>div{min-width:260px}

.affiliate-choice{margin:18px 0;padding:14px;background:#f2f7f7;border-left:4px solid #168b8b;border-radius:7px}
.affiliate-choice label{display:flex;gap:9px;align-items:center}.affiliate-choice input{width:auto}
.affiliate-choice small{display:block;margin-top:5px;color:#65767b}
.passenger-button{background:#146b75;margin-right:10px}
.passenger-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}
.passenger-summary>div{background:#f6f8f8;border:1px solid #dce4e5;border-radius:8px;padding:12px}
.passenger-summary span,.passenger-summary strong{display:block}.passenger-summary strong{font-size:19px;margin-top:4px}
.passenger-list{margin:12px 0}.passenger-list div{padding:7px;border-bottom:1px solid #e3e8e9}
.modal{display:none;position:fixed;inset:0;background:#0008;z-index:1000;padding:35px;overflow:auto}
.modal.show{display:block}.modal-box{max-width:1150px;margin:auto;background:#fff;border-radius:12px;padding:20px}
.modal-head{display:flex;justify-content:space-between;align-items:start}.modal-close{font-size:27px;margin:0;background:#a62727;padding:4px 12px}
.passenger-table{min-width:1000px}.passenger-table input,.passenger-table select{min-width:140px}
.modal-actions{text-align:right}.mini{padding:5px 9px;margin:0;font-size:12px}
@media(max-width:900px){.passenger-summary{grid-template-columns:1fr 1fr}}

.hotel-actions{margin-top:18px}.hotel-action{display:inline-block;background:#0b5963;color:white;padding:8px 12px;border-radius:6px;font-weight:bold}
.version-reserva{display:inline-block;margin:5px 0 8px;padding:4px 8px;background:#e9f6f4;border-radius:5px;font-size:12px;font-weight:bold}

.booking-card{padding:24px}
.booking-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:10px}
.booking-top.second{grid-template-columns:2fr 1fr 1fr}
.booking-top .wide{grid-column:auto}
.section-title{margin:22px 0 10px;border-bottom:2px solid #0d6872;padding-bottom:7px}
.guest-grid{min-width:1050px;border-collapse:collapse}
.guest-grid th{background:#eaf1f2}
.guest-grid td,.guest-grid th{padding:8px;border:1px solid #d9e1e3}
.guest-grid input,.guest-grid select{min-width:120px}
.p-edad{text-align:center;font-weight:bold}
.service-payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}
.mini-card{border:1px solid #d9e1e3;border-radius:10px;padding:16px;background:#f8fbfb}
.service-row{display:grid;grid-template-columns:120px 1fr 1fr;gap:10px}
.pay-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:end;margin-top:14px}
.pay-row>div{background:#fff;border:1px solid #dce4e5;border-radius:7px;padding:10px}
.pay-row span,.pay-row strong{display:block}
.pay-row strong{font-size:20px;margin-top:6px}
.booking-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}
.booking-summary>div{background:#edf4f4;border-radius:8px;padding:12px;border:1px solid #d8e3e4}
.booking-summary span,.booking-summary strong{display:block}
.booking-summary strong{font-size:19px;margin-top:4px}
textarea{width:100%;border:1px solid #bbc3cb;border-radius:6px;padding:10px}
.service-payment-grid.detail .card{margin:0}
@media(max-width:900px){
 .booking-top,.booking-top.second,.service-payment-grid{grid-template-columns:1fr}
 .service-row,.pay-row{grid-template-columns:1fr}
 .booking-summary{grid-template-columns:1fr 1fr}
}
.laundry-top{display:grid;grid-template-columns:1fr 1fr 2fr;gap:12px}.linen-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 14px;margin-top:16px}.laundry-total{display:flex;justify-content:flex-end;gap:20px;padding:14px;margin:18px 0;background:#edf5f5;border-radius:8px}.laundry-total strong{font-size:28px}.date-filter{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.btn-print{background:#287c4d;color:white;padding:10px 16px;border-radius:6px;text-decoration:none;margin-top:12px}.laundry-table{min-width:2200px}.row-actions{display:flex;gap:5px}.row-actions form{margin:0}.edit-btn,.delete-btn{margin:0;padding:6px 9px;font-size:11px}.delete-btn{background:#a62b2b}@media(max-width:900px){.laundry-top{grid-template-columns:1fr}.linen-grid{grid-template-columns:1fr 1fr}}
.bulk-delete{margin-top:14px;padding-top:12px;border-top:1px solid #e0e5e6}
.bulk-delete small{display:block;margin-top:6px;color:#6a7478}
.delete-range{background:#a42626}
.delete-range:disabled{background:#aaa;cursor:not-allowed}
.remito-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.remito-notes{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin:14px 0}.selection-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.selection-summary>div,.report-grid>div{background:#edf5f5;border-radius:8px;padding:12px}.selection-summary span,.selection-summary strong,.report-grid span,.report-grid strong{display:block}.selection-summary strong{font-size:22px}.report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}@media(max-width:900px){.remito-top,.remito-notes,.report-grid{grid-template-columns:1fr}}@media print{aside,.pagehead a,.remito-report button{display:none!important}main.con-menu{margin-left:0}}
.concept-manager{margin-bottom:16px}
.concept-add{display:flex;gap:10px;align-items:end}.concept-add input{max-width:420px}
.extra-concepts{margin-top:18px;padding:14px;border:1px dashed #8aa3a7;border-radius:8px;background:#f8fbfb}
.extra-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.extra-item .mini{margin-top:6px;font-size:10px;padding:5px 7px}
.muted{color:#66777b}
@media(max-width:900px){.extra-grid{grid-template-columns:1fr 1fr}}

.maintenance-tabs{display:flex;gap:10px;margin:18px}
.maintenance-tabs a{background:#174e5c;color:#fff;padding:10px 14px;border-radius:7px;text-decoration:none}
.maintenance-form{border-top:5px solid #3f7c62}
.maintenance-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.maintenance-filter>div{min-width:150px}
.maintenance-table{min-width:1500px}
.priority-urgente td{background:#fde2e2}
.priority-alta td{background:#fff0d7}
.priority-media td{background:#fffbe3}

.flow-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.flow-grid>div{background:#eef5f5;border-radius:8px;padding:14px}
.flow-grid b,.flow-grid span{display:block}.flow-grid span{margin-top:6px}
.pending-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.pending-kpis>div{background:#f7f0dd;border-radius:8px;padding:14px}
.pending-kpis strong,.pending-kpis span{display:block}.pending-kpis strong{font-size:26px}
.finish-box{padding:12px;background:#e9f6eb;border:1px solid #aed4b5;border-radius:8px}
.finish-box input{width:auto}

.solar-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:18px;margin:22px}
.solar-card{display:block;text-decoration:none;color:#173c44;background:#f5f9f8;border:1px solid #cad8da;border-radius:12px;padding:24px;min-height:160px}
.fondo-card{background:#fff8e8;border-color:#e1c97b}
.fund-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.fund-summary>div{background:#f4f7f7;padding:14px;border-radius:8px}
.fund-summary span,.fund-summary strong{display:block}.fund-summary strong{font-size:20px;margin-top:5px}
.negative-balance{background:#fde8e8!important;color:#9c1d1d}
@media(max-width:900px){.solar-menu-grid,.fund-summary{grid-template-columns:1fr}}

.week-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.solar-grid-table{min-width:1200px}.solar-grid-table th,.solar-grid-table td{text-align:center;vertical-align:top}
.solar-free{background:#edf8ef;color:#34713c;font-weight:bold}
.solar-occupied{background:#fff0d6;color:#6a4615;min-width:135px}
@media print{aside,.pagehead a,.date-filter button{display:none!important}main.con-menu{margin-left:0}}

.solar-dashboard{padding:0 10px 24px}
.solar-hero{position:relative;min-height:355px;border-radius:18px;overflow:hidden;margin:8px 0 18px;
background:
linear-gradient(90deg,rgba(4,52,57,.88),rgba(4,52,57,.34)),
url('/static/img/hotel_fondo.jpg') center/cover no-repeat}
.solar-overlay{display:flex;justify-content:space-between;align-items:flex-start;padding:34px;color:#fff}
.solar-overlay h1{font-size:42px;margin:4px 0 6px}.solar-overlay p{font-size:16px}
.solar-kicker{font-size:12px;letter-spacing:1px;text-transform:uppercase}
.solar-date{background:#0006;border-radius:10px;padding:12px 16px}
.solar-kpis{position:absolute;left:28px;right:28px;bottom:28px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.solar-kpi{display:grid;grid-template-columns:50px 1fr;grid-template-rows:auto auto;background:#fffffff0;border-radius:14px;padding:16px;text-decoration:none;color:#17232a;box-shadow:0 4px 14px #0002}
.solar-kpi>span{grid-row:1/3;font-size:28px;align-self:center}.solar-kpi strong{font-size:28px}.solar-kpi small{font-size:12px}
.solar-actions{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:0 0 18px}
.solar-actions a{background:#0d5962;color:#fff;text-decoration:none;text-align:center;padding:12px 8px;border-radius:8px;font-weight:bold}
.solar-legend{display:flex;gap:20px;margin:10px 0}.solar-legend span{display:flex;align-items:center;gap:6px}
.lg{width:14px;height:14px;border-radius:4px;display:inline-block}.lg.free{background:#dff2e3}.lg.occupied{background:#ffe7b7}
.solar-fund-mini{display:flex;gap:30px;align-items:center}.solar-fund-mini div span,.solar-fund-mini div strong{display:block}.solar-fund-mini div strong{font-size:22px}
@media(max-width:1000px){.solar-kpis{grid-template-columns:1fr 1fr}.solar-actions{grid-template-columns:1fr 1fr 1fr}.solar-hero{min-height:520px}}
@media(max-width:700px){.solar-actions{grid-template-columns:1fr 1fr}.solar-kpis{grid-template-columns:1fr}.solar-hero{min-height:760px}.solar-overlay{display:block}}

.solar-current-rates{border-top:4px solid #0b765f}
.rate-head{display:flex;justify-content:space-between;align-items:center}
.rate-table{max-width:760px;margin:0 auto}
.rate-table th,.rate-table td{text-align:center}
.solar-reservation-cell{cursor:pointer;transition:transform .12s,box-shadow .12s}
.solar-reservation-cell:hover{transform:scale(1.02);box-shadow:inset 0 0 0 2px #ca9529}
.dblclick-help{font-size:12px;color:#52666a;font-style:italic}
.reservation-detail-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.reservation-detail-grid>div{background:#f3f7f7;border-radius:8px;padding:12px}
.reservation-detail-grid span,.reservation-detail-grid strong{display:block}
.reservation-detail-grid span{font-size:11px;color:#68777b;margin-bottom:5px}
.detail-observation{margin-top:16px;background:#fbfaf2;border-radius:8px;padding:14px}
.document-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.document-card{display:block;text-decoration:none;color:#173c44;border:1px solid #ccd9da;border-radius:9px;padding:14px;background:#f7faf9}
.document-card strong,.document-card span{display:block}.document-card span{font-size:11px;margin-top:6px;color:#637277}
@media(max-width:1000px){.reservation-detail-grid{grid-template-columns:1fr 1fr}.document-cards{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.reservation-detail-grid,.document-cards{grid-template-columns:1fr}}

.permissions-box{margin:18px 0;padding:16px;border:1px solid #cbd8da;border-radius:10px;background:#f8fbfb}
.permissions-box h3{margin:0 0 14px}
.permission-section{padding:10px 0;border-top:1px solid #e0e7e8}
.permission-section:first-of-type{border-top:0}
.permission-section h4{margin:0 0 7px;color:#124b55}
.permission-section label{display:inline-flex;align-items:center;gap:5px;margin:4px 18px 4px 0}
.permission-section input[type=checkbox]{width:auto}
.danger-permission{color:#a12626;font-weight:bold}

.user-crud-actions{display:flex;gap:8px;align-items:center;margin-top:10px}
.link-btn{display:inline-block;text-decoration:none;color:#fff;padding:7px 10px;border-radius:5px}
.password-card{max-width:720px}

.users-row-table{min-width:1150px}
.users-row-table th,.users-row-table td{padding:9px 10px;vertical-align:middle}
.user-row{cursor:pointer;transition:background .12s}
.user-row:hover{background:#eaf4f4}
.user-row td:first-child{white-space:nowrap}

.generic-hero{position:relative;min-height:330px;border-radius:18px;overflow:hidden;margin:8px 0 18px;
background:linear-gradient(90deg,rgba(4,52,57,.88),rgba(4,52,57,.34)),url('/static/img/hotel_fondo.jpg') center/cover no-repeat}
.generic-overlay{display:flex;justify-content:space-between;align-items:flex-start;padding:34px;color:white}
.generic-overlay h1{font-size:38px;margin:4px 0}

/* ===== APJAE V2.12 - DISEÑO COMPACTO POR COMPLEJO ===== */
.generic-hero,.solar-hero{
  min-height:235px!important;
  border-radius:14px!important;
  background-size:cover!important;
  background-position:center!important;
  margin-bottom:12px!important;
}
.generic-overlay,.solar-overlay{
  padding:20px 24px!important;
}
.generic-overlay h1,.solar-overlay h1{
  font-size:30px!important;
  line-height:1.05!important;
  margin:3px 0 5px!important;
}
.generic-overlay p,.solar-overlay p{
  font-size:13px!important;
  margin:0!important;
}
.solar-kicker{font-size:10px!important}
.solar-date{padding:8px 11px!important;font-size:12px!important}

.solar-kpis{
  left:18px!important;
  right:18px!important;
  bottom:16px!important;
  gap:10px!important;
}
.solar-kpi{
  min-height:54px!important;
  padding:9px 12px!important;
  grid-template-columns:34px 1fr!important;
  border-radius:10px!important;
}
.solar-kpi .kpi-icon{
  grid-row:1/3;
  font-size:18px!important;
  line-height:1!important;
  align-self:center;
  letter-spacing:-4px;
  color:#0d5b61;
}
.solar-kpi strong{
  font-size:22px!important;
  line-height:1!important;
}
.solar-kpi small{
  font-size:10px!important;
}

.solar-actions{
  gap:7px!important;
  margin-bottom:12px!important;
}
.solar-actions a{
  padding:9px 7px!important;
  font-size:12px!important;
  border-radius:6px!important;
}

.card{
  border-radius:10px!important;
}
.card h2{
  font-size:19px!important;
}

.solar-grid-table th,.solar-grid-table td{
  padding:5px 7px!important;
  font-size:11px!important;
}

.compact-complex-grid,
.complejos-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(210px,1fr))!important;
  gap:12px!important;
  padding:14px!important;
}
.compact-complex-card,
.complejo-card,
.complex-card{
  min-height:125px!important;
  padding:15px 16px!important;
  border-radius:10px!important;
}
.compact-complex-card h2,
.complejo-card h2,
.complex-card h2{
  font-size:19px!important;
  line-height:1.1!important;
  margin:8px 0!important;
}
.compact-complex-card p,
.complejo-card p,
.complex-card p{
  font-size:11px!important;
}

@media(max-width:1100px){
  .compact-complex-grid,.complejos-grid{grid-template-columns:repeat(3,minmax(200px,1fr))!important}
}
@media(max-width:780px){
  .compact-complex-grid,.complejos-grid{grid-template-columns:1fr 1fr!important}
  .solar-kpis{grid-template-columns:1fr 1fr!important}
  .generic-hero,.solar-hero{min-height:340px!important}
}

/* ===== HOTEL FONDO FIJO V2.13 ===== */
.fund-dashboard{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin:14px 0;
}
.fund-stat{
  background:#fff;
  border:1px solid #d5e0e1;
  border-radius:10px;
  padding:15px 17px;
  box-shadow:0 2px 7px rgba(0,0,0,.05);
}
.fund-stat span,.fund-stat strong,.fund-stat small{display:block}
.fund-stat span{font-size:11px;text-transform:uppercase;color:#607478;font-weight:700}
.fund-stat strong{font-size:24px;margin:6px 0 3px;color:#173c44}
.fund-stat small{font-size:10px;color:#6d7d80}
.fund-positive{border-top:4px solid #218b57}
.fund-negative{border-top:4px solid #b02d2d;background:#fff7f7}
.fund-negative strong{color:#a52222}
.fund-info-card{border-left:4px solid #0b6b72}
.fund-edit-card{border-top:4px solid #d59b23}
.fund-create-card{max-width:1000px}
@media(max-width:900px){
  .fund-dashboard{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .fund-dashboard{grid-template-columns:1fr}
}

/* ===== HOTEL FONDO FIJO V2.14 - EFECTIVO / TARJETA ===== */
.fund-dashboard-six{grid-template-columns:repeat(3,1fr)!important}
.fund-cash{border-top:4px solid #2f8f5b}
.fund-cardpay{border-top:4px solid #3f67a8}
.pay-badge{display:inline-block;padding:3px 7px;border-radius:10px;font-size:10px;font-weight:700}
.pay-cash{background:#e5f5e9;color:#287347}
.pay-card{background:#e7eefb;color:#315a98}
@media(max-width:900px){.fund-dashboard-six{grid-template-columns:1fr 1fr!important}}
@media(max-width:600px){.fund-dashboard-six{grid-template-columns:1fr!important}}

/* V2.15 Fondo Fijo - cierre y doble saldo inicial */
.fund-close-card{border-left:4px solid #287b72}
.fund-dashboard-six{grid-template-columns:repeat(4,1fr)!important}
@media(max-width:1050px){.fund-dashboard-six{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:600px){.fund-dashboard-six{grid-template-columns:1fr!important}}

/* V2.16 - Fondo arrastrado, reposiciones y anticipos */
.carry-box{padding:10px 12px;background:#f3f8f8;border:1px solid #c9dddd;border-radius:8px}
.carry-box label{font-weight:700}
.carry-box small{display:block;margin-top:5px}
.replenishment-card{border-left:4px solid #2b7c68}


/* APJAE V2.18 - menú lateral corregido */
.sidebar, aside.sidebar, .menu-lateral {
    width:220px !important;
    min-width:220px !important;
    max-width:220px !important;
    height:100vh !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    padding-bottom:25px !important;
    box-sizing:border-box !important;
}
.sidebar a, aside.sidebar a, .menu-lateral a {
    display:block !important;
    padding:8px 12px !important;
    font-size:13px !important;
    line-height:1.15 !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
}
.sidebar .user-card, .sidebar .usuario, .usuario-box {
    position:static !important;
    margin:8px 10px !important;
    width:auto !important;
}
.main-content, main.contenido, .contenido {
    margin-left:220px !important;
    width:calc(100% - 220px) !important;
    box-sizing:border-box !important;
}
.transfer-card { border-left:4px solid #2f75a8; }

/* V2.21 - Reservas de complejos con esquema Hotel */
.affiliate-check{margin:14px 0;padding:12px 14px;border-left:3px solid #159a9c;background:#eef6f6;border-radius:7px}
.affiliate-check small{display:block;margin-top:5px}
.people-table input,.people-table select{min-width:110px;width:100%;box-sizing:border-box}
.reservation-bottom{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.service-box,.payment-box{border:1px solid #d4dfe1;border-radius:9px;padding:13px;background:#f8fbfb}
.mini-grid{display:grid;grid-template-columns:90px 1fr 1fr;gap:9px}
.totals-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}
.totals-grid>div{border:1px solid #d8e1e2;border-radius:7px;padding:8px;background:white}
.totals-grid strong,.totals-grid small{display:block}
@media(max-width:900px){.reservation-bottom{grid-template-columns:1fr}.totals-grid{grid-template-columns:1fr 1fr}.mini-grid{grid-template-columns:1fr}}


/* V2.22 - Reservas de complejos sin Servicio */
.affiliate-check input[type="checkbox"]{
    width:auto !important;
    min-width:auto !important;
    max-width:none !important;
    display:inline-block !important;
    margin-right:7px !important;
}
.reservation-bottom-single{
    grid-template-columns:1fr !important;
}
.reservation-bottom-single .payment-box{
    width:100%;
    box-sizing:border-box;
}
.helper-text{
    margin-top:-4px;
    margin-bottom:10px;
    font-size:12px;
}


/* ===== V2.25.1 - MENÚ LATERAL SIN SUPERPOSICIÓN ===== */
:root{ --apjae-sidebar: 180px; }

.sidebar,
aside.sidebar,
.menu-lateral {
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: var(--apjae-sidebar) !important;
    min-width: var(--apjae-sidebar) !important;
    max-width: var(--apjae-sidebar) !important;
    height: 100vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 1000 !important;
    box-sizing: border-box !important;
}

.sidebar a,
aside.sidebar a,
.menu-lateral a {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    line-height: 1.15 !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
}

main,
.main-content,
.contenido,
.content {
    margin-left: var(--apjae-sidebar) !important;
    width: calc(100% - var(--apjae-sidebar)) !important;
    max-width: calc(100% - var(--apjae-sidebar)) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    overflow-x: auto !important;
}

@media(max-width:900px){
    :root{ --apjae-sidebar: 165px; }
}

/* V2.27 Fondo Fijo por pestañas */
.fondo-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;padding:10px;background:#fff;border:1px solid #d5e0e3;border-radius:10px;position:sticky;top:0;z-index:40}
.fondo-tab-btn{border:0;border-radius:7px;background:#0c5361;color:white;font-weight:700;padding:10px 15px;cursor:pointer}
.fondo-tab-btn.activa{background:#118a73}
.fondo-seccion-tab{display:none}
.fondo-seccion-tab.activa{display:block}
@media(max-width:700px){.fondo-tabs{position:static}.fondo-tab-btn{flex:1 1 45%}}


/* ===== V2.28.1 - MENÚ LATERAL COMPLETO Y DESPLAZABLE ===== */
aside,
.sidebar,
aside.sidebar,
.menu-lateral{
    height:100vh !important;
    max-height:100vh !important;
    overflow-y:scroll !important;
    overflow-x:hidden !important;
    padding-bottom:28px !important;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
}

/* Corrige las reglas antiguas que dejaban Usuario y Salir flotando
   encima de las opciones inferiores del menú. */
aside .usuario,
.sidebar .usuario,
aside.sidebar .usuario,
.menu-lateral .usuario,
.usuario-box,
.sidebar .user-card{
    position:static !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    top:auto !important;
    width:auto !important;
    margin:8px 6px !important;
}

aside .salir,
.sidebar .salir,
aside.sidebar .salir,
.menu-lateral .salir{
    position:static !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    top:auto !important;
    width:100% !important;
    margin:2px 0 12px !important;
    box-sizing:border-box !important;
}

aside nav,
.sidebar nav,
aside.sidebar nav,
.menu-lateral nav{
    display:block !important;
    min-height:min-content !important;
    padding-bottom:12px !important;
}

/* Barra de desplazamiento visible */
aside::-webkit-scrollbar,
.sidebar::-webkit-scrollbar,
.menu-lateral::-webkit-scrollbar{width:9px}
aside::-webkit-scrollbar-thumb,
.sidebar::-webkit-scrollbar-thumb,
.menu-lateral::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.32);
    border-radius:8px;
}
aside::-webkit-scrollbar-track,
.sidebar::-webkit-scrollbar-track,
.menu-lateral::-webkit-scrollbar-track{background:rgba(0,0,0,.08)}


/* ===== V2.28.3 PESTAÑAS FONDO FIJO ESTABLES ===== */
.fondo-tabs{
    display:flex!important;
    flex-wrap:wrap;
    gap:8px;
    margin:14px 0;
}
.fondo-tab-btn{
    border:0;
    border-radius:7px;
    background:#0b5260;
    color:#fff;
    font-weight:700;
    padding:9px 14px;
    cursor:pointer;
}
.fondo-tab-btn.activa{background:#0e947d!important}
.fondo-panel-tab{display:none!important}
.fondo-panel-tab.activa{display:block!important}


/* ===== V2.28.4 - PESTAÑAS FONDO FIJO SIEMPRE VISIBLES ===== */
#fondoTabsFijo{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    margin:14px 0 !important;
    padding:10px !important;
    background:#ffffff !important;
    border:1px solid #d9e2e5 !important;
    border-radius:8px !important;
}
#fondoTabsFijo button{
    display:inline-block !important;
    visibility:visible !important;
    opacity:1 !important;
    border:0 !important;
    border-radius:7px !important;
    background:#0b5260 !important;
    color:#fff !important;
    font-weight:700 !important;
    padding:10px 14px !important;
    cursor:pointer !important;
}
#fondoTabsFijo button.activa{
    background:#0e947d !important;
}
.fondo-panel-tab{
    display:none !important;
}
.fondo-panel-tab.activa{
    display:block !important;
}


/* ===== V2.28.5 - FONDO FIJO CON PESTAÑAS REALES ===== */
#fondoTabsFijo{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    margin:14px 0 16px !important;
    padding:10px !important;
    background:#fff !important;
    border:1px solid #d5e0e3 !important;
    border-radius:9px !important;
}
#fondoTabsFijo button{
    display:inline-block !important;
    border:0 !important;
    border-radius:7px !important;
    background:#075160 !important;
    color:#fff !important;
    font-weight:700 !important;
    padding:10px 14px !important;
    cursor:pointer !important;
}
#fondoTabsFijo button.activa{background:#0c947d !important}
.fondo-panel-tab{display:none !important}
.fondo-panel-tab.activa{display:block !important}

/* V2.30.13 - Pre-reserva Hotel compacta */
.pre-calculo{padding:12px 14px}
.pre-calculo h3{margin:0 0 9px}
.pre-pay-grid{display:grid;grid-template-columns:repeat(5,minmax(125px,1fr));gap:7px;align-items:stretch}
.pre-pay-box{background:#fff;border:1px solid #dce4e5;border-radius:7px;padding:7px 9px;min-height:58px}
.pre-pay-box span,.pre-pay-box strong{display:block}
.pre-pay-box strong{font-size:16px;margin-top:4px}
.pre-pay-box label{font-size:12px;margin-bottom:3px}
.pre-pay-box input,.pre-pay-box select{height:32px;padding:4px 7px;margin:0}
.pre-pay-box.total{background:#fff5fb;border-color:#d93a94}
@media(max-width:1000px){.pre-pay-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:600px){.pre-pay-grid{grid-template-columns:1fr}}

/* V2.30.22 - Presentacion centrada de Pre-reservas para todos los complejos */
.prereserva-page-title{
  text-align:center;
  flex:1;
}
.prereserva-page-title h1{margin-bottom:8px}
.prereserva-tarifas-title,
.prereserva-tarifas-subtitle,
.prereserva-form-title,
.prereserva-form-subtitle{
  text-align:center;
}
.prereserva-tarifas-table{
  width:100%;
  min-width:0;
  border-spacing:0 10px;
}
.prereserva-tarifas-table th,
.prereserva-tarifas-table td{
  text-align:center;
  padding:4px 12px;
}
.prereserva-tarifas-table th:first-child,
.prereserva-tarifas-table td:first-child{
  text-align:center;
}

/* V2.30.24 - fondo personalizable del Hotel */
.hero{position:relative;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important}
.hotel-bg-upload{position:absolute;right:18px;bottom:16px;margin:0;z-index:3}
.hotel-bg-upload input[type=file]{display:none}
.hotel-bg-button{display:inline-block;margin:0;background:rgba(3,52,61,.92);color:#fff;padding:9px 13px;border-radius:7px;font-size:12px;font-weight:700;cursor:pointer;border:1px solid rgba(255,255,255,.35);box-shadow:0 4px 12px rgba(0,0,0,.2)}
.hotel-bg-button:hover{background:#0b6470}

/* V2.30.25 - ocupación semanal de complejos */
.generic-occupancy .week-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 10px}
.generic-occupancy .legend{margin:6px 0 10px;font-size:13px}.leg-disponible{color:#2fb9ad}.leg-reservada{color:#d8a12c;margin-left:14px}
.generic-occ-table{width:100%;border-collapse:separate;border-spacing:5px 4px;min-width:900px}.generic-occ-table th{font-size:12px}.generic-occ-table td{text-align:center;padding:0}.generic-occ-table td:nth-child(2){font-size:11px;white-space:nowrap}
.occ-cell{min-height:30px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:13px}.occ-cell.available{background:#c9ebe7;color:#159d96}.occ-cell.reserved{background:#ffdda0;color:#9a6900}.occ-cell a{display:flex;width:100%;min-height:30px;align-items:center;justify-content:center;color:inherit;text-decoration:none}.btn-light{border:1px solid #bdd0d3;border-radius:5px;padding:7px 10px;text-decoration:none;color:#00434b;background:white}

/* V1.1.27 - módulo activo en menú lateral */
.apjae-nav a.nav-active{background:rgba(255,255,255,.16);border-left:3px solid #ffd21c;font-weight:700;color:#fff;padding-left:calc(1em - 3px)}

/* ===== V1.2.72 - MENÚ LATERAL: SCROLL INDEPENDIENTE EN TODAS LAS PANTALLAS ===== */
html, body { min-height: 100%; }
.sidebar,
aside.sidebar,
.menu-lateral {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior-y: contain !important;
    scrollbar-gutter: stable !important;
    -webkit-overflow-scrolling: touch;
}
/* Ningún contenedor interno puede anular el desplazamiento del menú. */
.sidebar nav,
aside.sidebar nav,
.menu-lateral nav {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: 8px !important;
}
/* Usuario, cambio de clave y salida forman parte del recorrido del menú. */
.sidebar .usuario,
.sidebar .user-card,
aside.sidebar .usuario,
.menu-lateral .usuario,
.usuario-box,
.sidebar .salir,
aside.sidebar .salir,
.menu-lateral .salir {
    position: static !important;
}
/* Scroll discreto pero visible. */
.sidebar,
aside.sidebar,
.menu-lateral { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.42) rgba(0,0,0,.08); }
.sidebar::-webkit-scrollbar,
aside.sidebar::-webkit-scrollbar,
.menu-lateral::-webkit-scrollbar { width: 7px; }
.sidebar::-webkit-scrollbar-thumb,
aside.sidebar::-webkit-scrollbar-thumb,
.menu-lateral::-webkit-scrollbar-thumb { background: rgba(255,255,255,.42); border-radius: 8px; }
