@font-face{font-family:Raleway;src:url("./media/Raleway-VariableFont_wght-RCX6DZKC.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url("./media/Inter-VariableFont_opsz,wght-ZQT46P7R.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--primary-color: #1000ee;--primary-color-end: #7f14b5;--primary-hover: color-mix(in srgb, var(--primary-color) 85%, black);--primary-gradient: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-color-end) 68%);--font-family: "Raleway", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-9: 40px;--space-10: 48px;--font-size-caption: .75rem;--font-size-body-sm: .875rem;--font-size-base: .875rem;--font-size-body: 1rem;--font-size-title-sm: 1.125rem;--font-size-title: 1.5rem;--font-size-title-lg: 2rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-strong: 700;--sidebar-width: 15rem;--sidebar-collapsed-width: 5rem;--sidebar-mobile-width: min(86vw, 20rem);--header-height: 4rem;--border-radius: 14px;--border-radius-sm: 8px;--border-radius-lg: 20px;--border-radius-pill: 999px;--content-padding: 1rem;--page-max-width: 90rem;--bg-primary: #f5f6fb;--bg-secondary: #eef0f8;--content-bg: #f5f6fb;--card-bg: #ffffff;--sidebar-bg: #ffffff;--header-bg: #ffffff;--hover-bg: #f3f4f6;--active-bg: color-mix(in srgb, var(--primary-color) 8%, transparent);--surface-raised: #ffffff;--surface-soft: #f1f2f9;--surface-soft-hover: #e7e9f5;--surface-gradient-soft-top: color-mix(in srgb, var(--primary-color) 10%, var(--card-bg));--surface-gradient-soft-end: var(--card-bg);--surface-gradient-strong-top: color-mix(in srgb, var(--primary-color) 18%, var(--card-bg));--surface-gradient-strong-mid: color-mix(in srgb, var(--primary-color) 10%, var(--card-bg));--surface-shadow: rgba(15, 23, 42, .08);--border-color: #e5e7eb;--text-primary: #111827;--text-secondary: #6b7280;--text-caption: #9ca3af;--text-tertiary: var(--text-caption);--text-on-primary: #ffffff;--text-error: #dc2626;--status-success-bg: #dcfce7;--status-success-text: #166534;--status-warning-bg: #fef3c7;--status-warning-text: #92400e;--status-danger-bg: #fee2e2;--status-danger-text: #991b1b;--status-info-bg: #dbeafe;--status-info-text: #1e40af;--status-neutral-bg: #f3f4f6;--status-neutral-text: #374151}:root.dark-mode{--bg-primary: #0f1117;--bg-secondary: #14161f;--content-bg: #0f1117;--card-bg: #171a23;--sidebar-bg: #14161f;--header-bg: #14161f;--hover-bg: #1f2230;--active-bg: color-mix(in srgb, var(--primary-color) 20%, transparent);--surface-raised: #1c1f2a;--surface-soft: #20232f;--surface-soft-hover: #272b3a;--surface-gradient-soft-top: color-mix(in srgb, var(--primary-color) 14%, var(--bg-primary));--surface-gradient-soft-end: color-mix(in srgb, var(--card-bg) 94%, var(--bg-primary));--surface-gradient-strong-top: color-mix(in srgb, var(--primary-color) 26%, var(--bg-primary));--surface-gradient-strong-mid: color-mix(in srgb, var(--primary-color) 16%, var(--bg-secondary));--surface-shadow: rgba(2, 6, 23, .34);--border-color: #2a2d3a;--text-primary: #f3f4f6;--text-secondary: #a1a5b3;--text-caption: #71758a}*{box-sizing:border-box}html,body{height:100%}body.body--nav-open{overflow:hidden}body{margin:0;font-family:var(--font-family);font-weight:var(--font-weight-regular);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-strong);line-height:1.2;color:var(--text-primary)}p{margin:0;color:var(--text-secondary)}a{color:var(--primary-color);text-decoration:none}button{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--text-caption)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--border-radius-pill);padding:10px 20px;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-strong);text-decoration:none;border:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.btn--primary{background:var(--primary-gradient);color:var(--text-on-primary);box-shadow:0 12px 30px #1000ee2e}.btn--primary:hover:not(:disabled){transform:translateY(-1px)}.btn--primary:disabled{opacity:.65;cursor:progress}.btn--ghost{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.btn--ghost:hover{background:var(--hover-bg)}.btn--danger{background:var(--status-danger-bg);color:var(--status-danger-text);border:1px solid #fca5a5}.btn--danger:hover{background:color-mix(in srgb,var(--status-danger-bg) 80%,black 4%)}.btn--sm{padding:7px 14px;font-size:var(--font-size-caption)}.btn--block{width:100%}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.field__optional{color:var(--text-caption);font-weight:var(--font-weight-regular)}.field__input{border:1px solid var(--border-color);background:var(--card-bg);border-radius:var(--border-radius);padding:12px 14px;font-size:var(--font-size-body);font-family:inherit;color:var(--text-primary)}.field__input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 15%,transparent)}.field__error{color:var(--text-error);font-size:var(--font-size-caption);margin:-4px 0 0}.field__hint{color:var(--text-caption);font-size:var(--font-size-caption)}select.field__input{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3e%3cpath d='M6 9l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:36px}.page{max-width:var(--page-max-width);margin-inline:auto;display:flex;flex-direction:column;gap:var(--space-4);flex:1;min-height:0;width:100%}.section-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-4, 32px);min-width:0;max-width:100%}.table-container{overflow:hidden;max-width:100%;border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--card-bg)}app-admin-table-toolbar+.table-container{margin-top:1rem}.section-card>.section-title+app-admin-table-toolbar,.section-card>.section-header+app-admin-table-toolbar{margin-top:1rem}.page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page__header h1{font-size:var(--font-size-title);font-weight:var(--font-weight-strong);color:var(--text-primary)}.page__header p{color:var(--text-secondary);font-size:var(--font-size-body-sm);margin-top:4px}.page__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.page__actions--end{justify-content:flex-end}.add-fab{width:2.75rem;height:2.75rem;min-width:2.75rem;border-radius:999px;background:var(--primary-color);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:1.375rem;font-weight:var(--font-weight-regular);line-height:1;cursor:pointer;border:none;flex-shrink:0;transition:opacity .2s,transform .2s;text-decoration:none;-webkit-user-select:none;user-select:none;box-shadow:none}.add-fab:hover{opacity:.92;transform:scale(1.06)}.add-fab:active{transform:scale(.98)}.add-fab--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}@media(max-width:720px){.form-grid{grid-template-columns:1fr}}.empty-state{text-align:center;padding:var(--space-10) var(--space-4);color:var(--text-secondary);background:var(--card-bg);border:1px dashed var(--border-color);border-radius:var(--border-radius-lg)}.card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:0 1px 3px var(--surface-shadow),0 8px 24px var(--surface-shadow)}.status-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--border-radius-pill);font-size:var(--font-size-caption);font-weight:var(--font-weight-strong);border:1px solid transparent}.status-badge--success{background:var(--status-success-bg);color:var(--status-success-text)}.status-badge--warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.status-badge--danger{background:var(--status-danger-bg);color:var(--status-danger-text)}.status-badge--info{background:var(--status-info-bg);color:var(--status-info-text)}.status-badge--neutral{background:var(--status-neutral-bg);color:var(--status-neutral-text)}.status-badge--select{appearance:none;border:1px solid transparent;cursor:pointer;font-family:inherit;padding-right:26px;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5'%3e%3cpath d='M6 9l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 8px center;background-size:12px}.status-badge--select:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 18%,transparent)}.modal-section-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--border-color)}.modal-section{border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-5);background:var(--card-bg)}.modal-section+.modal-section{margin-top:var(--space-5)}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--border-color);background:var(--surface-soft);color:var(--text-primary);border-radius:var(--border-radius-pill);padding:6px 12px;font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);cursor:pointer}.chip:hover{background:var(--surface-soft-hover)}.chip.is-active{background:var(--primary-gradient);color:var(--text-on-primary);border-color:transparent}.chip--static{cursor:default}.chip--static:hover{background:var(--surface-soft)}.chip-row .filter-select,.chip-row .filter-date{padding:5px 12px;font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);border-radius:var(--border-radius-pill);background-color:var(--surface-soft);max-width:220px}.chip-row select.filter-select{padding-right:32px;background-position:right 10px center;cursor:pointer}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:var(--font-size-caption);font-weight:var(--font-weight-strong);color:var(--text-caption);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-color);white-space:nowrap;background:linear-gradient(180deg,var(--surface-gradient-soft-top),var(--surface-gradient-soft-end) 78%)}.data-table td{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-color);font-size:var(--font-size-body-sm);color:var(--text-primary);vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--surface-soft)}.row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.user-cell{display:flex;align-items:center;gap:var(--space-3)}.user-cell__avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}.user-cell__avatar--placeholder{display:flex;align-items:center;justify-content:center;background:var(--primary-gradient);color:#fff;font-weight:var(--font-weight-strong);font-size:var(--font-size-caption)}.user-cell__name{font-weight:var(--font-weight-medium)}.user-cell__email{color:var(--text-secondary);font-size:var(--font-size-caption)}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.kpi-row--3{grid-template-columns:repeat(3,1fr)}.kpi-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:4px}.kpi-card__value{font-size:1.5rem;font-weight:var(--font-weight-strong);color:var(--text-primary)}.kpi-card__label{font-size:var(--font-size-caption);color:var(--text-secondary)}.permissions-display{display:flex;flex-direction:column;gap:var(--space-2)}.selected-permissions-list{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;padding:var(--space-3);background:var(--surface-soft);border:1px solid var(--border-color);border-radius:var(--border-radius);min-height:46px}.permission-tag{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;background:var(--primary-gradient);color:#fff;border-radius:var(--border-radius-pill);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium)}.permission-tag__remove{display:inline-grid;place-items:center;width:20px;height:20px;border:none;border-radius:50%;background:#ffffff40;color:#fff;font-size:var(--font-size-body-sm);cursor:pointer}.permission-tag__remove:hover{background:#fff6}.permissions-trigger{align-self:flex-start;display:inline-flex;align-items:center;gap:8px}.permissions-trigger__icon{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:999px;background:color-mix(in srgb,var(--primary-color) 10%,var(--card-bg));color:var(--primary-color);font-size:var(--font-size-body-sm)}.load-more{display:flex;justify-content:center;margin-top:var(--space-6)}@media(min-width:480px){:root{--content-padding: 1rem}}@media(min-width:768px){:root{--header-height: 4.25rem;--content-padding: 1.5rem}}@media(min-width:1024px){:root{--sidebar-width: 15rem;--header-height: 5.5rem;--content-padding: 2rem}}@media(min-width:1280px){:root{--sidebar-width: 15.75rem;--content-padding: 2rem;--page-max-width: 92rem}}@media(min-width:1536px){:root{--sidebar-width: 16.25rem;--content-padding: 2.5rem;--page-max-width: 100rem}}@media(max-width:900px){.kpi-row,.kpi-row--3{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.kpi-row,.kpi-row--3{grid-template-columns:1fr}}.auth{position:relative;display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:var(--space-4);background:var(--bg-primary);overflow:hidden}.auth__glow{position:absolute;top:-20%;left:50%;width:60vw;height:60vw;max-width:640px;max-height:640px;transform:translate(-50%);background:radial-gradient(circle,color-mix(in srgb,var(--primary-color) 16%,transparent) 0%,transparent 70%);pointer-events:none}.auth__card{position:relative;width:100%;max-width:400px;padding:var(--space-6) var(--space-4);background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:0 30px 60px -20px #00000047}.auth__logo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4)}.auth__logo img{max-height:96px;width:auto;object-fit:contain}.auth__title{font-size:var(--font-size-title);font-weight:var(--font-weight-strong);color:var(--text-primary);text-align:center;margin-bottom:4px}.auth__subtitle{font-size:var(--font-size-caption);color:var(--text-secondary);text-align:center;margin-bottom:var(--space-4)}.auth__form{display:flex;flex-direction:column;gap:var(--space-3)}.auth__submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:var(--space-1);padding:.875rem;border:1px solid var(--primary-color);border-radius:var(--border-radius);background:var(--primary-color);color:var(--text-on-primary);font-family:var(--font-family);font-weight:var(--font-weight-strong);font-size:.9375rem;cursor:pointer;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}.auth__submit:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 12px 24px color-mix(in srgb,var(--primary-color) 24%,transparent)}.auth__submit:disabled{opacity:.6;cursor:not-allowed}.auth__spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:auth-spin .7s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}
