@keyframes slideFromLeft{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}@keyframes shimmerSiguiente{0%{background-position:-200%0;opacity:0}15%{opacity:1}70%{background-position:200%0;opacity:1}to{background-position:200%0;opacity:0}}@keyframes pingBadgeAtencion{0%{box-shadow:0 0 0 0 rgba(252,165,165,.7)}60%{box-shadow:0 0 0 5px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes pingBadge{0%{box-shadow:0 0 0 0 rgba(167,243,208,.7)}60%{box-shadow:0 0 0 5px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes entradaPrimero{0%{opacity:0;transform:translateX(-18px) scale(.97);box-shadow:inset 0 0 0 2px transparent}30%{opacity:1;transform:translateX(4px) scale(1.005);box-shadow:inset 0 0 0 2px rgba(138,166,161,.6)}55%{transform:translateX(-2px);box-shadow:inset 0 0 0 2px rgba(138,166,161,.3)}75%{transform:translateX(1px)}to{transform:translateX(0) scale(1);box-shadow:inset 0 0 0 2px transparent}}@keyframes glowFade{0%{background-color:rgba(138,166,161,.45)}to{background-color:transparent}}@keyframes dotPing{0%,to{box-shadow:0 0 0 3px rgba(138,166,161,.35)}50%{box-shadow:0 0 0 7px rgba(138,166,161,.1)}}@keyframes barrashimmer{0%{transform:translateX(-80px);opacity:0}40%{opacity:1}to{transform:translateX(40px);opacity:0}}@keyframes loaderSpin{to{transform:rotate(360deg)}}@keyframes toastSlide{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes toastFadeOut{to{opacity:0;transform:translateX(20px);max-height:0;margin:0;padding:0}}@keyframes viewFadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}@keyframes slideInToast{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}@keyframes ccalZoom{0%{transform:scale(1);opacity:1}40%{transform:scale(1.12);box-shadow:0 16px 48px rgba(138,166,161,.2)}to{transform:scale(1.4);opacity:0;filter:blur(2px)}}@keyframes fadeScaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes fadeScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(24px)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}:root{--c-primary:#8AA6A1;--c-primary-hover:#7a9691;--c-dark:#2d4a47;--c-darker:#1f3634;--c-mid:#627371;--c-active:#6b9590;--c-success:#059669;--c-success-dark:#047857;--c-danger:#dc2626;--c-danger-dark:#b91c1c;--c-warning:#f59e0b;--c-warning-dark:#d97706;--c-info:#0369a1;--c-info-hover:#025d8e;--c-greeting:#166534}*{box-sizing:border-box}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0;padding:0;background:#f0f4f8;color:#1f2937}.view-login{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;background:linear-gradient(rgba(31,54,52,.45),rgba(31,54,52,.45)),url(images/bck3.webp)center/cover no-repeat fixed;padding:24px}.view-login.hidden{display:none!important}.login-box{background:#fff;padding:40px;border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.2);max-width:400px;width:100%}.login-header{text-align:center;margin-bottom:28px}.login-logo{height:80px;width:auto;object-fit:contain;margin-bottom:16px}.login-header h1{font-size:1.6rem;font-weight:800;color:#1f3634;margin:0 0 8px}.login-header p{color:#6b7280;font-size:.95rem;margin:0}.login-form .form-group{margin-bottom:18px}.login-form label{display:block;font-size:.9rem;font-weight:600;margin-bottom:6px;color:#374151}.login-form input{width:100%;padding:12px 14px;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem}.login-form input:focus{outline:0;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(138,166,161,.4)}.btn-login{width:100%;padding:14px;background:var(--c-dark);color:#fff;border:0;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:8px;transition:background .15s ease,box-shadow .15s ease}.btn-login:hover{box-shadow:0 4px 12px rgba(45,74,71,.35)}.btn-login:active,.btn-login:hover{background:var(--c-darker)}.login-error{margin-top:12px;padding:10px;background:#fef2f2;color:#dc2626;border-radius:6px;font-size:.9rem}.login-error.hidden{display:none!important}.password-wrapper{display:flex;align-items:center;gap:8px;width:100%}.password-input{flex:1;min-width:0;padding:12px 14px!important;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;height:44px;box-sizing:border-box}.password-input:focus,input:focus,select:focus,textarea:focus{outline:0;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(138,166,161,.4)}.toggle-password-btn{background:0 0;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:20px;color:#627371;padding:12px;min-width:44px;min-height:44px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;flex-shrink:0;box-sizing:border-box}.toggle-password-btn:hover{background-color:#f3f4f6}.toggle-password-btn:active{background-color:#e5e7eb}.view-menu{min-height:100vh;background:linear-gradient(180deg,#f0f4f8 0,#e5e9ec 100%);position:relative}.view-menu::before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:url(images/fondo.webp);background-position:center;background-size:700px;background-repeat:no-repeat;background-attachment:fixed;opacity:.15;pointer-events:none;z-index:0}.view-menu>*{position:relative;z-index:1}.view-menu.hidden{display:none!important}.menu-header{display:flex;justify-content:space-between;align-items:center;padding:2px 28px 0;height:68px;background:#fff;box-shadow:0 1px 0#e5e7eb,0 2px 10px rgba(0,0,0,.06);position:sticky;top:0;z-index:100}.menu-logo{height:46px;width:auto}.menu-user{display:flex;align-items:center;gap:10px}.btn-logout,.menu-user>span{color:#374151;font-size:.875rem}.btn-logout{padding:8px 16px;background:0 0;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-weight:500;transition:all .15s ease}.menu-user>span{font-weight:600;padding:0 4px}.btn-logout:hover{background:#f9fafb;border-color:#d1d5db}#btnLogout{color:#dc2626;border-color:#fecaca}#btnLogout:hover{background:#fef2f2;border-color:#fca5a5}.doctor-greeting{padding:24px 30px;text-align:center;font-family:"Bodoni Moda","Boda",serif;font-size:28px;font-weight:600;font-style:italic;color:var(--c-greeting);letter-spacing:.5px;animation:slideFromLeft .6s ease-out}.doctor-greeting.hidden{display:none!important}.menu-content{max-width:990px;margin:0 auto;padding:40px 24px 60px}.menu-welcome{margin-bottom:28px}.menu-welcome h2{font-size:1.75rem;font-weight:800;color:#111827;margin:0 0 5px}.menu-welcome p{font-size:.9rem;color:#9ca3af;margin:0}.menu-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.menu-card,.menu-card-icon{display:flex;align-items:center}.menu-card{background:var(--mc, #8aa6a1);border:0;border-radius:20px;padding:28px 22px 22px;cursor:pointer;text-align:left;transition:transform .2s,box-shadow .2s;flex-direction:column;justify-content:space-between;aspect-ratio:1;box-shadow:0 6px 24px rgba(0,0,0,.12);position:relative;overflow:hidden}.menu-card:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 16px 40px rgba(0,0,0,.18)}.menu-card::after,.menu-card::before{content:"";position:absolute;aspect-ratio:1;border-radius:50%;pointer-events:none}.menu-card::before{top:-25%;right:-15%;width:65%;background:rgba(255,255,255,.1)}.menu-card::after{bottom:-25%;left:-10%;width:55%;background:rgba(255,255,255,.07)}.menu-card-icon{width:100px;height:100px;border-radius:50%;background:#fff;justify-content:center;box-shadow:0 4px 18px rgba(0,0,0,.12);flex-shrink:0;z-index:1}.menu-card-icon .icon-img{width:54px;height:54px;object-fit:contain}.ucqn-icon-text{font-weight:800;font-size:1rem;color:#0369a1;letter-spacing:.08rem}.menu-card-label{width:100%;z-index:1}.menu-card-title{font-size:.95rem;font-weight:700;color:#fff;display:block;text-shadow:0 1px 3px rgba(0,0,0,.15)}.menu-card-desc{font-size:.75rem;color:rgba(255,255,255,.78);display:block;margin-top:3px;line-height:1.4}.menu-card[data-module=recibos]{--mc:#059669}.menu-card[data-module=agenda-medica]{--mc:#2563eb}.menu-card[data-module=electro]{--mc:#0891b2}.menu-card[data-module=ucqn]{--mc:#7dd3fc}.menu-card[data-module=usuarios]{--mc:#d97706}.menu-card[data-module=diagnosticos]{--mc:#dc2626}.menu-card[data-module=dashboard-citas]{--mc:var(--c-dark)}.estado-badge-ucqn{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:700}.estado-badge-ucqn.estado-pendiente{background:#fef9c3;color:#92400e}.estado-badge-ucqn.estado-leido{background:#dbeafe;color:#1d4ed8}.estado-badge-ucqn.estado-facturado{background:#dcfce7;color:#166534}.view-module{min-height:100vh;min-height:100svh;background-color:#fff;position:relative}.view-module::before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:url(images/fondo.webp);background-position:center;background-size:700px;background-repeat:no-repeat;background-attachment:fixed;opacity:.12;pointer-events:none;z-index:0}.view-module>*{position:relative;z-index:1}.view-module.hidden{display:none!important}.btn-volver{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;margin-bottom:16px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.82);border:0;box-shadow:0 0 0 1px rgba(255,255,255,.15);border-radius:8px;cursor:pointer;font-size:.875rem;text-align:left;transition:all .15s ease}.btn-volver:hover{background:rgba(255,255,255,.16);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.28)}.main-layout{display:flex;height:100vh;height:100dvh}.sidebar{width:250px;background:var(--c-dark);color:#fff;overflow:hidden;box-shadow:2px 0 12px rgba(0,0,0,.18);display:flex;flex-direction:column;transition:width .25s ease;flex-shrink:0}.sidebar:hover{width:250px;overflow-y:auto}.sidebar:not(:hover){width:60px}.sidebar:not(:hover) .sidebar-inner{padding:10px 8px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;position:relative}.sidebar:not(:hover) .sidebar-desc,.sidebar:not(:hover) .sidebar-footer,.sidebar:not(:hover) .sidebar-logo,.sidebar:not(:hover) .sidebar-section-label,.sidebar:not(:hover) .sidebar-title-sep,.sidebar:not(:hover) h2{display:none!important}.sidebar:not(:hover) .btn-volver,.sidebar:not(:hover) .sidebar-btn{font-size:0;justify-content:center;padding:10px;width:40px;margin:0 auto 8px;box-shadow:none}.sidebar:not(:hover) .sidebar-btn{margin:0 auto 3px}.sidebar:not(:hover) .sidebar-btn.active{background:rgba(255,255,255,.13);box-shadow:inset 0-2px 0 var(--c-primary)}.sidebar:not(:hover) .sidebar-btn .sb-icon{opacity:1}.sidebar-inner{padding:20px;flex:1;text-align:left;display:flex;flex-direction:column;align-items:stretch}.sidebar h2{margin:0 0 4px;font-size:1.1rem;font-weight:700;color:#fff;letter-spacing:.01em;text-align:left}.sidebar-desc{font-size:.8rem;color:rgba(255,255,255,.55);margin:0 0 16px;line-height:1.4;text-align:left}.sidebar-logo{margin-bottom:14px;text-align:center}.sidebar-title-sep{border:0;border-top:1px solid rgba(255,255,255,.12);margin:14px 0}.sidebar-section-label{font-size:.72rem;font-weight:700;letter-spacing:.08em;color:rgba(255,255,255,.38);text-transform:uppercase;margin:0 0 6px;display:block;text-align:left}.sb-icon,.sidebar-btn{display:flex;align-items:center}.sidebar-btn{justify-content:flex-start;gap:10px;width:100%;padding:10px 12px;margin-bottom:3px;background:0 0;border:0;border-radius:8px;box-shadow:inset 3px 0 0 transparent;color:rgba(255,255,255,.72);cursor:pointer;text-align:left;font-size:.9rem;transition:all .15s ease}.sidebar-btn:hover{background:rgba(255,255,255,.09);color:#fff;box-shadow:inset 3px 0 0 rgba(255,255,255,.3)}.sidebar-btn.active{background:rgba(255,255,255,.13);color:#fff;box-shadow:inset 3px 0 0 var(--c-primary);font-weight:600}.sb-icon{width:18px;height:18px;flex-shrink:0;justify-content:center;opacity:.7;transition:opacity .15s}.recibo-radio-icon svg,.sb-icon svg{display:block}.sidebar-btn.active .sb-icon,.sidebar-btn:hover .sb-icon{opacity:1}.sidebar-btn-danger{color:rgba(252,165,165,.85)}.sidebar-btn-danger:hover{background:rgba(220,38,38,.18);color:#fca5a5;box-shadow:inset 3px 0 0#ef4444}.sidebar-footer{padding:14px 20px;border-top:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.13);flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:10px}.sidebar-user-avatar{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.sidebar-user-name{font-size:.825rem;font-weight:600;color:#fff;line-height:1.3}.sidebar-user-role{font-size:.72rem;color:rgba(255,255,255,.52);margin-top:1px}.sidebar-logo-mini{display:none;align-items:center;justify-content:center}.sidebar-logo-mini img{height:52px;width:auto;max-width:none;object-fit:contain;transform:rotate(-90deg);transform-origin:50% 50%;opacity:.88}.sidebar:not(:hover) .sidebar-logo-mini{display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:0}.sidebar:hover .sidebar-logo-mini{display:none!important}.main-content{flex:1;overflow-y:auto;padding:20px;min-height:0}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.cal-header h3{letter-spacing:-.01em}.cal-legend,.cal-nav-btn{display:flex;color:#64748b}.cal-nav-btn{background:0 0;border:0;border-radius:50%;width:36px;height:36px;padding:0;cursor:pointer;align-items:center;justify-content:center;transition:all .2s}.cal-nav-btn:hover{background:#f1f5f9;color:#1e293b}.cal-legend{gap:18px;flex-wrap:wrap;margin-bottom:18px;padding:10px 14px;background:#f8fafc;border-radius:10px;font-size:.8rem}.cal-legend-item{display:flex;align-items:center;gap:6px}.cal-dot{width:9px;height:9px;border-radius:50%;display:inline-block;box-shadow:0 0 0 2px rgba(255,255,255,.8)}.cal-dot-available{background:#22c55e}.cal-dot-partial{background:#60a5fa}.cal-dot-unavailable{background:#ef4444}.cal-dot-none{background:#cbd5e1}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-weekday{text-align:center;font-size:.75rem;font-weight:600;color:#94a3b8;padding:8px 0 4px;text-transform:uppercase;letter-spacing:.08em}.cal-day,.cal-modal-overlay{display:flex;align-items:center}.cal-modal-overlay{justify-content:center}.cal-day{position:relative;min-height:52px;flex-direction:column;justify-content:flex-start;padding:5px 4px 4px;gap:1px;border-radius:12px;font-size:.9rem;font-weight:600;cursor:pointer;border:2px solid transparent;transition:all .2s cubic-bezier(.4,0,.2,1);background:#f8fafc;color:#334155}.cal-day:hover{background:#e8f2f1;border-color:var(--c-primary);transform:translateY(-2px);box-shadow:0 4px 12px rgba(138,166,161,.2);z-index:1}.cal-day.cal-today{box-shadow:inset 0 0 0 2px var(--c-primary);background:#e8f2f1}.cal-day.cal-selected{border-color:var(--c-primary);background:#e8f2f1;box-shadow:0 0 0 3px rgba(138,166,161,.3)}.cal-day.cal-past{opacity:.35;cursor:default}.cal-day.cal-past:hover{background:#f8fafc;border-color:transparent;transform:none;box-shadow:none}.cal-day.cal-empty{background:0 0;cursor:default;pointer-events:none}.cal-day.cal-available{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#15803d;border-color:#86efac}.cal-day.cal-available:hover{border-color:#22c55e;box-shadow:0 4px 12px rgba(34,197,94,.2)}.cal-day.cal-partial{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1d4ed8;border-color:#93c5fd}.cal-day.cal-partial:hover{border-color:#60a5fa;box-shadow:0 4px 12px rgba(96,165,250,.25)}.cal-day.cal-unavailable{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c;border-color:#fca5a5}.cal-day.cal-unavailable:hover{border-color:#ef4444;box-shadow:0 4px 12px rgba(239,68,68,.2)}.cal-day-num{font-size:.82rem;font-weight:700;line-height:1.2;align-self:flex-start}.cal-day-agendadas{position:absolute;top:3px;right:3px;font-size:.58rem;font-weight:700;background:rgba(59,130,246,.85);color:#fff;border-radius:5px;padding:1px 4px;line-height:1.3;min-width:14px;text-align:center}.cal-day-cupos{font-size:.6rem;font-weight:500;opacity:.75;white-space:nowrap;line-height:1.2}.cal-day-motivo-full,.cal-day-motivo-tarde{font-size:.55rem;font-style:italic;text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;line-height:1.3;margin-top:1px}.cal-day-motivo-full{background:rgba(239,68,68,.15);padding:1px 3px}.cal-day-motivo-tarde{border-top:1px dashed currentColor;padding:2px 2px 0;opacity:.8}.cal-day .cal-day-status{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%}.cal-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(4px);z-index:1000;opacity:0;transition:opacity .25s ease;pointer-events:none}.cal-modal-overlay.active{opacity:1;pointer-events:auto}.cal-modal{background:#fff;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.05);max-width:420px;width:92vw;padding:0;transform:translateY(20px) scale(.97);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.cal-modal-overlay.active .cal-modal{transform:translateY(0) scale(1)}.cal-modal-head{padding:22px 24px 0;display:flex;justify-content:space-between;align-items:flex-start}.cal-header h3,.cal-modal-head h3{margin:0;font-size:1.1rem;font-weight:700;color:#1e293b}.cal-modal-head .cal-modal-date-sub{font-size:.825rem;color:#64748b;margin-top:2px}.cal-modal-close{background:0 0;border:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#94a3b8;cursor:pointer;transition:all .15s;flex-shrink:0}.cal-modal-close:hover{background:#f1f5f9;color:#475569}.cal-modal-body{padding:18px 24px 24px}.cal-toggle-group{display:flex;gap:8px;margin-bottom:18px}.cal-toggle-btn{flex:1;padding:10px 14px;border-radius:10px;border:2px solid #e2e8f0;background:#f8fafc;cursor:pointer;font-size:.875rem;font-weight:600;color:#64748b;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.cal-toggle-btn:hover{border-color:#cbd5e1;background:#f1f5f9}.cal-toggle-btn.cal-toggle-active-yes{border-color:#22c55e;background:#f0fdf4;color:#15803d}.cal-toggle-btn.cal-toggle-active-full{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8}.cal-toggle-btn.cal-toggle-active-no{border-color:#ef4444;background:#fef2f2;color:#b91c1c}.cal-toggle-btn svg{flex-shrink:0}.cal-hora-section{margin-bottom:8px}.cal-hora-section-label,.cal-motivo-label{font-size:.8rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;display:block}.cal-motivo-label{margin-bottom:8px}.cal-motivo-select{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:10px;background:#f8fafc;font-size:.9rem;color:#374151;appearance:none;cursor:pointer;transition:border-color .15s}.cal-motivo-input:focus,.cal-motivo-select:focus{outline:0;border-color:#ef4444;background:#fff}.cal-hora-row,.cal-motivo-input{padding:10px 12px;background:#f8fafc;border-radius:10px}.cal-motivo-input{width:100%;border:2px solid #e2e8f0;font-size:.9rem;color:#374151;box-sizing:border-box;transition:border-color .15s}.cal-hora-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;border:1px solid #e2e8f0}.cal-hora-row input[type=time]{padding:7px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;background:#fff;color:#1e293b;flex:1;min-width:0;transition:border-color .15s}.cal-hora-row input[type=time]:focus{border-color:var(--c-primary);outline:0;box-shadow:0 0 0 3px rgba(138,166,161,.3)}.cal-hora-row .cal-hora-label{font-size:.8rem;color:#94a3b8;margin:0;min-width:fit-content;font-weight:500}.cal-add-hora-btn,.cal-hora-row .cal-hora-remove{background:0 0;cursor:pointer;display:flex;align-items:center;transition:all .15s}.cal-add-hora-btn{width:100%;padding:10px;border-radius:10px;border:2px dashed #e2e8f0;font-size:.875rem;font-weight:500;color:#94a3b8;justify-content:center;gap:6px;margin-top:4px}.cal-hora-row .cal-hora-remove{border:0;color:#e2e8f0;padding:4px;border-radius:6px}.cal-hora-row .cal-hora-remove:hover{color:#ef4444;background:#fef2f2}.cal-add-hora-btn:hover{border-color:var(--c-primary);color:var(--c-dark);background:#f0f7f6}.cal-modal-actions{display:flex;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid #f1f5f9}.cal-modal-actions .cal-btn-save{flex:1;padding:11px 18px;border-radius:10px;border:0;background:linear-gradient(135deg,var(--c-dark),var(--c-primary));color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px rgba(45,74,71,.3)}.cal-modal-actions .cal-btn-save:hover{box-shadow:0 4px 16px rgba(45,74,71,.4);transform:translateY(-1px)}.cal-modal-actions .cal-btn-save:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.cal-modal-actions .cal-btn-clear{padding:11px 18px;border-radius:10px;border:1px solid #fecaca;background:#fff;color:#dc2626;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.cal-modal-actions .cal-btn-clear:hover{background:#fef2f2;border-color:#f87171}#calResumenList .cal-resumen-dia{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;margin-bottom:6px;font-size:.875rem;transition:background .15s}#calResumenList .cal-resumen-dia:hover{background:#f1f5f9}#calResumenList .cal-resumen-dia:nth-child(odd){background:#f8fafc}#calResumenList .cal-resumen-dia:nth-child(odd):hover{background:#f1f5f9}#calResumenList .cal-resumen-dia.cal-resumen-full{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border:1px solid #86efac}#calResumenList .cal-resumen-dia.cal-resumen-full:hover{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}#calResumenList .cal-resumen-dia.cal-resumen-partial{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #93c5fd}#calResumenList .cal-resumen-dia.cal-resumen-partial:hover{background:linear-gradient(135deg,#bfdbfe,#93c5fd)}#calResumenList .cal-resumen-dia.cal-resumen-unavailable{background:linear-gradient(135deg,#fee2e2,#fecaca);border:1px solid #fca5a5}#calResumenList .cal-resumen-dia.cal-resumen-unavailable:hover{background:linear-gradient(135deg,#fecaca,#fca5a5)}#calResumenList .cal-resumen-fecha{font-weight:600;min-width:90px;color:#334155}#calResumenList .cal-resumen-estado{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:.78rem;font-weight:600}#calResumenList .cal-resumen-dia.cal-resumen-full .cal-resumen-estado{background:#14532d;color:#dcfce7}#calResumenList .cal-resumen-dia.cal-resumen-partial .cal-resumen-estado{background:#1e40af;color:#dbeafe}#calResumenList .cal-resumen-dia.cal-resumen-unavailable .cal-resumen-estado{background:#991b1b;color:#fee2e2}#calResumenList .cal-resumen-horas{color:#64748b;font-size:.825rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.permisos-page-header{margin-bottom:1rem}.permisos-page-header h2{margin:0 0 .4rem;font-size:1.3rem;font-weight:700}.permisos-page-lead{margin:0;font-size:.875rem;color:#64748b;line-height:1.5;max-width:60rem}.permisos-page-layout{display:grid;grid-template-columns:minmax(240px,300px) 1fr;gap:1.25rem;align-items:start}.permisos-right{min-width:0}.permisos-panel-title{margin:0 0 .75rem;font-size:1rem;font-weight:700;color:#1e293b}.permisos-search-input{width:100%;padding:.5rem .65rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;margin-bottom:.5rem;background:#fff}.permisos-search-input:focus{outline:0;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(138,166,161,.3)}.permisos-user-select{width:100%;min-height:2.5rem;padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;background:#fff;line-height:1.4;cursor:pointer}.permisos-user-select:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(138,166,161,.3);outline:0}.permisos-editor-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0}.permisos-editor-name{margin:0;font-size:1.1rem}.permisos-editor-rol{margin:.1rem 0 .25rem;font-size:.8rem;color:#64748b}.permisos-stats{margin:.25rem 0 0;font-size:.825rem;color:#0f172a;font-weight:600}.permisos-editor-actions{display:flex;flex-wrap:wrap;gap:.5rem}.permisos-hint{font-size:.8rem;color:#475569;margin:0 0 .75rem;padding:.6rem .7rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;line-height:1.45}.permisos-filtro-barra{margin-bottom:.5rem}.permisos-checklist-root{max-height:min(60vh,32rem);overflow-y:auto;padding-right:4px}.permisos-group{border:1px solid #e2e8f0;border-radius:10px;margin-bottom:.5rem;background:#fff;overflow:hidden}.permisos-group[open]{box-shadow:0 1px 2px rgba(0,0,0,.04)}.permisos-group-summary{list-style:none;cursor:pointer;padding:0;background:#f1f5f9;border-bottom:1px solid #e2e8f0}.permisos-group-summary::-webkit-details-marker{display:none}.permisos-group-summary-row{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem .45rem .5rem;font-weight:600;font-size:.825rem;color:#1e293b}.permisos-group-title{flex:1;min-width:0}.permisos-group-count{font-size:.72rem;font-weight:700;color:var(--c-dark);background:#e8f2f1;border-radius:6px;padding:.15rem .4rem}.permisos-chk-group{flex-shrink:0;width:15px;height:15px;cursor:pointer}.permisos-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.15rem .5rem;padding:.45rem .5rem .5rem}.permisos-row{display:flex;align-items:center;gap:.4rem;padding:.35rem .3rem;border-radius:6px;font-size:.8rem;color:#334155;cursor:pointer;transition:background .12s ease}.permisos-row:hover{background:#f8fafc}.permisos-group--empty-filter,.permisos-row--hidden{display:none!important}.permisos-row-text{line-height:1.3}.permisos-row input[type=checkbox]{width:15px;height:15px;flex-shrink:0;cursor:pointer}.permisos-badge-rol{font-size:.72rem;font-weight:600;color:var(--c-dark);background:#e8f2f1;border-radius:4px;padding:.1rem .28rem;margin-left:auto;flex-shrink:0;white-space:nowrap}.permisos-sin-coincidencias{margin:.4rem 0 0;font-size:.825rem;color:#b45309}.permisos-empty-state{display:flex;align-items:center;justify-content:center;min-height:14rem}.permisos-empty-state.card{background:#fafbfc;border:1px dashed #cbd5e1;box-shadow:none}.permisos-empty-inner{text-align:center;padding:1rem;max-width:22rem}.permisos-empty-icon{color:#94a3b8;margin-bottom:.5rem}.permisos-empty-icon svg{display:inline-block;vertical-align:middle}.permisos-empty-title{font-weight:600;color:#475569;margin:0 0 .25rem;font-size:.95rem}.permisos-empty-text{font-size:.875rem;color:#94a3b8;margin:0;line-height:1.4}@media (max-width:900px){.view-module .main-content .container .permisos-page-layout{max-width:100%!important}.permisos-page-layout{grid-template-columns:1fr}}.mobile-menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:0 0;color:var(--c-dark);border:0;border-radius:0 0 10px 0;font-size:0;cursor:pointer;position:fixed;top:0;left:0;z-index:150;flex-shrink:0;box-shadow:none}.mobile-menu-btn svg{flex-shrink:0}.mobile-sidebar-backdrop{display:none;position:fixed;inset:0;z-index:199;background:rgba(0,0,0,.45);cursor:pointer}.mobile-sidebar-backdrop.active,label{display:block}.container{max-width:1100px;margin:0 auto}.view-module .main-content .container{max-width:80%}.card,header{margin-bottom:16px}header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:2px solid #e5e7eb;flex-wrap:wrap;gap:20px}h1{font-size:1.5rem;margin:0;font-weight:800;color:var(--c-dark)}h3{margin:0 0 12px;font-size:1.1rem;color:#1f2937;font-weight:700}.card{background:#fff;padding:16px;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.1)}label{font-size:.9rem;font-weight:600;margin:8px 0 4px;color:#374151}input,select,textarea{width:100%;padding:10px;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;font-family:inherit;transition:border-color .2s,box-shadow .2s}input[type=date],input[type=month]{cursor:pointer;color-scheme:light;position:relative;padding-left:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238AA6A1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:10px center;background-size:16px 16px}input[type=date]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.electro-fecha-input{padding:8px 12px 8px 36px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem}.row{display:flex;gap:12px;margin-bottom:8px;flex-wrap:wrap}.col{flex:1;min-width:200px}table{width:100%;border-collapse:collapse;margin-top:8px;font-size:.95rem}.item-sub,button,th{font-weight:600}th{background-color:#f3f4f6;color:#374151}td,th{padding:10px;text-align:left}tbody tr:hover{background-color:#f9fafb}.item-sub{color:var(--c-primary)}.item-desc{width:100%}.item-desc,.item-desc-input{padding:8px;border:1px solid #d1d5db;border-radius:4px;font-size:.95rem}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:8px;border:0;background:var(--c-primary);color:#fff;cursor:pointer;font-size:.875rem;letter-spacing:.01em;line-height:1.4;transition:background .15s ease,box-shadow .15s ease;white-space:nowrap}button:hover{background:var(--c-primary-hover);box-shadow:0 4px 12px rgba(138,166,161,.3)}button:active{opacity:.85}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:#6b7280}button.secondary:hover{background:#4b5563;box-shadow:0 4px 12px rgba(0,0,0,.2)}button.remove{padding:5px 10px;font-size:.8rem;width:100%}.hidden{display:none!important}.receipt-header,.servicio-item{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.servicio-item{align-items:center;padding:8px;border:1px solid #e5e7eb;border-radius:4px;margin-bottom:6px;background:#f9fafb}.servicio-item span{flex:1}.servicio-item button{padding:4px 8px;font-size:.875rem;background:#dc2626;margin-left:8px}.btn-primary{background:var(--c-dark);color:#fff;border:0}.btn-primary:hover{background:var(--c-darker);box-shadow:0 4px 14px rgba(45,74,71,.3)}.btn-secondary{background:#f1f5f4;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover{background:#e5e7eb;box-shadow:0 2px 8px rgba(0,0,0,.08)}.btn-success{background:var(--c-success);color:#fff;border:0}.btn-success:hover{background:var(--c-success-dark);box-shadow:0 4px 14px rgba(5,150,105,.3)}.btn-danger{background:var(--c-danger);color:#fff;border:0}.btn-danger:hover{background:var(--c-danger-dark);box-shadow:0 4px 14px rgba(220,38,38,.3)}.btn-warning{background:var(--c-warning);color:#1f2937;border:0}.btn-warning:hover{background:var(--c-warning-dark);box-shadow:0 4px 14px rgba(245,158,11,.3)}.btn-info{background:var(--c-info);color:#fff;border:0}.btn-info:hover{background:var(--c-info-hover);box-shadow:0 4px 14px rgba(3,105,161,.3)}.btn-sm{padding:7px 14px;font-size:.8rem}.btn-close-modal,.btn-close-x{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:32px!important;height:32px!important;padding:0!important;background:0 0!important;border:0!important;border-radius:8px!important;color:#9ca3af!important;font-size:18px!important;font-weight:400!important;cursor:pointer!important;transition:background .15s,color .15s!important;box-shadow:none!important}.btn-close-modal:hover,.btn-close-x:hover{background:#f3f4f6!important;color:#374151!important;box-shadow:none!important}.btn-dropdown-item,.btn-estado-opcion{width:100%;font-size:.95rem;cursor:pointer;text-align:left}.btn-estado-opcion{border-radius:10px;font-weight:600;padding:14px 18px;transition:filter .15s,box-shadow .15s}.btn-estado-opcion:hover{filter:brightness(.9);box-shadow:0 4px 12px rgba(0,0,0,.15)}.btn-dropdown-item{display:block;padding:12px 16px;background:0 0;border:0;color:#1f2937;transition:background .15s;font-weight:400;border-radius:0}.btn-dropdown-item:hover{background:#f3f4f6;box-shadow:none}#btnMasOpciones{color:#6b7280!important;font-weight:700!important;font-size:18px!important}#receiptPreview{background:#fff;border:2px solid #e5e7eb}.page{display:none}.table-card{background:#fff;border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 6px 24px rgba(45,74,71,.05);overflow:clip;border:1px solid rgba(226,232,240,.6)}.modern-table{width:100%;border-collapse:collapse;border-spacing:0;background:#fff}.modern-table thead{position:sticky;top:0;z-index:10;background:#fff}.modern-table thead tr{border-bottom:2px solid #e2e8f0}.modern-table thead th{padding:12px 14px;text-align:left;font-weight:700;color:#64748b;font-size:.72rem;letter-spacing:.8px;border:0;text-transform:uppercase;white-space:nowrap;background:#f8fafc;position:relative}.modern-table thead th::after{content:"";position:absolute;right:0;top:25%;height:50%;width:1px;background:#e2e8f0}.modern-table thead th:last-child::after{display:none}.modern-table tbody tr{border-bottom:1px solid #f1f5f9;transition:all .2s ease;background:#fff;border-left:3px solid transparent}.modern-table tbody tr:nth-child(even){background-color:#fafbfe}.modern-table tbody tr:hover{background:linear-gradient(90deg,#f0f7f6 0,#e8f2f1 100%)!important;border-left-color:var(--c-primary)!important;box-shadow:0 2px 8px rgba(138,166,161,.1)}.modern-table tbody tr:last-child{border-bottom:none}.modern-table tbody td{padding:14px;border:0;font-size:.875rem;color:#374151;word-wrap:break-word;overflow-wrap:break-word;overflow:visible;vertical-align:middle}.modern-table td a{color:var(--c-primary);text-decoration:none;font-weight:500;transition:color .2s}.modern-table td a:hover{color:var(--c-dark);text-decoration:underline}[data-pagination-id]{background:#fafafa;border-top:1px solid #f3f4f6;border-radius:0 0 12px 12px}[data-pagination-id] label{font-size:.825rem;font-weight:500;color:#6b7280}[data-pagination-id] select{padding:6px 10px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;font-size:13px;cursor:pointer;font-weight:500;color:#374151;transition:all .2s;box-shadow:0 1px 2px rgba(0,0,0,.04)}[data-pagination-id] select:focus,[data-pagination-id] select:hover{outline:0;border-color:#8aa6a1;box-shadow:0 0 0 3px rgba(138,166,161,.15)}[data-pagination-id] button{padding:0;border:1px solid transparent;border-radius:50%;cursor:pointer;font-weight:600;font-size:13px;transition:all .18s;width:34px;height:34px;line-height:34px;text-align:center;display:inline-flex;align-items:center;justify-content:center}[data-pagination-id] button.pg-nav{background:#fff;color:#374151;border:1px solid #e5e7eb;box-shadow:0 1px 2px rgba(0,0,0,.06)}[data-pagination-id] button.pg-nav:hover{background:#f0f7f6;border-color:var(--c-primary);color:var(--c-dark)}[data-pagination-id] button.pg-active{background:var(--c-dark);color:#fff;border:1px solid var(--c-dark);box-shadow:0 2px 6px rgba(45,74,71,.28);cursor:default}[data-pagination-id] button.pg-active:disabled{opacity:1}[data-pagination-id] button.pg-page{background:#fff;color:#374151;border:1px solid #e5e7eb;box-shadow:0 1px 2px rgba(0,0,0,.04)}[data-pagination-id] button.pg-page:hover{background:#f3f4f6;border-color:#9ca3af}.agenda-page.active,.electro-page.active,.page.active,.usuarios-page.active{display:block}.agenda-page,.electro-page,.recibo-radio-card input[type=radio],.usuarios-page{display:none}.badge-prioridad{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.78rem;font-weight:700;white-space:nowrap;letter-spacing:.03em}.badge-prioridad.alta{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.badge-prioridad.media{background:#fef9c3;color:#92400e;border:1px solid #fde047}.badge-prioridad.baja{background:#dbeafe;color:#1d4ed8;border:1px solid #93c5fd}@media (max-width:480px){body{font-size:14px;overflow-x:hidden}.view-login{padding:12px;min-height:100vh;overflow-y:auto}.login-box{padding:24px 16px;max-width:95vw;width:100%}.login-header h1{font-size:1.1rem}.login-header p,table{font-size:.8rem}.login-form .form-group{margin-bottom:14px}.login-form label{font-size:.9rem;margin-bottom:6px}.login-form input{padding:12px;font-size:16px;border-radius:6px;height:44px;width:100%}input[type=password]::placeholder{font-size:16px}.password-wrapper{gap:6px}.password-input{flex:1;min-width:0;padding:12px!important;font-size:16px;height:44px;border-radius:6px;box-sizing:border-box}.toggle-password-btn{min-width:36px;min-height:36px;width:36px;height:36px;padding:6px;font-size:16px;border:2px solid #e5e7eb;border-radius:6px;flex-shrink:0}.btn-login{padding:12px 16px;font-size:1rem;height:44px;margin-top:8px}button[type=submit]{min-height:44px}.menu-header{padding:0 14px;height:60px}.menu-logo{height:38px}.menu-user>span{display:none}.btn-logout{padding:6px 11px;font-size:.8rem}.menu-content{padding:28px 14px 40px}.menu-welcome{margin-bottom:22px}.menu-welcome h2{font-size:1.25rem}.menu-cards{grid-template-columns:repeat(2,1fr);gap:12px}.menu-card{border-radius:16px;padding:20px 16px 16px}.menu-card-icon{width:60px;height:60px}.menu-card-icon .icon-img{width:30px;height:30px}.menu-card-title{font-size:.9rem}.menu-card-desc{font-size:.72rem}.sidebar-toggle-btn{display:none!important}.main-content{padding:12px;overflow-x:clip}.view-module .main-content .container{max-width:100%}.card,header{margin-bottom:12px}header{flex-direction:column;align-items:stretch;gap:8px}h1,h2,h3{word-break:break-word;overflow-wrap:break-word}.card{padding:12px;overflow-x:clip}.col,.row{width:100%;max-width:100%}.row{gap:8px;flex-direction:column;align-items:stretch!important;overflow-x:clip}.col{min-width:0;flex:none}input,select,textarea{padding:8px;font-size:16px}input[type=date],input[type=month]{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box;padding:8px 10px;background-image:none;position:static}input[type=date]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator{position:static;width:auto;height:auto;opacity:1}label{font-size:.875rem}td,th{padding:6px}.actions{gap:6px}button{width:100%;padding:10px;font-size:.9rem}.actions,.receipt-header{flex-direction:column}.menu-user{gap:12px}.modal-box{padding:12px;max-width:95vw}.btn-estado{font-size:.75rem}.btn-estado,.btn-estado-small,.servicio-item button{width:auto!important;min-width:0;padding:4px 10px}.btn-close-x,.btn-editar,.btn-eliminar,.btn-prioridad-down,.btn-prioridad-up,.btn-volver,.card-collapse-btn,.cita-modal-icon-btn,.tab-electro-btn{width:auto!important;min-width:0}.view-module::before{background-attachment:scroll;background-size:min(380px,85vw)}.table-wrapper{width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;margin-bottom:16px;border-radius:6px;border:1px solid #e5e7eb;background:#fff}.table-wrapper .modern-table{width:auto;border-radius:0;box-shadow:none;border-collapse:collapse}.modern-table thead th{padding:10px 8px;font-size:.72rem;letter-spacing:.04em;white-space:normal;background:#fafafa;color:#6b7280;border-bottom:2px solid #e5e7eb;word-wrap:break-word;overflow-wrap:break-word}.modern-table tbody tr{border-bottom:1px solid #e5e7eb;transition:none;background:#fff}.modern-table tbody tr:nth-child(even){background-color:#f9fafb}.modern-table tbody tr:hover{background-color:#f0f3f2;box-shadow:none}.modern-table tbody td{padding:8px 6px;font-size:.8rem;white-space:normal;border:0;border-bottom:1px solid #f3f4f6;overflow:visible;text-overflow:clip;max-width:none;word-wrap:break-word;overflow-wrap:break-word}.table-wrapper::before{content:"← Deslizar tabla →";display:block;text-align:center;font-size:.75rem;color:#088;padding:6px 0 2px;font-weight:600;background:#f0f7f7}}@media (max-width:768px) and (min-width:481px){body{font-size:15px;overflow-x:hidden}.login-box{padding:32px 24px}.login-header h1,.menu-welcome h2{font-size:1.3rem}.menu-content{padding:28px 16px 40px}.menu-cards{grid-template-columns:repeat(2,1fr);gap:13px}.menu-card{border-radius:16px;padding:22px 18px 16px}.menu-card-icon{width:66px;height:66px}.menu-card-icon .icon-img{width:32px;height:32px}.menu-card-title{font-size:.9rem}.sidebar-toggle-btn{display:none!important}button{width:100%}.btn-close-x,.btn-editar,.btn-eliminar,.btn-estado,.btn-estado-small,.btn-prioridad-down,.btn-prioridad-up,.btn-volver,.card-collapse-btn,.cita-modal-icon-btn,.servicio-item button,.tab-electro-btn{width:auto!important;min-width:0}.view-module::before{background-attachment:scroll;background-size:min(380px,85vw)}input[type=date],input[type=month]{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box;padding:8px 10px;background-image:none;position:static}input[type=date]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator{position:static;width:auto;height:auto;opacity:1}table{font-size:.875rem}td,th{padding:8px}.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-webkit-user-select:none;user-select:none;margin-bottom:12px;border:1px solid #e5e7eb;border-radius:6px;background:#fff}.table-wrapper .modern-table{width:auto;border-collapse:collapse}.table-wrapper::before{content:"← Deslizar tabla →";display:block;text-align:center;font-size:.75rem;color:#088;padding:6px 0 2px;font-weight:600;background:#f0f7f7}.receipt-header{flex-direction:column}}@media (min-width:769px) and (max-width:1024px){.menu-cards{grid-template-columns:repeat(2,1fr)}.main-layout{flex-direction:row}.sidebar{width:200px}#view-agenda-medica .card-tabla-citas,.main-content,.sidebar-inner{padding:16px}.sidebar h2{font-size:1rem}.col{min-width:150px}table{font-size:.9rem}td,th{padding:9px}.modal-box{max-width:500px}.view-module .main-content .container{max-width:100%}}@media (min-width:481px) and (max-width:768px){.password-wrapper{gap:8px}.password-input{flex:1;min-width:0;padding:12px!important;font-size:16px;height:44px;border-radius:6px;box-sizing:border-box}.toggle-password-btn{min-width:40px;min-height:40px;width:40px;height:40px;padding:8px;font-size:18px;border-radius:6px}}@media (min-width:1025px) and (max-width:1280px){.menu-cards{grid-template-columns:repeat(3,1fr);gap:20px}.menu-card{border-radius:20px}.menu-card-icon{width:90px;height:90px}.menu-card-icon .icon-img{width:48px;height:48px}.sidebar{width:240px}.col{min-width:180px}}@media (min-width:1281px){.menu-cards{grid-template-columns:repeat(3,1fr)}.sidebar{width:260px}.col{min-width:200px}}@media (max-width:768px){button,input[type=button],input[type=submit]{min-height:44px;min-width:44px}.btn-close-x,.btn-editar,.btn-eliminar,.btn-estado,.btn-estado-small,.btn-prioridad-down,.btn-prioridad-up{min-height:unset;min-width:unset}.modal-box{max-width:95vw;padding:14px}body{line-height:1.6}.main-layout{flex-direction:column;height:100vh;height:100svh}.main-content{width:100%;min-width:0;flex:1;overflow-y:auto;min-height:0}.sidebar{position:fixed!important;left:0!important;top:0!important;height:100%!important;width:260px!important;z-index:200!important;flex-direction:column!important;overflow-y:auto!important;overflow-x:hidden!important;transform:translateX(-100%)!important;transition:transform .28s ease!important;flex-shrink:0!important}.sidebar.mobile-open{transform:translateX(0)!important;box-shadow:4px 0 28px rgba(0,0,0,.4)!important}.sidebar:not(:hover){width:260px!important;transform:translateX(-100%)!important}.sidebar:not(:hover).mobile-open{transform:translateX(0)!important}.sidebar:not(:hover) .sidebar-inner{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;padding:20px!important;position:static!important;gap:3px!important}.sidebar:not(:hover) .sidebar-logo{display:flex!important}.sidebar:not(:hover) .sidebar-desc,.sidebar:not(:hover) .sidebar-section-label,.sidebar:not(:hover) .sidebar-title-sep,.sidebar:not(:hover) h2{display:block!important}.sidebar:not(:hover) .sidebar-footer{display:flex!important}.sidebar:not(:hover) .btn-volver,.sidebar:not(:hover) .sidebar-btn{font-size:.9rem!important;width:100%!important;justify-content:flex-start!important;padding:10px 14px!important;margin:0 0 8px!important;box-shadow:none!important}.sidebar:not(:hover) .sidebar-btn{margin:0 0 3px!important}.sidebar:not(:hover) .sidebar-btn .sb-icon{opacity:1!important}.sidebar:not(:hover) .sidebar-logo-mini{display:none!important}.mobile-sidebar-backdrop{position:fixed!important;inset:0!important;z-index:199!important;background:rgba(0,0,0,.45)!important;display:none!important}.mobile-sidebar-backdrop.active{display:block!important}.mobile-menu-btn{display:flex!important}}@media print{.form-area,.hidden,.main-layout,.no-print,.sidebar{display:none!important}body{background:#fff;padding:0;margin:0}.container{max-width:100%}.card{box-shadow:none;border-radius:0;margin-bottom:0}.card.hidden{page-break-after:auto!important;margin-bottom:0!important}#receiptPreview{border:0;page-break-after:avoid}#savedList{display:none!important;page-break-after:avoid!important}}.turno-row.estado-PROGRAMADO{background-color:#fff}.turno-row.estado-EN_SALA{background:linear-gradient(90deg,#fffbeb 0,rgba(255,251,235,.4) 100%)!important;border-left-color:#f59e0b!important}.turno-row.estado-EN_ATENCION{background:linear-gradient(90deg,#f0f6f5 0,rgba(240,246,245,.4) 100%)!important;border-left-color:var(--c-active)!important}.turno-row.estado-ATENDIDO{background:linear-gradient(90deg,#f0fdf4 0,rgba(240,253,244,.4) 100%)!important;border-left-color:#22c55e!important}.turno-row.estado-CANCELADO,.turno-row.estado-NO_ASISTIO{background:linear-gradient(90deg,#fef2f2 0,rgba(254,242,242,.4) 100%)!important;border-left-color:#ef4444!important}.turno-row.estado-REPROGRAMADO{background:linear-gradient(90deg,#eff6ff 0,rgba(239,246,255,.4) 100%)!important;border-left-color:#3b82f6!important}.turno-row.estado-ABOGADO{background:linear-gradient(90deg,#f0fdf4 0,rgba(240,253,244,.3) 100%)!important;border-left-color:#65a30d!important}.turno-slot-vacio{background:#fff1f2!important;border-left:3px solid #fca5a5!important}.turno-slot-vacio td{color:#9ca3af!important}.turno-es-primero{background:linear-gradient(90deg,rgba(138,166,161,.18)0,rgba(138,166,161,.07) 100%)!important;border-left:3px solid var(--c-primary)!important;position:relative;overflow:hidden}.turno-es-primero td{color:var(--c-dark)!important;font-weight:600!important}.turno-es-primero::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(138,166,161,.22) 50%,transparent 70%);background-size:200% 100%;animation:shimmerSiguiente 3s ease-in-out infinite;pointer-events:none}.badge-en-atencion,.badge-siguiente{display:inline-flex;align-items:center;gap:6px;padding:4px 11px 4px 9px;border-radius:20px;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;vertical-align:middle;position:relative;z-index:1}.badge-siguiente{background:linear-gradient(135deg,var(--c-dark) 0%,var(--c-active) 100%);box-shadow:0 2px 10px rgba(45,74,71,.35),0 0 0 2px rgba(138,166,161,.25)}.badge-en-atencion{background:linear-gradient(135deg,#dc2626 0,#ef4444 100%);box-shadow:0 2px 10px rgba(220,38,38,.35),0 0 0 2px rgba(239,68,68,.25)}.badge-en-atencion::before,.badge-siguiente::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.badge-en-atencion::before{background:#fca5a5;animation:pingBadgeAtencion 1s ease-in-out infinite;box-shadow:0 0 0 0 rgba(252,165,165,.6)}.badge-siguiente::before{background:#a7f3d0;animation:pingBadge 1.5s ease-in-out infinite;box-shadow:0 0 0 0 rgba(167,243,208,.6)}.animate-nuevo-primero{animation:entradaPrimero .7s cubic-bezier(.34,1.56,.64,1) both,glowFade 1.4s ease-out .1s both}.btn-estado{padding:4px 8px;font-size:.875rem;margin:2px;border-radius:4px}.btn-icon{display:inline-block;width:16px;height:16px;margin-right:4px;vertical-align:middle}.btn-estado-small{padding:2px 6px;font-size:.75rem}.table-actions{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;overflow:visible;white-space:nowrap}.btn-editar,.btn-eliminar,.btn-prioridad-down,.btn-prioridad-up{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .15s,box-shadow .15s,border-color .15s;background:0 0;flex-shrink:0}.btn-editar img,.btn-eliminar img,.btn-prioridad-down img,.btn-prioridad-up img{width:15px;height:15px;display:block;filter:none}.btn-prioridad-up{border-color:#dbeafe;background:#eff6ff}.btn-prioridad-up img{filter:invert(36%) sepia(93%) saturate(500%) hue-rotate(196deg) brightness(97%)}.btn-prioridad-up:hover:not(:disabled){background:#dbeafe;border-color:#93c5fd;box-shadow:0 2px 6px rgba(59,130,246,.2)}.btn-prioridad-down{border-color:#fef3c7;background:#fffbeb}.btn-prioridad-down img{transform:rotate(180deg);filter:invert(60%) sepia(80%) saturate(600%) hue-rotate(10deg) brightness(100%)}.btn-prioridad-down:hover:not(:disabled){background:#fef3c7;border-color:#fcd34d;box-shadow:0 2px 6px rgba(245,158,11,.2)}.btn-editar{border-color:#d1fae5;background:#ecfdf5}.btn-editar img{filter:invert(40%) sepia(80%) saturate(400%) hue-rotate(120deg) brightness(90%)}.btn-editar:hover:not(:disabled){background:#d1fae5;border-color:#6ee7b7;box-shadow:0 2px 6px rgba(5,150,105,.2)}.btn-eliminar{border-color:#fee2e2;background:#fff5f5}.btn-eliminar img{filter:invert(30%) sepia(90%) saturate(500%) hue-rotate(330deg) brightness(100%)}.btn-eliminar:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5;box-shadow:0 2px 6px rgba(239,68,68,.2)}.btn-editar:disabled,.btn-eliminar:disabled,.btn-prioridad-down:disabled,.btn-prioridad-up:disabled{background:#f9fafb;border-color:#e5e7eb;cursor:not-allowed;opacity:.45}.btn-usr-del,.btn-usr-edit,.btn-usr-hist,.btn-usr-reset,.btn-usr-speak,.btn-usr-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .15s,box-shadow .15s,border-color .15s;background:0 0;flex-shrink:0}.btn-usr-del img,.btn-usr-edit img,.btn-usr-hist img,.btn-usr-reset img,.btn-usr-speak img,.btn-usr-toggle img{width:15px;height:15px;display:block;filter:none}.btn-usr-edit{background:#ecfdf5;border-color:#d1fae5}.btn-usr-edit img{filter:invert(40%) sepia(80%) saturate(400%) hue-rotate(120deg) brightness(90%)}.btn-usr-edit:hover{background:#d1fae5;border-color:#6ee7b7;box-shadow:0 2px 6px rgba(5,150,105,.2)}.btn-usr-reset{background:#eff6ff;border-color:#dbeafe}.btn-usr-reset img{filter:invert(37%) sepia(98%) saturate(700%) hue-rotate(210deg) brightness(100%)}.btn-usr-reset:hover{background:#dbeafe;border-color:#93c5fd;box-shadow:0 2px 6px rgba(37,99,235,.2)}.btn-usr-hist{background:#eef2ff;border-color:#e0e7ff}.btn-usr-hist img{filter:invert(29%) sepia(85%) saturate(800%) hue-rotate(223deg) brightness(107%)}.btn-usr-hist:hover{background:#e0e7ff;border-color:#a5b4fc;box-shadow:0 2px 6px rgba(79,70,229,.2)}.btn-usr-speak{background:#ecfdf5;border-color:#d1fae5}.btn-usr-speak img{filter:invert(40%) sepia(80%) saturate(400%) hue-rotate(120deg) brightness(90%)}.btn-usr-speak:hover{background:#d1fae5;border-color:#6ee7b7}.btn-usr-toggle[data-activo=true]{background:#fffbeb;border-color:#fef3c7}.btn-usr-toggle[data-activo=true] img{filter:invert(70%) sepia(60%) saturate(600%) hue-rotate(5deg) brightness(105%)}.btn-usr-toggle[data-activo=false]{background:#f0fdf4;border-color:#dcfce7}.btn-usr-toggle[data-activo=false] img{filter:invert(40%) sepia(80%) saturate(600%) hue-rotate(100deg) brightness(100%)}.btn-usr-toggle:hover{filter:brightness(.9)}.btn-usr-del{background:#fff5f5;border-color:#fee2e2}.btn-usr-del img{filter:invert(30%) sepia(90%) saturate(500%) hue-rotate(330deg) brightness(100%)}.btn-usr-del:hover{background:#fee2e2;border-color:#fca5a5;box-shadow:0 2px 6px rgba(239,68,68,.2)}.turno-row.turno-selected{outline:2px solid #8aa6a1;background-color:#e0f2fe}.modal{display:flex!important;align-items:center!important;justify-content:center!important}.modal-overlay.hidden,.modal.hidden{display:none!important}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:9999}.modal-box{background:#fff;padding:16px;border-radius:10px;box-shadow:0 10px 40px rgba(0,0,0,.3);max-width:420px;width:100%}.app-footer{background:var(--c-dark);color:#fff;padding:16px 20px;text-align:center;font-size:.9rem;border-top:1px solid var(--c-darker);margin-top:20px}.footer-content{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:6px}.footer-content p{margin:0;color:#d1d5db}.footer-content p span{color:#fff}@media (max-width:480px){.app-footer{padding:12px;font-size:.8rem}}.tabs-container{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid #e5e7eb;overflow-x:auto;border-radius:6px 6px 0 0;background:#f9fafb;padding:0}.cita-modal-card{background:#fff;border-radius:16px;max-width:580px;width:100%;max-height:93vh;overflow-y:auto;box-shadow:0 25px 50px rgba(0,0,0,.18);display:flex;flex-direction:column}.cita-modal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 22px 16px;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f0f8f7 0,#e6f2ef 100%);border-radius:16px 16px 0 0;flex-shrink:0;gap:10px}.cita-modal-header-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.cita-modal-header-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.cita-modal-title{margin:0;font-size:1.1rem;font-weight:700;color:#1f3634;white-space:nowrap}.cita-modal-icon-btn{background:rgba(255,255,255,.85);border:1px solid #d1d5db;border-radius:8px;width:34px!important;height:34px!important;min-width:34px!important;padding:0!important;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:all .15s;flex-shrink:0}.cita-modal-icon-btn:hover{background:#fff;color:#1f3634;border-color:#8aa6a1}.cita-modal-close-btn:hover{color:#dc2626;border-color:#fca5a5}.cita-modal-patient{display:flex;align-items:center;gap:14px;padding:14px 22px;background:#f8fafa;border-bottom:1px solid #e5e7eb}.cita-modal-patient-avatar{width:42px;height:42px;background:linear-gradient(135deg,#8aa6a1,#2d4a47);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.cita-modal-patient-name{font-size:1rem;font-weight:700;color:#1f2937}.cita-modal-patient-meta{font-size:.825rem;color:#6b7280;display:flex;align-items:center;gap:5px;margin-top:2px;flex-wrap:wrap}.cita-modal-sep{color:#d1d5db}.cita-modal-info-grid{display:grid;grid-template-columns:1fr 1fr;padding:0 22px;border-bottom:1px solid #e5e7eb}.cita-modal-info-item{border-right:1px solid #f0f0f0;padding:11px 14px 11px 0}.cita-modal-info-item:nth-child(even){padding-left:14px;padding-right:0;border-right:none}.cita-modal-info-item:nth-child(1),.cita-modal-info-item:nth-child(2){border-bottom:1px solid #f0f0f0}.cita-modal-info-label{font-size:.75rem;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}.cita-modal-info-value{font-size:.9rem;color:#1f2937;font-weight:500}.cita-modal-info-highlight{color:#2d4a47;font-weight:700;font-size:.95rem}.cita-modal-horario-strip{display:flex;gap:20px;flex-wrap:wrap;padding:9px 22px;background:#f0f8f7;border-bottom:1px solid #c0d8d4}.cita-modal-horario-item{display:flex;align-items:center;gap:5px;font-size:.825rem;color:#4b6563}.cita-modal-audit{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;padding:7px 22px;font-size:.75rem;color:#9ca3af;border-bottom:1px solid #f0f0f0;background:#fafafa}.cita-modal-audit strong{color:#6b7280}.cita-modal-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px 22px;border-bottom:1px solid #e5e7eb}.cita-modal-field-label{display:block;font-size:.75rem;font-weight:700;color:#6b7280;margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.cita-modal-select{width:100%;padding:9px 11px;border:1.5px solid #d1d5db;border-radius:8px;font-size:.9rem;color:#1f2937;background:#fff;transition:border-color .15s;box-sizing:border-box}.cita-modal-select:focus{outline:0;border-color:#8aa6a1;box-shadow:0 0 0 3px rgba(138,166,161,.15)}.cita-modal-section{padding:14px 22px 0}.cita-modal-actions-study{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 22px;border-top:1px solid #e5e7eb}.cita-modal-action-btn{display:flex!important;align-items:center;justify-content:center;gap:6px}.cita-modal-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 22px;background:#f9fafb;border-top:1px solid #e5e7eb;border-radius:0 0 16px 16px;flex-shrink:0}.cita-modal-footer-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.cita-modal-footer-btn{min-width:136px}.cita-modal-footer-close{margin-left:auto}@media (max-width:860px){.cita-modal-footer{flex-direction:column;align-items:stretch}.cita-modal-footer-actions{width:100%}.cita-modal-footer-btn{flex:1 1 calc(50% - 8px);min-width:0}.cita-modal-footer-close{width:100%;margin-left:0}}.flujo-estado-panel{display:flex;flex-direction:column;gap:8px}.flujo-estado-label{font-size:.72rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.flujo-btn-primary{width:100%;padding:13px 18px;border:0;border-radius:12px;font-size:.95rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;transition:all .18s;box-shadow:0 2px 8px rgba(0,0,0,.12);letter-spacing:.02em}.flujo-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.18)}.flujo-btn-primary:active{transform:translateY(0);box-shadow:0 1px 4px rgba(0,0,0,.1)}.flujo-btn-primary.llegada{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#78350f}.flujo-btn-primary.llegada:hover{filter:brightness(1.08)}.flujo-btn-secondary-row,.flujo-btn-sm{display:flex;gap:6px}.flujo-btn-sm{flex:1;padding:10px 14px;border-radius:8px;border:1.5px solid;font-size:.825rem;font-weight:600;cursor:pointer;transition:all .18s;background:#fff;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.06)}.flujo-btn-sm:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.1)}.flujo-btn-sm:active{transform:translateY(0)}.flujo-btn-sm.no-asistio{border-color:#d1d5db;color:#6b7280}.flujo-btn-sm.no-asistio:hover{background:#f3f4f6;border-color:#9ca3af}.flujo-btn-sm.cancelar{border-color:#fca5a5;color:#dc2626}.flujo-btn-sm.cancelar:hover{background:#fee2e2}.flujo-btn-sm.confirmado{border-color:#93c5fd;color:#1d4ed8;background:#eff6ff}.flujo-btn-sm.confirmado:hover{background:#dbeafe;border-color:#60a5fa}.flujo-btn-sm.en-sala{border-color:#67e8f9;color:#0e7490;background:#ecfeff}.flujo-btn-sm.en-sala:hover{background:#cffafe;border-color:#22d3ee}.flujo-btn-sm.iniciar{border-color:#fdba74;color:#c2410c;background:#fff7ed}.flujo-btn-sm.iniciar:hover{background:#ffedd5;border-color:#fb923c}.flujo-estado-readonly{padding:8px 0 2px;font-size:.825rem;color:#9ca3af;font-style:italic}.estudio-progreso-card{background:linear-gradient(180deg,#fffaf5 0,#fff 100%);box-shadow:0 8px 20px rgba(249,115,22,.12)}.estudio-progreso-pct{display:flex;align-items:center;gap:10px}.estudio-progreso-restante{font-size:.75rem;font-weight:700;color:#9a3412;border:1px solid #fdba74;padding:3px 8px}.estudio-progreso-barra-wrap,.estudio-progreso-restante{background:#ffedd5;border-radius:999px}.estudio-progreso-barra{border-radius:999px;background:linear-gradient(90deg,#f97316 0,#fb923c 55%,#fdba74 100%);box-shadow:0 0 12px rgba(249,115,22,.35)}.recibo-buscar-section{border-left:4px solid #8aa6a1;background:#f4f7f7;padding:14px 18px}.recibo-buscar-header{display:flex;align-items:center;gap:8px;font-weight:600;color:#2d4a47;margin-bottom:12px;font-size:.95rem}.recibo-buscar-resultados{margin-top:12px;border-radius:8px;overflow:hidden;border:1px solid #d1d5db}.recibo-buscar-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background .15s;display:flex;justify-content:space-between;align-items:center;font-size:.9rem}.recibo-buscar-item:last-child{border-bottom:none}.recibo-buscar-item:hover{background:#f0f9f7}.recibo-buscar-item .rci-nombre{font-weight:600;color:#2d4a47}.recibo-buscar-item .rci-meta,.session-expired-toast-text span{font-size:.8rem;color:#6b7280}.recibo-buscar-item .rci-badge{font-size:.75rem;padding:2px 8px;border-radius:99px;background:#e0f2fe;color:#0369a1;white-space:nowrap}.recibo-buscar-item .rci-badge.electro{background:#f0fdf4;color:#15803d}.recibo-buscar-accion{font-size:.78rem;color:#8aa6a1;font-weight:600;margin-left:8px}.recibo-form-card{padding:20px 24px}.recibo-form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width:680px){.recibo-form-grid-2{grid-template-columns:1fr}}.recibo-form-section-title{font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#8aa6a1;margin:0 0 10px}.recibo-form-group{display:flex;flex-direction:column}.recibo-tipo-pago-group{display:flex;gap:10px}.recibo-radio-card{flex:1;display:flex;flex-direction:column;align-items:center;padding:12px 10px;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .15s;text-align:center;user-select:none}.recibo-radio-card:hover{border-color:#8aa6a1;background:#f0f9f7}.recibo-radio-card.selected{border-color:#8aa6a1;background:#e8f4f1;box-shadow:0 0 0 2px #8aa6a130}.recibo-radio-icon{font-size:1.5rem;display:flex;align-items:center;justify-content:center}.recibo-radio-label{font-size:.875rem;font-weight:600;color:#374151;margin-top:4px}.recibo-filtros-card{padding:18px 20px}.recibo-filtros-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.recibo-resumen-card{padding:16px 20px;background:linear-gradient(135deg,#f0f9f7 0,#e8f4f1 100%);border-left:4px solid #8aa6a1}.recibo-export-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:0;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .15s}.recibo-export-excel{background:#16a34a;color:#fff}.recibo-export-excel:hover{background:#15803d}.recibo-export-pdf{background:#dc2626;color:#fff}.recibo-export-pdf:hover{background:#b91c1c}.recibo-row-anulado{background:#fef2f2!important;border-left:4px solid #dc2626!important;border-right:2px solid #fca5a5!important;opacity:.7}.recibo-row-anulado td{text-decoration:line-through;color:#991b1b!important}.recibo-row-anulado:hover{background:#fee2e2!important;border-left-color:#b91c1c!important}.recibo-badge-anulado,.recibo-badge-estado{display:inline-block;border-radius:99px;font-weight:700;letter-spacing:.04em}.recibo-badge-anulado{padding:2px 10px;font-size:.75rem;background:#fee2e2;color:#991b1b;border:1.5px solid #fca5a5;vertical-align:middle;margin-left:6px}.recibo-badge-estado{padding:3px 10px;font-size:.72rem;white-space:nowrap}.recibo-badge-pendiente{background:#fff7ed;color:#c2410c;border:1.5px solid #fdba74}.recibo-badge-pagado{background:#dcfce7;color:#15803d;border:1.5px solid #86efac}.recibo-badge-pago{display:inline-block;font-size:.78rem;padding:3px 10px;border-radius:99px;font-weight:600}.recibo-badge-pago.pago-particular{background:#fef9c3;color:#92400e}.recibo-badge-pago.pago-entidad{background:#dbeafe;color:#1e40af}.recibo-badge-pago.pago-none{background:#f3f4f6;color:#6b7280}.btn-recibo-anular,.btn-recibo-pagar,.btn-recibo-pdf,.btn-recibo-tipo-pago,.btn-recibo-obs{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:8px;cursor:pointer}.btn-recibo-pagar,.btn-recibo-tipo-pago{border:1px solid #bbf7d0;background:#f0fdf4;color:#15803d;transition:all .18s ease}.btn-recibo-pagar svg,.btn-recibo-tipo-pago svg{width:16px;height:16px}.btn-recibo-pagar:hover,.btn-recibo-tipo-pago:hover:not(:disabled){background:#dcfce7;border-color:#4ade80;color:#166534;transform:translateY(-1px)}.btn-recibo-obs{border:1px solid #d1fae5;background:#ecfdf5;transition:background .15s,box-shadow .15s,border-color .15s;flex-shrink:0}.btn-recibo-obs img{width:15px;height:15px;display:block;filter:invert(40%) sepia(80%) saturate(400%) hue-rotate(120deg) brightness(90%)}.btn-recibo-obs:hover:not(:disabled){background:#d1fae5;border-color:#6ee7b7;box-shadow:0 2px 6px rgba(5,150,105,.2)}.btn-recibo-anular,.btn-recibo-pdf{transition:background .15s,box-shadow .15s,border-color .15s;flex-shrink:0}.btn-recibo-pdf{border:1px solid #d1fae5;background:#ecfdf5;text-decoration:none}.btn-recibo-anular img,.btn-recibo-pdf img{width:15px;height:15px;display:block}.btn-recibo-pdf img{filter:invert(40%) sepia(80%) saturate(400%) hue-rotate(120deg) brightness(90%)}.btn-recibo-pdf:hover{background:#d1fae5;border-color:#6ee7b7;box-shadow:0 2px 6px rgba(5,150,105,.2)}.btn-recibo-anular{border:1px solid #fef3c7;background:#fffbeb}.btn-recibo-anular img{filter:invert(60%) sepia(80%) saturate(600%) hue-rotate(10deg) brightness(100%)}.btn-recibo-anular:hover:not(:disabled){background:#fef3c7;border-color:#fcd34d;box-shadow:0 2px 6px rgba(245,158,11,.2)}.estudio-progreso-card{margin-bottom:20px;border-radius:12px;border:1.5px solid #c0d8d4;background:linear-gradient(135deg,#f0f8f7 0,#e8f4f1 100%);overflow:hidden}.estudio-progreso-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 10px}.estudio-progreso-titulo{display:flex;align-items:center;gap:8px;font-size:.875rem;font-weight:700;color:#2d4a47;letter-spacing:.01em}.estudio-progreso-dot{width:9px;height:9px;border-radius:50%;background:#8aa6a1;box-shadow:0 0 0 3px rgba(138,166,161,.35);animation:dotPing 1.8s ease-in-out infinite;flex-shrink:0}.estudio-progreso-pct{font-size:1.1rem;font-weight:800;color:#2d4a47;font-variant-numeric:tabular-nums}.estudio-progreso-barra-wrap{height:10px;background:rgba(45,74,71,.1);position:relative;overflow:hidden}.estudio-progreso-barra{height:100%;background:linear-gradient(90deg,#8aa6a1 0,#2d4a47 100%);transition:width .8s linear;position:relative}.estudio-progreso-barra::after{content:"";position:absolute;top:0;right:-40px;bottom:0;width:40px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:barrashimmer 2.2s ease-in-out infinite}.estudio-progreso-footer{display:flex;justify-content:space-between;align-items:center;padding:8px 16px 12px}.estudio-progreso-hora,.estudio-progreso-timer{font-size:.78rem;color:#6b8f8b;font-variant-numeric:tabular-nums}.estudio-progreso-timer{font-size:1.1rem;font-weight:800;color:#2d4a47;letter-spacing:.04em;font-family:"Segoe UI",system-ui,-apple-system,sans-serif}.cupos-panel{margin-top:14px;border-radius:12px;border:1.5px solid #d5e3e1;background:#fff;overflow:hidden;box-shadow:0 2px 8px rgba(45,74,71,.07)}.cupos-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1.5px solid #eaf1f0}.cupos-panel-header.disponible{background:linear-gradient(90deg,#f0f8f7 0,#e8f4f1 100%)}.cupos-panel-header.ocupado{background:linear-gradient(90deg,#fef5f5 0,#fee2e2 100%)}.cupos-panel-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem;letter-spacing:.01em}.cupos-panel-meta span strong,.cupos-panel-title.disponible{color:#2d4a47}.cupos-panel-title.ocupado{color:#7f1d1d}.cupos-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cupos-dot.disponible{background:#8aa6a1;box-shadow:0 0 0 3px rgba(138,166,161,.25)}.cupos-dot.ocupado{background:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.2)}.cupos-panel-meta{display:flex;gap:12px;font-size:.8rem;color:#6b8f8b}.cupos-panel-body{padding:14px 16px;display:flex;flex-direction:column;gap:12px}.cupos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.cupo-card{border-radius:10px;padding:10px 6px;text-align:center;border:1.5px solid;transition:transform .15s ease}.cupo-card:hover{transform:translateY(-1px)}.cupo-card.libre{background:#f0f8f7;border-color:#c0d8d4}.cupo-card.ocupado{background:#fef2f2;border-color:#fca5a5}.cupo-card-icon{font-size:1.3rem;line-height:1;margin-bottom:4px}.cupo-card.libre .cupo-card-icon{color:#8aa6a1}.cupo-card.ocupado .cupo-card-icon{color:#dc2626}.cupo-card-label{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.cupo-card.libre .cupo-card-label{color:#4d7873}.cupo-card.ocupado .cupo-card-label{color:#b91c1c}.cupo-mini-barra-wrap{margin-top:6px;height:4px;background:rgba(0,0,0,.08);border-radius:99px;overflow:hidden;width:100%}.cupo-mini-barra{height:100%;border-radius:99px;background:linear-gradient(90deg,#8aa6a1,#2d4a47);transition:width .8s linear}.cupo-card.ocupado .cupo-mini-barra{background:linear-gradient(90deg,#f87171,#dc2626)}.cupo-tiempo{font-size:.72rem;font-weight:700;color:#2d4a47;font-variant-numeric:tabular-nums;font-family:"Courier New",monospace;letter-spacing:.03em;margin-top:4px;line-height:1}.cupos-en-uso,.cupos-estudios{padding:10px 12px;border-radius:8px}.cupos-en-uso{display:flex;align-items:flex-start;gap:8px;background:#fef2f2;border-left:3px solid #dc2626;font-size:.825rem;color:#7f1d1d}.cupos-estudios{background:#f8faf9;border-left:3px solid #8aa6a1}.cupos-estudios-title{font-size:.78rem;font-weight:700;color:#4d7873;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.cupos-estudio-item,.cupos-proxima{font-size:.825rem;color:#475569;padding:3px 0;display:flex;gap:6px;align-items:baseline}.cupos-proxima{align-items:center;gap:8px;padding:10px 12px;background:#fffbeb;border-radius:8px;border-left:3px solid #d97706;color:#78350f}.cupos-estudio-item::before{content:"·";color:#8aa6a1;font-weight:900;flex-shrink:0}.cupos-panel-empty{display:flex;align-items:center;gap:10px;padding:14px 16px;color:#9db5b2;font-size:.875rem}.cupos-panel-empty svg{flex-shrink:0;opacity:.5}.cupos-grid-empty{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 16px 14px}.cupo-card.vacio{background:#f8fafa;border-color:#e2ecea}.cupo-card.vacio .cupo-card-icon{color:#c8d9d7}.cupo-card.vacio .cupo-card-label{color:#b0c5c2}.tab-electro-btn{padding:14px 20px;background:0 0;border:0;border-bottom:3px solid transparent;color:#6b7280;cursor:pointer;font-weight:600;white-space:nowrap;font-size:.95rem;transition:all .3s ease;position:relative;flex-shrink:0}.tab-electro-btn:hover:not(.active){color:#4b5563;background:rgba(98,115,113,.04)}.tab-electro-btn.active{color:var(--c-mid);border-bottom-color:var(--c-mid);background:#fff}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;margin-bottom:16px;border:1px solid rgba(226,232,240,.6);box-shadow:0 1px 3px rgba(0,0,0,.04),0 4px 16px rgba(45,74,71,.04);background:#fff;scrollbar-width:thin;scrollbar-color:#8aa6a1 #f3f4f6}.table-wrapper::-webkit-scrollbar{height:6px}.table-wrapper::-webkit-scrollbar-track{background:#f3f4f6;border-radius:8px}.table-wrapper::-webkit-scrollbar-thumb{background:#8aa6a1;border-radius:8px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:#7a9690}.table-wrapper .modern-table{width:100%;border-collapse:collapse}.card-tabla-citas{border-radius:16px!important;border:1px solid rgba(226,232,240,.6)!important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 6px 24px rgba(45,74,71,.05)!important;padding:0!important;overflow:hidden;background:#fff}.citas-table-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;background:linear-gradient(145deg,#f8faff 0,#fff 100%);border-bottom:1px solid #f1f5f9}.citas-table-header-left{display:flex;align-items:center;gap:10px}.citas-table-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:linear-gradient(135deg,var(--c-dark),var(--c-primary));color:#fff;border-radius:10px;flex-shrink:0}.citas-table-header h3{margin:0;font-size:1.1rem;font-weight:700;color:#1e293b;letter-spacing:-.2px}.citas-table-count{font-size:.78rem;font-weight:700;color:var(--c-dark);background:#e8f2f1;padding:4px 12px;border-radius:20px;letter-spacing:.3px}.citas-table-count:empty{display:none}.card-tabla-citas .table-wrapper{border:0!important;box-shadow:none!important;border-radius:0!important;margin-bottom:0}.card-tabla-citas #turnosTableMedica{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0}.card-tabla-citas .table-wrapper{overflow-x:auto}#turnosTableMedica col.col-turno{width:4%}#turnosTableMedica col.col-hora{width:5%}#turnosTableMedica col.col-paciente{width:20%}#turnosTableMedica col.col-tipo{width:16%}#turnosTableMedica col.col-doc{width:9%}#turnosTableMedica col.col-entidad{width:8%}#turnosTableMedica col.col-notas{width:11%}#turnosTableMedica col.col-estado{width:10%}#turnosTableMedica col.col-acciones{width:17%}#turnosTableMedica tbody tr{min-height:52px}#turnosTableMedica td,#turnosTableMedica th{padding:10px 6px;vertical-align:top;line-height:1.35;font-size:.84rem;white-space:normal;overflow:hidden}#turnosTableMedica td.col-paciente-cell,#turnosTableMedica td.col-tipo-cell,#turnosTableMedica td.col-doc-cell,#turnosTableMedica td.col-wrap-cell,#turnosTableMedica td.col-entidad-cell,#turnosTableMedica td.col-notas-cell{max-width:0}#turnosTableMedica .turno-cell-2lines,#turnosTableMedica .turno-notas-cell{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-break:break-word;overflow-wrap:anywhere;line-height:1.35;max-height:2.75em;width:100%}#turnosTableMedica .turno-notas-cell{font-size:.8rem}#turnosTableMedica .col-estado-cell,#turnosTableMedica .col-acciones-cell,#turnosTableMedica .td-acciones{white-space:nowrap;vertical-align:middle;max-width:none;overflow:visible}#turnosTableMedica .table-actions{flex-wrap:nowrap;justify-content:flex-end}#turnosTableMedica tbody .turno-slot-vacio td{white-space:nowrap}#turnosTableMedica tbody td:first-child{font-weight:800;color:#475569;font-size:.825rem}.card-tabla-citas #turnosTableMedica tbody .turno-slot-vacio td,.card-tabla-citas #turnosTableMedica tbody .turno-slot-vacio td:first-child{font-weight:400!important}#turnosTableMedica td.td-acciones{white-space:nowrap}#citasElectroTable th{padding:10px;font-size:.72rem}#citasElectroTable td{padding:10px;font-size:.825rem}#citasElectroTable{min-width:1000px}.turno-row.estado-en-sala{background-color:#fffbeb!important;border-left:3px solid #f59e0b!important}.turno-row.estado-en-sala:hover{background-color:#fef3c7!important}.turno-row.estado-reprogramado{background-color:#eff6ff!important;border-left:3px solid #3b82f6!important}.turno-row.estado-reprogramado:hover{background-color:#dbeafe!important}.electro-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:0}.electro-stat-card{display:flex;align-items:center;gap:12px;background:#fff;padding:14px 16px;border-radius:12px;border:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:box-shadow .15s,transform .15s}.electro-stat-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08);transform:translateY(-1px)}.electro-stat-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.electro-stat-info{min-width:0}.electro-stat-value{font-size:1.5rem;font-weight:800;color:#1f2937;line-height:1.1}.electro-stat-label{font-size:.78rem;color:#6b7280;font-weight:500;margin-top:2px}.turno-row.estado-en-estudio{background-color:#fff7ed!important;border-left:3px solid #f97316!important}.turno-row.estado-en-estudio:hover{background-color:#ffedd5!important}.turno-row.estado-pausado{background-color:#fffbeb!important;border-left:3px solid #f59e0b!important}.turno-row.estado-pausado:hover{background-color:#fef3c7!important}.turno-row.estado-completado{background-color:#f0fdf4!important;border-left:3px solid #22c55e!important}.turno-row.estado-completado:hover{background-color:#dcfce7!important}.turno-row.estado-cancelado{background-color:#fef2f2!important;border-left:3px solid #ef4444!important}.turno-row.estado-cancelado:hover{background-color:#fee2e2!important}.electro-dur-badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.78rem;font-weight:600;background:#f0f9ff;color:#0369a1;border:1px solid #bae6fd;white-space:nowrap}.electro-dur-badge.multi-day{background:#fef3c7;color:#92400e;border-color:#fcd34d}.electro-paciente-cell{font-weight:600;color:#1f2937}.cita-modal-info-item:nth-child(3),.cita-modal-info-item:nth-child(4){border-bottom:1px solid #f0f0f0}@media (max-width:768px){.electro-stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.electro-stat-card{padding:10px 12px}.electro-stat-icon{width:36px;height:36px}.electro-stat-value{font-size:1.25rem}}@media (max-width:480px){.electro-stats-grid{grid-template-columns:1fr 1fr}}.mc-modal{padding:0!important;overflow:hidden}.mc-avatar,.mc-header{display:flex;align-items:center}.mc-header{gap:14px;padding:22px 20px 18px;background:linear-gradient(135deg,var(--c-dark) 0%,var(--c-primary) 100%);position:relative}.mc-avatar{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.18);border:2.5px solid rgba(255,255,255,.4);justify-content:center;font-size:20px;font-weight:700;color:#fff;flex-shrink:0;letter-spacing:-.5px;text-transform:uppercase}.mc-header-info{flex:1;min-width:0}.mc-header-name{font-size:16px;font-weight:700;color:#fff;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-header-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mc-badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:11px;font-weight:700;background:rgba(255,255,255,.2);color:#fff;text-transform:uppercase;letter-spacing:.5px;border:1px solid rgba(255,255,255,.3)}.mc-header-at{font-size:12px;color:rgba(255,255,255,.7)}.mc-close{position:absolute!important;top:12px!important;right:12px!important;background:rgba(255,255,255,.15)!important;border:0!important;border-radius:8px!important;color:#fff!important;padding:0!important;width:30px!important;height:30px!important;min-width:unset!important;min-height:unset!important;box-shadow:none!important;transition:background .15s!important}.mc-close:hover{background:rgba(255,255,255,.28)!important}.mc-tabs{display:flex;background:#fff;border-bottom:1.5px solid #e5e7eb;padding:0 20px}.mc-tab{background:0 0!important;border:0!important;border-radius:0!important;padding:11px 16px!important;font-size:13.5px!important;font-weight:600!important;color:#9ca3af!important;cursor:pointer;position:relative;display:flex;align-items:center;gap:6px;box-shadow:none!important;transition:color .15s;white-space:nowrap}.mc-tab::after{content:"";position:absolute;bottom:-1.5px;left:0;right:0;height:2.5px;background:0 0;border-radius:3px 2px 0 0;transition:background .15s}.mc-tab.active{color:var(--c-dark)!important}.mc-tab.active::after{background:var(--c-primary)}.mc-tab:hover:not(.active){color:var(--c-mid)!important}.mc-panel{padding:20px}.mc-panel.hidden{display:none!important}.mc-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.mc-info-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:9px 12px}.mc-info-label{display:block;font-size:10px;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.6px;margin-bottom:3px}.mc-info-val{font-size:13.5px;font-weight:600;color:#1f2937}.mc-form-label,.mc-pwd-field label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}.mc-input{width:100%;padding:10px 12px;border:1.5px solid #d1d5db;border-radius:8px;font-size:14px;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.mc-input:focus{outline:0;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(138,166,161,.2)}.mc-error{margin-top:10px;padding:9px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:13px}.mc-error.hidden{display:none!important}.mc-actions{display:flex;gap:10px;margin-top:16px}.mc-actions .btn-primary{flex:1}.mc-pwd-section{display:flex;flex-direction:column;gap:12px}.turno-row.estado-cancelado-paciente{background-color:#fff5f5!important;border-left:3px solid #ef4444!important}.turno-row.estado-cancelado-paciente:hover{background-color:#fee2e2!important}.turno-row.estado-no-asistio{background-color:#fdf4ff!important;border-left:3px solid #a855f7!important}.turno-row.estado-no-asistio:hover{background-color:#f3e8ff!important}.turno-row td{border-left:none}@media (max-width:768px){.col-mobile-hide{display:none!important}.tab-electro-btn{padding:9px 10px;font-size:.825rem}.modal-box{max-height:calc(100svh - 32px);overflow-y:auto}.card div[style*="display: flex"],.card div[style*="display:flex"]{flex-wrap:wrap!important}.card div[style*="display: flex"]>button,.card div[style*="display:flex"]>button{width:auto!important;flex-shrink:0}#itemsTable,#r_table{min-width:0;width:100%}#turnosTableMedica{min-width:360px}#tablaSavedItems{min-width:1100px}#usuariosTable{min-width:540px}#diagnosticosTable{min-width:480px}#citasElectroTable{min-width:460px}#tablaCitasAuditoria{min-width:580px}.table-compact::before{display:none}}.card-collapsible-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}.card-collapsible-header h3{margin:0}.card-collapse-btn{background:0 0;border:1.5px solid #d1d5db;border-radius:8px;padding:4px 10px;font-size:.875rem;color:#6b7280;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.card-collapse-btn:hover{background:#f3f4f6;color:#374151}.card-collapsible-body{overflow:hidden;transition:max-height .3s ease}.card-collapsible-body.collapsed{display:none}#toast-container,.app-loader-overlay{position:fixed;z-index:9999;display:flex}.app-loader-overlay{top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);align-items:center;justify-content:center}.app-loader-box{background:#fff;padding:24px 32px;border-radius:10px;text-align:center;min-width:160px;box-shadow:0 8px 32px rgba(0,0,0,.2);font-size:.95rem;color:#374151}.app-loader-spinner{width:36px;height:36px;border:4px solid #e5e7eb;border-top-color:var(--c-primary,#8AA6A1);border-radius:50%;animation:loaderSpin .7s linear infinite;margin:0 auto 12px}.app-toast{border-radius:8px;color:#fff;max-width:380px;box-shadow:0 4px 16px rgba(0,0,0,.2);font-size:.9rem}.app-toast-error{background:#dc2626}.app-toast-success{background:#059669}.app-toast-info{background:#0369a1}.app-toast-warning{background:#d97706}#toast-container{top:20px;right:20px;flex-direction:column;gap:8px;max-width:380px;width:calc(100vw - 40px);pointer-events:none}#toast-container .app-toast{position:relative;top:auto;right:auto;pointer-events:all;display:flex;align-items:flex-start;gap:10px;padding:12px 16px;animation:toastSlide .25s ease}.toast-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px}.toast-body{flex:1;font-size:.9rem;line-height:1.4}.toast-close{background:0 0;border:0;color:rgba(255,255,255,.8);cursor:pointer;font-size:1rem;padding:0;flex-shrink:0;line-height:1;margin-top:1px}.toast-close:hover{color:#fff}.app-toast.removing{animation:toastFadeOut .25s ease forwards;overflow:hidden}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:#9ca3af;text-align:center;gap:12px}.empty-state-icon{font-size:2.5rem;opacity:.5}.empty-state-title{font-size:1rem;font-weight:600;color:#6b7280;margin:0}.empty-state-subtitle{font-size:.875rem;color:#9ca3af;margin:0}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading::after{content:"";position:absolute;width:14px;height:14px;top:50%;left:50%;margin:-7px 0 0-7px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:loaderSpin .6s linear infinite}[id^=view-]:not(.hidden){animation:viewFadeIn .15s ease}.confirm-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:10001;display:flex;align-items:center;justify-content:center;animation:viewFadeIn .15s ease}.confirm-box{background:#fff;border-radius:12px;padding:28px 32px;max-width:420px;width:calc(100vw - 48px);box-shadow:0 8px 32px rgba(0,0,0,.2);animation:scaleIn .15s ease}.confirm-icon,.confirm-msg{font-size:2rem;text-align:center;margin-bottom:10px}.confirm-msg{font-size:.95rem;color:#374151;margin-bottom:24px;line-height:1.55;white-space:pre-line}.confirm-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.confirm-actions .btn-cancel,.confirm-actions .btn-ok{padding:9px 22px;border-radius:6px;border:0;cursor:pointer;font-size:.9rem}.confirm-actions .btn-cancel{background:#f3f4f6;color:#374151}.confirm-actions .btn-cancel:hover{background:#e5e7eb}.confirm-actions .btn-ok{font-weight:600;color:#fff;background:var(--c-primary, #8AA6A1)}.confirm-actions .btn-ok.danger{background:#dc2626}.confirm-actions .btn-ok:hover,.session-expired-toast-btn:hover{opacity:.88}#session-expired-toast{position:fixed;bottom:24px;right:24px;z-index:10002;animation:slideInToast .35s ease}.session-expired-toast-content{display:flex;align-items:center;gap:12px;background:#fff;border-radius:12px;padding:14px 18px;box-shadow:0 8px 32px rgba(0,0,0,.18);border:1px solid #e5e7eb;max-width:420px}.session-expired-toast-icon{font-size:1.5rem;flex-shrink:0}.session-expired-toast-text{display:flex;flex-direction:column;gap:2px}.session-expired-toast-text strong{font-size:.9rem;color:#111827}.session-expired-toast-btn{flex-shrink:0;padding:7px 14px;border-radius:8px;border:0;background:var(--c-primary, #8AA6A1);color:#fff;font-size:.825rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .15s}.session-expired-toast-close{flex-shrink:0;background:0 0;border:0;font-size:1.3rem;color:#9ca3af;cursor:pointer;padding:0 2px;line-height:1}.session-expired-toast-close:hover{color:#374151}.skeleton-row td{padding:10px 14px;border-bottom:1px solid #f3f4f6}.skeleton-cell{height:13px;border-radius:4px;background:linear-gradient(90deg,#ececec 25%,#e2e2e2 50%,#ececec 75%);background-size:600px 100%;animation:shimmer 1.4s infinite}.field-error-input{border-color:#dc2626!important;box-shadow:0 0 0 2px rgba(220,38,38,.15)!important}.field-error-msg{color:#dc2626;font-size:.78rem;margin-top:3px;display:block}.ms-wrap{position:relative;width:100%}.ms-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;color:#374151;cursor:pointer;text-align:left;transition:border-color .2s,box-shadow .2s}.ms-trigger:hover{border-color:var(--c-primary)}.ms-trigger:focus{outline:0;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(138,166,161,.35)}.ms-trigger.ms-has-value{border-color:var(--c-primary);background:#f0fdf4}.ms-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-arrow{flex-shrink:0;color:#9ca3af;transition:transform .2s}.ms-open .ms-arrow{transform:rotate(180deg)}.ms-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #d1d5db;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:1000;max-height:240px;overflow-y:auto;padding:6px 0}.ms-open .ms-dropdown{display:block}.ms-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;font-size:.875rem;color:#374151;transition:background .15s;user-select:none}.ms-item:hover{background:#f3f4f6}.ms-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--c-primary);cursor:pointer;flex-shrink:0}.ms-dropdown::-webkit-scrollbar{width:6px}.ms-dropdown::-webkit-scrollbar-track{background:0 0}.ms-dropdown::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.ccal-container{background:linear-gradient(145deg,#fff 0,#f8faff 100%);border-radius:20px;padding:28px 24px 20px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 8px 32px rgba(45,74,71,.07);border:1px solid rgba(226,232,240,.6)}.ccal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.ccal-header-center{text-align:center}.ccal-month-title{margin:0;font-size:1.3rem;font-weight:800;color:#1e293b;letter-spacing:-.3px}.ccal-subtitle{font-size:.78rem;color:#94a3b8;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.ccal-nav-btn{width:40px;height:40px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;color:#475569;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.ccal-nav-btn:hover{background:#f1f5f9;border-color:#cbd5e1;color:#1e293b;transform:scale(1.05)}.ccal-legend{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:18px;justify-content:center}.ccal-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:#64748b}.ccal-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.ccal-legend-green .ccal-legend-dot{background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 0 6px rgba(34,197,94,.35)}.ccal-legend-yellow .ccal-legend-dot{background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 0 6px rgba(245,158,11,.35)}.ccal-legend-red .ccal-legend-dot{background:linear-gradient(135deg,#f87171,#ef4444);box-shadow:0 0 6px rgba(239,68,68,.3)}.ccal-legend-noasiste .ccal-legend-dot{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 0 6px rgba(220,38,38,.35)}.ccal-legend-ucqn .ccal-legend-dot{background:linear-gradient(135deg,#60a5fa,#2563eb);box-shadow:0 0 6px rgba(37,99,235,.35)}.ccal-legend-blocked .ccal-legend-dot{background:repeating-linear-gradient(-45deg,#cbd5e1,#cbd5e1 2px,#e2e8f0 2px,#e2e8f0 4px)}.citas-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.ccal-weekday{padding:8px 4px;text-align:center;font-size:.75rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:1px}.ccal-cell{min-height:100px;padding:10px 10px 18px;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;position:relative;background:#fff;border:1.5px solid #f1f5f9}.ccal-cell:hover:not(.ccal-empty){transform:translateY(-4px) scale(1.02);z-index:5}.ccal-empty{background:0 0;border-color:transparent;cursor:default;min-height:0}.ccal-verde{background:linear-gradient(145deg,#f0fdf4 0,#dcfce7 100%);border-color:rgba(34,197,94,.25)}.ccal-neutro{background:#fff;border-color:#e5e7eb}.ccal-neutro:hover{box-shadow:0 8px 24px rgba(0,0,0,.07),0 0 0 2px rgba(0,0,0,.05);border-color:#d1d5db}.ccal-verde:hover{box-shadow:0 8px 24px rgba(34,197,94,.18),0 0 0 2px rgba(34,197,94,.15);border-color:rgba(34,197,94,.4)}.ccal-amarillo{background:linear-gradient(145deg,#fffbeb 0,#fef3c7 100%);border-color:rgba(245,158,11,.25)}.ccal-amarillo:hover{box-shadow:0 8px 24px rgba(245,158,11,.15),0 0 0 2px rgba(245,158,11,.12);border-color:rgba(245,158,11,.4)}.ccal-azul{background:linear-gradient(145deg,#eff6ff 0,#dbeafe 100%);border-color:rgba(59,130,246,.25)}.ccal-azul:hover{box-shadow:0 8px 24px rgba(59,130,246,.15),0 0 0 2px rgba(59,130,246,.12);border-color:rgba(59,130,246,.4)}.ccal-rojo{background:linear-gradient(145deg,#fff5f5 0,#fee2e2 100%);border-color:rgba(239,68,68,.2)}.ccal-rojo:hover{box-shadow:0 8px 24px rgba(239,68,68,.15),0 0 0 2px rgba(239,68,68,.12);border-color:rgba(239,68,68,.35)}.ccal-noasiste{background:linear-gradient(145deg,#fef2f2 0,#fee2e2 100%);border-color:rgba(220,38,38,.35);overflow:hidden}.ccal-noasiste:hover{box-shadow:0 8px 24px rgba(220,38,38,.2),0 0 0 2px rgba(220,38,38,.2);border-color:rgba(220,38,38,.55)}.ccal-noasiste .ccal-dia-num{color:#b91c1c;font-weight:800}.ccal-ucqn{background:linear-gradient(145deg,#eff6ff 0,#dbeafe 100%);border-color:rgba(37,99,235,.35);overflow:hidden}.ccal-ucqn:hover{box-shadow:0 8px 24px rgba(37,99,235,.2),0 0 0 2px rgba(37,99,235,.2);border-color:rgba(37,99,235,.55)}.ccal-ucqn .ccal-dia-num{color:#1d4ed8;font-weight:800}.ccal-motivo-diagonal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-35deg);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;pointer-events:none;z-index:2;max-width:130%;overflow:hidden;text-overflow:ellipsis}.ccal-noasiste .ccal-motivo-diagonal{color:rgba(185,28,28,.75)}.ccal-ucqn .ccal-motivo-diagonal{color:rgba(29,78,216,.75)}.ccal-corner-count{position:absolute;top:5px;right:6px;font-size:11px;font-weight:800;line-height:1;min-width:18px;height:18px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;z-index:3}.ccal-noasiste .ccal-corner-count{background:#dc2626;color:#fff}.ccal-ucqn .ccal-corner-count{background:#2563eb;color:#fff}.ccal-bloqueado{background:repeating-linear-gradient(-45deg,#f8fafc,#f8fafc 5px,#f1f5f9 5px,#f1f5f9 10px);border-color:#e2e8f0;cursor:not-allowed!important;opacity:.55}.ccal-bloqueado:hover{transform:none!important;box-shadow:none}.ccal-bloqueado .ccal-dia-num{color:#94a3b8}.ccal-bloqueado .ccal-citas-label{color:#94a3b8;font-style:italic}.ccal-hoy{border-color:var(--c-primary)!important;box-shadow:0 0 0 3px rgba(138,166,161,.3),0 2px 8px rgba(138,166,161,.15)}.ccal-hoy .ccal-dia-num{background:linear-gradient(135deg,var(--c-dark),var(--c-primary));color:#fff;border-radius:50%;width:30px;height:30px;display:inline-flex;font-size:13px;box-shadow:0 2px 8px rgba(45,74,71,.35)}.ccal-dia-num{font-size:13px;font-weight:700;color:#475569;margin-bottom:4px;line-height:1}.ccal-dia-info,.ccal-hoy .ccal-dia-num{align-items:center;justify-content:center}.ccal-dia-info{display:flex;flex-direction:column;flex:1;gap:1px}.ccal-citas-count{font-size:26px;font-weight:800;line-height:1.1;letter-spacing:-.5px}.ccal-verde .ccal-citas-count{color:#16a34a}.ccal-amarillo .ccal-citas-count{color:#d97706}.ccal-azul .ccal-citas-count{color:#2563eb}.ccal-rojo .ccal-citas-count{color:#dc2626}.ccal-citas-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.ccal-verde .ccal-citas-label{color:#22c55e}.ccal-amarillo .ccal-citas-label{color:#f59e0b}.ccal-azul .ccal-citas-label{color:#3b82f6}.ccal-rojo .ccal-citas-label{color:#f87171}.ccal-bar{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);height:3px;border-radius:3px;width:60%;opacity:.7}.ccal-verde .ccal-bar{background:linear-gradient(90deg,#22c55e,#4ade80)}.ccal-amarillo .ccal-bar{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.ccal-azul .ccal-bar{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.ccal-rojo .ccal-bar{background:linear-gradient(90deg,#ef4444,#f87171)}.ccal-status-badges{position:absolute;bottom:3px;right:4px;display:flex;gap:2px;flex-wrap:wrap;justify-content:flex-end;max-width:80%}.ccal-badge{font-size:9px;font-weight:700;line-height:1;padding:2px 4px;border-radius:4px;color:#fff;min-width:14px;text-align:center}.ccal-badge-atendida{background:#10b981}.ccal-badge-cancelada{background:#ef4444}.ccal-badge-reprog{background:#6b9590}.ccal-badge-noasistio{background:#64748b}.ccal-cell-zooming{animation:ccalZoom .4s cubic-bezier(.22,1,.36,1) forwards;z-index:100!important}.agenda-day-view-hidden{display:none}.agenda-cal-view-exit{animation:fadeScaleOut .35s cubic-bezier(.4,0,.2,1) forwards}.agenda-cal-view-enter{animation:fadeScaleIn .4s cubic-bezier(.22,1,.36,1) forwards}.agenda-day-view-enter{animation:fadeSlideIn .4s cubic-bezier(.22,1,.36,1) forwards}.agenda-day-view-exit{animation:fadeSlideOut .3s cubic-bezier(.4,0,.2,1) forwards}@media (max-width:768px){.ccal-container{padding:16px 10px 14px;border-radius:12px}.citas-cal-grid{gap:4px}.ccal-cell{min-height:58px;padding:6px;border-radius:10px}.ccal-dia-num{font-size:11px}.ccal-citas-count{font-size:18px}.ccal-citas-label{font-size:8px}.ccal-bar{display:none}.ccal-month-title{font-size:1.1rem}.ccal-legend{gap:10px}}.campo-requerido::after{content:" *";color:#dc2626;font-weight:700}input[required]:placeholder-shown,select[required]:invalid{border-left:3px solid #f87171}input[required]:not(:placeholder-shown),select[required]:not(:invalid){border-left:3px solid #34d399}.sidebar-pin-wrap{display:flex;justify-content:flex-end;margin-bottom:6px;opacity:0;transition:opacity .2s}.sidebar.sidebar-pinned .sidebar-pin-wrap,.sidebar:hover .sidebar-pin-wrap{opacity:1}.sidebar-pin-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:6px;color:rgba(255,255,255,.55);cursor:pointer;width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;transition:all .18s;flex-shrink:0}.sidebar-pin-btn:hover{background:rgba(255,255,255,.22);color:#fff}.sidebar.sidebar-pinned .sidebar-pin-btn{background:rgba(255,255,255,.2);color:#fff;border-color:rgba(255,255,255,.35)}.sidebar.sidebar-pinned{width:250px!important;overflow-y:auto!important}.sidebar.sidebar-pinned .sidebar-inner{padding:20px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;position:static!important;gap:0!important}.sidebar.sidebar-pinned .sidebar-desc,.sidebar.sidebar-pinned .sidebar-logo,.sidebar.sidebar-pinned .sidebar-section-label,.sidebar.sidebar-pinned .sidebar-title-sep,.sidebar.sidebar-pinned h2{display:block!important}.sidebar.sidebar-pinned .sidebar-footer{display:flex!important}.sidebar.sidebar-pinned .btn-volver,.sidebar.sidebar-pinned .sidebar-btn{font-size:.875rem!important;justify-content:flex-start!important;padding:9px 12px!important;margin-bottom:16px!important;width:100%!important;box-shadow:none!important}.sidebar.sidebar-pinned .sidebar-btn{font-size:.9rem!important;padding:10px 12px!important;margin-bottom:3px!important;box-shadow:inset 3px 0 0 transparent!important}.sidebar.sidebar-pinned .sidebar-btn.active{box-shadow:inset 3px 0 0 var(--c-primary)!important}.sidebar.sidebar-pinned .sidebar-logo-mini{display:none!important}@media (max-width:768px){.sidebar-pin-wrap{display:none!important}}#view-dashboard-citas .card.no-print label,.recibo-filtros-grid label{font-size:.825rem;font-weight:600;color:#2d4a47;margin-bottom:4px}
/* Calendario de citas: card dividido en métricas y observación */
.cal-day{min-height:74px;padding:5px 5px 6px;gap:0;overflow:hidden}
.cal-day-num{position:absolute;top:5px;left:6px;z-index:2}
.cal-day-top{width:100%;min-height:36px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4px;padding:9px 3px 4px;border-bottom:1px solid rgba(15,23,42,.14)}
.cal-day-bottom{width:100%;min-height:27px;display:flex;align-items:center;justify-content:center;padding:4px 3px 1px;text-align:center}
.cal-day-metric{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;min-width:0}
.cal-day-metric-num{font-size:1rem;font-weight:800;letter-spacing:-.03em}
.cal-day-metric-label{font-size:.47rem;font-weight:800;letter-spacing:.08em;opacity:.72;margin-top:2px;white-space:nowrap}
.cal-day-metric-citas .cal-day-metric-num{color:#1d4ed8}
.cal-day-metric-libres .cal-day-metric-num{color:#047857}
.cal-day-observacion{display:block;width:100%;font-size:.55rem;font-weight:800;font-style:italic;text-transform:uppercase;letter-spacing:.02em;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-day-observacion-empty{opacity:.35;font-weight:700;text-transform:none;letter-spacing:0}
.cal-day.cal-unavailable .cal-day-metric-libres .cal-day-metric-num{color:#b91c1c}
.cal-day.cal-unavailable .cal-day-observacion{color:#991b1b}
@media (max-width: 760px){.cal-day{min-height:66px;padding:4px}.cal-day-top{min-height:32px;padding-top:8px}.cal-day-metric-num{font-size:.88rem}.cal-day-metric-label{font-size:.42rem}.cal-day-observacion{font-size:.48rem}}

/* Calendario principal de citas: card dividido en citas/libres y observación */
.ccal-dia-info-split{width:100%;height:100%;display:flex;flex-direction:column;justify-content:stretch;gap:0;padding:2px 0 0}
.ccal-card-top{width:100%;min-height:42px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4px;padding:8px 4px 5px;border-bottom:1px solid rgba(15,23,42,.13)}
.ccal-card-bottom{width:100%;min-height:28px;display:flex;align-items:center;justify-content:center;padding:5px 3px 0;text-align:center}
.ccal-card-metric{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;min-width:0}
.ccal-card-num{font-size:20px;font-weight:900;letter-spacing:-.04em;line-height:.95}
.ccal-card-label{font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;opacity:.72;margin-top:3px;white-space:nowrap}
.ccal-card-metric-citas .ccal-card-num{color:#1d4ed8}
.ccal-card-metric-libres .ccal-card-num{color:#047857}
.ccal-card-observacion{display:block;width:100%;font-size:10px;font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:.03em;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ccal-card-observacion-empty{opacity:.38;font-weight:700;text-transform:none;letter-spacing:0}
.ccal-bloqueado .ccal-card-num,.ccal-noasiste .ccal-card-num{color:#b91c1c}
.ccal-bloqueado .ccal-card-observacion,.ccal-noasiste .ccal-card-observacion{color:#991b1b}
.ccal-ucqn .ccal-card-observacion{color:#1d4ed8}
@media (max-width:768px){.ccal-card-top{min-height:34px;padding:6px 2px 4px}.ccal-card-bottom{min-height:22px;padding-top:3px}.ccal-card-num{font-size:16px}.ccal-card-label{font-size:6.5px}.ccal-card-observacion{font-size:8px}}
.ccal-dia-info-split+.ccal-status-badges{top:4px;right:4px;bottom:auto}

/* ========== MONITOR DE EQUIPOS ========== */
.meq-fullpage{min-height:100vh;background:linear-gradient(135deg,#f0f4f8 0%,#e8edf3 100%);display:flex;flex-direction:column}
.meq-topbar{display:flex;justify-content:space-between;align-items:center;padding:0 28px;height:60px;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.meq-topbar-left{display:flex;align-items:center;gap:0;height:100%}
.meq-topbar-logo{height:36px;width:auto;object-fit:contain}
.meq-topbar-divider{width:1px;height:28px;background:#e2e8f0;margin:0 16px}
.meq-topbar-center{position:absolute;left:50%;transform:translateX(-50%);font-size:.95rem;font-weight:700;color:#1e293b;letter-spacing:.01em}
.meq-back-btn{display:flex;align-items:center;gap:8px;background:none;border:none;font-size:.88rem;font-weight:600;color:#475569;cursor:pointer;padding:6px 12px;border-radius:8px;transition:background .15s,color .15s}
.meq-back-btn:hover{background:#f1f5f9;color:#1e293b}
.meq-topbar-right{display:flex;align-items:center;gap:10px}
.meq-refresh-btn{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;border-radius:12px!important;border:2.5px solid #7c3aed!important;background:#ede9fe!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;color:#7c3aed!important;transition:all .2s;font-weight:700;box-shadow:0 3px 10px rgba(124,58,237,.25)!important;padding:0!important;overflow:visible!important;visibility:visible!important;opacity:1!important}
.meq-refresh-btn:hover{background:#7c3aed!important;color:#fff!important;transform:rotate(90deg) scale(1.08);box-shadow:0 4px 14px rgba(124,58,237,.35)!important}
.meq-refresh-btn:hover svg{stroke:#fff!important}
.meq-refresh-btn svg{display:block!important;visibility:visible!important;opacity:1!important;width:24px!important;height:24px!important}
.meq-page-body{flex:1;padding:20px 28px 40px;max-width:min(1600px,96vw);width:100%;margin:0 auto;box-sizing:border-box}
/* Date bar */
.meq-date-bar{display:flex!important;align-items:center!important;gap:10px!important;margin-bottom:16px;justify-content:center;visibility:visible!important;opacity:1!important}
.meq-date-nav{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;border-radius:12px!important;border:2.5px solid #7c3aed!important;background:#ede9fe!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;color:#7c3aed!important;transition:all .18s;font-weight:700;box-shadow:0 3px 10px rgba(124,58,237,.25)!important;padding:0!important;overflow:visible!important;visibility:visible!important;opacity:1!important}
.meq-date-nav:hover{background:#7c3aed!important;color:#fff!important;border-color:#5b21b6!important;box-shadow:0 4px 14px rgba(124,58,237,.35)!important;transform:scale(1.08)}
.meq-date-nav:hover svg{stroke:#fff!important}
.meq-date-nav svg{display:block!important;visibility:visible!important;opacity:1!important;width:26px!important;height:26px!important}
.meq-date-center{display:flex;align-items:center;gap:10px;position:relative}
.meq-date-input{border:1px solid #e2e8f0;border-radius:8px;padding:6px 12px;font-size:.85rem;font-weight:600;color:#334155;background:#fff;cursor:pointer;font-family:inherit;min-width:145px;text-align:center}
.meq-date-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.12)}
.meq-date-label{font-size:.78rem;font-weight:700;color:#7c3aed;background:#f5f3ff;padding:2px 10px;border-radius:20px;white-space:nowrap}
.meq-date-hoy{border:1px solid #7c3aed;background:#f5f3ff;color:#7c3aed;font-size:.78rem;font-weight:700;padding:5px 14px;border-radius:8px;cursor:pointer;transition:all .15s;white-space:nowrap}
.meq-date-hoy:hover{background:#7c3aed;color:#fff}
/* Historical badge */
.meq-hist-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fef3c7;border:1px solid #fde68a;border-radius:10px;font-size:.8rem;color:#92400e;margin-bottom:16px;font-weight:500}
.meq-hist-badge svg{flex-shrink:0;color:#d97706}
/* Stats bar */
.meq-stats-bar{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.meq-stat-chip{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:12px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:transform .12s,box-shadow .12s}
.meq-stat-chip:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,0,0,.08)}
.meq-stat-chip svg{flex-shrink:0;opacity:.7}
.meq-sc-num{font-size:1.2rem;font-weight:800;line-height:1}
.meq-sc-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}
.meq-sc-total .meq-sc-num{color:#6366f1}
.meq-sc-total svg{color:#6366f1}
.meq-sc-activo .meq-sc-num{color:#16a34a}
.meq-sc-activo svg{color:#16a34a}
.meq-sc-ocupado .meq-sc-num{color:#ea580c}
.meq-sc-ocupado svg{color:#ea580c}
.meq-sc-completado .meq-sc-num{color:#059669}
.meq-sc-completado svg{color:#059669}
.meq-sc-libre .meq-sc-num{color:#2563eb}
.meq-sc-libre svg{color:#2563eb}
.meq-sc-inactivo .meq-sc-num{color:#9ca3af}
.meq-sc-inactivo svg{color:#9ca3af}
/* Timeline Gantt 24h */
.meq-timeline-wrap{background:#fff;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 4px 24px rgba(0,0,0,.04);overflow-x:auto;overflow-y:hidden}
.meq-ventana-bar{padding:10px 16px 0;background:#fafbfc;border-bottom:1px solid #f1f5f9}
.meq-ventana-label{font-size:.78rem;font-weight:600;color:#64748b;letter-spacing:.02em}
.meq-timeline-legend{display:flex;flex-wrap:wrap;gap:14px 20px;padding:12px 18px;border-bottom:1px solid #f1f5f9;font-size:.75rem;color:#64748b}
.meq-leg-item{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.meq-leg-swatch{display:inline-block;width:14px;height:14px;border-radius:4px;flex-shrink:0}
.meq-leg-now-line{display:inline-block;width:2px;height:14px;background:#dc2626;border-radius:1px}
.meq-timeline-head,.meq-timeline-row{display:grid;grid-template-columns:200px minmax(640px,1fr);align-items:stretch;min-width:840px}
.meq-timeline-head{background:#f8fafc;border-bottom:2px solid #e2e8f0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}
.meq-timeline-eq-col{padding:12px 16px;display:flex;align-items:center;gap:10px;border-right:1px solid #f1f5f9;font-weight:700;font-size:.88rem;color:#1e293b}
.meq-eq-name{display:flex;flex-direction:column;gap:2px;min-width:0}
.meq-eq-name small{font-size:.68rem;font-weight:400;color:#94a3b8}
.meq-timeline-hours{position:relative;height:36px;border-right:1px solid #f1f5f9}
.meq-hour-tick{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:.68rem;color:#94a3b8;white-space:nowrap}
.meq-timeline-body .meq-timeline-row{border-bottom:1px solid #f1f5f9;animation:meqFadeIn .3s ease}
.meq-timeline-body .meq-timeline-row:last-child{border-bottom:none}
.meq-timeline-body .meq-timeline-row:hover{background:#fafbfc}
.meq-timeline-row.meq-inactivo{opacity:.5}
.meq-timeline-track{position:relative;height:56px;margin:8px 12px 8px 4px;background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%);border-radius:10px;border:1px solid #e2e8f0;overflow:hidden}
.meq-track-inactivo{display:flex;align-items:center;justify-content:center;background:#f9fafb}
.meq-grid-line{position:absolute;top:0;bottom:0;width:1px;background:rgba(148,163,184,.25);pointer-events:none}
.meq-now-line{position:absolute;top:0;bottom:0;width:2px;background:#dc2626;z-index:3;pointer-events:none;box-shadow:0 0 0 1px rgba(220,38,38,.2)}
.meq-now-line::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:8px;height:8px;border-radius:50%;background:#dc2626}
.meq-timeline-bar{position:absolute;top:8px;bottom:8px;border-radius:6px;min-width:4px;z-index:2;display:flex;align-items:center;padding:0 6px;overflow:hidden;cursor:default;transition:filter .15s,transform .12s;border:1px solid transparent}
.meq-timeline-bar[data-cita-id]{cursor:pointer;outline-offset:2px}
.meq-timeline-bar[data-cita-id]:focus-visible{outline:2px solid #6366f1}
.meq-sin-equipo-card[data-cita-id]{cursor:pointer}
.meq-timeline-bar:hover{filter:brightness(1.05);transform:scaleY(1.04);z-index:4}
.meq-est-psg{background:linear-gradient(180deg,#c4b5fd,#8b5cf6);border-color:#7c3aed;color:#3b0764}
.meq-est-eeg{background:linear-gradient(180deg,#fde047,#facc15);border-color:#ca8a04;color:#713f12}
.meq-est-vtm{background:linear-gradient(180deg,#93c5fd,#3b82f6);border-color:#2563eb;color:#1e3a8a}
.meq-est-otro{background:linear-gradient(180deg,#cbd5e1,#94a3b8);border-color:#64748b;color:#1e293b}
.meq-bar-provision{background-image:repeating-linear-gradient(-45deg,transparent,transparent 6px,rgba(255,255,255,.35) 6px,rgba(255,255,255,.35) 12px);border-style:dashed;opacity:.88}
.meq-bar-pasado{opacity:.55;filter:saturate(.85)}
.meq-bar-activo{box-shadow:0 0 0 2px rgba(234,88,12,.35),0 0 0 4px rgba(234,88,12,.12);z-index:5}
.meq-bar-futuro,.meq-bar-otro{opacity:.95}
.meq-bar-label{font-size:.62rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.meq-track-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.78rem;color:#b0b8c4;font-style:italic}
.meq-leg-swatch.meq-est-psg{background:#8b5cf6}
.meq-leg-swatch.meq-est-eeg{background:#facc15}
.meq-leg-swatch.meq-est-vtm{background:#3b82f6}
.meq-leg-swatch.meq-bar-provision{border-style:dashed}
.meq-st-reservado .meq-eq-icon{background:#f5f3ff;color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.1)}
/* List/Grid (legacy) */
.meq-list-wrap{background:#fff;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 4px 24px rgba(0,0,0,.04);overflow:hidden}
.meq-header-row{display:grid;grid-template-columns:200px 1fr 40px 1fr;background:#f8fafc;border-bottom:2px solid #e2e8f0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}
.meq-header-row .meq-col{min-height:auto;padding:10px 20px}
.meq-row{display:grid;grid-template-columns:200px 1fr 40px 1fr;align-items:center;background:#fff;border-bottom:1px solid #f1f5f9;transition:background .15s,transform .12s;animation:meqFadeIn .3s ease}
@keyframes meqFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.meq-row:last-child{border-bottom:none}
.meq-row:hover{background:#fafbfc}
.meq-row.meq-inactivo{opacity:.45}
.meq-row.meq-inactivo:hover{opacity:.6}
.meq-col{padding:14px 20px;display:flex;align-items:center;min-height:64px}
.meq-col-equipo{font-weight:700;font-size:.9rem;color:#1e293b;gap:10px;border-right:1px solid #f1f5f9}
.meq-eq-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s}
.meq-row:hover .meq-eq-icon{transform:scale(1.06)}
.meq-eq-icon svg{width:18px;height:18px}
.meq-st-ocupado .meq-eq-icon{background:#fff7ed;color:#ea580c;box-shadow:0 0 0 3px rgba(234,88,12,.08)}
.meq-st-libre .meq-eq-icon{background:#f0fdf4;color:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.08)}
.meq-st-pendiente .meq-eq-icon{background:#eff6ff;color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.08)}
.meq-st-inactivo .meq-eq-icon{background:#f3f4f6;color:#9ca3af}
.meq-st-completado .meq-eq-icon{background:#ecfdf5;color:#059669;box-shadow:0 0 0 3px rgba(5,150,105,.08)}
.meq-col-actual{border-right:1px solid #f1f5f9;gap:12px;flex:1}
.meq-col-sep{padding:0;display:flex;align-items:center;justify-content:center;color:#cbd5e1}
.meq-col-next{gap:12px;flex:1}
.meq-study-block{display:flex;flex-direction:column;gap:2px;min-width:0}
.meq-study-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}
.meq-study-label.meq-sl-actual{color:#ea580c}
.meq-study-label.meq-sl-next{color:#2563eb}
.meq-study-label.meq-sl-hist{color:#7c3aed}
.meq-study-title{font-size:.86rem;font-weight:600;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}
.meq-study-meta{font-size:.76rem;color:#64748b;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.meq-study-meta svg{flex-shrink:0;color:#94a3b8}
.meq-time-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:.72rem;font-weight:600}
.meq-time-pill.meq-tp-active{background:#fff7ed;color:#c2410c}
.meq-time-pill.meq-tp-next{background:#eff6ff;color:#1d4ed8}
.meq-time-pill.meq-tp-hist{background:#f5f3ff;color:#7c3aed}
.meq-time-pill.meq-tp-done{background:#ecfdf5;color:#059669}
.meq-progress-inline{width:80px;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;flex-shrink:0}
.meq-progress-inline .meq-pf{height:100%;border-radius:3px;background:linear-gradient(90deg,#fb923c,#f97316);transition:width .6s}
.meq-progress-inline .meq-pf.meq-ph{background:linear-gradient(90deg,#4ade80,#22c55e)}
.meq-pct-label{font-size:.68rem;font-weight:700;color:#94a3b8;min-width:30px;text-align:right}
.meq-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.65rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.meq-badge-ocupado{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.meq-badge-libre{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}
.meq-badge-pendiente{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.meq-badge-inactivo{background:#f9fafb;color:#6b7280;border:1px solid #e5e7eb}
.meq-badge-completado{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}
.meq-badge-hist{background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe}
.meq-doc-tag{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;font-size:.66rem;color:#64748b;font-weight:500;font-family:monospace}
.meq-empty-cell{color:#b0b8c4;font-size:.8rem;font-style:italic}
.meq-inactivo-cell{color:#9ca3af;font-size:.8rem;display:flex;align-items:center;gap:6px}
.meq-entidad-tag{display:inline-block;padding:1px 7px;background:#f1f5f9;border-radius:5px;font-size:.66rem;color:#64748b;margin-left:3px;font-weight:600}
.meq-dur-tag{display:inline-flex;align-items:center;gap:3px;font-size:.68rem;color:#94a3b8;font-weight:500}
.meq-sin-equipo-list{display:flex;flex-direction:column;gap:10px}
.meq-sin-equipo-card{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border:1.5px solid #fbbf24;border-radius:14px;padding:14px 20px;font-size:.84rem;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:all .18s;box-shadow:0 2px 8px rgba(251,191,36,.12);animation:meqFadeIn .3s ease}
.meq-sin-equipo-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(251,191,36,.22);border-color:#f59e0b}
.meq-sinq-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.meq-sinq-icon{width:38px;height:38px;border-radius:10px;background:#fef3c7;border:1.5px solid #fbbf24;display:flex;align-items:center;justify-content:center;color:#b45309;flex-shrink:0}
.meq-sinq-info{min-width:0;flex:1}
.meq-sinq-title{font-weight:700;color:#92400e;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meq-sinq-patient{font-size:.78rem;color:#a16207;margin-top:2px;display:flex;align-items:center;gap:4px}
.meq-sinq-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.meq-sinq-estado{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.68rem;font-weight:700;text-transform:uppercase;background:#fef3c7;color:#b45309;border:1px solid #fbbf24}
.meq-sinq-time{font-size:.72rem;color:#92400e;display:flex;align-items:center;gap:3px;white-space:nowrap}
.meq-sinq-activo{border-color:#f97316;background:linear-gradient(135deg,#fff7ed,#ffedd5)}
.meq-sinq-activo .meq-sinq-estado{background:#fed7aa;color:#c2410c;border-color:#fb923c}
.meq-sinq-activo .meq-sinq-icon{border-color:#f97316;color:#c2410c;background:#ffedd5}
.meq-sinq-comp{border-color:#86efac;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}
.meq-sinq-comp .meq-sinq-estado{background:#dcfce7;color:#059669;border-color:#86efac}
.meq-sinq-comp .meq-sinq-icon{border-color:#86efac;color:#059669;background:#f0fdf4}
.meq-sinq-comp .meq-sinq-title{color:#065f46}
.meq-sinq-comp .meq-sinq-patient,.meq-sinq-comp .meq-sinq-time{color:#047857}
@keyframes meqFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.meq-prog-done{background:#dcfce7!important;border-color:#86efac!important}
.meq-prog-done .meq-pf{background:#22c55e!important}
.meq-pct-done{color:#059669!important;font-weight:700}
.meq-sin-equipo-card .meq-study-title{color:#92400e;font-size:.85rem}
.meq-sin-equipo-card .meq-study-meta{color:#a16207}
.menu-card[data-module=monitor-equipos]{--mc:#7c3aed}
/* Pulse animation for active studies */
@keyframes meqPulse{0%,100%{opacity:1}50%{opacity:.6}}
.meq-pulse-dot{width:8px;height:8px;border-radius:50%;background:#ea580c;display:inline-block;animation:meqPulse 2s ease-in-out infinite;margin-right:4px;flex-shrink:0}
/* Historical multi-study list per equipment */
.meq-hist-studies{display:flex;flex-direction:column;gap:6px;width:100%}
.meq-hist-item{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#fafbfc;border-radius:8px;border:1px solid #f1f5f9;font-size:.8rem}
.meq-hist-item .meq-study-title{font-size:.82rem}
.meq-hist-estado{display:inline-block;padding:1px 7px;border-radius:12px;font-size:.62rem;font-weight:700;text-transform:uppercase}
.meq-hist-estado.st-completado{background:#ecfdf5;color:#059669}
.meq-hist-estado.st-en-estudio{background:#fff7ed;color:#c2410c}
.meq-hist-estado.st-programado{background:#eff6ff;color:#1d4ed8}
.meq-hist-estado.st-cancelado{background:#fef2f2;color:#dc2626}
.meq-hist-estado.st-other{background:#f3f4f6;color:#6b7280}
@media(max-width:900px){.meq-row,.meq-header-row{grid-template-columns:1fr;gap:0}.meq-col{padding:10px 16px;min-height:auto;border-right:none!important}.meq-col-sep{display:none}.meq-header-row{display:none}.meq-col-equipo{border-bottom:1px solid #f1f5f9}.meq-page-body{padding:16px 12px 32px}.meq-topbar{padding:10px 16px}.meq-stats-bar{gap:8px}.meq-date-bar{flex-wrap:wrap}}

/* Electro kanban */
.electro-filtros-bar{display:flex;align-items:center;gap:12px;margin:12px 0 4px;flex-wrap:wrap}
.electro-filtro-label{font-size:.875rem;font-weight:600;color:#374151;white-space:nowrap}
.electro-filtros-bar .ms-wrap{min-width:220px;max-width:420px;flex:1}
.electro-kanban{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:8px}
@media(max-width:1100px){.electro-kanban{grid-template-columns:1fr}}
.electro-kanban-col{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;min-height:280px;max-height:min(72vh,720px);overflow:hidden}
.electro-kanban-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e2e8f0;background:#fff;border-radius:12px 12px 0 0}
.electro-kanban-col-pendientes .electro-kanban-header{border-top:3px solid #f59e0b}
.electro-kanban-col-activos .electro-kanban-header{border-top:3px solid #2563eb}
.electro-kanban-col-completados .electro-kanban-header{border-top:3px solid #16a34a}
.electro-kanban-title{font-weight:700;font-size:.9rem;color:#1e293b}
.electro-kanban-count{font-size:.75rem;font-weight:700;background:#e2e8f0;color:#475569;padding:2px 8px;border-radius:999px}
.electro-kanban-body{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}
.electro-kanban-empty{text-align:center;color:#94a3b8;font-size:.85rem;padding:24px 12px}
.electro-cita-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;cursor:pointer;transition:box-shadow .15s,border-color .15s}
.electro-cita-card:hover{box-shadow:0 4px 12px rgba(15,23,42,.08);border-color:#cbd5e1}
.electro-cita-card-done{opacity:.6}
.electro-cita-card.estado-en-estudio{border-left:4px solid #2563eb}
.electro-cita-card.estado-pausado{border-left:4px solid #7c3aed}
.electro-cita-card.estado-completado{border-left:4px solid #16a34a}
.electro-cita-card.estado-en-sala{border-left:4px solid #f59e0b}
.electro-cita-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}
.electro-cita-card-hora{font-weight:700;font-size:1rem;color:#0f172a}
.electro-cita-card-paciente{font-weight:600;font-size:.9rem;color:#1e293b;line-height:1.3}
.electro-cita-card-meta{font-size:.78rem;color:#64748b;display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:4px}
.electro-cita-card-estudio{font-size:.8rem;color:#475569;margin-top:6px}

.electro-cita-card{position:relative;padding-bottom:28px}
.electro-cita-card-fin{position:absolute;right:10px;bottom:8px;left:10px;text-align:right;font-size:.68rem;line-height:1.25;font-weight:600;color:#dc2626}

/* Agenda médica — dos bloques (activos / completados) */
.medica-agenda-split{display:flex;flex-direction:column;gap:16px;margin-top:10px}
.medica-agenda-block{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 3px rgba(15,23,42,.04),0 6px 24px rgba(15,23,42,.04)}
.medica-agenda-block-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #e8edf3;background:linear-gradient(180deg,#fafbfc 0%,#fff 100%);gap:14px}
.medica-agenda-header-activos{border-top:3px solid #2563eb}
.medica-agenda-header-completados{border-top:3px solid #16a34a}
.medica-agenda-block-head-left{display:flex;flex-direction:row;align-items:center;gap:10px;min-width:0}
.medica-agenda-block-title{font-weight:700;font-size:1.02rem;color:#0f172a;letter-spacing:-.02em}
.medica-agenda-block-count{font-size:.78rem;font-weight:700;min-width:2rem;text-align:center;padding:5px 11px;border-radius:999px;flex-shrink:0}
.medica-agenda-header-activos .medica-agenda-block-count{background:#dbeafe;color:#1d4ed8}
.medica-agenda-header-completados .medica-agenda-block-count{background:#dcfce7;color:#15803d}
.medica-agenda-block-activos .table-wrapper{max-height:min(52vh,520px);overflow:auto;background:#fff}
.medica-agenda-block-completados .table-wrapper{max-height:min(38vh,380px);overflow:auto;background:#fafbfc}
.medica-agenda-block .table-wrapper{border-radius:0 0 13px 13px}

.medica-turnos-table,#turnosTableMedica{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0;background:#fff}
.medica-agenda-block-completados .medica-turnos-table{background:#fafbfc}
.medica-turnos-table col.col-turno,#turnosTableMedica col.col-turno{width:11%}
.medica-turnos-table col.col-hora,#turnosTableMedica col.col-hora{width:6%}
.medica-turnos-table col.col-paciente,#turnosTableMedica col.col-paciente{width:15%}
.medica-turnos-table col.col-tipo,#turnosTableMedica col.col-tipo{width:12%}
.medica-turnos-table col.col-doc,#turnosTableMedica col.col-doc{width:11%}
.medica-turnos-table col.col-entidad,#turnosTableMedica col.col-entidad{width:9%}
.medica-turnos-table col.col-notas,#turnosTableMedica col.col-notas{width:15%}
.medica-turnos-table col.col-estado,#turnosTableMedica col.col-estado{width:10%}
.medica-turnos-table col.col-acciones,#turnosTableMedica col.col-acciones{width:11%}

/* Cabecera de columnas — aspecto tablero moderno */
.medica-turnos-table thead th,#turnosTableMedica thead th{
  position:sticky;top:0;z-index:2;
  padding:11px 10px 10px;
  font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#64748b;text-align:left;line-height:1.2;
  background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%);
  border-bottom:1px solid #e2e8f0;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.7);
  white-space:nowrap
}
.medica-agenda-block-completados .medica-turnos-table thead th{background:linear-gradient(180deg,#f4f6f8 0%,#eef2f6 100%)}
.medica-turnos-table thead th+th,#turnosTableMedica thead th+th{border-left:1px solid rgba(226,232,240,.65)}
.medica-turnos-table thead th:first-child,#turnosTableMedica thead th:first-child{padding-left:16px;text-align:center}
.medica-turnos-table thead th:last-child,#turnosTableMedica thead th:last-child{padding-right:16px;text-align:right}

/* Celdas del cuerpo */
.medica-turnos-table tbody td,#turnosTableMedica tbody td{
  padding:12px 10px;
  font-size:.875rem;color:#334155;
  border-bottom:1px solid #eef2f7;
  vertical-align:middle;
  transition:background-color .12s ease,color .12s ease
}
.medica-turnos-table tbody td:first-child,#turnosTableMedica tbody td:first-child{padding-left:16px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums;color:#475569;font-size:.8125rem}
.medica-turnos-table tbody td.col-turno-cell,#turnosTableMedica tbody td.col-turno-cell{overflow:visible;white-space:normal;word-break:normal;vertical-align:middle;padding-left:12px;padding-right:10px;line-height:1.25;min-width:6.75rem}
.medica-turnos-table tbody td.col-turno-cell .badge-siguiente,.medica-turnos-table tbody td.col-turno-cell .badge-en-atencion,#turnosTableMedica tbody td.col-turno-cell .badge-siguiente,#turnosTableMedica tbody td.col-turno-cell .badge-en-atencion{display:inline-block;box-sizing:border-box;max-width:100%;white-space:normal;text-align:center;line-height:1.25;padding:5px 8px;font-size:.72rem;font-weight:700}
.medica-turnos-table tbody td:last-child,#turnosTableMedica tbody td:last-child{padding-right:16px}
.medica-turnos-table tbody td+td,#turnosTableMedica tbody td+td{border-left:1px solid rgba(241,245,249,.85)}
.medica-turnos-table tbody tr:hover:not(.skeleton-row):not(.estado-vacio),#turnosTableMedica tbody tr:hover:not(.skeleton-row):not(.estado-vacio){background:#f8fafc}
.medica-agenda-block-completados .medica-turnos-table tbody tr:hover:not(.skeleton-row):not(.estado-vacio){background:#f1f5f9}
.medica-turnos-table tbody tr.turno-selected,#turnosTableMedica tbody tr.turno-selected{background:linear-gradient(90deg,#eff6ff 0%,#f8fafc 100%);box-shadow:inset 3px 0 0 #2563eb}

.medica-turnos-table tbody tr,#turnosTableMedica tbody tr{min-height:52px}
.medica-turnos-table .col-wrap-cell,#turnosTableMedica .col-wrap-cell{overflow:hidden}
.medica-turnos-table .col-notas-cell,#turnosTableMedica .col-notas-cell{vertical-align:top}
.medica-turnos-table .turno-cell-2lines,.medica-turnos-table .turno-notas-cell,#turnosTableMedica .turno-cell-2lines,#turnosTableMedica .turno-notas-cell{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-break:break-word;line-height:1.35;max-height:2.75em}
.medica-turnos-table .turno-notas-cell,#turnosTableMedica .turno-notas-cell{font-size:.8125rem;color:#475569}
.medica-turnos-table .col-estado-cell,.medica-turnos-table .col-acciones-cell,.medica-turnos-table .td-acciones,#turnosTableMedica .col-estado-cell,#turnosTableMedica .col-acciones-cell,#turnosTableMedica .td-acciones{vertical-align:middle}
.medica-turnos-table .col-estado-cell,#turnosTableMedica .col-estado-cell{white-space:nowrap}
.medica-turnos-table .col-acciones-cell,.medica-turnos-table .td-acciones,#turnosTableMedica .col-acciones-cell,#turnosTableMedica .td-acciones{white-space:normal;overflow:hidden;max-width:100%}
.medica-turnos-table .table-actions,#turnosTableMedica .table-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;align-content:center;gap:3px 4px;max-width:100%;box-sizing:border-box;margin:0;padding:0}
.medica-turnos-table .table-actions button,.medica-turnos-table .table-actions .btn-prioridad-up,.medica-turnos-table .table-actions .btn-prioridad-down,#turnosTableMedica .table-actions button{flex:0 0 auto;min-width:0;width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;box-sizing:border-box}
.medica-turnos-table .table-actions button img,#turnosTableMedica .table-actions button img{width:14px;height:14px;object-fit:contain;vertical-align:middle}

/* Recibos / reportes — scroll horizontal y columna Acciones fija a la derecha */
#savedList .table-wrapper{
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
#tablaSavedItems{
  width:max-content;
  min-width:100%;
}
#tablaSavedItems th.col-recibo-acciones,
#tablaSavedItems td.col-recibo-acciones{
  position:sticky;
  right:0;
  z-index:2;
  min-width:10.5rem;
  white-space:nowrap;
  text-align:center;
  vertical-align:middle;
  background:#fff;
  box-shadow:-8px 0 12px -6px rgba(15,23,42,.12);
}
#tablaSavedItems thead th.col-recibo-acciones{
  z-index:4;
  background:#f8fafc;
}
#tablaSavedItems tbody tr:nth-child(even) td.col-recibo-acciones{background:#fafbfe}
#tablaSavedItems tbody tr:hover td.col-recibo-acciones{background:#e8f2f1}
#tablaSavedItems .table-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:4px;
  max-width:none;
}

/* Recibos — tabla y acciones en móvil */
@media (max-width:768px){
  #tablaSavedItems{
    min-width:0;
    width:100%;
  }
  #tablaSavedItems th:nth-child(4),
  #tablaSavedItems th:nth-child(5),
  #tablaSavedItems th:nth-child(6),
  #tablaSavedItems th:nth-child(7),
  #tablaSavedItems th:nth-child(10),
  #tablaSavedItems td:nth-child(4),
  #tablaSavedItems td:nth-child(5),
  #tablaSavedItems td:nth-child(6),
  #tablaSavedItems td:nth-child(7),
  #tablaSavedItems td:nth-child(10){
    display:none;
  }
  #tablaSavedItems th,
  #tablaSavedItems td{
    padding:10px 8px;
    font-size:.8rem;
  }
  #tablaSavedItems th.col-recibo-acciones,
  #tablaSavedItems td.col-recibo-acciones{
    min-width:7.25rem;
    padding-right:10px;
    box-shadow:-6px 0 10px -5px rgba(15,23,42,.14);
  }
  #tablaSavedItems .table-actions{
    gap:3px;
    justify-content:flex-end;
  }
  #tablaSavedItems .table-actions .btn-editar,
  #tablaSavedItems .table-actions .btn-eliminar,
  #tablaSavedItems .table-actions .btn-recibo-anular,
  #tablaSavedItems .table-actions .btn-recibo-pdf,
  #tablaSavedItems .table-actions .btn-recibo-pagar,
  #tablaSavedItems .table-actions button.btn-recibo-tipo-pago,
  #tablaSavedItems .table-actions button.btn-recibo-obs{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    min-height:28px!important;
  }
  #tablaSavedItems .table-actions .btn-recibo-pdf img,
  #tablaSavedItems .table-actions .btn-editar img,
  #tablaSavedItems .table-actions .btn-eliminar img,
  #tablaSavedItems .table-actions .btn-recibo-anular img,
  #tablaSavedItems .table-actions button.btn-recibo-obs img{
    width:14px!important;
    height:14px!important;
  }
  #tablaSavedItems .table-actions button.btn-recibo-tipo-pago svg,
  #tablaSavedItems .table-actions .btn-recibo-pagar svg{
    width:14px!important;
    height:14px!important;
  }
  #savedList .table-wrapper::before{
    content:"← Desliza para ver más →";
    display:block;
    text-align:center;
    font-size:.72rem;
    color:#5a7d78;
    padding:6px 8px 4px;
    font-weight:600;
    background:#f0f7f6;
  }
}

/* Citas BOTOX — color distintivo en agenda médica */
.medica-turnos-table tbody tr.turno-tipo-botox,
#turnosTableMedica tbody tr.turno-tipo-botox,
#turnosTableMedicaCompletados tbody tr.turno-tipo-botox{
  background:linear-gradient(90deg,#fae8ff 0%,#fdf4ff 100%);
  box-shadow:inset 3px 0 0 #c026d3;
}
.medica-turnos-table tbody tr.turno-tipo-botox:hover:not(.skeleton-row):not(.estado-vacio),
#turnosTableMedica tbody tr.turno-tipo-botox:hover:not(.skeleton-row):not(.estado-vacio),
#turnosTableMedicaCompletados tbody tr.turno-tipo-botox:hover:not(.skeleton-row):not(.estado-vacio){
  background:linear-gradient(90deg,#f5d0fe 0%,#fae8ff 100%);
}
.medica-agenda-block-completados .medica-turnos-table tbody tr.turno-tipo-botox{
  background:linear-gradient(90deg,#f3e8ff 0%,#faf5ff 100%);
}
.medica-turnos-table tbody tr.turno-tipo-botox.turno-selected,
#turnosTableMedica tbody tr.turno-tipo-botox.turno-selected{
  background:linear-gradient(90deg,#f3d4fe 0%,#eff6ff 100%);
  box-shadow:inset 3px 0 0 #a21caf;
}
