:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#111;--color-secondary:#172a3a;--color-primary-contrast:#fff;--color-primary-soft:color-mix(in srgb, var(--color-primary) 7%, #fff);--color-primary-border:color-mix(in srgb, var(--color-primary) 22%, #fff);--color-black:#111;--color-navy:#172a3a;--color-blue:#24445c;--color-accent:#8fa7a0;--gray-50:#fafaf9;--gray-100:#f7f7f5;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111;--color-bg:#f7f7f5;--color-surface:#fff;--color-surface-alt:var(--gray-50);--color-surface-sunken:var(--gray-100);--color-border:var(--gray-200);--color-border-strong:var(--gray-300);--color-text:var(--gray-900);--color-text-soft:var(--gray-700);--color-text-muted:var(--gray-500);--color-success:#3f6b5b;--color-success-bg:#eaf2ef;--color-success-border:#cfe2db;--color-danger:#a64b4b;--color-danger-bg:#f8ecec;--color-danger-border:#e9cfcf;--color-warning:#a67c35;--color-warning-bg:#fbf3e7;--color-warning-border:#eedebe;--od-accent:var(--color-navy);--od-bg:#f1f4f6;--od-border:#d8e0e6;--oi-accent:var(--color-blue);--oi-bg:#f0f5f8;--oi-border:#d3e1e9;--radius-xs:4px;--radius-sm:6px;--radius:8px;--radius-lg:10px;--radius-full:999px;--shadow-xs:0 1px 2px #1111110a;--shadow-sm:0 1px 2px #1111110d, 0 1px 1px #11111108;--shadow-md:0 4px 10px #1111110f;--shadow-lg:0 12px 28px #1111111a;--ring:0 0 0 3px color-mix(in srgb, var(--color-primary) 14%, transparent);--ring-danger:0 0 0 3px color-mix(in srgb, var(--color-danger) 16%, transparent);--font-body:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-heading:"Sora", var(--font-body);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--transition:.16s cubic-bezier(.4, 0, .2, 1);--radius-legacy:var(--radius);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--color-bg);color:var(--color-text);margin:0;font-size:14px;line-height:1.55}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--color-text);margin:0}h1{font-size:24px;font-weight:600;line-height:1.25}h2{font-size:18px;font-weight:500;line-height:1.3}h3{font-size:15px;font-weight:500;line-height:1.35}p{margin:0}button{font-family:inherit}a{color:var(--color-primary)}::selection{background:color-mix(in srgb, var(--color-primary) 22%, transparent)}.tabular{font-variant-numeric:tabular-nums}.btn{border-radius:var(--radius-sm);font-family:var(--font-body);cursor:pointer;white-space:nowrap;transition:background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition), transform var(--transition);border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:9px 15px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:focus-visible{box-shadow:var(--ring);outline:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn svg{flex-shrink:0}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-xs)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--color-primary) 88%, #000)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-alt);border-color:var(--color-text-muted)}.btn-ghost{color:var(--color-text-soft);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-surface-sunken);color:var(--color-text)}.btn-danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger-border)}.btn-danger:hover:not(:disabled){background:var(--color-danger-bg);border-color:var(--color-danger)}.btn-danger:focus-visible{box-shadow:var(--ring-danger)}.btn-sm{gap:5px;padding:6px 11px;font-size:13px}.btn-lg{padding:12px 20px;font-size:15px}.btn-icon{width:34px;height:34px;padding:8px}.btn-block{width:100%}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:20px 22px}.card-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:16px 22px;display:flex}.card-header h2,.card-header h3{margin:0}.section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);align-items:center;gap:8px;font-size:12px;font-weight:700;display:flex}.divider{background:var(--color-border);border:0;height:1px;margin:0}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{color:var(--color-text-soft);font-size:13px;font-weight:600}.field-hint{color:var(--color-text-muted);font-size:12px}.field input,.field select,.field textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);width:100%;font-size:14px;font-family:var(--font-body);color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition), box-shadow var(--transition), background-color var(--transition);padding:10px 12px}.field input[type=color]{cursor:pointer;padding:3px}.field input[type=checkbox]{width:auto;accent-color:var(--color-primary);cursor:pointer}.field input::placeholder,.field textarea::placeholder{color:var(--color-text-muted);opacity:.75}.field input:hover:not(:focus),.field select:hover:not(:focus),.field textarea:hover:not(:focus){border-color:var(--color-text-muted)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);box-shadow:var(--ring);outline:none}.field textarea{resize:vertical;min-height:76px;line-height:1.5}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:34px}.field-inline{flex-direction:row;align-items:center;gap:9px}.field-inline label{cursor:pointer;margin:0}.form-section+.form-section{border-top:1px solid var(--color-border);margin-top:22px;padding-top:22px}.form-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.search{align-items:center;display:flex;position:relative}.search svg{color:var(--color-text-muted);pointer-events:none;position:absolute;left:13px}.search input{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);width:100%;font-size:14px;font-family:var(--font-body);color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition), box-shadow var(--transition);padding:11px 14px 11px 40px}.search input::placeholder{color:var(--color-text-muted)}.search input:focus{border-color:var(--color-primary);box-shadow:var(--ring);outline:none}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=900px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 18px;font-size:11px;font-weight:700}thead th:first-child{border-top-left-radius:var(--radius)}thead th:last-child{border-top-right-radius:var(--radius)}tbody td{border-bottom:1px solid var(--color-border);color:var(--color-text-soft);vertical-align:middle;padding:13px 18px}tbody td strong{color:var(--color-text);font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background-color var(--transition)}.table-clickable tbody tr:hover{background:var(--color-surface-alt);cursor:pointer}.table-hover tbody tr:hover{background:var(--color-surface-alt)}.cell-empty{color:var(--color-text-muted)}.table-state{text-align:center;color:var(--color-text-muted);padding:44px 20px!important}.badge{border-radius:var(--radius-full);white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.badge-admin{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary-border)}.badge-empleado{background:var(--color-surface-sunken);color:var(--color-text-soft);border-color:var(--color-border-strong)}.badge-ok{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.badge-off{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.badge-neutral{background:var(--color-surface-sunken);color:var(--color-text-soft);border-color:var(--color-border)}.badge-dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.data-item{min-width:0}.data-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:3px;font-size:11px;font-weight:600;display:block}.data-value{color:var(--color-text);overflow-wrap:anywhere;font-size:14px}.avatar{border-radius:var(--radius-sm);background:var(--color-primary-soft);width:38px;height:38px;color:var(--color-primary);border:1px solid var(--color-primary-border);font-family:var(--font-heading);letter-spacing:.01em;text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.avatar-lg{width:56px;height:56px;font-size:18px}.avatar-sm{width:30px;height:30px;font-size:11px}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:52px 24px;display:flex}.empty-state-icon{border-radius:var(--radius-full);background:var(--color-surface-sunken);width:52px;height:52px;color:var(--color-text-muted);justify-content:center;align-items:center;margin-bottom:2px;display:flex}.empty-state h3{color:var(--color-text);font-size:15px}.empty-state p{color:var(--color-text-muted);max-width:380px;font-size:14px}.error-text{color:var(--color-danger);font-size:13px}.alert{border-radius:var(--radius-sm);border:1px solid #0000;align-items:flex-start;gap:9px;padding:11px 14px;font-size:13px;font-weight:500;display:flex}.alert svg{flex-shrink:0;margin-top:1px}.alert-error{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.alert-success{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.muted{color:var(--color-text-muted)}.soft{color:var(--color-text-soft)}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#0f172a80;justify-content:center;align-items:flex-start;padding:40px 16px;animation:.16s ease-out overlay-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:560px;box-shadow:var(--shadow-lg);animation:.2s cubic-bezier(.4,0,.2,1) modal-in}.modal-wide{max-width:780px}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 16px;display:flex}.modal-header p{color:var(--color-text-muted);margin-top:3px;font-size:13px}.modal-body{padding:22px 24px}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:10px;padding:16px 24px 20px;display:flex}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(-10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.24s ease-out both fade-up}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=640px){.modal-overlay{padding:16px 12px 40px}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}}
