@font-face{font-family:Nunito Sans;src:url(/fonts/nunito-sans-variable-latin.woff2) format("woff2-variations");font-weight:200 1000;font-style:normal;font-display:swap}:root{color-scheme:light dark;--header-height: 4rem;--drawer-width: 16rem;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--color-brand-primary: #0ea5e9;--color-brand-primary-hover: #0284b4;--color-brand-soft: light-dark(rgba(14, 165, 233, .1), rgba(14, 165, 233, .16));--color-accent: #59c9f2;--color-background: light-dark(#f7f9fa, #14181a);--color-surface-muted: light-dark(#f1f4f5, #1c2124);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 14px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);--color-primary: var(--color-brand-primary);--color-primary-hover: var(--color-brand-primary-hover);--color-primary-tint: var(--color-brand-soft);--color-primary-tint-strong: light-dark(rgba(14, 165, 233, .16), rgba(14, 165, 233, .22));--color-danger: #e0554f;--color-danger-hover: #c73f3a;--color-success: #17a673;--color-warning: #e0a52c;--color-text: light-dark(#1a1d1f, #e7edf0);--color-text-muted: light-dark(#5b6469, #97a3a8);--color-border: light-dark(#e6e9eb, #223035);--color-bg: var(--color-background);--color-surface: light-dark(#ffffff, #1a2226);--color-surface-hover: var(--color-surface-muted);--shadow-card: var(--shadow-sm);--shadow-header: var(--shadow-sm);--shadow-sidebar: var(--shadow-md);--container-admin: 1280px}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;font-family:Nunito Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;overflow-x:hidden;background:var(--color-bg);color:var(--color-text)}.app-header{position:sticky;top:0;z-index:20;height:var(--header-height);display:flex;align-items:center;gap:var(--space-3);padding-inline:var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-header)}.app-header__brand{font-weight:700;color:var(--color-text)}.app-header__menu-button{appearance:none;border:none;background:transparent;font-size:1.25rem;line-height:1;padding:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text);min-width:44px;min-height:44px;cursor:pointer}.app-header__menu-button:hover,.app-header__menu-button:focus-visible{background:var(--color-surface-hover)}@media(min-width:1024px){.app-header__menu-button{display:none}}.app-header__spacer{flex:1}.app-header__user{display:flex;align-items:center;gap:var(--space-2)}.app-header__user-name{font-size:.875rem;color:var(--color-text-muted);display:none}@media(min-width:480px){.app-header__user-name{display:inline}}@media(max-width:479px){.app-header__user [data-change-password-link] span{display:none}}.app-header__logout{appearance:none;border:1px solid var(--color-border);background:transparent;border-radius:var(--radius-md);min-height:44px;padding:0 var(--space-3);color:var(--color-text);cursor:pointer}.app-header__logout:hover,.app-header__logout:focus-visible{background:var(--color-surface-hover)}body:not([data-auth-ready=true]) .app-content{display:none}.app-drawer{position:fixed;inset-block:var(--header-height) 0;inset-inline-start:0;width:var(--drawer-width);max-width:85vw;transform:translate(-100%);transition:transform .2s ease;background:var(--color-surface);border-inline-end:1px solid var(--color-border);box-shadow:var(--shadow-sidebar);overflow-y:auto;z-index:15}.app-drawer[data-open=true]{transform:translate(0)}.app-drawer__backdrop{position:fixed;inset:var(--header-height) 0 0 0;background:#0006;z-index:10;display:none}.app-drawer__backdrop[data-open=true]{display:block}.app-drawer nav ul{list-style:none;margin:0;padding:var(--space-3);display:flex;flex-direction:column;gap:.125rem}.app-drawer nav a{display:flex;align-items:center;gap:var(--space-2);min-height:44px;padding-inline:var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);text-decoration:none;font-size:.9375rem;position:relative}.app-drawer nav a i{font-size:1.25rem;line-height:1}.app-drawer nav a:hover,.app-drawer nav a:focus-visible{background:var(--color-primary-tint-strong);color:var(--color-primary)}.app-drawer nav a[aria-current=page]{background:var(--color-primary-tint);color:var(--color-primary);font-weight:600}.app-drawer nav a[aria-current=page]:before{content:"";position:absolute;inset-inline-start:0;top:15%;height:70%;width:3px;border-radius:0 3px 3px 0;background:var(--color-primary)}@media(min-width:1024px){.app-drawer{position:sticky;inset-block-start:var(--header-height);transform:none;height:calc(100vh - var(--header-height));box-shadow:none}.app-drawer__backdrop{display:none!important}}.app-shell{display:flex;min-height:100vh;min-width:0}.app-shell__body{display:flex;flex:1;min-width:0}.app-content{flex:1;min-width:0;padding:var(--space-4) var(--space-3)}.state-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center;color:var(--color-text-muted);background:var(--color-surface)}.state-panel--error{border-color:var(--color-danger);color:var(--color-danger);background:light-dark(rgba(234,84,85,.06),rgba(234,84,85,.1))}.state-panel__icon{color:var(--color-border);margin:0 auto var(--space-2);display:block}.state-panel--loading .state-panel__spinner{width:2rem;height:2rem;margin:0 auto var(--space-2);border-radius:999px;border:3px solid rgba(45,155,240,.18);border-top-color:var(--color-primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-3);background:var(--color-bg)}.auth-card{width:100%;max-width:24rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-surface);box-shadow:var(--shadow-card)}.auth-card__title{font-size:1.125rem;font-weight:700;margin:0 0 var(--space-2);color:var(--color-text)}.auth-card__subtitle{font-size:.875rem;color:var(--color-text-muted);margin:0 0 var(--space-4)}.form-field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:var(--space-3)}.form-field label{font-size:.875rem;font-weight:600;color:var(--color-text)}.form-field input,.form-field select,.form-field textarea{min-height:44px;padding:0 .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;font-family:inherit;background:var(--color-surface);color:var(--color-text)}.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d9bf038}.form-field__hint{font-size:.8125rem;color:var(--color-text-muted)}.form-field__error{color:var(--color-danger);font-size:.8125rem}.form-checkbox{display:flex;align-items:center;gap:.5rem;margin-bottom:var(--space-3);min-height:44px}.btn{appearance:none;border:none;border-radius:var(--radius-md);min-height:44px;padding:0 var(--space-3);font-size:.9375rem;font-weight:600;cursor:pointer;background:var(--color-primary);color:#fff;width:100%;transition:background-color .15s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;box-sizing:border-box}.btn:hover{background:var(--color-primary-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--secondary{background:var(--color-surface-hover);color:var(--color-text);border:1px solid var(--color-border)}.btn--secondary:hover{background:var(--color-border)}.btn--danger{background:var(--color-danger)}.btn--danger:hover{background:var(--color-danger-hover)}.btn--ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.btn--ghost:hover{color:var(--color-primary);background:var(--color-primary-tint)}.auth-card__links{margin-top:var(--space-3);display:flex;flex-direction:column;gap:.5rem;font-size:.875rem}.table-scroll{width:100%;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}table.data-table{width:100%;border-collapse:collapse;font-size:.9375rem}.data-table th{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);white-space:nowrap;font-weight:600;color:var(--color-text-muted);font-size:.8125rem;text-transform:uppercase;letter-spacing:.02em}.data-table td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table tbody tr:hover{background:var(--color-surface-hover)}.data-table__actions{display:flex;gap:.5rem;flex-wrap:wrap}.data-table__actions .btn{width:auto}.badge{display:inline-block;padding:.125rem .625rem;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;background:var(--color-surface-hover);color:var(--color-text-muted)}.badge--success{color:var(--color-success);background:#28c76f1f}.badge--warning{color:var(--color-warning);background:#ff9f431f}.badge--danger{color:var(--color-danger);background:#ea54551f}.badge--info{color:var(--color-primary);background:#2d9bf01f}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.page-header h1{font-size:1.25rem;font-weight:700;margin:0;color:var(--color-text)}.page-header .btn{width:auto}.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);padding:var(--space-4)}.banner{display:flex;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);padding:.75rem 1rem;margin-bottom:var(--space-3);font-size:.875rem}.banner--info{background:#2d9bf01a;color:var(--color-primary)}.banner--warning{background:#ff9f431a;color:var(--color-warning)}
