@font-face{font-family:Poppins;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/poppins.regular.ttf) format("truetype")}:root{--brand-cyan: #1eccdd;--brand-violet: #7c4dff;--brand-navy: #060b28;--brand-navy-2: #0e2053;--primary: #5156be;--primary-hover: #3c40a0;--primary-light: #c8c9ee;--primary-fade: #edf2ff;--primary-on: #ffffff;--info: #3596f7;--info-hover: #097df0;--info-light: #cfe5fd;--success: #05825f;--success-hover: #03513b;--success-light: #bfece0;--warning: #ffa800;--warning-hover: #cc8600;--warning-light: #ffe4ad;--danger: #ee3158;--danger-hover: #da123b;--danger-light: #fcd3dd;--fg-1: #172b4c;--fg-2: #3f4254;--fg-3: #5e6278;--fg-mute: #7e8299;--fg-fade: #b5b5c3;--fg-on-dark: #ffffff;--fg-on-dark-muted: rgba(255, 255, 255, .72);--bg: #ffffff;--bg-soft: #f3f6f9;--bg-softer: #ebedf3;--bg-surface: #ffffff;--kanban-board: #f3f6fa;--kanban-col: #eef2f6;--kanban-border: #dfe6ee;--cat-consulta: #1f9d7a;--cat-consulta-bg: #dff5ee;--cat-consulta-fg: #17654f;--cat-optometria: #6f67d8;--cat-optometria-bg: #e9e7fb;--cat-optometria-fg: #4e48a8;--cat-examen: #d59623;--cat-examen-bg: #fff0d1;--cat-examen-fg: #8a5d0a;--cat-cirugia: #d34b5b;--cat-cirugia-bg: #fde2e7;--cat-cirugia-fg: #9f2d3e;--cat-visita: #3d7ac7;--cat-visita-bg: #e3edf9;--cat-visita-fg: #2e5e99;--gray-100: #f3f6f9;--gray-200: #ebedf3;--gray-300: #e4e6ef;--gray-400: #d1d3e0;--gray-500: #b5b5c3;--gray-600: #7e8299;--gray-700: #5e6278;--gray-800: #3f4254;--gray-900: #181c32;--border: #e4e6ef;--border-strong: #d1d3e0;--border-soft: #ebedf3;--grad-primary: linear-gradient(45deg, #5156be, #3596f7);--grad-brand-mark: linear-gradient(135deg, #1eccdd 0%, #7c4dff 100%);--grad-hero-auth: linear-gradient(135deg, #03386d, #05518e);--grad-hero-body: linear-gradient(135deg, rgba(6, 11, 40, .95), rgba(14, 32, 83, .85));--font-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Rubik", "IBM Plex Sans", system-ui, sans-serif;--font-auth: "Poppins", "IBM Plex Sans", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius-xs: 4px;--radius-sm: 6px;--radius: 8px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 28px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .06);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .08);--shadow: 0 4px 12px rgba(16, 24, 40, .08);--shadow-md: 0 8px 18px rgba(16, 24, 40, .1);--shadow-focus: 0 0 0 3px rgba(81, 86, 190, .22);--shadow-hero: 0 20px 45px rgba(5, 24, 54, .25);--bg-dark: #0c1a32;--bg-dark-2: #15243e;--bg-dark-3: #112547;--fs-12: 12px;--fs-14: 14px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-30: 30px;--fw-regular: 400;--fw-medium: 500;--fw-semi: 600;--lh-tight: 1.2;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s}html,body{min-height:100%;font-family:var(--font-body);color:var(--fg-1);background:var(--bg-soft);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body.light-skin{background:var(--bg-soft)}a{color:var(--primary);transition:color var(--dur-fast) var(--ease-out)}a:hover,a:focus{color:var(--primary-hover)}:focus-visible{outline:0;box-shadow:var(--shadow-focus)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}.wrapper{background:linear-gradient(180deg,#edf2ffb3,#f3f6f900 260px),var(--bg-soft)}.main-header{border-bottom:1px solid var(--border-soft);box-shadow:var(--shadow-xs)}.main-header .navbar,.main-sidebar{background:var(--bg-surface)}.main-header .logo-box{background:linear-gradient(135deg,var(--brand-navy),var(--brand-navy-2))}.main-header .logo img{max-height:36px;object-fit:contain}.main-header .navbar .nav-link,.main-header .navbar-custom-menu>.navbar-nav>li>a{min-width:44px;min-height:44px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.main-header .navbar .nav-link:hover,.main-header .navbar-custom-menu>.navbar-nav>li>a:hover{background:var(--primary-fade);color:var(--primary)}#app-global-search .input-group{border:1px solid transparent;border-radius:var(--radius-pill);background:var(--bg-soft);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}#app-global-search .input-group:focus-within{background:var(--bg-surface);border-color:var(--primary);box-shadow:var(--shadow-focus)}#app-global-search .form-control,#app-global-search .btn{min-height:40px;border:0;background:transparent;box-shadow:none}.main-sidebar{border-right:1px solid var(--border-soft);box-shadow:var(--shadow-xs)}.sidebar-menu>li.header{margin:14px 20px 6px;padding:0;color:var(--fg-mute);font-size:10px;font-weight:700;letter-spacing:0;text-transform:uppercase}.sidebar-menu li>a{min-height:44px;display:flex;align-items:center;gap:12px;margin:2px 10px;padding:8px 12px;border-left:4px solid transparent;border-radius:var(--radius);color:var(--fg-2);font-weight:500;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.sidebar-menu li>a>i:not(.pull-right){width:24px;min-width:24px;height:24px;margin-right:0;display:inline-flex;align-items:center;justify-content:center;color:var(--fg-mute);font-size:20px;line-height:1;text-align:center;transition:color var(--dur-fast) var(--ease-out)}.sidebar-menu li>a>span:not(.pull-right-container){min-width:0;flex:1 1 auto}.sidebar-menu li>a>.pull-right-container{flex:0 0 auto;margin-left:auto}.sidebar-menu li>a>.pull-right-container>i{position:static;width:18px;height:18px;margin:0;display:inline-flex;align-items:center;justify-content:center;line-height:1}.sidebar-menu li>a:hover,.sidebar-menu li.is-active>a,.sidebar-menu li.menu-open>a{background:var(--primary-fade);border-left-color:var(--primary);color:var(--primary)}.sidebar-menu li>a:hover>i:not(.pull-right),.sidebar-menu li.is-active>a>i:not(.pull-right),.sidebar-menu li.menu-open>a>i:not(.pull-right){color:var(--primary)}.treeview-menu{padding:4px 0 8px}.treeview-menu li>a{min-height:40px;margin-left:18px;font-size:13px}.content-wrapper{background:transparent}.content,.container-full>.content{padding:22px 24px 32px}.box{overflow:visible;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);box-shadow:var(--shadow-xs)}.box-header{min-height:54px;padding:14px 18px;border-bottom:1px solid var(--border-soft)}.box-header.with-border{border-bottom-color:var(--border-soft)}.box-title,.box-header h4,.box-header .box-title{margin:0;color:var(--fg-1);font-family:var(--font-display);font-size:15px;font-weight:500;letter-spacing:0}.box-body{padding:16px 18px}.box-footer{border-top:1px solid var(--border-soft);background:var(--bg-soft);color:var(--fg-3)}.box:hover{box-shadow:var(--shadow-sm)}.btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--radius-sm);font-weight:600;letter-spacing:0;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn:hover{transform:translateY(-1px)}.btn:disabled,.btn.disabled{transform:none;cursor:not-allowed;opacity:.52}.btn-primary,.bg-primary,.btn.btn-primary{border-color:var(--primary)!important;background:var(--primary)!important;color:var(--primary-on)!important}.btn-primary:hover,.btn-primary:focus{border-color:var(--primary-hover)!important;background:var(--primary-hover)!important;color:var(--primary-on)!important}.btn-info,.bg-info{border-color:var(--info)!important;background:var(--info)!important;color:#fff!important}.btn-success,.bg-success{border-color:var(--success)!important;background:var(--success)!important;color:#fff!important}.btn-warning,.bg-warning{border-color:var(--warning)!important;background:var(--warning)!important;color:#172b4c!important}.btn-danger,.bg-danger{border-color:var(--danger)!important;background:var(--danger)!important;color:#fff!important}.btn-light,.bg-light{border-color:var(--gray-300)!important;background:var(--gray-300)!important;color:var(--fg-1)!important}.btn-primary-light,.bg-primary-light{border-color:var(--primary-light)!important;background:var(--primary-light)!important;color:var(--primary)!important}.btn-info-light,.bg-info-light{border-color:var(--info-light)!important;background:var(--info-light)!important;color:#0863be!important}.btn-outline.btn-primary,.btn-outline-primary{border-color:var(--primary)!important;background:transparent!important;color:var(--primary)!important}.btn-outline.btn-primary:hover,.btn-outline-primary:hover{background:var(--primary)!important;color:var(--primary-on)!important}.form-control,.form-select,select.form-control,textarea.form-control{min-height:44px;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-surface);color:var(--fg-1);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.form-control:focus,.form-select:focus,select.form-control:focus,textarea.form-control:focus{border-color:var(--primary);box-shadow:var(--shadow-focus)}.form-label,label{color:var(--fg-2);font-weight:600;letter-spacing:0}.badge,.stat-chip,.v2-source-badge{display:inline-flex;align-items:center;gap:4px;border-radius:var(--radius-pill);font-weight:700;letter-spacing:0;line-height:1.45}.stat-chip{padding:5px 12px;background:var(--primary-fade);color:#273c75}.table{color:var(--fg-2)}.table th{padding:10px 12px;color:var(--fg-1);font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase;border-bottom:1px solid var(--border-soft)}.table td{padding:11px 12px;border-color:var(--border-soft);vertical-align:middle}.table tbody tr{transition:background-color var(--dur-fast) var(--ease-out)}.table tbody tr:hover{background:#f8fafd}.table-responsive{border-radius:var(--radius)}.kpi-value,.kpi .value,.box h2{color:var(--fg-1);font-family:var(--font-display);font-weight:700;letter-spacing:0}.text-muted,.text-fade,.text-mute{color:var(--fg-mute)!important}.text-primary{color:var(--primary)!important}.main-footer{border-top:1px solid var(--border-soft);background:var(--bg-surface);color:var(--fg-mute);padding:6px 15px;font-size:11px;line-height:1.4}.dropdown-menu{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md)}.dropdown-item{min-height:40px;display:flex;align-items:center;gap:8px;color:var(--fg-2);font-weight:500}.dropdown-item:hover,.dropdown-item:focus{background:var(--primary-fade);color:var(--primary)}.notification-unread-badge{border:2px solid var(--bg-surface);font-size:10px}@media(min-width:768px){.sidebar-mini.sidebar-collapse .sidebar-menu>li{padding:0}}@media(max-width:991.98px){.content,.container-full>.content{padding:16px 14px 28px}.box-header,.box-body{padding-right:14px;padding-left:14px}.main-header .logo img{max-height:30px}}#auth-login-root,#auth-reset-password-root{width:100%;min-height:100vh;align-self:stretch}.auth-frame{width:100%;min-height:100vh;font-family:var(--font-auth);display:flex}.auth-inner{width:100%;display:grid;grid-template-columns:.9fr 1.1fr;background:var(--bg);container-type:inline-size;container-name:auth-box}.auth-hero{background:var(--brand-navy);background-image:radial-gradient(circle at 30% 20%,rgba(124,77,255,.5),transparent 55%),radial-gradient(circle at 80% 80%,rgba(30,204,221,.35),transparent 50%);color:#fff;padding:52px 40px;display:flex;flex-direction:column;justify-content:space-between}.auth-hero h2{font-family:var(--font-display);font-size:var(--fs-30);font-weight:var(--fw-medium);line-height:var(--lh-tight);margin:20px 0 10px;color:#fff}.auth-hero p{color:#ffffffbf;font-size:var(--fs-14);max-width:320px;margin:0}.auth-hero-quote{font-size:var(--fs-12);color:#fff9;border-top:1px solid rgba(255,255,255,.15);padding-top:16px;margin-top:16px!important;max-width:none!important}.auth-brand-row{display:flex;align-items:center;gap:10px}.auth-brand-mark{width:34px;height:34px;border-radius:10px;background:var(--grad-brand-mark);flex:none;position:relative}.auth-brand-mark:after{content:"";position:absolute;inset:9px;background:#fff;clip-path:polygon(58% 0,20% 55%,48% 55%,42% 100%,80% 45%,52% 45%)}.auth-brand-name{font-family:var(--font-display);font-weight:var(--fw-semi);font-size:var(--fs-18);color:inherit}.auth-card-wrap{display:flex;align-items:center;justify-content:center;padding:40px}.auth-card{width:100%;max-width:380px}.auth-card h1{font-family:var(--font-display);font-size:var(--fs-24);font-weight:var(--fw-medium);color:var(--fg-1);margin:0 0 4px}.auth-sub{color:var(--fg-mute);font-size:var(--fs-14);margin:0 0 24px}.auth-field{position:relative;margin-bottom:16px}.auth-field label{display:block;font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--fg-mute);margin-bottom:6px}.auth-field input{width:100%;padding:12px 40px 12px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-14);font-family:var(--font-body);color:var(--fg-1);background:#fff;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.auth-field input:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.auth-field input.auth-input-err{border-color:var(--danger)}.auth-field-icon-btn{position:absolute;right:10px;top:34px;background:none;border:none;color:var(--fg-mute);cursor:pointer;padding:4px;line-height:0}.auth-field-icon-btn:hover{color:var(--fg-2)}.auth-row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px;flex-wrap:wrap}.auth-chk{display:flex;align-items:center;gap:8px;font-size:var(--fs-12);color:var(--fg-2)}.auth-chk input{width:15px;height:15px;accent-color:var(--primary)}.auth-link-btn{background:none;border:none;padding:0;font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--primary);cursor:pointer}.auth-link-btn:hover{color:var(--primary-hover);text-decoration:underline}.auth-btn-primary{width:100%;padding:13px;border:none;border-radius:var(--radius);background:var(--grad-primary);color:#fff;font-size:var(--fs-14);font-weight:var(--fw-semi);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:filter var(--dur-fast) var(--ease-out);text-decoration:none}.auth-btn-primary:hover{filter:brightness(.94)}.auth-btn-primary:disabled{opacity:.7;cursor:default}.auth-btn-primary-link{margin-top:4px}.auth-spinner{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:auth-spin .7s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-divider{display:flex;align-items:center;gap:10px;margin:20px 0;color:var(--fg-mute);font-size:var(--fs-12)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-btn-oauth{width:100%;padding:11px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--fg-2);font-size:var(--fs-14);font-weight:var(--fw-medium);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px;text-decoration:none;transition:all var(--dur-fast) var(--ease-out)}.auth-btn-oauth:hover{border-color:var(--border-strong);background:var(--bg-soft)}.auth-alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius);font-size:var(--fs-12);margin-bottom:18px}.auth-alert-danger{background:#fdecef;color:#9f2d3e;border:1px solid #f6c2cd}.auth-alert-success{background:#e2f6ef;color:#146c50;border:1px solid #b9e8d6}.auth-alert-info,.auth-alert-warning{background:var(--primary-fade);color:var(--primary-hover);border:1px solid var(--primary-light)}.auth-footnote{text-align:center;font-size:var(--fs-12);color:var(--fg-mute);margin-top:24px;padding-top:0}.auth-footnote a{font-weight:var(--fw-medium);color:var(--primary)}.auth-back-row{text-align:center;margin-top:16px}@container auth-box (max-width: 760px){.auth-inner{grid-template-columns:1fr}.auth-hero{padding:32px 28px}.auth-card-wrap{padding:28px}}@container auth-box (max-width: 480px){.auth-hero{display:none}.auth-card-wrap{padding:18px}}