:root{--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-contrast: #ffffff;--color-accent-rgb: 37, 99, 235;--color-chart-primary: #f97316;--color-bg: #f5f6f8;--color-surface: #ffffff;--color-surface-muted: #f9fafb;--color-border: #e5e7eb;--color-input-bg: #eef0f4;--color-input-bg-hover: #e3e6ec;--color-text: #1c2434;--color-text-muted: #6b7280;--color-text-inverse: #ffffff;--color-success: #10b981;--color-success-bg: #ecfdf5;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-danger-bg: #fef2f2;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-danger-2: #f97316;--color-danger-3: #b91c1c;--color-danger-4: #f43f5e;--color-ink: #1c2434;--color-ink-hover: #2a3446;--color-role-admin: #7c3aed;--color-role-admin-bg: #f5f3ff;--color-role-viewer: #4f46e5;--color-role-viewer-bg: #eef2ff;--color-role-service: #0d9488;--color-role-service-bg: #f0fdfa;--color-role-maintenance: #d97706;--color-role-maintenance-bg: #fffbeb;--color-chart-enum-4: #db2777;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 12px;--radius-full: 999px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 1.75rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 4px 12px rgba(16, 24, 40, .08);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .12);--transition-fast: .15s ease;--transition-base: .22s ease;--glass-bg: rgba(255, 255, 255, .35);--glass-border: rgba(255, 255, 255, .6);--glass-blur: 24px;--glass-saturate: 180%;--glass-shadow: 0 8px 40px rgba(16, 24, 40, .18);--glass-light-bg: rgba(255, 255, 255, .72);--glass-light-border: rgba(255, 255, 255, .9);--glass-light-blur: 16px;--glass-light-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 12px 28px rgba(16, 24, 40, .08);--glass-tile-bg: rgba(255, 255, 255, .8);--glass-tile-shadow: 0 3px 12px rgba(16, 24, 40, .12)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius-md);border:1px solid transparent;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),opacity var(--transition-fast);text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--color-accent-rgb),.25)}.btn:hover{text-decoration:none}.btn--primary{background:var(--color-surface);color:var(--color-accent);border-color:var(--color-accent)}.btn--primary:hover:not(:disabled){background:rgba(var(--color-accent-rgb),.08)}.btn--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-surface-muted)}.btn--ghost{background:transparent;color:var(--color-text-muted)}.btn--ghost:hover:not(:disabled){background:var(--color-surface-muted)}.btn--danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger-bg)}.btn--success{background:var(--color-surface);color:var(--color-success);border-color:var(--color-success)}.btn--success:hover:not(:disabled){background:var(--color-success-bg)}.btn--full{width:100%}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap}.badge--neutral{background:var(--color-surface-muted);color:var(--color-text-muted)}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge--accent{background:rgba(var(--color-accent-rgb),.1);color:var(--color-accent)}.badge--role-admin{background:var(--color-role-admin-bg);color:var(--color-role-admin)}.badge--role-viewer{background:var(--color-role-viewer-bg);color:var(--color-role-viewer)}.badge--role-service{background:var(--color-role-service-bg);color:var(--color-role-service)}.badge--role-maintenance{background:var(--color-role-maintenance-bg);color:var(--color-role-maintenance)}.field{display:flex;flex-direction:column;gap:.375rem}.field--row{flex-direction:row;align-items:center;gap:.5rem}.field__label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:var(--font-weight-medium)}.field__label--with-hint{display:inline-flex;align-items:center;gap:.375rem}.field__input,.field__select{width:100%;padding:.625rem .875rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--font-size-sm);color:var(--color-text);transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.field__input::placeholder,.field__select::placeholder{color:var(--color-text-muted)}.field__input:hover,.field__select:hover{background:var(--color-surface-muted)}.field__input:focus,.field__select:focus{background:var(--color-surface);outline:none;box-shadow:0 0 0 3px rgba(var(--color-accent-rgb),.25);border-color:var(--color-accent)}.field__checkbox{width:1.125rem;height:1.125rem;accent-color:var(--color-accent)}.field__error{font-size:var(--font-size-sm);color:var(--color-danger)}.field__hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.table-scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table th,.table td{padding:.75rem 1rem;text-align:left;white-space:nowrap}.table thead th{color:var(--color-text-muted);font-weight:var(--font-weight-medium);border-bottom:1px solid var(--color-border)}.table tbody tr{border-bottom:1px solid var(--color-border)}.table tbody tr:last-child{border-bottom:none}.table tbody tr:hover{background:var(--color-surface-muted)}.table__actions{text-align:right}.table__actions-group{display:inline-flex;align-items:center;gap:.25rem}.table__icon-link{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;padding:0;border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);cursor:pointer}.table__icon-link:hover{background:var(--color-surface-muted);color:var(--color-accent);text-decoration:none}.table__icon-link--danger:hover{background:var(--color-danger-bg);color:var(--color-danger)}@media(max-width:640px){.table__col-optional{display:none}}.page{display:flex;flex-direction:column;gap:1.5rem;max-width:72rem}.page__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.page__title-row{display:flex;align-items:center;gap:.75rem}.page__title{font-size:var(--font-size-2xl);font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text);padding-left:16px}.page__title--center{flex:1;text-align:center;padding-left:0}.page__error{color:var(--color-danger)}.switch{display:inline-flex;align-items:center;gap:.625rem;cursor:pointer}.switch:has(.switch__input:disabled){cursor:not-allowed;opacity:.55}.switch__input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.switch__track{position:relative;flex-shrink:0;display:inline-block;width:2.75rem;height:1.5rem;border-radius:var(--radius-full);background:var(--color-border)}.switch__thumb{position:absolute;top:2px;left:2px;width:1.25rem;height:1.25rem;border-radius:var(--radius-full);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.switch__input:checked+.switch__track{background:var(--color-success)}.switch__input:checked+.switch__track .switch__thumb{transform:translate(1.25rem)}.switch__input:focus-visible+.switch__track{box-shadow:0 0 0 3px rgba(var(--color-accent-rgb),.25)}.switch__label{font-size:var(--font-size-sm);color:var(--color-text)}.switch__label--with-hint{display:inline-flex;align-items:center;gap:.375rem}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-semibold)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit}
