@charset "UTF-8";:root{--gym-black: #0a0a0a;--gym-gray-9: #111111;--gym-gray-8: #1c1c1c;--gym-gray-7: #2e2e2e;--gym-gray-6: #444444;--gym-gray-5: #767676;--gym-gray-4: #ababab;--gym-gray-3: #d0d0d0;--gym-gray-2: #e8e8e8;--gym-gray-1: #f4f4f4;--gym-white: #ffffff;--gym-bg: var(--gym-gray-1);--gym-surface: var(--gym-white);--gym-surface-inverse: var(--gym-gray-9);--gym-border: var(--gym-gray-2);--gym-border-strong: var(--gym-gray-3);--gym-text: var(--gym-black);--gym-text-muted: var(--gym-gray-5);--gym-text-subtle: var(--gym-gray-4);--gym-text-inverse: var(--gym-white);--gym-success: #1f9d55;--gym-success-bg: #e7f5ed;--gym-warning: #b7791f;--gym-warning-bg: #fdf3e0;--gym-danger: #c53030;--gym-danger-bg: #fdeaea;--gym-info: #2b6cb0;--gym-info-bg: #e8f0fa;--gym-font: "Figtree", -apple-system, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;--gym-font-mono: "DM Mono", "SF Mono", "Fira Code", "Courier New", monospace;--gym-text-2xs: 9px;--gym-text-xs: 11px;--gym-text-sm: 13px;--gym-text-base: 15px;--gym-text-md: 17px;--gym-text-lg: 20px;--gym-text-xl: 24px;--gym-text-2xl: 28px;--gym-text-3xl: 32px;--gym-text-display: 44px;--gym-text-hero: 62px;--gym-weight-medium: 500;--gym-weight-semibold: 600;--gym-weight-bold: 700;--gym-weight-extrabold: 800;--gym-weight-black: 900;--gym-tracking-tight: -1px;--gym-tracking-snug: -.5px;--gym-tracking-normal: -.2px;--gym-tracking-wide: .4px;--gym-radius-sm: 10px;--gym-radius-md: 16px;--gym-radius-lg: 22px;--gym-radius-xl: 28px;--gym-radius-pill: 999px;--gym-space-1: 4px;--gym-space-2: 8px;--gym-space-3: 12px;--gym-space-4: 16px;--gym-space-5: 20px;--gym-space-6: 24px;--gym-space-8: 32px;--gym-space-10: 40px;--gym-shadow-card: 0 1px 4px rgba(0, 0, 0, .1);--gym-shadow-modal: 0 8px 32px rgba(0, 0, 0, .5);--gym-ease: cubic-bezier(.4, 0, .2, 1);--gym-duration-fast: .15s;--gym-duration-base: .25s}.gym-status--approved,.gym-status--present{color:var(--gym-success);background:var(--gym-success-bg)}.gym-status--pending{color:var(--gym-warning);background:var(--gym-warning-bg)}.gym-status--rejected,.gym-status--absent{color:var(--gym-danger);background:var(--gym-danger-bg)}html{color-scheme:light}html{--mat-sys-background: #faf9fd;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f2f0f4;--mat-sys-inverse-primary: #abc7ff;--mat-sys-inverse-surface: #2f3033;--mat-sys-on-background: #1a1b1f;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #00458f;--mat-sys-on-primary-fixed: #001b3f;--mat-sys-on-primary-fixed-variant: #00458f;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #3e4759;--mat-sys-on-secondary-fixed: #131c2b;--mat-sys-on-secondary-fixed-variant: #3e4759;--mat-sys-on-surface: #1a1b1f;--mat-sys-on-surface-variant: #44474e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #00458f;--mat-sys-on-tertiary-fixed: #001b3f;--mat-sys-on-tertiary-fixed-variant: #00458f;--mat-sys-outline: #74777f;--mat-sys-outline-variant: #c4c6d0;--mat-sys-primary: #005cbb;--mat-sys-primary-container: #d7e3ff;--mat-sys-primary-fixed: #d7e3ff;--mat-sys-primary-fixed-dim: #abc7ff;--mat-sys-scrim: #000000;--mat-sys-secondary: #565e71;--mat-sys-secondary-container: #dae2f9;--mat-sys-secondary-fixed: #dae2f9;--mat-sys-secondary-fixed-dim: #bec6dc;--mat-sys-shadow: #000000;--mat-sys-surface: #faf9fd;--mat-sys-surface-bright: #faf9fd;--mat-sys-surface-container: #efedf0;--mat-sys-surface-container-high: #e9e7eb;--mat-sys-surface-container-highest: #e3e2e6;--mat-sys-surface-container-low: #f4f3f6;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #dbd9dd;--mat-sys-surface-tint: #005cbb;--mat-sys-surface-variant: #e0e2ec;--mat-sys-tertiary: #005cbb;--mat-sys-tertiary-container: #d7e3ff;--mat-sys-tertiary-fixed: #d7e3ff;--mat-sys-tertiary-fixed-dim: #abc7ff;--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f}html{--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-body-large: 400 1rem / 1.5rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-font: Figtree, -apple-system, "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500}html{--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px}html{--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}html{--mat-sys-primary: var(--gym-black);--mat-sys-on-primary: var(--gym-white)}.material-symbols-outlined{font-family:Material Symbols Outlined,sans-serif;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}mat-icon.material-symbols-outlined{font-size:24px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--gym-font);background:var(--gym-bg);color:var(--gym-text);-webkit-font-smoothing:antialiased}.gym-page{padding:var(--gym-space-6);max-width:1400px;margin:0 auto}.gym-page__header{display:flex;flex-wrap:wrap;gap:var(--gym-space-4);align-items:center;justify-content:space-between;margin-bottom:var(--gym-space-6)}.gym-page__title{font-size:var(--gym-text-2xl);font-weight:var(--gym-weight-extrabold);letter-spacing:var(--gym-tracking-snug);margin:0}.gym-page__subtitle{color:var(--gym-text-muted);font-size:var(--gym-text-sm);margin:var(--gym-space-1) 0 0}.gym-card{background:var(--gym-surface);border-radius:var(--gym-radius-md);box-shadow:var(--gym-shadow-card);padding:var(--gym-space-5)}.gym-toolbar{display:flex;flex-wrap:wrap;gap:var(--gym-space-3);align-items:center;margin-bottom:var(--gym-space-4)}.gym-spacer{flex:1 1 auto}.gym-numeric{font-family:var(--gym-font-mono);font-variant-numeric:tabular-nums}.gym-table-wrap{overflow-x:auto}table.gym-table{width:100%;min-width:720px}.gym-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--gym-radius-pill);font-size:var(--gym-text-xs);font-weight:var(--gym-weight-bold);letter-spacing:var(--gym-tracking-wide);text-transform:uppercase;white-space:nowrap}.gym-pill--active,.gym-pill--approved,.gym-pill--followed,.gym-pill--present{color:var(--gym-success);background:var(--gym-success-bg)}.gym-pill--pending,.gym-pill--needs_review{color:var(--gym-warning);background:var(--gym-warning-bg)}.gym-pill--inactive,.gym-pill--rejected,.gym-pill--not_followed,.gym-pill--absent,.gym-pill--expired{color:var(--gym-danger);background:var(--gym-danger-bg)}.gym-pill--info,.gym-pill--partially_followed{color:var(--gym-info);background:var(--gym-info-bg)}.gym-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gym-space-3);padding:var(--gym-space-10) var(--gym-space-5);text-align:center;color:var(--gym-text-muted)}.gym-state__icon{font-size:44px;width:44px;height:44px;color:var(--gym-text-subtle)}.gym-state__title{font-size:var(--gym-text-md);font-weight:var(--gym-weight-bold);color:var(--gym-text);margin:0}.gym-state__body{margin:0;max-width:42ch;font-size:var(--gym-text-sm)}.gym-snack--success{--mdc-snackbar-container-color: var(--gym-success);--mdc-snackbar-supporting-text-color: var(--gym-white);--mat-snack-bar-button-color: var(--gym-white)}.gym-snack--error{--mdc-snackbar-container-color: var(--gym-danger);--mdc-snackbar-supporting-text-color: var(--gym-white);--mat-snack-bar-button-color: var(--gym-white)}.gym-snack--info{--mdc-snackbar-container-color: var(--gym-gray-9);--mdc-snackbar-supporting-text-color: var(--gym-white);--mat-snack-bar-button-color: var(--gym-white)}.gym-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--gym-space-4) var(--gym-space-4)}.gym-form-grid--full{grid-column:1/-1}.gym-dialog-actions{display:flex;justify-content:flex-end;gap:var(--gym-space-2);padding-top:var(--gym-space-4)}@media(max-width:599px){.gym-page{padding:var(--gym-space-4) var(--gym-space-3)}}.spec-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.spec-chip{display:inline-block;padding:3px 10px;border-radius:var(--gym-radius-pill);background:var(--gym-gray-1);border:1px solid var(--gym-border);color:var(--gym-text);font-size:12px;font-weight:600;white-space:nowrap}.spec-chip--inactive{color:var(--gym-text-muted);border-style:dashed}
