/* node_modules/m3-components/styles/md/sys/md-color-tokens.css */
/*!
 * 铁律 167: 只许 Updated 色板三色（像素实测）
 * #FEF7FF / #EBDDFF / #4F378B
 * 图证: docs/m3/color/updated-primary-container-four-swatch.png
 */
@layer md.sys.color {
  :root {
    --buncss-light: initial;
    --buncss-dark: ;
    color-scheme: light dark;
    --md-sys-color-primary: #4f378b;
    --md-sys-color-on-primary: #fef7ff;
    --md-sys-color-primary-container: #ebddff;
    --md-sys-color-on-primary-container: #4f378b;
    --md-sys-color-primary-fixed: #ebddff;
    --md-sys-color-primary-fixed-dim: #ebddff;
    --md-sys-color-on-primary-fixed: #4f378b;
    --md-sys-color-on-primary-fixed-variant: #4f378b;
    --md-sys-color-secondary: #4f378b;
    --md-sys-color-on-secondary: #fef7ff;
    --md-sys-color-secondary-container: #ebddff;
    --md-sys-color-on-secondary-container: #4f378b;
    --md-sys-color-secondary-fixed: #ebddff;
    --md-sys-color-secondary-fixed-dim: #ebddff;
    --md-sys-color-on-secondary-fixed: #4f378b;
    --md-sys-color-on-secondary-fixed-variant: #4f378b;
    --md-sys-color-tertiary: #4f378b;
    --md-sys-color-on-tertiary: #fef7ff;
    --md-sys-color-tertiary-container: #ebddff;
    --md-sys-color-on-tertiary-container: #4f378b;
    --md-sys-color-tertiary-fixed: #ebddff;
    --md-sys-color-tertiary-fixed-dim: #ebddff;
    --md-sys-color-on-tertiary-fixed: #4f378b;
    --md-sys-color-on-tertiary-fixed-variant: #4f378b;
    --md-sys-color-error: #4f378b;
    --md-sys-color-on-error: #fef7ff;
    --md-sys-color-error-container: #ebddff;
    --md-sys-color-on-error-container: #4f378b;
    --md-sys-color-surface: #fef7ff;
    --md-sys-color-surface-dim: #fef7ff;
    --md-sys-color-surface-bright: #fef7ff;
    --md-sys-color-surface-container-lowest: #fef7ff;
    --md-sys-color-surface-container-low: #fef7ff;
    --md-sys-color-surface-container: #ebddff;
    --md-sys-color-surface-container-high: #ebddff;
    --md-sys-color-surface-container-highest: #ebddff;
    --md-sys-color-on-surface: #4f378b;
    --md-sys-color-on-surface-variant: #4f378b;
    --md-sys-color-outline: #4f378b;
    --md-sys-color-outline-variant: #ebddff;
    --md-sys-color-inverse-surface: #4f378b;
    --md-sys-color-inverse-on-surface: #ebddff;
    --md-sys-color-inverse-primary: #ebddff;
    --md-sys-color-scrim: #4f378b;
    --md-sys-color-shadow: #4f378b;
  }

  @media (prefers-color-scheme: dark) {
    :root {
      --buncss-light: ;
      --buncss-dark: initial;
    }
  }
}

/* node_modules/m3-components/styles/md/sys/md-color-tokens-full.css */
/*!
 * 铁律 167: full 文件亦只许三色；禁止 MCU 多色板
 * #FEF7FF / #EBDDFF / #4F378B
 */
@layer md.sys.color {
  :root {
    --buncss-light: initial;
    --buncss-dark: ;
    color-scheme: light dark;
    --md-sys-color-primary: #4f378b;
    --md-sys-color-on-primary: #fef7ff;
    --md-sys-color-primary-container: #ebddff;
    --md-sys-color-on-primary-container: #4f378b;
    --md-sys-color-primary-fixed: #ebddff;
    --md-sys-color-primary-fixed-dim: #ebddff;
    --md-sys-color-on-primary-fixed: #4f378b;
    --md-sys-color-on-primary-fixed-variant: #4f378b;
    --md-sys-color-secondary: #4f378b;
    --md-sys-color-on-secondary: #fef7ff;
    --md-sys-color-secondary-container: #ebddff;
    --md-sys-color-on-secondary-container: #4f378b;
    --md-sys-color-secondary-fixed: #ebddff;
    --md-sys-color-secondary-fixed-dim: #ebddff;
    --md-sys-color-on-secondary-fixed: #4f378b;
    --md-sys-color-on-secondary-fixed-variant: #4f378b;
    --md-sys-color-tertiary: #4f378b;
    --md-sys-color-on-tertiary: #fef7ff;
    --md-sys-color-tertiary-container: #ebddff;
    --md-sys-color-on-tertiary-container: #4f378b;
    --md-sys-color-tertiary-fixed: #ebddff;
    --md-sys-color-tertiary-fixed-dim: #ebddff;
    --md-sys-color-on-tertiary-fixed: #4f378b;
    --md-sys-color-on-tertiary-fixed-variant: #4f378b;
    --md-sys-color-error: #4f378b;
    --md-sys-color-on-error: #fef7ff;
    --md-sys-color-error-container: #ebddff;
    --md-sys-color-on-error-container: #4f378b;
    --md-sys-color-surface: #fef7ff;
    --md-sys-color-surface-dim: #fef7ff;
    --md-sys-color-surface-bright: #fef7ff;
    --md-sys-color-surface-container-lowest: #fef7ff;
    --md-sys-color-surface-container-low: #fef7ff;
    --md-sys-color-surface-container: #ebddff;
    --md-sys-color-surface-container-high: #ebddff;
    --md-sys-color-surface-container-highest: #ebddff;
    --md-sys-color-on-surface: #4f378b;
    --md-sys-color-on-surface-variant: #4f378b;
    --md-sys-color-outline: #4f378b;
    --md-sys-color-outline-variant: #ebddff;
    --md-sys-color-inverse-surface: #4f378b;
    --md-sys-color-inverse-on-surface: #ebddff;
    --md-sys-color-inverse-primary: #ebddff;
    --md-sys-color-scrim: #4f378b;
    --md-sys-color-shadow: #4f378b;
    --md-ref-palette-primary0: #4f378b;
    --md-ref-palette-primary10: #4f378b;
    --md-ref-palette-primary20: #4f378b;
    --md-ref-palette-primary30: #4f378b;
    --md-ref-palette-primary40: #4f378b;
    --md-ref-palette-primary50: #4f378b;
    --md-ref-palette-primary60: #4f378b;
    --md-ref-palette-primary70: #ebddff;
    --md-ref-palette-primary80: #ebddff;
    --md-ref-palette-primary90: #ebddff;
    --md-ref-palette-primary95: #fef7ff;
    --md-ref-palette-primary98: #fef7ff;
    --md-ref-palette-primary99: #fef7ff;
    --md-ref-palette-primary100: #fef7ff;
    --md-ref-palette-secondary0: #4f378b;
    --md-ref-palette-secondary10: #4f378b;
    --md-ref-palette-secondary20: #4f378b;
    --md-ref-palette-secondary30: #4f378b;
    --md-ref-palette-secondary40: #4f378b;
    --md-ref-palette-secondary50: #4f378b;
    --md-ref-palette-secondary60: #4f378b;
    --md-ref-palette-secondary70: #ebddff;
    --md-ref-palette-secondary80: #ebddff;
    --md-ref-palette-secondary90: #ebddff;
    --md-ref-palette-secondary95: #fef7ff;
    --md-ref-palette-secondary98: #fef7ff;
    --md-ref-palette-secondary99: #fef7ff;
    --md-ref-palette-secondary100: #fef7ff;
    --md-ref-palette-tertiary0: #4f378b;
    --md-ref-palette-tertiary10: #4f378b;
    --md-ref-palette-tertiary20: #4f378b;
    --md-ref-palette-tertiary30: #4f378b;
    --md-ref-palette-tertiary40: #4f378b;
    --md-ref-palette-tertiary50: #4f378b;
    --md-ref-palette-tertiary60: #4f378b;
    --md-ref-palette-tertiary70: #ebddff;
    --md-ref-palette-tertiary80: #ebddff;
    --md-ref-palette-tertiary90: #ebddff;
    --md-ref-palette-tertiary95: #fef7ff;
    --md-ref-palette-tertiary98: #fef7ff;
    --md-ref-palette-tertiary99: #fef7ff;
    --md-ref-palette-tertiary100: #fef7ff;
    --md-ref-palette-neutral0: #4f378b;
    --md-ref-palette-neutral4: #4f378b;
    --md-ref-palette-neutral6: #4f378b;
    --md-ref-palette-neutral10: #4f378b;
    --md-ref-palette-neutral12: #4f378b;
    --md-ref-palette-neutral17: #4f378b;
    --md-ref-palette-neutral20: #4f378b;
    --md-ref-palette-neutral22: #4f378b;
    --md-ref-palette-neutral24: #4f378b;
    --md-ref-palette-neutral30: #4f378b;
    --md-ref-palette-neutral40: #4f378b;
    --md-ref-palette-neutral50: #4f378b;
    --md-ref-palette-neutral60: #4f378b;
    --md-ref-palette-neutral70: #ebddff;
    --md-ref-palette-neutral80: #ebddff;
    --md-ref-palette-neutral87: #ebddff;
    --md-ref-palette-neutral90: #ebddff;
    --md-ref-palette-neutral92: #ebddff;
    --md-ref-palette-neutral94: #ebddff;
    --md-ref-palette-neutral95: #fef7ff;
    --md-ref-palette-neutral96: #fef7ff;
    --md-ref-palette-neutral98: #fef7ff;
    --md-ref-palette-neutral99: #fef7ff;
    --md-ref-palette-neutral100: #fef7ff;
    --md-ref-palette-neutral-variant0: #4f378b;
    --md-ref-palette-neutral-variant10: #4f378b;
    --md-ref-palette-neutral-variant20: #4f378b;
    --md-ref-palette-neutral-variant30: #4f378b;
    --md-ref-palette-neutral-variant40: #4f378b;
    --md-ref-palette-neutral-variant50: #4f378b;
    --md-ref-palette-neutral-variant60: #4f378b;
    --md-ref-palette-neutral-variant70: #ebddff;
    --md-ref-palette-neutral-variant80: #ebddff;
    --md-ref-palette-neutral-variant90: #ebddff;
    --md-ref-palette-neutral-variant95: #fef7ff;
    --md-ref-palette-neutral-variant98: #fef7ff;
    --md-ref-palette-neutral-variant99: #fef7ff;
    --md-ref-palette-neutral-variant100: #fef7ff;
    --md-ref-palette-error0: #4f378b;
    --md-ref-palette-error10: #4f378b;
    --md-ref-palette-error20: #4f378b;
    --md-ref-palette-error30: #4f378b;
    --md-ref-palette-error40: #4f378b;
    --md-ref-palette-error50: #4f378b;
    --md-ref-palette-error60: #4f378b;
    --md-ref-palette-error70: #ebddff;
    --md-ref-palette-error80: #ebddff;
    --md-ref-palette-error90: #ebddff;
    --md-ref-palette-error95: #fef7ff;
    --md-ref-palette-error98: #fef7ff;
    --md-ref-palette-error99: #fef7ff;
    --md-ref-palette-error100: #fef7ff;
    --md-ref-palette-black: #4f378b;
    --md-ref-palette-white: #fef7ff;
  }

  @media (prefers-color-scheme: dark) {
    :root {
      --buncss-light: ;
      --buncss-dark: initial;
    }
  }
}

