/* Giò Reservas v1.2 — interfaz premium */
#view-reservations{--rgreen:#173d2b;--rline:rgba(42,55,46,.13);--rcard:#fffdfa;--rmuted:#77786f;--rgold:#a77c2f}
.resv-page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:18px}
.resv-page-head h2{font-size:clamp(2rem,3vw,3.15rem);line-height:1;margin:.15rem 0 .35rem}
.resv-page-head p{margin:0}.resv-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.resv-stat{background:var(--rcard);border:1px solid var(--rline);border-radius:12px;padding:17px 18px;box-shadow:0 8px 26px rgba(27,47,35,.035)}
.resv-stat span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--rmuted)}
.resv-stat strong{display:block;margin-top:8px;font:500 2rem/1 Georgia,serif;color:var(--rgreen)}
.resv-stat small{display:block;margin-top:7px;color:var(--rmuted);font-size:10px}.resv-stat.warning{background:#fffaf0}.resv-stat.success{background:#f4faf5}.resv-stat.capacity{background:#fbf7ed}
.resv-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.resv-main{min-width:0}.resv-side{display:grid;gap:14px;position:sticky;top:18px}
.resv-toolbar{display:grid;grid-template-columns:175px 165px minmax(230px,1fr) auto;gap:10px;align-items:end;background:var(--rcard);border:1px solid var(--rline);border-radius:12px;padding:13px;margin-bottom:14px}
.resv-toolbar label{display:grid;gap:6px;font-size:10px;color:#4f554f}.resv-toolbar input,.resv-toolbar select,.resv-side input{width:100%;border:1px solid rgba(42,55,46,.17);border-radius:8px;background:#fff;padding:10px 11px;color:#202922}
.resv-toolbar strong{align-self:center;justify-self:end;color:var(--rmuted);font-size:11px}.resv-list-card{overflow:hidden;background:var(--rcard);border:1px solid var(--rline);border-radius:12px;box-shadow:0 8px 26px rgba(27,47,35,.03)}
.resv-list-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;border-bottom:1px solid var(--rline)}.resv-list-head h3{margin:.1rem 0 0;font:500 1.35rem/1.2 Georgia,serif}.resv-list-head span{font-size:11px;color:var(--rmuted)}
.resv-table-head,.resv-row{display:grid;grid-template-columns:74px minmax(150px,1.15fr) 82px 112px minmax(140px,.9fr) minmax(135px,.9fr);gap:10px;align-items:center;padding:0 18px}
.resv-table-head{min-height:38px;background:#f8f5ed;color:#70736d;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.resv-row{min-height:64px;border-top:1px solid rgba(42,55,46,.08);padding-top:10px;padding-bottom:10px}.resv-row:first-child{border-top:0}.resv-time{font-weight:700;color:#17251c}.resv-person strong{display:block;color:#1d2821}.resv-person small,.resv-note{display:block;margin-top:3px;color:var(--rmuted);font-size:10px;line-height:1.35}.resv-note em{opacity:.75}.resv-pax{font-weight:600;font-size:11px}
.reservation-status{display:inline-flex;width:max-content;align-items:center;padding:5px 9px;border-radius:999px;font-size:9px;font-weight:700;text-transform:none;letter-spacing:0}.reservation-status.confirmed{background:#e1f0e4;color:#285a39}.reservation-status.pending{background:#f8ebce;color:#8a6217}.reservation-status.rejected,.reservation-status.cancelled,.reservation-status.no_show{background:#f4dddd;color:#8d3f3f}
.reservation-actions{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}.reservation-actions .btn{padding:7px 9px;min-height:32px;font-size:9px}
.resv-side-card{margin:0!important;border:1px solid var(--rline)!important;border-radius:12px!important;padding:18px!important;background:var(--rcard)!important;box-shadow:0 8px 26px rgba(27,47,35,.03)}
.resv-side-card h3{margin:.1rem 0 .35rem;font:500 1.28rem/1.2 Georgia,serif}.resv-side-card>p{margin:.15rem 0 10px;color:var(--rmuted);font-size:10px;line-height:1.45}.resv-side-card label{display:grid;gap:6px;margin-top:11px;font-size:10px}.resv-side-card .btn{width:100%;margin-top:14px}.resv-time-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.resv-closure-list{display:grid;gap:7px;margin-top:12px}.closure-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px!important;border:1px solid var(--rline)!important;border-radius:8px;background:#faf8f1}.closure-row span{display:grid;gap:2px}.closure-row small{color:var(--rmuted);font-size:9px}.closure-row .btn{width:auto!important;margin:0!important;padding:6px 8px}
.resv-tip{padding:14px 16px;border:1px solid rgba(167,124,47,.18);border-radius:12px;background:#fbf6e9;color:#6e572a}.resv-tip strong{font-size:11px}.resv-tip p{margin:5px 0 0;font-size:10px;line-height:1.45}.resv-empty{padding:38px 18px;text-align:center;color:var(--rmuted)}
@media(max-width:1180px){.resv-workspace{grid-template-columns:1fr}.resv-side{position:static;grid-template-columns:1fr 1fr}.resv-tip{grid-column:1/-1}}
@media(max-width:900px){.resv-stats{grid-template-columns:1fr 1fr}.resv-toolbar{grid-template-columns:1fr 1fr}.resv-table-head,.resv-row{grid-template-columns:68px minmax(140px,1fr) 72px 105px minmax(120px,.8fr)}.resv-table-head>*:nth-child(6),.resv-row>*:nth-child(6){grid-column:1/-1}.reservation-actions{justify-content:flex-start;padding-left:68px}}
@media(max-width:680px){.resv-page-head{align-items:flex-start;flex-direction:column}.resv-stats{grid-template-columns:1fr 1fr}.resv-toolbar{grid-template-columns:1fr}.resv-toolbar strong{justify-self:start}.resv-side{grid-template-columns:1fr}.resv-table-head{display:none}.resv-row{grid-template-columns:65px 1fr auto;align-items:start;gap:7px}.resv-row>*:nth-child(4),.resv-row>*:nth-child(5),.resv-row>*:nth-child(6){grid-column:2/4}.reservation-actions{padding-left:0}.resv-time-pair{grid-template-columns:1fr 1fr}}


/* ==========================================================
   GIÒ · FICHA EDITABLE DE RESERVA
   ========================================================== */
.resv-row[data-open-res]{cursor:pointer;transition:background .15s ease,box-shadow .15s ease}
.resv-row[data-open-res]:hover{background:#faf8f1}
.resv-row[data-open-res]:focus-visible{outline:2px solid #a77c2f;outline-offset:-2px}
.reservation-editor-dialog{width:min(720px,calc(100% - 30px));max-height:92dvh;padding:0;border:1px solid rgba(42,55,46,.18);border-radius:14px;background:#f6f3eb;color:#1f2a20;box-shadow:0 28px 100px rgba(10,25,16,.34)}
.reservation-editor-dialog::backdrop{background:rgba(13,28,19,.64);backdrop-filter:blur(3px)}
.reservation-editor-card{padding:26px}
.reservation-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid rgba(42,55,46,.13)}
.reservation-editor-head h2{margin:3px 0 5px;font:500 1.85rem/1.1 Georgia,serif}
.reservation-editor-head p{margin-bottom:0}
.reservation-editor-close{width:38px;height:38px;flex:0 0 38px;border:0;border-radius:50%;background:transparent;color:#344336;font-size:29px;line-height:1}
.reservation-editor-close:hover{background:#e8eadf}
.reservation-customer-card{display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:12px;margin:18px 0 4px;padding:15px;border:1px solid rgba(42,55,46,.12);border-radius:10px;background:#fffdfa}
.reservation-customer-card div{min-width:0}.reservation-customer-card span{display:block;margin-bottom:4px;color:#77786f;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.reservation-customer-card strong{display:block;overflow-wrap:anywhere;color:#203024;font-size:12px}
.reservation-edit-grid{display:grid;grid-template-columns:1.25fr 1fr .7fr;gap:12px}
.reservation-editor-card label{margin-top:15px}.reservation-editor-card input,.reservation-editor-card textarea{border-radius:8px}.reservation-editor-card textarea[readonly]{background:#efefe9;color:#656c62}
.reservation-editor-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(42,55,46,.13)}
@media(max-width:620px){.reservation-editor-dialog{width:calc(100% - 18px);max-height:94dvh;margin:auto}.reservation-editor-card{padding:19px 17px}.reservation-customer-card{grid-template-columns:1fr}.reservation-edit-grid{grid-template-columns:1fr 1fr}.reservation-edit-grid label:last-child{grid-column:1/-1}.reservation-editor-actions{display:grid;grid-template-columns:1fr 1fr}.reservation-editor-actions .btn{width:100%}}

/* GIÒ · avisos WhatsApp de reservas */
.reservation-whatsapp-btn{margin-right:auto}
@media(max-width:620px){
  .reservation-editor-actions{grid-template-columns:1fr 1fr}
  .reservation-editor-actions .reservation-whatsapp-btn{grid-column:1/-1;margin-right:0}
}

/* Giò · historial por reserva */
.reservation-history-section{margin-top:20px;padding-top:18px;border-top:1px solid rgba(42,55,46,.13)}
.reservation-history-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:12px}
.reservation-history-head .kicker{margin-bottom:4px}
.reservation-history-head h3{margin:0;font:500 1.15rem/1.2 Georgia,serif;color:#203024}
.reservation-history-head>span{color:#7a7d74;font-size:10px}
.reservation-history{display:grid;max-height:270px;overflow:auto;padding-right:4px}
.reservation-history-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;position:relative;padding:9px 0}
.reservation-history-item:not(:last-child)::after{content:"";position:absolute;left:13px;top:34px;bottom:-8px;width:1px;background:rgba(42,55,46,.13)}
.reservation-history-dot{width:27px;height:27px;display:grid;place-items:center;border:1px solid rgba(42,55,46,.14);border-radius:50%;background:#f4f0e6;color:#31513a;font-size:11px;font-weight:700;z-index:1}
.reservation-history-body{min-width:0;padding-top:2px}
.reservation-history-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.reservation-history-line strong{font-size:11px}
.reservation-history-line time{color:#8a8c84;font-size:9px}
.reservation-history-body p{margin:3px 0 1px;color:#666c64;font-size:10px;line-height:1.45;overflow-wrap:anywhere}
.reservation-history-body small{color:#96988f;font-size:9px}
@media(max-width:620px){.reservation-history{max-height:230px}.reservation-history-line{display:block}.reservation-history-line time{display:block;margin-top:2px}}

/* Giò · nueva reserva manual */
.resv-page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.reservation-new-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 13px}
.reservation-new-dialog select{border:1px solid #cfd6c8;background:#fff;border-radius:8px;padding:10px 12px;width:100%;min-height:43px;margin-top:6px;color:#1f2a20}
@media(max-width:680px){.resv-page-actions{width:100%}.resv-page-actions .btn{flex:1}.reservation-new-grid{grid-template-columns:1fr}}

/* ==========================================================
   GIÒ · AGENDA DE SERVICIO
   ========================================================== */
.resv-service-strip{display:grid;grid-template-columns:1.15fr repeat(5,1fr);gap:8px;margin:-2px 0 14px}
.resv-service-strip>div{display:flex;flex-direction:column;gap:4px;padding:11px 13px;border:1px solid rgba(42,55,46,.12);border-radius:9px;background:#fffdfa}
.resv-service-strip span{color:#77786f;font-size:8px;text-transform:uppercase;letter-spacing:.08em}
.resv-service-strip strong{color:#183c2a;font:500 1.2rem/1 Georgia,serif}
.reservation-service-state{display:inline-flex;width:max-content;margin-top:5px;padding:3px 7px;border-radius:999px;font-size:8px;font-weight:700}
.reservation-service-state.expected{background:#eee9de;color:#6e685c}
.reservation-service-state.arrived{background:#dbeee1;color:#28613b}
.reservation-service-state.completed{background:#e9e9e6;color:#6f706b}
.reservation-actions .service-arrived{border-color:#8eb49a;color:#285a39}
.reservation-actions .service-completed{background:#eef5ef;border-color:#bdd0c1;color:#285a39}
@media(max-width:900px){.resv-service-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.resv-service-strip{grid-template-columns:repeat(2,1fr)}}


/* ==========================================================
   GIÒ · AGENDA POR FRANJAS HORARIAS
   ========================================================== */

.resv-hour-agenda-card{
  margin-bottom:14px;
  border:1px solid rgba(42,55,46,.13);
  border-radius:12px;
  background:#fffdfa;
  overflow:hidden;
  box-shadow:0 8px 26px rgba(27,47,35,.03);
}

.resv-hour-agenda-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  border-bottom:1px solid rgba(42,55,46,.10);
  background:#fbf8f0;
}

.resv-hour-agenda-head .kicker{margin-bottom:4px}
.resv-hour-agenda-head h3{margin:0;font:500 1.25rem/1.2 Georgia,serif;color:#203024}
.resv-hour-agenda-head>span{color:#77786f;font-size:10px}

.resv-hour-agenda{display:grid}

.resv-hour-block{
  border-top:1px solid rgba(42,55,46,.08);
}

.resv-hour-block:first-child{border-top:0}

.resv-hour-block-head{
  display:grid;
  grid-template-columns:110px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  background:#f7f4ec;
}

.resv-hour-time{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.resv-hour-time strong{
  color:#173d2b;
  font:500 1.35rem/1 Georgia,serif;
}

.resv-hour-time span,
.resv-hour-meta{
  color:#77786f;
  font-size:9px;
}

.resv-hour-meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.resv-hour-meta span{
  padding:3px 7px;
  border-radius:999px;
  background:#ecebe5;
}

.resv-hour-add{
  min-height:34px!important;
  padding:7px 10px!important;
  font-size:9px!important;
}

.resv-hour-rows{
  display:grid;
}

.resv-hour-reservation{
  width:100%;
  display:grid;
  grid-template-columns:minmax(160px,1fr) 68px 100px 95px;
  align-items:center;
  gap:10px;
  padding:11px 16px;
  border:0;
  border-top:1px solid rgba(42,55,46,.07);
  background:#fffdfa;
  color:#1f2a20;
  text-align:left;
}

.resv-hour-reservation:hover{
  background:#faf8f1;
}

.resv-hour-name{
  min-width:0;
}

.resv-hour-name strong,
.resv-hour-name small{
  display:block;
}

.resv-hour-name strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.resv-hour-name small{
  margin-top:2px;
  color:#8a8c84;
  font-size:9px;
}

.resv-hour-pax{
  font-size:10px;
  font-weight:700;
}

.resv-hour-empty{
  padding:26px 18px;
  text-align:center;
}

.resv-hour-empty p{
  color:#77786f;
}

@media(max-width:760px){
  .resv-hour-block-head{
    grid-template-columns:90px 1fr;
  }

  .resv-hour-add{
    grid-column:1/-1;
    width:100%;
  }

  .resv-hour-reservation{
    grid-template-columns:minmax(0,1fr) 58px;
  }

  .resv-hour-reservation .reservation-status,
  .resv-hour-reservation .reservation-service-state{
    grid-column:1/-1;
    margin-top:0;
  }
}

@media(max-width:520px){
  .resv-hour-agenda-head{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }

  .resv-hour-block-head{
    grid-template-columns:1fr;
  }

  .resv-hour-meta{
    margin-top:-2px;
  }

  .resv-hour-add{
    grid-column:auto;
  }
}


/* ==========================================================
   GIÒ · MESAS Y ASIGNACIÓN
   ========================================================== */

.reservation-editor-card select{
  border:1px solid #cfd6c8;
  background:#fff;
  border-radius:8px;
  padding:10px 12px;
  width:100%;
  min-height:43px;
  margin-top:6px;
  color:#1f2a20;
}

.reservation-tables-list{
  display:grid;
  gap:7px;
  margin:18px 0;
}

.reservation-table-row{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border:1px solid rgba(42,55,46,.13);
  border-radius:9px;
  background:#fffdfa;
  color:#1f2a20;
  text-align:left;
}

.reservation-table-row:hover{
  background:#f7f6ef;
}

.reservation-table-row.inactive{
  opacity:.58;
}

.reservation-table-row span:first-child{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.reservation-table-row strong{
  font-size:12px;
}

.reservation-table-row small,
.reservation-table-row>span:last-child{
  color:#77786f;
  font-size:9px;
}

.reservation-table-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr .7fr .8fr;
  gap:12px;
}

.reservation-tables-dialog .reservation-editor-actions{
  margin-top:18px;
}

@media(max-width:680px){
  .reservation-table-grid{
    grid-template-columns:1fr 1fr;
  }
}


/* ==========================================================
   GIÒ · LISTA DE ESPERA
   ========================================================== */

#reservation-waitlist-badge{
  margin-left:4px;
  opacity:.7;
}

.reservation-waitlist-list{
  display:grid;
  gap:8px;
  margin:18px 0;
  max-height:360px;
  overflow:auto;
}

.reservation-waitlist-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 90px auto;
  align-items:center;
  gap:12px;
  padding:12px 13px;
  border:1px solid rgba(42,55,46,.13);
  border-radius:9px;
  background:#fffdfa;
}

.reservation-waitlist-row.converted,
.reservation-waitlist-row.cancelled{
  opacity:.58;
}

.reservation-waitlist-person strong,
.reservation-waitlist-person small{
  display:block;
}

.reservation-waitlist-person small{
  margin-top:3px;
  color:#77786f;
  font-size:9px;
}

.reservation-waitlist-person p{
  margin:5px 0 0;
  color:#666c64;
  font-size:10px;
}

.reservation-waitlist-status{
  color:#6f706b;
  font-size:9px;
  text-align:right;
}

.reservation-waitlist-actions{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.reservation-waitlist-actions .btn{
  min-height:32px;
  padding:7px 9px;
  font-size:9px;
}

.reservation-waitlist-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 13px;
}

.resv-waitlist-inline{
  margin-bottom:14px;
  border:1px solid rgba(167,124,47,.19);
  border-radius:12px;
  background:#fbf6e9;
  padding:15px 17px;
}

.resv-waitlist-inline-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:10px;
}

.resv-waitlist-inline-head .kicker{
  margin-bottom:3px;
}

.resv-waitlist-inline-head h3{
  margin:0;
  font:500 1.15rem/1.2 Georgia,serif;
  color:#5b4824;
}

.resv-waitlist-inline-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 60px auto;
  gap:10px;
  align-items:center;
  padding:8px 0;
  border-top:1px solid rgba(167,124,47,.12);
  font-size:10px;
}

.resv-waitlist-inline-row:first-child{
  border-top:0;
}

.resv-waitlist-inline-row .btn{
  min-height:30px;
  padding:6px 8px;
  font-size:9px;
}

@media(max-width:700px){
  .reservation-waitlist-row{
    grid-template-columns:1fr;
  }

  .reservation-waitlist-status{
    text-align:left;
  }

  .reservation-waitlist-actions{
    justify-content:flex-start;
  }

  .reservation-waitlist-grid{
    grid-template-columns:1fr;
  }

  .resv-waitlist-inline-row{
    grid-template-columns:1fr auto;
  }

  .resv-waitlist-inline-row .btn{
    grid-column:1/-1;
    width:100%;
  }
}


/* ==========================================================
   GIÒ · RECORDATORIOS Y ALERTAS OPERATIVAS
   ========================================================== */

.reservation-op-flag{
  display:inline-flex;
  width:max-content;
  margin-top:5px;
  margin-right:4px;
  padding:3px 7px;
  border-radius:999px;
  font-size:8px;
  font-weight:700;
}

.reservation-op-flag.pending-old{
  background:#fff0d8;
  color:#8a5d16;
}

.reservation-op-flag.late{
  background:#f7dede;
  color:#963d3d;
}

.reservation-op-flag.reminded{
  background:#e5efe5;
  color:#35623f;
}

.reservation-actions .reminder-action{
  border-color:#b8c9b7;
}

.resv-hour-reservation:has(.reservation-op-flag.late){
  background:#fff8f6;
}

@media(max-width:760px){
  .reservation-op-flag{
    grid-column:1/-1;
  }
}


/* ==========================================================
   GIÒ · RESUMEN OPERATIVO DEL SERVICIO
   ========================================================== */

.resv-ops-summary{
  margin-bottom:14px;
  border:1px solid rgba(42,55,46,.13);
  border-radius:12px;
  background:#fffdfa;
  overflow:hidden;
  box-shadow:0 8px 26px rgba(27,47,35,.03);
}

.resv-ops-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  border-bottom:1px solid rgba(42,55,46,.10);
  background:#f8f5ed;
}

.resv-ops-head .kicker{margin-bottom:4px}

.resv-ops-head h3{
  margin:0;
  font:500 1.32rem/1.2 Georgia,serif;
  color:#203024;
}

.resv-ops-head>span{
  color:#868980;
  font-size:9px;
}

.resv-ops-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
}

.resv-ops-column{
  min-width:0;
  border-left:1px solid rgba(42,55,46,.09);
}

.resv-ops-column:first-child{
  border-left:0;
}

.resv-ops-column>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 13px;
  border-bottom:1px solid rgba(42,55,46,.08);
  background:#fcfaf4;
}

.resv-ops-column>header span{
  color:#77786f;
  font-size:8px;
  font-weight:700;
  letter-spacing:.1em;
}

.resv-ops-column>header strong{
  min-width:24px;
  padding:3px 7px;
  border-radius:999px;
  background:#e9ece5;
  color:#344a38;
  font-size:9px;
  text-align:center;
}

.resv-ops-column.attention>header{
  background:#fff7e7;
}

.resv-ops-list{
  display:grid;
  max-height:470px;
  overflow:auto;
}

.resv-ops-card{
  padding:10px 11px;
  border-top:1px solid rgba(42,55,46,.07);
}

.resv-ops-card:first-child{
  border-top:0;
}

.resv-ops-card.late{
  background:#fff9f7;
}

.resv-ops-card-main{
  width:100%;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
  color:#1f2a20;
  text-align:left;
}

.resv-ops-time{
  color:#173d2b;
  font:500 1rem/1 Georgia,serif;
}

.resv-ops-person{
  min-width:0;
}

.resv-ops-person strong,
.resv-ops-person small{
  display:block;
}

.resv-ops-person strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
}

.resv-ops-person small{
  margin-top:2px;
  color:#81847d;
  font-size:9px;
}

.resv-ops-flags{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin:7px 0 0 56px;
}

.resv-ops-actions{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin:8px 0 0 56px;
}

.resv-ops-actions .btn{
  min-height:29px;
  padding:5px 7px;
  font-size:8px;
}

.resv-ops-alert{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 12px;
  border-top:1px solid rgba(42,55,46,.07);
}

.resv-ops-alert:first-child{
  border-top:0;
}

.resv-ops-alert strong{
  display:block;
  font-size:10px;
}

.resv-ops-alert p{
  margin:3px 0 0;
  color:#77786f;
  font-size:9px;
}

.resv-ops-alert .btn{
  flex:none;
  min-height:30px;
  padding:6px 8px;
  font-size:8px;
}

.resv-ops-alert.pending{
  background:#fffaf0;
}

.resv-ops-alert.table{
  background:#fbf8ef;
}

.resv-ops-alert.waitlist{
  background:#fbf6e9;
}

.resv-ops-alert.reminder{
  background:#f4f8f3;
}

.resv-ops-empty{
  margin:0;
  padding:18px 13px;
  color:#8a8d85;
  font-size:9px;
  text-align:center;
}

@media(max-width:1120px){
  .resv-ops-grid{
    grid-template-columns:1fr;
  }

  .resv-ops-column{
    border-left:0;
    border-top:1px solid rgba(42,55,46,.09);
  }

  .resv-ops-column:first-child{
    border-top:0;
  }

  .resv-ops-list{
    max-height:none;
  }
}

@media(max-width:620px){
  .resv-ops-head{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }

  .resv-ops-card-main{
    grid-template-columns:44px minmax(0,1fr);
  }

  .resv-ops-card-main .reservation-status{
    grid-column:2;
  }

  .resv-ops-flags,
  .resv-ops-actions{
    margin-left:52px;
  }

  .resv-ops-alert{
    align-items:flex-start;
    flex-direction:column;
  }

  .resv-ops-alert .btn{
    width:100%;
  }
}


/* GIÒ · errores dentro de dialogs */
.reservation-dialog-error{
  margin:12px 0 0;
  padding:10px 12px;
  border:1px solid rgba(163,60,46,.22);
  border-radius:7px;
  background:#fff4f1;
  color:#8f352a;
  font-size:10px;
  line-height:1.45;
}
.reservation-dialog-error:empty{display:none}

/* GIÒ · gestión de cierres */
.closure-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.closure-actions .btn{
  min-height:32px;
  padding:6px 9px;
  font-size:8px;
}
@media(max-width:620px){
  .closure-row{align-items:flex-start}
  .closure-actions{width:100%;justify-content:flex-start}
}


/* GIÒ · cierres visibles en la zona principal */
.resv-closures-inline{
  margin:0 0 14px;
  border:1px solid rgba(134,83,47,.18);
  border-radius:12px;
  background:#fffaf2;
  overflow:hidden;
}
.resv-closures-inline-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-bottom:1px solid rgba(134,83,47,.12);
  background:#fbf2e4;
}
.resv-closures-inline-head .kicker{margin-bottom:4px}
.resv-closures-inline-head h3{margin:0;font-size:13px}
.resv-closures-inline-list{display:grid}
.resv-closure-inline-row{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:12px 16px;
  border-top:1px solid rgba(134,83,47,.09);
}
.resv-closure-inline-row:first-child{border-top:0}
.resv-closure-inline-date strong,
.resv-closure-inline-date span,
.resv-closure-inline-reason strong,
.resv-closure-inline-reason small{display:block}
.resv-closure-inline-date strong{font-size:10px;color:#6d4b31}
.resv-closure-inline-date span{margin-top:2px;font:500 15px/1.2 Georgia,serif;color:#7c5638}
.resv-closure-inline-reason strong{font-size:10px}
.resv-closure-inline-reason small{margin-top:3px;color:#8d8176;font-size:8px}
@media(max-width:620px){
  .resv-closures-inline-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .resv-closures-inline-head .btn{width:100%}
  .resv-closure-inline-row{
    grid-template-columns:1fr;
    gap:6px;
  }
}



/* ==========================================================
   GIO-RESERVAS-EDITOR-UX-20260918
   Ficha operativa de reserva
   ========================================================== */

.reservation-editor-dialog{
  width:min(820px,calc(100% - 30px));
}

.reservation-editor-heading{
  min-width:0;
  flex:1;
}

.reservation-editor-title-line{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.reservation-editor-title-line h2{
  margin:3px 0 5px;
}

.reservation-editor-title-line .reservation-status{
  margin-top:2px;
}

.reservation-editor-main-meta{
  margin:2px 0 0;
  color:#344336;
  font-size:13px;
  font-weight:600;
}

.reservation-editor-created{
  margin-top:4px;
  font-size:10px;
}

.reservation-editor-section{
  margin-top:20px;
}

.reservation-editor-section + .reservation-editor-section{
  padding-top:18px;
  border-top:1px solid rgba(42,55,46,.10);
}

.reservation-editor-section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-bottom:10px;
}

.reservation-editor-section-head .kicker{
  margin-bottom:3px;
}

.reservation-editor-section-head h3{
  margin:0;
  color:#203024;
  font:500 1.12rem/1.2 Georgia,serif;
}

.reservation-customer-card{
  grid-template-columns:1fr 1fr;
  margin:0;
}

.reservation-customer-wide{
  grid-column:1/-1;
  padding-top:11px;
  border-top:1px solid rgba(42,55,46,.09);
}

.reservation-special-text{
  margin:0;
  color:#414940;
  font-size:12px;
  line-height:1.55;
  white-space:pre-wrap;
}

.reservation-operation-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.reservation-operation-grid>div,
.reservation-v2-summary-grid>div{
  min-width:0;
  padding:12px 14px;
  border:1px solid rgba(42,55,46,.11);
  border-radius:9px;
  background:#fffdfa;
}

.reservation-operation-grid span,
.reservation-v2-summary-grid span{
  display:block;
  margin-bottom:4px;
  color:#77786f;
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.reservation-operation-grid strong,
.reservation-v2-summary-grid strong{
  display:block;
  color:#203024;
  font-size:12px;
  overflow-wrap:anywhere;
}

.reservation-v2-summary{
  margin-top:10px;
  padding:14px;
  border:1px solid rgba(167,124,47,.28);
  border-radius:10px;
  background:#fffaf0;
}

.reservation-v2-summary[hidden]{
  display:none;
}

.reservation-v2-summary-head{
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:10px;
}

.reservation-v2-summary-head strong{
  font-size:12px;
}

.reservation-v2-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:22px;
  padding:0 7px;
  border-radius:999px;
  background:#203024;
  color:#fff;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
}

.reservation-v2-summary-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.reservation-editor-edit-section{
  padding:17px;
  border:1px solid rgba(42,55,46,.11) !important;
  border-radius:11px;
  background:rgba(255,255,255,.42);
}

.reservation-edit-grid{
  grid-template-columns:1.2fr 1fr .65fr 1fr;
}

.reservation-edit-help{
  margin:11px 0 0;
}

.reservation-history-section{
  opacity:.92;
}

@media(max-width:720px){
  .reservation-operation-grid,
  .reservation-v2-summary-grid{
    grid-template-columns:1fr;
  }

  .reservation-edit-grid{
    grid-template-columns:1fr 1fr;
  }

  .reservation-customer-card{
    grid-template-columns:1fr;
  }

  .reservation-customer-wide{
    grid-column:auto;
  }
}

@media(max-width:520px){
  .reservation-edit-grid{
    grid-template-columns:1fr;
  }

  .reservation-editor-title-line{
    align-items:flex-start;
  }
}

/* ==========================================================
   GIO-RESERVAS-EDITOR-PENDING-ACTIONS-20260919
   ========================================================== */

.reservation-editor-pending-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:11px;
  padding:13px 14px;
  border:1px solid rgba(167,124,47,.28);
  border-radius:10px;
  background:#fffaf0;
}

.reservation-editor-pending-actions[hidden]{
  display:none;
}

.reservation-editor-pending-actions>div:first-child{
  display:grid;
  gap:3px;
}

.reservation-editor-pending-label{
  color:#8c6b2e;
  font-size:9px;
  font-weight:700;
  letter-spacing:.09em;
}

.reservation-editor-pending-actions strong{
  font-size:11px;
  color:#27352b;
}

.reservation-editor-pending-buttons{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.reservation-editor-pending-buttons .btn{
  min-height:34px;
  padding:7px 10px;
  font-size:10px;
}


/* Historial plegable */

.reservation-history-controls{
  display:flex;
  align-items:center;
  gap:10px;
}

.reservation-history-toggle{
  border:0;
  padding:4px 0;
  background:transparent;
  color:#31513a;
  cursor:pointer;
  font:600 10px/1.2 Arial,sans-serif;
}

.reservation-history-toggle:hover{
  text-decoration:underline;
}

.reservation-history-section.is-collapsed{
  padding-bottom:2px;
}

.reservation-history-section.is-collapsed
.reservation-history{
  display:none;
}

@media(max-width:680px){

  .reservation-editor-pending-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .reservation-editor-pending-buttons{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .reservation-editor-pending-buttons .btn{
    width:100%;
  }

  #reservation-editor-reject{
    grid-column:1/-1;
  }
}

/* ==========================================================
   GIO-RESERVAS-EDITOR-CONFIRMED-ACTIONS-20260919
   ========================================================== */

.reservation-editor-confirmed-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:11px;
  padding:13px 14px;
  border:1px solid rgba(49,81,58,.20);
  border-radius:10px;
  background:#f3f8f2;
}

.reservation-editor-confirmed-actions[hidden]{
  display:none;
}

.reservation-editor-confirmed-actions>div:first-child{
  display:grid;
  gap:3px;
}

.reservation-editor-confirmed-label{
  color:#31513a;
  font-size:9px;
  font-weight:700;
  letter-spacing:.09em;
}

.reservation-editor-confirmed-actions strong{
  color:#27352b;
  font-size:11px;
}

.reservation-editor-confirmed-buttons{
  display:flex;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}

.reservation-editor-confirmed-buttons .btn{
  min-height:34px;
  padding:7px 10px;
  font-size:10px;
}

@media(max-width:680px){

  .reservation-editor-confirmed-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .reservation-editor-confirmed-buttons{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .reservation-editor-confirmed-buttons .btn{
    width:100%;
  }
}

/* ==========================================================
   GIO-RESERVAS-DAY-GROUPS-20260919
   ========================================================== */

.resv-day-separator{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:10px 18px;
  border-top:1px solid rgba(42,55,46,.13);
  border-bottom:1px solid rgba(42,55,46,.08);
  background:#f3efe4;
}

.resv-day-separator:first-child{
  border-top:0;
}

.resv-day-separator strong{
  color:#304234;
  font-size:10px;
  font-weight:700;
  letter-spacing:.045em;
  text-transform:uppercase;
}

.resv-day-separator span{
  color:#85877e;
  font-size:9px;
}

.resv-day-separator + .resv-row{
  border-top:0;
}

@media(max-width:680px){

  .resv-day-separator{
    padding:9px 13px;
  }

  .resv-day-separator strong{
    font-size:9px;
  }
}

/* 012F1 · CSP: spacing moved out of inline style attributes. */
.reservation-editor-section-head-spaced{margin-top:18px}
.reservation-editor-confirmed-buttons-spaced{margin-top:6px}

/* Daily reservation actions and configuration tools */
#view-reservations .resv-page-head{align-items:flex-start}
#view-reservations .resv-page-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px;max-width:650px}
.resv-daily-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.resv-settings-menu{width:100%;border:1px solid var(--rline);border-radius:10px;background:var(--rcard);padding:12px 16px}
.resv-settings-menu>summary{cursor:pointer;color:var(--rgreen);font-weight:600;font-size:13px}
.resv-settings-menu>p{margin:10px 0 14px;font-size:12px;line-height:1.6}
.resv-settings-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.resv-setting-option .btn{width:100%;text-align:left;justify-content:flex-start}
.resv-setting-option>p{font-size:12px;line-height:1.6;color:var(--rmuted);margin:7px 0 0}
@media(max-width:900px){#view-reservations .resv-page-head{align-items:flex-start;flex-direction:column}#view-reservations .resv-page-actions{width:100%;max-width:none;align-items:stretch}.resv-daily-actions{justify-content:flex-start}}
@media(max-width:600px){.resv-settings-actions{grid-template-columns:1fr}.resv-daily-actions>.btn{flex:1 1 calc(50% - 8px)}}
