:root{
  --black:#000;
  --white:#fff;
  --gray-1:#f6f6f6;
  --gray-2:#e8e8e8;
  --gray-3:#d7d7d7;
  --text:#111;
}

*{ box-sizing:border-box; }
.azw-app{ font-family: Arial, sans-serif; color:var(--text); max-width:1200px; margin:0 auto; padding:14px; }
.azw-header{ margin-bottom:10px; }
.azw-title{ margin:0; font-size:22px; font-weight:700; }

.azw-tabs{ display:flex; gap:10px; margin:10px 0 14px; flex-wrap:wrap; }
.azw-tab{
  background:#fff; border:1px solid var(--gray-2); padding:10px 14px; border-radius:22px;
  cursor:pointer; font-weight:600;
}
.azw-tab.active{ background:var(--black); color:var(--white); border-color:var(--black); }

.azw-pane{ display:none; }
.azw-pane.active{ display:block; }

.azw-toolbar{ display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; margin:10px 0 10px; }
.azw-control{ display:flex; flex-direction:column; gap:6px; min-width:180px; }
.azw-control label{ font-size:12px; color:#333; }
.azw-row{ display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
.azw-row-top{ align-items:flex-end; }

.azw-input, .azw-select, .azw-textarea{
  width:100%;
  max-width:100%;
  font-size:12px !important;
  padding:10px 12px;
  border:1px solid var(--gray-2) !important;
  border-radius:12px;
  outline:none;
  min-width:0;
}
.azw-textarea{ resize:vertical; }

.azw-select{
  appearance:none;
  background:
    linear-gradient(45deg, transparent 50%, #555 50%) calc(100% - 16px) calc(50% - 3px)/6px 6px no-repeat,
    linear-gradient(135deg, #555 50%, transparent 50%) calc(100% - 10px) calc(50% - 3px)/6px 6px no-repeat,
    linear-gradient(to right, transparent, transparent) 0 0/100% 100% no-repeat;
  padding-right:34px;
}

.azw-btn{
  background:var(--black);
  color:var(--white);
  border:none;
  border-radius:22px;
  padding:10px 14px;
  cursor:pointer;
  font-weight:700;
  font-size:13px;
}
.azw-btn:disabled{ opacity:.5; cursor:not-allowed; }
.azw-btn-primary{ background:var(--black); }

.azw-legend{ display:flex; gap:12px; flex-wrap:wrap; font-size:13px; margin:8px 0 10px; }
.azw-dot{ width:10px; height:10px; display:inline-block; border-radius:50%; border:1px solid rgba(0,0,0,.12); margin-right:6px; }
.azw-dot.av{ background:#e6f7ec; }
.azw-dot.full{ background:#fdecea; }
.azw-dot.block{ background:#f1f1f1; }
.azw-dot.na{ background:#fafafa; }

.azw-weekdays{
  display:grid; grid-template-columns:repeat(7, 1fr);
  gap:8px; margin:0 0 8px;
  font-size:12px; color:#444; font-weight:700;
}
.azw-weekdays div{ text-align:center; padding:6px 0; border:1px solid var(--gray-2); border-radius:12px; background:#fff; }

.azw-calendar{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  gap:8px;
}
.azw-day{
  border:1px solid var(--gray-2);
  border-radius:16px;
  background:#fff;
  padding:10px;
  min-height:92px;
  position:relative;
}
.azw-day.disabled{ opacity:.55; }
.azw-day-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.azw-day-num{ font-weight:800; font-size:14px; }
.azw-day-status{ font-size:12px; color:#666; margin-top:6px; }

.azw-day.available{ background:#e6f7ec; }
.azw-day.full{ background:#fdecea; }
.azw-day.blocked{ background:#f1f1f1; }
.azw-day.not_allowed{ background:#fafafa; }

.azw-icons{ display:flex; gap:10px; }
.azw-ic{
  width:18px; height:18px; cursor:pointer; opacity:.9;
}
.azw-ic:hover{ opacity:1; }
.azw-ic svg{ width:18px; height:18px; display:block; }

.azw-table-wrap{ width:100%; overflow:auto; border:0px solid var(--gray-2) !important; border-radius:16px; background:#fff; }
.azw-table{ width:100%; border-collapse:collapse; font-size:13px; border:0 !important; }

.azw-table th, .azw-table td{
  padding:10px;
  border:0.5px solid var(--gray-2) !important; /* <- agrega bordes completos grises */
  vertical-align:top;
}

.azw-table thead th{ background:var(--gray-1); text-align:left; border-bottom:1px solid var(--gray-2) !important; }
.azw-table tr:last-child td{ border-bottom:none; }

.azw-muted{ color:#666; font-size:12px; }

.azw-modal{
  position:fixed; inset:0;
  background:rgba(0,0,0,.55);
  display:none;
  align-items:center;
  justify-content:center;
  padding:14px;
  z-index:9999;
}
.azw-modal[aria-hidden="false"]{ display:flex; }

.azw-modal-card{
  width:min(560px, 100%);
  background:#fff;
  border-radius:22px;
  border:1px solid var(--gray-2);
  box-shadow:0 20px 60px rgba(0,0,0,.2);
  padding:16px;
}
.azw-modal-wide{ width:min(980px, 100%); }
.azw-modal-small{ width:min(420px, 100%); }

.azw-modal-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px; }
.azw-modal-title{ font-weight:800; font-size:16px; }
.azw-x{ background:transparent; border:none; font-size:26px; line-height:1; cursor:pointer; padding:0 6px; }

.azw-modal-actions{ display:flex; gap:10px; margin:10px 0; }
.azw-modal-actions.right{ justify-content:flex-end; }

.azw-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:12px; }
@media (max-width: 720px){
  .azw-grid{ grid-template-columns:1fr; }
  .azw-control{ min-width:unset; flex:1 1 160px; }
  .azw-weekdays{ font-size:11px; gap:6px; }
  .azw-calendar{ gap:6px; }
  .azw-day{ min-height:86px; padding:8px; }
  .azw-modal-wide{ width:min(720px, 100%); }
}

.azw-switch{ position:relative; display:inline-flex; align-items:center; }
.azw-switch input{ display:none; }
.azw-switch span{
  width:48px; height:28px; border-radius:999px; background:#ddd; position:relative; cursor:pointer;
}
.azw-switch span::after{
  content:""; width:22px; height:22px; border-radius:50%; background:#fff; position:absolute; top:3px; left:3px; transition:.15s;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.azw-switch input:checked + span{ background:#000; }
.azw-switch input:checked + span::after{ left:23px; }

.azw-msg{ border:1px solid var(--gray-2); background:#fff; padding:10px 12px; border-radius:16px; margin:10px 0; }
.azw-msg-error{ border-color:#f2b8b5; background:#fdecea; }
.azw-msg-body{ padding:10px 2px; font-size:14px; }

/* LOGIN */
.azw-login{
  display:flex;
  justify-content:center;   /* horizontal */
  align-items:center;       /* vertical */
  min-height:100vh;         /* ocupa toda la pantalla */
  padding:14px;             /* opcional, para mobile */
}
.azw-login-card{
  width:min(420px, 100%);
  border:1px solid var(--gray-2);
  border-radius:22px;
  background:#fff;
  padding:22px;
}
.azw-login-logo{
  display:block;
  max-width:100px;   /* <- pedido */
  width:50%;
  height:auto;
  padding:30px;
  margin:0 auto 14px;
}
.azw-label{ font-size:12px; font-weight:700; margin-top:10px; display:block; }

.azw-title.azw-title-login{
  text-align: center;
  margin: 0 0 40px 0;
}

.azw-btn-login{
  margin-top: 40px !important;
  margin-bottom: 30px !important;
}

.azw-tittle-h2 {
    font-size: 24px;
}
.azw-tittle-main {
    font-size: 32px;
}
.awz-div-space {
    height: 30px;
}