
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f5f7fb;color:#1f2937}
a{text-decoration:none;color:inherit}
.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.sidebar{background:#111827;color:#fff;padding:24px}
.brand{font-size:24px;font-weight:700;margin-bottom:24px}
.sidebar nav{display:flex;flex-direction:column;gap:10px}
.sidebar nav a{padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04)}
.sidebar nav a:hover{background:rgba(255,255,255,.1)}
.main{padding:24px}
.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.grid{display:grid;gap:16px}
.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}
.grid.two{grid-template-columns:1.2fr .8fr}
.card{background:#fff;border-radius:18px;padding:18px;box-shadow:0 10px 24px rgba(15,23,42,.06);margin-bottom:16px}
.stat-label{font-size:14px;color:#6b7280}
.stat-value{font-size:34px;font-weight:700;margin-top:6px}
table{width:100%;border-collapse:collapse}
th,td{padding:12px 10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}
th{font-size:13px;color:#6b7280}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
input,select,button,textarea{font:inherit}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;background:#fff}
input[type="checkbox"],input[type="radio"]{width:auto;padding:0;border:none;background:transparent;accent-color:#2563eb;flex:0 0 auto}
textarea{resize:vertical;min-height:120px;line-height:1.45}
.textarea-wide{display:block !important;width:100% !important;max-width:100% !important;min-width:100% !important}
.field{margin-bottom:14px}
label{display:block;font-weight:600;margin-bottom:6px}
.actions{display:flex;gap:8px;align-items:center}
/* Componentes: botones/alertas base separados en public/assets/components.css (v122). */
.clean{padding-left:18px}
.muted{color:#6b7280}
@media (max-width: 980px){.app{grid-template-columns:1fr}.sidebar{display:none}.grid.cards,.grid.two{grid-template-columns:1fr}}

.userbox{margin:0 0 18px 0;padding:12px;border-radius:12px;background:rgba(255,255,255,.06)}
.grid.two{grid-template-columns:1.4fr .8fr}
.card h2{margin-top:0}

.mobile-menu-btn{
    position:fixed;top:14px;left:14px;z-index:1200;
    display:none;border:none;border-radius:12px;
    background:#111827;color:#fff;padding:10px 14px;cursor:pointer;
    box-shadow:0 10px 24px rgba(15,23,42,.18)
}
.mobile-overlay{
    position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1090;
    display:none
}
.mobile-overlay.show{display:block}
@media (max-width: 980px){
    .mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center}
    .app{grid-template-columns:1fr}
    .sidebar{
        display:block;
        position:fixed;
        top:0;left:0;bottom:0;
        width:280px;
        transform:translateX(-100%);
        transition:transform .25s ease;
        z-index:1100;
        overflow:auto
    }
    .sidebar.open{transform:translateX(0)}
    .main{padding:70px 16px 16px 16px}
}

.contextbox{margin:0 0 18px 0;padding:12px;border-radius:12px;background:rgba(255,255,255,.10);font-size:13px;line-height:1.4}

/* Componentes: paginacion separada en public/assets/components.css (v122). */

/* Componentes: checks grid separados en public/assets/components.css (v122). */

/* Componentes: paginacion-per-page separada en public/assets/components.css (v122). */


.client-search-results {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.client-result-item {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 12px;
    align-items: center;
    border: 1px solid #d8dee9;
    border-radius: 12px;
    padding: 12px 14px;
    cursor: pointer;
    background: #fff;
}
.client-result-item.selected {
    border-color: #2563eb;
    background: #eff6ff;
}
.client-result-main { display:flex; flex-direction:column; gap:4px; }
.client-result-main small { color:#667085; }
.client-pagination { display:flex; gap:10px; align-items:center; margin-top: 12px; }
.client-pagination-info { color:#667085; font-size:14px; }
.selection-summary {
    margin-top: 12px;
    border: 1px solid #c7d7fe;
    background: #eef4ff;
    color: #15315f;
    border-radius: 12px;
    padding: 12px 14px;
}
.tabs-container {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 6px;
    margin-top: 8px;
    margin-bottom: 14px;
}
.tab-btn {
    border: 1px solid #d0d7e2;
    background: #f8fafc;
    color: #334155;
    border-radius: 999px;
    padding: 10px 14px;
    white-space: nowrap;
    cursor: pointer;
    font-weight: 600;
}
.tab-btn.active {
    background: #2563eb;
    color: #fff;
    border-color: #2563eb;
}
.horarios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    gap: 10px;
}
.hora-btn {
    border: 1px solid #cbd5e1;
    background: #fff;
    border-radius: 12px;
    padding: 11px 10px;
    cursor: pointer;
    font-weight: 600;
}
.hora-btn:hover { border-color:#2563eb; color:#2563eb; }
.hora-btn.selected {
    background: #16a34a;
    color: #fff;
    border-color: #16a34a;
}
.seleccion-box {
    margin-top: 14px;
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #14532d;
    border-radius: 12px;
    padding: 12px 14px;
}
.empty-state-inline {
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 16px;
    color: #64748b;
    background: #f8fafc;
}
@media (max-width: 900px) {
    .field-span-2 { grid-column: span 1; }
}


@media (max-width: 980px){.toolbar-actions{justify-content:stretch}.toolbar-actions .button{flex:1 1 auto}}

/* Componentes: badges de estado separados en public/assets/components.css (v122). */


/* Componentes: alertas centradas separado en public/assets/components.css (v122). */




/* Componentes: neutralizar toasts antiguos separado en public/assets/components.css (v122). */





/* Componentes: botones y checks premium globales separado en public/assets/components.css (v122). */




/* Componentes: colores globales de acciones separado en public/assets/components.css (v122). */






/* ==========================================================
   CITA_EDIT_ACTION_COLORS_V38
   Solo apariencia para /citas/editar: colores por función.
   No cambia formularios, nombres, rutas, JS ni lógica.
   ========================================================== */
.cita-edit-page .button,
.cita-edit-page button.button,
.cita-edit-page a.button {
    border-radius: 999px !important;
    min-height: 42px;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .11) !important;
    border: 1px solid rgba(148, 163, 184, .22) !important;
}

.cita-edit-page .button:hover,
.cita-edit-page button.button:hover,
.cita-edit-page a.button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 16px 32px rgba(15, 23, 42, .16) !important;
}

/* Siguiente cita = turquesa/agenda */
.cita-edit-page .action-next-appointment {
    background: linear-gradient(135deg, #0891b2, #06b6d4) !important;
    color: #fff !important;
}
.cita-edit-page .action-next-appointment::before { content: "↷" !important; }

/* Volver = neutro, no compite con acciones principales */
.cita-edit-page .action-back {
    background: linear-gradient(135deg, #f8fafc, #eef2f7) !important;
    color: #334155 !important;
    border-color: #dbe3ef !important;
}
.cita-edit-page .action-back::before { content: "←" !important; background:#e2e8f0 !important; color:#334155 !important; }

/* Guardar = verde éxito */
.cita-edit-page .action-save-changes {
    background: linear-gradient(135deg, #059669, #10b981) !important;
    color: #fff !important;
}
.cita-edit-page .action-save-changes::before { content: "✓" !important; }

/* Copiar = índigo suave */
.cita-edit-page .action-copy-link {
    background: linear-gradient(135deg, #eef2ff, #e0e7ff) !important;
    color: #3730a3 !important;
    border-color: #c7d2fe !important;
}
.cita-edit-page .action-copy-link::before { content: "⧉" !important; background:#c7d2fe !important; color:#312e81 !important; }

/* Correo = azul estándar */
.cita-edit-page .action-send-email {
    background: linear-gradient(135deg, #2563eb, #3b82f6) !important;
    color: #fff !important;
}
.cita-edit-page .action-send-email::before { content: "✉" !important; }

/* SMS/WhatsApp = verde comunicación */
.cita-edit-page .action-send-sms {
    background: linear-gradient(135deg, #16a34a, #22c55e) !important;
    color: #fff !important;
}
.cita-edit-page .action-send-sms::before { content: "☏" !important; }

/* Cargar documento = violeta/documentos */
.cita-edit-page .action-upload-document {
    background: linear-gradient(135deg, #7c3aed, #a855f7) !important;
    color: #fff !important;
}
.cita-edit-page .action-upload-document::before { content: "⇧" !important; }

/* Quitar = rojo peligro */
.cita-edit-page .action-remove-document,
.cita-edit-page button.action-remove-document {
    background: linear-gradient(135deg, #ef4444, #dc2626) !important;
    color: #fff !important;
    border-color: rgba(220, 38, 38, .18) !important;
}
.cita-edit-page .action-remove-document::before { content: "×" !important; background: rgba(255,255,255,.22) !important; color:#fff !important; }

/* Mantener botones pequeños compactos */
.cita-edit-page .button.small,
.cita-edit-page button.button.small,
.cita-edit-page a.button.small {
    min-height: 34px !important;
    padding: 7px 12px !important;
}
/* RESPONSIVE SWEEP V109 - ajustes quirúrgicos de adaptabilidad
   No cambia lógica de agenda, disponibilidad, estados ni acciones. */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

body,
.app,
.main,
.card,
.grid,
.aq-agenda-page,
.aq-agenda-shell,
.aq-calendar-scroll {
  min-width: 0;
}

img,
svg,
canvas,
video,
iframe {
  max-width: 100%;
}

.card {
  max-width: 100%;
}

.card:has(table),
.table-responsive,
.cita-docs-table-wrap,
.aq-table-backup .card {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.card > table,
.aq-table-backup table,
.cita-docs-table {
  min-width: 720px;
}

input,
select,
textarea,
button,
.button {
  max-width: 100%;
}

@media (max-width: 980px) {
  .page-head {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .page-head > * {
    min-width: 0;
  }

  .page-head .button {
    width: 100%;
  }

  .grid.two,
  .dashboard-lists,
  .grid[style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }

  .toolbar {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: end;
  }

  .toolbar > div {
    min-width: 0 !important;
    width: 100%;
  }

  .toolbar-actions {
    grid-column: 1 / -1 !important;
    justify-content: stretch !important;
    margin-top: 0 !important;
  }

  .toolbar-actions .button {
    flex: 1 1 0;
  }

  .form-grid,
  .filters-grid {
    grid-template-columns: 1fr !important;
  }

  .actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 640px) {
  .main {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .card {
    border-radius: 14px;
    padding: 14px;
  }

  .toolbar {
    grid-template-columns: 1fr !important;
  }

  .toolbar-actions,
  .form-actions,
  .actions {
    width: 100%;
  }

  .toolbar-actions .button,
  .form-actions .button,
  .actions .button {
    width: 100%;
    justify-content: center;
  }

  th,
  td {
    padding: 10px 8px;
  }

  .pagination-wrap {
    flex-direction: column;
    align-items: stretch;
  }

  .pagination {
    justify-content: center;
  }

  .pagination-per-page {
    justify-content: center;
  }

  .aq-calendar-scroll {
    max-width: 100%;
  }
}
/* END RESPONSIVE SWEEP V109 */

/* RESPONSIVE_SYSTEM_V116_LOCKED
   Sistema único responsive. No modifica lógica de agenda, disponibilidad, estados ni buffers.
   Reemplaza parches V110-V115 para evitar overrides acumulados. */

/* Contención global segura */
html, body { max-width: 100%; overflow-x: hidden; }
.main, .card, .page-head, .toolbar, .grid, .grid.cards, .grid.two { min-width: 0; }
.card { max-width: 100%; }
.card > * { max-width: 100%; }
img, svg, canvas, video, iframe { max-width: 100%; height: auto; }

/* Encabezados y acciones superiores */
.page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.page-head h1, .page-head h2 { margin:0; line-height:1.15; min-width:0; }
.page-head .actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; justify-content:flex-end; margin-left:auto; }

/* Tablas: desktop con scroll, móvil con cards. */
.table-responsive, .table-wrap, .cita-docs-table-wrap, .card:has(table) { overflow-x:auto; -webkit-overflow-scrolling:touch; }
table { max-width:100%; }
table.responsive-cards { width:100%; border-collapse:collapse; }
table.responsive-cards th, table.responsive-cards td { vertical-align:middle; }

/* Acciones: sistema único, sin iconos inyectados ni botones gigantes. */
.table-actions-v116,
table.responsive-cards td[data-label="Acciones"],
table.responsive-cards td[data-label="Acción"],
table.responsive-cards td.actions {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:7px;
}
.table-actions-v116 form,
table.responsive-cards td[data-label="Acciones"] form,
table.responsive-cards td[data-label="Acción"] form,
table.responsive-cards td.actions form {
  display:inline-flex; margin:0; padding:0;
}
.table-actions-v116 .button,
table.responsive-cards td[data-label="Acciones"] .button,
table.responsive-cards td[data-label="Acción"] .button,
table.responsive-cards td.actions .button {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  min-width:0 !important; width:auto !important; min-height:34px !important; height:auto !important;
  padding:8px 12px !important; border-radius:10px !important;
  font-size:13px !important; font-weight:700 !important; line-height:1.1 !important;
  white-space:nowrap !important; text-align:center !important; writing-mode:horizontal-tb !important; text-orientation:mixed !important;
  transform:none; box-shadow:0 1px 2px rgba(15,23,42,.08) !important; gap:6px !important;
}
.table-actions-v116 .button::before,
table.responsive-cards td[data-label="Acciones"] .button::before,
table.responsive-cards td[data-label="Acción"] .button::before,
table.responsive-cards td.actions .button::before { content:none !important; display:none !important; }

/* Modales rápidos */
[id$="Modal"][style*="position:fixed"] > div[style*="max-width"],
#clienteQuickCreateModal > div[style*="max-width"] { max-width:min(560px,calc(100vw - 24px)) !important; }

@media (max-width: 900px) {
  .grid.two, .grid.cards { grid-template-columns:1fr !important; }
  .page-head .actions { width:100%; justify-content:flex-start; margin-left:0; }
}

@media (max-width: 760px) {
  .main { padding-left:12px !important; padding-right:12px !important; }
  .page-head { flex-direction:column; align-items:stretch; }
  .page-head .actions { display:grid; grid-template-columns:1fr; gap:8px; }
  .page-head .actions .button, .page-head > .button { width:100%; }
  .toolbar { display:grid; grid-template-columns:1fr; gap:10px; }
  .toolbar .field, .toolbar .button, .toolbar button { width:100%; }

  .card:has(table.responsive-cards) { overflow:visible !important; }
  table.responsive-cards { min-width:0 !important; width:100% !important; border-collapse:separate !important; border-spacing:0 12px !important; }
  table.responsive-cards thead { display:none !important; }
  table.responsive-cards tbody, table.responsive-cards tr, table.responsive-cards td { display:block !important; width:100% !important; }
  table.responsive-cards tr {
    background:#fff; border:1px solid #e5e7eb; border-radius:14px;
    box-shadow:0 6px 18px rgba(15,23,42,.06); padding:10px 12px; overflow:hidden;
  }
  table.responsive-cards td {
    border-bottom:0 !important; padding:7px 0 !important;
    display:grid !important; grid-template-columns:minmax(92px,34%) minmax(0,1fr) !important;
    gap:10px !important; align-items:start !important; font-size:13px !important; min-width:0 !important;
  }
  table.responsive-cards td::before {
    content:attr(data-label); color:#64748b; font-size:11px; font-weight:800;
    text-transform:uppercase; letter-spacing:.03em; line-height:1.2;
  }
  table.responsive-cards td[data-label=""], table.responsive-cards td[data-label="Acciones"], table.responsive-cards td[data-label="Acción"], table.responsive-cards td.actions {
    display:block !important; padding-top:10px !important; margin-top:4px; border-top:1px solid #e5e7eb !important;
  }
  table.responsive-cards td[data-label=""]::before { display:none !important; }
  table.responsive-cards td[data-label="Acciones"]::before, table.responsive-cards td[data-label="Acción"]::before, table.responsive-cards td.actions::before {
    display:block !important; margin-bottom:8px;
  }
  .table-actions-v116, table.responsive-cards td[data-label="Acciones"], table.responsive-cards td[data-label="Acción"], table.responsive-cards td.actions {
    display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px !important;
  }
  .table-actions-v116 form, table.responsive-cards td[data-label="Acciones"] form, table.responsive-cards td[data-label="Acción"] form, table.responsive-cards td.actions form { display:block !important; width:100% !important; }
  .table-actions-v116 .button, table.responsive-cards td[data-label="Acciones"] .button, table.responsive-cards td[data-label="Acción"] .button, table.responsive-cards td.actions .button {
    width:100% !important; min-height:38px !important; padding:9px 8px !important; white-space:normal !important;
  }
}

@media (max-width: 390px) {
  table.responsive-cards td { grid-template-columns:1fr !important; gap:4px !important; }
  .table-actions-v116, table.responsive-cards td[data-label="Acciones"], table.responsive-cards td[data-label="Acción"], table.responsive-cards td.actions { grid-template-columns:1fr !important; }
}

/* Protección: agenda visual queda fuera del sistema de acciones/cards. */
.aq-agenda-shell table, .aq-agenda-scroll table, .agenda-grid table { min-width:initial; }
.aq-agenda-shell .button::before, .aq-agenda-scroll .button::before, .agenda-grid .button::before { content:none !important; display:none !important; }
/* END RESPONSIVE_SYSTEM_V116_LOCKED */


/* ==========================================================
   RESPONSIVE_ACTIONS_V117_CONTROLLED
   Corrección exclusiva de acciones en tablas/cards.
   No toca agenda visual, disponibilidad, estados, buffers ni formularios.
   ========================================================== */

/* Neutralizar sistema viejo de iconos/gradientes SOLO en celdas de acciones. */
.table-actions-v116 .button,
table.responsive-cards td[data-label="Acciones"] .button,
table.responsive-cards td[data-label="Acción"] .button,
table.responsive-cards td.actions .button {
    appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    width: 86px !important;
    min-width: 86px !important;
    max-width: 86px !important;
    min-height: 30px !important;
    height: 30px !important;
    padding: 0 9px !important;
    border-radius: 9px !important;
    border: 1px solid transparent !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    text-align: center !important;
    text-decoration: none !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    box-shadow: 0 4px 10px rgba(15,23,42,.10) !important;
    transform: none !important;
    gap: 0 !important;
}

.table-actions-v116 .button::before,
.table-actions-v116 .button::after,
table.responsive-cards td[data-label="Acciones"] .button::before,
table.responsive-cards td[data-label="Acciones"] .button::after,
table.responsive-cards td[data-label="Acción"] .button::before,
table.responsive-cards td[data-label="Acción"] .button::after,
table.responsive-cards td.actions .button::before,
table.responsive-cards td.actions .button::after {
    content: none !important;
    display: none !important;
}

.table-actions-v116,
table.responsive-cards td[data-label="Acciones"],
table.responsive-cards td[data-label="Acción"],
table.responsive-cards td.actions {
    display: grid !important;
    grid-template-columns: repeat(2, 86px) !important;
    justify-content: start !important;
    align-items: center !important;
    gap: 7px 8px !important;
    min-width: 184px !important;
    width: max-content !important;
    max-width: 100% !important;
}

.table-actions-v116 form,
table.responsive-cards td[data-label="Acciones"] form,
table.responsive-cards td[data-label="Acción"] form,
table.responsive-cards td.actions form {
    display: block !important;
    width: 86px !important;
    min-width: 86px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.table-actions-v116 .button:hover,
table.responsive-cards td[data-label="Acciones"] .button:hover,
table.responsive-cards td[data-label="Acción"] .button:hover,
table.responsive-cards td.actions .button:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 7px 15px rgba(15,23,42,.14) !important;
    filter: brightness(1.02) !important;
}

/* Colores sobrios por acción, sin iconos ni círculos falsos. */
.table-actions-v116 .button[href*="/editar"],
table.responsive-cards td.actions .button[href*="/editar"],
table.responsive-cards td[data-label="Acciones"] .button[href*="/editar"] {
    background: #2563eb !important;
    color: #fff !important;
}

.table-actions-v116 .button[href*="horarios"],
table.responsive-cards td.actions .button[href*="horarios"],
table.responsive-cards td[data-label="Acciones"] .button[href*="horarios"] {
    background: #0891b2 !important;
    color: #fff !important;
}

.table-actions-v116 .button[href*="bloqueos"],
table.responsive-cards td.actions .button[href*="bloqueos"],
table.responsive-cards td[data-label="Acciones"] .button[href*="bloqueos"] {
    background: #7c3aed !important;
    color: #fff !important;
}

.table-actions-v116 .button.danger,
.table-actions-v116 form[action*="inactivar"] .button,
table.responsive-cards td.actions .button.danger,
table.responsive-cards td.actions form[action*="inactivar"] .button,
table.responsive-cards td[data-label="Acciones"] .button.danger,
table.responsive-cards td[data-label="Acciones"] form[action*="inactivar"] .button {
    background: #e11d48 !important;
    color: #fff !important;
}

.table-actions-v116 form[action*="activar"] .button:not(.danger),
table.responsive-cards td.actions form[action*="activar"] .button:not(.danger),
table.responsive-cards td[data-label="Acciones"] form[action*="activar"] .button:not(.danger) {
    background: #16a34a !important;
    color: #fff !important;
}

.table-actions-v116 .button.secondary:not([href*="horarios"]):not([href*="bloqueos"]),
table.responsive-cards td.actions .button.secondary:not([href*="horarios"]):not([href*="bloqueos"]),
table.responsive-cards td[data-label="Acciones"] .button.secondary:not([href*="horarios"]):not([href*="bloqueos"]) {
    background: #f8fafc !important;
    color: #334155 !important;
    border-color: #cbd5e1 !important;
}

@media (max-width: 760px) {
    table.responsive-cards td[data-label="Acciones"],
    table.responsive-cards td[data-label="Acción"],
    table.responsive-cards td.actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        width: 100% !important;
        min-width: 0 !important;
        gap: 8px !important;
        padding-top: 10px !important;
    }

    table.responsive-cards td[data-label="Acciones"] .button,
    table.responsive-cards td[data-label="Acción"] .button,
    table.responsive-cards td.actions .button,
    table.responsive-cards td[data-label="Acciones"] form,
    table.responsive-cards td[data-label="Acción"] form,
    table.responsive-cards td.actions form {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }

    table.responsive-cards td[data-label="Acciones"] .button,
    table.responsive-cards td[data-label="Acción"] .button,
    table.responsive-cards td.actions .button {
        height: 32px !important;
        min-height: 32px !important;
        font-size: 12px !important;
        padding: 0 8px !important;
        border-radius: 8px !important;
    }
}

@media (max-width: 390px) {
    table.responsive-cards td[data-label="Acciones"],
    table.responsive-cards td[data-label="Acción"],
    table.responsive-cards td.actions {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
/* END RESPONSIVE_ACTIONS_V117_CONTROLLED */

/* ==========================================================
   RESPONSIVE_MOBILE_CARDS_V118_CONTROLLED
   Pulido exclusivo de cards administrativas en móvil/ventana angosta.
   No toca agenda visual, disponibilidad, estados, buffers ni lógica.
   ========================================================== */

@media (max-width: 760px) {
    /* Contenedor: menos aire muerto y mejor lectura en navegador angosto. */
    .main {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .page-head {
        align-items: stretch !important;
        gap: 10px !important;
        margin-bottom: 14px !important;
    }

    .page-head h1 {
        margin-bottom: 0 !important;
        line-height: 1.15 !important;
    }

    .page-head > .button,
    .page-head > form .button {
        width: 100% !important;
        min-height: 38px !important;
        height: 38px !important;
        border-radius: 12px !important;
        padding: 0 14px !important;
        box-shadow: 0 8px 18px rgba(37,99,235,.16) !important;
    }

    .page-head > .button::before,
    .page-head > form .button::before {
        width: 16px !important;
        height: 16px !important;
        min-width: 16px !important;
        font-size: 10px !important;
    }

    .card {
        border-radius: 16px !important;
        padding: 12px !important;
        overflow: visible !important;
    }

    table.responsive-cards {
        border-spacing: 0 10px !important;
    }

    table.responsive-cards tr {
        border-radius: 13px !important;
        padding: 10px 12px !important;
        box-shadow: 0 5px 14px rgba(15,23,42,.055) !important;
    }

    table.responsive-cards td {
        padding: 5px 0 !important;
        grid-template-columns: minmax(86px, 31%) minmax(0, 1fr) !important;
        gap: 8px !important;
        line-height: 1.35 !important;
        overflow-wrap: anywhere !important;
    }

    table.responsive-cards td::before {
        font-size: 10.5px !important;
        letter-spacing: .035em !important;
        align-self: start !important;
    }

    table.responsive-cards .badge,
    table.responsive-cards td .badge {
        width: fit-content !important;
        max-width: 100% !important;
        min-height: 24px !important;
        padding: 4px 10px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 999px !important;
    }

    /* Corrección clave: el label ACCIONES ocupa toda la fila.
       Antes entraba como primer item del grid y desplazaba el botón Editar. */
    table.responsive-cards td[data-label="Acciones"]::before,
    table.responsive-cards td[data-label="Acción"]::before,
    table.responsive-cards td.actions::before {
        grid-column: 1 / -1 !important;
        margin: 0 0 2px 0 !important;
        padding-bottom: 2px !important;
    }

    table.responsive-cards td[data-label="Acciones"],
    table.responsive-cards td[data-label="Acción"],
    table.responsive-cards td.actions {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
        padding-top: 9px !important;
        margin-top: 6px !important;
        border-top: 1px solid #e5e7eb !important;
    }

    table.responsive-cards td[data-label="Acciones"] .button,
    table.responsive-cards td[data-label="Acción"] .button,
    table.responsive-cards td.actions .button {
        height: 31px !important;
        min-height: 31px !important;
        border-radius: 8px !important;
        padding: 0 8px !important;
        font-size: 11.5px !important;
        font-weight: 800 !important;
        box-shadow: 0 4px 10px rgba(15,23,42,.10) !important;
    }

    table.responsive-cards td[data-label="Acciones"] form,
    table.responsive-cards td[data-label="Acción"] form,
    table.responsive-cards td.actions form {
        margin: 0 !important;
    }
}

@media (max-width: 420px) {
    .main {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .card {
        padding: 10px !important;
    }

    table.responsive-cards tr {
        padding: 9px 10px !important;
    }

    table.responsive-cards td {
        grid-template-columns: minmax(78px, 30%) minmax(0, 1fr) !important;
        gap: 7px !important;
        font-size: 12.5px !important;
    }

    table.responsive-cards td[data-label="Acciones"],
    table.responsive-cards td[data-label="Acción"],
    table.responsive-cards td.actions {
        gap: 6px !important;
    }

    table.responsive-cards td[data-label="Acciones"] .button,
    table.responsive-cards td[data-label="Acción"] .button,
    table.responsive-cards td.actions .button {
        height: 30px !important;
        min-height: 30px !important;
        font-size: 11px !important;
    }
}
/* END RESPONSIVE_MOBILE_CARDS_V118_CONTROLLED */

/* ==========================================================
   RESPONSIVE_MOBILE_POLISH_V119_CONTROLLED
   Pulido móvil global: compacta headers, toolbars, leyendas,
   cards y documentos sin cambiar estructura ni lógica.
   ========================================================== */

@media (max-width: 760px) {
  /* Base móvil: menos aire vertical, sin alterar estructura. */
  body {
    -webkit-text-size-adjust: 100%;
  }

  .mobile-menu-btn,
  .menu-toggle,
  .sidebar-toggle,
  button[aria-label="Menú"],
  a[aria-label="Menú"] {
    min-height: 36px !important;
    height: 36px !important;
    padding: 0 12px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    box-shadow: 0 8px 18px rgba(15,23,42,.18) !important;
  }

  .main h1 {
    font-size: clamp(24px, 7vw, 31px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
    margin-top: 10px !important;
    margin-bottom: 10px !important;
  }

  .main h2,
  .card h2 {
    font-size: clamp(18px, 5.2vw, 23px) !important;
    line-height: 1.16 !important;
    margin-bottom: 10px !important;
  }

  .main h3,
  .card h3 {
    font-size: clamp(16px, 4.4vw, 20px) !important;
    line-height: 1.18 !important;
  }

  .card + .card,
  .aq-agenda-hero + .card,
  .aq-filters-panel + .card,
  .card + .aq-filters-panel {
    margin-top: 14px !important;
  }

  /* Botones generales: más sobrios y compactos, sin cambiar colores por pantalla. */
  .button:not(.small),
  button.button:not(.small),
  a.button:not(.small) {
    min-height: 38px !important;
    border-radius: 12px !important;
    padding: 0 14px !important;
    font-size: 13px !important;
    line-height: 1 !important;
    gap: 7px !important;
  }

  .button.secondary:not(.small),
  .button-light:not(.small),
  a.button.secondary:not(.small) {
    box-shadow: 0 5px 14px rgba(15,23,42,.07) !important;
  }

  /* Toolbars/filtros administrativos: apilado limpio. */
  .toolbar {
    gap: 9px !important;
    margin-bottom: 12px !important;
  }

  .toolbar > div {
    min-width: 0 !important;
    flex: 1 1 100% !important;
  }

  .toolbar label {
    margin-bottom: 5px !important;
    font-size: 12px !important;
  }

  .toolbar input,
  .toolbar select,
  .toolbar textarea,
  form input,
  form select,
  form textarea {
    min-height: 38px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
  }

  .toolbar-actions {
    width: 100% !important;
    margin-top: 2px !important;
    padding-top: 0 !important;
    gap: 8px !important;
  }

  .toolbar-actions .button {
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }

  /* Agenda móvil: compactar cabecera/leyenda sin tocar grilla ni slots. */
  .aq-agenda-page {
    gap: 12px !important;
  }

  .aq-agenda-hero {
    padding: 14px !important;
    border-radius: 18px !important;
  }

  .aq-agenda-hero h1 {
    font-size: 25px !important;
    margin: 5px 0 5px !important;
  }

  .aq-agenda-hero p {
    font-size: 13px !important;
    margin-bottom: 10px !important;
  }

  .aq-agenda-actions {
    gap: 8px !important;
  }

  .aq-date-pill {
    min-height: 42px !important;
    padding: 7px 10px !important;
    border-radius: 13px !important;
  }

  .aq-date-pill strong {
    font-size: 15px !important;
    line-height: 1.05 !important;
  }

  .aq-date-pill span,
  .aq-date-pill small {
    font-size: 11px !important;
  }

  .aq-date-nav,
  .aq-agenda-actions .button-light {
    min-width: 40px !important;
    width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    border-radius: 12px !important;
    padding: 0 !important;
  }

  .aq-agenda-actions .button:not(.button-light),
  .aq-agenda-hero > .button,
  .aq-agenda-hero a.button {
    min-height: 46px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
  }

  .aq-filters-panel {
    border-radius: 18px !important;
    margin-top: 12px !important;
  }

  .aq-filters-panel summary {
    padding: 12px 14px !important;
  }

  .aq-filters-panel summary span {
    font-size: 14px !important;
  }

  .aq-filters-panel summary span::before {
    width: 28px !important;
    height: 28px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
  }

  .aq-filters-panel summary small {
    font-size: 11px !important;
  }

  .aq-filters-panel summary::after {
    width: 31px !important;
    height: 31px !important;
  }

  .aq-agenda-topbar {
    padding: 12px 12px 10px !important;
    gap: 9px !important;
  }

  .aq-agenda-topbar strong {
    font-size: 16px !important;
  }

  .aq-agenda-topbar span,
  .aq-agenda-topbar small {
    font-size: 11.5px !important;
  }

  .aq-agenda-legend {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    padding-top: 8px !important;
  }

  .aq-agenda-legend span {
    min-height: 25px !important;
    padding: 4px 8px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    justify-content: center !important;
  }

  .aq-agenda-legend i {
    width: 8px !important;
    height: 8px !important;
  }

  .aq-agenda-hint {
    padding: 8px 10px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
  }

  .card p,
  .card small {
    line-height: 1.35 !important;
  }

  /* Formularios: solo spacing suave, no rehacer layouts. */
  form .card,
  .form-card,
  .section-card {
    border-radius: 16px !important;
  }

  form .field,
  form .form-group,
  form .input-group,
  .field,
  .form-group {
    margin-bottom: 13px !important;
  }

  form label {
    margin-bottom: 5px !important;
    font-size: 13px !important;
  }

  form textarea {
    min-height: 92px !important;
  }

  /* Editar cita/documentos: bajar peso visual del upload. */
  .cita-docs-premium {
    border-radius: 16px !important;
    box-shadow: 0 7px 20px rgba(15,23,42,.055) !important;
  }

  .cita-docs-premium-head {
    gap: 11px !important;
    padding-bottom: 12px !important;
    margin-bottom: 12px !important;
  }

  .cita-docs-premium-icon {
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    font-size: 22px !important;
  }

  .cita-docs-premium-head h3 {
    font-size: 18px !important;
    margin-bottom: 2px !important;
  }

  .cita-docs-premium-head p {
    font-size: 12.5px !important;
    line-height: 1.25 !important;
  }

  .cita-docs-counter {
    min-width: 52px !important;
    padding: 6px 9px !important;
    font-size: 12px !important;
  }

  .cita-premium-drop {
    min-height: 142px !important;
    padding: 16px 12px !important;
    border-radius: 15px !important;
    gap: 6px !important;
  }

  .cita-premium-cloud {
    font-size: 40px !important;
  }

  .cita-premium-title {
    font-size: 15px !important;
  }

  .cita-premium-subtitle,
  .cita-premium-rules {
    font-size: 12.5px !important;
  }

  .cita-premium-selected {
    margin-top: 10px !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    gap: 8px !important;
  }

  .cita-premium-check,
  .cita-premium-remove {
    width: 30px !important;
    height: 30px !important;
    font-size: 17px !important;
  }

  .cita-premium-info-row {
    margin-top: 12px !important;
    border-radius: 10px !important;
  }

  .cita-premium-info-row span {
    padding: 10px 8px !important;
    font-size: 12.5px !important;
  }

  .cita-premium-info-row strong {
    font-size: 16px !important;
  }

  .cita-premium-one-file {
    margin-top: 9px !important;
    font-size: 12.5px !important;
  }

  .cita-premium-submit {
    min-width: 0 !important;
    width: min(100%, 260px) !important;
    min-height: 38px !important;
  }

  .cita-docs-table-wrap {
    margin-top: 14px !important;
    border-radius: 12px !important;
  }
}

@media (max-width: 420px) {
  .main h1 {
    font-size: 25px !important;
  }

  .button:not(.small),
  button.button:not(.small),
  a.button:not(.small) {
    min-height: 36px !important;
    font-size: 12.5px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .aq-agenda-hero {
    padding: 12px !important;
  }

  .aq-agenda-hero h1 {
    font-size: 24px !important;
  }

  .aq-agenda-actions .button:not(.button-light),
  .aq-agenda-hero > .button,
  .aq-agenda-hero a.button {
    min-height: 43px !important;
  }

  .aq-agenda-topbar {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .aq-agenda-legend span {
    font-size: 10.5px !important;
  }

  .cita-premium-drop {
    min-height: 132px !important;
  }
}
/* END RESPONSIVE_MOBILE_POLISH_V119_CONTROLLED */



/* Componentes: componentes reporte/password separado en public/assets/components.css (v122). */



/* Perfiles: CSS separado en public/assets/perfiles.css (v118). */

/* Componentes: inline-action-form separado en public/assets/components.css (v122). */


/* Perfiles: CSS separado en public/assets/perfiles.css (v118). */
/* CLEANUP: bloque antiguo de acciones removido para evitar parches duplicados. */




/* CLEANUP: bloque antiguo de acciones removido para evitar parches duplicados. */




/* CLEANUP: bloque antiguo de acciones removido para evitar parches duplicados. */



/* CLEANUP: bloque antiguo de acciones removido para evitar parches duplicados. */



/* CLEANUP: bloque antiguo de acciones removido para evitar parches duplicados. */





/* CLEANUP: rescate antiguo de parámetros removido; reemplazado por base única abajo. */

/* Mantenimientos: CSS separado en public/assets/mantenimientos.css (v117). */

/* QA v36.01 - Horarios recomendados
   Solo UI: marca los horarios ya optimizados por el backend. */
.hora-btn.hora-btn-recomendada {
    border-color: #16a34a;
    background: #f0fdf4;
    color: #14532d;
}
.hora-btn.hora-btn-recomendada:hover {
    border-color: #15803d;
    color: #14532d;
}
.hora-btn.hora-btn-recomendada.selected {
    background: #16a34a;
    color: #fff;
    border-color: #16a34a;
}
.hora-btn-time {
    display: block;
    line-height: 1.1;
}
.hora-btn-badge {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.1;
}

/* v36.04 QA - opciones optimizadas: marca discreta amarilla */
.hora-btn.hora-btn-recomendada{border-color:#facc15 !important;background:#fffbeb !important;color:#713f12 !important;}
.hora-btn.hora-btn-recomendada .hora-btn-badge{background:#facc15 !important;color:#713f12 !important;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:800;}


/* ==========================================================
   v40 QA - Estrella recomendada amarilla definitiva
   ========================================================== */
.aq-calendar-grid-v61 .aq-grid-slot .aq-recommended-slot-badge,
.aq-calendar-grid-v61 .aq-grid-slot.is-recommended-slot .aq-recommended-slot-badge,
.aq-calendar-grid-v61 [data-recommended-slot="1"] .aq-recommended-slot-badge{
  color:#facc15 !important;
  background:transparent !important;
  box-shadow:none !important;
  text-shadow:0 1px 2px rgba(0,0,0,.35) !important;
}


/* ==========================================================
   v41 QA - estrella recomendada amarilla mediante SVG
   Evita que el símbolo se renderice negro por fuentes del navegador.
   ========================================================== */
.aq-calendar-grid-v61 .aq-grid-slot .aq-recommended-slot-badge,
.aq-calendar-grid-v61 .aq-grid-slot.is-recommended-slot .aq-recommended-slot-badge,
.aq-calendar-grid-v61 [data-recommended-slot="1"] .aq-recommended-slot-badge{
  position:absolute !important;
  right:5px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:17px !important;
  height:17px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  pointer-events:none !important;
  z-index:8 !important;
}
.aq-calendar-grid-v61 .aq-grid-slot .aq-recommended-slot-badge .aq-recommended-star-svg,
.aq-calendar-grid-v61 .aq-grid-slot.is-recommended-slot .aq-recommended-slot-badge .aq-recommended-star-svg,
.aq-calendar-grid-v61 [data-recommended-slot="1"] .aq-recommended-slot-badge .aq-recommended-star-svg{
  display:block !important;
  width:15px !important;
  height:15px !important;
  fill:#facc15 !important;
  stroke:#a16207 !important;
  stroke-width:1.25 !important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.28)) !important;
}


/* AGENDA v2.1.0 - Acciones de documentos de cita */
.cita-doc-actions{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:nowrap}
.cita-doc-actions form{margin:0;display:inline-flex}
.cita-doc-actions .button.small{white-space:nowrap}
.small-text{font-size:12px;margin-top:4px}
@media (max-width:760px){.cita-doc-actions{justify-content:center;flex-wrap:nowrap}.cita-doc-actions form{width:auto}.cita-doc-actions .button.small{width:auto;text-align:center;justify-content:center;padding-left:10px;padding-right:10px}}

/* AGENDA v2.1.4 - Documentos cita: botones alineados y adaptativos */
.cita-docs-table th:last-child,
.cita-docs-table td:last-child{
  width:320px !important;
  min-width:320px !important;
  text-align:center !important;
  vertical-align:middle !important;
}
.cita-doc-actions{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  flex-wrap:nowrap !important;
  width:100% !important;
  max-width:100% !important;
  overflow:visible !important;
}
.cita-doc-actions form{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.cita-doc-actions .button.small,
.cita-doc-actions button.button.small{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  width:auto !important;
  max-width:none !important;
  min-height:34px !important;
  height:34px !important;
  padding:0 16px !important;
  border-radius:10px !important;
  font-size:12px !important;
  font-weight:800 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  text-align:center !important;
  overflow:visible !important;
  text-overflow:clip !important;
}
.cita-doc-actions .action-send-document-client{
  min-width:132px !important;
}
.cita-doc-actions .action-remove-document{
  min-width:96px !important;
}
.cita-doc-actions .button.small::before,
.cita-doc-actions .button.small::after,
.cita-doc-actions button.button.small::before,
.cita-doc-actions button.button.small::after{
  content:none !important;
  display:none !important;
}
@media (max-width:760px){
  .cita-docs-table th:last-child,
  .cita-docs-table td:last-child{
    width:auto !important;
    min-width:0 !important;
  }
  .cita-doc-actions{
    display:grid !important;
    grid-template-columns:minmax(132px,1fr) minmax(96px,1fr) !important;
    gap:8px !important;
    justify-content:stretch !important;
    align-items:center !important;
  }
  .cita-doc-actions form{
    width:100% !important;
  }
  .cita-doc-actions .button.small,
  .cita-doc-actions button.button.small{
    width:100% !important;
    min-width:0 !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 10px !important;
  }
}
@media (max-width:390px){
  .cita-doc-actions{
    grid-template-columns:1fr !important;
  }
}


/* v2.1.7 - Acciones de documentos aisladas, sin heredar botones globales */
.cita-docs-table{
  width:100% !important;
  table-layout:fixed !important;
}
.cita-docs-table .cita-docs-actions-head,
.cita-docs-table .cita-docs-actions-cell{
  width:360px !important;
  min-width:360px !important;
  max-width:360px !important;
  box-sizing:border-box !important;
  text-align:center !important;
  vertical-align:middle !important;
  overflow:visible !important;
  white-space:normal !important;
  padding:14px 18px !important;
}
.cita-docs-table .doc-client-actions-217{
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:12px !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 auto !important;
  padding:0 !important;
  overflow:visible !important;
  white-space:nowrap !important;
}
.cita-docs-table .doc-client-actions-217 form{
  box-sizing:border-box !important;
  display:block !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
  float:none !important;
  overflow:visible !important;
}
.cita-docs-table .doc-client-btn,
.cita-docs-table button.doc-client-btn{
  appearance:none !important;
  -webkit-appearance:none !important;
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  position:static !important;
  float:none !important;
  transform:none !important;
  margin:0 !important;
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  border-radius:10px !important;
  border:1px solid transparent !important;
  font-family:inherit !important;
  font-size:14px !important;
  font-weight:800 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
  cursor:pointer !important;
  box-shadow:0 10px 22px rgba(15,23,42,.12) !important;
}
.cita-docs-table .doc-client-btn::before,
.cita-docs-table .doc-client-btn::after,
.cita-docs-table button.doc-client-btn::before,
.cita-docs-table button.doc-client-btn::after{
  content:none !important;
  display:none !important;
  width:0 !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.cita-docs-table .doc-client-send{
  flex:0 0 170px !important;
  width:170px !important;
  min-width:170px !important;
  max-width:170px !important;
  padding:0 16px !important;
  background:linear-gradient(135deg,#ffffff,#f8fafc) !important;
  color:#0f172a !important;
  border-color:#dbe3ef !important;
}
.cita-docs-table .doc-client-remove{
  flex:0 0 100px !important;
  width:100px !important;
  min-width:100px !important;
  max-width:100px !important;
  padding:0 16px !important;
  background:linear-gradient(135deg,#dc2626,#f43f5e) !important;
  color:#ffffff !important;
  border-color:rgba(220,38,38,.28) !important;
}
.cita-docs-table .doc-client-btn:hover,
.cita-docs-table button.doc-client-btn:hover{
  filter:brightness(1.03) !important;
  transform:none !important;
}
@media (max-width:900px){
  .cita-docs-table{table-layout:auto !important; min-width:760px !important;}
  .cita-docs-table .cita-docs-actions-head,
  .cita-docs-table .cita-docs-actions-cell{
    width:320px !important;
    min-width:320px !important;
    max-width:320px !important;
  }
  .cita-docs-table .doc-client-send{width:155px !important; min-width:155px !important; max-width:155px !important; flex-basis:155px !important; font-size:13px !important;}
  .cita-docs-table .doc-client-remove{width:92px !important; min-width:92px !important; max-width:92px !important; flex-basis:92px !important; font-size:13px !important;}
}
@media (max-width:760px){
  .cita-docs-table{
    min-width:0 !important;
    table-layout:auto !important;
  }
  .cita-docs-table thead{display:none !important;}
  .cita-docs-table,
  .cita-docs-table tbody,
  .cita-docs-table tr,
  .cita-docs-table td{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
  .cita-docs-table tr{
    padding:12px !important;
    border-bottom:1px solid #e5e7eb !important;
  }
  .cita-docs-table td{
    padding:8px 0 !important;
    text-align:left !important;
  }
  .cita-docs-table .cita-docs-actions-cell{
    padding-top:12px !important;
    text-align:left !important;
  }
  .cita-docs-table .doc-client-actions-217{
    justify-content:flex-start !important;
    gap:10px !important;
  }
  .cita-docs-table .doc-client-send,
  .cita-docs-table .doc-client-remove{
    height:40px !important;
    min-height:40px !important;
  }
}
@media (max-width:430px){
  .cita-docs-table .doc-client-actions-217{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
  }
  .cita-docs-table .doc-client-actions-217 form,
  .cita-docs-table .doc-client-send,
  .cita-docs-table .doc-client-remove{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    flex-basis:auto !important;
  }
  .cita-docs-table .doc-client-btn,
  .cita-docs-table button.doc-client-btn{
    font-size:12px !important;
    padding:0 8px !important;
  }
}
@media (max-width:340px){
  .cita-docs-table .doc-client-actions-217{grid-template-columns:1fr !important;}
}

.empresa-create-v250{max-width:1540px;margin:0 auto;}
.empresa-create-head-v250{align-items:flex-start;gap:18px;margin-bottom:18px;}
.empresa-create-head-v250 h1{margin:0 0 6px;font-size:30px;color:#0f172a;}
.empresa-actions-v250{display:flex;gap:10px;align-items:center;}
.empresa-card-v250{border:1px solid #e2e8f0;box-shadow:0 14px 36px rgba(15,23,42,.06);padding:22px 24px;border-radius:18px;margin-bottom:16px;}
.empresa-section-title-v250{display:flex;align-items:center;gap:10px;margin-bottom:24px;}
.empresa-section-title-v250 h2{margin:0;font-size:18px;color:#0f172a;}
.empresa-section-icon-v250{width:28px;height:28px;border-radius:9px;background:#eff6ff;color:#2563eb;display:inline-flex;align-items:center;justify-content:center;font-weight:700;}
.empresa-layout-v250{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:34px;align-items:start;}
.empresa-fields-grid-v250{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px;}
.empresa-fields-grid-v250 .field{margin-bottom:0;}
.empresa-fields-grid-v250 label,.empresa-upload-column-v250>label{font-size:13px;color:#0f172a;font-weight:700;margin-bottom:7px;}
.empresa-fields-grid-v250 input,.empresa-fields-grid-v250 select,.empresa-fields-grid-v250 textarea{min-height:42px;border-radius:9px;border:1px solid #cbd5e1;background:#fff;box-shadow:none;}
.empresa-fields-grid-v250 textarea{min-height:92px;}
.empresa-fields-grid-v250 .field-span-2-v250{grid-column:span 2;}
.req-v250{color:#ef4444;}
.empresa-upload-column-v250{display:flex;flex-direction:column;gap:10px;min-width:0;}
.empresa-upload-box-v250{height:220px;border:1.5px dashed #b6c8e6;border-radius:12px;background:#fbfdff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:9px;color:#334155;cursor:pointer;padding:18px;}
.empresa-upload-box-small-v250{height:185px;}
.empresa-upload-box-v250 strong{font-size:15px;color:#0f172a;}
.empresa-upload-box-v250 small{font-size:13px;color:#64748b;}
.empresa-upload-icon-v250{font-size:42px;line-height:1;color:#2563eb;}
.empresa-file-input-v250{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.empresa-file-name-v250{min-height:34px;border:1px solid #dbeafe;background:#f8fbff;color:#64748b;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:8px 12px;font-size:13px;font-weight:600;text-align:center;word-break:break-word;}
.empresa-file-name-v250.has-file{color:#166534;border-color:#86efac;background:#f0fdf4;}
.empresa-summary-v250{margin-top:22px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px;padding:14px 18px;color:#1e3a8a;}
.empresa-summary-v250 strong{display:block;margin-bottom:12px;color:#1d4ed8;}
.empresa-summary-grid-v250{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;font-size:14px;}
.empresa-form-actions-v250{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}
@media (max-width:1100px){.empresa-layout-v250{grid-template-columns:1fr}.empresa-upload-column-v250{max-width:420px}.empresa-summary-grid-v250{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:720px){.empresa-create-head-v250{flex-direction:column}.empresa-actions-v250{width:100%;justify-content:stretch}.empresa-actions-v250 .button{flex:1}.empresa-fields-grid-v250{grid-template-columns:1fr}.empresa-fields-grid-v250 .field-span-2-v250{grid-column:span 1}.empresa-summary-grid-v250{grid-template-columns:1fr}.empresa-form-actions-v250{flex-direction:column}.empresa-form-actions-v250 .button{width:100%;}.empresa-upload-box-v250{height:175px}}



.config-alerta-inicial-v251{
  border:2px solid #dc2626 !important;
  background:#fef2f2 !important;
  color:#7f1d1d !important;
  margin-bottom:18px;
  box-shadow:0 12px 28px rgba(220,38,38,.12);
}
.config-alerta-inicial-v251 strong{
  display:block;
  font-size:20px;
  color:#b91c1c;
  margin-bottom:8px;
}
.config-alerta-inicial-v251 p{
  margin:0 0 10px;
  font-weight:600;
}
.config-alerta-inicial-v251 ul{
  margin:0 0 14px 18px;
  padding:0;
}
.config-alerta-inicial-v251 li{
  margin:5px 0;
  font-weight:700;
}
.config-alerta-actions-v251{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}


.table-actions-v253{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:8px !important;
    min-width:290px !important;
}

td.actions.table-actions-v253{
    min-width:290px !important;
}

.table-actions-v253 .button,
.table-actions-v253 form{
    margin:0 !important;
}

.table-actions-v253 .button{
    min-width:84px !important;
    height:34px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
}


/* v254: acciones de tabla Negocios */
.negocios-actions-th-v254{
    width:360px !important;
    min-width:360px !important;
}

td.actions.negocios-actions-v254{
    width:360px !important;
    min-width:360px !important;
    max-width:none !important;
    display:table-cell !important;
    white-space:nowrap !important;
    vertical-align:middle !important;
}

td.actions.negocios-actions-v254 > a,
td.actions.negocios-actions-v254 > form{
    display:inline-flex !important;
    vertical-align:middle !important;
    margin:0 6px 0 0 !important;
}

td.actions.negocios-actions-v254 form{
    padding:0 !important;
}

td.actions.negocios-actions-v254 .button{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    height:34px !important;
    min-width:88px !important;
    width:auto !important;
    padding:0 14px !important;
    white-space:nowrap !important;
    line-height:1 !important;
}


/* v255: botones de acciones en Negocios iguales al patrón de Personas */
table.responsive-cards th.negocios-actions-th-v255,
.negocios-actions-th-v255{
    width:390px !important;
    min-width:390px !important;
}

table.responsive-cards td.actions.negocios-actions-v255[data-label="Acciones"],
td.actions.negocios-actions-v255{
    width:390px !important;
    min-width:390px !important;
    max-width:none !important;
    vertical-align:middle !important;
    white-space:nowrap !important;
}

table.responsive-cards td.actions.negocios-actions-v255[data-label="Acciones"]{
    display:table-cell !important;
}

.negocios-actions-inline-v255{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:8px !important;
    width:max-content !important;
    min-width:0 !important;
    grid-column:1 / -1 !important;
}

.negocios-actions-inline-v255 > a,
.negocios-actions-inline-v255 > form{
    display:inline-flex !important;
    margin:0 !important;
    padding:0 !important;
    flex:0 0 auto !important;
}

.negocios-actions-inline-v255 .button{
    height:34px !important;
    min-width:88px !important;
    width:auto !important;
    padding:0 14px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
    line-height:1 !important;
}


/* v259: servicios por área en profesionales */
.profesional-area-card-v259{
    border:1px solid #e5e7eb;
    padding:12px;
    border-radius:12px;
    background:#fff;
}
.profesional-area-card-v259.is-selected-v259{
    border-color:#93c5fd;
    background:#f8fbff;
}
.profesional-area-header-v259{
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin:0;
}
.profesional-area-header-v259 span{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.profesional-area-header-v259 small{
    color:#64748b;
    font-weight:500;
}
.profesional-servicios-v259{
    margin-top:10px;
    padding:10px;
    border-radius:10px;
    background:#f8fafc;
    display:grid;
    gap:8px;
}
.profesional-servicio-option-v259{
    display:flex;
    gap:8px;
    align-items:flex-start;
    padding:8px 10px;
    border-radius:9px;
    background:#fff;
    border:1px solid #e2e8f0;
}
.profesional-servicio-option-v259 span{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.profesional-servicio-option-v259 small{
    color:#64748b;
}

/* ==========================================================
   MOBILE_DASHBOARD_REPORTS_V285
   Ajuste visual controlado: dashboard y resumen de reportes en móvil.
   No modifica lógica, filtros, cálculos ni exportaciones.
   ========================================================== */
@media (max-width: 760px) {
  .dashboard-mobile-cards {
    min-width: 0 !important;
  }

  .dashboard-mobile-cards td[data-label="Hora"] {
    font-weight: 800 !important;
    color: #0f172a !important;
  }

  .dashboard-mobile-cards td[data-label="Cliente"] strong,
  .dashboard-mobile-cards td[data-label="Profesional"] {
    color: #0f172a !important;
  }

  .report-summary-card {
    overflow: visible !important;
  }

  .report-summary-table {
    width: 100% !important;
    min-width: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
  }

  .report-summary-table tbody,
  .report-summary-table tr,
  .report-summary-table th,
  .report-summary-table td {
    display: block !important;
    width: 100% !important;
  }

  .report-summary-table tr {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 12px !important;
    align-items: center !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid #e5e7eb !important;
  }

  .report-summary-table tr:last-child {
    border-bottom: 0 !important;
  }

  .report-summary-table th,
  .report-summary-table td {
    border: 0 !important;
    padding: 0 !important;
  }

  .report-summary-table th {
    min-width: 0 !important;
    color: #334155 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-transform: none !important;
    overflow-wrap: anywhere !important;
  }

  .report-summary-table td {
    text-align: right !important;
    color: #0f172a !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 390px) {
  .report-summary-table tr {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
  }

  .report-summary-table td {
    text-align: left !important;
  }
}
/* END MOBILE_DASHBOARD_REPORTS_V285 */

/* ==========================================================
   MOBILE_DASHBOARD_ESTADO_V286
   Corrige dashboard móvil/intermedio: la columna Estado de Agenda de hoy
   no debe quedar fuera de pantalla. Convierte las tablas del dashboard en
   tarjetas desde 900px, porque el dashboard puede quedar angosto antes del
   breakpoint móvil global.
   ========================================================== */
@media (max-width: 900px) {
  .dashboard-lists .dashboard-mobile-cards,
  .dashboard-secretaria-operativa .dashboard-mobile-cards {
    min-width: 0 !important;
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 12px !important;
  }

  .dashboard-lists .dashboard-mobile-cards thead,
  .dashboard-secretaria-operativa .dashboard-mobile-cards thead {
    display: none !important;
  }

  .dashboard-lists .dashboard-mobile-cards tbody,
  .dashboard-lists .dashboard-mobile-cards tr,
  .dashboard-lists .dashboard-mobile-cards td,
  .dashboard-secretaria-operativa .dashboard-mobile-cards tbody,
  .dashboard-secretaria-operativa .dashboard-mobile-cards tr,
  .dashboard-secretaria-operativa .dashboard-mobile-cards td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .dashboard-lists .dashboard-mobile-cards tr,
  .dashboard-secretaria-operativa .dashboard-mobile-cards tr {
    background: #fff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 14px !important;
    box-shadow: 0 6px 18px rgba(15,23,42,.06) !important;
    padding: 10px 12px !important;
    overflow: hidden !important;
  }

  .dashboard-lists .dashboard-mobile-cards td,
  .dashboard-secretaria-operativa .dashboard-mobile-cards td {
    border-bottom: 0 !important;
    padding: 7px 0 !important;
    display: grid !important;
    grid-template-columns: minmax(92px,34%) minmax(0,1fr) !important;
    gap: 10px !important;
    align-items: start !important;
    font-size: 13px !important;
  }

  .dashboard-lists .dashboard-mobile-cards td::before,
  .dashboard-secretaria-operativa .dashboard-mobile-cards td::before {
    content: attr(data-label) !important;
    color: #64748b !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .03em !important;
    line-height: 1.2 !important;
  }

  .dashboard-lists .dashboard-mobile-cards td[data-label="Estado"],
  .dashboard-secretaria-operativa .dashboard-mobile-cards td[data-label="Estado"] {
    display: grid !important;
    visibility: visible !important;
  }
}
/* END MOBILE_DASHBOARD_ESTADO_V286 */


/* v360: validación visual para profesionales con áreas que tienen servicios */
.profesional-area-card-v259.has-error-v360 {
    border-color: #ef4444 !important;
    background: #fff7f7 !important;
    box-shadow: 0 0 0 1px rgba(239,68,68,.12);
}
.profesional-area-error-v360 {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b91c1c;
    font-weight: 700;
    line-height: 1.35;
}
.empty-state-inline.is-error-v360,
.alert.error {
    border-color: #fecaca !important;
    background: #fef2f2 !important;
    color: #b91c1c !important;
}

/* v363 crear cita desde agenda: campos fijos y errores visibles */
.form-alert-error {
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #b91c1c;
  border-radius: 14px;
  padding: 12px 14px;
  font-weight: 700;
  margin: 12px 0 16px;
}
.field-readonly-fixed input[readonly] {
  background: #f8fafc;
  color: #334155;
  cursor: not-allowed;
  border-color: #cbd5e1;
}
.field.is-invalid input,
.field.is-invalid select,
.field.is-invalid textarea {
  border-color: #ef4444 !important;
  background: #fff1f2 !important;
}
