:root{
  --ink:#182033; --muted:#667085; --line:#e7eaf0; --soft:#f6f8fb; --panel:#ffffff;
  --brand:#6f5cff; --brand-dark:#4b3bd6; --brand-soft:#f1efff; --aqua:#04b8ad; --peach:#ffb27c;
  --danger:#c2410c; --ok:#15803d; --warning:#b45309;
  --radius:24px; --radius-sm:16px; --shadow:0 24px 70px rgba(24,32,51,.12); --shadow-sm:0 12px 34px rgba(24,32,51,.07);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(180deg,#fafaff 0,#f7f8fc 45%,#ffffff 100%);color:var(--ink);-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}.text-muted,.lead{color:var(--muted)!important}.fw-850{font-weight:850}.tracking-tight{letter-spacing:-.04em}.mini{font-size:.88rem;color:var(--muted)}
.navbar{backdrop-filter:blur(18px);background:rgba(255,255,255,.90)!important;border-bottom:1px solid rgba(231,234,240,.86)}
.navbar .nav-link{font-weight:720;color:#475467;border-radius:999px;padding:.6rem .85rem}.navbar .nav-link:hover{background:#f5f6fb;color:var(--ink)}
.brand-mark{width:42px;height:42px;border-radius:16px;background:linear-gradient(135deg,var(--brand),var(--aqua));display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:900;box-shadow:0 14px 34px rgba(111,92,255,.28)}
.brand-word{letter-spacing:-.02em}.btn{border-radius:999px;font-weight:780}.btn-brand{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand-dark);--bs-btn-hover-border-color:var(--brand-dark);color:#fff;padding:.86rem 1.2rem;box-shadow:0 14px 30px rgba(111,92,255,.25)}
.btn-soft{border:1px solid var(--line);background:#fff;color:var(--ink);padding:.78rem 1.05rem;box-shadow:0 8px 22px rgba(24,32,51,.04)}.btn-soft:hover{border-color:#d6dbea;background:#fafbff}.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.22);color:#fff}.btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.hero{padding:78px 0 56px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;right:-180px;top:-170px;width:560px;height:560px;border-radius:999px;background:radial-gradient(circle,rgba(111,92,255,.24),rgba(4,184,173,.08) 38%,transparent 66%)}.hero:after{content:"";position:absolute;left:-190px;bottom:-210px;width:470px;height:470px;border-radius:999px;background:radial-gradient(circle,rgba(255,178,124,.18),transparent 66%)}
.hero h1{font-size:clamp(2.25rem,5vw,4.65rem);line-height:.98;letter-spacing:-.065em;font-weight:900}.hero-panel{position:relative;z-index:1;background:linear-gradient(160deg,#201a46 0,#2b2363 52%,#0d817d 120%);border-radius:34px;color:#fff;box-shadow:var(--shadow);overflow:hidden}.hero-panel:before{content:"";position:absolute;inset:auto -60px -120px auto;width:320px;height:320px;border-radius:999px;background:rgba(255,255,255,.10)}.hero-panel .inside{position:relative;padding:30px}.floating-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);border-radius:22px;padding:18px;backdrop-filter:blur(14px)}
.section{padding:64px 0}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;color:var(--brand);font-weight:900}.eyebrow-light{color:#bfb7ff}.glass-card,.content-card,.feature,.stat{background:rgba(255,255,255,.88);border:1px solid rgba(231,234,240,.96);border-radius:var(--radius);box-shadow:var(--shadow-sm);backdrop-filter:blur(12px)}
.feature{height:100%;padding:24px;transition:.18s ease}.feature:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.feature .icon,.soft-icon{width:48px;height:48px;border-radius:18px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:900;margin-bottom:14px}.feature h3{font-size:1.08rem;font-weight:850;letter-spacing:-.02em}.feature p{color:var(--muted);margin:0}
.form-control,.form-select{border-radius:16px;border-color:#d9dee8;padding:.86rem .95rem;background-color:#fff}.form-control:focus,.form-select:focus{border-color:rgba(111,92,255,.62);box-shadow:0 0 0 .25rem rgba(111,92,255,.12)}.form-label{font-weight:780;color:#344054}.input-hint{font-size:.82rem;color:#798196}.table{margin:0}.table>:not(caption)>*>*{padding:1rem .85rem}.table thead th{font-size:.77rem;text-transform:uppercase;letter-spacing:.08em;color:#667085;border-bottom-color:#edf0f6}.badge{border-radius:999px;padding:.5rem .72rem;font-weight:780}
.booking-shell{position:relative}.booking-card{border-radius:30px;overflow:hidden}.booking-side{background:linear-gradient(160deg,#201a46,#302870 55%,#0f8a84 130%);color:#fff;padding:30px;min-height:100%}.booking-step-pill{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12);margin-bottom:10px}.booking-step-pill span{width:28px;height:28px;border-radius:999px;background:#fff;color:var(--brand);display:inline-flex;align-items:center;justify-content:center;font-weight:900}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:10px}.slot-label{width:100%;border:1px solid #dfe3ee;background:#fff;border-radius:16px;padding:.82rem .6rem;text-align:center;font-weight:800;color:#344054}.btn-check:checked+.slot-label,.btn-check:checked+.btn-soft{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 12px 26px rgba(111,92,255,.25)}.privacy-note{background:#f7f9ff;border:1px solid #e8ecf7;border-radius:18px;padding:14px;color:#536079}
.app-shell{min-height:100vh;background:#f5f6fb}.sidebar{background:linear-gradient(180deg,#151933,#101426);color:#d6daea;min-height:100vh;position:sticky;top:0;box-shadow:12px 0 34px rgba(15,18,35,.08)}.sidebar .nav-section{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#838ba7;margin:18px 10px 7px}.sidebar .nav-link{color:#d6daea;border-radius:16px;margin:.14rem 0;padding:.78rem .9rem;font-weight:720;display:flex;align-items:center;gap:.65rem}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:rgba(255,255,255,.10);color:#fff}.nav-ico{width:26px;height:26px;border-radius:10px;background:rgba(255,255,255,.10);display:inline-flex;align-items:center;justify-content:center;font-size:.86rem}.topbar{background:rgba(255,255,255,.88);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}
.page-title h1{letter-spacing:-.035em}.stat{padding:22px;background:linear-gradient(180deg,#fff,#fbfcff)}.stat .stat-icon{width:44px;height:44px;border-radius:16px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:900}.stat strong{font-size:2rem;letter-spacing:-.05em}.dashboard-hero{background:linear-gradient(135deg,#fff,#f7f8ff);border:1px solid var(--line);border-radius:28px;padding:24px;box-shadow:var(--shadow-sm)}.avatar{width:46px;height:46px;border-radius:16px;object-fit:cover;background:linear-gradient(135deg,#edeaff,#ddfbf7);display:inline-flex;align-items:center;justify-content:center;font-weight:900;color:var(--brand)}.patient-card{border:1px solid var(--line);border-radius:22px;padding:18px;background:#fff;height:100%}.status-dot{width:10px;height:10px;border-radius:999px;background:var(--ok);display:inline-block}.login-wrap{min-height:calc(100vh - 92px);display:flex;align-items:center}.login-art{background:linear-gradient(160deg,#201a46,#0f8a84 120%);border-radius:30px;color:#fff;padding:30px;min-height:410px;box-shadow:var(--shadow)}
.footer{border-top:1px solid var(--line);background:#fff}
@media(max-width:991px){.sidebar{min-height:auto;position:relative}.hero{padding-top:46px}.table-responsive{border-radius:18px}.booking-side{padding:24px}.topbar{position:relative}.app-shell .p-4{padding:1rem!important}}
@media(max-width:575px){.section{padding:44px 0}.hero h1{font-size:2.35rem}.glass-card,.content-card{border-radius:20px}.slot-grid{grid-template-columns:repeat(2,1fr)}.navbar .btn-soft{width:100%;margin-top:.5rem}.stat strong{font-size:1.65rem}}

/* Patients admin view */
.stat-card{padding:22px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#fff,#f8f9ff);box-shadow:var(--shadow-sm)}
.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--muted)}
.stat-value{font-size:2.15rem;line-height:1;font-weight:900;letter-spacing:-.05em;color:var(--ink);margin:.45rem 0}
.stat-help{font-size:.88rem;color:var(--muted)}
.patient-table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900;background:#fafbff;border-bottom:1px solid var(--line);padding:14px 16px;white-space:nowrap}
.patient-table tbody td{padding:16px;border-bottom:1px solid rgba(231,234,240,.75);vertical-align:middle}
.patient-table tbody tr:hover{background:#fbfcff}
.patient-table tbody tr:last-child td{border-bottom:0}
@media(max-width:767px){.patient-table{min-width:820px}.stat-value{font-size:1.75rem}}

/* Admin configuration screens */
.metric-card{padding:20px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,#fff,#fbfcff);box-shadow:var(--shadow-sm);min-height:106px}
.metric-card span{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--muted);margin-bottom:.55rem}
.metric-card strong{display:block;font-size:2rem;line-height:1;font-weight:900;letter-spacing:-.05em;color:var(--ink)}
.metric-card .metric-text{font-size:1.02rem;line-height:1.2;letter-spacing:-.02em}
.btn-outline-brand{--bs-btn-color:var(--brand);--bs-btn-border-color:rgba(111,92,255,.35);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand);--bs-btn-hover-color:#fff;padding:.62rem .95rem}
.pill-soft{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-weight:850;font-size:.78rem;padding:.45rem .7rem;text-transform:capitalize}
.service-check-list{display:grid;gap:10px;max-height:520px;overflow:auto;padding-right:4px}
.service-check{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px;cursor:pointer;transition:.16s ease}
.service-check:hover,.service-check.selected{border-color:rgba(111,92,255,.45);background:#fbfaff;box-shadow:0 10px 24px rgba(111,92,255,.08)}
.service-check input{margin-top:4px;accent-color:var(--brand)}
.service-check strong{display:block;font-weight:850;color:var(--ink);letter-spacing:-.02em}
.service-check small{display:block;color:var(--muted);margin-top:3px}
.list-group-item{background:transparent;border-color:var(--line)}
.opacity-50{opacity:.55}

/* v4 reservation management */
.appointment-card{transition:.16s ease}.appointment-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.date-tile{width:58px;height:66px;border-radius:18px;background:linear-gradient(180deg,var(--brand),var(--brand-dark));color:#fff;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 14px 30px rgba(111,92,255,.22);flex:0 0 auto}
.date-tile strong{font-size:1.45rem;line-height:1;font-weight:900;letter-spacing:-.04em}.date-tile small{text-transform:uppercase;font-size:.72rem;letter-spacing:.08em;opacity:.9;margin-top:4px}
.appointment-list .accordion-button.action-toggle{border:1px solid var(--line);border-radius:14px!important;background:#fff;box-shadow:none;font-weight:850;color:var(--ink);padding:.68rem .85rem;margin-bottom:8px}
.appointment-list .accordion-button.action-toggle:not(.collapsed){background:var(--brand-soft);color:var(--brand-dark);border-color:rgba(111,92,255,.25)}
.appointment-list .accordion-button.action-toggle:focus{box-shadow:0 0 0 .2rem rgba(111,92,255,.10)}
.appointment-list .accordion-button::after{width:.85rem;height:.85rem;background-size:.85rem}.appointment-list .accordion-item{margin-bottom:6px}
@media(max-width:991px){.appointment-card .accordion{margin-top:8px}.date-tile{width:52px;height:60px}.date-tile strong{font-size:1.25rem}}
.soft-box{background:#f7f7fb;border:1px solid rgba(15,23,42,.06)}
.font-monospace{font-size:.88rem}

/* v6 Sala online propia */
.online-room-page{min-height:calc(100vh - 74px);background:radial-gradient(circle at top left,#314c7d 0,#17233a 36%,#0d1322 100%);color:#fff;}
.online-room-topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:1rem 1.25rem;backdrop-filter:blur(16px);}
.video-stage{position:relative;min-height:62vh;border-radius:28px;overflow:hidden;background:#060914;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 80px rgba(0,0,0,.35);}
.video-stage video#remoteVideo{width:100%;height:62vh;object-fit:cover;background:#060914;display:block;}
.video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:rgba(255,255,255,.78);padding:2rem;background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,255,255,.01));}
.local-video-wrap{position:absolute;right:1rem;bottom:1rem;width:220px;max-width:38vw;border-radius:22px;overflow:hidden;background:#111827;border:1px solid rgba(255,255,255,.18);box-shadow:0 16px 40px rgba(0,0,0,.35);}
.local-video-wrap video{width:100%;height:140px;object-fit:cover;display:block;background:#111827;}
.local-video-wrap span{position:absolute;left:.75rem;bottom:.6rem;font-size:.78rem;background:rgba(0,0,0,.45);padding:.25rem .55rem;border-radius:999px;}
.room-controls{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:1rem;}
.room-side-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:1.25rem;backdrop-filter:blur(16px);box-shadow:0 18px 50px rgba(0,0,0,.24);}
.room-participant{display:flex;gap:.75rem;align-items:center;padding:.7rem 0;border-top:1px solid rgba(255,255,255,.1);}
.room-participant:first-of-type{border-top:0;}
.online-link-card{border:1px solid rgba(42,97,143,.15);background:linear-gradient(135deg,rgba(42,97,143,.10),rgba(255,255,255,.82));border-radius:24px;padding:1.25rem;}
.booking-summary{border:1px solid rgba(12,20,34,.08);background:rgba(255,255,255,.72);border-radius:24px;padding:1.25rem;}
.booking-summary span{display:block;color:#748094;font-size:.82rem;}
.booking-summary strong{display:block;color:#162033;font-size:1rem;}
@media (max-width: 768px){.online-room-topbar{align-items:flex-start;flex-direction:column}.video-stage,.video-stage video#remoteVideo{min-height:58vh;height:58vh}.local-video-wrap{width:150px}.local-video-wrap video{height:100px}.room-controls .btn{flex:1 1 42%;}}

/* v6.1 Plesk: respaldo para sala online propia */
.room-fallback-notice{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:6;
  display:flex;
  gap:.5rem;
  align-items:flex-start;
  flex-direction:column;
  padding:1rem 1.1rem;
  border-radius:18px;
  background:rgba(20,24,35,.82);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 16px 40px rgba(0,0,0,.32);
  backdrop-filter:blur(14px);
  color:#fff;
}
.room-fallback-notice span{font-size:.9rem;color:rgba(255,255,255,.76)}
.fallback-card{background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.08));}

/* v7 clinical record */
.consent-box{border:1px solid rgba(28,58,75,.12);background:linear-gradient(180deg,#fbfcfd,#f4f8fb);border-radius:22px;padding:18px;max-height:260px;overflow:auto}
.timeline-item{border-left:3px solid rgba(35,116,171,.28);padding:0 0 14px 14px;margin-bottom:14px}
.note-item{border:1px solid rgba(28,58,75,.10);background:#fff;border-radius:18px;padding:16px;margin-bottom:14px;box-shadow:0 10px 26px rgba(31,52,68,.05)}
.patient-data p{margin-bottom:.45rem;color:#51606b}.patient-data strong{color:#152c3b}.clinical-alert{background:#fff7e8;border:1px solid rgba(245,166,35,.25);border-radius:18px;padding:14px}

/* v8 reportes y portal paciente */
.portal-section{background:radial-gradient(circle at top left, rgba(124,92,255,.12), transparent 32%), linear-gradient(180deg,#fbfbff 0%,#f7f5f0 100%)}
.patient-hero{background:linear-gradient(135deg,#2b2344 0%,#6f5bd7 100%); color:#fff; border-radius:28px; padding:32px; box-shadow:0 24px 70px rgba(43,35,68,.22)}
.patient-hero .lead,.patient-hero .eyebrow{color:rgba(255,255,255,.82)}
.portal-session-card{padding:18px 0; border-bottom:1px solid rgba(24,20,34,.08)}
.portal-session-card:last-child{border-bottom:0}
.request-box{background:#f8f6ff; border:1px solid rgba(111,91,215,.14); border-radius:18px; padding:12px}
.request-status{border:1px solid rgba(24,20,34,.08); border-radius:16px; padding:12px; background:#fff}
.report-row{display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; padding:13px 0; border-bottom:1px solid rgba(24,20,34,.08)}
.report-row:last-child{border-bottom:0}.report-row small{color:#7b7386; font-weight:700}.report-row strong{background:#f3f0ff; color:#4f3bb8; border-radius:999px; min-width:38px; text-align:center; padding:4px 10px}
.report-timeline{display:grid; gap:10px}.timeline-row{display:grid; grid-template-columns:64px 1fr 40px 100px; gap:12px; align-items:center}.timeline-row div{height:12px; background:#f0edf6; border-radius:999px; overflow:hidden}.timeline-row i{display:block; height:100%; background:linear-gradient(90deg,#6f5bd7,#2b2344); border-radius:999px}.timeline-row span,.timeline-row small{color:#7b7386}.timeline-row strong{font-weight:850}
@media (max-width: 768px){.timeline-row{grid-template-columns:54px 1fr 30px}.timeline-row small{display:none}.patient-hero{padding:24px}}

/* v9 coberturas + firma dibujada */
.coverage-list{display:grid;gap:12px}.coverage-item{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:20px;padding:16px;box-shadow:0 10px 28px rgba(31,52,68,.04)}.coverage-item strong{font-weight:850;color:var(--ink)}.coverage-item.is-disabled{opacity:.58;background:#f8f8fb}.coverage-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.signature-panel{position:relative;border:1px dashed rgba(111,92,255,.42);background:linear-gradient(180deg,#fff,#fbfaff);border-radius:22px;padding:10px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.75)}.signature-panel canvas{display:block;width:100%;height:260px;background:#fff;border-radius:16px;touch-action:none;cursor:crosshair}.signature-hint{position:absolute;left:24px;bottom:18px;font-size:.82rem;color:#8a90a3;pointer-events:none}.signature-preview{display:block;max-width:220px;max-height:90px;border:1px solid rgba(20,30,45,.12);border-radius:12px;background:#fff;padding:6px}@media(max-width:768px){.coverage-check-grid{grid-template-columns:1fr}.coverage-item{flex-direction:column}.signature-panel canvas{height:210px}}

/* v9.3 - Reserva: datos del paciente aparecen solo al seleccionar hora */
.booking-next-step{border:1px dashed rgba(111,92,255,.35);background:linear-gradient(180deg,#fbfaff,#f5f7ff);border-radius:20px;padding:16px;color:var(--ink)}
.booking-details-hidden{display:none;margin-top:2px;animation:bookingReveal .24s ease both}
.booking-details-hidden.is-visible{display:flex}
.booking-selected-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:#f7f9ff;border:1px solid #e8ecf7;border-radius:20px;padding:14px}
.booking-selected-summary span{display:block;font-size:.78rem;color:#667085;margin-bottom:3px}
.booking-selected-summary strong{font-size:.98rem;color:var(--ink);font-weight:850}
@keyframes bookingReveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:768px){.booking-selected-summary{grid-template-columns:1fr}}

.coverage-price-row{border:1px solid rgba(15,23,42,.09);border-radius:18px;padding:12px;background:#fbfcff}
.coverage-price-row+.coverage-price-row{margin-top:2px}

/* v9.5 login demo users */
.demo-login-box{background:#f7f9ff;border:1px solid #e8ecf7;border-radius:20px;padding:16px;color:#536079}
.demo-login-list{display:grid;gap:10px}
.demo-login-item{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid rgba(231,234,240,.95);border-radius:16px;padding:12px}
.demo-login-item strong{display:block;color:var(--ink);font-weight:850;line-height:1.1}
.demo-login-item small{display:block;color:var(--muted);font-size:.82rem;margin-top:4px;word-break:break-word}
.demo-login-item .btn{padding:.52rem .8rem;white-space:nowrap}
@media(max-width:480px){.demo-login-item{align-items:flex-start;flex-direction:column}.demo-login-item .btn{width:100%}}

/* v9.7 sala: enlace externo activable + chat */
.room-chat-card{min-height:360px;display:flex;flex-direction:column}
.room-chat-messages{height:260px;overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.08);padding:12px;display:flex;flex-direction:column;gap:10px}
.room-chat-message{max-width:86%;align-self:flex-start}
.room-chat-message.is-mine{align-self:flex-end;text-align:right}
.room-chat-name{font-size:.72rem;color:rgba(255,255,255,.62);font-weight:800;margin-bottom:3px}
.room-chat-bubble{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);border-radius:16px 16px 16px 6px;padding:9px 11px;color:#fff;line-height:1.35;word-break:break-word;box-shadow:0 10px 22px rgba(0,0,0,.12)}
.room-chat-message.is-mine .room-chat-bubble{background:rgba(255,255,255,.92);color:#172033;border-color:rgba(255,255,255,.9);border-radius:16px 16px 6px 16px}
.room-chat-form{display:grid;grid-template-columns:1fr auto;gap:8px}.room-chat-form .form-control{background:rgba(255,255,255,.92);border:0;border-radius:14px}.fallback-card .btn-warning{color:#241900;font-weight:800}
@media(max-width:768px){.room-chat-messages{height:220px}.room-chat-form{grid-template-columns:1fr}.room-chat-message{max-width:94%}}

.upload-requirement-card{border:1px solid rgba(21,35,53,.12);background:linear-gradient(135deg,rgba(236,245,255,.9),rgba(255,255,255,.95));border-radius:22px;padding:18px;box-shadow:0 12px 28px rgba(31,45,61,.06)}
.upload-requirement-card .form-control{background:#fff;border-style:dashed}

.bonus-professional-data{background:rgba(15,23,42,.05);border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:12px 14px;color:#1f2937}.bonus-professional-data div{font-size:.9rem;line-height:1.55}

/* v10 internal booking + patient login */
.internal-slot-grid .slot-pill{border:1px solid rgba(20,33,61,.12);background:#fff;border-radius:999px;padding:.55rem .9rem;font-weight:700;box-shadow:0 8px 22px rgba(20,33,61,.06);transition:.18s ease;}
.internal-slot-grid .slot-pill:hover,.internal-slot-grid .slot-pill.active{background:#17223b;color:#fff;transform:translateY(-1px);}

/* v11 ficha paciente profesional */
.record-tabs{gap:.5rem;flex-wrap:wrap}.record-tabs .nav-link{border-radius:999px;background:#fff;border:1px solid rgba(15,23,42,.08);color:#475569;font-weight:750}.record-tabs .nav-link.active{background:linear-gradient(135deg,#1f6feb,#6f42c1);color:#fff;border-color:transparent;box-shadow:0 10px 24px rgba(31,111,235,.18)}
.record-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.record-summary-grid>div{padding:14px;border-radius:18px;background:#f8fafc;border:1px solid rgba(15,23,42,.06)}.record-summary-grid span{display:block;font-size:.78rem;color:#64748b;font-weight:750;text-transform:uppercase;letter-spacing:.03em}.record-summary-grid strong{display:block;color:#0f172a;font-size:.98rem;margin-top:3px;word-break:break-word}
.timeline-list{display:grid;gap:12px}.timeline-item{position:relative;padding:12px 12px 12px 18px;border-radius:16px;background:#f8fafc;border:1px solid rgba(15,23,42,.06)}.timeline-item:before{content:"";position:absolute;left:7px;top:16px;width:5px;height:5px;border-radius:50%;background:#1f6feb}.timeline-item p{margin:3px 0 0;color:#64748b;font-size:.9rem}.mini{font-size:.82rem;color:#64748b}.clinical-alert-box{border:1px solid rgba(245,158,11,.35);background:#fffbeb;border-radius:20px;padding:16px}.note-item,.goal-item{border:1px solid rgba(15,23,42,.08);background:#fff;border-radius:18px;padding:16px;margin-bottom:14px;box-shadow:0 8px 20px rgba(15,23,42,.04)}.note-item p,.goal-item p{color:#475569;margin-bottom:.55rem}@media(max-width:768px){.record-summary-grid{grid-template-columns:1fr}.record-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.record-tabs .nav-link{white-space:nowrap}}


/* v12 UX/UI refresh: capa visual de producto */
.ux-pro-shell{background:#f5f7fb;color:#172033}.app-layout{display:flex;min-height:100vh}.ux-sidebar{width:292px;flex:0 0 292px;min-height:100vh;position:sticky;top:0;padding:18px;background:linear-gradient(180deg,#171b33 0%,#211d4a 56%,#0d6f70 130%);box-shadow:18px 0 55px rgba(18,24,44,.14);z-index:20}.sidebar-brand{padding:8px 6px 18px}.user-pill{display:flex;gap:12px;align-items:center;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);border-radius:22px;padding:12px;margin:4px 0 18px;color:#fff}.user-pill .avatar{box-shadow:none;background:rgba(255,255,255,.18)}.user-pill strong{display:block;font-size:.92rem}.user-pill span{display:block;font-size:.78rem;color:rgba(255,255,255,.62)}.ux-nav{gap:4px}.ux-nav .nav-section{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.42);font-weight:900;margin:16px 10px 5px}.ux-nav .nav-link{display:flex;gap:10px;align-items:center;color:rgba(255,255,255,.74);padding:.72rem .78rem;border-radius:16px;font-weight:760;transition:.16s ease;border:1px solid transparent}.ux-nav .nav-link:hover{background:rgba(255,255,255,.08);color:#fff}.ux-nav .nav-link.active{background:#fff;color:#1c2240;box-shadow:0 14px 34px rgba(0,0,0,.16)}.ux-nav .nav-ico{width:30px;height:30px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.10);font-weight:900}.ux-nav .nav-link.active .nav-ico{background:var(--brand-soft);color:var(--brand)}.app-main{flex:1;min-width:0}.ux-topbar{height:76px;background:rgba(255,255,255,.82);backdrop-filter:blur(16px);border-bottom:1px solid rgba(226,232,240,.9);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:15}.ux-topbar strong{font-size:1.05rem}.topbar-actions{display:flex;gap:8px}.app-content{padding:28px}.mobile-topbar{height:68px;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid #e7eaf0;padding:0 14px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:30}.mobile-brand{display:flex;align-items:center;gap:10px;font-weight:900;color:var(--ink)}
.ux-page-hero{display:flex;justify-content:space-between;gap:22px;align-items:flex-end;padding:28px;border-radius:32px;background:radial-gradient(circle at top right,rgba(111,92,255,.20),transparent 34%),linear-gradient(135deg,#fff,#f7f8ff);border:1px solid rgba(226,232,240,.96);box-shadow:0 18px 48px rgba(18,24,44,.07)}.ux-page-hero h1{font-weight:920;letter-spacing:-.055em;font-size:clamp(2rem,4vw,3.45rem);line-height:.98;margin:0 0 10px}.ux-page-hero p{color:#667085;font-size:1.04rem;margin:0;max-width:720px}.ux-hero-actions{display:flex;gap:10px;flex-wrap:wrap}.pro-hero{background:radial-gradient(circle at top right,rgba(4,184,173,.18),transparent 36%),linear-gradient(135deg,#fff,#f4fffd)}
.ux-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ux-metric-card{display:block;background:#fff;border:1px solid rgba(226,232,240,.95);border-radius:24px;padding:20px;box-shadow:0 12px 34px rgba(18,24,44,.06);transition:.16s ease}.ux-metric-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(18,24,44,.10)}.ux-metric-card span{font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;color:#667085;font-weight:900}.ux-metric-card strong{display:block;font-size:2rem;line-height:1;font-weight:920;letter-spacing:-.04em;color:#172033;margin:.35rem 0}.ux-metric-card small{color:#7b8495;font-weight:700}.ux-metric-card.warning{background:#fffaf0;border-color:#fde7bd}.ux-panel{background:#fff;border:1px solid rgba(226,232,240,.95);border-radius:28px;padding:22px;box-shadow:0 14px 42px rgba(18,24,44,.07)}.ux-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.ux-panel-head h2{font-size:1.15rem;font-weight:900;letter-spacing:-.03em;margin:0}.ux-panel-head p{font-size:.9rem;color:#667085;margin:4px 0 0}.ux-table thead th{background:#f8fafc;color:#64748b;border-bottom:0}.ux-table thead th:first-child{border-radius:14px 0 0 14px}.ux-table thead th:last-child{border-radius:0 14px 14px 0}.ux-table tbody tr{border-bottom:1px solid #eef2f7}.ux-chip{display:inline-flex;align-items:center;border-radius:999px;background:#eef8ff;color:#075985;font-weight:850;padding:.42rem .62rem;font-size:.78rem}.ux-action-list{display:grid;gap:10px}.ux-action-list a{display:flex;gap:12px;align-items:center;border:1px solid #edf1f7;background:#fbfcff;border-radius:18px;padding:13px;transition:.16s ease}.ux-action-list a:hover{background:#f4f6ff;transform:translateY(-1px)}.ux-action-list b{width:38px;height:38px;border-radius:15px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center}.ux-action-list strong{display:block;color:var(--ink);font-weight:900}.ux-action-list small{display:block;color:#667085;font-weight:650}.glass-card,.content-card,.stat{border-radius:28px}.booking-card{box-shadow:0 26px 80px rgba(17,24,39,.12)}.booking-side{background:linear-gradient(180deg,#171b33,#2b2363 60%,#0d7b7d 145%)}.booking-step-pill{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.16)}.slot-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.slot-label{border-radius:18px;padding:1rem .75rem;box-shadow:0 8px 20px rgba(18,24,44,.05)}.slot-label:hover{border-color:rgba(111,92,255,.45);background:#fbfaff}.btn-check:checked+.slot-label{box-shadow:0 12px 30px rgba(111,92,255,.22)}.booking-selected-summary{background:#fff;border-radius:22px;box-shadow:0 10px 26px rgba(18,24,44,.06)}.record-tabs{background:#f8fafc;border:1px solid #edf2f7;border-radius:999px;padding:6px;display:inline-flex}.record-tabs .nav-link{border:0;background:transparent}.record-tabs .nav-link.active{box-shadow:0 8px 20px rgba(31,111,235,.20)}.internal-slot-grid .slot-pill{border-radius:16px;padding:.78rem 1rem}.internal-slot-grid .slot-pill.active{background:linear-gradient(135deg,var(--brand),var(--aqua));border-color:transparent;box-shadow:0 14px 30px rgba(111,92,255,.24)}
@media(max-width:991.98px){.app-layout{display:block}.ux-sidebar{display:none}.app-content{padding:18px}.ux-topbar{display:none}.ux-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ux-page-hero{align-items:flex-start;flex-direction:column;padding:22px}.ux-page-hero h1{font-size:2rem}.topbar-actions{display:none}.offcanvas{background:#171b33;color:#fff}.offcanvas .btn-close{filter:invert(1)}}@media(max-width:575.98px){.ux-metrics{grid-template-columns:1fr}.ux-panel{padding:16px;border-radius:22px}.slot-grid{grid-template-columns:1fr}.booking-side{padding:22px}.booking-card{border-radius:24px}.record-tabs{display:flex;border-radius:20px;overflow:auto;width:100%}}

/* v12.1 Responsive hardening */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas{max-width:100%;height:auto}
.row>*{min-width:0}.container,.container-fluid{min-width:0}.app-main,.app-content,.content-card,.glass-card,.ux-panel{min-width:0}.text-break-mobile{overflow-wrap:anywhere;word-break:break-word}

/* Navegación móvil más usable */
.mobile-topbar .brand-mark{width:38px;height:38px;border-radius:14px}.mobile-topbar .btn{min-height:42px;padding:.55rem .9rem}.offcanvas.offcanvas-start{width:min(88vw,360px)}.offcanvas .ux-nav .nav-link{color:rgba(255,255,255,.82);margin-bottom:4px}.offcanvas .ux-nav .nav-link.active{background:#fff;color:#1c2240}.offcanvas .ux-nav .nav-section{color:rgba(255,255,255,.46)}

/* Tablas y listados: nunca romper el ancho móvil */
.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:18px}.table{min-width:760px}.ux-table,.patient-table{min-width:820px}.content-card>.table,.ux-panel>.table,.glass-card>.table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.content-card>.table table,.ux-panel>.table table,.glass-card>.table table{width:100%}.table td,.table th{vertical-align:middle}.table td{word-break:normal}.table .btn{white-space:nowrap}

/* Formularios táctiles */
.form-control,.form-select,.btn{min-height:44px}.form-control-sm,.form-select-sm,.btn-sm{min-height:38px}.form-text,.input-hint,.mini{line-height:1.35}.accordion-button{min-height:46px;border-radius:14px!important}.action-toggle{font-weight:850;background:#f8fafc!important;border-radius:14px!important}.accordion-button:not(.collapsed){box-shadow:none;color:var(--brand-dark)}

/* Cards de reserva/agendas más cómodas en móvil */
.appointment-card,.patient-card,.metric-card,.stat-card,.privacy-note,.booking-summary,.upload-requirement-card{overflow:hidden}.appointment-card .avatar,.patient-card .avatar{flex:0 0 auto}.date-tile{flex:0 0 auto}.slot-label,.internal-slot-grid .slot-pill{min-height:48px;display:flex;align-items:center;justify-content:center;line-height:1.15}.internal-slot-grid{display:flex;flex-wrap:wrap;gap:10px}.internal-slot-grid .slot-pill{flex:0 1 auto}

/* Sala online: layout vertical estable en pantallas pequeñas */
.online-room-page .container-fluid{padding-left:14px;padding-right:14px}.video-stage{min-width:0}.room-controls .btn{min-width:120px}.room-side-card,.fallback-card{min-width:0}.room-chat-bubble{overflow-wrap:anywhere}

/* Ficha clínica: pestañas y resúmenes sin desbordes */
.record-tabs{max-width:100%}.record-tabs .nav-link{flex:0 0 auto}.record-summary-grid strong,.patient-data strong,.coverage-item strong{overflow-wrap:anywhere}.signature-panel canvas{max-width:100%}

@media(max-width:1199.98px){
  .ux-sidebar{width:260px;flex-basis:260px}.app-content{padding:22px}.ux-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ux-page-hero h1{font-size:clamp(1.9rem,4vw,2.8rem)}
}

@media(max-width:991.98px){
  body.app-shell{background:#f5f7fb}.app-content{padding:16px}.mobile-topbar{display:flex}.ux-page-hero{border-radius:24px;margin-bottom:4px}.ux-hero-actions{width:100%}.ux-hero-actions .btn{flex:1 1 180px}.ux-panel-head{flex-direction:column;align-items:stretch}.ux-panel-head .btn,.ux-panel-head a.btn{width:100%}.booking-side{border-radius:0}.booking-card .row.g-0{display:block}.booking-card .col-lg-4,.booking-card .col-lg-8{width:100%}.booking-step-pill{padding:10px 12px}.login-wrap{min-height:auto;padding:28px 0}.login-art{min-height:auto}.navbar .navbar-collapse{padding-bottom:12px}.navbar .nav-link,.navbar .btn{width:100%;text-align:center}.navbar .ms-auto{width:100%}
}

@media(max-width:767.98px){
  .app-content{padding:12px}.content-card,.glass-card,.ux-panel,.stat-card,.metric-card,.patient-card{border-radius:20px}.content-card.p-4,.glass-card.p-4,.ux-panel.p-4{padding:16px!important}.page-title h1,.ux-page-hero h1{font-size:1.75rem;line-height:1.05}.ux-page-hero{padding:18px}.ux-page-hero p{font-size:.96rem}.hero{padding:36px 0 30px}.hero-panel .inside{padding:20px}.section{padding:34px 0}.booking-card{border-radius:20px}.booking-side{padding:18px}.slot-grid{grid-template-columns:1fr}.booking-selected-summary{grid-template-columns:1fr;padding:12px}.room-controls{gap:8px;padding:12px}.room-controls .btn{flex:1 1 calc(50% - 8px);min-width:0}.online-room-topbar{border-radius:18px;padding:12px}.video-stage{border-radius:20px;min-height:52vh}.video-stage video#remoteVideo{height:52vh;min-height:52vh}.local-video-wrap{right:10px;bottom:10px;width:136px;max-width:42vw;border-radius:16px}.local-video-wrap video{height:88px}.room-side-card{border-radius:20px;padding:16px}.report-row{grid-template-columns:1fr;gap:4px}.timeline-row{grid-template-columns:46px 1fr 30px}.demo-login-item{flex-direction:column;align-items:stretch}.demo-login-item .btn{width:100%}.coverage-item{gap:10px}.coverage-item .btn{width:100%}
}

@media(max-width:575.98px){
  .mobile-brand span:last-child{max-width:58vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-topbar{height:62px;padding:0 10px}.brand-mark{width:38px;height:38px}.app-content{padding:10px}.ux-metrics{gap:10px}.ux-metric-card,.stat-card,.metric-card{padding:16px}.ux-metric-card strong,.stat-value,.metric-card strong{font-size:1.55rem}.btn-brand,.btn-soft{width:100%}.d-flex.gap-2.flex-wrap .btn,.d-flex.gap-3.flex-wrap .btn{flex:1 1 100%}.form-control,.form-select{border-radius:14px}.table{font-size:.92rem}.table>:not(caption)>*>*{padding:.75rem .65rem}.patient-table{min-width:760px}.ux-table{min-width:720px}.signature-panel canvas{height:180px}.room-chat-messages{height:190px}.portal-session-card .d-flex,.coverage-list .d-flex{flex-direction:column!important;align-items:stretch!important}.appointment-card .row>[class*='col-']{width:100%}.accordion .row>[class*='col-']{width:100%}
}


/* =========================================================
   v13 UI emocional salud/bienestar
   Dirección visual: calma, privacidad, confianza y orden.
   Bootstrap 5 + Inter/Nunito + FontAwesome CDN.
   ========================================================= */
:root{
  --ink:#334155;
  --muted:#64748b;
  --line:#e2e8f0;
  --soft:#f8fafc;
  --panel:#ffffff;
  --brand:#0f766e;
  --brand-dark:#115e59;
  --brand-soft:#ccfbf1;
  --aqua:#14b8a6;
  --peach:#fed7aa;
  --danger:#b91c1c;
  --ok:#047857;
  --warning:#b45309;
  --radius:24px;
  --radius-sm:18px;
  --shadow:0 24px 70px rgba(15,23,42,.10);
  --shadow-sm:0 10px 28px rgba(15,23,42,.06);
}
html{background:#f8fafc}
body{
  font-family:"Inter","Nunito",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  background:
    radial-gradient(circle at 12% 0%,rgba(20,184,166,.10),transparent 28%),
    radial-gradient(circle at 85% 8%,rgba(99,102,241,.07),transparent 30%),
    linear-gradient(180deg,#f8fafc 0%,#fafaf9 46%,#ffffff 100%)!important;
  color:var(--ink)!important;
  line-height:1.62;
}
h1,h2,h3,h4,h5,h6,.fw-850{font-family:"Nunito","Inter",sans-serif;font-weight:850;color:#1e293b}.lead{line-height:1.65;color:#64748b!important}.tracking-tight{letter-spacing:-.035em}.mini{color:#64748b}
.navbar{background:rgba(255,255,255,.88)!important;border-bottom:1px solid rgba(226,232,240,.85);box-shadow:0 10px 30px rgba(15,23,42,.035)}
.navbar .nav-link{color:#475569;border-radius:999px}.navbar .nav-link:hover{background:#f0fdfa;color:#0f766e}.brand-mark{background:linear-gradient(135deg,#0f766e,#14b8a6)!important;border-radius:18px;box-shadow:0 14px 30px rgba(15,118,110,.18)}.brand-word{color:#1e293b;font-weight:900}
.btn{border-radius:999px;font-weight:800;letter-spacing:-.01em}.btn-brand{--bs-btn-bg:#0f766e;--bs-btn-border-color:#0f766e;--bs-btn-hover-bg:#115e59;--bs-btn-hover-border-color:#115e59;box-shadow:0 14px 30px rgba(15,118,110,.18)!important}.btn-soft{background:#fff!important;border:1px solid #e2e8f0!important;color:#334155!important;box-shadow:0 8px 22px rgba(15,23,42,.04)!important}.btn-soft:hover{background:#f0fdfa!important;border-color:#99f6e4!important;color:#0f766e!important}.btn-outline-primary,.btn-primary{border-radius:999px}.btn-primary{background:#0f766e!important;border-color:#0f766e!important}.btn-primary:hover{background:#115e59!important;border-color:#115e59!important}
.glass-card,.content-card,.feature,.stat,.ux-panel,.stat-card,.metric-card,.patient-card,.appointment-card,.dashboard-hero,.login-art,.hero-panel,.room-side-card,.fallback-card{border-radius:28px!important;border:1px solid rgba(226,232,240,.94)!important;box-shadow:0 12px 34px rgba(15,23,42,.055)!important;background:rgba(255,255,255,.92)}
.feature:hover,.ux-metric-card:hover{transform:translateY(-2px);box-shadow:0 18px 46px rgba(15,23,42,.09)!important}.feature .icon,.soft-icon,.stat .stat-icon,.ux-action-list b,.nav-ico{background:#ccfbf1!important;color:#0f766e!important}.eyebrow{color:#0f766e!important}.badge{font-weight:800;border-radius:999px}.badge.bg-primary,.badge.text-bg-primary{background:#0f766e!important}.badge.bg-success,.badge.text-bg-success{background:#059669!important}.badge.bg-warning{background:#fef3c7!important;color:#92400e!important}.badge.bg-danger{background:#fee2e2!important;color:#991b1b!important}.badge.bg-secondary{background:#f1f5f9!important;color:#475569!important}
.form-control,.form-select{border-radius:18px!important;border-color:#dbe4ee!important;background:#fff!important;color:#334155!important}.form-control:focus,.form-select:focus{border-color:#14b8a6!important;box-shadow:0 0 0 .25rem rgba(20,184,166,.14)!important}.form-label{color:#334155;font-weight:800}.input-hint{color:#64748b}
.privacy-note{background:#f0fdfa!important;border-color:#99f6e4!important;color:#475569!important}.booking-side,.hero-panel,.login-art{background:linear-gradient(160deg,#134e4a 0%,#0f766e 58%,#14b8a6 130%)!important}.booking-step-pill{background:rgba(255,255,255,.15)!important;border-color:rgba(255,255,255,.18)!important}.booking-step-pill span{color:#0f766e!important}.floating-card{background:rgba(255,255,255,.15)!important;border-color:rgba(255,255,255,.18)!important}.slot-label{border:1px solid #dbe4ee!important;border-radius:20px!important;background:#fff!important;color:#334155!important;box-shadow:0 8px 18px rgba(15,23,42,.04)!important}.slot-label:hover{border-color:#5eead4!important;background:#f0fdfa!important}.btn-check:checked+.slot-label,.btn-check:checked+.btn-soft{background:#0f766e!important;border-color:#0f766e!important;color:#fff!important;box-shadow:0 12px 26px rgba(15,118,110,.18)!important}.upload-requirement-card,.booking-selected-summary{background:#ffffff!important;border:1px solid #ccfbf1!important;border-radius:24px!important}
.app-shell{background:#f8fafc!important}.sidebar,.ux-sidebar{background:linear-gradient(180deg,#0f172a 0%,#102a2a 52%,#0f3f3b 100%)!important;color:#dbeafe!important}.sidebar-brand{border-bottom:1px solid rgba(255,255,255,.08)}.user-pill{background:rgba(255,255,255,.09)!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:22px!important}.sidebar .nav-section,.ux-nav .nav-section{color:rgba(255,255,255,.48)!important}.sidebar .nav-link,.ux-nav .nav-link{border-radius:18px!important;color:rgba(255,255,255,.76)!important}.sidebar .nav-link:hover,.sidebar .nav-link.active,.ux-nav .nav-link:hover,.ux-nav .nav-link.active{background:#ffffff!important;color:#0f766e!important;box-shadow:0 12px 28px rgba(0,0,0,.12)}.sidebar .nav-link:hover .nav-ico,.sidebar .nav-link.active .nav-ico,.ux-nav .nav-link:hover .nav-ico,.ux-nav .nav-link.active .nav-ico{background:#0f766e!important;color:#fff!important}.ux-topbar,.topbar{background:rgba(255,255,255,.88)!important;border-bottom:1px solid #e2e8f0!important;box-shadow:0 8px 22px rgba(15,23,42,.035)}.ux-page-hero,.pro-hero{background:radial-gradient(circle at top right,rgba(20,184,166,.14),transparent 35%),linear-gradient(135deg,#ffffff,#f0fdfa)!important;border:1px solid #d9f6f0!important}.ux-metric-card{border-radius:26px!important;border-color:#e2e8f0!important;background:#fff!important}.ux-metric-card strong,.stat strong,.metric-card strong{color:#1e293b}.ux-chip{background:#ccfbf1!important;color:#115e59!important}.ux-action-list a{border-radius:22px!important}.table thead th,.ux-table thead th{background:#f8fafc!important;color:#64748b!important}.table tbody tr:hover{background:#f8fafc}.record-tabs{background:#f8fafc!important;border-color:#e2e8f0!important}.record-tabs .nav-link.active{background:#0f766e!important;color:#fff!important;box-shadow:0 8px 20px rgba(15,118,110,.20)!important}.accordion-button:not(.collapsed){background:#f0fdfa!important;color:#115e59!important}.action-toggle{background:#f8fafc!important;color:#334155!important}.alert{border-radius:20px!important}.alert-info{background:#ecfeff!important;border-color:#a5f3fc!important;color:#155e75!important}.alert-success{background:#ecfdf5!important;border-color:#a7f3d0!important;color:#065f46!important}.alert-warning{background:#fffbeb!important;border-color:#fde68a!important;color:#92400e!important}.alert-danger{background:#fef2f2!important;border-color:#fecaca!important;color:#991b1b!important}
.online-room-topbar,.video-stage{border-radius:28px!important}.room-controls{background:rgba(255,255,255,.92)!important;border:1px solid #e2e8f0!important;box-shadow:0 12px 28px rgba(15,23,42,.08)}.room-chat-bubble{border-radius:18px!important}.signature-panel canvas{border-radius:22px!important;border:1px dashed #5eead4!important;background:#f8fffd!important}.footer{background:#fff!important;border-top:1px solid #e2e8f0!important}.offcanvas{background:linear-gradient(180deg,#0f172a,#102a2a)!important}.offcanvas .ux-nav .nav-link.active{background:#fff!important;color:#0f766e!important}
@media(max-width:767.98px){.glass-card,.content-card,.feature,.stat,.ux-panel,.stat-card,.metric-card,.patient-card,.appointment-card,.dashboard-hero,.login-art,.hero-panel,.room-side-card,.fallback-card{border-radius:22px!important}.slot-label{border-radius:18px!important}.hero h1,.ux-page-hero h1{letter-spacing:-.04em}.btn-brand,.btn-soft{min-height:46px}.mobile-topbar{background:rgba(255,255,255,.92);border-bottom:1px solid #e2e8f0;backdrop-filter:blur(16px)}}

/* =========================================================
   v13.2 - Mejora UX/UI agendamiento interno
   ========================================================= */
.internal-booking-page .text-teal{color:#0f766e!important}
.internal-booking-hero{background:radial-gradient(circle at top right,rgba(20,184,166,.16),transparent 38%),linear-gradient(135deg,#ffffff 0%,#f0fdfa 100%)!important}
.booking-flow-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.flow-step{display:flex;align-items:center;gap:12px;border:1px solid #e2e8f0;background:rgba(255,255,255,.88);border-radius:24px;padding:14px 16px;box-shadow:0 10px 28px rgba(15,23,42,.045)}
.flow-step span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f1f5f9;color:#64748b;font-weight:900;flex:0 0 38px}
.flow-step.is-active span{background:#0f766e;color:#fff;box-shadow:0 10px 22px rgba(15,118,110,.18)}
.flow-step strong{display:block;color:#1e293b;font-weight:900;line-height:1.15}.flow-step small{display:block;color:#64748b;font-weight:650;line-height:1.2;margin-top:3px}
.internal-filter-card{position:relative;overflow:hidden}.internal-filter-card:before{content:"";position:absolute;right:-70px;top:-80px;width:210px;height:210px;border-radius:50%;background:rgba(20,184,166,.09);pointer-events:none}.segmented-control{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px}.segment-option{margin:0;cursor:pointer}.segment-option input{position:absolute;opacity:0;pointer-events:none}.segment-option span{display:block;text-align:center;border-radius:999px;padding:.64rem .55rem;color:#64748b;font-weight:850;font-size:.92rem;transition:.18s ease}.segment-option input:checked+span{background:#0f766e;color:#fff;box-shadow:0 10px 22px rgba(15,118,110,.18)}.filter-summary-chips{display:flex;gap:8px;flex-wrap:wrap}.filter-summary-chips span{display:inline-flex;align-items:center;gap:7px;padding:.55rem .78rem;border-radius:999px;background:#f0fdfa;border:1px solid #ccfbf1;color:#115e59;font-weight:800;font-size:.88rem}.filter-summary-chips i{font-size:.86rem}.availability-board{display:grid;gap:14px}.day-availability-card{border:1px solid rgba(226,232,240,.94);background:rgba(255,255,255,.94);border-radius:28px;padding:18px;box-shadow:0 12px 34px rgba(15,23,42,.052);transition:.18s ease}.day-availability-card:hover{transform:translateY(-1px);box-shadow:0 18px 46px rgba(15,23,42,.07)}.day-availability-card.is-empty{background:linear-gradient(135deg,#fff,#f8fafc)}.day-availability-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.day-availability-head span{display:block;color:#0f766e;font-weight:900;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.day-availability-head strong{display:block;color:#1e293b;font-size:1.04rem;line-height:1.2;margin-top:2px}.day-availability-head em{font-style:normal;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:.42rem .72rem;font-weight:850;font-size:.86rem;white-space:nowrap}.internal-slot-grid{display:flex;gap:9px;flex-wrap:wrap}.internal-slot-grid .slot-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid #dbe4ee;background:#fff;color:#334155;border-radius:999px;padding:.62rem .88rem;font-weight:850;box-shadow:0 8px 20px rgba(15,23,42,.045);transition:.18s ease}.internal-slot-grid .slot-pill i{color:#0f766e}.internal-slot-grid .slot-pill:hover{border-color:#5eead4;background:#f0fdfa;color:#0f766e;transform:translateY(-1px)}.internal-slot-grid .slot-pill.active{background:#0f766e!important;border-color:#0f766e!important;color:#fff!important;box-shadow:0 14px 30px rgba(15,118,110,.2)}.internal-slot-grid .slot-pill.active i{color:#fff}.empty-availability{display:flex;align-items:center;gap:12px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:22px;padding:14px;color:#64748b}.empty-availability i{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#94a3b8}.empty-availability strong{display:block;color:#475569;font-weight:900}.empty-availability small{display:block;color:#64748b}.internal-booking-panel{border:1px solid #ccfbf1!important}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-lock{width:42px;height:42px;display:grid;place-items:center;border-radius:16px;background:#f0fdfa;color:#0f766e}.selected-slot-card{border:1px dashed #99f6e4;background:linear-gradient(135deg,#f0fdfa,#ffffff);border-radius:24px;padding:16px}.selected-slot-card span{display:block;color:#0f766e;font-weight:900;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.selected-slot-card strong{display:block;color:#1e293b;font-size:1.18rem;line-height:1.2;margin-top:3px}.selected-slot-card small{display:block;color:#64748b;margin-top:5px}.selected-slot-card.is-selected{border-style:solid;box-shadow:0 14px 30px rgba(15,118,110,.08)}.patient-mode-toggle{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:20px;padding:6px}.patient-mode-toggle button{border:0;background:transparent;color:#64748b;border-radius:16px;padding:.72rem .6rem;font-weight:900;transition:.18s ease}.patient-mode-toggle button.active{background:#fff;color:#0f766e;box-shadow:0 8px 20px rgba(15,23,42,.06)}.patient-new-block{margin-left:0;margin-right:0;padding:12px;border-radius:22px;background:#f8fafc;border:1px solid #e2e8f0}.patient-new-block.d-none{display:none!important}.sticky-xl-top{z-index:5}
@media(max-width:1199.98px){.booking-flow-steps{grid-template-columns:1fr}.internal-booking-panel{position:static!important}.day-availability-card{border-radius:24px}}
@media(max-width:767.98px){.internal-booking-hero .lead{font-size:.98rem}.flow-step{padding:12px;border-radius:20px}.flow-step span{width:34px;height:34px;flex-basis:34px}.segmented-control{border-radius:20px;grid-template-columns:1fr}.segment-option span{border-radius:15px}.filter-summary-chips span{width:100%;justify-content:flex-start}.day-availability-head{align-items:flex-start;flex-direction:column}.day-availability-head em{align-self:flex-start}.internal-slot-grid{display:grid;grid-template-columns:1fr 1fr}.internal-slot-grid .slot-pill{justify-content:center;padding:.78rem .55rem}.patient-mode-toggle{grid-template-columns:1fr}.selected-slot-card strong{font-size:1.05rem}}
@media(max-width:430px){.internal-slot-grid{grid-template-columns:1fr}.day-availability-card{padding:14px}.content-card.internal-booking-panel{padding:16px!important}}

/* v13.3 · Agenda administrativa más usable */
.admin-agenda-hero .lead{max-width:760px}
.metric-card-soft small{display:block;color:var(--muted);font-size:.78rem;margin-top:.35rem;line-height:1.25}
.filter-card{position:sticky;top:14px;z-index:5;backdrop-filter:blur(12px)}
.input-icon{position:relative}.input-icon i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.9rem}.input-icon .form-control{padding-left:2.5rem}
.range-pills .btn{border-radius:999px}
.agenda-day-heading{display:flex;align-items:center;gap:.65rem;margin:1.15rem 0 .75rem;color:var(--muted);font-size:.9rem;font-weight:800;letter-spacing:.02em;text-transform:capitalize}.agenda-day-heading strong{color:var(--ink);background:rgba(15,118,110,.08);border:1px solid rgba(15,118,110,.12);border-radius:999px;padding:.28rem .7rem}.agenda-day-heading:after{content:"";height:1px;background:rgba(100,116,139,.18);flex:1}
.admin-appointment-card{padding:0;overflow:hidden;border:1px solid rgba(15,118,110,.08);display:grid;grid-template-columns:118px 1fr;transition:.18s ease}.admin-appointment-card:hover{transform:translateY(-1px);box-shadow:0 14px 38px rgba(15,23,42,.08)}.admin-appointment-card.needs-review{border-color:rgba(245,158,11,.38);box-shadow:0 12px 34px rgba(245,158,11,.10)}
.appt-time-col{background:linear-gradient(180deg,rgba(15,118,110,.10),rgba(240,253,250,.9));border-right:1px solid rgba(15,118,110,.10);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:1.2rem .75rem;text-align:center}.appt-time-col .time-range{font-size:1.18rem;font-weight:900;color:var(--brand-700);display:flex;gap:.35rem;align-items:center}.appt-time-col small{font-weight:800;color:var(--ink)}.duration-pill{margin-top:.35rem;border-radius:999px;background:#fff;color:var(--muted);font-size:.75rem;font-weight:800;padding:.22rem .55rem;border:1px solid rgba(15,118,110,.12)}
.appt-main-col{padding:1.2rem 1.3rem}.avatar-soft{background:linear-gradient(135deg,#ccfbf1,#e0e7ff);color:var(--brand-700);box-shadow:inset 0 0 0 1px rgba(15,118,110,.12)}
.patient-meta{display:flex;flex-wrap:wrap;gap:.45rem .9rem;color:var(--muted);font-size:.86rem}.patient-meta i{color:var(--brand);width:1rem}.appt-actions-top{display:flex;gap:.45rem;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap}.appt-detail-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem}.appt-detail-grid>div{background:rgba(248,250,252,.9);border:1px solid rgba(100,116,139,.10);border-radius:18px;padding:.72rem .8rem;min-height:64px}.appt-detail-grid span{display:block;color:var(--muted);font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem}.appt-detail-grid strong{display:block;color:var(--ink);font-size:.9rem;line-height:1.25}.appt-detail-grid a{text-decoration:none;color:var(--brand-700)}
.review-badge{display:inline-flex;margin-top:.35rem;background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:999px;padding:.18rem .55rem;font-size:.72rem;font-weight:900}.admin-appt-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-inline-panel{background:linear-gradient(180deg,rgba(240,253,250,.9),rgba(255,255,255,.92));border:1px solid rgba(15,118,110,.12);border-radius:22px;padding:1rem}.empty-state .empty-icon{width:64px;height:64px;border-radius:24px;margin:0 auto;background:rgba(15,118,110,.10);display:grid;place-items:center;color:var(--brand-700);font-size:1.7rem}
@media (max-width: 1199.98px){.appt-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-card{position:relative;top:auto}}
@media (max-width: 767.98px){.admin-appointment-card{grid-template-columns:1fr}.appt-time-col{border-right:0;border-bottom:1px solid rgba(15,118,110,.10);flex-direction:row;justify-content:space-between;text-align:left}.appt-main-col{padding:1rem}.appt-detail-grid{grid-template-columns:1fr 1fr}.appt-actions-top{justify-content:flex-start}.admin-inline-panel{padding:.85rem;border-radius:18px}}
@media (max-width: 480px){.appt-detail-grid{grid-template-columns:1fr}.patient-meta{flex-direction:column;gap:.25rem}.admin-appt-actions .btn{width:100%;justify-content:center}.appt-time-col{align-items:center}.appt-time-col .time-range{font-size:1.05rem}}

/* v13.5 - Select fields: visible dropdown indicator across the system */
select,
.form-select,
.form-select-sm,
.form-select-lg {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background-color: #fff !important;
  background-image:
    linear-gradient(45deg, transparent 50%, #0f766e 50%),
    linear-gradient(135deg, #0f766e 50%, transparent 50%),
    linear-gradient(to right, #e2e8f0, #e2e8f0) !important;
  background-position:
    calc(100% - 22px) calc(50% - 3px),
    calc(100% - 16px) calc(50% - 3px),
    calc(100% - 46px) 50% !important;
  background-size: 7px 7px, 7px 7px, 1px 58% !important;
  background-repeat: no-repeat !important;
  padding-right: 3.25rem !important;
  cursor: pointer;
}

select:hover,
.form-select:hover {
  border-color: #99f6e4 !important;
  box-shadow: 0 8px 20px rgba(15, 118, 110, .055) !important;
}

select:focus,
.form-select:focus {
  border-color: #14b8a6 !important;
  box-shadow: 0 0 0 .25rem rgba(20, 184, 166, .14) !important;
  outline: 0 !important;
}

select:disabled,
.form-select:disabled {
  cursor: not-allowed;
  color: #94a3b8 !important;
  background-color: #f8fafc !important;
  background-image:
    linear-gradient(45deg, transparent 50%, #94a3b8 50%),
    linear-gradient(135deg, #94a3b8 50%, transparent 50%),
    linear-gradient(to right, #e2e8f0, #e2e8f0) !important;
}

.form-select-sm {
  min-height: 40px !important;
  border-radius: 14px !important;
  background-position:
    calc(100% - 19px) calc(50% - 3px),
    calc(100% - 13px) calc(50% - 3px),
    calc(100% - 40px) 50% !important;
  background-size: 6px 6px, 6px 6px, 1px 56% !important;
  padding-right: 2.75rem !important;
}

.form-select-lg {
  min-height: 54px !important;
  border-radius: 20px !important;
}

/* Make selects inside dark/gradient sections still readable */
.booking-side select,
.booking-side .form-select,
.login-art select,
.login-art .form-select {
  color: #334155 !important;
  background-color: rgba(255,255,255,.98) !important;
}

@media (max-width: 575.98px) {
  select,
  .form-select {
    min-height: 48px !important;
    font-size: 1rem !important;
    background-position:
      calc(100% - 21px) calc(50% - 3px),
      calc(100% - 15px) calc(50% - 3px),
      calc(100% - 44px) 50% !important;
  }
}

/* v13.6 modern login */
.login-modern-wrap{
  position:relative;
  min-height:calc(100vh - 76px);
  display:flex;
  align-items:center;
  overflow:hidden;
  padding:52px 0;
  background:
    radial-gradient(circle at 12% 10%, rgba(45,212,191,.18), transparent 34%),
    radial-gradient(circle at 90% 5%, rgba(99,102,241,.12), transparent 30%),
    linear-gradient(180deg,#f8fafc 0%,#f5f5f4 100%);
}
.login-bg-orb{position:absolute;border-radius:999px;filter:blur(4px);opacity:.9;pointer-events:none}
.login-bg-orb.orb-one{width:320px;height:320px;left:-140px;bottom:-120px;background:rgba(20,184,166,.13)}
.login-bg-orb.orb-two{width:240px;height:240px;right:-80px;top:90px;background:rgba(16,185,129,.12)}
.login-wellness-panel{
  position:relative;
  border-radius:34px;
  padding:34px;
  color:#fff;
  overflow:hidden;
  background:linear-gradient(155deg,#134e4a 0%,#0f766e 58%,#14b8a6 130%)!important;
  box-shadow:0 24px 60px rgba(15,118,110,.18);
  border:1px solid rgba(255,255,255,.16)!important;
}
.login-wellness-panel:before{content:"";position:absolute;inset:auto -90px -130px auto;width:300px;height:300px;border-radius:999px;background:rgba(255,255,255,.11)}
.login-wellness-panel:after{content:"";position:absolute;left:-80px;top:-80px;width:220px;height:220px;border-radius:999px;background:rgba(255,255,255,.08)}
.login-wellness-panel>*{position:relative;z-index:1}
.login-brand-chip{display:inline-flex;align-items:center;gap:10px;padding:9px 13px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);font-weight:850;font-size:.88rem;backdrop-filter:blur(12px)}
.login-brand-chip span{width:28px;height:28px;border-radius:999px;background:#fff;color:#0f766e;display:inline-flex;align-items:center;justify-content:center}
.login-title{font-size:clamp(2rem,4vw,3.35rem);line-height:1;letter-spacing:-.06em;font-weight:900}
.login-subtitle{color:rgba(255,255,255,.78);font-size:1.05rem;line-height:1.65;max-width:480px}
.login-trust-grid{display:grid;gap:12px}
.login-trust-item{display:flex;gap:14px;align-items:flex-start;padding:15px;border-radius:22px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(14px)}
.login-trust-item i{width:40px;height:40px;flex:0 0 40px;border-radius:16px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:1rem}
.login-trust-item strong{display:block;font-weight:900;letter-spacing:-.02em}.login-trust-item small{display:block;color:rgba(255,255,255,.72);line-height:1.45;margin-top:3px}
.login-soft-note{display:flex;gap:10px;align-items:flex-start;padding:14px 15px;border-radius:20px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.78);font-size:.92rem;line-height:1.45}
.login-card-modern{position:relative;background:rgba(255,255,255,.94);border:1px solid rgba(226,232,240,.95);border-radius:34px;padding:34px;box-shadow:0 22px 58px rgba(15,23,42,.08);backdrop-filter:blur(18px)}
.login-card-title{font-weight:900;letter-spacing:-.045em;color:#0f172a}.login-lock-icon{width:50px;height:50px;border-radius:19px;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center;font-size:1.1rem;box-shadow:0 10px 26px rgba(20,184,166,.12)}
.input-icon-wrap{position:relative}.input-icon-wrap>i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#94a3b8;z-index:2}.input-icon-wrap .form-control{padding-left:44px!important;min-height:52px;border-radius:18px;background:#fff;border-color:#dbe4ee}.input-icon-wrap .form-control:focus{border-color:#14b8a6;box-shadow:0 0 0 .25rem rgba(20,184,166,.12)}
.login-show-pass{color:#0f766e!important;font-weight:850;text-decoration:none}.login-show-pass:hover{text-decoration:underline}.login-main-btn{min-height:52px;border-radius:18px!important;background:#0f766e!important;border-color:#0f766e!important;box-shadow:0 16px 34px rgba(15,118,110,.18)!important}.login-main-btn:hover{background:#115e59!important;border-color:#115e59!important}
.login-divider{display:flex;align-items:center;gap:12px;margin:24px 0 18px;color:#64748b;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:#e2e8f0}.demo-login-box-modern{border:1px solid #dbeafe;background:linear-gradient(180deg,#f8fafc,#f0fdfa);border-radius:24px;padding:16px}.demo-login-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.demo-login-head strong{display:block;font-weight:900;color:#0f172a}.demo-login-head small{display:block;color:#64748b;margin-top:2px}.demo-login-list-modern{display:grid;gap:10px}.demo-profile-card{width:100%;border:1px solid rgba(203,213,225,.85);background:#fff;border-radius:18px;padding:12px;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;text-align:left;transition:.16s ease}.demo-profile-card:hover{transform:translateY(-1px);border-color:#5eead4;background:#f8fffd;box-shadow:0 12px 26px rgba(15,118,110,.08)}.demo-profile-icon{width:42px;height:42px;border-radius:16px;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center}.demo-profile-text strong{display:block;color:#0f172a;font-weight:900;line-height:1.1}.demo-profile-text small{display:block;color:#64748b;margin-top:4px;font-size:.82rem;word-break:break-word}.demo-profile-action{font-weight:900;color:#0f766e;border-radius:999px;background:#ccfbf1;padding:7px 10px;font-size:.8rem}
@media(max-width:991.98px){.login-modern-wrap{padding:32px 0}.login-wellness-panel,.login-card-modern{border-radius:28px;padding:26px}.login-title{font-size:2.35rem}.login-wellness-panel{min-height:auto}}
@media(max-width:575.98px){.login-modern-wrap{padding:24px 0}.login-wellness-panel,.login-card-modern{border-radius:24px;padding:20px}.login-title{font-size:2rem}.login-subtitle{font-size:.98rem}.login-trust-item{padding:13px}.demo-profile-card{grid-template-columns:38px 1fr;align-items:start}.demo-profile-action{grid-column:1 / -1;text-align:center}.login-card-modern .d-flex.justify-content-between{align-items:flex-start!important}.login-lock-icon{width:44px;height:44px;border-radius:16px}}


/* v13.7 Portal paciente: documentos y reagendamiento seguro */
.portal-doc-box{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.85rem 1rem;border:1px solid rgba(15,118,110,.14);
  background:linear-gradient(135deg, rgba(240,253,250,.9), rgba(255,255,255,.95));
  border-radius:1rem;box-shadow:0 10px 22px rgba(15,23,42,.04);
}
.request-box{border:1px solid rgba(15,118,110,.12);background:rgba(248,250,252,.72);border-radius:1rem;padding:1rem;}
.portal-request-form label.mini{display:block;font-weight:800;color:#64748b;}
.reschedule-help{color:#0f766e;background:rgba(240,253,250,.85);border:1px solid rgba(15,118,110,.12);border-radius:.85rem;padding:.55rem .75rem;display:inline-flex;align-items:center;}
@media (max-width: 576px){.portal-doc-box{align-items:flex-start;flex-direction:column}.portal-doc-box .btn{width:100%;}}

/* v13.8 Portal paciente autosuficiente */
.portal-new-booking{scroll-margin-top:1rem;background:linear-gradient(145deg,#fff 0%,#f7fcfb 100%)}
.portal-secure-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .85rem;border-radius:999px;background:#ecfdf5;color:#0f766e;font-size:.82rem;font-weight:800;border:1px solid rgba(15,118,110,.12)}
.portal-booking-filter{padding:1rem;border-radius:1.25rem;background:#f8fafc;border:1px solid rgba(15,23,42,.06)}
.portal-day-strip,.reschedule-day-strip{display:flex;gap:.65rem;overflow-x:auto;padding:.15rem .1rem .7rem;scrollbar-width:thin}
.portal-day-btn,.reschedule-day-btn{min-width:68px;border:1px solid rgba(15,118,110,.14);background:#fff;border-radius:1rem;padding:.65rem .7rem;display:grid;text-align:center;color:#64748b;transition:.2s;box-shadow:0 4px 12px rgba(15,23,42,.03)}
.portal-day-btn small,.reschedule-day-btn small{text-transform:capitalize;font-size:.72rem}.portal-day-btn strong,.reschedule-day-btn strong{font-size:1.15rem;color:#334155}.portal-day-btn span,.reschedule-day-btn span{font-size:.72rem}
.portal-day-btn:hover,.portal-day-btn.active,.reschedule-day-btn:hover,.reschedule-day-btn.active{background:#0f766e;color:#fff;border-color:#0f766e;transform:translateY(-1px)}
.portal-day-btn.active strong,.reschedule-day-btn.active strong{color:#fff}
.portal-book-slots,.reschedule-time-grid{display:flex;flex-wrap:wrap;gap:.65rem;padding:.25rem 0}
.portal-time-btn,.reschedule-time-btn{border:1px solid rgba(15,118,110,.16);background:#fff;color:#0f766e;border-radius:.85rem;padding:.65rem .9rem;font-weight:800;display:inline-flex;align-items:center;gap:.45rem;transition:.2s}
.portal-time-btn:hover,.portal-time-btn.active,.reschedule-time-btn:hover,.reschedule-time-btn.active{background:#0f766e;color:#fff;border-color:#0f766e;box-shadow:0 8px 18px rgba(15,118,110,.16)}
.portal-book-confirm{padding:1rem;border-radius:1rem;background:#f0fdfa;border:1px solid rgba(15,118,110,.12)}
.portal-reschedule-card{background:linear-gradient(145deg,#fbfefd,#f5fbfa);border-color:rgba(15,118,110,.14)}
.portal-card-icon{width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#ecfdf5;color:#0f766e}
#profile{scroll-margin-top:1rem}
@media(max-width:767px){.portal-booking-filter{padding:.8rem}.portal-day-btn,.reschedule-day-btn{min-width:62px}.portal-time-btn,.reschedule-time-btn{flex:1 0 calc(33.333% - .65rem);justify-content:center}.portal-new-booking .btn,.portal-reschedule-card .btn{min-height:44px}}

/* v13.9 Portal paciente organizado por pestañas */
.portal-tabs-page{background:linear-gradient(180deg,#f8fafc 0%,#f5f7f7 100%)}
.portal-welcome-card{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.7rem 1.8rem;border-radius:2rem;color:#fff;background:linear-gradient(135deg,#115e59,#0f766e 62%,#14b8a6);box-shadow:0 22px 50px rgba(15,118,110,.18);position:relative;overflow:hidden}
.portal-welcome-card:after{content:"";position:absolute;right:-90px;bottom:-120px;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.1)}
.portal-welcome-card>*{position:relative;z-index:1}.portal-welcome-copy h1{font-size:clamp(1.8rem,3vw,2.7rem);font-weight:900;letter-spacing:-.05em;margin:.45rem 0}.portal-welcome-copy p{margin:0;color:rgba(255,255,255,.8)}.portal-private-label{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem;border-radius:999px;background:rgba(255,255,255,.14);font-size:.78rem;font-weight:850}.portal-welcome-actions{display:flex;gap:.65rem;flex-wrap:wrap}
.portal-tab-nav{display:flex;gap:.55rem;overflow-x:auto;padding:.45rem;background:#fff;border:1px solid rgba(15,23,42,.07);border-radius:1.25rem;box-shadow:0 10px 28px rgba(15,23,42,.05);scrollbar-width:thin;position:sticky;top:82px;z-index:20}.portal-tab-btn{border:0;background:transparent;color:#64748b;border-radius:.95rem;padding:.8rem .95rem;display:inline-flex;align-items:center;gap:.55rem;white-space:nowrap;font-weight:850;transition:.18s ease}.portal-tab-btn em{font-style:normal;min-width:23px;height:23px;border-radius:999px;background:#f1f5f9;color:#64748b;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem}.portal-tab-btn.active{background:#ecfdf5;color:#0f766e;box-shadow:inset 0 0 0 1px rgba(15,118,110,.12)}.portal-tab-btn.active em{background:#0f766e;color:#fff}
.portal-tab-content>.tab-pane{animation:portalFade .22s ease both}@keyframes portalFade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.portal-next-session-card{display:grid;grid-template-columns:auto 1fr auto;gap:1.3rem;align-items:center;padding:1.5rem;border-radius:1.6rem;background:#fff;border:1px solid rgba(15,118,110,.12);box-shadow:0 16px 38px rgba(15,23,42,.06)}.portal-next-date{width:88px;height:104px;border-radius:1.4rem;background:linear-gradient(145deg,#ecfdf5,#ccfbf1);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#0f766e}.portal-next-date small{text-transform:uppercase;font-weight:900;font-size:.72rem}.portal-next-date strong{font-size:2rem;line-height:1}.portal-next-date span{font-weight:850;margin-top:.35rem}.portal-next-info h2{font-size:1.35rem;font-weight:900;color:#0f172a;margin:.25rem 0}.portal-next-info p{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;color:#64748b;margin-bottom:.7rem}.portal-next-actions{display:flex;flex-direction:column;gap:.6rem;min-width:170px}
.portal-no-next,.portal-empty-state{padding:2rem;text-align:center;border-radius:1.5rem;background:#fff;border:1px dashed rgba(15,118,110,.25)}.portal-no-next>div,.portal-empty-state>i{width:58px;height:58px;margin:0 auto .8rem;border-radius:1.2rem;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center;font-size:1.35rem}.portal-no-next h2,.portal-empty-state h3{font-weight:900;color:#0f172a}.portal-no-next p,.portal-empty-state p{color:#64748b}
.portal-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.portal-summary-card{border:1px solid rgba(15,23,42,.07);background:#fff;border-radius:1.35rem;padding:1.15rem;text-align:left;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;box-shadow:0 10px 28px rgba(15,23,42,.04);transition:.18s ease}.portal-summary-card:hover{transform:translateY(-2px);border-color:rgba(15,118,110,.25)}.portal-summary-card i{width:42px;height:42px;border-radius:1rem;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center}.portal-summary-card span{color:#64748b;font-size:.84rem;font-weight:750}.portal-summary-card strong{font-size:1.55rem;color:#0f172a}
.portal-section-title,.portal-section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.25rem}.portal-section-title h2,.portal-section-heading h2{font-size:1.45rem;font-weight:900;color:#0f172a;margin:.2rem 0}.portal-section-heading p{color:#64748b;margin:0}.portal-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.portal-quick-action{border:1px solid rgba(15,23,42,.07);background:#f8fafc;border-radius:1.15rem;padding:1rem;text-align:left;display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;row-gap:.15rem}.portal-quick-action i{grid-row:1/3;width:42px;height:42px;border-radius:1rem;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center}.portal-quick-action strong{color:#0f172a}.portal-quick-action span{font-size:.82rem;color:#64748b}.portal-request-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid #eef2f7}.portal-request-row:last-child{border-bottom:0}.portal-request-row strong,.portal-request-row span{display:block}.portal-request-row span{font-size:.78rem;color:#64748b;margin-top:.2rem}.portal-request-row em{font-style:normal;background:#f1f5f9;border-radius:999px;padding:.35rem .6rem;font-size:.75rem;color:#475569}.portal-empty-small{display:flex;gap:.65rem;align-items:center;color:#64748b;padding:1rem 0}
.portal-session-list,.portal-reschedule-list{display:grid;gap:1rem}.portal-session-modern{display:grid;grid-template-columns:auto 1fr auto;gap:1.15rem;align-items:center;padding:1.15rem 1.25rem;border-radius:1.35rem;background:#fff;border:1px solid rgba(15,23,42,.07);box-shadow:0 10px 28px rgba(15,23,42,.04)}.portal-session-modern.is-upcoming{border-color:rgba(15,118,110,.2);background:linear-gradient(145deg,#fff,#f7fffd)}.portal-session-date{width:64px;min-width:64px;border-radius:1rem;background:#f1f5f9;padding:.65rem;text-align:center}.portal-session-date strong,.portal-session-date span,.portal-session-date small{display:block}.portal-session-date strong{font-size:1.5rem;color:#0f172a}.portal-session-date span{text-transform:uppercase;font-size:.72rem;font-weight:900;color:#0f766e}.portal-session-date small{font-size:.7rem;color:#94a3b8}.portal-session-main h3{font-size:1rem;font-weight:900;margin:0}.portal-session-main p{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;color:#64748b;margin:.35rem 0}.portal-session-main small{color:#475569}.portal-session-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}
.portal-booking-shell{border-radius:1.5rem}.portal-booking-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1.2rem}.portal-booking-steps span{display:flex;gap:.55rem;align-items:center;color:#64748b;font-weight:800}.portal-booking-steps b{width:28px;height:28px;border-radius:999px;background:#f1f5f9;display:inline-flex;align-items:center;justify-content:center}.portal-booking-steps .active{color:#0f766e}.portal-booking-steps .active b{background:#0f766e;color:#fff}.portal-picker-block{padding:1rem 0}.portal-picker-block>label{display:block;font-weight:900;color:#334155;margin-bottom:.65rem}
.portal-reschedule-modern{padding:1.25rem;border-radius:1.45rem;background:#fff;border:1px solid rgba(15,118,110,.14);box-shadow:0 12px 30px rgba(15,23,42,.05)}.portal-reschedule-head{display:flex;gap:1rem;align-items:center;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid #eef2f7}.portal-reschedule-head span{font-size:.75rem;color:#64748b;text-transform:uppercase;font-weight:850}.portal-reschedule-head h3{font-size:1.1rem;font-weight:900;margin:.15rem 0}.portal-reschedule-head p{margin:0;color:#64748b}
.portal-document-list,.portal-consent-list{display:grid;gap:.85rem}.portal-document-item,.portal-consent-list article{display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:center;padding:.9rem;border:1px solid rgba(15,23,42,.07);border-radius:1rem;background:#f8fafc}.portal-document-icon,.portal-consent-list article>i{width:42px;height:42px;border-radius:1rem;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center}.portal-document-item strong,.portal-document-item span,.portal-document-item small,.portal-consent-list strong,.portal-consent-list span,.portal-consent-list small{display:block}.portal-document-item span,.portal-consent-list span{font-size:.8rem;color:#64748b;margin-top:.15rem}.portal-document-item small,.portal-consent-list small{font-size:.74rem;color:#94a3b8}
.portal-profile-form{border-radius:1.5rem}.portal-form-section{height:100%;padding:1rem;border-radius:1.2rem;background:#f8fafc;border:1px solid rgba(15,23,42,.06)}.portal-form-section-head{display:flex;gap:.8rem;align-items:center;margin-bottom:1rem}.portal-form-section-head>i{width:42px;height:42px;border-radius:1rem;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center}.portal-form-section-head strong,.portal-form-section-head span{display:block}.portal-form-section-head span{font-size:.8rem;color:#64748b}.portal-profile-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;border-top:1px solid #eef2f7}.portal-profile-footer span{color:#64748b;font-size:.84rem}.portal-empty-icon{width:68px;height:68px;border-radius:1.4rem;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center;font-size:1.4rem}
@media(max-width:991.98px){.portal-tab-nav{top:72px}.portal-summary-grid{grid-template-columns:repeat(2,1fr)}.portal-next-session-card{grid-template-columns:auto 1fr}.portal-next-actions{grid-column:1/-1;flex-direction:row}.portal-session-modern{grid-template-columns:auto 1fr}.portal-session-actions{grid-column:1/-1;justify-content:flex-start}.portal-welcome-card{align-items:flex-start;flex-direction:column}}
@media(max-width:575.98px){.portal-welcome-card{padding:1.25rem;border-radius:1.5rem}.portal-welcome-actions,.portal-welcome-actions .btn{width:100%}.portal-tab-nav{margin-left:-.25rem;margin-right:-.25rem;border-radius:1rem;padding:.35rem}.portal-tab-btn{padding:.7rem .75rem}.portal-tab-btn span{font-size:.78rem}.portal-next-session-card{grid-template-columns:1fr;text-align:left}.portal-next-date{width:100%;height:auto;flex-direction:row;gap:.55rem;justify-content:flex-start;padding:.8rem 1rem}.portal-next-date strong{font-size:1.35rem}.portal-next-actions{flex-direction:column}.portal-summary-grid{grid-template-columns:1fr}.portal-quick-grid{grid-template-columns:1fr}.portal-session-modern{grid-template-columns:1fr}.portal-session-date{width:100%;display:flex;align-items:center;gap:.5rem;text-align:left}.portal-session-actions,.portal-session-actions .btn{width:100%}.portal-booking-steps{grid-template-columns:1fr}.portal-document-item,.portal-consent-list article{grid-template-columns:auto 1fr}.portal-document-item .btn{grid-column:1/-1;width:100%}.portal-profile-footer{align-items:flex-start;flex-direction:column}.portal-profile-footer .btn{width:100%}}


/* v14.0 Sala online: experiencia de videoconsulta */
.online-room-v14{min-height:100vh;background:radial-gradient(circle at 10% 0%,rgba(20,184,166,.13),transparent 28%),linear-gradient(145deg,#07131d 0%,#0d1b26 52%,#102730 100%);color:#fff}
.online-session-header{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:.4rem .25rem}.online-session-identity{display:flex;align-items:center;gap:1rem}.online-session-icon{width:52px;height:52px;border-radius:1.1rem;display:flex;align-items:center;justify-content:center;background:rgba(45,212,191,.14);border:1px solid rgba(94,234,212,.25);color:#5eead4;font-size:1.15rem}.online-session-identity h1{font-size:1.3rem;font-weight:900;margin:0}.online-session-identity p{color:#9fb2bf;margin:.25rem 0 0;font-size:.84rem}.online-session-identity p span{margin:0 .35rem}.online-session-header-actions{display:flex;align-items:center;gap:.8rem}.online-status-row{display:flex;gap:.5rem;flex-wrap:wrap}.online-status,#secureBadge,#connectionBadge{display:inline-flex;align-items:center;gap:.4rem;padding:.48rem .72rem;border-radius:999px!important;font-size:.74rem;font-weight:850;background:rgba(148,163,184,.13)!important;color:#d8e3e9!important;border:1px solid rgba(148,163,184,.18)}#secureBadge.text-bg-success,#connectionBadge.text-bg-success{background:rgba(16,185,129,.14)!important;color:#6ee7b7!important;border-color:rgba(52,211,153,.25)}#secureBadge.text-bg-danger,#connectionBadge.text-bg-danger{background:rgba(239,68,68,.14)!important;color:#fca5a5!important;border-color:rgba(248,113,113,.25)}#connectionBadge.text-bg-warning{background:rgba(245,158,11,.14)!important;color:#fcd34d!important;border-color:rgba(251,191,36,.25)}
.online-session-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1rem;align-items:stretch}.online-session-main{min-width:0}.online-video-stage{min-height:clamp(430px,68vh,760px);border-radius:1.6rem;overflow:hidden;background:#02070b;border:1px solid rgba(148,163,184,.15);box-shadow:0 28px 70px rgba(0,0,0,.34);position:relative}.online-video-stage>video#remoteVideo{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.online-waiting-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;background:radial-gradient(circle at center,rgba(15,118,110,.18),transparent 45%)}.waiting-pulse{width:84px;height:84px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(45,212,191,.12);border:1px solid rgba(94,234,212,.25);color:#5eead4;font-size:1.55rem;position:relative}.waiting-pulse:before,.waiting-pulse:after{content:"";position:absolute;inset:-9px;border:1px solid rgba(94,234,212,.16);border-radius:50%;animation:roomPulse 2.2s infinite}.waiting-pulse:after{inset:-19px;animation-delay:.4s}@keyframes roomPulse{0%,100%{opacity:.25;transform:scale(.96)}50%{opacity:.8;transform:scale(1.03)}}.waiting-kicker{margin-top:1.4rem;color:#5eead4;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.online-waiting-state h2{font-size:1.55rem;font-weight:900;margin:.35rem 0}.online-waiting-state p{max-width:540px;color:#9fb2bf;margin:0}.waiting-security{margin-top:1.2rem;padding:.55rem .8rem;border-radius:999px;background:rgba(148,163,184,.09);color:#b9c8d1;font-size:.78rem}.online-local-preview{position:absolute;right:1rem;bottom:1rem;width:min(28%,250px);aspect-ratio:16/10;border-radius:1rem;overflow:hidden;background:#101820;border:2px solid rgba(255,255,255,.72);box-shadow:0 14px 36px rgba(0,0,0,.38)}.online-local-preview video{width:100%;height:100%;object-fit:cover}.local-video-label{position:absolute;left:.45rem;bottom:.4rem;background:rgba(2,6,10,.72);backdrop-filter:blur(8px);border-radius:999px;padding:.28rem .55rem;font-size:.68rem;font-weight:800}.camera-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#34d399;margin-right:.35rem}.video-session-label{position:absolute;left:1rem;top:1rem;padding:.45rem .7rem;border-radius:999px;background:rgba(2,6,10,.62);backdrop-filter:blur(8px);font-size:.72rem;color:#d7e1e7}.room-fallback-notice{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;border-radius:1rem;background:rgba(127,29,29,.93);color:#fee2e2;z-index:4}.room-fallback-notice span{display:block;font-size:.78rem;margin-top:.15rem}
.online-room-controls{display:flex;align-items:center;justify-content:center;gap:.7rem;padding:.7rem;border-radius:1.25rem;background:rgba(255,255,255,.06);border:1px solid rgba(148,163,184,.12);backdrop-filter:blur(12px)}.room-control{border:0;min-width:105px;border-radius:1rem;padding:.72rem .85rem;background:rgba(255,255,255,.09);color:#e7eff3;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:850;transition:.18s ease}.room-control:hover:not(:disabled){background:rgba(255,255,255,.16);transform:translateY(-1px)}.room-control:disabled{opacity:.42}.room-control-start{background:#0f766e;color:#fff;min-width:145px}.room-control-start:hover:not(:disabled){background:#0d9488}.room-control-danger{background:rgba(239,68,68,.15);color:#fecaca}.room-control-danger:not(:disabled):hover{background:#dc2626;color:#fff}.room-control.is-off{background:rgba(245,158,11,.16);color:#fde68a}.online-help-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.online-help-strip>div{display:flex;align-items:center;gap:.65rem;padding:.75rem .85rem;border-radius:1rem;background:rgba(255,255,255,.045);border:1px solid rgba(148,163,184,.09);color:#9fb2bf;font-size:.75rem}.online-help-strip i{color:#5eead4}.online-help-strip strong{color:#d9e5ea}
.online-session-sidebar{min-height:0;border-radius:1.5rem;background:#f8fafc;color:#0f172a;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 28px 60px rgba(0,0,0,.22)}.online-sidebar-tabs{display:grid;grid-template-columns:1fr 1fr;padding:.45rem;background:#e8eef2;border-bottom:1px solid #dbe4ea}.online-sidebar-tab{border:0;background:transparent;border-radius:.85rem;padding:.7rem;display:flex;align-items:center;justify-content:center;gap:.45rem;color:#64748b;font-size:.8rem;font-weight:850}.online-sidebar-tab.active{background:#fff;color:#0f766e;box-shadow:0 4px 12px rgba(15,23,42,.08)}.online-sidebar-tab em{font-style:normal;min-width:18px;height:18px;border-radius:999px;background:#ef4444;color:#fff;font-size:.62rem;display:inline-flex;align-items:center;justify-content:center}.online-sidebar-panel{display:none;padding:1rem;overflow:auto;flex:1}.online-sidebar-panel.active{display:block}.online-info-card{background:#fff;border:1px solid #e5edf1;border-radius:1.15rem;padding:1rem;margin-bottom:.8rem;box-shadow:0 8px 20px rgba(15,23,42,.035)}.online-card-heading{display:flex;align-items:center;gap:.7rem;margin-bottom:.85rem}.online-card-heading>span{width:39px;height:39px;border-radius:.9rem;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center}.online-card-heading>span.warning{background:#fff7ed;color:#c2410c}.online-card-heading h2{font-size:.9rem;font-weight:900;margin:0}.online-card-heading p{font-size:.7rem;color:#94a3b8;margin:.12rem 0 0}.online-participant-list{display:grid;gap:.55rem}.online-participant{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.65rem;border-radius:.9rem;background:#f8fafc}.online-participant .avatar{width:38px;height:38px;border-radius:.85rem;display:flex;align-items:center;justify-content:center;font-weight:900}.professional-avatar{background:#ccfbf1;color:#0f766e}.patient-avatar{background:#e0f2fe;color:#0369a1}.online-participant strong,.online-participant small{display:block}.online-participant strong{font-size:.8rem}.online-participant small{font-size:.68rem;color:#94a3b8}.online-participant>i{color:#10b981;font-size:.78rem}.online-copy-field{display:grid;grid-template-columns:1fr 40px;border:1px solid #dbe4ea;border-radius:.85rem;overflow:hidden}.online-copy-field input{border:0;outline:0;padding:.62rem .7rem;font-size:.72rem;min-width:0;background:#f8fafc}.online-copy-field button{border:0;background:#0f766e;color:#fff}.online-copy-feedback{display:block;margin-top:.45rem;color:#94a3b8;font-size:.68rem}.online-info-text{font-size:.75rem;color:#64748b}.online-privacy-note{display:flex;gap:.7rem;padding:.9rem;border-radius:1rem;background:#ecfdf5;color:#0f766e}.online-privacy-note>i{margin-top:.15rem}.online-privacy-note strong{font-size:.78rem}.online-privacy-note p{font-size:.68rem;margin:.1rem 0 0;color:#4f7d78}
.online-sidebar-panel[data-room-panel-content="chat"]{padding:0;flex-direction:column}.online-sidebar-panel[data-room-panel-content="chat"].active{display:flex}.online-chat-header{padding:1rem;border-bottom:1px solid #e5edf1;display:flex;align-items:center;justify-content:space-between}.online-chat-header h2{font-size:.95rem;font-weight:900;margin:0}.online-chat-header p{font-size:.7rem;color:#94a3b8;margin:.15rem 0 0}.online-chat-header>i{color:#0f766e}.online-chat-messages{flex:1;min-height:430px;max-height:calc(100vh - 315px);overflow-y:auto;padding:1rem;background:#f8fafc}.online-chat-empty{height:100%;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#94a3b8}.online-chat-empty i{width:52px;height:52px;border-radius:1rem;background:#ecfdf5;color:#0f766e;display:flex;align-items:center;justify-content:center;font-size:1.15rem;margin-bottom:.7rem}.online-chat-empty strong{font-size:.82rem;color:#475569}.online-chat-empty span{font-size:.7rem;max-width:220px;margin-top:.2rem}.online-chat-form{display:grid;grid-template-columns:1fr 44px;gap:.5rem;padding:.8rem;border-top:1px solid #e5edf1;background:#fff}.online-chat-form .form-control{border-radius:.85rem}.online-chat-form .btn{border-radius:.85rem;padding:0}
@media(max-width:1100px){.online-session-layout{grid-template-columns:minmax(0,1fr) 320px}.online-help-strip{grid-template-columns:1fr}.online-help-strip>div{display:none}.online-help-strip>div:first-child{display:flex}}
@media(max-width:991.98px){.online-session-header{align-items:flex-start;flex-direction:column}.online-session-header-actions{width:100%;justify-content:space-between}.online-session-layout{grid-template-columns:1fr}.online-session-sidebar{min-height:500px}.online-video-stage{min-height:58vh}.online-chat-messages{max-height:520px}}
@media(max-width:575.98px){.online-room-v14 .container-fluid{padding-left:.65rem!important;padding-right:.65rem!important}.online-session-icon{display:none}.online-session-identity h1{font-size:1.05rem}.online-session-header-actions{align-items:flex-start;flex-direction:column}.online-status-row{width:100%}.online-video-stage{min-height:55vh;border-radius:1.2rem}.online-waiting-state{padding:1.2rem}.online-waiting-state h2{font-size:1.2rem}.online-local-preview{width:38%;right:.65rem;bottom:.65rem}.video-session-label{left:.65rem;top:.65rem}.online-room-controls{gap:.35rem;padding:.45rem;overflow-x:auto;justify-content:flex-start}.room-control{min-width:74px;flex-direction:column;gap:.2rem;padding:.55rem .45rem;font-size:.66rem}.room-control-start{min-width:94px}.online-help-strip{display:none}.online-session-sidebar{border-radius:1.2rem}.online-sidebar-panel{padding:.75rem}}


/* v14.1 acceso de invitados a sala online */
.online-guest-access-page{min-height:calc(100vh - 80px);display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(circle at top left,rgba(13,148,136,.16),transparent 34%),linear-gradient(145deg,#f8fffd,#eef7f5)}
.online-guest-access-card{width:min(100%,560px);background:#fff;border:1px solid rgba(15,118,110,.14);border-radius:1.5rem;padding:clamp(1.5rem,4vw,2.5rem);box-shadow:0 28px 70px rgba(15,23,42,.12)}
.online-guest-access-icon{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff;font-size:1.5rem;margin-bottom:1rem}
.online-guest-access-card h1{font-weight:850;color:#0f172a;margin:.35rem 0 .75rem}.online-guest-access-card>p{color:#64748b;line-height:1.7;margin-bottom:1.5rem}
.online-guest-privacy{display:flex;gap:.65rem;align-items:flex-start;margin-top:1.25rem;padding:.8rem 1rem;border-radius:1rem;background:#f0fdfa;color:#0f766e;font-size:.88rem}
.guest-avatar{background:linear-gradient(135deg,#7c3aed,#a78bfa)!important;color:#fff}.guest-participant{border-color:rgba(124,58,237,.16)!important}