/* node_modules/m3-components/styles/md/sys/md-typography-tokens.css */
/*!
 * Copyright 2026 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 *
 * 两档字号：标题 1rem / 1.5rem / medium(500)；文字 0.875rem / 1.25rem / regular(400)
 */
@layer md.sys.typescale {
  :root {
    --md-ref-typeface-brand: var(--md-ref-typeface-plain);
    --md-ref-typeface-plain: Roboto Flex, Roboto, Noto Sans, system-ui, sans-serif;
    --md-ref-typeface-weight-regular: 400;
    --md-ref-typeface-weight-medium: 500;
    --md-ref-typeface-weight-bold: 700;
    --md-sys-typescale-label-sm: var(--md-ref-typeface-weight-regular) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-label-sm-tracking: .03125rem;
    --md-sys-typescale-label-sm-axes: normal;
    --md-sys-typescale-emphasized-label-sm: var(--md-ref-typeface-weight-bold) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-emphasized-label-sm-axes: "ROND" 100;
    --md-sys-typescale-label-md: var(--md-ref-typeface-weight-regular) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-label-md-tracking: .03125rem;
    --md-sys-typescale-label-md-axes: normal;
    --md-sys-typescale-emphasized-label-md: var(--md-ref-typeface-weight-bold) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-emphasized-label-md-axes: "ROND" 100;
    --md-sys-typescale-label-lg: var(--md-ref-typeface-weight-regular) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-label-lg-tracking: .00625rem;
    --md-sys-typescale-label-lg-axes: normal;
    --md-sys-typescale-emphasized-label-lg: var(--md-ref-typeface-weight-bold) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-emphasized-label-lg-axes: "ROND" 100;
    --md-sys-typescale-body-sm: var(--md-ref-typeface-weight-regular) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-body-sm-tracking: .025rem;
    --md-sys-typescale-body-sm-axes: normal;
    --md-sys-typescale-emphasized-body-sm: var(--md-ref-typeface-weight-medium) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-emphasized-body-sm-axes: "ROND" 100;
    --md-sys-typescale-body-md: var(--md-ref-typeface-weight-regular) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-body-md-tracking: .015625rem;
    --md-sys-typescale-body-md-axes: normal;
    --md-sys-typescale-emphasized-body-md: var(--md-ref-typeface-weight-medium) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-emphasized-body-md-axes: "ROND" 100;
    --md-sys-typescale-body-lg: var(--md-ref-typeface-weight-regular) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-body-lg-tracking: .03125rem;
    --md-sys-typescale-body-lg-axes: normal;
    --md-sys-typescale-emphasized-body-lg: var(--md-ref-typeface-weight-medium) .875rem / 1.25rem var(--md-ref-typeface-plain);
    --md-sys-typescale-emphasized-body-lg-axes: "ROND" 100;
    --md-sys-typescale-title-sm: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-plain);
    --md-sys-typescale-title-sm-tracking: .00625rem;
    --md-sys-typescale-title-sm-axes: normal;
    --md-sys-typescale-emphasized-title-sm: var(--md-ref-typeface-weight-bold) 1rem / 1.5rem var(--md-ref-typeface-plain);
    --md-sys-typescale-emphasized-title-sm-axes: "ROND" 100;
    --md-sys-typescale-title-md: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-plain);
    --md-sys-typescale-title-md-tracking: .009375rem;
    --md-sys-typescale-title-md-axes: normal;
    --md-sys-typescale-emphasized-title-md: var(--md-ref-typeface-weight-bold) 1rem / 1.5rem var(--md-ref-typeface-plain);
    --md-sys-typescale-emphasized-title-md-axes: "ROND" 100;
    --md-sys-typescale-title-lg: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-title-lg-tracking: 0rem;
    --md-sys-typescale-title-lg-axes: normal;
    --md-sys-typescale-emphasized-title-lg: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-emphasized-title-lg-axes: "ROND" 100;
    --md-sys-typescale-headline-sm: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-headline-sm-tracking: 0rem;
    --md-sys-typescale-headline-sm-axes: normal;
    --md-sys-typescale-emphasized-headline-sm: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-emphasized-headline-sm-axes: "ROND" 100;
    --md-sys-typescale-headline-md: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-headline-md-tracking: 0rem;
    --md-sys-typescale-headline-md-axes: normal;
    --md-sys-typescale-emphasized-headline-md: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-emphasized-headline-md-axes: "ROND" 100;
    --md-sys-typescale-headline-lg: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-headline-lg-tracking: 0rem;
    --md-sys-typescale-headline-lg-axes: normal;
    --md-sys-typescale-emphasized-headline-lg: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-emphasized-headline-lg-axes: "ROND" 100;
    --md-sys-typescale-display-sm: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-display-sm-tracking: 0rem;
    --md-sys-typescale-display-sm-axes: normal;
    --md-sys-typescale-emphasized-display-sm: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-emphasized-display-sm-axes: "ROND" 100;
    --md-sys-typescale-display-md: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-display-md-tracking: 0rem;
    --md-sys-typescale-display-md-axes: normal;
    --md-sys-typescale-emphasized-display-md: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-emphasized-display-md-axes: "ROND" 100;
    --md-sys-typescale-display-lg: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-display-lg-tracking: -.015625rem;
    --md-sys-typescale-display-lg-axes: normal;
    --md-sys-typescale-emphasized-display-lg: var(--md-ref-typeface-weight-medium) 1rem / 1.5rem var(--md-ref-typeface-brand);
    --md-sys-typescale-emphasized-display-lg-axes: "ROND" 100;
  }
}

