/* ═══════════════════════════════════════════════════════════════
   ORBIT WEB · citas.css — SOLO lo que falta encima de orbit.css
   (lib/panel-original.css). Mismos tokens de Orbit: glass con
   backdrop-filter, radios 12–20px, azul #3B82F6, morado #8B5CF6,
   verde #10B981, naranja de "hoy" #FF6803, naranja tentativo
   #F97316. La Vega = azul, Bonao = morado (los dots de Orbit).
   ═══════════════════════════════════════════════════════════════ */

/* ── Chip de estado que a orbit.css le falta (Orbit lo usa por JS) ── */
.cita-tag.tentative{background:rgba(249,115,22,.12);color:#F97316}

/* ── Sede en el badge de hora: Bonao se pinta morado ── */
.cita-date-badge.sede-bonao{background:linear-gradient(135deg,var(--purple-500),var(--purple-600))}

/* ═══════════ CALENDARIO MENSUAL ═══════════ */
.ow-cal-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.ow-cal-mes{flex:1;text-align:center;font-size:14px;font-weight:800;color:var(--gray-900);letter-spacing:.01em}
.ow-cal-flecha{width:34px;height:30px;display:flex;align-items:center;justify-content:center;font-size:13px;padding:0}

.ow-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.ow-cal-dow{text-align:center;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-400);padding:4px 0 6px}
.ow-cal-dia{min-height:52px;padding:4px;border-radius:12px;background:rgba(255,255,255,0.4);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.25);cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:2px;overflow:hidden}
.ow-cal-dia:hover{background:rgba(255,255,255,0.55);transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.3)}
.ow-cal-dia:active{transform:scale(.98)}
.ow-cal-dia.fuera{opacity:.38}
.ow-cal-dia.hoy{border-left:3px solid #FF6803}
.ow-cal-dia.abierto{border-color:rgba(59,130,246,.35);box-shadow:0 0 0 3px rgba(59,130,246,.12),inset 0 1px 0 rgba(255,255,255,.3)}
.ow-cal-num{font-size:11px;font-weight:700;color:var(--gray-700);line-height:1}
.ow-cal-dia.fuera .ow-cal-num{color:var(--gray-400);font-weight:500}
.ow-cal-dia.hoy .ow-cal-num{color:#FF6803;font-weight:800}

.ow-cal-pastilla{font-size:8px;font-weight:700;padding:1px 5px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ow-cal-pastilla.lavega{background:rgba(59,130,246,.12);color:var(--blue-600);border:1px solid rgba(59,130,246,.18)}
.ow-cal-pastilla.bonao{background:rgba(139,92,246,.12);color:var(--purple-600);border:1px solid rgba(139,92,246,.18)}
.ow-cal-puntos{display:flex;align-items:center;gap:3px;padding:0 2px}
.ow-cal-punto{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.ow-cal-punto.lavega{background:linear-gradient(135deg,var(--blue-500),var(--blue-600))}
.ow-cal-punto.bonao{background:linear-gradient(135deg,var(--purple-500),var(--purple-600))}
.ow-cal-mas{font-size:8px;font-weight:700;color:var(--gray-400)}

/* Panel del día elegido, debajo de la rejilla */
.ow-cal-dia-panel{display:flex;flex-direction:column;gap:8px;margin-top:4px;animation:confirmAppear .3s ease}
.ow-cal-cita{cursor:default}

/* ═══════════ AGENDA ═══════════ */
.ow-agenda-controles{padding:8px 16px 4px;display:flex;flex-direction:column;flex-shrink:0}
.ow-agenda-card{flex-direction:column;align-items:stretch;gap:8px;cursor:default}
.ow-agenda-fila{display:flex;align-items:center;gap:12px;width:100%}
.ow-hora-badge{width:52px;height:44px}
.ow-hora-badge .cita-date-day{font-size:13px}

.ow-btn-etapa{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;border:none;padding:6px 12px;border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;cursor:pointer;box-shadow:0 2px 4px rgba(139,92,246,.25);transition:all .2s;white-space:nowrap}
.ow-btn-etapa:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(139,92,246,.35)}
.ow-btn-etapa:disabled{opacity:.6;cursor:not-allowed;transform:none}
.ow-etapa-fin{color:#10b981;font-weight:600;font-size:11px;white-space:nowrap}

/* Barra de etapas — calcada de la .jz-etapas-barra de Orbit (7 puntos) */
.ow-etapas{display:flex;align-items:flex-start;justify-content:space-between;position:relative;margin:6px 0 2px;padding:0 4px;z-index:0;width:100%}
.ow-etapas-riel{position:absolute;top:4px;left:8px;right:8px;height:2px;background:rgba(120,120,120,.15);border-radius:2px;z-index:-1}
.ow-etapas-linea{position:absolute;top:4px;left:8px;height:2px;background:linear-gradient(90deg,hsl(210,100%,50%),hsl(280,100%,60%));border-radius:2px;z-index:-1;transition:width .3s}
.ow-etapa{display:flex;flex-direction:column;align-items:center;flex:1;text-align:center;z-index:1;min-width:0}
.ow-etapa-dot{width:6px;height:6px;border-radius:50%;background:rgba(120,120,120,.3);transition:all .3s}
.ow-etapa.hecha .ow-etapa-dot{background:hsl(210,100%,50%)}
.ow-etapa.activa .ow-etapa-dot{background:hsl(280,100%,65%);box-shadow:0 0 8px hsl(280,100%,65%);transform:scale(1.1)}
.ow-etapa-label{font-size:8px;line-height:1.2;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:var(--gray-400);font-weight:500}
.ow-etapa.hecha .ow-etapa-label{color:var(--gray-500);font-weight:600}
.ow-etapa.activa .ow-etapa-label{color:var(--text-color,#1e293b);font-weight:700}

/* Personalización del cliente (🎵 / 🧸), voz morada de las notas de Orbit */
.ow-persona{margin-top:2px;background:rgba(139,92,246,.05);border:1px solid rgba(139,92,246,.12);border-radius:10px;padding:7px 9px;font-size:11px;color:var(--gray-700);line-height:1.4}
.ow-persona-titulo{font-weight:700;color:#7C3AED}

/* ═══════════ SOLICITUD DEL SITIO WEB ═══════════ */
.ow-bloque-solicitudes{flex-shrink:0}
.ow-bloque-solicitudes .smart-title{color:#F97316}
.ow-solicitud-card{flex-direction:column;align-items:stretch;gap:8px;cursor:default;border:2px dashed rgba(249,115,22,.55);background:rgba(249,115,22,.05)}
.ow-solicitud-card:hover{background:rgba(249,115,22,.09);transform:none}
.ow-solicitud-header{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid rgba(249,115,22,.15)}
.ow-solicitud-ico{font-size:15px}
.ow-solicitud-titulo{flex:1;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#F97316}
.ow-solicitud-codigo{font-size:9px;font-weight:700;padding:2px 8px;border-radius:8px;background:rgba(249,115,22,.12);color:#EA580C;letter-spacing:.04em}
.ow-solicitud-cuerpo{display:flex;align-items:center;gap:12px;width:100%}
.ow-solicitud-acciones{display:flex;gap:8px;margin-top:2px}

/* Confirmar: la receta verde del "⚡ Confirmar Sesión" de Orbit */
.ow-btn-confirmar{flex:2;background:#10B981;color:#fff;border:none;padding:8px 12px;border-radius:8px;font-family:inherit;font-size:11px;font-weight:700;cursor:pointer;box-shadow:0 2px 4px rgba(16,185,129,.2);transition:all .2s;display:flex;align-items:center;justify-content:center;gap:5px}
.ow-btn-confirmar:hover{background:#059669;transform:translateY(-1px);box-shadow:0 4px 10px rgba(16,185,129,.3)}
.ow-btn-confirmar:disabled{opacity:.6;cursor:not-allowed;transform:none}

/* Rechazar: el rojo discreto del abandon-btn-force de Orbit */
.ow-btn-rechazar{flex:1;padding:8px;border-radius:8px;border:1px solid rgba(239,68,68,.15);background:rgba(239,68,68,.04);color:#DC2626;font-family:inherit;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s;opacity:.75}
.ow-btn-rechazar:hover{opacity:1;background:rgba(239,68,68,.1)}
.ow-btn-rechazo-final{background:linear-gradient(135deg,#EF4444,#DC2626);box-shadow:0 4px 18px rgba(239,68,68,.35)}
.ow-btn-rechazo-final:hover{box-shadow:0 6px 20px rgba(239,68,68,.45)}

/* ═══════════ TARJETA VERDE "SESIÓN CONFIRMADA" ═══════════ */
.ow-confirmada-card{padding:22px 18px;border-radius:16px;text-align:center;background:rgba(16,185,129,.08);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:2px solid rgba(16,185,129,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 16px rgba(16,185,129,.12);animation:confirmAppear .4s cubic-bezier(.16,1,.3,1)}
.ow-confirmada-ico{font-size:34px;margin-bottom:6px}
.ow-confirmada-titulo{font-size:14px;font-weight:900;color:#059669;letter-spacing:.06em;margin-bottom:6px}
.ow-confirmada-texto{font-size:12px;color:var(--gray-600);line-height:1.5}
.ow-confirmada-texto strong{color:#047857}

/* ═══════════ VACÍOS Y CARGA (la voz de Orbit) ═══════════ */
.ow-vacio{text-align:center;padding:40px 20px}
.ow-vacio-ico{font-size:36px;margin-bottom:12px}
.ow-vacio-titulo{font-size:14px;font-weight:600;color:var(--gray-600)}
.ow-vacio-sub{font-size:11px;color:var(--gray-400);margin-top:4px}
.ow-cargando{padding:10px 0}

/* Modal propio con las clases .cita-modal de orbit.css */
.ow-modal .cita-modal-content{max-height:none}
.ow-modal textarea.finput{resize:vertical;min-height:64px}

/* ═══════════ MODO OSCURO (mismos patrones body.dark-mode de Orbit) ═══════════ */
body.dark-mode .ow-cal-dia{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.06)}
body.dark-mode .ow-cal-dia:hover{background:rgba(255,255,255,0.1)}
body.dark-mode .ow-cal-dia.hoy{border-left-color:#FF6803}
body.dark-mode .ow-cal-num{color:rgba(255,255,255,.85)}
body.dark-mode .ow-cal-mes{color:rgba(255,255,255,.9)}
body.dark-mode .ow-solicitud-card{background:rgba(249,115,22,.06)}
body.dark-mode .ow-persona{background:rgba(139,92,246,.1);border-color:rgba(139,92,246,.15);color:rgba(255,255,255,.75)}
body.dark-mode .ow-confirmada-texto{color:rgba(255,255,255,.7)}
body.dark-mode .ow-etapa.activa .ow-etapa-label{color:rgba(255,255,255,.9)}
