:root{--color-primary: #4338ca;--color-primary-strong: #312e81;--color-primary-soft: #eef2ff;--color-accent: #22d3ee;--color-success: #16a34a;--color-danger: #dc2626;--color-surface: #ffffff;--color-surface-muted: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5f5;--color-ink-900: #0f172a;--color-ink-700: #334155;--color-ink-500: #64748b;--color-ink-400: #94a3b8;--body-background: linear-gradient(160deg, #f5f7ff 0%, #eef2ff 35%, #f8fafc 100%);--body-text-color: #0f172a;--content-background: #f8fafc;--layout-background: linear-gradient(160deg, #f5f7ff 0%, #eef2ff 35%, #f8fafc 100%);--layout-text: #0f172a;--sidebar-bg: rgba(255, 255, 255, .88);--sidebar-text: #0f172a;--sidebar-subtitle: #64748b;--sidebar-border: rgba(15, 23, 42, .08);--sidebar-shadow: 18px 0 40px rgba(15, 23, 42, .05);--brand-logo-bg: linear-gradient(140deg, rgba(79, 70, 229, .16), rgba(236, 72, 153, .16));--brand-logo-shadow: inset 0 0 0 1px rgba(148, 163, 184, .24), 0 18px 30px rgba(79, 70, 229, .12);--sidebar-brand-background-image: url(/assets/brand-background-light.png);--sidebar-brand-overlay: linear-gradient( 180deg, rgba(248, 250, 252, .9) 0%, rgba(241, 245, 249, .75) 100% );--sidebar-link-color: #1f2937;--sidebar-link-hover-bg: rgba(79, 70, 229, .12);--sidebar-link-hover-color: #312e81;--sidebar-link-active-bg: rgba(79, 70, 229, .16);--sidebar-link-active-color: #312e81;--sidebar-active-shadow: 0 10px 24px rgba(79, 70, 229, .16);--sidebar-dot: rgba(129, 140, 248, .45);--sidebar-dot-active: #4c1d95;--sidebar-footer-bg: rgba(236, 254, 255, .82);--sidebar-footer-border: rgba(14, 165, 233, .26);--sidebar-footer-text: #0f172a;--sidebar-support-border: rgba(14, 165, 233, .4);--sidebar-support-bg: rgba(14, 165, 233, .15);--sidebar-support-text: #075985;--sidebar-support-hover-bg: rgba(14, 165, 233, .2);--topbar-bg: rgba(255, 255, 255, .8);--topbar-border: rgba(15, 23, 42, .08);--topbar-text: #0f172a;--theme-toggle-border: rgba(15, 23, 42, .12);--theme-toggle-bg: rgba(255, 255, 255, .75);--theme-toggle-hover-border: rgba(79, 70, 229, .4);--theme-toggle-hover-bg: rgba(79, 70, 229, .18);--theme-toggle-icon: #4338ca;--profile-bg: rgba(255, 255, 255, .9);--profile-border: rgba(15, 23, 42, .08);--avatar-bg: #4338ca;--avatar-text: #ffffff;--profile-roles: #64748b;--logout-border: rgba(15, 23, 42, .12);--logout-bg: rgba(255, 255, 255, .9);--logout-icon: #4338ca;--logout-hover-border: rgba(79, 70, 229, .4);--logout-hover-bg: rgba(79, 70, 229, .18);--form-focus-bg: #fdfdff;--form-focus-shadow: rgba(67, 56, 202, .18);--panel-surface: rgba(255, 255, 255, .96);--panel-surface-muted: rgba(248, 250, 252, .92);--panel-border: rgba(15, 23, 42, .08);--panel-shadow: 0 18px 36px rgba(15, 23, 42, .12);--muted-text: #64748b;--danger-text: #dc2626;--danger-surface: rgba(220, 38, 38, .12);--ghost-border: rgba(148, 163, 184, .3);--ghost-hover-bg: rgba(148, 163, 184, .12);--preview-surface: rgba(15, 23, 42, .04);--preview-border: rgba(15, 23, 42, .08);--preview-status-hint: rgba(71, 85, 105, .75);--action-icon-color: var(--layout-text);--action-icon-hover-color: var(--color-primary-strong);--action-icon-hover-bg: rgba(67, 56, 202, .12);--designer-shell-background: linear-gradient( 135deg, rgba(79, 70, 229, .08), rgba(236, 72, 153, .08) );--designer-shell-shadow: 0 20px 48px rgba(15, 23, 42, .16);--designer-designer-surface: rgba(255, 255, 255, .92);--designer-designer-border: rgba(99, 102, 241, .14);--designer-preview-surface: rgba(255, 255, 255, .95);--designer-preview-border: rgba(99, 102, 241, .18);--designer-preview-text: #1f2937;--designer-preview-subtext: rgba(71, 85, 105, .85);--designer-workspace-surface: rgba(255, 255, 255, .4);--designer-workspace-border: rgba(99, 102, 241, .18);--designer-loading-background: rgba(99, 102, 241, .12);--designer-loading-text: #312e81;--designer-badge-background: rgba(79, 70, 229, .14);--designer-badge-text: #4338ca;--shadow-sm: 0 6px 14px rgba(15, 23, 42, .08);--shadow-md: 0 12px 28px rgba(15, 23, 42, .12);--shadow-lg: 0 20px 44px rgba(67, 56, 202, .16);--radius-sm: .55rem;--radius-md: .75rem;--radius-lg: 1.25rem;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--line-height-base: 1.6;--transition-base: .2s ease;color:var(--body-text-color);background-color:var(--body-background);line-height:var(--line-height-base);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color-scheme:light}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{--body-background: radial-gradient(circle at top left, rgba(99, 102, 241, .18), transparent 55%), radial-gradient(circle at bottom right, rgba(124, 58, 237, .12), transparent 45%), #0f172a;--body-text-color: #e2e8f0;--panel-surface: rgba(17, 24, 39, .9);--panel-surface-muted: rgba(30, 41, 59, .82);--panel-border: rgba(148, 163, 184, .24);--panel-shadow: 0 24px 48px rgba(2, 6, 23, .55);--muted-text: #94a3b8;--danger-text: #fca5a5;--danger-surface: rgba(248, 113, 113, .16);--ghost-border: rgba(148, 163, 184, .35);--ghost-hover-bg: rgba(148, 163, 184, .18);--preview-surface: rgba(15, 23, 42, .6);--preview-border: rgba(148, 163, 184, .24);--preview-status-hint: rgba(226, 232, 240, .7);--designer-shell-background: linear-gradient( 135deg, rgba(15, 23, 42, .65), rgba(49, 46, 129, .8) );--designer-shell-shadow: 0 25px 60px rgba(15, 23, 42, .35);--designer-designer-surface: rgba(15, 23, 42, .35);--designer-designer-border: rgba(99, 102, 241, .25);--designer-preview-surface: rgba(17, 24, 39, .6);--designer-preview-border: rgba(148, 163, 184, .2);--designer-preview-text: #e2e8f0;--designer-preview-subtext: rgba(226, 232, 240, .8);--designer-workspace-surface: rgba(17, 24, 39, .55);--designer-workspace-border: rgba(148, 163, 184, .25);--designer-loading-background: rgba(15, 23, 42, .4);--designer-loading-text: rgba(226, 232, 240, .9);--designer-badge-background: rgba(129, 140, 248, .22);--designer-badge-text: #e0e7ff;--action-icon-color: var(--layout-text);--action-icon-hover-color: var(--color-primary-soft, #c7d2fe);--action-icon-hover-bg: rgba(99, 102, 241, .2);--color-surface: rgba(17, 24, 39, .95);--color-surface-muted: rgba(15, 23, 42, .88);--color-border: rgba(148, 163, 184, .24);--color-border-strong: rgba(129, 140, 248, .32);--color-ink-900: #f8fafc;--color-ink-700: #e2e8f0;--color-ink-500: #cbd5f5;--color-ink-400: #a5b4fc;--color-primary-soft: rgba(79, 70, 229, .18);--layout-background: radial-gradient( circle at top left, rgba(99, 102, 241, .18), transparent 55% ), radial-gradient(circle at bottom right, rgba(124, 58, 237, .12), transparent 45%), #0f172a;--layout-text: #e2e8f0;--content-background: linear-gradient( 180deg, rgba(15, 23, 42, .92) 0%, rgba(15, 23, 42, .98) 60% );--sidebar-bg: rgba(17, 24, 39, .92);--sidebar-text: #e2e8f0;--sidebar-subtitle: #94a3b8;--sidebar-border: rgba(148, 163, 184, .22);--sidebar-shadow: 20px 0 60px rgba(15, 23, 42, .48);--brand-logo-bg: linear-gradient(140deg, rgba(79, 70, 229, .35), rgba(236, 72, 153, .35));--brand-logo-shadow: inset 0 0 0 1px rgba(148, 163, 184, .3), 0 18px 40px rgba(59, 130, 246, .25);--sidebar-brand-background-image: url(/assets/brand-background.png);--sidebar-brand-overlay: linear-gradient( 180deg, rgba(15, 23, 42, .45) 0%, rgba(15, 23, 42, .92) 100% );--sidebar-link-color: rgba(226, 232, 240, .85);--sidebar-link-hover-bg: rgba(99, 102, 241, .22);--sidebar-link-hover-color: #f8fafc;--sidebar-link-active-bg: rgba(99, 102, 241, .25);--sidebar-link-active-color: #f8fafc;--sidebar-active-shadow: 0 0 12px rgba(129, 140, 248, .45);--sidebar-dot: rgba(129, 140, 248, .55);--sidebar-dot-active: #c084fc;--sidebar-footer-bg: rgba(8, 145, 178, .24);--sidebar-footer-border: rgba(45, 212, 191, .35);--sidebar-footer-text: rgba(226, 232, 240, .85);--sidebar-support-border: rgba(125, 211, 252, .5);--sidebar-support-bg: rgba(8, 145, 178, .28);--sidebar-support-text: #e0f2fe;--sidebar-support-hover-bg: rgba(14, 165, 233, .35);--topbar-bg: rgba(15, 23, 42, .7);--topbar-border: rgba(148, 163, 184, .24);--topbar-text: #f8fafc;--theme-toggle-border: rgba(148, 163, 184, .35);--theme-toggle-bg: rgba(30, 41, 59, .85);--theme-toggle-hover-border: rgba(129, 140, 248, .5);--theme-toggle-hover-bg: rgba(129, 140, 248, .25);--theme-toggle-icon: #e0f2fe;--profile-bg: rgba(17, 24, 39, .92);--profile-border: rgba(148, 163, 184, .3);--avatar-bg: #4338ca;--avatar-text: #f8fafc;--profile-roles: #cbd5f5;--logout-border: rgba(148, 163, 184, .3);--logout-bg: rgba(30, 41, 59, .85);--logout-icon: #f8fafc;--logout-hover-border: rgba(129, 140, 248, .55);--logout-hover-bg: rgba(79, 70, 229, .28);--form-focus-bg: rgba(30, 41, 59, .95);--form-focus-shadow: rgba(129, 140, 248, .32);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font-family);color:var(--body-text-color);background:var(--body-background);transition:background .3s ease,color .3s ease}app-root{display:block;min-height:100vh}::selection{background:#4338ca47;color:var(--layout-text)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-primary-strong);text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}input,select,textarea{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.6rem .75rem;background:var(--color-surface);transition:border-color var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--form-focus-shadow);background-color:var(--form-focus-bg)}:where(input,select,textarea).ng-invalid.ng-touched{border-color:var(--color-danger);box-shadow:0 0 0 1px #dc262640;background-color:var(--danger-surface)}:where(input,select,textarea).ng-invalid.ng-touched:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #dc262659;background-color:var(--danger-surface)}label{display:flex;flex-direction:column;gap:.35rem;font-size:.92rem;color:var(--color-ink-700)}label>span{font-weight:600;color:var(--color-ink-700)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem 1.25rem}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid rgba(99,102,241,.14);box-shadow:var(--shadow-sm);padding:1.75rem;display:flex;flex-direction:column;gap:1.5rem}.card__header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.card__feedback{border-radius:var(--radius-md);padding:.85rem 1.1rem;font-size:.95rem}.card__feedback--error{background:#dc262614;border:1px solid rgba(220,38,38,.35);color:var(--color-danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.65rem 1.2rem;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:.95rem;text-decoration:none;background:var(--color-primary);color:#fff;transition:transform var(--transition-base),box-shadow var(--transition-base),background var(--transition-base),border-color var(--transition-base)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm);background:var(--color-primary-strong)}.btn:disabled{opacity:.65;box-shadow:none}.btn--primary{background:linear-gradient(135deg,#4338ca,#6366f1);box-shadow:var(--shadow-sm)}.btn--ghost{background:#4338ca14;color:var(--color-primary-strong);border-color:#4338ca40}.btn--ghost:hover:not(:disabled){background:#4338ca24}.btn--danger{background:var(--color-danger)}.btn--danger:hover:not(:disabled){background:#b91c1c}.btn--subtle{background:var(--color-surface);color:var(--color-ink-700);border-color:var(--color-border)}.btn--icon{padding:.55rem;width:2.25rem;height:2.25rem}.btn.action-icon-button{width:2.5rem;height:2.5rem;padding:.35rem;border-radius:999px;gap:0;line-height:0;color:var(--layout-text);border:1px solid transparent;background:transparent;transition:color var(--transition-base),border-color var(--transition-base),background-color var(--transition-base)}.btn.action-icon-button:hover:not(:disabled),.btn.action-icon-button:focus-visible{color:var(--action-icon-hover-color);outline:none}.btn--ghost.action-icon-button{color:var(--layout-text);border-color:var(--ghost-border, rgba(148, 163, 184, .3))}.btn--ghost.action-icon-button:hover:not(:disabled),.btn--ghost.action-icon-button:focus-visible{background:var(--action-icon-hover-bg);border-color:transparent}.btn.action-icon-button svg{width:1.25rem;height:1.25rem;stroke-width:1.8;stroke:currentColor;fill:none;display:block}.btn.action-icon-button svg *{pointer-events:none;stroke:currentColor;stroke-width:1.8;fill:none}.btn.action-icon-button .action-icon-button__spinner{width:1.1rem;height:1.1rem;border-radius:999px;border:2px solid currentColor;border-top-color:transparent;animation:action-icon-spin .75s linear infinite}.btn.action-icon-button--danger{color:var(--color-danger);border-color:transparent}.btn.action-icon-button--danger:hover:not(:disabled){background:#ef44441f}.btn--sm{padding:.45rem .9rem;font-size:.85rem}.muted{color:var(--color-ink-500)}.tag,.badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:#4338ca1f;color:var(--color-primary-strong)}.tag--success{background:#16a34a1f;color:var(--color-success)}.tag--muted,.badge--muted{background:#94a3b82e;color:var(--color-ink-500)}table{border-collapse:collapse;width:100%;background:var(--color-surface)}th,td{border-bottom:1px solid var(--color-border);padding:.65rem .85rem;text-align:left}th{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-500)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@keyframes action-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pill{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;background:#22d3ee2e;color:#0e7490;font-size:.75rem;font-weight:600}.stack{display:flex;flex-direction:column;gap:1.25rem}.surface-muted{background:var(--color-surface-muted);border-radius:var(--radius-lg);padding:1.25rem}.table-wrapper{border-radius:var(--radius-md);border:1px solid var(--color-border);overflow:hidden;background:var(--color-surface)}.shadow-lg{box-shadow:var(--shadow-lg)}@media (max-width: 768px){.card{padding:1.25rem}.card__header{align-items:flex-start;flex-direction:column}.btn{width:100%}}
