@import url("/web-assets/fonts/fuentes.css");@import url("/web-assets/icons/style.css");@import url("/web-assets/tokens.css");:root{color-scheme:light;--app-sidebar-width:224px;--app-header-height:80px;--mobile-nav-height:64px;--bottom-actions-height:80px}*{box-sizing:border-box}html{min-width:320px;scroll-padding-top:100px;scroll-padding-bottom:180px}body{margin:0;background:var(--ek-ground,#f8fafc);color:var(--ek-ink,#0f172a);font-family:Inter,Segoe UI,Tahoma,sans-serif;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button:disabled{cursor:not-allowed}a{color:var(--ek-plum-600,#5b3a8f);text-underline-offset:3px}img,svg{max-width:100%}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(24px,2.3vw,32px);line-height:1.2;letter-spacing:-.75px;margin-bottom:0}h1,h2{font-weight:600}h2{font-size:20px;line-height:1.3}h3{font-size:16px;font-weight:600}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid var(--ek-violet-500,#8b5cf6);outline-offset:3px}[tabindex],button,input,select,textarea{scroll-margin-top:100px;scroll-margin-bottom:180px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0;border:0}.skip-link{position:fixed;left:12px;top:12px;z-index:6000;transform:translateY(-160%);padding:12px 20px;border-radius:8px;background:var(--ek-surface,#fff);color:var(--ek-plum-600,#5b3a8f)}.skip-link:focus{transform:translateY(0)}.ph{flex-shrink:0;font-size:20px}.num,.numeric{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted,.tone-info,.tone-neutral{color:var(--ek-muted,#5d6b7e)}.tone-error{color:var(--ek-bad-700,#991b1b)}.tone-success{color:var(--ek-ok-700,#065f46)}.tone-warning{color:var(--ek-warn-700,#7c3f0a)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid transparent;border-radius:8px;font-size:14px;font-weight:500;line-height:1.35;text-align:center;text-decoration:none;transition:background-color .12s ease,border-color .12s ease}.button--primary{background:var(--ek-plum-600,#5b3a8f);color:var(--ek-on-brand,#fff);border-color:var(--ek-plum-600,#5b3a8f);font-weight:600}.button--primary:hover:not(:disabled){background:var(--ek-plum-700,#4a3474)}.button--secondary{background:var(--ek-surface,#fff);color:var(--ek-ink-2,#334155);border-color:var(--ek-line-strong,#86939f)}.button--secondary:hover:not(:disabled){background:var(--ek-ground,#f8fafc)}.button--ghost{background:transparent;color:var(--ek-plum-600,#5b3a8f)}.button--ghost:hover:not(:disabled){background:var(--ek-plum-050,#f9f6fe)}.button--danger{background:var(--ek-bad-700,#991b1b);color:var(--ek-on-brand,#fff)}.button:disabled{opacity:.58}.icon-button{width:44px;min-width:44px;padding:10px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid;border-right:2px solid transparent;border-radius:50%;vertical-align:-.15em;animation:spinner-turn .8s linear infinite;flex-shrink:0}@keyframes spinner-turn{to{transform:rotate(1turn)}}.badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.35;background:var(--ek-surface-2,#f1f5f9);color:var(--ek-ink-2,#334155)}.badge--success{background:var(--ek-ok-100,#ecfdf5);color:var(--ek-ok-700,#065f46)}.badge--warning{background:var(--ek-warn-100,#fffbeb);color:var(--ek-warn-700,#7c3f0a)}.badge--error{background:var(--ek-bad-100,#fef2f2);color:var(--ek-bad-700,#991b1b)}.badge--info{background:var(--ek-plum-100,#efe9fb);color:var(--ek-plum-700,#4a3474)}.status-message{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--ek-line,#e8edf3);border-radius:10px;background:var(--ek-surface,#fff);color:var(--ek-ink-2,#334155);padding:16px;margin-bottom:16px}.status-message>.ph{margin-top:2px}.status-message__content{flex:1 1;min-width:0;overflow-wrap:anywhere}.status-message__content strong{font-weight:600}.status-message__content>div{margin-top:4px}.status-message__content p:last-child{margin-bottom:0}.status-message--error{background:var(--ek-bad-100,#fef2f2);color:var(--ek-bad-700,#991b1b)}.status-message--success{background:var(--ek-ok-100,#ecfdf5);color:var(--ek-ok-700,#065f46)}.status-message--warning{background:var(--ek-warn-100,#fffbeb);color:var(--ek-warn-700,#7c3f0a)}.status-message__action{flex-shrink:0}.app-shell{--ek-header-bg:#fff;--ek-header-ink:#0f172a;--ek-header-ink-muted:#5d6b7e;--ek-header-border:#e8edf3;--ek-header-active:#5b3a8f;min-height:100dvh}.app-header{min-height:var(--app-header-height);padding:12px 30px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--ek-header-bg);border-bottom:1px solid var(--ek-header-border);position:sticky;top:0;z-index:1200}.brand{display:inline-flex;align-items:center;gap:8px;color:var(--ek-plum-800,#3b2a5e);font-size:25px;font-weight:600;letter-spacing:-1.1px;line-height:1;text-decoration:none;min-height:44px;flex-shrink:0}.brand__mark{width:28px;height:28px;object-fit:contain}.brand__dot{color:var(--ek-gold-500,#c98a1e)}.app-header__context{display:flex;align-items:center;justify-content:flex-end;gap:18px;min-width:0}.local-switcher{min-width:0;max-width:340px}.local-switcher__name,.local-switcher__select{min-height:44px;border:1px solid transparent;border-radius:7px;background:var(--ek-surface-2,#f1f5f9);color:var(--ek-ink,#0f172a);padding:10px 12px;font-size:14px;font-weight:500;max-width:100%}.local-switcher__select{font-size:16px;width:100%;cursor:pointer}.local-switcher__name{display:inline-flex;align-items:center;overflow-wrap:anywhere}.app-header__date{color:var(--ek-muted,#5d6b7e);font-size:13px;text-transform:capitalize}.role-menu{position:relative;flex-shrink:0}.role-menu>summary{list-style:none}.role-menu>summary::-webkit-details-marker{display:none}.role-menu__panel{position:absolute;top:calc(100% + 10px);right:0;width:260px;max-width:calc(100vw - 24px);padding:10px;background:var(--ek-surface,#fff);border:1px solid var(--ek-line,#e8edf3);border-radius:12px;box-shadow:0 12px 34px rgb(15 23 42/12%);z-index:1300}.role-menu__identity{margin:0;padding:10px;font-size:13px;color:var(--ek-muted,#5d6b7e);overflow-wrap:anywhere}.role-menu__panel>.button,.role-menu__panel>a{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:44px;padding:10px;border-radius:7px;color:var(--ek-ink-2,#334155);text-decoration:none;font-size:14px}.role-menu__panel>a:hover{background:var(--ek-ground,#f8fafc)}.app-body{display:flex;align-items:stretch;min-height:calc(100dvh - var(--app-header-height))}.app-sidebar{width:var(--app-sidebar-width);min-width:var(--app-sidebar-width);background:var(--ek-surface,#fff);border-right:1px solid var(--ek-line,#e8edf3);padding:26px 12px}.sidebar-navigation{min-width:0}.sidebar-group{margin-bottom:24px}.sidebar-group>h2{color:var(--ek-muted,#5d6b7e);font-size:10px;font-weight:400;letter-spacing:1.15px;text-transform:uppercase;margin:0 12px 10px;line-height:1.5}.sidebar-navigation ul{list-style:none;padding:0;margin:0}.sidebar-item{margin-bottom:3px}.sidebar-item__row{display:flex;align-items:stretch;border-radius:8px}.sidebar-item__row:hover{background:var(--ek-ground,#f8fafc)}.sidebar-item__row.is-active{background:var(--ek-plum-100,#efe9fb);color:var(--ek-plum-700,#4a3474)}.sidebar-link{display:flex;flex:1 1;align-items:center;min-width:0;gap:11px;min-height:44px;padding:11px 10px;color:var(--ek-ink-2,#334155);text-decoration:none;font-size:14px;line-height:1.45}.sidebar-link .ph{font-size:18px}.sidebar-link>span:last-child{overflow-wrap:anywhere}.is-active>.sidebar-link,.sidebar-link[aria-current]{color:var(--ek-plum-700,#4a3474);font-weight:600}.sidebar-expand{width:44px;min-width:44px;border:0;background:transparent;color:inherit;padding:8px;border-radius:8px}.sidebar-expand .ph{font-size:14px;display:inline-block}.sidebar-expand[aria-expanded=true] .ph{transform:rotate(180deg)}.sidebar-children{margin:3px 0 10px 18px!important;border-left:1px solid var(--ek-line,#e8edf3)}.sidebar-child{display:flex;align-items:center;min-height:44px;padding:9px 12px;color:var(--ek-muted,#5d6b7e);text-decoration:none;font-size:12px;line-height:1.4;border-radius:0 7px 7px 0}.sidebar-child.is-active,.sidebar-child:hover{background:var(--ek-plum-050,#f9f6fe);color:var(--ek-plum-700,#4a3474)}.sidebar-child.is-active{font-weight:600}.sidebar-help{padding:24px 12px 0;font-size:12px;color:var(--ek-muted,#5d6b7e)}.sidebar-help>span{display:block}.sidebar-help a{display:flex;align-items:center;gap:5px;min-height:44px;text-decoration:none;font-weight:500}.sidebar-help .ph{font-size:14px}.sidebar-state{padding:12px;color:var(--ek-muted,#5d6b7e);font-size:13px}.app-workspace{flex:1 1;min-width:0;display:flex;flex-direction:column}.app-main{flex:1 1;padding:32px;width:100%;max-width:1600px;margin:0 auto;outline:none}.app-main,.page-content{min-width:0}.mobile-navigation{display:none}.legal-footer{padding:20px 32px;color:var(--ek-muted,#5d6b7e);border-top:1px solid var(--ek-line,#e8edf3);font-size:12px;background:var(--ek-ground,#f8fafc)}.legal-footer p{margin-bottom:6px}.legal-footer nav{display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px}.legal-footer a{display:inline-flex;align-items:center;min-height:44px;color:inherit}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-heading__text{min-width:0}.eyebrow{font-size:11px;line-height:1.4;letter-spacing:1.3px;text-transform:uppercase;color:var(--ek-plum-600,#5b3a8f);font-weight:600;margin:0 0 10px}.page-description{color:var(--ek-muted,#5d6b7e);margin:10px 0 0;font-size:14px}.page-heading__actions,.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.page-heading__actions{flex-shrink:0}.card{min-width:0;background:var(--ek-surface,#fff);border:1px solid var(--ek-line,#e8edf3);border-radius:12px}.card__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;border-bottom:1px solid var(--ek-line,#e8edf3)}.card__header>div{min-width:0}.card__title{margin:0;font-size:19px}.card__description{margin:7px 0 0;font-size:13px;color:var(--ek-muted,#5d6b7e)}.card__actions{display:flex;gap:8px;flex-wrap:wrap}.card__body{padding:24px;min-width:0}.card__body>:last-child{margin-bottom:0}.card--flush .card__body{padding:0}.card+.card{margin-top:20px}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.content-columns>.card,.metrics-grid>.card{margin-top:0}.stat-card{padding:20px}.stat-card__label{color:var(--ek-muted,#5d6b7e);font-size:12px}.stat-card__value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:clamp(22px,2vw,28px);font-weight:600;line-height:1.2;margin:12px 0 8px;overflow-wrap:anywhere}.stat-card__detail{font-size:12px;line-height:1.4}.content-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;align-items:start}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{min-width:0}.field__label{display:block;margin-bottom:7px;color:var(--ek-muted,#5d6b7e);font-size:12px}.form-control{display:block;width:100%;min-width:0;min-height:44px;border:1px solid var(--ek-line-strong,#86939f);border-radius:7px;background:var(--ek-surface,#fff);color:var(--ek-ink,#0f172a);padding:10px 12px;font-size:16px;line-height:1.35}textarea.form-control{min-height:100px;resize:vertical}.form-control:disabled,.form-control[readonly]{background:var(--ek-ground,#f8fafc);color:var(--ek-muted,#5d6b7e)}.form-control[type=checkbox],.form-control[type=radio]{width:22px;min-height:22px;height:22px;accent-color:var(--ek-plum-600,#5b3a8f)}.field--error .form-control,.form-control[aria-invalid=true]{border-color:var(--ek-bad-700,#991b1b)}.field__error,.field__hint{margin-top:6px;font-size:12px;line-height:1.45}.field__hint{color:var(--ek-muted,#5d6b7e)}.field__error{color:var(--ek-bad-700,#991b1b)}.table-scroll{width:100%;overflow:auto;overscroll-behavior-inline:contain;border-radius:8px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table td,.data-table th{text-align:left;padding:13px 16px;border-bottom:1px solid var(--ek-line,#e8edf3);vertical-align:middle}.data-table th{background:var(--ek-ground,#f8fafc);color:var(--ek-muted,#5d6b7e);font-size:11px;font-weight:500}.data-table .numeric{text-align:right;white-space:nowrap}.data-table .table-empty{padding:32px 16px;text-align:center;color:var(--ek-muted,#5d6b7e)}.data-table tbody tr:last-child td{border-bottom:0}.bottom-actions{position:sticky;bottom:0;background:var(--ek-surface,#fff);border-top:1px solid var(--ek-line,#e8edf3);margin:24px -1px 0;padding:12px 16px;z-index:900}.bottom-actions__inner{display:flex;align-items:center;justify-content:flex-end;gap:8px;max-width:1180px;margin:0 auto}.dialog{width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--ek-line,#e8edf3);border-radius:14px;color:var(--ek-ink,#0f172a);background:var(--ek-surface,#fff);box-shadow:0 18px 60px rgb(15 23 42/22%);overflow:auto}.dialog::backdrop{background:rgb(15 23 42/45%)}.dialog__header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--ek-line,#e8edf3)}.dialog__header h2{margin:0}.dialog__body{padding:20px}.dialog__footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:16px 20px;border-top:1px solid var(--ek-line,#e8edf3)}.navigation-dialog{max-width:420px}.navigation-dialog .dialog__body{padding:18px 12px}.navigation-dialog .sidebar-link{font-size:15px}.navigation-dialog .sidebar-child{font-size:14px}.navigation-dialog .sidebar-help{padding-top:0}.access-state{padding:24px;border:1px solid var(--ek-line,#e8edf3);border-radius:12px;background:var(--ek-surface,#fff)}.access-state a,.access-state button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid var(--ek-line-strong,#86939f);border-radius:8px;background:var(--ek-surface,#fff);color:var(--ek-plum-600,#5b3a8f)}.standalone-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.not-found{max-width:540px;padding:32px}.not-found h1{margin-bottom:16px}.not-found>p:not(.eyebrow){color:var(--ek-muted,#5d6b7e)}@media (max-width:1120px){.app-header__date{display:none}.app-main{padding:24px}.page-heading{align-items:flex-start;flex-wrap:wrap}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-columns{grid-template-columns:1fr}}@media (max-width:760px){:root{--app-header-height:60px}body{font-size:14px}.app-header{padding:8px 12px;gap:10px}.brand{font-size:22px;gap:5px}.brand__mark{display:block;width:28px;height:28px}.app-header__context{gap:8px;flex:1 1}.local-switcher{max-width:100%;min-width:0}.local-switcher__select{padding:8px;font-size:16px}.local-switcher__name{font-size:12px;padding:8px}.app-sidebar,.role-menu{display:none}.app-body{padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom))}.app-main{padding:18px 12px 16px}.app-main:has(.bottom-actions){padding-bottom:calc(var(--bottom-actions-height) + 20px)}.page-heading{gap:12px;margin-bottom:14px}.page-heading h1{font-size:23px;line-height:1.2;letter-spacing:-.6px}.page-heading__actions{width:100%}.page-heading__actions>.button{flex:1 1}.page-description{font-size:13px;line-height:1.55}.eyebrow{font-size:10px;margin-bottom:6px}.card{border-radius:10px}.card__header{padding:12px 14px}.card__title{font-size:15px}.card__description{font-size:12px}.card__body{padding:12px 14px}.card+.card{margin-top:12px}.metrics-grid{gap:0;margin:14px 0;border:1px solid var(--ek-line,#e8edf3);border-radius:10px;background:var(--ek-surface,#fff);overflow:hidden}.metrics-grid>.stat-card{padding:10px 12px;border:0;border-radius:0;margin:0}.metrics-grid>.stat-card:nth-child(2n){border-left:1px solid var(--ek-line,#e8edf3)}.metrics-grid>.stat-card:nth-child(n+3){border-top:1px solid var(--ek-line,#e8edf3)}.stat-card__label{font-size:11px}.stat-card__value{font-size:clamp(18px,5.3vw,23px);margin:6px 0 5px;letter-spacing:-.5px}.stat-card__detail{font-size:11px}.content-columns,.form-grid{gap:12px}.field__label{margin-bottom:5px}.field__error,.field__hint{font-size:11px}.form-control{padding:10px}.status-message{padding:12px;gap:8px;flex-wrap:wrap}.status-message__action{margin-left:28px}.data-table td,.data-table th{padding:12px 10px}.mobile-navigation{position:fixed;bottom:0;inset-inline:0;display:flex;justify-content:space-around;gap:8px;min-height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));padding:6px 12px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--ek-line,#e8edf3);background:var(--ek-surface,#fff);z-index:1100}.mobile-navigation__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:48px;min-height:44px;flex:1 1;padding:3px;border:0;border-radius:6px;background:transparent;color:var(--ek-muted,#5d6b7e);font-size:10px;line-height:1.1;text-decoration:none}.mobile-navigation__item>.ph{font-size:20px}.mobile-navigation__item.is-active{color:var(--ek-plum-600,#5b3a8f);font-weight:600}.bottom-actions{position:fixed;bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));inset-inline:0;margin:0;min-height:var(--bottom-actions-height);padding:10px 12px;display:flex;align-items:center}.bottom-actions__inner{flex:1 1;gap:8px}.bottom-actions__inner>*{flex:1 1}.bottom-actions__inner>.button--primary{flex:1.6 1}.legal-footer{padding:16px 12px;font-size:11px}.legal-footer nav{gap:0 14px}.app-shell:has(.bottom-actions) .legal-footer{padding-bottom:calc(var(--bottom-actions-height) + 16px)}.dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:12px}.dialog__body,.dialog__footer,.dialog__header{padding:14px}.dialog__header h2{font-size:18px}.app-shell:has(input:focus,textarea:focus,select:focus) .mobile-navigation{display:none}.app-shell:has(input:focus,textarea:focus,select:focus) .bottom-actions{position:static;margin-top:20px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.table-frame,.table-list{min-width:0;width:100%}.table-frame .table-scroll{max-height:min(60vh,560px);scrollbar-gutter:stable;border:1px solid var(--ek-line,#e8edf3);border-radius:8px;position:relative}.table-frame table{border-collapse:separate;border-spacing:0;width:100%}.table-frame table thead th{position:sticky;top:0;z-index:2;background:var(--ek-plum-800,#3b2a5e);color:#fff;font-size:12px;font-weight:600;line-height:1.35;padding:10px 12px;border-bottom:1px solid rgb(255 255 255/20%);vertical-align:middle}.table-frame table td{height:44px;padding:8px 12px;line-height:1.4;vertical-align:middle}.table-frame table thead button{color:inherit;background:transparent;border-color:rgb(255 255 255/45%)}.table-frame table thead button:hover:not(:disabled){background:rgb(255 255 255/12%)}.table-frame table thead :is(input,select){background:#fff;color:var(--ek-ink,#0f172a)}.table-scroll-tools{margin-bottom:6px;min-width:0}.table-scroll-tools[hidden]{display:none}.table-scroll-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.table-scroll-actions>span{margin-right:auto;color:var(--ek-muted,#5d6b7e);font-size:12px}.table-scroll-actions .button{min-width:44px;padding-inline:10px}.table-scroll-top{width:100%;height:20px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain}.table-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin:10px 0;font-size:12px;color:var(--ek-muted,#5d6b7e)}.table-pagination label,.table-pagination>div{display:flex;align-items:center;gap:8px}.table-pagination select{width:auto;min-width:64px;min-height:44px;border:1px solid var(--ek-line,#e8edf3);border-radius:8px;padding:6px 10px;background:#fff;color:var(--ek-ink,#0f172a)}.table-pagination .button{font-size:12px;padding-inline:12px}.admin-grid>.card+.card,.admin-stats>.card+.card,.content-columns>.card+.card,.metrics-grid>.card+.card,.payroll-grid>.card+.card,.payroll-summary>.card+.card,.payroll-totals>.card+.card{margin-top:0}@media (max-width:600px){.table-pagination>span{order:3;flex-basis:100%}.table-frame .table-scroll{max-height:min(60vh,480px)}}@media print{.table-pagination,.table-scroll-tools{display:none}.table-frame .table-scroll{max-height:none!important;overflow:visible}.table-frame table thead th{position:static}}