@import"https://fonts.googleapis.com/css2?family=Fraunces:wght@500&family=Inter:wght@400;500;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Fraunces:wght@400;500;600&family=Inter:wght@400;500;600&display=swap";.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%) translateY(20px);background:var(--ink);color:#fff;padding:11px 20px;border-radius:10px;font-family:Inter,sans-serif;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:50}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.loader{display:inline-block;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--teal);animation:loader-spin .7s linear infinite}.loader-sm{width:16px;height:16px;border-width:2px}.loader-md{width:26px;height:26px}.loader-lg{width:40px;height:40px;border-width:3px}.loader-fullscreen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--ink-soft);font-family:Inter,sans-serif;font-size:13px}@keyframes loader-spin{to{transform:rotate(360deg)}}.sidebar{width:230px;background:var(--surface);border-right:1px solid var(--line);padding:28px 18px;flex-shrink:0;display:flex;flex-direction:column;box-sizing:border-box}.brand{display:flex;flex-direction:column;align-items:center;margin-bottom:32px;padding:0 6px;text-align:center}.brand-mark{width:108px;aspect-ratio:1194 / 1010;overflow:hidden}.brand-mark img{width:100%;height:auto;display:block}.brand-specialties{margin:8px 0 0;font-size:9.5px;font-weight:600;color:var(--accent);letter-spacing:.01em;line-height:1.4}.brand-doctors{margin:5px 0 0;font-size:9.5px;color:var(--teal);line-height:1.4}nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:var(--ink-soft);font-size:14px;text-decoration:none;transition:background .15s ease,color .15s ease;-webkit-user-select:none;user-select:none}.nav-item:hover{background:var(--surface-alt)}.nav-item.active{background:var(--teal-soft);color:var(--teal);font-weight:500}.nav-item svg{flex-shrink:0}.sidebar-foot{margin-top:auto;padding-top:16px}.user-chip{display:flex;align-items:center;gap:10px;padding:8px 6px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--teal-soft);color:var(--teal);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}.user-chip-name{font-size:13px;font-weight:500;word-break:break-word}.user-chip-role{font-size:11px;color:var(--ink-faint)}.logout-btn{margin-top:10px;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;font-weight:500;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface-alt);color:var(--ink-soft);cursor:pointer;font-family:Inter,sans-serif;transition:background .15s ease,border-color .15s ease,color .15s ease}.logout-btn svg{flex-shrink:0}.logout-btn:hover{background:var(--coral-soft);border-color:var(--coral-soft);color:var(--coral)}@media (max-width: 860px){.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;transform:translate(-100%);transition:transform .2s ease;box-shadow:0 0 #0000}.sidebar-open{transform:translate(0);box-shadow:8px 0 30px #1b282526}}.navbar{display:none;align-items:center;gap:14px;padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.navbar-toggle{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);cursor:pointer}.navbar-title{font-family:Fraunces,serif;font-size:16px;color:var(--ink)}@media (max-width: 860px){.navbar{display:flex}}.app-footer{display:flex;justify-content:space-between;padding:14px 40px 20px;font-family:Inter,sans-serif;font-size:11.5px;color:var(--ink-faint)}@media (max-width: 860px){.app-footer{padding:14px 20px 20px}}.app-shell{display:flex;min-height:100vh}.app-content{flex:1;display:flex;flex-direction:column;min-width:0}.app-main{flex:1;padding:32px 40px;max-width:1080px;width:100%;box-sizing:border-box}.sidebar-backdrop{display:none}@media (max-width: 860px){.app-main{padding:24px 20px}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#1b282566;border:none;z-index:25;cursor:pointer}}:root{--bg: #f5f7f6;--surface: #ffffff;--surface-alt: #eef3f1;--ink: #1b2825;--ink-soft: #5b6e68;--ink-faint: #93a39d;--line: #dfe7e4;--teal: #0a264b;--teal-soft: #e7ebf1;--accent: #15939c;--coral: #c85a3c;--coral-soft: #fbeae4}.login-screen{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:radial-gradient(circle at 12% 18%,rgba(21,147,156,.16),transparent 42%),radial-gradient(circle at 86% 10%,rgba(10,38,75,.1),transparent 40%),radial-gradient(circle at 82% 88%,rgba(200,90,60,.1),transparent 46%),linear-gradient(160deg,#eef4f3 0%,var(--bg) 52%,#edf1f5 100%)}.login-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(10,38,75,.045) 1px,transparent 1.4px);background-size:24px 24px;pointer-events:none}.login-card{position:relative;z-index:1;display:grid;grid-template-columns:55% 45%;width:100%;max-width:860px;border-radius:16px;overflow:hidden;box-shadow:0 30px 70px -20px #0a264b47,0 8px 24px #0a264b14}.login-photo{min-height:500px;background:var(--surface-alt);border-radius:16px 0 0 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--ink-faint)}.login-photo-icon{color:var(--ink-faint)}.login-photo-text{font-family:Inter,sans-serif;font-size:12.5px;color:var(--ink-faint)}.login-form-col{background:var(--surface);border:1px solid var(--line);border-radius:0 16px 16px 0;padding:36px 34px 30px;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box}.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:24px}.login-logo{width:288px;max-width:100%}.login-welcome{margin:12px 0 0;font-family:Inter,sans-serif;font-size:13px;color:var(--ink-faint)}.login-logo img{width:100%;height:auto;display:block}.login-error-banner{display:none;background:var(--coral-soft);color:var(--coral);font-family:Inter,sans-serif;font-size:13.75px;padding:10px 12px;border-radius:8px;margin-bottom:14px}.login-error-banner.show{display:block}.login-form{display:flex;flex-direction:column}.login-field{display:flex;flex-direction:column;margin-bottom:16px}.login-field label{font-family:Inter,sans-serif;font-size:13.2px;color:var(--ink-soft);margin-bottom:6px}.login-field input{font-family:Inter,sans-serif;font-size:14.3px;color:var(--ink);padding:11px 12px;border-radius:8px;border:1px solid var(--line);background:#f8faf9;box-sizing:border-box;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.login-field input::placeholder{color:var(--ink-faint)}.login-field input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px #15939c24;outline:none}.login-field input.error{border-color:var(--coral)}.login-field-error{display:none;font-family:Inter,sans-serif;font-size:12.65px;color:var(--coral);margin-top:6px}.login-field-error.show{display:block}.login-submit{width:100%;margin-top:8px;padding:12px;border:none;border-radius:8px;background:linear-gradient(135deg,#0a264b,#13507e);color:#fff;font-family:Inter,sans-serif;font-size:14.3px;font-weight:500;cursor:pointer;box-shadow:0 6px 16px -6px #0a264b80;transition:background .15s ease,box-shadow .15s ease,transform .1s ease}.login-submit:hover:not(:disabled){background:linear-gradient(135deg,#0c2f5c,#15939c 130%);box-shadow:0 8px 20px -6px #15939c80}.login-submit:active:not(:disabled){transform:translateY(1px)}.login-submit:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 640px){.login-card{grid-template-columns:1fr}.login-photo{display:none}.login-form-col{border-radius:16px}}@media (max-width: 420px){.login-screen{padding:16px}.login-form-col{padding:28px 20px 24px}.login-logo{width:56px;height:56px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-family:Inter,sans-serif;text-decoration:none;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--teal)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-md{padding:9px 16px;font-size:13px}.btn-sm{padding:6px 12px;font-size:12px}.btn-primary{background:var(--teal);color:#fff;border-color:var(--teal)}.btn-primary:hover:not(:disabled){background:#186652;border-color:#186652}.btn-danger{background:var(--coral-soft);color:var(--coral);border-color:var(--coral-soft)}.btn-danger:hover:not(:disabled){border-color:var(--coral)}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover:not(:disabled){border-color:var(--line)}.btn-outline-teal{background:var(--teal-soft);color:var(--teal);border-color:var(--teal-soft);font-weight:500}.btn-outline-teal:hover:not(:disabled){background:var(--teal);border-color:var(--teal);color:#fff}.alert{padding:10px 14px;border-radius:8px;font-family:Inter,sans-serif;font-size:12.5px;line-height:1.5}.alert-info{background:var(--accent-soft);color:var(--accent)}.alert-success{background:var(--teal-soft);color:var(--teal)}.alert-warning{background:var(--amber-soft);color:var(--amber)}.alert-error{background:var(--coral-soft);color:var(--coral)}.empty-state-block{padding:48px 24px;text-align:center;color:var(--ink-faint);background:var(--surface);border:1px solid var(--line);border-radius:12px}.empty-state-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 auto 14px;border-radius:50%;background:var(--surface-alt);color:var(--ink-faint)}.empty-state-title{font-size:16px;color:var(--ink);margin-bottom:6px}.empty-state-desc{font-size:13px;margin:0 auto;max-width:360px;line-height:1.5}.empty-state-action{margin-top:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a264b73;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000;animation:modal-fade-in .15s ease}.modal-card{background:var(--surface);border-radius:14px;padding:26px 28px;max-width:420px;width:100%;box-shadow:0 20px 60px #0a264b47;animation:modal-scale-in .15s ease;max-height:calc(100vh - 40px);overflow-y:auto}.modal-card.wide{max-width:640px}.modal-icon{width:42px;height:42px;border-radius:50%;background:var(--amber-soft);color:var(--amber);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.modal-title{font-family:Fraunces,serif;font-weight:500;font-size:19px;color:var(--ink);margin:0 0 10px}.modal-body{font-size:13.5px;color:var(--ink-soft);line-height:1.6}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.page-block{display:flex;flex-direction:column;gap:24px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:6px;font-weight:600}.page-head h2{font-size:22px}.page-head p{margin:6px 0 0;color:var(--ink-soft);font-size:13px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px}.stat-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:0 1px 3px #0a264b0d}.stat-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;flex-shrink:0}.stat-card.tono-teal .stat-icon{background:var(--teal-soft);color:var(--teal)}.stat-card.tono-accent .stat-icon{background:var(--accent-soft);color:var(--accent)}.stat-card.tono-amber .stat-icon{background:var(--amber-soft);color:var(--amber)}.stat-body{min-width:0}.stat-card .label{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.stat-card .value{font-family:Fraunces,serif;font-size:26px;line-height:1.1;color:var(--ink)}.dashboard-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.dash-panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:0 1px 3px #0a264b0d}.dash-panel-head{display:flex;align-items:center;gap:10px;padding-bottom:12px;margin-bottom:6px;border-bottom:1px solid var(--line)}.dash-panel-head h3{font-size:15px;flex:1;min-width:0}.dash-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;border-radius:20px;background:var(--teal);color:#fff;font-size:12.5px;font-weight:600;flex-shrink:0}.dash-cita-list{display:flex;flex-direction:column}.dash-cita{display:flex;align-items:center;gap:14px;padding:12px 10px 12px 12px;margin:0 -10px 0 -12px;border-bottom:1px solid var(--line);border-left:3px solid var(--teal);border-radius:6px;text-decoration:none;color:inherit;cursor:pointer;transition:background .12s ease}.dash-cita:hover{background:var(--surface-alt)}.dash-cita:last-child{border-bottom:none}.dash-cita-arrow{flex-shrink:0;color:var(--ink-faint);transition:transform .12s ease,color .12s ease}.dash-cita:hover .dash-cita-arrow{transform:translate(2px);color:var(--teal)}.dash-cita.is-pendiente{border-left-color:var(--amber)}.dash-cita.is-confirmada{border-left-color:var(--teal)}.dash-cita.is-atendida{border-left-color:var(--accent)}.dash-cita.is-cancelada{border-left-color:var(--ink-faint)}.dash-cita.is-no-asistio{border-left-color:var(--coral)}.dash-cita-hora{font-family:Fraunces,serif;font-size:15px;color:var(--ink);width:44px;flex-shrink:0}.dash-cita-body{display:flex;flex-direction:column;flex:1;min-width:0}.dash-cita-nombre{font-size:13.5px;font-weight:500;color:var(--ink)}.dash-cita-nota{display:block;margin-top:3px;font-size:12px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-cita-estado{flex-shrink:0;font-size:10.5px;font-weight:600;padding:3px 10px;border-radius:20px;background:var(--surface-alt);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em}.dash-cita-estado.is-pendiente{background:var(--amber-soft);color:var(--amber)}.dash-cita-estado.is-confirmada{background:var(--teal-soft);color:var(--teal)}.dash-cita-estado.is-atendida{background:var(--accent-soft);color:var(--accent)}.dash-cita-estado.is-cancelada{background:var(--surface-alt);color:var(--ink-faint)}.dash-cita-estado.is-no-asistio{background:var(--coral-soft);color:var(--coral)}@media (max-width: 480px){.dash-cita{flex-wrap:wrap}.dash-cita-estado{order:3}.dash-cita-arrow{display:none}}.search-input{width:100%;padding:10px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-family:Inter,sans-serif;font-size:13px;color:var(--ink);box-sizing:border-box}.search-input:focus{outline:none;border-color:var(--teal)}.patient-list{display:flex;flex-direction:column;gap:8px}.patient-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.patient-row:hover{border-color:var(--accent);box-shadow:0 2px 10px #0a264b12}.patient-info{display:flex;align-items:center;gap:12px}.patient-avatar{width:36px;height:36px;border-radius:50%;background:var(--teal-soft);color:var(--teal);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.patient-name{font-size:14.5px;font-weight:600;color:var(--ink)}.patient-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin-top:5px}.patient-meta-item{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--ink-soft)}.patient-meta-item svg{color:var(--accent);flex-shrink:0}.patient-quick-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.btn-ficha{background:var(--teal-soft);color:var(--teal);border-color:var(--teal-soft);font-weight:500}.btn-ficha:hover:not(:disabled){background:var(--teal);border-color:var(--teal);color:#fff}.btn-plan{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft);font-weight:500}.btn-plan:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.form-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px 24px}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--teal);font-weight:600;margin:22px 0 14px}.section-label:first-of-type{margin-top:0}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field input,.field select{padding:9px 12px;border-radius:8px;border:1px solid var(--line);font-family:Inter,sans-serif;font-size:13px;background:var(--surface);color:var(--ink)}.field input:disabled{color:var(--ink-faint);background:var(--surface-alt)}.field input:focus,.field select:focus{outline:none;border-color:var(--teal)}.field .warn{display:none;font-size:11.5px;color:var(--coral)}.field.error input,.field.error select{border-color:var(--coral)}.field.error .warn{display:block}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;flex-wrap:wrap}.field textarea{padding:9px 12px;border-radius:8px;border:1px solid var(--line);font-family:Inter,sans-serif;font-size:13px;background:var(--surface);color:var(--ink);min-height:70px;resize:vertical}.field textarea:focus{outline:none;border-color:var(--teal)}.hm-loading{display:flex;align-items:center;gap:10px;padding:16px 2px;color:var(--ink-soft);font-size:13px}.hm-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hm-item{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--surface)}.hm-check{display:flex;align-items:center;gap:10px}.hm-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal);cursor:pointer;flex-shrink:0}.hm-check label{font-size:13px;color:var(--ink);cursor:pointer}.hm-obs{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:4px}.hm-obs-label{font-size:11px;color:var(--ink-soft)}.hm-obs input{padding:8px 10px;border-radius:6px;border:1px solid var(--accent);background:var(--accent-soft);font-family:Inter,sans-serif;font-size:13px;color:var(--ink)}.hm-obs input:focus{outline:none;border-color:var(--teal);background:var(--surface)}.hm-observaciones{margin-top:18px}@media (max-width: 560px){.field-grid,.hm-grid{grid-template-columns:1fr}}.plan-tratamiento{display:flex;flex-direction:column;gap:22px}.plan-tablas{display:flex;gap:20px;align-items:flex-start}.plan-table{flex:1;min-width:0;width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0a264b0f}.plan-table th{text-align:left;padding:11px 12px;background:var(--teal);color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.plan-table th:last-child{text-align:right}.plan-table td{padding:6px 10px;border-top:1px solid var(--line);vertical-align:middle}.plan-table tbody tr:not(.plan-subtotal-row):nth-child(2n){background:var(--surface-alt)}.plan-table tbody tr:not(.plan-subtotal-row):hover{background:var(--accent-soft)}.plan-pieza{padding-left:12px!important;font-weight:500;color:var(--ink);font-size:13px}.plan-input{width:100%;display:block;padding:6px 2px;border:none;border-bottom:1px solid var(--line);border-radius:0;background:transparent;font-family:Inter,sans-serif;font-size:13px;color:var(--ink);transition:border-color .15s ease}.plan-input:hover{border-bottom-color:var(--ink-faint)}.plan-input:focus{outline:none;border-bottom:2px solid var(--accent);padding-bottom:5px}.plan-input-tratamiento::placeholder{color:var(--ink-faint);font-style:italic}textarea.plan-input-tratamiento{resize:none;overflow:hidden;min-height:28px;line-height:1.4}.plan-input-valor{text-align:right}.plan-estado-tag{display:inline-block;margin-top:4px}.plan-subtotal-row td{background:var(--teal);color:#fff;font-weight:600;padding:12px 10px;border-top:none;white-space:nowrap}.plan-subtotal-row td:last-child{text-align:right}.plan-resumen{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}.plan-resumen-izquierda{display:flex;flex-direction:column;gap:14px;min-width:220px}.plan-descuento-field{display:flex;flex-direction:column;gap:5px}.plan-descuento-field label{font-size:13px;font-weight:600;color:var(--ink)}.plan-descuento-field input{padding:9px 12px;border-radius:8px;border:1px solid var(--line);font-family:Inter,sans-serif;font-size:13px;background:var(--surface);color:var(--ink);width:160px}.plan-descuento-field input:focus{outline:none;border-color:var(--teal)}.plan-resumen-derecha{text-align:right}.plan-total-label{font-size:13px;font-weight:600;color:var(--ink)}.plan-total-valor{font-family:Fraunces,serif;font-size:26px;font-weight:600;color:var(--ink)}.plan-acciones{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px}.plan-acciones-botones{display:flex;gap:10px;flex-wrap:wrap}.plan-finalizar-hint{margin:0;padding:10px 14px;border-radius:8px;background:var(--amber-soft);border-left:3px solid var(--amber);color:var(--amber);font-size:12.5px;line-height:1.5}.plan-estado{font-size:13px}.plan-estado-ok{color:var(--accent)}.plan-estado-pendiente{color:var(--amber)}@media (max-width: 760px){.plan-tablas{flex-direction:column}.plan-resumen{align-items:flex-start}.plan-resumen-derecha{text-align:left}}.historial-lista{display:flex;flex-direction:column;gap:8px}.historial-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.historial-card:hover{border-color:var(--accent);box-shadow:0 2px 10px #0a264b12}.historial-card-fecha{font-size:14px;font-weight:500;color:var(--ink)}.historial-card-meta{font-size:12px;color:var(--ink-soft);margin-top:3px}.historial-detalle{display:flex;flex-direction:column;gap:16px}.historial-volver{align-self:flex-start}.historial-volver svg{flex-shrink:0}.historial-detalle-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px 24px}.historial-detalle-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}.historial-detalle-fecha{font-family:Fraunces,serif;font-size:18px;color:var(--ink)}.historial-detalle-sub{font-size:13px;color:var(--ink-soft);margin-top:4px}.historial-detalle-total{text-align:right;flex-shrink:0}.historial-table{width:100%;border-collapse:collapse;font-size:13px;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0a264b0f}.historial-table th{text-align:left;padding:11px 12px;background:var(--teal);color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.historial-table td{padding:10px 12px;border-top:1px solid var(--line)}.historial-table tbody tr:not(.plan-subtotal-row):nth-child(2n){background:var(--surface-alt)}.historial-table tbody tr:not(.plan-subtotal-row):hover{background:var(--accent-soft)}.historial-table .plan-subtotal-row td:nth-child(3){text-align:right}.historial-valor{font-weight:500;color:var(--ink)}.historial-resumen{display:flex;justify-content:flex-end;gap:24px;margin-top:4px;font-size:13px;font-weight:500;color:var(--ink)}@media (max-width: 560px){.historial-detalle-head{flex-direction:column}.historial-detalle-total{text-align:left}}.endo-subtitle{color:#6b7280;font-size:.85rem;margin:.25rem 0 1rem}.endo-table-wrapper{overflow-x:auto;margin-bottom:1rem}.endo-table{border-collapse:collapse;width:100%;font-size:.85rem}.endo-table th{text-align:left;padding:.4rem .5rem;font-size:.75rem;color:#6b7280;border-bottom:1px solid #e5e7eb}.endo-table td{padding:.4rem .5rem;vertical-align:middle}.endo-table tr:not(:last-child) td{border-bottom:1px solid #f3f4f6}.endo-select{width:70px;padding:.25rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem}.endo-input-num{width:60px;padding:.25rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem;text-align:right}.endo-input-text{width:120px;padding:.25rem;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem}.endo-btn-remove{background:none;border:none;cursor:pointer;color:#9ca3af;font-size:1.1rem;padding:0 .25rem}.endo-btn-remove:hover{color:#ef4444}.endo-section{margin-top:1.25rem}.endo-checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem}.endo-obs-label{display:block;font-size:.8rem;color:#6b7280;margin-bottom:.4rem}.endo-textarea{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;resize:vertical;margin-top:.5rem;box-sizing:border-box}.tx-pendiente{display:flex;flex-direction:column;gap:16px}.tx-pendiente-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0a264b0f}.tx-pendiente-table th{text-align:left;padding:11px 12px;background:var(--teal);color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.tx-pendiente-table td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:middle}.tx-pendiente-table tbody tr:nth-child(2n){background:var(--surface-alt)}.tx-pendiente-table tbody tr:hover{background:var(--accent-soft)}.tx-pendiente-pieza,.tx-pendiente-valor{font-weight:500;color:var(--ink)}.tx-pendiente-accion{text-align:right;white-space:nowrap}@media (max-width: 640px){.tx-pendiente-table{display:block;overflow-x:auto}}.htx{display:flex;flex-direction:column;gap:16px}.htx-filtros{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:14px 16px;background:var(--surface-alt);border:1px solid var(--line);border-radius:12px}.htx-filtro{display:flex;flex-direction:column;gap:5px}.htx-filtro label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-weight:600}.htx-filtro select,.htx-filtro input{padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-family:Inter,sans-serif;font-size:13px;color:var(--ink)}.htx-filtro select{min-width:120px}.htx-filtro select:focus,.htx-filtro input:focus{outline:none;border-color:var(--teal)}.htx-limpiar{margin-bottom:1px}.htx-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0a264b0f}.htx-table th{text-align:left;padding:11px 12px;background:var(--teal);color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.htx-table td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:middle}.htx-table tbody tr:nth-child(2n){background:var(--surface-alt)}.htx-table tbody tr:hover{background:var(--accent-soft)}.htx-pieza{font-weight:500;color:var(--ink)}@media (max-width: 640px){.htx-table{display:block;overflow-x:auto}}.breadcrumb-link{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;font-family:Inter,sans-serif;font-size:12.5px;color:var(--ink-soft);cursor:pointer;width:fit-content}.breadcrumb-link:hover{color:var(--teal)}.detail-volver{align-self:flex-start}.detail-volver svg{flex-shrink:0}.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:22px}.tab{padding:9px 14px;font-size:13px;color:var(--ink-soft);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;-webkit-user-select:none;user-select:none;white-space:nowrap;font-family:Inter,sans-serif}.tab:hover{color:var(--ink)}.tab.active{color:var(--teal);border-bottom-color:var(--teal);font-weight:500}.detail-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 22px}.detail-table{width:100%;border-collapse:collapse;font-size:13px}.detail-table td{padding:10px 12px;border-top:1px solid var(--line)}.detail-table tr:first-child td{border-top:none}.detail-table td:first-child{color:var(--ink-faint);width:200px}.info-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px 26px}.info-header{display:flex;align-items:center;gap:14px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.info-avatar{width:52px;height:52px;border-radius:50%;background:var(--teal-soft);color:var(--teal);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0}.info-name{font-family:Fraunces,serif;font-size:19px;color:var(--ink)}.info-subtitle{display:flex;align-items:center;gap:8px;margin-top:7px}.info-badge{font-size:12px;font-weight:600;padding:4px 12px;border-radius:20px;background:var(--teal-soft);color:var(--teal)}.info-badge-sexo{background:var(--accent-soft);color:var(--accent)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 28px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item-full{grid-column:1 / -1}.info-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-weight:600}.info-value{font-size:14px;color:var(--ink)}@media (max-width: 560px){.info-grid{grid-template-columns:1fr}}.detail-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.hm-list{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:6px}.hm-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px;border-bottom:1px solid var(--line)}.hm-row:last-child{border-bottom:none}.hm-row-main{flex:1;min-width:0}.hm-row-name{font-size:14px;font-weight:500;color:var(--ink);padding-top:2px}.hm-row-obs{margin-top:8px;padding:10px 14px;border-radius:8px;border-left:3px solid var(--accent);background:var(--accent-soft);font-size:13px;color:var(--ink);line-height:1.55}.tag{font-size:11px;padding:3px 10px;border-radius:20px;font-weight:500;flex-shrink:0}.tag-ok{background:var(--teal-soft);color:var(--teal)}.tag-pending{background:var(--amber-soft);color:var(--amber)}.hm-observaciones-card{margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 20px}.hm-observaciones-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--teal);font-weight:600;margin-bottom:10px}.hm-observaciones-texto{font-size:14px;color:var(--ink);line-height:1.6;margin:0;white-space:pre-wrap}.hm-observaciones-vacio{font-size:13px;color:var(--ink-soft);font-style:italic;margin:0}.hm-row-edit{flex-direction:column;align-items:flex-start;gap:.5rem}.hm-label-edit{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.95rem}.hm-obs-input{width:100%;padding:.4rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-size:.875rem}.hm-obs-textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-size:.9rem;resize:vertical}.cita-modal-sub{color:var(--ink-soft);font-size:13px;margin:0 0 20px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1 / -1}.field label{font-size:12px;color:var(--ink-soft)}.field input,.field select,.field textarea{padding:9px 12px;border-radius:8px;border:1px solid var(--line);font-family:Inter,sans-serif;font-size:13px;background:var(--surface);color:var(--ink)}.field input:disabled,.field select:disabled{color:var(--ink-faint);background:var(--surface-alt)}.field textarea{resize:vertical;min-height:60px}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal)}.toggle-line{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft);margin-top:14px}.toggle-line input{width:16px;height:16px;accent-color:var(--teal)}.cita-modal-mensaje{font-size:12px;color:var(--ink-soft);margin:14px 0 0}.cita-modal-mensaje.error{color:var(--coral)}.cita-modal-mensaje.ok{color:var(--teal)}.cita-modal-mensaje.aviso{color:var(--amber)}.cita-paciente-resultados{list-style:none;margin:4px 0 0;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface);max-height:160px;overflow-y:auto}.cita-paciente-resultados li+li{margin-top:2px}.cita-paciente-resultados button{width:100%;text-align:left;padding:8px 10px;border:none;border-radius:6px;background:transparent;font-family:Inter,sans-serif;font-size:13px;color:var(--ink);cursor:pointer}.cita-paciente-resultados button:hover{background:var(--teal-soft)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;width:100%;margin-top:22px}.modal-actions.split{justify-content:space-between}.modal-actions.split .modal-actions-right{display:flex;gap:10px}@media (max-width: 560px){.field-grid{grid-template-columns:1fr}}.agenda-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.view-switch{display:flex;gap:4px;background:var(--surface-alt);border-radius:8px;padding:3px}.view-switch button{border:none;background:transparent;padding:7px 14px;border-radius:6px;font-size:12.5px;color:var(--ink-soft);cursor:pointer;font-family:Inter,sans-serif}.view-switch button.active{background:var(--surface);color:var(--teal);font-weight:500;box-shadow:0 1px 2px #0000000f}.day-nav{display:flex;align-items:center;gap:4px}.day-agenda{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px}.agenda-count{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);margin-bottom:14px}.agenda-count b{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;border-radius:20px;background:var(--teal);color:#fff;font-size:12.5px;font-weight:600}.agenda-empty{color:var(--ink-faint);font-size:13px;text-align:center;padding:32px 0}.agenda-list{display:flex;flex-direction:column;gap:8px;max-height:640px;overflow-y:auto;padding-right:4px}.agenda-hueco{display:flex;align-items:center;gap:12px;padding:2px 4px}.agenda-hueco:before,.agenda-hueco:after{content:"";flex:1;border-top:1px dashed var(--line)}.agenda-hueco-label{flex-shrink:0;padding:3px 12px;border-radius:20px;background:var(--surface-alt);border:1px solid var(--line);color:var(--ink-soft);font-size:11.5px;font-weight:600;white-space:nowrap}.cita-row{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:10px;padding:10px 14px;cursor:pointer;transition:box-shadow .12s ease,border-color .12s ease}.cita-row:hover{box-shadow:0 3px 10px #0a264b1a;border-color:var(--accent)}.cr-hora{width:68px;flex-shrink:0;text-align:center}.cr-hora .h{font-family:Fraunces,serif;font-size:16px;color:var(--ink)}.cr-hora .d{display:inline-block;margin-top:4px;padding:1px 8px;border-radius:20px;background:var(--surface-alt);color:var(--ink-soft);font-size:10.5px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.cr-sep{width:1px;align-self:stretch;background:var(--line)}.cr-info{flex:1;min-width:0}.cr-nombre{font-size:14px;font-weight:500;color:var(--ink);white-space:normal;word-break:break-word}.cr-servicio{font-size:12px;color:var(--ink-soft);margin-top:1px}.cr-nota{display:flex;align-items:flex-start;gap:6px;margin-top:5px;padding:5px 9px;border-radius:8px;background:var(--surface-alt);color:var(--ink-soft);font-size:12px;line-height:1.45}.cr-nota svg{flex-shrink:0;margin-top:2px;color:var(--ink-faint)}.cr-nota span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cr-estado{flex-shrink:0;font-size:11px;padding:3px 10px;border-radius:20px;white-space:nowrap;background:var(--teal-soft);color:var(--teal)}.week-lists{display:flex;gap:10px;overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px}.week-col{flex:1;min-width:170px;background:var(--surface-alt);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.week-col.today{background:var(--accent-soft)}.wc-head{text-align:center;padding-bottom:6px;border-bottom:1px solid var(--line);margin-bottom:2px}.wc-head .wd-name{font-size:10.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}.wc-head .wd-num{font-family:Fraunces,serif;font-size:15px;margin-top:2px}.week-col.today .wd-name,.week-col.today .wd-num{color:var(--accent)}.wc-body{display:flex;flex-direction:column;gap:5px;max-height:560px;overflow-y:auto}.wc-card{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:8px;padding:6px 8px;cursor:pointer;font-size:11.5px}.wc-card:hover{border-color:var(--accent)}.wc-card .wh{font-weight:600;font-size:11px}.wc-card .wnom{display:block;margin-top:1px;white-space:normal;word-break:break-word;line-height:1.3}.wc-empty{font-size:11px;color:var(--ink-faint);text-align:center;padding:10px 0}.month-wrap{display:flex;gap:16px;align-items:flex-start}.month-calendar{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.month-head-row{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface-alt);border-bottom:1px solid var(--line)}.month-head-cell{padding:8px;text-align:center;font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-cell{min-height:82px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;display:flex;flex-direction:column;gap:5px;box-sizing:border-box;cursor:pointer}.month-cell:hover{background:var(--surface-alt)}.month-cell.selected{background:var(--accent-soft)}.month-cell:nth-child(7n){border-right:none}.month-cell.outside{background:var(--surface-alt);color:var(--ink-faint)}.month-daynum{font-family:Fraunces,serif;font-size:12.5px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.month-cell.today .month-daynum{background:var(--teal);color:#fff}.resumen-badge{display:flex;align-items:center;gap:6px}.resumen-num{font-size:15px;font-weight:600;font-family:Fraunces,serif}.resumen-dots{display:flex;gap:3px}.resumen-dots .rd{width:6px;height:6px;border-radius:50%;background:var(--teal)}.side-panel{width:280px;flex-shrink:0;background:var(--surface-alt);border-radius:12px;padding:14px;position:sticky;top:0}.sp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:2px}.sp-fecha{font-family:Fraunces,serif;font-size:15px}.sp-count{font-size:11.5px;color:var(--ink-soft);margin-bottom:10px}.sp-list{display:flex;flex-direction:column;gap:6px;max-height:460px;overflow-y:auto}.sp-card{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:8px;padding:7px 9px;font-size:12px;cursor:pointer}.sp-card:hover{border-color:var(--accent)}.sp-card b{display:block;font-size:11.5px;margin-top:1px;word-break:break-word}.sp-empty{font-size:12px;color:var(--ink-faint)}@media (max-width: 860px){.month-wrap{flex-direction:column}.side-panel{width:100%;position:static}}.cita-row.pending,.wc-card.pending,.sp-card.pending{border-left-color:var(--amber)}.cita-row.cancelada,.wc-card.cancelada,.sp-card.cancelada{border-left-color:var(--ink-faint);opacity:.7}.cita-row.cancelada .cr-nombre,.wc-card.cancelada .wnom,.sp-card.cancelada b{text-decoration:line-through}.cita-row.atendida,.wc-card.atendida,.sp-card.atendida{border-left-color:var(--accent)}.cita-row.no-asistio,.wc-card.no-asistio,.sp-card.no-asistio{border-left-color:var(--coral);opacity:.7}.cita-row.no-asistio .cr-nombre,.wc-card.no-asistio .wnom,.sp-card.no-asistio b{text-decoration:line-through}.cr-estado.pending{background:var(--amber-soft);color:var(--amber)}.cr-estado.cancelada{background:var(--surface-alt);color:var(--ink-faint)}.cr-estado.atendida{background:var(--accent-soft);color:var(--accent)}.cr-estado.no-asistio{background:var(--coral-soft);color:var(--coral)}.resumen-dots .rd.pending{background:var(--amber)}.resumen-dots .rd.cancelada{background:var(--ink-faint)}.resumen-dots .rd.atendida{background:var(--accent)}.resumen-dots .rd.no-asistio{background:var(--coral)}.users-table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow-x:auto}.users-table{width:100%;border-collapse:collapse;font-size:13px}.users-table th,.users-table td{padding:12px 16px;text-align:left;white-space:nowrap}.users-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);border-bottom:1px solid var(--line)}.users-table tbody tr:not(:last-child) td{border-bottom:1px solid var(--line)}.users-table-nombre{font-weight:600;color:var(--ink)}.users-table-acciones{display:flex;gap:8px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600}.badge-activo{background:var(--teal-soft);color:var(--teal)}.badge-inactivo{background:var(--coral-soft);color:var(--coral)}.badge-admin{background:var(--accent-soft);color:var(--accent)}.badge-neutro{background:var(--surface-alt);color:var(--ink-soft)}.users-form{display:flex;flex-direction:column;gap:14px}.users-form .field{display:flex;flex-direction:column;gap:5px}.users-form .field label{font-size:12px;color:var(--ink-soft)}.users-form .field input,.users-form .field select{padding:9px 12px;border-radius:8px;border:1px solid var(--line);font-family:Inter,sans-serif;font-size:13px;background:var(--surface);color:var(--ink)}.users-form .field input:focus,.users-form .field select:focus{outline:none;border-color:var(--teal)}.users-form-checkbox{display:flex;align-items:center;gap:10px}.users-form-checkbox input{width:18px;height:18px;accent-color:var(--teal);cursor:pointer;flex-shrink:0}.users-form-checkbox label{font-size:13px;color:var(--ink);cursor:pointer}@media (max-width: 640px){.users-table th,.users-table td{white-space:normal}}:root{--bg: #f5f7f6;--surface: #ffffff;--surface-alt: #eef3f1;--ink: #1b2825;--ink-soft: #5b6e68;--ink-faint: #93a39d;--line: #dfe7e4;--teal: #0a264b;--teal-soft: #e7ebf1;--accent: #15939c;--accent-soft: #e1f2f3;--coral: #c85a3c;--coral-soft: #fbeae4;--amber: #b4791a;--amber-soft: #fbf0dd;--radius: 10px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,sans-serif;font-size:14px}h1,h2,h3{font-family:Fraunces,serif;font-weight:500;margin:0}button,input,select,textarea{font-family:inherit}
