:root{--color-green-50: #ecf6f0;--color-green-100: #d4ecdd;--color-green-200: #a8d9bb;--color-green-300: #6fbe8e;--color-green-400: #3ea069;--color-green-500: #1f7a47;--color-green-600: #16633a;--color-green-700: #114d2d;--color-green-800: #0c3a22;--color-green-900: #082818;--color-neutral-0: #ffffff;--color-neutral-25: #fafafa;--color-neutral-50: #f5f5f4;--color-neutral-100: #ececeb;--color-neutral-200: #d9d9d7;--color-neutral-300: #b8b8b5;--color-neutral-400: #8e8e8a;--color-neutral-500: #6b6b67;--color-neutral-600: #4f4f4c;--color-neutral-700: #3a3a37;--color-neutral-800: #232321;--color-neutral-900: #131312;--color-neutral-1000: #0a0a09;--color-success-50: #e8f6ec;--color-success-500: #2f9e54;--color-success-700: #1e6b39;--color-warning-50: #fdf4e3;--color-warning-500: #d99422;--color-warning-700: #8c5b10;--color-danger-50: #fdecec;--color-danger-500: #d94343;--color-danger-700: #8c2424;--color-info-50: #e8f0fb;--color-info-500: #3a78d6;--color-info-700: #234e8c;--color-court-clay: #b3583f;--color-court-clay-deep: #6e3325;--color-court-clay-edge: #4a2016;--color-court-hard: #3f6ea5;--color-court-hard-deep: #27425f;--color-court-hard-edge: #182c40;--color-court-grass: #4a7c48;--color-court-grass-deep: #2c4a2b;--color-court-grass-edge: #1c301b;--color-court-synthetic: #3f8a7c;--color-court-synthetic-deep: #29564d;--color-court-synthetic-edge: #193832;--color-court-carpet: #5a6472;--color-court-carpet-deep: #333a44;--color-court-carpet-edge: #20252c;--color-court-other: #6b705f;--color-court-other-deep: #3c4036;--color-court-other-edge: #262922;--font-family-sans: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-family-display: "Instrument Serif", "Iowan Old Style", "Palatino Linotype", Palatino, serif;--font-family-display-strong: "Archivo Black", "Arial Black", Impact, sans-serif;--font-family-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-size-2xs: .6875rem;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-md: .875rem;--font-size-base: .9375rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--font-size-2xl: 1.375rem;--font-size-3xl: 1.75rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.15;--line-height-snug: 1.3;--line-height-normal: 1.5;--line-height-relaxed: 1.65;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .04em;--letter-spacing-wider: .08em;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-none: 0;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-2xl: 28px;--radius-full: 9999px;--border-width-0: 0;--border-width-1: 1px;--border-width-2: 2px;--shadow-xs: 0 1px 2px rgba(15, 23, 18, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 18, .05), 0 1px 2px rgba(15, 23, 18, .04);--shadow-md: 0 4px 12px rgba(15, 23, 18, .06), 0 2px 4px rgba(15, 23, 18, .04);--shadow-lg: 0 10px 24px rgba(15, 23, 18, .08), 0 4px 8px rgba(15, 23, 18, .04);--shadow-xl: 0 20px 40px rgba(15, 23, 18, .12), 0 8px 16px rgba(15, 23, 18, .06);--shadow-focus: 0 0 0 4px rgba(31, 122, 71, .18);--duration-instant: 80ms;--duration-fast: .16s;--duration-base: .22s;--duration-slow: .32s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 1;--z-raised: 10;--z-sticky: 50;--z-dropdown: 100;--z-overlay: 300;--z-modal: 400;--z-toast: 500}:root,[data-theme=light]{color-scheme:light;--surface-canvas: var(--color-neutral-100);--surface-default: var(--color-neutral-0);--surface-raised: var(--color-neutral-0);--surface-sunken: var(--color-neutral-50);--surface-subtle: var(--color-neutral-100);--surface-brand-subtle: var(--color-green-50);--surface-inverse: var(--color-neutral-900);--surface-overlay: rgba(15, 23, 18, .45);--text-primary: var(--color-neutral-900);--text-secondary: var(--color-neutral-600);--text-tertiary: var(--color-neutral-400);--text-disabled: var(--color-neutral-300);--text-inverse: var(--color-neutral-0);--text-brand: var(--color-green-600);--text-on-brand: var(--color-neutral-0);--text-link: var(--color-green-600);--border-subtle: var(--color-neutral-100);--border-default: var(--color-neutral-200);--border-strong: var(--color-neutral-300);--border-brand: var(--color-green-500);--border-focus: var(--color-green-500);--action-primary-bg: var(--color-green-500);--action-primary-bg-hover: var(--color-green-600);--action-primary-bg-active: var(--color-green-700);--action-primary-fg: var(--color-neutral-0);--action-secondary-bg: var(--color-neutral-0);--action-secondary-bg-hover: var(--color-neutral-50);--action-secondary-bg-active: var(--color-neutral-100);--action-secondary-fg: var(--color-neutral-900);--action-secondary-border: var(--color-neutral-200);--action-ghost-bg-hover: var(--color-neutral-100);--action-ghost-fg: var(--color-neutral-700);--status-success-bg: var(--color-success-50);--status-success-fg: var(--color-success-700);--status-warning-bg: var(--color-warning-50);--status-warning-fg: var(--color-warning-700);--status-danger-bg: var(--color-danger-50);--status-danger-fg: var(--color-danger-700);--status-info-bg: var(--color-info-50);--status-info-fg: var(--color-info-700);--status-neutral-bg: var(--color-neutral-100);--status-neutral-fg: var(--color-neutral-700);--chart-series-1: var(--color-green-500);--chart-series-2: var(--color-green-300);--chart-series-3: var(--color-green-700);--chart-series-4: var(--color-neutral-300);--chart-grid: var(--color-neutral-100);--chart-track: var(--color-neutral-100);--card-bg: var(--surface-default);--card-border: var(--border-subtle);--card-shadow: var(--shadow-sm);--card-radius: var(--radius-xl);--input-bg: var(--surface-default);--input-bg-hover: var(--color-neutral-50);--input-border: var(--border-default);--input-border-hover: var(--border-strong);--input-fg: var(--text-primary);--input-placeholder: var(--text-tertiary);--sidebar-bg: var(--surface-default);--sidebar-item-fg: var(--text-secondary);--sidebar-item-fg-active: var(--text-brand);--sidebar-item-bg-active: var(--color-green-50);--sidebar-item-indicator: var(--color-green-500);--category-singles-fg: var(--color-green-700);--category-singles-bg: var(--color-green-50);--category-singles-border: rgba(31, 122, 71, .3);--category-doubles-fg: var(--color-info-700);--category-doubles-bg: var(--color-info-50);--category-doubles-border: rgba(58, 120, 214, .3);--category-lesson-fg: #4a307a;--category-lesson-bg: #f1ecfa;--category-lesson-border: rgba(122, 82, 214, .3);--category-clinic-fg: var(--color-warning-700);--category-clinic-bg: var(--color-warning-50);--category-clinic-border: rgba(217, 148, 34, .3);--category-tournament-fg: var(--color-danger-700);--category-tournament-bg: var(--color-danger-50);--category-tournament-border: rgba(217, 67, 67, .3);--category-maintenance-fg: var(--color-neutral-700);--category-maintenance-bg: var(--color-neutral-100);--category-maintenance-border: rgba(142, 142, 138, .4);--court-clay: var(--color-court-clay);--court-clay-deep: var(--color-court-clay-deep);--court-clay-edge: var(--color-court-clay-edge);--court-hard: var(--color-court-hard);--court-hard-deep: var(--color-court-hard-deep);--court-hard-edge: var(--color-court-hard-edge);--court-grass: var(--color-court-grass);--court-grass-deep: var(--color-court-grass-deep);--court-grass-edge: var(--color-court-grass-edge);--court-synthetic: var(--color-court-synthetic);--court-synthetic-deep: var(--color-court-synthetic-deep);--court-synthetic-edge: var(--color-court-synthetic-edge);--court-carpet: var(--color-court-carpet);--court-carpet-deep: var(--color-court-carpet-deep);--court-carpet-edge: var(--color-court-carpet-edge);--court-other: var(--color-court-other);--court-other-deep: var(--color-court-other-deep);--court-other-edge: var(--color-court-other-edge);--court-fill: var(--court-other);--court-fill-deep: var(--court-other-deep);--court-fill-edge: var(--court-other-edge);--court-line: color-mix(in srgb, var(--text-on-brand) 82%, transparent);--court-hero-fg: var(--text-on-brand);--court-hero-fg-muted: color-mix(in srgb, var(--text-on-brand) 65%, transparent);--court-hero-action-bg: var(--text-on-brand);--court-hero-action-fg: var(--color-neutral-900)}[data-theme=dark]{color-scheme:dark;--surface-canvas: var(--color-neutral-1000);--surface-default: var(--color-neutral-900);--surface-raised: var(--color-neutral-800);--surface-sunken: var(--color-neutral-1000);--surface-subtle: var(--color-neutral-800);--surface-brand-subtle: rgba(47, 158, 84, .16);--surface-inverse: var(--color-neutral-0);--surface-overlay: rgba(0, 0, 0, .6);--text-primary: var(--color-neutral-25);--text-secondary: var(--color-neutral-300);--text-tertiary: var(--color-neutral-500);--text-disabled: var(--color-neutral-600);--text-inverse: var(--color-neutral-900);--text-brand: var(--color-green-300);--text-on-brand: var(--color-neutral-0);--text-link: var(--color-green-300);--border-subtle: var(--color-neutral-800);--border-default: var(--color-neutral-700);--border-strong: var(--color-neutral-600);--border-brand: var(--color-green-400);--border-focus: var(--color-green-400);--action-primary-bg: var(--color-green-500);--action-primary-bg-hover: var(--color-green-400);--action-primary-bg-active: var(--color-green-600);--action-primary-fg: var(--color-neutral-0);--action-secondary-bg: var(--color-neutral-800);--action-secondary-bg-hover: var(--color-neutral-700);--action-secondary-bg-active: var(--color-neutral-600);--action-secondary-fg: var(--color-neutral-25);--action-secondary-border: var(--color-neutral-700);--action-ghost-bg-hover: var(--color-neutral-800);--action-ghost-fg: var(--color-neutral-300);--status-success-bg: rgba(47, 158, 84, .16);--status-success-fg: var(--color-green-300);--status-warning-bg: rgba(217, 148, 34, .16);--status-warning-fg: #f0b762;--status-danger-bg: rgba(217, 67, 67, .16);--status-danger-fg: #f08484;--status-info-bg: rgba(58, 120, 214, .16);--status-info-fg: #82aef0;--status-neutral-bg: var(--color-neutral-800);--status-neutral-fg: var(--color-neutral-300);--chart-series-1: var(--color-green-400);--chart-series-2: var(--color-green-200);--chart-series-3: var(--color-green-600);--chart-series-4: var(--color-neutral-700);--chart-grid: var(--color-neutral-800);--chart-track: var(--color-neutral-800);--card-bg: var(--surface-default);--card-border: var(--border-subtle);--card-shadow: 0 1px 2px rgba(0, 0, 0, .4);--card-radius: var(--radius-xl);--input-bg: var(--surface-raised);--input-bg-hover: var(--color-neutral-700);--input-border: var(--border-default);--input-border-hover: var(--border-strong);--input-fg: var(--text-primary);--input-placeholder: var(--text-tertiary);--sidebar-bg: var(--surface-default);--sidebar-item-fg: var(--text-secondary);--sidebar-item-fg-active: var(--color-green-300);--sidebar-item-bg-active: rgba(47, 158, 84, .16);--sidebar-item-indicator: var(--color-green-400);--category-singles-fg: var(--color-green-300);--category-singles-bg: rgba(62, 160, 105, .16);--category-singles-border: rgba(111, 190, 142, .35);--category-doubles-fg: #82aef0;--category-doubles-bg: rgba(58, 120, 214, .16);--category-doubles-border: rgba(58, 120, 214, .35);--category-lesson-fg: #b9a3e3;--category-lesson-bg: rgba(122, 82, 214, .16);--category-lesson-border: rgba(122, 82, 214, .35);--category-clinic-fg: #f0b762;--category-clinic-bg: rgba(217, 148, 34, .16);--category-clinic-border: rgba(217, 148, 34, .35);--category-tournament-fg: #f08484;--category-tournament-bg: rgba(217, 67, 67, .16);--category-tournament-border: rgba(217, 67, 67, .35);--category-maintenance-fg: var(--color-neutral-300);--category-maintenance-bg: var(--color-neutral-800);--category-maintenance-border: rgba(142, 142, 138, .4);--court-clay: var(--color-court-clay);--court-clay-deep: var(--color-court-clay-deep);--court-clay-edge: var(--color-court-clay-edge);--court-hard: var(--color-court-hard);--court-hard-deep: var(--color-court-hard-deep);--court-hard-edge: var(--color-court-hard-edge);--court-grass: var(--color-court-grass);--court-grass-deep: var(--color-court-grass-deep);--court-grass-edge: var(--color-court-grass-edge);--court-synthetic: var(--color-court-synthetic);--court-synthetic-deep: var(--color-court-synthetic-deep);--court-synthetic-edge: var(--color-court-synthetic-edge);--court-carpet: var(--color-court-carpet);--court-carpet-deep: var(--color-court-carpet-deep);--court-carpet-edge: var(--color-court-carpet-edge);--court-other: var(--color-court-other);--court-other-deep: var(--color-court-other-deep);--court-other-edge: var(--color-court-other-edge);--court-fill: var(--court-other);--court-fill-deep: var(--court-other-deep);--court-fill-edge: var(--court-other-edge);--court-line: color-mix(in srgb, var(--text-on-brand) 82%, transparent);--court-hero-fg: var(--text-on-brand);--court-hero-fg-muted: color-mix(in srgb, var(--text-on-brand) 65%, transparent);--court-hero-action-bg: var(--text-on-brand);--court-hero-action-fg: var(--color-neutral-900)}[data-court-surface=clay]{--court-fill: var(--court-clay);--court-fill-deep: var(--court-clay-deep);--court-fill-edge: var(--court-clay-edge)}[data-court-surface=hard]{--court-fill: var(--court-hard);--court-fill-deep: var(--court-hard-deep);--court-fill-edge: var(--court-hard-edge)}[data-court-surface=grass]{--court-fill: var(--court-grass);--court-fill-deep: var(--court-grass-deep);--court-fill-edge: var(--court-grass-edge)}[data-court-surface=synthetic]{--court-fill: var(--court-synthetic);--court-fill-deep: var(--court-synthetic-deep);--court-fill-edge: var(--court-synthetic-edge)}[data-court-surface=carpet]{--court-fill: var(--court-carpet);--court-fill-deep: var(--court-carpet-deep);--court-fill-edge: var(--court-carpet-edge)}[data-court-surface=other]{--court-fill: var(--court-other);--court-fill-deep: var(--court-other-deep);--court-fill-edge: var(--court-other-edge)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth;font-family:var(--font-family-sans);font-size:16px;font-weight:var(--font-weight-regular);color:var(--text-primary);background:var(--surface-canvas);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh;font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background:var(--surface-canvas)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}button{cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:focus-visible{outline:none;box-shadow:var(--shadow-focus)}::selection{background:var(--color-green-200);color:var(--color-green-900)}.u-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.u-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.u-text-secondary{color:var(--text-secondary)}.u-text-tertiary{color:var(--text-tertiary)}.u-text-brand{color:var(--text-brand)}.u-text-center{text-align:center}.u-stack{display:flex;flex-direction:column;gap:var(--space-4)}.u-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.u-container{width:min(100%,90rem);margin-inline:auto}.u-auto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--space-5)}.u-scroll-x{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.u-touch-target{min-width:2.75rem;min-height:2.75rem}.text-display{font-size:var(--font-size-5xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.text-h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.text-h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}.text-h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug)}.text-body{font-size:var(--font-size-base);line-height:var(--line-height-normal)}.text-body-sm{font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.text-caption{font-size:var(--font-size-xs);line-height:var(--line-height-normal);color:var(--text-secondary)}.text-eyebrow{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--text-tertiary)}.text-numeric{font-feature-settings:"tnum" 1,"lnum" 1;font-variant-numeric:tabular-nums lining-nums}.tn-button{appearance:none;border:var(--border-width-1) solid transparent;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:2.75rem;padding:0 var(--space-5);font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1;white-space:nowrap;text-decoration:none;-webkit-user-select:none;user-select:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.tn-button:active:not(:disabled,[aria-disabled=true]){transform:translateY(1px)}.tn-button:disabled,.tn-button[aria-disabled=true]{cursor:not-allowed;opacity:.5}.tn-button[data-variant=primary]{background:var(--action-primary-bg);border-color:var(--action-primary-bg);color:var(--action-primary-fg)}.tn-button[data-variant=primary]:hover:not(:disabled,[aria-disabled=true]){background:var(--action-primary-bg-hover);border-color:var(--action-primary-bg-hover)}.tn-button[data-variant=primary]:active:not(:disabled,[aria-disabled=true]){background:var(--action-primary-bg-active);border-color:var(--action-primary-bg-active)}.tn-button[data-variant=secondary]{background:var(--action-secondary-bg);border-color:var(--action-secondary-border);color:var(--action-secondary-fg)}.tn-button[data-variant=secondary]:hover:not(:disabled,[aria-disabled=true]){background:var(--action-secondary-bg-hover);border-color:var(--border-strong)}.tn-button[data-variant=ghost]{background:transparent;border-color:transparent;color:var(--action-ghost-fg)}.tn-button[data-variant=ghost]:hover:not(:disabled,[aria-disabled=true]){background:var(--action-ghost-bg-hover)}.tn-button[data-variant=danger]{background:var(--color-danger-500);border-color:var(--color-danger-500);color:var(--color-neutral-0)}.tn-button[data-variant=danger]:hover:not(:disabled,[aria-disabled=true]){background:var(--color-danger-700);border-color:var(--color-danger-700)}.court-slider .tn-button[data-variant=primary]{background:var(--court-hero-action-bg);border-color:var(--court-hero-action-bg);color:var(--court-hero-action-fg)}.court-slider .tn-button[data-variant=primary]:hover:not(:disabled,[aria-disabled=true]){background:color-mix(in srgb,var(--court-hero-action-bg) 88%,var(--court-hero-action-fg));border-color:color-mix(in srgb,var(--court-hero-action-bg) 88%,var(--court-hero-action-fg));color:var(--court-hero-action-fg)}.court-slider .tn-button[data-variant=secondary]{background:color-mix(in srgb,var(--court-hero-fg) 10%,transparent);border-color:color-mix(in srgb,var(--court-hero-fg) 28%,transparent);color:var(--court-hero-fg)}.court-slider .tn-button[data-variant=secondary]:hover:not(:disabled,[aria-disabled=true]){background:color-mix(in srgb,var(--court-hero-fg) 20%,transparent);border-color:color-mix(in srgb,var(--court-hero-fg) 40%,transparent);color:var(--court-hero-fg)}.tn-button[data-size=sm]{height:2rem;gap:var(--space-1);padding:0 var(--space-3);font-size:var(--font-size-sm)}.tn-button[data-size=lg]{height:3.25rem;padding:0 var(--space-7);font-size:var(--font-size-base)}.tn-button[data-size=icon]{width:2.75rem;padding:0}.tn-button[data-shape=rounded]{border-radius:var(--radius-md)}.tn-button[data-shape=square]{border-radius:var(--radius-none)}.tn-button[data-full=true]{width:100%}@media(pointer:coarse){.tn-button,.tn-input,.tn-select,.tn-badge[data-size=lg]{min-height:2.75rem}.tn-button[data-size=sm],.tn-button[data-size=icon]{min-width:2.75rem;min-height:2.75rem}}.tn-button svg{width:1.125em;height:1.125em;flex-shrink:0}.tn-input,.tn-select{width:100%;height:2.75rem;padding:0 var(--space-4);border:var(--border-width-1) solid var(--input-border);border-radius:var(--radius-full);outline:none;background-color:var(--input-bg);color:var(--input-fg);font-family:inherit;font-size:var(--font-size-md);transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.tn-select{appearance:none;-webkit-appearance:none;padding-inline-end:calc(var(--space-4) + 1.25rem);cursor:pointer}select.tn-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238e8e8a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-4) center;background-size:1rem}.tn-select-host{display:block;width:100%}.tn-select-control{position:relative;display:block;width:100%}button.tn-select{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-inline-end:var(--space-4);text-align:left;font-weight:inherit}.tn-select__value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tn-select__value--placeholder{color:var(--input-placeholder)}.tn-select__chevron{flex-shrink:0;color:var(--text-tertiary);transition:transform var(--duration-fast) var(--ease-out)}.tn-select__chevron--open{transform:rotate(180deg)}.tn-select-panel{position:absolute;top:calc(100% + var(--space-1));left:0;z-index:var(--z-dropdown);width:100%;padding:var(--space-1);border:var(--border-width-1) solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-default);box-shadow:var(--shadow-md);box-sizing:border-box;max-height:16rem;overflow:hidden;animation:tn-select-panel-in var(--duration-fast) var(--ease-out);transform-origin:top center}.tn-select-control:not([data-expanded=true]) .tn-select-panel{display:none}@keyframes tn-select-panel-in{0%{opacity:0;transform:translateY(-.25rem) scaleY(.96)}to{opacity:1;transform:translateY(0) scaleY(1)}}.tn-select-listbox{display:flex;flex-direction:column;gap:var(--space-1);max-height:calc(16rem - var(--space-2));margin:0;padding:0;overflow:auto;list-style:none;outline:none}[ngOption]{display:flex;align-items:center;min-height:2.25rem;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-md);line-height:var(--line-height-normal);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}[ngOption]:hover:not([aria-disabled=true]){background:var(--surface-sunken)}[ngOption][data-active=true]{background:var(--color-green-50);outline:2px solid color-mix(in srgb,var(--border-focus) 35%,transparent);outline-offset:-2px}[data-theme=dark] [ngOption][data-active=true]{background:#2f9e5429}[ngOption][aria-selected=true]{color:var(--text-brand);background:var(--color-green-50);font-weight:var(--font-weight-medium)}[data-theme=dark] [ngOption][aria-selected=true]{background:#2f9e5429}[ngOption][aria-disabled=true]{cursor:not-allowed;opacity:.5}.tn-input:hover:not(:disabled),.tn-select:hover:not(:disabled){border-color:var(--input-border-hover);background-color:var(--input-bg-hover)}.tn-input:focus-visible,.tn-select:focus-visible{border-color:var(--border-focus)}.tn-input::placeholder{color:var(--input-placeholder)}.tn-input:disabled,.tn-select:disabled{cursor:not-allowed;opacity:.55}.tn-input[aria-invalid=true],.tn-input[data-status=invalid],.tn-select[aria-invalid=true],.tn-select[data-status=invalid]{border-color:var(--color-danger-500)}.tn-input[data-size=sm],.tn-select[data-size=sm]{height:2rem;padding:0 var(--space-3);font-size:var(--font-size-sm)}.tn-select[data-size=sm]{padding-inline-end:calc(var(--space-3) + 1.25rem)}select.tn-select[data-size=sm]{background-position:right var(--space-3) center}.tn-input[data-size=lg],.tn-select[data-size=lg]{height:3.25rem;padding:0 var(--space-5);font-size:var(--font-size-base)}.tn-select[data-size=lg]{padding-inline-end:calc(var(--space-5) + 1.25rem)}select.tn-select[data-size=lg]{background-position:right var(--space-5) center}.tn-input[data-shape=rect],.tn-select[data-shape=rect]{border-radius:var(--radius-md)}textarea.tn-input{min-height:6rem;padding-block:var(--space-3);border-radius:var(--radius-md);resize:vertical}input[type=checkbox]{appearance:none;-webkit-appearance:none;flex-shrink:0;width:1.125rem;height:1.125rem;margin:0;border:var(--border-width-1) solid var(--input-border);border-radius:var(--radius-sm);background-color:var(--input-bg);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}input[type=checkbox]:hover:not(:disabled):not(:checked){border-color:var(--input-border-hover);background-color:var(--input-bg-hover)}input[type=checkbox]:checked{border-color:var(--action-primary-bg);background-color:var(--action-primary-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:.75rem}input[type=checkbox]:disabled{cursor:not-allowed;opacity:.55}.tn-badge{display:inline-flex;align-items:center;gap:var(--space-1);height:1.5rem;padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--status-neutral-bg);color:var(--status-neutral-fg);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:1;white-space:nowrap}.tn-badge[data-variant=success]{background:var(--status-success-bg);color:var(--status-success-fg)}.tn-badge[data-variant=warning]{background:var(--status-warning-bg);color:var(--status-warning-fg)}.tn-badge[data-variant=danger]{background:var(--status-danger-bg);color:var(--status-danger-fg)}.tn-badge[data-variant=info]{background:var(--status-info-bg);color:var(--status-info-fg)}.tn-badge[data-variant=brand]{background:var(--color-green-50);color:var(--color-green-700)}[data-theme=dark] .tn-badge[data-variant=brand]{background:#2f9e5429;color:var(--color-green-300)}.tn-badge[data-size=lg]{height:1.75rem;padding:0 var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.tn-badge[data-pill=true]{border-radius:var(--radius-full);padding-inline:var(--space-3)}.tn-badge[data-dot=true]:before{content:"";width:.4rem;height:.4rem;border-radius:var(--radius-full);background:currentColor}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tn-button,.tn-input,.tn-select{transition-duration:0ms}.tn-select-panel{animation:none}.tn-select__chevron{transition-duration:0ms}.tn-button:active:not(:disabled,[aria-disabled=true]){transform:none}}.dashboard-page{display:block;min-height:100vh;background:var(--surface-canvas)}.dashboard-page .app-shell{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:100vh;height:100dvh;overflow:hidden;background:var(--surface-default)}.dashboard-page .sidebar{position:relative;z-index:2;width:16rem;overflow:hidden;border-right:var(--border-width-1) solid var(--border-subtle);background:var(--surface-default);transition:width var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.dashboard-page[data-sidebar-open=false] .sidebar{width:0;border-right-color:transparent}.dashboard-page .sidebar-backdrop{display:none}@media(prefers-reduced-motion:reduce){.dashboard-page .sidebar,.dashboard-page .sidebar-backdrop{transition:none}}.dashboard-page .brand,.dashboard-page .nav-item,.dashboard-page .topbar,.dashboard-page .topbar__actions,.dashboard-page .search,.dashboard-page .user-chip,.dashboard-page .page-header,.dashboard-page .page-header__actions,.dashboard-page .reminder p,.dashboard-page .legend span{display:flex;align-items:center}.dashboard-page .brand{gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-4)}.dashboard-page .sidebar__nav,.dashboard-page .nav-group,.dashboard-page .main,.dashboard-page .reminder{display:flex;flex-direction:column}.dashboard-page .sidebar__nav{flex:1 1 auto;gap:var(--space-5)}.dashboard-page .nav-group{gap:var(--space-1)}.dashboard-page .nav-group__title{padding:var(--space-3) var(--space-4) var(--space-2);color:var(--text-tertiary);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase}.dashboard-page .nav-item{position:relative;gap:var(--space-3);height:2.75rem;padding:0 var(--space-4);border-radius:var(--radius-md);color:var(--sidebar-item-fg);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.dashboard-page .nav-item span:not(.tn-badge){flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-page .nav-item:hover{background:var(--surface-sunken);color:var(--text-primary)}.dashboard-page .nav-item--active{background:var(--sidebar-item-bg-active);color:var(--sidebar-item-fg-active)}.dashboard-page .nav-item--active:before{content:"";position:absolute;left:-1rem;top:50%;width:4px;height:1.5rem;transform:translateY(-50%);border-radius:var(--radius-full);background:var(--sidebar-item-indicator)}.dashboard-page .nav-disclosure{display:flex;flex-direction:column;gap:var(--space-1)}.dashboard-page .nav-disclosure>summary{list-style:none}.dashboard-page .nav-disclosure>summary::-webkit-details-marker{display:none}.dashboard-page .nav-disclosure>summary:after{content:"";width:.45rem;height:.45rem;flex-shrink:0;border-right:var(--border-width-2) solid currentColor;border-bottom:var(--border-width-2) solid currentColor;transform:rotate(45deg);transition:transform var(--duration-fast) var(--ease-out)}.dashboard-page .nav-disclosure[open]>summary:after{transform:rotate(225deg)}.dashboard-page .nav-submenu{display:flex;flex-direction:column;gap:var(--space-1);padding-left:var(--space-8)}.dashboard-page .nav-subitem{display:flex;align-items:center;min-height:2.25rem;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.dashboard-page .nav-subitem:hover,.dashboard-page .nav-subitem:focus-visible{background:var(--surface-sunken);color:var(--text-primary)}.dashboard-page .nav-subitem--active{background:var(--sidebar-item-bg-active);color:var(--sidebar-item-fg-active)}.dashboard-page .promo{margin-top:auto;padding:var(--space-4);border-radius:var(--radius-xl);background:var(--surface-sunken);color:var(--text-primary)}.dashboard-page .promo__icon{display:inline-flex;margin-bottom:var(--space-3);color:var(--text-brand)}.dashboard-page .promo p{margin-bottom:var(--space-3);font-size:var(--font-size-sm);line-height:var(--line-height-snug)}.dashboard-page .promo__cta{color:var(--text-brand);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.dashboard-page .main{min-width:0;min-height:0;overflow:hidden;gap:var(--space-5);padding:var(--space-6)}.dashboard-page .page-wrap{flex:1 1 auto;min-height:0;overflow-y:auto;background:var(--surface-sunken);border-radius:var(--radius-2xl);padding:var(--space-5)}.dashboard-page .page-wrap--flush{padding:0;border-radius:0;overflow:hidden}.dashboard-page .topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-2xl);background:var(--surface-sunken)}.dashboard-page .sidebar-toggle{flex-shrink:0}.dashboard-page .search{gap:var(--space-2);width:100%;max-width:28rem;min-width:0;justify-self:start;padding:0 var(--space-3) 0 var(--space-4);border:var(--border-width-1) solid var(--input-border);border-radius:var(--radius-full);background:var(--input-bg);cursor:text;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.dashboard-page .search:hover{border-color:var(--input-border-hover);background:var(--input-bg-hover)}.dashboard-page .search:focus-within{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.dashboard-page .search svg{flex-shrink:0;color:var(--text-tertiary)}.dashboard-page .search input,.dashboard-page .search input:hover:not(:disabled),.dashboard-page .search input:focus-visible{flex:1 1 auto;min-width:0;padding:0;border:none;background:transparent;box-shadow:none}.dashboard-page .kbd{display:inline-flex;align-items:center;height:1.5rem;padding:0 var(--space-2);border:var(--border-width-1) solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-default);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.dashboard-page .topbar__actions{gap:var(--space-2);flex-shrink:0;justify-self:end}.dashboard-page .page-header{align-items:flex-end;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--space-2) var(--space-4);flex-wrap:wrap}.dashboard-page .page-header h1{color:var(--text-primary);font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight)}.dashboard-page .page-header p{margin-top:var(--space-1);color:var(--text-secondary);font-size:var(--font-size-md)}.dashboard-page .page-header__actions{gap:var(--space-3);flex-wrap:wrap}.dashboard-page .catalog-page__actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}@media(max-width:767.98px){.dashboard-page .catalog-page__actions .tn-button{flex:1 1 auto}}.dashboard-page .admin-section{display:flex;flex-direction:column;gap:var(--space-5)}.dashboard-page .admin-table-wrap{position:relative;overflow:auto;max-height:var(--admin-table-max-height, 34rem);border:var(--border-width-1) solid var(--border-subtle);border-radius:var(--radius-lg);scrollbar-width:thin}.dashboard-page .admin-table{width:100%;min-width:var(--admin-table-min-width, 48rem);border-collapse:collapse;color:var(--text-primary)}.dashboard-page .admin-table th,.dashboard-page .admin-table td{padding:var(--space-3) var(--space-4);border-bottom:var(--border-width-1) solid var(--border-subtle);text-align:left;vertical-align:top;white-space:nowrap}.dashboard-page .admin-table th{position:sticky;top:0;z-index:1;background:var(--surface-sunken);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);box-shadow:inset 0 -1px 0 var(--border-subtle)}.dashboard-page .admin-table td{font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.dashboard-page .admin-table td small{display:block;margin-top:var(--space-1);color:var(--text-secondary);font-size:var(--font-size-xs)}.dashboard-page .admin-table tbody tr:hover{background:var(--surface-sunken)}.dashboard-page .admin-table tbody tr:last-child td{border-bottom:0}.dashboard-page .admin-table tbody tr.is-editing{background:var(--surface-sunken);outline:2px solid var(--action-primary-bg);outline-offset:-2px}.dashboard-page th.admin-table__actions,.dashboard-page td.admin-table__actions{text-align:right}.dashboard-page td.admin-table__actions>*+*{margin-left:var(--space-2)}.dashboard-page .admin-state{margin:0;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface-sunken);color:var(--text-secondary);font-size:var(--font-size-sm);text-align:center}.dashboard-page .admin-state--error{background:var(--status-danger-bg);color:var(--status-danger-fg);font-weight:var(--font-weight-semibold)}@media(max-width:640px){.dashboard-page .admin-table-wrap{max-height:none}.dashboard-page .admin-table{min-width:0}.dashboard-page .admin-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.dashboard-page .admin-table tbody,.dashboard-page .admin-table tr,.dashboard-page .admin-table td{display:block}.dashboard-page .admin-table tr{padding:var(--space-3) var(--space-4);border-bottom:var(--border-width-1) solid var(--border-subtle)}.dashboard-page .admin-table tbody tr:last-child{border-bottom:0}.dashboard-page .admin-table td{padding:var(--space-1) 0;border:0;white-space:normal}.dashboard-page .admin-table td[data-label]:before{content:attr(data-label);display:block;margin-bottom:var(--space-1);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.dashboard-page .admin-table td small{margin-top:0}.dashboard-page .admin-table td :where(input,select){width:100%}.dashboard-page td.admin-table__actions{display:flex;justify-content:flex-start;padding-top:var(--space-2);text-align:left}.dashboard-page td.admin-table__actions:before{content:none}}.dashboard-page .dash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5)}.dashboard-page .span-2{grid-column:span 2}.dashboard-page .span-4{grid-column:1 / -1}.dashboard-page .reminder{gap:var(--space-3)}.dashboard-page .reminder h2{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight)}.dashboard-page .reminder p{gap:var(--space-2);margin-bottom:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-sm)}.dashboard-page .center-card{align-items:center;text-align:center}.dashboard-page .center-card tn-card-header{width:100%}.dashboard-page .center-card tn-card-content{align-items:center;gap:var(--space-3)}.dashboard-page .legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-5);color:var(--text-secondary);font-size:var(--font-size-sm)}.dashboard-page .legend span{gap:var(--space-2)}.dashboard-page .legend i{width:.75rem;height:.75rem;border-radius:var(--radius-full);background:var(--chart-series-1)}.dashboard-page .legend__dark{background:var(--chart-track)!important}.dashboard-page .legend__pattern{border:1px solid var(--chart-grid);background:repeating-linear-gradient(45deg,var(--chart-series-4) 0 3px,transparent 3px 6px)!important}@media(max-width:1279.98px){.dashboard-page .dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1023.98px){.dashboard-page .app-shell{grid-template-columns:minmax(0,1fr);height:auto;min-height:100dvh}.dashboard-page .main,.dashboard-page .page-wrap:not(.page-wrap--flush){overflow:visible}.dashboard-page .sidebar,.dashboard-page .main{grid-column:1;grid-row:1}.dashboard-page .sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:min(16rem,88vw);height:100dvh;align-self:start;border-right:var(--border-width-1) solid var(--border-subtle);border-bottom:0;box-shadow:var(--shadow-md);transform:translate(-100%);transition:transform var(--duration-base) var(--ease-out);pointer-events:none}.dashboard-page[data-sidebar-open=true] .sidebar{width:min(16rem,88vw);transform:translate(0);pointer-events:auto}.dashboard-page[data-sidebar-open=false] .sidebar{width:min(16rem,88vw);border-right-color:var(--border-subtle)}.dashboard-page .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:30;margin:0;padding:0;border:0;background:#00000047;opacity:0;pointer-events:none;cursor:pointer;transition:opacity var(--duration-base) var(--ease-out)}.dashboard-page .sidebar-backdrop--visible{opacity:1;pointer-events:auto}.dashboard-page .promo{display:none}}@media(max-width:767.98px){.dashboard-page .main,.dashboard-page .sidebar .sidebar__inner{padding:var(--space-4)}.dashboard-page .topbar{gap:var(--space-2);padding:var(--space-2)}.dashboard-page .topbar__actions{gap:var(--space-1)}.dashboard-page .search{max-width:none;padding:0 var(--space-2) 0 var(--space-3)}.dashboard-page .kbd{display:none}.dashboard-page .page-header{align-items:stretch}.dashboard-page .page-header,.dashboard-page .page-header__actions{flex-direction:column}.dashboard-page .page-header__actions .tn-button{width:100%}}@media(max-width:479.98px){.dashboard-page .dash-grid{grid-template-columns:1fr}.dashboard-page .span-2{grid-column:span 1}.dashboard-page .page-header h1{font-size:var(--font-size-3xl)}}.tn-confirm-dialog-backdrop{background:var(--surface-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tn-confirm-dialog-panel{display:flex;align-items:center;justify-content:center;padding:var(--space-4);max-width:100%}.tn-confirm-dialog-panel .mat-mdc-dialog-surface{border-radius:var(--radius-xl);box-shadow:none;background:transparent;overflow:visible}.tn-command-palette-backdrop{background:var(--surface-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tn-command-palette-panel{display:flex;align-items:center;justify-content:center;padding:var(--space-4);max-width:100%}.tn-command-palette-panel .mat-mdc-dialog-surface{width:min(36rem,calc(100vw - 2rem));margin:0;border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:var(--surface-default);box-shadow:var(--shadow-lg);overflow:hidden}.tn-calendar-detail-dialog-backdrop{background:var(--surface-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tn-calendar-detail-dialog-panel{display:flex;align-items:center;justify-content:center;padding:var(--space-4);max-width:100%}.tn-calendar-detail-dialog-panel .mat-mdc-dialog-surface{border-radius:var(--radius-xl);box-shadow:none;background:transparent;overflow:visible}
