:root{--gf-color-brand: #663399;--gf-color-brand-hover: #532a7d;--gf-color-brand-active: #412161;--gf-color-brand-subtle: #f6f3fb;--gf-color-on-brand: #ffffff;--gf-color-surface: #ffffff;--gf-color-surface-sunken: #f8f8fb;--gf-color-surface-raised: #ffffff;--gf-color-surface-inverse: #1a1a26;--gf-color-border: #e6e6ee;--gf-color-border-strong: #d4d4e0;--gf-color-text: #1a1a26;--gf-color-text-muted: #5b5b70;--gf-color-text-subtle: #7c7c93;--gf-color-text-inverse: #ffffff;--gf-color-text-on-brand: #ffffff;--gf-color-success: #1f9d57;--gf-color-success-subtle: #e9f7ef;--gf-color-danger: #d22346;--gf-color-danger-subtle: #fdecef;--gf-color-warning: #e6a700;--gf-color-warning-subtle: #fdf4e3;--gf-color-info: #2563c9;--gf-color-info-subtle: #eaf1fc;--gf-color-focus-ring: #9466c4;--gf-font-base: Nunito, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--gf-font-heading: Nunito, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--gf-font-mono: SFMono-Regular, Menlo, Consolas, monospace;--gf-fs-100: .75rem;--gf-fs-200: .8125rem;--gf-fs-300: .875rem;--gf-fs-400: 1rem;--gf-fs-500: 1.125rem;--gf-fs-600: 1.25rem;--gf-fs-700: 1.5rem;--gf-fs-800: 1.875rem;--gf-fs-900: 2.25rem;--gf-fs-1000: 3rem;--gf-fw-regular: 400;--gf-fw-medium: 500;--gf-fw-semibold: 600;--gf-fw-bold: 700;--gf-fw-extrabold: 800;--gf-lh-tight: 1.2;--gf-lh-snug: 1.35;--gf-lh-normal: 1.5;--gf-lh-relaxed: 1.7;--gf-space-0: 0;--gf-space-1: .25rem;--gf-space-2: .5rem;--gf-space-3: .75rem;--gf-space-4: 1rem;--gf-space-5: 1.25rem;--gf-space-6: 1.5rem;--gf-space-7: 2rem;--gf-space-8: 2.5rem;--gf-space-9: 3rem;--gf-space-10: 4rem;--gf-space-11: 5rem;--gf-space-12: 6rem;--gf-radius-xs: 4px;--gf-radius-sm: 6px;--gf-radius-md: 8px;--gf-radius-lg: 12px;--gf-radius-xl: 16px;--gf-radius-2xl: 24px;--gf-radius-pill: 999px;--gf-elevation-0: none;--gf-elevation-1: 0 1px 2px rgba(16, 18, 40, .06);--gf-elevation-2: 0 2px 8px rgba(16, 18, 40, .08);--gf-elevation-3: 0 8px 24px rgba(16, 18, 40, .1);--gf-elevation-4: 0 16px 40px rgba(16, 18, 40, .14);--gf-z-dropdown: 1000;--gf-z-sticky: 1020;--gf-z-fixed: 1030;--gf-z-modal-backdrop: 1040;--gf-z-modal: 1050;--gf-z-popover: 1060;--gf-z-tooltip: 1070;--gf-z-toast: 1080}:root{--ga-teal-50: #effcf9;--ga-teal-100: #d3f5ec;--ga-teal-200: #a8ead9;--ga-teal-300: #6fd9c2;--ga-teal-400: #38bfa5;--ga-teal-500: #16a394;--ga-teal-600: #0d8377;--ga-teal-700: #0f6961;--ga-teal-800: #11544f;--ga-teal-900: #133f3c;--ga-amber-50: #fff8eb;--ga-amber-100: #ffedc7;--ga-amber-200: #ffd98a;--ga-amber-300: #ffc24d;--ga-amber-400: #fbab1f;--ga-amber-500: #f59e0b;--ga-amber-600: #d97d06;--ga-amber-700: #b45c09;--ga-amber-800: #92470e;--ga-amber-900: #783c10;--ga-neutral-0: #ffffff;--ga-neutral-50: #f8f7f4;--ga-neutral-100: #f1efe9;--ga-neutral-200: #e6e3da;--ga-neutral-300: #d6d2c6;--ga-neutral-400: #b3ad9e;--ga-neutral-500: #8c8678;--ga-neutral-600: #6b6557;--ga-neutral-700: #524d42;--ga-neutral-800: #38342c;--ga-neutral-900: #221f1a;--ga-success: #16a34a;--ga-success-bg: #e7f6ec;--ga-warning: #d97706;--ga-warning-bg: #fdf2e0;--ga-danger: #dc2626;--ga-danger-bg: #fbeaea;--ga-info: #2563eb;--ga-info-bg: #e8effd;--ga-primary: var(--ga-teal-600);--ga-primary-hover: var(--ga-teal-700);--ga-primary-soft: var(--ga-teal-50);--ga-primary-contrast: #ffffff;--ga-accent: var(--ga-amber-500);--ga-bg: var(--ga-neutral-50);--ga-surface: var(--ga-neutral-0);--ga-surface-2: var(--ga-neutral-100);--ga-border: var(--ga-neutral-200);--ga-border-strong: var(--ga-neutral-300);--ga-text: var(--ga-neutral-900);--ga-text-muted: var(--ga-neutral-600);--ga-text-subtle: var(--ga-neutral-500);--ga-text-on-brand: #ffffff;--ga-font-sans: "Plus Jakarta Sans", "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ga-text-xs: .75rem;--ga-text-sm: .875rem;--ga-text-base: .9375rem;--ga-text-lg: 1.0625rem;--ga-text-xl: 1.25rem;--ga-text-2xl: 1.5rem;--ga-text-3xl: 1.875rem;--ga-text-4xl: 2.5rem;--ga-text-5xl: 3.25rem;--ga-radius-sm: 8px;--ga-radius-md: 12px;--ga-radius-lg: 16px;--ga-radius-xl: 22px;--ga-radius-2xl: 28px;--ga-radius-pill: 999px;--ga-shadow-xs: 0 1px 2px rgba(34, 31, 26, .06);--ga-shadow-sm: 0 1px 3px rgba(34, 31, 26, .08), 0 1px 2px rgba(34, 31, 26, .04);--ga-shadow-md: 0 4px 12px rgba(34, 31, 26, .08), 0 2px 4px rgba(34, 31, 26, .04);--ga-shadow-lg: 0 12px 28px rgba(34, 31, 26, .1), 0 4px 10px rgba(34, 31, 26, .05);--ga-shadow-xl: 0 24px 48px rgba(34, 31, 26, .14);--ga-shadow-brand: 0 10px 24px rgba(13, 131, 119, .28);--ga-space-1: 4px;--ga-space-2: 8px;--ga-space-3: 12px;--ga-space-4: 16px;--ga-space-5: 20px;--ga-space-6: 24px;--ga-space-8: 32px;--ga-space-10: 40px;--ga-space-12: 48px;--ga-space-16: 64px;--ga-ease: cubic-bezier(.16, 1, .3, 1);--ga-transition: .18s var(--ga-ease);--ga-sidebar-w: 264px;--ga-sidebar-collapsed-w: 76px;--ga-topbar-h: 68px;--mat-sys-primary: #0d8377;--mat-sys-on-primary: #ffffff;--mat-sys-primary-container: #d3f5ec;--mat-sys-on-primary-container: #11544f;--mat-sys-secondary: #b45c09;--mat-sys-tertiary: #f59e0b;--mat-sys-surface: #ffffff;--mat-sys-surface-container: #f1efe9;--mat-sys-surface-container-low: #f8f7f4;--mat-sys-outline: #d6d2c6;--mat-sys-outline-variant: #e6e3da;--mat-sys-corner-medium: 12px;--mat-sys-corner-large: 16px}html,body{font-family:var(--ga-font-sans);color:var(--ga-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{background-color:var(--ga-bg)}*{scrollbar-width:thin;scrollbar-color:var(--ga-neutral-300) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--ga-neutral-300);border-radius:var(--ga-radius-pill);border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--ga-neutral-400);background-clip:content-box}.app-shell :focus-visible,.ga-scope :focus-visible{outline:2px solid var(--ga-teal-400);outline-offset:2px}.ga-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ga-space-2);font-family:var(--ga-font-sans);font-size:var(--ga-text-sm);font-weight:600;line-height:1;padding:0 var(--ga-space-5);height:42px;border:1px solid transparent;border-radius:var(--ga-radius-md);cursor:pointer;text-decoration:none;white-space:nowrap;transition:var(--ga-transition);-webkit-user-select:none;user-select:none}.ga-btn fa-icon,.ga-btn .material-icons,.ga-btn svg{font-size:1em}.ga-btn:disabled,.ga-btn.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.ga-btn-primary{background:var(--ga-primary);color:var(--ga-primary-contrast);box-shadow:var(--ga-shadow-xs)}.ga-btn-primary:hover{background:var(--ga-primary-hover);box-shadow:var(--ga-shadow-brand);transform:translateY(-1px)}.ga-btn-primary:active{transform:translateY(0)}.ga-btn-accent{background:var(--ga-accent);color:#3a2606}.ga-btn-accent:hover{background:var(--ga-amber-600);color:#fff;transform:translateY(-1px)}.ga-btn-outline{background:var(--ga-surface);color:var(--ga-text);border-color:var(--ga-border-strong)}.ga-btn-outline:hover{border-color:var(--ga-primary);color:var(--ga-primary);background:var(--ga-primary-soft)}.ga-btn-ghost{background:transparent;color:var(--ga-text-muted)}.ga-btn-ghost:hover{background:var(--ga-surface-2);color:var(--ga-text)}.ga-btn-danger{background:var(--ga-danger);color:#fff}.ga-btn-danger:hover{background:#b91c1c;transform:translateY(-1px)}.ga-btn-danger-soft{background:var(--ga-danger-bg);color:var(--ga-danger)}.ga-btn-danger-soft:hover{background:var(--ga-danger);color:#fff}.ga-btn-sm{height:34px;font-size:var(--ga-text-xs);padding:0 var(--ga-space-3);border-radius:var(--ga-radius-sm)}.ga-btn-lg{height:50px;font-size:var(--ga-text-base);padding:0 var(--ga-space-8);border-radius:var(--ga-radius-lg)}.ga-btn-block{width:100%}.ga-card{background:var(--ga-surface);border:1px solid var(--ga-border);border-radius:var(--ga-radius-lg);box-shadow:var(--ga-shadow-sm)}.ga-card-pad{padding:var(--ga-space-6)}.ga-badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--ga-text-xs);font-weight:700;letter-spacing:.02em;padding:4px 10px;border-radius:var(--ga-radius-pill);background:var(--ga-surface-2);color:var(--ga-text-muted);line-height:1}.ga-badge-success{background:var(--ga-success-bg);color:var(--ga-success)}.ga-badge-warning{background:var(--ga-warning-bg);color:var(--ga-warning)}.ga-badge-danger{background:var(--ga-danger-bg);color:var(--ga-danger)}.ga-badge-info{background:var(--ga-info-bg);color:var(--ga-info)}.ga-badge-brand{background:var(--ga-primary-soft);color:var(--ga-teal-700)}.ga-input{width:100%;height:44px;padding:0 var(--ga-space-4);font-family:var(--ga-font-sans);font-size:var(--ga-text-sm);color:var(--ga-text);background:var(--ga-surface);border:1px solid var(--ga-border-strong);border-radius:var(--ga-radius-md);transition:var(--ga-transition)}.ga-input::placeholder{color:var(--ga-text-subtle)}.ga-input:focus{outline:none;border-color:var(--ga-primary);box-shadow:0 0 0 3px var(--ga-primary-soft)}.ga-eyebrow{display:inline-block;font-size:var(--ga-text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ga-primary)}body{font-family:var(--gf-font-base);color:var(--gf-color-text)}:where(h1,h2,h3,h4,h5,h6){font-family:var(--gf-font-heading);color:var(--gf-color-text)}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--gf-color-focus-ring);outline-offset:2px}.gf-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gf-space-2);font-family:var(--gf-font-base);font-weight:var(--gf-fw-bold);border-radius:var(--gf-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap}.gf-btn:disabled,.gf-btn[disabled]{opacity:.55;cursor:not-allowed}.gf-btn--sm{padding:var(--gf-space-1) var(--gf-space-3);font-size:var(--gf-fs-200)}.gf-btn--md{padding:var(--gf-space-2) var(--gf-space-4);font-size:var(--gf-fs-300)}.gf-btn--lg{padding:var(--gf-space-3) var(--gf-space-5);font-size:var(--gf-fs-400)}.gf-btn--block{display:flex;width:100%}.gf-btn--primary{background:var(--gf-color-brand);color:var(--gf-color-on-brand)}.gf-btn--primary:hover:not(:disabled){background:var(--gf-color-brand-hover)}.gf-btn--primary:active:not(:disabled){background:var(--gf-color-brand-active)}.gf-btn--secondary{background:var(--gf-color-surface);color:var(--gf-color-text);border-color:var(--gf-color-border-strong)}.gf-btn--secondary:hover:not(:disabled){background:var(--gf-color-surface-sunken)}.gf-btn--ghost{background:transparent;color:var(--gf-color-brand)}.gf-btn--ghost:hover:not(:disabled){background:var(--gf-color-brand-subtle)}.gf-btn--danger{background:var(--gf-color-danger);color:#fff}.gf-btn--danger:hover:not(:disabled){filter:brightness(.94)}.gf-input{width:100%;font-family:var(--gf-font-base);font-size:var(--gf-fs-300);color:var(--gf-color-text);background:var(--gf-color-surface);border:1px solid var(--gf-color-border-strong);border-radius:var(--gf-radius-md);padding:var(--gf-space-2) var(--gf-space-3);transition:border-color .15s ease,box-shadow .15s ease}.gf-input::placeholder{color:var(--gf-color-text-subtle)}.gf-input:focus{outline:none;border-color:var(--gf-color-brand);box-shadow:0 0 0 3px var(--gf-color-brand-subtle)}.gf-input:disabled{background:var(--gf-color-surface-sunken);cursor:not-allowed}.btn{border-radius:var(--gf-radius-md);font-weight:var(--gf-fw-bold);font-family:var(--gf-font-base)}.btn-primary{--bs-btn-bg: var(--gf-color-brand);--bs-btn-border-color: var(--gf-color-brand);--bs-btn-hover-bg: var(--gf-color-brand-hover);--bs-btn-hover-border-color: var(--gf-color-brand-hover);--bs-btn-active-bg: var(--gf-color-brand-active);--bs-btn-active-border-color: var(--gf-color-brand-active)}.btn-outline-primary{--bs-btn-color: var(--gf-color-brand);--bs-btn-border-color: var(--gf-color-brand);--bs-btn-hover-bg: var(--gf-color-brand);--bs-btn-hover-border-color: var(--gf-color-brand);--bs-btn-active-bg: var(--gf-color-brand)}.form-control,.form-select{border-radius:var(--gf-radius-md);border-color:var(--gf-color-border-strong);font-size:var(--gf-fs-300)}.form-control:focus,.form-select:focus{border-color:var(--gf-color-brand);box-shadow:0 0 0 3px var(--gf-color-brand-subtle)}.table{--bs-table-bg: transparent;color:var(--gf-color-text)}.table th{font-size:var(--gf-fs-200);text-transform:uppercase;letter-spacing:.03em;color:var(--gf-color-text-muted);border-bottom:1px solid var(--gf-color-border-strong)}.table td{border-bottom:1px solid var(--gf-color-border);vertical-align:middle}.mat-mdc-table{background:transparent}.mat-mdc-table .mat-mdc-header-cell{font-size:var(--gf-fs-200);font-weight:var(--gf-fw-bold);text-transform:uppercase;letter-spacing:.03em;color:var(--gf-color-text-muted)}.mat-mdc-table .mat-mdc-cell{color:var(--gf-color-text);font-size:var(--gf-fs-300)}.mat-mdc-raised-button,.mat-mdc-unelevated-button,.mat-mdc-outlined-button,.mat-mdc-button{border-radius:var(--gf-radius-md)!important;font-weight:var(--gf-fw-bold)}*{scrollbar-width:thin;scrollbar-color:var(--gf-color-border-strong) transparent}.ga-page{max-width:1320px;margin:0 auto;display:flex;flex-direction:column;gap:var(--ga-space-6)}.ga-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--ga-space-4);flex-wrap:wrap}.ga-page-head__title{margin:6px 0 4px;font-size:var(--ga-text-3xl);font-weight:800;letter-spacing:-.02em;color:var(--ga-text)}.ga-page-head__sub{margin:0;color:var(--ga-text-muted);font-size:var(--ga-text-base)}.ga-page-head__actions{display:flex;align-items:center;gap:var(--ga-space-3);flex-wrap:wrap}.ga-panel{background:var(--ga-surface);border:1px solid var(--ga-border);border-radius:var(--ga-radius-lg);box-shadow:var(--ga-shadow-sm);padding:var(--ga-space-6)}.ga-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ga-space-3);margin-bottom:var(--ga-space-4)}.ga-panel-head__title{margin:0;font-size:var(--ga-text-lg);font-weight:700;color:var(--ga-text)}.ga-panel-head__sub{margin:2px 0 0;font-size:var(--ga-text-sm);color:var(--ga-text-muted)}.ga-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--ga-space-4)}.ga-field{display:flex;flex-direction:column;gap:var(--ga-space-2)}.ga-field__label{font-size:var(--ga-text-sm);font-weight:600;color:var(--ga-text)}.ga-field__hint{font-size:var(--ga-text-xs);color:var(--ga-text-subtle)}.ga-field__error{font-size:var(--ga-text-xs);color:var(--ga-danger)}.ga-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--ga-space-5)}textarea.ga-input{height:auto;padding:var(--ga-space-3) var(--ga-space-4);line-height:1.5}select.ga-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.ga-table{width:100%;border-collapse:collapse;font-size:var(--ga-text-sm)}.ga-table thead th{text-align:left;padding:var(--ga-space-3) var(--ga-space-4);font-size:var(--ga-text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ga-text-subtle);border-bottom:1px solid var(--ga-border)}.ga-table tbody td{padding:var(--ga-space-4);border-bottom:1px solid var(--ga-border);color:var(--ga-text);vertical-align:middle}.ga-table tbody tr:last-child td{border-bottom:none}.ga-table tbody tr{transition:background var(--ga-transition)}.ga-table tbody tr:hover{background:var(--ga-surface-2)}.ga-table .ga-table__num{text-align:right;font-variant-numeric:tabular-nums}.ga-table .ga-table__actions{text-align:right;white-space:nowrap}.ga-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--ga-space-3)}.ga-list-row{display:flex;align-items:center;gap:var(--ga-space-4);padding:var(--ga-space-4) var(--ga-space-5);background:var(--ga-surface);border:1px solid var(--ga-border);border-radius:var(--ga-radius-md);transition:var(--ga-transition)}.ga-list-row:hover{box-shadow:var(--ga-shadow-sm);border-color:var(--ga-border-strong)}.ga-list-row__body{flex:1;min-width:0}.ga-list-row__title{margin:0;font-size:var(--ga-text-base);font-weight:600;color:var(--ga-text)}.ga-list-row__meta{margin:2px 0 0;font-size:var(--ga-text-sm);color:var(--ga-text-muted)}.ga-list-row__actions{display:flex;align-items:center;gap:var(--ga-space-2);flex-shrink:0}.ga-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ga-space-3);padding:var(--ga-space-12) var(--ga-space-6);text-align:center;background:var(--ga-surface);border:1px dashed var(--ga-border-strong);border-radius:var(--ga-radius-lg);color:var(--ga-text-muted)}.ga-empty__title{margin:0;font-size:var(--ga-text-lg);font-weight:700;color:var(--ga-text)}.ga-empty__text{margin:0;font-size:var(--ga-text-sm);color:var(--ga-text-muted);max-width:42ch}.ga-note{padding:var(--ga-space-4) var(--ga-space-5);border-radius:var(--ga-radius-md);font-size:var(--ga-text-sm);border:1px solid var(--ga-border);background:var(--ga-surface-2);color:var(--ga-text-muted)}.ga-note--success{background:var(--ga-success-bg);border-color:transparent;color:var(--ga-success)}.ga-note--danger{background:var(--ga-danger-bg);border-color:transparent;color:var(--ga-danger)}.ga-note--warning{background:var(--ga-warning-bg);border-color:transparent;color:var(--ga-warning)}@keyframes gfShimmer{0%{background-position:-150% 0}to{background-position:150% 0}}@keyframes gfSpin{to{transform:rotate(360deg)}}.gf-card{background:var(--gf-color-surface);border:1px solid var(--gf-color-border);border-radius:var(--gf-radius-lg);box-shadow:var(--gf-elevation-1);overflow:hidden}.gf-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gf-space-4);padding:var(--gf-space-5) var(--gf-space-6);border-bottom:1px solid var(--gf-color-border)}.gf-card__title{margin:0;font-size:var(--gf-fs-500);font-weight:var(--gf-fw-bold);color:var(--gf-color-text)}.gf-card__subtitle{margin:var(--gf-space-1) 0 0;font-size:var(--gf-fs-300);color:var(--gf-color-text-muted)}.gf-card__actions{display:flex;gap:var(--gf-space-2);flex:0 0 auto}.gf-card__actions:empty{display:none}.gf-card__body{padding:var(--gf-space-6)}.gf-card--flush .gf-card__body{padding:0}.gf-card__footer:empty{display:none}.gf-card__footer{padding:var(--gf-space-4) var(--gf-space-6);border-top:1px solid var(--gf-color-border);background:var(--gf-color-surface-sunken)}.gf-badge{display:inline-flex;align-items:center;gap:var(--gf-space-1);padding:2px var(--gf-space-2);border-radius:var(--gf-radius-pill);font-size:var(--gf-fs-100);font-weight:var(--gf-fw-bold);text-transform:uppercase;letter-spacing:.03em;line-height:1.4;white-space:nowrap}.gf-badge--neutral{background:var(--gf-color-surface-sunken);color:var(--gf-color-text-muted);border:1px solid var(--gf-color-border)}.gf-badge--brand{background:var(--gf-color-brand-subtle);color:var(--gf-color-brand)}.gf-badge--success{background:var(--gf-color-success-subtle);color:var(--gf-color-success)}.gf-badge--danger{background:var(--gf-color-danger-subtle);color:var(--gf-color-danger)}.gf-badge--warning{background:var(--gf-color-warning-subtle);color:var(--gf-color-warning)}.gf-badge--info{background:var(--gf-color-info-subtle);color:var(--gf-color-info)}.gf-banner{display:flex;align-items:flex-start;gap:var(--gf-space-3);padding:var(--gf-space-4) var(--gf-space-5);border-radius:var(--gf-radius-md);border:1px solid transparent;font-size:var(--gf-fs-300);color:var(--gf-color-text)}.gf-banner__icon:empty{display:none}.gf-banner__body{flex:1 1 auto}.gf-banner__title{margin:0 0 var(--gf-space-1);font-weight:var(--gf-fw-bold);font-size:var(--gf-fs-400)}.gf-banner__message{color:var(--gf-color-text-muted)}.gf-banner__actions{flex:0 0 auto;display:flex;align-items:center;gap:var(--gf-space-2)}.gf-banner__actions:empty{display:none}.gf-banner__close{flex:0 0 auto;border:0;background:transparent;color:var(--gf-color-text-subtle);font-size:var(--gf-fs-700);line-height:1;cursor:pointer;padding:0 var(--gf-space-1)}.gf-banner__close:hover{color:var(--gf-color-text)}.gf-banner--info{background:var(--gf-color-info-subtle);border-color:var(--gf-color-info)}.gf-banner--info .gf-banner__icon{color:var(--gf-color-info)}.gf-banner--success{background:var(--gf-color-success-subtle);border-color:var(--gf-color-success)}.gf-banner--success .gf-banner__icon{color:var(--gf-color-success)}.gf-banner--warning{background:var(--gf-color-warning-subtle);border-color:var(--gf-color-warning)}.gf-banner--warning .gf-banner__icon{color:var(--gf-color-warning)}.gf-banner--danger{background:var(--gf-color-danger-subtle);border-color:var(--gf-color-danger)}.gf-banner--danger .gf-banner__icon{color:var(--gf-color-danger)}.gf-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--gf-radius-pill);background:var(--gf-color-brand-subtle);color:var(--gf-color-brand);font-weight:var(--gf-fw-bold);overflow:hidden;flex:0 0 auto}.gf-avatar__img{width:100%;height:100%;object-fit:cover}.gf-avatar--sm{width:28px;height:28px;font-size:var(--gf-fs-100)}.gf-avatar--md{width:40px;height:40px;font-size:var(--gf-fs-300)}.gf-avatar--lg{width:56px;height:56px;font-size:var(--gf-fs-500)}.gf-empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--gf-space-2);padding:var(--gf-space-9) var(--gf-space-6);color:var(--gf-color-text-muted)}.gf-empty-state__icon{font-size:var(--gf-fs-900);color:var(--gf-color-text-subtle);line-height:1}.gf-empty-state__icon:empty{display:none}.gf-empty-state__title{margin:0;font-size:var(--gf-fs-500);font-weight:var(--gf-fw-bold);color:var(--gf-color-text)}.gf-empty-state__message{margin:0;max-width:42ch}.gf-empty-state__action{margin-top:var(--gf-space-3)}.gf-empty-state__action:empty{display:none}.gf-form-field{display:flex;flex-direction:column;gap:var(--gf-space-2)}.gf-form-field__label{font-size:var(--gf-fs-300);font-weight:var(--gf-fw-semibold);color:var(--gf-color-text)}.gf-form-field__required{color:var(--gf-color-danger)}.gf-form-field__hint{font-size:var(--gf-fs-200);color:var(--gf-color-text-muted)}.gf-form-field__error{font-size:var(--gf-fs-200);color:var(--gf-color-danger);font-weight:var(--gf-fw-medium)}.gf-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--gf-space-4);flex-wrap:wrap;margin-bottom:var(--gf-space-6)}.gf-page-header__title{margin:0;font-size:var(--gf-fs-800);font-weight:var(--gf-fw-extrabold);color:var(--gf-color-text);line-height:var(--gf-lh-tight)}.gf-page-header__subtitle{margin:var(--gf-space-1) 0 0;color:var(--gf-color-text-muted);font-size:var(--gf-fs-400)}.gf-page-header__actions{display:flex;gap:var(--gf-space-2);align-items:center}.gf-page-header__actions:empty{display:none}.gf-stat-card{background:var(--gf-color-surface);border:1px solid var(--gf-color-border);border-radius:var(--gf-radius-lg);box-shadow:var(--gf-elevation-1);padding:var(--gf-space-6);display:flex;flex-direction:column;gap:var(--gf-space-2);min-height:120px;transition:box-shadow .15s ease,transform .15s ease}.gf-stat-card:hover{box-shadow:var(--gf-elevation-2)}.gf-stat-card__label{display:flex;align-items:center;gap:var(--gf-space-2);color:var(--gf-color-text-muted);font-size:var(--gf-fs-300);font-weight:var(--gf-fw-semibold);text-transform:uppercase;letter-spacing:.02em}.gf-stat-card__icon:empty{display:none}.gf-stat-card__value{margin:0;color:var(--gf-color-text);font-size:var(--gf-fs-900);font-weight:var(--gf-fw-extrabold);line-height:var(--gf-lh-tight)}.gf-stat-card__skeleton{width:60%;height:var(--gf-fs-900);border-radius:var(--gf-radius-sm);background:linear-gradient(90deg,var(--gf-color-surface-sunken) 0%,var(--gf-color-border) 50%,var(--gf-color-surface-sunken) 100%)}.gf-stat-card__trend{display:inline-flex;align-items:center;gap:var(--gf-space-1);font-size:var(--gf-fs-300);font-weight:var(--gf-fw-bold);color:var(--gf-color-text-subtle)}.gf-stat-card__trend.is-up{color:var(--gf-color-success)}.gf-stat-card__trend.is-down{color:var(--gf-color-danger)}.gf-stat-card__footer:empty{display:none}.gf-skeleton{display:block;width:100%;height:1em;border-radius:var(--gf-radius-sm);background:linear-gradient(90deg,var(--gf-color-surface-sunken) 25%,var(--gf-color-border) 37%,var(--gf-color-surface-sunken) 63%);background-size:300% 100%;animation:gfShimmer 1.4s ease-in-out infinite}.gf-skeleton+.gf-skeleton{margin-top:var(--gf-space-2)}.gf-skeleton--circle{border-radius:var(--gf-radius-pill)}@media (prefers-reduced-motion: reduce){.gf-skeleton{animation:none}}.gf-skeleton-list .ga-list-row{pointer-events:none}.gf-skeleton-table{width:100%}.gf-skeleton-table td{vertical-align:middle}.gf-spinner{display:inline-flex;flex-direction:column;align-items:center;gap:var(--gf-space-2)}.gf-spinner--centered{display:flex;width:100%;padding:var(--gf-space-9) 0}.gf-spinner__circle{border-radius:50%;border-style:solid;border-color:var(--gf-color-border);border-top-color:var(--gf-color-brand);animation:gfSpin .8s linear infinite;box-sizing:border-box}.gf-spinner__label{color:var(--gf-color-text-muted);font-size:var(--gf-fs-300)}@media (prefers-reduced-motion: reduce){.gf-spinner__circle{animation:none}}