/* node_modules/m3-components/styles/md/sys/md-shape-tokens.css */
/*!
 * Copyright 2026 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
@layer md.sys.shape {
  :root {
    --md-sys-shape-corner-none: 0px;
    --md-sys-shape-corner-xs: 4px;
    --md-sys-shape-corner-sm: 8px;
    --md-sys-shape-corner-md: 12px;
    --md-sys-shape-corner-lg: 16px;
    --md-sys-shape-corner-lg-increased: 20px;
    --md-sys-shape-corner-xl: 28px;
    --md-sys-shape-corner-xl-increased: 32px;
    --md-sys-shape-corner-xxl: 48px;
    --md-sys-shape-corner-full: 9999px;
  }
}

/* node_modules/m3-components/styles/md/sys/md-elevation-tokens.css */
/*!
 * Copyright 2026 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
@layer md.sys.elevation {
  :root {
    --md-sys-elevation-shadow-0: none;
    --md-sys-elevation-shadow-1: 0 1px 2px 0 hsl(from var(--md-sys-color-shadow) h s l / .3), 0 1px 3px 1px hsl(from var(--md-sys-color-shadow) h s l / .15);
    --md-sys-elevation-shadow-2: 0 1px 2px 0 hsl(from var(--md-sys-color-shadow) h s l / .3), 0 2px 6px 2px hsl(from var(--md-sys-color-shadow) h s l / .15);
    --md-sys-elevation-shadow-3: 0 1px 3px 0 hsl(from var(--md-sys-color-shadow) h s l / .3), 0 4px 8px 3px hsl(from var(--md-sys-color-shadow) h s l / .15);
    --md-sys-elevation-shadow-4: 0 2px 3px 0 hsl(from var(--md-sys-color-shadow) h s l / .3), 0 6px 10px 4px hsl(from var(--md-sys-color-shadow) h s l / .15);
    --md-sys-elevation-shadow-5: 0 4px 4px 0 hsl(from var(--md-sys-color-shadow) h s l / .3), 0 8px 12px 6px hsl(from var(--md-sys-color-shadow) h s l / .15);
  }
}

/* node_modules/m3-components/styles/md/sys/md-space-tokens.css */
/*!
 * Copyright 2026 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
@layer md.sys.space {
  :root {
    --md-sys-space-unit: 8px;
    --md-sys-space-0: calc(var(--md-sys-space-unit) * 0);
    --md-sys-space-25: calc(var(--md-sys-space-unit) * .25);
    --md-sys-space-50: calc(var(--md-sys-space-unit) * .5);
    --md-sys-space-75: calc(var(--md-sys-space-unit) * .75);
    --md-sys-space-100: var(--md-sys-space-unit);
    --md-sys-space-125: calc(var(--md-sys-space-unit) * 1.25);
    --md-sys-space-150: calc(var(--md-sys-space-unit) * 1.5);
    --md-sys-space-175: calc(var(--md-sys-space-unit) * 1.75);
    --md-sys-space-200: calc(var(--md-sys-space-unit) * 2);
    --md-sys-space-250: calc(var(--md-sys-space-unit) * 2.5);
    --md-sys-space-300: calc(var(--md-sys-space-unit) * 3);
    --md-sys-space-400: calc(var(--md-sys-space-unit) * 4);
    --md-sys-space-450: calc(var(--md-sys-space-unit) * 4.5);
    --md-sys-space-500: calc(var(--md-sys-space-unit) * 5);
    --md-sys-space-600: calc(var(--md-sys-space-unit) * 6);
    --md-sys-space-700: calc(var(--md-sys-space-unit) * 7);
    --md-sys-space-800: calc(var(--md-sys-space-unit) * 8);
    --md-sys-space-900: calc(var(--md-sys-space-unit) * 9);
  }
}

/* node_modules/m3-components/styles/md/sys/md-motion-tokens-easing.css */
/*!
 * Copyright 2026 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
@layer md.sys.motion {
  :root {
    --md-sys-motion-easing-standard: cubic-bezier(.2, 0, 0, 1);
    --md-sys-motion-easing-standard-accelerate: cubic-bezier(.3, 0, 1, 1);
    --md-sys-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
    --md-sys-motion-easing-emphasized: cubic-bezier(.2, 0, 0, 1);
    --md-sys-motion-easing-emphasized-accelerate: cubic-bezier(.3, 0, .8, .15);
    --md-sys-motion-easing-emphasized-decelerate: cubic-bezier(.05, .7, .1, 1);
    --md-sys-motion-duration-short1: 50ms;
    --md-sys-motion-duration-short2: .1s;
    --md-sys-motion-duration-short3: .15s;
    --md-sys-motion-duration-short4: .2s;
    --md-sys-motion-duration-medium1: .25s;
    --md-sys-motion-duration-medium2: .3s;
    --md-sys-motion-duration-medium3: .35s;
    --md-sys-motion-duration-medium4: .4s;
    --md-sys-motion-duration-long1: .45s;
    --md-sys-motion-duration-long2: .5s;
    --md-sys-motion-duration-long3: .55s;
    --md-sys-motion-duration-long4: .6s;
    --md-sys-motion-duration-extra-long1: .7s;
    --md-sys-motion-duration-extra-long2: .8s;
    --md-sys-motion-duration-extra-long3: .9s;
    --md-sys-motion-duration-extra-long4: 1s;
  }
}

/* node_modules/m3-components/styles/md/comp/typography/md-typescale-styles.css */
@layer {
  .md-typescale-display-small, .md-typescale-display-small-prominent {
    font: var(--md-sys-typescale-display-small-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-display-small-size, 2.25rem) / var(--md-sys-typescale-display-small-line-height, 2.75rem) var(--md-sys-typescale-display-small-font, var(--md-ref-typeface-brand, Roboto));
  }

  .md-typescale-display-medium, .md-typescale-display-medium-prominent {
    font: var(--md-sys-typescale-display-medium-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-display-medium-size, 2.8125rem) / var(--md-sys-typescale-display-medium-line-height, 3.25rem) var(--md-sys-typescale-display-medium-font, var(--md-ref-typeface-brand, Roboto));
  }

  .md-typescale-display-large, .md-typescale-display-large-prominent {
    font: var(--md-sys-typescale-display-large-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-display-large-size, 3.5625rem) / var(--md-sys-typescale-display-large-line-height, 4rem) var(--md-sys-typescale-display-large-font, var(--md-ref-typeface-brand, Roboto));
  }

  .md-typescale-headline-small, .md-typescale-headline-small-prominent {
    font: var(--md-sys-typescale-headline-small-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-headline-small-size, 1.5rem) / var(--md-sys-typescale-headline-small-line-height, 2rem) var(--md-sys-typescale-headline-small-font, var(--md-ref-typeface-brand, Roboto));
  }

  .md-typescale-headline-medium, .md-typescale-headline-medium-prominent {
    font: var(--md-sys-typescale-headline-medium-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-headline-medium-size, 1.75rem) / var(--md-sys-typescale-headline-medium-line-height, 2.25rem) var(--md-sys-typescale-headline-medium-font, var(--md-ref-typeface-brand, Roboto));
  }

  .md-typescale-headline-large, .md-typescale-headline-large-prominent {
    font: var(--md-sys-typescale-headline-large-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-headline-large-size, 2rem) / var(--md-sys-typescale-headline-large-line-height, 2.5rem) var(--md-sys-typescale-headline-large-font, var(--md-ref-typeface-brand, Roboto));
  }

  .md-typescale-title-small, .md-typescale-title-small-prominent {
    font: var(--md-sys-typescale-title-small-weight, var(--md-ref-typeface-weight-medium, 500)) var(--md-sys-typescale-title-small-size, .875rem) / var(--md-sys-typescale-title-small-line-height, 1.25rem) var(--md-sys-typescale-title-small-font, var(--md-ref-typeface-plain, Roboto));
  }

  .md-typescale-title-medium, .md-typescale-title-medium-prominent {
    font: var(--md-sys-typescale-title-medium-weight, var(--md-ref-typeface-weight-medium, 500)) var(--md-sys-typescale-title-medium-size, 1rem) / var(--md-sys-typescale-title-medium-line-height, 1.5rem) var(--md-sys-typescale-title-medium-font, var(--md-ref-typeface-plain, Roboto));
  }

  .md-typescale-title-large, .md-typescale-title-large-prominent {
    font: var(--md-sys-typescale-title-large-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-title-large-size, 1.375rem) / var(--md-sys-typescale-title-large-line-height, 1.75rem) var(--md-sys-typescale-title-large-font, var(--md-ref-typeface-brand, Roboto));
  }

  .md-typescale-body-small, .md-typescale-body-small-prominent {
    font: var(--md-sys-typescale-body-small-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-body-small-size, .75rem) / var(--md-sys-typescale-body-small-line-height, 1rem) var(--md-sys-typescale-body-small-font, var(--md-ref-typeface-plain, Roboto));
  }

  .md-typescale-body-medium, .md-typescale-body-medium-prominent {
    font: var(--md-sys-typescale-body-medium-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-body-medium-size, .875rem) / var(--md-sys-typescale-body-medium-line-height, 1.25rem) var(--md-sys-typescale-body-medium-font, var(--md-ref-typeface-plain, Roboto));
  }

  .md-typescale-body-large, .md-typescale-body-large-prominent {
    font: var(--md-sys-typescale-body-large-weight, var(--md-ref-typeface-weight-regular, 400)) var(--md-sys-typescale-body-large-size, 1rem) / var(--md-sys-typescale-body-large-line-height, 1.5rem) var(--md-sys-typescale-body-large-font, var(--md-ref-typeface-plain, Roboto));
  }

  .md-typescale-label-small, .md-typescale-label-small-prominent {
    font: var(--md-sys-typescale-label-small-weight, var(--md-ref-typeface-weight-medium, 500)) var(--md-sys-typescale-label-small-size, .6875rem) / var(--md-sys-typescale-label-small-line-height, 1rem) var(--md-sys-typescale-label-small-font, var(--md-ref-typeface-plain, Roboto));
  }

  .md-typescale-label-medium, .md-typescale-label-medium-prominent {
    font: var(--md-sys-typescale-label-medium-weight, var(--md-ref-typeface-weight-medium, 500)) var(--md-sys-typescale-label-medium-size, .75rem) / var(--md-sys-typescale-label-medium-line-height, 1rem) var(--md-sys-typescale-label-medium-font, var(--md-ref-typeface-plain, Roboto));
  }

  .md-typescale-label-medium-prominent {
    font-weight: var(--md-sys-typescale-label-medium-weight-prominent, var(--md-ref-typeface-weight-bold, 700));
  }

  .md-typescale-label-large, .md-typescale-label-large-prominent {
    font: var(--md-sys-typescale-label-large-weight, var(--md-ref-typeface-weight-medium, 500)) var(--md-sys-typescale-label-large-size, .875rem) / var(--md-sys-typescale-label-large-line-height, 1.25rem) var(--md-sys-typescale-label-large-font, var(--md-ref-typeface-plain, Roboto));
  }

  .md-typescale-label-large-prominent {
    font-weight: var(--md-sys-typescale-label-large-weight-prominent, var(--md-ref-typeface-weight-bold, 700));
  }
}

