/* ══════════════════════════════════════════════════════════
   DocuChat AI v2.3 — Fully isolated, theme-independent CSS
   All rules under .docuchat-wrap — zero :root pollution
   ══════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');

/* ── Variables scoped to our wrapper only ── */
.docuchat-wrap {
  --c-bg:      #111318;
  --c-surf:    #1a1d27;
  --c-surf2:   #22263a;
  --c-bd:      #2a2e42;
  --c-acc:     #7c6ff7;
  --c-acc2:    #9d96ff;
  --c-green:   #34d399;
  --c-txt:     #e2e8f0;
  --c-muted:   #8892aa;
  --c-dim:     #515a72;
  --c-user:    linear-gradient(135deg,#7c6ff7,#9d96ff);
  --c-danger:  #f87171;
  --c-warn:    #fb923c;
  --c-shadow:  0 20px 60px rgba(0,0,0,.6);
  --r:         14px;
  --r-sm:      9px;
  --font:      'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}
.docuchat-light {
  --c-bg:    #f8fafc;
  --c-surf:  #ffffff;
  --c-surf2: #f1f5f9;
  --c-bd:    #e2e8f0;
  --c-txt:   #1e293b;
  --c-muted: #64748b;
  --c-dim:   #94a3b8;
  --c-shadow: 0 20px 60px rgba(0,0,0,.12);
}

/* ── Hard reset — prevent theme styles bleeding in ── */
.docuchat-wrap, .docuchat-wrap * {
  all: revert;
  box-sizing: border-box;
  font-family: var(--font);
}
/* Re-apply revert-proof styles */
.docuchat-wrap *, .docuchat-wrap *::before, .docuchat-wrap *::after {
  box-sizing: border-box !important;
}
.docuchat-wrap { all: initial; display: block; font-family: var(--font); }

/* ══════════════════════════════════════════════════════════
   INLINE MODE  [docuchat_widget mode="inline"]
   ══════════════════════════════════════════════════════════ */
.docuchat-mode-inline .dc-window {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 720px;
  height: 560px;
  margin: 0 auto;
  background: var(--c-bg);
  border: 1px solid var(--c-bd);
  border-radius: var(--r);
  overflow: hidden;
  box-shadow: var(--c-shadow);
  font-family: var(--font);
  color: var(--c-txt);
  font-size: 14px;
}
.docuchat-mode-inline .dc-fab,
.docuchat-mode-inline .dc-modal-overlay { display: none !important; }

/* ══════════════════════════════════════════════════════════
   FLOAT MODE  [docuchat_widget mode="float"]
   ══════════════════════════════════════════════════════════ */
.docuchat-mode-float { position: static; }

/* FAB button */
.docuchat-mode-float .dc-fab {
  position: fixed;
  bottom: 24px; right: 24px;
  z-index: 2147483646;
  width: 54px; height: 54px;
  border-radius: 50%;
  background: linear-gradient(135deg, #7c6ff7, #a78bfa);
  border: none;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  box-shadow: 0 4px 20px rgba(124,111,247,.4), 0 2px 8px rgba(0,0,0,.25);
  transition: transform .18s, box-shadow .18s;
  padding: 0; margin: 0;
}
.docuchat-mode-float .dc-fab:hover {
  transform: scale(1.07);
  box-shadow: 0 6px 28px rgba(124,111,247,.55);
}
.docuchat-mode-float .dc-fab .dc-fab-ico  { display: block; }
.docuchat-mode-float .dc-fab .dc-fab-x   { display: none; }
.docuchat-mode-float .dc-fab.open .dc-fab-ico { display: none; }
.docuchat-mode-float .dc-fab.open .dc-fab-x  { display: block; }

.docuchat-mode-float .dc-fab-dot {
  position: absolute; top: 2px; right: 2px;
  width: 12px; height: 12px;
  background: var(--c-danger);
  border-radius: 50%;
  border: 2px solid #fff;
  display: none;
  animation: dc-ping 1.8s infinite;
}
@keyframes dc-ping {
  0%,100%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(1.4); opacity:.6; }
}

/* Float window */
.docuchat-mode-float .dc-window {
  position: fixed;
  bottom: 88px; right: 24px;
  z-index: 2147483647;
  width: 360px;
  max-height: calc(100vh - 110px);
  display: flex;
  flex-direction: column;
  background: var(--c-bg);
  border: 1px solid var(--c-bd);
  border-radius: var(--r);
  overflow: hidden;
  box-shadow: var(--c-shadow);
  color: var(--c-txt);
  font-size: 14px;
  font-family: var(--font);
  /* closed */
  opacity: 0;
  transform: translateY(12px) scale(.97);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}
.docuchat-mode-float .dc-window.open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* ══════════════════════════════════════════════════════════
   SHARED WINDOW COMPONENTS
   ══════════════════════════════════════════════════════════ */

/* Header */
.dc-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 13px 14px;
  background: var(--c-surf);
  border-bottom: 1px solid var(--c-bd);
  flex-shrink: 0;
}
.dc-head-l { display: flex; align-items: center; gap: 10px; }
.dc-head-r { display: flex; gap: 3px; }

.dc-av {
  position: relative;
  width: 34px; height: 34px;
  background: linear-gradient(135deg, #7c6ff7, #a78bfa);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; flex-shrink: 0;
  box-shadow: 0 0 10px rgba(124,111,247,.3);
}
.dc-av-dot {
  position: absolute; bottom: 1px; right: 1px;
  width: 8px; height: 8px;
  background: var(--c-green); border-radius: 50%;
  border: 2px solid var(--c-surf);
  animation: dc-pulse 2.2s infinite;
}
@keyframes dc-pulse {
  0%,100%{ box-shadow:0 0 0 0 rgba(52,211,153,.4); }
  50%{ box-shadow:0 0 0 4px rgba(52,211,153,0); }
}

.dc-title   { font-size: 13.5px; font-weight: 600; color: var(--c-txt); line-height: 1.3; }
.dc-subtitle{ font-size: 10.5px; color: var(--c-green); font-weight: 500; }

.dc-icon-btn {
  width: 28px; height: 28px;
  background: none; border: none; cursor: pointer;
  color: var(--c-dim);
  display: flex; align-items: center; justify-content: center;
  border-radius: 7px;
  transition: background .15s, color .15s;
  padding: 0;
}
.dc-icon-btn:hover { background: var(--c-surf2); color: var(--c-txt); }
.dc-book-trigger { color: var(--c-acc) !important; }

/* Messages */
.dc-msgs {
  flex: 1;
  overflow-y: auto;
  padding: 14px;
  display: flex; flex-direction: column; gap: 12px;
  background: var(--c-bg);
  scroll-behavior: smooth;
}
.dc-msgs::-webkit-scrollbar { width: 3px; }
.dc-msgs::-webkit-scrollbar-thumb { background: var(--c-bd); border-radius: 99px; }

.dc-msg {
  display: flex; flex-direction: column;
  max-width: 86%; gap: 3px;
  animation: dc-in .18s ease;
}
@keyframes dc-in { from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:translateY(0);} }
.dc-msg.dc-user { align-self: flex-end; align-items: flex-end; }
.dc-msg.dc-bot  { align-self: flex-start; align-items: flex-start; }
.dc-msg.dc-err .dc-bub {
  background: rgba(248,113,113,.1) !important;
  border-color: rgba(248,113,113,.3) !important;
  color: var(--c-danger) !important;
}

.dc-bub {
  padding: 9px 13px;
  border-radius: 13px;
  font-size: 13.5px; line-height: 1.65;
  word-break: break-word;
}
.dc-user .dc-bub {
  background: var(--c-user); color: #fff;
  border-bottom-right-radius: 3px;
}
.dc-bot .dc-bub {
  background: var(--c-surf);
  color: var(--c-txt);
  border: 1px solid var(--c-bd);
  border-bottom-left-radius: 3px;
}
.dc-bub p          { margin: 0 0 5px; line-height: 1.65; }
.dc-bub p:last-child{ margin: 0; }
.dc-bub strong     { font-weight: 600; }
.dc-bub em         { font-style: italic; }
.dc-bub a          { color: var(--c-acc2); word-break: break-all; }
.dc-bub code       { background: rgba(0,0,0,.2); padding: 1px 5px; border-radius: 4px; font-size: 12px; font-family: monospace; }
.dc-bub pre        { background: rgba(0,0,0,.25); padding: 9px 11px; border-radius: 7px; overflow-x: auto; margin: 5px 0; }
.dc-bub ul, .dc-bub ol { padding-left: 15px; margin: 4px 0; }
.dc-bub li         { margin-bottom: 2px; }
.dc-msg-t          { font-size: 10px; color: var(--c-dim); padding: 0 3px; }

/* Typing */
.dc-typing {
  padding: 0 14px 8px;
  display: none; align-items: center; gap: 7px;
  background: var(--c-bg);
}
.dc-typing.show { display: flex; }
.dc-dots {
  background: var(--c-surf); border: 1px solid var(--c-bd);
  border-radius: 99px; padding: 7px 11px;
  display: flex; gap: 3px; align-items: center;
}
.dc-dots span {
  width: 5px; height: 5px; background: var(--c-acc);
  border-radius: 50%; animation: dc-b 1.2s infinite; display: block;
}
.dc-dots span:nth-child(2){ animation-delay:.2s; }
.dc-dots span:nth-child(3){ animation-delay:.4s; }
@keyframes dc-b{0%,60%,100%{transform:translateY(0);opacity:.4;}30%{transform:translateY(-4px);opacity:1;}}

/* Input row */
.dc-input-row {
  display: flex; align-items: flex-end; gap: 7px;
  padding: 9px 12px 5px;
  background: var(--c-surf);
  border-top: 1px solid var(--c-bd);
  flex-shrink: 0;
}
.dc-textarea {
  flex: 1; background: var(--c-surf2); border: 1px solid var(--c-bd);
  border-radius: 10px; padding: 8px 12px;
  color: var(--c-txt); font-size: 13.5px; line-height: 1.5;
  resize: none; max-height: 90px; overflow-y: auto;
  transition: border-color .18s; font-family: var(--font);
  width: 100%;
}
.dc-textarea:focus { outline: none; border-color: var(--c-acc); box-shadow: 0 0 0 3px rgba(124,111,247,.15); }
.dc-textarea::placeholder { color: var(--c-dim); }

.dc-send-btn {
  width: 34px; height: 34px; flex-shrink: 0;
  background: var(--c-acc); border: none; border-radius: 9px;
  color: #fff; display: flex; align-items: center; justify-content: center;
  transition: background .18s, transform .1s; cursor: pointer; padding: 0;
}
.dc-send-btn:hover:not(:disabled) { background: var(--c-acc2); }
.dc-send-btn:active:not(:disabled){ transform: scale(.94); }
.dc-send-btn:disabled { opacity: .3; cursor: not-allowed; }

/* Bottom bar */
.dc-bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 4px 12px 9px;
  background: var(--c-surf);
}
.dc-prov     { display: none; }
.dc-bar-book { background: none; border: none; cursor: pointer; font-size: 10.5px; color: var(--c-acc); padding: 0; font-family: var(--font); }
.dc-bar-book:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════════
   BOOKING MODAL — outside wrap, position:fixed
   ══════════════════════════════════════════════════════════ */
