/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, 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-red-50: oklch(97.1% 0.013 17.38);
    --color-red-100: oklch(93.6% 0.032 17.717);
    --color-red-200: oklch(88.5% 0.062 18.334);
    --color-red-300: oklch(80.8% 0.114 19.571);
    --color-red-400: oklch(70.4% 0.191 22.216);
    --color-red-500: oklch(63.7% 0.237 25.331);
    --color-red-600: oklch(57.7% 0.245 27.325);
    --color-red-700: oklch(50.5% 0.213 27.518);
    --color-red-800: oklch(44.4% 0.177 26.899);
    --color-orange-500: oklch(70.5% 0.213 47.604);
    --color-orange-600: oklch(64.6% 0.222 41.116);
    --color-orange-700: oklch(55.3% 0.195 38.402);
    --color-amber-50: oklch(98.7% 0.022 95.277);
    --color-amber-100: oklch(96.2% 0.059 95.617);
    --color-amber-200: oklch(92.4% 0.12 95.746);
    --color-amber-300: oklch(87.9% 0.169 91.605);
    --color-amber-400: oklch(82.8% 0.189 84.429);
    --color-amber-500: oklch(76.9% 0.188 70.08);
    --color-amber-600: oklch(66.6% 0.179 58.318);
    --color-amber-700: oklch(55.5% 0.163 48.998);
    --color-amber-800: oklch(47.3% 0.137 46.201);
    --color-yellow-500: oklch(79.5% 0.184 86.047);
    --color-yellow-600: oklch(68.1% 0.162 75.834);
    --color-lime-100: oklch(96.7% 0.067 122.328);
    --color-lime-400: oklch(84.1% 0.238 128.85);
    --color-lime-500: oklch(76.8% 0.233 130.85);
    --color-lime-600: oklch(64.8% 0.2 131.684);
    --color-green-50: oklch(98.2% 0.018 155.826);
    --color-green-100: oklch(96.2% 0.044 156.743);
    --color-green-200: oklch(92.5% 0.084 155.995);
    --color-green-500: oklch(72.3% 0.219 149.579);
    --color-green-600: oklch(62.7% 0.194 149.214);
    --color-green-700: oklch(52.7% 0.154 150.069);
    --color-green-800: oklch(44.8% 0.119 151.328);
    --color-emerald-50: oklch(97.9% 0.021 166.113);
    --color-emerald-100: oklch(95% 0.052 163.051);
    --color-emerald-200: oklch(90.5% 0.093 164.15);
    --color-emerald-500: oklch(69.6% 0.17 162.48);
    --color-emerald-600: oklch(59.6% 0.145 163.225);
    --color-emerald-700: oklch(50.8% 0.118 165.612);
    --color-emerald-800: oklch(43.2% 0.095 166.913);
    --color-emerald-900: oklch(37.8% 0.077 168.94);
    --color-teal-500: oklch(70.4% 0.14 182.503);
    --color-cyan-50: oklch(98.4% 0.019 200.873);
    --color-cyan-100: oklch(95.6% 0.045 203.388);
    --color-cyan-200: oklch(91.7% 0.08 205.041);
    --color-cyan-300: oklch(86.5% 0.127 207.078);
    --color-cyan-400: oklch(78.9% 0.154 211.53);
    --color-cyan-500: oklch(71.5% 0.143 215.221);
    --color-cyan-600: oklch(60.9% 0.126 221.723);
    --color-cyan-700: oklch(52% 0.105 223.128);
    --color-cyan-900: oklch(39.8% 0.07 227.392);
    --color-sky-50: oklch(97.7% 0.013 236.62);
    --color-sky-500: oklch(68.5% 0.169 237.323);
    --color-sky-600: oklch(58.8% 0.158 241.966);
    --color-sky-700: oklch(50% 0.134 242.749);
    --color-blue-50: oklch(97% 0.014 254.604);
    --color-blue-100: oklch(93.2% 0.032 255.585);
    --color-blue-200: oklch(88.2% 0.059 254.128);
    --color-blue-500: oklch(62.3% 0.214 259.815);
    --color-blue-600: oklch(54.6% 0.245 262.881);
    --color-blue-700: oklch(48.8% 0.243 264.376);
    --color-blue-800: oklch(42.4% 0.199 265.638);
    --color-indigo-50: oklch(96.2% 0.018 272.314);
    --color-indigo-400: oklch(67.3% 0.182 276.935);
    --color-indigo-500: oklch(58.5% 0.233 277.117);
    --color-indigo-600: oklch(51.1% 0.262 276.966);
    --color-indigo-700: oklch(45.7% 0.24 277.023);
    --color-violet-50: oklch(96.9% 0.016 293.756);
    --color-violet-100: oklch(94.3% 0.029 294.588);
    --color-violet-200: oklch(89.4% 0.057 293.283);
    --color-violet-300: oklch(81.1% 0.111 293.571);
    --color-violet-400: oklch(70.2% 0.183 293.541);
    --color-violet-500: oklch(60.6% 0.25 292.717);
    --color-violet-600: oklch(54.1% 0.281 293.009);
    --color-violet-700: oklch(49.1% 0.27 292.581);
    --color-violet-900: oklch(38% 0.189 293.745);
    --color-violet-950: oklch(28.3% 0.141 291.089);
    --color-purple-100: oklch(94.6% 0.033 307.174);
    --color-purple-500: oklch(62.7% 0.265 303.9);
    --color-purple-600: oklch(55.8% 0.288 302.321);
    --color-purple-700: oklch(49.6% 0.265 301.924);
    --color-fuchsia-500: oklch(66.7% 0.295 322.15);
    --color-pink-100: oklch(94.8% 0.028 342.258);
    --color-pink-500: oklch(65.6% 0.241 354.308);
    --color-pink-600: oklch(59.2% 0.249 0.584);
    --color-rose-50: oklch(96.9% 0.015 12.422);
    --color-rose-100: oklch(94.1% 0.03 12.58);
    --color-rose-200: oklch(89.2% 0.058 10.001);
    --color-rose-500: oklch(64.5% 0.246 16.439);
    --color-rose-600: oklch(58.6% 0.253 17.585);
    --color-rose-700: oklch(51.4% 0.222 16.935);
    --color-rose-800: oklch(45.5% 0.188 13.697);
    --color-slate-50: oklch(98.4% 0.003 247.858);
    --color-slate-100: oklch(96.8% 0.007 247.896);
    --color-slate-200: oklch(92.9% 0.013 255.508);
    --color-slate-300: oklch(86.9% 0.022 252.894);
    --color-slate-400: oklch(70.4% 0.04 256.788);
    --color-slate-500: oklch(55.4% 0.046 257.417);
    --color-slate-600: oklch(44.6% 0.043 257.281);
    --color-slate-700: oklch(37.2% 0.044 257.287);
    --color-slate-900: oklch(20.8% 0.042 265.755);
    --color-slate-950: oklch(12.9% 0.042 264.695);
    --color-neutral-50: oklch(98.5% 0 0);
    --color-neutral-100: oklch(97% 0 0);
    --color-neutral-200: oklch(92.2% 0 0);
    --color-neutral-300: oklch(87% 0 0);
    --color-neutral-400: oklch(70.8% 0 0);
    --color-neutral-500: oklch(55.6% 0 0);
    --color-neutral-600: oklch(43.9% 0 0);
    --color-neutral-700: oklch(37.1% 0 0);
    --color-neutral-800: oklch(26.9% 0 0);
    --color-neutral-900: oklch(20.5% 0 0);
    --color-black: #000;
    --color-white: #fff;
    --spacing: 0.25rem;
    --container-xs: 20rem;
    --container-sm: 24rem;
    --container-md: 28rem;
    --container-lg: 32rem;
    --container-xl: 36rem;
    --container-2xl: 42rem;
    --container-3xl: 48rem;
    --text-xs: 0.75rem;
    --text-xs--line-height: calc(1 / 0.75);
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25 / 0.875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75 / 1.25);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --text-4xl: 2.25rem;
    --text-4xl--line-height: calc(2.5 / 2.25);
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    --tracking-tight: -0.025em;
    --tracking-wide: 0.025em;
    --tracking-wider: 0.05em;
    --leading-tight: 1.25;
    --leading-snug: 1.375;
    --leading-relaxed: 1.625;
    --radius-sm: 0.25rem;
    --radius-md: 0.375rem;
    --radius-lg: 0.5rem;
    --radius-xl: 0.75rem;
    --radius-2xl: 1rem;
    --radius-3xl: 1.5rem;
    --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    --ease-in: cubic-bezier(0.4, 0, 1, 1);
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    --animate-spin: spin 1s linear infinite;
    --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    --blur-sm: 8px;
    --aspect-video: 16 / 9;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, 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 {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  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 {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    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, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::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)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type='button'], [type='reset'], [type='submit']), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden='until-found'])) {
    display: none !important;
  }
}
@layer utilities {
  .pointer-events-none {
    pointer-events: none;
  }
  .\!visible {
    visibility: visible !important;
  }
  .collapse {
    visibility: collapse;
  }
  .invisible {
    visibility: hidden;
  }
  .visible {
    visibility: visible;
  }
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
  }
  .absolute {
    position: absolute;
  }
  .fixed {
    position: fixed;
  }
  .relative {
    position: relative;
  }
  .static {
    position: static;
  }
  .sticky {
    position: sticky;
  }
  .inset-0 {
    inset: calc(var(--spacing) * 0);
  }
  .-top-1 {
    top: calc(var(--spacing) * -1);
  }
  .-top-7 {
    top: calc(var(--spacing) * -7);
  }
  .-top-16 {
    top: calc(var(--spacing) * -16);
  }
  .top-0 {
    top: calc(var(--spacing) * 0);
  }
  .top-1\.5 {
    top: calc(var(--spacing) * 1.5);
  }
  .top-1\/2 {
    top: calc(1/2 * 100%);
  }
  .top-1\/3 {
    top: calc(1/3 * 100%);
  }
  .top-2 {
    top: calc(var(--spacing) * 2);
  }
  .top-4 {
    top: calc(var(--spacing) * 4);
  }
  .top-\[-4rem\] {
    top: -4rem;
  }
  .top-\[-5rem\] {
    top: -5rem;
  }
  .-right-1 {
    right: calc(var(--spacing) * -1);
  }
  .-right-16 {
    right: calc(var(--spacing) * -16);
  }
  .right-0 {
    right: calc(var(--spacing) * 0);
  }
  .right-1 {
    right: calc(var(--spacing) * 1);
  }
  .right-1\.5 {
    right: calc(var(--spacing) * 1.5);
  }
  .right-1\/3 {
    right: calc(1/3 * 100%);
  }
  .right-1\/4 {
    right: calc(1/4 * 100%);
  }
  .right-2 {
    right: calc(var(--spacing) * 2);
  }
  .right-4 {
    right: calc(var(--spacing) * 4);
  }
  .right-6 {
    right: calc(var(--spacing) * 6);
  }
  .right-\[-4rem\] {
    right: -4rem;
  }
  .-bottom-10 {
    bottom: calc(var(--spacing) * -10);
  }
  .bottom-0 {
    bottom: calc(var(--spacing) * 0);
  }
  .bottom-4 {
    bottom: calc(var(--spacing) * 4);
  }
  .bottom-6 {
    bottom: calc(var(--spacing) * 6);
  }
  .bottom-20 {
    bottom: calc(var(--spacing) * 20);
  }
  .bottom-\[-2rem\] {
    bottom: -2rem;
  }
  .bottom-\[-8rem\] {
    bottom: -8rem;
  }
  .-left-10 {
    left: calc(var(--spacing) * -10);
  }
  .left-0 {
    left: calc(var(--spacing) * 0);
  }
  .left-1\/2 {
    left: calc(1/2 * 100%);
  }
  .left-1\/4 {
    left: calc(1/4 * 100%);
  }
  .left-2 {
    left: calc(var(--spacing) * 2);
  }
  .left-3 {
    left: calc(var(--spacing) * 3);
  }
  .left-4 {
    left: calc(var(--spacing) * 4);
  }
  .left-\[-5rem\] {
    left: -5rem;
  }
  .z-0 {
    z-index: 0;
  }
  .z-10 {
    z-index: 10;
  }
  .z-20 {
    z-index: 20;
  }
  .z-40 {
    z-index: 40;
  }
  .z-50 {
    z-index: 50;
  }
  .z-\[100\] {
    z-index: 100;
  }
  .col-12 {
    grid-column: 12;
  }
  .col-span-2 {
    grid-column: span 2 / span 2;
  }
  .col-span-3 {
    grid-column: span 3 / span 3;
  }
  .col-span-12 {
    grid-column: span 12 / span 12;
  }
  .container {
    width: 100%;
    @media (width >= 40rem) {
      max-width: 40rem;
    }
    @media (width >= 48rem) {
      max-width: 48rem;
    }
    @media (width >= 64rem) {
      max-width: 64rem;
    }
    @media (width >= 80rem) {
      max-width: 80rem;
    }
    @media (width >= 96rem) {
      max-width: 96rem;
    }
  }
  .mx-1 {
    margin-inline: calc(var(--spacing) * 1);
  }
  .mx-5 {
    margin-inline: calc(var(--spacing) * 5);
  }
  .mx-auto {
    margin-inline: auto;
  }
  .my-1 {
    margin-block: calc(var(--spacing) * 1);
  }
  .my-2 {
    margin-block: calc(var(--spacing) * 2);
  }
  .ms-2 {
    margin-inline-start: calc(var(--spacing) * 2);
  }
  .me-1 {
    margin-inline-end: calc(var(--spacing) * 1);
  }
  .me-2 {
    margin-inline-end: calc(var(--spacing) * 2);
  }
  .mt-0\.5 {
    margin-top: calc(var(--spacing) * 0.5);
  }
  .mt-1 {
    margin-top: calc(var(--spacing) * 1);
  }
  .mt-1\.5 {
    margin-top: calc(var(--spacing) * 1.5);
  }
  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }
  .mt-3 {
    margin-top: calc(var(--spacing) * 3);
  }
  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }
  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }
  .mt-8 {
    margin-top: calc(var(--spacing) * 8);
  }
  .mt-16 {
    margin-top: calc(var(--spacing) * 16);
  }
  .mt-auto {
    margin-top: auto;
  }
  .mr-1 {
    margin-right: calc(var(--spacing) * 1);
  }
  .mr-1\.5 {
    margin-right: calc(var(--spacing) * 1.5);
  }
  .mr-2 {
    margin-right: calc(var(--spacing) * 2);
  }
  .mb-0 {
    margin-bottom: calc(var(--spacing) * 0);
  }
  .mb-0\.5 {
    margin-bottom: calc(var(--spacing) * 0.5);
  }
  .mb-1 {
    margin-bottom: calc(var(--spacing) * 1);
  }
  .mb-1\.5 {
    margin-bottom: calc(var(--spacing) * 1.5);
  }
  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }
  .mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
  }
  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }
  .mb-5 {
    margin-bottom: calc(var(--spacing) * 5);
  }
  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }
  .mb-8 {
    margin-bottom: calc(var(--spacing) * 8);
  }
  .mb-10 {
    margin-bottom: calc(var(--spacing) * 10);
  }
  .-ml-1 {
    margin-left: calc(var(--spacing) * -1);
  }
  .ml-1 {
    margin-left: calc(var(--spacing) * 1);
  }
  .ml-2 {
    margin-left: calc(var(--spacing) * 2);
  }
  .ml-4 {
    margin-left: calc(var(--spacing) * 4);
  }
  .ml-auto {
    margin-left: auto;
  }
  .line-clamp-2 {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .line-clamp-3 {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }
  .block {
    display: block;
  }
  .contents {
    display: contents;
  }
  .flex {
    display: flex;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .inline {
    display: inline;
  }
  .inline-block {
    display: inline-block;
  }
  .inline-flex {
    display: inline-flex;
  }
  .inline-table {
    display: inline-table;
  }
  .list-item {
    display: list-item;
  }
  .table {
    display: table;
  }
  .table-cell {
    display: table-cell;
  }
  .table-column {
    display: table-column;
  }
  .table-column-group {
    display: table-column-group;
  }
  .aspect-video {
    aspect-ratio: var(--aspect-video);
  }
  .h-1\.5 {
    height: calc(var(--spacing) * 1.5);
  }
  .h-2 {
    height: calc(var(--spacing) * 2);
  }
  .h-2\.5 {
    height: calc(var(--spacing) * 2.5);
  }
  .h-3 {
    height: calc(var(--spacing) * 3);
  }
  .h-3\.5 {
    height: calc(var(--spacing) * 3.5);
  }
  .h-4 {
    height: calc(var(--spacing) * 4);
  }
  .h-5 {
    height: calc(var(--spacing) * 5);
  }
  .h-6 {
    height: calc(var(--spacing) * 6);
  }
  .h-7 {
    height: calc(var(--spacing) * 7);
  }
  .h-8 {
    height: calc(var(--spacing) * 8);
  }
  .h-9 {
    height: calc(var(--spacing) * 9);
  }
  .h-10 {
    height: calc(var(--spacing) * 10);
  }
  .h-11 {
    height: calc(var(--spacing) * 11);
  }
  .h-12 {
    height: calc(var(--spacing) * 12);
  }
  .h-14 {
    height: calc(var(--spacing) * 14);
  }
  .h-16 {
    height: calc(var(--spacing) * 16);
  }
  .h-20 {
    height: calc(var(--spacing) * 20);
  }
  .h-24 {
    height: calc(var(--spacing) * 24);
  }
  .h-32 {
    height: calc(var(--spacing) * 32);
  }
  .h-40 {
    height: calc(var(--spacing) * 40);
  }
  .h-48 {
    height: calc(var(--spacing) * 48);
  }
  .h-64 {
    height: calc(var(--spacing) * 64);
  }
  .h-72 {
    height: calc(var(--spacing) * 72);
  }
  .h-96 {
    height: calc(var(--spacing) * 96);
  }
  .h-100 {
    height: calc(var(--spacing) * 100);
  }
  .h-full {
    height: 100%;
  }
  .h-px {
    height: 1px;
  }
  .h-screen {
    height: 100vh;
  }
  .max-h-8 {
    max-height: calc(var(--spacing) * 8);
  }
  .max-h-12 {
    max-height: calc(var(--spacing) * 12);
  }
  .max-h-16 {
    max-height: calc(var(--spacing) * 16);
  }
  .max-h-24 {
    max-height: calc(var(--spacing) * 24);
  }
  .max-h-40 {
    max-height: calc(var(--spacing) * 40);
  }
  .max-h-48 {
    max-height: calc(var(--spacing) * 48);
  }
  .max-h-56 {
    max-height: calc(var(--spacing) * 56);
  }
  .max-h-64 {
    max-height: calc(var(--spacing) * 64);
  }
  .max-h-\[85vh\] {
    max-height: 85vh;
  }
  .max-h-\[90vh\] {
    max-height: 90vh;
  }
  .max-h-full {
    max-height: 100%;
  }
  .min-h-0 {
    min-height: calc(var(--spacing) * 0);
  }
  .min-h-24 {
    min-height: calc(var(--spacing) * 24);
  }
  .min-h-\[2\.5rem\] {
    min-height: 2.5rem;
  }
  .min-h-\[2\.75rem\] {
    min-height: 2.75rem;
  }
  .min-h-\[8rem\] {
    min-height: 8rem;
  }
  .min-h-\[100px\] {
    min-height: 100px;
  }
  .min-h-full {
    min-height: 100%;
  }
  .min-h-screen {
    min-height: 100vh;
  }
  .w-1\.5 {
    width: calc(var(--spacing) * 1.5);
  }
  .w-1\/2 {
    width: calc(1/2 * 100%);
  }
  .w-2 {
    width: calc(var(--spacing) * 2);
  }
  .w-2\.5 {
    width: calc(var(--spacing) * 2.5);
  }
  .w-3 {
    width: calc(var(--spacing) * 3);
  }
  .w-3\.5 {
    width: calc(var(--spacing) * 3.5);
  }
  .w-3\/4 {
    width: calc(3/4 * 100%);
  }
  .w-4 {
    width: calc(var(--spacing) * 4);
  }
  .w-5 {
    width: calc(var(--spacing) * 5);
  }
  .w-6 {
    width: calc(var(--spacing) * 6);
  }
  .w-7 {
    width: calc(var(--spacing) * 7);
  }
  .w-8 {
    width: calc(var(--spacing) * 8);
  }
  .w-9 {
    width: calc(var(--spacing) * 9);
  }
  .w-10 {
    width: calc(var(--spacing) * 10);
  }
  .w-11 {
    width: calc(var(--spacing) * 11);
  }
  .w-12 {
    width: calc(var(--spacing) * 12);
  }
  .w-14 {
    width: calc(var(--spacing) * 14);
  }
  .w-16 {
    width: calc(var(--spacing) * 16);
  }
  .w-20 {
    width: calc(var(--spacing) * 20);
  }
  .w-24 {
    width: calc(var(--spacing) * 24);
  }
  .w-28 {
    width: calc(var(--spacing) * 28);
  }
  .w-32 {
    width: calc(var(--spacing) * 32);
  }
  .w-36 {
    width: calc(var(--spacing) * 36);
  }
  .w-44 {
    width: calc(var(--spacing) * 44);
  }
  .w-48 {
    width: calc(var(--spacing) * 48);
  }
  .w-64 {
    width: calc(var(--spacing) * 64);
  }
  .w-96 {
    width: calc(var(--spacing) * 96);
  }
  .w-full {
    width: 100%;
  }
  .max-w-2xl {
    max-width: var(--container-2xl);
  }
  .max-w-3xl {
    max-width: var(--container-3xl);
  }
  .max-w-\[6rem\] {
    max-width: 6rem;
  }
  .max-w-\[8rem\] {
    max-width: 8rem;
  }
  .max-w-\[12rem\] {
    max-width: 12rem;
  }
  .max-w-\[16rem\] {
    max-width: 16rem;
  }
  .max-w-\[80\%\] {
    max-width: 80%;
  }
  .max-w-\[120px\] {
    max-width: 120px;
  }
  .max-w-\[375px\] {
    max-width: 375px;
  }
  .max-w-\[768px\] {
    max-width: 768px;
  }
  .max-w-full {
    max-width: 100%;
  }
  .max-w-lg {
    max-width: var(--container-lg);
  }
  .max-w-md {
    max-width: var(--container-md);
  }
  .max-w-none {
    max-width: none;
  }
  .max-w-sm {
    max-width: var(--container-sm);
  }
  .max-w-xl {
    max-width: var(--container-xl);
  }
  .max-w-xs {
    max-width: var(--container-xs);
  }
  .min-w-0 {
    min-width: calc(var(--spacing) * 0);
  }
  .min-w-40 {
    min-width: calc(var(--spacing) * 40);
  }
  .min-w-\[12rem\] {
    min-width: 12rem;
  }
  .min-w-\[200px\] {
    min-width: 200px;
  }
  .min-w-\[640px\] {
    min-width: 640px;
  }
  .flex-1 {
    flex: 1;
  }
  .flex-shrink {
    flex-shrink: 1;
  }
  .flex-shrink-0 {
    flex-shrink: 0;
  }
  .shrink {
    flex-shrink: 1;
  }
  .shrink-0 {
    flex-shrink: 0;
  }
  .-translate-x-1\/2 {
    --tw-translate-x: calc(calc(1/2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .-translate-y-1\/2 {
    --tw-translate-y: calc(calc(1/2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .rotate-90 {
    rotate: 90deg;
  }
  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .animate-pulse {
    animation: var(--animate-pulse);
  }
  .animate-spin {
    animation: var(--animate-spin);
  }
  .cursor-default {
    cursor: default;
  }
  .cursor-grab {
    cursor: grab;
  }
  .cursor-not-allowed {
    cursor: not-allowed;
  }
  .cursor-pointer {
    cursor: pointer;
  }
  .resize {
    resize: both;
  }
  .resize-none {
    resize: none;
  }
  .resize-y {
    resize: vertical;
  }
  .list-decimal {
    list-style-type: decimal;
  }
  .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .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));
  }
  .grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .flex-col {
    flex-direction: column;
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .items-baseline {
    align-items: baseline;
  }
  .items-center {
    align-items: center;
  }
  .items-end {
    align-items: flex-end;
  }
  .items-start {
    align-items: flex-start;
  }
  .items-stretch {
    align-items: stretch;
  }
  .justify-between {
    justify-content: space-between;
  }
  .justify-center {
    justify-content: center;
  }
  .justify-end {
    justify-content: flex-end;
  }
  .gap-0 {
    gap: calc(var(--spacing) * 0);
  }
  .gap-0\.5 {
    gap: calc(var(--spacing) * 0.5);
  }
  .gap-1 {
    gap: calc(var(--spacing) * 1);
  }
  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }
  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }
  .gap-2\.5 {
    gap: calc(var(--spacing) * 2.5);
  }
  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }
  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }
  .gap-5 {
    gap: calc(var(--spacing) * 5);
  }
  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }
  .space-y-0\.5 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .space-y-1 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .space-y-1\.5 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .space-y-2 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .space-y-3 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .space-y-4 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .space-y-5 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .space-y-6 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .space-y-8 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .gap-x-6 {
    column-gap: calc(var(--spacing) * 6);
  }
  .gap-y-3 {
    row-gap: calc(var(--spacing) * 3);
  }
  .divide-y {
    :where(& > :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)));
    }
  }
  .divide-\[var\(--color-border\)\] {
    :where(& > :not(:last-child)) {
      border-color: var(--color-border);
    }
  }
  .divide-neutral-100 {
    :where(& > :not(:last-child)) {
      border-color: var(--color-neutral-100);
    }
  }
  .self-center {
    align-self: center;
  }
  .self-end {
    align-self: flex-end;
  }
  .truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .overflow-auto {
    overflow: auto;
  }
  .overflow-hidden {
    overflow: hidden;
  }
  .overflow-x-auto {
    overflow-x: auto;
  }
  .overflow-x-hidden {
    overflow-x: hidden;
  }
  .overflow-y-auto {
    overflow-y: auto;
  }
  .rounded {
    border-radius: 0.25rem;
  }
  .rounded-2xl {
    border-radius: var(--radius-2xl);
  }
  .rounded-3xl {
    border-radius: var(--radius-3xl);
  }
  .rounded-\[var\(--skin-ed-radius\)\] {
    border-radius: var(--skin-ed-radius);
  }
  .rounded-full {
    border-radius: calc(infinity * 1px);
  }
  .rounded-lg {
    border-radius: var(--radius-lg);
  }
  .rounded-md {
    border-radius: var(--radius-md);
  }
  .rounded-xl {
    border-radius: var(--radius-xl);
  }
  .rounded-t {
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
  }
  .rounded-t-xl {
    border-top-left-radius: var(--radius-xl);
    border-top-right-radius: var(--radius-xl);
  }
  .rounded-l-none {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
  .rounded-r-none {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-0 {
    border-style: var(--tw-border-style);
    border-width: 0px;
  }
  .border-2 {
    border-style: var(--tw-border-style);
    border-width: 2px;
  }
  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }
  .border-r {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }
  .border-r-0 {
    border-right-style: var(--tw-border-style);
    border-right-width: 0px;
  }
  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }
  .border-l {
    border-left-style: var(--tw-border-style);
    border-left-width: 1px;
  }
  .border-dashed {
    --tw-border-style: dashed;
    border-style: dashed;
  }
  .border-\[var\(--color-border\)\] {
    border-color: var(--color-border);
  }
  .border-\[var\(--neutral-100\)\] {
    border-color: var(--neutral-100);
  }
  .border-\[var\(--neutral-200\)\] {
    border-color: var(--neutral-200);
  }
  .border-\[var\(--neutral-300\)\] {
    border-color: var(--neutral-300);
  }
  .border-amber-100 {
    border-color: var(--color-amber-100);
  }
  .border-amber-200 {
    border-color: var(--color-amber-200);
  }
  .border-amber-300\/30 {
    border-color: color-mix(in srgb, oklch(87.9% 0.169 91.605) 30%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-amber-300) 30%, transparent);
    }
  }
  .border-blue-200 {
    border-color: var(--color-blue-200);
  }
  .border-cyan-200 {
    border-color: var(--color-cyan-200);
  }
  .border-cyan-400\/20 {
    border-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-cyan-400) 20%, transparent);
    }
  }
  .border-emerald-100 {
    border-color: var(--color-emerald-100);
  }
  .border-emerald-200 {
    border-color: var(--color-emerald-200);
  }
  .border-green-200 {
    border-color: var(--color-green-200);
  }
  .border-lime-400 {
    border-color: var(--color-lime-400);
  }
  .border-neutral-100 {
    border-color: var(--color-neutral-100);
  }
  .border-neutral-200 {
    border-color: var(--color-neutral-200);
  }
  .border-red-100 {
    border-color: var(--color-red-100);
  }
  .border-red-200 {
    border-color: var(--color-red-200);
  }
  .border-red-300 {
    border-color: var(--color-red-300);
  }
  .border-red-500 {
    border-color: var(--color-red-500);
  }
  .border-rose-200 {
    border-color: var(--color-rose-200);
  }
  .border-slate-200 {
    border-color: var(--color-slate-200);
  }
  .border-slate-300 {
    border-color: var(--color-slate-300);
  }
  .border-slate-900 {
    border-color: var(--color-slate-900);
  }
  .border-transparent {
    border-color: transparent;
  }
  .border-violet-100 {
    border-color: var(--color-violet-100);
  }
  .border-violet-200 {
    border-color: var(--color-violet-200);
  }
  .border-violet-300\/70 {
    border-color: color-mix(in srgb, oklch(81.1% 0.111 293.571) 70%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-violet-300) 70%, transparent);
    }
  }
  .border-white {
    border-color: var(--color-white);
  }
  .border-white\/10 {
    border-color: color-mix(in srgb, #fff 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-white) 10%, transparent);
    }
  }
  .border-white\/15 {
    border-color: color-mix(in srgb, #fff 15%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-white) 15%, transparent);
    }
  }
  .border-white\/20 {
    border-color: color-mix(in srgb, #fff 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-white) 20%, transparent);
    }
  }
  .border-white\/30 {
    border-color: color-mix(in srgb, #fff 30%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-white) 30%, transparent);
    }
  }
  .bg-\[color-mix\(in_srgb\,var\(--color-surface\,white\)_90\%\,transparent\)\] {
    background-color: var(--color-surface,white);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in srgb,var(--color-surface,white) 90%,transparent);
    }
  }
  .bg-\[var\(--bg-app\,\#f5f5f5\)\] {
    background-color: var(--bg-app,#f5f5f5);
  }
  .bg-\[var\(--brand-600\)\] {
    background-color: var(--brand-600);
  }
  .bg-\[var\(--color-primary\,var\(--primary-500\)\)\] {
    background-color: var(--color-primary,var(--primary-500));
  }
  .bg-\[var\(--color-surface-hover\)\] {
    background-color: var(--color-surface-hover);
  }
  .bg-\[var\(--neutral-50\)\] {
    background-color: var(--neutral-50);
  }
  .bg-\[var\(--neutral-50\,\#f9fafb\)\] {
    background-color: var(--neutral-50,#f9fafb);
  }
  .bg-\[var\(--neutral-100\)\] {
    background-color: var(--neutral-100);
  }
  .bg-\[var\(--neutral-100\,\#f3f4f6\)\] {
    background-color: var(--neutral-100,#f3f4f6);
  }
  .bg-\[var\(--neutral-200\)\] {
    background-color: var(--neutral-200);
  }
  .bg-\[var\(--neutral-300\)\] {
    background-color: var(--neutral-300);
  }
  .bg-\[var\(--neutral-400\)\] {
    background-color: var(--neutral-400);
  }
  .bg-\[var\(--neutral-900\)\] {
    background-color: var(--neutral-900);
  }
  .bg-\[var\(--primary-100\)\] {
    background-color: var(--primary-100);
  }
  .bg-\[var\(--primary-500\)\] {
    background-color: var(--primary-500);
  }
  .bg-\[var\(--secondary\)\] {
    background-color: var(--secondary);
  }
  .bg-\[var\(--secondary\)\]\/10 {
    background-color: var(--secondary);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--secondary) 10%, transparent);
    }
  }
  .bg-\[var\(--surface\,\#fff\)\] {
    background-color: var(--surface,#fff);
  }
  .bg-amber-50 {
    background-color: var(--color-amber-50);
  }
  .bg-amber-50\/40 {
    background-color: color-mix(in srgb, oklch(98.7% 0.022 95.277) 40%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-amber-50) 40%, transparent);
    }
  }
  .bg-amber-50\/60 {
    background-color: color-mix(in srgb, oklch(98.7% 0.022 95.277) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-amber-50) 60%, transparent);
    }
  }
  .bg-amber-100 {
    background-color: var(--color-amber-100);
  }
  .bg-amber-200 {
    background-color: var(--color-amber-200);
  }
  .bg-amber-200\/60 {
    background-color: color-mix(in srgb, oklch(92.4% 0.12 95.746) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-amber-200) 60%, transparent);
    }
  }
  .bg-amber-400 {
    background-color: var(--color-amber-400);
  }
  .bg-amber-400\/30 {
    background-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 30%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-amber-400) 30%, transparent);
    }
  }
  .bg-amber-500 {
    background-color: var(--color-amber-500);
  }
  .bg-black\/30 {
    background-color: color-mix(in srgb, #000 30%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-black) 30%, transparent);
    }
  }
  .bg-black\/40 {
    background-color: color-mix(in srgb, #000 40%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-black) 40%, transparent);
    }
  }
  .bg-black\/50 {
    background-color: color-mix(in srgb, #000 50%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
    }
  }
  .bg-blue-50 {
    background-color: var(--color-blue-50);
  }
  .bg-blue-100 {
    background-color: var(--color-blue-100);
  }
  .bg-blue-500 {
    background-color: var(--color-blue-500);
  }
  .bg-blue-600 {
    background-color: var(--color-blue-600);
  }
  .bg-cyan-50 {
    background-color: var(--color-cyan-50);
  }
  .bg-cyan-400 {
    background-color: var(--color-cyan-400);
  }
  .bg-cyan-400\/10 {
    background-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-cyan-400) 10%, transparent);
    }
  }
  .bg-cyan-500 {
    background-color: var(--color-cyan-500);
  }
  .bg-emerald-50 {
    background-color: var(--color-emerald-50);
  }
  .bg-emerald-50\/40 {
    background-color: color-mix(in srgb, oklch(97.9% 0.021 166.113) 40%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-emerald-50) 40%, transparent);
    }
  }
  .bg-emerald-50\/60 {
    background-color: color-mix(in srgb, oklch(97.9% 0.021 166.113) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-emerald-50) 60%, transparent);
    }
  }
  .bg-emerald-100 {
    background-color: var(--color-emerald-100);
  }
  .bg-emerald-200 {
    background-color: var(--color-emerald-200);
  }
  .bg-emerald-500 {
    background-color: var(--color-emerald-500);
  }
  .bg-emerald-600 {
    background-color: var(--color-emerald-600);
  }
  .bg-emerald-700 {
    background-color: var(--color-emerald-700);
  }
  .bg-green-50 {
    background-color: var(--color-green-50);
  }
  .bg-green-100 {
    background-color: var(--color-green-100);
  }
  .bg-green-500 {
    background-color: var(--color-green-500);
  }
  .bg-indigo-50\/60 {
    background-color: color-mix(in srgb, oklch(96.2% 0.018 272.314) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-indigo-50) 60%, transparent);
    }
  }
  .bg-lime-400 {
    background-color: var(--color-lime-400);
  }
  .bg-neutral-50 {
    background-color: var(--color-neutral-50);
  }
  .bg-neutral-50\/60 {
    background-color: color-mix(in srgb, oklch(98.5% 0 0) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-neutral-50) 60%, transparent);
    }
  }
  .bg-neutral-100 {
    background-color: var(--color-neutral-100);
  }
  .bg-neutral-800 {
    background-color: var(--color-neutral-800);
  }
  .bg-neutral-900 {
    background-color: var(--color-neutral-900);
  }
  .bg-pink-100 {
    background-color: var(--color-pink-100);
  }
  .bg-purple-100 {
    background-color: var(--color-purple-100);
  }
  .bg-red-50 {
    background-color: var(--color-red-50);
  }
  .bg-red-50\/40 {
    background-color: color-mix(in srgb, oklch(97.1% 0.013 17.38) 40%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-red-50) 40%, transparent);
    }
  }
  .bg-red-50\/60 {
    background-color: color-mix(in srgb, oklch(97.1% 0.013 17.38) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-red-50) 60%, transparent);
    }
  }
  .bg-red-100 {
    background-color: var(--color-red-100);
  }
  .bg-red-500 {
    background-color: var(--color-red-500);
  }
  .bg-red-500\/20 {
    background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
    }
  }
  .bg-rose-50\/60 {
    background-color: color-mix(in srgb, oklch(96.9% 0.015 12.422) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-rose-50) 60%, transparent);
    }
  }
  .bg-rose-100 {
    background-color: var(--color-rose-100);
  }
  .bg-rose-500 {
    background-color: var(--color-rose-500);
  }
  .bg-rose-600 {
    background-color: var(--color-rose-600);
  }
  .bg-sky-50\/60 {
    background-color: color-mix(in srgb, oklch(97.7% 0.013 236.62) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-sky-50) 60%, transparent);
    }
  }
  .bg-slate-50 {
    background-color: var(--color-slate-50);
  }
  .bg-slate-50\/80 {
    background-color: color-mix(in srgb, oklch(98.4% 0.003 247.858) 80%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-slate-50) 80%, transparent);
    }
  }
  .bg-slate-100 {
    background-color: var(--color-slate-100);
  }
  .bg-slate-200 {
    background-color: var(--color-slate-200);
  }
  .bg-slate-900 {
    background-color: var(--color-slate-900);
  }
  .bg-slate-900\/60 {
    background-color: color-mix(in srgb, oklch(20.8% 0.042 265.755) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-slate-900) 60%, transparent);
    }
  }
  .bg-slate-950 {
    background-color: var(--color-slate-950);
  }
  .bg-slate-950\/60 {
    background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-slate-950) 60%, transparent);
    }
  }
  .bg-slate-950\/70 {
    background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 70%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-slate-950) 70%, transparent);
    }
  }
  .bg-slate-950\/80 {
    background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 80%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-slate-950) 80%, transparent);
    }
  }
  .bg-transparent {
    background-color: transparent;
  }
  .bg-violet-50 {
    background-color: var(--color-violet-50);
  }
  .bg-violet-50\/40 {
    background-color: color-mix(in srgb, oklch(96.9% 0.016 293.756) 40%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-violet-50) 40%, transparent);
    }
  }
  .bg-violet-50\/60 {
    background-color: color-mix(in srgb, oklch(96.9% 0.016 293.756) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-violet-50) 60%, transparent);
    }
  }
  .bg-violet-100 {
    background-color: var(--color-violet-100);
  }
  .bg-violet-500 {
    background-color: var(--color-violet-500);
  }
  .bg-violet-500\/10 {
    background-color: color-mix(in srgb, oklch(60.6% 0.25 292.717) 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-violet-500) 10%, transparent);
    }
  }
  .bg-violet-500\/20 {
    background-color: color-mix(in srgb, oklch(60.6% 0.25 292.717) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-violet-500) 20%, transparent);
    }
  }
  .bg-white {
    background-color: var(--color-white);
  }
  .bg-white\/5 {
    background-color: color-mix(in srgb, #fff 5%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
    }
  }
  .bg-white\/10 {
    background-color: color-mix(in srgb, #fff 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
    }
  }
  .bg-white\/15 {
    background-color: color-mix(in srgb, #fff 15%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-white) 15%, transparent);
    }
  }
  .bg-white\/20 {
    background-color: color-mix(in srgb, #fff 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-white) 20%, transparent);
    }
  }
  .bg-white\/90 {
    background-color: color-mix(in srgb, #fff 90%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-white) 90%, transparent);
    }
  }
  .bg-gradient-to-br {
    --tw-gradient-position: to bottom right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }
  .bg-gradient-to-r {
    --tw-gradient-position: to right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }
  .from-amber-400 {
    --tw-gradient-from: var(--color-amber-400);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-indigo-500 {
    --tw-gradient-from: var(--color-indigo-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-violet-100 {
    --tw-gradient-from: var(--color-violet-100);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-violet-500 {
    --tw-gradient-from: var(--color-violet-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .from-violet-500\/20 {
    --tw-gradient-from: color-mix(in srgb, oklch(60.6% 0.25 292.717) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-from: color-mix(in oklab, var(--color-violet-500) 20%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .via-cyan-50 {
    --tw-gradient-via: var(--color-cyan-50);
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }
  .via-cyan-400\/10 {
    --tw-gradient-via: color-mix(in srgb, oklch(78.9% 0.154 211.53) 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-via: color-mix(in oklab, var(--color-cyan-400) 10%, transparent);
    }
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }
  .to-cyan-400 {
    --tw-gradient-to: var(--color-cyan-400);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-lime-100 {
    --tw-gradient-to: var(--color-lime-100);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-lime-400\/20 {
    --tw-gradient-to: color-mix(in srgb, oklch(84.1% 0.238 128.85) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-gradient-to: color-mix(in oklab, var(--color-lime-400) 20%, transparent);
    }
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .to-orange-500 {
    --tw-gradient-to: var(--color-orange-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }
  .bg-cover {
    background-size: cover;
  }
  .bg-center {
    background-position: center;
  }
  .fill-none {
    fill: none;
  }
  .stroke-current {
    stroke: currentcolor;
  }
  .object-contain {
    object-fit: contain;
  }
  .object-cover {
    object-fit: cover;
  }
  .p-0 {
    padding: calc(var(--spacing) * 0);
  }
  .p-0\.5 {
    padding: calc(var(--spacing) * 0.5);
  }
  .p-1 {
    padding: calc(var(--spacing) * 1);
  }
  .p-1\.5 {
    padding: calc(var(--spacing) * 1.5);
  }
  .p-2 {
    padding: calc(var(--spacing) * 2);
  }
  .p-2\.5 {
    padding: calc(var(--spacing) * 2.5);
  }
  .p-3 {
    padding: calc(var(--spacing) * 3);
  }
  .p-4 {
    padding: calc(var(--spacing) * 4);
  }
  .p-5 {
    padding: calc(var(--spacing) * 5);
  }
  .p-6 {
    padding: calc(var(--spacing) * 6);
  }
  .p-8 {
    padding: calc(var(--spacing) * 8);
  }
  .p-10 {
    padding: calc(var(--spacing) * 10);
  }
  .p-12 {
    padding: calc(var(--spacing) * 12);
  }
  .px-0\.5 {
    padding-inline: calc(var(--spacing) * 0.5);
  }
  .px-1 {
    padding-inline: calc(var(--spacing) * 1);
  }
  .px-1\.5 {
    padding-inline: calc(var(--spacing) * 1.5);
  }
  .px-2 {
    padding-inline: calc(var(--spacing) * 2);
  }
  .px-2\.5 {
    padding-inline: calc(var(--spacing) * 2.5);
  }
  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }
  .px-3\.5 {
    padding-inline: calc(var(--spacing) * 3.5);
  }
  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }
  .px-5 {
    padding-inline: calc(var(--spacing) * 5);
  }
  .px-6 {
    padding-inline: calc(var(--spacing) * 6);
  }
  .px-8 {
    padding-inline: calc(var(--spacing) * 8);
  }
  .py-0\.5 {
    padding-block: calc(var(--spacing) * 0.5);
  }
  .py-1 {
    padding-block: calc(var(--spacing) * 1);
  }
  .py-1\.5 {
    padding-block: calc(var(--spacing) * 1.5);
  }
  .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-3\.5 {
    padding-block: calc(var(--spacing) * 3.5);
  }
  .py-4 {
    padding-block: calc(var(--spacing) * 4);
  }
  .py-5 {
    padding-block: calc(var(--spacing) * 5);
  }
  .py-6 {
    padding-block: calc(var(--spacing) * 6);
  }
  .py-8 {
    padding-block: calc(var(--spacing) * 8);
  }
  .py-10 {
    padding-block: calc(var(--spacing) * 10);
  }
  .py-12 {
    padding-block: calc(var(--spacing) * 12);
  }
  .py-16 {
    padding-block: calc(var(--spacing) * 16);
  }
  .py-20 {
    padding-block: calc(var(--spacing) * 20);
  }
  .pt-1 {
    padding-top: calc(var(--spacing) * 1);
  }
  .pt-2 {
    padding-top: calc(var(--spacing) * 2);
  }
  .pt-3 {
    padding-top: calc(var(--spacing) * 3);
  }
  .pt-4 {
    padding-top: calc(var(--spacing) * 4);
  }
  .pt-5 {
    padding-top: calc(var(--spacing) * 5);
  }
  .pt-6 {
    padding-top: calc(var(--spacing) * 6);
  }
  .pt-10 {
    padding-top: calc(var(--spacing) * 10);
  }
  .pr-10 {
    padding-right: calc(var(--spacing) * 10);
  }
  .pb-1 {
    padding-bottom: calc(var(--spacing) * 1);
  }
  .pb-2 {
    padding-bottom: calc(var(--spacing) * 2);
  }
  .pb-3 {
    padding-bottom: calc(var(--spacing) * 3);
  }
  .pb-4 {
    padding-bottom: calc(var(--spacing) * 4);
  }
  .pb-5 {
    padding-bottom: calc(var(--spacing) * 5);
  }
  .pb-6 {
    padding-bottom: calc(var(--spacing) * 6);
  }
  .pb-12 {
    padding-bottom: calc(var(--spacing) * 12);
  }
  .pl-5 {
    padding-left: calc(var(--spacing) * 5);
  }
  .pl-10 {
    padding-left: calc(var(--spacing) * 10);
  }
  .pl-12 {
    padding-left: calc(var(--spacing) * 12);
  }
  .text-center {
    text-align: center;
  }
  .text-end {
    text-align: end;
  }
  .text-left {
    text-align: left;
  }
  .text-right {
    text-align: right;
  }
  .align-middle {
    vertical-align: middle;
  }
  .font-mono {
    font-family: var(--font-mono);
  }
  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }
  .text-3xl {
    font-size: var(--text-3xl);
    line-height: var(--tw-leading, var(--text-3xl--line-height));
  }
  .text-4xl {
    font-size: var(--text-4xl);
    line-height: var(--tw-leading, var(--text-4xl--line-height));
  }
  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--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-xl {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
  }
  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }
  .text-\[0\.6rem\] {
    font-size: 0.6rem;
  }
  .text-\[0\.7rem\] {
    font-size: 0.7rem;
  }
  .text-\[0\.8em\] {
    font-size: 0.8em;
  }
  .text-\[0\.65rem\] {
    font-size: 0.65rem;
  }
  .text-\[0\.75em\] {
    font-size: 0.75em;
  }
  .text-\[0\.625rem\] {
    font-size: 0.625rem;
  }
  .text-\[7px\] {
    font-size: 7px;
  }
  .text-\[8px\] {
    font-size: 8px;
  }
  .text-\[9px\] {
    font-size: 9px;
  }
  .text-\[10px\] {
    font-size: 10px;
  }
  .text-\[11px\] {
    font-size: 11px;
  }
  .text-\[12px\] {
    font-size: 12px;
  }
  .leading-4 {
    --tw-leading: calc(var(--spacing) * 4);
    line-height: calc(var(--spacing) * 4);
  }
  .leading-5 {
    --tw-leading: calc(var(--spacing) * 5);
    line-height: calc(var(--spacing) * 5);
  }
  .leading-6 {
    --tw-leading: calc(var(--spacing) * 6);
    line-height: calc(var(--spacing) * 6);
  }
  .leading-7 {
    --tw-leading: calc(var(--spacing) * 7);
    line-height: calc(var(--spacing) * 7);
  }
  .leading-none {
    --tw-leading: 1;
    line-height: 1;
  }
  .leading-relaxed {
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
  }
  .leading-snug {
    --tw-leading: var(--leading-snug);
    line-height: var(--leading-snug);
  }
  .leading-tight {
    --tw-leading: var(--leading-tight);
    line-height: var(--leading-tight);
  }
  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }
  .font-extrabold {
    --tw-font-weight: var(--font-weight-extrabold);
    font-weight: var(--font-weight-extrabold);
  }
  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }
  .font-normal {
    --tw-font-weight: var(--font-weight-normal);
    font-weight: var(--font-weight-normal);
  }
  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
  .tracking-\[0\.2em\] {
    --tw-tracking: 0.2em;
    letter-spacing: 0.2em;
  }
  .tracking-tight {
    --tw-tracking: var(--tracking-tight);
    letter-spacing: var(--tracking-tight);
  }
  .tracking-wide {
    --tw-tracking: var(--tracking-wide);
    letter-spacing: var(--tracking-wide);
  }
  .tracking-wider {
    --tw-tracking: var(--tracking-wider);
    letter-spacing: var(--tracking-wider);
  }
  .break-words {
    overflow-wrap: break-word;
  }
  .whitespace-nowrap {
    white-space: nowrap;
  }
  .whitespace-pre-line {
    white-space: pre-line;
  }
  .whitespace-pre-wrap {
    white-space: pre-wrap;
  }
  .text-\[var\(--brand-600\)\] {
    color: var(--brand-600);
  }
  .text-\[var\(--color-error\)\] {
    color: var(--color-error);
  }
  .text-\[var\(--color-text\)\] {
    color: var(--color-text);
  }
  .text-\[var\(--neutral-300\)\] {
    color: var(--neutral-300);
  }
  .text-\[var\(--neutral-400\)\] {
    color: var(--neutral-400);
  }
  .text-\[var\(--neutral-500\)\] {
    color: var(--neutral-500);
  }
  .text-\[var\(--neutral-600\)\] {
    color: var(--neutral-600);
  }
  .text-\[var\(--neutral-600\,\#4b5563\)\] {
    color: var(--neutral-600,#4b5563);
  }
  .text-\[var\(--neutral-700\)\] {
    color: var(--neutral-700);
  }
  .text-\[var\(--neutral-800\)\] {
    color: var(--neutral-800);
  }
  .text-\[var\(--neutral-900\)\] {
    color: var(--neutral-900);
  }
  .text-\[var\(--primary-500\)\] {
    color: var(--primary-500);
  }
  .text-\[var\(--primary-600\)\] {
    color: var(--primary-600);
  }
  .text-\[var\(--primary-700\)\] {
    color: var(--primary-700);
  }
  .text-\[var\(--secondary\)\] {
    color: var(--secondary);
  }
  .text-amber-100 {
    color: var(--color-amber-100);
  }
  .text-amber-400 {
    color: var(--color-amber-400);
  }
  .text-amber-500 {
    color: var(--color-amber-500);
  }
  .text-amber-600 {
    color: var(--color-amber-600);
  }
  .text-amber-700 {
    color: var(--color-amber-700);
  }
  .text-amber-800 {
    color: var(--color-amber-800);
  }
  .text-blue-500 {
    color: var(--color-blue-500);
  }
  .text-blue-700 {
    color: var(--color-blue-700);
  }
  .text-blue-800 {
    color: var(--color-blue-800);
  }
  .text-cyan-100 {
    color: var(--color-cyan-100);
  }
  .text-cyan-300 {
    color: var(--color-cyan-300);
  }
  .text-cyan-500 {
    color: var(--color-cyan-500);
  }
  .text-cyan-600 {
    color: var(--color-cyan-600);
  }
  .text-cyan-700 {
    color: var(--color-cyan-700);
  }
  .text-cyan-900 {
    color: var(--color-cyan-900);
  }
  .text-emerald-500 {
    color: var(--color-emerald-500);
  }
  .text-emerald-600 {
    color: var(--color-emerald-600);
  }
  .text-emerald-700 {
    color: var(--color-emerald-700);
  }
  .text-emerald-800 {
    color: var(--color-emerald-800);
  }
  .text-emerald-900 {
    color: var(--color-emerald-900);
  }
  .text-fuchsia-500 {
    color: var(--color-fuchsia-500);
  }
  .text-green-600 {
    color: var(--color-green-600);
  }
  .text-green-700 {
    color: var(--color-green-700);
  }
  .text-green-800 {
    color: var(--color-green-800);
  }
  .text-indigo-400 {
    color: var(--color-indigo-400);
  }
  .text-indigo-500 {
    color: var(--color-indigo-500);
  }
  .text-indigo-600 {
    color: var(--color-indigo-600);
  }
  .text-indigo-700 {
    color: var(--color-indigo-700);
  }
  .text-lime-500 {
    color: var(--color-lime-500);
  }
  .text-lime-600 {
    color: var(--color-lime-600);
  }
  .text-neutral-200 {
    color: var(--color-neutral-200);
  }
  .text-neutral-300 {
    color: var(--color-neutral-300);
  }
  .text-neutral-400 {
    color: var(--color-neutral-400);
  }
  .text-neutral-500 {
    color: var(--color-neutral-500);
  }
  .text-neutral-600 {
    color: var(--color-neutral-600);
  }
  .text-neutral-700 {
    color: var(--color-neutral-700);
  }
  .text-neutral-900 {
    color: var(--color-neutral-900);
  }
  .text-orange-500 {
    color: var(--color-orange-500);
  }
  .text-orange-600 {
    color: var(--color-orange-600);
  }
  .text-pink-500 {
    color: var(--color-pink-500);
  }
  .text-pink-600 {
    color: var(--color-pink-600);
  }
  .text-purple-500 {
    color: var(--color-purple-500);
  }
  .text-purple-600 {
    color: var(--color-purple-600);
  }
  .text-purple-700 {
    color: var(--color-purple-700);
  }
  .text-red-200 {
    color: var(--color-red-200);
  }
  .text-red-500 {
    color: var(--color-red-500);
  }
  .text-red-600 {
    color: var(--color-red-600);
  }
  .text-red-700 {
    color: var(--color-red-700);
  }
  .text-red-800 {
    color: var(--color-red-800);
  }
  .text-rose-500 {
    color: var(--color-rose-500);
  }
  .text-rose-600 {
    color: var(--color-rose-600);
  }
  .text-rose-700 {
    color: var(--color-rose-700);
  }
  .text-rose-800 {
    color: var(--color-rose-800);
  }
  .text-sky-500 {
    color: var(--color-sky-500);
  }
  .text-sky-600 {
    color: var(--color-sky-600);
  }
  .text-sky-700 {
    color: var(--color-sky-700);
  }
  .text-slate-100 {
    color: var(--color-slate-100);
  }
  .text-slate-200 {
    color: var(--color-slate-200);
  }
  .text-slate-300 {
    color: var(--color-slate-300);
  }
  .text-slate-400 {
    color: var(--color-slate-400);
  }
  .text-slate-500 {
    color: var(--color-slate-500);
  }
  .text-slate-600 {
    color: var(--color-slate-600);
  }
  .text-slate-700 {
    color: var(--color-slate-700);
  }
  .text-slate-900 {
    color: var(--color-slate-900);
  }
  .text-slate-950 {
    color: var(--color-slate-950);
  }
  .text-teal-500 {
    color: var(--color-teal-500);
  }
  .text-violet-500 {
    color: var(--color-violet-500);
  }
  .text-violet-600 {
    color: var(--color-violet-600);
  }
  .text-violet-700 {
    color: var(--color-violet-700);
  }
  .text-violet-900 {
    color: var(--color-violet-900);
  }
  .text-white {
    color: var(--color-white);
  }
  .text-white\/50 {
    color: color-mix(in srgb, #fff 50%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in oklab, var(--color-white) 50%, transparent);
    }
  }
  .text-white\/60 {
    color: color-mix(in srgb, #fff 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in oklab, var(--color-white) 60%, transparent);
    }
  }
  .text-white\/70 {
    color: color-mix(in srgb, #fff 70%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in oklab, var(--color-white) 70%, transparent);
    }
  }
  .text-white\/80 {
    color: color-mix(in srgb, #fff 80%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in oklab, var(--color-white) 80%, transparent);
    }
  }
  .text-white\/90 {
    color: color-mix(in srgb, #fff 90%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in oklab, var(--color-white) 90%, transparent);
    }
  }
  .text-yellow-500 {
    color: var(--color-yellow-500);
  }
  .text-yellow-600 {
    color: var(--color-yellow-600);
  }
  .capitalize {
    text-transform: capitalize;
  }
  .lowercase {
    text-transform: lowercase;
  }
  .uppercase {
    text-transform: uppercase;
  }
  .italic {
    font-style: italic;
  }
  .tabular-nums {
    --tw-numeric-spacing: tabular-nums;
    font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
  }
  .line-through {
    text-decoration-line: line-through;
  }
  .underline {
    text-decoration-line: underline;
  }
  .accent-\[var\(--color-primary\,\#6366f1\)\] {
    accent-color: var(--color-primary,#6366f1);
  }
  .opacity-0 {
    opacity: 0%;
  }
  .opacity-25 {
    opacity: 25%;
  }
  .opacity-40 {
    opacity: 40%;
  }
  .opacity-60 {
    opacity: 60%;
  }
  .opacity-70 {
    opacity: 70%;
  }
  .opacity-75 {
    opacity: 75%;
  }
  .opacity-80 {
    opacity: 80%;
  }
  .shadow {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-2xl {
    --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-lg {
    --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-md {
    --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-sm {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-xl {
    --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .ring {
    --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .ring-1 {
    --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .ring-2 {
    --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-violet-950\/40 {
    --tw-shadow-color: color-mix(in srgb, oklch(28.3% 0.141 291.089) 40%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-violet-950) 40%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }
  .ring-\[color-mix\(in_srgb\,var\(--color-primary\,var\(--primary-400\)\)_60\%\,transparent\)\] {
    --tw-ring-color: var(--color-primary,var(--primary-400));
    @supports (color: color-mix(in lab, red, red)) {
      --tw-ring-color: color-mix(in srgb,var(--color-primary,var(--primary-400)) 60%,transparent);
    }
  }
  .ring-\[var\(--neutral-200\)\] {
    --tw-ring-color: var(--neutral-200);
  }
  .ring-cyan-300 {
    --tw-ring-color: var(--color-cyan-300);
  }
  .ring-indigo-400 {
    --tw-ring-color: var(--color-indigo-400);
  }
  .ring-red-400 {
    --tw-ring-color: var(--color-red-400);
  }
  .ring-violet-200 {
    --tw-ring-color: var(--color-violet-200);
  }
  .ring-violet-300\/60 {
    --tw-ring-color: color-mix(in srgb, oklch(81.1% 0.111 293.571) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-ring-color: color-mix(in oklab, var(--color-violet-300) 60%, transparent);
    }
  }
  .ring-violet-400\/30 {
    --tw-ring-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 30%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-ring-color: color-mix(in oklab, var(--color-violet-400) 30%, transparent);
    }
  }
  .ring-violet-400\/60 {
    --tw-ring-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-ring-color: color-mix(in oklab, var(--color-violet-400) 60%, transparent);
    }
  }
  .ring-white\/10 {
    --tw-ring-color: color-mix(in srgb, #fff 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      --tw-ring-color: color-mix(in oklab, var(--color-white) 10%, transparent);
    }
  }
  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }
  .blur {
    --tw-blur: blur(8px);
    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,);
  }
  .grayscale {
    --tw-grayscale: grayscale(100%);
    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,);
  }
  .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,);
  }
  .backdrop-blur {
    --tw-backdrop-blur: blur(8px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .backdrop-blur-sm {
    --tw-backdrop-blur: blur(var(--blur-sm));
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .backdrop-filter {
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .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, visibility, 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));
  }
  .transition-all {
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-opacity {
    transition-property: opacity;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-shadow {
    transition-property: box-shadow;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-transform {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .duration-200 {
    --tw-duration: 200ms;
    transition-duration: 200ms;
  }
  .ease-in {
    --tw-ease: var(--ease-in);
    transition-timing-function: var(--ease-in);
  }
  .ease-in-out {
    --tw-ease: var(--ease-in-out);
    transition-timing-function: var(--ease-in-out);
  }
  .ease-out {
    --tw-ease: var(--ease-out);
    transition-timing-function: var(--ease-out);
  }
  .outline-none {
    --tw-outline-style: none;
    outline-style: none;
  }
  .select-none {
    -webkit-user-select: none;
    user-select: none;
  }
  .\[program\:tokii-worker\] {
    program: tokii-worker;
  }
  .group-open\:rotate-180 {
    &:is(:where(.group):is([open], :popover-open, :open) *) {
      rotate: 180deg;
    }
  }
  .group-hover\:flex {
    &:is(:where(.group):hover *) {
      @media (hover: hover) {
        display: flex;
      }
    }
  }
  .group-hover\:scale-110 {
    &:is(:where(.group):hover *) {
      @media (hover: hover) {
        --tw-scale-x: 110%;
        --tw-scale-y: 110%;
        --tw-scale-z: 110%;
        scale: var(--tw-scale-x) var(--tw-scale-y);
      }
    }
  }
  .group-hover\:opacity-100 {
    &:is(:where(.group):hover *) {
      @media (hover: hover) {
        opacity: 100%;
      }
    }
  }
  .group-hover\/ch\:opacity-100 {
    &:is(:where(.group\/ch):hover *) {
      @media (hover: hover) {
        opacity: 100%;
      }
    }
  }
  .group-hover\/name\:opacity-100 {
    &:is(:where(.group\/name):hover *) {
      @media (hover: hover) {
        opacity: 100%;
      }
    }
  }
  .peer-checked\:bg-\[color-mix\(in_srgb\,var\(--color-primary\,var\(--primary-500\)\)_8\%\,var\(--color-surface\,white\)\)\] {
    &:is(:where(.peer):checked ~ *) {
      background-color: var(--color-primary,var(--primary-500));
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in srgb,var(--color-primary,var(--primary-500)) 8%,var(--color-surface,white));
      }
    }
  }
  .peer-checked\:bg-\[var\(--primary-500\)\] {
    &:is(:where(.peer):checked ~ *) {
      background-color: var(--primary-500);
    }
  }
  .peer-checked\:text-white {
    &:is(:where(.peer):checked ~ *) {
      color: var(--color-white);
    }
  }
  .after\:absolute {
    &::after {
      content: var(--tw-content);
      position: absolute;
    }
  }
  .after\:top-\[2px\] {
    &::after {
      content: var(--tw-content);
      top: 2px;
    }
  }
  .after\:left-\[2px\] {
    &::after {
      content: var(--tw-content);
      left: 2px;
    }
  }
  .after\:h-5 {
    &::after {
      content: var(--tw-content);
      height: calc(var(--spacing) * 5);
    }
  }
  .after\:w-5 {
    &::after {
      content: var(--tw-content);
      width: calc(var(--spacing) * 5);
    }
  }
  .after\:rounded-full {
    &::after {
      content: var(--tw-content);
      border-radius: calc(infinity * 1px);
    }
  }
  .after\:bg-white {
    &::after {
      content: var(--tw-content);
      background-color: var(--color-white);
    }
  }
  .after\:transition-all {
    &::after {
      content: var(--tw-content);
      transition-property: all;
      transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
      transition-duration: var(--tw-duration, var(--default-transition-duration));
    }
  }
  .peer-checked\:after\:translate-x-full {
    &:is(:where(.peer):checked ~ *) {
      &::after {
        content: var(--tw-content);
        --tw-translate-x: 100%;
        translate: var(--tw-translate-x) var(--tw-translate-y);
      }
    }
  }
  .last\:border-0 {
    &:last-child {
      border-style: var(--tw-border-style);
      border-width: 0px;
    }
  }
  .last\:border-r-0 {
    &:last-child {
      border-right-style: var(--tw-border-style);
      border-right-width: 0px;
    }
  }
  .hover\:scale-110 {
    &:hover {
      @media (hover: hover) {
        --tw-scale-x: 110%;
        --tw-scale-y: 110%;
        --tw-scale-z: 110%;
        scale: var(--tw-scale-x) var(--tw-scale-y);
      }
    }
  }
  .hover\:border-\[var\(--color-primary\)\] {
    &:hover {
      @media (hover: hover) {
        border-color: var(--color-primary);
      }
    }
  }
  .hover\:border-\[var\(--color-primary\,var\(--primary-300\)\)\] {
    &:hover {
      @media (hover: hover) {
        border-color: var(--color-primary,var(--primary-300));
      }
    }
  }
  .hover\:border-\[var\(--color-primary\,var\(--primary-500\)\)\] {
    &:hover {
      @media (hover: hover) {
        border-color: var(--color-primary,var(--primary-500));
      }
    }
  }
  .hover\:border-\[var\(--primary-300\)\] {
    &:hover {
      @media (hover: hover) {
        border-color: var(--primary-300);
      }
    }
  }
  .hover\:border-\[var\(--secondary\)\]\/30 {
    &:hover {
      @media (hover: hover) {
        border-color: var(--secondary);
        @supports (color: color-mix(in lab, red, red)) {
          border-color: color-mix(in oklab, var(--secondary) 30%, transparent);
        }
      }
    }
  }
  .hover\:\!bg-red-50 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-red-50) !important;
      }
    }
  }
  .hover\:bg-\[var\(--brand-700\)\] {
    &:hover {
      @media (hover: hover) {
        background-color: var(--brand-700);
      }
    }
  }
  .hover\:bg-\[var\(--color-surface-hover\)\] {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-surface-hover);
      }
    }
  }
  .hover\:bg-\[var\(--neutral-50\)\] {
    &:hover {
      @media (hover: hover) {
        background-color: var(--neutral-50);
      }
    }
  }
  .hover\:bg-\[var\(--neutral-100\)\] {
    &:hover {
      @media (hover: hover) {
        background-color: var(--neutral-100);
      }
    }
  }
  .hover\:bg-\[var\(--neutral-200\)\] {
    &:hover {
      @media (hover: hover) {
        background-color: var(--neutral-200);
      }
    }
  }
  .hover\:bg-\[var\(--neutral-300\)\] {
    &:hover {
      @media (hover: hover) {
        background-color: var(--neutral-300);
      }
    }
  }
  .hover\:bg-amber-300 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-amber-300);
      }
    }
  }
  .hover\:bg-black\/40 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, #000 40%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-black) 40%, transparent);
        }
      }
    }
  }
  .hover\:bg-black\/60 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, #000 60%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
        }
      }
    }
  }
  .hover\:bg-cyan-300 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-cyan-300);
      }
    }
  }
  .hover\:bg-emerald-200 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-emerald-200);
      }
    }
  }
  .hover\:bg-emerald-700 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-emerald-700);
      }
    }
  }
  .hover\:bg-green-50 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-green-50);
      }
    }
  }
  .hover\:bg-neutral-50 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-neutral-50);
      }
    }
  }
  .hover\:bg-neutral-700 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-neutral-700);
      }
    }
  }
  .hover\:bg-red-50 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-red-50);
      }
    }
  }
  .hover\:bg-red-600 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-red-600);
      }
    }
  }
  .hover\:bg-slate-100 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-slate-100);
      }
    }
  }
  .hover\:bg-slate-200 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-slate-200);
      }
    }
  }
  .hover\:bg-violet-400 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-violet-400);
      }
    }
  }
  .hover\:bg-white\/5 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, #fff 5%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
        }
      }
    }
  }
  .hover\:bg-white\/10 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, #fff 10%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
        }
      }
    }
  }
  .hover\:bg-white\/15 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, #fff 15%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-white) 15%, transparent);
        }
      }
    }
  }
  .hover\:bg-white\/20 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, #fff 20%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-white) 20%, transparent);
        }
      }
    }
  }
  .hover\:bg-white\/25 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, #fff 25%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-white) 25%, transparent);
        }
      }
    }
  }
  .hover\:\!text-red-500 {
    &:hover {
      @media (hover: hover) {
        color: var(--color-red-500) !important;
      }
    }
  }
  .hover\:text-\[var\(--color-error\)\] {
    &:hover {
      @media (hover: hover) {
        color: var(--color-error);
      }
    }
  }
  .hover\:text-\[var\(--neutral-600\)\] {
    &:hover {
      @media (hover: hover) {
        color: var(--neutral-600);
      }
    }
  }
  .hover\:text-\[var\(--neutral-700\)\] {
    &:hover {
      @media (hover: hover) {
        color: var(--neutral-700);
      }
    }
  }
  .hover\:text-\[var\(--neutral-800\)\] {
    &:hover {
      @media (hover: hover) {
        color: var(--neutral-800);
      }
    }
  }
  .hover\:text-\[var\(--neutral-900\)\] {
    &:hover {
      @media (hover: hover) {
        color: var(--neutral-900);
      }
    }
  }
  .hover\:text-\[var\(--primary-700\)\] {
    &:hover {
      @media (hover: hover) {
        color: var(--primary-700);
      }
    }
  }
  .hover\:text-\[var\(--text\)\] {
    &:hover {
      @media (hover: hover) {
        color: var(--text);
      }
    }
  }
  .hover\:text-orange-700 {
    &:hover {
      @media (hover: hover) {
        color: var(--color-orange-700);
      }
    }
  }
  .hover\:text-red-500 {
    &:hover {
      @media (hover: hover) {
        color: var(--color-red-500);
      }
    }
  }
  .hover\:text-red-700 {
    &:hover {
      @media (hover: hover) {
        color: var(--color-red-700);
      }
    }
  }
  .hover\:text-white {
    &:hover {
      @media (hover: hover) {
        color: var(--color-white);
      }
    }
  }
  .hover\:no-underline {
    &:hover {
      @media (hover: hover) {
        text-decoration-line: none;
      }
    }
  }
  .hover\:underline {
    &:hover {
      @media (hover: hover) {
        text-decoration-line: underline;
      }
    }
  }
  .hover\:opacity-80 {
    &:hover {
      @media (hover: hover) {
        opacity: 80%;
      }
    }
  }
  .hover\:opacity-90 {
    &:hover {
      @media (hover: hover) {
        opacity: 90%;
      }
    }
  }
  .hover\:opacity-100 {
    &:hover {
      @media (hover: hover) {
        opacity: 100%;
      }
    }
  }
  .hover\:shadow-lg {
    &:hover {
      @media (hover: hover) {
        --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
      }
    }
  }
  .hover\:shadow-md {
    &:hover {
      @media (hover: hover) {
        --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
      }
    }
  }
  .hover\:shadow-sm {
    &:hover {
      @media (hover: hover) {
        --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
        box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
      }
    }
  }
  .focus\:border-\[var\(--color-primary\,var\(--primary-500\)\)\] {
    &:focus {
      border-color: var(--color-primary,var(--primary-500));
    }
  }
  .focus\:border-\[var\(--primary-500\)\] {
    &:focus {
      border-color: var(--primary-500);
    }
  }
  .focus\:border-red-500 {
    &:focus {
      border-color: var(--color-red-500);
    }
  }
  .focus\:ring-2 {
    &:focus {
      --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
  }
  .focus\:ring-\[color-mix\(in_srgb\,var\(--color-primary\,var\(--primary-500\)\)_20\%\,transparent\)\] {
    &:focus {
      --tw-ring-color: var(--color-primary,var(--primary-500));
      @supports (color: color-mix(in lab, red, red)) {
        --tw-ring-color: color-mix(in srgb,var(--color-primary,var(--primary-500)) 20%,transparent);
      }
    }
  }
  .focus\:ring-\[var\(--brand-500\)\] {
    &:focus {
      --tw-ring-color: var(--brand-500);
    }
  }
  .focus\:ring-\[var\(--primary-500\)\] {
    &:focus {
      --tw-ring-color: var(--primary-500);
    }
  }
  .focus\:ring-\[var\(--primary-500\)\]\/20 {
    &:focus {
      --tw-ring-color: var(--primary-500);
      @supports (color: color-mix(in lab, red, red)) {
        --tw-ring-color: color-mix(in oklab, var(--primary-500) 20%, transparent);
      }
    }
  }
  .focus\:ring-red-500\/20 {
    &:focus {
      --tw-ring-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        --tw-ring-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
      }
    }
  }
  .focus\:outline-none {
    &:focus {
      --tw-outline-style: none;
      outline-style: none;
    }
  }
  .active\:cursor-grabbing {
    &:active {
      cursor: grabbing;
    }
  }
  .disabled\:cursor-not-allowed {
    &:disabled {
      cursor: not-allowed;
    }
  }
  .disabled\:opacity-40 {
    &:disabled {
      opacity: 40%;
    }
  }
  .disabled\:opacity-50 {
    &:disabled {
      opacity: 50%;
    }
  }
  .has-\[\:checked\]\:border-\[var\(--color-primary\,var\(--primary-500\)\)\] {
    &:has(*:is(:checked)) {
      border-color: var(--color-primary,var(--primary-500));
    }
  }
  .has-\[\:checked\]\:bg-\[var\(--primary-500\,\#6366f1\)\]\/5 {
    &:has(*:is(:checked)) {
      background-color: var(--primary-500,#6366f1);
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in oklab, var(--primary-500,#6366f1) 5%, transparent);
      }
    }
  }
  .sm\:col-span-1 {
    @media (width >= 40rem) {
      grid-column: span 1 / span 1;
    }
  }
  .sm\:col-span-2 {
    @media (width >= 40rem) {
      grid-column: span 2 / span 2;
    }
  }
  .sm\:col-span-3 {
    @media (width >= 40rem) {
      grid-column: span 3 / span 3;
    }
  }
  .sm\:col-span-6 {
    @media (width >= 40rem) {
      grid-column: span 6 / span 6;
    }
  }
  .sm\:mb-6 {
    @media (width >= 40rem) {
      margin-bottom: calc(var(--spacing) * 6);
    }
  }
  .sm\:mb-8 {
    @media (width >= 40rem) {
      margin-bottom: calc(var(--spacing) * 8);
    }
  }
  .sm\:flex {
    @media (width >= 40rem) {
      display: flex;
    }
  }
  .sm\:inline {
    @media (width >= 40rem) {
      display: inline;
    }
  }
  .sm\:w-auto {
    @media (width >= 40rem) {
      width: auto;
    }
  }
  .sm\:grid-cols-2 {
    @media (width >= 40rem) {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  .sm\:grid-cols-3 {
    @media (width >= 40rem) {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  .sm\:grid-cols-4 {
    @media (width >= 40rem) {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
  .sm\:grid-cols-5 {
    @media (width >= 40rem) {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }
  }
  .sm\:grid-cols-6 {
    @media (width >= 40rem) {
      grid-template-columns: repeat(6, minmax(0, 1fr));
    }
  }
  .sm\:flex-row {
    @media (width >= 40rem) {
      flex-direction: row;
    }
  }
  .sm\:items-center {
    @media (width >= 40rem) {
      align-items: center;
    }
  }
  .sm\:items-end {
    @media (width >= 40rem) {
      align-items: flex-end;
    }
  }
  .sm\:justify-between {
    @media (width >= 40rem) {
      justify-content: space-between;
    }
  }
  .sm\:gap-2 {
    @media (width >= 40rem) {
      gap: calc(var(--spacing) * 2);
    }
  }
  .sm\:gap-4 {
    @media (width >= 40rem) {
      gap: calc(var(--spacing) * 4);
    }
  }
  .sm\:p-6 {
    @media (width >= 40rem) {
      padding: calc(var(--spacing) * 6);
    }
  }
  .sm\:p-8 {
    @media (width >= 40rem) {
      padding: calc(var(--spacing) * 8);
    }
  }
  .sm\:px-6 {
    @media (width >= 40rem) {
      padding-inline: calc(var(--spacing) * 6);
    }
  }
  .sm\:text-2xl {
    @media (width >= 40rem) {
      font-size: var(--text-2xl);
      line-height: var(--tw-leading, var(--text-2xl--line-height));
    }
  }
  .sm\:text-3xl {
    @media (width >= 40rem) {
      font-size: var(--text-3xl);
      line-height: var(--tw-leading, var(--text-3xl--line-height));
    }
  }
  .sm\:text-base {
    @media (width >= 40rem) {
      font-size: var(--text-base);
      line-height: var(--tw-leading, var(--text-base--line-height));
    }
  }
  .md\:col-span-1 {
    @media (width >= 48rem) {
      grid-column: span 1 / span 1;
    }
  }
  .md\:col-span-2 {
    @media (width >= 48rem) {
      grid-column: span 2 / span 2;
    }
  }
  .md\:col-span-3 {
    @media (width >= 48rem) {
      grid-column: span 3 / span 3;
    }
  }
  .md\:table-cell {
    @media (width >= 48rem) {
      display: table-cell;
    }
  }
  .md\:grid-cols-2 {
    @media (width >= 48rem) {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  .md\:grid-cols-4 {
    @media (width >= 48rem) {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
  .md\:grid-cols-5 {
    @media (width >= 48rem) {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }
  }
  .md\:grid-cols-\[max-content_1fr\] {
    @media (width >= 48rem) {
      grid-template-columns: max-content 1fr;
    }
  }
  .md\:text-4xl {
    @media (width >= 48rem) {
      font-size: var(--text-4xl);
      line-height: var(--tw-leading, var(--text-4xl--line-height));
    }
  }
  .lg\:block {
    @media (width >= 64rem) {
      display: block;
    }
  }
  .lg\:flex {
    @media (width >= 64rem) {
      display: flex;
    }
  }
  .lg\:hidden {
    @media (width >= 64rem) {
      display: none;
    }
  }
  .lg\:table-cell {
    @media (width >= 64rem) {
      display: table-cell;
    }
  }
  .lg\:w-1\/2 {
    @media (width >= 64rem) {
      width: calc(1/2 * 100%);
    }
  }
  .lg\:grid-cols-2 {
    @media (width >= 64rem) {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  .lg\:grid-cols-3 {
    @media (width >= 64rem) {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  .lg\:grid-cols-4 {
    @media (width >= 64rem) {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
  .lg\:grid-cols-5 {
    @media (width >= 64rem) {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }
  }
  .lg\:grid-cols-\[1\.1fr_0\.9fr\] {
    @media (width >= 64rem) {
      grid-template-columns: 1.1fr 0.9fr;
    }
  }
  .lg\:grid-cols-\[1\.2fr_0\.8fr\] {
    @media (width >= 64rem) {
      grid-template-columns: 1.2fr 0.8fr;
    }
  }
  .lg\:p-8 {
    @media (width >= 64rem) {
      padding: calc(var(--spacing) * 8);
    }
  }
  .lg\:p-10 {
    @media (width >= 64rem) {
      padding: calc(var(--spacing) * 10);
    }
  }
  .lg\:px-8 {
    @media (width >= 64rem) {
      padding-inline: calc(var(--spacing) * 8);
    }
  }
  .lg\:text-4xl {
    @media (width >= 64rem) {
      font-size: var(--text-4xl);
      line-height: var(--tw-leading, var(--text-4xl--line-height));
    }
  }
  .lg\:text-lg {
    @media (width >= 64rem) {
      font-size: var(--text-lg);
      line-height: var(--tw-leading, var(--text-lg--line-height));
    }
  }
  .xl\:sticky {
    @media (width >= 80rem) {
      position: sticky;
    }
  }
  .xl\:top-4 {
    @media (width >= 80rem) {
      top: calc(var(--spacing) * 4);
    }
  }
  .xl\:top-6 {
    @media (width >= 80rem) {
      top: calc(var(--spacing) * 6);
    }
  }
  .xl\:col-span-5 {
    @media (width >= 80rem) {
      grid-column: span 5 / span 5;
    }
  }
  .xl\:block {
    @media (width >= 80rem) {
      display: block;
    }
  }
  .xl\:flex {
    @media (width >= 80rem) {
      display: flex;
    }
  }
  .xl\:hidden {
    @media (width >= 80rem) {
      display: none;
    }
  }
  .xl\:h-fit {
    @media (width >= 80rem) {
      height: fit-content;
    }
  }
  .xl\:grid-cols-\[1fr_420px\] {
    @media (width >= 80rem) {
      grid-template-columns: 1fr 420px;
    }
  }
  .xl\:grid-cols-\[88px_minmax\(0\,1fr\)\] {
    @media (width >= 80rem) {
      grid-template-columns: 88px minmax(0,1fr);
    }
  }
  .xl\:grid-cols-\[220px_minmax\(0\,1fr\)\] {
    @media (width >= 80rem) {
      grid-template-columns: 220px minmax(0,1fr);
    }
  }
  .xl\:grid-cols-\[minmax\(0\,1fr\)\] {
    @media (width >= 80rem) {
      grid-template-columns: minmax(0,1fr);
    }
  }
  .xl\:flex-col {
    @media (width >= 80rem) {
      flex-direction: column;
    }
  }
  .xl\:gap-3 {
    @media (width >= 80rem) {
      gap: calc(var(--spacing) * 3);
    }
  }
  .xl\:self-start {
    @media (width >= 80rem) {
      align-self: flex-start;
    }
  }
  .\32 xl\:block {
    @media (width >= 96rem) {
      display: block;
    }
  }
  .dark\:text-white {
    @media (prefers-color-scheme: dark) {
      color: var(--color-white);
    }
  }
}
@layer base {
  :root {
    --primary-50: #f5f3ff;
    --primary-100: #ede9fe;
    --primary-200: #ddd6fe;
    --primary-300: #c4b5fd;
    --primary-400: #a78bfa;
    --primary-500: #8b5cf6;
    --primary-600: #7c3aed;
    --primary-700: #6d28d9;
    --primary-800: #5b21b6;
    --primary-900: #4c1d95;
    --accent-50: #ecfeff;
    --accent-100: #cffafe;
    --accent-200: #a5f3fc;
    --accent-300: #67e8f9;
    --accent-400: #22d3ee;
    --accent-500: #06b6d4;
    --accent-600: #0891b2;
    --accent-700: #0e7490;
    --lime-400: #a3e635;
    --lime-500: #84cc16;
    --brand-500: var(--primary-500);
    --brand-600: var(--primary-600);
    --brand-700: var(--primary-700);
    --neutral-50: #f8fafc;
    --neutral-100: #f1f5f9;
    --neutral-200: #e2e8f0;
    --neutral-300: #cbd5e1;
    --neutral-400: #94a3b8;
    --neutral-500: #64748b;
    --neutral-600: #475569;
    --neutral-700: #334155;
    --neutral-800: #1e293b;
    --neutral-900: #0f172a;
    --color-success: #10b981;
    --color-warning: #f59e0b;
    --color-error: #ef4444;
    --color-info: #3b82f6;
    --bg-app: #f0f2f5;
    --bg-surface: #ffffff;
    --bg-sidebar-hover: #2a2b3d;
    --bg-sidebar-active: #33354a;
    --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
    --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.07), 0 2px 4px -2px rgba(0,0,0,0.05);
    --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -4px rgba(0,0,0,0.05);
    --shadow-xl: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.05);
    --shadow-focus: 0 0 0 3px var(--color-primary, #4f46e5);
    @supports (color: color-mix(in lab, red, red)) {
      --shadow-focus: 0 0 0 3px color-mix(in srgb, var(--color-primary, #4f46e5) 15%, transparent);
    }
    --radius-sm: 6px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-2xl: 1rem;
    --radius-3xl: 1.5rem;
    --radius-full: 9999px;
    --btn-radius: var(--radius-md);
    --btn-px: 1.25rem;
    --btn-py: 0.625rem;
    --input-radius: var(--radius-md);
    --input-border: var(--neutral-300);
    --card-radius: var(--radius-3xl);
    --card-border: var(--neutral-200);
    --card-shadow: var(--shadow-sm);
    --msg-radius: 1.125rem;
    --msg-outgoing-bg: var(--color-primary, #4f46e5);
    --msg-outgoing-color: white;
    --msg-incoming-bg: var(--color-surface, white);
    --msg-incoming-color: var(--color-text, #111827);
    --avatar-radius: var(--radius-2xl);
    --font-size-sm: 0.875rem;
    --font-size-lg: 1.125rem;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --line-height-base: 1.6;
    --line-height-tight: 1.3;
    --letter-spacing-base: 0;
    --font-family-heading: var(--font-family-ui);
    --font-family-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --transition-fast: 0.15s;
    --transition-base: 0.2s;
    --transition-slow: 0.3s;
    --transition-easing: cubic-bezier(0.4, 0, 0.2, 1);
    --color-text-secondary: var(--neutral-500);
    --color-text-muted: var(--neutral-400);
    --color-success-light: var(--color-success);
    @supports (color: color-mix(in lab, red, red)) {
      --color-success-light: color-mix(in srgb, var(--color-success) 12%, white);
    }
    --color-warning-light: var(--color-warning);
    @supports (color: color-mix(in lab, red, red)) {
      --color-warning-light: color-mix(in srgb, var(--color-warning) 12%, white);
    }
    --color-error-light: var(--color-error);
    @supports (color: color-mix(in lab, red, red)) {
      --color-error-light: color-mix(in srgb, var(--color-error) 12%, white);
    }
    --color-info-light: var(--color-info);
    @supports (color: color-mix(in lab, red, red)) {
      --color-info-light: color-mix(in srgb, var(--color-info) 12%, white);
    }
    --color-primary-hover: var(--color-primary, #4f46e5);
    @supports (color: color-mix(in lab, red, red)) {
      --color-primary-hover: color-mix(in srgb, var(--color-primary, #4f46e5) 85%, black);
    }
    --color-primary-light: var(--color-primary, #4f46e5);
    @supports (color: color-mix(in lab, red, red)) {
      --color-primary-light: color-mix(in srgb, var(--color-primary, #4f46e5) 15%, white);
    }
    --color-accent-hover: var(--color-accent, #06b6d4);
    @supports (color: color-mix(in lab, red, red)) {
      --color-accent-hover: color-mix(in srgb, var(--color-accent, #06b6d4) 85%, black);
    }
    --color-accent-light: var(--color-accent, #06b6d4);
    @supports (color: color-mix(in lab, red, red)) {
      --color-accent-light: color-mix(in srgb, var(--color-accent, #06b6d4) 15%, white);
    }
    --color-surface-hover: var(--neutral-100);
    --bg-image: none;
    --radius-base: 0.75rem;
    --sidebar-opacity: 100%;
    --color-topbar: var(--color-surface, white);
    --color-border: var(--neutral-200);
    --color-hover: var(--color-primary, #4f46e5);
    @supports (color: color-mix(in lab, red, red)) {
      --color-hover: color-mix(in srgb, var(--color-primary, #4f46e5) 8%, transparent);
    }
    --mix-base: white;
    --color-slack: #4A154B;
    --color-discord: #5865F2;
    --color-teams: #6264A7;
    --color-telegram: #0088cc;
    --color-whatsapp: #25D366;
    --color-mattermost: #0058CC;
  }
  *, *::before, *::after {
    box-sizing: border-box;
  }
  html {
    font-size: var(--font-size-base, 0.9375rem);
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  @media (min-width: 768px) {
    html {
      font-size: var(--font-size-base, 1rem);
    }
  }
  body {
    background-color: var(--color-background, var(--bg-app));
    color: var(--color-text, var(--neutral-800));
    font-family: var(--font-family-ui, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
    font-weight: var(--font-weight-normal, 400);
    line-height: var(--line-height-base, 1.6);
    letter-spacing: var(--letter-spacing-base, 0);
  }
  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-heading, var(--font-family-ui));
    line-height: var(--line-height-tight, 1.3);
  }
  code, pre, kbd, samp {
    font-family: var(--font-family-mono, 'JetBrains Mono', 'Fira Code', monospace);
  }
  body::after {
    content: "BETA v0.1.0";
    position: fixed;
    top: 12px;
    right: 12px;
    background: var(--primary-600, #7c3aed);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    padding: 2px 8px;
    border-radius: 4px;
    opacity: 0.7;
    z-index: 9999;
    pointer-events: none;
  }
}
@layer utilities {
  .bg-primary {
    background-color: var(--color-primary, var(--primary-600));
  }
  .text-primary {
    color: var(--color-primary, var(--primary-600));
  }
  .border-primary {
    border-color: var(--color-primary, var(--primary-600));
  }
  .ring-primary {
    --tw-ring-color: var(--color-primary, var(--primary-600));
  }
  .hover\:bg-primary-dark:hover {
    background-color: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in srgb, var(--color-primary, var(--primary-600)) 85%, black);
    }
  }
  .bg-accent {
    background-color: var(--color-accent, var(--accent-500));
  }
  .text-accent {
    color: var(--color-accent, var(--accent-500));
  }
  .bg-surface {
    background-color: var(--color-surface, var(--bg-surface));
  }
  .bg-app {
    background-color: var(--color-background, var(--bg-app));
  }
  .text-app {
    color: var(--color-text, var(--neutral-800));
  }
  .gradient-primary {
    background: linear-gradient(135deg, var(--color-primary, var(--primary-500)), var(--color-accent, var(--accent-400)));
  }
  .gradient-kohort {
    background: linear-gradient(135deg, var(--color-primary, var(--primary-500)), var(--color-accent, var(--accent-400)), var(--lime-400));
  }
  .gradient-text {
    background: linear-gradient(135deg, var(--color-primary, var(--primary-500)), var(--color-accent, var(--accent-400)));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }
  .text-muted {
    color: var(--color-text-muted, var(--neutral-400));
  }
  .text-secondary {
    color: var(--color-text-secondary, var(--neutral-500));
  }
  .bg-success-light {
    background-color: var(--color-success-light);
  }
  .bg-warning-light {
    background-color: var(--color-warning-light);
  }
  .bg-error-light {
    background-color: var(--color-error-light);
  }
  .bg-info-light {
    background-color: var(--color-info-light);
  }
  .bg-primary-light {
    background-color: var(--color-primary-light);
  }
  .bg-accent-light {
    background-color: var(--color-accent-light);
  }
  .hover\:bg-accent:hover {
    background-color: var(--color-accent-hover);
  }
  .hover\:bg-surface:hover {
    background-color: var(--color-surface-hover, var(--neutral-100));
  }
  .hover\:bg-hover:hover {
    background-color: var(--color-hover);
  }
  .bg-primary-subtle {
    background-color: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in srgb, var(--color-primary, var(--primary-600)) 12%, transparent);
    }
  }
  .bg-accent-subtle {
    background-color: var(--color-accent, var(--accent-500));
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in srgb, var(--color-accent, var(--accent-500)) 12%, transparent);
    }
  }
  .hover\:bg-primary-subtle:hover {
    background-color: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in srgb, var(--color-primary, var(--primary-600)) 6%, var(--mix-base, white));
    }
  }
  .bg-slack {
    background-color: var(--color-slack);
  }
  .bg-discord {
    background-color: var(--color-discord);
  }
  .bg-teams {
    background-color: var(--color-teams);
  }
  .bg-telegram {
    background-color: var(--color-telegram);
  }
  .bg-whatsapp {
    background-color: var(--color-whatsapp);
  }
  .bg-mattermost {
    background-color: var(--color-mattermost);
  }
  .bg-warning {
    background-color: var(--color-warning);
  }
  .text-warning {
    color: var(--color-warning);
  }
  .bg-info {
    background-color: var(--color-info);
  }
  .bg-warning-subtle {
    background-color: var(--color-warning);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in srgb, var(--color-warning) 12%, transparent);
    }
  }
}
[data-density="compact"] {
  --ui-p: 0.5rem;
  --ui-gap: 0.5rem;
}
[data-density="comfortable"] {
  --ui-p: 1rem;
  --ui-gap: 1rem;
}
[data-density="spacious"] {
  --ui-p: 1.5rem;
  --ui-gap: 1.5rem;
}
@media (hover: hover) {
  .kohort-hover-shift:hover {
    background: var(--color-primary);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary) 6%, var(--mix-base, white));
    }
    transform: translateX(0.2rem);
  }
  .kohort-hover-border:hover {
    border-color: var(--color-primary);
  }
  .kohort-hover-bg:hover {
    background: var(--color-surface-hover, var(--neutral-100));
  }
  .kohort-hover-darken:hover {
    filter: brightness(0.92);
  }
  .kohort-hover-fade:hover {
    opacity: 0.9;
  }
}
@layer components {
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: var(--btn-py, 0.625rem) var(--btn-px, 1.25rem);
    border-radius: var(--btn-radius, var(--radius-md));
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-semibold, 600);
    border: none;
    cursor: pointer;
    transition: all var(--transition-base, 0.2s) var(--transition-easing, cubic-bezier(0.4, 0, 0.2, 1));
    text-decoration: none;
    white-space: nowrap;
  }
  .btn:active {
    transform: scale(0.97);
  }
  .btn-primary {
    background: var(--color-primary, var(--primary-600));
    color: white;
    box-shadow: var(--shadow-sm);
  }
  .btn-primary:hover {
    background: var(--color-primary-hover, var(--color-primary));
    @supports (color: color-mix(in lab, red, red)) {
      background: var(--color-primary-hover, color-mix(in srgb, var(--color-primary) 85%, black));
    }
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
  }
  .btn-secondary {
    background: var(--neutral-100);
    color: var(--neutral-700);
    border: 1px solid var(--neutral-300);
  }
  .btn-secondary:hover {
    background: var(--neutral-200);
  }
  .btn-accent {
    background: var(--color-accent, var(--accent-500));
    color: white;
  }
  .btn-accent:hover {
    background: var(--color-accent, var(--accent-500));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent, var(--accent-500)) 85%, black);
    }
  }
  .btn-danger {
    background: var(--color-error);
    color: white;
  }
  .btn-danger:hover {
    background: var(--color-error);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-error) 85%, black);
    }
  }
  .btn-ghost {
    background: transparent;
    color: var(--color-primary, var(--primary-600));
  }
  .btn-ghost:hover {
    background: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 10%, transparent);
    }
  }
  .btn-sm {
    padding: 0.375rem 0.875rem;
    font-size: 0.8125rem;
  }
  .btn-lg {
    padding: 0.875rem 1.75rem;
    font-size: 1rem;
  }
  @media (max-width: 767px) {
    .btn-sm {
      min-height: 2.75rem;
      padding: 0.5rem 1rem;
    }
    .form-input {
      min-height: 2.75rem;
    }
  }
  .form-input {
    width: 100%;
    padding: 0.625rem 0.875rem;
    border: 1px solid var(--input-border, var(--neutral-300));
    border-radius: var(--input-radius, var(--radius-md));
    font-size: var(--font-size-sm, 0.875rem);
    transition: all var(--transition-base, 0.2s);
    background: var(--color-surface, white);
    color: var(--color-text, var(--neutral-800));
  }
  .form-input:focus {
    outline: none;
    border-color: var(--color-primary, var(--primary-500));
    box-shadow: var(--shadow-focus, 0 0 0 3px rgba(99,102,241,0.15));
  }
  .form-input::placeholder {
    color: var(--neutral-400);
  }
  .form-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: var(--font-weight-semibold, 600);
    color: var(--neutral-700);
    margin-bottom: 0.375rem;
  }
  .badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1875rem 0.625rem;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: var(--font-weight-semibold, 600);
  }
  .badge-primary {
    background: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 15%, var(--mix-base, white));
    }
    color: var(--color-primary, var(--primary-700));
  }
  .badge-accent {
    background: var(--color-accent, var(--accent-500));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent, var(--accent-500)) 15%, var(--mix-base, white));
    }
    color: var(--color-accent, var(--accent-600));
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in srgb, var(--color-accent, var(--accent-600)) 85%, black);
    }
  }
  .badge-success {
    background: var(--color-success-light);
    color: var(--color-success);
  }
  .badge-warning {
    background: var(--color-warning-light);
    color: var(--color-warning);
  }
  .badge-error {
    background: var(--color-error-light);
    color: var(--color-error);
  }
  .badge-neutral {
    background: var(--neutral-100);
    color: var(--neutral-600);
  }
}
@layer components {
  .card {
    background: var(--color-surface, white);
    border-radius: var(--card-radius, var(--radius-3xl));
    border: 1px solid var(--card-border, var(--color-border));
    overflow: hidden;
    transition: all var(--transition-slow, 0.25s) var(--transition-easing);
  }
  .card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
  }
  .card-body {
    padding: 1.25rem;
  }
  .kohort-card {
    border-radius: var(--card-radius, var(--radius-3xl));
    border: 1px solid var(--card-border, var(--color-border));
    background: var(--color-surface, white);
    padding: 1.25rem;
    box-shadow: var(--card-shadow, var(--shadow-sm));
  }
  .kohort-chip {
    border-radius: var(--radius-full);
    background: var(--neutral-100);
    padding: 0.125rem 0.5rem;
    font-size: 0.6875rem;
    color: var(--neutral-600);
  }
  .kohort-action-soft {
    border-radius: var(--radius-xl);
    background: var(--neutral-100);
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    color: var(--neutral-700);
    transition: background 0.15s;
    border: none;
    cursor: pointer;
  }
  .kohort-action-soft:hover {
    background: var(--neutral-200);
  }
  .kohort-kanban {
    width: 100%;
  }
  .kohort-kanban-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding: 0 0.25rem;
  }
  .kohort-kanban-header h3 {
    font-size: 1rem;
    font-weight: var(--font-weight-bold, 700);
    color: var(--color-text, var(--neutral-800));
  }
  .kohort-kanban-header span {
    font-size: 0.75rem;
    color: var(--color-text-muted, var(--neutral-400));
  }
  .kohort-kanban-board-selector {
    display: flex;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
  }
  .kohort-kanban-board-btn {
    border-radius: var(--radius-xl);
    padding: 0.25rem 0.75rem;
    font-size: 0.75rem;
    font-weight: var(--font-weight-medium, 500);
    cursor: pointer;
    border: 1px solid var(--color-border);
    background: var(--color-surface, white);
    color: var(--neutral-600);
    transition: all 0.15s;
    white-space: nowrap;
  }
  .kohort-kanban-board-btn:hover {
    border-color: var(--neutral-300);
    background: var(--neutral-50);
  }
  .kohort-kanban-board-btn--active {
    background: var(--neutral-800);
    color: white;
    border-color: var(--neutral-800);
  }
  .kohort-kanban-board-btn--active:hover {
    background: var(--neutral-700);
    border-color: var(--neutral-700);
  }
  .kohort-kanban-columns {
    display: flex;
    gap: 0.75rem;
    overflow-x: auto;
    padding-bottom: 0.5rem;
    align-items: flex-start;
  }
  .kohort-kanban-column {
    flex: 0 0 min(16rem, 80vw);
    min-width: min(16rem, 80vw);
    background: var(--neutral-50, #f8fafc);
    border-radius: var(--radius-lg, 0.5rem);
    padding: 0.75rem;
    max-height: 65vh;
    overflow-y: auto;
  }
  .kohort-kanban-column-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0.125rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: var(--font-weight-bold, 700);
    color: var(--color-text-secondary, var(--neutral-500));
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .kohort-kanban-column-count {
    font-weight: var(--font-weight-normal, 400);
    color: var(--color-text-muted, var(--neutral-400));
    font-size: 0.625rem;
    background: var(--neutral-200);
    border-radius: var(--radius-full, 9999px);
    padding: 0.0625rem 0.375rem;
  }
  .kohort-kanban-card {
    background: var(--color-surface, white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 0.375rem);
    padding: 0.625rem 0.75rem;
    margin-bottom: 0.375rem;
    font-size: 0.8125rem;
    cursor: default;
    transition: box-shadow 0.15s;
  }
  .kohort-kanban-card:hover {
    box-shadow: var(--shadow-sm);
  }
  .kohort-kanban-card-title {
    font-weight: var(--font-weight-medium, 500);
    color: var(--color-text, var(--neutral-800));
    line-height: 1.3;
  }
  .kohort-kanban-card-desc {
    font-size: 0.75rem;
    color: var(--color-text-secondary, var(--neutral-500));
    margin-top: 0.25rem;
    line-height: 1.4;
  }
  .kohort-kanban-card-meta {
    font-size: 0.6875rem;
    color: var(--color-text-muted, var(--neutral-400));
    margin-top: 0.25rem;
  }
  .kohort-kanban-add-card {
    width: 100%;
    padding: 0.375rem;
    border: 1px dashed var(--neutral-300);
    border-radius: var(--radius-md, 0.375rem);
    background: none;
    color: var(--color-text-muted, var(--neutral-400));
    font-size: 0.75rem;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
    margin-top: 0.25rem;
  }
  .kohort-kanban-add-card:hover {
    color: var(--color-success, #10b981);
    border-color: var(--color-success, #10b981);
  }
  .kohort-kanban--compact .kohort-kanban-columns {
    flex-direction: column;
  }
  .kohort-kanban--compact .kohort-kanban-column {
    flex: none;
    width: 100%;
    min-width: 0;
    max-height: 15rem;
  }
  .kohort-label {
    font-size: 0.75rem;
    font-weight: var(--font-weight-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--color-text-secondary, var(--neutral-500));
  }
  .kohort-stat-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.125rem;
    padding: 0.75rem 0.5rem;
    border-radius: 0.875rem;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
  }
  .kohort-stat-value {
    font-size: 1.375rem;
    font-weight: var(--font-weight-bold, 700);
    color: var(--neutral-800);
    line-height: 1;
  }
  .kohort-stat-label {
    font-size: 0.6875rem;
    color: var(--color-text-secondary, var(--neutral-500));
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-weight-medium, 500);
  }
  .kohort-section-label {
    font-size: 0.6875rem;
    font-weight: var(--font-weight-bold, 700);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-text-muted, var(--neutral-400));
  }
  .kohort-dash-row {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    padding: 0.5rem 0.625rem;
    border-radius: 0.625rem;
    transition: background 0.1s;
  }
  .kohort-dash-row:hover {
    background: var(--neutral-50);
  }
  .kohort-dash-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 9999px;
    flex-shrink: 0;
    margin-top: 0.3rem;
  }
  .kohort-dash-dot--event {
    background: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary);
    @supports (color: color-mix(in lab, red, red)) {
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 20%, transparent);
    }
  }
  .kohort-dash-dot--board {
    background: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent);
    @supports (color: color-mix(in lab, red, red)) {
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 20%, transparent);
    }
  }
  .kohort-dash-row-title {
    font-size: 0.8125rem;
    font-weight: var(--font-weight-semibold, 600);
    color: var(--neutral-800);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .kohort-dash-row-meta {
    font-size: 0.6875rem;
    color: var(--color-text-muted, var(--neutral-400));
    margin-top: 0.1rem;
  }
  .kohort-dash-count {
    flex-shrink: 0;
    font-size: 0.6875rem;
    font-weight: var(--font-weight-bold, 700);
    padding: 0.1rem 0.4rem;
    border-radius: 9999px;
    background: #06b6d4;
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, #06b6d4 12%, var(--mix-base, white));
    }
    color: var(--color-accent);
    align-self: center;
  }
  .kohort-dash-badge {
    font-size: 0.6rem;
    font-weight: var(--font-weight-bold, 700);
    padding: 0.1rem 0.35rem;
    border-radius: 9999px;
  }
  .kohort-dash-badge--today {
    background: var(--color-primary-light);
    color: var(--color-primary);
  }
  .kohort-dash-badge--soon {
    background: var(--color-warning-light);
    color: var(--color-warning);
  }
  .kohort-dash-meta-chip {
    font-size: 0.6875rem;
    color: var(--color-text-muted, var(--neutral-400));
  }
  .kohort-quick-gradient {
    border-radius: var(--radius-3xl);
    border: 1px solid var(--color-border);
    background: linear-gradient(135deg, var(--color-primary, var(--primary-500)), var(--color-accent, var(--accent-400)) );
    @supports (color: color-mix(in lab, red, red)) {
      background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary, var(--primary-500)) 8%, var(--mix-base, white)), color-mix(in srgb, var(--color-accent, var(--accent-400)) 8%, var(--mix-base, white)) );
    }
    padding: 1rem;
  }
  .section-card {
    background: var(--color-surface, white);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
    padding: 1.25rem;
    box-shadow: var(--shadow-sm);
  }
  @media (min-width: 640px) {
    .section-card {
      padding: 1.5rem;
    }
  }
  .page-app {
    min-height: 100%;
    background-color: var(--color-background, var(--bg-app));
  }
  .page-container {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    padding: 2rem 1rem;
  }
  @media (min-width: 640px) {
    .page-container {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
  }
  @media (min-width: 1024px) {
    .page-container {
      padding-left: 2rem;
      padding-right: 2rem;
    }
  }
  .page-container-wide {
    max-width: 80rem;
    margin-left: auto;
    margin-right: auto;
    padding: 2rem 1rem;
  }
  @media (min-width: 640px) {
    .page-container-wide {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
    }
  }
  @media (min-width: 1024px) {
    .page-container-wide {
      padding-left: 2rem;
      padding-right: 2rem;
    }
  }
  .btn-on-gradient {
    background: var(--color-surface, white);
    color: var(--color-primary, var(--primary-700));
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in srgb, var(--color-primary, var(--primary-700)) 90%, black);
    }
  }
  .btn-on-gradient:hover {
    background: var(--color-surface, white);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-surface, white) 90%, black);
    }
  }
  .icon-badge {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .icon-badge-primary {
    background: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 12%, var(--color-surface, white));
    }
    color: var(--color-primary, var(--primary-600));
  }
  .icon-badge-accent {
    background: var(--color-accent, var(--accent-500));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-accent, var(--accent-500)) 12%, var(--color-surface, white));
    }
    color: var(--color-accent, var(--accent-500));
  }
  .icon-badge-warning {
    background: var(--color-warning);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-warning) 12%, var(--color-surface, white));
    }
    color: var(--color-warning);
  }
  .alert {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem;
    border-radius: var(--radius-lg);
    border: 1px solid;
    font-size: 0.875rem;
  }
  .alert-error {
    background: var(--color-error);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-error) 8%, var(--mix-base, white));
    }
    border-color: var(--color-error);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-error) 30%, var(--mix-base, white));
    }
    color: var(--color-error);
  }
  .alert-success {
    background: var(--color-success);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-success) 8%, var(--mix-base, white));
    }
    border-color: var(--color-success);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-success) 30%, var(--mix-base, white));
    }
    color: var(--color-success);
  }
  .alert-warning {
    background: var(--color-warning);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-warning) 8%, var(--mix-base, white));
    }
    border-color: var(--color-warning);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-warning) 30%, var(--mix-base, white));
    }
    color: var(--color-warning);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in srgb, var(--color-warning) 70%, black);
    }
  }
  .avatar {
    border-radius: var(--avatar-radius, var(--radius-2xl));
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--font-weight-semibold, 600);
    color: white;
    flex-shrink: 0;
  }
  .avatar-xs {
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.625rem;
  }
  .avatar-sm {
    width: 2rem;
    height: 2rem;
    font-size: 0.75rem;
  }
  .avatar-md {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 0.875rem;
  }
  .avatar-lg {
    width: 3rem;
    height: 3rem;
    font-size: var(--font-size-lg, 1.125rem);
  }
  .avatar-xl {
    width: 4rem;
    height: 4rem;
    font-size: 1.5rem;
  }
  .avatar-user {
    background: linear-gradient(135deg, var(--color-primary, var(--primary-500)), var(--color-accent, var(--accent-400)));
  }
}
@layer components {
  .call-overlay {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: #000;
  }
  .call-overlay-inner {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .call-status-bar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    padding: 1rem 1.5rem;
    background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
    z-index: 2;
  }
  .call-status-text {
    color: white;
    font-size: 0.875rem;
    font-weight: var(--font-weight-medium, 500);
  }
  .call-remote-video {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #111;
  }
  .call-local-video {
    position: absolute;
    bottom: 5rem;
    right: 1.5rem;
    width: 12rem;
    height: 9rem;
    border-radius: var(--radius-lg);
    border: 2px solid rgba(255,255,255,0.2);
    object-fit: cover;
    background: #222;
    z-index: 3;
  }
  .call-controls {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.5rem;
    background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
    z-index: 2;
  }
  .call-btn {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,0.15);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s;
    backdrop-filter: blur(8px);
  }
  .call-btn:hover {
    background: rgba(255,255,255,0.25);
  }
  .call-btn-muted {
    background: var(--color-error) !important;
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-error) 50%, transparent) !important;
    }
  }
  .call-btn-end {
    background: var(--color-error);
    width: 3.5rem;
    height: 3.5rem;
  }
  .call-btn-end:hover {
    background: var(--color-error);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-error) 85%, black);
    }
  }
  .status-dot {
    position: absolute;
    bottom: -1px;
    right: -1px;
    width: 0.625rem;
    height: 0.625rem;
    border-radius: 50%;
    border: 2px solid var(--color-surface, white);
  }
  .status-dot-inline {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    flex-shrink: 0;
  }
  .status-online {
    background-color: var(--color-success);
  }
  .status-away {
    background-color: var(--color-warning);
  }
  .status-busy {
    background-color: var(--color-error);
  }
  .status-offline {
    background-color: var(--color-text-secondary, var(--neutral-500));
  }
  .status-menu {
    position: absolute;
    bottom: 100%;
    left: 0.5rem;
    right: 0.5rem;
    margin-bottom: 0.5rem;
    background: var(--color-surface);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-surface) 90%, black);
    }
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: var(--radius-md);
    padding: 0.25rem 0;
    box-shadow: var(--shadow-lg);
    z-index: 50;
  }
  .status-menu-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.625rem 0.75rem;
    min-height: 2.75rem;
    font-size: 0.8125rem;
    color: var(--neutral-300);
    background: none;
    border: none;
    cursor: pointer;
    transition: background 0.15s;
  }
  .status-menu-item:hover {
    background: rgba(255,255,255,0.08);
    color: white;
  }
  .media-video-wrapper {
    margin: 0.25rem 0;
  }
  .media-video {
    max-width: 20rem;
    max-height: 14rem;
    border-radius: var(--radius-md);
    background: #000;
  }
  .media-download {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.6875rem;
    margin-top: 0.25rem;
    text-decoration: none;
    transition: opacity 0.15s;
  }
  .media-download:hover {
    opacity: 0.8;
  }
  .media-audio-wrapper {
    padding: 0.5rem 0.75rem;
    border-radius: var(--radius-md);
    max-width: 18rem;
    margin: 0.25rem 0;
  }
  .media-audio-incoming {
    background: var(--neutral-50);
    border: 1px solid var(--color-border);
  }
  .media-audio-outgoing {
    background: rgba(255,255,255,0.12);
  }
  .media-audio-filename {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.75rem;
    font-weight: var(--font-weight-medium, 500);
    margin-bottom: 0.375rem;
    min-width: 0;
  }
  .media-audio {
    width: 100%;
    height: 2rem;
    border-radius: var(--radius-sm);
  }
  .media-audio::-webkit-media-controls-panel {
    background: transparent;
  }
  .md-inline-code {
    font-family: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
    font-size: 0.8125em;
    padding: 0.125em 0.375em;
    border-radius: 4px;
    background: rgba(0,0,0,0.06);
  }
  .msg-outgoing .md-inline-code {
    background: rgba(255,255,255,0.15);
  }
  .md-code-block {
    font-family: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
    font-size: 0.8125rem;
    line-height: 1.5;
    padding: 0.75rem 1rem;
    border-radius: var(--radius-md);
    background: var(--neutral-800);
    color: var(--neutral-200);
    overflow-x: auto;
    margin: 0.375rem 0;
    white-space: pre;
  }
  .msg-outgoing .md-code-block {
    background: rgba(0,0,0,0.3);
    color: var(--neutral-100);
  }
  .md-blockquote {
    border-left: 3px solid var(--neutral-300);
    padding-left: 0.75rem;
    margin: 0.25rem 0;
    color: var(--color-text-secondary, var(--neutral-500));
    font-style: italic;
  }
  .msg-outgoing .md-blockquote {
    border-left-color: rgba(255,255,255,0.4);
    color: rgba(255,255,255,0.8);
  }
  .md-list {
    margin: 0.25rem 0;
    padding-left: 1.25rem;
  }
  ul.md-list {
    list-style: disc;
  }
  ol.md-list {
    list-style: decimal;
  }
  .md-list li {
    margin-bottom: 0.125rem;
  }
  .md-heading {
    font-weight: var(--font-weight-bold, 700);
    margin: 0.25rem 0;
  }
  .md-h1 {
    font-size: 1.25em;
  }
  .md-h2 {
    font-size: 1.125em;
  }
  .md-h3 {
    font-size: 1em;
  }
  .md-hr {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 0.5rem 0;
  }
  .msg-outgoing .md-hr {
    border-top-color: rgba(255,255,255,0.2);
  }
  .md-link {
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  .msg-incoming .md-link {
    color: var(--color-primary, var(--primary-600));
  }
  .msg-outgoing .md-link {
    color: rgba(255,255,255,0.9);
  }
}
@layer components {
  .msg {
    display: flex;
    gap: 0.625rem;
    margin-bottom: 0.25rem;
    padding: 0.25rem 1.5rem;
    animation: msg-appear 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .msg:hover {
    background: rgba(0,0,0,0.02);
  }
  @media (max-width: 767px) {
    .msg {
      padding: 0.25rem 0.75rem;
    }
  }
  .msg-outgoing {
    flex-direction: row-reverse;
  }
  .msg-body {
    min-width: 0;
    flex: 1;
  }
  .msg-outgoing .msg-body {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
  }
  .msg-bubble {
    padding: 0.625rem 1rem;
    border-radius: var(--msg-radius, 1.125rem);
    max-width: min(75%, 32rem);
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.5;
    word-break: break-word;
  }
  .msg-incoming .msg-bubble {
    background: var(--msg-incoming-bg, var(--color-surface, white));
    color: var(--msg-incoming-color, var(--color-text, var(--neutral-800)));
    border: 1px solid var(--color-border);
    border-bottom-left-radius: 0.25rem;
  }
  .msg-outgoing .msg-bubble {
    background: var(--msg-outgoing-bg, var(--color-primary, var(--primary-600)));
    color: var(--msg-outgoing-color, white);
    border-bottom-right-radius: 0.25rem;
  }
  .msg-meta {
    font-size: 0.6875rem;
    color: var(--color-text-muted, var(--neutral-400));
    margin-top: 0.25rem;
    padding: 0 0.25rem;
  }
  .msg-outgoing .msg-meta {
    text-align: right;
  }
  .msg-thread-link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.25rem;
    padding: 0.125rem 0.5rem;
    font-size: 0.75rem;
    font-weight: var(--font-weight-medium, 500);
    color: var(--color-primary, var(--primary-600));
    background: none;
    border: none;
    cursor: pointer;
    border-radius: 0.375rem;
    transition: background 0.15s;
  }
  .msg-thread-link:hover {
    background: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 8%, transparent);
    }
  }
  .thread-panel {
    width: 0;
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--bg-app, #f9fafb);
    flex-shrink: 0;
    transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .thread-panel--open {
    position: fixed;
    right: 0;
    top: 0;
    bottom: 0;
    width: min(28rem, 40vw);
    z-index: 40;
    border-left: 1px solid var(--color-border);
    box-shadow: -4px 0 24px rgba(0,0,0,0.05);
  }
  .thread-panel-inner {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  @media (max-width: 767px) {
    .thread-panel--open {
      width: 100dvw;
    }
  }
  .content-detail-panel {
    width: 0;
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--color-surface, white);
    flex-shrink: 0;
    transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .content-detail-panel--open {
    flex: 1;
    width: auto;
    min-width: 0;
    overflow-y: auto;
    border-left: 1px solid var(--color-border);
  }
  .content-detail-panel-inner {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  @media (max-width: 767px) {
    .content-detail-panel--open {
      position: fixed;
      right: 0;
      top: 0;
      bottom: 0;
      width: 100dvw;
      z-index: 40;
      box-shadow: -4px 0 24px rgba(0,0,0,0.05);
    }
  }
  @media (min-width: 768px) {
    .content-detail-panel--open:not(.content-detail-panel--wide) {
      position: fixed;
      inset: 0;
      width: auto;
      height: auto;
      z-index: 60;
      background: rgba(15, 23, 42, 0.55);
      border-left: none;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 2rem;
      overflow: visible;
    }
    .content-detail-panel--open:not(.content-detail-panel--wide) .content-detail-panel-inner {
      width: min(34rem, 92vw);
      height: auto;
      max-height: 88vh;
      background: var(--color-surface, white);
      border-radius: 1.125rem;
      box-shadow: 0 25px 60px -15px rgba(0, 0, 0, 0.35), 0 8px 25px -8px rgba(0, 0, 0, 0.15);
      overflow: hidden;
      animation: cd-modal-slide-up 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    }
    @keyframes cd-modal-slide-up {
      from {
        opacity: 0;
        transform: translateY(10px) scale(0.97);
      }
      to {
        opacity: 1;
        transform: translateY(0) scale(1);
      }
    }
    .content-detail-panel--open.content-detail-panel--large-modal {
      padding: 1rem;
    }
    .content-detail-panel--open.content-detail-panel--large-modal .content-detail-panel-inner {
      width: min(80rem, 96vw);
      height: 96vh;
      max-height: 96vh;
    }
  }
  .cd-body {
    padding: 1.25rem 1.5rem 1.5rem;
  }
  .cd-title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--neutral-900);
    line-height: 1.3;
    margin: 0 0 0.875rem;
    word-break: break-word;
  }
  .cd-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.625rem 0;
    border-bottom: 1px solid var(--color-border);
  }
  .cd-row:last-of-type {
    border-bottom: none;
  }
  .cd-row-label {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--neutral-500);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
  }
  .cd-row-value {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--neutral-900);
    text-align: right;
    word-break: break-word;
  }
  .cd-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    margin-top: 0.875rem;
  }
  .cd-status-pill::before {
    content: '';
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: currentColor;
  }
  .cd-status-pill--ok {
    background: color-mix(in srgb, #10b981 14%, transparent);
    color: #047857;
  }
  .cd-status-pill--warning {
    background: color-mix(in srgb, #f59e0b 16%, transparent);
    color: #b45309;
  }
  .cd-status-pill--danger {
    background: color-mix(in srgb, #ef4444 14%, transparent);
    color: #b91c1c;
  }
  .cd-status-pill--neutral {
    background: var(--neutral-100);
    color: var(--neutral-600);
  }
  .cd-pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-top: 0.875rem;
  }
  .cd-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.625rem;
    background: var(--neutral-100);
    color: var(--neutral-700);
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
  }
  .cd-pill--me {
    background: var(--primary-600, #7c3aed);
    color: white;
  }
  .cd-section-title {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--neutral-500);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 1.25rem 0 0.5rem;
  }
  .cd-action-btn {
    display: block;
    width: 100%;
    margin-top: 1.25rem;
    padding: 0.75rem 1rem;
    border: none;
    border-radius: 0.625rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: white;
    background: var(--primary-600, #7c3aed);
    cursor: pointer;
    transition: filter 0.15s ease, transform 0.05s ease;
  }
  .cd-action-btn:hover {
    filter: brightness(1.08);
  }
  .cd-action-btn:active {
    transform: translateY(1px);
  }
  .cd-action-btn--secondary {
    background: var(--neutral-100);
    color: var(--neutral-800);
  }
  .cd-action-btn--danger {
    background: #ef4444;
  }
  .cd-hero {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.125rem 1.25rem;
    margin-bottom: 1.125rem;
    background: linear-gradient( 135deg, var(--cd-accent, var(--primary-500, #8b5cf6)) 0%, var(--cd-accent, var(--primary-500, #8b5cf6)) 100% );
    @supports (color: color-mix(in lab, red, red)) {
      background: linear-gradient( 135deg, color-mix(in srgb, var(--cd-accent, var(--primary-500, #8b5cf6)) 14%, transparent) 0%, color-mix(in srgb, var(--cd-accent, var(--primary-500, #8b5cf6)) 5%, transparent) 100% );
    }
    border: 1px solid var(--cd-accent, var(--primary-500, #8b5cf6));
    @supports (color: color-mix(in lab, red, red)) {
      border: 1px solid color-mix(in srgb, var(--cd-accent, var(--primary-500, #8b5cf6)) 22%, transparent);
    }
    border-radius: 1rem;
    overflow: hidden;
  }
  .cd-hero::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--cd-accent, var(--primary-600, #7c3aed));
  }
  .cd-hero-icon {
    flex-shrink: 0;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 0.875rem;
    background: var(--cd-accent, var(--primary-600, #7c3aed));
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 18px -4px var(--cd-accent, var(--primary-600, #7c3aed));
    @supports (color: color-mix(in lab, red, red)) {
      box-shadow: 0 6px 18px -4px color-mix(in srgb, var(--cd-accent, var(--primary-600, #7c3aed)) 55%, transparent);
    }
  }
  .cd-hero-icon svg {
    width: 1.625rem;
    height: 1.625rem;
  }
  .cd-hero-text {
    min-width: 0;
    flex: 1;
  }
  .cd-hero-eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--cd-accent, var(--primary-700, #6d28d9));
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.2rem;
  }
  .cd-hero-title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--neutral-900);
    line-height: 1.3;
    word-break: break-word;
  }
  .cd-hero-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.4rem;
    font-size: 0.8125rem;
    color: var(--neutral-600);
  }
  .cd-hero-meta-icon {
    width: 0.875rem;
    height: 0.875rem;
    flex-shrink: 0;
  }
  .cd-subject {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--neutral-800);
    margin: 0 0 0.625rem;
  }
  .cd-meta-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.625rem;
    margin-bottom: 1rem;
  }
  .cd-capacity {
    font-size: 0.8125rem;
    color: var(--neutral-500);
    font-weight: 500;
  }
  .cd-empty {
    font-size: 0.8125rem;
    color: var(--neutral-400);
    font-style: italic;
    margin: 0.5rem 0 0;
  }
  .cd-meta-row .cd-status-pill {
    margin-top: 0;
  }
  .cd-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
    gap: 0.625rem;
    margin-bottom: 1rem;
  }
  .cd-stat {
    padding: 0.75rem 0.875rem;
    background: var(--neutral-50);
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    text-align: center;
  }
  .cd-stat-value {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--neutral-900);
    line-height: 1.1;
  }
  .cd-stat-label {
    font-size: 0.6875rem;
    color: var(--neutral-500);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-top: 0.2rem;
  }
  .cd-stars {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--neutral-300);
  }
  .cd-stars-filled {
    color: #fbbf24;
    text-shadow: 0 1px 2px color-mix(in srgb, #fbbf24 35%, transparent);
  }
  .cd-stars-score {
    margin-left: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--neutral-700);
    align-self: center;
  }
  .cd-quote {
    position: relative;
    padding: 0.875rem 1rem 0.875rem 1.25rem;
    margin: 0.875rem 0;
    background: var(--neutral-50);
    border-left: 3px solid var(--cd-accent, var(--primary-500, #8b5cf6));
    border-radius: 0 0.5rem 0.5rem 0;
    color: var(--neutral-700);
    font-size: 0.875rem;
    font-style: italic;
    line-height: 1.5;
  }
  .cd-description {
    margin: 0.875rem 0;
    font-size: 0.875rem;
    color: var(--neutral-700);
    line-height: 1.6;
    white-space: pre-wrap;
  }
  .wc-card {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin-top: 0.5rem;
    padding: 0;
    width: 100%;
    max-width: 24rem;
    background: var(--surface, white);
    border: 1px solid var(--color-border);
    border-radius: 0.875rem;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.15s ease, border-color 0.15s ease;
    text-align: left;
  }
  .wc-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px -8px var(--wc-accent, #64748b);
    @supports (color: color-mix(in lab, red, red)) {
      box-shadow: 0 8px 20px -8px color-mix(in srgb, var(--wc-accent, #64748b) 35%, transparent);
    }
    border-color: var(--wc-accent, #64748b);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--wc-accent, #64748b) 45%, var(--color-border));
    }
  }
  .wc-card-icon {
    flex-shrink: 0;
    width: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--wc-accent-bg, var(--neutral-50));
    color: var(--wc-accent, var(--neutral-600));
    border-right: 1px solid var(--wc-accent, #64748b);
    @supports (color: color-mix(in lab, red, red)) {
      border-right: 1px solid color-mix(in srgb, var(--wc-accent, #64748b) 18%, transparent);
    }
  }
  .wc-card-icon svg {
    width: 1.25rem;
    height: 1.25rem;
  }
  .wc-card-body {
    flex: 1;
    min-width: 0;
    padding: 0.625rem 0.875rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
  }
  .wc-card-label {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--wc-accent, var(--neutral-500));
    text-transform: uppercase;
    letter-spacing: 0.07em;
  }
  .wc-card-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--neutral-900);
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
  }
  .wc-card-action {
    margin-top: 0.125rem;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--wc-accent, var(--neutral-600));
  }
  .wc-card-action svg {
    width: 0.75rem;
    height: 0.75rem;
  }
  .wc-summary {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
  }
  .wc-summary-row {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    color: var(--neutral-600);
  }
  .wc-summary-row svg {
    width: 0.75rem;
    height: 0.75rem;
    flex-shrink: 0;
  }
  .wc-summary-row strong {
    color: var(--neutral-800);
    font-weight: 600;
  }
  .wc-summary-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    align-self: flex-start;
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.6875rem;
    font-weight: 600;
    margin-top: 0.125rem;
  }
  .wc-summary-pill::before {
    content: '';
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background: currentColor;
  }
  .wc-summary-pill--ok {
    background: color-mix(in srgb, #10b981 14%, transparent);
    color: #047857;
  }
  .wc-summary-pill--warning {
    background: color-mix(in srgb, #f59e0b 16%, transparent);
    color: #b45309;
  }
  .wc-summary-pill--danger {
    background: color-mix(in srgb, #ef4444 14%, transparent);
    color: #b91c1c;
  }
  .wc-summary-pill--neutral {
    background: var(--neutral-100);
    color: var(--neutral-600);
  }
  .gallery-panel {
    width: 0;
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--color-surface, white);
    flex-shrink: 0;
    transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .gallery-panel--open {
    position: fixed;
    right: 0;
    top: 0;
    bottom: 0;
    width: min(24rem, 35vw);
    z-index: 40;
    border-left: 1px solid var(--color-border);
    box-shadow: -4px 0 24px rgba(0,0,0,0.05);
  }
  .gallery-panel-inner {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  @media (max-width: 767px) {
    .gallery-panel--open {
      width: 100dvw;
    }
  }
  .pinned-detail-panel {
    width: 0;
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--color-surface, white);
    flex-shrink: 0;
    transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .pinned-detail-panel--open {
    position: fixed;
    right: 0;
    top: 0;
    bottom: 0;
    width: min(24rem, 35vw);
    z-index: 40;
    border-left: 1px solid var(--color-border);
    box-shadow: -4px 0 24px rgba(0,0,0,0.05);
  }
  .pinned-detail-panel-inner {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  @media (max-width: 767px) {
    .pinned-detail-panel--open {
      width: 100dvw;
    }
  }
  @keyframes kohort-slide-up {
    from {
      opacity: 0;
      transform: translateY(0.6rem) scale(0.98);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }
  @keyframes kohort-fade-in {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  @keyframes kohort-chip-pop {
    0% {
      transform: scale(1);
    }
    40% {
      transform: scale(1.12);
    }
    100% {
      transform: scale(1);
    }
  }
  .kohort-calendar {
    background: var(--color-surface, white);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
    overflow: hidden;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.04);
  }
  .kohort-calendar-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--neutral-100);
    background: linear-gradient(135deg, var(--color-primary, var(--primary-500)), white);
    @supports (color: color-mix(in lab, red, red)) {
      background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary, var(--primary-500)) 4%, var(--mix-base, white)), white);
    }
  }
  .kohort-calendar-month-label {
    font-weight: var(--font-weight-bold, 700);
    font-size: 0.9375rem;
    color: var(--neutral-800);
    text-transform: capitalize;
    letter-spacing: -0.01em;
  }
  .kohort-calendar-nav-btn {
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-lg);
    border: none;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-secondary, var(--neutral-500));
    transition: background 0.12s, color 0.12s, transform 0.12s;
  }
  .kohort-calendar-nav-btn:hover {
    background: var(--color-primary, var(--primary-500));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-500)) 10%, var(--mix-base, white));
    }
    color: var(--color-primary, var(--primary-600));
    transform: scale(1.1);
  }
  .kohort-calendar-nav-btn:active {
    transform: scale(0.95);
  }
  .kohort-calendar-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: var(--neutral-50);
    border-bottom: 1px solid var(--neutral-100);
  }
  .kohort-calendar-weekdays span {
    text-align: center;
    padding: 0.375rem 0;
    font-size: 0.6875rem;
    font-weight: var(--font-weight-bold, 700);
    color: var(--color-text-muted, var(--neutral-400));
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }
  .kohort-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--neutral-100);
  }
  .kohort-calendar-cell {
    background: var(--color-surface, white);
    min-height: 5rem;
    padding: 0.3rem 0.35rem 0.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    cursor: pointer;
    transition: background 0.12s ease, box-shadow 0.12s ease;
    position: relative;
  }
  .kohort-calendar-cell:hover {
    background: var(--color-primary, var(--primary-500));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-500)) 5%, var(--mix-base, white));
    }
    z-index: 1;
  }
  .kohort-calendar-cell--other-month {
    cursor: default;
    background: var(--neutral-50) !important;
    box-shadow: none !important;
    outline: none !important;
  }
  .kohort-calendar-cell--has-events:hover {
    background: var(--color-primary, var(--primary-500));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-500)) 8%, var(--mix-base, white));
    }
  }
  .kohort-calendar-cell--selected {
    background: var(--color-primary, var(--primary-500)) !important;
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-500)) 12%, var(--mix-base, white)) !important;
    }
    box-shadow: inset 0 0 0 2px var(--color-primary, var(--primary-500));
    z-index: 2;
  }
  .kohort-calendar-cell--today .kohort-calendar-day {
    background: var(--color-primary, var(--primary-500));
    color: white;
    border-radius: 9999px;
    box-shadow: 0 0 0 3px var(--color-primary, var(--primary-500));
    @supports (color: color-mix(in lab, red, red)) {
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, var(--primary-500)) 25%, transparent);
    }
  }
  .kohort-calendar-cell--other-month .kohort-calendar-day {
    color: var(--neutral-300);
  }
  .kohort-calendar-day {
    font-size: 0.75rem;
    font-weight: var(--font-weight-semibold, 600);
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--neutral-700);
    transition: transform 0.1s;
    flex-shrink: 0;
  }
  .kohort-calendar-cell:not(.kohort-calendar-cell--other-month):hover .kohort-calendar-day {
    transform: scale(1.1);
  }
  .kohort-calendar-event-chip {
    font-size: 0.625rem;
    font-weight: var(--font-weight-semibold, 600);
    padding: 0.15rem 0.375rem;
    border-radius: 9999px;
    background: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 15%, var(--mix-base, white));
    }
    color: var(--color-primary, var(--primary-700));
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in srgb, var(--color-primary, var(--primary-700)) 90%, black);
    }
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
    border: none;
    display: block;
    text-align: left;
  }
  .kohort-calendar-cell--selected .kohort-calendar-event-chip {
    background: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 22%, var(--mix-base, white));
    }
    animation: kohort-chip-pop 0.25s ease;
  }
  .kohort-day-panel {
    margin-top: 0.75rem;
    border-radius: var(--radius-xl);
    background: var(--color-surface, white);
    border: 1px solid var(--color-border);
    box-shadow: 0 4px 16px -2px rgb(0 0 0 / 0.1), 0 2px 4px -1px rgb(0 0 0 / 0.06);
    overflow: hidden;
    animation: kohort-slide-up 0.22s cubic-bezier(0.34, 1.4, 0.64, 1) both;
  }
  .kohort-day-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    background: linear-gradient(135deg, var(--color-primary, var(--primary-500)), var(--color-primary, var(--primary-500)));
    @supports (color: color-mix(in lab, red, red)) {
      background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary, var(--primary-500)) 10%, var(--mix-base, white)), color-mix(in srgb, var(--color-primary, var(--primary-500)) 4%, var(--mix-base, white)));
    }
    border-bottom: 1px solid var(--color-primary, var(--primary-500));
    @supports (color: color-mix(in lab, red, red)) {
      border-bottom: 1px solid color-mix(in srgb, var(--color-primary, var(--primary-500)) 15%, transparent);
    }
  }
  .kohort-day-panel-date {
    font-weight: var(--font-weight-bold, 700);
    font-size: 0.875rem;
    color: var(--neutral-800);
    text-transform: capitalize;
    letter-spacing: -0.01em;
  }
  .kohort-day-panel-close {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 9999px;
    border: none;
    background: white;
    color: var(--color-text-secondary, var(--neutral-500));
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.12s, color 0.12s, transform 0.12s;
    box-shadow: 0 1px 3px rgb(0 0 0 / 0.08);
  }
  .kohort-day-panel-close:hover {
    background: var(--neutral-100);
    color: var(--neutral-800);
    transform: rotate(90deg) scale(1.05);
  }
  .kohort-day-panel-events {
    display: flex;
    flex-direction: column;
    padding: 0.375rem;
  }
  .kohort-day-empty {
    text-align: center;
    padding: 1.25rem 1rem;
    font-size: 0.8125rem;
    color: var(--color-text-muted, var(--neutral-400));
    font-style: italic;
  }
  .kohort-day-event-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 0.75rem;
    border-radius: 0.75rem;
    border: none;
    background: none;
    cursor: pointer;
    text-align: left;
    width: 100%;
    transition: background 0.12s, transform 0.15s cubic-bezier(0.34, 1.56, 0.64, 1);
    animation: kohort-fade-in 0.18s ease both;
  }
  .kohort-day-event-item:hover {
    background: var(--color-primary, var(--primary-500));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-500)) 7%, var(--mix-base, white));
    }
    transform: translateX(0.25rem);
  }
  .kohort-day-event-item:active {
    transform: translateX(0.1rem) scale(0.99);
  }
  .kohort-day-event-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 9999px;
    background: var(--color-primary, var(--primary-500));
    flex-shrink: 0;
    box-shadow: 0 0 0 3px var(--color-primary, var(--primary-500));
    @supports (color: color-mix(in lab, red, red)) {
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, var(--primary-500)) 20%, transparent);
    }
  }
  .kohort-day-event-info {
    min-width: 0;
    flex: 1;
  }
  .kohort-day-event-title {
    font-size: 0.875rem;
    font-weight: var(--font-weight-semibold, 600);
    color: var(--neutral-800);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .kohort-day-event-time {
    font-size: 0.75rem;
    color: var(--color-text-muted, var(--neutral-400));
    margin-top: 0.1rem;
  }
  .kohort-day-event-arrow {
    width: 1rem;
    height: 1rem;
    color: var(--neutral-300);
    flex-shrink: 0;
    transition: color 0.12s, transform 0.15s;
  }
  .kohort-day-event-item:hover .kohort-day-event-arrow {
    color: var(--color-primary, var(--primary-500));
    transform: translateX(0.15rem);
  }
  .gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.25rem;
  }
  @media (min-width: 480px) {
    .gallery-grid {
      grid-template-columns: repeat(3, 1fr);
    }
  }
  .gallery-cell {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 0.25rem;
    background: var(--neutral-100);
  }
  .gallery-cell-info {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.125rem 0.375rem;
    background: linear-gradient(transparent, rgba(0,0,0,0.5));
    color: white;
  }
  .gallery-filter {
    padding: 0.25rem 0.75rem;
    font-size: 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    background: var(--color-surface, white);
    color: var(--neutral-600);
    cursor: pointer;
    transition: all 0.15s;
  }
  .gallery-filter:hover {
    background: var(--neutral-50);
  }
  .gallery-filter--active {
    background: var(--color-primary, var(--primary-600));
    color: white;
    border-color: var(--color-primary, var(--primary-600));
  }
  .gallery-cell--file {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 0.75rem 0.5rem;
    text-align: center;
  }
  .gallery-file-icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    background: var(--neutral-400);
    flex-shrink: 0;
  }
  .gallery-file-icon--pdf {
    background: var(--color-error);
  }
  .gallery-file-icon--word {
    background: var(--color-info);
  }
  .gallery-file-icon--excel {
    background: var(--color-success);
  }
  .gallery-file-icon--ppt {
    background: var(--color-warning);
  }
  .gallery-file-icon--text {
    background: var(--neutral-500);
  }
  .gallery-file-icon--audio {
    background: var(--color-primary);
  }
  .gallery-file-icon--poll {
    background: var(--color-primary);
  }
  .gallery-file-icon--calendar {
    background: var(--color-accent);
  }
  .gallery-file-icon--generic {
    background: var(--neutral-400);
  }
  .gallery-file-name {
    font-size: 0.65rem;
    color: var(--neutral-700);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
    line-height: 1.2;
  }
  .gallery-file-size {
    font-size: 0.6rem;
    color: var(--color-text-muted, var(--neutral-400));
  }
  .compose-menu-trigger {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    color: var(--color-text-secondary, var(--neutral-500));
    background: var(--neutral-100);
    border: 1px solid var(--color-border);
    cursor: pointer;
    transition: all 0.15s;
  }
  .compose-menu-trigger:hover {
    background: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 8%, var(--mix-base, white));
    }
    color: var(--color-primary, var(--primary-600));
    border-color: var(--color-primary, var(--primary-600));
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in srgb, var(--color-primary, var(--primary-600)) 30%, var(--mix-base, white));
    }
  }
  .compose-menu-popup {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    min-width: min(14rem, calc(100vw - 2rem));
    max-height: 60vh;
    overflow-y: auto;
    background: var(--color-surface, white);
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    padding: 0.25rem;
    z-index: 999;
  }
  .compose-menu-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    width: 100%;
    padding: 0.625rem 0.75rem;
    min-height: 2.75rem;
    font-size: 0.8125rem;
    color: var(--neutral-700);
    border-radius: 0.5rem;
    cursor: pointer;
    transition: background 0.1s;
    border: none;
    background: transparent;
    text-align: left;
  }
  .compose-menu-item:hover {
    background: var(--neutral-50);
  }
  .compose-menu-group-label {
    padding: 0.375rem 0.75rem 0.125rem;
    font-size: 0.6875rem;
    font-weight: var(--font-weight-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted, var(--neutral-400));
    user-select: none;
  }
  .compose-menu-group-label:not(:first-child) {
    margin-top: 0.25rem;
    border-top: 1px solid var(--color-border);
    padding-top: 0.5rem;
  }
  .emoji-picker-btn {
    color: var(--color-text-muted, var(--neutral-400));
    padding: 0.25rem;
    border-radius: 0.375rem;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: color 0.15s;
  }
  .emoji-picker-btn:hover {
    color: var(--neutral-600);
  }
  .emoji-picker-popup {
    position: absolute;
    bottom: 100%;
    right: 0;
    margin-bottom: 0.5rem;
    width: min(20rem, calc(100vw - 2rem));
    max-height: 18rem;
    overflow-y: auto;
    background: var(--color-surface, white);
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    padding: 0.5rem;
    z-index: 999;
  }
  .emoji-picker-category {
    font-size: 0.6875rem;
    font-weight: var(--font-weight-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted, var(--neutral-400));
    padding: 0.375rem 0.25rem 0.25rem;
  }
  .emoji-picker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(2.5rem, 1fr));
    gap: 0.125rem;
  }
  .emoji-picker-item {
    font-size: 1.25rem;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.375rem;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: background 0.1s;
  }
  .emoji-picker-item:hover {
    background: var(--neutral-100);
  }
  .compose-inline-form {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: color-mix(in srgb, black 50%, transparent);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    animation: compose-modal-fade-in 0.18s ease-out;
    margin: 0 !important;
  }
  .compose-inline-form[hidden] {
    display: none !important;
  }
  .compose-inline-form > * {
    background: var(--surface, white);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    padding: 1.5rem 1.5rem 1.25rem;
    width: min(36rem, 100%);
    max-height: min(85vh, 42rem);
    overflow-y: auto;
    box-shadow: 0 25px 50px -12px color-mix(in srgb, black 25%, transparent), 0 10px 25px -5px color-mix(in srgb, black 10%, transparent);
    animation: compose-modal-slide-up 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  }
  @keyframes compose-modal-fade-in {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  @keyframes compose-modal-slide-up {
    from {
      opacity: 0;
      transform: translateY(8px) scale(0.98);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }
  body:has(.compose-inline-form:not([hidden])) {
    overflow: hidden;
  }
  @media (max-width: 640px) {
    .compose-inline-form {
      padding: 0.5rem;
      align-items: flex-end;
    }
    .compose-inline-form > * {
      width: 100%;
      max-height: 92vh;
      border-radius: 1rem 1rem 0.75rem 0.75rem;
      padding: 1.25rem 1rem 1rem;
    }
  }
  .cf-field {
    margin-bottom: 0.875rem;
  }
  .cf-field:last-of-type {
    margin-bottom: 0;
  }
  .cf-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--neutral-700);
    margin-bottom: 0.375rem;
  }
  .cf-help {
    font-size: 0.75rem;
    color: var(--neutral-500);
    margin-top: 0.25rem;
  }
  .cf-input, .cf-textarea, .cf-select {
    width: 100%;
    padding: 0.625rem 0.875rem;
    font-size: 0.9375rem;
    line-height: 1.4;
    color: var(--neutral-900);
    background: var(--surface, white);
    border: 1.5px solid var(--color-border);
    border-radius: 0.625rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
  }
  .cf-input::placeholder, .cf-textarea::placeholder {
    color: var(--neutral-400);
  }
  .cf-input:focus, .cf-textarea:focus, .cf-select:focus {
    outline: none;
    border-color: var(--primary-500, #8b5cf6);
    box-shadow: 0 0 0 3px var(--primary-500, #8b5cf6);
    @supports (color: color-mix(in lab, red, red)) {
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-500, #8b5cf6) 18%, transparent);
    }
  }
  .cf-input:disabled, .cf-textarea:disabled, .cf-select:disabled {
    background: var(--neutral-100);
    color: var(--neutral-400);
    cursor: not-allowed;
  }
  .cf-textarea {
    resize: vertical;
    min-height: 5rem;
  }
  .cf-input--compact {
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
  }
  .cf-input--narrow {
    width: 6rem;
  }
  .cf-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-bottom: 0.875rem;
  }
  .cf-grid-2--end {
    align-items: end;
  }
  .cf-checkbox-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0;
    font-size: 0.875rem;
    color: var(--neutral-700);
    cursor: pointer;
  }
  .cf-checkbox {
    width: 1.125rem;
    height: 1.125rem;
    accent-color: var(--primary-600, #7c3aed);
    cursor: pointer;
  }
  .cf-section-title {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--neutral-500);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 1rem 0 0.5rem;
  }
  .cf-submit-row {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
  }
  .cf-submit-btn {
    padding: 0.625rem 1.25rem;
    background: var(--primary-600, #7c3aed);
    color: white;
    border: none;
    border-radius: 0.625rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: filter 0.15s ease, transform 0.05s ease;
  }
  .cf-submit-btn:hover {
    filter: brightness(1.08);
  }
  .cf-submit-btn:active {
    transform: translateY(1px);
  }
  .cf-submit-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
  }
  .cf-submit-btn--secondary {
    background: var(--neutral-100);
    color: var(--neutral-800);
  }
  .lightbox {
    position: fixed;
    inset: 0;
    z-index: 50;
    background: rgba(0,0,0,0.9);
    display: none;
    align-items: center;
    justify-content: center;
  }
  .lightbox--open {
    display: flex;
  }
  .toast {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 1.25rem;
    border-radius: var(--radius-md);
    font-size: 0.875rem;
    font-weight: var(--font-weight-medium, 500);
    box-shadow: var(--shadow-lg);
    animation: toast-slide-in 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .toast-success {
    background: var(--color-success);
    color: white;
  }
  .toast-error {
    background: var(--color-error);
    color: white;
  }
  .toast-info {
    background: var(--color-info);
    color: white;
  }
  .nav-tabs {
    display: flex;
    border-bottom: 2px solid var(--color-border);
    gap: 0;
  }
  .nav-tab {
    padding: 0.625rem 1.25rem;
    font-size: 0.875rem;
    font-weight: var(--font-weight-medium, 500);
    color: var(--color-text-secondary, var(--neutral-500));
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
  }
  .nav-tab:hover {
    color: var(--neutral-700);
  }
  .nav-tab-active {
    color: var(--color-primary, var(--primary-600));
    border-bottom-color: var(--color-primary, var(--primary-600));
    font-weight: var(--font-weight-semibold, 600);
  }
  .link-preview-card {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.5rem;
    padding: 0.625rem;
    border: 1px solid var(--color-border);
    border-radius: 0.625rem;
    background: var(--neutral-50);
    text-decoration: none;
    color: inherit;
    transition: background 0.15s;
    overflow: hidden;
  }
  .link-preview-card:hover {
    background: var(--neutral-100);
  }
  .link-preview-img {
    width: 5rem;
    height: 5rem;
    object-fit: cover;
    border-radius: 0.5rem;
    flex-shrink: 0;
  }
  .link-preview-body {
    min-width: 0;
    flex: 1;
  }
  .link-preview-title {
    font-size: 0.8125rem;
    font-weight: var(--font-weight-semibold, 600);
    color: var(--neutral-800);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .link-preview-desc {
    font-size: 0.75rem;
    color: var(--color-text-secondary, var(--neutral-500));
    margin-top: 0.25rem;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .link-preview-url {
    font-size: 0.6875rem;
    color: var(--color-text-muted, var(--neutral-400));
    margin-top: 0.25rem;
  }
  .global-search-panel {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 0.5rem;
    width: min(22rem, calc(100vw - 2rem));
    background: var(--color-surface, white);
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    z-index: 999;
    overflow: hidden;
  }
  .global-search-input {
    width: 100%;
    padding: 0.625rem 0.75rem;
    border: none;
    border-bottom: 1px solid var(--color-border);
    font-size: 0.8125rem;
    background: transparent;
    color: var(--color-text, var(--neutral-800));
    outline: none;
  }
  .global-search-input::placeholder {
    color: var(--color-text-muted, var(--neutral-400));
  }
  .global-search-results {
    max-height: 20rem;
    overflow-y: auto;
  }
  .global-search-result {
    display: block;
    padding: 0.5rem 0.75rem;
    text-decoration: none;
    color: inherit;
    transition: background 0.1s;
    border-bottom: 1px solid var(--neutral-100);
  }
  .global-search-result:hover {
    background: var(--neutral-50);
  }
  .global-search-result:last-child {
    border-bottom: none;
  }
  .kohort-date-separator {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.5rem 1rem;
    color: var(--color-text-muted, var(--neutral-400));
    font-size: 0.6875rem;
    font-weight: var(--font-weight-semibold, 600);
    text-transform: capitalize;
    letter-spacing: 0.02em;
    user-select: none;
  }
  .kohort-date-separator::before, .kohort-date-separator::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--neutral-200);
  }
  .hotkeys-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0,0,0,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(4px);
  }
  .hotkeys-card {
    background: var(--color-surface, white);
    border-radius: 1rem;
    padding: 1.5rem;
    width: 24rem;
    max-width: 90vw;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
  }
  .hotkeys-kbd {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    font-size: 0.75rem;
    font-family: inherit;
    font-weight: var(--font-weight-semibold, 600);
    color: var(--neutral-600);
    background: var(--neutral-100);
    border: 1px solid var(--color-border);
    border-radius: 0.375rem;
    white-space: nowrap;
  }
  .profile-card-popup {
    width: 16rem;
    background: var(--color-surface, white);
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    padding: 0.875rem;
  }
  .profile-card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    font-size: 0.75rem;
    font-weight: var(--font-weight-semibold, 600);
    border-radius: 0.5rem;
    background: var(--color-primary, var(--primary-500));
    color: white;
    text-decoration: none;
    transition: opacity 0.15s;
  }
  .profile-card-btn:hover {
    opacity: 0.9;
  }
  .profile-card-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.375rem 0.75rem;
    font-size: 0.75rem;
    font-weight: var(--font-weight-semibold, 600);
    border-radius: 0.5rem;
    background: var(--neutral-100);
    color: var(--neutral-600);
    text-decoration: none;
    transition: background 0.15s;
  }
  .profile-card-btn-secondary:hover {
    background: var(--neutral-200);
  }
  @media (min-width: 1024px) {
    .content-detail-panel--wide.content-detail-panel--open {
      position: static;
      width: auto;
      min-width: 0;
      flex: 1 1 auto;
      max-width: none;
      border-left: none;
      box-shadow: none;
    }
    :has(> .content-detail-panel--wide.content-detail-panel--open) > [data-controller~="compose-menu"] {
      display: none;
    }
  }
  .ts-viewer {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
    min-height: 100%;
  }
  .ts-viewer__header {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--color-border);
  }
  .ts-viewer__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--neutral-900);
    margin: 0;
    line-height: 1.3;
  }
  .ts-viewer__meta {
    font-size: 0.75rem;
    color: var(--neutral-500);
  }
  .ts-viewer__characters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
  }
  .ts-viewer__character-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.625rem;
    border-radius: 9999px;
    background: var(--neutral-50, #f8fafc);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--neutral-700, #334155);
  }
  .ts-viewer__character-pill::before {
    content: '';
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 9999px;
    background: var(--char-color, #9333ea);
    flex-shrink: 0;
  }
  .ts-viewer__body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .ts-viewer__main {
    flex: 1;
    min-width: 0;
  }
  .ts-viewer__aside {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  .ts-controls {
    display: flex;
    gap: 0.5rem;
  }
  .ts-controls button {
    flex: 1;
    padding: 0.625rem 0.5rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    min-height: 2.75rem;
    transition: background 0.15s, transform 0.1s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
  }
  .ts-controls button:active:not(:disabled) {
    transform: scale(0.97);
  }
  .ts-controls button:disabled {
    opacity: 0.4;
    cursor: not-allowed;
  }
  .ts-controls__play {
    background: #9333ea;
    color: white;
    border: none;
  }
  .ts-controls__play:hover:not(:disabled) {
    background: #7e22ce;
  }
  .ts-controls__pause, .ts-controls__stop {
    background: white;
    color: var(--neutral-600);
    border: 1px solid var(--color-border);
  }
  .ts-controls__pause:hover:not(:disabled), .ts-controls__stop:hover:not(:disabled) {
    background: var(--neutral-100);
  }
  .ts-mode {
    display: none;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.625rem;
    border-radius: 0.5rem;
    background: var(--neutral-50, #f8fafc);
    font-size: 0.75rem;
    color: var(--neutral-700, #334155);
  }
  .ts-mode label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    margin: 0;
  }
  .ts-mode__provider {
    color: var(--neutral-400, #94a3b8);
  }
  .ts-status {
    font-size: 0.75rem;
    color: var(--neutral-500);
    min-height: 1.25rem;
    padding: 0 0.25rem;
  }
  .ts-lines {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .ts-line {
    padding: 0.625rem 0.75rem;
    border-radius: 0.5rem;
    transition: background 0.15s, box-shadow 0.15s, transform 0.1s;
    scroll-margin: 5rem;
  }
  .ts-line--stage {
    text-align: center;
    font-style: italic;
    color: var(--neutral-500, #64748b);
    font-size: 0.8125rem;
    padding: 0.375rem 0.75rem;
  }
  .ts-line--dialogue {
    background: white;
    border-left: 3px solid var(--char-color, #9333ea);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  }
  .ts-line--dialogue:hover {
    background: var(--neutral-50, #f8fafc);
  }
  .ts-line--current {
    background: var(--char-color, #9333ea);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in srgb, var(--char-color, #9333ea) 10%, white);
    }
    box-shadow: 0 0 0 2px var(--char-color, #9333ea);
    @supports (color: color-mix(in lab, red, red)) {
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--char-color, #9333ea) 40%, transparent);
    }
  }
  .ts-line__speaker {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--char-color, #9333ea);
    margin-bottom: 0.125rem;
  }
  .ts-line__text {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--neutral-900, #1e293b);
  }
  .ts-line__direction {
    font-style: italic;
    color: var(--neutral-500, #64748b);
    margin-right: 0.375rem;
  }
  .ts-line--act {
    text-align: center;
    font-weight: 800;
    font-size: 1.0625rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #9333ea;
    padding: 1rem 0.5rem 0.5rem;
    border-top: 2px solid color-mix(in srgb, #9333ea 25%, transparent);
    margin-top: 0.5rem;
  }
  .ts-line--scene {
    text-align: center;
    font-weight: 700;
    font-size: 0.875rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: color-mix(in srgb, #9333ea 70%, #1e293b);
    padding: 0.5rem;
    border-bottom: 1px dashed color-mix(in srgb, #9333ea 35%, transparent);
  }
  .ts-line--editing {
    outline: 2px solid color-mix(in srgb, #9333ea 40%, transparent);
  }
  .ts-fine-editor {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-top: 0.5rem;
  }
  .ts-fine-editor__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-top: 0.5rem;
  }
  .ts-fine-editor__add-btn {
    padding: 0.375rem 0.75rem;
    border: 1px solid color-mix(in srgb, #9333ea 40%, transparent);
    border-radius: 0.375rem;
    background: color-mix(in srgb, #9333ea 8%, white);
    color: #6b21a8;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    min-height: 2.25rem;
  }
  .ts-fine-editor__add-btn:hover {
    background: color-mix(in srgb, #9333ea 14%, white);
  }
  .ts-line__tools {
    display: none;
    gap: 0.25rem;
    margin-left: auto;
  }
  .ts-line--editable {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .ts-line--editable .ts-line__tools {
    display: inline-flex;
  }
  .ts-line__tool-btn {
    border: none;
    background: transparent;
    color: var(--neutral-500, #64748b);
    padding: 0.25rem;
    cursor: pointer;
    border-radius: 0.25rem;
    line-height: 1;
    font-size: 0.75rem;
    min-width: 1.75rem;
    min-height: 1.75rem;
  }
  .ts-line__tool-btn:hover {
    background: var(--neutral-100, #f1f5f9);
    color: var(--neutral-900, #0f172a);
  }
  .ts-line__tool-btn--danger:hover {
    color: #dc2626;
    background: #fef2f2;
  }
  .ts-editor {
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: white;
  }
  .ts-editor > summary {
    cursor: pointer;
    user-select: none;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--neutral-700, #334155);
    padding: 0.25rem 0;
    list-style: none;
  }
  .ts-editor > summary::-webkit-details-marker {
    display: none;
  }
  .ts-editor > summary::before {
    content: '▸';
    display: inline-block;
    margin-right: 0.375rem;
    transition: transform 0.15s;
    color: var(--neutral-400);
  }
  .ts-editor[open] > summary::before {
    transform: rotate(90deg);
  }
  @media (min-width: 1024px) {
    .ts-viewer {
      padding: 1.5rem 2rem;
      gap: 1.25rem;
    }
    .ts-viewer__title {
      font-size: 1.5rem;
    }
    .ts-viewer__body {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(20rem, 22rem);
      gap: 1.5rem;
      align-items: start;
    }
    .ts-viewer__main {
      max-width: 56rem;
    }
    .ts-viewer__aside {
      position: sticky;
      top: 1rem;
      max-height: calc(100vh - 6rem);
      overflow-y: auto;
      padding-right: 0.25rem;
    }
    .ts-line__text {
      font-size: 1rem;
      line-height: 1.6;
    }
    .ts-line--dialogue {
      padding: 0.75rem 1rem;
    }
  }
}
.kohort-pdf-progress-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.kohort-pdf-progress-overlay--visible {
  opacity: 1;
}
.kohort-pdf-progress-modal {
  background: var(--color-surface, #fff);
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.06);
  width: 100%;
  max-width: 26rem;
  padding: 1.5rem;
  animation: pdf-progress-slide-up 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
.kohort-pdf-progress-modal--with-preview {
  max-width: 40rem;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
}
@keyframes pdf-progress-slide-up {
  from {
    transform: translateY(12px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.kohort-pdf-progress-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  flex-shrink: 0;
}
.kohort-pdf-progress-header-text {
  flex: 1;
  min-width: 0;
}
.kohort-pdf-cancel-btn {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border: none;
  background: var(--neutral-100, #f1f5f9);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--color-text-secondary, #64748b);
  transition: background 0.15s, color 0.15s;
}
.kohort-pdf-cancel-btn:hover {
  background: #fee2e2;
  color: #ef4444;
}
.kohort-pdf-cancel-btn svg {
  width: 1rem;
  height: 1rem;
}
.kohort-pdf-progress-icon {
  width: 2rem;
  height: 2rem;
  flex-shrink: 0;
  color: var(--color-primary, #6366f1);
}
.kohort-pdf-progress-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-text, #1e293b);
  margin: 0;
}
.kohort-pdf-progress-filename {
  font-size: 0.8125rem;
  color: var(--color-text-secondary, #64748b);
  margin: 0.125rem 0 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 20rem;
}
.kohort-pdf-progress-bar-track {
  height: 0.5rem;
  background: var(--neutral-100, #f1f5f9);
  border-radius: 999px;
  overflow: hidden;
}
.kohort-pdf-progress-bar-fill {
  height: 100%;
  width: 0%;
  background: var(--color-primary, #6366f1);
  border-radius: 999px;
  transition: width 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.kohort-pdf-progress-bar-fill--done {
  background: #22c55e;
}
.kohort-pdf-progress-bar-fill--error {
  background: #ef4444;
}
.kohort-pdf-progress-status {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  flex-shrink: 0;
}
.kohort-pdf-progress-message {
  font-size: 0.8125rem;
  color: var(--color-text-secondary, #64748b);
  margin: 0.75rem 0 0;
  min-height: 1.25rem;
}
.kohort-pdf-progress-eta {
  font-size: 0.75rem;
  color: var(--color-text-secondary, #94a3b8);
  margin: 0.75rem 0 0;
}
.kohort-pdf-progress-percent {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text, #1e293b);
  margin: 0.75rem 0 0;
  flex-shrink: 0;
}
.kohort-pdf-preview {
  margin-top: 1rem;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  border: 1px solid var(--neutral-100, #f1f5f9);
  border-radius: 10px;
  padding: 0.75rem;
  background: var(--neutral-50, #f8fafc);
}
.kohort-pdf-preview-placeholder {
  text-align: center;
  color: var(--color-text-secondary, #94a3b8);
  font-size: 0.8125rem;
  padding: 2rem 0;
  margin: 0;
}
.kohort-pdf-preview-page {
  margin-bottom: 0.75rem;
  border-radius: 8px;
  background: var(--color-surface, #fff);
  border: 1px solid var(--neutral-100, #e2e8f0);
  overflow: hidden;
}
.kohort-pdf-preview-page:last-child {
  margin-bottom: 0;
}
.kohort-pdf-preview-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.375rem 0.75rem;
  background: var(--neutral-50, #f8fafc);
  border-bottom: 1px solid var(--neutral-100, #e2e8f0);
}
.kohort-pdf-preview-page-num {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text-secondary, #64748b);
}
.kohort-pdf-preview-page-text {
  font-family: inherit;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-text, #1e293b);
  padding: 0.625rem 0.75rem;
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 10rem;
  overflow-y: auto;
}
.kohort-grid {
  display: grid;
  height: 100%;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .kohort-grid {
    grid-template-columns: 14rem 1fr;
  }
  .kohort-grid--sidebar-collapsed {
    grid-template-columns: 3.5rem 1fr;
  }
}
@media (min-width: 1024px) {
  .kohort-grid {
    grid-template-columns: 14rem 18rem 1fr;
  }
  .kohort-grid--sidebar-collapsed {
    grid-template-columns: 3.5rem 18rem 1fr;
  }
}
@media (min-width: 1536px) {
  .kohort-grid:has(.kohort-sidebar-tertiary) {
    grid-template-columns: 14rem 18rem 1fr 16rem;
  }
  .kohort-grid--sidebar-collapsed:has(.kohort-sidebar-tertiary) {
    grid-template-columns: 3.5rem 18rem 1fr 16rem;
  }
}
.kohort-grid--white-label {
  grid-template-columns: 1fr;
}
.kohort-grid--white-label .kohort-sidebar-primary, .kohort-grid--white-label .kohort-sidebar-overlay {
  display: none !important;
}
@media (min-width: 768px) {
  .kohort-grid--white-label {
    grid-template-columns: 18rem 1fr;
  }
}
@media (min-width: 1024px) {
  .kohort-grid--white-label {
    grid-template-columns: 18rem 1fr;
  }
}
@media (min-width: 1536px) {
  .kohort-grid--white-label:has(.kohort-sidebar-tertiary) {
    grid-template-columns: 18rem 1fr 16rem;
  }
}
.kohort-grid > turbo-frame {
  display: contents;
}
.kohort-main-chat {
  min-height: 0;
  overflow: hidden;
}
body.has-bg-image .kohort-main-chat {
  background: var(--bg-image);
  background-size: cover;
  background-position: center;
}
body.has-bg-image .kohort-messages-scroll, body.has-bg-image .kohort-empty-state {
  background: transparent !important;
}
body.has-bg-image .kohort-message-card {
  background: var(--color-surface, white);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-surface, white) 85%, transparent);
  }
  backdrop-filter: blur(8px);
}
body.has-bg-image .kohort-composer-wrap {
  background: var(--color-surface, white);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-surface, white) 90%, transparent);
  }
}
body.has-bg-image .kohort-topbar {
  background: var(--color-topbar);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-topbar) 90%, transparent);
  }
}
.kohort-sidebar-secondary {
  background: var(--bg-sidebar, var(--bg-app, var(--color-background, #fff)));
}
.kohort-sidebar-primary {
  border-right: 1px solid var(--color-border);
  background: var(--color-surface, white);
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(18rem, 85vw);
  z-index: 50;
  transform: translateX(-100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: none;
}
.kohort-sidebar-primary--open {
  transform: translateX(0);
  box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
}
@media (min-width: 768px) {
  .kohort-sidebar-primary {
    position: static;
    transform: none;
    z-index: auto;
    box-shadow: none;
    width: auto;
    transition: none;
  }
  .kohort-sidebar-primary--open {
    box-shadow: none;
  }
}
.kohort-sidebar-primary--collapsed {
  overflow: hidden;
}
.kohort-sidebar-primary--collapsed .sidebar-expanded-content {
  display: none;
}
.kohort-sidebar-primary--collapsed .sidebar-collapsed-content {
  display: flex;
}
.sidebar-collapsed-content {
  display: none;
  flex-direction: column;
  align-items: center;
  padding-top: 0.875rem;
  height: 100%;
}
.sidebar-collapsed-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.75rem;
  cursor: pointer;
  transition: background 0.15s;
  border: none;
  background: transparent;
  padding: 0;
}
.sidebar-collapsed-logo:hover {
  background: var(--neutral-100);
}
.kohort-sidebar-collapse-btn {
  display: none;
}
@media (min-width: 768px) {
  .kohort-sidebar-collapse-btn {
    display: flex;
  }
}
@media (max-width: 767px) {
  .sidebar-collapsed-content {
    display: none !important;
  }
  .kohort-sidebar-primary--collapsed .sidebar-expanded-content {
    display: block;
  }
}
@media (min-width: 768px) {
  .kohort-grid {
    transition: grid-template-columns 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  }
}
.kohort-sidebar-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 40;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.kohort-sidebar-overlay.active {
  opacity: 1;
  pointer-events: auto;
}
@media (min-width: 768px) {
  .kohort-sidebar-overlay {
    display: none !important;
  }
}
.kohort-sidebar-close {
  display: flex;
}
@media (min-width: 768px) {
  .kohort-sidebar-close {
    display: none;
  }
}
.kohort-sidebar-secondary {
  border-right: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(18rem, 85vw);
  z-index: 50;
  transform: translateX(-100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: none;
}
.kohort-sidebar-secondary--open {
  transform: translateX(0);
  box-shadow: 4px 0 16px rgba(0, 0, 0, 0.15);
}
@media (min-width: 1024px) {
  .kohort-sidebar-secondary {
    position: static;
    transform: none;
    z-index: auto;
    box-shadow: none;
    width: auto;
    transition: none;
  }
  .kohort-sidebar-secondary--open {
    box-shadow: none;
  }
}
.kohort-sidebar-secondary-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 40;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.kohort-sidebar-secondary-overlay.active {
  opacity: 1;
  pointer-events: auto;
}
@media (min-width: 1024px) {
  .kohort-sidebar-secondary-overlay {
    display: none !important;
  }
}
.kohort-channels-toggle {
  display: inline-flex;
}
@media (min-width: 1024px) {
  .kohort-channels-toggle {
    display: none;
  }
}
.kohort-sidebar-tertiary {
  border-left: 1px solid var(--color-border);
  background: var(--color-surface);
  display: none;
  flex-direction: column;
  height: 100%;
  overflow-y: auto;
}
@media (min-width: 1536px) {
  .kohort-sidebar-tertiary {
    display: flex;
  }
}
.kohort-group-item {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  border-radius: var(--radius-2xl);
  padding: 0.75rem;
  text-align: left;
  transition: all 0.15s;
  cursor: pointer;
  border: 1px solid var(--color-border);
  background: var(--color-surface, white);
  color: var(--neutral-700);
}
.kohort-group-item:hover {
  background: var(--color-surface-hover, var(--neutral-100));
}
.kohort-group-item--active {
  background: var(--neutral-900);
  color: white;
  border-color: var(--neutral-900);
  box-shadow: var(--shadow-md);
}
.kohort-group-item--active:hover {
  background: var(--neutral-800);
}
.kohort-group-item--child {
  padding: 0.5rem 0.625rem;
  border-radius: var(--radius-xl);
  border: none;
  background: transparent;
}
.kohort-group-item--child:hover {
  background: var(--color-surface-hover, var(--neutral-100));
}
.kohort-group-item--child.kohort-group-item--active {
  background: var(--neutral-900);
  color: white;
}
.kohort-tree-chevron {
  transition: transform 0.15s ease;
}
.kohort-tree-chevron.rotate-90 {
  transform: rotate(90deg);
}
.kohort-tree-children {
  margin-left: 0.875rem;
  padding-left: 0.75rem;
  border-left: 1.5px solid var(--neutral-200);
}
.kohort-view-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.375rem;
  border-radius: var(--radius-lg);
  color: var(--neutral-400);
  transition: all 0.15s;
  cursor: pointer;
  border: none;
  background: none;
}
.kohort-view-btn:hover {
  color: var(--neutral-700);
  background: var(--neutral-100);
}
.kohort-view-btn--active {
  color: var(--primary-600, var(--neutral-900));
  background: var(--neutral-100);
}
.kohort-channel-item {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  border-radius: var(--radius-2xl);
  padding: 0.75rem;
  text-align: left;
  transition: all 0.15s;
  cursor: pointer;
  border: 1px solid var(--color-border);
  background: var(--color-surface, white);
  color: var(--neutral-700);
}
.kohort-channel-item:hover {
  background: var(--color-surface-hover, var(--neutral-100));
}
.kohort-channel-item--active {
  background: var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 12%, var(--mix-base, white));
  }
  color: var(--color-primary, var(--primary-900));
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--color-primary, var(--primary-900)) 90%, black);
  }
  border-color: var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--color-primary, var(--primary-600)) 25%, var(--mix-base, white));
  }
  box-shadow: 0 0 0 1px var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-primary, var(--primary-600)) 25%, var(--mix-base, white));
  }
}
.kohort-channel-item--sub {
  padding: 0.5rem 0.75rem;
  border: none;
  background: transparent;
  border-radius: var(--radius-lg, 0.5rem);
}
.kohort-channel-item--sub:hover {
  background: var(--neutral-100);
}
.kohort-channel-item--sub.kohort-channel-item--active {
  background: var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 8%, var(--mix-base, white));
  }
  border: none;
  box-shadow: none;
}
.kohort-subchannel-line {
  display: inline-block;
  width: 0.625rem;
  height: 0;
  border-bottom: 1.5px solid var(--neutral-300);
  flex-shrink: 0;
}
.kohort-sidebar-secondary .kohort-channel-item {
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-lg, 0.5rem);
  padding: 0.5rem 0.75rem;
  color: var(--color-text, var(--neutral-800));
}
.kohort-sidebar-secondary .kohort-channel-item:hover {
  background: var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 14%, transparent);
  }
  border-color: transparent;
  color: var(--color-text, var(--neutral-900));
}
.kohort-sidebar-secondary .kohort-channel-item--active {
  background: var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 26%, transparent);
  }
  color: var(--color-text, var(--neutral-900));
  border-color: transparent;
  box-shadow: none;
  font-weight: 600;
}
.kohort-sidebar-secondary .kohort-channel-item--sub {
  padding: 0.4rem 0.75rem;
  background: transparent;
}
.kohort-sidebar-secondary .kohort-channel-item--sub:hover {
  background: var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 10%, transparent);
  }
}
.kohort-sidebar-secondary .kohort-channel-item--sub.kohort-channel-item--active {
  background: var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 18%, transparent);
  }
}
.kohort-topbar {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  min-height: 3.5rem;
  flex-shrink: 0;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-topbar);
  backdrop-filter: blur(8px);
  padding: 0 0.375rem;
  gap: 0.375rem;
}
@media (min-width: 768px) {
  .kohort-topbar {
    flex-wrap: nowrap;
    min-height: 4rem;
    padding: 0 1.25rem;
    gap: 1rem;
  }
}
.kohort-topbar-tabs {
  display: flex;
  justify-content: flex-start;
  gap: 0.25rem;
  order: 10;
  flex-basis: 100%;
  padding: 0.25rem 0.5rem 0.375rem;
  border-top: 1px solid var(--color-border);
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
  min-width: 0;
}
.kohort-topbar-tabs::-webkit-scrollbar {
  height: 3px;
}
.kohort-topbar-tabs::-webkit-scrollbar-thumb {
  background: var(--color-border);
  border-radius: 2px;
}
@media (min-width: 640px) {
  .kohort-topbar-tabs {
    order: 0;
    flex-basis: auto;
    flex: 1 1 0;
    padding: 0 1rem;
    border-top: none;
    justify-content: center;
  }
}
.kohort-topbar-action {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.4375rem 0.5rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  justify-content: center;
  border-radius: var(--radius-lg);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--neutral-600);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .kohort-topbar-action {
    padding: 0.4375rem 0.625rem;
    min-width: auto;
    justify-content: flex-start;
  }
}
.kohort-topbar-action:hover {
  background: var(--neutral-100);
  color: var(--neutral-800);
}
.kohort-topbar-action--active {
  background: var(--color-primary, var(--primary-500));
  color: white;
}
.kohort-topbar-action--active:hover {
  background: var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 85%, black);
  }
  color: white;
}
.kohort-topbar-tab {
  flex-shrink: 0;
}
.kohort-topbar-tab .kohort-tab-label {
  display: inline-block;
  max-width: 0;
  overflow: hidden;
  white-space: nowrap;
  opacity: 0;
  margin-left: 0;
  font-size: 0.8125rem;
  transition: max-width 0.18s ease-out, opacity 0.12s ease-out, margin-left 0.18s ease-out;
}
.kohort-topbar-tab:hover .kohort-tab-label, .kohort-topbar-tab:focus-visible .kohort-tab-label, .kohort-topbar-tab.kohort-topbar-action--active .kohort-tab-label {
  max-width: 9rem;
  opacity: 1;
  margin-left: 0.375rem;
}
@media (max-width: 639px), (hover: none) {
  .kohort-topbar-tab .kohort-tab-label {
    max-width: 9rem;
    opacity: 1;
    margin-left: 0.375rem;
  }
}
.kohort-topbar-badge {
  display: none;
}
@media (min-width: 768px) {
  .kohort-topbar-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
  }
}
.kohort-topbar-badge-count {
  font-size: 0.6875rem;
  font-weight: 700;
  min-width: 1rem;
  text-align: center;
  color: var(--neutral-500);
}
.kohort-view-tabs {
  display: flex;
  gap: 0.5rem;
  border-radius: var(--radius-2xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface, white);
  padding: 0.25rem;
  box-shadow: var(--shadow-sm);
}
.kohort-view-tab {
  border-radius: var(--radius-xl);
  padding: 0.25rem 0.75rem;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.15s;
  border: none;
  background: transparent;
  color: var(--neutral-600);
}
.kohort-view-tab:hover {
  background: var(--color-surface-hover, var(--neutral-100));
}
.kohort-view-tab--active {
  background: var(--color-primary, var(--primary-500));
  color: white;
  box-shadow: var(--shadow-sm);
}
.kohort-view-tab--active:hover {
  background: var(--color-primary, var(--primary-600));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, var(--primary-600)) 85%, black);
  }
}
.kohort-message-card {
  border-radius: var(--radius-2xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface, white);
  padding: 1rem 1.125rem;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.15s, border-color 0.15s;
}
.kohort-message-card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--neutral-300);
}
.kohort-composer-wrap {
  border-top: 1px solid var(--color-border);
  background: var(--color-surface, white);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-surface, white) 95%, transparent);
  }
  backdrop-filter: blur(8px);
  padding: 0.75rem 0.5rem;
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
}
[data-controller~="view-tabs"]:not([data-active-tab="discussion"]) .kohort-composer-wrap, [data-controller~="view-tabs"]:not([data-active-tab="discussion"]) .widget-dock, [data-controller~="view-tabs"]:not([data-active-tab="discussion"]) .widget-dock-backdrop {
  display: none !important;
}
@media (min-width: 768px) {
  .kohort-composer-wrap {
    padding: 1rem 1.25rem;
  }
}
.kohort-composer-card {
  position: relative;
  border-radius: var(--radius-2xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface, white);
  padding: 0.875rem;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.kohort-composer-card:focus-within {
  border-color: var(--color-primary, var(--primary-400));
  box-shadow: 0 0 0 3px var(--color-primary, var(--primary-500));
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, var(--primary-500)) 12%, transparent);
  }
}
.kohort-composer-input {
  min-height: 2.75rem;
  border-radius: var(--radius-xl);
  border: none;
  background: transparent;
  padding: 0.375rem 0;
  font-size: 0.875rem;
  color: var(--neutral-500);
  width: 100%;
  resize: none;
  line-height: 1.6;
}
.kohort-composer-input:focus {
  outline: none;
  color: var(--color-text, var(--neutral-800));
}
.widget-dock {
  flex-shrink: 0;
  border-right: 1px solid var(--color-border);
  background: var(--color-surface, white);
  display: none;
  flex-direction: row;
}
@media (max-width: 1023px) {
  .widget-dock {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    z-index: 50;
    transform: translateX(-100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: none;
    display: flex;
  }
  .widget-dock.widget-dock--open {
    transform: translateX(0);
    box-shadow: 4px 0 16px rgba(0, 0, 0, 0.1);
  }
}
@media (min-width: 1024px) {
  .widget-dock {
    display: flex;
  }
}
.widget-dock-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 40;
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}
.widget-dock-backdrop.active {
  display: block;
  opacity: 1;
  pointer-events: auto;
}
@media (min-width: 1024px) {
  .widget-dock-backdrop {
    display: none !important;
  }
}
.widget-dock-close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 10;
  width: 2.75rem;
  height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  border: none;
  background: var(--neutral-100);
  color: var(--neutral-500);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.widget-dock-close:hover {
  background: var(--neutral-200);
  color: var(--neutral-700);
}
.widget-dock-tabs {
  width: 3.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0.5rem 0;
  border-right: 1px solid var(--neutral-100);
  overflow-y: auto;
}
.widget-dock-tab {
  width: 2.75rem;
  height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  color: var(--neutral-400);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.widget-dock-tab:hover {
  background: var(--neutral-100);
  color: var(--neutral-700);
}
.widget-dock-tab--active {
  background: var(--color-primary, var(--primary-500));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, var(--primary-500)) 12%, var(--mix-base, white));
  }
  color: var(--color-primary, var(--primary-500));
}
.widget-dock-panel {
  width: 13rem;
  overflow-y: auto;
  padding: 0.375rem;
  border-right: 1px solid var(--color-border);
  background: var(--color-surface, white);
}
.kohort-info {
  border-radius: var(--radius-3xl);
  border: 1px solid var(--color-accent, var(--accent-500));
  @supports (color: color-mix(in lab, red, red)) {
    border: 1px solid color-mix(in srgb, var(--color-accent, var(--accent-500)) 30%, var(--mix-base, white));
  }
  background: var(--color-accent, var(--accent-500));
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-accent, var(--accent-500)) 8%, var(--mix-base, white));
  }
  padding: 1rem;
  font-size: 0.875rem;
  color: var(--color-accent, var(--accent-700));
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--color-accent, var(--accent-700)) 80%, black);
  }
}
.kohort-pinned-rail {
  position: sticky;
  top: 1.5rem;
  max-height: calc(100dvh - 7.5rem);
  overflow-y: auto;
  z-index: 10;
  flex-direction: column;
  gap: 0.75rem;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--color-border);
  background: var(--color-surface, white);
  padding: 0.875rem;
  min-width: 200px;
  width: 100%;
}
.kohort-pinned-rail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--neutral-100);
}
.kohort-pin-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  border-radius: 9999px;
  background: var(--color-primary, var(--primary-500));
  color: white;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 0 0.3rem;
  line-height: 1;
}
.kohort-pin-number {
  position: absolute;
  top: -0.35rem;
  left: -0.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 1.1rem;
  height: 1.1rem;
  border-radius: 9999px;
  background: var(--color-primary, var(--primary-500));
  color: white;
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1;
}
.kohort-skeleton {
  background: linear-gradient(90deg, var(--neutral-100) 25%, var(--neutral-50) 50%, var(--neutral-100) 75%);
  background-size: 200% 100%;
  animation: kohort-skeleton-pulse 1.5s ease-in-out infinite;
}
@keyframes kohort-skeleton-pulse {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
.kohort-settings-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: none;
}
.kohort-settings-overlay--open {
  display: flex;
}
.kohort-settings-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.4);
}
.kohort-settings-panel {
  position: relative;
  margin-left: auto;
  height: 100%;
  width: 100%;
  max-width: 36rem;
  background: white;
  box-shadow: var(--shadow-xl);
  display: flex;
  flex-direction: column;
}
.kohort-resource-header {
  background: linear-gradient(180deg, var(--neutral-50, #f9fafb) 0%, transparent 100%);
}
.kohort-stat-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
}
.kohort-stat-value {
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--neutral-900, #111827);
  line-height: 1.1;
}
.kohort-stat-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--neutral-500, #6b7280);
}
.kohort-edit-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  max-width: 72rem;
  margin: 0 auto;
  padding: 1.5rem 1rem;
}
@media (min-width: 1024px) {
  .kohort-edit-layout {
    grid-template-columns: 220px 1fr;
    padding: 2rem 1.5rem;
  }
}
.kohort-edit-nav {
  position: sticky;
  top: 1rem;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.kohort-edit-nav-link {
  display: block;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  color: var(--neutral-600, #4b5563);
  transition: background 0.15s, color 0.15s;
}
.kohort-edit-nav-link:hover {
  background: var(--neutral-100, #f3f4f6);
  color: var(--color-text);
}
.kohort-edit-content {
  min-width: 0;
}
.kohort-edit-section {
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 1rem;
  padding: 1.5rem;
  scroll-margin-top: 5rem;
}
.kohort-edit-section + .kohort-edit-section {
  margin-top: 1rem;
}
.kohort-edit-section-header {
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.kohort-edit-section-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--neutral-900, #111827);
  margin: 0;
}
.kohort-edit-section-desc {
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  color: var(--neutral-500, #6b7280);
}
.session-view {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
@media (min-width: 768px) {
  .session-view {
    padding: 1.5rem;
    gap: 1.5rem;
  }
}
.session-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.65rem 1.25rem;
  border-radius: 9999px;
  border: 1px solid transparent;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  min-height: 2.75rem;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, transform 0.15s, border-color 0.15s;
}
.session-btn:hover {
  transform: translateY(-1px);
}
.session-btn:active {
  transform: translateY(0);
}
.session-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
}
.session-btn--ghost {
  background: rgba(255, 255, 255, 0.95);
  color: #111827;
}
.session-btn--ghost:hover {
  background: #fff;
}
.session-btn--solid {
  background: #1c2233;
  color: #fff;
}
.session-btn--solid:hover {
  background: #2a3145;
}
.session-btn--small {
  padding: 0.5rem 0.95rem;
  font-size: 0.85rem;
  min-height: 2.5rem;
}
.session-hero {
  position: relative;
  overflow: hidden;
  border-radius: 1.25rem;
  padding: 1.5rem;
  color: #fff;
  isolation: isolate;
}
@media (min-width: 768px) {
  .session-hero {
    padding: 2rem 2.25rem;
    border-radius: 1.5rem;
  }
}
.session-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.18);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 1rem;
  backdrop-filter: blur(4px);
}
.session-hero__eyebrow-dot {
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 9999px;
  background: currentColor;
}
.session-hero__title {
  font-size: clamp(2rem, 6vw, 3.5rem);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 0 0 1rem;
  text-wrap: balance;
}
.session-hero__subtitle {
  font-size: 0.95rem;
  font-weight: 500;
  opacity: 0.9;
  margin-bottom: 1rem;
}
.session-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: center;
  font-size: 0.85rem;
  font-weight: 500;
}
.session-hero__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
}
.session-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.25rem;
  padding: 0.65rem 1.25rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.95);
  color: #111827;
  font-size: 0.9rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  min-height: 2.75rem;
  transition: background 0.15s, transform 0.15s;
}
.session-hero__cta:hover {
  background: #fff;
  transform: translateY(-1px);
}
.session-hero__cta:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.session-hero__cta-hint {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.8rem;
  opacity: 0.85;
}
.session-hero__decor {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  display: none;
  gap: 0.5rem;
  pointer-events: none;
  opacity: 0.85;
}
@media (min-width: 768px) {
  .session-hero__decor {
    display: flex;
  }
}
.session-hero__decor svg, .session-hero__decor span {
  width: 3rem;
  height: 3rem;
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}
.session-hero--1 {
  background: linear-gradient(135deg, #5b8def 0%, #4f7be0 100%);
}
.session-hero--2 {
  background: linear-gradient(135deg, #f97f5b 0%, #f25f3a 100%);
}
.session-hero--3 {
  background: linear-gradient(135deg, #2fb392 0%, #1f9376 100%);
}
.session-hero--4 {
  background: linear-gradient(135deg, #8a6df0 0%, #6f4fe0 100%);
}
.session-hero--5 {
  background: linear-gradient(135deg, #e85a8a 0%, #d23a6f 100%);
}
.session-hero--6 {
  background: linear-gradient(135deg, #f0a93b 0%, #e08820 100%);
}
.session-hero--past {
  filter: saturate(0.35) brightness(0.85);
}
.session-section {
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 1rem;
  padding: 1.25rem;
}
@media (min-width: 768px) {
  .session-section {
    padding: 1.5rem;
  }
}
.session-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.session-section__title {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--neutral-900, #111827);
  margin: 0;
}
.session-section__eyebrow {
  display: block;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--neutral-500, #6b7280);
  margin-bottom: 0.25rem;
}
.session-section__cta {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--primary, #4f46e5);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.35rem 0.6rem;
  border-radius: 0.5rem;
  transition: background 0.15s;
}
.session-section__cta:hover {
  background: var(--neutral-100, #f3f4f6);
}
.session-date-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
  gap: 0.75rem;
}
.session-date-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0.5rem;
  border-radius: 0.85rem;
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  text-decoration: none;
  color: inherit;
  min-height: 6.5rem;
  transition: border-color 0.15s, transform 0.15s;
}
.session-date-card:hover {
  border-color: var(--primary, #4f46e5);
  transform: translateY(-2px);
}
.session-date-card--active {
  background: #1c2233;
  color: #fff;
  border-color: #1c2233;
}
.session-date-card__day {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1;
}
.session-date-card__month {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--neutral-500, #6b7280);
  margin-top: 0.2rem;
}
.session-date-card--active .session-date-card__month {
  color: rgba(255, 255, 255, 0.7);
}
.session-date-card__bar {
  width: 100%;
  height: 4px;
  border-radius: 9999px;
  background: var(--neutral-200, #e5e7eb);
  overflow: hidden;
  margin-top: 0.65rem;
}
.session-date-card--active .session-date-card__bar {
  background: rgba(255, 255, 255, 0.2);
}
.session-date-card__bar-fill {
  height: 100%;
  background: var(--primary, #4f46e5);
  border-radius: inherit;
  transition: width 0.3s ease;
}
.session-date-card--active .session-date-card__bar-fill {
  background: #f97f5b;
}
.session-date-card__count {
  font-size: 0.75rem;
  color: var(--neutral-500, #6b7280);
  margin-top: 0.4rem;
  font-variant-numeric: tabular-nums;
}
.session-date-card--active .session-date-card__count {
  color: rgba(255, 255, 255, 0.75);
}
.session-tables {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.session-table-card {
  display: grid;
  grid-template-columns: 2.5rem 1fr auto;
  gap: 0.85rem;
  align-items: center;
  padding: 0.85rem 1rem;
  border-radius: 0.85rem;
  background: var(--neutral-50, #f9fafb);
  border: 1px solid var(--color-border, #e5e7eb);
}
.session-table-card--full {
  background: var(--neutral-100, #f3f4f6);
}
.session-table-card--empty {
  background: transparent;
  border-style: dashed;
}
.session-table-card__num {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.6rem;
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--neutral-700, #374151);
}
.session-table-card__num span:first-child {
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--neutral-500, #6b7280);
}
.session-table-card__body {
  min-width: 0;
}
.session-table-card__game {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--neutral-900, #111827);
  margin-bottom: 0.15rem;
}
.session-table-card__meta {
  font-size: 0.78rem;
  color: var(--neutral-500, #6b7280);
}
.session-table-card__avatars {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  margin-top: 0.5rem;
  flex-wrap: wrap;
}
.session-table-card__avatar {
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 600;
  background: var(--primary, #4f46e5);
  color: #fff;
  border: 2px solid var(--surface, #fff);
}
.session-table-card__avatar-empty {
  background: transparent;
  color: var(--neutral-400, #9ca3af);
  border-style: dashed;
  border-color: var(--neutral-300, #d1d5db);
}
.session-table-card__action {
  padding: 0.5rem 0.9rem;
  border-radius: 9999px;
  background: #2fb392;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  min-height: 2.25rem;
}
.session-table-card__action:hover {
  background: #259b7d;
}
.session-table-card__action:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.session-table-card__badge {
  padding: 0.3rem 0.65rem;
  border-radius: 9999px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  background: #e85a8a;
  color: #fff;
}
.session-rsvp {
  background: #1c2233;
  color: #fff;
  border-radius: 1rem;
  padding: 1.25rem;
}
.session-rsvp__title {
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 0.4rem;
}
.session-rsvp__lead {
  font-size: 0.8rem;
  opacity: 0.75;
  margin-bottom: 1rem;
}
.session-rsvp__buttons {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.session-rsvp__btn {
  flex: 1 1 5rem;
  padding: 0.6rem 0.85rem;
  border-radius: 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  min-height: 2.75rem;
  transition: background 0.15s, border-color 0.15s;
}
.session-rsvp__btn:hover {
  background: rgba(255, 255, 255, 0.1);
}
.session-rsvp__btn--yes {
  background: #2fb392;
  border-color: #2fb392;
}
.session-rsvp__btn--yes:hover {
  background: #259b7d;
}
.session-rsvp__btn[aria-pressed="true"] {
  outline: 2px solid #fff;
  outline-offset: -3px;
}
.session-rsvp__btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.session-rsvp__count {
  margin-top: 0.85rem;
  font-size: 0.75rem;
  opacity: 0.7;
  font-variant-numeric: tabular-nums;
}
.session-programme {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.session-programme__item {
  display: grid;
  grid-template-columns: 2rem 1fr;
  gap: 0.85rem;
  align-items: start;
}
.session-programme__num {
  width: 2rem;
  height: 2rem;
  border-radius: 9999px;
  background: var(--neutral-100, #f3f4f6);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--neutral-700, #374151);
}
.session-programme__time {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--neutral-700, #374151);
}
.session-programme__body {
  min-width: 0;
}
.session-programme__title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--neutral-900, #111827);
  margin-bottom: 0.15rem;
}
.session-programme__desc {
  font-size: 0.85rem;
  color: var(--neutral-600, #4b5563);
}
.session-menu {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.session-menu__row {
  display: grid;
  grid-template-columns: 3rem auto 1fr;
  gap: 0.65rem;
  align-items: center;
  font-size: 0.85rem;
}
.session-menu__time {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  color: var(--neutral-500, #6b7280);
  font-weight: 500;
}
.session-menu__dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 9999px;
  background: currentColor;
}
.session-skeleton {
  background: linear-gradient( 90deg, var(--neutral-100, #f3f4f6) 25%, var(--neutral-200, #e5e7eb) 50%, var(--neutral-100, #f3f4f6) 75% );
  background-size: 200% 100%;
  animation: session-shimmer 1.5s linear infinite;
  border-radius: 0.5rem;
  display: inline-block;
}
@keyframes session-shimmer {
  to {
    background-position: -200% 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .session-skeleton {
    animation: none;
  }
}
.session-skeleton--row {
  display: block;
  width: 100%;
  height: 4.75rem;
  border-radius: 0.85rem;
}
.session-skeleton--day {
  display: block;
  height: 4.5rem;
  border-radius: 0.6rem;
}
.session-skeleton--text {
  height: 0.85rem;
  width: 60%;
  vertical-align: middle;
}
.session-placeholder {
  padding: 1.5rem 1rem;
  border: 1px dashed var(--color-border, #e5e7eb);
  border-radius: 0.85rem;
  text-align: center;
  font-size: 0.85rem;
  color: var(--neutral-500, #6b7280);
}
.session-participants {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.session-participant-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 0.7rem 0.35rem 0.35rem;
  background: var(--neutral-100, #f3f4f6);
  border-radius: 9999px;
  font-size: 0.8rem;
  color: var(--neutral-800, #1f2937);
}
.session-participant-chip__avatar {
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 9999px;
  background: var(--primary, #4f46e5);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.session-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.6rem;
  border-radius: 9999px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.session-badge--confirmed {
  background: #d1fae5;
  color: #047857;
}
.session-badge--cancelled {
  background: #fee2e2;
  color: #b91c1c;
}
.session-badge--past {
  background: var(--neutral-200, #e5e7eb);
  color: var(--neutral-700, #374151);
}
.session-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 1024px) {
  .session-grid--parent {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  }
  .session-grid--instance {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  }
}
.session-grid__col {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
}
.session-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
  gap: 0.65rem;
}
.session-gallery__cell {
  aspect-ratio: 1;
  border-radius: 0.75rem;
  background: var(--neutral-100, #f3f4f6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--neutral-400, #9ca3af);
  font-size: 0.75rem;
  overflow: hidden;
  position: relative;
}
.session-gallery__cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.session-hero__state {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.95rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.95);
  color: #047857;
  font-size: 0.85rem;
  font-weight: 600;
  margin-top: 1rem;
}
.session-hero__state-icon {
  width: 1rem;
  height: 1rem;
  border-radius: 9999px;
  background: #047857;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
}
.session-hero__state-link {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.8rem;
  text-decoration: underline;
  cursor: pointer;
  margin-top: 0.5rem;
  margin-left: 0.6rem;
  padding: 0;
  display: inline-block;
}
.session-hero__state-link:hover {
  color: #fff;
}
.session-hero__progress {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.35rem 0.75rem;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 9999px;
  font-size: 0.85rem;
  color: #fff;
}
.session-hero__progress-bar {
  display: inline-block;
  width: 4rem;
  height: 4px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 9999px;
  overflow: hidden;
}
.session-hero__progress-fill {
  display: block;
  height: 100%;
  background: #fff;
  border-radius: inherit;
  transition: width 0.3s ease;
}
.session-tables-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2rem 1rem;
  border: 1px dashed var(--color-border, #e5e7eb);
  border-radius: 0.85rem;
  gap: 0.75rem;
}
.session-tables-empty__lead {
  font-size: 0.9rem;
  color: var(--neutral-600, #4b5563);
}
.session-tables-empty__action {
  padding: 0.65rem 1.25rem;
  border-radius: 9999px;
  background: #1c2233;
  color: #fff;
  border: none;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  min-height: 2.75rem;
}
.session-tables-empty__action:hover {
  background: #2a3145;
}
.session-tables__add-tile {
  padding: 1rem;
  border: 1px dashed var(--color-border, #e5e7eb);
  border-radius: 0.85rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: transparent;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--neutral-600, #4b5563);
  cursor: pointer;
  min-height: 2.75rem;
  width: 100%;
}
.session-tables__add-tile:hover {
  border-color: var(--primary, #4f46e5);
  color: var(--primary, #4f46e5);
}
.session-accordion {
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 1rem;
  padding: 0;
}
.session-accordion[open] {
  padding-bottom: 1.25rem;
}
.session-accordion summary {
  list-style: none;
  cursor: pointer;
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--neutral-900, #111827);
  user-select: none;
}
.session-accordion summary::-webkit-details-marker {
  display: none;
}
.session-accordion summary::after {
  content: '+';
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--neutral-500, #6b7280);
  transition: transform 0.15s;
}
.session-accordion[open] summary::after {
  content: '−';
}
.session-accordion__body {
  padding: 0 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.session-mobile-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0.75rem 1rem;
  padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
  background: var(--surface, #fff);
  border-top: 1px solid var(--color-border, #e5e7eb);
  z-index: 30;
  display: flex;
  gap: 0.65rem;
  align-items: center;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.06);
}
.session-mobile-cta__btn {
  flex: 1;
  padding: 0.85rem 1rem;
  border-radius: 9999px;
  background: #1c2233;
  color: #fff;
  border: none;
  font-weight: 600;
  font-size: 0.95rem;
  min-height: 2.75rem;
  cursor: pointer;
}
.session-mobile-cta__btn:hover {
  background: #2a3145;
}
.session-mobile-cta__btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.session-mobile-cta__hint {
  font-size: 0.75rem;
  color: var(--neutral-500, #6b7280);
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .session-mobile-cta {
    display: none;
  }
}
.session-view--with-mobile-cta {
  padding-bottom: 5.5rem;
}
@media (min-width: 768px) {
  .session-view--with-mobile-cta {
    padding-bottom: 1.5rem;
  }
}
.session-featured {
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 1rem;
  padding: 1.5rem;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.5rem;
  align-items: stretch;
}
.session-featured__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1rem 1.25rem;
  border-radius: 0.85rem;
  background: var(--neutral-50, #f9fafb);
  min-width: 5rem;
}
.session-featured__day {
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1;
  color: var(--neutral-900, #111827);
}
.session-featured__weekday, .session-featured__month {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  color: var(--neutral-500, #6b7280);
  margin-top: 0.3rem;
}
.session-featured__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.session-featured__eyebrow {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--neutral-500, #6b7280);
}
.session-featured__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--neutral-900, #111827);
  margin: 0;
}
.session-featured__meta {
  font-size: 0.85rem;
  color: var(--neutral-600, #4b5563);
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1rem;
}
.session-featured__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.session-featured__progress {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.8rem;
  color: var(--neutral-700, #374151);
}
.session-featured__progress-bar {
  flex: 1;
  max-width: 14rem;
  height: 6px;
  background: var(--neutral-200, #e5e7eb);
  border-radius: 9999px;
  overflow: hidden;
}
.session-featured__progress-fill {
  height: 100%;
  background: var(--primary, #4f46e5);
  border-radius: inherit;
  transition: width 0.3s ease;
}
.session-featured__actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 0.25rem;
}
.session-featured__rsvp {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.session-featured__btn {
  padding: 0.55rem 0.9rem;
  border-radius: 0.55rem;
  border: 1px solid var(--color-border, #e5e7eb);
  background: var(--surface, #fff);
  color: var(--neutral-800, #1f2937);
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  min-height: 2.5rem;
  transition: background 0.15s, border-color 0.15s;
}
.session-featured__btn:hover {
  background: var(--neutral-50, #f9fafb);
}
.session-featured__btn[aria-pressed="true"] {
  background: #2fb392;
  color: #fff;
  border-color: #2fb392;
}
.session-featured__btn[aria-pressed="true"]:hover {
  background: #259b7d;
  border-color: #259b7d;
}
.session-featured__btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.session-featured__open {
  margin-left: auto;
  font-size: 0.85rem;
  color: var(--primary, #4f46e5);
  text-decoration: none;
  font-weight: 500;
  white-space: nowrap;
}
.session-featured__open:hover {
  text-decoration: underline;
}
@media (max-width: 640px) {
  .session-featured {
    grid-template-columns: 1fr;
    padding: 1rem;
  }
  .session-featured__date {
    flex-direction: row;
    gap: 0.5rem;
    align-items: baseline;
    justify-content: flex-start;
    padding: 0.5rem 0.85rem;
    min-width: 0;
  }
  .session-featured__day {
    font-size: 1.5rem;
  }
  .session-featured__weekday, .session-featured__month {
    margin-top: 0;
  }
  .session-featured__open {
    margin-left: 0;
  }
}
.session-week-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.4rem;
}
.session-week-day {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 0.25rem;
  border-radius: 0.6rem;
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  text-decoration: none;
  color: inherit;
  min-height: 4.5rem;
  font-size: 0.75rem;
  text-align: center;
  transition: border-color 0.15s, transform 0.15s;
}
.session-week-day--today {
  border-color: var(--primary, #4f46e5);
}
.session-week-day--has-session {
  background: #1c2233;
  color: #fff;
  border-color: #1c2233;
}
.session-week-day--has-session:hover {
  transform: translateY(-2px);
}
.session-week-day--empty {
  opacity: 0.55;
  pointer-events: none;
}
.session-week-day__weekday {
  text-transform: uppercase;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  font-weight: 600;
  opacity: 0.75;
}
.session-week-day__num {
  font-size: 1.15rem;
  font-weight: 700;
  margin-top: 0.2rem;
  line-height: 1;
}
.session-week-day__count {
  font-size: 0.6rem;
  margin-top: 0.3rem;
  opacity: 0.75;
  font-variant-numeric: tabular-nums;
}
.session-week-strip__more {
  margin-top: 0.5rem;
  text-align: center;
  font-size: 0.75rem;
  color: var(--neutral-500, #6b7280);
}
@media (max-width: 480px) {
  .session-week-day {
    padding: 0.45rem 0.15rem;
    min-height: 3.5rem;
  }
  .session-week-day__num {
    font-size: 0.95rem;
  }
  .session-week-day__count {
    display: none;
  }
}
.session-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  z-index: 50;
  padding: 1rem;
  overflow-y: auto;
}
@media (min-width: 640px) {
  .session-modal {
    align-items: center;
  }
}
.session-modal[hidden] {
  display: none;
}
.session-modal__panel {
  background: var(--surface, #fff);
  border-radius: 1rem;
  padding: 1.5rem;
  max-width: 34rem;
  width: 100%;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
@media (prefers-reduced-motion: no-preference) {
  .session-modal__panel {
    animation: session-modal-in 0.15s ease-out;
  }
}
@keyframes session-modal-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.session-bring {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.session-bring__item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.9rem;
  color: var(--neutral-700, #374151);
}
.session-bring__icon {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 9999px;
  background: var(--neutral-100, #f3f4f6);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
}
.planning-view {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (min-width: 768px) {
  .planning-view {
    padding: 1.5rem;
    gap: 1.25rem;
  }
}
.planning-calendar-mount {
  min-height: 520px;
  background-color: var(--color-surface, #fff);
  color: var(--neutral-900, #111);
}
.planning-calendar-mount .fc {
  --fc-border-color: var(--color-border, #e5e7eb);
  --fc-page-bg-color: var(--color-surface, #fff);
  --fc-neutral-bg-color: var(--neutral-50, #f9fafb);
  --fc-neutral-text-color: var(--neutral-700, #374151);
  --fc-today-bg-color: var(--brand-600, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    --fc-today-bg-color: color-mix(in srgb, var(--brand-600, #4f46e5) 8%, transparent);
  }
  --fc-now-indicator-color: var(--brand-600, #4f46e5);
  --fc-button-text-color: var(--neutral-900, #111);
  --fc-button-bg-color: var(--color-surface, #fff);
  --fc-button-border-color: var(--color-border, #e5e7eb);
  --fc-button-hover-bg-color: var(--neutral-100, #f3f4f6);
  --fc-button-hover-border-color: var(--neutral-300, #d1d5db);
  --fc-button-active-bg-color: var(--brand-600, #4f46e5);
  --fc-button-active-border-color: var(--brand-700, #4338ca);
  --fc-event-bg-color: var(--brand-600, #4f46e5);
  --fc-event-border-color: var(--brand-700, #4338ca);
  --fc-event-text-color: #fff;
  --fc-list-event-hover-bg-color: var(--neutral-100, #f3f4f6);
  --fc-highlight-color: var(--brand-600, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    --fc-highlight-color: color-mix(in srgb, var(--brand-600, #4f46e5) 14%, transparent);
  }
  font-family: inherit;
}
.planning-calendar-mount .fc-toolbar-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--neutral-900, #111);
}
@media (min-width: 768px) {
  .planning-calendar-mount .fc-toolbar-title {
    font-size: 1.2rem;
  }
}
.planning-calendar-mount .fc-button {
  font-weight: 500;
  text-transform: none;
  box-shadow: none;
  border-radius: 0.5rem;
  padding: 0.4rem 0.75rem;
}
.planning-calendar-mount .fc-button:focus, .planning-calendar-mount .fc-button:focus-visible {
  outline: 2px solid var(--brand-600, #4f46e5);
  outline-offset: 1px;
  box-shadow: none;
}
.planning-calendar-mount .fc-button-primary:not(:disabled).fc-button-active, .planning-calendar-mount .fc-button-primary:not(:disabled):active {
  background-color: var(--brand-600, #4f46e5);
  border-color: var(--brand-700, #4338ca);
  color: #fff;
}
.planning-calendar-mount .fc-col-header-cell {
  background-color: var(--neutral-50, #f9fafb);
}
.planning-calendar-mount .fc-col-header-cell-cushion {
  text-transform: capitalize;
  font-weight: 600;
  font-size: 0.75rem;
  color: var(--neutral-600, #4b5563);
  padding: 0.5rem 0.25rem;
}
.planning-calendar-mount .fc-daygrid-day-number {
  color: var(--neutral-700, #374151);
  padding: 0.35rem 0.5rem;
  font-size: 0.8rem;
}
.planning-calendar-mount .fc-day-today .fc-daygrid-day-number {
  color: var(--brand-700, #4338ca);
  font-weight: 700;
}
.planning-calendar-mount .fc-daygrid-day:hover {
  background-color: var(--neutral-50, #f9fafb);
  cursor: pointer;
}
.planning-calendar-mount .fc-event {
  border-radius: 0.35rem;
  padding: 0.1rem 0.35rem;
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 500;
}
.planning-calendar-empty-hint {
  margin-top: 0.75rem;
  font-size: 0.8rem;
  color: var(--neutral-500, #6b7280);
  text-align: center;
}
.planning-event-modal-backdrop {
  background-color: rgba(0, 0, 0, 0.5);
}
.ludotheque-view {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
@media (min-width: 768px) {
  .ludotheque-view {
    padding: 1.5rem;
    gap: 1.5rem;
  }
}
.ludotheque-hero {
  position: relative;
  overflow: hidden;
  border-radius: 1.25rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, #0d9488, #0891b2);
  color: #fff;
  isolation: isolate;
}
.ludotheque-hero__decor {
  position: absolute;
  top: -0.5rem;
  right: -0.5rem;
  font-size: 4rem;
  line-height: 1;
  opacity: 0.18;
  pointer-events: none;
  display: flex;
  gap: 0.25rem;
  z-index: 0;
}
.ludotheque-hero__title {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0;
  position: relative;
  z-index: 1;
}
.ludotheque-hero__lead {
  margin: 0.5rem 0 1rem;
  font-size: 0.95rem;
  opacity: 0.92;
  max-width: 48ch;
  position: relative;
  z-index: 1;
}
.ludotheque-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.65rem 1.25rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.95);
  color: #0d9488;
  font-weight: 600;
  font-size: 0.9rem;
  min-height: 2.75rem;
  cursor: pointer;
  border: none;
  transition: background 0.15s, transform 0.15s;
  position: relative;
  z-index: 1;
}
.ludotheque-hero__cta:hover {
  background: #fff;
  transform: translateY(-1px);
}
.ludotheque-hero__cta:active {
  transform: translateY(0);
}
.ludotheque-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}
.ludotheque-stat {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.85rem 1rem;
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.75rem;
}
.ludotheque-stat__value {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--neutral-700, #374151);
  line-height: 1;
}
.ludotheque-stat__value--ok {
  color: #059669;
}
.ludotheque-stat__value--warn {
  color: #d97706;
}
.ludotheque-stat__label {
  font-size: 0.78rem;
  color: var(--neutral-500, #6b7280);
}
.ludotheque-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  padding: 0.75rem 1rem;
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.75rem;
  position: sticky;
  top: 0;
  z-index: 20;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.ludotheque-filter {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.85rem;
  color: var(--neutral-600, #4b5563);
}
.ludotheque-filter input[type="search"], .ludotheque-filter input[type="number"], .ludotheque-filter select, .ludotheque-filter input[type="text"] {
  padding: 0.45rem 0.7rem;
  border-radius: 0.5rem;
  border: 1px solid var(--color-border, #e5e7eb);
  background: var(--surface, #fff);
  font-size: 0.85rem;
  min-height: 2rem;
  color: var(--neutral-700, #374151);
}
.ludotheque-filter input:focus, .ludotheque-filter select:focus {
  outline: none;
  border-color: #0d9488;
  box-shadow: 0 0 0 2px rgba(13, 148, 136, 0.18);
}
.ludotheque-filter--search {
  flex: 1 1 14rem;
  min-width: 12rem;
}
.ludotheque-filter--search input {
  flex: 1;
  width: 100%;
}
.ludotheque-filter--checkbox input {
  width: 1rem;
  height: 1rem;
  accent-color: #0d9488;
  cursor: pointer;
}
.ludotheque-filter__reset {
  margin-left: auto;
  padding: 0.4rem 0.85rem;
  font-size: 0.8rem;
  color: var(--neutral-500, #6b7280);
  background: transparent;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.5rem;
  cursor: pointer;
}
.ludotheque-filter__reset:hover {
  color: var(--neutral-700, #374151);
  background: var(--neutral-50, #f9fafb);
}
.ludotheque-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
  gap: 1rem;
}
.ludotheque-card {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 1rem;
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.85rem;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.ludotheque-card:hover {
  border-color: #0d9488;
  box-shadow: 0 2px 8px rgba(13, 148, 136, 0.1);
}
.ludotheque-card__cover {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: -1rem -1rem 0;
  border-radius: 0.85rem 0.85rem 0 0;
  overflow: hidden;
  background: var(--neutral-50, #f9fafb);
  border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.ludotheque-card__cover-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.ludotheque-card__cover-empty {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  color: var(--neutral-400, #9ca3af);
  font-size: 0.78rem;
  text-align: center;
  padding: 0.5rem;
}
.ludotheque-card__cover--editable {
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.ludotheque-card__cover--editable:hover {
  background: var(--neutral-100, #f3f4f6);
}
.ludotheque-card__cover--dragover {
  background: #ecfeff;
  outline: 2px dashed #0d9488;
  outline-offset: -4px;
}
.ludotheque-card__cover-remove {
  position: absolute;
  top: 0.4rem;
  right: 0.4rem;
  width: 1.6rem;
  height: 1.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(17, 24, 39, 0.65);
  color: #fff;
  border: 0;
  border-radius: 9999px;
  cursor: pointer;
  font-size: 0.85rem;
  line-height: 1;
  padding: 0;
}
.ludotheque-card__cover-remove:hover {
  background: rgba(17, 24, 39, 0.85);
}
.ludotheque-card__cover-input {
  display: none;
}
.ludotheque-card__cover-busy::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.6) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%230d9488' stroke-width='2.5' stroke-linecap='round'><path d='M21 12a9 9 0 1 1-6.2-8.55'><animateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='0.8s' repeatCount='indefinite'/></path></svg>") center / 32px 32px no-repeat;
}
.ludotheque-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.ludotheque-card__tag {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.15rem 0.5rem;
  background: #ecfeff;
  color: #0e7490;
  border: 1px solid #a5f3fc;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.ludotheque-card__tag:hover {
  background: #cffafe;
  border-color: #67e8f9;
}
.ludotheque-card__tag--active {
  background: #0e7490;
  color: #ecfeff;
  border-color: #0e7490;
}
.ludotheque-card__tag--active:hover {
  background: #155e75;
  border-color: #155e75;
  color: #ecfeff;
}
.ludotheque-tag-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  flex-basis: 100%;
}
.ludotheque-tag-filter {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.6rem;
  background: #0e7490;
  color: #ecfeff;
  border: 1px solid #0e7490;
  border-radius: 9999px;
  font-size: 0.74rem;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s, border-color 0.15s;
}
.ludotheque-tag-filter:hover {
  background: #155e75;
  border-color: #155e75;
}
.ludotheque-tag-filter > span {
  font-size: 1rem;
  line-height: 1;
  opacity: 0.8;
}
.ludotheque-card__tag--editable {
  padding-right: 0.25rem;
  cursor: default;
}
.ludotheque-card__tag-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  padding: 0;
  border: 0;
  border-radius: 9999px;
  background: rgba(14, 116, 144, 0.18);
  color: #0e7490;
  cursor: pointer;
  font-size: 0.85rem;
  line-height: 1;
}
.ludotheque-card__tag-remove:hover {
  background: rgba(14, 116, 144, 0.35);
}
.ludotheque-card__summary {
  font-size: 0.85rem;
  color: var(--neutral-700, #374151);
  line-height: 1.45;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ludotheque-card__videos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.ludotheque-card__videos a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  color: #0d9488;
  text-decoration: none;
  word-break: break-all;
}
.ludotheque-card__videos a:hover {
  text-decoration: underline;
}
.ludotheque-tags-editor {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  min-height: 1.5rem;
  margin-bottom: 0.4rem;
}
.ludotheque-tags-input {
  width: 100%;
}
.ludotheque-videos-editor {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 0.5rem;
}
.ludotheque-video-row {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) auto;
  gap: 0.4rem;
  align-items: center;
}
.ludotheque-video-row__url, .ludotheque-video-row__title {
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.4rem;
  font-size: 0.85rem;
}
.ludotheque-video-row__remove {
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.4rem;
  color: var(--neutral-500, #6b7280);
  cursor: pointer;
  font-size: 1rem;
}
.ludotheque-video-row__remove:hover {
  background: #fee2e2;
  color: #b91c1c;
  border-color: #fca5a5;
}
.ludotheque-videos-add {
  align-self: flex-start;
}
@media (max-width: 480px) {
  .ludotheque-video-row {
    grid-template-columns: 1fr auto;
  }
  .ludotheque-video-row__title {
    grid-column: 1 / 2;
  }
}
.ludotheque-card__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
}
.ludotheque-card__title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--neutral-800, #1f2937);
  margin: 0;
  flex: 1;
}
.ludotheque-card__status {
  display: inline-block;
  padding: 0.15rem 0.55rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
}
.ludotheque-card__status--ok {
  background: #d1fae5;
  color: #065f46;
}
.ludotheque-card__status--warn {
  background: #fef3c7;
  color: #92400e;
}
.ludotheque-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.ludotheque-card__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.55rem;
  background: var(--neutral-50, #f9fafb);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.5rem;
  font-size: 0.78rem;
  color: var(--neutral-600, #4b5563);
}
.ludotheque-card__chip--bgg {
  background: #fef3c7;
  border-color: #fde68a;
  color: #92400e;
}
.ludotheque-card__desc {
  font-size: 0.85rem;
  color: var(--neutral-600, #4b5563);
  line-height: 1.4;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ludotheque-card__actions {
  display: flex;
  gap: 0.5rem;
  margin-top: auto;
  padding-top: 0.5rem;
}
.ludotheque-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.ludotheque-pagination--top {
  margin: 0 0 1rem;
}
.ludotheque-pagination--bottom {
  margin: 1.25rem 0 0;
}
.ludotheque-pagination__pages {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
}
.ludotheque-pagination__page {
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--surface, #fff);
  border: 1px solid var(--color-border, #e5e7eb);
  color: var(--neutral-700, #374151);
  border-radius: 0.5rem;
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.ludotheque-pagination__page:hover {
  background: var(--neutral-50, #f9fafb);
  border-color: #0d9488;
}
.ludotheque-pagination__page--active {
  background: #0d9488;
  border-color: #0d9488;
  color: #fff;
  cursor: default;
}
.ludotheque-pagination__page--active:hover {
  background: #0d9488;
  border-color: #0d9488;
}
.ludotheque-pagination__ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 2.25rem;
  color: var(--neutral-400, #9ca3af);
  font-size: 0.95rem;
}
.ludotheque-pagination__nav[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
}
.ludotheque-filter--page-size select {
  min-width: 4.5rem;
}
.ludotheque-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.5rem 0.95rem;
  border-radius: 0.5rem;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  min-height: 2.5rem;
  border: 1px solid transparent;
  transition: background 0.15s, transform 0.15s, border-color 0.15s;
}
.ludotheque-btn:hover {
  transform: translateY(-1px);
}
.ludotheque-btn:active {
  transform: translateY(0);
}
.ludotheque-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
}
.ludotheque-btn--primary {
  background: #0d9488;
  color: #fff;
}
.ludotheque-btn--primary:hover {
  background: #0f766e;
}
.ludotheque-btn--ghost {
  background: var(--neutral-50, #f9fafb);
  color: var(--neutral-700, #374151);
  border-color: var(--color-border, #e5e7eb);
}
.ludotheque-btn--ghost:hover {
  background: #fff;
  border-color: #0d9488;
  color: #0d9488;
}
.ludotheque-empty {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--neutral-500, #6b7280);
}
.ludotheque-empty span {
  font-size: 3rem;
  display: block;
  margin-bottom: 0.5rem;
}
.ludotheque-empty p {
  margin: 0;
  font-size: 0.95rem;
}
.ludotheque-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.ludotheque-modal[hidden] {
  display: none;
}
.ludotheque-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(2px);
}
.ludotheque-modal__panel {
  position: relative;
  background: var(--surface, #fff);
  border-radius: 1rem;
  width: 100%;
  max-width: 32rem;
  max-height: 90vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 1.25rem;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.25);
}
.ludotheque-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ludotheque-modal__header h2 {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0;
  color: var(--neutral-800, #1f2937);
}
.ludotheque-modal__close {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0.4rem;
  color: var(--neutral-500, #6b7280);
}
.ludotheque-modal__close:hover {
  color: var(--neutral-700, #374151);
}
.ludotheque-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.ludotheque-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.ludotheque-field span {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--neutral-600, #4b5563);
}
.ludotheque-field input, .ludotheque-field textarea {
  padding: 0.55rem 0.7rem;
  border-radius: 0.5rem;
  border: 1px solid var(--color-border, #e5e7eb);
  background: var(--surface, #fff);
  font-size: 0.9rem;
  color: var(--neutral-800, #1f2937);
  font-family: inherit;
}
.ludotheque-field input:focus, .ludotheque-field textarea:focus {
  outline: none;
  border-color: #0d9488;
  box-shadow: 0 0 0 2px rgba(13, 148, 136, 0.18);
}
.ludotheque-field-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.6rem;
}
@media (max-width: 640px) {
  .ludotheque-stats {
    grid-template-columns: 1fr;
  }
  .ludotheque-field-row {
    grid-template-columns: 1fr;
  }
  .ludotheque-filters {
    padding: 0.5rem 0.625rem;
    gap: 0.4rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
  .ludotheque-filter {
    font-size: 0.78rem;
    gap: 0.3rem;
  }
  .ludotheque-filter > span {
    display: none;
  }
  .ludotheque-filter--checkbox > span {
    display: inline;
  }
  .ludotheque-filter--search {
    grid-column: 1 / -1;
    min-width: 0;
  }
  .ludotheque-filter--page-size {
    display: none;
  }
  .ludotheque-filter input[type="search"], .ludotheque-filter input[type="number"], .ludotheque-filter select, .ludotheque-filter input[type="text"] {
    padding: 0.35rem 0.5rem;
    font-size: 0.78rem;
    min-height: 1.85rem;
    width: 100%;
  }
  .ludotheque-filter--search input {
    font-size: 0.85rem;
  }
  .ludotheque-filter__reset {
    margin-left: 0;
    padding: 0.35rem 0.5rem;
    font-size: 0.75rem;
    grid-column: 2 / 3;
  }
  .ludotheque-filter--checkbox {
    grid-column: 1 / 2;
    font-size: 0.75rem;
  }
  .ludotheque-tag-filters {
    grid-column: 1 / -1;
  }
}
.marketplace-view {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
@media (min-width: 768px) {
  .marketplace-view {
    padding: 1.5rem;
    gap: 1.5rem;
  }
}
.marketplace-hero {
  position: relative;
  overflow: hidden;
  border-radius: 1.25rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, #059669, #0d9488);
  color: #fff;
  isolation: isolate;
}
.marketplace-hero__decor {
  position: absolute;
  top: -0.5rem;
  right: -0.5rem;
  font-size: 4rem;
  line-height: 1;
  opacity: 0.18;
  pointer-events: none;
  display: flex;
  gap: 0.25rem;
  z-index: 0;
}
.marketplace-hero__title {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0;
  position: relative;
  z-index: 1;
}
.marketplace-hero__lead {
  margin: 0.5rem 0 1rem;
  font-size: 0.95rem;
  opacity: 0.92;
  max-width: 48ch;
  position: relative;
  z-index: 1;
}
.marketplace-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.65rem 1.25rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.95);
  color: #059669;
  font-weight: 600;
  font-size: 0.9rem;
  min-height: 2.75rem;
  cursor: pointer;
  border: none;
  transition: background 0.15s, transform 0.15s;
  position: relative;
  z-index: 1;
}
.marketplace-hero__cta:hover {
  background: #fff;
  transform: translateY(-1px);
}
.marketplace-hero__cta:active {
  transform: translateY(0);
}
.marketplace-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
}
.marketplace-stat {
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: 0.75rem;
  padding: 0.75rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.marketplace-stat__value {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
  font-variant-numeric: tabular-nums;
}
.marketplace-stat__value--ok {
  color: #059669;
}
.marketplace-stat__value--warn {
  color: #94a3b8;
}
.marketplace-stat__label {
  font-size: 0.75rem;
  color: var(--neutral-500, #64748b);
}
.marketplace-filters {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}
.marketplace-filter {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  color: var(--neutral-600, #475569);
}
.marketplace-filter--search {
  flex: 1 1 14rem;
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: 0.5rem;
  padding: 0.4rem 0.6rem;
}
.marketplace-filter--search input {
  border: none;
  background: transparent;
  outline: none;
  flex: 1;
  font-size: 0.85rem;
}
.marketplace-filter select {
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: 0.5rem;
  padding: 0.35rem 0.6rem;
  background: var(--color-surface, #fff);
  font-size: 0.8rem;
  min-height: 2.25rem;
}
.marketplace-filter__reset {
  font-size: 0.75rem;
  background: transparent;
  border: none;
  color: var(--neutral-500, #64748b);
  cursor: pointer;
  text-decoration: underline;
}
.marketplace-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: 1rem;
}
.marketplace-card {
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, #e2e8f0);
  border-radius: 0.75rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.15s, transform 0.15s;
}
.marketplace-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}
.marketplace-card--status-sold {
  opacity: 0.65;
}
.marketplace-card--status-sold .marketplace-card__price::after {
  content: '';
}
.marketplace-card__photo {
  aspect-ratio: 4 / 3;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.marketplace-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.marketplace-card__placeholder {
  font-size: 2.5rem;
  opacity: 0.5;
}
.marketplace-card__body {
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
}
.marketplace-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
}
.marketplace-card__title {
  font-size: 0.95rem;
  font-weight: 600;
  color: #0f172a;
  margin: 0;
  flex: 1;
  line-height: 1.25;
}
.marketplace-card__price {
  font-size: 1rem;
  font-weight: 800;
  color: #059669;
  white-space: nowrap;
}
.marketplace-card__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.marketplace-card__pill {
  font-size: 0.6875rem;
  background: #f1f5f9;
  color: #475569;
  padding: 0.125rem 0.5rem;
  border-radius: 9999px;
}
.marketplace-card__pill--status {
  font-weight: 600;
}
.marketplace-card__pill--type {
  font-weight: 600;
}
.marketplace-card__pill--type-sale {
  background: #dbeafe;
  color: #1e3a8a;
}
.marketplace-card__pill--type-gift {
  background: #fae8ff;
  color: #7e22ce;
}
.marketplace-card__pill--type-trade {
  background: #fef9c3;
  color: #854d0e;
}
.marketplace-card__location {
  font-size: 0.75rem;
  color: var(--neutral-600, #475569);
  margin-top: 0.25rem;
}
.marketplace-card--status-available .marketplace-card__pill--status {
  background: #ecfdf5;
  color: #065f46;
}
.marketplace-card--status-reserved .marketplace-card__pill--status {
  background: #fef3c7;
  color: #92400e;
}
.marketplace-card--status-sold .marketplace-card__pill--status {
  background: #f1f5f9;
  color: #475569;
}
.marketplace-card__desc {
  font-size: 0.8125rem;
  color: var(--neutral-600, #475569);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.marketplace-card__footer {
  font-size: 0.6875rem;
  color: var(--neutral-400, #94a3b8);
  display: flex;
  justify-content: space-between;
  margin-top: auto;
  gap: 0.5rem;
}
.marketplace-card__actions {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
  border-top: 1px solid var(--color-border, #e2e8f0);
  padding-top: 0.5rem;
}
.marketplace-status-btn {
  font-size: 0.7rem;
  padding: 0.3rem 0.6rem;
  border-radius: 0.375rem;
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, #e2e8f0);
  color: var(--neutral-600, #475569);
  cursor: pointer;
  font-weight: 500;
  min-height: 1.85rem;
  transition: background 0.15s, color 0.15s;
}
.marketplace-status-btn:hover {
  background: #f8fafc;
}
.marketplace-status-btn--available.marketplace-status-btn--active {
  background: #10b981;
  border-color: #10b981;
  color: #fff;
}
.marketplace-status-btn--reserved.marketplace-status-btn--active {
  background: #f59e0b;
  border-color: #f59e0b;
  color: #fff;
}
.marketplace-status-btn--sold.marketplace-status-btn--active {
  background: #94a3b8;
  border-color: #94a3b8;
  color: #fff;
}
.marketplace-empty {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--neutral-500, #64748b);
}
.marketplace-empty span {
  font-size: 3rem;
  display: block;
  margin-bottom: 0.5rem;
  opacity: 0.5;
}
.course-view, .course-sessions, .course-roster {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
@media (min-width: 768px) {
  .course-view, .course-sessions, .course-roster {
    padding: 1.5rem;
    gap: 1.5rem;
  }
}
.course-placeholder {
  padding: 2rem 1rem;
  text-align: center;
  color: var(--neutral-500);
  background: var(--color-surface);
  border-radius: 0.75rem;
  border: 1px dashed var(--color-border);
}
.course-hero {
  position: relative;
  overflow: hidden;
  border-radius: 1.25rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: #fff;
  isolation: isolate;
}
.course-hero__decor {
  position: absolute;
  top: -0.75rem;
  right: -0.5rem;
  font-size: 5rem;
  line-height: 1;
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}
.course-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.6rem;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  position: relative;
  z-index: 1;
}
.course-hero__title {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0.5rem 0 0.25rem;
  position: relative;
  z-index: 1;
}
.course-hero__lead {
  margin: 0.5rem 0 1rem;
  font-size: 0.95rem;
  opacity: 0.92;
  max-width: 56ch;
  position: relative;
  z-index: 1;
}
.course-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
  position: relative;
  z-index: 1;
}
.course-hero__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.7rem;
  background: rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  font-size: 0.85rem;
}
.course-hero__cta-row {
  margin-top: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  position: relative;
  z-index: 1;
}
.course-hero__cta {
  padding: 0.65rem 1.25rem;
  min-height: 2.75rem;
  background: #fff;
  color: #4f46e5;
  border: none;
  border-radius: 0.6rem;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
}
.course-hero__cta:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}
.course-hero__cta:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.course-hero__cta--waitlist {
  background: #fcd34d;
  color: #78350f;
}
.course-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 0.85rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.9rem;
  background: rgba(255, 255, 255, 0.2);
}
.course-hero__badge--confirmed {
  background: rgba(34, 197, 94, 0.95);
  color: #052e16;
}
.course-hero__badge--pending {
  background: rgba(250, 204, 21, 0.95);
  color: #422006;
}
.course-hero__badge--waitlisted {
  background: rgba(148, 163, 184, 0.95);
  color: #1e293b;
}
.course-hero__badge--instructor {
  background: rgba(255, 255, 255, 0.25);
}
.course-hero__state-link {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.45);
  color: #fff;
  padding: 0.45rem 0.85rem;
  border-radius: 0.5rem;
  font-size: 0.85rem;
  cursor: pointer;
}
.course-hero__state-link:hover {
  background: rgba(255, 255, 255, 0.12);
}
.course-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
@media (min-width: 768px) {
  .course-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.course-stat {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 0.75rem;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}
.course-stat__value {
  font-size: 1.5rem;
  font-weight: 700;
}
.course-stat__label {
  font-size: 0.8rem;
  color: var(--neutral-500);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.course-section__title {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
}
.course-period {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 0.75rem;
  padding: 1rem;
}
.course-period p {
  margin: 0;
  color: var(--neutral-600);
}
.course-sessions__header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.course-sessions__hint {
  color: var(--neutral-500);
  font-size: 0.85rem;
  margin: 0;
}
.course-sessions__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.course-session {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 0.75rem;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.course-session__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.course-session__date {
  font-weight: 600;
  text-transform: capitalize;
}
.course-session__time {
  font-variant-numeric: tabular-nums;
  color: var(--neutral-500);
}
.course-session__counts {
  display: flex;
  gap: 0.75rem;
  font-size: 0.85rem;
}
.course-session__count--ok {
  color: #16a34a;
}
.course-session__count--no {
  color: #dc2626;
}
.course-session__count--maybe {
  color: #ca8a04;
}
.course-session__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.course-session__btn {
  flex: 1 1 auto;
  min-height: 2.75rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: 0.5rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.course-session__btn:hover:not(:disabled) {
  border-color: var(--neutral-400);
}
.course-session__btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.course-session__btn--ok.is-active {
  background: #dcfce7;
  border-color: #16a34a;
  color: #14532d;
}
.course-session__btn--no.is-active {
  background: #fee2e2;
  border-color: #dc2626;
  color: #7f1d1d;
}
.course-session__btn--maybe.is-active {
  background: #fef9c3;
  border-color: #ca8a04;
  color: #713f12;
}
.course-roster {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.course-roster__group {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 0.75rem;
  padding: 1rem;
}
.course-roster__title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 0.75rem;
}
.course-roster__count {
  background: var(--color-border);
  border-radius: 999px;
  padding: 0.1rem 0.55rem;
  font-size: 0.8rem;
  font-weight: 600;
}
.course-roster__empty {
  color: var(--neutral-500);
  font-size: 0.85rem;
  margin: 0;
}
.course-roster__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.course-roster__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.6rem 0.75rem;
  background: var(--color-bg);
  border-radius: 0.5rem;
  border: 1px solid var(--color-border);
}
.course-roster__identity {
  display: flex;
  flex-direction: column;
}
.course-roster__name {
  font-weight: 600;
}
.course-roster__since {
  font-size: 0.75rem;
  color: var(--neutral-500);
}
.course-roster__actions {
  display: flex;
  gap: 0.5rem;
}
.course-roster__btn {
  min-height: 2.5rem;
  padding: 0.4rem 0.85rem;
  border-radius: 0.4rem;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 600;
}
.course-roster__btn--confirm {
  color: #14532d;
  border-color: #16a34a;
}
.course-roster__btn--confirm:hover:not(:disabled) {
  background: #dcfce7;
}
.course-roster__btn--cancel {
  color: #7f1d1d;
  border-color: #dc2626;
}
.course-roster__btn--cancel:hover:not(:disabled) {
  background: #fee2e2;
}
.kb-mount {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.kb-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.kb-error {
  padding: 2rem;
  text-align: center;
  color: var(--color-error);
  font-size: 0.875rem;
}
.kb-wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.kb-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 1.5rem;
  height: 3.25rem;
  background: rgba(0,0,0,0.18);
  backdrop-filter: blur(8px);
  flex-shrink: 0;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.kb-header-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}
.kb-header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.kb-back-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  flex-shrink: 0;
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 8px;
  background: rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.9);
  cursor: pointer;
  transition: background 0.15s;
}
.kb-back-btn:hover {
  background: rgba(255,255,255,0.25);
}
.kb-back-btn svg {
  width: 1rem;
  height: 1rem;
}
.kb-header-info {
  min-width: 0;
}
.kb-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: white;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.kb-subtitle {
  font-size: 0.6875rem;
  color: rgba(255,255,255,0.65);
  line-height: 1;
}
.kb-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 8px;
  background: rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.9);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}
.kb-btn-secondary:hover {
  background: rgba(255,255,255,0.25);
}
.kb-btn-secondary svg {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}
.kb-board {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  padding: 1.25rem 1.5rem 2rem;
  overflow-x: auto;
  overflow-y: hidden;
  flex: 1;
  min-height: 0;
  background: rgba(0,0,0,0.08);
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.2) transparent;
}
.kb-column {
  flex: 0 0 min(17rem, 80vw);
  width: min(17rem, 80vw);
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 11rem);
  background: var(--neutral-200);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 0 0 1px rgba(0,0,0,0.04);
  transition: box-shadow 0.15s, background 0.15s;
  overflow: hidden;
}
.kb-column--over {
  box-shadow: 0 0 0 2px var(--color-primary), 0 4px 12px rgba(124,58,237,0.2);
  background: var(--color-primary-light);
}
.kb-column-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0.75rem 0.5rem;
  flex-shrink: 0;
}
.kb-column-title-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  flex: 1;
}
.kb-column-title {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--color-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.kb-column-count {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--color-text-secondary);
  background: var(--color-hover);
  border-radius: 99px;
  padding: 0.0625rem 0.45rem;
  flex-shrink: 0;
  line-height: 1.5;
}
.kb-column-actions {
  display: flex;
  align-items: center;
  gap: 0.125rem;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.15s;
}
.kb-column:hover .kb-column-actions {
  opacity: 1;
}
.kb-icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}
.kb-icon-btn:hover {
  background: var(--color-hover);
  color: var(--color-text);
}
.kb-icon-btn--danger:hover {
  background: var(--color-error-light);
  color: var(--color-error);
}
.kb-icon-btn svg {
  width: 0.875rem;
  height: 0.875rem;
}
.kb-cards-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  overflow-y: auto;
  flex: 1;
  padding: 0 0.5rem;
  min-height: 1rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.12) transparent;
}
.kb-card {
  background: var(--color-surface);
  border-radius: 8px;
  padding: 0.625rem 0.75rem;
  box-shadow: 0 1px 2px rgba(9,30,66,0.1), 0 0 0 1px rgba(9,30,66,0.06);
  cursor: pointer;
  user-select: none;
  transition: box-shadow 0.15s, transform 0.1s;
}
.kb-card:hover {
  box-shadow: 0 4px 12px rgba(9,30,66,0.15), 0 0 0 1px var(--color-hover);
  transform: translateY(-1px);
}
.kb-card--dragging {
  opacity: 0.35;
  transform: rotate(1.5deg) scale(1.02);
  box-shadow: 0 8px 24px rgba(9,30,66,0.2);
}
.kb-card-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 0.5rem;
}
.kb-label {
  height: 0.375rem;
  min-width: 2.5rem;
  border-radius: 99px;
  display: inline-block;
  opacity: 0.85;
}
.kb-card:hover .kb-label {
  opacity: 1;
}
.kb-card-title {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.45;
  margin: 0;
  word-break: break-word;
}
.kb-card-footer {
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.kb-card-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
}
.kb-card-assignee {
  flex-shrink: 0;
}
.kb-due-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.6875rem;
  font-weight: 500;
  padding: 0.15rem 0.45rem;
  border-radius: 99px;
  background: var(--neutral-100);
  color: var(--color-text-secondary);
}
.kb-due-badge--overdue {
  background: var(--color-error-light);
  color: var(--color-error);
}
.kb-due-badge--soon {
  background: var(--color-warning-light);
  color: var(--color-warning);
}
.kb-checklist-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 0.6875rem;
  font-weight: 500;
  padding: 0.15rem 0.45rem;
  border-radius: 99px;
  background: var(--neutral-100);
  color: var(--color-text-secondary);
}
.kb-checklist-badge--done {
  background: var(--color-success-light);
  color: var(--color-success);
}
.kb-card-meta-icon {
  color: var(--neutral-400);
}
.kb-add-card-btn {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  width: 100%;
  padding: 0.5rem 0.75rem;
  margin: 0.375rem 0 0;
  border: none;
  border-radius: 0 0 12px 12px;
  background: transparent;
  color: var(--color-text-secondary);
  font-size: 0.8125rem;
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
  flex-shrink: 0;
}
.kb-add-card-btn:hover {
  background: rgba(9,30,66,0.06);
  color: var(--color-text);
}
.kb-add-card-btn svg {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}
.kb-add-column-hint {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 1rem;
  border-radius: 12px;
  background: rgba(255,255,255,0.35);
  border: 1.5px dashed rgba(0,0,0,0.18);
  color: rgba(0,0,0,0.45);
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  align-self: flex-start;
  white-space: nowrap;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.kb-add-column-hint:hover {
  background: rgba(255,255,255,0.6);
  color: rgba(0,0,0,0.7);
  border-color: rgba(0,0,0,0.3);
}
.kb-add-column-hint svg {
  width: 0.875rem;
  height: 0.875rem;
}
.kb-board-list-header {
  padding: 1.25rem 1.25rem 0.625rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.kb-board-list-title {
  font-size: 0.6875rem;
  font-weight: 800;
  color: var(--neutral-400);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.kb-board-list {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 0 0.875rem 1.25rem;
}
.kb-board-card {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.875rem 1rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  cursor: pointer;
  text-align: left;
  width: 100%;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
  transition: box-shadow 0.15s, transform 0.15s, border-color 0.15s;
}
.kb-board-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  transform: translateY(-1px);
  border-color: var(--neutral-300);
}
.kb-board-card-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 10px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.kb-board-card-icon svg {
  width: 1.25rem;
  height: 1.25rem;
}
.kb-board-card-body {
  flex: 1;
  min-width: 0;
}
.kb-board-card-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--neutral-800);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0;
}
.kb-board-card-date {
  font-size: 0.75rem;
  color: var(--neutral-400);
  margin: 0.1rem 0 0;
}
.kb-board-card-arrow {
  width: 1rem;
  height: 1rem;
  color: var(--neutral-300);
  flex-shrink: 0;
}
.kb-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 3.5rem 2rem;
  text-align: center;
}
.kb-empty-state svg {
  width: 3.5rem;
  height: 3.5rem;
  color: var(--neutral-300);
}
.kb-empty-state p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--neutral-500);
}
.kb-empty-hint {
  font-size: 0.75rem !important;
  color: var(--neutral-300) !important;
}
.kb-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 3rem 1rem 2rem;
  overflow-y: auto;
  animation: kb-fade-in 0.15s ease;
}
.kb-modal {
  background: var(--color-surface);
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.25), 0 0 0 1px rgba(0,0,0,0.06);
  width: 100%;
  max-width: 46rem;
  display: flex;
  flex-direction: column;
  animation: kb-slide-up 0.22s cubic-bezier(0.22,1,0.36,1);
  flex-shrink: 0;
}
.kb-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem 0.875rem;
  border-bottom: 1px solid var(--neutral-100);
}
.kb-modal-col-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-text-secondary);
  background: var(--neutral-100);
  padding: 0.3rem 0.75rem;
  border-radius: 99px;
}
.kb-modal-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--neutral-500);
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}
.kb-modal-close:hover {
  background: var(--neutral-100);
  color: var(--color-text);
}
.kb-modal-close svg {
  width: 1rem;
  height: 1rem;
}
.kb-modal-body {
  padding: 1rem 1.5rem 1.25rem;
}
.kb-modal-title-input {
  width: 100%;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-text);
  border: none;
  outline: none;
  resize: none;
  padding: 0.25rem 0.5rem 0.25rem 0;
  line-height: 1.35;
  background: transparent;
  border-radius: 6px;
  font-family: inherit;
  box-sizing: border-box;
  transition: background 0.12s;
}
.kb-modal-title-input:hover {
  background: var(--neutral-100);
}
.kb-modal-title-input:focus {
  background: var(--neutral-100);
  outline: 2px solid var(--color-primary);
  outline-offset: 0;
}
.kb-modal-layout {
  display: flex;
  gap: 1.5rem;
  margin-top: 1rem;
}
.kb-modal-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.kb-modal-sidebar {
  width: 12rem;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.kb-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--color-primary);
  color: white;
  font-weight: 700;
  flex-shrink: 0;
  overflow: hidden;
  border: 2px solid var(--color-surface);
}
.kb-avatar--none {
  background: var(--neutral-200);
  color: var(--neutral-400);
  font-weight: 400;
}
.kb-member-list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.kb-member-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.35rem 0.5rem;
  border-radius: 0.5rem;
  cursor: pointer;
  text-align: left;
  border: none;
  background: transparent;
  transition: background 0.12s;
}
.kb-member-row:hover {
  background: var(--neutral-100);
}
.kb-member-row--selected {
  background: var(--color-primary-light) !important;
}
.kb-member-row--selected .kb-member-name {
  color: var(--color-primary);
  font-weight: 600;
}
.kb-member-name {
  font-size: 0.8125rem;
  color: var(--neutral-700);
}
.kb-modal-section {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.kb-modal-section-header {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.6875rem;
  font-weight: 800;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.kb-modal-section-header svg {
  width: 0.875rem;
  height: 0.875rem;
}
.kb-modal-desc {
  width: 100%;
  padding: 0.625rem 0.75rem;
  border: 1.5px solid var(--neutral-300);
  border-radius: 8px;
  font-size: 0.875rem;
  color: var(--color-text);
  resize: vertical;
  font-family: inherit;
  box-sizing: border-box;
  line-height: 1.5;
  background: var(--neutral-50);
  transition: border-color 0.15s, background 0.15s;
}
.kb-modal-desc:focus {
  outline: none;
  border-color: var(--color-primary);
  background: var(--color-surface);
  box-shadow: 0 0 0 2px rgba(124,58,237,0.15);
}
.kb-modal-footer {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.875rem 1.5rem;
  border-top: 1px solid var(--neutral-100);
  background: var(--neutral-50);
  border-radius: 0 0 16px 16px;
}
.kb-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 1.25rem;
  border: none;
  border-radius: 8px;
  background: var(--color-primary);
  color: white;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, box-shadow 0.15s;
  box-shadow: 0 1px 4px rgba(124,58,237,0.3);
}
.kb-btn-primary:hover {
  background: var(--color-primary-hover);
  box-shadow: 0 3px 8px var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 3px 8px color-mix(in srgb, var(--color-primary) 35%, transparent);
  }
}
.kb-btn-danger {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 1rem;
  border: 1.5px solid var(--color-error);
  border-radius: 8px;
  background: var(--color-surface);
  color: var(--color-error);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  margin-left: auto;
  transition: background 0.15s, border-color 0.15s;
}
.kb-btn-danger:hover {
  background: var(--color-error-light);
  border-color: var(--color-error);
}
.kb-btn-danger svg {
  width: 0.875rem;
  height: 0.875rem;
}
.kb-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.375rem 0.75rem;
  border: 1.5px solid var(--neutral-300);
  border-radius: 6px;
  background: var(--color-surface);
  color: var(--color-text-secondary);
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s;
}
.kb-btn-ghost:hover {
  background: var(--neutral-100);
  border-color: var(--neutral-400);
  color: var(--color-text);
}
.kb-label-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.kb-label-pick {
  width: 1.625rem;
  height: 1.625rem;
  border-radius: 6px;
  border: 2.5px solid transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.1s, border-color 0.1s, box-shadow 0.1s;
}
.kb-label-pick:hover {
  transform: scale(1.18);
}
.kb-label-pick--active {
  border-color: white;
  box-shadow: 0 0 0 2.5px rgba(0,0,0,0.35);
}
.kb-date-input, .kb-select {
  width: 100%;
  padding: 0.4375rem 0.625rem;
  border: 1.5px solid var(--neutral-300);
  border-radius: 6px;
  font-size: 0.8125rem;
  color: var(--color-text);
  background: var(--neutral-50);
  box-sizing: border-box;
  transition: border-color 0.15s;
}
.kb-date-input:focus, .kb-select:focus {
  outline: none;
  border-color: var(--color-primary);
  background: var(--color-surface);
}
.kb-btn-calendar {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  width: 100%;
  padding: 0.4375rem 0.625rem;
  border: 1.5px solid var(--neutral-300);
  border-radius: 6px;
  background: var(--neutral-50);
  color: var(--color-text-secondary);
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.kb-btn-calendar:hover:not(:disabled) {
  background: var(--color-info-light);
  color: var(--color-info);
  border-color: var(--color-info);
}
.kb-btn-calendar:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.kb-btn-calendar svg {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}
.kb-link-btn {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.4375rem 0.625rem;
  border: 1.5px solid var(--neutral-300);
  border-radius: 6px;
  background: var(--neutral-50);
  color: var(--color-text-secondary);
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  text-align: left;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.kb-link-btn:hover {
  background: var(--neutral-100);
  border-color: var(--neutral-400);
  color: var(--color-text);
}
.kb-link-btn svg {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}
.kb-checklist-bar {
  height: 0.3125rem;
  background: var(--neutral-300);
  border-radius: 99px;
  overflow: hidden;
  margin-bottom: 0.125rem;
}
.kb-checklist-bar-fill {
  height: 100%;
  background: var(--color-primary);
  border-radius: 99px;
  transition: width 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
.kb-checklist-progress-text {
  margin-left: auto;
  font-size: 0.6875rem;
  color: var(--color-text-secondary);
  font-weight: 600;
}
.kb-checklist-items {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.kb-check-item {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  padding: 0.3125rem 0.375rem;
  border-radius: 6px;
  cursor: default;
  transition: background 0.1s;
}
.kb-check-item:hover {
  background: var(--neutral-100);
}
.kb-check-input {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-top: 0.1rem;
  border-radius: 4px;
  cursor: pointer;
  accent-color: var(--color-primary);
}
.kb-check-text {
  flex: 1;
  font-size: 0.8125rem;
  color: var(--color-text);
  line-height: 1.45;
  min-width: 0;
}
.kb-check-text--done {
  text-decoration: line-through;
  color: var(--neutral-400);
}
.kb-check-remove {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--neutral-400);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.12s, color 0.12s, background 0.12s;
}
.kb-check-item:hover .kb-check-remove {
  opacity: 1;
}
.kb-check-remove:hover {
  color: var(--color-error);
  background: var(--color-error-light);
}
.kb-add-check-row {
  display: flex;
  gap: 0.375rem;
  margin-top: 0.375rem;
}
.kb-add-check-input {
  flex: 1;
  padding: 0.4375rem 0.625rem;
  border: 1.5px solid var(--neutral-300);
  border-radius: 6px;
  font-size: 0.8125rem;
  color: var(--color-text);
  background: var(--neutral-50);
  box-sizing: border-box;
  transition: border-color 0.15s;
}
.kb-add-check-input:focus {
  outline: none;
  border-color: var(--color-primary);
  background: var(--color-surface);
}
@keyframes kb-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes kb-slide-up {
  from {
    opacity: 0;
    transform: translateY(1.25rem) scale(0.98);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.kb-blocked-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  background: #ffebe6;
  color: #dc2626;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1;
}
.kb-blocked-badge svg {
  width: 0.625rem;
  height: 0.625rem;
  flex-shrink: 0;
}
.kb-dep-count {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  background: #ede9fe;
  color: #7c3aed;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1;
}
.kb-dep-count svg {
  width: 0.625rem;
  height: 0.625rem;
  flex-shrink: 0;
}
.kb-dep-list {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.kb-dep-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.5rem;
  border-radius: 0.375rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 0.75rem;
  min-height: 2.75rem;
}
.kb-dep-item-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.kb-dep-item-title {
  font-weight: 600;
  color: #1e293b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.kb-dep-item-meta {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  color: #64748b;
  font-size: 0.6875rem;
}
.kb-dep-status {
  display: inline-flex;
  align-items: center;
  padding: 0.0625rem 0.3125rem;
  border-radius: 0.25rem;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}
.kb-dep-status--done {
  background: #e3fcef;
  color: #16a34a;
}
.kb-dep-status--pending {
  background: #ffebe6;
  color: #dc2626;
}
.kb-dep-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border: none;
  border-radius: 0.25rem;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
  flex-shrink: 0;
  font-size: 0.875rem;
  line-height: 1;
}
.kb-dep-remove:hover {
  background: #fee2e2;
  color: #dc2626;
}
.kb-dep-picker {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  max-height: 12rem;
  overflow-y: auto;
  border: 1px solid #e2e8f0;
  border-radius: 0.375rem;
  padding: 0.25rem;
  margin-top: 0.375rem;
}
.kb-dep-picker-group {
  font-size: 0.625rem;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.25rem 0.375rem 0.125rem;
}
.kb-dep-picker-card {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.5rem;
  border: none;
  border-radius: 0.25rem;
  background: transparent;
  cursor: pointer;
  font-size: 0.75rem;
  color: #334155;
  text-align: left;
  width: 100%;
  min-height: 2.75rem;
}
.kb-dep-picker-card:hover {
  background: #f1f5f9;
}
.kb-dep-add-btn {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.5rem;
  border: 1px dashed #cbd5e1;
  border-radius: 0.375rem;
  background: transparent;
  cursor: pointer;
  font-size: 0.75rem;
  color: #7c3aed;
  font-weight: 600;
  width: 100%;
  margin-top: 0.25rem;
  min-height: 2.75rem;
}
.kb-dep-add-btn:hover {
  background: #f5f3ff;
  border-color: #a78bfa;
}
.kb-dep-add-btn svg {
  width: 0.75rem;
  height: 0.75rem;
  flex-shrink: 0;
}
.kb-dep-svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 5;
  overflow: visible;
}
.kb-dep-line--satisfied {
  stroke: #22c55e;
  stroke-width: 2;
  fill: none;
  stroke-dasharray: 6 3;
  opacity: 0.6;
}
.kb-dep-line--blocked {
  stroke: #ef4444;
  stroke-width: 2;
  fill: none;
  stroke-dasharray: 6 3;
  opacity: 0.7;
}
.kb-dep-arrow--satisfied {
  fill: #22c55e;
  opacity: 0.6;
}
.kb-dep-arrow--blocked {
  fill: #ef4444;
  opacity: 0.7;
}
.kb-toggle-deps {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 8px;
  background: rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.9);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
}
.kb-toggle-deps:hover {
  background: rgba(255,255,255,0.25);
}
.kb-toggle-deps svg {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}
.kb-toggle-deps--active {
  background: rgba(124,58,237,0.4);
  border-color: rgba(124,58,237,0.6);
}
.kb-board {
  position: relative;
}
@media (max-width: 40rem) {
  .kb-modal-layout {
    flex-direction: column;
  }
  .kb-modal-sidebar {
    width: 100%;
  }
  .kb-modal-overlay {
    padding: 1rem 0.5rem;
  }
  .kb-modal {
    border-radius: 12px;
  }
  .kb-dep-svg {
    display: none;
  }
  .kb-toggle-deps {
    display: none;
  }
}
.kohort-files-toolbar {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 0.75rem;
}
.kohort-files-toolbar-row {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.kohort-files-search {
  flex: 1;
  padding: 0.5rem 0.75rem;
  min-height: 2.5rem;
  border-radius: 0.5rem;
  border: 1px solid var(--color-border);
  background: var(--neutral-50);
  font-size: 0.8125rem;
  color: var(--neutral-800);
  outline: none;
  transition: border-color 0.15s;
}
.kohort-files-search:focus {
  border-color: var(--color-primary);
  background: var(--color-surface);
}
.kohort-files-sort {
  padding: 0.5rem 0.625rem;
  min-height: 2.5rem;
  border-radius: 0.5rem;
  border: 1px solid var(--color-border);
  background: var(--neutral-50);
  font-size: 0.8125rem;
  color: var(--neutral-700);
  outline: none;
  cursor: pointer;
}
.kohort-files-type-chips, .kohort-files-tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  align-items: center;
}
.kohort-files-count {
  font-size: 0.75rem;
  color: var(--neutral-400);
  margin-top: 0.125rem;
}
.kohort-tag-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.6rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
  border: 1px solid var(--color-border);
  background: var(--neutral-100);
  color: var(--neutral-600);
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
  white-space: nowrap;
}
.kohort-tag-chip:hover {
  background: var(--neutral-200);
}
.kohort-tag-chip--active {
  background: var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary) 12%, var(--mix-base, white));
  }
  border-color: var(--color-primary);
  color: var(--color-primary);
}
.kohort-tag-chip--tag {
  color: var(--neutral-500);
}
.kohort-tag-chip--file {
  background: var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary) 8%, var(--mix-base, white));
  }
  border-color: var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--color-primary) 25%, var(--mix-base, white));
  }
  color: var(--color-primary);
  font-size: 0.6875rem;
}
.kohort-tag-chip--clear {
  background: var(--color-error-light);
  border-color: var(--color-error);
  color: var(--color-error);
}
.kohort-tag-chip-count {
  font-size: 0.625rem;
  background: var(--neutral-200);
  border-radius: 9999px;
  padding: 0 0.3rem;
}
.kohort-tag-chip--active .kohort-tag-chip-count {
  background: var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary) 20%, var(--mix-base, white));
  }
}
.kohort-files-card {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.875rem;
  border-radius: 0.75rem;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  transition: box-shadow 0.12s;
}
.kohort-files-card:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.kohort-files-card-icon {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  position: relative;
}
.kohort-files-card-thumb {
  width: 2.5rem;
  height: 2.5rem;
  object-fit: cover;
  border-radius: 0.375rem;
}
.kohort-files-card-icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.375rem;
  background: var(--neutral-100);
  color: var(--neutral-500);
}
.kohort-files-card-icon-wrap svg {
  width: 1.25rem;
  height: 1.25rem;
}
.kohort-files-card-icon-wrap--pdf {
  background: var(--color-error-light);
  color: var(--color-error);
}
.kohort-files-card-icon-wrap--image {
  background: var(--color-success-light);
  color: var(--color-success);
}
.kohort-files-card-icon-wrap--spreadsheet {
  background: var(--color-success-light);
  color: var(--color-success);
}
.kohort-files-card-icon-wrap--doc {
  background: var(--color-info-light);
  color: var(--color-info);
}
.kohort-files-card-icon-wrap--archive {
  background: var(--color-warning-light);
  color: var(--color-warning);
}
.kohort-files-card-body {
  flex: 1;
  min-width: 0;
}
.kohort-files-card-name {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--neutral-800);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
  transition: color 0.12s;
}
.kohort-files-card-name:hover {
  color: var(--color-primary);
}
.kohort-files-card-meta {
  font-size: 0.75rem;
  color: var(--neutral-400);
  margin-top: 0.125rem;
  margin-bottom: 0.375rem;
}
.kohort-files-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  align-items: center;
}
.kohort-files-tag-remove {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0 0.1rem;
  color: inherit;
  font-size: 0.75rem;
  line-height: 1;
  opacity: 0.6;
  transition: opacity 0.12s;
}
.kohort-files-tag-remove:hover {
  opacity: 1;
}
.kohort-files-tag-add-form {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}
.kohort-files-tag-input {
  padding: 0.15rem 0.4rem;
  border-radius: 9999px;
  border: 1px dashed var(--neutral-300);
  background: transparent;
  font-size: 0.6875rem;
  color: var(--neutral-600);
  width: 7rem;
  outline: none;
  transition: border-color 0.12s, background 0.12s;
}
.kohort-files-tag-input:focus {
  border-color: var(--color-primary);
  background: var(--color-surface);
}
.kohort-files-tag-input::placeholder {
  color: var(--neutral-400);
}
.kohort-files-tag-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 9999px;
  border: none;
  background: var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary) 15%, var(--mix-base, white));
  }
  color: var(--color-primary);
  font-size: 0.875rem;
  cursor: pointer;
  transition: background 0.12s;
}
.kohort-files-tag-submit:hover {
  background: var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary) 25%, var(--mix-base, white));
  }
}
.kohort-files-card-open {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  color: var(--neutral-400);
  transition: background 0.12s, color 0.12s;
}
.kohort-files-card-open:hover {
  background: var(--neutral-100);
  color: var(--color-primary);
}
.kohort-files-card-open svg {
  width: 1rem;
  height: 1rem;
}
.kohort-files-view-toggle {
  display: flex;
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  overflow: hidden;
  flex-shrink: 0;
}
.kohort-files-view-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  background: var(--neutral-50);
  border: none;
  cursor: pointer;
  color: var(--neutral-400);
  transition: background 0.12s, color 0.12s;
}
.kohort-files-view-btn svg {
  width: 1rem;
  height: 1rem;
}
.kohort-files-view-btn:hover {
  background: var(--neutral-100);
  color: var(--neutral-600);
}
.kohort-files-view-btn--active {
  background: var(--color-surface);
  color: var(--color-primary);
}
.kohort-files-view-btn + .kohort-files-view-btn {
  border-left: 1px solid var(--color-border);
}
.kohort-files-grid-mode {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0.75rem;
}
.kohort-files-list-mode {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.kohort-files-grid-card {
  display: flex;
  flex-direction: column;
  border-radius: 0.75rem;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  overflow: hidden;
  transition: box-shadow 0.12s;
}
.kohort-files-grid-card:hover {
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}
.kohort-files-grid-card-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 7rem;
  background: var(--neutral-50);
  overflow: hidden;
  text-decoration: none;
}
.kohort-files-grid-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.kohort-files-grid-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 0.5rem;
}
.kohort-files-grid-icon svg {
  width: 1.75rem;
  height: 1.75rem;
}
.kohort-files-grid-card-body {
  padding: 0.625rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.kohort-landing-page {
  max-width: 48rem;
  margin: 0 auto;
  width: 100%;
}
.kohort-landing-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 4rem 1.5rem;
  text-align: center;
  gap: 1rem;
}
.kohort-landing-empty-icon {
  color: var(--neutral-300);
}
.kohort-landing-empty-text {
  color: var(--neutral-400);
  font-size: 0.875rem;
}
.kohort-landing-create-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1.25rem;
  border-radius: 0.75rem;
  background: var(--color-primary, #6366f1);
  color: white;
  font-size: 0.875rem;
  font-weight: 600;
  transition: background 0.15s, transform 0.1s;
  border: none;
  cursor: pointer;
}
.kohort-landing-create-btn:hover {
  background: var(--color-primary, #6366f1);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #6366f1) 85%, black);
  }
  transform: translateY(-1px);
}
.kohort-landing-toolbar {
  display: flex;
  justify-content: flex-end;
  padding: 0.5rem 0;
  margin-bottom: 0.5rem;
}
.kohort-landing-toolbar-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  border-radius: 0.5rem;
  background: var(--neutral-100, #f5f5f5);
  color: var(--neutral-600);
  font-size: 0.75rem;
  font-weight: 500;
  border: none;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.kohort-landing-toolbar-btn:hover {
  background: var(--neutral-200);
  color: var(--neutral-800);
}
.kohort-landing-content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.kohort-landing-cover {
  border-radius: 1rem;
  overflow: hidden;
  aspect-ratio: 21 / 9;
  background: var(--neutral-100);
}
.kohort-landing-cover-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.kohort-landing-title {
  font-size: clamp(1.25rem, 4vw, 1.75rem);
  font-weight: 700;
  color: var(--neutral-900);
  line-height: 1.3;
}
.kohort-landing-block {
  padding: 1rem;
  border-radius: 0.75rem;
  background: var(--color-surface, white);
  border: 1px solid var(--neutral-150, #e8e8e8);
}
.kohort-landing-block--text .kohort-landing-text {
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--neutral-700);
  white-space: pre-wrap;
}
.kohort-landing-block--image {
  padding: 0;
  overflow: hidden;
}
.kohort-landing-block-img {
  width: 100%;
  max-height: 24rem;
  object-fit: cover;
}
.kohort-landing-block-caption {
  padding: 0.75rem 1rem;
  font-size: 0.8125rem;
  color: var(--neutral-500);
  text-align: center;
}
.kohort-landing-block-heading {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--neutral-800);
  margin-bottom: 0.75rem;
}
.kohort-landing-links-list {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.kohort-landing-link-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  color: var(--color-primary, #6366f1);
  font-size: 0.875rem;
  text-decoration: none;
  transition: background 0.15s;
}
.kohort-landing-link-item:hover {
  background: var(--color-primary, #6366f1);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #6366f1) 8%, transparent);
  }
}
.kohort-landing-editor {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.kohort-landing-editor-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  background: var(--neutral-50, #fafafa);
  border: 1px solid var(--color-border);
}
.kohort-landing-editor-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--neutral-700);
}
.kohort-landing-editor-actions {
  display: flex;
  gap: 0.5rem;
}
.kohort-landing-editor-btn {
  padding: 0.375rem 0.875rem;
  border-radius: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 500;
  border: none;
  cursor: pointer;
  transition: background 0.15s;
}
.kohort-landing-editor-btn--cancel {
  background: var(--neutral-100);
  color: var(--neutral-600);
}
.kohort-landing-editor-btn--cancel:hover {
  background: var(--neutral-200);
}
.kohort-landing-editor-btn--save {
  background: var(--color-primary, #6366f1);
  color: white;
}
.kohort-landing-editor-btn--save:hover {
  background: var(--color-primary, #6366f1);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #6366f1) 85%, black);
  }
}
.kohort-landing-editor-btn--save:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.kohort-landing-field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.kohort-landing-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--neutral-500);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.kohort-landing-input {
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  background: var(--color-surface, white);
  color: var(--neutral-800);
  transition: border-color 0.15s;
}
.kohort-landing-input:focus {
  outline: none;
  border-color: var(--color-primary, #6366f1);
  box-shadow: 0 0 0 3px var(--color-primary, #6366f1);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, #6366f1) 15%, transparent);
  }
}
.kohort-landing-input--sm {
  padding: 0.375rem 0.625rem;
  font-size: 0.8125rem;
  flex: 1;
}
.kohort-landing-textarea {
  padding: 0.625rem 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  background: var(--color-surface, white);
  color: var(--neutral-800);
  resize: vertical;
  min-height: 5rem;
  font-family: inherit;
  line-height: 1.6;
  transition: border-color 0.15s;
}
.kohort-landing-textarea:focus {
  outline: none;
  border-color: var(--color-primary, #6366f1);
  box-shadow: 0 0 0 3px var(--color-primary, #6366f1);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, #6366f1) 15%, transparent);
  }
}
.kohort-landing-blocks {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.kohort-landing-block-editor {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: 0.75rem;
  background: var(--neutral-50, #fafafa);
}
.kohort-landing-block-editor-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.kohort-landing-block-type {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-primary, #6366f1);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.kohort-landing-block-actions {
  display: flex;
  gap: 0.25rem;
}
.kohort-landing-block-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 0.375rem;
  border: none;
  background: transparent;
  color: var(--neutral-400);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.kohort-landing-block-action:hover {
  background: var(--neutral-200);
  color: var(--neutral-700);
}
.kohort-landing-block-action--delete:hover {
  background: var(--color-error-light);
  color: var(--color-error);
}
.kohort-landing-link-items {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.kohort-landing-link-item-editor {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.kohort-landing-add-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.625rem;
  border-radius: 0.375rem;
  border: 1px dashed var(--neutral-300);
  background: transparent;
  color: var(--neutral-500);
  font-size: 0.75rem;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s;
}
.kohort-landing-add-link-btn:hover {
  border-color: var(--color-primary, #6366f1);
  color: var(--color-primary, #6366f1);
}
.kohort-landing-add-block {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.75rem 0;
}
.kohort-landing-add-label {
  font-size: 0.75rem;
  color: var(--neutral-400);
  font-weight: 500;
}
.kohort-landing-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid var(--color-border);
  background: var(--color-surface, white);
  color: var(--neutral-600);
  font-size: 0.8125rem;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.kohort-landing-add-btn:hover {
  border-color: var(--color-primary, #6366f1);
  background: var(--color-primary, #6366f1);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #6366f1) 5%, white);
  }
  color: var(--color-primary, #6366f1);
}
.club-overview-panel {
  background: var(--surface);
  border: 1px solid var(--color-border);
  border-radius: 0.875rem;
  padding: 1rem 1.25rem;
  margin: 0 auto 1.5rem;
  max-width: 48rem;
  width: 100%;
}
.club-overview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.club-overview-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--neutral-800);
  margin: 0;
}
.club-overview-title-emoji {
  font-size: 1.25rem;
}
.club-overview-refresh {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  color: var(--neutral-500);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.club-overview-refresh:hover {
  background: var(--neutral-100);
  color: var(--neutral-800);
}
.club-overview-loading {
  padding: 1.5rem;
  text-align: center;
  font-size: 0.875rem;
}
.club-overview-content {
  display: grid;
  gap: 1rem;
}
.club-overview-card {
  background: var(--neutral-50);
  border: 1px solid var(--color-border);
  border-radius: 0.625rem;
  padding: 0.875rem 1rem;
}
.club-overview-card-title {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--neutral-700);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 0.625rem;
}
.club-overview-library-grid, .club-overview-stats-totals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}
.club-overview-stats-totals {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 0.875rem;
}
.club-overview-library-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.125rem;
  padding: 0.5rem;
  background: var(--surface);
  border-radius: 0.5rem;
}
.club-overview-library-value {
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--primary-600, var(--neutral-800));
  line-height: 1.1;
}
.club-overview-library-label {
  font-size: 0.6875rem;
  color: var(--neutral-500);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.club-overview-table-list, .club-overview-rank-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.club-overview-table-item {
  padding: 0.5rem 0.625rem;
  background: var(--surface);
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
}
.club-overview-table-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--neutral-800);
}
.club-overview-table-meta {
  font-size: 0.75rem;
  color: var(--neutral-500);
  margin-top: 0.125rem;
}
.club-overview-night {
  padding: 0.625rem 0.75rem;
  background: var(--surface);
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
}
.club-overview-night-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--neutral-800);
  margin-bottom: 0.25rem;
}
.club-overview-night-meta {
  font-size: 0.75rem;
  color: var(--neutral-500);
  line-height: 1.4;
}
.club-overview-stats-rankings {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.875rem;
}
@media (min-width: 640px) {
  .club-overview-stats-rankings {
    grid-template-columns: 1fr 1fr;
  }
}
.club-overview-rank-title {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--neutral-600);
  margin: 0 0 0.5rem;
}
.club-overview-rank-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.375rem 0.625rem;
  background: var(--surface);
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  font-size: 0.8125rem;
}
.club-overview-rank-name {
  color: var(--neutral-800);
  font-weight: 500;
}
.club-overview-rank-count {
  color: var(--primary-600, var(--neutral-700));
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.club-overview-empty {
  font-size: 0.8125rem;
  color: var(--neutral-400);
  font-style: italic;
  margin: 0;
  padding: 0.25rem 0;
}
.meeple-home {
  --mh-navy: #1e2a52;
  --mh-cream: #fdfaf0;
  --mh-coral: #e57360;
  --mh-coral-dark: #c45a48;
  --mh-blue: #5b8bf0;
  --mh-pink: #e88ab1;
  --mh-green: #5fa78f;
  --mh-teal: #5ec3c1;
  --mh-purple: #a385e0;
  --mh-yellow: #f0c455;
  background: var(--mh-cream);
  color: var(--mh-navy);
  font-family: 'Righteous', 'Nunito', system-ui, sans-serif;
  border-radius: 1.25rem;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  margin: 0 auto;
  max-width: 64rem;
  width: 100%;
}
.meeple-home-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--mh-navy);
  margin: 1.25rem 0 0.625rem;
}
.meeple-home-eyebrow:first-child {
  margin-top: 0;
}
.meeple-home-eyebrow--orange {
  color: var(--mh-coral-dark);
}
.meeple-home-eyebrow--ghost {
  color: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--mh-navy) 55%, transparent);
  }
}
.meeple-home-club-name {
  color: var(--mh-coral-dark);
}
.meeple-home-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: currentColor;
}
.meeple-home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 2.25rem);
  align-items: start;
  margin-bottom: 1.5rem;
}
@media (max-width: 720px) {
  .meeple-home-hero {
    grid-template-columns: 1fr;
  }
}
.meeple-home-title {
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 0.95;
  font-weight: 700;
  margin: 0 0 1rem;
  letter-spacing: -0.02em;
}
.meeple-home-lede {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--mh-navy) 75%, transparent);
  }
  margin: 0 0 1.25rem;
  max-width: 28rem;
}
.meeple-home-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}
.meeple-home-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 1.1rem;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  border-radius: 0.75rem;
  text-decoration: none;
  border: 2px solid transparent;
  transition: transform 0.1s ease, filter 0.15s ease, background 0.15s ease;
  cursor: pointer;
}
.meeple-home-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.06);
}
.meeple-home-btn--primary {
  background: var(--mh-coral);
  color: white;
}
.meeple-home-btn--ghost {
  background: transparent;
  color: var(--mh-navy);
  border-color: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--mh-navy) 25%, transparent);
  }
}
.meeple-home-btn--ghost:hover {
  background: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--mh-navy) 6%, transparent);
  }
}
.meeple-home-btn--white {
  background: white;
  color: var(--mh-coral-dark);
}
.meeple-home-btn--ghost-light {
  color: white;
  border-color: rgba(255,255,255,0.4);
  background: transparent;
}
.meeple-home-btn--ghost-light:hover {
  background: rgba(255,255,255,0.1);
}
.meeple-home-tiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: minmax(7rem, auto);
  gap: 0.75rem;
}
.meeple-home-tiles > :first-child {
  grid-row: span 2;
}
@media (max-width: 720px) {
  .meeple-home-tiles {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: auto;
  }
  .meeple-home-tiles > :first-child {
    grid-row: auto;
  }
}
.meeple-home-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 0.875rem 1rem 1rem;
  border-radius: 1rem;
  background: var(--mh-blue);
  color: white;
  min-height: 7rem;
  overflow: hidden;
  isolation: isolate;
}
.meeple-home-tile--blue {
  background: var(--mh-blue);
}
.meeple-home-tile--pink {
  background: var(--mh-pink);
}
.meeple-home-tile--green {
  background: var(--mh-green);
}
.meeple-home-tile-meeple {
  display: block;
  width: 3rem;
  height: 3rem;
  color: rgba(255, 255, 255, 0.95);
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.18));
}
.meeple-home-tile-game {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
}
.meeple-home-tile-meta {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  opacity: 0.85;
  margin-top: 0.2rem;
}
.meeple-home-news {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.875rem 1.25rem;
  background: white;
  border-radius: 1rem;
  box-shadow: 0 4px 14px -4px rgba(30, 42, 82, 0.08);
  margin-bottom: 1.5rem;
}
.meeple-home-news-avatar {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--mh-navy);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8125rem;
  font-weight: 700;
}
.meeple-home-news-text {
  flex: 1;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--mh-navy) 80%, transparent);
  }
}
.meeple-home-news-text strong {
  color: var(--mh-navy);
  font-weight: 600;
}
.meeple-home-news-arrow {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--mh-navy);
  color: white;
  border: none;
  cursor: pointer;
  font-size: 1.05rem;
  font-weight: 700;
  transition: transform 0.1s ease;
}
.meeple-home-news-arrow:hover {
  transform: translateX(2px);
}
.meeple-home-friday {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: center;
  background: var(--mh-coral);
  color: white;
  padding: 1.75rem 2rem;
  border-radius: 1.5rem;
  margin-bottom: 1.5rem;
  position: relative;
  overflow: hidden;
}
@media (max-width: 720px) {
  .meeple-home-friday {
    grid-template-columns: 1fr;
    padding: 1.25rem;
  }
}
.meeple-home-friday-eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.9;
  margin-bottom: 0.4rem;
}
.meeple-home-friday-title {
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  line-height: 0.95;
  font-weight: 700;
  margin: 0 0 0.875rem;
  letter-spacing: -0.01em;
}
.meeple-home-friday-lede {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.5;
  margin: 0 0 1.25rem;
  max-width: 28rem;
  opacity: 0.95;
}
.meeple-home-friday-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}
.meeple-home-friday-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  height: 100%;
}
.meeple-home-friday-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.8rem;
  background: rgba(255,255,255,0.2);
  border-radius: 9999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
}
.meeple-home-dice {
  display: flex;
  gap: 0.25rem;
  font-size: 2.25rem;
  line-height: 1;
  color: white;
}
.meeple-home-die {
  display: inline-block;
  background: white;
  color: var(--mh-coral-dark);
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.6rem;
  text-align: center;
  font-size: 1.75rem;
  line-height: 2.5rem;
  box-shadow: 0 3px 10px -2px rgba(0,0,0,0.15);
}
.meeple-home-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 720px) {
  .meeple-home-week {
    grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  }
}
.meeple-home-day {
  background: white;
  border-radius: 0.875rem;
  padding: 0.75rem 0.625rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-height: 7rem;
  box-shadow: 0 1px 0 rgba(30, 42, 82, 0.04);
}
.meeple-home-day-num {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1;
  color: var(--mh-navy);
}
.meeple-home-day-name {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--mh-navy) 55%, transparent);
  }
}
.meeple-home-day-title {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--mh-navy);
  margin-top: auto;
}
.meeple-home-day-meta {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.6875rem;
  color: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--mh-navy) 50%, transparent);
  }
}
.meeple-home-day--active {
  background: var(--mh-navy);
  color: white;
}
.meeple-home-day--active .meeple-home-day-num, .meeple-home-day--active .meeple-home-day-title {
  color: white;
}
.meeple-home-day--active .meeple-home-day-name, .meeple-home-day--active .meeple-home-day-meta {
  color: rgba(255,255,255,0.7);
}
.meeple-home-day--placeholder {
  grid-column: 1 / -1;
  text-align: center;
  color: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--mh-navy) 40%, transparent);
  }
}
.meeple-home-figs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 1.5rem;
  align-items: start;
  margin-bottom: 1.5rem;
}
@media (max-width: 720px) {
  .meeple-home-figs {
    grid-template-columns: 1fr;
  }
}
.meeple-home-figs-title {
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  line-height: 1;
  font-weight: 700;
  margin: 0 0 0.625rem;
  letter-spacing: -0.01em;
}
.meeple-home-figs-lede {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--mh-navy) 75%, transparent);
  }
  margin: 0 0 1rem;
}
.meeple-home-figs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.625rem;
}
.meeple-home-fig {
  position: relative;
  aspect-ratio: 1;
  border-radius: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  color: white;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
}
.meeple-home-fig-icon {
  width: 50%;
  height: 50%;
}
.meeple-home-fig--orange {
  background: var(--mh-coral);
}
.meeple-home-fig--orange-dark {
  background: var(--mh-coral-dark);
}
.meeple-home-fig--blue {
  background: var(--mh-blue);
}
.meeple-home-fig--teal {
  background: var(--mh-teal);
}
.meeple-home-fig--purple {
  background: var(--mh-purple);
}
.meeple-home-fig--green {
  background: var(--mh-green);
}
.meeple-home-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding-top: 1rem;
  border-top: 1px solid var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    border-top: 1px solid color-mix(in srgb, var(--mh-navy) 12%, transparent);
  }
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.75rem;
  color: var(--mh-navy);
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--mh-navy) 60%, transparent);
  }
}
.meeple-home-footer-brand strong {
  color: var(--mh-navy);
}
.meeple-home-footer-links {
  display: flex;
  gap: 0.875rem;
}
.meeple-home-footer-links a {
  color: inherit;
  text-decoration: none;
}
.meeple-home-footer-links a:hover {
  color: var(--mh-navy);
}
.pb-page-root {
  --pb-container: min(72rem, 100% - 2rem);
  --pb-gap: 1.5rem;
  --pb-radius: 0.75rem;
}
.pb-page {
  display: flex;
  flex-direction: column;
  gap: var(--pb-gap);
  padding: 2rem 1rem;
  max-width: 100%;
}
@media (min-width: 768px) {
  .pb-page {
    padding: 3rem 2rem;
  }
}
.pb-block {
  width: var(--pb-container);
  max-width: 100%;
  margin-inline: auto;
}
.pb-align-left {
  text-align: left;
}
.pb-align-center {
  text-align: center;
}
.pb-align-right {
  text-align: right;
}
.pb-block-hero {
  width: 100%;
  padding: clamp(3rem, 10vw, 6rem) 1.5rem;
  background-color: var(--color-primary-light, #eef2ff);
  background-size: cover;
  background-position: center;
  border-radius: var(--pb-radius);
  color: var(--color-text, #111827);
}
.pb-hero-inner {
  max-width: 48rem;
  margin-inline: auto;
}
.pb-hero-eyebrow {
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-primary, #4f46e5);
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.pb-hero-title {
  font-size: clamp(2rem, 6vw, 3.5rem);
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 1rem;
}
.pb-hero-subtitle {
  font-size: clamp(1rem, 2.5vw, 1.25rem);
  line-height: 1.5;
  opacity: 0.85;
  margin-bottom: 1.5rem;
}
.pb-hero-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.75rem 2rem;
  background: var(--color-primary, #4f46e5);
  color: white;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
}
.pb-hero-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 8px 24px color-mix(in srgb, var(--color-primary, #4f46e5) 35%, transparent);
  }
}
.pb-block-rich-text .pb-rich-text-inner {
  line-height: 1.7;
  font-size: 1.05rem;
}
.pb-block-rich-text h2 {
  font-size: 1.75rem;
  font-weight: 700;
  margin: 1.5rem 0 0.75rem;
}
.pb-block-rich-text h3 {
  font-size: 1.375rem;
  font-weight: 600;
  margin: 1.25rem 0 0.5rem;
}
.pb-block-rich-text p {
  margin-bottom: 1rem;
}
.pb-block-rich-text a {
  color: var(--color-primary, #4f46e5);
  text-decoration: underline;
}
.pb-block-image .pb-image-figure {
  margin: 0;
}
.pb-image-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--pb-radius);
}
.pb-image-caption {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  color: var(--color-text-muted, #6b7280);
  text-align: center;
}
.pb-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.625rem 1.5rem;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.2s, background-color 0.2s;
}
.pb-button--primary {
  background: var(--color-primary, #4f46e5);
  color: white;
}
.pb-button--primary:hover {
  background: var(--color-primary-hover, #4338ca);
}
.pb-button--secondary {
  background: var(--color-accent, #06b6d4);
  color: white;
}
.pb-button--ghost {
  background: transparent;
  border: 1px solid var(--color-primary, #4f46e5);
  color: var(--color-primary, #4f46e5);
}
.pb-block-spacer {
  pointer-events: none;
}
.pb-spacer--xs {
  height: 0.5rem;
}
.pb-spacer--sm {
  height: 1rem;
}
.pb-spacer--md {
  height: 2rem;
}
.pb-spacer--lg {
  height: 4rem;
}
.pb-spacer--xl {
  height: 6rem;
}
.pb-divider {
  border: none;
  border-top: 1px solid var(--color-border, #e5e7eb);
}
.pb-divider--dashed {
  border-top-style: dashed;
}
.pb-divider--dotted {
  border-top-style: dotted;
}
.pb-quote {
  margin: 0;
  padding: 1.5rem 2rem;
  border-left: 4px solid var(--color-primary, #4f46e5);
  background: var(--color-surface, #fafafa);
  border-radius: 0 var(--pb-radius) var(--pb-radius) 0;
}
.pb-quote-text {
  font-size: 1.25rem;
  font-style: italic;
  line-height: 1.5;
  margin: 0 0 0.5rem;
}
.pb-quote-cite {
  font-size: 0.875rem;
  color: var(--color-text-muted, #6b7280);
}
.pb-block-columns {
  display: grid;
  gap: var(--pb-gap);
}
.pb-columns-gap-sm {
  gap: 0.75rem;
}
.pb-columns-gap-md {
  gap: 1.5rem;
}
.pb-columns-gap-lg {
  gap: 2.5rem;
}
.pb-columns--1, .pb-columns--2, .pb-columns--3, .pb-columns--4 {
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .pb-columns--2 {
    grid-template-columns: repeat(2, 1fr);
  }
  .pb-columns--3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .pb-columns--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .pb-columns--4 {
    grid-template-columns: repeat(4, 1fr);
  }
}
.pb-column {
  display: flex;
  flex-direction: column;
  gap: var(--pb-gap);
}
.pb-block-section {
  width: 100%;
}
.pb-section-pad-y-sm {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.pb-section-pad-y-md {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.pb-section-pad-y-lg {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.pb-section-pad-y-xl {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.pb-section-pad-x-sm {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.pb-section-pad-x-md {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.pb-section-pad-x-lg {
  padding-left: 3rem;
  padding-right: 3rem;
}
.pb-section-align-left {
  text-align: left;
}
.pb-section-align-center {
  text-align: center;
}
.pb-section-align-right {
  text-align: right;
}
.pb-section-inner {
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--pb-gap, 1rem);
}
.pb-section-max-narrow {
  max-width: 40rem;
}
.pb-section-max-normal {
  max-width: 64rem;
}
.pb-section-max-wide {
  max-width: 80rem;
}
.pb-section-max-full {
  max-width: 100%;
}
.pb-block-stack {
  width: 100%;
}
.pb-stack-inner {
  display: flex;
  gap: var(--pb-gap, 1rem);
}
.pb-stack--vertical .pb-stack-inner {
  flex-direction: column;
}
.pb-stack--horizontal .pb-stack-inner {
  flex-direction: row;
}
.pb-stack-gap-sm .pb-stack-inner {
  gap: 0.5rem;
}
.pb-stack-gap-md .pb-stack-inner {
  gap: 1rem;
}
.pb-stack-gap-lg .pb-stack-inner {
  gap: 2rem;
}
.pb-stack-align-start .pb-stack-inner {
  align-items: flex-start;
}
.pb-stack-align-center .pb-stack-inner {
  align-items: center;
}
.pb-stack-align-end .pb-stack-inner {
  align-items: flex-end;
}
.pb-stack-align-stretch .pb-stack-inner {
  align-items: stretch;
}
.pb-stack-wrap .pb-stack-inner {
  flex-wrap: wrap;
}
.pb-edit-column {
  min-height: 4.5rem;
  padding: 0.5rem;
  border: 1px dashed var(--color-border, #e5e7eb);
  @supports (color: color-mix(in lab, red, red)) {
    border: 1px dashed color-mix(in srgb, var(--color-border, #e5e7eb) 100%, transparent);
  }
  border-radius: 0.5rem;
  background: var(--color-surface, #ffffff);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-surface, #ffffff) 50%, transparent);
  }
  transition: border-color 0.12s, background 0.12s;
}
.pb-edit-column:hover {
  border-color: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--color-primary, #4f46e5) 35%, transparent);
  }
}
.pb-edit-column--drop-target {
  border-color: var(--color-primary, #4f46e5);
  border-style: solid;
  background: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #4f46e5) 8%, transparent);
  }
}
.pb-edit-column-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.5rem;
  padding: 0.75rem;
  color: var(--color-text-muted, #6b7280);
  font-size: 0.8125rem;
  text-align: center;
  pointer-events: none;
}
.pb-edit-column-placeholder em {
  font-style: italic;
  opacity: 0.8;
}
.pb-edit-column .pb-edit-block-wrap {
  margin: 0.375rem 0;
}
.pb-edit-column .pb-edit-block-wrap:first-child {
  margin-top: 0;
}
.pb-edit-column .pb-edit-block-wrap:last-child {
  margin-bottom: 0;
}
.pb-admin {
  max-width: 60rem;
  margin: 0 auto;
  padding: 2rem 1rem;
}
.pb-admin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.pb-admin-title {
  font-size: 1.75rem;
  font-weight: 700;
}
.pb-admin-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.625rem 1.25rem;
  background: var(--color-primary, #4f46e5);
  color: white;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
}
.pb-admin-link {
  color: var(--color-primary, #4f46e5);
  text-decoration: none;
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
}
.pb-admin-empty {
  padding: 3rem 1rem;
  text-align: center;
  border: 2px dashed var(--color-border, #e5e7eb);
  border-radius: var(--pb-radius);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.pb-admin-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.pb-admin-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: var(--color-surface, #ffffff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: var(--pb-radius);
  flex-wrap: wrap;
}
.pb-admin-list-main {
  flex: 1;
  min-width: min(18rem, 100%);
}
.pb-admin-list-title {
  font-weight: 600;
  text-decoration: none;
  color: var(--color-text, #111827);
  display: block;
  min-height: 2.75rem;
  display: flex;
  align-items: center;
}
.pb-admin-list-meta {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  font-size: 0.875rem;
  align-items: center;
}
.pb-admin-list-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.pb-admin-action {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  background: var(--color-surface, #f9fafb);
  border: 1px solid var(--color-border, #e5e7eb);
  color: var(--color-text, #111827);
  text-decoration: none;
  font-size: 0.875rem;
  cursor: pointer;
}
.pb-admin-action--danger {
  color: #b91c1c;
  border-color: #fecaca;
}
.pb-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.625rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: lowercase;
}
.pb-badge--draft {
  background: #fef3c7;
  color: #92400e;
}
.pb-badge--published {
  background: #d1fae5;
  color: #065f46;
}
.pb-badge--archived {
  background: #e5e7eb;
  color: #374151;
}
.pb-badge--public {
  background: #dbeafe;
  color: #1e40af;
}
.pb-badge--unlisted {
  background: #f3e8ff;
  color: #6b21a8;
}
.pb-badge--members_only {
  background: #fce7f3;
  color: #9f1239;
}
.pb-badge--private {
  background: #e5e7eb;
  color: #374151;
}
.pb-muted {
  color: var(--color-text-muted, #6b7280);
  font-size: 0.875rem;
}
.pb-admin-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 32rem;
}
.pb-form-field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.pb-form-label {
  font-weight: 600;
  font-size: 0.875rem;
}
.pb-form-input {
  min-height: 2.75rem;
  padding: 0.625rem 0.875rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.5rem;
  background: var(--color-surface, #ffffff);
  color: var(--color-text, #111827);
  font-size: 1rem;
}
.pb-form-input:focus {
  outline: none;
  border-color: var(--color-primary, #4f46e5);
  box-shadow: 0 0 0 3px var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, #4f46e5) 20%, transparent);
  }
}
.pb-form-hint {
  font-size: 0.8125rem;
  color: var(--color-text-muted, #6b7280);
}
.pb-form-actions {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  margin-top: 0.5rem;
}
.pb-editor {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  --pb-editor-panel-width: 28rem;
  --pb-editor-topbar-height: 3.5rem;
  --pb-editor-mobile-bar-height: 4rem;
  --pb-editor-accent: var(--color-primary, #4f46e5);
}
.pb-editor-topbar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  min-height: var(--pb-editor-topbar-height);
  border-bottom: 1px solid var(--color-border, #e5e7eb);
  background: var(--color-surface, #ffffff);
  flex-wrap: wrap;
}
@media (min-width: 768px) {
  .pb-editor-topbar {
    padding: 0.5rem 1.25rem;
    flex-wrap: nowrap;
  }
}
.pb-editor-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.5rem;
  text-decoration: none;
  color: var(--color-text, #111827);
  background: transparent;
  border: 0;
  cursor: pointer;
}
.pb-editor-back:hover {
  background: var(--color-primary-light, #eef2ff);
}
.pb-editor-title-input {
  flex: 1;
  min-width: 8rem;
  min-height: 2.75rem;
  padding: 0.5rem 0.75rem;
  font-size: 1rem;
  font-weight: 600;
  border: 1px solid transparent;
  border-radius: 0.5rem;
  background: transparent;
  color: var(--color-text, #111827);
}
.pb-editor-title-input:hover {
  background: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #4f46e5) 5%, transparent);
  }
}
.pb-editor-title-input:focus {
  outline: none;
  border-color: var(--color-primary, #4f46e5);
  background: var(--color-surface, #ffffff);
}
.pb-editor-viewport-switch {
  display: none;
  gap: 0.25rem;
  padding: 0.25rem;
  background: var(--color-primary-light, #eef2ff);
  border-radius: 0.5rem;
}
@media (min-width: 1024px) {
  .pb-editor-viewport-switch {
    display: flex;
  }
}
.pb-editor-vp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.25rem;
  border: 0;
  border-radius: 0.375rem;
  background: transparent;
  color: var(--color-text, #111827);
  cursor: pointer;
}
.pb-editor-vp-btn--active {
  background: var(--color-surface, #ffffff);
  box-shadow: 0 1px 3px rgb(0 0 0 / 0.1);
  color: var(--color-primary, #4f46e5);
}
.pb-editor-actions {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin-left: auto;
}
.pb-editor-save-status {
  font-size: 0.8125rem;
  color: var(--color-text-muted, #6b7280);
  font-weight: 500;
  padding: 0 0.5rem;
}
.pb-editor-save-status--saving {
  color: var(--color-text-muted, #6b7280);
}
.pb-editor-save-status--saved {
  color: #059669;
}
.pb-editor-save-status--error {
  color: #dc2626;
}
.pb-button--sm {
  min-height: 2.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}
.pb-editor-main {
  flex: 1;
  display: flex;
  min-height: 0;
  position: relative;
}
.pb-editor-panel-resize-handle {
  display: none;
}
@media (min-width: 1024px) {
  .pb-editor-panel-resize-handle {
    display: block;
    flex-shrink: 0;
    width: 6px;
    background: transparent;
    cursor: col-resize;
    transition: background 0.12s;
    z-index: 5;
    touch-action: none;
  }
  .pb-editor-panel-resize-handle:hover, .pb-editor-panel-resize-handle--active {
    background: var(--color-primary, #4f46e5);
  }
}
@media (min-width: 1024px) {
  .pb-hide-desktop {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .pb-hide-tablet {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .pb-hide-mobile {
    display: none !important;
  }
}
.pb-editor-canvas-wrap {
  flex: 1;
  overflow: auto;
  padding: 1.25rem;
  padding-bottom: calc(var(--pb-editor-mobile-bar-height) + 1rem);
  background: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #4f46e5) 4%, var(--color-background, #f9fafb));
  }
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
@media (min-width: 768px) {
  .pb-editor-canvas-wrap {
    padding: 2rem;
    padding-bottom: 2rem;
  }
}
.pb-edit-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  width: 100%;
  margin: 0;
  padding: 0.5rem 1rem;
  background: var(--neutral-50, #f9fafb);
  border-bottom: 1px solid var(--color-border, #e5e7eb);
  font-size: 0.8125rem;
  position: sticky;
  top: var(--pb-editor-topbar-height, 3.5rem);
  z-index: 9;
  flex-shrink: 0;
}
.pb-edit-breadcrumb[hidden] {
  display: none;
}
.pb-edit-breadcrumb-crumb {
  background: none;
  border: none;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  cursor: pointer;
  color: var(--color-text-secondary, #4b5563);
  font: inherit;
  transition: background 0.12s, color 0.12s;
}
.pb-edit-breadcrumb-crumb:hover {
  background: var(--color-surface, #ffffff);
  color: var(--color-text, #111827);
}
.pb-edit-breadcrumb-crumb--current {
  color: var(--color-primary, #4f46e5);
  font-weight: 600;
  background: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #4f46e5) 10%, transparent);
  }
}
.pb-edit-breadcrumb-root {
  color: var(--color-text-muted, #6b7280);
}
.pb-edit-breadcrumb-sep {
  color: var(--color-text-muted, #9ca3af);
  font-size: 0.75rem;
  user-select: none;
}
.pb-editor-canvas {
  width: 100%;
  max-width: 72rem;
  min-height: 100%;
  background: var(--color-surface, #ffffff);
  border-radius: var(--pb-radius);
  box-shadow: 0 4px 12px rgb(0 0 0 / 0.05);
  padding: 1rem;
  transition: max-width 0.25s ease;
}
@media (min-width: 768px) {
  .pb-editor-canvas {
    padding: 2rem;
  }
}
.pb-editor-canvas[data-viewport="tablet"] {
  max-width: 48rem;
}
.pb-editor-canvas[data-viewport="mobile"] {
  max-width: 22rem;
}
.pb-editor-canvas[data-viewport="desktop"] {
  max-width: 72rem;
}
.pb-editor-canvas.pb-editor-canvas--dragover {
  outline: 2px dashed var(--color-primary, #4f46e5);
  outline-offset: -8px;
}
.pb-editor-empty-hint {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 16rem;
  color: var(--color-text-muted, #6b7280);
  text-align: center;
  gap: 1rem;
  pointer-events: none;
}
.pb-editor-empty-hint svg {
  opacity: 0.5;
}
.pb-edit-block-wrap {
  position: relative;
  margin: 0.75rem 0;
  border: 2px solid transparent;
  border-radius: 0.5rem;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.pb-edit-block-wrap:hover {
  border-color: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--color-primary, #4f46e5) 40%, transparent);
  }
}
.pb-edit-block-wrap--selected {
  border-color: var(--color-primary, #4f46e5);
  box-shadow: 0 0 0 3px var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, #4f46e5) 15%, transparent);
  }
}
.pb-edit-block-wrap--dragging {
  opacity: 0.4;
}
.pb-edit-block-wrap--drop-before::before, .pb-edit-block-wrap--drop-after::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 0.25rem;
  background: var(--color-primary, #4f46e5);
  border-radius: 999px;
  pointer-events: none;
}
.pb-edit-block-wrap--drop-before::before {
  top: -0.375rem;
}
.pb-edit-block-wrap--drop-after::after {
  bottom: -0.375rem;
}
.pb-edit-block-toolbar {
  position: absolute;
  top: -2.25rem;
  right: 0;
  display: none;
  gap: 0.25rem;
  padding: 0.25rem;
  background: var(--color-surface, #ffffff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.5rem;
  box-shadow: 0 4px 12px rgb(0 0 0 / 0.08);
  z-index: 5;
}
.pb-edit-block-wrap--selected .pb-edit-block-toolbar {
  display: flex;
}
.pb-edit-block-tbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 0.25rem;
  background: transparent;
  cursor: pointer;
  color: var(--color-text, #111827);
}
.pb-edit-block-tbtn:hover {
  background: var(--color-primary-light, #eef2ff);
}
.pb-edit-block-tbtn--danger:hover {
  background: #fee2e2;
  color: #b91c1c;
}
.pb-edit-block-handle {
  position: absolute;
  top: 50%;
  left: -1.75rem;
  transform: translateY(-50%);
  width: 1.5rem;
  height: 1.5rem;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: grab;
  background: var(--color-surface, #ffffff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.25rem;
  color: var(--color-text-muted, #6b7280);
  user-select: none;
  touch-action: none;
}
.pb-edit-block-wrap:hover .pb-edit-block-handle, .pb-edit-block-wrap--selected .pb-edit-block-handle {
  display: flex;
}
@media (max-width: 767px) {
  .pb-edit-block-handle {
    top: 0.5rem;
    left: auto;
    right: 0.5rem;
    transform: none;
    width: 2.75rem;
    height: 2.75rem;
  }
  .pb-edit-block-wrap:hover .pb-edit-block-handle, .pb-edit-block-wrap--selected .pb-edit-block-handle {
    display: flex;
  }
}
[contenteditable="true"]:focus {
  outline: 2px solid var(--color-primary, #4f46e5);
  outline-offset: 2px;
  border-radius: 0.25rem;
}
.pb-editor-panel {
  background: var(--color-surface, #ffffff);
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--color-border, #e5e7eb);
  flex-shrink: 0;
  position: fixed;
  bottom: var(--pb-editor-mobile-bar-height);
  left: 0;
  right: 0;
  max-height: 60vh;
  border-radius: 1rem 1rem 0 0;
  box-shadow: 0 -4px 24px rgb(0 0 0 / 0.1);
  transform: translateY(calc(100% - 2.5rem));
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 20;
}
.pb-editor-panel[data-open="true"] {
  transform: translateY(0);
}
@media (min-width: 1024px) {
  .pb-editor-panel {
    position: static;
    max-height: none;
    width: var(--pb-editor-panel-width);
    transform: none;
    border-top: 0;
    border-left: 1px solid var(--color-border, #e5e7eb);
    border-radius: 0;
    box-shadow: none;
  }
  .pb-editor-panel-handle {
    display: none;
  }
}
.pb-editor-panel-handle {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 2.5rem;
  cursor: grab;
  touch-action: none;
  flex-shrink: 0;
}
.pb-editor-panel-handle::before {
  content: '';
  width: 3rem;
  height: 0.25rem;
  background: var(--color-border, #d1d5db);
  border-radius: 999px;
}
.pb-editor-panel-tabs {
  display: flex;
  gap: 0.25rem;
  padding: 0.5rem 0.75rem 0;
  border-bottom: 1px solid var(--color-border, #e5e7eb);
  flex-shrink: 0;
}
.pb-editor-tab {
  min-height: 2.75rem;
  padding: 0.5rem 1rem;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  font-weight: 500;
  color: var(--color-text-muted, #6b7280);
  cursor: pointer;
  font-size: 0.9375rem;
}
.pb-editor-tab--active {
  color: var(--color-primary, #4f46e5);
  border-bottom-color: var(--color-primary, #4f46e5);
}
.pb-editor-panel-content {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 0.75rem;
}
.pb-editor-palette {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
}
@media (min-width: 480px) {
  .pb-editor-palette {
    grid-template-columns: 1fr 1fr;
  }
}
.pb-palette-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  min-height: 3.25rem;
  background: var(--color-surface, #ffffff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.5rem;
  cursor: grab;
  text-align: left;
  transition: border-color 0.15s, transform 0.1s;
  font: inherit;
  color: inherit;
  touch-action: none;
}
.pb-palette-item:hover {
  border-color: var(--color-primary, #4f46e5);
}
.pb-palette-item:active {
  transform: scale(0.98);
}
.pb-palette-item-icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 0.375rem;
  background: var(--color-primary-light, #eef2ff);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.pb-palette-icon--hero::before {
  content: 'H';
  font-weight: 800;
  color: var(--color-primary);
}
.pb-palette-icon--rich_text::before {
  content: '¶';
  font-size: 1.25rem;
  color: var(--color-primary);
}
.pb-palette-icon--image::before {
  content: '🖼';
  font-size: 1.1rem;
}
.pb-palette-icon--button::before {
  content: '⚡';
}
.pb-palette-icon--columns::before {
  content: '▥';
  color: var(--color-primary);
}
.pb-palette-icon--quote::before {
  content: '❝';
  color: var(--color-primary);
  font-size: 1.15rem;
}
.pb-palette-icon--divider::before {
  content: '―';
  color: var(--color-primary);
  font-weight: 800;
}
.pb-palette-icon--spacer::before {
  content: '↕';
  color: var(--color-primary);
}
.pb-palette-item-label {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.pb-palette-item-label strong {
  font-size: 0.9375rem;
  font-weight: 600;
}
.pb-palette-item-label em {
  font-size: 0.75rem;
  color: var(--color-text-muted, #6b7280);
  font-style: normal;
}
.pb-editor-inspector {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.pb-inspector-empty {
  text-align: center;
  padding: 2rem 1rem;
}
.pb-inspector-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.pb-insp-row {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0;
}
.pb-insp-row label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text, #111827);
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.pb-insp-row input, .pb-insp-row select, .pb-insp-row textarea {
  min-height: 2.75rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
  padding: 0.5rem 0.75rem;
  font: inherit;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.375rem;
  background: var(--color-surface, #ffffff);
  color: var(--color-text, #111827);
}
.pb-insp-row textarea {
  resize: vertical;
  min-height: 4rem;
}
.pb-inspector-form {
  min-width: 0;
}
.pb-insp-items, .pb-insp-item {
  min-width: 0;
  box-sizing: border-box;
}
.pb-insp-help {
  font-size: 0.75rem;
  color: var(--color-text-muted, #6b7280);
  margin-top: -0.125rem;
}
.pb-insp-row input:focus, .pb-insp-row select:focus, .pb-insp-row textarea:focus {
  outline: none;
  border-color: var(--color-primary, #4f46e5);
  box-shadow: 0 0 0 2px var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary, #4f46e5) 20%, transparent);
  }
}
.pb-editor-mobile-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  height: var(--pb-editor-mobile-bar-height);
  background: var(--color-surface, #ffffff);
  border-top: 1px solid var(--color-border, #e5e7eb);
  box-shadow: 0 -2px 8px rgb(0 0 0 / 0.05);
  z-index: 15;
}
@media (min-width: 1024px) {
  .pb-editor-mobile-bar {
    display: none;
  }
  .pb-editor-canvas-wrap {
    padding-bottom: 2rem;
  }
}
.pb-editor-mobile-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.125rem;
  min-height: 44px;
  background: transparent;
  border: 0;
  color: var(--color-text, #111827);
  cursor: pointer;
  font-size: 0.6875rem;
  font-weight: 500;
  padding: 0.25rem;
}
.pb-editor-mobile-btn svg {
  opacity: 0.8;
}
.pb-editor-mobile-btn--primary {
  color: var(--color-primary, #4f46e5);
}
.pb-editor-mobile-btn--primary svg {
  opacity: 1;
}
.pb-drag-ghost {
  position: fixed;
  pointer-events: none;
  opacity: 0.8;
  background: var(--color-surface, #ffffff);
  border: 2px solid var(--color-primary, #4f46e5);
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  box-shadow: 0 8px 24px rgb(0 0 0 / 0.2);
  font-size: 0.875rem;
  font-weight: 600;
  z-index: 1000;
  max-width: 16rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pb-block-gallery {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, 1fr);
}
.pb-gallery-cols-2 {
  grid-template-columns: repeat(2, 1fr);
}
.pb-gallery-cols-3 {
  grid-template-columns: repeat(3, 1fr);
}
.pb-gallery-cols-4 {
  grid-template-columns: repeat(4, 1fr);
}
.pb-gallery-gap-sm {
  gap: 0.375rem;
}
.pb-gallery-gap-md {
  gap: 0.75rem;
}
.pb-gallery-gap-lg {
  gap: 1.25rem;
}
@media (max-width: 767px) {
  .pb-gallery-cols-3, .pb-gallery-cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
.pb-gallery-item {
  margin: 0;
  cursor: pointer;
  overflow: hidden;
  border-radius: var(--pb-radius);
}
.pb-gallery-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  aspect-ratio: 1;
  transition: transform 0.2s;
}
.pb-gallery-item:hover .pb-gallery-img {
  transform: scale(1.03);
}
.pb-gallery-caption {
  font-size: 0.8125rem;
  color: var(--color-text-muted, #6b7280);
  padding: 0.375rem 0;
  text-align: center;
}
.pb-video-wrap {
  position: relative;
  width: 100%;
  border-radius: var(--pb-radius);
  overflow: hidden;
  background: #000;
}
.pb-video-ratio-16-9 {
  aspect-ratio: 16 / 9;
}
.pb-video-ratio-4-3 {
  aspect-ratio: 4 / 3;
}
.pb-video-ratio-1-1 {
  aspect-ratio: 1;
}
.pb-video-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: linear-gradient(to bottom, rgba(0,0,0,0.3), rgba(0,0,0,0.6));
}
.pb-video-thumb {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.pb-video-play-btn {
  position: relative;
  z-index: 1;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: rgba(255,255,255,0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: #111;
  transition: transform 0.2s;
}
.pb-video-placeholder:hover .pb-video-play-btn {
  transform: scale(1.1);
}
.pb-video-iframe {
  width: 100%;
  height: 100%;
  border: 0;
}
.pb-list {
  padding-left: 1.5rem;
  margin: 0;
}
.pb-list--none {
  list-style: none;
  padding-left: 0;
}
.pb-list--check {
  list-style: none;
  padding-left: 0;
}
.pb-list--check .pb-list-item::before {
  content: '✓';
  color: var(--color-primary, #4f46e5);
  font-weight: 700;
  margin-right: 0.5rem;
}
.pb-list-item {
  padding: 0.375rem 0;
  line-height: 1.5;
}
.pb-block-card {
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: var(--pb-radius);
  overflow: hidden;
  background: var(--color-surface, #ffffff);
}
.pb-card--horizontal {
  display: flex;
  align-items: stretch;
}
.pb-card-image {
  flex-shrink: 0;
}
.pb-card--horizontal .pb-card-image {
  max-width: 40%;
}
.pb-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pb-card--default .pb-card-img {
  aspect-ratio: 16 / 9;
}
.pb-card-body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.pb-card-title {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0;
}
.pb-card-text {
  color: var(--color-text-muted, #6b7280);
  line-height: 1.5;
  margin: 0;
}
.pb-card-link {
  color: var(--color-primary, #4f46e5);
  font-weight: 600;
  text-decoration: none;
  margin-top: auto;
}
.pb-card--minimal {
  border: none;
  background: transparent;
}
@media (max-width: 767px) {
  .pb-card--horizontal {
    flex-direction: column;
  }
  .pb-card--horizontal .pb-card-image {
    max-width: 100%;
  }
}
.pb-block-timeline {
  position: relative;
  padding-left: 2rem;
}
.pb-block-timeline::before {
  content: '';
  position: absolute;
  left: 0.5rem;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--color-border, #e5e7eb);
}
.pb-timeline-item {
  position: relative;
  padding-bottom: 1.5rem;
}
.pb-timeline-dot {
  position: absolute;
  left: -1.75rem;
  top: 0.25rem;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  background: var(--color-primary, #4f46e5);
  border: 2px solid var(--color-surface, #ffffff);
}
.pb-timeline-date {
  font-size: 0.8125rem;
  color: var(--color-primary, #4f46e5);
  font-weight: 600;
  display: block;
  margin-bottom: 0.25rem;
}
.pb-timeline-title {
  font-size: 1.125rem;
  font-weight: 700;
  margin: 0 0 0.25rem;
}
.pb-timeline-desc {
  color: var(--color-text-muted, #6b7280);
  margin: 0;
  line-height: 1.5;
}
.pb-accordion-item {
  border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.pb-accordion-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 3rem;
  padding: 0.75rem 0;
  background: transparent;
  border: 0;
  font: inherit;
  font-weight: 600;
  color: var(--color-text, #111827);
  cursor: pointer;
  text-align: left;
}
.pb-accordion-icon {
  transition: transform 0.2s;
  flex-shrink: 0;
}
.pb-accordion-trigger[aria-expanded="true"] .pb-accordion-icon {
  transform: rotate(180deg);
}
.pb-accordion-panel {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.25s ease;
}
.pb-accordion-panel[hidden] {
  max-height: 0;
}
.pb-accordion-panel-inner {
  padding: 0 0 1rem;
  line-height: 1.6;
  color: var(--color-text-muted, #6b7280);
}
.pb-faq-item {
  border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.pb-faq-question {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  min-height: 3rem;
  padding: 0.75rem 0;
  background: transparent;
  border: 0;
  font: inherit;
  font-weight: 600;
  color: var(--color-text, #111827);
  cursor: pointer;
  text-align: left;
}
.pb-faq-q-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--color-primary, #4f46e5);
  color: white;
  font-size: 0.8125rem;
  font-weight: 700;
  flex-shrink: 0;
}
.pb-faq-q-text {
  flex: 1;
}
.pb-faq-answer {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.25s ease;
}
.pb-faq-answer[hidden] {
  max-height: 0;
}
.pb-faq-answer-inner {
  padding: 0 0 1rem 2.5rem;
  line-height: 1.6;
  color: var(--color-text-muted, #6b7280);
}
.pb-testimonials-list {
  display: grid;
  gap: 1.25rem;
}
.pb-testimonials--grid .pb-testimonials-list {
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .pb-testimonials--grid .pb-testimonials-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .pb-testimonials--grid .pb-testimonials-list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.pb-testimonials--slider .pb-testimonials-list {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: 1.25rem;
  padding-bottom: 0.5rem;
}
.pb-testimonials--slider .pb-testimonial-card {
  flex: 0 0 min(20rem, 85vw);
  scroll-snap-align: start;
}
.pb-testimonial-card {
  background: var(--color-surface, #ffffff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: var(--pb-radius);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.pb-testimonial-quote {
  margin: 0;
  position: relative;
}
.pb-testimonial-mark {
  font-size: 3rem;
  line-height: 1;
  color: var(--color-primary, #4f46e5);
  opacity: 0.3;
  position: absolute;
  top: -0.5rem;
  left: -0.25rem;
}
.pb-testimonial-quote p {
  margin: 0;
  padding-top: 1.25rem;
  line-height: 1.6;
  font-style: italic;
}
.pb-testimonial-footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: auto;
}
.pb-testimonial-avatar {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  object-fit: cover;
}
.pb-testimonial-author {
  font-style: normal;
  font-weight: 600;
  display: block;
}
.pb-testimonial-role {
  font-size: 0.8125rem;
  color: var(--color-text-muted, #6b7280);
}
.pb-block-contact-form {
  max-width: 36rem;
}
.pb-contact-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
}
.pb-contact-desc {
  color: var(--color-text-muted, #6b7280);
  margin: 0 0 1.25rem;
}
.pb-contact-fields {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.pb-contact-hp {
  position: absolute;
  left: -9999px;
  opacity: 0;
  height: 0;
  overflow: hidden;
}
.pb-contact-status {
  padding: 0.75rem;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
}
.pb-contact-status--success {
  background: #d1fae5;
  color: #065f46;
}
.pb-contact-status--error {
  background: #fee2e2;
  color: #991b1b;
}
.pb-contact-preview {
  pointer-events: none;
}
.pb-contact-fields-preview {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.pb-form-input-preview {
  min-height: 2.5rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.375rem;
  background: var(--color-surface, #f9fafb);
}
.pb-form-input-preview--tall {
  min-height: 5rem;
}
.pb-map-container {
  width: 100%;
  border-radius: var(--pb-radius);
}
.pb-map--sm .pb-map-container, .pb-map--sm .pb-map-placeholder {
  height: 12rem;
}
.pb-map--md .pb-map-container, .pb-map--md .pb-map-placeholder {
  height: 20rem;
}
.pb-map--lg .pb-map-container, .pb-map--lg .pb-map-placeholder {
  height: 28rem;
}
.pb-map-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface, #f3f4f6);
  border: 2px dashed var(--color-border, #e5e7eb);
  border-radius: var(--pb-radius);
}
.pb-map-preview {
  border-radius: var(--pb-radius);
  overflow: hidden;
}
.pb-countdown-label {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 1rem;
}
.pb-countdown-display {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.pb-countdown-unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}
.pb-countdown-num {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 800;
  line-height: 1;
  color: var(--color-primary, #4f46e5);
  min-width: 3.5rem;
  text-align: center;
}
.pb-countdown-lbl {
  font-size: 0.8125rem;
  color: var(--color-text-muted, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.pb-countdown-expired {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-primary, #4f46e5);
}
.pb-embed-wrap {
  border-radius: var(--pb-radius);
  overflow: hidden;
}
.pb-embed-iframe {
  width: 100%;
  height: 100%;
  border: 0;
}
.pb-embed-preview {
  padding: 2rem;
  background: var(--color-surface, #f3f4f6);
  border: 2px dashed var(--color-border, #e5e7eb);
  border-radius: var(--pb-radius);
  text-align: center;
}
.pb-palette-icon--gallery::before {
  content: '▦';
  color: var(--color-primary);
}
.pb-palette-icon--video::before {
  content: '▶';
  color: var(--color-primary);
}
.pb-palette-icon--list::before {
  content: '☰';
  color: var(--color-primary);
}
.pb-palette-icon--card::before {
  content: '▭';
  color: var(--color-primary);
}
.pb-palette-icon--timeline::before {
  content: '⧫';
  color: var(--color-primary);
}
.pb-palette-icon--accordion::before {
  content: '≡';
  color: var(--color-primary);
  font-weight: 800;
}
.pb-palette-icon--faq::before {
  content: '?';
  color: var(--color-primary);
  font-weight: 800;
}
.pb-palette-icon--testimonials::before {
  content: '❝';
  color: var(--color-primary);
}
.pb-palette-icon--contact_form::before {
  content: '✉';
  color: var(--color-primary);
}
.pb-palette-icon--map::before {
  content: '⌖';
  color: var(--color-primary);
}
.pb-palette-icon--countdown::before {
  content: '⏱';
}
.pb-palette-icon--embed::before {
  content: '<>';
  color: var(--color-primary);
  font-size: 0.75rem;
  font-weight: 800;
}
@media (max-width: 1023px) {
  .pb-hide-tablet {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .pb-hide-mobile {
    display: none !important;
  }
}
.pb-editor-theme input[type="color"] {
  min-height: 2.75rem;
  width: 100%;
  padding: 0.25rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.375rem;
  cursor: pointer;
  background: transparent;
}
.pb-insp-items .pb-insp-item {
  background: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #4f46e5) 3%, transparent);
  }
}
.pb-block-widget-embed {
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: var(--pb-radius);
  overflow: hidden;
}
.pb-widget-card {
  padding: 1.25rem;
  background: var(--color-surface, #ffffff);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.pb-widget-card-badge {
  display: inline-flex;
  align-self: flex-start;
  padding: 0.125rem 0.625rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: var(--color-primary-light, #eef2ff);
  color: var(--color-primary, #4f46e5);
}
.pb-widget-card-title {
  font-size: 1.125rem;
  font-weight: 700;
  margin: 0;
}
.pb-widget-card-desc {
  color: var(--color-text-muted, #6b7280);
  line-height: 1.5;
  margin: 0;
}
.pb-widget-embed-empty {
  padding: 2rem;
  text-align: center;
  background: var(--color-surface, #f9fafb);
}
.pb-widget-embed-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 2rem;
}
.pb-widget-embed-spinner {
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid var(--color-border, #e5e7eb);
  border-top-color: var(--color-primary, #4f46e5);
  border-radius: 50%;
  animation: pb-spin 0.6s linear infinite;
}
@keyframes pb-spin {
  to {
    transform: rotate(360deg);
  }
}
.pb-palette-icon--widget_embed::before {
  content: '⚙';
  color: var(--color-primary);
}
.pb-template-section {
  margin-bottom: 2rem;
}
.pb-template-heading {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 1rem;
}
.pb-template-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 640px) {
  .pb-template-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .pb-template-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.pb-template-card {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1.25rem;
  background: var(--color-surface, #ffffff);
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: var(--pb-radius);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.pb-template-card:hover {
  border-color: var(--color-primary, #4f46e5);
  box-shadow: 0 4px 12px rgb(0 0 0 / 0.06);
}
.pb-template-icon {
  font-size: 2rem;
  line-height: 1;
}
.pb-template-label {
  font-size: 1.0625rem;
  font-weight: 700;
  margin: 0;
}
.pb-template-desc {
  font-size: 0.875rem;
  color: var(--color-text-muted, #6b7280);
  margin: 0;
  line-height: 1.4;
}
.pb-template-fields {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.pb-template-input {
  min-height: 2.5rem;
  font-size: 0.875rem;
}
.pb-template-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 2rem 0;
  color: var(--color-text-muted, #6b7280);
  font-size: 0.875rem;
}
.pb-template-divider::before, .pb-template-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--color-border, #e5e7eb);
}
.pb-seo-google-preview {
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  background: var(--color-surface, #ffffff);
}
.pb-seo-gp-title {
  font-size: 1.125rem;
  color: #1a0dab;
  font-weight: 500;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pb-seo-gp-url {
  font-size: 0.8125rem;
  color: #006621;
  margin: 0.125rem 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pb-seo-gp-desc {
  font-size: 0.8125rem;
  color: #545454;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pb-stat-views {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--color-text-muted, #6b7280);
  font-size: 0.875rem;
}
.pb-stat-views svg {
  opacity: 0.6;
}
@media (max-width: 1023px) {
  .pb-editor-panel {
    transform: translateY(100%);
    transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
    will-change: transform;
    max-height: 100vh;
    border-radius: 1.25rem 1.25rem 0 0;
  }
  .pb-editor-panel-handle {
    height: 2.75rem;
    min-height: 2.75rem;
  }
  .pb-editor-panel-handle::before {
    width: 3.5rem;
    height: 0.3rem;
    border-radius: 999px;
  }
}
.pb-history-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 0;
  border-bottom: 1px solid var(--color-border, #e5e7eb);
  flex-wrap: wrap;
}
.pb-history-item:last-child {
  border-bottom: 0;
}
.pb-history-version {
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--color-primary, #4f46e5);
  min-width: 2.5rem;
}
.pb-editor-canvas--dragover .pb-edit-block-wrap {
  position: relative;
}
.pb-editor-canvas--dragover::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #4f46e5) 15%, transparent);
  }
  pointer-events: none;
  z-index: 2;
}
.pb-editor-canvas--dragover::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #4f46e5) 10%, transparent);
  }
  pointer-events: none;
  z-index: 2;
}
.pb-insp-row--image {
  gap: 0.5rem;
}
.pb-picker {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  padding: 0.75rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.5rem;
  background: var(--color-surface, #ffffff);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-surface, #ffffff) 70%, transparent);
  }
}
.pb-picker-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.pb-picker-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text, #111827);
}
.pb-picker-thumb-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.pb-picker-thumb {
  width: 3rem;
  height: 3rem;
  border-radius: 0.375rem;
  object-fit: cover;
  background: var(--color-border, #e5e7eb);
  border: 1px solid var(--color-border, #e5e7eb);
}
.pb-picker-thumb[hidden] {
  display: none;
}
.pb-picker-clear {
  position: absolute;
  top: -0.4rem;
  right: -0.4rem;
  width: 1.25rem;
  height: 1.25rem;
  border: 0;
  border-radius: 999px;
  background: var(--color-text, #111827);
  color: var(--color-surface, #ffffff);
  font-size: 0.875rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 3px rgb(0 0 0 / 0.2);
}
.pb-picker-clear[hidden] {
  display: none;
}
.pb-picker-tabs {
  display: flex;
  gap: 0.25rem;
  border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.pb-picker-tab {
  padding: 0.5rem 0.75rem;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 0.8125rem;
  color: var(--color-text-muted, #6b7280);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color 0.12s, border-color 0.12s;
}
.pb-picker-tab:hover {
  color: var(--color-text, #111827);
}
.pb-picker-tab--active {
  color: var(--color-primary, #4f46e5);
  border-bottom-color: var(--color-primary, #4f46e5);
  font-weight: 600;
}
.pb-picker-panel {
  display: block;
}
.pb-picker-panel-url input[type="text"] {
  width: 100%;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  font: inherit;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.375rem;
  background: var(--color-surface, #ffffff);
  color: var(--color-text, #111827);
}
.pb-picker-panel-url input[type="text"]:focus {
  outline: none;
  border-color: var(--color-primary, #4f46e5);
  box-shadow: 0 0 0 2px var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary, #4f46e5) 20%, transparent);
  }
}
.pb-picker-drop {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 1.25rem 1rem;
  border: 2px dashed var(--color-border, #e5e7eb);
  border-radius: 0.5rem;
  background: var(--color-surface, #ffffff);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-surface, #ffffff) 60%, transparent);
  }
  color: var(--color-text-muted, #6b7280);
  cursor: pointer;
  transition: border-color 0.12s, background 0.12s, color 0.12s;
  text-align: center;
}
.pb-picker-drop:hover, .pb-picker-drop--active {
  border-color: var(--color-primary, #4f46e5);
  color: var(--color-primary, #4f46e5);
  background: var(--color-primary, #4f46e5);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary, #4f46e5) 6%, transparent);
  }
}
.pb-picker-drop-hint {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 500;
}
.pb-picker-drop-info {
  margin: 0;
  font-size: 0.75rem;
  opacity: 0.75;
}
.pb-picker-library {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(6rem, 1fr));
  gap: 0.5rem;
  max-height: 16rem;
  overflow-y: auto;
  padding: 0.25rem;
}
.pb-picker-library-item {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.375rem;
  background: var(--color-surface, #ffffff);
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.12s, transform 0.12s;
}
.pb-picker-library-item:hover {
  border-color: var(--color-primary, #4f46e5);
  transform: translateY(-1px);
}
.pb-picker-library-item img {
  width: 100%;
  height: 4.5rem;
  object-fit: cover;
  display: block;
  background: var(--color-border, #e5e7eb);
}
.pb-picker-library-item-caption {
  padding: 0.25rem 0.375rem;
  font-size: 0.6875rem;
  color: var(--color-text-muted, #6b7280);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pb-picker-library-item-delete {
  position: absolute;
  top: 0.25rem;
  right: 0.25rem;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  background: rgb(0 0 0 / 0.55);
  color: #fff;
  font-size: 0.875rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.12s, background 0.12s;
}
.pb-picker-library-item:hover .pb-picker-library-item-delete {
  opacity: 1;
}
.pb-picker-library-item-delete:hover {
  background: #b91c1c;
}
.pb-picker-status {
  margin: 0;
  font-size: 0.75rem;
  color: var(--color-text-muted, #6b7280);
}
.pb-picker-status--error {
  color: #b91c1c;
}
.pb-picker-muted {
  margin: 0;
  padding: 0.75rem 0;
  font-size: 0.8125rem;
  color: var(--color-text-muted, #6b7280);
  text-align: center;
}
.pb-insp-section {
  margin-bottom: 0.75rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 0.5rem;
  background: var(--neutral-50, #f9fafb);
  overflow: hidden;
}
.pb-insp-section[open] {
  background: var(--color-surface, #ffffff);
}
.pb-insp-section > summary {
  cursor: pointer;
  padding: 0.5rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text, #111827);
  list-style: none;
  user-select: none;
}
.pb-insp-section > summary::-webkit-details-marker {
  display: none;
}
.pb-insp-section > summary::before {
  content: "▸";
  display: inline-block;
  margin-right: 0.375rem;
  transition: transform 0.15s;
  font-size: 0.625rem;
  color: var(--color-text-muted, #6b7280);
}
.pb-insp-section[open] > summary::before {
  transform: rotate(90deg);
}
.pb-insp-section-body {
  padding: 0.5rem 0.75rem 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.pb-insp-range {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.pb-insp-range input[type="range"] {
  flex: 1;
  min-height: auto;
  padding: 0;
}
.pb-insp-range output {
  min-width: 3rem;
  text-align: right;
  font-size: 0.75rem;
  color: var(--color-text-secondary, #4b5563);
  font-variant-numeric: tabular-nums;
}
.pb-insp-row input[type="color"] {
  min-height: 2.25rem;
  height: 2.25rem;
  width: 100%;
  padding: 0.125rem;
  cursor: pointer;
}
.pb-insp-inline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.pb-insp-inline > input[type="text"], .pb-insp-inline > input[type="color"] {
  flex: 1;
}
.pb-insp-grid-4 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}
.pb-insp-visibility {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.pb-insp-visibility label {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-weight: 400;
  font-size: 0.8125rem;
  cursor: pointer;
}
.pb-insp-visibility input[type="checkbox"] {
  min-height: auto;
  width: 1rem;
  height: 1rem;
  margin: 0;
}
body[data-theme-dark="true"] {
  --mix-base: var(--color-surface);
  --bg-app: var(--color-background);
  --neutral-50: rgba(255, 255, 255, 0.03);
  --neutral-100: rgba(255, 255, 255, 0.06);
  --neutral-200: rgba(255, 255, 255, 0.10);
  --neutral-300: rgba(255, 255, 255, 0.18);
  --neutral-400: rgba(255, 255, 255, 0.38);
  --neutral-500: rgba(255, 255, 255, 0.55);
  --neutral-600: rgba(255, 255, 255, 0.68);
  --neutral-700: rgba(255, 255, 255, 0.78);
  --neutral-800: var(--color-text);
  --neutral-900: rgba(255, 255, 255, 0.96);
}
body[data-theme-dark="true"] .kohort-stat-tile {
  background: var(--color-surface);
}
body[data-theme-dark="true"] .badge-primary {
  background: var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-primary) 22%, var(--color-surface));
  }
  color: var(--color-text);
}
body[data-theme-dark="true"] .badge-accent {
  background: var(--color-accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-accent) 22%, var(--color-surface));
  }
  color: var(--color-accent);
}
body[data-theme-dark="true"] .badge-success {
  background: var(--color-success);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-success) 15%, var(--color-surface));
  }
  color: var(--color-success);
}
body[data-theme-dark="true"] .badge-warning {
  background: var(--color-warning);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-warning) 15%, var(--color-surface));
  }
  color: var(--color-warning);
}
body[data-theme-dark="true"] .badge-error {
  background: var(--color-error);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-error) 15%, var(--color-surface));
  }
  color: var(--color-error);
}
body[data-theme-dark="true"] .alert-error {
  background: var(--color-error);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-error) 12%, var(--color-surface));
  }
  border-color: var(--color-error);
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--color-error) 35%, var(--color-surface));
  }
}
body[data-theme-dark="true"] .alert-success {
  background: var(--color-success);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-success) 12%, var(--color-surface));
  }
  border-color: var(--color-success);
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--color-success) 35%, var(--color-surface));
  }
}
body[data-theme-dark="true"] .alert-warning {
  background: var(--color-warning);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--color-warning) 12%, var(--color-surface));
  }
  border-color: var(--color-warning);
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--color-warning) 35%, var(--color-surface));
  }
  color: var(--color-warning);
}
body[data-theme-dark="true"] .kohort-calendar-nav {
  background: linear-gradient( 135deg, var(--color-primary, var(--primary-500)), var(--color-surface) );
  @supports (color: color-mix(in lab, red, red)) {
    background: linear-gradient( 135deg, color-mix(in srgb, var(--color-primary, var(--primary-500)) 8%, var(--color-surface)), var(--color-surface) );
  }
}
body[data-theme-dark="true"] .msg-incoming .msg-bubble {
  border-color: rgba(255, 255, 255, 0.10);
}
body[data-theme-dark="true"] .msg:hover {
  background: rgba(255, 255, 255, 0.03);
}
body[data-theme-dark="true"] .text-primary {
  color: var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    color: color-mix(in srgb, var(--color-primary) 55%, white);
  }
}
body[data-theme-dark="true"] .bg-primary-subtle {
  background-color: var(--color-primary);
  @supports (color: color-mix(in lab, red, red)) {
    background-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
  }
}
body[data-theme-dark="true"] .kohort-message-card .font-semibold {
  color: var(--color-text);
}
.tutorial-launcher {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 9000;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 0.875rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--color-primary, #6366f1), #4f46e5);
  color: white;
  font-size: 0.8125rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  box-shadow: 0 8px 24px -8px rgba(99, 102, 241, 0.6), 0 2px 6px -2px rgba(0, 0, 0, 0.2);
  transition: transform 0.15s, box-shadow 0.15s, opacity 0.2s;
}
.tutorial-launcher:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px -8px rgba(99, 102, 241, 0.8), 0 2px 6px -2px rgba(0, 0, 0, 0.25);
}
.tutorial-launcher svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}
.tutorial-launcher-label {
  display: none;
}
@media (min-width: 640px) {
  .tutorial-launcher-label {
    display: inline;
  }
  .tutorial-launcher {
    right: 1.5rem;
    bottom: 1.5rem;
  }
}
body.tutorial-active .tutorial-launcher {
  opacity: 0;
  pointer-events: none;
}
.tutorial-overlay {
  position: fixed;
  inset: 0;
  z-index: 9100;
  pointer-events: auto;
}
.tutorial-overlay-svg {
  width: 100%;
  height: 100%;
  display: block;
}
.tutorial-overlay-fill {
  fill: rgba(8, 12, 25, 0.72);
  transition: none;
}
.tutorial-highlight {
  stroke: rgba(99, 102, 241, 0.95);
  stroke-width: 2.5;
  fill: none;
  filter: drop-shadow(0 0 12px rgba(99, 102, 241, 0.6));
  transition: x 0.25s ease, y 0.25s ease, width 0.25s ease, height 0.25s ease;
}
.tutorial-mask-hole {
  transition: x 0.25s ease, y 0.25s ease, width 0.25s ease, height 0.25s ease;
}
.tutorial-tooltip {
  position: fixed;
  z-index: 9200;
  width: min(20rem, calc(100vw - 1.5rem));
  padding: 1rem 1.125rem 0.875rem;
  border-radius: 0.875rem;
  background: white;
  color: #111827;
  box-shadow: 0 24px 60px -12px rgba(0, 0, 0, 0.45), 0 8px 20px -4px rgba(0, 0, 0, 0.25);
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  transition: left 0.2s ease, top 0.2s ease;
  animation: tutorialPop 0.2s ease-out;
}
[data-theme-dark="true"] .tutorial-tooltip {
  background: #1f2937;
  color: #f3f4f6;
  box-shadow: 0 24px 60px -12px rgba(0, 0, 0, 0.7), 0 8px 20px -4px rgba(0, 0, 0, 0.45);
}
@keyframes tutorialPop {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.tutorial-tooltip-progress {
  position: absolute;
  top: 0.5rem;
  left: 0.875rem;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #6366f1;
  letter-spacing: 0.04em;
  font-feature-settings: "tnum";
}
.tutorial-tooltip-progress .tutorial-tooltip-sep {
  margin: 0 0.125rem;
  opacity: 0.5;
}
.tutorial-tooltip-progress .tutorial-tooltip-total {
  color: #9ca3af;
}
.tutorial-tooltip-skip {
  position: absolute;
  top: 0.375rem;
  right: 0.5rem;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 0.375rem;
  background: transparent;
  color: #9ca3af;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, color 0.15s;
}
.tutorial-tooltip-skip:hover {
  background: rgba(0, 0, 0, 0.05);
  color: #ef4444;
}
[data-theme-dark="true"] .tutorial-tooltip-skip:hover {
  background: rgba(255, 255, 255, 0.08);
}
.tutorial-tooltip-title {
  font-size: 1rem;
  font-weight: 700;
  margin: 1rem 0 0.375rem;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.tutorial-tooltip-body {
  font-size: 0.8125rem;
  color: #4b5563;
  margin: 0 0 0.875rem;
  line-height: 1.5;
}
[data-theme-dark="true"] .tutorial-tooltip-body {
  color: #d1d5db;
}
.tutorial-tooltip-actions {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
}
.tutorial-btn {
  padding: 0.5rem 0.875rem;
  border-radius: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: background 0.15s, opacity 0.15s, transform 0.1s;
  min-height: 2.25rem;
}
.tutorial-btn-primary {
  background: linear-gradient(135deg, #6366f1, #4f46e5);
  color: white;
  box-shadow: 0 4px 12px -2px rgba(99, 102, 241, 0.4);
}
.tutorial-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px -2px rgba(99, 102, 241, 0.55);
}
.tutorial-btn-ghost {
  background: rgba(0, 0, 0, 0.05);
  color: #4b5563;
}
.tutorial-btn-ghost:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.08);
}
.tutorial-btn-ghost:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
[data-theme-dark="true"] .tutorial-btn-ghost {
  background: rgba(255, 255, 255, 0.08);
  color: #d1d5db;
}
[data-theme-dark="true"] .tutorial-btn-ghost:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.14);
}
.tutorial-tooltip-arrow {
  position: absolute;
  width: 14px;
  height: 14px;
  background: white;
  transform: rotate(45deg);
}
[data-theme-dark="true"] .tutorial-tooltip-arrow {
  background: #1f2937;
}
.tutorial-tooltip[data-placement="top"] .tutorial-tooltip-arrow {
  bottom: -7px;
  margin-left: -7px;
}
.tutorial-tooltip[data-placement="bottom"] .tutorial-tooltip-arrow {
  top: -7px;
  margin-left: -7px;
}
.tutorial-tooltip[data-placement="left"] .tutorial-tooltip-arrow {
  right: -7px;
  margin-top: -7px;
}
.tutorial-tooltip[data-placement="right"] .tutorial-tooltip-arrow {
  left: -7px;
  margin-top: -7px;
}
.presentation-page {
  --p-bg: #0b1020;
  --p-bg-alt: #0f1530;
  --p-fg: #e8eaf6;
  --p-fg-muted: #aab0d6;
  --p-fg-dim: #7c83b3;
  --p-accent: #6366f1;
  --p-accent-2: #f97316;
  --p-card: rgba(255, 255, 255, 0.04);
  --p-card-border: rgba(255, 255, 255, 0.08);
  --p-card-hover: rgba(255, 255, 255, 0.07);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: var(--p-bg);
  background-image: radial-gradient(at 20% 0%, rgba(99, 102, 241, 0.25) 0, transparent 50%), radial-gradient(at 80% 0%, rgba(249, 115, 22, 0.18) 0, transparent 50%), radial-gradient(at 50% 100%, rgba(99, 102, 241, 0.15) 0, transparent 50%);
  background-attachment: fixed;
  color: var(--p-fg);
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  overflow-y: auto;
}
.presentation-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(12px);
  background: rgba(11, 16, 32, 0.7);
  border-bottom: 1px solid var(--p-card-border);
}
.presentation-nav-inner {
  max-width: 80rem;
  margin: 0 auto;
  padding: 0.875rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.presentation-brand {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  text-decoration: none;
  color: var(--p-fg);
  font-weight: 700;
}
.presentation-brand-mark {
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background: linear-gradient(135deg, var(--p-accent), var(--p-accent-2));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: white;
  box-shadow: 0 4px 16px -4px rgba(99, 102, 241, 0.5);
}
.presentation-brand-name {
  font-size: 1.125rem;
}
.presentation-brand-tag {
  font-size: 0.6875rem;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  background: rgba(99, 102, 241, 0.15);
  color: #a5b4fc;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.presentation-nav-links {
  display: none;
  align-items: center;
  gap: 1.75rem;
}
.presentation-nav-links a {
  color: var(--p-fg-muted);
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  transition: color 0.15s;
}
.presentation-nav-links a:hover {
  color: var(--p-fg);
}
.presentation-nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1rem;
  border-radius: 0.625rem;
  background: linear-gradient(135deg, var(--p-accent), #4f46e5);
  color: white;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.15s, box-shadow 0.15s;
  box-shadow: 0 4px 14px -4px rgba(99, 102, 241, 0.6);
}
.presentation-nav-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px -4px rgba(99, 102, 241, 0.8);
}
@media (min-width: 768px) {
  .presentation-nav-links {
    display: flex;
  }
}
.presentation-hero {
  padding: 4rem 1.25rem 3rem;
}
.presentation-hero-inner {
  max-width: 64rem;
  margin: 0 auto;
  text-align: center;
}
.presentation-pill {
  display: inline-block;
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  background: rgba(99, 102, 241, 0.12);
  border: 1px solid rgba(99, 102, 241, 0.3);
  color: #c7d2fe;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: 1.5rem;
}
.presentation-hero-title {
  font-size: clamp(2rem, 6vw, 3.75rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 1.25rem;
}
.presentation-hero-accent {
  background: linear-gradient(135deg, #818cf8, var(--p-accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.presentation-hero-subtitle {
  font-size: clamp(1rem, 2vw, 1.25rem);
  color: var(--p-fg-muted);
  line-height: 1.5;
  max-width: 42rem;
  margin: 0 auto 2rem;
}
.presentation-hero-subtitle strong {
  color: var(--p-fg);
  font-weight: 600;
}
.presentation-hero-cta {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: center;
  justify-content: center;
  margin-bottom: 4rem;
}
@media (min-width: 640px) {
  .presentation-hero-cta {
    flex-direction: row;
  }
}
.presentation-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  border-radius: 0.75rem;
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
  min-height: 2.75rem;
}
.presentation-btn-primary {
  background: linear-gradient(135deg, var(--p-accent), #4f46e5);
  color: white;
  box-shadow: 0 8px 24px -8px rgba(99, 102, 241, 0.7);
}
.presentation-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px -8px rgba(99, 102, 241, 0.9);
}
.presentation-btn-ghost {
  background: var(--p-card);
  border: 1px solid var(--p-card-border);
  color: var(--p-fg);
}
.presentation-btn-ghost:hover {
  background: var(--p-card-hover);
  transform: translateY(-1px);
}
.presentation-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  max-width: 56rem;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .presentation-stats {
    grid-template-columns: repeat(4, 1fr);
  }
}
.presentation-stat {
  padding: 1.25rem 1rem;
  border-radius: 1rem;
  background: var(--p-card);
  border: 1px solid var(--p-card-border);
  text-align: center;
}
.presentation-stat-num {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  background: linear-gradient(135deg, #a5b4fc, var(--p-accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
  margin-bottom: 0.375rem;
}
.presentation-stat-label {
  font-size: 0.75rem;
  color: var(--p-fg-muted);
  font-weight: 500;
}
.presentation-section {
  padding: 4rem 1.25rem;
}
.presentation-section--alt {
  background: var(--p-bg-alt);
  border-top: 1px solid var(--p-card-border);
  border-bottom: 1px solid var(--p-card-border);
}
.presentation-section-inner {
  max-width: 72rem;
  margin: 0 auto;
}
.presentation-section-title {
  font-size: clamp(1.625rem, 3.5vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 0.75rem;
  text-align: center;
}
.presentation-section-lead {
  font-size: 1rem;
  color: var(--p-fg-muted);
  text-align: center;
  max-width: 40rem;
  margin: 0 auto 3rem;
  line-height: 1.5;
}
.presentation-stack-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1rem;
}
@media (min-width: 640px) {
  .presentation-stack-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .presentation-stack-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.presentation-stack-card {
  padding: 1.25rem;
  border-radius: 0.875rem;
  background: var(--p-card);
  border: 1px solid var(--p-card-border);
  transition: transform 0.15s, background 0.15s, border-color 0.15s;
}
.presentation-stack-card:hover {
  transform: translateY(-2px);
  background: var(--p-card-hover);
  border-color: rgba(99, 102, 241, 0.3);
}
.presentation-stack-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.625rem;
  background: rgba(99, 102, 241, 0.12);
  color: #a5b4fc;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.875rem;
}
.presentation-stack-icon svg {
  width: 1.25rem;
  height: 1.25rem;
}
.presentation-stack-icon--database {
  background: rgba(96, 165, 250, 0.12);
  color: #93c5fd;
}
.presentation-stack-icon--js {
  background: rgba(250, 204, 21, 0.12);
  color: #fde047;
}
.presentation-stack-icon--css {
  background: rgba(56, 189, 248, 0.12);
  color: #7dd3fc;
}
.presentation-stack-icon--realtime {
  background: rgba(249, 115, 22, 0.12);
  color: #fdba74;
}
.presentation-stack-icon--cache {
  background: rgba(248, 113, 113, 0.12);
  color: #fca5a5;
}
.presentation-stack-icon--test {
  background: rgba(74, 222, 128, 0.12);
  color: #86efac;
}
.presentation-stack-label {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.presentation-stack-desc {
  font-size: 0.8125rem;
  color: var(--p-fg-muted);
  line-height: 1.4;
}
.presentation-arch-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1rem;
  margin-bottom: 3rem;
}
@media (min-width: 768px) {
  .presentation-arch-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1280px) {
  .presentation-arch-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.presentation-arch-card {
  padding: 1.5rem;
  border-radius: 1rem;
  background: var(--p-card);
  border: 1px solid var(--p-card-border);
}
.presentation-arch-card h3 {
  font-size: 1.125rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
  background: linear-gradient(135deg, #a5b4fc, var(--p-accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.presentation-arch-desc {
  font-size: 0.875rem;
  color: var(--p-fg-muted);
  margin: 0 0 1rem;
  line-height: 1.5;
}
.presentation-arch-bullets {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.presentation-arch-bullets li {
  position: relative;
  padding-left: 1.25rem;
  font-size: 0.8125rem;
  color: var(--p-fg-muted);
  line-height: 1.4;
}
.presentation-arch-bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--p-accent);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}
.presentation-arch-card code, .presentation-section-lead code, .presentation-arch-desc code {
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-size: 0.85em;
  padding: 0.05rem 0.35rem;
  border-radius: 0.25rem;
  background: rgba(255, 255, 255, 0.06);
  color: #c7d2fe;
}
.presentation-flow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1.5rem;
  border-radius: 1rem;
  background: var(--p-card);
  border: 1px solid var(--p-card-border);
  margin-bottom: 3rem;
}
.presentation-flow-step {
  padding: 0.5rem 0.875rem;
  border-radius: 0.5rem;
  background: rgba(99, 102, 241, 0.12);
  border: 1px solid rgba(99, 102, 241, 0.25);
  font-size: 0.8125rem;
  font-weight: 600;
  color: #c7d2fe;
  white-space: nowrap;
}
.presentation-flow-arrow {
  color: var(--p-fg-dim);
  font-weight: 700;
}
.presentation-bc-title {
  font-size: 1.25rem;
  font-weight: 700;
  text-align: center;
  margin: 0 0 1.5rem;
}
.presentation-bc-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.625rem;
}
@media (min-width: 640px) {
  .presentation-bc-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1024px) {
  .presentation-bc-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}
.presentation-bc-card {
  padding: 0.75rem 0.875rem;
  border-radius: 0.625rem;
  background: var(--p-card);
  border: 1px solid var(--p-card-border);
  transition: border-color 0.15s, background 0.15s;
}
.presentation-bc-card:hover {
  border-color: rgba(99, 102, 241, 0.4);
  background: var(--p-card-hover);
}
.presentation-bc-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: #a5b4fc;
  margin-bottom: 0.125rem;
}
.presentation-bc-desc {
  font-size: 0.6875rem;
  color: var(--p-fg-muted);
  line-height: 1.35;
}
.presentation-widgets-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}
@media (min-width: 640px) {
  .presentation-widgets-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1024px) {
  .presentation-widgets-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}
.presentation-widget-card {
  padding: 1rem 0.5rem;
  border-radius: 0.75rem;
  background: var(--p-card);
  border: 1px solid var(--p-card-border);
  text-align: center;
  transition: transform 0.15s, background 0.15s, border-color 0.15s;
}
.presentation-widget-card:hover {
  transform: translateY(-3px);
  background: var(--p-card-hover);
  border-color: rgba(249, 115, 22, 0.3);
}
.presentation-widget-emoji {
  font-size: 1.75rem;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.presentation-widget-name {
  font-size: 0.8125rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.presentation-widget-cat {
  font-size: 0.6875rem;
  color: var(--p-fg-dim);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.presentation-widgets-more {
  text-align: center;
  margin-top: 2rem;
  color: var(--p-fg-muted);
  font-size: 0.9375rem;
}
.presentation-widgets-more a {
  color: #a5b4fc;
  font-weight: 600;
  text-decoration: none;
}
.presentation-widgets-more a:hover {
  text-decoration: underline;
}
.presentation-accounts {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}
@media (min-width: 640px) {
  .presentation-accounts {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .presentation-accounts {
    grid-template-columns: repeat(4, 1fr);
  }
}
.presentation-account {
  padding: 1.25rem;
  border-radius: 0.875rem;
  background: var(--p-card);
  border: 1px solid var(--p-card-border);
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
.presentation-account-role {
  font-size: 0.875rem;
  font-weight: 700;
  color: #a5b4fc;
  padding-bottom: 0.625rem;
  border-bottom: 1px solid var(--p-card-border);
}
.presentation-account-creds {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex-grow: 1;
}
.presentation-account-line {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.presentation-account-key {
  font-size: 0.6875rem;
  color: var(--p-fg-dim);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.presentation-account-line code {
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-size: 0.8125rem;
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  background: rgba(0, 0, 0, 0.3);
  color: var(--p-fg);
  word-break: break-all;
}
.presentation-account-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.5rem 0.875rem;
  border-radius: 0.5rem;
  background: rgba(99, 102, 241, 0.15);
  border: 1px solid rgba(99, 102, 241, 0.3);
  color: #c7d2fe;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s;
}
.presentation-account-cta:hover {
  background: rgba(99, 102, 241, 0.3);
}
.presentation-tip {
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  background: rgba(249, 115, 22, 0.08);
  border: 1px solid rgba(249, 115, 22, 0.25);
  color: #fed7aa;
  font-size: 0.875rem;
  line-height: 1.5;
  text-align: center;
}
.presentation-tip strong {
  color: #ffedd5;
}
.presentation-footer {
  padding: 2rem 1.25rem;
  border-top: 1px solid var(--p-card-border);
  background: var(--p-bg-alt);
}
.presentation-footer-inner {
  max-width: 72rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: center;
  justify-content: space-between;
  font-size: 0.8125rem;
  color: var(--p-fg-dim);
}
@media (min-width: 768px) {
  .presentation-footer-inner {
    flex-direction: row;
  }
}
.presentation-footer-links {
  display: flex;
  gap: 1.5rem;
}
.presentation-footer-links a {
  color: var(--p-fg-muted);
  text-decoration: none;
  transition: color 0.15s;
}
.presentation-footer-links a:hover {
  color: var(--p-fg);
}
@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@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-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-divide-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-gradient-position {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-from {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-via {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-to {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}
@property --tw-gradient-stops {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-via-stops {
  syntax: "*";
  inherits: false;
}
@property --tw-gradient-from-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0%;
}
@property --tw-gradient-via-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 50%;
}
@property --tw-gradient-to-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-leading {
  syntax: "*";
  inherits: false;
}
@property --tw-font-weight {
  syntax: "*";
  inherits: false;
}
@property --tw-tracking {
  syntax: "*";
  inherits: false;
}
@property --tw-ordinal {
  syntax: "*";
  inherits: false;
}
@property --tw-slashed-zero {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-figure {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-spacing {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-fraction {
  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: 0px;
}
@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-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@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;
}
@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-ease {
  syntax: "*";
  inherits: false;
}
@property --tw-scale-x {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-y {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-z {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-content {
  syntax: "*";
  initial-value: "";
  inherits: false;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes pulse {
  50% {
    opacity: 0.5;
  }
}
@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, ::backdrop {
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-space-y-reverse: 0;
      --tw-divide-y-reverse: 0;
      --tw-border-style: solid;
      --tw-gradient-position: initial;
      --tw-gradient-from: #0000;
      --tw-gradient-via: #0000;
      --tw-gradient-to: #0000;
      --tw-gradient-stops: initial;
      --tw-gradient-via-stops: initial;
      --tw-gradient-from-position: 0%;
      --tw-gradient-via-position: 50%;
      --tw-gradient-to-position: 100%;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-ordinal: initial;
      --tw-slashed-zero: initial;
      --tw-numeric-figure: initial;
      --tw-numeric-spacing: initial;
      --tw-numeric-fraction: 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-outline-style: solid;
      --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;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
      --tw-duration: initial;
      --tw-ease: initial;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-scale-z: 1;
      --tw-content: "";
    }
  }
}