/* node_modules/m3-components/styles/material-symbols.css */
/*!
 * Material Symbols Outlined — 本地字体（md-icon / .material-symbols-outlined）
 * 禁止外链；路径相对 styles/
 */
@font-face {
  font-family: Material Symbols Outlined;
  font-style: normal;
  font-weight: 400;
  src: url("./MaterialSymbolsOutlined-1r6mvs3h.ttf") format(truetype);
}

.material-symbols-outlined {
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
  -webkit-font-smoothing: antialiased;
  font-family: Material Symbols Outlined;
  font-size: 24px;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
}

/* node_modules/m3-components/styles/m3-type-two-sizes.css */
/*!
 * 两档字号覆盖层：标题 1rem / 1.5rem / medium(500)；文字 0.875rem / 1.25rem / regular(400)
 * 在 md-typography-tokens 与 md-typescale-styles 之后加载；不改颜色；不改 material-symbols 图标字号
 */
:root {
  --m3-type-title-size: 1rem;
  --m3-type-title-line-height: 1.5rem;
  --m3-type-title-weight: var(--md-ref-typeface-weight-medium, 500);
  --m3-type-text-size: .875rem;
  --m3-type-text-line-height: 1.25rem;
  --m3-type-text-weight: var(--md-ref-typeface-weight-regular, 400);
  --md-sys-typescale-display-small-size: var(--m3-type-title-size);
  --md-sys-typescale-display-small-line-height: var(--m3-type-title-line-height);
  --md-sys-typescale-display-medium-size: var(--m3-type-title-size);
  --md-sys-typescale-display-medium-line-height: var(--m3-type-title-line-height);
  --md-sys-typescale-display-large-size: var(--m3-type-title-size);
  --md-sys-typescale-display-large-line-height: var(--m3-type-title-line-height);
  --md-sys-typescale-headline-small-size: var(--m3-type-title-size);
  --md-sys-typescale-headline-small-line-height: var(--m3-type-title-line-height);
  --md-sys-typescale-headline-medium-size: var(--m3-type-title-size);
  --md-sys-typescale-headline-medium-line-height: var(--m3-type-title-line-height);
  --md-sys-typescale-headline-large-size: var(--m3-type-title-size);
  --md-sys-typescale-headline-large-line-height: var(--m3-type-title-line-height);
  --md-sys-typescale-title-small-size: var(--m3-type-title-size);
  --md-sys-typescale-title-small-line-height: var(--m3-type-title-line-height);
  --md-sys-typescale-title-medium-size: var(--m3-type-title-size);
  --md-sys-typescale-title-medium-line-height: var(--m3-type-title-line-height);
  --md-sys-typescale-title-large-size: var(--m3-type-title-size);
  --md-sys-typescale-title-large-line-height: var(--m3-type-title-line-height);
  --md-sys-typescale-body-small-size: var(--m3-type-text-size);
  --md-sys-typescale-body-small-line-height: var(--m3-type-text-line-height);
  --md-sys-typescale-body-medium-size: var(--m3-type-text-size);
  --md-sys-typescale-body-medium-line-height: var(--m3-type-text-line-height);
  --md-sys-typescale-body-large-size: var(--m3-type-text-size);
  --md-sys-typescale-body-large-line-height: var(--m3-type-text-line-height);
  --md-sys-typescale-label-small-size: var(--m3-type-text-size);
  --md-sys-typescale-label-small-line-height: var(--m3-type-text-line-height);
  --md-sys-typescale-label-medium-size: var(--m3-type-text-size);
  --md-sys-typescale-label-medium-line-height: var(--m3-type-text-line-height);
  --md-sys-typescale-label-large-size: var(--m3-type-text-size);
  --md-sys-typescale-label-large-line-height: var(--m3-type-text-line-height);
  --md-text-button-label-text-size: var(--m3-type-text-size);
  --md-outlined-button-label-text-size: var(--m3-type-text-size);
  --md-elevated-button-label-text-size: var(--m3-type-text-size);
  --md-primary-tab-label-text-size: var(--m3-type-text-size);
  --md-secondary-tab-label-text-size: var(--m3-type-text-size);
  --md-assist-chip-label-text-size: var(--m3-type-text-size);
  --md-filter-chip-label-text-size: var(--m3-type-text-size);
  --md-input-chip-label-text-size: var(--m3-type-text-size);
  --md-suggestion-chip-label-text-size: var(--m3-type-text-size);
  --md-list-item-label-text-size: var(--m3-type-text-size);
  --md-menu-item-label-text-size: var(--m3-type-text-size);
  --md-outlined-segmented-button-label-text-size: var(--m3-type-text-size);
  --md-navigation-bar-label-text-size: var(--m3-type-text-size);
  --md-outlined-field-label-text-size: var(--m3-type-text-size);
  --md-outlined-text-field-label-text-size: var(--m3-type-text-size);
  --md-outlined-select-text-field-label-text-size: var(--m3-type-text-size);
  --md-sys-typescale-display-small: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-brand, Roboto);
  --md-sys-typescale-display-medium: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-brand, Roboto);
  --md-sys-typescale-display-large: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-brand, Roboto);
  --md-sys-typescale-headline-small: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-brand, Roboto);
  --md-sys-typescale-headline-medium: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-brand, Roboto);
  --md-sys-typescale-headline-large: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-brand, Roboto);
  --md-sys-typescale-title-small: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-plain, Roboto);
  --md-sys-typescale-title-medium: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-plain, Roboto);
  --md-sys-typescale-title-large: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-plain, Roboto);
  --md-sys-typescale-body-small: var(--m3-type-text-weight) var(--m3-type-text-size) / var(--m3-type-text-line-height) var(--md-ref-typeface-plain, Roboto);
  --md-sys-typescale-body-medium: var(--m3-type-text-weight) var(--m3-type-text-size) / var(--m3-type-text-line-height) var(--md-ref-typeface-plain, Roboto);
  --md-sys-typescale-body-large: var(--m3-type-text-weight) var(--m3-type-text-size) / var(--m3-type-text-line-height) var(--md-ref-typeface-plain, Roboto);
  --md-sys-typescale-label-small: var(--m3-type-text-weight) var(--m3-type-text-size) / var(--m3-type-text-line-height) var(--md-ref-typeface-plain, Roboto);
  --md-sys-typescale-label-medium: var(--m3-type-text-weight) var(--m3-type-text-size) / var(--m3-type-text-line-height) var(--md-ref-typeface-plain, Roboto);
  --md-sys-typescale-label-large: var(--m3-type-text-weight) var(--m3-type-text-size) / var(--m3-type-text-line-height) var(--md-ref-typeface-plain, Roboto);
}

.md-typescale-display-small, .md-typescale-display-small-prominent, .md-typescale-display-medium, .md-typescale-display-medium-prominent, .md-typescale-display-large, .md-typescale-display-large-prominent, .md-typescale-headline-small, .md-typescale-headline-small-prominent, .md-typescale-headline-medium, .md-typescale-headline-medium-prominent, .md-typescale-headline-large, .md-typescale-headline-large-prominent, .md-typescale-title-small, .md-typescale-title-small-prominent, .md-typescale-title-medium, .md-typescale-title-medium-prominent, .md-typescale-title-large, .md-typescale-title-large-prominent {
  font: var(--m3-type-title-weight) var(--m3-type-title-size) / var(--m3-type-title-line-height) var(--md-ref-typeface-plain, Roboto);
}