.dc-overlay {
  display: none; /* toggled via JS style.display */
  position: fixed;
  inset: 0; z-index: 2147483648;
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(4px);
  align-items: flex-start; justify-content: center;
  padding: 20px 16px;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  overflow-y: auto;
}
.dc-overlay.docuchat-dark  { --c-bg:#111318; --c-surf:#1a1d27; --c-surf2:#22263a; --c-bd:#2a2e42; --c-acc:#7c6ff7; --c-acc2:#9d96ff; --c-green:#34d399; --c-txt:#e2e8f0; --c-muted:#8892aa; --c-dim:#515a72; --c-danger:#f87171; }
.dc-overlay.docuchat-light { --c-bg:#f8fafc; --c-surf:#ffffff; --c-surf2:#f1f5f9; --c-bd:#e2e8f0; --c-acc:#7c6ff7; --c-acc2:#9d96ff; --c-green:#059669; --c-txt:#1e293b; --c-muted:#64748b; --c-dim:#94a3b8; --c-danger:#dc2626; }

.dc-overlay .dc-modal {
  background: var(--c-bg); border: 1px solid var(--c-bd);
  border-radius: var(--r); width: 100%; max-width: 480px;
  max-height: 90vh; overflow-y: auto;
  box-shadow: 0 24px 64px rgba(0,0,0,.6);
  animation: dc-modal-in-anim .2s ease;
}
@keyframes dc-modal-in-anim{from{opacity:0;transform:scale(.96)translateY(8px);}to{opacity:1;transform:scale(1)translateY(0);}}

.dc-overlay .dc-modal-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--c-bd);
  font-size: 15px; font-weight: 600; color: var(--c-txt);
}
.dc-overlay .dc-modal-close {
  background: none; border: none; color: var(--c-dim);
  font-size: 18px; cursor: pointer; padding: 0 4px; line-height: 1;
  transition: color .15s; font-family: var(--font);
}
.dc-overlay .dc-modal-close:hover { color: var(--c-txt); }

