@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Outfit:wght@400;600;700;800&display=swap";
:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-card:#fff;--bg-card-hover:#f1f5f9;--bg-input:#fff;--border:#00000014;--border-focus:#10b98180;--accent:#10b981;--accent-light:#34d399;--accent-dark:#059669;--accent-glow:#10b98126;--accent-texto:#047857;--accent-texto-fuerte:#065f46;--teal:#3b82f6;--teal-light:#60a5fa;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--od-cara-vacia:#eef2f7;--od-contorno:#94a3b8;--od-numero:#64748b;--od-marca:#1e293b;--od-acento:#10b981;--od-esmalte-claro:#fff;--od-esmalte-medio:#f3f6f9;--od-esmalte-sombra:#dde4ec;--gradient-brand:linear-gradient(135deg, #10b981 0%, #3b82f6 50%, #8b5cf6 100%);--gradient-card:linear-gradient(135deg, #10b9810a 0%, #3b82f605 100%);--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 4px 20px #0000000d;--shadow-lg:0 10px 30px #00000014;--shadow-accent:0 4px 12px #10b98126;--font-sans:"Inter", -apple-system, sans-serif;--font-display:"Outfit", sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--transition:.2s ease;--transition-slow:.4s ease;--grid-opacity:.04}.dark{--bg-primary:#090b0f;--bg-secondary:#0f1219;--bg-card:#141822;--bg-card-hover:#1e2433;--bg-input:#0f1219;--border:#ffffff14;--border-focus:#10b98180;--accent:#10b981;--accent-light:#34d399;--accent-dark:#059669;--accent-glow:#10b98140;--accent-texto:#34d399;--accent-texto-fuerte:#6ee7b7;--teal:#3b82f6;--teal-light:#60a5fa;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#475569;--od-cara-vacia:#1f2937;--od-contorno:#64748b;--od-numero:#94a3b8;--od-marca:#f8fafc;--od-acento:#10b981;--od-esmalte-claro:#e2e8f0;--od-esmalte-medio:#cbd5e1;--od-esmalte-sombra:#94a3b8;--gradient-card:linear-gradient(135deg, #10b98114 0%, #3b82f60a 100%);--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 20px #00000080;--shadow-lg:0 8px 40px #0009;--shadow-accent:0 4px 15px #10b98133;--grid-opacity:.15}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100dvh;line-height:1.6;transition:background-color .3s,color .3s}.grid-bg{background-image:radial-gradient(var(--text-primary) 1px, transparent 1px);opacity:var(--grid-opacity);pointer-events:none;z-index:0;background-size:24px 24px;position:fixed;inset:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-primary);font-weight:700;line-height:1.2}h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:clamp(1.5rem,3vw,2rem)}h3{font-size:clamp(1.2rem,2vw,1.5rem)}p{color:var(--text-secondary)}a{color:var(--accent-texto);transition:color var(--transition);text-decoration:none}a:hover{color:var(--accent-texto-fuerte)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--accent-dark);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.container{max-width:1280px;margin:0 auto;padding:0 1.5rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.gap-4{gap:2rem}.w-full{width:100%}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-4{margin-top:2rem}.btn{border-radius:var(--radius-md);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--gradient-brand);color:#fff;box-shadow:var(--shadow-accent)}.btn-primary:hover{color:#fff;transform:translateY(-1px);box-shadow:0 6px 20px #10b98159}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--teal);color:#fff;box-shadow:0 4px 12px #3b82f626}.btn-secondary:hover{background:var(--teal-light);color:#fff;box-shadow:0 6px 20px #3b82f64d}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:#00000026}.dark .btn-ghost:hover{border-color:#ffffff26}.btn-danger{color:var(--danger);background:#ef44441a;border:1px solid #ef444433}.btn-danger:hover{background:var(--danger);color:#fff}.btn-lg{border-radius:var(--radius-md);padding:.875rem 2rem;font-size:1rem}.btn-sm{padding:.375rem .875rem;font-size:.8rem}.btn-icon{border-radius:var(--radius-sm);padding:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition);padding:1.5rem}.card:hover{box-shadow:var(--shadow-md);border-color:#10b98133}.card-glass{-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#ffffffbf}.dark .card-glass{background:#141822a6}.input-group{flex-direction:column;gap:.375rem;display:flex}.input-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.input{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);font-family:var(--font-sans);width:100%;transition:all var(--transition);border-radius:9999px;outline:none;padding:.75rem 1.25rem;font-size:.9rem}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #10b98126}.input::placeholder{color:var(--text-muted)}.input-icon-wrap{position:relative}.input-icon-wrap .input{padding-left:2.75rem}.input-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:.875rem;transform:translateY(-50%)}.badge{letter-spacing:.03em;border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge-success{color:var(--accent-texto);background:#10b9811a;border:1px solid #10b98133}.badge-warning{color:#d97706;background:#f59e0b1a;border:1px solid #f59e0b33}.badge-danger{color:#dc2626;background:#ef44441a;border:1px solid #ef444433}.badge-info{color:#2563eb;background:#3b82f61a;border:1px solid #3b82f633}.badge-accent{color:#7c3aed;background:#8b5cf61a;border:1px solid #8b5cf633}.dark .badge-success{color:#34d399}.dark .badge-warning{color:#fbbf24}.dark .badge-danger{color:#f87171}.dark .badge-info{color:#60a5fa}.dark .badge-accent{color:#c4b5fd}.table-wrap{border-radius:var(--radius-md);border:1px solid var(--border);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}thead{background:#10b9810a}th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding:.875rem 1rem;font-size:.75rem;font-weight:700}td{color:var(--text-primary);border-bottom:1px solid var(--border);padding:.875rem 1rem}tbody tr:hover{background:#10b98105}tbody tr:last-child td{border-bottom:none}.divider{background:var(--border);height:1px;margin:1.5rem 0}.divider-text{color:var(--text-muted);align-items:center;gap:1rem;font-size:.8rem;display:flex}.divider-text:before,.divider-text:after{content:"";background:var(--border);flex:1;height:1px}.alert{border-radius:var(--radius-md);border:1px solid;padding:.875rem 1rem;font-size:.875rem}.alert-error{color:#dc2626;background:#ef444414;border-color:#ef444426}.alert-success{color:var(--accent-texto);background:#10b98114;border-color:#10b98126}.dark .alert-error{color:#fca5a5}.dark .alert-success{color:#6ee7b7}.spinner{border:2px solid #0000001a;border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}.dark .spinner{border-color:#fff #fff3 #fff3}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-up{animation:.4s both fadeUp}.animate-fade-in{animation:.3s both fadeIn}.grid-2{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:1.5rem;display:grid}@media (max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.grid-2-desktop{grid-template-columns:3fr 2fr}.grid-2>*,.grid-3>*,.grid-4>*{min-width:0}@media (max-width:900px){.grid-2-desktop{grid-template-columns:1fr}}@media (max-width:768px){.inventory-page>div:first-of-type,.patients-page>div:first-of-type,.staff-page>div:first-of-type,.dashboard-page>div:first-of-type,.appointments-page>div:first-of-type,.accounting-page>div:first-of-type,.clinic-page>div:first-of-type,.billing-page>div:first-of-type{text-align:center;flex-direction:column!important;align-items:stretch!important;gap:1rem!important}.inventory-page>div:first-of-type .btn,.patients-page>div:first-of-type .btn,.staff-page>div:first-of-type .btn,.dashboard-page>div:first-of-type .btn,.appointments-page>div:first-of-type .btn,.accounting-page>div:first-of-type .btn,.clinic-page>div:first-of-type .btn,.billing-page>div:first-of-type .btn{margin-top:.5rem;justify-content:center!important;width:100%!important}.table-wrap{-webkit-overflow-scrolling:touch;width:100%!important;max-width:100%!important;overflow-x:auto!important}.card,.card-glass{width:100%!important;max-width:100%!important;padding:1rem!important}.status-grid{grid-template-columns:1fr!important;gap:1rem!important}.main-billing-layout{flex-direction:column!important;gap:1rem!important;display:flex!important}.plans-selection-grid{grid-template-columns:1fr!important;gap:.75rem!important}.months-grid{grid-template-columns:repeat(2,1fr)!important;gap:.5rem!important}.referral-box-grid{grid-template-columns:1fr!important;gap:.75rem!important}.referral-stats-mini{text-align:center;grid-template-columns:1fr!important;gap:.5rem!important}.method-instructions-box .instructions-details-grid{grid-template-columns:1fr!important;gap:.5rem!important}}@media (max-width:1024px){.modal-backdrop{z-index:10500!important;padding-bottom:max(1rem, env(safe-area-inset-bottom))!important}.table-wrap>table{min-width:560px}.table-wrap{touch-action:pan-x pan-y}}:is(body:has(.ui-modal-overlay) .mobile-nav-wrapper,body:has(.modal-backdrop) .mobile-nav-wrapper,body:has(.od-editor) .mobile-nav-wrapper){display:none!important}
body:has(.ui-modal-overlay){overflow:hidden}html{scrollbar-gutter:stable}.ui-modal-overlay{z-index:10500;-webkit-backdrop-filter:blur(4px);overscroll-behavior:contain;background:#0206178c;justify-content:center;align-items:center;padding:1.5rem;animation:.2s both fadeIn;display:flex;position:fixed;inset:0}.ui-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:calc(100dvh - 3rem);box-shadow:var(--shadow-lg);flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) both fadeUp;display:flex;overflow:hidden}.ui-modal-sm{max-width:440px}.ui-modal-md{max-width:560px}.ui-modal-lg{max-width:680px}.ui-modal-xl{max-width:780px}.ui-modal-cabecera{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.ui-modal-titulo{font-family:var(--font-display);color:var(--text-primary);overflow-wrap:anywhere;min-width:0;margin:0;font-size:1.15rem;font-weight:700}.ui-modal-cerrar{width:34px;height:34px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:inline-flex}.ui-modal-cerrar:hover{color:var(--text-primary);background:#0000000f}.dark .ui-modal-cerrar:hover{background:#ffffff14}.ui-modal-cerrar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ui-modal-cuerpo{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:auto;min-height:0;padding:1.5rem;overflow-y:auto}.ui-modal-cuerpo::-webkit-scrollbar{width:6px}.ui-modal-cuerpo::-webkit-scrollbar-track{background:0 0}.ui-modal-cuerpo::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.ui-modal-cuerpo:hover::-webkit-scrollbar-thumb{background:var(--text-muted)}.ui-modal-acciones{z-index:1;background:var(--bg-card);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;margin:1.5rem -1.5rem -1.5rem;padding:1rem 1.5rem;display:flex;position:sticky;bottom:calc(-1.5rem - 1px)}.ui-modal-simple{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;padding:1.75rem;display:block;overflow-y:auto}.ui-modal-simple::-webkit-scrollbar{width:6px}.ui-modal-simple::-webkit-scrollbar-track{background:0 0}.ui-modal-simple::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.ui-modal-simple:hover::-webkit-scrollbar-thumb{background:var(--text-muted)}.ui-modal-pie{border-top:1px solid var(--border);background:var(--bg-card);flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}@media (max-width:640px){.ui-modal-overlay{align-items:flex-end;padding:0}.ui-modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-bottom:none;max-width:100%;max-height:92dvh;animation:.28s cubic-bezier(.16,1,.3,1) both uiModalSubir}.ui-modal-cabecera{padding:1rem 1.25rem}.ui-modal-cuerpo{padding:1.25rem}.ui-modal-simple{padding:1.25rem calc(1.25rem + env(safe-area-inset-left,0px)) calc(1.25rem + env(safe-area-inset-bottom,0px))}.ui-modal-acciones{padding:1rem 1.25rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));flex-direction:column-reverse;margin:1.25rem -1.25rem -1.25rem;bottom:calc(-1.25rem - 1px)}.ui-modal-pie{padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));flex-direction:column-reverse}.ui-modal-acciones>*,.ui-modal-pie>*{justify-content:center;width:100%}}@media (max-height:480px){.ui-modal-cabecera{padding:.75rem 1.25rem}.ui-modal-cuerpo{padding:1rem 1.25rem}.ui-modal{max-height:96dvh}}@keyframes uiModalSubir{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.ui-modal-overlay,.ui-modal{animation:none}}.ui-toast-pila{z-index:10600;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;left:1.5rem}.ui-toast{border-radius:var(--radius-md);width:min(20rem,100vw - 3rem);box-shadow:var(--shadow-lg);color:#fff;pointer-events:auto;border:1px solid #0000;align-items:center;gap:.75rem;padding:.75rem 1rem;animation:.25s both fadeUp;display:flex}.ui-toast-texto{min-width:0;color:inherit;overflow-wrap:anywhere;flex:auto;font-size:.875rem;font-weight:600;line-height:1.35}.ui-toast-icono{flex:none;display:inline-flex}.ui-toast-cerrar{border-radius:var(--radius-sm);color:inherit;opacity:.75;cursor:pointer;transition:opacity var(--transition);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:.25rem;display:inline-flex}.ui-toast-cerrar:hover{opacity:1}.ui-toast-cerrar:focus-visible{outline-offset:1px;outline:2px solid}.ui-toast-success{background:#059669}.ui-toast-error{background:#dc2626}.ui-toast-warning{background:#b45309}.ui-toast-info{background:#2563eb}@media (max-width:640px){.ui-toast-pila{left:.75rem;right:.75rem;bottom:calc(64px + .75rem + env(safe-area-inset-bottom,0px))}.ui-toast{width:100%}}@media (prefers-reduced-motion:reduce){.ui-toast{animation:none}}.ui-alerta{align-items:flex-start;gap:.75rem;display:flex}.ui-alerta-cuerpo{flex:auto;min-width:0}.ui-alerta-titulo{color:inherit;margin-bottom:.15rem;font-size:.875rem;font-weight:700;line-height:1.3}.ui-alerta-texto{color:inherit;font-size:.875rem;font-weight:500}.ui-alerta-icono{flex:none;margin-top:.1rem}.ui-alerta-cerrar{color:inherit;opacity:.7;cursor:pointer;transition:opacity var(--transition);background:0 0;border:none;flex:none;padding:0}.ui-alerta-cerrar:hover{opacity:1}.alert-warning{color:#b45309;background:#f59e0b1a;border-color:#f59e0b40}.alert-info{color:#1d4ed8;background:#3b82f61a;border-color:#3b82f640}.dark .alert-warning{color:#fcd34d}.dark .alert-info{color:#93c5fd}.card-outline{border:1px solid var(--border);border-radius:var(--radius-lg);background:0 0;padding:1.5rem}.card-flat{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:none;border:none;padding:1.5rem}.card-interactiva{cursor:pointer}.card-interactiva:hover{box-shadow:var(--shadow-md);border-color:#10b98159;transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.card-interactiva:hover{transform:none}}.input-error{border-color:var(--danger)}.input-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px #ef44442e}.input-mensaje-error{color:var(--danger);margin-top:.1rem;font-size:.75rem;font-weight:500}.dark .input-mensaje-error{color:#fca5a5}textarea.input{border-radius:var(--radius-md);line-height:1.5;font-family:var(--font-sans);resize:vertical;min-height:5rem;padding:.75rem 1rem}.input-select,select.input{cursor:pointer;padding-right:2.25rem}@media (max-width:640px){.input,textarea.input,select.input{font-size:16px}}.btn:focus-visible,.sidebar-link:focus-visible,.mobile-nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (pointer:coarse){.btn,.ui-modal-cerrar{min-height:44px}.btn-sm{min-height:38px}}