.md-typescale-body-small, .md-typescale-body-small-prominent, .md-typescale-body-medium, .md-typescale-body-medium-prominent, .md-typescale-body-large, .md-typescale-body-large-prominent, .md-typescale-label-small, .md-typescale-label-small-prominent, .md-typescale-label-medium, .md-typescale-label-medium-prominent, .md-typescale-label-large, .md-typescale-label-large-prominent {
  font: var(--m3-type-text-weight) var(--m3-type-text-size) / var(--m3-type-text-line-height) var(--md-ref-typeface-plain, Roboto);
}

/* node_modules/m3-components/styles/m3-clickable-buttons.css */
/*!
 * Button / Icon button / FAB theming — 只设官方 CSS custom properties
 * SoT: https://material-web.dev/components/button/
 *      https://material-web.dev/theming/material-theming/
 * 铁律 166：elevated / outlined / text / icon-button，禁止 filled
 * 铁律 167：色值只经 --md-sys-color-*（#4F378B / #FEF7FF / #EBDDFF）
 *
 * 禁止：background-color / border-radius / color 硬覆盖 host
 * 尺寸：只设官方 height / leading-space / trailing-space token
 *
 * 比例统一（写死）：
 * - 高 40px、左右 padding、胶囊角：官方 token
 * - 根因：Tailwind preflight `*{padding:0}` 会盖掉 CE :host 的 padding，
 *   短文案变成「圆」、长短比例乱。必须在 host 上重申官方 padding。
 * - 禁止设 width/min-width：会与 .button{width:100%} 循环塌宽
 * - align-self + flex-shrink：禁止被 flex-col 拉成满宽扁条
 */
md-elevated-button, md-outlined-button, md-text-button {
  box-sizing: border-box;
  flex-shrink: 0;
  align-self:  flex-start;
  max-width: 100%;
}

md-elevated-button {
  --md-elevated-button-container-height: 40px;
  --md-elevated-button-leading-space: 24px;
  --md-elevated-button-trailing-space: 24px;
  --md-elevated-button-with-leading-icon-leading-space: 16px;
  --md-elevated-button-with-leading-icon-trailing-space: 24px;
  --md-elevated-button-with-trailing-icon-leading-space: 24px;
  --md-elevated-button-with-trailing-icon-trailing-space: 16px;
  --md-elevated-button-label-text-size: .875rem;
  --md-elevated-button-label-text-line-height: 1.25rem;
  padding-inline-start: var(--md-elevated-button-leading-space);
  padding-inline-end: var(--md-elevated-button-trailing-space);
  padding-block: calc(( var(--md-elevated-button-container-height)  - var(--md-elevated-button-label-text-line-height)) / 2);
  min-height: var(--md-elevated-button-container-height);
  --md-elevated-button-container-color: var(--md-sys-color-surface-container-low);
  --md-elevated-button-container-shape: var(--md-sys-shape-corner-full);
  --md-elevated-button-container-elevation: 1;
  --md-elevated-button-hover-container-elevation: 2;
  --md-elevated-button-focus-container-elevation: 1;
  --md-elevated-button-pressed-container-elevation: 1;
  --md-elevated-button-label-text-color: var(--md-sys-color-primary);
  --md-elevated-button-label-text-font: var(--md-sys-typescale-label-large-font);
  --md-elevated-button-icon-color: var(--md-sys-color-primary);
  --md-elevated-button-hover-label-text-color: var(--md-sys-color-primary);
  --md-elevated-button-focus-label-text-color: var(--md-sys-color-primary);
  --md-elevated-button-pressed-label-text-color: var(--md-sys-color-primary);
  --md-elevated-button-hover-icon-color: var(--md-sys-color-primary);
  --md-elevated-button-focus-icon-color: var(--md-sys-color-primary);
  --md-elevated-button-pressed-icon-color: var(--md-sys-color-primary);
  --md-elevated-button-hover-state-layer-color: var(--md-sys-color-primary);
  --md-elevated-button-pressed-state-layer-color: var(--md-sys-color-primary);
  --md-elevated-button-container-shadow-color: var(--md-sys-color-shadow);
}

md-outlined-button {
  --md-outlined-button-container-height: 40px;
  --md-outlined-button-leading-space: 24px;
  --md-outlined-button-trailing-space: 24px;
  --md-outlined-button-with-leading-icon-leading-space: 16px;
  --md-outlined-button-with-leading-icon-trailing-space: 24px;
  --md-outlined-button-with-trailing-icon-leading-space: 24px;
  --md-outlined-button-with-trailing-icon-trailing-space: 16px;
  --md-outlined-button-label-text-size: .875rem;
  --md-outlined-button-label-text-line-height: 1.25rem;
  padding-inline-start: var(--md-outlined-button-leading-space);
  padding-inline-end: var(--md-outlined-button-trailing-space);
  padding-block: calc(( var(--md-outlined-button-container-height)  - var(--md-outlined-button-label-text-line-height)) / 2);
  min-height: var(--md-outlined-button-container-height);
  --md-outlined-button-container-shape: var(--md-sys-shape-corner-full);
  --md-outlined-button-outline-color: var(--md-sys-color-outline);
  --md-outlined-button-label-text-color: var(--md-sys-color-primary);
  --md-outlined-button-label-text-font: var(--md-sys-typescale-label-large-font);
  --md-outlined-button-icon-color: var(--md-sys-color-primary);
  --md-outlined-button-hover-label-text-color: var(--md-sys-color-primary);
  --md-outlined-button-focus-label-text-color: var(--md-sys-color-primary);
  --md-outlined-button-pressed-label-text-color: var(--md-sys-color-primary);
  --md-outlined-button-hover-icon-color: var(--md-sys-color-primary);
  --md-outlined-button-focus-icon-color: var(--md-sys-color-primary);
  --md-outlined-button-pressed-icon-color: var(--md-sys-color-primary);
  --md-outlined-button-hover-state-layer-color: var(--md-sys-color-primary);
  --md-outlined-button-pressed-state-layer-color: var(--md-sys-color-primary);
}

md-text-button {
  --md-text-button-container-height: 40px;
  --md-text-button-leading-space: 12px;
  --md-text-button-trailing-space: 12px;
  --md-text-button-with-leading-icon-leading-space: 12px;
  --md-text-button-with-leading-icon-trailing-space: 16px;
  --md-text-button-with-trailing-icon-leading-space: 16px;
  --md-text-button-with-trailing-icon-trailing-space: 12px;
  --md-text-button-label-text-size: .875rem;
  --md-text-button-label-text-line-height: 1.25rem;
  --md-text-button-container-shape: var(--md-sys-shape-corner-full);
  padding-inline-start: var(--md-text-button-leading-space);
  padding-inline-end: var(--md-text-button-trailing-space);
  padding-block: calc(( var(--md-text-button-container-height)  - var(--md-text-button-label-text-line-height)) / 2);
  min-height: var(--md-text-button-container-height);
  --md-text-button-label-text-color: var(--md-sys-color-primary);
  --md-text-button-label-text-font: var(--md-sys-typescale-label-large-font);
  --md-text-button-icon-color: var(--md-sys-color-primary);
  --md-text-button-hover-label-text-color: var(--md-sys-color-primary);
  --md-text-button-focus-label-text-color: var(--md-sys-color-primary);
  --md-text-button-pressed-label-text-color: var(--md-sys-color-primary);
  --md-text-button-hover-icon-color: var(--md-sys-color-primary);
  --md-text-button-focus-icon-color: var(--md-sys-color-primary);
  --md-text-button-pressed-icon-color: var(--md-sys-color-primary);
  --md-text-button-hover-state-layer-color: var(--md-sys-color-primary);
  --md-text-button-pressed-state-layer-color: var(--md-sys-color-primary);
}

md-icon-button {
  --md-icon-button-icon-color: var(--md-sys-color-primary);
  --md-icon-button-hover-icon-color: var(--md-sys-color-primary);
  --md-icon-button-focus-icon-color: var(--md-sys-color-primary);
  --md-icon-button-pressed-icon-color: var(--md-sys-color-primary);
  --md-icon-button-hover-state-layer-color: var(--md-sys-color-primary);
  --md-icon-button-pressed-state-layer-color: var(--md-sys-color-primary);
  --md-icon-button-selected-icon-color: var(--md-sys-color-primary);
}

md-outlined-icon-button {
  --md-outlined-icon-button-icon-color: var(--md-sys-color-primary);
  --md-outlined-icon-button-outline-color: var(--md-sys-color-outline);
  --md-outlined-icon-button-hover-icon-color: var(--md-sys-color-primary);
  --md-outlined-icon-button-focus-icon-color: var(--md-sys-color-primary);
  --md-outlined-icon-button-pressed-icon-color: var(--md-sys-color-primary);
  --md-outlined-icon-button-hover-state-layer-color: var(--md-sys-color-primary);
  --md-outlined-icon-button-pressed-state-layer-color: var(--md-sys-color-primary);
}