.dc-overlay .dc-modal-form { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px 18px; }
.dc-overlay .dc-mrow { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dc-overlay .dc-mfield { display: flex; flex-direction: column; gap: 5px; }

.dc-overlay .dc-mfield label { font-size: 11.5px; font-weight: 500; color: var(--c-muted); text-transform: uppercase; letter-spacing: .05em; }
.dc-overlay .dc-mfield input, .dc-mfield select, .dc-overlay .dc-mfield textarea {
  background: var(--c-surf2); border: 1px solid var(--c-bd);
  border-radius: var(--r-sm); padding: 9px 11px;
  color: var(--c-txt); font-size: 13.5px; font-family: var(--font);
  transition: border-color .18s; width: 100%;
}
.dc-overlay .dc-mfield input:focus, .dc-mfield select:focus, .dc-mfield textarea:focus {
  outline: none; border-color: var(--c-acc); box-shadow: 0 0 0 3px rgba(124,111,247,.15);
}
.dc-overlay .dc-mfield input::placeholder, .dc-mfield textarea::placeholder { color: var(--c-dim); }
.dc-overlay .dc-mfield select option { background: #1a1d27; color: #e2e8f0; }
.dc-overlay .dc-mfield textarea { resize: none; line-height: 1.5; }

/* CALENDAR */
.dc-overlay .dc-cal-wrap { display: flex; flex-direction: column; gap: 6px; }
.dc-overlay .dc-cal-wrap > label { font-size: 11.5px; font-weight: 500; color: var(--c-muted); text-transform: uppercase; letter-spacing: .05em; }

.dc-overlay .dc-cal {
  background: var(--c-surf); border: 1px solid var(--c-bd);
  border-radius: var(--r-sm); overflow: hidden;
}

.dc-overlay .dc-cal-nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid var(--c-bd);
}
.dc-overlay .dc-cal-nav button {
  background: none; border: none; color: var(--c-muted);
  font-size: 18px; cursor: pointer; padding: 0 4px; line-height: 1;
  transition: color .15s; font-family: var(--font);
}
.dc-overlay .dc-cal-nav button:hover { color: var(--c-txt); }
.dc-overlay .dc-cal-month { font-size: 13.5px; font-weight: 600; color: var(--c-txt); }

.dc-overlay .dc-cal-grid {
  display: grid; grid-template-columns: repeat(7, 1fr);
  gap: 2px; padding: 10px;
}
.dc-overlay .dc-cal-dh {
  text-align: center; font-size: 10.5px; font-weight: 600;
  color: var(--c-dim); padding: 4px 0; text-transform: uppercase;
}
.dc-overlay .dc-cal-day {
  text-align: center; padding: 7px 0; font-size: 13px;
  color: var(--c-muted); border-radius: 7px; cursor: pointer;
  transition: background .15s, color .15s;
}
.dc-overlay .dc-cal-day:hover:not(.dc-cal-dis):not(.dc-cal-empty) { background: var(--c-surf2); color: var(--c-txt); }
.dc-overlay .dc-cal-day.dc-cal-dis   { opacity: .28; cursor: not-allowed; pointer-events: none; }
.dc-overlay .dc-cal-day.dc-cal-empty { pointer-events: none; }
.dc-overlay .dc-cal-day.dc-cal-today { color: var(--c-acc); font-weight: 600; }
.dc-overlay .dc-cal-day.dc-cal-sel   {
  background: var(--c-acc) !important; color: #fff !important;
  font-weight: 600; box-shadow: 0 0 0 2px rgba(124,111,247,.35);
}

/* Time slots */
.dc-overlay .dc-cal-times {
  display: flex; flex-wrap: wrap; gap: 6px;
  padding: 10px 10px 12px;
  border-top: 1px solid var(--c-bd);
  min-height: 44px;
}
.dc-overlay .dc-cal-times-empty { font-size: 12px; color: var(--c-dim); padding: 0 4px; align-self: center; }
.dc-overlay .dc-time-slot {
  padding: 5px 11px; border-radius: 7px;
  background: var(--c-surf2); border: 1px solid var(--c-bd);
  font-size: 12.5px; color: var(--c-muted); cursor: pointer;
  transition: all .15s; font-family: var(--font);
}
.dc-overlay .dc-time-slot:hover { border-color: var(--c-acc); color: var(--c-acc); }
.dc-overlay .dc-time-slot.dc-t-sel {
  background: var(--c-acc); border-color: var(--c-acc);
  color: #fff; font-weight: 600;
}

.dc-overlay .dc-cal-selected {
  font-size: 12.5px; color: var(--c-green);
  font-weight: 500; min-height: 18px;
  padding: 0 2px;
}

/* Submit */
.dc-overlay .dc-modal-submit {
  width: 100%; padding: 11px;
  background: var(--c-acc); border: none; border-radius: var(--r-sm);
  color: #fff; font-size: 14px; font-weight: 600; cursor: pointer;
  transition: background .18s; font-family: var(--font);
  box-shadow: 0 0 16px rgba(124,111,247,.3);
  margin-top: 2px;
}
.dc-overlay .dc-modal-submit:hover:not(:disabled) { background: var(--c-acc2); }
.dc-overlay .dc-modal-submit:disabled { opacity: .5; cursor: not-allowed; }

.dc-overlay .dc-modal-msg { font-size: 13px; border-radius: 7px; min-height: 0; }
.dc-overlay .dc-modal-msg.ok  { background: rgba(52,211,153,.1); border: 1px solid rgba(52,211,153,.3); color: var(--c-green); padding: 9px 12px; }
.dc-overlay .dc-modal-msg.err { background: rgba(248,113,113,.1); border: 1px solid rgba(248,113,113,.3); color: var(--c-danger);  padding: 9px 12px; }

/* ── Mobile ── */
@media(max-width:520px){
  .dc-overlay .dc-mrow { grid-template-columns: 1fr; }
  .docuchat-mode-float .dc-window { right: 0; bottom: 0; width: 100vw; border-radius: var(--r) var(--r) 0 0; }
  .docuchat-mode-float .dc-fab    { bottom: 16px; right: 16px; }
  .dc-modal { max-height: 100vh; border-radius: var(--r) var(--r) 0 0; margin-top: auto; }
}

/* ── Overlay time slots (new class names) ── */
.dc-overlay .dc-tslot {
  padding: 5px 11px; border-radius: 7px;
  background: var(--c-surf2); border: 1px solid var(--c-bd);
  font-size: 12.5px; color: var(--c-muted); cursor: pointer;
  transition: all .15s;
  font-family: 'Inter', sans-serif;
}
.dc-overlay .dc-tslot:hover { border-color: var(--c-acc); color: var(--c-acc); }
.dc-overlay .dc-tslot.dc-tsel {
  background: var(--c-acc); border-color: var(--c-acc);
  color: #fff; font-weight: 600;
}
.dc-overlay .dc-cal-sel {
  font-size: 12.5px; font-weight: 500; min-height: 18px; padding: 2px;
}
.dc-overlay .dc-times-hint {
  font-size: 12px; color: var(--c-dim); padding: 4px;
}
.dc-overlay .dc-cal-label {
  font-size: 11.5px; font-weight: 500; color: var(--c-muted);
  text-transform: uppercase; letter-spacing: .05em;
}

/* ══════════════════════════════════════════════════════════
   STANDALONE CITAS PAGE  [docuchat_citas]
   ══════════════════════════════════════════════════════════ */
.dc-citas-wrap {
  --c-bg:#111318; --c-surf:#1a1d27; --c-surf2:#22263a; --c-bd:#2a2e42;
  --c-acc:#7c6ff7; --c-acc2:#9d96ff; --c-green:#34d399;
  --c-txt:#e2e8f0; --c-muted:#8892aa; --c-dim:#515a72; --c-danger:#f87171;
  --font:'Inter',-apple-system,sans-serif;
  font-family: var(--font);
  max-width: 580px;
  margin: 0 auto;
  padding: 0;
}
.dc-citas-wrap.docuchat-light {
  --c-bg:#f8fafc; --c-surf:#fff; --c-surf2:#f1f5f9; --c-bd:#e2e8f0;
  --c-txt:#1e293b; --c-muted:#64748b; --c-dim:#94a3b8; --c-green:#059669;
}
.dc-citas-wrap *, .dc-citas-wrap *::before, .dc-citas-wrap *::after { box-sizing: border-box; font-family: var(--font); }

.dc-citas-title {
  font-size: 22px !important; font-weight: 700 !important;
  color: var(--c-txt) !important; margin: 0 0 24px !important;
  border: none !important; padding: 0 !important;
}
.dc-citas-form { display: flex; flex-direction: column; gap: 14px; }

/* Reuse dc-mrow, dc-mfield, dc-cal-* from overlay scope but re-declare for citas */
.dc-citas-wrap .dc-mrow  { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dc-citas-wrap .dc-mfield { display: flex; flex-direction: column; gap: 5px; }
.dc-citas-wrap .dc-mfield label { font-size: 11.5px; font-weight: 500; color: var(--c-muted); text-transform: uppercase; letter-spacing: .05em; }
.dc-citas-wrap .dc-mfield input,
.dc-citas-wrap .dc-mfield select,
.dc-citas-wrap .dc-mfield textarea {
  background: var(--c-surf2); border: 1px solid var(--c-bd); border-radius: 9px;
  padding: 10px 12px; color: var(--c-txt); font-size: 13.5px; width: 100%;
  transition: border-color .18s;
}
.dc-citas-wrap .dc-mfield input:focus,
.dc-citas-wrap .dc-mfield select:focus,
.dc-citas-wrap .dc-mfield textarea:focus { outline: none; border-color: var(--c-acc); box-shadow: 0 0 0 3px rgba(124,111,247,.15); }
.dc-citas-wrap .dc-mfield input::placeholder,
.dc-citas-wrap .dc-mfield textarea::placeholder { color: var(--c-dim); }
.dc-citas-wrap .dc-mfield select option { background: #1a1d27; }
.dc-citas-wrap .dc-mfield textarea { resize: none; line-height: 1.5; }

.dc-citas-wrap .dc-cal-wrap { display: flex; flex-direction: column; gap: 6px; }
.dc-citas-wrap .dc-cal-label { font-size: 11.5px; font-weight: 500; color: var(--c-muted); text-transform: uppercase; letter-spacing: .05em; }
.dc-citas-wrap .dc-cal { background: var(--c-surf); border: 1px solid var(--c-bd); border-radius: 9px; overflow: hidden; }
.dc-citas-wrap .dc-cal-nav { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--c-bd); }
.dc-citas-wrap .dc-cal-nav button { background: none; border: none; color: var(--c-muted); font-size: 20px; cursor: pointer; padding: 0 4px; }
.dc-citas-wrap .dc-cal-nav button:hover { color: var(--c-txt); }
.dc-citas-wrap .dc-cal-month { font-size: 14px; font-weight: 600; color: var(--c-txt); }
.dc-citas-wrap .dc-cal-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 2px; padding: 10px; }
.dc-citas-wrap .dc-cal-dh { text-align: center; font-size: 10.5px; font-weight: 600; color: var(--c-dim); padding: 4px 0; text-transform: uppercase; }
.dc-citas-wrap .dc-cal-day { text-align: center; padding: 9px 0; font-size: 13.5px; color: var(--c-muted); border-radius: 8px; cursor: pointer; transition: all .15s; }
.dc-citas-wrap .dc-cal-day:hover:not(.dc-cal-dis):not(.dc-cal-empty) { background: var(--c-surf2); color: var(--c-txt); }
.dc-citas-wrap .dc-cal-day.dc-cal-dis   { opacity: .25; cursor: not-allowed; pointer-events: none; }
.dc-citas-wrap .dc-cal-day.dc-cal-empty { pointer-events: none; }
.dc-citas-wrap .dc-cal-day.dc-cal-today { color: var(--c-acc); font-weight: 700; }
.dc-citas-wrap .dc-cal-day.dc-cal-sel   { background: var(--c-acc) !important; color: #fff !important; font-weight: 700; }
.dc-citas-wrap .dc-cal-times { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px; border-top: 1px solid var(--c-bd); min-height: 46px; }
.dc-citas-wrap .dc-tslot { padding: 6px 13px; border-radius: 7px; background: var(--c-surf2); border: 1px solid var(--c-bd); font-size: 13px; color: var(--c-muted); cursor: pointer; transition: all .15s; }
.dc-citas-wrap .dc-tslot:hover { border-color: var(--c-acc); color: var(--c-acc); }
.dc-citas-wrap .dc-tslot.dc-tsel { background: var(--c-acc); border-color: var(--c-acc); color: #fff; font-weight: 600; }
.dc-citas-wrap .dc-times-hint { font-size: 12.5px; color: var(--c-dim); align-self: center; }
.dc-citas-wrap .dc-cal-sel { font-size: 13px; font-weight: 500; min-height: 20px; padding: 2px; }

.dc-citas-submit {
  width: 100%; padding: 13px; background: var(--c-acc); color: #fff; border: none;
  border-radius: 9px; font-size: 15px; font-weight: 600; cursor: pointer;
  transition: background .18s; box-shadow: 0 0 20px rgba(124,111,247,.3);
  font-family: var(--font); margin-top: 4px;
}
.dc-citas-submit:hover:not(:disabled) { background: var(--c-acc2); }
.dc-citas-submit:disabled { opacity: .5; cursor: not-allowed; }
.dc-citas-msg { font-size: 13px; border-radius: 8px; min-height: 0; }
.dc-citas-msg.ok  { background: rgba(52,211,153,.1); border: 1px solid rgba(52,211,153,.3); color: var(--c-green); padding: 10px 13px; margin-top: 4px; }
.dc-citas-msg.err { background: rgba(248,113,113,.1); border: 1px solid rgba(248,113,113,.3); color: var(--c-danger); padding: 10px 13px; margin-top: 4px; }

@media(max-width:520px){
  .dc-citas-wrap .dc-mrow { grid-template-columns: 1fr; }
}

/* ── Imagen en chat ─────────────────────────────────── */
.dc-img-btn {
  display: flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; flex-shrink: 0;
  cursor: pointer; border-radius: 8px; color: var(--dc-text-muted);
  transition: background .15s, color .15s;
}
.dc-img-btn:hover { background: var(--dc-hover); color: var(--dc-accent); }

.dc-img-preview {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 12px; border-top: 1px solid var(--dc-border);
  background: var(--dc-bg2);
}
.dc-img-preview img {
  width: 48px; height: 48px; object-fit: cover; border-radius: 6px;
  border: 1px solid var(--dc-border);
}
.dc-img-remove {
  background: none; border: none; cursor: pointer;
  color: var(--dc-text-muted); font-size: 14px; line-height: 1;
  padding: 2px 4px; border-radius: 4px;
}
.dc-img-remove:hover { background: var(--dc-hover); color: var(--dc-err, #f87171); }

.dc-bub-img { padding: 6px !important; }
.dc-chat-img {
  max-width: 200px; max-height: 200px; border-radius: 8px;
  display: block; object-fit: cover;
}
.dc-bub-img p { margin: 4px 0 0; font-size: 13px; }
