:root{--brand-900: #083344;--brand-800: #0c4a6e;--brand-700: #0e7490;--brand-600: #0891b2;--brand-500: #06b6d4;--brand-300: #7dd3fc;--brand-100: #e0f2fe;--brand-50: #f0f9ff;--ink-900: #0f172a;--ink-700: #334155;--ink-500: #56657a;--ink-400: #8391a5;--ink-300: #cbd5e1;--ink-200: #e2e8f0;--ink-100: #f1f5f9;--ink-50: #f8fafc;--surface: #ffffff;--canvas: #e3f1fb;--ok-700: #047857;--ok-100: #d1fae5;--warn-700: #b45309;--warn-100: #fef3c7;--danger-700: #b91c1c;--danger-600: #dc2626;--danger-100: #fee2e2;--info-700: #1d4ed8;--info-100: #dbeafe;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--shadow-xs: 0 4px 14px -4px rgba(8, 51, 68, .14);--shadow-sm: 0 8px 22px -6px rgba(8, 51, 68, .18);--shadow-md: 0 16px 34px -12px rgba(8, 51, 68, .3);--ring: 0 0 0 3px rgba(8, 145, 178, .28);--chart-serie: #0369a1;--chart-serie-bg: rgba(3, 105, 161, .1);--chart-contexto: #8391a5;--sidebar-width: 254px;--header-height: 62px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{font-family:var(--font);background:var(--canvas);color:var(--ink-900);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;letter-spacing:-.02em;color:var(--ink-900)}a{color:var(--brand-700);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}.page{display:flex;flex-direction:column;gap:20px;padding:22px 26px 42px;max-width:1500px;margin:0 auto;animation:rise .25s ease}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px}.page-head h1{font-size:22px;font-weight:700}.page-head p{margin:4px 0 0;color:var(--ink-500);font-size:13px}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.card{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--ink-200)}.card-head h2{font-size:15px;font-weight:600}.card-body{padding:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-weight:600;font-size:13px;cursor:pointer;transition:transform .12s ease,background .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-700);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--brand-800)}.btn-secondary{background:var(--brand-50);color:var(--brand-800);border-color:var(--brand-100)}.btn-secondary:hover:not(:disabled){background:var(--brand-100)}.btn-ghost{background:transparent;color:var(--ink-700);border-color:var(--ink-200)}.btn-ghost:hover:not(:disabled){background:var(--ink-100)}.btn-danger{background:var(--danger-600);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-700)}.btn-sm{height:31px;padding:0 11px;font-size:12px;border-radius:8px}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:600;color:var(--ink-700)}.field .hint{font-size:12px;color:var(--ink-500)}input,select,textarea{height:38px;padding:0 12px;border:1px solid var(--ink-400);border-radius:10px;background:var(--surface);font:inherit;font-size:13px;color:var(--ink-900);transition:border-color .15s ease,box-shadow .15s ease;width:100%}textarea{height:auto;min-height:84px;padding:10px 12px;resize:vertical}input:hover,select:hover,textarea:hover{border-color:var(--brand-600)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-600);box-shadow:var(--ring)}.password-field{position:relative;display:flex}.password-field input{padding-right:40px}.password-field .eye-toggle{position:absolute;top:0;right:0;height:38px;width:38px;display:grid;place-items:center;background:none;border:none;color:var(--ink-500);cursor:pointer;border-radius:0 10px 10px 0}.password-field .eye-toggle:hover{color:var(--brand-700)}.password-field .eye-toggle svg{width:18px;height:18px}input.ng-invalid.ng-touched,select.ng-invalid.ng-touched,textarea.ng-invalid.ng-touched{border-color:var(--danger-600)}input[type=checkbox]{width:17px;height:17px;accent-color:var(--brand-700)}.error-text{font-size:12px;color:var(--danger-700);font-weight:500}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg)}table.data{width:100%;border-collapse:collapse;font-size:13px;min-width:620px}table.data thead th{text-align:left;padding:11px 14px;background:var(--brand-50);color:var(--brand-800);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid var(--ink-200)}table.data thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.data thead th.sortable:hover{color:var(--brand-600)}table.data tbody td{padding:12px 14px;border-bottom:1px solid var(--ink-100);vertical-align:middle}table.data tbody tr:hover{background:var(--brand-50)}table.data tbody tr:last-child td{border-bottom:none}.num{text-align:right;font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.muted{color:var(--ink-500)}.strong{font-weight:600}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge-neutral{background:var(--ink-100);color:var(--ink-700)}.badge-info{background:var(--info-100);color:var(--info-700)}.badge-brand{background:var(--brand-100);color:var(--brand-800)}.badge-ok{background:var(--ok-100);color:var(--ok-700)}.badge-warn{background:var(--warn-100);color:var(--warn-700)}.badge-danger{background:var(--danger-100);color:var(--danger-700)}.state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;text-align:center;color:var(--ink-500)}.state .state-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--brand-50);color:var(--brand-700)}.state .state-icon-error{background:var(--danger-100);color:var(--danger-700)}.state h3{font-size:15px;color:var(--ink-700)}.state p{margin:0;font-size:13px;max-width:420px}.skeleton{background:linear-gradient(90deg,var(--ink-100) 25%,var(--ink-200) 37%,var(--ink-100) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite;border-radius:8px;height:14px}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--brand-100);border-top-color:var(--brand-700);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-stack{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:10px;z-index:110}.toast{display:flex;align-items:flex-start;gap:10px;min-width:270px;max-width:380px;padding:12px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--ink-200);border-left:4px solid var(--brand-600);box-shadow:var(--shadow-md);animation:slide-in .2s ease;cursor:pointer}.toast.ok{border-left-color:var(--ok-700)}.toast.error{border-left-color:var(--danger-600)}.toast.warn{border-left-color:var(--warn-700)}.toast strong{display:block;font-size:13px}.toast span{font-size:12.5px;color:var(--ink-500)}@keyframes slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}.modal-backdrop{position:fixed;inset:0;background:#08334473;backdrop-filter:blur(2px);display:grid;place-items:center;padding:18px;z-index:100;animation:fade .15s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{width:min(640px,100%);max-height:88vh;overflow:auto;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);animation:rise .2s ease}.modal.modal-lg{width:min(980px,100%)}.modal-head,.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px}.modal-head{border-bottom:1px solid var(--ink-200)}.modal-foot{border-top:1px solid var(--ink-200);justify-content:flex-end}.modal-body{padding:20px}.flex-1{flex:1}.text-right{text-align:right}.hidden-sm{display:initial}.spinner-sm{width:16px;height:16px;border-width:2px}.select-compact{width:auto;height:31px}.text-sm{font-size:12px}.text-md{font-size:12.5px}.text-danger{color:var(--danger-700)}.text-ok{color:var(--ok-700)}.text-brand{color:var(--brand-700)}.m-0{margin:0}.mb-xs{margin-bottom:4px}.mt-xs{margin-top:4px}.mt-sm{margin-top:6px}.mt-md{margin-top:12px}.ml-xs{margin-left:4px}.ml-sm{margin-left:6px}.gap-xs{gap:6px}.gap-sm{gap:8px}.gap-md{gap:14px}.gap-xl{gap:34px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.justify-between{justify-content:space-between}.items-end{align-items:flex-end}.self-start{align-self:flex-start}.span-all{grid-column:1/-1}.skip-link{position:fixed;top:10px;left:10px;z-index:200;padding:10px 16px;border-radius:var(--radius-sm);background:var(--brand-900);color:#fff;font-weight:600;transform:translateY(-160%);transition:transform .15s ease}.skip-link:focus-visible{transform:none;text-decoration:none}@media(max-width:720px){.page{padding:16px 14px 36px}.hidden-sm{display:none}}@media(pointer:coarse){.btn,input:not([type=checkbox]):not([type=radio]),select{min-height:44px}.btn-sm{min-height:40px}input,select,textarea{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spinner{animation-duration:1.4s!important;animation-iteration-count:infinite!important}}.pestanas{display:flex;gap:4px;padding:0 14px;border-bottom:1px solid var(--ink-200)}.pestanas button{position:relative;display:inline-flex;align-items:center;gap:8px;padding:14px 12px 12px;border:0;background:none;color:var(--ink-500);font:inherit;font-size:14px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.pestanas button:hover{color:var(--ink-900)}.pestanas button[aria-selected=true]{color:var(--brand-800);border-bottom-color:var(--brand-600)}.pestanas .conteo{min-width:22px;height:20px;padding:0 7px;display:inline-grid;place-items:center;border-radius:999px;background:var(--ink-100);color:var(--ink-700);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.pestanas button[aria-selected=true] .conteo{background:var(--brand-100);color:var(--brand-800)}