md-fab, md-branded-fab {
  --md-fab-container-color: var(--md-sys-color-primary);
  --md-fab-icon-color: var(--md-sys-color-on-primary);
  --md-fab-hover-icon-color: var(--md-sys-color-on-primary);
  --md-fab-focus-icon-color: var(--md-sys-color-on-primary);
  --md-fab-pressed-icon-color: var(--md-sys-color-on-primary);
  --md-fab-hover-state-layer-color: var(--md-sys-color-on-primary);
  --md-fab-pressed-state-layer-color: var(--md-sys-color-on-primary);
}

md-assist-chip, md-filter-chip, md-input-chip, md-suggestion-chip {
  --md-assist-chip-container-height: 32px;
  --md-assist-chip-leading-space: 16px;
  --md-assist-chip-trailing-space: 16px;
  --md-assist-chip-icon-label-space: 8px;
  --md-filter-chip-container-height: 32px;
  --md-filter-chip-leading-space: 16px;
  --md-filter-chip-trailing-space: 16px;
  --md-filter-chip-icon-label-space: 8px;
  --md-input-chip-container-height: 32px;
  --md-input-chip-leading-space: 16px;
  --md-input-chip-trailing-space: 16px;
  --md-input-chip-icon-label-space: 8px;
  --md-suggestion-chip-container-height: 32px;
  --md-suggestion-chip-leading-space: 16px;
  --md-suggestion-chip-trailing-space: 16px;
  --md-suggestion-chip-icon-label-space: 8px;
}

md-chip-set {
  display: flex;
  flex-wrap: wrap;
  align-items:  center;
  gap: 8px;
}

md-elevated-button + md-elevated-button, md-elevated-button + md-outlined-button, md-elevated-button + md-text-button, md-outlined-button + md-elevated-button, md-outlined-button + md-outlined-button, md-outlined-button + md-text-button, md-text-button + md-elevated-button, md-text-button + md-outlined-button, md-text-button + md-text-button, md-assist-chip + md-assist-chip, md-assist-chip + md-filter-chip, md-assist-chip + md-suggestion-chip, md-filter-chip + md-assist-chip, md-filter-chip + md-filter-chip, md-suggestion-chip + md-assist-chip, md-suggestion-chip + md-suggestion-chip, md-icon-button + md-icon-button, md-icon-button + md-outlined-icon-button, md-outlined-icon-button + md-icon-button, md-outlined-icon-button + md-outlined-icon-button {
  margin-inline-start: 8px;
}

md-chip-set md-assist-chip + md-assist-chip, md-chip-set md-assist-chip + md-filter-chip, md-chip-set md-assist-chip + md-suggestion-chip, md-chip-set md-filter-chip + md-assist-chip, md-chip-set md-filter-chip + md-filter-chip, md-chip-set md-suggestion-chip + md-assist-chip, md-chip-set md-suggestion-chip + md-suggestion-chip {
  margin-inline-start: 0;
}

.m3-send-public-header, .m3-send-chat-row, .m3-comment-actions, .m3-app-bar__leading, .m3-app-bar__trailing, .m3-main-nav-row, md-list .m3-comment-actions {
  gap: 8px;
}

/* node_modules/m3-components/styles/m3-avatar.css */
/*!
 * 全部头像：必须圆形 + 边框（铁律 167 边框色 #4F378B）
 */
.m3-avatar, .m3-avatar-placeholder, md-secondary-tab img[slot="icon"], md-list [slot="start"] img, md-list img[slot="start"] {
  box-sizing: border-box;
  object-fit: cover;
  display: block;
  overflow: hidden;
  background: #ebddff;
  border: 1px solid #4f378b;
  border-radius: 50%;
  flex-shrink: 0;
}

img.m3-avatar {
  background: #fef7ff;
}

/* node_modules/m3-components/styles/m3-list-row-media.css */
/*!
 * 列表内头像、图标：禁止大于单行行高（20px = body-medium line-height）
 * 作用域仅 md-list，不影响 AppBar / 页级按钮
 */
md-list {
  --m3-list-row-line: 20px;
  --m3-list-icon-glyph: 16px;
}

md-list .m3-avatar, md-list .m3-avatar-placeholder, md-list img.m3-avatar, md-list [slot="start"] img, md-list img[slot="start"] {
  box-sizing: border-box;
  object-fit: cover;
  display: block;
  overflow: hidden;
  flex-shrink: 0;
  width: var(--m3-list-row-line) !important;
  height: var(--m3-list-row-line) !important;
  max-width: var(--m3-list-row-line) !important;
  max-height: var(--m3-list-row-line) !important;
  border: 1px solid #4f378b !important;
  border-radius: 50% !important;
}

md-list .m3-avatar-placeholder {
  background: #ebddff;
}

md-list md-icon[slot="start"], md-list md-icon[slot="end"], md-list [slot="start"] md-icon, md-list [slot="end"] md-icon {
  --md-icon-size: var(--m3-list-row-line);
  font-size: var(--m3-list-row-line);
  width: var(--m3-list-row-line);
  height: var(--m3-list-row-line);
}

md-list md-icon-button, md-list md-outlined-icon-button {
  --md-icon-button-icon-size: var(--m3-list-icon-glyph);
  --md-icon-button-state-layer-height: var(--m3-list-row-line);
  --md-icon-button-state-layer-width: var(--m3-list-row-line);
  --md-outlined-icon-button-icon-size: var(--m3-list-icon-glyph);
  --md-outlined-icon-button-container-height: var(--m3-list-row-line);
  --md-outlined-icon-button-container-width: var(--m3-list-row-line);
  border-radius: 9999px;
  width: var(--m3-list-row-line) !important;
  height: var(--m3-list-row-line) !important;
  min-width: var(--m3-list-row-line) !important;
  min-height: var(--m3-list-row-line) !important;
}

md-list .m3-comment-actions {
  display: inline-flex;
  align-items:  center;
  gap: 8px;
}

md-list .m3-comment-actions md-icon-button, md-list .m3-comment-actions md-outlined-icon-button {
  width: var(--m3-list-row-line) !important;
  height: var(--m3-list-row-line) !important;
}

/* node_modules/m3-components/styles/m3-base.css */
/*!
 * m3-components — 页面级 token / 图标 / 组件辅助样式入口
 * 消费端可按文件链入，或只链本文件（须保证相对路径可解析 fonts/ 与 md/）
 */


/* src/m3-shell.css */
/*!
 * Admin 应用壳布局 — 只用 --md-sys-* / --md-sys-space-* / --md-sys-shape-*
 * 禁止硬编码 hex；交互控件样式交给 m3-components（md-* shadow DOM）
 */
.admin-shell {
  display: flex;
  background: var(--md-sys-color-surface);
  color: var(--md-sys-color-on-surface);
  min-height: 100vh;
}

.admin-shell__aside {
  display: flex;
  background: var(--md-sys-color-surface);
  box-shadow: var(--md-sys-elevation-shadow-1);
  flex-direction: column;
  width: 15rem;
}

.admin-shell md-navigation-drawer {
  --md-navigation-drawer-container-color: var(--md-sys-color-surface);
  position: relative;
  z-index: 1;
}

.admin-shell__brand {
  padding: var(--md-sys-space-200) var(--md-sys-space-250) 0;
}

