.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:transparent;opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors:active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:0 auto auto 0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;color:#333}form{display:contents}a{text-decoration:none;text-underline-offset:4px;color:var(--accent)}a:hover{text-decoration:underline}:root{--font-sans: sans-serif;--font-serif: "Cormorant Garamond", serif;--font-size-small: 12px;--font-size-medium: 14px;--font-size-large: 16px;--bg-form: #ffffff;--bg-fiber: #f6f9ff;--border: rgba(30, 41, 80, .1);--border-input: rgba(30, 41, 80, .15);--border-focus: rgba(26, 80, 226, .45);--text-hi: #1e293b;--text-mid: #64748b;--text-low: #94a3b8;--accent: #1a50e2;--accent-hover: #1440c4;--accent-light: #eff6ff;--accent-ring: rgba(26, 80, 226, .15);--error: #b91c1c;--error-bg: #fef2f2;--error-border: rgba(185, 28, 28, .2);--page-enter-animation: fade-up .4s .06s cubic-bezier(.22, .68, 0, 1.15) both}.app-btn{--btn-bg: var(--accent);--btn-bg-hover: var(--accent-hover);--btn-border: transparent;--btn-color: #ffffff;--btn-focus-ring: var(--accent-ring);--btn-shadow: rgba(26, 80, 226, .28);min-width:0;border:1px solid var(--btn-border);border-radius:7px;background:var(--btn-bg);color:var(--btn-color);font-family:var(--font-sans);font-size:var(--font-size-medium);font-weight:700;line-height:1;letter-spacing:.01em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;text-align:center;text-decoration:none;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,color .14s ease,transform .14s ease}.app-btn:hover:not(:disabled){background:var(--btn-bg-hover);text-decoration:none}.app-btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.app-btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--btn-focus-ring)}.app-btn:disabled{cursor:not-allowed;opacity:.58;transform:none;box-shadow:none}.app-btn app-icon{width:15px;height:15px;flex-shrink:0}.app-btn--accent{--btn-bg: var(--accent);--btn-bg-hover: var(--accent-hover);--btn-border: transparent;--btn-color: #ffffff;--btn-focus-ring: var(--accent-ring);--btn-shadow: rgba(26, 80, 226, .28)}.app-btn--error{--btn-bg: var(--error);--btn-bg-hover: #991b1b;--btn-border: transparent;--btn-color: #ffffff;--btn-focus-ring: rgba(185, 28, 28, .16);--btn-shadow: rgba(185, 28, 28, .22)}.app-btn--outline.app-btn--accent{--btn-bg: #ffffff;--btn-bg-hover: var(--accent-light);--btn-border: var(--border-input);--btn-color: var(--text-hi)}.app-btn--outline.app-btn--error{--btn-bg: #ffffff;--btn-bg-hover: var(--error-bg);--btn-border: var(--border);--btn-color: var(--text-mid)}.app-btn--outline.app-btn--accent:hover:not(:disabled){--btn-border: var(--border-focus);--btn-color: var(--accent)}.app-btn--outline.app-btn--error:hover:not(:disabled){--btn-border: var(--error-border);--btn-color: var(--error)}.app-btn--fill:hover:not(:disabled){box-shadow:0 6px 24px var(--btn-shadow)}.app-btn--small{height:34px;padding:0 .75rem;font-size:var(--font-size-small)}.app-btn--regular{height:36px;padding:0 .85rem}.app-btn--large{height:44px;padding:0 1.25rem;border-radius:8px;font-size:var(--font-size-large);gap:.6rem}.app-btn--full{width:100%;height:46px;padding:0 1.5rem;border-radius:8px;font-size:var(--font-size-large);gap:.6rem}.app-btn--large app-icon,.app-btn--full app-icon{width:17px;height:17px}.app-btn--small[aria-label]{width:34px;padding:0}.app-btn--regular[aria-label]{width:36px;padding:0}.crud-list-page{display:grid;gap:1rem}.crud-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-form)}.crud-toolbar--start{justify-content:flex-start}.crud-search{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-left:auto}.crud-search-field{position:relative;width:260px;max-width:34vw}.crud-search-icon{position:absolute;top:50%;left:.75rem;width:14px;height:14px;color:var(--text-low);transform:translateY(-50%);pointer-events:none}.crud-search-field .app-input{--input-leading-padding: 2.15rem}.crud-table{width:100%;border-collapse:collapse}.crud-table--sm{min-width:620px}.crud-table--xs{min-width:520px}.crud-table--md{min-width:720px}.crud-table th,.crud-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.crud-table th{color:var(--text-low);background:#f8fbff;font-size:var(--font-size-small);font-weight:800;letter-spacing:.1em;text-transform:uppercase}.crud-table td{color:var(--text-mid);font-size:var(--font-size-medium)}.crud-table tbody tr:last-child td{border-bottom:0}.crud-table-heading-actions{width:120px}.crud-table-actions{display:flex;align-items:center;gap:.4rem}.crud-table-name{color:var(--text-hi);font-weight:700}.crud-cell--flex{display:flex;align-items:center}.crud-cell--gap-md{gap:.7rem}.crud-cell--min-0{min-width:0}.crud-cell--right{text-align:right}.crud-col--28{width:28%}.crud-col--96{width:96px}.crud-col--120{width:120px}.crud-empty-value{color:var(--text-low)}.crud-empty-state{padding:2rem 1rem;text-align:center;color:var(--text-low)}.crud-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-enter{display:block;animation:var(--page-enter-animation)}.sidebar-backdrop{display:none}.menu-btn{display:none;width:2.5rem;height:2.5rem;align-items:center;justify-content:center;flex-direction:column;gap:.225rem;border:1px solid var(--border);border-radius:999px;background:var(--bg-fiber);color:var(--text-hi);cursor:pointer;flex-shrink:0}.menu-icon{display:block;width:1rem;height:2px;border-radius:999px;background:currentColor;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor}@media(width<1025px){.app-layout{position:relative}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:45;border:0;padding:0;background:#0f172a85;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar{width:280px;transform:translate(-100%);transition:transform .22s ease;box-shadow:18px 0 40px #0f172a42}.sidebar.sidebar-open{transform:translate(0)}.app-main{margin-left:0;width:100%}.content-header{padding:1rem 1.25rem}.menu-btn{display:inline-flex}.page-title{min-width:0}.page-title h1{font-size:1.15rem}.header-meta{display:none}.content-body{padding:1.25rem}}@media(width<700px){.crud-toolbar{align-items:stretch;flex-direction:column}.crud-search{width:100%;margin-left:0}.crud-search-field{width:100%;max-width:none}.crud-toolbar button[btn]{flex:0 0 auto}}.app-input{--input-height: 42px;--input-padding-x: .875rem;--input-padding-y: 0;--input-leading-padding: var(--input-padding-x);--input-radius: 8px;--input-font-size: var(--font-size-medium);--input-focus-ring-size: 4px;width:100%;height:var(--input-height);border:1px solid var(--border-input);border-radius:var(--input-radius);padding:var(--input-padding-y) var(--input-padding-x) var(--input-padding-y) var(--input-leading-padding);background:#fff;color:var(--text-hi);font-family:var(--font-sans);font-size:var(--input-font-size);font-weight:400;line-height:1.2;outline:none;transition:border-color .14s ease,box-shadow .14s ease}.app-input::placeholder{color:var(--text-low);font-weight:300}.app-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 var(--input-focus-ring-size) var(--accent-ring)}.app-input--small{--input-height: 36px;--input-padding-x: .75rem;--input-radius: 7px;--input-font-size: var(--font-size-small)}.app-input--regular{--input-height: 42px;--input-padding-x: .875rem;--input-radius: 8px;--input-font-size: var(--font-size-medium);--input-focus-ring-size: 3px}.app-input--large{--input-height: 44px;--input-padding-x: 1rem;--input-radius: 8px;--input-font-size: var(--font-size-large);--input-focus-ring-size: 3px}.app-input--full{--input-height: 46px;--input-padding-x: .875rem;--input-radius: 8px;--input-font-size: var(--font-size-large);--input-focus-ring-size: 3px}.field{display:flex;flex-direction:column;gap:.25rem}.field label{font-size:var(--font-size-medium);font-weight:500;color:var(--text-mid);display:flex;gap:4px}.field.required label:after{display:inline-block;content:"*";color:var(--error)}.field.invalid{--border-input: var(--error)}.field.invalid .field-error{color:var(--error);font-size:var(--font-size-small);animation:var(--page-enter-animation)}.field [disabled]{background-color:#f2f2f2;color:var(--text-mid)}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes ring-expand{0%{transform:scale(1);opacity:.5}to{transform:scale(2.8);opacity:0}}