.admin-shell__brand-title {
  font: var(--md-sys-typescale-title-medium-weight, 500) var(--md-sys-typescale-title-medium-size, 1rem) / var(--md-sys-typescale-title-medium-line-height, 1.5rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  color: var(--md-sys-color-on-surface);
}

.admin-shell__brand-sub {
  margin-top: var(--md-sys-space-50);
  font: var(--md-sys-typescale-body-medium-weight, 400) var(--md-sys-typescale-body-medium-size, .875rem) / var(--md-sys-typescale-body-medium-line-height, 1.25rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  color: var(--md-sys-color-on-surface-variant);
}

.admin-shell__nav {
  display: flex;
  gap: var(--md-sys-space-25);
  padding: var(--md-sys-space-100);
  overflow-y: auto;
  flex-direction: column;
  flex: 1;
}

.admin-shell__nav-section {
  margin-top: var(--md-sys-space-200);
  padding-inline: var(--md-sys-space-100);
  font: var(--md-sys-typescale-label-medium-weight, 500) var(--md-sys-typescale-label-medium-size, .875rem) / var(--md-sys-typescale-label-medium-line-height, 1.25rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  color: var(--md-sys-color-on-surface-variant);
  text-transform: uppercase;
}

.admin-shell__aside-footer {
  padding: var(--md-sys-space-200);
  margin-top: var(--md-sys-space-200);
}

.admin-shell__main {
  padding: var(--md-sys-space-400);
  overflow-y: auto;
  background: var(--md-sys-color-surface);
  flex: 1;
}

.admin-panel, .m3-card, .m3-card--elevated, .m3-card--outlined {
  padding: var(--md-sys-space-300);
  background: var(--md-sys-color-surface);
  border-radius: var(--md-sys-shape-corner-lg);
  box-shadow: var(--md-sys-elevation-shadow-1);
  color: var(--md-sys-color-on-surface);
  text-align: start;
  border: none;
}

.m3-card--outlined {
  box-shadow: none;
  border: 1px solid var(--md-sys-color-outline-variant);
}

.admin-m3-list, md-list.admin-m3-list {
  --md-list-container-color: var(--md-sys-color-surface);
  --md-list-item-label-text-color: var(--md-sys-color-on-surface);
  --md-list-item-supporting-text-color: var(--md-sys-color-on-surface-variant);
  --md-list-item-trailing-supporting-text-color: var(--md-sys-color-on-surface-variant);
  background: var(--md-sys-color-surface);
  border-radius: var(--md-sys-shape-corner-lg);
  box-shadow: var(--md-sys-elevation-shadow-1);
  overflow: hidden;
  max-width: 100%;
}

.admin-table-shell {
  --md-list-container-color: var(--md-sys-color-surface);
  background: var(--md-sys-color-surface);
  border-radius: var(--md-sys-shape-corner-lg);
  box-shadow: var(--md-sys-elevation-shadow-1);
  overflow: hidden;
}

.admin-table-shell table {
  border-collapse: collapse;
  width: 100%;
}

.admin-table-shell th, .admin-table-shell td {
  padding: var(--md-sys-space-150) var(--md-sys-space-200);
  text-align: left;
  border-bottom: 1px solid var(--md-sys-color-outline-variant);
  color: var(--md-sys-color-on-surface);
}

.admin-table-shell th {
  font: var(--md-sys-typescale-label-large-weight, 500) var(--md-sys-typescale-label-large-size, .875rem) / var(--md-sys-typescale-label-large-line-height, 1.25rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  color: var(--md-sys-color-on-surface-variant);
}

.admin-table-shell__spacer {
  width: 2.5rem;
}

.admin-table-empty {
  padding: var(--md-sys-space-200);
}

.admin-table-shell tbody tr:last-child td {
  border-bottom: none;
}

.admin-nav-item {
  display: flex;
  align-items:  center;
  gap: var(--md-sys-space-150);
  padding: var(--md-sys-space-125) var(--md-sys-space-200);
  border-radius: var(--md-sys-shape-corner-full);
  font: var(--md-sys-typescale-label-large-weight, 500) var(--md-sys-typescale-label-large-size, .875rem) / var(--md-sys-typescale-label-large-line-height, 1.25rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  text-decoration: none;
  color: var(--md-sys-color-on-surface-variant);
  transition: background-color var(--md-sys-motion-duration-short4, .2s) var(--md-sys-motion-easing-standard, ease);
}

.admin-nav-item:hover {
  background: var(--md-sys-color-surface-container-highest);
}

.admin-nav-item--active {
  background: var(--md-sys-color-primary-container);
  color: var(--md-sys-color-on-primary-container);
}

.admin-page {
  display: flex;
  gap: var(--md-sys-space-300);
  flex-direction: column;
}

.admin-page__header {
  display: flex;
  justify-content: space-between;
  align-items:  center;
}

.admin-page__title {
  font: var(--md-sys-typescale-title-large-weight, 500) var(--md-sys-typescale-title-large-size, 1rem) / var(--md-sys-typescale-title-large-line-height, 1.5rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  color: var(--md-sys-color-on-surface);
  margin: 0;
}

.admin-page__error {
  font: var(--md-sys-typescale-body-medium-weight, 400) var(--md-sys-typescale-body-medium-size, .875rem) / var(--md-sys-typescale-body-medium-line-height, 1.25rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  color: var(--md-sys-color-error);
  margin: 0;
}

.admin-page__muted {
  font: var(--md-sys-typescale-body-medium-weight, 400) var(--md-sys-typescale-body-medium-size, .875rem) / var(--md-sys-typescale-body-medium-line-height, 1.25rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  color: var(--md-sys-color-on-surface-variant);
  margin: 0;
}

.admin-login {
  display: flex;
  background: var(--md-sys-color-surface);
  justify-content: center;
  align-items:  center;
  min-height: 100vh;
}

.admin-login__card {
  padding: var(--md-sys-space-500);
  background: var(--md-sys-color-surface-container);
  border-radius: var(--md-sys-shape-corner-xl);
  display: flex;
  gap: var(--md-sys-space-200);
  flex-direction: column;
  width: 24rem;
}

.admin-login__title {
  margin: 0 0 var(--md-sys-space-200);
  text-align: center;
  font: var(--md-sys-typescale-title-large-weight, 500) var(--md-sys-typescale-title-large-size, 1rem) / var(--md-sys-typescale-title-large-line-height, 1.5rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  color: var(--md-sys-color-on-surface);
}

.admin-actions {
  display: flex;
  gap: var(--md-sys-space-150);
  flex-wrap: wrap;
}

.admin-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--md-sys-space-200);
}

.admin-link {
  color: var(--md-sys-color-primary);
  text-decoration: underline;
  font-weight: 500;
}

.admin-filter-label {
  margin-bottom: var(--md-sys-space-50);
  font: var(--md-sys-typescale-label-medium-weight, 500) var(--md-sys-typescale-label-medium-size, .875rem) / var(--md-sys-typescale-label-medium-line-height, 1.25rem) var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
  color: var(--md-sys-color-on-surface-variant);
}

/* src/index.css */
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;

@layer theme {
  :root, :host {
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --color-white: var(--md-sys-color-surface);
    --spacing: .25rem;
    --container-xs: 20rem;
    --container-md: 28rem;
    --text-xs: .875rem;
    --text-xs--line-height: 1.25rem;
    --text-sm: .875rem;
    --text-sm--line-height: 1.25rem;
    --text-lg: 1rem;
    --text-lg--line-height: 1.5rem;
    --text-2xl: 1rem;
    --text-2xl--line-height: 1.5rem;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --radius-lg: var(--md-sys-shape-corner-lg);
    --radius-xl: var(--md-sys-shape-corner-xl);
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-primary: var(--md-sys-color-primary);
    --color-primary-container: var(--md-sys-color-primary-container);
    --color-on-primary-container: var(--md-sys-color-on-primary-container);
    --color-on-surface: var(--md-sys-color-on-surface);
    --color-surface-variant: var(--md-sys-color-on-surface-variant);
    --color-on-surface-variant: var(--md-sys-color-on-surface-variant);
    --color-surface-container-low: var(--md-sys-color-surface-container-low);
    --color-surface-container-high: var(--md-sys-color-surface-container-high);
    --color-surface-container-highest: var(--md-sys-color-surface-container-highest);
    --color-outline-variant: var(--md-sys-color-outline-variant);
    --color-error: var(--md-sys-color-error);
    --color-on-error: var(--md-sys-color-on-error);
    --text-headline-small: 1rem;
    --text-headline-small--line-height: 1.5rem;
    --text-headline-small--font-weight: 500;
    --text-title-large: 1rem;
    --text-title-large--line-height: 1.5rem;
    --text-title-large--font-weight: 500;
    --text-title-medium: 1rem;
    --text-title-medium--line-height: 1.5rem;
    --text-title-medium--font-weight: 500;
    --text-label-large: .875rem;
    --text-label-large--line-height: 1.25rem;
    --text-label-small: .875rem;
    --text-label-small--line-height: 1.25rem;
    --text-body-medium: .875rem;
    --text-body-medium--line-height: 1.25rem;
    --text-body-small: .875rem;
    --text-body-small--line-height: 1.25rem;
  }
}

@layer base {
  *, :after, :before {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::-webkit-file-upload-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr {
    color: inherit;
    border-top-width: 1px;
    height: 0;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    position: relative;
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring:where(:not(iframe)) {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol, ul, menu {
    list-style: none;
  }

  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::-webkit-file-upload-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:-webkit-any([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:-moz-any([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:-webkit-any([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  :where(select:-moz-any([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::-webkit-file-upload-button {
    margin-inline-end: 4px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
  }

  @supports ( not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }

    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    text-align: inherit;
    min-height: 1lh;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block-start: 0;
    padding-block-end: 0;
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button {
    appearance: button;
  }

  input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::-webkit-file-upload-button {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}

@layer utilities {
  .absolute {
    position: absolute;
  }

  .relative {
    position: relative;
  }

  .static {
    position: static;
  }

  .-top-1 {
    top: calc(var(--spacing) * -1);
  }

  .top-8 {
    top: calc(var(--spacing) * 8);
  }

  .-right-1 {
    right: calc(var(--spacing) * -1);
  }

  .right-0 {
    right: 0;
  }

  .z-50 {
    z-index: 50;
  }

  .col-span-2 {
    grid-column: span 2 / span 2;
  }

  .container {
    width: 100%;
  }

  @media (min-width: 40rem) {
    .container {
      max-width: 40rem;
    }
  }

  @media (min-width: 48rem) {
    .container {
      max-width: 48rem;
    }
  }

  @media (min-width: 64rem) {
    .container {
      max-width: 64rem;
    }
  }

  @media (min-width: 80rem) {
    .container {
      max-width: 80rem;
    }
  }

  @media (min-width: 96rem) {
    .container {
      max-width: 96rem;
    }
  }

  .mt-1 {
    margin-top: var(--spacing);
  }

  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }

  .mb-1 {
    margin-bottom: var(--spacing);
  }

  .ml-1 {
    margin-left: var(--spacing);
  }

  .block {
    display: block;
  }

  .flex {
    display: flex;
  }

  .grid {
    display: grid;
  }

  .inline {
    display: inline;
  }

  .inline-block {
    display: inline-block;
  }

  .inline-flex {
    display: inline-flex;
  }

  .h-4 {
    height: calc(var(--spacing) * 4);
  }

  .h-8 {
    height: calc(var(--spacing) * 8);
  }

  .h-10 {
    height: calc(var(--spacing) * 10);
  }

  .h-full {
    height: 100%;
  }

  .max-h-48 {
    max-height: calc(var(--spacing) * 48);
  }

  .max-h-96 {
    max-height: calc(var(--spacing) * 96);
  }

  .max-h-\[360px\] {
    max-height: 360px;
  }

  .min-h-\[200px\] {
    min-height: 200px;
  }

  .w-4 {
    width: calc(var(--spacing) * 4);
  }

  .w-8 {
    width: calc(var(--spacing) * 8);
  }

  .w-10 {
    width: calc(var(--spacing) * 10);
  }

  .w-48 {
    width: calc(var(--spacing) * 48);
  }

  .w-80 {
    width: calc(var(--spacing) * 80);
  }

  .w-fit {
    width: -moz-fit-content;
    width: fit-content;
  }

  .w-full {
    width: 100%;
  }

  .max-w-\[8rem\] {
    max-width: 8rem;
  }

  .max-w-md {
    max-width: var(--container-md);
  }

  .max-w-xs {
    max-width: var(--container-xs);
  }

  .min-w-0 {
    min-width: 0;
  }

  .min-w-\[10rem\] {
    min-width: 10rem;
  }

  .flex-1 {
    flex: 1;
  }

  .shrink-0 {
    flex-shrink: 0;
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
  }

  .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .flex-col {
    flex-direction: column;
  }

  .flex-wrap {
    flex-wrap: wrap;
  }

  .items-center {
    align-items:  center;
  }

  .items-end {
    align-items:  flex-end;
  }

  .justify-between {
    justify-content: space-between;
  }

  .justify-center {
    justify-content: center;
  }

  .gap-1 {
    gap: var(--spacing);
  }

  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }

  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }

  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }

  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }

  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }

  .gap-8 {
    gap: calc(var(--spacing) * 8);
  }

  :where(.divide-y > :not(:last-child)) {
    --tw-divide-y-reverse: 0;
    border-bottom-style: var(--tw-border-style);
    border-top-style: var(--tw-border-style);
    border-top-width: calc(1px * var(--tw-divide-y-reverse));
    border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  }

  :where(.divide-outline-variant > :not(:last-child)) {
    border-color: var(--color-outline-variant);
  }

  .self-center {
    align-self:  center;
  }

  .truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .overflow-hidden {
    overflow: hidden;
  }

  .overflow-y-auto {
    overflow-y: auto;
  }

  .rounded {
    border-radius: .25rem;
  }

  .rounded-full {
    border-radius: 3.40282e38px;
  }

  .rounded-lg {
    border-radius: var(--radius-lg);
  }

  .rounded-xl {
    border-radius: var(--radius-xl);
  }

  .rounded-t-lg {
    border-top-left-radius: var(--radius-lg);
    border-top-right-radius: var(--radius-lg);
  }

  .rounded-b-lg {
    border-bottom-right-radius: var(--radius-lg);
    border-bottom-left-radius: var(--radius-lg);
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  .border-0 {
    border-style: var(--tw-border-style);
    border-width: 0;
  }

  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }

  .border-outline-variant {
    border-color: var(--color-outline-variant);
  }

  .border-outline-variant\/30 {
    border-color: var(--color-outline-variant);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-outline-variant\/30 {
      border-color: color-mix(in oklab, var(--color-outline-variant) 30%, transparent);
    }
  }

  .bg-error {
    background-color: var(--color-error);
  }

  .bg-primary-container {
    background-color: var(--color-primary-container);
  }

  .bg-surface-container-high {
    background-color: var(--color-surface-container-high);
  }

  .bg-surface-container-highest {
    background-color: var(--color-surface-container-highest);
  }

  .bg-surface-container-low {
    background-color: var(--color-surface-container-low);
  }

  .object-cover {
    object-fit: cover;
  }

  .p-1 {
    padding: var(--spacing);
  }

  .p-4 {
    padding: calc(var(--spacing) * 4);
  }

  .px-1 {
    padding-inline: var(--spacing);
  }

  .px-2 {
    padding-inline: calc(var(--spacing) * 2);
  }

  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }

  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }

  .py-0\.5 {
    padding-block: calc(var(--spacing) * .5);
  }

  .py-1 {
    padding-block: var(--spacing);
  }

  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }

  .py-2\.5 {
    padding-block: calc(var(--spacing) * 2.5);
  }

  .py-3 {
    padding-block: calc(var(--spacing) * 3);
  }

  .py-8 {
    padding-block: calc(var(--spacing) * 8);
  }

  .pb-2 {
    padding-bottom: calc(var(--spacing) * 2);
  }

  .text-left {
    text-align: left;
  }

  .font-mono {
    font-family: var(--font-mono);
  }

  .text-headline-small {
    font-size: var(--text-headline-small);
    line-height: var(--tw-leading, var(--text-headline-small--line-height));
    font-weight: var(--tw-font-weight, var(--text-headline-small--font-weight));
  }

  .text-title-large {
    font-size: var(--text-title-large);
    line-height: var(--tw-leading, var(--text-title-large--line-height));
    font-weight: var(--tw-font-weight, var(--text-title-large--font-weight));
  }

  .text-title-medium {
    font-size: var(--text-title-medium);
    line-height: var(--tw-leading, var(--text-title-medium--line-height));
    font-weight: var(--tw-font-weight, var(--text-title-medium--font-weight));
  }

  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }

  .text-body-medium {
    font-size: var(--text-body-medium);
    line-height: var(--tw-leading, var(--text-body-medium--line-height));
  }

  .text-body-small {
    font-size: var(--text-body-small);
    line-height: var(--tw-leading, var(--text-body-small--line-height));
  }

  .text-label-large {
    font-size: var(--text-label-large);
    line-height: var(--tw-leading, var(--text-label-large--line-height));
  }

  .text-label-small {
    font-size: var(--text-label-small);
    line-height: var(--tw-leading, var(--text-label-small--line-height));
  }

  .text-lg {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }

  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }

  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }

  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }

  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }

  .break-words {
    overflow-wrap: break-word;
  }

  .whitespace-nowrap {
    white-space: nowrap;
  }

  .text-error {
    color: var(--color-error);
  }

  .text-on-error {
    color: var(--color-on-error);
  }

  .text-on-primary-container {
    color: var(--color-on-primary-container);
  }

  .text-on-surface {
    color: var(--color-on-surface);
  }

  .text-on-surface-variant {
    color: var(--color-on-surface-variant);
  }

  .text-primary {
    color: var(--color-primary);
  }

  .text-surface-variant {
    color: var(--color-surface-variant);
  }

  .text-white {
    color: var(--color-white);
  }

  .underline {
    text-decoration-line: underline;
  }

  .underline-offset-2 {
    text-underline-offset: 2px;
  }

  .opacity-80 {
    opacity: .8;
  }

  .shadow-lg {
    --tw-shadow: var(--md-sys-elevation-shadow-3);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .filter {
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .outline-none {
    --tw-outline-style: none;
    outline-style: none;
  }

  .last\:border-b-0:last-child {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 0;
  }

  @media (hover: hover) {
    .hover\:bg-surface-container-highest:hover {
      background-color: var(--color-surface-container-highest);
    }

    .hover\:text-error\/80:hover {
      color: var(--color-error);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:text-error\/80:hover {
        color: color-mix(in oklab, var(--color-error) 80%, transparent);
      }
    }

    .hover\:text-on-surface:hover {
      color: var(--color-on-surface);
    }

    .hover\:underline:hover {
      text-decoration-line: underline;
    }
  }

  @media (min-width: 48rem) {
    .md\:grid-cols-4 {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
}

body {
  background: var(--md-sys-color-surface);
  color: var(--md-sys-color-on-surface);
  font-family: var(--md-ref-typeface-plain, Roboto), system-ui, sans-serif;
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-divide-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-font-weight {
  syntax: "*";
  inherits: false
}

@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-ring-inset {
  syntax: "*";
  inherits: false
}

@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}

@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}

@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@layer properties {
  @supports ((-webkit-hyphens: none) and ( not (margin-trim: inline))) or ((-moz-orient: inline) and ( not (color:rgb(from red r g b)))) {
    *, :before, :after {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-divide-y-reverse: 0;
      --tw-border-style: solid;
      --tw-font-weight: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }

    ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-divide-y-reverse: 0;
      --tw-border-style: solid;
      --tw-font-weight: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}
